Primitive Assembly Before Vertex Attribute Shading

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional graphics processing systems perform vertex attribute processing before primitive assembly, leading to unnecessary processing of vertices that may not be used in complete primitives, increased storage requirements, and inefficiencies in multi-view and suspended processing operations.

Innovation Solution

The method involves assembling primitives from vertex indices first, followed by fetching and processing vertex attributes after assembly, allowing for conditional vertex attribute processing only for used vertices, reducing storage needs and improving efficiency in multi-view and suspended operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If vertex attribute processing is performed before primitive assembly, then vertex attributes are prepared in advance for processing, but unused vertices are also processed unnecessarily and storage requirements increase

Engineering Contradiction:
Improvegraphics processing throughputVSAvoidunnecessary vertex processing
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The patent applies preliminary action by performing primitive assembly before vertex attribute processing. The graphics processing unit first assembles primitives from vertex indices, then performs vertex attribute processing only for vertices that are actually used in complete primitives. This reverses the conventional order and ensures that preprocessing efforts are not wasted on vertices that will ultimately be discarded.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent implements local quality by differentiating the processing applied to different vertices based on their actual usage. Vertices that are part of complete primitives receive full attribute processing, while vertices that are not used receive no processing. This selective approach optimizes resource utilization by applying processing quality locally where it is actually needed.

Inventive Principle:
Principle #3Local quality

2Productivity

If all vertices are processed and stored before primitive assembly, then vertex attributes are readily available for processing, but storage requirements and memory bandwidth consumption increase

Engineering Contradiction:
Improvevertex attribute availabilityVSAvoidstorage requirements
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The patent applies the extraction principle by separating the primitive assembly operation from vertex attribute processing. Instead of loading and storing all vertex attributes upfront, the system extracts only the necessary vertex attributes after primitive assembly identifies which vertices are actually used. This reduces the quantity of data that needs to be stored and transferred through memory.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent performs primitive assembly as a preliminary action before vertex attribute processing. By first determining which vertices form complete primitives, the system can then selectively fetch and process only those vertex attributes that are actually needed, rather than loading all vertex data into storage beforehand.

Inventive Principle:
Principle #10Preliminary action

3Ease of operation

If vertex attributes are processed before primitive assembly, then processing can proceed in a standard pipeline fashion, but the system cannot take advantage of multi-view or suspended operations efficiently

Engineering Contradiction:
Improvepipeline processing simplicityVSAvoidmulti-view and suspended operations support
Core Design Contradiction:
Ease of operationVSAdaptability or versatility

Solution Approach 1:

The patent introduces dynamics by making the vertex attribute processing stage conditional and adaptive based on primitive assembly results. The processing pipeline becomes dynamic rather than static, allowing the system to adapt to different operation modes such as multi-view rendering or suspended operations. The vertex attribute processing is triggered only when needed, based on the actual primitive assembly outcomes.

Inventive Principle:
Principle #15Dynamics

4Productivity

If conventional primitive assembly is performed after vertex processing, then the processing sequence is straightforward, but suspended processing operations require re-processing of all vertices including unused ones

Engineering Contradiction:
Improveprocessing sequence efficiencyVSAvoidre-processing time in suspended operations
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent performs primitive assembly as a preliminary action before vertex attribute processing. When suspended operations need to be resumed, the system only needs to re-process the vertex attributes for primitives that were actually assembled, rather than re-processing all vertices. This significantly reduces the time loss associated with suspended and resumed operations.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11790479B2Primitive assembly and vertex shading of vertex attributes in graphics processing systems
Publication Date: 2023.10.17 ARM LTD
  • US11790479B2 patent drawing
  • US11790479B2 patent drawing
  • US11790479B2 patent drawing

AI summary

When generating a graphics processing output, a sequence of one or more of primitives to be processed when generating the output is assembled from a set of vertex indices provided for the output based on primitive configuration information provided for the output, each assembled primitive of the sequence of assembled primitives comprising an identifier for the primitive and a set of one or more vertex indices for the primitive. One or more attributes for vertices of the assembled primitives are then shaded and fetched based on the vertex indices of the assembled primitives. The assembled primitives including their shaded fetched vertex attribute(s) are then provided to later stages of the graphics processing pipeline for processing.