Correction:
The layer does work outside Steam if the same environment variables are set that Steam uses for games with Foveated Rendering enabled:
FDM_DEBUG=enable
VK_INSTANCE_LAYERS=VK_LAYER_VALVE_rpo:VK_LAYER_VALVE_fdm_injection
With these set, Beat Saber starts with proton run and the layer creates the density maps.
The hang only happens when the implicit OpenXR layer is active and neither of these variables is set. This is the normal case when starting something outside Steam.
I would expect the layer to stay inactive when FDM_DEBUG=enable is not set, or at least fail cleanly instead of hanging.
If the hang without FDM_DEBUG=enable is intended, feel free to close this; I'd then file the manifest issue separately.
This seems to be fixed on:
SteamOS 20261007.6125817 (stable, also on beta 20261015.6141207)
SteamVR r25765468
Steam 1792099137
Beat Saber now starts with proton run outside Steam without FDM_DEBUG / VK_INSTANCE_LAYERS set. The layer loads but stays inactive.
One thing that still hangs the same way: if /usr/share appears twice in XDG_DATA_DIRS (an AppImage's AppRun appends /usr/share/ again), the layer gets loaded twice and vkCreateDevice hangs. Not sure if that's worth handling on your side, so I'm closing this.
Describe the bug
The implicit OpenXR layer
XR_APILAYER_VALVE_fdm_injection(/usr/share/openxr/1/api_layers/implicit.d/XrApiLayer_VALVE_fdm_injection.json) is active for every OpenXR app unlessDISABLE_VULKAN_FDM_INJECTION_LAYERis set. When a D3D11 OpenXR game is started through Proton outside of the Steam client (mod managers such as BSManager, launch scripts), the game hangs forever while creating its D3D11 device (DXVK → vkCreateDevice). Launched from Steam it works, presumably because Steam sets the variable.To Reproduce
STEAM_COMPAT_DATA_PATH=<prefix> STEAM_COMPAT_CLIENT_INSTALL_PATH=~/.local/share/Steam "<Proton 11.0 (ARM64)>/proton" run "Beat Saber.exe"GfxDevice: creating device client(waited > 7 minutes).DISABLE_VULKAN_FDM_INJECTION_LAYER=1: the game passes device creation immediately.Expected behavior
The layer either works for these apps or doesn't block device creation (e.g. time out and pass through).
System Information (please complete the following information):
Screenshots
n/a
Additional context
/usr/share/vulkan/explicit_layer.d/VkLayer_VALVE_fdm_injection.jsonnameslibVkLayer_VALVE_fdm_injection.so, but the library only exports prefixed entry points (fdm_injection_GetInstanceProcAddr,fdm_injection_GetDeviceProcAddr) and the manifest has nofunctionsmapping. Enabling the layer by name (VK_INSTANCE_LAYERS=VK_LAYER_VALVE_fdm_injection) fails:Failed to find 'vkGetInstanceProcAddr' in layer "libVkLayer_VALVE_fdm_injection.so".steam-logs.tar.gz
steam-runtime-diagnostics.txt