Vertex Cache Mode Switching for Per-Vertex State Changes

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional graphics processors lack the ability to efficiently store and process vertex information when per-vertex state changes occur, as they are not configured to support such changes, leading to reduced processing throughput and inefficient storage mechanisms.

Innovation Solution

A vertex cache is configured to operate as a round-robin streaming cache when per-vertex state changes are not used and as a random access storage buffer when they are, allowing for efficient storage and processing of vertices with state changes by flushing vertex slots and updating the vertex shader accordingly.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a conventional round-robin streaming cache is used for vertex storage, then storage efficiency is improved for standard graphics processing, but the system cannot accommodate per-vertex state changes

Engineering Contradiction:
Improvesupport for per-vertex state changesVSAvoidprocessing throughput
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The vertex cache is configured to dynamically switch between two operational modes: round-robin streaming cache mode for standard processing and random access storage buffer mode for per-vertex state changes. This dynamic reconfiguration allows the system to adapt its storage behavior based on the specific processing requirements, resolving the contradiction between versatility and productivity

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the operational parameters of the vertex cache based on detection of state changes. When per-vertex state changes are detected, the cache transitions from round-robin overwrite behavior to random access mode with selective flushing, allowing the same hardware structure to support different processing paradigms without permanent reconfiguration

Inventive Principle:
Principle #35Parameter changes

2Adaptability or versatility

If the vertex cache operates as a random access storage buffer to support per-vertex state changes, then adaptability is improved, but storage efficiency may be reduced compared to round-robin streaming

Engineering Contradiction:
Improvesupport for advanced graphics APIsVSAvoidstorage capacity utilization
Core Design Contradiction:
Adaptability or versatilityVSQuantity of substance

Solution Approach 1:

The vertex cache is segmented into multiple vertex slots that can be independently managed. When operating in random access mode for per-vertex state changes, individual slots can be flushed selectively rather than requiring complete cache invalidation. This segmentation allows efficient utilization of storage capacity while supporting the required adaptability

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary detection of state changes within primitives and proactively manages cache content accordingly. By identifying when per-vertex state changes occur, the system can pre-flush affected vertex slots before processing, maintaining storage efficiency while preparing the cache for the upcoming state change operations

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8237725B1Vertex cache map mode for per-vertex state changes
Publication Date: 2012.08.07 NVIDIA CORP
  • US8237725B1 patent drawing
  • US8237725B1 patent drawing
  • US8237725B1 patent drawing

AI summary

A vertex cache within a graphics processor is configured to operate as a conventional round-robin streaming cache when per-vertex state changes are not used and is configured to operate as a random access storage buffer when per-vertex state changes are used. Batches of vertices that define primitives and state changes are output to parallel processing units for processing according to vertex shader program. In addition to allowing per-vertex state changes, the vertex cache is configured to store vertices for primitive topologies that use anchor points, such as triangle strips, line loops, and polygons.