Graphics Tile Rendering Command Buffer Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In tile-based rendering, the existing methods face significant command bandwidth consumption and preclude command caching due to the need to re-execute scene commands for each tile, as only a subset of commands are relevant for each tile, leading to inefficient memory usage and processing.

Innovation Solution

Implementing tiling pre-processing to determine which primitives are culled, allowing for conditional execution of commands within the render pipeline using a 'jump if' command based on visibility information, enabling the reuse of a shared command buffer across tiles and reducing unnecessary processing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a command list is created per tile during the tiling phase, then each tile can execute only its relevant commands, but command bandwidth consumption increases significantly during the write out operation

Engineering Contradiction:
Improverendering efficiencyVSAvoidcommand bandwidth consumption
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The patent merges the command lists of multiple tiles into a single shared command buffer, eliminating the need to write separate command lists for each tile. This combining approach reduces command bandwidth consumption while maintaining the ability to execute only relevant commands per tile through conditional execution logic.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent performs preliminary analysis during the tiling phase to identify which commands are relevant to each tile, storing this visibility information for later use. This pre-computation enables efficient conditional execution during rendering without requiring separate command lists, resolving the bandwidth consumption issue.

Inventive Principle:
Principle #10Preliminary action

2Loss of energy

If the same command list is reused across tiles, then command bandwidth consumption is reduced, but command caching benefits are precluded because each tile executes different commands

Engineering Contradiction:
Improvecommand bandwidth consumptionVSAvoidcommand execution management
Core Design Contradiction:
Loss of energyVSDevice complexity

Solution Approach 1:

The patent segments the command execution process by introducing conditional execution logic that divides the command buffer processing into tile-specific execution paths. This allows a single shared command buffer to effectively serve multiple tiles with different command subsets, enabling both bandwidth reduction and proper command filtering.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces visibility information and conditional execution logic as an intermediary between the shared command buffer and tile-specific rendering. This mediator enables the system to reuse the same command buffer across tiles while still executing only the relevant commands for each tile, maintaining caching benefits without sacrificing correctness.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Ease of operation

If all scene commands are executed for each tile, then command processing is simplified, but unnecessary processing increases memory bandwidth consumption

Engineering Contradiction:
Improvecommand processing simplicityVSAvoidmemory bandwidth consumption
Core Design Contradiction:
Ease of operationVSLoss of energy

Solution Approach 1:

The patent extracts and removes unnecessary commands from execution by using visibility information to identify and skip commands that do not apply to the current tile. This extraction approach maintains simple command processing logic while eliminating wasteful memory bandwidth consumption from executing irrelevant commands.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS10068307B2Command processing for graphics tile-based rendering
Publication Date: 2018.09.04 INTEL CORP
  • US10068307B2 patent drawing
  • US10068307B2 patent drawing
  • US10068307B2 patent drawing

AI summary

The same set of render commands can be re-executed for each of a plurality of tiles making up a graphic scene to be rendered. Each time the list of commands is executed, the way the commands are executed may be modified based on information received from tile pre-processing. Specifically, a jump if command may be inserted into the command list. When this command is encountered, a determination is made, based on information received from tile pre-processing pipeline, whether to execute the command for the next primitive or not. If the next primitive is to be culled then the command for the next primitive is not executed and the flow moves past that command. If the next primitive is to be executed then the jump is not implemented. This enables avoiding reloading the same list of commands over and over for every tile.