EGL Driver for Platform-Independent OpenGL Render Surfaces Through Vulkan

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing graphics APIs like OpenGL lack the ability to create and allocate on-screen or off-screen buffers, necessitating platform-specific solutions that are syntactically varied and not universally applicable, and the introduction of Vulkan requires a new windowing API to bridge the gap between render surfaces and native displays.

Innovation Solution

Implementing an EGL driver that utilizes a Vulkan graphics driver to create a renderable surface for OpenGL, including functions like eglGetDisplay, eglinitialize, eglChooseConfig, and eglCreateWindowSurface, to establish a graphics context and render target, independent of the underlying platform.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If platform-specific APIs are used to create render surfaces, then the ability to create and allocate on-screen or off-screen buffers is achieved, but the device complexity increases and portability decreases

Engineering Contradiction:
Improveplatform independenceVSAvoidAPI complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces EGL as an intermediary layer between OpenGL and the native windowing system. EGL provides a platform-independent interface for creating and managing render surfaces, while internally it interacts with platform-specific windowing systems (WGL on Windows, GLX on X11, etc.). This mediator approach allows OpenGL applications to work across different platforms without directly dealing with platform-specific API complexities.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

EGL is designed as a universal API that can work with multiple graphics contexts and windowing systems. It provides a single set of functions (eglCreateWindowSurface, eglCreatePbufferSurface, etc.) that can create different types of render surfaces depending on the platform and requirements, eliminating the need for separate platform-specific surface creation code.

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

2Productivity

If Vulkan graphics driver is used with new windowing API, then graphics performance and GPU utilization are improved, but compatibility with existing OpenGL applications decreases

Engineering Contradiction:
ImproveGPU utilizationVSAvoidAPI compatibility
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent uses EGL as a mediator layer that sits between OpenGL applications and the Vulkan graphics driver. EGL translates OpenGL rendering commands into Vulkan API calls, allowing existing OpenGL applications to run on Vulkan-powered hardware without modification. This intermediary layer maintains OpenGL application compatibility while enabling the use of Vulkan's high-performance GPU capabilities.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The EGL implementation provides a universal interface that can work with multiple graphics backends including Vulkan. By making the graphics driver backend configurable and interchangeable, the same EGL/OpenGL stack can utilize different underlying graphics APIs (Vulkan, OpenGL, etc.) depending on hardware capabilities and performance requirements.

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

Data Source

PatentEP3441877B1Systems and methods for using EGL with an opengl API and a vulkan graphics driver
Publication Date: 2025.07.16 CHANNEL ONE HOLDINGS INC
  • EP3441877B1 patent drawingFigure 1~2
  • EP3441877B1 patent drawingFigure 3
  • EP3441877B1 patent drawingFigure 4

AI summary

A method for using an EGL driver to create a renderable surface for an OpenGL API is provided. The EGL driver and the OpenGL API can be used with a Vulkan graphics driver, a memory, at least one processor, and a module stored in the memory including computer instruction code that is executable by the at least on processor. The method includes creating an EGL display structure; initializing the EGL display structure by querying the Vulkan driver for attributes of a physical display; choosing an EGL configuring matching the provided attributes; and creating the EGL surface. A non-transitory computer readable medium having an EGL driver with computer instruction code that is executable by a processor to create a renderable surface for an OpenGL API is also provided.