GPU Vertex Buffering via Index Copies

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvevertex data completenessVSAvoidrendering speed
Core Design Contradiction:
ReliabilityVSProductivity

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.

Inventive Principle:
Principle #26Copying

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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

Engineering Contradiction:
Improvevertex data preservationVSAvoiddata storage volume
Core Design Contradiction:
ReliabilityVSQuantity of substance

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.

Inventive Principle:
Principle #26Copying

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.

Inventive Principle:
Principle #1Segmentation

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

Engineering Contradiction:
Improvevertex data accessibilityVSAvoidGPU resource consumption
Core Design Contradiction:
Ease of operationVSUse of energy by moving object

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS9418616B2Technique for storing shared vertices
Publication Date: 2016.08.16 NVIDIA CORP
  • US9418616B2 patent drawing
  • US9418616B2 patent drawing
  • US9418616B2 patent drawing

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.