Graphics Processing Systems Z-Buffer Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current graphics processing systems face inefficiencies due to 'overdraw' issues, where primitives are processed sequentially, leading to redundant rendering operations, especially in complex scenes, which reduces frame rates and increases memory bandwidth requirements.

Innovation Solution

A method involving two processing passes over a stored command list, where the first pass determines primitive visibility data, such as depth values, and the second pass uses this data to selectively render only visible primitives, reducing overdraw by accounting for occlusions and minimizing redundant operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If primitives are processed sequentially in immediate mode rendering, then the graphics processing system can maintain simple architecture and processing order, but redundant rendering operations occur leading to reduced frame rates and increased memory bandwidth requirements

Engineering Contradiction:
Improveframe rateVSAvoidmemory bandwidth
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The patent applies preliminary action by performing a first processing pass before the second rendering pass to determine which primitives are visible and should be rendered. This preliminary visibility determination allows the second pass to skip invisible primitives, avoiding redundant rendering operations and reducing memory bandwidth usage while maintaining high frame rates.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent extracts the visibility determination function from the main rendering pipeline by separating it into a preliminary first pass. This extracted visibility information is then used to filter and select only the necessary primitives for the second rendering pass, eliminating redundant processing and reducing memory bandwidth requirements.

Inventive Principle:
Principle #2Taking out (Extraction)

2Loss of energy

If multiple processing passes are implemented to reduce overdraw, then redundant rendering operations are reduced and memory bandwidth is conserved, but the processing time and complexity of the graphics processing system increases

Engineering Contradiction:
Improvememory bandwidthVSAvoidprocessing time
Core Design Contradiction:
Loss of energyVSLoss of time

Solution Approach 1:

The patent applies partial action by implementing a selective rendering approach where only visible primitives are fully rendered in the second pass. The first pass performs a partial rendering operation limited to visibility determination, while the second pass performs complete rendering only for necessary primitives, optimizing the balance between processing time and memory bandwidth usage.

Inventive Principle:
Principle #16Partial or excessive action

3Productivity

If primitives are rendered in front-to-back order to eliminate overdraw, then redundant rendering operations are eliminated, but the graphics processing system cannot maintain coherent access to resources and efficient primitive processing

Engineering Contradiction:
Improverendering efficiencyVSAvoidresource access coherence
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The patent segments the rendering process into two distinct passes: a first pass for visibility determination and a second pass for actual rendering. This segmentation allows the system to maintain front-to-back ordering for visibility determination (eliminating overdraw) while preserving resource access coherence in the second pass through selective rendering of only visible primitives.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS8698820B2Graphics processing systems
Publication Date: 2014.04.15 ARM LTD
  • US8698820B2 patent drawing
  • US8698820B2 patent drawing
  • US8698820B2 patent drawing

AI summary

In a graphics processing system, a command list reader first reads-in and identifies a portion of a command list. The primitives corresponding to the commands in the portion of the command list are then subjected to a Z-only processing pass. This allows a Z-buffer 16 and a hierarchical Z-pyramid 8 to be filled with the appropriate Z-values for the primitives in the portion of the primitive list. The primitives are then subjected to a second, normal rendering, processing pass, but the filled Z-buffer 16 and Z-pyramid from the first processing pass are used together with the Z-tests 7, 10 performed in the second processing pass to determine which primitive should be processed for each sampling point in the second processing pass.