Parallel Tiling Engine Pipes Priority Scheduling
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
In graphics processing systems, the tiling process becomes a bottleneck as the number of primitives and tiles increases, leading to idle time in tiling engine pipes due to the need to preserve the submission order of primitives and manage overlapping tiles efficiently.
Innovation Solution
Implementing multiple tiling engine pipes to process primitive blocks in parallel, with a priority-based scheduling system that determines the order of processing regions within each block based on overlapping tiles and their sequence numbers to minimize idle time.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If multiple tiling engine pipes process primitive blocks in parallel, then processing speed increases, but idle time occurs when waiting to maintain submission order
Solution Approach 1:
The rendering space is divided into multiple tiles, and primitive blocks are processed in parallel across multiple tiling engine pipes. Each pipe handles specific tiles while maintaining overall submission order through sequence number tracking and coordinated write operations to display lists.
Solution Approach 2:
The system dynamically assigns primitive blocks to available tiling engine pipes based on current workload and tile availability. Pipes can be activated or deactivated dynamically, and the assignment of primitive blocks to pipes is adjusted in real-time to minimize idle time while maintaining correct processing order.
2Reliability
If a single tiling engine pipe is used, then submission order is preserved, but processing becomes a bottleneck
Solution Approach 1:
Display lists serve as intermediary structures between parallel tiling engine pipes and the final rendering pipeline. Each pipe writes primitive identifiers to tile-specific display lists in sequence order, and the system coordinates writes across pipes using sequence numbers to ensure global submission order is maintained despite parallel processing.
Solution Approach 2:
The single tiling engine pipe is segmented into multiple parallel pipes, each handling a subset of tiles. Sequence number tracking and coordinated display list writes ensure that the segmented parallel structure maintains the same submission order guarantees as the original single pipe.
3Loss of time
If parallel processing is implemented, then latency is reduced, but coordination complexity increases
Solution Approach 1:
The system uses sequence numbers as a key parameter to track and coordinate primitive blocks across parallel pipes. By changing from a simple sequential processing model to a parallel model with sequence number annotations and priority-based scheduling, the system reduces latency while managing complexity through parameter-driven coordination.
Solution Approach 2:
The system implements feedback mechanisms where tiling engine pipes report their processing status and sequence number positions to a coordinator. This feedback enables dynamic scheduling decisions, allowing the system to optimize parallel processing while maintaining correct order, reducing both latency and coordination overhead through informed decision-making.
Data Source
AI summary
A tiling unit is arranged to process a sequence of primitive blocks using multiple parallel tiling engine pipes. Each tiling engine pipe processes a respective primitive block, and determines priorities for regions of the respective primitive block based on whether the primitive block overlaps with any of the other primitive blocks currently being processed in the parallel tiling engine pipes. Each tiling engine pipe processes the regions of its primitive block in a tile-order based on the priorities of the regions. The submission order of the primitives should be maintained when primitive identifiers are written into display lists. Therefore, the priority of a region of a first primitive block is increased (or decreased) if it overlaps with another primitive block which has a higher (or lower) sequence number and which is currently being processed in another tiling engine pipe. This reduces the time that the tiling engine pipes are idle.


