Hierarchical Bin Storage for Graphics Primitives

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Tile-based deferred rendering techniques face substantial memory requirements for storing primitive information, especially when dealing with large primitives, as they need to store lists of primitives for each tile, which can quickly consume video graphics memory.

Innovation Solution

The use of hierarchically arranged bins to store primitive information, where a primitive is stored in multiple levels of the hierarchy if it completely covers the area of a bin and is not listed in any larger bins, reducing memory requirements to be proportional to the width or height of the primitive multiplied by the log of its dimensions, rather than its area.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If primitive information is stored for each tile that a primitive intersects, then complete primitive coverage is achieved, but memory requirements become substantial

Engineering Contradiction:
Improveprimitive coverage completenessVSAvoidmemory requirements
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent divides the screen space into a hierarchical structure of bins at multiple levels. Instead of storing primitives for every tile, the screen is segmented into coarse bins at higher levels and fine bins at lower levels. Primitives are stored only in bins where they completely cover the bin area, leveraging the hierarchical segmentation to reduce redundancy.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements a nested hierarchical structure where bins at level N are contained within bins at level N-1. Each bin at a higher level contains multiple bins at the next level, creating a nested doll-like structure. This nesting allows primitives to be stored at the coarsest level possible, avoiding duplication across multiple finer levels.

Inventive Principle:
Principle #7Nested doll (Nesting)

2Quantity of substance

If conventional techniques reduce memory requirements, then storage efficiency improves, but additional processing is required when reading primitive lists

Engineering Contradiction:
Improvememory requirementsVSAvoidprocessing complexity
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The patent applies different storage strategies to different regions of the hierarchical structure. Bins store primitives only when the primitive completely covers the bin area, creating a local quality rule that varies by bin. This local approach simplifies the retrieval process compared to global conventional techniques, as each bin independently determines what to store based on its own coverage criteria.

Inventive Principle:
Principle #3Local quality

3Quantity of substance

If memory requirements are reduced by storing primitives at multiple hierarchy levels, then storage efficiency improves, but traversal complexity may increase

Engineering Contradiction:
Improvememory requirementsVSAvoidtraversal time
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The patent performs preliminary organization of primitives into the hierarchical bin structure during the rendering preparation phase. By pre-sorting and placing primitives in the appropriate bins based on complete coverage, the system eliminates the need for complex runtime traversal. When rendering a tile, the system only needs to check the specific bin corresponding to that tile's region, rather than traversing multiple hierarchy levels during rasterization.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9934548B2Hierarchical techniques for storing graphics primitives
Publication Date: 2018.04.03 APPLE INC
  • US9934548B2 patent drawing
  • US9934548B2 patent drawing
  • US9934548B2 patent drawing

AI summary

Techniques are disclosed relating to storing primitive information for tile-based graphics rendering. In some embodiments, primitive information is stored using hierarchically arranged bins. In some embodiments, information for a given primitive may be stored at multiple levels in the hierarchy. For example, in some embodiments a graphics processor is configured to store primitive information for a primitive in a particular bin if the primitive (1) completely covers the area in screen space corresponding to the particular bin and (2) the primitive is not listed in any bins that correspond to a larger area that includes the area corresponding to the particular bin. This may reduce memory requirements because the memory needed for each primitive may be proportional to the width (or height) of the primitive multiplied by the log of the width (or height), rather than the area of the primitive.