Mesh Shader Buffer Allocation Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Graphics processing architectures face inefficiencies in mesh shader output management due to pre-allocation of internal storage for maximum-sized meshlets, leading to suboptimal performance when actual outputs are sparse, resulting in unused storage and reduced active meshlets.

Innovation Solution

Implementing a system that subdivides internal storage into full and partial buffer allocations, allowing mesh shaders to write outputs to the largest available partial allocation, enabling immediate reuse and reducing waste by supporting varying levels of subdivision within each entry.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If pre-allocation of internal storage is performed for maximum-sized meshlets, then storage availability is ensured, but storage utilization efficiency deteriorates when actual outputs are sparse

Engineering Contradiction:
Improvestorage availabilityVSAvoidstorage utilization efficiency
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The internal storage is divided into multiple buffer allocations of different sizes. Instead of allocating one large buffer for maximum-sized meshlets, the system segments storage into multiple smaller buffers that can be dynamically selected and reused based on actual meshlet size requirements, improving both availability and utilization efficiency

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The buffer allocation system transitions from static pre-allocation to dynamic selection. The mesh shader can select from multiple buffer allocations of different sizes based on the actual output size, and buffers become immediately available for reuse after consumption, creating a dynamic adaptation to varying workload requirements

Inventive Principle:
Principle #15Dynamics

2Quantity of substance

If large maximum-sized meshlet allocations are made, then capacity for large meshlets is ensured, but the number of active in-flight meshlets is reduced

Engineering Contradiction:
Improvemeshlet capacityVSAvoidnumber of active meshlets
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

Storage capacity is segmented into multiple buffer allocations rather than using one large allocation. This allows the system to maintain the total capacity needed for large meshlets while also having multiple smaller buffers available simultaneously, increasing the number of active in-flight meshlets that can be processed in parallel

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system changes the parameter of buffer size from fixed large allocation to variable allocations. By providing multiple buffer allocations with different size parameters, the system can adapt to different meshlet size requirements and increase throughput by having more buffers available for concurrent processing

Inventive Principle:
Principle #35Parameter changes

3Duration of action of stationary object

If pre-allocation is performed before mesh shader execution, then storage readiness is achieved, but flexibility in reallocation is lost until rendering completes

Engineering Contradiction:
Improvestorage readinessVSAvoidreallocation flexibility
Core Design Contradiction:
Duration of action of stationary objectVSAdaptability or versatility

Solution Approach 1:

Multiple buffer allocations are pre-prepared in advance with different size configurations. This preliminary action ensures storage readiness is achieved while maintaining adaptability, as the mesh shader can select from the pre-prepared buffers based on actual output size without needing to wait for reallocation

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The buffer allocation system achieves multi-functionality by providing buffers of different sizes that can serve various meshlet size requirements. Each buffer allocation can be used for different types of meshlets, and buffers become universally available for reuse after any meshlet is consumed, increasing reallocation flexibility

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

Data Source

PatentUS10963985B2Mesh shader output management technology
Publication Date: 2021.03.30 INTEL CORP
  • US10963985B2 patent drawing
  • US10963985B2 patent drawing
  • US10963985B2 patent drawing

AI summary

Methods, systems and apparatuses may provide for technology that determines a size of a meshlet and writes the meshlet to a full-sized buffer allocation if the size of the meshlet is greater than a partial-sized buffer allocation. The technology may also write the meshlet to the partial-sized buffer allocation if the size of the meshlet is not greater than the partial-sized buffer allocation.