IP Library Granted Patent US 11,232,535
Granted Patent B2
US 11,232,535 · App. 17/004,770 · Granted Jan 25, 2022

Systems and methods for using EGL with an OpenGL API and a Vulkan graphics driver

Inventors: Daniel Herring (Fort Worth, TX); Ken Wenger (Mississauga, CA)
Assignee: Chanel One Holdings Inc.
G06T1/20G06F9/451G06T15/005G06T2210/32
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,232,535
App. No.
17/004,770
Granted
Jan 25, 2022
Kind
B2
Abstract

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.

Claims (33)

1. A method for using an EGL driver to create a renderable surface for an OpenGL API, the EGL driver and the OpenGL API for use 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 one processor, the method comprising:

creating an EGL display structure in response to an eglGetDisplay call from an EGL application;

initializing the EGL display structure in response to an egllnitialize call from the EGL application, by:

calling the Vulkan graphics driver to create a Vulkan surface; and

querying the Vulkan driver for attributes of the Vulkan surface and a physical display associated with the Vulkan surface; in response to an eglChooseConfig call from the EGL application, choosing an EGL configuration matching the attributes; and

creating the EGL surface in response to an eglCreateWindowSurface call from the EGL application.

2. The method of claim 1 , wherein querying the Vulkan driver further comprises requesting physical device surface properties to obtain on-screen and off-screen surface formats.

3. The method of claim 2 , further comprising determining whether each of the on-screen and off-screen surface formats can be used for rendering or can be used as a depth or stencil format.

4. The method of claim 3 , further comprising, in response to finding that one or more of the on-screen and off-screen surface formats is usable, extracting a size and type of each component, and bit masking to create a format table.

5. The method of claim 4 , further comprising caching the format table for use in response to a further call.

6. The method of claim 5 , further comprising combining device limits, properties, and color, depth and stencil configurations, and converting to an EGL Configuration parameter list.

7. The method of claim 6 , wherein the on-screen and off-screen surface formats, the device limits, properties, and color, depth and stencil configurations are stored as shader program push constants.

8. The method of claim 1 , wherein choosing the EGL configuration further comprises validating the EGL configuration matching the attributes.

9. The method of claim 1 , further comprising creating a swapchain in response to the eglCreateWindowSurface call, and creating one or more images in the swapchain.

10. The method of claim 9 , further comprising creating depth or stencil buffers following creation of the swapchain.

11. The method of claim 10 , further comprising:

associating the EGL surface with the EGL display and a native windowing system.

12. The method of claim 11 , further comprising:

creating a graphics context in response to an eglCreateContext call from the EGL application;

associating the graphics context with the EGL display; and

in response to an eglMakeCurrent call from the EGL application, associating the graphics context with the EGL surface to make the EGL surface a render target.

13. The method of claim 12 , wherein associating the graphics context with the EGL surface to make the EGL surface the render target further comprises:

getting one or more images from the swapchain;

creating one or more framebuffers;

setting one of the one or more framebuffers current; and

transitioning the one or more images to a default layout.

14. The method of claim 1 , wherein the provided attributes include color buffer size and/or depth buffer size.

15. A non-transitory, computer-readable medium, comprising: an EGL driver having computer instruction code that is executable by at least one processor and structured to cause the at least one processor to be configured to carry out a method for using the EGL driver to create a renderable surface for an OpenGL API, the EGL driver and the OpenGL API for use with a Vulkan graphics driver, the method comprising:

creating an EGL display structure in response to an eglGetDisplay call from an EGL application;

initializing the EGL display structure in response to an egllnitialize call from the EGL application, by:

calling the Vulkan graphics driver to create a Vulkan surface; and

querying the Vulkan driver for attributes of the Vulkan surface and a physical display associated with the Vulkan surface; in response to an eglChooseConfig call from the EGL application, choosing an EGL configuration matching the attributes; and

creating the EGL surface in response to an eglCreateWindowSurface call from the EGL application.

Assignments (2)
SECURITY INTEREST Recorded Jan 16, 2025
From: CHANNEL ONE HOLDINGS INC.
To: PENNANTPARK LOAN AGENCY SERVICING, LLC, AS ADMINISTRATIVE AGENT
Reel/Frame 069890/0481 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 27, 2020
From: HERRING, DANIEL; WENGER, KEN
To: CHANNEL ONE HOLDINGS INC.
Reel/Frame 053618/0487 →
Continuity (3)
Continuation 16057968 · Aug 8, 2018
Provisional Application 62543046 · Aug 9, 2017
Related Publication 20210049730A1 · Feb 18, 2021