[Mesa-dev] [PATCH 1/3] ac/surface: fix MSAA corruption on Vega due to FMASK tile swizzle

Marek Olšák maraeo at gmail.com
Fri Jul 27 20:56:02 UTC 2018


On Fri, Jul 27, 2018 at 5:16 AM, Bas Nieuwenhuizen
<bas at basnieuwenhuizen.nl> wrote:
> Reviewed-by: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>
>
> Does it occur often that they are different?

It depends on the size. FMASK has lower bpp and always 1 sample, so
the tiling is more likely to use 4K than 64K macrotiles.

Marek

>
> On Fri, Jul 27, 2018 at 5:36 AM, Marek Olšák <maraeo at gmail.com> wrote:
>> From: Marek Olšák <marek.olsak at amd.com>
>>
>> a needle in the haystack?
>>
>> Cc: 18.1 <mesa-stable at lists.freedesktop.org>
>> ---
>>  src/amd/common/ac_surface.c | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/src/amd/common/ac_surface.c b/src/amd/common/ac_surface.c
>> index afdae1971e9..2f4f0f8884f 100644
>> --- a/src/amd/common/ac_surface.c
>> +++ b/src/amd/common/ac_surface.c
>> @@ -1295,21 +1295,21 @@ static int gfx9_compute_miptree(ADDR_HANDLE addrlib,
>>                             !(surf->flags & RADEON_SURF_SHAREABLE)) {
>>                                 ADDR2_COMPUTE_PIPEBANKXOR_INPUT xin = {0};
>>                                 ADDR2_COMPUTE_PIPEBANKXOR_OUTPUT xout = {0};
>>
>>                                 xin.size = sizeof(ADDR2_COMPUTE_PIPEBANKXOR_INPUT);
>>                                 xout.size = sizeof(ADDR2_COMPUTE_PIPEBANKXOR_OUTPUT);
>>
>>                                 /* This counter starts from 1 instead of 0. */
>>                                 xin.surfIndex = p_atomic_inc_return(config->info.fmask_surf_index);
>>                                 xin.flags = in->flags;
>> -                               xin.swizzleMode = in->swizzleMode;
>> +                               xin.swizzleMode = fin.swizzleMode;
>>                                 xin.resourceType = in->resourceType;
>>                                 xin.format = in->format;
>>                                 xin.numSamples = in->numSamples;
>>                                 xin.numFrags = in->numFrags;
>>
>>                                 ret = Addr2ComputePipeBankXor(addrlib, &xin, &xout);
>>                                 if (ret != ADDR_OK)
>>                                         return ret;
>>
>>                                 assert(xout.pipeBankXor <=
>> --
>> 2.17.1
>>
>> _______________________________________________
>> mesa-dev mailing list
>> mesa-dev at lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list