Ray Tracing Triangle Strip Storage for Lower Vertex Data Bandwidth

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing ray tracing techniques on graphics processors are processing-intensive and require significant memory bandwidth due to high memory usage and inefficient storage of graphics primitives during ray-primitive intersections.

Innovation Solution

The method involves sorting graphics primitives into groups of contiguous primitives, storing fewer instances of shared vertex data, and optimizing the storage of these primitives using a ray tracing acceleration data structure like a bounding volume hierarchy (BVH) to reduce memory requirements and improve efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If traditional ray tracing techniques are used to determine geometry intersections, then rendering accuracy is improved, but processing intensity and memory bandwidth requirements increase significantly

Engineering Contradiction:
Improverendering accuracyVSAvoidprocessing intensity
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent segments geometry data into triangle strips, where consecutive triangles share vertices. This segmentation allows the ray tracing unit to process groups of triangles efficiently by loading vertex data once and reusing it across multiple triangles, rather than processing each triangle independently with full vertex data, thus reducing processing intensity while maintaining rendering accuracy.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary organization of geometry data into triangle strips with shared vertices before ray tracing operations. By pre-structuring the data to indicate vertex sharing relationships, the system prepares the geometry in an optimized format that reduces memory bandwidth requirements during actual ray-primitive intersection tests, without compromising the accuracy of rendering.

Inventive Principle:
Principle #10Preliminary action

2Measurement precision

If complete vertex data is stored for each graphics primitive, then rendering precision is maintained, but memory usage and bandwidth requirements increase

Engineering Contradiction:
Improverendering precisionVSAvoidmemory usage
Core Design Contradiction:
Measurement precisionVSQuantity of substance

Solution Approach 1:

The patent merges shared vertices across multiple triangles within a triangle strip into a single stored instance. Instead of storing complete vertex data for each triangle independently, the system stores vertex data once and uses references or indicators to show that the same vertex is shared by multiple triangles, thereby reducing memory usage while preserving rendering precision.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent uses references or pointers to copy vertex data relationships rather than duplicating actual vertex data. By storing lightweight references that indicate which vertices are shared among triangles in a strip, the system maintains the ability to reconstruct complete geometry information without actually copying large amounts of vertex data, thus reducing memory bandwidth requirements.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS12561889B2Graphics processing using ray trace unit triangle strip data structure
Publication Date: 2026.02.24 ARM LTD
  • US12561889B2 patent drawing
  • US12561889B2 patent drawing
  • US12561889B2 patent drawing

AI summary

A system for storing geometry data for use by a graphics processor when rendering a frame that represents a view of a scene using a ray tracing process. The system comprises a processing circuit that is configured to prepare a ray tracing acceleration data structure for use when rendering a frame that represents a view of a scene using a ray tracing process. Graphics primitives for an end point of the ray tracing acceleration data structure is sorted into groups of contiguous graphics primitives, and fewer instances of vertex data is stored for a graphics primitive that is shared by at least two graphics primitives of the group of contiguous graphics primitives than the number of graphics primitives in the group of contiguous graphics primitives that share the vertex.