Graphics Primitive Assembly Pipeline Early Data Buffering
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The existing graphics processing pipeline faces inefficiencies due to high processor resource consumption and memory footprint caused by re-reading and re-allocating index data during vertex shading, leading to increased latency and communication bandwidth usage.
Innovation Solution
A graphics primitive assembly circuit with an early primitive assembly data generator and a dedicated buffer for storing early primitive assembly data, which is compressed and retained locally, eliminating the need for re-fetching index data and reducing system cache usage, allowing the pipeline to proceed with late primitive assembly once the shader completes processing.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of time
If the primitive assembly pipeline re-reads and re-allocates index data during vertex shading to hide latency, then the pipeline can proceed with late primitive assembly, but processor resource consumption and memory footprint increase
Solution Approach 1:
The patent applies preliminary action by performing early primitive assembly before vertex shading, storing the results in a buffer. This allows the pipeline to prepare data in advance without needing to re-read index data later, thus hiding latency while avoiding the overhead of repeated processing. The early assembly results are preserved and reused during the shading phase.
2Productivity
If the pipeline re-reads index data from system cache during vertex shading, then late primitive assembly can be completed, but communication bandwidth usage increases
Solution Approach 1:
The patent extracts the index data reading operation from the vertex shading phase and performs it separately during early primitive assembly. By taking out this I/O operation and completing it beforehand, the system eliminates the need to re-read data from system cache during shading, thereby reducing communication bandwidth consumption while ensuring late primitive assembly can still access the necessary data from the buffer.
3Device complexity
If a dedicated buffer is used to store early primitive assembly data, then re-fetching of index data is eliminated, but additional memory resources are required
Solution Approach 1:
The patent introduces a dedicated buffer as an intermediary storage component between the early primitive assembly stage and the late primitive assembly stage. This buffer acts as a mediator that holds the assembled primitive data, allowing the pipeline to avoid re-fetching from system cache while providing efficient access to the shading stage. The buffer size is optimized to store only the necessary early assembly results.
Data Source
AI summary
There is provided a graphics primitive assembly circuit comprising an early primitive assembly data generator operable to supply primitive input to a shader and a buffer operable to store early primitive assembly data during operation of the shader and to supply the early primitive assembly data to a late primitive assembly circuit element responsive to completion of operation of the shader. The circuit may also include a compressor that compresses the early primitive assembly data to reduce the amount of storage taken up by the buffer and the bandwidth required to transfer the early primitive assembly data.


