[Mesa-dev] [PATCH 004/140] amdgpu/addrlib: add new flag nonSplit

Marek Olšák maraeo at gmail.com
Mon Mar 20 22:42:14 UTC 2017


From: XiaoYuan Zheng <xiaoyuan.zheng at amd.com>

Flag tcCompatible has different usage in CI and VI. Add a new flag
"nonSplit" for CI.
---
 src/amd/addrlib/addrinterface.h    | 3 ++-
 src/amd/addrlib/r800/ciaddrlib.cpp | 2 +-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/amd/addrlib/addrinterface.h b/src/amd/addrlib/addrinterface.h
index ead6033..98cd405 100644
--- a/src/amd/addrlib/addrinterface.h
+++ b/src/amd/addrlib/addrinterface.h
@@ -449,21 +449,22 @@ typedef union _ADDR_SURFACE_FLAGS
         UINT_32 qbStereo      : 1; ///< Quad buffer stereo surface
         UINT_32 pow2Pad       : 1; ///< SI: Pad to pow2, must set for mipmap (include level0)
         UINT_32 interleaved   : 1; ///< Special flag for interleaved YUV surface padding
         UINT_32 degrade4Space : 1; ///< Degrade base level's tile mode to save memory
         UINT_32 tcCompatible  : 1; ///< Flag indicates surface needs to be shader readable
         UINT_32 dispTileType  : 1; ///< NI: force display Tiling for 128 bit shared resoruce
         UINT_32 dccCompatible : 1; ///< VI: whether to support dcc fast clear
         UINT_32 czDispCompatible: 1; ///< SI+: CZ family (Carrizo) has a HW bug needs special alignment.
                                      ///<      This flag indicates we need to follow the alignment with
                                      ///<      CZ families or other ASICs under PX configuration + CZ.
-        UINT_32 reserved      :10; ///< Reserved bits
+        UINT_32 nonSplit      : 1; ///< CI: depth texture should not be split
+        UINT_32 reserved      : 9; ///< Reserved bits
     };
 
     UINT_32 value;
 } ADDR_SURFACE_FLAGS;
 
 /**
 ***************************************************************************************************
 *   ADDR_COMPUTE_SURFACE_INFO_INPUT
 *
 *   @brief
diff --git a/src/amd/addrlib/r800/ciaddrlib.cpp b/src/amd/addrlib/r800/ciaddrlib.cpp
index 26c4e05..5f8a1fe 100644
--- a/src/amd/addrlib/r800/ciaddrlib.cpp
+++ b/src/amd/addrlib/r800/ciaddrlib.cpp
@@ -1003,21 +1003,21 @@ VOID CiAddrLib::HwlSetupTileInfo(
         {
             inTileType = ADDR_DEPTH_SAMPLE_ORDER;
         }
     }
 
     if (IsTileInfoAllZero(pTileInfo))
     {
         // See table entries 0-4
         if (flags.depth || flags.stencil)
         {
-            if (flags.depth && flags.tcCompatible)
+            if (flags.depth && (flags.nonSplit || flags.tcCompatible))
             {
                 // tileSize = bpp * numSamples * 8 * 8 / 8
                 UINT_32 tileSize = bpp * numSamples * 8;
 
                 // Texure readable depth surface should not be split
                 switch (tileSize)
                 {
                     case 128:
                         index = 1;
                         break;
-- 
2.7.4



More information about the mesa-dev mailing list