summaryrefslogtreecommitdiffstats
path: root/src/egl/main
diff options
context:
space:
mode:
authorVeluri Mithun <[email protected]>2019-01-23 22:44:25 +0530
committerEric Engestrom <[email protected]>2019-01-24 14:37:47 +0000
commit6afce78128a4a73e1d57cbd61c240f54c6b09831 (patch)
tree374e3882297f0c5eefe89fcb47f81679649ba522 /src/egl/main
parent7d9274388bacc5c30e0bb098f41bb5144475280a (diff)
egl: Implement EGL API for MESA_query_driver
Signed-off-by: Veluri Mithun <[email protected]> Reviewed-by: Eric Engestrom <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
Diffstat (limited to 'src/egl/main')
-rw-r--r--src/egl/main/eglapi.c33
-rw-r--r--src/egl/main/eglapi.h2
-rw-r--r--src/egl/main/egldisplay.h1
-rw-r--r--src/egl/main/eglentrypoint.h2
4 files changed, 38 insertions, 0 deletions
diff --git a/src/egl/main/eglapi.c b/src/egl/main/eglapi.c
index bfd79a5952d..dd9b5b989cb 100644
--- a/src/egl/main/eglapi.c
+++ b/src/egl/main/eglapi.c
@@ -528,6 +528,7 @@ _eglCreateExtensionsString(_EGLDisplay *dpy)
_eglAppendExtension(&exts, "EGL_MESA_configless_context");
_EGL_CHECK_EXTENSION(MESA_drm_image);
_EGL_CHECK_EXTENSION(MESA_image_dma_buf_export);
+ _EGL_CHECK_EXTENSION(MESA_query_driver);
_EGL_CHECK_EXTENSION(NOK_swap_region);
_EGL_CHECK_EXTENSION(NOK_texture_from_pixmap);
@@ -2649,6 +2650,38 @@ eglQueryDisplayAttribEXT(EGLDisplay dpy,
RETURN_EGL_SUCCESS(disp, EGL_TRUE);
}
+static char * EGLAPIENTRY
+eglGetDisplayDriverConfig(EGLDisplay dpy)
+{
+ _EGLDisplay *disp = _eglLockDisplay(dpy);
+ _EGLDriver *drv;
+ char *ret;
+
+ _EGL_FUNC_START(disp, EGL_NONE, NULL, NULL);
+ _EGL_CHECK_DISPLAY(disp, NULL, drv);
+
+ assert(disp->Extensions.MESA_query_driver);
+
+ ret = drv->API.QueryDriverConfig(disp);
+ RETURN_EGL_EVAL(disp, ret);
+}
+
+static const char * EGLAPIENTRY
+eglGetDisplayDriverName(EGLDisplay dpy)
+{
+ _EGLDisplay *disp = _eglLockDisplay(dpy);
+ _EGLDriver *drv;
+ const char *ret;
+
+ _EGL_FUNC_START(disp, EGL_NONE, NULL, NULL);
+ _EGL_CHECK_DISPLAY(disp, NULL, drv);
+
+ assert(disp->Extensions.MESA_query_driver);
+
+ ret = drv->API.QueryDriverName(disp);
+ RETURN_EGL_EVAL(disp, ret);
+}
+
__eglMustCastToProperFunctionPointerType EGLAPIENTRY
eglGetProcAddress(const char *procname)
{
diff --git a/src/egl/main/eglapi.h b/src/egl/main/eglapi.h
index 07ddf34a032..5e1581b9ce5 100644
--- a/src/egl/main/eglapi.h
+++ b/src/egl/main/eglapi.h
@@ -55,6 +55,8 @@ struct _egl_api
/* driver funcs */
EGLBoolean (*Initialize)(_EGLDriver *, _EGLDisplay *dpy);
EGLBoolean (*Terminate)(_EGLDriver *, _EGLDisplay *dpy);
+ const char *(*QueryDriverName)(_EGLDisplay *dpy);
+ char *(*QueryDriverConfig)(_EGLDisplay *dpy);
/* config funcs */
EGLBoolean (*GetConfigs)(_EGLDriver *drv, _EGLDisplay *dpy,
diff --git a/src/egl/main/egldisplay.h b/src/egl/main/egldisplay.h
index fae90520368..5cc503734bc 100644
--- a/src/egl/main/egldisplay.h
+++ b/src/egl/main/egldisplay.h
@@ -138,6 +138,7 @@ struct _egl_extensions
EGLBoolean MESA_drm_image;
EGLBoolean MESA_image_dma_buf_export;
+ EGLBoolean MESA_query_driver;
EGLBoolean NOK_swap_region;
EGLBoolean NOK_texture_from_pixmap;
diff --git a/src/egl/main/eglentrypoint.h b/src/egl/main/eglentrypoint.h
index 69a6c1bf4c7..44e971e023a 100644
--- a/src/egl/main/eglentrypoint.h
+++ b/src/egl/main/eglentrypoint.h
@@ -42,6 +42,8 @@ EGL_ENTRYPOINT(eglGetCurrentContext)
EGL_ENTRYPOINT(eglGetCurrentDisplay)
EGL_ENTRYPOINT(eglGetCurrentSurface)
EGL_ENTRYPOINT(eglGetDisplay)
+EGL_ENTRYPOINT(eglGetDisplayDriverConfig)
+EGL_ENTRYPOINT(eglGetDisplayDriverName)
EGL_ENTRYPOINT(eglGetError)
EGL_ENTRYPOINT(eglGetPlatformDisplay)
EGL_ENTRYPOINT(eglGetPlatformDisplayEXT)