Open Links2004 opened 11 months ago
I don't think SteamVR runs inside a pressure-vessel based runtime by default, so I don't think this is a problem with CAP_SYS_NICE
. I thought NVIDIA didn't support async reprojection in general yet
the NVIDIA driver supports it since a long time (2021) see:
https://www.nvidia.com/download/driverResults.aspx/176525/en-us/
Added support for VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT from the VK_EXT_global_priority extension. This enables support for asynchronous reprojection in SteamVR.
VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT is supported on Pascal GPUs and newer.
Global priorities other than VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT require root privileges or the CAP_SYS_NICE capability.
and vulkaninfo
shows support.
sudo vulkaninfo | grep -i global
VK_EXT_global_priority : extension revision 2
VK_EXT_global_priority_query : extension revision 1
VK_KHR_global_priority : extension revision 1
VkQueueFamilyGlobalPriorityPropertiesKHR:
QUEUE_GLOBAL_PRIORITY_LOW_KHR
QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR
QUEUE_GLOBAL_PRIORITY_HIGH_KHR
QUEUE_GLOBAL_PRIORITY_REALTIME_KHR
VkQueueFamilyGlobalPriorityPropertiesKHR:
QUEUE_GLOBAL_PRIORITY_LOW_KHR
QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR
QUEUE_GLOBAL_PRIORITY_HIGH_KHR
VkQueueFamilyGlobalPriorityPropertiesKHR:
QUEUE_GLOBAL_PRIORITY_LOW_KHR
QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR
QUEUE_GLOBAL_PRIORITY_HIGH_KHR
QUEUE_GLOBAL_PRIORITY_REALTIME_KHR
VkQueueFamilyGlobalPriorityPropertiesKHR:
QUEUE_GLOBAL_PRIORITY_LOW_KHR
QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR
QUEUE_GLOBAL_PRIORITY_HIGH_KHR
VkQueueFamilyGlobalPriorityPropertiesKHR:
QUEUE_GLOBAL_PRIORITY_LOW_KHR
QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR
QUEUE_GLOBAL_PRIORITY_HIGH_KHR
QUEUE_GLOBAL_PRIORITY_REALTIME_KHR
VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR:
globalPriorityQuery = true
The same thing started happening on a working 1.27.5 install. So it's something the Steam client did. I see that vrstartup.sh / vrsetup.sh is no started under Sniper, so I assume this is what broke a bunch of things.
Edit: Conclusions after a short investigation.
I'm unsure if it's even possible to elevate your permission in the container.
If I have more time, I may try to wrap srt-bwrap in a script that skips the container for vrstartup.sh.
Just commenting to +1 this, also getting:
Tue May 21 2024 23:02:34.355714 [Info] - Enabling async support!
Tue May 21 2024 23:02:34.355965 [Error] - Insufficient permission to create high priority queue.
Tue May 21 2024 23:02:34.355984 [Error] - Failed to create VkDevice with high priority queue.
Tue May 21 2024 23:02:34.356001 [Error] - Disabling async support and retrying.
Distribution: Fedora 40 SteamVR version: 2.6.1 beta Steam client version: 1716242052 Opted into Steam client beta?: Yes Graphics driver version: NVIDIA 550.78 Gist for SteamVR System Information: https://gist.github.com/cyberkitsune/daa3332e369056298004d5bae3ec6439
Also just commenting to +1 as the issue is still affecting me.
I can work around the issue by launching ~/.steam/steam/steamapps/common/SteamVR/bin/vrstartup-helper.sh
manually instead of from inside Steam and then async reprojection works perfectly, but, often times when I shut down SteamVR after it has been launched this way it just crashes my entire computer and that's no good.
However, games like DCS and Microsoft Flight Simulator are unplayable without async, so finding a better solution to this problem that doesn't risk hard crashing my computer would be nice.
(Edit: System-wide crash doesn't seem to happen on Wayland.)
When I launch SteamVR the normal way (through Steam) I see this in vrcompositor.txt
Thu Jul 04 2024 22:03:32.107047 [Info] - Global priority query enabled: 1
Thu Jul 04 2024 22:03:32.107056 [Info] - Attempting to enable async support...
Thu Jul 04 2024 22:03:32.107065 [Info] - Enabling async support!
Thu Jul 04 2024 22:03:32.107245 [Error] - Insufficient permission to create high priority queue.
Thu Jul 04 2024 22:03:32.107257 [Error] - Failed to create VkDevice with high priority queue.
Thu Jul 04 2024 22:03:32.107266 [Error] - Disabling async support and retrying.
System Info Distribution: Arch Linux SteamVR Version: 2.7.2 Steam Beta Branch: Steam Beta Update Steam Version: 1719967667 Steam Client Build Date: Tue, Jul 2 17:38 UTC -08:00 Steam Web Build Date: Tue, Jul 2 19:35 UTC -08:00 Steam API Version: SteamClient021 Graphics Driver Version: nvidia-dkms 555.58.02-1 Gist for SteamVR System Information GPU: NVIDIA RTX 3090 Ti CPU: AMD Ryzen 9 5950X RAM: 64GB DDR4-3200 HMD: Valve Index
Running as steam-native in the console i get: vrstartup.sh[581849]: Steam Linux Runtime: sniper_platform_0.20241008.104210 vrstartup.sh[581849]: call /home/exuvo/.local/share/Steam/steamapps/common/SteamVR/bin/vrsetup.sh vrsetup.sh[581873]: Detected Steam Linux Runtime pressure-vessel launch in sniper_platform_0.20241008.104210 vrsetup.sh[581873]: Error: steam launcher service not available, vrcompositor-launcher will execute inside the container with no privileges.
And Insufficient permission to create high priority queue
in the vrcompositor log.
But running with steam-runtime it works. UI still says it is not supported but log does not say it failed and actually playing is very smooth now.
System Info Arch Linux GPU: AMD RX 7900 XTX HMD: Valve Index
Describe the bug cap_sys_nice is set but
Insufficient permission to create high priority queue.
is shown in the log and asynchronous reprojection is "not supported"the only simmular issue i found is: https://github.com/NixOS/nixpkgs/issues/217119 since it looks like that Steam Linux Runtime is using
bwrap
too.To Reproduce Steps to reproduce the behavior:
Expected behavior the steam linux runtime chroot / isolation do allow the use of cap_sys_nice and as a result asynchronous reprojection can be enabled.
System Information (please complete the following information):
Screenshots
Additional context
Note: Commenters who are also experiencing this issue are encouraged to include the "System Information" section in their replies.