Graphics Pipeline Mesh Shader Throughput Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional graphics processing pipelines are limited by the fixed throughput of the primitive distributor and have an inflexible programming model, leading to inefficient processing and resource wastage due to inability to perform culling operations early in the pipeline.

Innovation Solution

Implementing a graphics processing pipeline that uses mesh shaders and task shaders to generate meshlets, allowing cooperative execution of threads and enabling operations like culling, which replaces the primitive distributor, vertex processing units, and geometry shading units, thereby improving throughput and flexibility.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a primitive distributor with fixed throughput is used, then the pipeline structure is simple, but the overall throughput of the graphics processing pipeline is limited

Engineering Contradiction:
ImprovethroughputVSAvoidpipeline structure
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent replaces the fixed-function primitive distributor with dynamic, programmable mesh shader units that can adapt their operation based on input data characteristics. The mesh shader generator dynamically determines the number of mesh shaders to invoke based on task shader output, allowing the system to optimize throughput for different workloads rather than being constrained by a fixed hardware throughput limit.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the operational parameters of the graphics pipeline by allowing the mesh shader count to be dynamically adjusted based on task shader output. This parameter change enables the pipeline to scale throughput according to actual processing needs rather than being limited by fixed hardware capabilities, directly resolving the throughput bottleneck.

Inventive Principle:
Principle #35Parameter changes

2Productivity

If each vertex is independently processed by a different thread, then parallel processing is maximized, but culling operations cannot be performed to discard non-visible primitives

Engineering Contradiction:
Improveparallel processing efficiencyVSAvoidprogramming flexibility
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent segments the vertex processing workflow into distinct stages: task shader execution, mesh shader execution, and primitive rendering. This segmentation allows culling operations to be performed at the mesh shader stage before primitive generation, enabling threads to work in parallel on visible primitives only. The segmentation creates intermediate data structures (meshlets) that facilitate this staged processing approach.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The mesh shader stage performs preliminary culling actions by determining which primitives are visible before they are fully generated and passed to subsequent rendering stages. This preliminary action discards non-visible primitives early in the pipeline, preventing wasted processing in later stages while maintaining parallel processing efficiency through the structured thread organization.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If downstream units process all primitives, then complete rendering is ensured, but processing resources and power are wasted on non-visible primitives

Engineering Contradiction:
Improverendering completenessVSAvoidpower consumption
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The mesh shader stage performs preliminary visibility determination and culling before primitives are passed downstream. By evaluating which primitives are visible at this earlier stage and filtering out non-visible ones, the system ensures that only necessary primitives proceed to resource-intensive downstream processing stages, thereby maintaining rendering completeness for visible objects while eliminating wasteful processing of invisible ones.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent converts the potential harm of processing non-visible primitives into a benefit by implementing early culling mechanisms. The mesh shader stage identifies and discards invisible primitives, transforming what would be wasted processing cycles into energy savings. This approach maintains the reliability of visible object rendering while converting the energy that would have been wasted into overall system efficiency improvements.

Inventive Principle:
Principle #22Blessing in disguise (Convert harm into benefit)

Data Source

PatentUS10909739B2Techniques for representing and processing geometry within an expanded graphics processing pipeline
Publication Date: 2021.02.02 NVIDIA CORP
  • US10909739B2 patent drawing
  • US10909739B2 patent drawing
  • US10909739B2 patent drawing

AI summary

In various embodiments, a parallel processor implements a graphics processing pipeline that generates rendered images. In operation, the parallel processor causes execution threads to execute a task shading program on an input mesh to generate a task shader output specifying a mesh shader count. The parallel processor then generates mesh shader identifiers, where the total number of the mesh shader identifiers equals the mesh shader count. For each mesh shader identifier, the parallel processor invokes a mesh shader based on the mesh shader identifier and the task shader output to generate geometry associated with the mesh shader identifier. Subsequently, the parallel processor performs operations on the geometries associated with the mesh shader identifiers to generate a rendered image. Advantageously, unlike conventional graphics processing pipelines, the performance of the graphics processing pipeline is not limited by a primitive distributor.