Ray Tracing Acceleration Structure Shader Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Ray tracing operations in graphics rendering suffer from divergence issues due to the execution of intersection and hit shaders during acceleration structure traversal, leading to inefficiencies in processing multiple rays and materials.

Innovation Solution

Instead of executing intersection and hit shaders during acceleration structure traversal, a shader program fully traverses the structure to record the closest intersection, and then launches waves to process continuation rays, reducing divergence by grouping materials and executing shaders only for the closest hit triangles.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If intersection and hit shaders are executed during acceleration structure traversal, then material processing is performed, but processing efficiency deteriorates due to divergence in SIMD units

Engineering Contradiction:
Improveprocessing efficiencyVSAvoiddivergence in SIMD units
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the ray tracing process into two distinct phases: (1) acceleration structure traversal to identify closest hit triangles, and (2) shader execution for material processing. By separating the traversal phase from the shader execution phase, rays with the same closest hit triangle are grouped together and processed in batches, ensuring that SIMD units execute the same shaders for all active lanes, thereby eliminating divergence and improving processing efficiency.

Inventive Principle:
Principle #1Segmentation

2Manufacturing precision

If shaders are executed for each ray intersection during traversal, then material processing is accurate, but computational overhead increases

Engineering Contradiction:
Improvematerial processing accuracyVSAvoidcomputational overhead
Core Design Contradiction:
Manufacturing precisionVSLoss of energy

Solution Approach 1:

The patent performs preliminary acceleration structure traversal to identify and record the closest hit triangle for each ray before executing any shaders. This preliminary action groups rays by their closest hit triangle, allowing subsequent shader executions to be batched by material. This approach ensures material processing accuracy is maintained while significantly reducing computational overhead by avoiding repeated shader executions for rays hitting the same triangle.

Inventive Principle:
Principle #10Preliminary action

3Measurement precision

If full acceleration structure traversal is performed for each ray, then closest intersection is accurately determined, but processing time increases

Engineering Contradiction:
Improveclosest intersection determinationVSAvoidprocessing time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent merges multiple ray traversals by grouping rays that have the same closest hit triangle. Instead of performing full acceleration structure traversal independently for each ray, the system traverses the acceleration structure once per unique closest hit triangle and processes all rays hitting that triangle together. This merging approach maintains accurate closest intersection determination while reducing total processing time by eliminating redundant traversal operations.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS11488343B2Mechanism for supporting discard functionality in a ray tracing context
Publication Date: 2022.11.01 ADVANCED MICRO DEVICES INC
  • US11488343B2 patent drawing
  • US11488343B2 patent drawing
  • US11488343B2 patent drawing

AI summary

Described herein is a technique for performing ray tracing. According to this technique, instead of executing intersection and/or any hit shaders during traversal of an acceleration structure to determine the closest hit for a ray, an acceleration structure is fully traversed in an invocation of a shader program, and the closest intersection with a triangle is recorded in a data structure associated with the material of the triangle. Later, a scheduler launches waves by grouping together multiple data items associated with the same material. The rays processed by that wave are processed with a continuation ray, rather than the full original ray. A continuation ray starts from the previous point of intersection and extends in the direction of the original ray. These steps help counter divergence that would occur if a single shader program that inlined the intersection and any hit shaders were executed.