Ray Tracing Intersection Testing for Deterministic Shader Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing ray tracing systems face challenges in efficiently rendering 3D scenes in real-time on small devices while adhering to deterministic shader execution requirements, particularly in terms of processing latency, power consumption, and silicon area, due to non-deterministic traversal of acceleration structures.

Innovation Solution

The method involves grouping rays into packets for parallel intersection testing and deferring traverse shader execution until the nearest intersection is found, ensuring a deterministic order of shader execution by re-evaluating if the intersection is valid, and maintaining coherency gathering to reduce memory access costs.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If rays are traced through the scene with immediate shader execution at each intersection, then intersection testing can be performed, but the system cannot ensure deterministic shader execution order and increases processing latency

Engineering Contradiction:
Improvedeterministic shader executionVSAvoidprocessing latency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs preliminary intersection testing to identify all potential intersections before executing any shaders. By deferring shader execution until all intersections are known, the system establishes a deterministic execution order while avoiding the latency of immediate shader execution at each intersection point.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The rendering process is segmented into distinct phases: first identifying all intersections through acceleration structure traversal, then executing shaders in a determined order. This segmentation separates the geometric intersection testing from the computational shader execution, allowing deterministic ordering without increasing overall latency.

Inventive Principle:
Principle #1Segmentation

2Productivity

If acceleration structures are used to reduce intersection tests, then the number of tests decreases, but memory access costs increase due to traversing the acceleration structure

Engineering Contradiction:
Improveintersection testing efficiencyVSAvoidmemory access power consumption
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The system merges multiple ray traversals into a single acceleration structure traversal by gathering coherent rays that share common intersection candidates. This combining approach reduces redundant memory accesses to the acceleration structure while maintaining the productivity benefits of accelerated intersection testing.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The system changes the processing parameters by batching multiple rays together and traversing the acceleration structure once for the entire batch. This parameter change from individual ray traversal to batched ray traversal reduces memory access frequency and associated power consumption while preserving intersection testing efficiency.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If traverse shaders are executed immediately upon identifying an intersection, then the intersection can be validated, but the shader execution order becomes non-deterministic

Engineering Contradiction:
Improveintersection validationVSAvoidshader execution order determinism
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The system performs preliminary identification of all intersections and their validities through traverse shader execution in a predetermined order. By deferring the actual shader execution until after all intersections are identified, the system maintains both reliable intersection validation and deterministic execution order.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system introduces an intermediary step where intersections are identified and queued before shader execution. This intermediary buffer separates the intersection identification phase from the shader execution phase, allowing deterministic ordering to be maintained while still performing necessary validation.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Measurement precision

If rays are processed individually through the acceleration structure, then each ray can be tested accurately, but the overall rendering throughput decreases

Engineering Contradiction:
Improveray intersection accuracyVSAvoidrendering throughput
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The system merges multiple individual ray processing operations into a single batched traversal operation. By grouping coherent rays and processing them together through the acceleration structure, the system maintains accurate intersection detection for each ray while significantly improving overall rendering throughput through parallel processing efficiency.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The acceleration structure traversal is designed to handle multiple rays simultaneously with a single traversal operation. This multi-functional approach allows the same traversal logic to serve multiple rays at once, maintaining individual ray accuracy while achieving high throughput through batched processing.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentEP4109409B1Intersection testing in a ray tracing system
Publication Date: 2025.08.06 IMAGINATION TECH LTD
  • EP4109409B1 patent drawingFigure 1
  • EP4109409B1 patent drawingFigure 2
  • EP4109409B1 patent drawingFigure 3~4

AI summary

There is provided a ray tracing unit and a method for processing a ray in a ray tracing system. Intersection testing is performed for the ray by performing one or more intersection testing iterations. Each intersection testing iteration comprises: (i) traversing an acceleration structure to identify the nearest intersection of the ray with a primitive that has not been identified as the nearest intersection in any previous intersection testing iterations for the ray; and (ii) if, based on a characteristic of the primitive, a traverse shader is to be executed in respect of the identified intersection: executing the traverse shader in respect of the identified intersection; and if the execution of the traverse shader determines that the ray does not intersect the primitive at the identified intersection, causing another intersection testing iteration to be performed. When the intersection testing for the ray is complete, an output shader is executed to process a result of the intersection testing for the ray.