Skip to content

Add async AER extra eye copy for OpenXR in D3D11Component#7

Open
mutars wants to merge 3 commits intomasterfrom
claude/d3d11-openxr-async-aer-YAl3t
Open

Add async AER extra eye copy for OpenXR in D3D11Component#7
mutars wants to merge 3 commits intomasterfrom
claude/d3d11-openxr-async-aer-YAl3t

Conversation

@mutars
Copy link
Owner

@mutars mutars commented Feb 4, 2026

Summary

This change adds support for asynchronous Asynchronous Eye Reprojection (AER) in the D3D11 VR component by performing additional eye texture copies when async AER is enabled.

Key Changes

  • After copying the left eye to OpenXR, if async AER is enabled, also copy the right eye texture
  • After copying the right eye to OpenXR, if async AER is enabled, also copy the left eye texture
  • Both extra copies use the appropriate texture source (8-bit or render target based on backbufferIs8Bit flag)
  • Added verbose logging to distinguish the extra async AER copies from standard eye copies

Implementation Details

  • The extra copies are only performed when vr->is_using_async_aer() returns true
  • Each extra copy respects the existing texture format selection logic (8-bit vs render target)
  • The changes are minimal and non-invasive, adding conditional logic only when async AER is active
  • This ensures both eye textures are available to OpenXR for proper async reprojection handling

https://claude.ai/code/session_0113R4SbhVpihniGsyFqv6vP

When async AER is enabled for D3D11+OpenXR, each frame now copies both
eye swapchains - the rendered eye and the cached non-rendered eye.
This keeps acquire/wait/release balanced per swapchain.

https://claude.ai/code/session_0113R4SbhVpihniGsyFqv6vP
Add missing copy from backbuffer to m_right_eye_tex in the right eye
frame for the 8-bit OpenXR path. Without this, the cached right eye
texture used during left eye frames contained stale/uninitialized data.

https://claude.ai/code/session_0113R4SbhVpihniGsyFqv6vP
Remove the DX12-only restriction from is_using_async_aer() to also
allow D3D11 when using OpenXR runtime. OpenVR on D3D11 remains disabled
due to pose handling issues with non-Steam native VR HMDs.

https://claude.ai/code/session_0113R4SbhVpihniGsyFqv6vP
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants