fbconfig[0] is not 8 bits RGB with Mesa 18.x or newer
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.