SteamVR-for-Linux icon indicating copy to clipboard operation
SteamVR-for-Linux copied to clipboard

[BUG] GPU hangs on waking the headset (compositing & VRR)

Open dsalt opened this issue 2 years ago • 3 comments

A GPU hang will occur when the headset display is activated (i.e. vrcompositor becomes active) if VRR is in use. I have only tested with xfwm4 with compositing enabled.

(I'm not certain whether this qualifies as a vrcompositor bug, an xfwm4 bug, a kernel bug or some combination of these.)

To reproduce

  • Whitelist xfwm4 for VRR. The following ~/.drirc is sufficient:
<driconf>
  <device screen="0" driver="radeonsi">
    <application name="xfwm4" executable="xfwm4">
      <option name="adaptive_sync" value="true" />
    </application>
  </device>
</driconf>
  • Restart xfwm4 (xfwm4 --replace & disown).
  • Start SteamVR.
  • Move the headset.

At this point, there will be a GPU hang. GPU reset should succeed, but X will need to be restarted.

System information

  • Distribution: Devuan chimaera (with libdrm & libvulkan packages from daedalus)
  • SteamVR version: 1.22.12
  • Steam client version: 1653101165
  • Opted into Steam client beta?: Yes
  • Graphics driver version: Mesa 22.1.0 (local build derived from Debian experimental)
  • GPU: Radeon RX 5600 XT
  • Kernel version: 5.17.4 (local build)
  • Displays attached: 1080p 144Hz Freesync (primary); 1080p 60Hz; Vive (original).
  • SteamVR async reprojection: enabled

Additional context Kernel log text extract

X config note: xf86-video-amdgpu 22.0 is in use; VariableRefresh & AsyncFlipSecondaries are enabled.

dsalt avatar May 21 '22 21:05 dsalt

Hello @dsalt, this issue should also be mentioned to your video driver vendor.

kisak-valve avatar May 21 '22 21:05 kisak-valve

As it looks more like an amdgpu problem than a Mesa bug: https://gitlab.freedesktop.org/drm/amd/-/issues/2020

dsalt avatar May 21 '22 21:05 dsalt

Some work has been done on tracking this down – https://gitlab.freedesktop.org/drm/amd/-/issues/1980 has a comment which describes a fix (basically, revert one patch in Mesa). That works fine here (I've tested under the conditions which caused the problem here), though it apparently exposes a different problem on Navi 2x.

dsalt avatar May 26 '22 21:05 dsalt