Dynamic Buffer Allocation in Tile-Based Graphics Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional tile-based graphics processing systems face inefficiencies due to limited buffer resources, leading to potential stalling when appropriate colour and depth buffers are not available, especially in scenarios with minimal geometry or specific rendering requirements like depth-only or colour-only rendering.

Innovation Solution

The system dynamically allocates colour and depth buffers based on fragment data storage requirements, allowing for flexible use of buffer resources by treating colour buffers as additional depth buffers or vice versa, thereby optimizing memory usage and increasing throughput during depth-only or colour-only rendering processes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the tile buffer has fixed dedicated colour and depth buffers, then buffer allocation is simple, but the system stalls when buffers are not available for depth-only or colour-only rendering

Engineering Contradiction:
Improvepipeline throughputVSAvoidbuffer allocation complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements dynamic buffer allocation where the tile buffer can flexibly switch between dedicated colour/depth buffer modes and shared buffer modes. The system dynamically determines whether to allocate the colour buffer as a depth buffer or vice versa based on the current rendering requirements, allowing the buffer configuration to adapt in real-time rather than being fixed

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent makes the tile buffer universal by enabling it to serve multiple functions: it can act as a dedicated colour buffer, a dedicated depth buffer, or a shared buffer that dynamically allocates its capacity between colour and depth data based on rendering needs. This multi-functionality eliminates stalling in specialized rendering scenarios while maintaining simplicity in standard rendering modes

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

2Adaptability or versatility

If dedicated colour and depth buffers are provided in the tile buffer, then buffer management is straightforward, but additional buffers cannot be allocated for depth-only or colour-only rendering

Engineering Contradiction:
Improverendering mode flexibilityVSAvoidbuffer resource requirements
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The system dynamically adjusts buffer allocation based on rendering mode requirements. When depth-only rendering is detected, the colour buffer is dynamically reallocated to serve as an additional depth buffer. When colour-only rendering is detected, the depth buffer is reallocated for colour data. This dynamic adaptation provides versatility without requiring additional physical buffer resources

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the operational parameters of the existing buffers by altering their data storage purpose. The colour buffer can change from storing colour data to storing depth data, and vice versa for the depth buffer. This parameter change allows the same physical buffer resources to support multiple rendering modes including depth-only and colour-only rendering

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS9916675B2Graphics processing systems
Publication Date: 2018.03.13 ARM LTD
  • US9916675B2 patent drawing
  • US9916675B2 patent drawing
  • US9916675B2 patent drawing

AI summary

In a tile-based graphics processing system, when a tile for a render output is to be generated, the fragment data storage requirements for each fragment to be generated for the tile is determined 51, and a color and/or depth buffer in the tile buffer is allocated for use by the fragments for the tile based on the determination 57. The graphics processing pipeline then, when generating rendered fragment data for the tile, stores the rendered fragment data in the color buffer and/or depth buffer of the tile buffer allocated to the fragments for the tile 58.