GPU 2D Rendering Optimization via 3D API Batching

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Graphics Processing Units (GPUs) are underutilized in rendering two-dimensional objects, leading to increased CPU load and slower performance, especially in modern applications that require rendering a large amount of information on display devices.

Innovation Solution

The method involves receiving rendering requests from 2-D applications, tessellating primitive geometries into triangles, mapping vertices and constant data into buffers, and using a 3-D rendering API to process these data batches on the GPU, while also utilizing staging textures and parallel queues for anti-aliased text rendering.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If GPUs are used for 2-D rendering, then rendering performance is improved, but device complexity increases

Engineering Contradiction:
Improverendering performanceVSAvoiddevice complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent adapts 3-D rendering APIs and GPU architectures designed for 3-D graphics to handle 2-D rendering tasks. By making the rendering system universal enough to handle both 2-D and 3-D graphics through the same API interface and hardware pipeline, it achieves improved 2-D rendering performance without requiring separate dedicated 2-D rendering hardware, thus avoiding increased device complexity

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

Solution Approach 2:

The patent introduces an intermediate layer that translates 2-D drawing calls into 3-D rendering commands compatible with GPU pipelines. This intermediary translation layer allows standard 3-D GPUs to process 2-D graphics efficiently without requiring complex dedicated 2-D hardware, resolving the contradiction between performance improvement and device complexity

Inventive Principle:
Principle #24Intermediary (Mediator)

2Device complexity

If CPU handles 2-D rendering, then device complexity is reduced, but processing speed deteriorates

Engineering Contradiction:
Improvedevice complexityVSAvoidprocessing speed
Core Design Contradiction:
Device complexityVSSpeed

Solution Approach 1:

The patent replaces CPU-based 2-D rendering with GPU-based rendering through the 3-D API pipeline. The GPU's parallel processing architecture substitutes for the CPU's sequential processing, dramatically improving rendering speed while maintaining relatively simple device architecture by reusing existing 3-D rendering hardware

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

3Productivity

If drawing calls are processed individually, then responsiveness is improved, but productivity deteriorates

Engineering Contradiction:
Improvebatch processing efficiencyVSAvoidprocessing time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent merges multiple individual drawing calls into batched operations that are processed together by the GPU. By combining multiple rendering commands into single or fewer API calls, it achieves high batch processing efficiency while minimizing the total time spent on rendering operations, thus resolving the contradiction between productivity and processing time

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS8659589B2Leveraging graphics processors to optimize rendering 2-D objects
Publication Date: 2014.02.25 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8659589B2 patent drawing
  • US8659589B2 patent drawing
  • US8659589B2 patent drawing

AI summary

Methods and computer-readable media for displaying two-dimensional objects on a display device are disclosed. Rendering requests are received from an application to render two-dimensionally modeled graphics to a display device. Primitive geometries of drawing calls of the rendering requests are tessellated into sequences of triangles. The vertices of the triangles are mapped to a vertex buffer along with an index to identify associated constant data. Batching operations store and communicate calls and mapped data to a graphics processing unit by way of a three-dimensional rendering application program interface. Constant data associated with the mapped data are indexed and appended together in a constant buffer, thereby allowing drawing calls to be coalesced. A staging buffer and a staging texture are provided for batching text anti-aliasing operations. Shader fragments are precompiled and organized by way of a predetermined lookup table.