MaartenBaert / ssr

SimpleScreenRecorder, a screen recorder for Linux
http://www.maartenbaert.be/simplescreenrecorder/
GNU General Public License v3.0
2.53k stars 287 forks source link

GL injector no longer captures games running through Wine #842

Open 2xsaiko opened 3 years ago

2xsaiko commented 3 years ago

Tested with these games (all of which are on Steam):

The last two are free on Steam, in case you need something to test.

SSR version: 0.4.2 Wine version: wine-5.22 (Staging) (same issue when running through Proton) OS: Gentoo x86_64 GPU: AMD Radeon RX Vega 64

Output of emerge --info media-video/simplescreenrecorder app-emulation/wine-staging: Link


Log running DromEd (Thief 2's level editor) with ssr-glinject

As can be seen here, channels are created while the GL window is open, but actually trying to record from it doesn't give any video:

image

...of course right after I write this issue it starts working.. but only for DromEd, and with a ton of GL errors. Here's the log. Thief 2 itself just crashes on startup (the cause looks to be the same GL errors but this time it crashes from them in contrast to DromEd), and Yume Nikki just does nothing. Here's the log from SSR for that game. (Behavior for The Designer's Curse is the same as for Yume Nikki.)

MaartenBaert commented 3 years ago

Based on this line:

[SSR-GLInject] OpenGL version = 4.6 (4.6 (Core Profile) Mesa 20.3.0-rc2).

it looks like the game is using the OpenGL Core profile rather than the full-featured one, and GLInject is currently not set up to handle this. This would explain the GL_INVALID_OPERATION errors. These are not necessarily fatal though.

Does the issue only affect Steam games? If so, a possible explanation would be an incompatibility between the libraries that Steam games use and the ones GLInject is compiled against. IIRC the Steam runtime is based on Ubuntu, it may help to download the corresponding Ubuntu package of SSR from my PPA and drop the libssr-glinject.so library in the Steam runtime folder. I've fixed similar issues like this in the past. Note that you need both the 32-bit and 64-bit version of the library.

2xsaiko commented 3 years ago

This also happens if I run the games using the system installation of Wine. And the games are all DirectX games, so it's probably wined3d instead that conflicts here instead of the games themselves?

I haven't tested with anything that isn't installed through Steam, but Thief 2 is probably the closest you can get since there's pretty much no difference between the Steam version and even the disc version.