Mesa (master): Revert "egl: implement new functions from EGL_EXT_image_flush_external"

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Nov 14 06:05:45 UTC 2019


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

Author: Tapani Pälli <tapani.palli at intel.com>
Date:   Tue Nov 12 17:32:33 2019 +0200

Revert "egl: implement new functions from EGL_EXT_image_flush_external"

This reverts commit c1c574fdf18f2aeb1c03f9670bf00e1dcd22d99d.

This series caused unexpected flickering artifacts with Iris driver on
Chrome OS and EGL_EXT_image_flush_external spec has not been published
yet.

Acked-by: Eric Engestrom <eric at engestrom.ch>
Acked-by: Kristian H. Kristensen <hoegsberg at google.com>

---

 src/egl/drivers/dri2/egl_dri2.c     | 34 -------------------------
 src/egl/generate/egl.xml            | 12 ---------
 src/egl/generate/eglFunctionList.py |  2 --
 src/egl/main/eglapi.c               | 50 -------------------------------------
 src/egl/main/eglapi.h               |  5 ----
 src/egl/main/egldisplay.h           |  1 -
 src/egl/main/eglentrypoint.h        |  2 --
 7 files changed, 106 deletions(-)

diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c
index 3015ad5ae14..e9468dcf991 100644
--- a/src/egl/drivers/dri2/egl_dri2.c
+++ b/src/egl/drivers/dri2/egl_dri2.c
@@ -801,7 +801,6 @@ dri2_setup_screen(_EGLDisplay *disp)
       }
 
       disp->Extensions.KHR_image_base = EGL_TRUE;
