Tile-Based Renderer Command Culling via Visibility Analysis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In tiled rendering, the need to replay rendering commands N times for N tiles leads to inefficiencies in memory bandwidth usage and processing, as each tile must be rendered separately, which increases computational overhead and memory access demands.

Innovation Solution

Implementing a graphics processor architecture that allows for parallel processing of commands across multiple tiles using a shared buffer system, where commands are optimized to minimize redundant memory access and maximize on-chip processing, enabling simultaneous rendering of multiple tiles without the need for repeated command execution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If rendering commands are replayed N times for N tiles separately, then each tile can be rendered with dedicated processing, but memory bandwidth usage increases and computational overhead increases

Engineering Contradiction:
Improverendering accuracyVSAvoidrendering efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The screen is divided into multiple independent tiles, and the rendering system is segmented into multiple independent rendering pipelines. Each pipeline can process a subset of tiles in parallel, eliminating the need to replay all commands for all tiles sequentially. This segmentation allows simultaneous processing of multiple tiles while maintaining rendering accuracy for each tile.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Geometry is pre-sorted into tile-specific groups during the sorting phase before rendering begins. This preliminary organization of geometry data by tile allows each rendering pipeline to directly access the relevant geometry for its assigned tiles without needing to process all geometry commands repeatedly. The command buffer is also prepared with indirect buffers that enable efficient state management across multiple tiles.

Inventive Principle:
Principle #10Preliminary action

2Use of energy by moving object

If commands are replayed for each tile separately, then on-chip buffers can be used to minimize memory bandwidth, but the need to replay commands N times increases memory access demands

Engineering Contradiction:
Improvememory bandwidth efficiencyVSAvoidprocessing time
Core Design Contradiction:
Use of energy by moving objectVSLoss of time

Solution Approach 1:

The rendering workload is segmented across multiple independent pipelines, where each pipeline processes a subset of tiles. This allows memory bandwidth to be distributed across multiple parallel processing paths rather than being concentrated in sequential command replays, reducing the total memory access time while maintaining efficient on-chip buffer utilization.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Multiple tile rendering operations are merged into parallel execution across multiple pipelines. Instead of sequentially replaying commands for each tile, the system combines the rendering of multiple tiles into simultaneous operations, reducing total processing time while each pipeline maintains efficient memory usage through on-chip buffers.

Inventive Principle:
Principle #5Merging (Combining)

3Device complexity

If geometry is sorted into tiles during the sorting phase, then on-chip buffers can be utilized, but the command buffer structure requires strict ordering that limits parallel processing

Engineering Contradiction:
Improvebuffer managementVSAvoidparallel processing capability
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The command buffer system is segmented into multiple independent pipelines, each capable of autonomous command processing. This segmentation breaks the strict sequential ordering constraint by allowing each pipeline to independently process commands for its assigned tiles in parallel, while the overall system maintains proper rendering state through coordinated buffer management.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Indirect buffers are introduced as intermediary structures between the command buffer and the rendering pipelines. These indirect buffers contain state and primitive command data that can be efficiently accessed and reused across multiple tiles, allowing parallel pipelines to maintain proper rendering state without requiring strict sequential command ordering.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10672176B2Apparatus and method for processing commands in tile-based renderers
Publication Date: 2020.06.02 INTEL CORP
  • US10672176B2 patent drawing
  • US10672176B2 patent drawing
  • US10672176B2 patent drawing

AI summary

An apparatus and method are described for culling commands in a tile-based renderer. For example, one embodiment of an apparatus comprises: a command buffer to store a plurality of commands to be executed by a render pipeline to render a plurality of tiles; visibility analysis circuitry to determine per-tile visibility information for each of the plurality of tiles and to store the visibility information for a first tile in a first storage, the visibility information specifying either that all of the commands associated with rendering the first tile can be skipped or identifying individual commands associated with rendering the first tile that can be skipped; and a render pipeline to read the visibility information from the first storage to determine whether to execute or skip one or more of the commands from the command buffer to render the first tile.