Fast Geometry Shader Mode for Shared Vertex Processing
Find Innovative SolutionsGenerate 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
Engineering 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
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
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
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
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
Data Source
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.


