Out-of-Order Pixel Shader Exports Using Scoreboard

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Graphics processing pipelines face inefficiencies due to the requirement to maintain API order for pixel shader exports, which can lead to memory buffering and processing delays when newer fragments are completed before older ones, especially in out-of-order processing scenarios.

Innovation Solution

The implementation of an out-of-order export block with a scoreboard in the graphics processing pipeline allows the pixel shader stage to export only the newest fragments in API order, discarding older fragments to maintain processing efficiency without the need for memory buffering.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If fragments are exported in strict API order, then correctness is maintained, but processing efficiency deteriorates due to memory buffering and delays when newer fragments complete before older ones

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidprocessing delay
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by pre-establishing a scoreboard data structure that tracks the API order and completion status of fragments before they are fully processed. This scoreboard is populated in advance with fragment identifiers and their intended export order, allowing the system to quickly determine whether completed fragments can be exported immediately or need to wait, thus avoiding runtime delays and memory buffering while maintaining correctness.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If memory buffering is used to maintain API order, then correctness is preserved, but memory requirements increase

Engineering Contradiction:
ImproveAPI order maintenanceVSAvoidmemory requirements
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent extracts the ordering logic from the memory buffering mechanism by implementing a scoreboard that separately tracks fragment API order and completion status. Instead of using memory buffers to hold fragments in order, the scoreboard extracts and manages only the ordering information (fragment identifiers and their positions), allowing fragments to be exported immediately upon completion if their scoreboard entry indicates they are in the correct order, thus reducing memory requirements while preserving API order maintenance.

Inventive Principle:
Principle #2Taking out (Extraction)

3Productivity

If out-of-order processing is enabled, then processing speed improves, but maintaining API order becomes more complex

Engineering Contradiction:
Improveprocessing speedVSAvoidorder management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent applies segmentation by dividing the fragment management system into distinct components: a scoreboard that tracks API order and fragment identifiers, a completion status indicator for each fragment, and an export control mechanism. This segmentation allows out-of-order processing to occur in the pixel shader stage while the scoreboard independently manages API order tracking, reducing overall system complexity by separating concerns between processing speed optimization and order maintenance.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10417815B2Out of order pixel shader exports
Publication Date: 2019.09.17 ADVANCED MICRO DEVICES INC
  • US10417815B2 patent drawing
  • US10417815B2 patent drawing
  • US10417815B2 patent drawing

AI summary

Improvements in graphics processing pipelines are disclosed. The graphics processing pipeline processes graphics objects in a particular order (application programming interface order—“API order”) as requested by an application or other entity. However, certain components within the graphics processing pipeline, such as the pixel shader stage, may process those objects out of order. A technique is provided herein to allow the pixel shader stage to complete and export processed fragments out of order. The technique includes using a scoreboard to determine whether fragments ready to be exported from a pixel shader stage are the newest fragments in API order. If the fragments are the newest in API order, then the fragments are exported. If the fragments are not the newest in API order, then the fragments are discarded.