mirror of
https://github.com/lbgos/rift-s-linux.git
synced 2026-10-29 03:01:27 +01:00
We would leak frame_id and active_wait_frames increment that would cause bad states where we hadn't fully waited but would allow xrBeginFrame to complete. Also improve error handling so that on error conditions the semaphore is properly decremented and the application can call xrWaitFrame again. This was caused by unreal doing something like this: * xrBeginFrame <-- Error * xrWaitFrame * xrBeginFrame * xrEndFrame * Called at the same time: * xrWaitFrame * xrBeginFrame <-- Would get state from non-completed xrWaitFrame