Ray Tracing Shader Memory Allocation for Recursive Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing ray tracing systems face challenges in managing memory allocation for recursive processing, particularly in devices with limited on-chip storage capabilities, leading to performance degradation due to the need for increased on-chip resources or inefficient use of off-chip memory.

Innovation Solution

A method and system for ray tracing that dynamically allocates memory using a unified heap for storing state and payload data, allowing flexible allocation of registers for intermediate data, and suspends parent shaders while child shaders execute, optimizing memory usage and reducing latency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If traditional ray tracing systems allocate separate memory regions for state data and payload data, then memory management is simplified, but memory efficiency decreases and performance degrades due to increased data transfer between on-chip and off-chip memory

Engineering Contradiction:
Improvememory management simplicityVSAvoidray tracing performance
Core Design Contradiction:
Ease of manufactureVSProductivity

Solution Approach 1:

The patent merges the previously separate state data memory region and payload data memory region into a unified memory space. This unification allows for more efficient memory utilization and reduces data transfer overhead between on-chip and off-chip memory, thereby improving ray tracing performance while maintaining manageable memory allocation through a single unified region approach.

Inventive Principle:
Principle #5Merging (Combining)

2Speed

If on-chip storage capacity is increased to handle recursive processing, then processing speed improves, but device complexity and resource requirements increase

Engineering Contradiction:
Improveprocessing speedVSAvoidon-chip resource requirements
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent introduces a unified memory region that acts as an intermediary between on-chip processing units and off-chip storage. This unified region efficiently manages both state data and payload data, reducing the need for large on-chip storage capacity while maintaining high processing speeds through optimized data access patterns and reduced memory transfer latency.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Ease of operation

If separate memory allocation is used for state data and payload data, then data organization is improved, but memory usage efficiency decreases

Engineering Contradiction:
Improvedata organizationVSAvoidmemory usage efficiency
Core Design Contradiction:
Ease of operationVSQuantity of substance

Solution Approach 1:

The patent combines separate memory allocations for state data and payload data into a unified memory region. This approach improves memory usage efficiency by eliminating wasted space and enabling better memory utilization, while data organization is maintained through structured management within the unified region, allowing efficient access patterns for both data types.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentEP3975127B1Memory allocation for recursive processing in a ray tracing system
Publication Date: 2025.11.12 IMAGINATION TECH LTD
  • EP3975127B1 patent drawingFigure 1~2
  • EP3975127B1 patent drawingFigure 3
  • EP3975127B1 patent drawingFigure 4~5

AI summary

Ray tracing systems and methods are described for processing rays. A parent shader is executed for a ray. The parent shader includes a shader recursion instruction which invokes a child shader. The execution of the parent shader for the ray is suspended. Intermediate data for the parent shader is stored in a heap of memory, wherein the intermediate data comprises state data and payload data. Storing intermediate data comprises allocating a first set of registers in the heap of memory for storing payload data, and allocating a second set of registers in the heap of memory for storing state data. When the parent shader is ready to resume, intermediate data for the parent shader is read from the heap of memory, and the execution of the parent shader for the ray is resumed.