amd/addrlib/gfx10: forbid DCC for swizzle modes which the hardware does not support
authorNicolai Hähnle <nicolai.haehnle@amd.com>
Thu, 28 Jun 2018 19:03:39 +0000 (21:03 +0200)
committerMarek Olšák <marek.olsak@amd.com>
Wed, 3 Jul 2019 19:51:12 +0000 (15:51 -0400)
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
src/amd/addrlib/src/gfx10/gfx10addrlib.cpp

index 63aabcab096600abfedae7efc9c96c5981d45d4a..cecd15355680757c52be5ea55c5b540082af97b5 100644 (file)
@@ -388,10 +388,9 @@ ADDR_E_RETURNCODE Gfx10Lib::HwlComputeDccInfo(
 {
     ADDR_E_RETURNCODE ret = ADDR_OK;
 
-    if (IsLinear(pIn->swizzleMode) || IsBlock256b(pIn->swizzleMode))
+    if (pIn->swizzleMode != ADDR_SW_64KB_Z_X && pIn->swizzleMode != ADDR_SW_64KB_R_X)
     {
-        // Hardware support dcc for 256 swizzle mode, but address lib will not support it because we only
-        // select 256 swizzle mode for small surface, and it's not helpful to enable dcc for small surface.
+        // Hardware does not support DCC for this swizzle mode.
         ret = ADDR_INVALIDPARAMS;
     }
     else if (m_settings.dccUnsup3DSwDis && IsTex3d(pIn->resourceType) && IsDisplaySwizzle(pIn->swizzleMode))