fbconfig[0] is not 8 bits RGB with Mesa 18.x or newer

Liu, Leo Leo.Liu at amd.com
Tue Feb 12 16:57:44 UTC 2019


On 2/12/19 11:42 AM, Víctor Jáquez wrote:
> 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.

https://gitlab.freedesktop.org/gstreamer/gstreamer-vaapi/issues/136


>
> 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?

Yeah, at lease this change is working at my side.

Michel is an expert on this, he might have more comments.


Cheers,

Leo



>
>>
>> Regards,
>>
>> Leo


More information about the gstreamer-devel mailing list