intel/blorp: Fix blits to R8G8B8_UNORM_SRGB

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 <siglesias@igalia.com>
This commit is contained in:
Jason Ekstrand 2018-07-12 13:55:26 -07:00
parent 4ec8b39fcd
commit 11712b9ca1

View file

@ -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, &params->dst);
wm_prog_key->dst_rgb = true;