Primitive Shader Stage Decouples Graphics Pipelines

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The existing graphics processing pipeline architecture is bottlenecked by fixed function primitive assemblers and crossbars, which limit flexibility and scalability, leading to inefficiencies in data transmission from world-space to screen-space pipelines, particularly due to dedicated buffers and complex crossbar hardware.

Innovation Solution

Introducing a primitive shader stage that performs tasks of the vertex shader, domain shader, and geometry shader, compiled from user-provided code, which assembles primitives and performs culling, allowing for flexible data transmission through a local data store instead of a crossbar, enabling more efficient and scalable processing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If fixed function primitive assemblers and crossbars are used, then data transmission is performed, but flexibility and scalability are limited

Engineering Contradiction:
ImproveflexibilityVSAvoidcomplexity of crossbar hardware
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent extracts the primitive assembly functionality from fixed function hardware and relocates it to a programmable shader stage. This allows the primitive assembler to be implemented as software code that can be loaded and executed dynamically, providing flexibility without requiring complex fixed function crossbar hardware for every configuration.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The primitive shader stage is designed to perform multiple functions including vertex shading, domain evaluation, geometry shading, and primitive assembly. This multi-functional approach eliminates the need for separate dedicated hardware units for each function, reducing overall device complexity while maintaining versatility.

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

2Quantity of substance

If dedicated parameter and position buffers are used, then data storage is provided, but they become unusable in general compute mode

Engineering Contradiction:
Improvebuffer capacityVSAvoidusability in compute mode
Core Design Contradiction:
Quantity of substanceVSAdaptability or versatility

Solution Approach 1:

The patent implements general-purpose registers and memory structures that can be used for both graphics rendering and compute operations. By using a unified data storage architecture rather than dedicated buffers, the same memory resources serve dual purposes, enabling flexibility across different operational modes without sacrificing capacity.

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

3Productivity

If fixed function primitive assembler is used, then primitive assembly is performed, but it creates a bottleneck in data transmission

Engineering Contradiction:
Improveprocessing efficiencyVSAvoiddata transmission time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent combines the primitive assembly operations with the shader execution pipeline. By integrating primitive assembly into the programmable shader stage, the operations that were previously sequential (shader execution then primitive assembly) can be performed in a unified, more efficient manner, reducing overall processing time and eliminating bottlenecks.

Inventive Principle:
Principle #5Merging (Combining)

4Ease of operation

If complex crossbar hardware is used for data transmission, then data routing is achieved, but chip area consumption increases

Engineering Contradiction:
Improvedata transmission capabilityVSAvoidchip area
Core Design Contradiction:
Ease of operationVSArea of stationary object

Solution Approach 1:

The patent removes the need for large fixed function crossbar hardware by extracting the data routing functionality and implementing it through programmable shader stages and standard memory interfaces. This approach achieves the same data transmission capability using significantly less chip area by relying on software-configurable rather than hardwired routing.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS11379941B2Primitive shader
Publication Date: 2022.07.05 ADVANCED MICRO DEVICES INC
  • US11379941B2 patent drawing
  • US11379941B2 patent drawing
  • US11379941B2 patent drawing

AI summary

Improvements in the graphics processing pipeline are disclosed. More specifically, a new primitive shader stage performs tasks of the vertex shader stage or a domain shader stage if tessellation is enabled, a geometry shader if enabled, and a fixed function primitive assembler. The primitive shader stage is compiled by a driver from user-provided vertex or domain shader code, geometry shader code, and from code that performs functions of the primitive assembler. Moving tasks of the fixed function primitive assembler to a primitive shader that executes in programmable hardware provides many benefits, such as removal of a fixed function crossbar, removal of dedicated parameter and position buffers that are unusable in general compute mode, and other benefits.