Mesa (master): Implement EGL API for MESA_query_driver

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Jan 23 22:29:48 UTC 2019


Module: Mesa
Branch: master
Commit: ff621a505594a3217f24fb785c51f43580f1bf78
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=ff621a505594a3217f24fb785c51f43580f1bf78

Author: Veluri Mithun <velurimithun38 at gmail.com>
Date:   Wed Jan 23 23:02:25 2019 +0530

Implement EGL API for MESA_query_driver

Signed-off-by: Veluri Mithun <velurimithun38 at gmail.com>

Reviewed-by: Eric Engestrom <eric.engestrom at intel.com>
Reviewed-by: Emil Velikov <emil.velikov at collabora.com>

Acked-by: Eric Engestrom <eric.engestrom at intel.com>

---

 src/egl/main/eglapi.c        | 33 +++++++++++++++++++++++++++++++++
 src/egl/main/eglapi.h        |  2 ++
 src/egl/main/egldisplay.h    |  1 +
 src/egl/main/eglentrypoint.h |  2 ++
 4 files changed, 38 insertions(+)

diff --git a/src/egl/main/eglapi.c b/src/egl/main/eglapi.c
index bfd79a5952..35618680e8 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);
 }
 
+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);
+}
+
+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 07ddf34a03..5e1581b9ce 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 fae9052036..5cc503734b 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 69a6c1bf4c..44e971e023 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)




More information about the mesa-commit mailing list