diff options
author | Veluri Mithun <[email protected]> | 2019-01-23 22:44:25 +0530 |
---|---|---|
committer | Rob Clark <[email protected]> | 2019-01-23 22:29:14 +0000 |
commit | ff621a505594a3217f24fb785c51f43580f1bf78 (patch) | |
tree | 64c9f588cd90bb76be4cea58c4492d808dc893b4 /src/egl/main | |
parent | 499869908bd52ad2d3cb2e205228f658308ccc36 (diff) |
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]>
Acked-by: Eric Engestrom <[email protected]>
Diffstat (limited to 'src/egl/main')
-rw-r--r-- | src/egl/main/eglapi.c | 33 | ||||
-rw-r--r-- | src/egl/main/eglapi.h | 2 | ||||
-rw-r--r-- | src/egl/main/egldisplay.h | 1 | ||||
-rw-r--r-- | src/egl/main/eglentrypoint.h | 2 |
4 files changed, 38 insertions, 0 deletions
diff --git a/src/egl/main/eglapi.c b/src/egl/main/eglapi.c index bfd79a5952d..35618680e85 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 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) |