Preemptive Bin Flushing for GPU Memory Overflow

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional graphics processing systems face inefficiencies due to repeated memory access and uneven workload distribution during 3D graphics rendering, leading to suboptimal performance and memory bandwidth issues, particularly exacerbated by whole frame flushing and concentrated bin data.

Innovation Solution

A GPU system with a binning engine, rendering engine, flush controller, and bin controller that enables preemptive flushing of bins before a frame is fully binned, allowing for adaptive control over which bins to flush and in what order, thereby preventing memory overflow and alleviating workload imbalances.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If deferred rendering accumulates multiple primitives before rendering, then memory access is reduced and system performance is improved, but memory overflow risk increases when bins are not flushed timely

Engineering Contradiction:
Improvesystem performanceVSAvoidmemory overflow prevention
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system performs preliminary flushing of bins before the frame is fully binned by detecting adaptive conditions during the binning process. The flush controller generates a signal to flush one or more bins from the bin buffer when conditions indicate it is beneficial to do so, preventing memory overflow before it occurs while maintaining the performance benefits of deferred rendering.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If whole frame flushing is performed, then memory overflow is prevented, but rendering hardware utilization is reduced and performance decreases

Engineering Contradiction:
Improvememory overflow preventionVSAvoidrendering hardware utilization
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

Instead of flushing the entire frame at once, the system segments the flushing operation by selecting and flushing only specific bins that meet adaptive conditions. The bin controller receives a signal to flush one or more specific bins from the bin buffer while leaving other bins to be processed normally, thus maintaining rendering hardware utilization while preventing memory overflow in critical areas.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system applies different quality levels to different bins based on their characteristics and current system state. Some bins are flushed early when conditions indicate it is beneficial, while other bins continue to accumulate primitives for deferred rendering. This localized approach optimizes memory management without sacrificing overall rendering performance.

Inventive Principle:
Principle #3Local quality

3Ease of operation

If primitives are rasterized individually, then processing is straightforward, but repeated color and depth value reads and writes from memory cause suboptimal system performance

Engineering Contradiction:
Improveprocessing simplicityVSAvoidsystem performance
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The system merges multiple primitives into bins before rendering, accumulating primitives from multiple graphical objects in a frame. This allows the rendering engine to process bins rather than individual primitives, significantly reducing the number of memory accesses for color and depth values while maintaining processing effectiveness.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS9659407B2Preemptive flushing of spatial selective bins for deferred graphics processing
Publication Date: 2017.05.23 XUESHAN TECH INC
  • US9659407B2 patent drawing
  • US9659407B2 patent drawing
  • US9659407B2 patent drawing

AI summary

A graphics processing unit (GPU) is provided to preemptively flush one or more bins. The GPU generates bin data of a display area according to an association of primitive data with the bins that correspond to the display area. Upon detecting an adaptive condition, a signal is generated to indicate that one or more bins of a first frame are to be flushed in a first order before the first frame is fully binned. The signal interrupts bin flush of a second frame in a second order in order to flush the one or more bins of the first frame in the first order. After the one or more bins of the first frame are flushed, the bin flush of the second frame is resumed in the second order.