Tile Control Stream Generation for Accurate Primitive Filtering
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The inefficiency and high computational cost of tiling calculations in tile-based graphics processing systems due to the large number of floating point operations required to determine primitive-tile associations, which affects performance and power consumption.
Innovation Solution
A method to determine primitive-tile associations based on the positions of samples within pixels, using techniques such as generating intersection points and forming sub-polygons to reduce unnecessary workload by minimizing the inclusion of non-contributing primitives in control streams.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If traditional tiling calculations are used to determine primitive-tile associations, then rendering accuracy is maintained, but computational cost and power consumption increase significantly
Solution Approach 1:
The rendering space is divided into multiple tiles, and the tiling unit processes each tile independently to determine primitive-tile associations. This segmentation allows the system to perform calculations only for relevant tiles rather than the entire rendering space, reducing overall computational cost and power consumption while maintaining rendering accuracy within each tile.
Solution Approach 2:
The patent applies a two-stage filtering approach where a first set of tests quickly identifies potentially relevant primitives, followed by a second set of more accurate but computationally intensive tests only on the reduced subset. This partial application of rigorous testing minimizes unnecessary calculations while ensuring accuracy for primitives that actually contribute to the tile rendering.
2Measurement precision
If traditional tiling calculations are used to determine primitive-tile associations, then rendering accuracy is maintained, but processing time increases
Solution Approach 1:
The tiling unit segments the processing task by evaluating each primitive against tile boundaries in a structured manner, using early exit conditions when primitives are determined to be outside tiles. This segmentation prevents unnecessary processing of primitives that do not contribute to any tile, reducing overall processing time while maintaining accuracy for relevant primitives.
Solution Approach 2:
The patent implements a hierarchical testing strategy where less computationally expensive tests are performed first to eliminate obviously irrelevant primitives, followed by more precise tests only on the remaining candidates. This partial application of rigorous testing significantly reduces processing time while ensuring that primitives requiring accurate rendering are correctly identified.
3Reliability
If all primitives are included in control streams without filtering, then no primitives are missed, but data transfer between GPU and system memory increases
Solution Approach 1:
The tiling unit extracts and identifies only those primitives that actually contribute to each tile's rendering by performing boundary tests and generating control streams with filtered primitive lists. This extraction process removes non-contributing primitives from the data transfer pipeline, reducing the volume of data transferred between system memory and GPU while ensuring that all contributing primitives are included for reliable rendering.
4Measurement precision
If tiling calculations perform comprehensive tests on all primitives, then accurate primitive-tile associations are achieved, but device complexity increases
Solution Approach 1:
The tiling unit is designed to process primitives in a segmented, tile-by-tile manner with dedicated logic for boundary testing and control stream generation. This modular segmentation of the tiling calculation process achieves accurate primitive-tile associations while organizing device complexity into manageable, reusable components rather than requiring a monolithic complex system.
Data Source
AI summary
A method of processing primitives within a tiling unit of a graphics processing system comprises determining whether a primitive falls within a tile based on positions of samples within each pixel. If it is determined that the primitive does fall within a tile based on the positions of samples within pixels in a tile, an association between the tile and the primitive is stored to indicate that the primitive is present in the tile. For example, an identifier for the primitive may be added to a control stream for the tile to indicate that the primitive is present in the tile. Various different methods are described to make the determination and these may be used separately or in any combination.


