protonscr

Steam Overlay causes FPS drop on user input with Gallium Nine on Proton

steamopen overlay
ValveSoftware/steam-for-linux#6323 · opened 2019-06-18 by terencode · updated 2019-06-19 · 0 comments · github
Tterencode 2019-06-18 github

Your system information

  • Steam client version : 1.0.0.61
  • Distribution : ArchLinux
  • Opted into Steam client beta?: No
  • Have you checked for system updates?: Yes
  • Issue ran across using the following game: Natural Selection 2

Please describe your issue in as much detail as possible:

When playing a 64bits D3D9 game through Proton configured to use Gallium Nine, everything will run fine at first, but will after a while (30-45mn of constant user input) suddenly drop frames each time the user gives an input by pressing keys and/or moving the mouse.
I had no luck looking for regressions in mesa and gallium nine.
What made the issue disappear was replacing gameoverlayrenderer.so with a blank file to prevent it from loading.
The library was still getting loaded despite being disabled globally/on a per game basis.
It also has to be noted the overlay is not working with gallium-nine when enabled.
Running perf topdidn't seem to give any meaningful result.
Here is a potential explanation I've been given :

  1. The overlay hooks on drawing functions (opengl or rather glx) and on the input functions. 2. However, nine doesn't use the drawing functions, or rather, not in the way the overlay expects it.
  2. It may have some limit for the input events per frame and since the opengl draw function is never called, the buffer fills up.
  3. When the buffer is full, a slow operation like memmove, or realloc blocks the game when playing.

Steps for reproducing this issue:

  1. Configure Proton to use wine-nine-standalone
  2. Run a game using D3D9 and play for a while (around 30mn)
  3. At some point the game will suddenly start to drop FPS (from 120 to 40-50 for my setup) each time an input is given, like pressing keys or moving the mouse.

Nothing extracted yet.