Tile-Based Graphics Primitive Lists With Linked Memory Blocks
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Tile-based graphics processing systems face inefficiencies in memory allocation and management due to varying memory requirements for primitive lists, which can lead to complex analysis or insufficient memory allocation, impacting overall system performance.
Innovation Solution
The use of a linked list data structure for storing primitive lists, where memory is allocated as needed, allowing storage across multiple blocks of memory space with an indication of the next block's location at the start of each block, facilitating efficient and flexible memory management.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If memory is allocated for primitive lists based on maximum possible requirements, then memory availability is improved, but memory usage efficiency deteriorates
Solution Approach 1:
The patent divides the primitive list storage into multiple separate blocks in memory rather than using a single large block. Each block can be independently allocated and managed, allowing the system to allocate only the necessary memory blocks based on actual primitive list sizes, thus avoiding allocation of excessive memory while ensuring sufficient capacity.
Solution Approach 2:
The patent implements dynamic memory allocation where the size and number of memory blocks for primitive lists are adjusted based on actual runtime requirements rather than being fixed in advance. This allows the system to optimize memory usage by allocating blocks only when needed and in the exact quantities required, resolving the contradiction between ensuring memory availability and maintaining usage efficiency.
2Loss of energy
If complex analysis is performed to determine memory allocation, then memory usage efficiency is improved, but system complexity deteriorates
Solution Approach 1:
The patent implements a self-service memory allocation mechanism where the graphics processing system automatically manages its own primitive list memory allocation without requiring complex external analysis or control. The system independently determines when and how much memory to allocate based on its own operational state, simplifying the overall system architecture while maintaining efficient memory usage.
Solution Approach 2:
The patent performs preliminary allocation of memory blocks in a simple, standardized manner before they are actually needed for storing primitive lists. This preliminary preparation eliminates the need for complex analysis at runtime, as the memory infrastructure is already in place and can be activated on-demand based on straightforward criteria.
3Loss of energy
If insufficient memory is allocated for primitive lists, then memory usage efficiency is improved, but rendering performance deteriorates
Solution Approach 1:
By segmenting primitive list storage into multiple allocatable blocks, the system ensures that sufficient memory capacity is available for rendering performance while only paying for the memory that is actually allocated and used. This segmentation allows the system to scale memory allocation to match rendering requirements without permanently reserving excessive memory, thus maintaining both efficiency and performance.
Data Source
AI summary
When preparing and storing a primitive list in a tile-based graphics processing system, a first block of memory space is allocated for storing the primitive list. When there is insufficient space in the first block of memory space to store all of the graphics primitives for the primitive list, a next block of memory space to be used for storing the primitive list is allocated for storing the primitive list. An indication of the location in memory of the allocated next block of memory space is written at the beginning of the first block of memory space.


