Early Vertex Culling in Graphics Pipelines

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional graphics processing pipelines waste memory bandwidth and processing resources by retrieving and processing vertex attributes for vertices that are eventually culled downstream in the pipeline, as all vertex attributes are retrieved and processed even if primitives are culled later.

Innovation Solution

Implementing early vertex culling by generating a compiled program that includes culling instructions to identify and discard vertices that will be culled, reducing unnecessary memory retrieval and processing by performing culling operations earlier in the pipeline.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If all vertex attributes are retrieved and processed in conventional pipelines, then complete processing is ensured, but memory bandwidth is wasted and processing resources are consumed unnecessarily for culled vertices

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidmemory bandwidth waste
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The patent applies preliminary action by performing viewport culling operations before vertex attribute fetch and vertex lighting stages. The system determines which primitives are visible and culls invisible ones early in the pipeline, preventing unnecessary retrieval and processing of vertex attributes for culled vertices. This early determination action resolves the contradiction by avoiding wasted memory bandwidth and processing resources while ensuring complete processing only for visible geometry.

Inventive Principle:
Principle #10Preliminary action

2Loss of energy

If early culling is implemented, then memory bandwidth and processing resources are saved, but additional culling operations are required in the pipeline

Engineering Contradiction:
Improvememory bandwidth utilizationVSAvoidpipeline structure
Core Design Contradiction:
Loss of energyVSDevice complexity

Solution Approach 1:

The patent integrates viewport culling operations at an early stage in the graphics processing pipeline, before vertex attribute fetch and vertex lighting. By performing the culling determination early, the system avoids unnecessary processing of invisible primitives while incorporating the culling logic into existing pipeline stages, thereby saving memory bandwidth without significantly increasing overall pipeline complexity.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8542247B1Cull before vertex attribute fetch and vertex lighting
Publication Date: 2013.09.24 NVIDIA CORP
  • US8542247B1 patent drawing
  • US8542247B1 patent drawing
  • US8542247B1 patent drawing

AI summary

One embodiment of the invention sets forth a mechanism for compiling a vertex shader program into two portions, a culling portion and a shading portion. The culling portion of the compiled vertex shader program specifies vertex attributes and instructions of the vertex shader program needed to determine whether early vertex culling operations should be performed on a batch of vertices associated with one or more primitives of a graphics scene. The shading portion of the compiled vertex shader program specifies the remaining vertex attributes and instructions of the vertex shader program for performing vertex lighting and performing other operations on the vertices in the batch of vertices. When the compiled vertex shader program is executed by graphics processing hardware, the shading portion of the compiled vertex shader is executed only when early vertex culling operations are not performed on the batch of vertices.