[Mesa-dev] [PATCH 4/5] egl: Replace KHR_surfaceless_* extensions with KHR_surfaceless_context

Ian Romanick idr at freedesktop.org
Wed Aug 1 17:21:37 PDT 2012


From: Ian Romanick <ian.d.romanick at intel.com>

KHR extension name is reserved for Khronos ratified extensions, and there is
no such thing as EGL_KHR_surfaceless_{gles1,gles2,opengl}.  Replace these
three extensions with EGL_KHR_surfaceless_context since that extension
actually exists.

Signed-off-by: Ian Romanick <ian.d.romanick at intel.com>
Cc: Kristian Høgsberg <krh at bitplanet.net>
Cc: Matt Turner <mattst88 at gmail.com>
---
 src/egl/drivers/dri2/egl_dri2.c                 |    8 ++------
 src/egl/main/eglapi.c                           |    8 ++------
 src/egl/main/eglcontext.c                       |   19 ++-----------------
 src/egl/main/egldisplay.h                       |    4 +---
 src/egl/main/eglmisc.c                          |    5 ++---
 src/gallium/state_trackers/egl/common/egl_g3d.c |    4 +---
 6 files changed, 10 insertions(+), 38 deletions(-)

diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c
index 90956a1..453a1d6 100644
--- a/src/egl/drivers/dri2/egl_dri2.c
+++ b/src/egl/drivers/dri2/egl_dri2.c
@@ -483,15 +483,11 @@ dri2_setup_screen(_EGLDisplay *disp)
 
    if (dri2_dpy->dri2) {
       if (dri2_dpy->dri2->base.version >= 2) {
-         disp->Extensions.KHR_surfaceless_gles1 = EGL_TRUE;
-         disp->Extensions.KHR_surfaceless_gles2 = EGL_TRUE;
-         disp->Extensions.KHR_surfaceless_opengl = EGL_TRUE;
+         disp->Extensions.KHR_surfaceless_context = EGL_TRUE;
       }
    } else {
       assert(dri2_dpy->swrast);
-      disp->Extensions.KHR_surfaceless_gles1 = EGL_TRUE;
-      disp->Extensions.KHR_surfaceless_gles2 = EGL_TRUE;
-      disp->Extensions.KHR_surfaceless_opengl = EGL_TRUE;
+      disp->Extensions.KHR_surfaceless_context = EGL_TRUE;
    }
 
    if (dri2_dpy->image) {
diff --git a/src/egl/main/eglapi.c b/src/egl/main/eglapi.c
index ffc404c..bcc5465 100644
--- a/src/egl/main/eglapi.c
+++ b/src/egl/main/eglapi.c
@@ -427,9 +427,7 @@ eglCreateContext(EGLDisplay dpy, EGLConfig config, EGLContext share_list,
 
    if (!config) {
       /* config may be NULL if surfaceless */
-      if (!disp->Extensions.KHR_surfaceless_gles1 &&
-          !disp->Extensions.KHR_surfaceless_gles2 &&
-          !disp->Extensions.KHR_surfaceless_opengl)
+      if (!disp->Extensions.KHR_surfaceless_context)
          RETURN_EGL_ERROR(disp, EGL_BAD_CONFIG, EGL_NO_CONTEXT);
    }
 
@@ -487,9 +485,7 @@ eglMakeCurrent(EGLDisplay dpy, EGLSurface draw, EGLSurface read,
       RETURN_EGL_ERROR(disp, EGL_BAD_CONTEXT, EGL_FALSE);
    if (!draw_surf || !read_surf) {
       /* surfaces may be NULL if surfaceless */
-      if (!disp->Extensions.KHR_surfaceless_gles1 &&
-          !disp->Extensions.KHR_surfaceless_gles2 &&
-          !disp->Extensions.KHR_surfaceless_opengl)
+      if (!disp->Extensions.KHR_surfaceless_context)
          RETURN_EGL_ERROR(disp, EGL_BAD_SURFACE, EGL_FALSE);
 
       if ((!draw_surf && draw != EGL_NO_SURFACE) ||
diff --git a/src/egl/main/eglcontext.c b/src/egl/main/eglcontext.c
index 17cb037..fa60749 100644
--- a/src/egl/main/eglcontext.c
+++ b/src/egl/main/eglcontext.c
@@ -244,7 +244,6 @@ _eglCheckMakeCurrent(_EGLContext *ctx, _EGLSurface *draw, _EGLSurface *read)
    _EGLThreadInfo *t = _eglGetCurrentThread();
    _EGLDisplay *dpy;
    EGLint conflict_api;
-   EGLBoolean surfaceless;
 
    if (_eglIsCurrentThreadDummy())
       return _eglError(EGL_BAD_ALLOC, "eglMakeCurrent");
@@ -257,22 +256,8 @@ _eglCheckMakeCurrent(_EGLContext *ctx, _EGLSurface *draw, _EGLSurface *read)
    }
 
    dpy = ctx->Resource.Display;
-   switch (_eglGetContextAPIBit(ctx)) {
-   case EGL_OPENGL_ES_BIT:
-      surfaceless = dpy->Extensions.KHR_surfaceless_gles1;
-      break;
-   case EGL_OPENGL_ES2_BIT:
-      surfaceless = dpy->Extensions.KHR_surfaceless_gles2;
-      break;
-   case EGL_OPENGL_BIT:
-      surfaceless = dpy->Extensions.KHR_surfaceless_opengl;
-      break;
-   default:
-      surfaceless = EGL_FALSE;
-      break;
-   }
-
-   if (!surfaceless && (draw == NULL || read == NULL))
+   if (!dpy->Extensions.KHR_surfaceless_context
+       && (draw == NULL || read == NULL))
       return _eglError(EGL_BAD_MATCH, "eglMakeCurrent");
 
    /*
diff --git a/src/egl/main/egldisplay.h b/src/egl/main/egldisplay.h
index 905c7a4..a1dd279 100644
--- a/src/egl/main/egldisplay.h
+++ b/src/egl/main/egldisplay.h
@@ -103,9 +103,7 @@ struct _egl_extensions
    EGLBoolean KHR_reusable_sync;
    EGLBoolean KHR_fence_sync;
 
-   EGLBoolean KHR_surfaceless_gles1;
-   EGLBoolean KHR_surfaceless_gles2;
-   EGLBoolean KHR_surfaceless_opengl;
+   EGLBoolean KHR_surfaceless_context;
 
    EGLBoolean NOK_swap_region;
    EGLBoolean NOK_texture_from_pixmap;
diff --git a/src/egl/main/eglmisc.c b/src/egl/main/eglmisc.c
index 9d534f0..54e5727 100644
--- a/src/egl/main/eglmisc.c
+++ b/src/egl/main/eglmisc.c
@@ -107,9 +107,8 @@ _eglUpdateExtensionsString(_EGLDisplay *dpy)
    _EGL_CHECK_EXTENSION(KHR_reusable_sync);
    _EGL_CHECK_EXTENSION(KHR_fence_sync);
 
-   _EGL_CHECK_EXTENSION(KHR_surfaceless_gles1);
-   _EGL_CHECK_EXTENSION(KHR_surfaceless_gles2);
-   _EGL_CHECK_EXTENSION(KHR_surfaceless_opengl);
+
+   _EGL_CHECK_EXTENSION(KHR_surfaceless_context);
 
    _EGL_CHECK_EXTENSION(NOK_swap_region);
    _EGL_CHECK_EXTENSION(NOK_texture_from_pixmap);
diff --git a/src/gallium/state_trackers/egl/common/egl_g3d.c b/src/gallium/state_trackers/egl/common/egl_g3d.c
index d147ad0..239be61 100644
--- a/src/gallium/state_trackers/egl/common/egl_g3d.c
+++ b/src/gallium/state_trackers/egl/common/egl_g3d.c
@@ -583,9 +583,7 @@ egl_g3d_initialize(_EGLDriver *drv, _EGLDisplay *dpy)
    dpy->Extensions.KHR_reusable_sync = EGL_TRUE;
    dpy->Extensions.KHR_fence_sync = EGL_TRUE;
 
-   dpy->Extensions.KHR_surfaceless_gles1 = EGL_TRUE;
-   dpy->Extensions.KHR_surfaceless_gles2 = EGL_TRUE;
-   dpy->Extensions.KHR_surfaceless_opengl = EGL_TRUE;
+   dpy->Extensions.KHR_surfaceless_context = EGL_TRUE;
 
    if (dpy->Platform == _EGL_PLATFORM_DRM) {
       dpy->Extensions.MESA_drm_display = EGL_TRUE;
-- 
1.7.6.5



More information about the mesa-dev mailing list