mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-23 09:00:10 +01:00
egl: Take alpha bits into account when selecting GBM formats
This fixes piglit when using PIGLIT_PLATFORM=gbm Tom Stellard: - Fix ARGB2101010 format Cc: "10.4 10.5" <mesa-stable@lists.freedesktop.org> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Reviewed-by: Chad Versace <chad.versace@intel.com>
This commit is contained in:
parent
b709adf7cc
commit
65c8965d03
1 changed files with 11 additions and 5 deletions
|
|
@ -668,15 +668,21 @@ dri2_initialize_drm(_EGLDriver *drv, _EGLDisplay *disp)
|
||||||
|
|
||||||
for (i = 0; dri2_dpy->driver_configs[i]; i++) {
|
for (i = 0; dri2_dpy->driver_configs[i]; i++) {
|
||||||
EGLint format, attr_list[3];
|
EGLint format, attr_list[3];
|
||||||
unsigned int mask;
|
unsigned int red, alpha;
|
||||||
|
|
||||||
dri2_dpy->core->getConfigAttrib(dri2_dpy->driver_configs[i],
|
dri2_dpy->core->getConfigAttrib(dri2_dpy->driver_configs[i],
|
||||||
__DRI_ATTRIB_RED_MASK, &mask);
|
__DRI_ATTRIB_RED_MASK, &red);
|
||||||
if (mask == 0x3ff00000)
|
dri2_dpy->core->getConfigAttrib(dri2_dpy->driver_configs[i],
|
||||||
|
__DRI_ATTRIB_ALPHA_MASK, &alpha);
|
||||||
|
if (red == 0x3ff00000 && alpha == 0x00000000)
|
||||||
format = GBM_FORMAT_XRGB2101010;
|
format = GBM_FORMAT_XRGB2101010;
|
||||||
else if (mask == 0x00ff0000)
|
else if (red == 0x3ff00000 && alpha == 0xc0000000)
|
||||||
|
format = GBM_FORMAT_ARGB2101010;
|
||||||
|
else if (red == 0x00ff0000 && alpha == 0x00000000)
|
||||||
format = GBM_FORMAT_XRGB8888;
|
format = GBM_FORMAT_XRGB8888;
|
||||||
else if (mask == 0xf800)
|
else if (red == 0x00ff0000 && alpha == 0xff000000)
|
||||||
|
format = GBM_FORMAT_ARGB8888;
|
||||||
|
else if (red == 0xf800)
|
||||||
format = GBM_FORMAT_RGB565;
|
format = GBM_FORMAT_RGB565;
|
||||||
else
|
else
|
||||||
continue;
|
continue;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue