MaartenBaert / ssr

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

Record OpenGL causes War Thunder to crash when "Terrain Quality" slider is greater than 50% #321

Open egeexyz opened 9 years ago

egeexyz commented 9 years ago

When "Record OpenGL" is toggled and the "Terrain Quality" slider is set to greater than 50% in the game options, the moment recording starts, War Thunder catastrophically crashes and even asks the user to submit the crash log to the developers. This bug is easily reproducible by simply setting the graphic settings to "High" in game options.

  1. Set SSR to record OpenGL when a hotkey is pressed
  2. Launch War Thunder (It's free on Steam)
  3. Increase graphic settings to "High"
  4. Begin recording.

I am able to reproduce this issue 100% using Ubuntu 14.10 and FGLRX driver 14.201

MaartenBaert commented 9 years ago

I'm already making some changes to the GLInject library to fix another problem with the new AMD drivers (and improve performance in general). There's a chance that this will fix the issue.

egeexyz commented 9 years ago

Great, I'm excited to try out the changes.

egeexyz commented 9 years ago

Hey Maarten, when you say "improve performance in general", it reminded me of a question I had about SSR. Does SSR use cpu or gpu to record the OpenGL output? We know that the overall frame rate takes a hit when recording starts but is that due to the cpu being taxed or the gpu?

MaartenBaert commented 9 years ago

It's mostly because the current capturing method causes both the CPU and GPU to block until the image has been captured. Some games rely heavily on the fact that the CPU can usually prepare the next frame while the GPU is still busy finishing the previous frame, but GLInject breaks that.

The new GLInject code uses a different mechanism that doesn't have this problem, which is why it is much faster.