fbconfig[0] is not 8 bits RGB with Mesa 18.x or newer
Víctor Jáquez
vjaquez at igalia.com
Tue Feb 12 16:42:45 UTC 2019
Hi Leo,
Sorry for the late reply. I was checking IRC and in #dri-devel channel reminded
me about you email and my lack of reply.
On Thu, 07 Feb 2019 at 12:34, Liu, Leo wrote:
> Hi,
>
> Mesa is enabled "allow_rgb10_configs" by default. Note that 10bpc affects both
> GLX and EGL. The requirement from EGL is that 10bpc formats must be first in
> the list of configs. This breaks applications that just use the first config,
> which used to be 8bpc and now it's 10bpc. Here's related bug report and some
> discussions from Mesa list:
>
> https://bugs.freedesktop.org/show_bug.cgi?id=109548
>
> https://lists.freedesktop.org/archives/mesa-dev/2019-February/214610.html
>
> It's affecting Totem player, and gstreamer pipeline like:
>
> `gst-launch-1.0 -f filesrc location=/path/to/mp4 ! qtdemux ! h264parse ! vaapih264dec ! glimagesink`
>
> The current code
> @gstreamer-vaapi/gst-libs/gst/vaapi/gstvaapiutils_glx.c::gl_create_pixmap_object
> (Display * dpy, guint width, guint height)
>
> fbconfig = glXChooseFBConfig (dpy, screen, fbconfig_attrs, &n_fbconfig_attrs);
>
> pixo->glx_pixmap = gl_vtable->glx_create_pixmap (dpy,
> fbconfig[0], pixo->pixmap, pixmap_attrs);
>
> The EGL spec requires that the config with the highest bpc must be first, so
> we hope application could iterate over the returned array of fbconfigs and
> select the one which returns red=8 from glXGetFBConfigAttrib.
Thanks for reporting this. But it would be more useful if you could open an
issue in gitlab: https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues
so we could keep track of it.
Nonetheless, if I understood correctly in IRC channel, ajax (redhat?) is working
on a fix and will open a merge request soon.
If I understand correctly, we shall to pick the list of fbconfigs and retrieve
the GLX_RED_SIZE attribute of each item (via glXGetFBConfigAttrib) looking for
the first with value of 8. Am I correct?
>
>
> Regards,
>
> Leo
More information about the gstreamer-devel
mailing list