radeonsi: don't convert L8A8 to R8A8 when blitting via compute to fix gfx7

Fixes: 0482ff3158 - radeonsi: don't do image stores with RGBX, L, LA, I, and SRGB formats
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/8707
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9176

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23687>
(cherry picked from commit 9078301ff8)
This commit is contained in:
Marek Olšák 2023-06-10 14:49:42 -04:00 committed by Eric Engestrom
parent f38154889f
commit a2a63c5339
2 changed files with 2 additions and 2 deletions

View file

@ -886,7 +886,7 @@
"description": "radeonsi: don't convert L8A8 to R8A8 when blitting via compute to fix gfx7",
"nominated": true,
"nomination_type": 1,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": "0482ff31588d5c6f00b52edd1dea3bb512d6eee9"
},

View file

@ -585,7 +585,7 @@ static void si_launch_grid_internal_images(struct si_context *sctx,
/* Simplify the format according to what image stores support. */
if (images[i].access & PIPE_IMAGE_ACCESS_WRITE) {
images[i].format = util_format_linear(images[i].format); /* SRGB not supported */
images[i].format = util_format_luminance_to_red(images[i].format);
/* Keep L8A8 formats as-is because GFX7 is unable to store into R8A8 for some reason. */
images[i].format = util_format_intensity_to_red(images[i].format);
images[i].format = util_format_rgbx_to_rgba(images[i].format); /* prevent partial writes */
}