Deferred Vertex Attribute Shading for GPU Primitive Culling

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional graphics processing pipelines waste computational resources by performing vertex shading and fetching operations on non-visible primitives, leading to inefficiencies in power consumption and performance due to unnecessary computations and bandwidth usage.

Innovation Solution

Implementing deferred vertex attribute shading, where vertex attributes are computed and culled first, and only non-position attributes are processed for surviving primitives after culling, reducing redundant computations and improving processing efficiency by deferring attribute shading until after primitive culling.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of energy

If vertex shading and fetching operations are performed on all primitives in conventional graphics pipelines, then complete rendering coverage is achieved, but computational resources are wasted on non-visible primitives

Engineering Contradiction:
Improvepower consumptionVSAvoidprocessing efficiency
Core Design Contradiction:
Loss of energyVSProductivity

Solution Approach 1:

The patent applies preliminary action by performing primitive culling operations before vertex shading and fetching. The system determines which primitives are visible and will contribute to the final rendered image, then discards non-visible primitives before expensive vertex processing operations. This preliminary filtering prevents wasted computational resources on primitives that would not be rendered, directly reducing power consumption while improving processing efficiency.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If vertex attributes are computed for all primitives, then all potential rendered elements are prepared, but unnecessary computations increase bandwidth usage and reduce performance

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidcomputation time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent extracts and separates the culling operation from the vertex processing pipeline. By extracting the primitive visibility determination step and performing it independently before vertex attribute computation, the system eliminates unnecessary vertex processing for non-visible primitives. This extraction of the filtering function reduces both computation time and bandwidth usage by ensuring vertex attributes are only computed for primitives that will actually be rendered.

Inventive Principle:
Principle #2Taking out (Extraction)

3Loss of energy

If deferred vertex attribute shading is implemented, then unnecessary computations are reduced, but pipeline complexity increases

Engineering Contradiction:
Improvepower consumptionVSAvoidpipeline complexity
Core Design Contradiction:
Loss of energyVSDevice complexity

Solution Approach 1:

The patent segments the graphics processing pipeline into distinct stages: primitive culling, vertex fetching, and vertex shading. By dividing the processing flow into separate, modular stages with clear interfaces, the system reduces pipeline complexity despite adding the culling step. Each segment handles a specific function independently, making the overall system more manageable and maintainable while achieving the energy savings from reduced unnecessary computations.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS11715262B2Optimizing primitive shaders
Publication Date: 2023.08.01 ADVANCED MICRO DEVICES INC
  • US11715262B2 patent drawing
  • US11715262B2 patent drawing
  • US11715262B2 patent drawing

AI summary

A method of deferred vertex attribute shading includes computing, at a graphics processing pipeline of a graphics processing unit (GPU), a plurality of vertex attributes for vertices of each primitive of a set of primitives. The plurality of vertex attributes to be computed includes a vertex position attribute and at least a first non-position attribute for each primitive. One or more primitives of the set of primitives that do not contribute to a rendered image are discarded based upon the vertex position attribute for vertices of the set of primitives. A set of surviving primitives is generated based on the culling and deferred attribute shading is performed for at least a second non-position attribute for vertices of the set of surviving primitives.