[Mesa-dev] [PATCH 03/16] egl: Add EGL_EXT_image_implicit_sync_control
Jason Ekstrand
jason at jlekstrand.net
Fri Feb 9 23:48:50 UTC 2018
Reviewed-by: Jason Ekstrand <jason at jlekstrand.net>
On Fri, Feb 9, 2018 at 3:43 PM, Jason Ekstrand <jason at jlekstrand.net> wrote:
> From: Daniel Stone <daniels at collabora.com>
>
> Signed-off-by: Daniel Stone <daniels at collabora.com>
> ---
> src/egl/main/eglapi.c | 1 +
> src/egl/main/egldisplay.h | 1 +
> src/egl/main/eglimage.c | 26 ++++++++++++++++++++++++++
> src/egl/main/eglimage.h | 3 +++
> 4 files changed, 31 insertions(+)
>
> diff --git a/src/egl/main/eglapi.c b/src/egl/main/eglapi.c
> index c110349..4645221 100644
> --- a/src/egl/main/eglapi.c
> +++ b/src/egl/main/eglapi.c
> @@ -488,6 +488,7 @@ _eglCreateExtensionsString(_EGLDisplay *dpy)
> _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_implicit_sync_control);
> _EGL_CHECK_EXTENSION(EXT_swap_buffers_with_damage);
>
> _EGL_CHECK_EXTENSION(IMG_context_priority);
> diff --git a/src/egl/main/egldisplay.h b/src/egl/main/egldisplay.h
> index d7e5199..f38ed06 100644
> --- a/src/egl/main/egldisplay.h
> +++ b/src/egl/main/egldisplay.h
> @@ -104,6 +104,7 @@ struct _egl_extensions
> EGLBoolean EXT_create_context_robustness;
> EGLBoolean EXT_image_dma_buf_import;
> EGLBoolean EXT_image_dma_buf_import_modifiers;
> + EGLBoolean EXT_image_implicit_sync_control;
> EGLBoolean EXT_pixel_format_float;
> EGLBoolean EXT_swap_buffers_with_damage;
>
> diff --git a/src/egl/main/eglimage.c b/src/egl/main/eglimage.c
> index 46bf0c5..cc55acc 100644
> --- a/src/egl/main/eglimage.c
> +++ b/src/egl/main/eglimage.c
> @@ -265,6 +265,28 @@ _eglParseEXTImageDmaBufImportModifiersAttribs(_EGLImageAttribs
> *attrs,
> return EGL_SUCCESS;
> }
>
> +static EGLint
> +_eglParseEXTImageImplicitSyncControlAttribs(_EGLImageAttribs *attrs,
> + _EGLDisplay *dpy,
> + EGLint attr, EGLint val)
> +{
> + if (!dpy->Extensions.EXT_image_implicit_sync_control)
> + return EGL_BAD_PARAMETER;
> +
> + switch (attr) {
> + case EGL_IMPORT_SYNC_TYPE_EXT:
> + if (val != EGL_IMPORT_IMPLICIT_SYNC_EXT &&
> + val != EGL_IMPORT_EXPLICIT_SYNC_EXT)
> + return EGL_BAD_ATTRIBUTE;
> + attrs->ExplicitSync = (val == EGL_IMPORT_EXPLICIT_SYNC_EXT);
> + break;
> + default:
> + return EGL_BAD_PARAMETER;
> + }
> +
> + return EGL_SUCCESS;
> +}
> +
> /**
> * Parse the list of image attributes.
> *
> @@ -313,6 +335,10 @@ _eglParseImageAttribList(_EGLImageAttribs *attrs,
> _EGLDisplay *dpy,
> if (err == EGL_SUCCESS)
> continue;
>
> + err = _eglParseEXTImageImplicitSyncControlAttribs(attrs, dpy,
> attr, val);
> + if (err == EGL_SUCCESS)
> + continue;
> +
> return _eglError(err, __func__);
> }
>
> diff --git a/src/egl/main/eglimage.h b/src/egl/main/eglimage.h
> index 8751792..0c3c861 100644
> --- a/src/egl/main/eglimage.h
> +++ b/src/egl/main/eglimage.h
> @@ -79,6 +79,9 @@ struct _egl_image_attribs
> struct _egl_image_attrib_int DMABufSampleRangeHint;
> struct _egl_image_attrib_int DMABufChromaHorizontalSiting;
> struct _egl_image_attrib_int DMABufChromaVerticalSiting;
> +
> + /* EGL_EXT_image_implicit_sync_control */
> + EGLBoolean ExplicitSync;
> };
>
> /**
> --
> 2.5.0.400.gff86faf
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20180209/df31f2a5/attachment.html>
More information about the mesa-dev
mailing list