Binning Hardware Primitive Sub-batch Replay for Cache Locality

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current rendering technologies face inefficiencies in cache locality and data reuse during the rendering of 3D graphics, particularly due to the large size of attribute information for primitives exceeding cache capacity, leading to increased eviction rates and reduced performance.

Innovation Solution

The implementation of a processor with specialized circuitry for binning hardware that divides the rendering frame into subsets or 'bins' and utilizes a primitive batched binning (PBB) approach, where primitives are cached and replayed in sub-batches across bins, optimizing rasterization and rendering passes based on Z function changes and drawcall boundaries to enhance cache locality and data reuse.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If primitives are rendered in full batches across the entire frame, then rendering completeness is maintained, but cache locality deteriorates and eviction rate increases

Engineering Contradiction:
Improverendering completenessVSAvoidcache locality
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent divides the frame into multiple bins (spatial segmentation) and divides primitives into sub-batches (temporal segmentation). This allows the renderer to process only the subset of primitives relevant to each bin in each pass, improving cache locality while maintaining complete rendering through multiple passes. The segmentation enables fine-grained control over what data is cached and when it is evicted.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary classification of primitives into batches based on their bin coverage before rendering. This preliminary action allows the system to prepare optimized rendering sequences where primitives are grouped by their spatial destination, enabling better cache utilization during the actual rendering passes without compromising rendering completeness.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If attribute information for all primitives is cached, then rendering data availability is improved, but cache capacity is exceeded and eviction rate increases

Engineering Contradiction:
Improverendering data availabilityVSAvoidcache capacity
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent implements local quality by caching only the attribute information for primitives that are relevant to the current bin being processed. Instead of uniformly caching all primitive attributes, the system dynamically adjusts the cache contents to match the local rendering needs of each bin, thereby improving cache utilization without exceeding cache capacity.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent employs discarding and recovering by evicting primitive attribute information from the cache after it has been used for rendering a particular bin, and recovering (re-caching) it when needed for subsequent bins. This cyclic discarding and recovering pattern maintains cache capacity constraints while ensuring data availability when needed.

Inventive Principle:
Principle #34Discarding and recovering

3Productivity

If primitives are processed in fine-grained sub-batches per bin, then cache locality is improved, but rendering complexity increases

Engineering Contradiction:
Improvecache localityVSAvoidrendering control complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent introduces dynamic control mechanisms that adapt the rendering process based on the specific characteristics of each bin and batch. The system dynamically determines which primitives to render in each pass, which bins to process next, and when to switch between different rendering strategies. This dynamic approach manages the complexity through runtime decision-making rather than static pre-computation.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent implements feedback loops where the rendering system monitors cache usage patterns, bin processing status, and primitive coverage information to dynamically adjust the rendering sequence. This feedback mechanism helps manage complexity by using observed system state to guide subsequent rendering decisions, rather than following a fixed predetermined sequence.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS12154224B2Fine grained replay control in binning hardware
Publication Date: 2024.11.26 ADVANCED MICRO DEVICES INC
  • US12154224B2 patent drawing
  • US12154224B2 patent drawing
  • US12154224B2 patent drawing

AI summary

Some implementations provide systems, devices, and methods for rendering a plurality of primitives of a frame, the plurality of primitives being divided into a plurality of batches of primitives and the frame being divided into a plurality of bins. For at least one batch of the plurality of batches the rendering includes, for each of the plurality of bins, rendering primitives of a first sub-batch rasterizing to that bin, and for each of the plurality of bins, rendering primitives of a second sub-batch rasterizing to that bin.