From ff05f16c9988d5794028dba2d437e8796be85fdd Mon Sep 17 00:00:00 2001 From: =?utf8?q?Tapani=20P=C3=A4lli?= Date: Tue, 12 Nov 2019 17:32:41 +0200 Subject: [PATCH] Revert "egl: handle EGL_IMAGE_EXTERNAL_FLUSH_EXT" 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 Acked-by: Kristian H. Kristensen --- src/egl/drivers/dri2/egl_dri2.c | 55 +++++++-------------------------- src/egl/main/eglimage.c | 23 -------------- src/egl/main/eglimage.h | 3 -- 3 files changed, 11 insertions(+), 70 deletions(-) diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c index e9468dcf991..23d0e469427 100644 --- a/src/egl/drivers/dri2/egl_dri2.c +++ b/src/egl/drivers/dri2/egl_dri2.c @@ -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) { diff --git a/src/egl/main/eglimage.c b/src/egl/main/eglimage.c index ef4a68f2367..9df6b6511d5 100644 --- a/src/egl/main/eglimage.c +++ b/src/egl/main/eglimage.c @@ -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; diff --git a/src/egl/main/eglimage.h b/src/egl/main/eglimage.h index 84ad0f01b0c..6d2e7ba8a2d 100644 --- a/src/egl/main/eglimage.h +++ b/src/egl/main/eglimage.h @@ -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; -- 2.30.2