Screen update problems with PRIME Sync

In some applications there’s a growing problem with screen updates while PRIME sync is on. Symptom is, e.g. scrolling (using mouse wheel) without moving the mouse pointer the application’s window will only update once per second.
While this is also noticeable in current Firefox to a lesser extent it is most apparent with Steam client in the shop. It is not limited to scrolling but every action that causes screen updates without mouse movement.

  • It is independent from the DE in use, tried with gnome, openbox and plain X.
  • It is also independent from kernel and driver version, tried kernels 4.8-4.11 and drivers 375-384.
  • With steam, this probably got worse with an update of webkitgtk, now at version 2.16.5. If scrolled and clicked enough, the steam shop (web)client crashes with entries in terminal:
[0719/105934.405726:ERROR:gles2_cmd_decoder.cc(15992)] Offscreen context lost via ARB/EXT_robustness. Reset status = GL_GUILTY_CONTEXT_RESET_KHR
[0719/105934.405798:ERROR:gles2_cmd_decoder.cc(4287)]   GLES2DecoderImpl: Context reset detected after MakeCurrent.
[0719/105934.405823:ERROR:gpu_channel_manager.cc(188)] Exiting GPU process because some drivers cannot recover from problems.
[0719/105934.405855:ERROR:gpu_channel_manager.cc(188)] Exiting GPU process because some drivers cannot recover from problems.
Refresh rate: 60
[0719/105934.435151:ERROR:gpu_process_transport_factory.cc(926)] Lost UI shared context.
threadtools.cpp (1343) : Assertion Failed: Thread synchronization object is unuseable
Refresh rate: 1
Refresh rate: 1
Refresh rate: 60
Refresh rate: 60
Refresh rate: 1
Refresh rate: 1
Refresh rate: 60
Refresh rate: 60
Generating new string page texture 93: 128x256, total string texture memory is 999,42 KB
Generating new string page texture 94: 64x256, total string texture memory is 1,06 MB
cef_clienthandler.cpp (2088) : Assertion Failed: killing unresponsive browser for URL http://store.steampowered.com/
[0719/110249.224995:ERROR:web_plugin_impl.cc(38)] Widevine registration is not supported after context initialization

Other noteworthy updates I’ve not sorted out right now are

  • libinput (1.7.2)
  • xf86-input-libinput (0.25.1)
  • (coming with) xorg-server-1.19.3

Using

xrandr --output eDP-1-1 --set "PRIME Synchronization" "0"

to turn off sync removes the problem.
Attaching bug reports using drivers 375.66 and 384.47

Edit: seems like Steam client doesn’t use system webkit but uses its bundled chromehtml.so
nvidia-bug-report.log.375.gz (128 KB)
nvidia-bug-report.log.384.gz (124 KB)