From 11712b9ca17e4e1a819dcb7d020e19c6da77bc90 Mon Sep 17 00:00:00 2001 From: Jason Ekstrand Date: Thu, 12 Jul 2018 13:55:26 -0700 Subject: [PATCH] intel/blorp: Fix blits to R8G8B8_UNORM_SRGB MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit In this case, the surface faking will give us a R8_UNORM surface and we need to do an sRGB conversion in the shader. Found by inspection. cc: mesa-stable@lists.freedesktop.org Reviewed-by: Samuel Iglesias Gonsálvez --- src/intel/blorp/blorp_blit.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/intel/blorp/blorp_blit.c b/src/intel/blorp/blorp_blit.c index b144bdd..f3896fe 100644 --- a/src/intel/blorp/blorp_blit.c +++ b/src/intel/blorp/blorp_blit.c @@ -1951,6 +1951,10 @@ try_blorp_blit(struct blorp_batch *batch, params->x0 *= 3; params->x1 *= 3; + /* If it happens to be sRGB, we need to force a conversion */ + if (params->dst.view.format == ISL_FORMAT_R8G8B8_UNORM_SRGB) + wm_prog_key->dst_format = ISL_FORMAT_R9G9B9E5_SHAREDEXP; + surf_fake_rgb_with_red(batch->blorp->isl_dev, ¶ms->dst); wm_prog_key->dst_rgb = true; -- 2.7.4