SteamVR: Why is the swapchain triple-buffered?

I’m working to integrate SteamVR via OpenXR into my software. I noticed the swapchain created by xrCreateSwapchain() includes three images. Why is this? I always use two images for my regular 3D rendering. Wouldn’t triple buffering increase latency?

3 images are needed for certain scenarios like temporal reprojection, where 2 past images are held by the compositor (to compute motion vectors) and 1 current image is available to you for drawing.

It doesn’t increase latency, whatever latest image you released prior to submitting to xrEndFrame() is the one used for the upcoming composition and scanout.

1 Like

This topic was automatically closed 183 days after the last reply. New replies are no longer allowed.