Two-Stage Vertex Shading for Tile-Based Graphics Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing graphics processing pipelines that employ vertex shading often perform redundant vertex shading computations, as not all vertices defined for a draw call contribute to the final graphics output.

Innovation Solution

The proposed solution involves dividing the vertex shading operation into two stages: a first vertex shading operation that generates vertex shaded position data, and a second vertex shading operation that generates vertex shaded data for non-position attributes, with the second operation being deferred until rasterization and controlled based on culling testing results.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If all vertices are subjected to complete vertex shading operations, then comprehensive vertex attribute data is available for processing, but redundant computations occur for vertices that do not contribute to the final output

Engineering Contradiction:
Improvevertex shading computation efficiencyVSAvoidpower consumption
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The patent applies preliminary action by performing a first vertex shading operation that generates vertex shaded position data before rasterization, enabling early determination of which vertices will contribute to the final output. This preliminary computation allows the system to identify and avoid redundant second vertex shading operations for vertices that are culled during rasterization, thereby reducing overall power consumption while maintaining processing efficiency.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent segments the vertex shading operation into two distinct stages: a first vertex shading operation that computes position data for all vertices, and a second vertex shading operation that computes non-position attributes only for vertices that survive rasterization and culling. This segmentation eliminates redundant computations and reduces power consumption by avoiding unnecessary processing of vertices that will not contribute to the final rendered output.

Inventive Principle:
Principle #1Segmentation

2Reliability

If all vertices are subjected to complete vertex shading operations, then comprehensive vertex attribute data is available for processing, but the computation load increases unnecessarily

Engineering Contradiction:
Improvecompleteness of vertex attribute processingVSAvoidcomputation load
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies partial action by performing complete vertex shading operations only on vertices that are determined to contribute to the final output, rather than processing all vertices uniformly. The first vertex shading operation processes all vertices for position data, while the second vertex shading operation processes only the subset of vertices that survive rasterization and culling, thereby reducing computation load while maintaining reliability for vertices that matter.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The patent segments vertex shading into two phases: initial position-based shading for all vertices, followed by attribute-based shading only for surviving vertices. This segmentation reduces the overall computation load by avoiding redundant processing of vertices that will be culled, while ensuring that all necessary computations are performed for vertices that contribute to the final output.

Inventive Principle:
Principle #1Segmentation

3Reliability

If all vertices are subjected to complete vertex shading operations, then all vertex attributes are processed, but memory bandwidth is wasted due to redundant data transfer

Engineering Contradiction:
Improvecompleteness of vertex attribute processingVSAvoidmemory bandwidth
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The patent uses preliminary vertex shaded position data computed in the first vertex shading operation to determine which vertices will contribute to the final output before initiating the second vertex shading operation. This preliminary determination allows the system to avoid transferring and processing vertex attribute data for vertices that will be culled, thereby reducing memory bandwidth consumption while ensuring complete processing of relevant vertices.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent applies partial processing by computing and transferring vertex attribute data only for vertices that are determined to contribute to the final output, rather than processing all vertices. The second vertex shading operation is triggered only for surviving vertices, reducing memory bandwidth usage by avoiding redundant data transfer and processing of culled vertices while maintaining completeness for relevant data.

Inventive Principle:
Principle #16Partial or excessive action

4Productivity

If vertex shading is performed before rasterization for all vertices, then vertex attributes are available for primitive processing, but redundant processing occurs for primitives not present in the final output

Engineering Contradiction:
Improveprimitive processing efficiencyVSAvoidcomputation load
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The patent segments vertex shading into two distinct operations: a first operation that shades position attributes for all vertices to enable primitive assembly and rasterization, and a second operation that shades non-position attributes only for vertices belonging to primitives that survive rasterization and culling. This segmentation eliminates redundant computation for primitives not present in the final output while maintaining efficiency for primitive processing.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies partial vertex shading by performing complete vertex shading operations only on vertices that contribute to primitives present in the final output. The second vertex shading operation is conditionally triggered based on rasterization and culling results, reducing computation load by avoiding redundant processing of primitives that will not be rendered while maintaining productivity for relevant primitive processing.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS12243149B2Graphics processing
Publication Date: 2025.03.04 ARM LTD
  • US12243149B2 patent drawing
  • US12243149B2 patent drawing
  • US12243149B2 patent drawing

AI summary

When performing tile-based graphics processing, a first vertex shading operation to generate vertex shaded position data for vertices is performed, and the vertex shaded position data used to prepare primitive lists indicating which primitives should be rendered for respective rendering tiles. Then, when processing a tile, a second vertex shading operation is performed for vertices of primitives for the tile for which fragments have been generated by a rasteriser prior to rendering the graphics fragments, to generate vertex shaded non-position attribute data for the vertices, based on the results of early depth testing before the fragments are rendered.