-      disp->Extensions.EXT_image_flush_external = EGL_TRUE;
       disp->Extensions.KHR_gl_renderbuffer_image = EGL_TRUE;
       if (dri2_dpy->image->base.version >= 5 &&
           dri2_dpy->image->createImageFromTexture) {
@@ -3476,37 +3475,6 @@ dri2_interop_export_object(_EGLDisplay *disp, _EGLContext *ctx,
    return dri2_dpy->interop->export_object(dri2_ctx->dri_context, in, out);
 }
 
-static void
-dri2_image_flush_external(_EGLDisplay *disp, _EGLContext *ctx,
-                          _EGLImage *image)
-{
-   struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
-   struct dri2_egl_context *dri2_ctx = dri2_egl_context(ctx);
-   struct dri2_egl_image *dri2_img = dri2_egl_image(image);
-
-   if (dri2_dpy->image->base.version < 18)
-      return;
-
-   dri2_dpy->image->imageFlushExternal(dri2_ctx->dri_context,
-                                       dri2_img->dri_image, 0);
-}
-
-static void
-dri2_image_invalidate_external(_EGLDisplay *disp, _EGLContext *ctx,
-                               _EGLImage *image)
-{
-   struct dri2_egl_display *dri2_dpy = dri2_egl_display(disp);
-   struct dri2_egl_context *dri2_ctx = dri2_egl_context(ctx);
-   struct dri2_egl_image *dri2_img = dri2_egl_image(image);
-
-   if (dri2_dpy->image->base.version < 18)
-      return;
-
-   dri2_dpy->image->imageInvalidateExternal(dri2_ctx->dri_context,
-                                            dri2_img->dri_image, 0);
-}
-
-
 /**
  * This is the main entrypoint into the driver, called by libEGL.
  * Gets an _EGLDriver object and init its dispatch table.
@@ -3565,6 +3533,4 @@ _eglInitDriver(_EGLDriver *dri2_drv)
    dri2_drv->API.GLInteropExportObject = dri2_interop_export_object;
    dri2_drv->API.DupNativeFenceFDANDROID = dri2_dup_native_fence_fd;
    dri2_drv->API.SetBlobCacheFuncsANDROID = dri2_set_blob_cache_funcs;
-   dri2_drv->API.ImageFlushExternal = dri2_image_flush_external;
-   dri2_drv->API.ImageInvalidateExternal = dri2_image_invalidate_external;
 }
diff --git a/src/egl/generate/egl.xml b/src/egl/generate/egl.xml
index 8194c7316c8..10e34242089 100644
--- a/src/egl/generate/egl.xml
+++ b/src/egl/generate/egl.xml
@@ -1795,18 +1795,6 @@
             <param><ptype>EGLint</ptype> <name>external_win_id</name></param>
             <param><ptype>EGLint</ptype> <name>policy</name></param>
         </command>
-        <command>
-            <proto><ptype>EGLBoolean</ptype> <name>eglImageFlushExternalEXT</name></proto>
-            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-            <param><ptype>EGLImageKHR</ptype> <name>image</name></param>
-            <param>const <ptype>EGLAttrib</ptype> *<name>attrib_list</name></param>
-        </command>
-        <command>
-            <proto><ptype>EGLBoolean</ptype> <name>eglImageInvalidateExternalEXT</name></proto>
-            <param><ptype>EGLDisplay</ptype> <name>dpy</name></param>
-            <param><ptype>EGLImageKHR</ptype> <name>image</name></param>
-            <param>const <ptype>EGLAttrib</ptype> *<name>attrib_list</name></param>
-        </command>
     </commands>
 
     <!-- SECTION: EGL API interface definitions. -->
diff --git a/src/egl/generate/eglFunctionList.py b/src/egl/generate/eglFunctionList.py
index 2f533493037..192280f58f0 100644
--- a/src/egl/generate/eglFunctionList.py
+++ b/src/egl/generate/eglFunctionList.py
@@ -213,7 +213,5 @@ EGL_FUNCTIONS = (
     _eglFunc("eglGetDisplayDriverName",              "display"),
     _eglFunc("eglGetDisplayDriverConfig",            "display"),
 
-    _eglFunc("eglImageFlushExternalEXT",             "display"),
-    _eglFunc("eglImageInvalidateExternalEXT",        "display"),
 )
 
diff --git a/src/egl/main/eglapi.c b/src/egl/main/eglapi.c
index 68db0bd4cb9..51557be0864 100644
--- a/src/egl/main/eglapi.c
+++ b/src/egl/main/eglapi.c
@@ -499,7 +499,6 @@ _eglCreateExtensionsString(_EGLDisplay *disp)
    _EGL_CHECK_EXTENSION(EXT_create_context_robustness);
    _EGL_CHECK_EXTENSION(EXT_image_dma_buf_import);
    _EGL_CHECK_EXTENSION(EXT_image_dma_buf_import_modifiers);
-   _EGL_CHECK_EXTENSION(EXT_image_flush_external);
    _EGL_CHECK_EXTENSION(EXT_surface_CTA861_3_metadata);
    _EGL_CHECK_EXTENSION(EXT_surface_SMPTE2086_metadata);
    _EGL_CHECK_EXTENSION(EXT_swap_buffers_with_damage);
@@ -2748,55 +2747,6 @@ eglGetDisplayDriverName(EGLDisplay dpy)
     RETURN_EGL_EVAL(disp, ret);
 }
 
-static EGLBoolean EGLAPIENTRY
-eglImageFlushExternalEXT(EGLDisplay dpy, EGLImageKHR image,
-                         const EGLAttrib *attrib_list)
-{
-   _EGLDisplay *disp = _eglLockDisplay(dpy);
-   _EGLContext *ctx = _eglGetCurrentContext();
-   _EGLImage *img = _eglLookupImage(image, disp);
-   _EGLDriver *drv;
-
-   _EGL_FUNC_START(disp, EGL_OBJECT_IMAGE_KHR, img, EGL_FALSE);
-   _EGL_CHECK_DISPLAY(disp, EGL_FALSE, drv);
-
-   if (attrib_list && attrib_list[0] != EGL_NONE)
-      RETURN_EGL_ERROR(disp, EGL_BAD_PARAMETER, EGL_FALSE);
-
-   if (!ctx || !disp->Extensions.EXT_image_flush_external)
-      RETURN_EGL_EVAL(disp, EGL_FALSE);
-   if (!img)
-      RETURN_EGL_ERROR(disp, EGL_BAD_PARAMETER, EGL_FALSE);
-
-
-   drv->API.ImageFlushExternal(disp, ctx, img);
-   RETURN_EGL_EVAL(disp, EGL_TRUE);
-}
-
-static EGLBoolean EGLAPIENTRY
-eglImageInvalidateExternalEXT(EGLDisplay dpy, EGLImageKHR image,
-                              const EGLAttrib *attrib_list)
-{
-   _EGLDisplay *disp = _eglLockDisplay(dpy);
-   _EGLContext *ctx = _eglGetCurrentContext();
-   _EGLImage *img = _eglLookupImage(image, disp);
-   _EGLDriver *drv;
-
-   _EGL_FUNC_START(disp, EGL_OBJECT_IMAGE_KHR, img, EGL_FALSE);
-   _EGL_CHECK_DISPLAY(disp, EGL_FALSE, drv);
-
-   if (attrib_list && attrib_list[0] != EGL_NONE)
-      RETURN_EGL_ERROR(disp, EGL_BAD_PARAMETER, EGL_FALSE);
-
-   if (!ctx || !disp->Extensions.EXT_image_flush_external)
-      RETURN_EGL_EVAL(disp, EGL_FALSE);
-   if (!img)
-      RETURN_EGL_ERROR(disp, EGL_BAD_PARAMETER, EGL_FALSE);
-
-   drv->API.ImageInvalidateExternal(disp, ctx, img);
-   RETURN_EGL_EVAL(disp, EGL_TRUE);
-}
-
 __eglMustCastToProperFunctionPointerType EGLAPIENTRY
 eglGetProcAddress(const char *procname)
 {
diff --git a/src/egl/main/eglapi.h b/src/egl/main/eglapi.h
index 76891dcd25b..968f4b27725 100644
--- a/src/egl/main/eglapi.h
+++ b/src/egl/main/eglapi.h
@@ -189,11 +189,6 @@ struct _egl_api
    void (*SetBlobCacheFuncsANDROID) (_EGLDriver *drv, _EGLDisplay *disp,
                                      EGLSetBlobFuncANDROID set,
                                      EGLGetBlobFuncANDROID get);
-
-   void (*ImageFlushExternal)(_EGLDisplay *disp, _EGLContext *ctx,
-                              _EGLImage *image);
-   void (*ImageInvalidateExternal)(_EGLDisplay *disp, _EGLContext *ctx,
-                                   _EGLImage *image);
 };
 
 #ifdef __cplusplus
diff --git a/src/egl/main/egldisplay.h b/src/egl/main/egldisplay.h
index 940b71e318e..02ac4fb9a9d 100644
--- a/src/egl/main/egldisplay.h
+++ b/src/egl/main/egldisplay.h
@@ -105,7 +105,6 @@ struct _egl_extensions
    EGLBoolean EXT_create_context_robustness;
    EGLBoolean EXT_image_dma_buf_import;
    EGLBoolean EXT_image_dma_buf_import_modifiers;
-   EGLBoolean EXT_image_flush_external;
    EGLBoolean EXT_pixel_format_float;
    EGLBoolean EXT_surface_CTA861_3_metadata;
    EGLBoolean EXT_surface_SMPTE2086_metadata;
diff --git a/src/egl/main/eglentrypoint.h b/src/egl/main/eglentrypoint.h
index b708078f550..44e971e023a 100644
--- a/src/egl/main/eglentrypoint.h
+++ b/src/egl/main/eglentrypoint.h
@@ -51,8 +51,6 @@ EGL_ENTRYPOINT(eglGetProcAddress)
 EGL_ENTRYPOINT(eglGetSyncAttrib)
 EGL_ENTRYPOINT(eglGetSyncAttribKHR)
 EGL_ENTRYPOINT(eglGetSyncValuesCHROMIUM)
-EGL_ENTRYPOINT(eglImageFlushExternalEXT)
-EGL_ENTRYPOINT(eglImageInvalidateExternalEXT)
 EGL_ENTRYPOINT(eglInitialize)
 EGL_ENTRYPOINT(eglLabelObjectKHR)
 EGL_ENTRYPOINT(eglMakeCurrent)




More information about the mesa-commit mailing list