Describe the bug
After running room setup, STAGE space is aligned with my chaperone bounds. But if I recenter the HMD using the Steam overlay, the STAGE space moves and the bounds I get from OpenXR are no longer correct.
Unfortunately I only have a Godot program which exhibits this issue, i.e. no clean MRP, but I've looked into the Godot Engine source code and talked to the developer who wrote it, and we think Godot uses OpenXR correctly. My interpretation of the OpenXR spec is that Steam's runtime behaves as if reference space type was LOCAL_FLOOR even when it is STAGE.
To Reproduce
Steps to reproduce the behavior:
- Run Steam room scale set up. Configure Steam to always show chaperone.
- OpenXR - Use
xrLocateSpace(view_space, stage_space, ...) and xrGetReferenceSpaceBoundsRect(..., XR_REFERENCE_SPACE_TYPE_STAGE, ...) to render the stage space boundary as a polygon.
- OpenVR - Use
IVRChaperone::GetPlayAreaRect(...) to render a second polygon.
- Observe that both polygons match the Steam chaperone boundaries.
- Recenter the HMD using SteamVR overlay.
- Repeat the procedure to query room boundaries and re-render the polygons.
- Observe that the OpenXR boundaries are no longer match your the chaperone / your physical room while OpenVR still gives the expected values.
Expected behavior
Boundaries for OpenXR space STAGE always matching calibrated physical room
System Information (please complete the following information):
Please use the latest Steam beta client and SteamVR beta for your bug reports!
- Steam client version (build number or date): Steam Version: 1779918128
- SteamVR version: 2.16.5
- Distribution (e.g. Ubuntu): Fedora 44
- Steam runtime diagnostics: Not applicable, but can provide if you still want them.
- Steam and SteamVR logs: Not applicable, but can provide if you still want them.
- Minidumps: Not applicable, but can provide if you still want them.
Screenshots
I don't think they add any more information than what I wrote above, some polygons that overlap in one case and don't in the other.
Additional context
I'm making a game in Godot and the whole point is that it takes place entirely within the physical bounds of the room. My current workaround is to use both OpenVR (for room bounds) and OpenXR (for everything else) in parallel.
Describe the bug
After running room setup, STAGE space is aligned with my chaperone bounds. But if I recenter the HMD using the Steam overlay, the STAGE space moves and the bounds I get from OpenXR are no longer correct.
Unfortunately I only have a Godot program which exhibits this issue, i.e. no clean MRP, but I've looked into the Godot Engine source code and talked to the developer who wrote it, and we think Godot uses OpenXR correctly. My interpretation of the OpenXR spec is that Steam's runtime behaves as if reference space type was LOCAL_FLOOR even when it is STAGE.
To Reproduce
Steps to reproduce the behavior:
xrLocateSpace(view_space, stage_space, ...)andxrGetReferenceSpaceBoundsRect(..., XR_REFERENCE_SPACE_TYPE_STAGE, ...)to render the stage space boundary as a polygon.IVRChaperone::GetPlayAreaRect(...)to render a second polygon.Expected behavior
Boundaries for OpenXR space STAGE always matching calibrated physical room
System Information (please complete the following information):
Please use the latest Steam beta client and SteamVR beta for your bug reports!
Screenshots
I don't think they add any more information than what I wrote above, some polygons that overlap in one case and don't in the other.
Additional context
I'm making a game in Godot and the whole point is that it takes place entirely within the physical bounds of the room. My current workaround is to use both OpenVR (for room bounds) and OpenXR (for everything else) in parallel.