Make glXChooseFBConfig handle unspecified sRGB correctly
authorJon Turney <jon.turney@dronecode.org.uk>
Sat, 14 Jul 2018 14:24:14 +0000 (15:24 +0100)
committerAdam Jackson <ajax@redhat.com>
Tue, 31 Jul 2018 17:56:13 +0000 (13:56 -0400)
commitfaa29c0e2449e3d7521bc273d723012b537593df
tree5049a3f1f0c84ccb854cb789767336db3a1ab9b9
parent03a61b977e1f6adb64658aa059ce53e766ff9ad9
Make glXChooseFBConfig handle unspecified sRGB correctly

Make glXChooseFBConfig properly handle the case where the only matching
configs have the sRGB flag set, but no sRGB attribute is specified.

Since 6e06e281, the sRGBcapable flag is now actually compared, using
MATCH_DONT_CARE.

7b0f912e added defaulting of sRGBcapable to GL_FALSE in
__glXInitializeVisualConfigFromTags(), to handle servers which don't report
it, but this function is also used by glXChooseFBConfig(), so sRGBcapable is
implicitly false when not explicitly specified.

(This can cause e.g. glxinfo to fail to find anything matching the simple
config it looks for if all the candidates have the sRGB flag set to true.
I'm assuming this doesn't happen 'normally' as candidate configs with and
without sRGB true are available)

Move this defaulting to createConfigsFromProperties(), and set the default
for glXChooseFBConfig() in init_fbconfig_for_chooser() to GLX_DONT_CARE.

Reviewed-by: Eric Anholt <eric@anholt.net>
src/glx/glxcmds.c
src/glx/glxext.c