GPU Post-Tessellation Blending with Cached Domain Shading
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing tessellation methods in computer graphics result in undesirable visual artefacts due to discontinuous changes in level of detail, and they require excessive processing effort, particularly when a large number of triangles are used.
Innovation Solution
Implementing a GPU pipeline with post-tessellation blender hardware that includes a cache and/or content addressable memory to reduce duplicate domain shading operations by storing UV coordinates and world space vertices, allowing for efficient blending and domain shading.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Manufacturing precision
If a large number of triangles are used to increase level of detail, then the accuracy of surface approximation is improved, but the processing effort required to render the scene increases
Solution Approach 1:
The patent applies preliminary action by performing domain shading operations in advance during the tessellation process. The domain shader is executed for each tessellated triangle to pre-compute shading information, which is then stored in a cache. This allows the blender hardware to access pre-computed data during the blending phase, reducing the need for redundant shading operations and lowering overall processing effort while maintaining high surface approximation accuracy.
Solution Approach 2:
The patent uses copying by creating a cache data structure that stores domain shading results for tessellated triangles. Instead of recomputing shading for every triangle during blending, the system copies pre-computed shading data from the domain shader into the cache, allowing efficient retrieval and reuse. This copying mechanism significantly reduces processing effort while preserving the visual quality achieved through high triangle counts.
2Reliability
If domain shading is performed for all vertices including those that do not require blending, then complete coverage is achieved, but redundant calculations increase processing time
Solution Approach 1:
The patent applies preliminary action by executing the domain shader in advance during the tessellation phase for all triangles, regardless of whether they will be blended. The shading results are stored in a cache data structure that persists into the blending phase. This ensures that when blending occurs, all necessary shading data is already available, eliminating the need for redundant domain shading operations and reducing processing time while maintaining complete vertex coverage.
Solution Approach 2:
The patent extracts the domain shading operation from the blending process by separating these two functions into distinct pipeline stages. The domain shader executes independently during tessellation, and its results are extracted into a cache that is then consumed by the blender hardware. This extraction allows the system to avoid redundant shading calculations for vertices that do not require blending, reducing processing time while ensuring all vertices are properly shaded.
3Productivity
If a cache is introduced to store domain shading results, then duplicate operations are reduced, but device complexity increases
Solution Approach 1:
The patent implements a cache data structure that stores domain shading results in a simplified copying mechanism. The cache uses standard memory structures to store shading data for tessellated triangles, allowing efficient retrieval during blending. This approach achieves high throughput by eliminating duplicate domain shading operations while introducing only minimal hardware complexity, as the cache operates using conventional memory access patterns rather than complex specialized hardware.
Data Source
AI summary
Implementations of post-tessellation blender hardware perform both domain shading and blending and while some vertices may not require blending, all vertices require domain shading. The blender hardware includes a cache and/or a content addressable memory and these data structures are used to reduce duplicate domain shading operations. In the event of a cache miss for a UV coordinate of a domain space vertex, a cache outputs the UV coordinate to a domain shader, where the domain space vertex comprises UV coordinates of neighbor vertices that are not inherent from the UV coordinates of the vertex itself.


