Subdivided Swapchains for VR Latency Reduction
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Head-mounted displays (HMDs) for virtual and augmented reality suffer from significant render latency and motion latency, which delay the rendering of frames and the adaptation to user head movements, affecting user experience and visual comfort.
Innovation Solution
The implementation of subdivided swapchains, where images are divided into partitions, allows for reduced latency by enabling simultaneous rendering and display of image partitions, optimizing the rendering and distortion processes and synchronizing with the display hardware to minimize delays.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of time
If traditional double-buffered swapchains are used for rendering images in HMDs, then memory usage is simplified, but render latency and motion latency are significantly increased
Solution Approach 1:
The patent divides the traditional single swapchain into multiple independent swapchains, each handling a specific buffer (front buffer, back buffer, distortion buffer). This segmentation allows parallel processing of rendering and distortion operations, reducing render latency and motion latency while maintaining manageable memory usage through organized buffer management.
2Productivity
If images are rendered and displayed simultaneously to reduce latency, then responsiveness improves, but synchronization complexity increases
Solution Approach 1:
The patent performs distortion rendering in advance during the rendering phase, before the display phase begins. By pre-processing the distortion operation on the back buffer while rendering is ongoing, the system prepares the final image earlier, enabling faster display without requiring complex real-time synchronization mechanisms.
3Productivity
If multiple buffers are used for rendering and distortion operations, then processing parallelism increases, but memory usage increases
Solution Approach 1:
The patent designs buffers to serve multiple functions: the back buffer is used for both rendering output and distortion input, and the distortion buffer serves as both processing target and final display source. This multi-functionality enables parallel rendering and distortion operations while reusing the same memory resources, avoiding the need for additional buffers that would increase memory usage.
Data Source
AI summary
An apparatus and method are described for subdividing swap chains using partitions. For example, one embodiment of an apparatus comprises: a graphics processing unit (GPU) to process graphics commands and responsively render a plurality of image frames; partition management logic to subdivide each of the image frames into at least two partitions and to designate each partition in each image frame as being in a front buffer or in a back buffer; the GPU to perform rendering operations to partitions designated as being in the back buffer; and a display link to concurrently perform a scan-out of scan lines from partitions designated as being in a front buffer.


