mirror of
https://github.com/astromaddie/HaloCE-VR.git
synced 2026-10-20 10:00:14 +02:00
SteamVR's GL binding makes its own context current for every swapchain acquire, wait and release (and the game's again after), each a flush, fences and trace markers in Zink: on the device they were a fifth of the game thread's cycles. The eyes and the quad (HUD or flat screen) are now parts of one atlas swapchain, acquired by whichever part comes first and released as the frame ends; the layers take their parts' rectangles (halo_xr_info.x, .y). Every layer shown is still drawn the frame it is shown, as a new image of the atlas is each frame's. On the device at 90 Hz and 1.0x: a30 play from 10.3 to 7.8-9.9 ms of CPU a frame, 84-90 to 87-90 fps; a10's opening cutscene at 89-90 fps. Dumps of a stereo frame (eyes, HUD) and a cutscene frame (the 3D screen's eyes) show each part where it belongs.