3D Graphics Shading Engine Tile Subdivision and Load Balancing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing 3D graphics systems face inefficiencies in processing and shading due to large lookup tables and line-based processing order, leading to high costs and inability to associate triangles with left and right regions, which limits load balancing and increases storage requirements.

Innovation Solution

The method involves subdividing tiles into smaller rectangular areas and allocating shading engines to each area, allowing for pixel-by-pixel determination of triangle extents and efficient load balancing between shading engines, with a tag sorter controlling the allocation of objects to shading engines based on masks indicating which samples should be textured and shaded.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If each triangle is assigned a unique entry in the lookup table, then the processing can store bounding box information for each triangle, but the lookup table becomes large and expensive in terms of storage requirements

Engineering Contradiction:
Improvetriangle identification precisionVSAvoidlookup table storage size
Core Design Contradiction:
Measurement precisionVSQuantity of substance

Solution Approach 1:

Multiple triangles that share similar rendering states (such as same material properties, shading parameters, and texture settings) are merged to share a single LUT entry. This combining approach reduces the total number of LUT entries required while maintaining the ability to uniquely identify and process each triangle through additional metadata stored in the TAG ID buffer.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The LUT entry is designed to serve multiple triangles simultaneously by storing shared state information that is universal to all triangles using that entry. This multi-functionality allows a single LUT entry to represent multiple triangles with identical or similar rendering requirements, significantly reducing storage needs.

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Ease of operation

If line-based processing order is used, then the processing can be simplified, but it becomes impossible to associate triangles with left and right regions, limiting load balancing capability

Engineering Contradiction:
Improveprocessing simplicityVSAvoidload balancing efficiency
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The processing is segmented into distinct phases: a first pass that processes triangles and populates the TAG ID buffer with region association information, and a second pass that uses this pre-computed information for efficient rendering. This segmentation allows the system to maintain processing simplicity while enabling sophisticated load balancing across multiple shading engines.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Triangle region associations and load balancing information are computed in advance during the first pass before the actual rendering occurs. This preliminary action prepares the TAG ID buffer with all necessary metadata, allowing the second pass to proceed with simple, efficient processing while maintaining optimal load distribution across shading engines.

Inventive Principle:
Principle #10Preliminary action

3Ease of operation

If the whole width of a tile is considered in a single cycle, then the processing can be simplified, but the lookup table must be large to accommodate all triangles

Engineering Contradiction:
Improveprocessing simplicityVSAvoidlookup table storage size
Core Design Contradiction:
Ease of operationVSQuantity of substance

Solution Approach 1:

The tile processing is divided into two distinct passes. The first pass processes all triangles and stores their state information and region associations in the TAG ID buffer. The second pass performs the actual rendering using this pre-processed information. This segmentation reduces the LUT size requirement while maintaining processing simplicity through the two-stage approach.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

All triangle analysis, state determination, and region association are performed in advance during the first pass. This preliminary processing eliminates the need for a large LUT to accommodate all triangles simultaneously, as the essential information is extracted and stored in a more compact format in the TAG ID buffer before rendering begins.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentEP2548176B1Processing of 3D computer graphics data on multiple shading engines
Publication Date: 2018.11.07 IMAGINATION TECH LTD
  • EP2548176B1 patent drawingFigure 1~3

AI summary

There is provided a method for texturing and shading a 3D computer graphic image on a plurality of shading engines. First, the image is subdivided into a plurality of tiles and each tile is subdivided into a plurality of micro tiles. An object list is allocated to each tile, the object list containing data defining objects visible in the tile. For one micro tile, it is determined which pixels in the micro tile are intersected by an object A in the object list and it is determined which pixels in the micro tile are intersected by at least one other object in the object list. In parallel with the determination step, pixel intersection data is outputted for an object B for which all intersection determinations for each of the micro tiles in a selected tile have been performed. The pixel intersection data is output to at least one of the plurality of shading engines. Then, those steps are repeated for each micro tile in the selected tile in which there are visible objects. The pixels corresponding to the pixel intersection data for the object B are textured and shaded with the at least one of the plurality of shading engines. Finally, the data derived by the texturing and shading is stored.