Split Frame Rendering via Spatial Work Segmentation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing graphics processing pipelines face challenges in efficiently cooperating to render a single frame, particularly due to issues with data communication and synchronization, and the complexity of rendering graphics objects in API order, which complicates the collaboration between multiple accelerated processing devices (APDs).
Innovation Solution
The proposed solution involves two approaches where multiple APDs work together to render a single frame by dividing the work in the world-space pipelines and synchronizing it, with triangles being distributed to screen-space pipelines based on the render surface portions they overlap, allowing for reduced communication latency and simplified synchronization.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If multiple APDs process all work for draw calls in world-space pipelines, then rendering completeness is improved, but communication latency and synchronization complexity increase
Solution Approach 1:
The patent segments the rendering work by dividing the render surface into portions and assigning each APD to process triangles overlapping its assigned portion. This segmentation reduces the amount of data each APD must communicate and synchronize, directly addressing the communication latency issue while maintaining rendering completeness through coordinated processing.
Solution Approach 2:
The patent introduces a spatial dimension for work distribution by mapping triangles to specific render surface portions and assigning them to different APDs based on spatial overlap. This dimensional approach to workload distribution enables parallel processing across multiple APDs without requiring extensive inter-APD communication, thus reducing synchronization complexity and latency.
2Reliability
If multiple APDs process all work for draw calls in world-space pipelines, then rendering completeness is improved, but synchronization complexity increases
Solution Approach 1:
By segmenting the render surface into portions and assigning specific portions to specific APDs, the patent reduces synchronization complexity. Each APD independently processes triangles overlapping its assigned portion, eliminating the need for complex inter-APD synchronization while ensuring all triangles are processed through the coordinated division of labor.
Solution Approach 2:
The patent introduces an intermediary mechanism where triangles are distributed to APDs based on their overlap with assigned render surface portions. This intermediary distribution approach simplifies synchronization by providing a clear, rule-based method for assigning work, reducing the complexity of coordinating multiple APDs compared to having them all process the complete set of triangles.
3Loss of time
If triangles are distributed to screen-space pipelines based on render surface portions, then communication latency is reduced, but work distribution complexity increases
Solution Approach 1:
The patent applies local quality by assigning specific render surface portions to specific APDs, creating a localized work distribution scheme. Each APD processes only the triangles overlapping its locally assigned portion, which reduces communication latency while the work distribution complexity is managed through the systematic, geometry-based assignment rules rather than arbitrary distribution.
Data Source
AI summary
Improvements in the graphics processing pipeline that allow multiple pipelines to cooperate to render a single frame are disclosed. Two approaches are provided. In a first approach, world-space pipelines for the different graphics processing pipelines process all work for draw calls received from a central processing unit (CPU). In a second approach, the world-space pipelines divide up the work. Work that is divided is synchronized and redistributed at various points in the world-space pipeline. In either approach, the triangles output by the world-space pipelines are distributed to the screen-space pipelines based on the portions of the render surface overlapped by the triangles. Triangles are rendered by screen-space pipelines associated with the render surface portions overlapped by those triangles.


