summaryrefslogtreecommitdiffstats
path: root/src/mesa/drivers/dri/i965/intel_screen.c
diff options
context:
space:
mode:
authorNeil Roberts <neil@linux.intel.com>2015-12-16 14:53:13 +0000
committerNeil Roberts <neil@linux.intel.com>2015-12-16 17:35:33 +0000
commit61cdb7665f7bd147533cdc5977750d990c2eafd5 (patch)
treefda5b574e34657390a5f455cec674ce57d910f54 /src/mesa/drivers/dri/i965/intel_screen.c
parent8c5310da9d1cbf2272f72d3ed4264544456a4683 (diff)
downloadexternal_mesa3d-61cdb7665f7bd147533cdc5977750d990c2eafd5.zip
external_mesa3d-61cdb7665f7bd147533cdc5977750d990c2eafd5.tar.gz
external_mesa3d-61cdb7665f7bd147533cdc5977750d990c2eafd5.tar.bz2
Revert "i965: Use MESA_FORMAT_B8G8R8X8_SRGB for RGB visuals"
This reverts commit 839793680f99b8387bee9489733d5071c10f3ace. The patch was breaking DRI3 because driGLFormatToImageFormat does not handle MESA_FORMAT_B8G8R8X8_SRGB which ended up making it fail to create the renderbuffer and it would later crash. It's not trivial to add this format because there is no __DRI_IMAGE_FORMAT nor __DRI_IMAGE_FOURCC define for the format either. I'm not sure how difficult adding this would be and whether adding a new format would require some sort of new version for DRI. Seeing as this might take a while to fix I think it makes sense to just revert the patch in the meantime in order to avoid regressing master. It is also not handled in intel_gles3_srgb_workaround and there may be other cases where it breaks. Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=93388 Acked-by: Jason Ekstrand <jason.ekstrand@intel.com>
Diffstat (limited to 'src/mesa/drivers/dri/i965/intel_screen.c')
-rw-r--r--src/mesa/drivers/dri/i965/intel_screen.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/mesa/drivers/dri/i965/intel_screen.c b/src/mesa/drivers/dri/i965/intel_screen.c
index 825a7c1..cc90efe 100644
--- a/src/mesa/drivers/dri/i965/intel_screen.c
+++ b/src/mesa/drivers/dri/i965/intel_screen.c
@@ -999,13 +999,14 @@ intelCreateBuffer(__DRIscreen * driScrnPriv,
fb->Visual.samples = num_samples;
}
- if (mesaVis->redBits == 5) {
+ if (mesaVis->redBits == 5)
rgbFormat = MESA_FORMAT_B5G6R5_UNORM;
- } else {
- if (mesaVis->alphaBits == 0)
- rgbFormat = MESA_FORMAT_B8G8R8X8_SRGB;
- else
- rgbFormat = MESA_FORMAT_B8G8R8A8_SRGB;
+ else if (mesaVis->sRGBCapable)
+ rgbFormat = MESA_FORMAT_B8G8R8A8_SRGB;
+ else if (mesaVis->alphaBits == 0)
+ rgbFormat = MESA_FORMAT_B8G8R8X8_UNORM;
+ else {
+ rgbFormat = MESA_FORMAT_B8G8R8A8_SRGB;
fb->Visual.sRGBCapable = true;
}