GPU Accelerated Browser Compositing via Sandbox Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional web browsers operating in a sandbox environment are unable to efficiently process graphics-rich media, such as 3D graphics and video, due to their limited access to graphics processing units (GPUs), leading to inefficient rendering and memory transfer issues.

Innovation Solution

A method is introduced to accelerate the rendering of 3D graphics by using a compositor to identify dirty layers in a layer tree, generate rendering data and instructions, and process them on a GPU outside the sandbox environment, utilizing a platform-independent graphics language and translating instructions for execution on the GPU.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a browser operates in a sandbox environment, then security is improved, but the ability to access GPU for graphics processing deteriorates

Engineering Contradiction:
ImprovesecurityVSAvoidgraphics processing capability
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system segments the rendering process into two parts: a compositor running in the sandbox environment that generates rendering instructions, and a GPU process running outside the sandbox that executes those instructions. This segmentation allows the sandboxed compositor to maintain security while the unsandboxed GPU process provides full graphics processing capability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The compositor acts as an intermediary between the sandboxed browser and the GPU. It generates rendering instructions in a platform-independent language and stores them in a shared storage region, allowing communication between the sandboxed and unsandboxed environments without compromising security.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Device complexity

If the CPU renders graphics content, then the browser remains simple, but rendering speed and efficiency deteriorate

Engineering Contradiction:
Improvebrowser architectureVSAvoidrendering speed
Core Design Contradiction:
Device complexityVSSpeed

Solution Approach 1:

The patent extracts the GPU processing functionality from the traditional CPU-based rendering pipeline. By creating a separate GPU process that handles actual graphics rendering while the compositor handles instruction generation, the system achieves GPU-accelerated rendering without significantly complicating the browser architecture.

Inventive Principle:
Principle #2Taking out (Extraction)

3Productivity

If large amounts of data are copied to and from system memory, then rendering can be performed, but memory transfer speed deteriorates

Engineering Contradiction:
Improverendering capabilityVSAvoidmemory transfer time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The shared storage region acts as an intermediary memory space between the compositor and GPU process. Rendering instructions and data are stored in this shared region, eliminating the need for repeated data copying between process spaces and reducing memory transfer time.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS8913067B1GPU accelerated compositing on a multithreaded browser
Publication Date: 2014.12.16 GOOGLE LLC
  • US8913067B1 patent drawing
  • US8913067B1 patent drawing
  • US8913067B1 patent drawing

AI summary

A method for an accelerated rendering of graphics on a webpage. The method comprises providing a layer tree, wherein the layer tree includes a plurality of layers and is in a sandbox environment. The method further comprises identifying a dirty layer within the layer tree, and generating rendering data and the plurality of rendering instructions for processing the dirty layer. The method further comprises storing the rendering data and the plurality of rendering instructions in a storage region outside of the sandbox environment for processing using a graphics processing unit.