3D Graphics Memory Allocation for Ordered Multicore Rendering
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Implementing rendering tasks in parallel on a multicore GPU while respecting the order in which primitives are provided by the application driver is challenging, as it can lead to incorrect rendering due to unpredictable completion times of cores and potential out-of-sequence processing.
Innovation Solution
A method and apparatus for memory allocation in a 3-D graphics rendering system with multiple cores, where geometry processing work is divided into discrete work-packages, and memory allocation is prioritized for the core processing the earliest active work-package, with restrictions applied to other cores based on unrecoverable memory and free pool size to maintain sequence integrity.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If rendering tasks are processed in parallel on multiple cores, then processing speed and productivity are improved, but the order in which primitives are rendered may be compromised leading to incorrect rendering
Solution Approach 1:
The patent segments the rendering work into discrete work-packages that can be distributed across multiple cores. Each work-package contains a specific set of primitives to be processed, allowing parallel execution while maintaining logical organization. This segmentation enables simultaneous processing on different cores without compromising the overall rendering sequence integrity.
Solution Approach 2:
The patent implements preliminary actions by establishing a memory allocation policy before processing begins. The system pre-determines which core should receive memory allocations based on the earliest active work-package, creating a framework that prevents out-of-order processing issues before they can occur during parallel execution.
2Ease of operation
If memory is allocated freely to all cores, then ease of operation is improved, but deadlock situations may occur due to unpredictable completion times
Solution Approach 1:
The patent implements a feedback mechanism where the memory allocation policy continuously monitors which core is processing the earliest active work-package. Based on this feedback, the system dynamically adjusts memory allocation decisions, granting allocations to the appropriate core while restricting others. This feedback loop prevents deadlock situations by adapting to the actual execution state of parallel processing.
Solution Approach 2:
The patent changes the parameter of memory allocation policy from a static, uniform approach to a dynamic approach based on work-package completion status. By modifying allocation behavior according to which core is processing the earliest work-package, the system maintains simplicity in operation while preventing deadlocks through parameter-driven decision making.
3Quantity of substance
If all memory allocation requests are processed, then quantity of substance (memory availability) is improved, but device complexity increases due to need to track unrecoverable memory
Solution Approach 1:
The patent applies local quality by differentiating memory allocation behavior based on the requesting core's role. Instead of uniform treatment of all allocation requests, the system applies distinct policies: granting allocations to cores processing the earliest work-package while restricting allocations to other cores based on unrecoverable memory calculations. This localized differentiation maintains memory availability while managing complexity through targeted tracking.
Data Source
AI summary
A method and apparatus are provided for allocating memory for geometry processing in a 3-D graphics rendering system comprising multiple cores. Geometry processing work is divided up into discrete work-packages, which form an ordered sequence. Cores are assigned different work-packages to process, and make memory allocation requests to enable them to store the results of the processing. Memory allocation requests relating to the current earliest uncompleted work-package in the sequence are treated differently to other requests, and may be prioritised.


