Graphics Processing Memory Allocation via Segmented Blocks
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Tile-based graphics processing pipelines face inefficiencies in memory allocation for vertex shaded data, particularly in deferred rendering, where storing geometry data for later use can lead to memory management complexities and potential shortages, especially when the memory requirements are difficult to predict.
Innovation Solution
The implementation of a memory allocation system that uses a collection of independent blocks of memory space, or 'chunks', which can be dynamically adjusted and reused, allowing for more flexible and efficient memory management by allocating and reallocating memory space as needed, rather than relying on a single contiguous pool.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Device complexity
If a single contiguous pool of memory space is used for storing vertex shaded data, then memory allocation is simple, but memory management becomes complex and memory shortages occur when requirements are difficult to predict
Solution Approach 1:
The patent divides the memory space into multiple independent blocks (chunks) instead of using a single contiguous pool. Each block can be independently allocated and deallocated, allowing flexible memory management that adapts to varying vertex data storage requirements without causing memory shortages or excessive complexity.
2Reliability
If memory space is allocated for all possible vertices, then sufficient memory is always available, but memory footprint increases and processing requirements grow
Solution Approach 1:
The patent implements dynamic memory allocation where blocks are allocated and deallocated based on actual vertex processing needs rather than reserving all possible memory space in advance. This allows the system to adapt memory usage to current requirements, maintaining availability when needed while reducing footprint when not required.
Solution Approach 2:
The system changes the allocation parameter from static (pre-allocated for all vertices) to dynamic (allocated based on actual vertex count and requirements). This enables the memory footprint to adjust according to the number of vertices being processed, optimizing both availability and efficiency.
3Speed
If memory blocks are statically allocated, then allocation is fast, but flexibility to handle varying requirements is reduced
Solution Approach 1:
The patent pre-allocates a set of memory blocks that can be reused across different rendering contexts. This preliminary preparation allows fast allocation through simple block selection rather than dynamic allocation, while the blocks remain flexible enough to handle varying vertex requirements through reuse and deallocation mechanisms.
Data Source
AI summary
A method of operating a graphics processor that executes a graphics processing pipeline comprising a vertex shading stage is disclosed. A set of blocks of memory space that may be represented by a linked list is provided and memory space for storing vertex shaded attribute data generated by the vertex shading stage is allocated from one of the blocks of memory space in the set of blocks of memory space. When data stored in a block of memory space is no longer needed by the graphics processing pipeline, the block can be “recycled” for use by the pipeline.


