KhronosGroup / OpenXR-SDK-Source

Sources for OpenXR loader, basic API layers, and example code.
https://khronos.org/openxr
Apache License 2.0
634 stars 237 forks source link

Debugging crash in xrBeginFrame with SteamVR backend #322

Open Ravbug opened 1 year ago

Ravbug commented 1 year ago

Sometimes when my application calls xrBeginFrame, OpenXR crashes on xr_generated_loader.cpp:434 with message:

Exception thrown at 0x00007FFFB0A5665A (d3d12SDKLayers.dll) in RavEngineVR.exe: 0xC0000005: 
Access violation reading location 0x0000000000000000.

Occasionally it also logs Unable to create draw lists in the console but not every time.

How should I debug this? I can't see very much through the dispatchtable or call stack: image image

rpavlik commented 1 year ago

So I think this is probably a SteamVR issue, or maybe a Windows or driver one. (Also it's strange to see the 11on12 layer in there, it almost certainly will not handle SteamVR d3d calls right) The loader is just the top thing in that call stack that you have source for. I'd suggest reaching out to any SteamVR dev rel contacts you might have. I'll ping some folks for you too.

Does this happen with hello-xr when running using d3d11 and otherwise similar setup?

Ravbug commented 1 year ago

My application is using Direct3D12, SteamVR version is 1.22.13

With the same computer and headset, I get a crash in hello_xr on D3D12 (same crash as #313, not in xrBeginFrame). hello-xr on D3D11 and OpenGL works correctly, the rest of the APIs are reported as unsupported.

rpavlik commented 1 year ago

Check the dxcpl and other dev settings, I'm guessing that the d3d11on12 layer is to blame here. Also you may wish to clean install SteamVR (and maybe update your GPU drivers and maybe manual install the Vulkan runtime?) because I was just testing it yesterday on Windows, and it reported all graphics apis as supported.

rpavlik-bot commented 1 year ago

An issue (number 1806) has been filed to correspond to this issue in the internal Khronos GitLab (Khronos members only: KHR:openxr/openxr#1806 ), to facilitate working group processes.

This GitHub issue will continue to be the main site of discussion.

rpavlik commented 1 year ago

is this related to #313 I wonder? I have been doing a lot of steamvr d3d12 testing with the CTS, this may have been fixed.