Tile-Based Z-Value Transfer Between IGPU and DGPU

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The existing methods for transferring pre-computed Z-values between graphics processing units (GPUs) strain system memory bandwidth and invalidate Z-buffer compression techniques, leading to performance bottlenecks in graphics pipelines.

Innovation Solution

The method involves partitioning the display surface into tiles, generating a full-screen quad and tile quads with x and y coordinates, and configuring the first GPU to render image frames with minimum z-values, which are then used to create a coarse z-texture, allowing efficient pre-computation and transfer of z-values without straining system memory bandwidth or defeating Z-buffer compression.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the DMA engine copies the full Z-buffer from IGPU local memory to DGPU local memory via system memory, then the DGPU can obtain pre-computed Z-values for rendering, but the system memory bandwidth is strained and Z-buffer compression techniques are invalidated

Engineering Contradiction:
ImproveZ-value transfer reliabilityVSAvoidgraphics pipeline performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent divides the display surface into multiple tiles, with each tile containing a subset of pixels. Instead of transferring the complete Z-buffer for the entire display surface, only the Z-values corresponding to pixels within each tile are transferred. This segmentation reduces the total data volume transferred between GPUs while maintaining the integrity and utility of the pre-computed Z-values for the DGPU's rendering operations.

Inventive Principle:
Principle #1Segmentation

2Measurement precision

If the full Z-buffer is transferred between GPUs, then complete depth information is available for rendering, but the data volume becomes a bottleneck in the graphics pipeline

Engineering Contradiction:
Improvedepth information completenessVSAvoiddata transfer efficiency
Core Design Contradiction:
Measurement precisionVSProductivity

Solution Approach 1:

The patent extracts only the necessary portion of the Z-buffer data by identifying and transferring solely the Z-values that correspond to pixels within the display surface boundaries. This extraction process eliminates unnecessary data transfer while preserving all required depth information for accurate rendering, thereby improving data transfer efficiency without compromising rendering precision.

Inventive Principle:
Principle #2Taking out (Extraction)

3Adaptability or versatility

If the Z-buffer is transferred via system memory, then standard memory interfaces can be used, but the transfer speed becomes limited and bottlenecks the graphics pipeline

Engineering Contradiction:
Improvememory interface compatibilityVSAvoidZ-buffer transfer speed
Core Design Contradiction:
Adaptability or versatilityVSSpeed

Solution Approach 1:

By segmenting the Z-buffer transfer into tile-based portions, the patent enables more efficient utilization of available memory interfaces. The reduced data volume from transferring only tile-specific Z-values allows for faster transfer speeds while maintaining compatibility with standard memory interfaces, thereby alleviating the bottleneck in the graphics pipeline.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS8395619B1System and method for transferring pre-computed Z-values between GPUs
Publication Date: 2013.03.12 NVIDIA CORP
  • US8395619B1 patent drawing
  • US8395619B1 patent drawing
  • US8395619B1 patent drawing

AI summary

One embodiment of the present invention sets forth a method for pre-computing Z-values using an IGPU and, subsequently, conveying these Z-values to a DGPU. The graphics driver partitions the display into rectangular M-by-N tiles of pixels. For each tile, the graphics driver generates a quad geometry that encompasses the corresponding pixels. For each image frame, the graphics driver configures the IGPU to generate and down-sample a Z-buffer, creating a coarse Z-texture that contains a Z-value for each tile. The graphics driver transfers the coarse Z-texture to the system memory and configures the DGPU to apply the coarse Z-texture to the quad geometries, thereby generating a coarse Z-buffer in which the M-by-N pixels included in each tile are assigned the Z-value for the particular tile. Among other things, this technique enables the IGPU to pre-compute Z-values for the DGPU without straining the system memory bandwidth or defeating the Z-buffer compression techniques used by the DGPU.