Mesh Shader Bounding Volume API for GPU Memory Optimization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The existing GPU pipeline faces bottlenecks due to dynamic output data size from mesh shaders, particularly on devices with limited memory and tiling GPUs, which affects performance and power consumption.
Innovation Solution
The implementation of a mesh shader that outputs 3D objects as vertices, primitives, and bounding volumes, with a rasterizer projecting these into 2D fragments and a fragment shader generating a 2D image, utilizing axis-aligned bounding boxes (AABBs) to optimize memory usage and reduce unnecessary computations.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If mesh shaders output dynamic and large amounts of vertex data, then rendering flexibility and parallel processing capability are improved, but device memory and bandwidth bottlenecks occur
Solution Approach 1:
The patent segments the output data from mesh shaders into two distinct types: vertices/primitives for rendering and bounding volumes for culling. This segmentation allows the system to manage large dynamic output data by separating the data needed for rendering (vertices) from the data needed for optimization (bounding volumes), thereby reducing the memory and bandwidth burden while maintaining rendering flexibility.
Solution Approach 2:
The patent extracts and removes unnecessary meshlet data before the rendering pipeline by introducing a culling stage that uses bounding volumes to identify and eliminate invisible or unnecessary meshlets. This extraction occurs before the data reaches the vertex shader, significantly reducing the quantity of data that needs to be processed and transmitted through the pipeline.
2Reliability
If all meshes are drawn first in traditional pipeline, then rendering completeness is ensured, but performance bottleneck occurs
Solution Approach 1:
The patent applies preliminary action by performing meshlet culling before the traditional rendering pipeline. The bounding volume culling stage acts as a preliminary filter that eliminates unnecessary meshlets before they enter the vertex shader processing stage. This preliminary action ensures rendering completeness for visible objects while significantly improving performance by reducing the total amount of data processed.
3Quantity of substance
If pre-pass vertex shader is used to suppress geometry data, then vertex data reduction is achieved, but compatibility with mesh shaders is lost
Solution Approach 1:
The patent creates a universal pipeline that works with both traditional vertex shaders and mesh shaders by introducing a common bounding volume output and culling mechanism. The mesh shader outputs bounding volumes that can be used by the culling stage, and the same bounding volumes can be used by traditional vertex shaders if needed. This multi-functionality allows the system to reduce vertex data amounts while maintaining compatibility with both shader types.
Data Source
AI summary
An application programming interface includes a mesh shader, a rasterizer, and a fragment shader. The mesh shader is used to process 3-dimensional objects and output vertices, primitives, and a plurality of bounding volumes of the 3-dimensional objects. The rasterizer is linked to the mesh shader, and used to project the vertices, the primitives, and the plurality of bounding volumes into 2-dimensional fragments. The fragment shader is linked to the rasterizer, and used to output a 2-dimensional image according to the 2-dimensional fragments.


