Tile-Based GPU Vector Graphics Rendering via Stencil Buffers

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional methods for rendering vector graphics on GPUs face performance bottlenecks due to reliance on multisampling, leading to increased memory usage and slow frame rates, especially on devices with limited resources like mobile devices.

Innovation Solution

The system employs a single pass rendering technique using tile-based GPUs, where vector graphics objects are tessellated into coverage and color primitives, processed by a rendering state machine to generate fragments, and rendered without multisampling, allowing for efficient anti-aliasing and reduced memory usage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Manufacturing precision

If stencil then cover approach with multisampling is used, then anti-aliasing quality is improved, but memory usage increases and performance deteriorates

Engineering Contradiction:
Improveanti-aliasing qualityVSAvoidmemory usage
Core Design Contradiction:
Manufacturing precisionVSQuantity of substance

Solution Approach 1:

The patent segments the rendering process into two distinct passes: a stencil pass that generates a bitmask representing vector shape coverage, and a cover pass that applies colors to pixels indicated by the stencil buffer. This segmentation eliminates the need for multisampling while preserving anti-aliasing quality, as the stencil buffer efficiently tracks which pixels are covered by vector shapes without requiring multiple samples per pixel.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a stencil buffer as an intermediary data structure that stores bitmask information about vector shape coverage. This stencil buffer acts as a mediator between the vector graphics data and the final rendered output, enabling precise anti-aliasing through bitwise operations rather than through memory-intensive multisampling techniques.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Manufacturing precision

If stencil then cover approach with multisampling is used, then anti-aliasing quality is improved, but rendering speed deteriorates

Engineering Contradiction:
Improveanti-aliasing qualityVSAvoidrendering speed
Core Design Contradiction:
Manufacturing precisionVSProductivity

Solution Approach 1:

By segmenting the rendering into stencil and cover passes, the patent avoids the performance penalty of multisampling. The stencil pass efficiently computes coverage using integer arithmetic and bitwise operations, while the cover pass simply applies colors where the stencil buffer indicates coverage, both operations being much faster than the floating-point calculations required for multisampling anti-aliasing.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent uses a disposable stencil buffer that is created, used, and discarded for each rendering operation. This temporary buffer stores only the essential coverage information needed for anti-aliasing, using cheap integer-based bitmask operations rather than expensive multisample data structures, thereby achieving fast rendering with acceptable anti-aliasing quality.

Inventive Principle:
Principle #27Cheap short-living objects (Disposable)

3Quantity of substance

If tessellation-based techniques are used, then memory usage is reduced, but computational cost increases and frame rates decrease

Engineering Contradiction:
Improvememory usageVSAvoidframe rate
Core Design Contradiction:
Quantity of substanceVSProductivity

Solution Approach 1:

The patent replaces the computationally expensive tessellation process with a direct rasterization approach that uses stencil buffers. Instead of generating detailed triangle meshes through tessellation and then rendering them, the system directly rasterizes vector paths into stencil bitmaps, eliminating the intermediate tessellation step and its associated computational overhead while maintaining low memory usage.

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

Solution Approach 2:

The patent changes the fundamental parameter representation from continuous geometric tessellation data to discrete stencil buffer bitmasks. This parameter transformation allows the system to achieve anti-aliasing and rendering with simpler, faster operations that do not require the complex computational geometry calculations inherent in tessellation-based approaches.

Inventive Principle:
Principle #35Parameter changes

4Quantity of substance

If tessellation-based techniques are used, then memory usage is reduced, but editing performance deteriorates

Engineering Contradiction:
Improvememory usageVSAvoidediting performance
Core Design Contradiction:
Quantity of substanceVSEase of operation

Solution Approach 1:

The patent replaces the tessellation mechanism with direct stencil-based rasterization. When vector shapes are edited, the system can rapidly regenerate stencil buffers from the modified vector paths without requiring expensive re-tessellation, enabling real-time editing feedback and interactive performance that tessellation-based systems cannot achieve.

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

Data Source

PatentUS11217005B1Techniques for rendering 2D vector graphics on mobile devices
Publication Date: 2022.01.04 ADOBE INC
  • US11217005B1 patent drawing
  • US11217005B1 patent drawing
  • US11217005B1 patent drawing

AI summary

Embodiments are disclosed for efficiently rendering vector graphics in a single rendering pass on tile-based GPUs. In particular, in one or more embodiments, the disclosed systems and methods comprise receiving at least one segment of a vector-based object to be rendered, generating, by a central processing unit (CPU) of a computing device, a representation of the at least one segment, the representation including a plurality of primitives, including a plurality of coverage primitives and a plurality of color primitives, generating, by a graphics processing unit (GPU) of the computing device, a plurality of fragments based at least on the representation of the at least one segment, and rendering, by the GPU of the computing device, the plurality of fragments in a single pass using a rendering state machine.