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

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

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

Liu, Leo

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.


Regards,

Leo













_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

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

Liu, Leo

+Victor.

Received a bounced message:

being held until the list moderator can review it for approval.
On 2019-02-07 7:33 a.m., Leo Liu 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.


Regards,

Leo










_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

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

Victor Jaquez
In reply to this post by Liu, Leo
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
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

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

Liu, Leo

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
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel