Vertex Attribute Caching for Higher Primitive Assembly Throughput

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing graphics processing systems face inefficiencies in obtaining vertex attributes for primitives, particularly due to reliance on a single large storage for processed vertex attributes, which can hinder throughput and efficiency.

Innovation Solution

Implementing a dual storage system where processed vertex attributes are stored in a smaller, dedicated second storage for efficient retrieval, with a larger first storage as a fallback, allowing for predictable vertex attribute loading based on the sequential processing of primitives.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If a single large storage is used for processed vertex attributes, then storage capacity is sufficient, but access efficiency and throughput are reduced

Engineering Contradiction:
Improvestorage capacityVSAvoidvertex attribute retrieval throughput
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The patent divides the storage system into two separate storages: a first storage for processed vertex attributes and a second storage for unprocessed vertex attributes. This segmentation allows the system to selectively access the appropriate storage based on whether vertex attribute processing is needed, improving retrieval efficiency while maintaining sufficient total storage capacity.

Inventive Principle:
Principle #1Segmentation

2Speed

If a smaller dedicated storage is used for processed vertex attributes, then access speed improves, but storage capacity is reduced

Engineering Contradiction:
Improvevertex attribute access speedVSAvoidstorage capacity
Core Design Contradiction:
SpeedVSQuantity of substance

Solution Approach 1:

The patent creates a dedicated second storage specifically for unprocessed vertex attributes, separating it from the first storage that holds processed attributes. This dedicated storage structure enables faster access to unprocessed attributes when needed, while the combined capacity of both storages maintains sufficient total storage capacity.

Inventive Principle:
Principle #1Segmentation

3Device complexity

If vertex attributes are always read from the first storage, then storage management is simple, but processing efficiency is reduced due to unnecessary data transfer

Engineering Contradiction:
Improvestorage management complexityVSAvoidgraphics processing efficiency
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent implements a dynamic storage selection mechanism where the system determines whether to read vertex attributes from the first storage or the second storage based on whether processing is needed. This dynamic approach optimizes processing efficiency by avoiding unnecessary data transfers, while the clear rules for selection keep management complexity manageable.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The second storage acts as an intermediary structure that holds unprocessed vertex attributes separately. This intermediary storage allows the system to efficiently retrieve unprocessed attributes when needed without accessing the first storage, reducing unnecessary data transfers and improving overall processing efficiency.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS12475521B2Graphics processing systems for handling vertex attributes
Publication Date: 2025.11.18 ARM LTD
  • US12475521B2 patent drawing
  • US12475521B2 patent drawing
  • US12475521B2 patent drawing

AI summary

When generating a graphics processing output by assembling a sequence of one or more of primitives to be processed, vertex attribute processing is performed for vertices of assembled primitives to generate one or more processed vertex attributes for vertices of the assembled primitives. Processed vertex attributes for vertices of assembled primitives are stored in a first storage, and additionally in a second storage. Then when obtaining processed vertex attributes for an assembled primitive, it is checked whether processed vertex attributes for the vertices of the primitive are present in the second storage, and when they are, the processed vertex attributes are read from the second storage, but when the processed vertex attributes are not in the second storage, they are read from the first storage instead.