From d6e70334fff9a31b32dbaadeee75ebe39cc79c50 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Thu, 1 Jun 2023 02:58:39 -0400 Subject: [PATCH] ac/surface: fix R32G3B32 image format regression for gfx6-8 This is a different fix from the one reviewed because that one broke gfx9. Fixes: ea7c89d1f57 - ac/surface: move determing ADDR_FMT_* into a helper function Part-of: --- src/amd/common/ac_surface.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/amd/common/ac_surface.c b/src/amd/common/ac_surface.c index 2e154f9433d..060ffc76a67 100644 --- a/src/amd/common/ac_surface.c +++ b/src/amd/common/ac_surface.c @@ -1127,6 +1127,10 @@ static int gfx6_compute_surface(ADDR_HANDLE addrlib, const struct radeon_info *i if (!compressed) AddrDccIn.bpp = AddrSurfInfoIn.bpp = surf->bpe * 8; + /* Setting ADDR_FMT_32_32_32 breaks gfx6-8, while INVALID works. */ + if (AddrSurfInfoIn.format == ADDR_FMT_32_32_32) + AddrSurfInfoIn.format = ADDR_FMT_INVALID; + AddrDccIn.numSamples = AddrSurfInfoIn.numSamples = MAX2(1, config->info.samples); AddrSurfInfoIn.tileIndex = -1;