Z-Only Fragment Compaction for Shader Pipeline Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The programmable fragment processor in graphics processing subsystems is often a bottleneck in rendering performance due to the need to execute shader programs for each fragment, resulting in high computational requirements, especially with many empty z-only fragment groups produced by algorithms like shadow algorithms.

Innovation Solution

Discarding empty z-only fragment groups instead of processing them, and forwarding only those covered by geometric primitives to the shader pipeline, allowing for improved load balancing and resource management among shader pipelines.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If empty z-only fragment groups are processed through the shader pipeline, then shader throughput decreases and more pipelines are required, but processing them ensures complete coverage of all fragment groups

Engineering Contradiction:
Improveshader throughputVSAvoidnumber of shader pipelines
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent extracts and identifies empty z-only fragment groups (those not covered by any geometric primitive) and removes them from the processing stream before they reach the shader pipelines. This is accomplished through a compactor that detects when a fragment group contains only z-values without corresponding geometric coverage, and discards these empty groups. By taking out these unnecessary processing elements, the system achieves higher shader throughput and requires fewer pipelines while maintaining correct rendering output.

Inventive Principle:
Principle #2Taking out (Extraction)

2Reliability

If all fragment groups are forwarded to shader pipelines, then rendering completeness is maintained, but computational requirements and processing time increase

Engineering Contradiction:
Improverendering completenessVSAvoidprocessing time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by performing a coverage check on fragment groups before they are forwarded to the shader pipelines. The compactor examines each fragment group to determine whether it is covered by a geometric primitive in advance of shader processing. By performing this preliminary filtering action, the system ensures that only necessary fragment groups proceed to the computationally intensive shader stage, maintaining rendering completeness for covered fragments while eliminating wasteful processing time on empty fragment groups.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS7616202B1Compaction of z-only samples
Publication Date: 2009.11.10 NVIDIA CORP
  • US7616202B1 patent drawing
  • US7616202B1 patent drawing
  • US7616202B1 patent drawing

AI summary

Methods and systems for processing fragment groups are described. Fragment groups that include z-only pixels are accessed. A z-only pixel has associated therewith two or more z-values instead of a single z-value. Fragment groups that are not covered by a geometric primitive are discarded, while fragment groups that are covered by a geometric primitive are forwarded to a shader pipeline.