GPU Vertex Buffering via Index Copies
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional graphics processing units (GPUs) inefficiently process graphics scenes due to redundant storage of vertex data across geometry primitives and objects, leading to increased resource consumption and reduced rendering speed.
Innovation Solution
A computer-implemented method that buffers data associated with geometry objects by generating a set of vertices and storing indices in a local index buffer, eliminating redundant vertex data storage and allowing efficient referencing of shared vertices.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the geometry shading unit stores redundant copies of vertex data for each shared vertex, then complete vertex information is available for each graphics primitive, but GPU resources are consumed inefficiently and rendering speed is reduced
Solution Approach 1:
The patent applies the copying principle by creating index copies instead of data copies. Rather than storing redundant vertex data for each shared vertex, the system stores compact index values that reference the original vertex data. This allows complete vertex information to be available for each graphics primitive through indirect access, while consuming minimal GPU resources.
Solution Approach 2:
The patent introduces an intermediary mechanism (index buffer) between the vertex data storage and the geometry processing units. This intermediary layer allows multiple geometry processing units to access shared vertex data efficiently through index references, eliminating the need for each unit to store complete redundant copies of vertex data while ensuring data availability.
2Reliability
If the geometry shading unit stores redundant copies of vertex data for each shared vertex, then all vertex information is preserved, but the amount of data stored increases significantly
Solution Approach 1:
The patent applies copying by storing index copies rather than data copies. Each index is a compact reference value that points to the original vertex data in shared memory. This preserves all vertex information while reducing storage volume from millions of redundant vertex copies to a manageable index structure.
Solution Approach 2:
The patent segments vertex data storage into two distinct components: (1) the original vertex data stored once in shared memory, and (2) index data stored in each geometry processing unit's local memory. This segmentation allows the system to preserve complete vertex information while minimizing the storage burden on individual processing units.
3Ease of operation
If the geometry shading unit processes millions of redundant vertex copies, then each primitive has its vertex data, but processing efficiency is reduced
Solution Approach 1:
The patent introduces an index buffer as an intermediary layer that enables efficient vertex data accessibility. Instead of directly accessing redundant vertex copies, the geometry processing units access compact index values that reference the original vertex data. This intermediary mechanism maintains ease of operation while significantly reducing GPU resource consumption during processing.
Solution Approach 2:
The patent uses index copying instead of vertex data copying. Each geometry processing unit stores and processes compact index references rather than full vertex data copies. This approach maintains straightforward data accessibility for each primitive while reducing the computational burden of processing millions of redundant data copies.
Data Source
AI summary
A graphics processing unit includes a set of geometry processing units each configured to process graphics primitives in parallel with one another. A given geometry processing unit generates one or more graphics primitives or geometry objects and buffers the associated vertex data locally. The geometry processing unit also buffers different sets of indices to those vertices, where each such set represents a different graphics primitive or geometry object. The geometry processing units may then stream the buffered vertices and indices to global buffers in parallel with one another. A stream output synchronization unit coordinates the parallel streaming of vertices and indices by providing each geometry processing unit with a different base address within a global vertex buffer where vertices may be written. The stream output synchronization unit also provides each geometry processing unit with a different base address within a global index buffer where indices may be written.


