Command Buffer Interface for Secure Web Graphics Rendering

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Web applications lack the ability to utilize graphics hardware acceleration, leading to suboptimal graphics performance due to software-based rendering, and existing browser plugins introduce security vulnerabilities and limitations in accepting low-level graphics rendering commands.

Innovation Solution

A system utilizing a command buffer interface between a software client and a software service allows asynchronous and synchronous communication, enabling direct execution of rendering commands on a GPU, thereby facilitating secure and efficient graphics rendering for web applications.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If a browser plugin is used to interface with graphics hardware, then graphics performance is improved, but security vulnerabilities and system stability deteriorate

Engineering Contradiction:
Improvegraphics rendering performanceVSAvoidsystem stability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system is divided into distinct components: a software client that generates rendering commands, a command buffer that stores commands, and a software service that executes commands. This segmentation isolates the security-critical graphics hardware interface from the untrusted web application code, allowing performance improvement through GPU usage while maintaining system stability through architectural isolation.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a command buffer as an intermediary between the software client and software service. The command buffer acts as a secure interface that allows the software client to submit rendering commands without directly accessing graphics hardware or the software service's internal state, thus improving performance while preventing security vulnerabilities from propagating to the system core.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If software-based graphics rendering is used, then security is improved, but graphics performance deteriorates

Engineering Contradiction:
ImprovesecurityVSAvoidgraphics rendering performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The software service acts as an intermediary that enables secure software-based rendering while providing GPU acceleration. It receives rendering commands from the software client through a secure command buffer interface, executes them using GPU hardware acceleration, and returns results, thus achieving both security through software mediation and high performance through hardware acceleration.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system replaces traditional direct graphics API calls with a message-passing mechanism using command buffers. This substitution allows the use of GPU hardware acceleration (replacing software rendering) while maintaining security through the intermediary software service that validates and processes commands, rather than allowing direct untrusted access to graphics hardware.

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

3Productivity

If direct graphics API calls are used, then graphics performance is improved, but ease of operation for web applications deteriorates

Engineering Contradiction:
Improvegraphics rendering performanceVSAvoidweb application compatibility
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The software service provides a universal interface that works across different web applications and platforms. It implements a standardized command buffer protocol that can handle various rendering commands and scenarios, making it easy for web applications to utilize GPU acceleration without needing to implement platform-specific graphics API code, thus improving both performance and ease of operation.

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

Data Source

PatentUS8675000B2Command buffers for web-based graphics rendering
Publication Date: 2014.03.18 GOOGLE LLC
  • US8675000B2 patent drawing
  • US8675000B2 patent drawing
  • US8675000B2 patent drawing

AI summary

The described embodiments provide a system that renders graphics for a computer system. During operation, the system loads a software client and a software service in the computing system. Next, the system receives a set of rendering commands from the software client in a command buffer, wherein the rendering commands include at least one of a state change command, a resource allocation command, a direct memory access (DMA) command, buffer data, and a synchronization command. Finally, the system uses the software service to render an image corresponding to the rendering commands by reading the rendering commands from the command buffer and executing the rendering commands.