Hierarchical Depth Data Generation via Primitive Fusion

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The existing graphics processing systems face inefficiencies in rendering three-dimensional scenes due to the time-consuming process of generating depth values for pixel-based rendering, which increases the overall rendering time.

Innovation Solution

The system employs primitive fusion to generate hierarchical depth data, dividing the image into tiles and determining shared edges between primitives to fuse depth data, thereby reducing the time needed for pixel-based rendering.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Manufacturing precision

If pixel-based rendering is performed to render primitives, then rendering quality is improved, but rendering time increases significantly

Engineering Contradiction:
Improverendering qualityVSAvoidrendering time
Core Design Contradiction:
Manufacturing precisionVSLoss of time

Solution Approach 1:

The system performs preliminary depth data generation during the tile-based rendering phase before pixel-based rendering. Depth values for all primitives are calculated and stored in advance, eliminating the need to generate depth data during the time-consuming pixel-based rendering phase. This preliminary action significantly reduces the overall rendering time while maintaining rendering quality.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The rendering process is divided into two distinct phases: tile-based rendering for generating depth data, and pixel-based rendering for final image output. By segmenting the rendering pipeline and preparing depth information in the first phase, the system optimizes the second phase to focus only on pixel processing, thereby reducing total rendering time without compromising quality.

Inventive Principle:
Principle #1Segmentation

2Measurement precision

If depth values are generated for each primitive during pixel-based rendering, then rendering accuracy is improved, but processing efficiency decreases

Engineering Contradiction:
Improvedepth accuracyVSAvoidprocessing efficiency
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

Depth values for all primitives are calculated and stored during the tile-based rendering phase before pixel-based rendering begins. This preliminary generation of depth data ensures accurate depth information is available when needed, while avoiding the time penalty of generating depth data during the pixel-based rendering phase, thus maintaining both accuracy and efficiency.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system maintains continuous useful action by generating depth data during the tile-based rendering phase, which then serves the pixel-based rendering phase without interruption. This continuous preparation of depth information ensures that the pixel-based rendering can proceed efficiently with all necessary depth data already available, maintaining high processing efficiency throughout.

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS12272000B2Hierarchical depth data generation using primitive fusion
Publication Date: 2025.04.08 ADVANCED MICRO DEVICES INC
  • US12272000B2 patent drawing
  • US12272000B2 patent drawing
  • US12272000B2 patent drawing

AI summary

Concurrently with performing a visibility pass to generate visibility data for two or more bins of an image, a processing system determines whether a primitive to be rendered covers at least a predetermined threshold percentage of a tile of the image. In response to the primitive coving at least the predetermined threshold percentage of the tile, the processing system stores the depth data of the primitive in a depth buffer for pixel-based rendering. In response to the primitive not covering at least the predetermined threshold percentage of the tile, the processing system fuses the primitive with one or more preceding primitives sharing an edge with the primitive in the tile to generate a fused primitive. In response to the fused primitive being valid in the tile, the processing system passes the depth data of the fused primitive to the depth buffer.