Reviewed-by: Jason Ekstrand <ja...@jlekstrand.net> On Fri, Feb 9, 2018 at 3:43 PM, Jason Ekstrand <ja...@jlekstrand.net> wrote:
> From: Daniel Stone <dani...@collabora.com> > > Signed-off-by: Daniel Stone <dani...@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 > >
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev