Shader Warp Packer Unit for Small Primitive Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern GPUs face inefficiencies in processing small primitives due to partial coverage of quads, leading to increased energy consumption and loss of image quality when merging quads, as existing methods rely on heuristic thresholds and lose precision in image rendering.

Innovation Solution

A dynamic branching pixel shader warp packer unit that packs non-overlapping partially covered quads into a single quad, allowing for full processing without information loss, and computes directional derivatives using additional attribute information, enabling efficient processing of small primitives without transferring coverage between quads.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Use of energy by moving object

If quads are merged to reduce the total number of quads sent to the shader, then energy consumption is reduced, but image quality is lost due to heuristic thresholds and approximation

Engineering Contradiction:
Improveenergy consumptionVSAvoidimage quality
Core Design Contradiction:
Use of energy by moving objectVSManufacturing precision

Solution Approach 1:

The patent merges multiple partially covered quads into a single packed quad containing multiple primitives, allowing the shader to process them together without losing coverage information. This combines the energy efficiency benefit of quad merging with the precision requirement by maintaining discrete primitive coverage data within the packed structure.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The packed quad is segmented into multiple individual primitive coverage regions, each maintaining its own attribute data and coverage information. This segmentation allows the shader to process each primitive independently within the packed structure, preserving image quality while achieving energy efficiency through combined processing.

Inventive Principle:
Principle #1Segmentation

2Manufacturing precision

If small primitives are processed individually, then image quality is maintained, but processing efficiency decreases due to partial coverage of quads

Engineering Contradiction:
Improveimage qualityVSAvoidprocessing efficiency
Core Design Contradiction:
Manufacturing precisionVSProductivity

Solution Approach 1:

Multiple small primitives with partial quad coverage are merged into a single packed quad, allowing them to be processed together in one shader invocation. This maintains image quality by preserving individual primitive coverage data while improving processing efficiency by reducing the total number of shader invocations required.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The packed quad structure serves multiple functions: it maintains individual primitive coverage information for image quality, enables batch processing for efficiency, and provides a unified interface for the shader core. This multi-functionality resolves the contradiction between maintaining precision and improving productivity.

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

3Productivity

If heuristic thresholds are used for quad merging, then processing speed is improved, but manufacturing precision is lost due to approximation

Engineering Contradiction:
Improveprocessing speedVSAvoidimage quality
Core Design Contradiction:
ProductivityVSManufacturing precision

Solution Approach 1:

The system dynamically determines which quads to pack together based on runtime conditions such as primitive size, coverage patterns, and shader capabilities. This dynamic approach replaces static heuristic thresholds with adaptive decision-making that preserves image quality while optimizing processing speed for different scenarios.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system uses feedback from primitive coverage analysis to determine packing decisions, ensuring that only compatible primitives are merged. This feedback mechanism maintains precision by preventing inappropriate merges while still achieving speed improvements through intelligent batching of suitable primitives.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS11748933B2Method for performing shader occupancy for small primitives
Publication Date: 2023.09.05 SAMSUNG ELECTRONICS CO LTD
  • US11748933B2 patent drawing
  • US11748933B2 patent drawing
  • US11748933B2 patent drawing

AI summary

A GPU includes shader cores and a shader warp packer unit. The shader warp packer unit may receive a first primitive associated with a first partially covered quad, and a second primitive associated with a second partially covered quad. The shader warp packer unit may determine that the first partially covered quad and the second partially covered quad have non-overlapping coverage. The shader warp packer unit may pack the first partially covered quad and the second partially covered quad into a packed quad. The shader warp packer unit may send the packed quad to the shader cores. The first partially covered quad and the second partially covered quad may be spatially disjoint from each other. The shader cores may receive and process the packed quad with no loss of information relative to the shader cores individually processing the first partially covered quad and the second partially covered quad.