On 2019-02-05 11:30 p.m., Marek Olšák wrote: > Hi, > > Video players request fbconfigs with these attributes: > GLX_RED_SIZE = 8 > GLX_GREEN_SIZE = 8 > GLX_BLUE_SIZE = 8 > GLX_ALPHA_SIZE = 0 > > Note that the values specify MINIMUM required component sizes, not exact > sizes. 10-10-10-2 satisfies the requirement and therefore glXChooseFBConfig > returns it first. Then video players choose the first config. > > There are many video players that have this issue. I guess they copied the > same code from each other. > > If we expose 10-bit or 16-bit formats, a lot of software will be broken. > Any ideas how to get out of this rabbit hole? > > My suggestion is to change the behavior of glXChooseFBConfig to return > 8-8-8 or 8-8-8-8 first if they satisfy the attributes and ignore the spec.
Deliberately violating the spec and diverging from other GL(X) implementations sounds like a bad idea to me. We should help getting broken code fixed by identifying it and making suggestions. For code using glXChooseFBConfig, unless I'm missing something, a water-tight way to get a config which exactly matches a specific format is to specify all of GLX_RED/GREEN/BLUE/ALPHA_SIZE corresponding to each component's size, and GLX_BUFFER_SIZE corresponding to the sum of all sizes. The former and the latter have opposing sort orders, so only a single combination of R/G/B/A sizes should match all five of them. -- Earthling Michel Dänzer | http://www.amd.com Libre software enthusiast | Mesa and X developer _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev