On Wed, 4 Oct 2017 18:35:45 +0100 Daniel Stone <[email protected]> wrote:
> If the user has passed an INVALID modifier, it's because there is no > applicable modifier, and the buffer layout should be determined by a > magic side-channel call (e.g. bo_get_tiling). If the modifier is > INVALID, don't try to pass it through to EGL, but just drop it. > > On the other hand, if a modifier _is_ explicitly specified and we don't > have the modifiers extension, then refuse to import the buffer. > > Signed-off-by: Daniel Stone <[email protected]> > --- > libweston/gl-renderer.c | 15 ++++++++++++--- > 1 file changed, 12 insertions(+), 3 deletions(-) > > diff --git a/libweston/gl-renderer.c b/libweston/gl-renderer.c > index 5749aa71..244ce309 100644 > --- a/libweston/gl-renderer.c > +++ b/libweston/gl-renderer.c > @@ -1735,6 +1735,7 @@ import_simple_dmabuf(struct gl_renderer *gr, > struct egl_image *image; > EGLint attribs[50]; > int atti = 0; > + bool has_modifier; > > /* This requires the Mesa commit in > * Mesa 10.3 (08264e5dad4df448e7718e782ad9077902089a07) or > @@ -1751,6 +1752,14 @@ import_simple_dmabuf(struct gl_renderer *gr, > attribs[atti++] = EGL_LINUX_DRM_FOURCC_EXT; > attribs[atti++] = attributes->format; > > + if (attributes->modifier[0] != DRM_FORMAT_MOD_INVALID) { > + if (!gr->has_dmabuf_import_modifiers) > + return NULL; > + has_modifier = true; > + } else { > + has_modifier = false; > + } > + gl_renderer_import_dmabuf() guarantees that all modifiers are equal, hence checking only one is enough. Reviewed-by: Pekka Paalanen <[email protected]> Thanks, pq
pgpdCOsoaX9iD.pgp
Description: OpenPGP digital signature
_______________________________________________ wayland-devel mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/wayland-devel
