Compatibility Report
- Name of the game with compatibility issues: Overload
- Steam AppID of the game: 448850
System Information
I confirm:
Notes
- For these logs, ran with SteamVR beta 17.3 but the results are identical to SteamVR stable 2.16.7. Also tried with a few versions of WiVRn and the behavior is exactly the same.
- There are two proton logs attached: one with
PROTON_LOG=1 and the other with PROTON_LOG=+vrclient,+dxgi. The names indicates which is which.
- Tried a few times with
PROTON_USE_WINED3D=1 in SteamVR, WiVRn with xrizer and WiVRn with opencomposite, and WiVRn with opencomposite gave me the clue: a dialog stating "Application is trying to submit a D3D11 texture, this is likely a Steam Proton bug. Please report it."
Symptoms
- When running the game in VR, a black screen appears in VR but the game draws and interacts in the flatscreen only.
Reproduction
- Use SteamVR or WiVRn to connect to wireless VR
- Call the game in SteamVR mode
- VR headset will go black, the game will start in the flatscreen.
Investigation notes and technical explanation (done with the help of ChatGPT Codex, after a 4-hours-long session with many repeated tests and introspection)
Problem Summary
Overload’s Windows VR mode runs under Proton and initializes OpenVR successfully, but the headset remains black while the flatscreen/mirror continues rendering. This happens with Proton 10.0-4 and GE-Proton11-1. The issue appears to be in Proton’s D3D11/OpenVR texture handoff path, specifically the D3D11 texture submitted to IVRCompositor::Submit being converted via DXVK into Vulkan textures that contain only opaque black when received by xrizer/OpenVR-to-OpenXR.
Environment
Game: Overload, Steam app 448850
Runtime: Proton 10.0-4, also reproduced with GE-Proton11-1 (cleaning prefix between attempts)
VR path: SteamVR 17.3 beta via Steam Link/WiVRn/OpenXR through xrizer or opencomposite
Headset: Meta Quest 3
Game launch includes -vrmode openvr
Observed Behavior
Game starts and initializes OpenVR.
Headset goes black.
Flatscreen continues rendering normally.
No useful VR image appears in headset.
Unity/Game Evidence
The game believes OpenVR initialized correctly:
OpenVR initialized!
[VRDevice] Successfully created device openvr.
Activating VR physics
VR default FOV: 110
Reset VRSettings.loadedDeviceName == OpenVR
Proton Evidence
With WINEDEBUG=+vrclient,+dxgi, Proton shows Overload submitting D3D/OpenVR textures:
winIVRCompositor_IVRCompositor_020_Submit ... eEye 0 ... pTexture ... (eType 0) ... nSubmitFlags 0
load_compositor_texture_dxvk texture = ...
winIVRCompositor_IVRCompositor_020_Submit ... eEye 1 ... pTexture ... (eType 0) ... nSubmitFlags 0
load_compositor_texture_dxvk texture = ...
eType 0 is the D3D/DirectX OpenVR texture path. Proton then converts it through load_compositor_texture_dxvk, after which xrizer receives Vulkan textures.
There is also an early:
fixme:vrclient:winIVRSystem_IVRSystem_015_GetDXGIOutputInfo
This may or may not be causal, but it happens before D3D11 device creation and may be relevant to adapter/output selection.
xrizer Evidence (within WiVRn because Steam Link/SteamVR doesn't allow this)
xrizer receives valid-looking Vulkan OpenVR textures and submits visible OpenXR projection layers:
submit input: texture_type=Vulkan
vulkan copy: game_format=R8G8B8A8_SRGB, swapchain_format=R8G8B8A8_SRGB
end frame: should_render=true, projection_views=2, layers=1
A test pattern rendered by xrizer itself appears correctly in the headset, proving the xrizer → OpenXR → WiVRn presentation path works.
However, direct readback of the submitted eye textures shows opaque black. A delayed 3x3 grid dump after submit #600 produced 36/36 identical regions:
sum=1044480, nonzero=4096, max=255
first=[0, 0, 0, 255, ...]
For a 64x64 RGBA sample, 1044480 = 64 * 64 * 255, meaning every sampled pixel is [0,0,0,255].
Additional Test
With PROTON_USE_WINED3D=1, DXVK is disabled. In that mode, the D3D11 texture path is no longer converted into Vulkan properly; xrizer crashes/hangs, and OpenComposite reports:
Application is trying to submit a D3D11 texture, this is likely a Steam Proton bug, please report it.
Likely Failure Area
The most suspicious area is Proton vrclient / DXVK OpenVR interop for D3D11 texture submission:
D3D11 OpenVR eType 0 submit
→ Proton vrclient load_compositor_texture_dxvk
→ Vulkan texture passed to native OpenVR runtime
→ texture content is opaque black
steam-448850-vrclient-dxgi.zip
steam-448850-proton-log-1.log
Compatibility Report
System Information
I confirm:
Notes
PROTON_LOG=1and the other withPROTON_LOG=+vrclient,+dxgi. The names indicates which is which.PROTON_USE_WINED3D=1in SteamVR, WiVRn with xrizer and WiVRn with opencomposite, and WiVRn with opencomposite gave me the clue: a dialog stating "Application is trying to submit a D3D11 texture, this is likely a Steam Proton bug. Please report it."Symptoms
Reproduction
Investigation notes and technical explanation (done with the help of ChatGPT Codex, after a 4-hours-long session with many repeated tests and introspection)
Problem Summary
Overload’s Windows VR mode runs under Proton and initializes OpenVR successfully, but the headset remains black while the flatscreen/mirror continues rendering. This happens with Proton 10.0-4 and GE-Proton11-1. The issue appears to be in Proton’s D3D11/OpenVR texture handoff path, specifically the D3D11 texture submitted to IVRCompositor::Submit being converted via DXVK into Vulkan textures that contain only opaque black when received by xrizer/OpenVR-to-OpenXR.
Environment
Game: Overload, Steam app 448850
Runtime: Proton 10.0-4, also reproduced with GE-Proton11-1 (cleaning prefix between attempts)
VR path: SteamVR 17.3 beta via Steam Link/WiVRn/OpenXR through xrizer or opencomposite
Headset: Meta Quest 3
Game launch includes -vrmode openvr
Observed Behavior
Game starts and initializes OpenVR.
Headset goes black.
Flatscreen continues rendering normally.
No useful VR image appears in headset.
Unity/Game Evidence
The game believes OpenVR initialized correctly:
Proton Evidence
With
WINEDEBUG=+vrclient,+dxgi, Proton shows Overload submitting D3D/OpenVR textures:eType 0is the D3D/DirectX OpenVR texture path. Proton then converts it throughload_compositor_texture_dxvk, after which xrizer receives Vulkan textures.There is also an early:
This may or may not be causal, but it happens before D3D11 device creation and may be relevant to adapter/output selection.
xrizer Evidence (within WiVRn because Steam Link/SteamVR doesn't allow this)
xrizer receives valid-looking Vulkan OpenVR textures and submits visible OpenXR projection layers:
A test pattern rendered by xrizer itself appears correctly in the headset, proving the xrizer → OpenXR → WiVRn presentation path works.
However, direct readback of the submitted eye textures shows opaque black. A delayed 3x3 grid dump after submit #600 produced 36/36 identical regions:
For a 64x64 RGBA sample,
1044480 = 64 * 64 * 255, meaning every sampled pixel is[0,0,0,255].Additional Test
With
PROTON_USE_WINED3D=1, DXVK is disabled. In that mode, the D3D11 texture path is no longer converted into Vulkan properly; xrizer crashes/hangs, and OpenComposite reports:Likely Failure Area
The most suspicious area is Proton vrclient / DXVK OpenVR interop for D3D11 texture submission:
D3D11 OpenVR eType 0 submit
→ Proton vrclient load_compositor_texture_dxvk
→ Vulkan texture passed to native OpenVR runtime
→ texture content is opaque black
steam-448850-vrclient-dxgi.zip
steam-448850-proton-log-1.log