Fast Geometry Shader Mode for Shared Vertex Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional geometry shaders in graphics processing pipelines require each primitive output to have unique vertices, leading to a slowdown in processing rate when adjacent primitives share common vertices, as they introduce unnecessary vertex expansion and attribute duplication.

Innovation Solution

Implementing a fast geometry shader mode that operates without expanding input geometry, where only per-primitive attributes are generated, and shared vertices are maintained to reduce vertex duplication and attribute traffic, allowing for efficient processing of primitives with shared vertices.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Manufacturing precision

If traditional geometry shader requires unique vertices for each primitive output, then vertex attributes can be uniquely associated with each primitive, but primitive processing rate slows down due to vertex expansion and attribute duplication

Engineering Contradiction:
Improvevertex attribute association accuracyVSAvoidprimitive processing rate
Core Design Contradiction:
Manufacturing precisionVSProductivity

Solution Approach 1:

The patent changes the operational mode parameter of the geometry shader from traditional mode to fast geometry shader mode. In fast mode, the system accepts shared vertices across primitives and only generates per-primitive attributes, fundamentally changing how vertices and attributes are handled to improve processing rate while maintaining sufficient attribute association through alternative means

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent segments the attribute generation process by separating per-vertex attributes from per-primitive attributes. In fast geometry shader mode, only per-primitive attributes are generated, while per-vertex attributes are shared across primitives. This segmentation allows the system to avoid duplicating vertex data while still providing necessary attribute information for each primitive

Inventive Principle:
Principle #1Segmentation

2Productivity

If fast geometry shader mode operates without expanding input geometry, then primitive processing rate improves, but per-vertex attributes cannot be uniquely generated for each primitive output

Engineering Contradiction:
Improveprimitive processing rateVSAvoidper-vertex attribute generation
Core Design Contradiction:
ProductivityVSManufacturing precision

Solution Approach 1:

The patent changes the attribute generation parameter from generating both per-vertex and per-primitive attributes to generating only per-primitive attributes in fast geometry shader mode. This parameter change allows the system to operate at higher speeds by eliminating the attribute duplication step while still providing sufficient information for rendering through the per-primitive attributes and shared vertex approach

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS9836878B2System, method, and computer program product for processing primitive specific attributes generated by a fast geometry shader
Publication Date: 2017.12.05 NVIDIA CORP
  • US9836878B2 patent drawing
  • US9836878B2 patent drawing
  • US9836878B2 patent drawing

AI summary

A system, method, and computer program product are provided for processing primitive-specific attributes. A portion of a graphics processor is determined to operate in a fast geometry shader mode and a vertex associated with a set of per-vertex attributes is determined to be a shared vertex. The shared vertex is determined to be a non-provoking vertex corresponding to a first primitive that is associated with a first set of per-primitive attributes and the shared vertex is determined to be a provoking vertex corresponding to a second primitive that is associated with a second set of per-primitive attributes. Only one set of the per-vertex attributes associated with the shared vertex is stored and only one of the second set of per-primitive attributes associated with the second primitive is stored.