Shared GPU Shader Cache for Cloud Gaming Compilation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In cloud gaming, the duration required for compiling shader codes is lengthy, leading to slower game running speeds, as existing technologies lack efficient methods for sharing and utilizing pre-compiled shader code results across multiple system containers.

Innovation Solution

The implementation of a shared GPU shader cache mechanism, including both static and dynamic caching methods, where pre-compiled shader code results are shared among system containers, allowing direct use of cached results instead of recompiling, thereby reducing the compilation duration and enhancing game speed.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If shader code is compiled individually for each system container, then each container has independent shader compilation capability, but the compilation duration is lengthy and game running speed is slow

Engineering Contradiction:
Improveindependent shader compilation capabilityVSAvoidcompilation duration
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent merges the shader compilation resources and results across multiple system containers by introducing a shared directory that stores pre-compiled shader codes. Instead of each container independently compiling shaders, the system combines compilation efforts and allows containers to share results, directly reducing compilation duration while maintaining rendering capability.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent applies preliminary action by pre-compiling shader codes in advance and storing them in a shared directory before they are needed by system containers. This advance preparation eliminates the need for time-consuming compilation during game runtime, directly addressing the compilation duration issue.

Inventive Principle:
Principle #10Preliminary action

2Loss of time

If shader code is pre-compiled and cached, then compilation duration is reduced, but the system requires additional storage and cache management infrastructure

Engineering Contradiction:
Improvecompilation durationVSAvoidcache management infrastructure
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The patent introduces a shared directory as an intermediary component that sits between the compilation process and system containers. This intermediary stores pre-compiled shader codes and manages the caching mechanism, reducing the complexity burden on individual containers while enabling time savings through centralized cache management.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If multiple system containers share pre-compiled shader codes, then game running speed increases, but the system requires a shared directory mechanism between containers

Engineering Contradiction:
Improvegame running speedVSAvoidshared directory mechanism
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The shared directory mechanism serves multiple functions: it stores pre-compiled shader codes, provides a caching layer for multiple containers, and enables inter-container communication for resource sharing. This multi-functionality justifies the added complexity by delivering productivity improvements across the entire system rather than a single component.

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

Data Source

PatentUS12121807B2Image processing method using a shared GPU shader cache mechanism and apparatus, server, and medium
Publication Date: 2024.10.22 TENCENT TECHNOLOGY (SHENZHEN) CO LTD
  • US12121807B2 patent drawing
  • US12121807B2 patent drawing
  • US12121807B2 patent drawing

AI summary

This application discloses an image processing method, a server, and a computer-readable storage medium. The method includes: obtaining, in response to a trigger for an operation event of a target game running in a target container, a target shader code corresponding to the operation event; obtaining a target compilation result of the target shader code from a game resource, the game resource including: a game image of the target game and/or a target shared directory between the target container and an associated container of the target container. The target shared directory includes a first compilation result of compiling, when running the target game, at least one shader code by the associated container; and performing graphic processing according to the target compilation result to obtain a feedback image corresponding to the operation event.