Tile-Based Rasterization Cache Optimization via Row Scanning

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current tile-based rasterization techniques suffer from inefficient cache utilization and redundant computation, leading to increased cache misses and wasted cycles due to ineffective evaluation of pixels and tiles.

Innovation Solution

The method improves cache utilization by scanning rows of tiles in the same direction before and after moving between rows, and by evaluating leading corner pixels to determine the validity of subsequent tiles, thereby optimizing the scanning process and reducing unnecessary evaluations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If tile-based rasterization is performed by scanning rows of tiles in a linear fashion from one edge of a primitive to the opposite edge, then the rasterization process is simplified and easy to implement, but cache utilization is poor and cache hits are reduced

Engineering Contradiction:
Improveease of implementationVSAvoidcache hits
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

The patent inverts the conventional linear scanning approach by evaluating tiles in a non-linear pattern that prioritizes cache efficiency. Specifically, after completing a row of tiles, instead of continuing linearly to the next row, the method evaluates tiles in a pattern that reuses cached data from previous evaluations, thereby improving cache hit frequency while maintaining implementation simplicity

Inventive Principle:
Principle #13The other way round (Inversion)

Solution Approach 2:

The patent applies preliminary action by pre-evaluating certain tiles before they are strictly needed in the linear scanning sequence. By evaluating tiles in an optimized order that anticipates future needs, the method ensures that data is already in cache when required, reducing cache misses without complicating the overall rasterization process

Inventive Principle:
Principle #10Preliminary action

2Reliability

If all tiles are evaluated in sequence during rasterization, then complete coverage of the primitive is ensured, but wasted cycles occur due to evaluation of invalid tiles

Engineering Contradiction:
Improvecoverage completenessVSAvoidprocessing efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent extracts and evaluates only the leading corner pixels of each tile to determine tile validity, rather than evaluating all pixels in every tile. This selective extraction approach maintains complete coverage reliability by identifying valid tiles through corner pixel checks, while dramatically improving productivity by avoiding wasted cycles on obviously invalid tiles

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent applies partial action by performing only the necessary minimum evaluation (checking leading corner pixels) to determine tile validity, rather than fully evaluating all pixels in each tile. This partial evaluation approach ensures sufficient coverage while eliminating redundant computation on invalid tiles, thereby improving processing efficiency

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS8416241B2Efficient tile-based rasterization
Publication Date: 2013.04.09 VIVANTE CORP
  • US8416241B2 patent drawing
  • US8416241B2 patent drawing
  • US8416241B2 patent drawing

AI summary

An apparatus and method for rasterizing a primitive in a graphics system is disclosed in one example of the invention as including scanning a first row of tiles, one tile at a time, starting from a first point and scanning in a first direction. Immediately after scanning the first row of tiles, the method includes moving from the first point to a second point in an orthogonal direction relative to the first row. Immediately after moving from the first point to the second point, the method includes scanning a second row of tiles, one tile at a time, starting from the second point and scanning in the first direction. By scanning rows in the same direction immediately prior to and after moving from one row to another, cache utilization is improved.