Revert "egl: handle EGL_IMAGE_EXTERNAL_FLUSH_EXT"
authorTapani Pälli <tapani.palli@intel.com>
Tue, 12 Nov 2019 15:32:41 +0000 (17:32 +0200)
committerTapani Pälli <tapani.palli@intel.com>
Thu, 14 Nov 2019 05:46:14 +0000 (07:46 +0200)
This reverts commit 34b1aa957a3f44ea9587ec43311e8434d3782cc1.

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@engestrom.ch>
Acked-by: Kristian H. Kristensen <hoegsberg@google.com>
src/egl/drivers/dri2/egl_dri2.c
src/egl/main/eglimage.c
src/egl/main/eglimage.h

index e9468dc..23d0e46 100644 (file)
@@ -2297,27 +2297,14 @@ dri2_create_image_mesa_drm_buffer(_EGLDisplay *disp, _EGLContext *ctx,
       return NULL;
    }
 
-   if (dri2_dpy->image->base.version >= 18) {
-      unsigned use = 0;
-
-      if (attrs.ImageFlushExternal)
-         use |= __DRI_IMAGE_USE_FLUSH_EXTERNAL;
-
-      dri_image =
-         dri2_dpy->image->createImageFromName2(dri2_dpy->dri_screen,
-                                               attrs.Width, attrs.Height,
-                                               format, name, pitch, use,
-                                               NULL);
-   } else {
-      dri_image =
-         dri2_dpy->image->createImageFromName(dri2_dpy->dri_screen,
-                                              attrs.Width,
-                                              attrs.Height,
-                                              format,
-                                              name,
-                                              pitch,
-                                              NULL);
-   }
+   dri_image =
+      dri2_dpy->image->createImageFromName(dri2_dpy->dri_screen,
+                                           attrs.Width,
+                                           attrs.Height,
+                                           format,
+                                           name,
+                                           pitch,
+                                           NULL);
 
    return dri2_create_image_from_dri(disp, dri_image);
 }
@@ -2659,26 +2646,7 @@ dri2_create_image_dma_buf(_EGLDisplay *disp, _EGLContext *ctx,
       has_modifier = true;
    }
 
-   if (dri2_dpy->image->base.version >= 18) {
-      unsigned use = 0;
-
-      if (attrs.ImageFlushExternal)
-         use |= __DRI_IMAGE_USE_FLUSH_EXTERNAL;
-
-      if (!has_modifier)
-         modifier = DRM_FORMAT_MOD_INVALID;
-
-      dri_image =
-         dri2_dpy->image->createImageFromDmaBufs3(dri2_dpy->dri_screen,
-            attrs.Width, attrs.Height, attrs.DMABufFourCC.Value,
-            modifier, use, fds, num_fds, pitches, offsets,
-            attrs.DMABufYuvColorSpaceHint.Value,
-            attrs.DMABufSampleRangeHint.Value,
-            attrs.DMABufChromaHorizontalSiting.Value,
-            attrs.DMABufChromaVerticalSiting.Value,
-            &error,
-            NULL);
-   } else if (has_modifier) {
+   if (has_modifier) {
       if (dri2_dpy->image->base.version < 15 ||
           dri2_dpy->image->createImageFromDmaBufs2 == NULL) {
          _eglError(EGL_BAD_MATCH, "unsupported dma_buf format modifier");
@@ -2694,7 +2662,8 @@ dri2_create_image_dma_buf(_EGLDisplay *disp, _EGLContext *ctx,
             attrs.DMABufChromaVerticalSiting.Value,
             &error,
             NULL);
-   } else {
+   }
+   else {
       dri_image =
          dri2_dpy->image->createImageFromDmaBufs(dri2_dpy->dri_screen,
             attrs.Width, attrs.Height, attrs.DMABufFourCC.Value,
@@ -2765,8 +2734,6 @@ dri2_create_drm_image_mesa(_EGLDriver *drv, _EGLDisplay *disp,
       dri_use |= __DRI_IMAGE_USE_SCANOUT;
    if (attrs.DRMBufferUseMESA & EGL_DRM_BUFFER_USE_CURSOR_MESA)
       dri_use |= __DRI_IMAGE_USE_CURSOR;
-   if (attrs.ImageFlushExternal)
-      dri_use |= __DRI_IMAGE_USE_FLUSH_EXTERNAL;
 
    dri2_img = malloc(sizeof *dri2_img);
    if (!dri2_img) {
index ef4a68f..9df6b65 100644 (file)
@@ -265,25 +265,6 @@ _eglParseEXTImageDmaBufImportModifiersAttribs(_EGLImageAttribs *attrs,
    return EGL_SUCCESS;
 }
 
-static EGLint
-_eglParseEXTImageFlushExternalAttribs(_EGLImageAttribs *attrs,
-                                      _EGLDisplay *disp,
-                                      EGLint attr, EGLint val)
-{
-   if (!disp->Extensions.EXT_image_flush_external)
-      return EGL_BAD_PARAMETER;
-
-   switch (attr) {
-   case EGL_IMAGE_EXTERNAL_FLUSH_EXT:
-      attrs->ImageFlushExternal = val;
-      break;
-   default:
-      return EGL_BAD_PARAMETER;
-   }
-
-   return EGL_SUCCESS;
-}
-
 /**
  * Parse the list of image attributes.
  *
@@ -305,10 +286,6 @@ _eglParseImageAttribList(_EGLImageAttribs *attrs, _EGLDisplay *disp,
       EGLint attr = attrib_list[i++];
       EGLint val = attrib_list[i];
 
-      err = _eglParseEXTImageFlushExternalAttribs(attrs, disp, attr, val);
-      if (err == EGL_SUCCESS)
-         continue;
-
       err = _eglParseKHRImageAttribs(attrs, disp, attr, val);
       if (err == EGL_SUCCESS)
          continue;
index 84ad0f0..6d2e7ba 100644 (file)
@@ -50,9 +50,6 @@ struct _egl_image_attrib_int
 
 struct _egl_image_attribs
 {
-   /* EGL_EXT_image_flush_external */
-   EGLBoolean ImageFlushExternal;
-
    /* EGL_KHR_image_base */
    EGLBoolean ImagePreserved;