Files
simplysanatoriandClaude Opus 5.5 3de1fad10b vr: [vr] submit_wait key, OpenVR submit without the CPU GPU-wait
submit_wait = 1 (default) keeps TransferSurface(surface, TRUE): the CPU
waits for the GPU to finish the frame before IVRCompositor::Submit.
submit_wait = 0 passes FALSE: the TRANSFER_SRC_OPTIMAL transition is still
a barrier in DXVK's command list, and submit_openvr's LockSubmissionQueue
(Flush + SynchronizeCsThread + lockSubmission, which drains DXVK's submit
queue into vkQueueSubmit) runs before Submit, so the compositor's copy is
queued behind the frame on the same VkQueue and the next frame's writes
behind the copy. This is DXVK's own D3D11 interop pattern for OpenVR.
OpenXR is unchanged (its mirror already exists as xr_copy_wait).

Startup log: "submit: GPU wait before Submit on/off (submit_wait=N)".
Menu A/B (singlepass, OpenVR, 2 runs each): 43-45 fps / submit 4.2-4.5 ms
with 1, 67-70 fps / submit 0.4-0.5 ms with 0; no errors, no crashes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 10:07:58 -04:00
..
2026-10-05 03:43:10 +01:00
2026-10-05 03:43:10 +01:00