diff options
Diffstat (limited to 'glew/auto/EGL-Registry/extensions/MESA')
5 files changed, 838 insertions, 0 deletions
diff --git a/glew/auto/EGL-Registry/extensions/MESA/EGL_MESA_drm_image.txt b/glew/auto/EGL-Registry/extensions/MESA/EGL_MESA_drm_image.txt new file mode 100644 index 0000000..0937d6b --- /dev/null +++ b/glew/auto/EGL-Registry/extensions/MESA/EGL_MESA_drm_image.txt @@ -0,0 +1,157 @@ +Name + + MESA_drm_image + +Name Strings + + EGL_MESA_drm_image + +Contact + + Kristian Høgsberg <krh@bitplanet.net> + +Status + + Proposal + +Version + + Version 4, November 23, 2017 + +Number + + EGL Extension #26 + +Dependencies + + Requires EGL 1.4 or later. This extension is written against the + wording of the EGL 1.4 specification. + + EGL_KHR_base_image is required. + +Overview + + This extension provides entry points for integrating EGLImage with the + Linux DRM mode setting and memory management drivers. The extension + lets applications create EGLImages without a client API resource and + lets the application get the DRM buffer handles. + +IP Status + + Open-source; freely implementable. + +New Procedures and Functions + + EGLImageKHR eglCreateDRMImageMESA(EGLDisplay dpy, + const EGLint *attrib_list); + + EGLBoolean eglExportDRMImageMESA(EGLDisplay dpy, + EGLImageKHR image, + EGLint *name, + EGLint *handle, + EGLint *stride); + +New Tokens + + Accepted in the <attrib_list> parameter of eglCreateDRMImageMESA: + + EGL_DRM_BUFFER_FORMAT_MESA 0x31D0 + EGL_DRM_BUFFER_USE_MESA 0x31D1 + + Accepted as values for the EGL_IMAGE_FORMAT_MESA attribute: + + EGL_DRM_BUFFER_FORMAT_ARGB32_MESA 0x31D2 + + Bits accepted in EGL_DRM_BUFFER_USE_MESA: + + EGL_DRM_BUFFER_USE_SCANOUT_MESA 0x0001 + EGL_DRM_BUFFER_USE_SHARE_MESA 0x0002 + EGL_DRM_BUFFER_USE_CURSOR_MESA 0x0004 + + Accepted in the <target> parameter of eglCreateImageKHR: + + EGL_DRM_BUFFER_MESA 0x31D3 + + Use when importing drm buffer: + + EGL_DRM_BUFFER_STRIDE_MESA 0x31D4 + EGL_DRM_BUFFER_FORMAT_MESA 0x31D0 + +Additions to the EGL 1.4 Specification: + + To create a DRM EGLImage, call + + EGLImageKHR eglCreateDRMImageMESA(EGLDisplay dpy, + const EGLint *attrib_list); + + In the attribute list, pass EGL_WIDTH, EGL_HEIGHT and format and + use in the attrib list using EGL_DRM_BUFFER_FORMAT_MESA and + EGL_DRM_BUFFER_USE_MESA. The only format specified by this + extension is EGL_DRM_BUFFER_FORMAT_ARGB32_MESA, where each pixel + is a CPU-endian, 32-bit quantity, with alpha in the upper 8 bits, + then red, then green, then blue. The bit values accepted by + EGL_DRM_BUFFER_USE_MESA are EGL_DRM_BUFFER_USE_SCANOUT_MESA, + EGL_DRM_BUFFER_USE_SHARE_MESA and EGL_DRM_BUFFER_USE_CURSOR_MESA. + EGL_DRM_BUFFER_USE_SCANOUT_MESA requests that the created EGLImage + should be usable as a scanout buffer with the DRM kernel + modesetting API. EGL_DRM_BUFFER_USE_SHARE_MESA requests that the + EGLImage can be shared with other processes by passing the + underlying DRM buffer name. EGL_DRM_BUFFER_USE_CURSOR_MESA + requests that the image must be usable as a cursor with KMS. When + EGL_DRM_BUFFER_USE_CURSOR_MESA is set, width and height must both + be 64. + + To create a process local handle or a global DRM name for a + buffer, call + + EGLBoolean eglExportDRMImageMESA(EGLDisplay dpy, + EGLImageKHR image, + EGLint *name, + EGLint *handle, + EGLint *stride); + + If <name> is non-NULL, a global name is assigned to the image and + written to <name>, the handle (local to the DRM file descriptor, + for use with DRM kernel modesetting API) is written to <handle> if + non-NULL and the stride (in bytes) is written to <stride>, if + non-NULL. + + Import a shared buffer by calling eglCreateImageKHR with + EGL_DRM_BUFFER_MESA as the target, using EGL_WIDTH, EGL_HEIGHT, + EGL_DRM_BUFFER_FORMAT_MESA, EGL_DRM_BUFFER_STRIDE_MESA + in the attrib list. + +Issues + + 1. Why don't we use eglCreateImageKHR with a target that + indicates that we want to create an EGLImage from scratch? + + RESOLVED: The eglCreateImageKHR entry point is reserved for + creating an EGLImage from an already existing client API + resource. This is fine when we're creating the EGLImage from + an existing DRM buffer name, it doesn't seem right to overload + the function to also allocate the underlying resource. + + 2. Why don't we use an eglQueryImageMESA type functions for + querying the DRM EGLImage attributes (name, handle, and stride)? + + RESOLVED: The eglQueryImage function has been proposed often, + but it goes against the EGLImage design. EGLImages are opaque + handles to a 2D array of pixels, which can be passed between + client APIs. By referencing an EGLImage in a client API, the + EGLImage target (a texture, a renderbuffer or such) can be + used to query the attributes of the EGLImage. We don't have a + full client API for creating and querying DRM buffers, though, + so we use a new EGL extension entry point instead. + +Revision History + + Version 1, June 3, 2010 + Initial draft (Kristian Høgsberg) + Version 2, August 25, 2010 + Flesh out the extension a bit, add final EGL tokens, capture + some of the original discussion in the issues section. + Version 3, November 29, 2010 (Jon Leech) + Fix typo. + Version 4, November 23, 2017 (Kristian Høgsberg) + Fix typos, add EGL_DRM_BUFFER_USE_CURSOR_MESA diff --git a/glew/auto/EGL-Registry/extensions/MESA/EGL_MESA_image_dma_buf_export.txt b/glew/auto/EGL-Registry/extensions/MESA/EGL_MESA_image_dma_buf_export.txt new file mode 100644 index 0000000..cc9497e --- /dev/null +++ b/glew/auto/EGL-Registry/extensions/MESA/EGL_MESA_image_dma_buf_export.txt @@ -0,0 +1,147 @@ +Name + + MESA_image_dma_buf_export + +Name Strings + + EGL_MESA_image_dma_buf_export + +Contributors + + Dave Airlie + +Contact + + Dave Airlie (airlied 'at' redhat 'dot' com) + +Status + + Complete, shipping. + +Version + + Version 3, May 5, 2015 + +Number + + EGL Extension #87 + +Dependencies + + Requires EGL 1.4 or later. This extension is written against the + wording of the EGL 1.4 specification. + + EGL_KHR_base_image is required. + + The EGL implementation must be running on a Linux kernel supporting the + dma_buf buffer sharing mechanism. + +Overview + + This extension provides entry points for integrating EGLImage with the + dma-buf infrastructure. The extension allows creating a Linux dma_buf + file descriptor or multiple file descriptors, in the case of multi-plane + YUV image, from an EGLImage. + + It is designed to provide the complementary functionality to + EGL_EXT_image_dma_buf_import. + +IP Status + + Open-source; freely implementable. + +New Types + + This extension uses the 64-bit unsigned integer type EGLuint64KHR + first introduced by the EGL_KHR_stream extension, but does not + depend on that extension. The typedef may be reproduced separately + for this extension, if not already present in eglext.h. + + typedef khronos_uint64_t EGLuint64KHR; + +New Procedures and Functions + + EGLBoolean eglExportDMABUFImageQueryMESA(EGLDisplay dpy, + EGLImageKHR image, + int *fourcc, + int *num_planes, + EGLuint64KHR *modifiers); + + EGLBoolean eglExportDMABUFImageMESA(EGLDisplay dpy, + EGLImageKHR image, + int *fds, + EGLint *strides, + EGLint *offsets); + +New Tokens + + None + + +Additions to the EGL 1.4 Specification: + + To mirror the import extension, this extension attempts to return + enough information to enable an exported dma-buf to be imported + via eglCreateImageKHR and EGL_LINUX_DMA_BUF_EXT token. + + Retrieving the information is a two step process, so two APIs + are required. + + The first entrypoint + EGLBoolean eglExportDMABUFImageQueryMESA(EGLDisplay dpy, + EGLImageKHR image, + int *fourcc, + int *num_planes, + EGLuint64KHR *modifiers); + + is used to retrieve the pixel format of the buffer, as specified by + drm_fourcc.h, the number of planes in the image and the Linux + drm modifiers. <fourcc>, <num_planes> and <modifiers> may be NULL, + in which case no value is retrieved. + + The second entrypoint retrieves the dma_buf file descriptors, + strides and offsets for the image. The caller should pass + arrays sized according to the num_planes values retrieved previously. + Passing arrays of the wrong size will have undefined results. + If the number of fds is less than the number of planes, then + subsequent fd slots should contain -1. + + EGLBoolean eglExportDMABUFImageMESA(EGLDisplay dpy, + EGLImageKHR image, + int *fds, + EGLint *strides, + EGLint *offsets); + + <fds>, <strides>, <offsets> can be NULL if the infomatation isn't + required by the caller. + +Issues + +1. Should the API look more like an attribute getting API? + +ANSWER: No, from a user interface pov, having to iterate across calling +the API up to 12 times using attribs seems like the wrong solution. + +2. Should the API take a plane and just get the fd/stride/offset for that + plane? + +ANSWER: UNKNOWN,this might be just as valid an API. + +3. Does ownership of the file descriptor remain with the app? + +ANSWER: Yes, the app is responsible for closing any fds retrieved. + +4. If number of planes and number of fds differ what should we do? + +ANSWER: Return -1 for the secondary slots, as this avoids having +to dup the fd extra times to make the interface sane. + +Revision History + + Version 3, May, 2015 + Just use the KHR 64-bit type. + Version 2, March, 2015 + Add a query interface (Dave Airlie) + Version 1, June 3, 2014 + Initial draft (Dave Airlie) + diff --git a/glew/auto/EGL-Registry/extensions/MESA/EGL_MESA_platform_gbm.txt b/glew/auto/EGL-Registry/extensions/MESA/EGL_MESA_platform_gbm.txt new file mode 100644 index 0000000..e40a774 --- /dev/null +++ b/glew/auto/EGL-Registry/extensions/MESA/EGL_MESA_platform_gbm.txt @@ -0,0 +1,319 @@ +Name + + MESA_platform_gbm + +Name Strings + + EGL_MESA_platform_gbm + +Contributors + + Chad Versace <chad.versace@intel.com> + Kristian Høgsberg <krh@bitplanet.org> + +Contacts + + Chad Versace <chad.versace@intel.com> + +Status + + Complete + +Version + + Version 7, 2016/01/04 + +Number + + EGL Extension #62 + +Extension Type + + EGL client extension + +Dependencies + + Requires EGL_EXT_client_extensions to query its existence without + a display. + + Requires EGL_EXT_platform_base. + + This extension is written against the wording of version 7 of the + EGL_EXT_platform_base specification. + +Overview + + This extension defines how to create EGL resources from native GBM + resources using the functions defined by EGL_EXT_platform_base. (GBM is + a Generic Buffer Manager for Linux). + +New Types + + None + +New Procedures and Functions + + None + +New Tokens + + Accepted as the <platform> argument of eglGetPlatformDisplayEXT: + + EGL_PLATFORM_GBM_MESA 0x31D7 + +Additions to the EGL Specification + + None. + +New Behavior + + To determine if the EGL implementation supports this extension, clients + should query the EGL_EXTENSIONS string of EGL_NO_DISPLAY. + + To obtain an EGLDisplay from an GBM device, call eglGetPlatformDisplayEXT with + <platform> set to EGL_PLATFORM_GBM_MESA. The <native_display> parameter + specifies the GBM device to use and must either point to a `struct + gbm_device` or be NULL. If <native_display> is NULL, then the resultant + EGLDisplay will be backed by some implementation-chosen GBM device. + + For each EGLConfig that belongs to the GBM platform, the + EGL_NATIVE_VISUAL_ID attribute is a GBM color format, such as + GBM_FORMAT_XRGB8888. + + To obtain a rendering surface from a GBM surface, call + eglCreatePlatformWindowSurfaceEXT with a <dpy> that belongs to the GBM + platform and a <native_window> that points to a `struct gbm_surface`. If + <native_window> was created without the GBM_BO_USE_RENDERING flag, or if + the color format of <native_window> differs from the EGL_NATIVE_VISUAL_ID + of <config>, then the function fails and generates EGL_BAD_MATCH. + + It is not valid to call eglCreatePlatformPixmapSurfaceEXT with a <dpy> that + belongs to the GBM platform. Any such call fails and generates + EGL_BAD_PARAMETER. + +Issues + + 1. Should this extension permit NULL as input to eglGetPlatformDisplayEXT? + + RESOLUTION: Yes. When given NULL, eglGetPlatformDisplayEXT returns an + EGLDisplay backed by an implementation-chosen GBM device. + +Example Code + + // This example program creates an EGL surface from a GBM surface. + // + // If the macro EGL_MESA_platform_gbm is defined, then the program + // creates the surfaces using the methods defined in this specification. + // Otherwise, it uses the methods defined by the EGL 1.4 specification. + // + // Compile with `cc -std=c99 example.c -lgbm -lEGL`. + + #include <stdlib.h> + #include <string.h> + + #include <sys/types.h> + #include <sys/stat.h> + #include <fcntl.h> + + #include <EGL/egl.h> + #include <gbm.h> + + struct my_display { + struct gbm_device *gbm; + EGLDisplay egl; + }; + + struct my_config { + struct my_display dpy; + EGLConfig egl; + }; + + struct my_window { + struct my_config config; + struct gbm_surface *gbm; + EGLSurface egl; + }; + + static void + check_extensions(void) + { + #ifdef EGL_MESA_platform_gbm + const char *client_extensions = eglQueryString(EGL_NO_DISPLAY, EGL_EXTENSIONS); + + if (!client_extensions) { + // EGL_EXT_client_extensions is unsupported. + abort(); + } + if (!strstr(client_extensions, "EGL_MESA_platform_gbm")) { + abort(); + } + #endif + } + + static struct my_display + get_display(void) + { + struct my_display dpy; + + int fd = open("/dev/dri/card0", O_RDWR | FD_CLOEXEC); + if (fd < 0) { + abort(); + } + + dpy.gbm = gbm_create_device(fd); + if (!dpy.gbm) { + abort(); + } + + + #ifdef EGL_MESA_platform_gbm + dpy.egl = eglGetPlatformDisplayEXT(EGL_PLATFORM_GBM_MESA, dpy.gbm, NULL); + #else + dpy.egl = eglGetDisplay(dpy.gbm); + #endif + + if (dpy.egl == EGL_NO_DISPLAY) { + abort(); + } + + EGLint major, minor; + if (!eglInitialize(dpy.egl, &major, &minor)) { + abort(); + } + + return dpy; + } + + static struct my_config + get_config(struct my_display dpy) + { + struct my_config config = { + .dpy = dpy, + }; + + EGLint egl_config_attribs[] = { + EGL_BUFFER_SIZE, 32, + EGL_DEPTH_SIZE, EGL_DONT_CARE, + EGL_STENCIL_SIZE, EGL_DONT_CARE, + EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT, + EGL_SURFACE_TYPE, EGL_WINDOW_BIT, + EGL_NONE, + }; + + EGLint num_configs; + if (!eglGetConfigs(dpy.egl, NULL, 0, &num_configs)) { + abort(); + } + + EGLConfig *configs = malloc(num_configs * sizeof(EGLConfig)); + if (!eglChooseConfig(dpy.egl, egl_config_attribs, + configs, num_configs, &num_configs)) { + abort(); + } + if (num_configs == 0) { + abort(); + } + + // Find a config whose native visual ID is the desired GBM format. + for (int i = 0; i < num_configs; ++i) { + EGLint gbm_format; + + if (!eglGetConfigAttrib(dpy.egl, configs[i], + EGL_NATIVE_VISUAL_ID, &gbm_format)) { + abort(); + } + + if (gbm_format == GBM_FORMAT_XRGB8888) { + config.egl = configs[i]; + free(configs); + return config; + } + } + + // Failed to find a config with matching GBM format. + abort(); + } + + static struct my_window + get_window(struct my_config config) + { + struct my_window window = { + .config = config, + }; + + window.gbm = gbm_surface_create(config.dpy.gbm, + 256, 256, + GBM_FORMAT_XRGB8888, + GBM_BO_USE_RENDERING); + if (!window.gbm) { + abort(); + } + + #ifdef EGL_MESA_platform_gbm + window.egl = eglCreatePlatformWindowSurfaceEXT(config.dpy.egl, + config.egl, + window.gbm, + NULL); + #else + window.egl = eglCreateWindowSurface(config.dpy.egl, + config.egl, + window.gbm, + NULL); + #endif + + if (window.egl == EGL_NO_SURFACE) { + abort(); + } + + return window; + } + + int + main(void) + { + check_extensions(); + + struct my_display dpy = get_display(); + struct my_config config = get_config(dpy); + struct my_window window = get_window(config); + + return 0; + } + +Revision History + + Version 8, 2018-05-25 (Krzysztof Kosiński) + - Corrected EGL_DEFAULT_DISPLAY to NULL. The second argument to + eglGetPlatformDisplayEXT has type void*, while EGL_DEFAULT_DISPLAY has + type EGLNativeDisplayType, which is not guaranteed to be convertible + to void* - it could be int, long or intptr_t. + + Version 7, 2016-01-04 (Jon Leech) + - Free config memory allocated in sample code (Public Bug 1445). + + Version 6, 2014-02-12 (Chad Versace) + - Change resolution of issue #1 from "no" to "yes". Now + eglGetPlatformDisplayEXT accepts EGL_DEFAULT_DISPLAY for GBM. + + Version 5, 2013-010-15 (Chad Versace) + - Specify that EGL_NATIVE_VISUAL_ID is a GBM color format. + - Require for eglCreatePlatformWindowSurfaceEXT that the GBM color + format not differ between the EGLConfig and gbm_surface. (Suggested + by Kristian). + - Update example code to find matching EGL_NATIVE_VISUAL_ID. + + Version 4, 2013-09-13 (Chad Versace) + - Update the text and example code to wording of version 7 of + EGL_EXT_platform_base spec. + - Add section "Extension Type". + - Resolve issue #1 to "No". + - Add issue #2. + + Version 3, 2013-04-26 (Chad Versace) + - Add missing MESA suffix to new token. + + Version 2, 2013-04-23 (Chad Versace) + - Add issue #1 regarding EGL_DEFAULT_DISPLAY. + + Version 1, 2013.03.24 (Chad Versace) + - First draft diff --git a/glew/auto/EGL-Registry/extensions/MESA/EGL_MESA_platform_surfaceless.txt b/glew/auto/EGL-Registry/extensions/MESA/EGL_MESA_platform_surfaceless.txt new file mode 100644 index 0000000..6ba562c --- /dev/null +++ b/glew/auto/EGL-Registry/extensions/MESA/EGL_MESA_platform_surfaceless.txt @@ -0,0 +1,120 @@ +Name + + MESA_platform_surfaceless + +Name Strings + + EGL_MESA_platform_surfaceless + +Contributors + + Chad Versace <chadversary@google.com> + Haixia Shi <hshi@google.com> + Stéphane Marchesin <marcheu@google.com> + Zach Reizner <zachr@chromium.org> + Gurchetan Singh <gurchetansingh@google.com> + +Contacts + + Chad Versace <chadversary@google.com> + +Status + + DRAFT + +Version + + Version 2, 2016-10-13 + +Number + + EGL Extension #104 + +Extension Type + + EGL client extension + +Dependencies + + Requires EGL 1.5 or later; or EGL 1.4 with EGL_EXT_platform_base. + + This extension is written against the EGL 1.5 Specification (draft + 20140122). + + This extension interacts with EGL_EXT_platform_base as follows. If the + implementation supports EGL_EXT_platform_base, then text regarding + eglGetPlatformDisplay applies also to eglGetPlatformDisplayEXT; + eglCreatePlatformWindowSurface to eglCreatePlatformWindowSurfaceEXT; and + eglCreatePlatformPixmapSurface to eglCreatePlatformPixmapSurfaceEXT. + +Overview + + This extension defines a new EGL platform, the "surfaceless" platform. This + platfom's defining property is that it has no native surfaces, and hence + neither eglCreatePlatformWindowSurface nor eglCreatePlatformPixmapSurface + can be used. The platform is independent of any native window system. + + The platform's intended use case is for enabling OpenGL and OpenGL ES + applications on systems where no window system exists. However, the + platform's permitted usage is not restricted to this case. Since the + platform is independent of any native window system, it may also be used on + systems where a window system is present. + +New Types + + None + +New Procedures and Functions + + None + +New Tokens + + Accepted as the <platform> argument of eglGetPlatformDisplay: + + EGL_PLATFORM_SURFACELESS_MESA 0x31DD + +Additions to the EGL Specification + + None. + +New Behavior + + To determine if the EGL implementation supports this extension, clients + should query the EGL_EXTENSIONS string of EGL_NO_DISPLAY. + + To obtain an EGLDisplay on the surfaceless platform, call + eglGetPlatformDisplay with <platform> set to EGL_PLATFORM_SURFACELESS_MESA. + The <native_display> parameter must be EGL_DEFAULT_DISPLAY. + + eglCreatePlatformWindowSurface fails when called with a <display> that + belongs to the surfaceless platform. It returns EGL_NO_SURFACE and + generates EGL_BAD_NATIVE_WINDOW. The justification for this unconditional + failure is that the surfaceless platform has no native windows, and + therefore the <native_window> parameter is always invalid. + + Likewise, eglCreatePlatformPixmapSurface also fails when called with a + <display> that belongs to the surfaceless platform. It returns + EGL_NO_SURFACE and generates EGL_BAD_NATIVE_PIXMAP. + + The surfaceless platform imposes no platform-specific restrictions on the + creation of pbuffers, as eglCreatePbufferSurface has no native surface + parameter. Specifically, if the EGLDisplay advertises an EGLConfig whose + EGL_SURFACE_TYPE attribute contains EGL_PBUFFER_BIT, then the EGLDisplay + permits the creation of pbuffers with that config. + +Issues + + None. + +Revision History + + Version 2, 2016-10-13 (Chad Versace) + - Assign enum values + - Define interfactions with EGL 1.4 and EGL_EXT_platform_base. + - Add Gurchetan as contributor, as he implemented the pbuffer support. + + Version 1, 2016-09-23 (Chad Versace) + - Initial version + - Posted for review at + https://lists.freedesktop.org/archives/mesa-dev/2016-September/129549.html diff --git a/glew/auto/EGL-Registry/extensions/MESA/EGL_MESA_query_driver.txt b/glew/auto/EGL-Registry/extensions/MESA/EGL_MESA_query_driver.txt new file mode 100644 index 0000000..bf260bd --- /dev/null +++ b/glew/auto/EGL-Registry/extensions/MESA/EGL_MESA_query_driver.txt @@ -0,0 +1,95 @@ +Name + + MESA_query_driver + +Name Strings + + EGL_MESA_query_driver + +Contact + + Rob Clark <robdclark 'at' gmail.com> + Nicolai Hähnle <Nicolai.Haehnle 'at' amd.com> + +Contibutors + + Veluri Mithun <velurimithun38 'at' gmail.com> + +Status + + Complete + +Version + + Version 3, 2019-01-24 + +Number + + EGL Extension 131 + +Dependencies + + EGL 1.0 is required. + +Overview + + When an application has to query the name of a driver and for + obtaining driver's option list (UTF-8 encoded XML) of a driver + the below functions are useful. + + XML file formally describes all available options and also + includes verbal descriptions in multiple languages. Its main purpose + is to be automatically processed by configuration GUIs. + The XML shall respect the following DTD: + + <!ELEMENT driinfo (section*)> + <!ELEMENT section (description+, option+)> + <!ELEMENT description (enum*)> + <!ATTLIST description lang CDATA #REQUIRED + text CDATA #REQUIRED> + <!ELEMENT option (description+)> + <!ATTLIST option name CDATA #REQUIRED + type (bool|enum|int|float) #REQUIRED + default CDATA #REQUIRED + valid CDATA #IMPLIED> + <!ELEMENT enum EMPTY> + <!ATTLIST enum value CDATA #REQUIRED + text CDATA #REQUIRED> + +New Procedures and Functions + + char* eglGetDisplayDriverConfig(EGLDisplay dpy); + const char* eglGetDisplayDriverName(EGLDisplay dpy); + +Description + + By passing EGLDisplay as parameter to `eglGetDisplayDriverName` one can retrieve + driverName. Similarly passing EGLDisplay to `eglGetDisplayDriverConfig` we can retrieve + driverConfig options of the driver in XML format. + + The string returned by `eglGetDisplayDriverConfig` is heap-allocated and caller + is responsible for freeing it. + + EGL_BAD_DISPLAY is generated if `disp` is not an EGL display connection. + + EGL_NOT_INITIALIZED is generated if `disp` has not been initialized. + + If the implementation does not have enough resources to allocate the XML then an + EGL_BAD_ALLOC error is generated. + +New Tokens + + No new tokens + +Issues + + None + + +Revision History + + Version 1, 2018-11-05 - First draft (Veluri Mithun) + Version 2, 2019-01-23 - Final version (Veluri Mithun) + Version 3, 2019-01-24 - Mark as complete, add Khronos extension + number, fix parameter name in prototypes, + write revision history (Eric Engestrom) |