GPU Text Rendering via Vertex Shader Offload

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Standard APIs for rendering text in web applications are inadequate for high-performance rendering of full screens of text that frequently changes, as they do not effectively utilize graphics hardware acceleration, leading to inefficient CPU usage and bandwidth consumption.

Innovation Solution

The system pre-computes constant resources and offloads work from the CPU to the GPU by creating a generic index vertex buffer object, glyph texture object, and glyph position texture object, which are then used by a custom vertex shader to render text, reducing redundant processing and CPU computations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If standard APIs (HTML/DOM or CoreText) are used for text rendering, then implementation simplicity is maintained, but rendering performance is inadequate for high-performance full screen text

Engineering Contradiction:
Improvetext rendering performanceVSAvoidrendering system complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent replaces the standard CPU-based text rendering API (HTML/DOM or CoreText) with a GPU-based rendering system using OpenGL/WebGL. This substitution transfers the rendering workload from the CPU to the GPU, which is specifically designed for parallel processing and can handle high-performance full screen text rendering much more efficiently than traditional APIs.

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

Solution Approach 2:

The patent introduces a custom vertex shader as an intermediary between the application logic and the GPU rendering pipeline. This shader program acts as a mediator that processes text rendering operations in a specialized manner, enabling efficient GPU acceleration while maintaining a relatively simple application interface. The vertex shader serves as the bridge that translates standard text rendering requests into optimized GPU operations.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Loss of energy

If CPU-based text rendering is used, then implementation is simpler, but CPU bandwidth to GPU is excessive and inefficient

Engineering Contradiction:
ImproveCPU-to-GPU bandwidth consumptionVSAvoidCPU availability for other tasks
Core Design Contradiction:
Loss of energyVSProductivity

Solution Approach 1:

The patent extracts the text rendering workload from the CPU and delegates it to the GPU. By moving the rendering operations to the GPU, the system eliminates the need for continuous CPU-to-GPU data transfer for rendering operations, significantly reducing bandwidth consumption and freeing the CPU to perform other computational tasks.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent enables the GPU to perform text rendering operations autonomously using its own capabilities and memory. The GPU processes text rendering independently without requiring constant CPU intervention or data transfer, allowing the rendering system to serve itself and reducing the burden on the CPU.

Inventive Principle:
Principle #25Self-service

3Productivity

If hardware acceleration via OpenGL/WebGL is implemented, then rendering performance improves, but implementation complexity increases

Engineering Contradiction:
Improvetext rendering throughputVSAvoidrendering pipeline complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent uses a single vertex shader program that can handle multiple text rendering operations universally. This shader program serves as a multi-functional component that processes various text rendering scenarios (different fonts, sizes, positions) through a unified approach, reducing the need for multiple specialized rendering pipelines and simplifying the overall implementation.

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

4Adaptability or versatility

If text rendering frequently changes, then text dynamicity is improved, but standard APIs cannot maintain adequate performance

Engineering Contradiction:
Improvetext change responsivenessVSAvoidrendering performance
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent implements a dynamic rendering system using OpenGL/WebGL that can efficiently handle frequently changing text. The GPU-based architecture allows for real-time updates of text rendering without the performance degradation seen in CPU-based systems, as the GPU can rapidly process and render updated text content through its parallel processing capabilities.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS8988434B1Text rendering for browsers and mobile based applications
Publication Date: 2015.03.24 GOOGLE LLC
  • US8988434B1 patent drawing
  • US8988434B1 patent drawing
  • US8988434B1 patent drawing

AI summary

A system and method for rendering text data in web applications is provided that eliminates redundant processing. Constant resources are pre-computed and work is offloaded from the central processing unit to the graphics processing unit. This is generally accomplished by pre-computing before any rendering. A generic index vertex buffer object is created, and for each font, a glyph texture object and glyph position texture object are created. A frame including text is then rendered in which a glyph string texture object is created. For each character, a glyph index-to-texture and glyph offset to-texture is appended. A glyph texture, glyph position texture and glyph string texture are then bound, and the generic index vertex buffer object using a custom vertex shader is rendered.