OpenGL-on-Vulkan Driver Translator Architecture

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The existing OpenGL API is less flexible than Vulkan and lacks compatibility with it, making it difficult for large code bases to transition to Vulkan, while continued support for OpenGL drivers is required, necessitating a solution that leverages Vulkan capabilities without immediate code base changes.

Innovation Solution

An OpenGL-on-Vulkan driver architecture is implemented, using a translator module to convert OpenGL API calls into Vulkan commands, allowing the use of Vulkan's capabilities while maintaining compatibility with existing OpenGL applications, enabling the use of Vulkan's features through a hardware-agnostic OpenGL driver component and a Vulkan driver component.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If Vulkan API is used to take advantage of current GPUs, then flexibility and performance are improved, but compatibility with existing OpenGL applications deteriorates

Engineering Contradiction:
ImproveflexibilityVSAvoidcompatibility
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements a translator component that acts as an intermediary between OpenGL applications and the Vulkan driver. This translator intercepts OpenGL API calls and translates them into corresponding Vulkan commands, allowing existing OpenGL applications to run on Vulkan-based systems without modification while enabling access to Vulkan's flexibility and performance capabilities.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If OpenGL driver continues to be supported, then application compatibility is maintained, but access to Vulkan capabilities is limited

Engineering Contradiction:
Improveapplication compatibilityVSAvoidaccess to Vulkan capabilities
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent creates a multi-functional driver architecture where the OpenGL driver not only handles traditional OpenGL operations but also incorporates a translator that enables Vulkan capability access. This allows the same driver to serve multiple purposes: maintaining OpenGL application compatibility while simultaneously providing access to Vulkan's advanced features through command translation.

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

3Adaptability or versatility

If code base is changed to Vulkan, then flexibility is improved, but development time and complexity increase

Engineering Contradiction:
ImproveflexibilityVSAvoiddevelopment time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent implements preliminary action by pre-translating OpenGL commands to Vulkan commands at runtime through the translator component. This allows applications to immediately benefit from Vulkan's flexibility without requiring upfront codebase changes, as the translation happens automatically during execution, thereby avoiding the time investment required for manual porting.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentEP3159849B1Systems and methods for using an opengl API with a vulkan graphics driver
Publication Date: 2021.01.06 CHANNEL ONE HOLDINGS INC
  • EP3159849B1 patent drawingFigure 1A~1B
  • EP3159849B1 patent drawingFigure 2
  • EP3159849B1 patent drawingFigure 3

AI summary

A system, method, and computer-readable medium are provided for translating OpenGL API calls to operations in a Vulkan graphics driver using an OpenGL-on-Vulkan driver architecture. An OpenGL-on-Vulkan driver receives an OpenGL context and render function, translates an OpenGL format to a Vulkan format, creates a Vulkan object and sets a Vulkan state, and generates a Vulkan command buffer corresponding to the OpenGL render function.