Skip to content

Overload (448850) #9912

Description

@Patola

Compatibility Report

  • Name of the game with compatibility issues: Overload
  • Steam AppID of the game: 448850

System Information

I confirm:

  • that I haven't found an existing compatibility report for this game.
  • that I have checked whether there are updates for my system available.

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions