amd/addrlib: update to the latest version
authorMarek Olšák <marek.olsak@amd.com>
Wed, 4 Sep 2019 02:38:38 +0000 (22:38 -0400)
committerMarek Olšák <marek.olsak@amd.com>
Mon, 16 Dec 2019 22:04:57 +0000 (17:04 -0500)
Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Acked-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
16 files changed:
src/amd/addrlib/inc/addrinterface.h
src/amd/addrlib/inc/addrtypes.h
src/amd/addrlib/src/addrinterface.cpp
src/amd/addrlib/src/core/addrcommon.h
src/amd/addrlib/src/core/addrlib.cpp
src/amd/addrlib/src/core/addrlib2.cpp
src/amd/addrlib/src/core/addrlib2.h
src/amd/addrlib/src/core/addrobject.cpp
src/amd/addrlib/src/gfx10/gfx10SwizzlePattern.h
src/amd/addrlib/src/gfx10/gfx10addrlib.cpp
src/amd/addrlib/src/gfx10/gfx10addrlib.h
src/amd/addrlib/src/gfx9/gfx9addrlib.cpp
src/amd/addrlib/src/gfx9/gfx9addrlib.h
src/amd/addrlib/src/r800/ciaddrlib.h
src/amd/addrlib/src/r800/siaddrlib.h
src/amd/common/ac_surface.c

index a8e0b93209e307183fca611a499c2521682d3ae8..5fb3c46e489600235a8b7af4ec9e1a9c390e5453 100644 (file)
@@ -308,7 +308,8 @@ typedef union _ADDR_CREATE_FLAGS
         UINT_32 useHtileSliceAlign     : 1;    ///< Do htile single slice alignment
         UINT_32 allowLargeThickTile    : 1;    ///< Allow 64*thickness*bytesPerPixel > rowSize
         UINT_32 forceDccAndTcCompat    : 1;    ///< Force enable DCC and TC compatibility
-        UINT_32 reserved               : 24;   ///< Reserved bits for future use
+        UINT_32 nonPower2MemConfig     : 1;    ///< Physical video memory size is not power of 2
+        UINT_32 reserved               : 23;   ///< Reserved bits for future use
     };
 
     UINT_32 value;
@@ -347,9 +348,6 @@ typedef struct _ADDR_REGISTER_VALUE
                                  ///< CI registers-------------------------------------------------
     const UINT_32* pMacroTileConfig;    ///< Global macro tile mode table
     UINT_32  noOfMacroEntries;   ///< Number of entries in pMacroTileConfig
-
-                                 ///< GFX9 HW parameters
-    UINT_32  blockVarSizeLog2;   ///< SW_VAR_* block size
 } ADDR_REGISTER_VALUE;
 
 /**
@@ -3549,12 +3547,14 @@ typedef union _ADDR2_BLOCK_SET
 {
     struct
     {
-        UINT_32 micro       : 1;   // 256B block for 2D resource
-        UINT_32 macro4KB    : 1;   // 4KB for 2D/3D resource
-        UINT_32 macro64KB   : 1;   // 64KB for 2D/3D resource
-        UINT_32 var         : 1;   // VAR block
-        UINT_32 linear      : 1;   // Linear block
-        UINT_32 reserved    : 27;
+        UINT_32 micro          : 1;   // 256B block for 2D resource
+        UINT_32 macroThin4KB   : 1;   // Thin 4KB for 2D/3D resource
+        UINT_32 macroThick4KB  : 1;   // Thick 4KB for 3D resource
+        UINT_32 macroThin64KB  : 1;   // Thin 64KB for 2D/3D resource
+        UINT_32 macroThick64KB : 1;   // Thick 64KB for 3D resource
+        UINT_32 var            : 1;   // VAR block
+        UINT_32 linear         : 1;   // Linear block
+        UINT_32 reserved       : 25;
     };
 
     UINT_32 value;
@@ -3594,38 +3594,38 @@ typedef union _ADDR2_SWMODE_SET
 {
     struct
     {
-        UINT_32 swLinear   : 1;
-        UINT_32 sw256B_S   : 1;
-        UINT_32 sw256B_D   : 1;
-        UINT_32 sw256B_R   : 1;
-        UINT_32 sw4KB_Z    : 1;
-        UINT_32 sw4KB_S    : 1;
-        UINT_32 sw4KB_D    : 1;
-        UINT_32 sw4KB_R    : 1;
-        UINT_32 sw64KB_Z   : 1;
-        UINT_32 sw64KB_S   : 1;
-        UINT_32 sw64KB_D   : 1;
-        UINT_32 sw64KB_R   : 1;
-        UINT_32 swVar_Z    : 1;
-        UINT_32 swVar_S    : 1;
-        UINT_32 swVar_D    : 1;
-        UINT_32 swVar_R    : 1;
-        UINT_32 sw64KB_Z_T : 1;
-        UINT_32 sw64KB_S_T : 1;
-        UINT_32 sw64KB_D_T : 1;
-        UINT_32 sw64KB_R_T : 1;
-        UINT_32 sw4KB_Z_X  : 1;
-        UINT_32 sw4KB_S_X  : 1;
-        UINT_32 sw4KB_D_X  : 1;
-        UINT_32 sw4KB_R_X  : 1;
-        UINT_32 sw64KB_Z_X : 1;
-        UINT_32 sw64KB_S_X : 1;
-        UINT_32 sw64KB_D_X : 1;
-        UINT_32 sw64KB_R_X : 1;
-        UINT_32 swVar_Z_X  : 1;
-        UINT_32 swVar_S_X  : 1;
-        UINT_32 swVar_D_X  : 1;
-        UINT_32 swVar_R_X  : 1;
+        UINT_32 swLinear    : 1;
+        UINT_32 sw256B_S    : 1;
+        UINT_32 sw256B_D    : 1;
+        UINT_32 sw256B_R    : 1;
+        UINT_32 sw4KB_Z     : 1;
+        UINT_32 sw4KB_S     : 1;
+        UINT_32 sw4KB_D     : 1;
+        UINT_32 sw4KB_R     : 1;
+        UINT_32 sw64KB_Z    : 1;
+        UINT_32 sw64KB_S    : 1;
+        UINT_32 sw64KB_D    : 1;
+        UINT_32 sw64KB_R    : 1;
+        UINT_32 swReserved0 : 1;
+        UINT_32 swReserved1 : 1;
+        UINT_32 swReserved2 : 1;
+        UINT_32 swReserved3 : 1;
+        UINT_32 sw64KB_Z_T  : 1;
+        UINT_32 sw64KB_S_T  : 1;
+        UINT_32 sw64KB_D_T  : 1;
+        UINT_32 sw64KB_R_T  : 1;
+        UINT_32 sw4KB_Z_X   : 1;
+        UINT_32 sw4KB_S_X   : 1;
+        UINT_32 sw4KB_D_X   : 1;
+        UINT_32 sw4KB_R_X   : 1;
+        UINT_32 sw64KB_Z_X  : 1;
+        UINT_32 sw64KB_S_X  : 1;
+        UINT_32 sw64KB_D_X  : 1;
+        UINT_32 sw64KB_R_X  : 1;
+        UINT_32 swVar_Z_X   : 1;
+        UINT_32 swReserved4 : 1;
+        UINT_32 swReserved5 : 1;
+        UINT_32 swVar_R_X   : 1;
     };
 
     UINT_32 value;
index 36e342f31760a69ab5d1fc9406b9a26b9167ccea..7d8ca9266781a087dbfbec3ab9d954d5103d17c4 100644 (file)
@@ -90,11 +90,7 @@ typedef int            INT;
     #if defined(BRAHMA_ARM)
         #define ADDR_FASTCALL
     #elif defined(__GNUC__)
-        #if defined(__i386__)
-            #define ADDR_FASTCALL __attribute__((regparm(0)))
-        #else
-            #define ADDR_FASTCALL
-        #endif
+        #define ADDR_FASTCALL __attribute__((regparm(0)))
     #else
         #define ADDR_FASTCALL __fastcall
     #endif
@@ -203,22 +199,32 @@ typedef enum _AddrTileMode
 /**
 ****************************************************************************************************
 * @brief
-*   Neutral enums that define swizzle modes for Gfx9 ASIC
+*   Neutral enums that define swizzle modes for Gfx9+ ASIC
 * @note
 *
-*   ADDR_SW_LINEAR linear aligned addressing mode, for 1D/2D/3D resouce
-*   ADDR_SW_256B_* addressing block aligned size is 256B, for 2D/3D resouce
-*   ADDR_SW_4KB_*  addressing block aligned size is 4KB, for 2D/3D resouce
-*   ADDR_SW_64KB_* addressing block aligned size is 64KB, for 2D/3D resouce
-*   ADDR_SW_VAR_*  addressing block aligned size is ASIC specific, for 2D/3D resouce
+*   ADDR_SW_LINEAR linear aligned addressing mode, for 1D/2D/3D resource
+*   ADDR_SW_256B_* addressing block aligned size is 256B, for 2D/3D resource
+*   ADDR_SW_4KB_*  addressing block aligned size is 4KB, for 2D/3D resource
+*   ADDR_SW_64KB_* addressing block aligned size is 64KB, for 2D/3D resource
 *
-*   ADDR_SW_*_Z    For 2D resouce, represents Z-order swizzle mode for depth/stencil/FMask
-                   For 3D resouce, represents a swizzle mode similar to legacy thick tile mode
-*   ADDR_SW_*_S    represents standard swizzle mode defined by MS
-*   ADDR_SW_*_D    For 2D resouce, represents a swizzle mode for displayable resource
-*                  For 3D resouce, represents a swizzle mode which places each slice in order & pixel
+*   ADDR_SW_*_Z    For GFX9:
+                   - for 2D resource, represents Z-order swizzle mode for depth/stencil/FMask
+                   - for 3D resource, represents a swizzle mode similar to legacy thick tile mode
+                   For GFX10:
+                   - represents Z-order swizzle mode for depth/stencil/FMask
+*   ADDR_SW_*_S    For GFX9+:
+                   - represents standard swizzle mode defined by MS
+*   ADDR_SW_*_D    For GFX9:
+                   - for 2D resource, represents a swizzle mode for displayable resource
+*                  - for 3D resource, represents a swizzle mode which places each slice in order & pixel
+                   For GFX10:
+                   - for 2D resource, represents a swizzle mode for displayable resource
+                   - for 3D resource, represents a swizzle mode similar to legacy thick tile mode
                    within slice is placed as 2D ADDR_SW_*_S. Don't use this combination if possible!
-*   ADDR_SW_*_R    For 2D resouce only, represents a swizzle mode for rotated displayable resource
+*   ADDR_SW_*_R    For GFX9:
+                   - 2D resource only, represents a swizzle mode for rotated displayable resource
+                   For GFX10:
+                   - represents a swizzle mode for render target resource
 *
 ****************************************************************************************************
 */
@@ -236,10 +242,10 @@ typedef enum _AddrSwizzleMode
     ADDR_SW_64KB_S          = 9,
     ADDR_SW_64KB_D          = 10,
     ADDR_SW_64KB_R          = 11,
-    ADDR_SW_VAR_Z           = 12,
-    ADDR_SW_VAR_S           = 13,
-    ADDR_SW_VAR_D           = 14,
-    ADDR_SW_VAR_R           = 15,
+    ADDR_SW_RESERVED0       = 12,
+    ADDR_SW_RESERVED1       = 13,
+    ADDR_SW_RESERVED2       = 14,
+    ADDR_SW_RESERVED3       = 15,
     ADDR_SW_64KB_Z_T        = 16,
     ADDR_SW_64KB_S_T        = 17,
     ADDR_SW_64KB_D_T        = 18,
@@ -253,17 +259,11 @@ typedef enum _AddrSwizzleMode
     ADDR_SW_64KB_D_X        = 26,
     ADDR_SW_64KB_R_X        = 27,
     ADDR_SW_VAR_Z_X         = 28,
-    ADDR_SW_VAR_S_X         = 29,
-    ADDR_SW_VAR_D_X         = 30,
+    ADDR_SW_RESERVED4       = 29,
+    ADDR_SW_RESERVED5       = 30,
     ADDR_SW_VAR_R_X         = 31,
     ADDR_SW_LINEAR_GENERAL  = 32,
     ADDR_SW_MAX_TYPE        = 33,
-
-    // Used for represent block with identical size
-    ADDR_SW_256B            = ADDR_SW_256B_S,
-    ADDR_SW_4KB             = ADDR_SW_4KB_S_X,
-    ADDR_SW_64KB            = ADDR_SW_64KB_S_X,
-    ADDR_SW_VAR             = ADDR_SW_VAR_S_X,
 } AddrSwizzleMode;
 
 /**
@@ -316,7 +316,9 @@ typedef enum _AddrSwType
     ADDR_SW_Z  = 0,   // Resource basic swizzle mode is ZOrder
     ADDR_SW_S  = 1,   // Resource basic swizzle mode is Standard
     ADDR_SW_D  = 2,   // Resource basic swizzle mode is Display
-    ADDR_SW_R  = 3,   // Resource basic swizzle mode is Rotated
+    ADDR_SW_R  = 3,   // Resource basic swizzle mode is Rotated/Render optimized
+    ADDR_SW_L  = 4,   // Resource basic swizzle mode is Linear
+    ADDR_SW_MAX_SWTYPE
 } AddrSwType;
 
 /**
index 09010879903c78e8ec656423d66ce3289b863ca7..5256499b3b3b417540859b14d96bc5cbc275e482 100644 (file)
@@ -60,7 +60,6 @@ ADDR_E_RETURNCODE ADDR_API AddrCreate(
     ADDR_CREATE_OUTPUT*         pAddrCreateOut) ///< [out] address lib handle
 {
     ADDR_E_RETURNCODE returnCode = ADDR_OK;
-
     {
         returnCode = Lib::Create(pAddrCreateIn, pAddrCreateOut);
     }
index 61eb90831464c79075c106dc3b748252bfde52a9..4c919678804ec2aaa9d55e67405db1e20b4595b9 100644 (file)
 
 // ADDR_LNX_KERNEL_BUILD is for internal build
 // Moved from addrinterface.h so __KERNEL__ is not needed any more
-#if   !defined(__APPLE__) || defined(HAVE_TSERVER)
+#if ADDR_LNX_KERNEL_BUILD // || (defined(__GNUC__) && defined(__KERNEL__))
+    #include <string.h>
+#elif !defined(__APPLE__) || defined(HAVE_TSERVER)
     #include <stdlib.h>
     #include <string.h>
-    #include <assert.h>
 #endif
 
+#include <assert.h>
+#include "util/macros.h"
+
 ////////////////////////////////////////////////////////////////////////////////////////////////////
 // Platform specific debug break defines
 ////////////////////////////////////////////////////////////////////////////////////////////////////
 #endif // DEBUG
 ////////////////////////////////////////////////////////////////////////////////////////////////////
 
-#if defined(static_assert)
-#define ADDR_C_ASSERT(__e) static_assert(__e, "")
-#else
-#define ADDR_C_ASSERT(__e) typedef char __ADDR_C_ASSERT__[(__e) ? 1 : -1]
-#endif
+#define ADDR_C_ASSERT(__e) STATIC_ASSERT(__e)
 
 namespace Addr
 {
@@ -270,7 +270,8 @@ union ConfigFlags
         UINT_32 disableLinearOpt       : 1;    ///< Disallow tile modes to be optimized to linear
         UINT_32 use32bppFor422Fmt      : 1;    ///< View 422 formats as 32 bits per pixel element
         UINT_32 forceDccAndTcCompat    : 1;    ///< Force enable DCC and TC compatibility
-        UINT_32 reserved               : 20;   ///< Reserved bits for future use
+        UINT_32 nonPower2MemConfig     : 1;    ///< Physical video memory size is not power of 2
+        UINT_32 reserved               : 19;   ///< Reserved bits for future use
     };
 
     UINT_32 value;
@@ -926,6 +927,21 @@ static inline UINT_32 GetCoordActiveMask(
     return mask;
 }
 
+/**
+****************************************************************************************************
+*   ShiftCeil
+*
+*   @brief
+*       Apply righ-shift with ceiling
+****************************************************************************************************
+*/
+static inline UINT_32 ShiftCeil(
+    UINT_32 a,  ///< [in] value to be right-shifted
+    UINT_32 b)  ///< [in] number of bits to shift
+{
+    return (a >> b) + (((a & ((1 << b) - 1)) != 0) ? 1 : 0);
+}
+
 } // Addr
 
 #endif // __ADDR_COMMON_H__
index 6fdce2f2dd7c3dbb36810296a271a2c98c579c94..5d99d4db0d13cf214f612fab237d0383cc662331 100644 (file)
@@ -250,6 +250,7 @@ ADDR_E_RETURNCODE Lib::Create(
         pLib->m_configFlags.useHtileSliceAlign  = pCreateIn->createFlags.useHtileSliceAlign;
         pLib->m_configFlags.allowLargeThickTile = pCreateIn->createFlags.allowLargeThickTile;
         pLib->m_configFlags.forceDccAndTcCompat = pCreateIn->createFlags.forceDccAndTcCompat;
+        pLib->m_configFlags.nonPower2MemConfig  = pCreateIn->createFlags.nonPower2MemConfig;
         pLib->m_configFlags.disableLinearOpt    = FALSE;
 
         pLib->SetChipFamily(pCreateIn->chipFamily, pCreateIn->chipRevision);
index e6440d6ca5cc1d049efcae5350ef3ed7badc206c..0007e2b9fb4c5095f4c2ad2cf7c9865697a945df 100644 (file)
@@ -73,7 +73,8 @@ Lib::Lib()
     m_rbPerSeLog2(0),
     m_maxCompFragLog2(0),
     m_pipeInterleaveLog2(0),
-    m_blockVarSizeLog2(0)
+    m_blockVarSizeLog2(0),
+    m_numEquations(0)
 {
 }
 
@@ -98,7 +99,8 @@ Lib::Lib(const Client* pClient)
     m_rbPerSeLog2(0),
     m_maxCompFragLog2(0),
     m_pipeInterleaveLog2(0),
-    m_blockVarSizeLog2(0)
+    m_blockVarSizeLog2(0),
+    m_numEquations(0)
 {
 }
 
@@ -1363,35 +1365,65 @@ ADDR_E_RETURNCODE Lib::ComputeBlockDimensionForSurf(
     AddrResourceType resourceType,
     AddrSwizzleMode  swizzleMode) const
 {
-    ADDR_E_RETURNCODE returnCode = ComputeBlockDimension(pWidth,
-                                                         pHeight,
-                                                         pDepth,
-                                                         bpp,
-                                                         resourceType,
-                                                         swizzleMode);
+    ADDR_E_RETURNCODE returnCode = ADDR_OK;
 
-    if ((returnCode == ADDR_OK) && (numSamples > 1) && IsThin(resourceType, swizzleMode))
+    if (IsThick(resourceType, swizzleMode))
     {
-        const UINT_32 log2blkSize = GetBlockSizeLog2(swizzleMode);
-        const UINT_32 log2sample  = Log2(numSamples);
-        const UINT_32 q           = log2sample >> 1;
-        const UINT_32 r           = log2sample & 1;
-
-        if (log2blkSize & 1)
-        {
-            *pWidth  >>= q;
-            *pHeight >>= (q + r);
-        }
-        else
-        {
-            *pWidth  >>= (q + r);
-            *pHeight >>= q;
-        }
+        ComputeThickBlockDimension(pWidth, pHeight, pDepth, bpp, resourceType, swizzleMode);
+    }
+    else if (IsThin(resourceType, swizzleMode))
+    {
+        ComputeThinBlockDimension(pWidth, pHeight, pDepth, bpp, numSamples, resourceType, swizzleMode);
+    }
+    else
+    {
+        ADDR_ASSERT_ALWAYS();
+        returnCode = ADDR_INVALIDPARAMS;
     }
 
     return returnCode;
 }
 
+/**
+************************************************************************************************************************
+*   Lib::ComputeThinBlockDimension
+*
+*   @brief
+*       Internal function to get thin block width/height/depth in element from surface input params.
+*
+*   @return
+*       N/A
+************************************************************************************************************************
+*/
+VOID Lib::ComputeThinBlockDimension(
+    UINT_32*         pWidth,
+    UINT_32*         pHeight,
+    UINT_32*         pDepth,
+    UINT_32          bpp,
+    UINT_32          numSamples,
+    AddrResourceType resourceType,
+    AddrSwizzleMode  swizzleMode) const
+{
+    ADDR_ASSERT(IsThin(resourceType, swizzleMode));
+
+    // GFX9/GFX10 use different dimension amplifying logic: say for 128KB block + 1xAA + 1BPE, the dimension of thin
+    // swizzle mode will be [256W * 512H] on GFX9 ASICs and [512W * 256H] on GFX10 ASICs. Since GFX10 is newer HWL so we
+    // make its implementation into base class (in order to save future change on new HWLs)
+    const UINT_32 log2BlkSize  = GetBlockSizeLog2(swizzleMode);
+    const UINT_32 log2EleBytes = Log2(bpp >> 3);
+    const UINT_32 log2Samples  = Log2(Max(numSamples, 1u));
+    const UINT_32 log2NumEle   = log2BlkSize - log2EleBytes - log2Samples;
+
+    // For "1xAA/4xAA cases" or "2xAA/8xAA + odd log2BlkSize cases", width == height or width == 2 * height;
+    // For other cases, height == width or height == 2 * width
+    const BOOL_32 widthPrecedent = ((log2Samples & 1) == 0) || ((log2BlkSize & 1) != 0);
+    const UINT_32 log2Width      = (log2NumEle + (widthPrecedent ? 1 : 0)) / 2;
+
+    *pWidth  = 1u << log2Width;
+    *pHeight = 1u << (log2NumEle - log2Width);
+    *pDepth  = 1;
+}
+
 /**
 ************************************************************************************************************************
 *   Lib::ComputeBlockDimension
@@ -1404,42 +1436,22 @@ ADDR_E_RETURNCODE Lib::ComputeBlockDimensionForSurf(
 ************************************************************************************************************************
 */
 ADDR_E_RETURNCODE Lib::ComputeBlockDimension(
-    UINT_32*          pWidth,
-    UINT_32*          pHeight,
-    UINT_32*          pDepth,
-    UINT_32           bpp,
-    AddrResourceType  resourceType,
-    AddrSwizzleMode   swizzleMode) const
+    UINT_32*         pWidth,
+    UINT_32*         pHeight,
+    UINT_32*         pDepth,
+    UINT_32          bpp,
+    AddrResourceType resourceType,
+    AddrSwizzleMode  swizzleMode) const
 {
     ADDR_E_RETURNCODE returnCode = ADDR_OK;
 
-    UINT_32 eleBytes                 = bpp >> 3;
-    UINT_32 microBlockSizeTableIndex = Log2(eleBytes);
-    UINT_32 log2blkSize              = GetBlockSizeLog2(swizzleMode);
-
-    if (IsThin(resourceType, swizzleMode))
+    if (IsThick(resourceType, swizzleMode))
     {
-        UINT_32 log2blkSizeIn256B = log2blkSize - 8;
-        UINT_32 widthAmp          = log2blkSizeIn256B / 2;
-        UINT_32 heightAmp         = log2blkSizeIn256B - widthAmp;
-
-        ADDR_ASSERT(microBlockSizeTableIndex < sizeof(Block256_2d) / sizeof(Block256_2d[0]));
-
-        *pWidth  = (Block256_2d[microBlockSizeTableIndex].w << widthAmp);
-        *pHeight = (Block256_2d[microBlockSizeTableIndex].h << heightAmp);
-        *pDepth  = 1;
+        ComputeThickBlockDimension(pWidth, pHeight, pDepth, bpp, resourceType, swizzleMode);
     }
-    else if (IsThick(resourceType, swizzleMode))
+    else if (IsThin(resourceType, swizzleMode))
     {
-        UINT_32 log2blkSizeIn1KB = log2blkSize - 10;
-        UINT_32 averageAmp       = log2blkSizeIn1KB / 3;
-        UINT_32 restAmp          = log2blkSizeIn1KB % 3;
-
-        ADDR_ASSERT(microBlockSizeTableIndex < sizeof(Block1K_3d) / sizeof(Block1K_3d[0]));
-
-        *pWidth  = Block1K_3d[microBlockSizeTableIndex].w << averageAmp;
-        *pHeight = Block1K_3d[microBlockSizeTableIndex].h << (averageAmp + (restAmp / 2));
-        *pDepth  = Block1K_3d[microBlockSizeTableIndex].d << (averageAmp + ((restAmp != 0) ? 1 : 0));
+        ComputeThinBlockDimension(pWidth, pHeight, pDepth, bpp, 0, resourceType, swizzleMode);
     }
     else
     {
@@ -1450,6 +1462,42 @@ ADDR_E_RETURNCODE Lib::ComputeBlockDimension(
     return returnCode;
 }
 
+/**
+************************************************************************************************************************
+*   Lib::ComputeThickBlockDimension
+*
+*   @brief
+*       Internal function to get block width/height/depth in element for thick swizzle mode
+*
+*   @return
+*       N/A
+************************************************************************************************************************
+*/
+VOID Lib::ComputeThickBlockDimension(
+    UINT_32*         pWidth,
+    UINT_32*         pHeight,
+    UINT_32*         pDepth,
+    UINT_32          bpp,
+    AddrResourceType resourceType,
+    AddrSwizzleMode  swizzleMode) const
+{
+    ADDR_ASSERT(IsThick(resourceType, swizzleMode));
+
+    const UINT_32 log2BlkSize              = GetBlockSizeLog2(swizzleMode);
+    const UINT_32 eleBytes                 = bpp >> 3;
+    const UINT_32 microBlockSizeTableIndex = Log2(eleBytes);
+
+    ADDR_ASSERT(microBlockSizeTableIndex < sizeof(Block1K_3d) / sizeof(Block1K_3d[0]));
+
+    const UINT_32 log2blkSizeIn1KB = log2BlkSize - 10;
+    const UINT_32 averageAmp       = log2blkSizeIn1KB / 3;
+    const UINT_32 restAmp          = log2blkSizeIn1KB % 3;
+
+    *pWidth  = Block1K_3d[microBlockSizeTableIndex].w << averageAmp;
+    *pHeight = Block1K_3d[microBlockSizeTableIndex].h << (averageAmp + (restAmp / 2));
+    *pDepth  = Block1K_3d[microBlockSizeTableIndex].d << (averageAmp + ((restAmp != 0) ? 1 : 0));
+}
+
 /**
 ************************************************************************************************************************
 *   Lib::GetMipTailDim
@@ -1469,11 +1517,11 @@ Dim3d Lib::GetMipTailDim(
     UINT_32           blockDepth) const
 {
     Dim3d   out         = {blockWidth, blockHeight, blockDepth};
-    UINT_32 log2blkSize = GetBlockSizeLog2(swizzleMode);
+    UINT_32 log2BlkSize = GetBlockSizeLog2(swizzleMode);
 
     if (IsThick(resourceType, swizzleMode))
     {
-        UINT_32 dim = log2blkSize % 3;
+        UINT_32 dim = log2BlkSize % 3;
 
         if (dim == 0)
         {
@@ -1490,11 +1538,22 @@ Dim3d Lib::GetMipTailDim(
     }
     else
     {
-        if (log2blkSize & 1)
+        ADDR_ASSERT(IsThin(resourceType, swizzleMode));
+
+        // GFX9/GFX10 use different dimension shrinking logic for mipmap tail: say for 128KB block + 2BPE, the maximum
+        // dimension of mipmap tail level will be [256W * 128H] on GFX9 ASICs and [128W * 256H] on GFX10 ASICs. Since
+        // GFX10 is newer HWL so we make its implementation into base class, in order to save future change on new HWLs.
+        // And assert log2BlkSize will always be an even value on GFX9, so we never need the logic wrapped by DEBUG...
+#if DEBUG
+        if ((log2BlkSize & 1) && (m_chipFamily == ADDR_CHIP_FAMILY_AI))
         {
+            // Should never go here...
+            ADDR_ASSERT_ALWAYS();
+
             out.h >>= 1;
         }
         else
+#endif
         {
             out.w >>= 1;
         }
@@ -1873,7 +1932,52 @@ VOID Lib::ComputeQbStereoInfo(
     pOut->pixelHeight <<= 1;
 
     // Double size
-    pOut->surfSize <<= 1;
+    pOut->surfSize  <<= 1;
+    pOut->sliceSize <<= 1;
+}
+
+/**
+************************************************************************************************************************
+*   Lib::FilterInvalidEqSwizzleMode
+*
+*   @brief
+*       Filter out swizzle mode(s) if it doesn't have valid equation index
+*
+*   @return
+*       N/A
+************************************************************************************************************************
+*/
+VOID Lib::FilterInvalidEqSwizzleMode(
+    ADDR2_SWMODE_SET& allowedSwModeSet,
+    AddrResourceType  resourceType,
+    UINT_32           elemLog2
+    ) const
+{
+    if (resourceType != ADDR_RSRC_TEX_1D)
+    {
+        UINT_32       allowedSwModeSetVal = allowedSwModeSet.value;
+        const UINT_32 rsrcTypeIdx         = static_cast<UINT_32>(resourceType) - 1;
+        UINT_32       validSwModeSet      = allowedSwModeSetVal;
+
+        for (UINT_32 swModeIdx = 0; validSwModeSet != 0; swModeIdx++)
+        {
+            if (validSwModeSet & 1)
+            {
+                if (m_equationLookupTable[rsrcTypeIdx][swModeIdx][elemLog2] == ADDR_INVALID_EQUATION_INDEX)
+                {
+                    allowedSwModeSetVal &= ~(1u << swModeIdx);
+                }
+            }
+
+            validSwModeSet >>= 1;
+        }
+
+        // Only apply the filtering if at least one valid swizzle mode remains
+        if (allowedSwModeSetVal != 0)
+        {
+            allowedSwModeSet.value = allowedSwModeSetVal;
+        }
+    }
 }
 
 } // V2
index fd433403d8260bb5b09542bb243061e87ef48fe8..75fe6442db8486857895333f22d68ffa8a466085 100644 (file)
@@ -68,6 +68,8 @@ struct SwizzleModeFlags
     UINT_32 isT             : 1;    // T mode
 
     UINT_32 isRtOpt         : 1;    // mode opt for render target
+
+    UINT_32 reserved        : 20;   // Reserved bits
 };
 
 struct Dim2d
@@ -87,25 +89,14 @@ struct Dim3d
 enum AddrBlockType
 {
     AddrBlockMicro     = 0, // Resource uses 256B block
-    AddrBlock4KB       = 1, // Resource uses 4KB block
-    AddrBlock64KB      = 2, // Resource uses 64KB block
-    AddrBlockVar       = 3, // Resource uses var block, only valid for GFX9
-    AddrBlockLinear    = 4, // Resource uses linear swizzle mode
-
-    AddrBlockMaxTiledType = AddrBlock64KB + 1,
-};
-
-enum AddrBlockSet
-{
-    AddrBlockSetMicro     = 1 << AddrBlockMicro,
-    AddrBlockSetMacro4KB  = 1 << AddrBlock4KB,
-    AddrBlockSetMacro64KB = 1 << AddrBlock64KB,
-    AddrBlockSetVar       = 1 << AddrBlockVar,
-    AddrBlockSetLinear    = 1 << AddrBlockLinear,
-
-    AddrBlockSetMacro   = AddrBlockSetMacro4KB | AddrBlockSetMacro64KB,
-    AddrBlockSet2dGfx10 = AddrBlockSetMicro    | AddrBlockSetMacro,
-    AddrBlockSet3dGfx10 = AddrBlockSetMacro,
+    AddrBlockThin4KB   = 1, // Resource uses thin 4KB block
+    AddrBlockThick4KB  = 2, // Resource uses thick 4KB block
+    AddrBlockThin64KB  = 3, // Resource uses thin 64KB block
+    AddrBlockThick64KB = 4, // Resource uses thick 64KB block
+    AddrBlockVar       = 5, // Resource uses var block, only valid for GFX9
+    AddrBlockLinear    = 6, // Resource uses linear swizzle mode
+
+    AddrBlockMaxTiledType = AddrBlockVar + 1,
 };
 
 enum AddrSwSet
@@ -115,11 +106,17 @@ enum AddrSwSet
     AddrSwSetD = 1 << ADDR_SW_D,
     AddrSwSetR = 1 << ADDR_SW_R,
 
-    AddrSwSetAll         = AddrSwSetZ | AddrSwSetS | AddrSwSetD | AddrSwSetR,
-    AddrSwSet3dThinGfx10 = AddrSwSetZ | AddrSwSetR,
-    AddrSwSetColorGfx10  = AddrSwSetS | AddrSwSetD | AddrSwSetR,
+    AddrSwSetAll = AddrSwSetZ | AddrSwSetS | AddrSwSetD | AddrSwSetR,
 };
 
+const UINT_32 Size256 = 256u;
+const UINT_32 Size4K  = 4096u;
+const UINT_32 Size64K = 65536u;
+
+const UINT_32 Log2Size256 = 8u;
+const UINT_32 Log2Size4K  = 12u;
+const UINT_32 Log2Size64K = 16u;
+
 /**
 ************************************************************************************************************************
 * @brief This class contains asic independent address lib functionalities
@@ -237,6 +234,15 @@ protected:
 
     static const UINT_32 MaxMipLevels = 16;
 
+    BOOL_32 IsValidSwMode(AddrSwizzleMode swizzleMode) const
+    {
+        // Don't dereference a reinterpret_cast pointer so as not to break
+        // strict-aliasing rules.
+        UINT_32 mode;
+        memcpy(&mode, &m_swizzleModeTable[swizzleMode], sizeof(UINT_32));
+        return mode != 0;
+    }
+
     // Checking block size
     BOOL_32 IsBlock256b(AddrSwizzleMode swizzleMode) const
     {
@@ -356,7 +362,7 @@ protected:
         {
             blockSizeLog2 = 16;
         }
-        else if (IsBlockVariable(swizzleMode))
+        else if (IsBlockVariable(swizzleMode) && (m_blockVarSizeLog2 != 0))
         {
             blockSizeLog2 = m_blockVarSizeLog2;
         }
@@ -653,12 +659,29 @@ protected:
         AddrSwizzleMode  swizzleMode) const;
 
     ADDR_E_RETURNCODE ComputeBlockDimension(
-        UINT_32*          pWidth,
-        UINT_32*          pHeight,
-        UINT_32*          pDepth,
-        UINT_32           bpp,
-        AddrResourceType  resourceType,
-        AddrSwizzleMode   swizzleMode) const;
+        UINT_32*         pWidth,
+        UINT_32*         pHeight,
+        UINT_32*         pDepth,
+        UINT_32          bpp,
+        AddrResourceType resourceType,
+        AddrSwizzleMode  swizzleMode) const;
+
+    virtual VOID ComputeThinBlockDimension(
+        UINT_32*         pWidth,
+        UINT_32*         pHeight,
+        UINT_32*         pDepth,
+        UINT_32          bpp,
+        UINT_32          numSamples,
+        AddrResourceType resourceType,
+        AddrSwizzleMode  swizzleMode) const;
+
+    VOID ComputeThickBlockDimension(
+        UINT_32*         pWidth,
+        UINT_32*         pHeight,
+        UINT_32*         pDepth,
+        UINT_32          bpp,
+        AddrResourceType resourceType,
+        AddrSwizzleMode  swizzleMode) const;
 
     static UINT_64 ComputePadSize(
         const Dim3d*      pBlkDim,
@@ -793,6 +816,11 @@ protected:
 
     VOID ComputeQbStereoInfo(ADDR2_COMPUTE_SURFACE_INFO_OUTPUT* pOut) const;
 
+    VOID FilterInvalidEqSwizzleMode(
+        ADDR2_SWMODE_SET& allowedSwModeSet,
+        AddrResourceType  resourceType,
+        UINT_32           elemLog2) const;
+
     UINT_32 m_se;                       ///< Number of shader engine
     UINT_32 m_rbPerSe;                  ///< Number of render backend per shader engine
     UINT_32 m_maxCompFrag;              ///< Number of max compressed fragment
@@ -809,6 +837,22 @@ protected:
 
     SwizzleModeFlags m_swizzleModeTable[ADDR_SW_MAX_TYPE];  ///< Swizzle mode table
 
+    // Max number of swizzle mode supported for equation
+    static const UINT_32    MaxSwModeType = 32;
+    // Max number of resource type (2D/3D) supported for equation
+    static const UINT_32    MaxRsrcType = 2;
+    // Max number of bpp (8bpp/16bpp/32bpp/64bpp/128bpp)
+    static const UINT_32    MaxElementBytesLog2  = 5;
+    // Almost all swizzle mode + resource type support equation
+    static const UINT_32    EquationTableSize = MaxElementBytesLog2 * MaxSwModeType * MaxRsrcType;
+    // Equation table
+    ADDR_EQUATION           m_equationTable[EquationTableSize];
+
+    // Number of equation entries in the table
+    UINT_32                 m_numEquations;
+    // Equation lookup table according to bpp and tile index
+    UINT_32                 m_equationLookupTable[MaxRsrcType][MaxSwModeType][MaxElementBytesLog2];
+
 private:
     // Disallow the copy constructor
     Lib(const Lib& a);
index 79ef3d8dc90fd0bb6bf4ea2fd1ee2413efd327f1..d148d2f56464bef5051bd3d3454171d83256ed5c 100644 (file)
@@ -119,7 +119,7 @@ VOID* Object::Alloc(
     size_t objSize      ///< [in] Size to allocate
     ) const
 {
-    return ClientAlloc(objSize, &m_client);
+    return ClientAlloc(objSize, &m_client);;
 }
 
 /**
@@ -216,16 +216,20 @@ VOID Object::DebugPrint(
 #if DEBUG
     if (m_client.callbacks.debugPrint != NULL)
     {
+        va_list ap;
+
+        va_start(ap, pDebugString);
+
         ADDR_DEBUGPRINT_INPUT debugPrintInput = {0};
 
         debugPrintInput.size         = sizeof(ADDR_DEBUGPRINT_INPUT);
         debugPrintInput.pDebugString = const_cast<CHAR*>(pDebugString);
         debugPrintInput.hClient      = m_client.handle;
-        va_start(debugPrintInput.ap, pDebugString);
+        va_copy(debugPrintInput.ap, ap);
 
         m_client.callbacks.debugPrint(&debugPrintInput);
 
-        va_end(debugPrintInput.ap);
+        va_end(ap);
     }
 #endif
 }
index 334b685c3b9b691da160253040a934a766a0b1cd..45d3809d9ff30ca55872c029aaebe32ff2488aa7 100644 (file)
@@ -55,6 +55,20 @@ union ADDR_BIT_SETTING
     UINT_64 value;
 };
 
+/**
+************************************************************************************************************************
+* @brief Swizzle pattern information
+************************************************************************************************************************
+*/
+struct ADDR_SW_PATINFO
+{
+    UINT_8  maxItemCount;
+    UINT_8  nibble01Idx;
+    UINT_16 nibble2Idx;
+    UINT_16 nibble3Idx;
+    UINT_8  nibble4Idx;
+};
+
 /**
 ************************************************************************************************************************
 *   InitBit
@@ -105,7322 +119,5998 @@ const UINT_64 S0  = InitBit(3,  0);
 const UINT_64 S1  = InitBit(3,  1);
 const UINT_64 S2  = InitBit(3,  2);
 
-// Color data swizzle pattern
-const UINT_64 SW_256_S[][8]=
+const ADDR_SW_PATINFO SW_256_S_PATINFO[] =
+{
+    {   1,    0,    0,    0,    0, } , // 1 pipes 1 bpe @ SW_256_S @ Navi1x
+    {   1,    1,    0,    0,    0, } , // 1 pipes 2 bpe @ SW_256_S @ Navi1x
+    {   1,    2,    0,    0,    0, } , // 1 pipes 4 bpe @ SW_256_S @ Navi1x
+    {   1,    3,    0,    0,    0, } , // 1 pipes 8 bpe @ SW_256_S @ Navi1x
+    {   1,    4,    0,    0,    0, } , // 1 pipes 16 bpe @ SW_256_S @ Navi1x
+    {   1,    0,    0,    0,    0, } , // 2 pipes 1 bpe @ SW_256_S @ Navi1x
+    {   1,    1,    0,    0,    0, } , // 2 pipes 2 bpe @ SW_256_S @ Navi1x
+    {   1,    2,    0,    0,    0, } , // 2 pipes 4 bpe @ SW_256_S @ Navi1x
+    {   1,    3,    0,    0,    0, } , // 2 pipes 8 bpe @ SW_256_S @ Navi1x
+    {   1,    4,    0,    0,    0, } , // 2 pipes 16 bpe @ SW_256_S @ Navi1x
+    {   1,    0,    0,    0,    0, } , // 4 pipes 1 bpe @ SW_256_S @ Navi1x
+    {   1,    1,    0,    0,    0, } , // 4 pipes 2 bpe @ SW_256_S @ Navi1x
+    {   1,    2,    0,    0,    0, } , // 4 pipes 4 bpe @ SW_256_S @ Navi1x
+    {   1,    3,    0,    0,    0, } , // 4 pipes 8 bpe @ SW_256_S @ Navi1x
+    {   1,    4,    0,    0,    0, } , // 4 pipes 16 bpe @ SW_256_S @ Navi1x
+    {   1,    0,    0,    0,    0, } , // 8 pipes 1 bpe @ SW_256_S @ Navi1x
+    {   1,    1,    0,    0,    0, } , // 8 pipes 2 bpe @ SW_256_S @ Navi1x
+    {   1,    2,    0,    0,    0, } , // 8 pipes 4 bpe @ SW_256_S @ Navi1x
+    {   1,    3,    0,    0,    0, } , // 8 pipes 8 bpe @ SW_256_S @ Navi1x
+    {   1,    4,    0,    0,    0, } , // 8 pipes 16 bpe @ SW_256_S @ Navi1x
+    {   1,    0,    0,    0,    0, } , // 16 pipes 1 bpe @ SW_256_S @ Navi1x
+    {   1,    1,    0,    0,    0, } , // 16 pipes 2 bpe @ SW_256_S @ Navi1x
+    {   1,    2,    0,    0,    0, } , // 16 pipes 4 bpe @ SW_256_S @ Navi1x
+    {   1,    3,    0,    0,    0, } , // 16 pipes 8 bpe @ SW_256_S @ Navi1x
+    {   1,    4,    0,    0,    0, } , // 16 pipes 16 bpe @ SW_256_S @ Navi1x
+    {   1,    0,    0,    0,    0, } , // 32 pipes 1 bpe @ SW_256_S @ Navi1x
+    {   1,    1,    0,    0,    0, } , // 32 pipes 2 bpe @ SW_256_S @ Navi1x
+    {   1,    2,    0,    0,    0, } , // 32 pipes 4 bpe @ SW_256_S @ Navi1x
+    {   1,    3,    0,    0,    0, } , // 32 pipes 8 bpe @ SW_256_S @ Navi1x
+    {   1,    4,    0,    0,    0, } , // 32 pipes 16 bpe @ SW_256_S @ Navi1x
+    {   1,    0,    0,    0,    0, } , // 64 pipes 1 bpe @ SW_256_S @ Navi1x
+    {   1,    1,    0,    0,    0, } , // 64 pipes 2 bpe @ SW_256_S @ Navi1x
+    {   1,    2,    0,    0,    0, } , // 64 pipes 4 bpe @ SW_256_S @ Navi1x
+    {   1,    3,    0,    0,    0, } , // 64 pipes 8 bpe @ SW_256_S @ Navi1x
+    {   1,    4,    0,    0,    0, } , // 64 pipes 16 bpe @ SW_256_S @ Navi1x
+};
+
+const ADDR_SW_PATINFO SW_256_D_PATINFO[] =
+{
+    {   1,    5,    0,    0,    0, } , // 1 pipes 1 bpe @ SW_256_D @ Navi1x
+    {   1,    1,    0,    0,    0, } , // 1 pipes 2 bpe @ SW_256_D @ Navi1x
+    {   1,    2,    0,    0,    0, } , // 1 pipes 4 bpe @ SW_256_D @ Navi1x
+    {   1,    6,    0,    0,    0, } , // 1 pipes 8 bpe @ SW_256_D @ Navi1x
+    {   1,    7,    0,    0,    0, } , // 1 pipes 16 bpe @ SW_256_D @ Navi1x
+    {   1,    5,    0,    0,    0, } , // 2 pipes 1 bpe @ SW_256_D @ Navi1x
+    {   1,    1,    0,    0,    0, } , // 2 pipes 2 bpe @ SW_256_D @ Navi1x
+    {   1,    2,    0,    0,    0, } , // 2 pipes 4 bpe @ SW_256_D @ Navi1x
+    {   1,    6,    0,    0,    0, } , // 2 pipes 8 bpe @ SW_256_D @ Navi1x
+    {   1,    7,    0,    0,    0, } , // 2 pipes 16 bpe @ SW_256_D @ Navi1x
+    {   1,    5,    0,    0,    0, } , // 4 pipes 1 bpe @ SW_256_D @ Navi1x
+    {   1,    1,    0,    0,    0, } , // 4 pipes 2 bpe @ SW_256_D @ Navi1x
+    {   1,    2,    0,    0,    0, } , // 4 pipes 4 bpe @ SW_256_D @ Navi1x
+    {   1,    6,    0,    0,    0, } , // 4 pipes 8 bpe @ SW_256_D @ Navi1x
+    {   1,    7,    0,    0,    0, } , // 4 pipes 16 bpe @ SW_256_D @ Navi1x
+    {   1,    5,    0,    0,    0, } , // 8 pipes 1 bpe @ SW_256_D @ Navi1x
+    {   1,    1,    0,    0,    0, } , // 8 pipes 2 bpe @ SW_256_D @ Navi1x
+    {   1,    2,    0,    0,    0, } , // 8 pipes 4 bpe @ SW_256_D @ Navi1x
+    {   1,    6,    0,    0,    0, } , // 8 pipes 8 bpe @ SW_256_D @ Navi1x
+    {   1,    7,    0,    0,    0, } , // 8 pipes 16 bpe @ SW_256_D @ Navi1x
+    {   1,    5,    0,    0,    0, } , // 16 pipes 1 bpe @ SW_256_D @ Navi1x
+    {   1,    1,    0,    0,    0, } , // 16 pipes 2 bpe @ SW_256_D @ Navi1x
+    {   1,    2,    0,    0,    0, } , // 16 pipes 4 bpe @ SW_256_D @ Navi1x
+    {   1,    6,    0,    0,    0, } , // 16 pipes 8 bpe @ SW_256_D @ Navi1x
+    {   1,    7,    0,    0,    0, } , // 16 pipes 16 bpe @ SW_256_D @ Navi1x
+    {   1,    5,    0,    0,    0, } , // 32 pipes 1 bpe @ SW_256_D @ Navi1x
+    {   1,    1,    0,    0,    0, } , // 32 pipes 2 bpe @ SW_256_D @ Navi1x
+    {   1,    2,    0,    0,    0, } , // 32 pipes 4 bpe @ SW_256_D @ Navi1x
+    {   1,    6,    0,    0,    0, } , // 32 pipes 8 bpe @ SW_256_D @ Navi1x
+    {   1,    7,    0,    0,    0, } , // 32 pipes 16 bpe @ SW_256_D @ Navi1x
+    {   1,    5,    0,    0,    0, } , // 64 pipes 1 bpe @ SW_256_D @ Navi1x
+    {   1,    1,    0,    0,    0, } , // 64 pipes 2 bpe @ SW_256_D @ Navi1x
+    {   1,    2,    0,    0,    0, } , // 64 pipes 4 bpe @ SW_256_D @ Navi1x
+    {   1,    6,    0,    0,    0, } , // 64 pipes 8 bpe @ SW_256_D @ Navi1x
+    {   1,    7,    0,    0,    0, } , // 64 pipes 16 bpe @ SW_256_D @ Navi1x
+};
+
+const ADDR_SW_PATINFO SW_4K_S_PATINFO[] =
+{
+    {   1,    0,    1,    0,    0, } , // 1 pipes 1 bpe @ SW_4K_S @ Navi1x
+    {   1,    1,    2,    0,    0, } , // 1 pipes 2 bpe @ SW_4K_S @ Navi1x
+    {   1,    2,    3,    0,    0, } , // 1 pipes 4 bpe @ SW_4K_S @ Navi1x
+    {   1,    3,    4,    0,    0, } , // 1 pipes 8 bpe @ SW_4K_S @ Navi1x
+    {   1,    4,    5,    0,    0, } , // 1 pipes 16 bpe @ SW_4K_S @ Navi1x
+    {   1,    0,    1,    0,    0, } , // 2 pipes 1 bpe @ SW_4K_S @ Navi1x
+    {   1,    1,    2,    0,    0, } , // 2 pipes 2 bpe @ SW_4K_S @ Navi1x
+    {   1,    2,    3,    0,    0, } , // 2 pipes 4 bpe @ SW_4K_S @ Navi1x
+    {   1,    3,    4,    0,    0, } , // 2 pipes 8 bpe @ SW_4K_S @ Navi1x
+    {   1,    4,    5,    0,    0, } , // 2 pipes 16 bpe @ SW_4K_S @ Navi1x
+    {   1,    0,    1,    0,    0, } , // 4 pipes 1 bpe @ SW_4K_S @ Navi1x
+    {   1,    1,    2,    0,    0, } , // 4 pipes 2 bpe @ SW_4K_S @ Navi1x
+    {   1,    2,    3,    0,    0, } , // 4 pipes 4 bpe @ SW_4K_S @ Navi1x
+    {   1,    3,    4,    0,    0, } , // 4 pipes 8 bpe @ SW_4K_S @ Navi1x
+    {   1,    4,    5,    0,    0, } , // 4 pipes 16 bpe @ SW_4K_S @ Navi1x
+    {   1,    0,    1,    0,    0, } , // 8 pipes 1 bpe @ SW_4K_S @ Navi1x
+    {   1,    1,    2,    0,    0, } , // 8 pipes 2 bpe @ SW_4K_S @ Navi1x
+    {   1,    2,    3,    0,    0, } , // 8 pipes 4 bpe @ SW_4K_S @ Navi1x
+    {   1,    3,    4,    0,    0, } , // 8 pipes 8 bpe @ SW_4K_S @ Navi1x
+    {   1,    4,    5,    0,    0, } , // 8 pipes 16 bpe @ SW_4K_S @ Navi1x
+    {   1,    0,    1,    0,    0, } , // 16 pipes 1 bpe @ SW_4K_S @ Navi1x
+    {   1,    1,    2,    0,    0, } , // 16 pipes 2 bpe @ SW_4K_S @ Navi1x
+    {   1,    2,    3,    0,    0, } , // 16 pipes 4 bpe @ SW_4K_S @ Navi1x
+    {   1,    3,    4,    0,    0, } , // 16 pipes 8 bpe @ SW_4K_S @ Navi1x
+    {   1,    4,    5,    0,    0, } , // 16 pipes 16 bpe @ SW_4K_S @ Navi1x
+    {   1,    0,    1,    0,    0, } , // 32 pipes 1 bpe @ SW_4K_S @ Navi1x
+    {   1,    1,    2,    0,    0, } , // 32 pipes 2 bpe @ SW_4K_S @ Navi1x
+    {   1,    2,    3,    0,    0, } , // 32 pipes 4 bpe @ SW_4K_S @ Navi1x
+    {   1,    3,    4,    0,    0, } , // 32 pipes 8 bpe @ SW_4K_S @ Navi1x
+    {   1,    4,    5,    0,    0, } , // 32 pipes 16 bpe @ SW_4K_S @ Navi1x
+    {   1,    0,    1,    0,    0, } , // 64 pipes 1 bpe @ SW_4K_S @ Navi1x
+    {   1,    1,    2,    0,    0, } , // 64 pipes 2 bpe @ SW_4K_S @ Navi1x
+    {   1,    2,    3,    0,    0, } , // 64 pipes 4 bpe @ SW_4K_S @ Navi1x
+    {   1,    3,    4,    0,    0, } , // 64 pipes 8 bpe @ SW_4K_S @ Navi1x
+    {   1,    4,    5,    0,    0, } , // 64 pipes 16 bpe @ SW_4K_S @ Navi1x
+};
+
+const ADDR_SW_PATINFO SW_4K_D_PATINFO[] =
+{
+    {   1,    5,    1,    0,    0, } , // 1 pipes 1 bpe @ SW_4K_D @ Navi1x
+    {   1,    1,    2,    0,    0, } , // 1 pipes 2 bpe @ SW_4K_D @ Navi1x
+    {   1,    2,    3,    0,    0, } , // 1 pipes 4 bpe @ SW_4K_D @ Navi1x
+    {   1,    6,    4,    0,    0, } , // 1 pipes 8 bpe @ SW_4K_D @ Navi1x
+    {   1,    7,    5,    0,    0, } , // 1 pipes 16 bpe @ SW_4K_D @ Navi1x
+    {   1,    5,    1,    0,    0, } , // 2 pipes 1 bpe @ SW_4K_D @ Navi1x
+    {   1,    1,    2,    0,    0, } , // 2 pipes 2 bpe @ SW_4K_D @ Navi1x
+    {   1,    2,    3,    0,    0, } , // 2 pipes 4 bpe @ SW_4K_D @ Navi1x
+    {   1,    6,    4,    0,    0, } , // 2 pipes 8 bpe @ SW_4K_D @ Navi1x
+    {   1,    7,    5,    0,    0, } , // 2 pipes 16 bpe @ SW_4K_D @ Navi1x
+    {   1,    5,    1,    0,    0, } , // 4 pipes 1 bpe @ SW_4K_D @ Navi1x
+    {   1,    1,    2,    0,    0, } , // 4 pipes 2 bpe @ SW_4K_D @ Navi1x
+    {   1,    2,    3,    0,    0, } , // 4 pipes 4 bpe @ SW_4K_D @ Navi1x
+    {   1,    6,    4,    0,    0, } , // 4 pipes 8 bpe @ SW_4K_D @ Navi1x
+    {   1,    7,    5,    0,    0, } , // 4 pipes 16 bpe @ SW_4K_D @ Navi1x
+    {   1,    5,    1,    0,    0, } , // 8 pipes 1 bpe @ SW_4K_D @ Navi1x
+    {   1,    1,    2,    0,    0, } , // 8 pipes 2 bpe @ SW_4K_D @ Navi1x
+    {   1,    2,    3,    0,    0, } , // 8 pipes 4 bpe @ SW_4K_D @ Navi1x
+    {   1,    6,    4,    0,    0, } , // 8 pipes 8 bpe @ SW_4K_D @ Navi1x
+    {   1,    7,    5,    0,    0, } , // 8 pipes 16 bpe @ SW_4K_D @ Navi1x
+    {   1,    5,    1,    0,    0, } , // 16 pipes 1 bpe @ SW_4K_D @ Navi1x
+    {   1,    1,    2,    0,    0, } , // 16 pipes 2 bpe @ SW_4K_D @ Navi1x
+    {   1,    2,    3,    0,    0, } , // 16 pipes 4 bpe @ SW_4K_D @ Navi1x
+    {   1,    6,    4,    0,    0, } , // 16 pipes 8 bpe @ SW_4K_D @ Navi1x
+    {   1,    7,    5,    0,    0, } , // 16 pipes 16 bpe @ SW_4K_D @ Navi1x
+    {   1,    5,    1,    0,    0, } , // 32 pipes 1 bpe @ SW_4K_D @ Navi1x
+    {   1,    1,    2,    0,    0, } , // 32 pipes 2 bpe @ SW_4K_D @ Navi1x
+    {   1,    2,    3,    0,    0, } , // 32 pipes 4 bpe @ SW_4K_D @ Navi1x
+    {   1,    6,    4,    0,    0, } , // 32 pipes 8 bpe @ SW_4K_D @ Navi1x
+    {   1,    7,    5,    0,    0, } , // 32 pipes 16 bpe @ SW_4K_D @ Navi1x
+    {   1,    5,    1,    0,    0, } , // 64 pipes 1 bpe @ SW_4K_D @ Navi1x
+    {   1,    1,    2,    0,    0, } , // 64 pipes 2 bpe @ SW_4K_D @ Navi1x
+    {   1,    2,    3,    0,    0, } , // 64 pipes 4 bpe @ SW_4K_D @ Navi1x
+    {   1,    6,    4,    0,    0, } , // 64 pipes 8 bpe @ SW_4K_D @ Navi1x
+    {   1,    7,    5,    0,    0, } , // 64 pipes 16 bpe @ SW_4K_D @ Navi1x
+};
+
+const ADDR_SW_PATINFO SW_4K_S_X_PATINFO[] =
+{
+    {   1,    0,    1,    0,    0, } , // 1 pipes 1 bpe @ SW_4K_S_X @ Navi1x
+    {   1,    1,    2,    0,    0, } , // 1 pipes 2 bpe @ SW_4K_S_X @ Navi1x
+    {   1,    2,    3,    0,    0, } , // 1 pipes 4 bpe @ SW_4K_S_X @ Navi1x
+    {   1,    3,    4,    0,    0, } , // 1 pipes 8 bpe @ SW_4K_S_X @ Navi1x
+    {   1,    4,    5,    0,    0, } , // 1 pipes 16 bpe @ SW_4K_S_X @ Navi1x
+    {   3,    0,    6,    0,    0, } , // 2 pipes 1 bpe @ SW_4K_S_X @ Navi1x
+    {   3,    1,    7,    0,    0, } , // 2 pipes 2 bpe @ SW_4K_S_X @ Navi1x
+    {   3,    2,    8,    0,    0, } , // 2 pipes 4 bpe @ SW_4K_S_X @ Navi1x
+    {   3,    3,    9,    0,    0, } , // 2 pipes 8 bpe @ SW_4K_S_X @ Navi1x
+    {   3,    4,   10,    0,    0, } , // 2 pipes 16 bpe @ SW_4K_S_X @ Navi1x
+    {   3,    0,   11,    0,    0, } , // 4 pipes 1 bpe @ SW_4K_S_X @ Navi1x
+    {   3,    1,   12,    0,    0, } , // 4 pipes 2 bpe @ SW_4K_S_X @ Navi1x
+    {   3,    2,   13,    0,    0, } , // 4 pipes 4 bpe @ SW_4K_S_X @ Navi1x
+    {   3,    3,   14,    0,    0, } , // 4 pipes 8 bpe @ SW_4K_S_X @ Navi1x
+    {   3,    4,   15,    0,    0, } , // 4 pipes 16 bpe @ SW_4K_S_X @ Navi1x
+    {   3,    0,   16,    0,    0, } , // 8 pipes 1 bpe @ SW_4K_S_X @ Navi1x
+    {   3,    1,   17,    0,    0, } , // 8 pipes 2 bpe @ SW_4K_S_X @ Navi1x
+    {   3,    2,   18,    0,    0, } , // 8 pipes 4 bpe @ SW_4K_S_X @ Navi1x
+    {   3,    3,   19,    0,    0, } , // 8 pipes 8 bpe @ SW_4K_S_X @ Navi1x
+    {   3,    4,   20,    0,    0, } , // 8 pipes 16 bpe @ SW_4K_S_X @ Navi1x
+    {   3,    0,   21,    0,    0, } , // 16 pipes 1 bpe @ SW_4K_S_X @ Navi1x
+    {   3,    1,   22,    0,    0, } , // 16 pipes 2 bpe @ SW_4K_S_X @ Navi1x
+    {   3,    2,   23,    0,    0, } , // 16 pipes 4 bpe @ SW_4K_S_X @ Navi1x
+    {   3,    3,   24,    0,    0, } , // 16 pipes 8 bpe @ SW_4K_S_X @ Navi1x
+    {   3,    4,   25,    0,    0, } , // 16 pipes 16 bpe @ SW_4K_S_X @ Navi1x
+    {   3,    0,   21,    0,    0, } , // 32 pipes 1 bpe @ SW_4K_S_X @ Navi1x
+    {   3,    1,   22,    0,    0, } , // 32 pipes 2 bpe @ SW_4K_S_X @ Navi1x
+    {   3,    2,   23,    0,    0, } , // 32 pipes 4 bpe @ SW_4K_S_X @ Navi1x
+    {   3,    3,   24,    0,    0, } , // 32 pipes 8 bpe @ SW_4K_S_X @ Navi1x
+    {   3,    4,   25,    0,    0, } , // 32 pipes 16 bpe @ SW_4K_S_X @ Navi1x
+    {   3,    0,   21,    0,    0, } , // 64 pipes 1 bpe @ SW_4K_S_X @ Navi1x
+    {   3,    1,   22,    0,    0, } , // 64 pipes 2 bpe @ SW_4K_S_X @ Navi1x
+    {   3,    2,   23,    0,    0, } , // 64 pipes 4 bpe @ SW_4K_S_X @ Navi1x
+    {   3,    3,   24,    0,    0, } , // 64 pipes 8 bpe @ SW_4K_S_X @ Navi1x
+    {   3,    4,   25,    0,    0, } , // 64 pipes 16 bpe @ SW_4K_S_X @ Navi1x
+};
+
+const ADDR_SW_PATINFO SW_4K_D_X_PATINFO[] =
+{
+    {   1,    5,    1,    0,    0, } , // 1 pipes 1 bpe @ SW_4K_D_X @ Navi1x
+    {   1,    1,    2,    0,    0, } , // 1 pipes 2 bpe @ SW_4K_D_X @ Navi1x
+    {   1,    2,    3,    0,    0, } , // 1 pipes 4 bpe @ SW_4K_D_X @ Navi1x
+    {   1,    6,    4,    0,    0, } , // 1 pipes 8 bpe @ SW_4K_D_X @ Navi1x
+    {   1,    7,    5,    0,    0, } , // 1 pipes 16 bpe @ SW_4K_D_X @ Navi1x
+    {   3,    5,    6,    0,    0, } , // 2 pipes 1 bpe @ SW_4K_D_X @ Navi1x
+    {   3,    1,    7,    0,    0, } , // 2 pipes 2 bpe @ SW_4K_D_X @ Navi1x
+    {   3,    2,    8,    0,    0, } , // 2 pipes 4 bpe @ SW_4K_D_X @ Navi1x
+    {   3,    6,    9,    0,    0, } , // 2 pipes 8 bpe @ SW_4K_D_X @ Navi1x
+    {   3,    7,   10,    0,    0, } , // 2 pipes 16 bpe @ SW_4K_D_X @ Navi1x
+    {   3,    5,   11,    0,    0, } , // 4 pipes 1 bpe @ SW_4K_D_X @ Navi1x
+    {   3,    1,   12,    0,    0, } , // 4 pipes 2 bpe @ SW_4K_D_X @ Navi1x
+    {   3,    2,   13,    0,    0, } , // 4 pipes 4 bpe @ SW_4K_D_X @ Navi1x
+    {   3,    6,   14,    0,    0, } , // 4 pipes 8 bpe @ SW_4K_D_X @ Navi1x
+    {   3,    7,   15,    0,    0, } , // 4 pipes 16 bpe @ SW_4K_D_X @ Navi1x
+    {   3,    5,   16,    0,    0, } , // 8 pipes 1 bpe @ SW_4K_D_X @ Navi1x
+    {   3,    1,   17,    0,    0, } , // 8 pipes 2 bpe @ SW_4K_D_X @ Navi1x
+    {   3,    2,   18,    0,    0, } , // 8 pipes 4 bpe @ SW_4K_D_X @ Navi1x
+    {   3,    6,   19,    0,    0, } , // 8 pipes 8 bpe @ SW_4K_D_X @ Navi1x
+    {   3,    7,   20,    0,    0, } , // 8 pipes 16 bpe @ SW_4K_D_X @ Navi1x
+    {   3,    5,   21,    0,    0, } , // 16 pipes 1 bpe @ SW_4K_D_X @ Navi1x
+    {   3,    1,   22,    0,    0, } , // 16 pipes 2 bpe @ SW_4K_D_X @ Navi1x
+    {   3,    2,   23,    0,    0, } , // 16 pipes 4 bpe @ SW_4K_D_X @ Navi1x
+    {   3,    6,   24,    0,    0, } , // 16 pipes 8 bpe @ SW_4K_D_X @ Navi1x
+    {   3,    7,   25,    0,    0, } , // 16 pipes 16 bpe @ SW_4K_D_X @ Navi1x
+    {   3,    5,   21,    0,    0, } , // 32 pipes 1 bpe @ SW_4K_D_X @ Navi1x
+    {   3,    1,   22,    0,    0, } , // 32 pipes 2 bpe @ SW_4K_D_X @ Navi1x
+    {   3,    2,   23,    0,    0, } , // 32 pipes 4 bpe @ SW_4K_D_X @ Navi1x
+    {   3,    6,   24,    0,    0, } , // 32 pipes 8 bpe @ SW_4K_D_X @ Navi1x
+    {   3,    7,   25,    0,    0, } , // 32 pipes 16 bpe @ SW_4K_D_X @ Navi1x
+    {   3,    5,   21,    0,    0, } , // 64 pipes 1 bpe @ SW_4K_D_X @ Navi1x
+    {   3,    1,   22,    0,    0, } , // 64 pipes 2 bpe @ SW_4K_D_X @ Navi1x
+    {   3,    2,   23,    0,    0, } , // 64 pipes 4 bpe @ SW_4K_D_X @ Navi1x
+    {   3,    6,   24,    0,    0, } , // 64 pipes 8 bpe @ SW_4K_D_X @ Navi1x
+    {   3,    7,   25,    0,    0, } , // 64 pipes 16 bpe @ SW_4K_D_X @ Navi1x
+};
+
+const ADDR_SW_PATINFO SW_4K_S3_PATINFO[] =
+{
+    {   1,   29,  131,    0,    0, } , // 1 pipes 1 bpe @ SW_4K_S3 @ Navi1x
+    {   1,   30,  132,    0,    0, } , // 1 pipes 2 bpe @ SW_4K_S3 @ Navi1x
+    {   1,   31,  133,    0,    0, } , // 1 pipes 4 bpe @ SW_4K_S3 @ Navi1x
+    {   1,   32,  134,    0,    0, } , // 1 pipes 8 bpe @ SW_4K_S3 @ Navi1x
+    {   1,   33,  135,    0,    0, } , // 1 pipes 16 bpe @ SW_4K_S3 @ Navi1x
+    {   1,   29,  131,    0,    0, } , // 2 pipes 1 bpe @ SW_4K_S3 @ Navi1x
+    {   1,   30,  132,    0,    0, } , // 2 pipes 2 bpe @ SW_4K_S3 @ Navi1x
+    {   1,   31,  133,    0,    0, } , // 2 pipes 4 bpe @ SW_4K_S3 @ Navi1x
+    {   1,   32,  134,    0,    0, } , // 2 pipes 8 bpe @ SW_4K_S3 @ Navi1x
+    {   1,   33,  135,    0,    0, } , // 2 pipes 16 bpe @ SW_4K_S3 @ Navi1x
+    {   1,   29,  131,    0,    0, } , // 4 pipes 1 bpe @ SW_4K_S3 @ Navi1x
+    {   1,   30,  132,    0,    0, } , // 4 pipes 2 bpe @ SW_4K_S3 @ Navi1x
+    {   1,   31,  133,    0,    0, } , // 4 pipes 4 bpe @ SW_4K_S3 @ Navi1x
+    {   1,   32,  134,    0,    0, } , // 4 pipes 8 bpe @ SW_4K_S3 @ Navi1x
+    {   1,   33,  135,    0,    0, } , // 4 pipes 16 bpe @ SW_4K_S3 @ Navi1x
+    {   1,   29,  131,    0,    0, } , // 8 pipes 1 bpe @ SW_4K_S3 @ Navi1x
+    {   1,   30,  132,    0,    0, } , // 8 pipes 2 bpe @ SW_4K_S3 @ Navi1x
+    {   1,   31,  133,    0,    0, } , // 8 pipes 4 bpe @ SW_4K_S3 @ Navi1x
+    {   1,   32,  134,    0,    0, } , // 8 pipes 8 bpe @ SW_4K_S3 @ Navi1x
+    {   1,   33,  135,    0,    0, } , // 8 pipes 16 bpe @ SW_4K_S3 @ Navi1x
+    {   1,   29,  131,    0,    0, } , // 16 pipes 1 bpe @ SW_4K_S3 @ Navi1x
+    {   1,   30,  132,    0,    0, } , // 16 pipes 2 bpe @ SW_4K_S3 @ Navi1x
+    {   1,   31,  133,    0,    0, } , // 16 pipes 4 bpe @ SW_4K_S3 @ Navi1x
+    {   1,   32,  134,    0,    0, } , // 16 pipes 8 bpe @ SW_4K_S3 @ Navi1x
+    {   1,   33,  135,    0,    0, } , // 16 pipes 16 bpe @ SW_4K_S3 @ Navi1x
+    {   1,   29,  131,    0,    0, } , // 32 pipes 1 bpe @ SW_4K_S3 @ Navi1x
+    {   1,   30,  132,    0,    0, } , // 32 pipes 2 bpe @ SW_4K_S3 @ Navi1x
+    {   1,   31,  133,    0,    0, } , // 32 pipes 4 bpe @ SW_4K_S3 @ Navi1x
+    {   1,   32,  134,    0,    0, } , // 32 pipes 8 bpe @ SW_4K_S3 @ Navi1x
+    {   1,   33,  135,    0,    0, } , // 32 pipes 16 bpe @ SW_4K_S3 @ Navi1x
+    {   1,   29,  131,    0,    0, } , // 64 pipes 1 bpe @ SW_4K_S3 @ Navi1x
+    {   1,   30,  132,    0,    0, } , // 64 pipes 2 bpe @ SW_4K_S3 @ Navi1x
+    {   1,   31,  133,    0,    0, } , // 64 pipes 4 bpe @ SW_4K_S3 @ Navi1x
+    {   1,   32,  134,    0,    0, } , // 64 pipes 8 bpe @ SW_4K_S3 @ Navi1x
+    {   1,   33,  135,    0,    0, } , // 64 pipes 16 bpe @ SW_4K_S3 @ Navi1x
+};
+
+const ADDR_SW_PATINFO SW_4K_S3_X_PATINFO[] =
+{
+    {   1,   29,  131,    0,    0, } , // 1 pipes 1 bpe @ SW_4K_S3_X @ Navi1x
+    {   1,   30,  132,    0,    0, } , // 1 pipes 2 bpe @ SW_4K_S3_X @ Navi1x
+    {   1,   31,  133,    0,    0, } , // 1 pipes 4 bpe @ SW_4K_S3_X @ Navi1x
+    {   1,   32,  134,    0,    0, } , // 1 pipes 8 bpe @ SW_4K_S3_X @ Navi1x
+    {   1,   33,  135,    0,    0, } , // 1 pipes 16 bpe @ SW_4K_S3_X @ Navi1x
+    {   3,   29,  136,    0,    0, } , // 2 pipes 1 bpe @ SW_4K_S3_X @ Navi1x
+    {   3,   30,  137,    0,    0, } , // 2 pipes 2 bpe @ SW_4K_S3_X @ Navi1x
+    {   3,   31,  138,    0,    0, } , // 2 pipes 4 bpe @ SW_4K_S3_X @ Navi1x
+    {   3,   32,  139,    0,    0, } , // 2 pipes 8 bpe @ SW_4K_S3_X @ Navi1x
+    {   3,   33,  140,    0,    0, } , // 2 pipes 16 bpe @ SW_4K_S3_X @ Navi1x
+    {   3,   29,  141,    0,    0, } , // 4 pipes 1 bpe @ SW_4K_S3_X @ Navi1x
+    {   3,   30,  142,    0,    0, } , // 4 pipes 2 bpe @ SW_4K_S3_X @ Navi1x
+    {   3,   31,  143,    0,    0, } , // 4 pipes 4 bpe @ SW_4K_S3_X @ Navi1x
+    {   3,   32,  144,    0,    0, } , // 4 pipes 8 bpe @ SW_4K_S3_X @ Navi1x
+    {   3,   33,  145,    0,    0, } , // 4 pipes 16 bpe @ SW_4K_S3_X @ Navi1x
+    {   3,   29,  146,    0,    0, } , // 8 pipes 1 bpe @ SW_4K_S3_X @ Navi1x
+    {   3,   30,  147,    0,    0, } , // 8 pipes 2 bpe @ SW_4K_S3_X @ Navi1x
+    {   3,   31,  148,    0,    0, } , // 8 pipes 4 bpe @ SW_4K_S3_X @ Navi1x
+    {   3,   32,  149,    0,    0, } , // 8 pipes 8 bpe @ SW_4K_S3_X @ Navi1x
+    {   3,   33,  150,    0,    0, } , // 8 pipes 16 bpe @ SW_4K_S3_X @ Navi1x
+    {   3,   29,  151,    0,    0, } , // 16 pipes 1 bpe @ SW_4K_S3_X @ Navi1x
+    {   3,   30,  152,    0,    0, } , // 16 pipes 2 bpe @ SW_4K_S3_X @ Navi1x
+    {   3,   31,  153,    0,    0, } , // 16 pipes 4 bpe @ SW_4K_S3_X @ Navi1x
+    {   3,   32,  154,    0,    0, } , // 16 pipes 8 bpe @ SW_4K_S3_X @ Navi1x
+    {   3,   33,  155,    0,    0, } , // 16 pipes 16 bpe @ SW_4K_S3_X @ Navi1x
+    {   3,   29,  151,    0,    0, } , // 32 pipes 1 bpe @ SW_4K_S3_X @ Navi1x
+    {   3,   30,  152,    0,    0, } , // 32 pipes 2 bpe @ SW_4K_S3_X @ Navi1x
+    {   3,   31,  153,    0,    0, } , // 32 pipes 4 bpe @ SW_4K_S3_X @ Navi1x
+    {   3,   32,  154,    0,    0, } , // 32 pipes 8 bpe @ SW_4K_S3_X @ Navi1x
+    {   3,   33,  155,    0,    0, } , // 32 pipes 16 bpe @ SW_4K_S3_X @ Navi1x
+    {   3,   29,  151,    0,    0, } , // 64 pipes 1 bpe @ SW_4K_S3_X @ Navi1x
+    {   3,   30,  152,    0,    0, } , // 64 pipes 2 bpe @ SW_4K_S3_X @ Navi1x
+    {   3,   31,  153,    0,    0, } , // 64 pipes 4 bpe @ SW_4K_S3_X @ Navi1x
+    {   3,   32,  154,    0,    0, } , // 64 pipes 8 bpe @ SW_4K_S3_X @ Navi1x
+    {   3,   33,  155,    0,    0, } , // 64 pipes 16 bpe @ SW_4K_S3_X @ Navi1x
+};
+
+const ADDR_SW_PATINFO SW_64K_S_PATINFO[] =
+{
+    {   1,    0,    1,    1,    0, } , // 1 pipes 1 bpe @ SW_64K_S @ Navi1x
+    {   1,    1,    2,    2,    0, } , // 1 pipes 2 bpe @ SW_64K_S @ Navi1x
+    {   1,    2,    3,    3,    0, } , // 1 pipes 4 bpe @ SW_64K_S @ Navi1x
+    {   1,    3,    4,    4,    0, } , // 1 pipes 8 bpe @ SW_64K_S @ Navi1x
+    {   1,    4,    5,    5,    0, } , // 1 pipes 16 bpe @ SW_64K_S @ Navi1x
+    {   1,    0,    1,    1,    0, } , // 2 pipes 1 bpe @ SW_64K_S @ Navi1x
+    {   1,    1,    2,    2,    0, } , // 2 pipes 2 bpe @ SW_64K_S @ Navi1x
+    {   1,    2,    3,    3,    0, } , // 2 pipes 4 bpe @ SW_64K_S @ Navi1x
+    {   1,    3,    4,    4,    0, } , // 2 pipes 8 bpe @ SW_64K_S @ Navi1x
+    {   1,    4,    5,    5,    0, } , // 2 pipes 16 bpe @ SW_64K_S @ Navi1x
+    {   1,    0,    1,    1,    0, } , // 4 pipes 1 bpe @ SW_64K_S @ Navi1x
+    {   1,    1,    2,    2,    0, } , // 4 pipes 2 bpe @ SW_64K_S @ Navi1x
+    {   1,    2,    3,    3,    0, } , // 4 pipes 4 bpe @ SW_64K_S @ Navi1x
+    {   1,    3,    4,    4,    0, } , // 4 pipes 8 bpe @ SW_64K_S @ Navi1x
+    {   1,    4,    5,    5,    0, } , // 4 pipes 16 bpe @ SW_64K_S @ Navi1x
+    {   1,    0,    1,    1,    0, } , // 8 pipes 1 bpe @ SW_64K_S @ Navi1x
+    {   1,    1,    2,    2,    0, } , // 8 pipes 2 bpe @ SW_64K_S @ Navi1x
+    {   1,    2,    3,    3,    0, } , // 8 pipes 4 bpe @ SW_64K_S @ Navi1x
+    {   1,    3,    4,    4,    0, } , // 8 pipes 8 bpe @ SW_64K_S @ Navi1x
+    {   1,    4,    5,    5,    0, } , // 8 pipes 16 bpe @ SW_64K_S @ Navi1x
+    {   1,    0,    1,    1,    0, } , // 16 pipes 1 bpe @ SW_64K_S @ Navi1x
+    {   1,    1,    2,    2,    0, } , // 16 pipes 2 bpe @ SW_64K_S @ Navi1x
+    {   1,    2,    3,    3,    0, } , // 16 pipes 4 bpe @ SW_64K_S @ Navi1x
+    {   1,    3,    4,    4,    0, } , // 16 pipes 8 bpe @ SW_64K_S @ Navi1x
+    {   1,    4,    5,    5,    0, } , // 16 pipes 16 bpe @ SW_64K_S @ Navi1x
+    {   1,    0,    1,    1,    0, } , // 32 pipes 1 bpe @ SW_64K_S @ Navi1x
+    {   1,    1,    2,    2,    0, } , // 32 pipes 2 bpe @ SW_64K_S @ Navi1x
+    {   1,    2,    3,    3,    0, } , // 32 pipes 4 bpe @ SW_64K_S @ Navi1x
+    {   1,    3,    4,    4,    0, } , // 32 pipes 8 bpe @ SW_64K_S @ Navi1x
+    {   1,    4,    5,    5,    0, } , // 32 pipes 16 bpe @ SW_64K_S @ Navi1x
+    {   1,    0,    1,    1,    0, } , // 64 pipes 1 bpe @ SW_64K_S @ Navi1x
+    {   1,    1,    2,    2,    0, } , // 64 pipes 2 bpe @ SW_64K_S @ Navi1x
+    {   1,    2,    3,    3,    0, } , // 64 pipes 4 bpe @ SW_64K_S @ Navi1x
+    {   1,    3,    4,    4,    0, } , // 64 pipes 8 bpe @ SW_64K_S @ Navi1x
+    {   1,    4,    5,    5,    0, } , // 64 pipes 16 bpe @ SW_64K_S @ Navi1x
+};
+
+const ADDR_SW_PATINFO SW_64K_D_PATINFO[] =
+{
+    {   1,    5,    1,    1,    0, } , // 1 pipes 1 bpe @ SW_64K_D @ Navi1x
+    {   1,    1,    2,    2,    0, } , // 1 pipes 2 bpe @ SW_64K_D @ Navi1x
+    {   1,    2,    3,    3,    0, } , // 1 pipes 4 bpe @ SW_64K_D @ Navi1x
+    {   1,    6,    4,    4,    0, } , // 1 pipes 8 bpe @ SW_64K_D @ Navi1x
+    {   1,    7,    5,    5,    0, } , // 1 pipes 16 bpe @ SW_64K_D @ Navi1x
+    {   1,    5,    1,    1,    0, } , // 2 pipes 1 bpe @ SW_64K_D @ Navi1x
+    {   1,    1,    2,    2,    0, } , // 2 pipes 2 bpe @ SW_64K_D @ Navi1x
+    {   1,    2,    3,    3,    0, } , // 2 pipes 4 bpe @ SW_64K_D @ Navi1x
+    {   1,    6,    4,    4,    0, } , // 2 pipes 8 bpe @ SW_64K_D @ Navi1x
+    {   1,    7,    5,    5,    0, } , // 2 pipes 16 bpe @ SW_64K_D @ Navi1x
+    {   1,    5,    1,    1,    0, } , // 4 pipes 1 bpe @ SW_64K_D @ Navi1x
+    {   1,    1,    2,    2,    0, } , // 4 pipes 2 bpe @ SW_64K_D @ Navi1x
+    {   1,    2,    3,    3,    0, } , // 4 pipes 4 bpe @ SW_64K_D @ Navi1x
+    {   1,    6,    4,    4,    0, } , // 4 pipes 8 bpe @ SW_64K_D @ Navi1x
+    {   1,    7,    5,    5,    0, } , // 4 pipes 16 bpe @ SW_64K_D @ Navi1x
+    {   1,    5,    1,    1,    0, } , // 8 pipes 1 bpe @ SW_64K_D @ Navi1x
+    {   1,    1,    2,    2,    0, } , // 8 pipes 2 bpe @ SW_64K_D @ Navi1x
+    {   1,    2,    3,    3,    0, } , // 8 pipes 4 bpe @ SW_64K_D @ Navi1x
+    {   1,    6,    4,    4,    0, } , // 8 pipes 8 bpe @ SW_64K_D @ Navi1x
+    {   1,    7,    5,    5,    0, } , // 8 pipes 16 bpe @ SW_64K_D @ Navi1x
+    {   1,    5,    1,    1,    0, } , // 16 pipes 1 bpe @ SW_64K_D @ Navi1x
+    {   1,    1,    2,    2,    0, } , // 16 pipes 2 bpe @ SW_64K_D @ Navi1x
+    {   1,    2,    3,    3,    0, } , // 16 pipes 4 bpe @ SW_64K_D @ Navi1x
+    {   1,    6,    4,    4,    0, } , // 16 pipes 8 bpe @ SW_64K_D @ Navi1x
+    {   1,    7,    5,    5,    0, } , // 16 pipes 16 bpe @ SW_64K_D @ Navi1x
+    {   1,    5,    1,    1,    0, } , // 32 pipes 1 bpe @ SW_64K_D @ Navi1x
+    {   1,    1,    2,    2,    0, } , // 32 pipes 2 bpe @ SW_64K_D @ Navi1x
+    {   1,    2,    3,    3,    0, } , // 32 pipes 4 bpe @ SW_64K_D @ Navi1x
+    {   1,    6,    4,    4,    0, } , // 32 pipes 8 bpe @ SW_64K_D @ Navi1x
+    {   1,    7,    5,    5,    0, } , // 32 pipes 16 bpe @ SW_64K_D @ Navi1x
+    {   1,    5,    1,    1,    0, } , // 64 pipes 1 bpe @ SW_64K_D @ Navi1x
+    {   1,    1,    2,    2,    0, } , // 64 pipes 2 bpe @ SW_64K_D @ Navi1x
+    {   1,    2,    3,    3,    0, } , // 64 pipes 4 bpe @ SW_64K_D @ Navi1x
+    {   1,    6,    4,    4,    0, } , // 64 pipes 8 bpe @ SW_64K_D @ Navi1x
+    {   1,    7,    5,    5,    0, } , // 64 pipes 16 bpe @ SW_64K_D @ Navi1x
+};
+
+const ADDR_SW_PATINFO SW_64K_S_T_PATINFO[] =
+{
+    {   1,    0,    1,    1,    0, } , // 1 pipes 1 bpe @ SW_64K_S_T @ Navi1x
+    {   1,    1,    2,    2,    0, } , // 1 pipes 2 bpe @ SW_64K_S_T @ Navi1x
+    {   1,    2,    3,    3,    0, } , // 1 pipes 4 bpe @ SW_64K_S_T @ Navi1x
+    {   1,    3,    4,    4,    0, } , // 1 pipes 8 bpe @ SW_64K_S_T @ Navi1x
+    {   1,    4,    5,    5,    0, } , // 1 pipes 16 bpe @ SW_64K_S_T @ Navi1x
+    {   2,    0,   36,    1,    0, } , // 2 pipes 1 bpe @ SW_64K_S_T @ Navi1x
+    {   2,    1,   37,    2,    0, } , // 2 pipes 2 bpe @ SW_64K_S_T @ Navi1x
+    {   2,    2,   38,    3,    0, } , // 2 pipes 4 bpe @ SW_64K_S_T @ Navi1x
+    {   2,    3,   39,    4,    0, } , // 2 pipes 8 bpe @ SW_64K_S_T @ Navi1x
+    {   2,    4,   40,    5,    0, } , // 2 pipes 16 bpe @ SW_64K_S_T @ Navi1x
+    {   2,    0,   41,    1,    0, } , // 4 pipes 1 bpe @ SW_64K_S_T @ Navi1x
+    {   2,    1,   42,    2,    0, } , // 4 pipes 2 bpe @ SW_64K_S_T @ Navi1x
+    {   2,    2,   43,    3,    0, } , // 4 pipes 4 bpe @ SW_64K_S_T @ Navi1x
+    {   2,    3,   44,    4,    0, } , // 4 pipes 8 bpe @ SW_64K_S_T @ Navi1x
+    {   2,    4,   45,    5,    0, } , // 4 pipes 16 bpe @ SW_64K_S_T @ Navi1x
+    {   2,    0,   46,    1,    0, } , // 8 pipes 1 bpe @ SW_64K_S_T @ Navi1x
+    {   2,    1,   47,    2,    0, } , // 8 pipes 2 bpe @ SW_64K_S_T @ Navi1x
+    {   2,    2,   48,    3,    0, } , // 8 pipes 4 bpe @ SW_64K_S_T @ Navi1x
+    {   2,    3,   49,    4,    0, } , // 8 pipes 8 bpe @ SW_64K_S_T @ Navi1x
+    {   2,    4,   50,    5,    0, } , // 8 pipes 16 bpe @ SW_64K_S_T @ Navi1x
+    {   2,    0,   51,    1,    0, } , // 16 pipes 1 bpe @ SW_64K_S_T @ Navi1x
+    {   2,    1,   52,    2,    0, } , // 16 pipes 2 bpe @ SW_64K_S_T @ Navi1x
+    {   2,    2,   53,    3,    0, } , // 16 pipes 4 bpe @ SW_64K_S_T @ Navi1x
+    {   2,    3,   54,    4,    0, } , // 16 pipes 8 bpe @ SW_64K_S_T @ Navi1x
+    {   2,    4,   55,    5,    0, } , // 16 pipes 16 bpe @ SW_64K_S_T @ Navi1x
+    {   2,    0,   56,   16,    0, } , // 32 pipes 1 bpe @ SW_64K_S_T @ Navi1x
+    {   2,    1,   57,   17,    0, } , // 32 pipes 2 bpe @ SW_64K_S_T @ Navi1x
+    {   2,    2,   58,   18,    0, } , // 32 pipes 4 bpe @ SW_64K_S_T @ Navi1x
+    {   2,    3,   59,   19,    0, } , // 32 pipes 8 bpe @ SW_64K_S_T @ Navi1x
+    {   2,    4,   60,   20,    0, } , // 32 pipes 16 bpe @ SW_64K_S_T @ Navi1x
+    {   2,    0,    1,   21,    0, } , // 64 pipes 1 bpe @ SW_64K_S_T @ Navi1x
+    {   2,    1,    2,   22,    0, } , // 64 pipes 2 bpe @ SW_64K_S_T @ Navi1x
+    {   2,    2,    3,   23,    0, } , // 64 pipes 4 bpe @ SW_64K_S_T @ Navi1x
+    {   2,    3,    4,   24,    0, } , // 64 pipes 8 bpe @ SW_64K_S_T @ Navi1x
+    {   2,    4,    5,   25,    0, } , // 64 pipes 16 bpe @ SW_64K_S_T @ Navi1x
+};
+
+const ADDR_SW_PATINFO SW_64K_D_T_PATINFO[] =
+{
+    {   1,    5,    1,    1,    0, } , // 1 pipes 1 bpe @ SW_64K_D_T @ Navi1x
+    {   1,    1,    2,    2,    0, } , // 1 pipes 2 bpe @ SW_64K_D_T @ Navi1x
+    {   1,    2,    3,    3,    0, } , // 1 pipes 4 bpe @ SW_64K_D_T @ Navi1x
+    {   1,    6,    4,    4,    0, } , // 1 pipes 8 bpe @ SW_64K_D_T @ Navi1x
+    {   1,    7,    5,    5,    0, } , // 1 pipes 16 bpe @ SW_64K_D_T @ Navi1x
+    {   2,    5,   36,    1,    0, } , // 2 pipes 1 bpe @ SW_64K_D_T @ Navi1x
+    {   2,    1,   37,    2,    0, } , // 2 pipes 2 bpe @ SW_64K_D_T @ Navi1x
+    {   2,    2,   38,    3,    0, } , // 2 pipes 4 bpe @ SW_64K_D_T @ Navi1x
+    {   2,    6,   39,    4,    0, } , // 2 pipes 8 bpe @ SW_64K_D_T @ Navi1x
+    {   2,    7,   40,    5,    0, } , // 2 pipes 16 bpe @ SW_64K_D_T @ Navi1x
+    {   2,    5,   41,    1,    0, } , // 4 pipes 1 bpe @ SW_64K_D_T @ Navi1x
+    {   2,    1,   42,    2,    0, } , // 4 pipes 2 bpe @ SW_64K_D_T @ Navi1x
+    {   2,    2,   43,    3,    0, } , // 4 pipes 4 bpe @ SW_64K_D_T @ Navi1x
+    {   2,    6,   44,    4,    0, } , // 4 pipes 8 bpe @ SW_64K_D_T @ Navi1x
+    {   2,    7,   45,    5,    0, } , // 4 pipes 16 bpe @ SW_64K_D_T @ Navi1x
+    {   2,    5,   46,    1,    0, } , // 8 pipes 1 bpe @ SW_64K_D_T @ Navi1x
+    {   2,    1,   47,    2,    0, } , // 8 pipes 2 bpe @ SW_64K_D_T @ Navi1x
+    {   2,    2,   48,    3,    0, } , // 8 pipes 4 bpe @ SW_64K_D_T @ Navi1x
+    {   2,    6,   49,    4,    0, } , // 8 pipes 8 bpe @ SW_64K_D_T @ Navi1x
+    {   2,    7,   50,    5,    0, } , // 8 pipes 16 bpe @ SW_64K_D_T @ Navi1x
+    {   2,    5,   51,    1,    0, } , // 16 pipes 1 bpe @ SW_64K_D_T @ Navi1x
+    {   2,    1,   52,    2,    0, } , // 16 pipes 2 bpe @ SW_64K_D_T @ Navi1x
+    {   2,    2,   53,    3,    0, } , // 16 pipes 4 bpe @ SW_64K_D_T @ Navi1x
+    {   2,    6,   54,    4,    0, } , // 16 pipes 8 bpe @ SW_64K_D_T @ Navi1x
+    {   2,    7,   55,    5,    0, } , // 16 pipes 16 bpe @ SW_64K_D_T @ Navi1x
+    {   2,    5,   56,   16,    0, } , // 32 pipes 1 bpe @ SW_64K_D_T @ Navi1x
+    {   2,    1,   57,   17,    0, } , // 32 pipes 2 bpe @ SW_64K_D_T @ Navi1x
+    {   2,    2,   58,   18,    0, } , // 32 pipes 4 bpe @ SW_64K_D_T @ Navi1x
+    {   2,    6,   59,   19,    0, } , // 32 pipes 8 bpe @ SW_64K_D_T @ Navi1x
+    {   2,    7,   60,   20,    0, } , // 32 pipes 16 bpe @ SW_64K_D_T @ Navi1x
+    {   2,    5,    1,   21,    0, } , // 64 pipes 1 bpe @ SW_64K_D_T @ Navi1x
+    {   2,    1,    2,   22,    0, } , // 64 pipes 2 bpe @ SW_64K_D_T @ Navi1x
+    {   2,    2,    3,   23,    0, } , // 64 pipes 4 bpe @ SW_64K_D_T @ Navi1x
+    {   2,    6,    4,   24,    0, } , // 64 pipes 8 bpe @ SW_64K_D_T @ Navi1x
+    {   2,    7,    5,   25,    0, } , // 64 pipes 16 bpe @ SW_64K_D_T @ Navi1x
+};
+
+const ADDR_SW_PATINFO SW_64K_S_X_PATINFO[] =
+{
+    {   1,    0,    1,    1,    0, } , // 1 pipes 1 bpe @ SW_64K_S_X @ Navi1x
+    {   1,    1,    2,    2,    0, } , // 1 pipes 2 bpe @ SW_64K_S_X @ Navi1x
+    {   1,    2,    3,    3,    0, } , // 1 pipes 4 bpe @ SW_64K_S_X @ Navi1x
+    {   1,    3,    4,    4,    0, } , // 1 pipes 8 bpe @ SW_64K_S_X @ Navi1x
+    {   1,    4,    5,    5,    0, } , // 1 pipes 16 bpe @ SW_64K_S_X @ Navi1x
+    {   3,    0,    6,    1,    0, } , // 2 pipes 1 bpe @ SW_64K_S_X @ Navi1x
+    {   3,    1,    7,    2,    0, } , // 2 pipes 2 bpe @ SW_64K_S_X @ Navi1x
+    {   3,    2,    8,    3,    0, } , // 2 pipes 4 bpe @ SW_64K_S_X @ Navi1x
+    {   3,    3,    9,    4,    0, } , // 2 pipes 8 bpe @ SW_64K_S_X @ Navi1x
+    {   3,    4,   10,    5,    0, } , // 2 pipes 16 bpe @ SW_64K_S_X @ Navi1x
+    {   3,    0,   11,    1,    0, } , // 4 pipes 1 bpe @ SW_64K_S_X @ Navi1x
+    {   3,    1,   12,    2,    0, } , // 4 pipes 2 bpe @ SW_64K_S_X @ Navi1x
+    {   3,    2,   13,    3,    0, } , // 4 pipes 4 bpe @ SW_64K_S_X @ Navi1x
+    {   3,    3,   14,    4,    0, } , // 4 pipes 8 bpe @ SW_64K_S_X @ Navi1x
+    {   3,    4,   15,    5,    0, } , // 4 pipes 16 bpe @ SW_64K_S_X @ Navi1x
+    {   3,    0,   16,    1,    0, } , // 8 pipes 1 bpe @ SW_64K_S_X @ Navi1x
+    {   3,    1,   17,    2,    0, } , // 8 pipes 2 bpe @ SW_64K_S_X @ Navi1x
+    {   3,    2,   18,    3,    0, } , // 8 pipes 4 bpe @ SW_64K_S_X @ Navi1x
+    {   3,    3,   19,    4,    0, } , // 8 pipes 8 bpe @ SW_64K_S_X @ Navi1x
+    {   3,    4,   20,    5,    0, } , // 8 pipes 16 bpe @ SW_64K_S_X @ Navi1x
+    {   3,    0,   21,    1,    0, } , // 16 pipes 1 bpe @ SW_64K_S_X @ Navi1x
+    {   3,    1,   22,    2,    0, } , // 16 pipes 2 bpe @ SW_64K_S_X @ Navi1x
+    {   3,    2,   23,    3,    0, } , // 16 pipes 4 bpe @ SW_64K_S_X @ Navi1x
+    {   3,    3,   24,    4,    0, } , // 16 pipes 8 bpe @ SW_64K_S_X @ Navi1x
+    {   3,    4,   25,    5,    0, } , // 16 pipes 16 bpe @ SW_64K_S_X @ Navi1x
+    {   3,    0,   26,    6,    0, } , // 32 pipes 1 bpe @ SW_64K_S_X @ Navi1x
+    {   3,    1,   27,    7,    0, } , // 32 pipes 2 bpe @ SW_64K_S_X @ Navi1x
+    {   3,    2,   28,    8,    0, } , // 32 pipes 4 bpe @ SW_64K_S_X @ Navi1x
+    {   3,    3,   29,    9,    0, } , // 32 pipes 8 bpe @ SW_64K_S_X @ Navi1x
+    {   3,    4,   30,   10,    0, } , // 32 pipes 16 bpe @ SW_64K_S_X @ Navi1x
+    {   3,    0,   31,   11,    0, } , // 64 pipes 1 bpe @ SW_64K_S_X @ Navi1x
+    {   3,    1,   32,   12,    0, } , // 64 pipes 2 bpe @ SW_64K_S_X @ Navi1x
+    {   3,    2,   33,   13,    0, } , // 64 pipes 4 bpe @ SW_64K_S_X @ Navi1x
+    {   3,    3,   34,   14,    0, } , // 64 pipes 8 bpe @ SW_64K_S_X @ Navi1x
+    {   3,    4,   35,   15,    0, } , // 64 pipes 16 bpe @ SW_64K_S_X @ Navi1x
+};
+
+const ADDR_SW_PATINFO SW_64K_D_X_PATINFO[] =
+{
+    {   1,    5,    1,    1,    0, } , // 1 pipes 1 bpe @ SW_64K_D_X @ Navi1x
+    {   1,    1,    2,    2,    0, } , // 1 pipes 2 bpe @ SW_64K_D_X @ Navi1x
+    {   1,    2,    3,    3,    0, } , // 1 pipes 4 bpe @ SW_64K_D_X @ Navi1x
+    {   1,    6,    4,    4,    0, } , // 1 pipes 8 bpe @ SW_64K_D_X @ Navi1x
+    {   1,    7,    5,    5,    0, } , // 1 pipes 16 bpe @ SW_64K_D_X @ Navi1x
+    {   3,    5,    6,    1,    0, } , // 2 pipes 1 bpe @ SW_64K_D_X @ Navi1x
+    {   3,    1,    7,    2,    0, } , // 2 pipes 2 bpe @ SW_64K_D_X @ Navi1x
+    {   3,    2,    8,    3,    0, } , // 2 pipes 4 bpe @ SW_64K_D_X @ Navi1x
+    {   3,    6,    9,    4,    0, } , // 2 pipes 8 bpe @ SW_64K_D_X @ Navi1x
+    {   3,    7,   10,    5,    0, } , // 2 pipes 16 bpe @ SW_64K_D_X @ Navi1x
+    {   3,    5,   11,    1,    0, } , // 4 pipes 1 bpe @ SW_64K_D_X @ Navi1x
+    {   3,    1,   12,    2,    0, } , // 4 pipes 2 bpe @ SW_64K_D_X @ Navi1x
+    {   3,    2,   13,    3,    0, } , // 4 pipes 4 bpe @ SW_64K_D_X @ Navi1x
+    {   3,    6,   14,    4,    0, } , // 4 pipes 8 bpe @ SW_64K_D_X @ Navi1x
+    {   3,    7,   15,    5,    0, } , // 4 pipes 16 bpe @ SW_64K_D_X @ Navi1x
+    {   3,    5,   16,    1,    0, } , // 8 pipes 1 bpe @ SW_64K_D_X @ Navi1x
+    {   3,    1,   17,    2,    0, } , // 8 pipes 2 bpe @ SW_64K_D_X @ Navi1x
+    {   3,    2,   18,    3,    0, } , // 8 pipes 4 bpe @ SW_64K_D_X @ Navi1x
+    {   3,    6,   19,    4,    0, } , // 8 pipes 8 bpe @ SW_64K_D_X @ Navi1x
+    {   3,    7,   20,    5,    0, } , // 8 pipes 16 bpe @ SW_64K_D_X @ Navi1x
+    {   3,    5,   21,    1,    0, } , // 16 pipes 1 bpe @ SW_64K_D_X @ Navi1x
+    {   3,    1,   22,    2,    0, } , // 16 pipes 2 bpe @ SW_64K_D_X @ Navi1x
+    {   3,    2,   23,    3,    0, } , // 16 pipes 4 bpe @ SW_64K_D_X @ Navi1x
+    {   3,    6,   24,    4,    0, } , // 16 pipes 8 bpe @ SW_64K_D_X @ Navi1x
+    {   3,    7,   25,    5,    0, } , // 16 pipes 16 bpe @ SW_64K_D_X @ Navi1x
+    {   3,    5,   26,    6,    0, } , // 32 pipes 1 bpe @ SW_64K_D_X @ Navi1x
+    {   3,    1,   27,    7,    0, } , // 32 pipes 2 bpe @ SW_64K_D_X @ Navi1x
+    {   3,    2,   28,    8,    0, } , // 32 pipes 4 bpe @ SW_64K_D_X @ Navi1x
+    {   3,    6,   29,    9,    0, } , // 32 pipes 8 bpe @ SW_64K_D_X @ Navi1x
+    {   3,    7,   30,   10,    0, } , // 32 pipes 16 bpe @ SW_64K_D_X @ Navi1x
+    {   3,    5,   31,   11,    0, } , // 64 pipes 1 bpe @ SW_64K_D_X @ Navi1x
+    {   3,    1,   32,   12,    0, } , // 64 pipes 2 bpe @ SW_64K_D_X @ Navi1x
+    {   3,    2,   33,   13,    0, } , // 64 pipes 4 bpe @ SW_64K_D_X @ Navi1x
+    {   3,    6,   34,   14,    0, } , // 64 pipes 8 bpe @ SW_64K_D_X @ Navi1x
+    {   3,    7,   35,   15,    0, } , // 64 pipes 16 bpe @ SW_64K_D_X @ Navi1x
+};
+
+const ADDR_SW_PATINFO SW_64K_R_X_1xaa_PATINFO[] =
+{
+    {   1,    5,    1,    1,    0, } , // 1 pipes 1 bpe @ SW_64K_R_X 1xaa @ Navi1x
+    {   1,    1,    2,    2,    0, } , // 1 pipes 2 bpe @ SW_64K_R_X 1xaa @ Navi1x
+    {   1,    2,    3,    3,    0, } , // 1 pipes 4 bpe @ SW_64K_R_X 1xaa @ Navi1x
+    {   1,    6,    4,    4,    0, } , // 1 pipes 8 bpe @ SW_64K_R_X 1xaa @ Navi1x
+    {   1,    7,    5,    5,    0, } , // 1 pipes 16 bpe @ SW_64K_R_X 1xaa @ Navi1x
+    {   3,   28,   61,    1,    0, } , // 2 pipes 1 bpe @ SW_64K_R_X 1xaa @ Navi1x
+    {   3,    1,   62,    2,    0, } , // 2 pipes 2 bpe @ SW_64K_R_X 1xaa @ Navi1x
+    {   3,    2,    8,    3,    0, } , // 2 pipes 4 bpe @ SW_64K_R_X 1xaa @ Navi1x
+    {   3,    6,   63,    4,    0, } , // 2 pipes 8 bpe @ SW_64K_R_X 1xaa @ Navi1x
+    {   3,    7,   64,    5,    0, } , // 2 pipes 16 bpe @ SW_64K_R_X 1xaa @ Navi1x
+    {   3,   28,   65,    1,    0, } , // 4 pipes 1 bpe @ SW_64K_R_X 1xaa @ Navi1x
+    {   3,    1,   66,    2,    0, } , // 4 pipes 2 bpe @ SW_64K_R_X 1xaa @ Navi1x
+    {   3,    2,   67,    3,    0, } , // 4 pipes 4 bpe @ SW_64K_R_X 1xaa @ Navi1x
+    {   3,    6,   68,    4,    0, } , // 4 pipes 8 bpe @ SW_64K_R_X 1xaa @ Navi1x
+    {   3,    7,   69,   26,    0, } , // 4 pipes 16 bpe @ SW_64K_R_X 1xaa @ Navi1x
+    {   3,   28,   70,    1,    0, } , // 8 pipes 1 bpe @ SW_64K_R_X 1xaa @ Navi1x
+    {   3,    1,   71,    2,    0, } , // 8 pipes 2 bpe @ SW_64K_R_X 1xaa @ Navi1x
+    {   3,    2,   72,   27,    0, } , // 8 pipes 4 bpe @ SW_64K_R_X 1xaa @ Navi1x
+    {   3,    6,   72,   28,    0, } , // 8 pipes 8 bpe @ SW_64K_R_X 1xaa @ Navi1x
+    {   3,    7,   73,   29,    0, } , // 8 pipes 16 bpe @ SW_64K_R_X 1xaa @ Navi1x
+    {   3,   28,   74,    1,    0, } , // 16 pipes 1 bpe @ SW_64K_R_X 1xaa @ Navi1x
+    {   3,    1,   74,   30,    0, } , // 16 pipes 2 bpe @ SW_64K_R_X 1xaa @ Navi1x
+    {   3,    2,   74,   31,    0, } , // 16 pipes 4 bpe @ SW_64K_R_X 1xaa @ Navi1x
+    {   3,    6,   74,   32,    0, } , // 16 pipes 8 bpe @ SW_64K_R_X 1xaa @ Navi1x
+    {   3,    7,   74,   33,    0, } , // 16 pipes 16 bpe @ SW_64K_R_X 1xaa @ Navi1x
+    {   3,   28,   75,    6,    0, } , // 32 pipes 1 bpe @ SW_64K_R_X 1xaa @ Navi1x
+    {   3,    1,   75,   34,    0, } , // 32 pipes 2 bpe @ SW_64K_R_X 1xaa @ Navi1x
+    {   3,    2,   75,   35,    0, } , // 32 pipes 4 bpe @ SW_64K_R_X 1xaa @ Navi1x
+    {   3,    6,   75,   36,    0, } , // 32 pipes 8 bpe @ SW_64K_R_X 1xaa @ Navi1x
+    {   3,    7,   76,   37,    0, } , // 32 pipes 16 bpe @ SW_64K_R_X 1xaa @ Navi1x
+    {   3,   28,   77,   11,    0, } , // 64 pipes 1 bpe @ SW_64K_R_X 1xaa @ Navi1x
+    {   3,    1,   77,   38,    0, } , // 64 pipes 2 bpe @ SW_64K_R_X 1xaa @ Navi1x
+    {   3,    2,   77,   39,    0, } , // 64 pipes 4 bpe @ SW_64K_R_X 1xaa @ Navi1x
+    {   3,    6,   78,   40,    0, } , // 64 pipes 8 bpe @ SW_64K_R_X 1xaa @ Navi1x
+    {   3,    7,   79,   41,    0, } , // 64 pipes 16 bpe @ SW_64K_R_X 1xaa @ Navi1x
+};
+
+const ADDR_SW_PATINFO SW_64K_R_X_2xaa_PATINFO[] =
+{
+    {   2,    5,    1,   99,    0, } , // 1 pipes 1 bpe @ SW_64K_R_X 2xaa @ Navi1x
+    {   2,    1,    2,  100,    0, } , // 1 pipes 2 bpe @ SW_64K_R_X 2xaa @ Navi1x
+    {   2,    2,    3,  101,    0, } , // 1 pipes 4 bpe @ SW_64K_R_X 2xaa @ Navi1x
+    {   2,    6,    4,  102,    0, } , // 1 pipes 8 bpe @ SW_64K_R_X 2xaa @ Navi1x
+    {   2,    7,    5,  103,    0, } , // 1 pipes 16 bpe @ SW_64K_R_X 2xaa @ Navi1x
+    {   3,   28,   61,   99,    0, } , // 2 pipes 1 bpe @ SW_64K_R_X 2xaa @ Navi1x
+    {   3,    1,   62,  100,    0, } , // 2 pipes 2 bpe @ SW_64K_R_X 2xaa @ Navi1x
+    {   3,    2,    8,  101,    0, } , // 2 pipes 4 bpe @ SW_64K_R_X 2xaa @ Navi1x
+    {   3,    6,   63,  102,    0, } , // 2 pipes 8 bpe @ SW_64K_R_X 2xaa @ Navi1x
+    {   3,    7,   64,  103,    0, } , // 2 pipes 16 bpe @ SW_64K_R_X 2xaa @ Navi1x
+    {   3,   28,   65,   99,    0, } , // 4 pipes 1 bpe @ SW_64K_R_X 2xaa @ Navi1x
+    {   3,    1,   66,  100,    0, } , // 4 pipes 2 bpe @ SW_64K_R_X 2xaa @ Navi1x
+    {   3,    2,   67,  101,    0, } , // 4 pipes 4 bpe @ SW_64K_R_X 2xaa @ Navi1x
+    {   3,    6,   68,  102,    0, } , // 4 pipes 8 bpe @ SW_64K_R_X 2xaa @ Navi1x
+    {   3,    7,   69,  104,    0, } , // 4 pipes 16 bpe @ SW_64K_R_X 2xaa @ Navi1x
+    {   3,   28,   70,   99,    0, } , // 8 pipes 1 bpe @ SW_64K_R_X 2xaa @ Navi1x
+    {   3,    1,   71,  100,    0, } , // 8 pipes 2 bpe @ SW_64K_R_X 2xaa @ Navi1x
+    {   3,    2,   72,  105,    0, } , // 8 pipes 4 bpe @ SW_64K_R_X 2xaa @ Navi1x
+    {   3,    6,   72,  106,    0, } , // 8 pipes 8 bpe @ SW_64K_R_X 2xaa @ Navi1x
+    {   3,    7,   73,  107,    0, } , // 8 pipes 16 bpe @ SW_64K_R_X 2xaa @ Navi1x
+    {   3,   28,   74,   99,    0, } , // 16 pipes 1 bpe @ SW_64K_R_X 2xaa @ Navi1x
+    {   3,    1,   74,  108,    0, } , // 16 pipes 2 bpe @ SW_64K_R_X 2xaa @ Navi1x
+    {   3,    2,   74,  109,    0, } , // 16 pipes 4 bpe @ SW_64K_R_X 2xaa @ Navi1x
+    {   3,    6,   74,  107,    0, } , // 16 pipes 8 bpe @ SW_64K_R_X 2xaa @ Navi1x
+    {   3,    7,  113,   33,    0, } , // 16 pipes 16 bpe @ SW_64K_R_X 2xaa @ Navi1x
+    {   3,   28,   75,  110,    0, } , // 32 pipes 1 bpe @ SW_64K_R_X 2xaa @ Navi1x
+    {   3,    1,   75,  111,    0, } , // 32 pipes 2 bpe @ SW_64K_R_X 2xaa @ Navi1x
+    {   3,    2,   75,  112,    0, } , // 32 pipes 4 bpe @ SW_64K_R_X 2xaa @ Navi1x
+    {   3,    6,   76,  113,    0, } , // 32 pipes 8 bpe @ SW_64K_R_X 2xaa @ Navi1x
+    {   3,    7,  114,   37,    0, } , // 32 pipes 16 bpe @ SW_64K_R_X 2xaa @ Navi1x
+    {   3,   28,   78,  114,    0, } , // 64 pipes 1 bpe @ SW_64K_R_X 2xaa @ Navi1x
+    {   3,    1,   78,  115,    0, } , // 64 pipes 2 bpe @ SW_64K_R_X 2xaa @ Navi1x
+    {   3,    2,   78,  116,    0, } , // 64 pipes 4 bpe @ SW_64K_R_X 2xaa @ Navi1x
+    {   3,    6,   79,  117,    0, } , // 64 pipes 8 bpe @ SW_64K_R_X 2xaa @ Navi1x
+    {   3,    7,  115,   41,    0, } , // 64 pipes 16 bpe @ SW_64K_R_X 2xaa @ Navi1x
+};
+
+const ADDR_SW_PATINFO SW_64K_R_X_4xaa_PATINFO[] =
 {
-    {X0,             X1,             X2,             X3,             Y0,             Y1,             Y2,             Y3              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2              },
-    {0,              0,              0,              X0,             Y0,             Y1,             X1,             X2              },
-    {0,              0,              0,              0,              Y0,             Y1,             X0,             X1              },
+    {   2,    5,    1,  118,    0, } , // 1 pipes 1 bpe @ SW_64K_R_X 4xaa @ Navi1x
+    {   2,    1,    2,  119,    0, } , // 1 pipes 2 bpe @ SW_64K_R_X 4xaa @ Navi1x
+    {   2,    2,    3,  120,    0, } , // 1 pipes 4 bpe @ SW_64K_R_X 4xaa @ Navi1x
+    {   2,    6,    4,  121,    0, } , // 1 pipes 8 bpe @ SW_64K_R_X 4xaa @ Navi1x
+    {   2,    7,    5,  122,    0, } , // 1 pipes 16 bpe @ SW_64K_R_X 4xaa @ Navi1x
+    {   3,   28,   61,  118,    0, } , // 2 pipes 1 bpe @ SW_64K_R_X 4xaa @ Navi1x
+    {   3,    1,   62,  119,    0, } , // 2 pipes 2 bpe @ SW_64K_R_X 4xaa @ Navi1x
+    {   3,    2,    8,  120,    0, } , // 2 pipes 4 bpe @ SW_64K_R_X 4xaa @ Navi1x
+    {   3,    6,   63,  121,    0, } , // 2 pipes 8 bpe @ SW_64K_R_X 4xaa @ Navi1x
+    {   3,    7,   64,  122,    0, } , // 2 pipes 16 bpe @ SW_64K_R_X 4xaa @ Navi1x
+    {   3,   28,   65,  118,    0, } , // 4 pipes 1 bpe @ SW_64K_R_X 4xaa @ Navi1x
+    {   3,    1,   66,  119,    0, } , // 4 pipes 2 bpe @ SW_64K_R_X 4xaa @ Navi1x
+    {   3,    2,   67,  120,    0, } , // 4 pipes 4 bpe @ SW_64K_R_X 4xaa @ Navi1x
+    {   3,    6,   68,  121,    0, } , // 4 pipes 8 bpe @ SW_64K_R_X 4xaa @ Navi1x
+    {   3,    7,   69,  123,    0, } , // 4 pipes 16 bpe @ SW_64K_R_X 4xaa @ Navi1x
+    {   3,   28,   70,  118,    0, } , // 8 pipes 1 bpe @ SW_64K_R_X 4xaa @ Navi1x
+    {   3,    1,   71,  119,    0, } , // 8 pipes 2 bpe @ SW_64K_R_X 4xaa @ Navi1x
+    {   3,    2,   72,  124,    0, } , // 8 pipes 4 bpe @ SW_64K_R_X 4xaa @ Navi1x
+    {   3,    6,   93,  125,    0, } , // 8 pipes 8 bpe @ SW_64K_R_X 4xaa @ Navi1x
+    {   3,    7,  116,  107,    0, } , // 8 pipes 16 bpe @ SW_64K_R_X 4xaa @ Navi1x
+    {   3,   28,   74,  118,    0, } , // 16 pipes 1 bpe @ SW_64K_R_X 4xaa @ Navi1x
+    {   3,    1,   74,  126,    0, } , // 16 pipes 2 bpe @ SW_64K_R_X 4xaa @ Navi1x
+    {   3,    2,   74,  127,    0, } , // 16 pipes 4 bpe @ SW_64K_R_X 4xaa @ Navi1x
+    {   3,    6,  117,  107,    0, } , // 16 pipes 8 bpe @ SW_64K_R_X 4xaa @ Navi1x
+    {   3,    7,  118,   33,    0, } , // 16 pipes 16 bpe @ SW_64K_R_X 4xaa @ Navi1x
+    {   3,   28,   76,  128,    0, } , // 32 pipes 1 bpe @ SW_64K_R_X 4xaa @ Navi1x
+    {   3,    1,   76,  129,    0, } , // 32 pipes 2 bpe @ SW_64K_R_X 4xaa @ Navi1x
+    {   3,    2,   76,  130,    0, } , // 32 pipes 4 bpe @ SW_64K_R_X 4xaa @ Navi1x
+    {   3,    6,  119,  113,    0, } , // 32 pipes 8 bpe @ SW_64K_R_X 4xaa @ Navi1x
+    {   3,    7,  120,   37,    0, } , // 32 pipes 16 bpe @ SW_64K_R_X 4xaa @ Navi1x
+    {   3,   28,   79,  131,    0, } , // 64 pipes 1 bpe @ SW_64K_R_X 4xaa @ Navi1x
+    {   3,    1,   79,  132,    0, } , // 64 pipes 2 bpe @ SW_64K_R_X 4xaa @ Navi1x
+    {   3,    2,   79,  133,    0, } , // 64 pipes 4 bpe @ SW_64K_R_X 4xaa @ Navi1x
+    {   3,    6,  121,  117,    0, } , // 64 pipes 8 bpe @ SW_64K_R_X 4xaa @ Navi1x
+    {   3,    7,  122,   41,    0, } , // 64 pipes 16 bpe @ SW_64K_R_X 4xaa @ Navi1x
 };
 
-const UINT_64 SW_256_D[][8]=
+const ADDR_SW_PATINFO SW_64K_R_X_8xaa_PATINFO[] =
 {
-    {X0,             X1,             X2,             Y1,             Y0,             Y2,             X3,             Y3              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2              },
-    {0,              0,              0,              X0,             Y0,             X1,             X2,             Y1              },
-    {0,              0,              0,              0,              X0,             Y0,             X1,             Y1              },
+    {   2,    5,    1,  134,    0, } , // 1 pipes 1 bpe @ SW_64K_R_X 8xaa @ Navi1x
+    {   2,    1,    2,  135,    0, } , // 1 pipes 2 bpe @ SW_64K_R_X 8xaa @ Navi1x
+    {   2,    2,    3,  135,    0, } , // 1 pipes 4 bpe @ SW_64K_R_X 8xaa @ Navi1x
+    {   2,    6,    4,  136,    0, } , // 1 pipes 8 bpe @ SW_64K_R_X 8xaa @ Navi1x
+    {   2,    7,    5,  136,    0, } , // 1 pipes 16 bpe @ SW_64K_R_X 8xaa @ Navi1x
+    {   3,   28,   61,  134,    0, } , // 2 pipes 1 bpe @ SW_64K_R_X 8xaa @ Navi1x
+    {   3,    1,   62,  135,    0, } , // 2 pipes 2 bpe @ SW_64K_R_X 8xaa @ Navi1x
+    {   3,    2,    8,  135,    0, } , // 2 pipes 4 bpe @ SW_64K_R_X 8xaa @ Navi1x
+    {   3,    6,   63,  136,    0, } , // 2 pipes 8 bpe @ SW_64K_R_X 8xaa @ Navi1x
+    {   3,    7,   64,  136,    0, } , // 2 pipes 16 bpe @ SW_64K_R_X 8xaa @ Navi1x
+    {   3,   28,   65,  134,    0, } , // 4 pipes 1 bpe @ SW_64K_R_X 8xaa @ Navi1x
+    {   3,    1,   66,  135,    0, } , // 4 pipes 2 bpe @ SW_64K_R_X 8xaa @ Navi1x
+    {   3,    2,   67,  135,    0, } , // 4 pipes 4 bpe @ SW_64K_R_X 8xaa @ Navi1x
+    {   3,    6,   68,  136,    0, } , // 4 pipes 8 bpe @ SW_64K_R_X 8xaa @ Navi1x
+    {   3,    7,  102,  137,    0, } , // 4 pipes 16 bpe @ SW_64K_R_X 8xaa @ Navi1x
+    {   3,   28,   70,  134,    0, } , // 8 pipes 1 bpe @ SW_64K_R_X 8xaa @ Navi1x
+    {   3,    1,   71,  135,    0, } , // 8 pipes 2 bpe @ SW_64K_R_X 8xaa @ Navi1x
+    {   3,    2,   72,  138,    0, } , // 8 pipes 4 bpe @ SW_64K_R_X 8xaa @ Navi1x
+    {   3,    6,  123,  139,    0, } , // 8 pipes 8 bpe @ SW_64K_R_X 8xaa @ Navi1x
+    {   3,    7,  124,  140,    0, } , // 8 pipes 16 bpe @ SW_64K_R_X 8xaa @ Navi1x
+    {   3,   28,  105,  134,    0, } , // 16 pipes 1 bpe @ SW_64K_R_X 8xaa @ Navi1x
+    {   3,    1,  105,  138,    0, } , // 16 pipes 2 bpe @ SW_64K_R_X 8xaa @ Navi1x
+    {   3,    2,  125,  127,    0, } , // 16 pipes 4 bpe @ SW_64K_R_X 8xaa @ Navi1x
+    {   3,    6,  126,  107,    0, } , // 16 pipes 8 bpe @ SW_64K_R_X 8xaa @ Navi1x
+    {   3,    7,  126,  141,    0, } , // 16 pipes 16 bpe @ SW_64K_R_X 8xaa @ Navi1x
+    {   3,   28,  107,  142,    0, } , // 32 pipes 1 bpe @ SW_64K_R_X 8xaa @ Navi1x
+    {   3,    1,  108,  143,    0, } , // 32 pipes 2 bpe @ SW_64K_R_X 8xaa @ Navi1x
+    {   3,    2,  127,  130,    0, } , // 32 pipes 4 bpe @ SW_64K_R_X 8xaa @ Navi1x
+    {   3,    6,  128,  113,    0, } , // 32 pipes 8 bpe @ SW_64K_R_X 8xaa @ Navi1x
+    {   3,    7,  128,  144,    0, } , // 32 pipes 16 bpe @ SW_64K_R_X 8xaa @ Navi1x
+    {   3,   28,  110,  145,    0, } , // 64 pipes 1 bpe @ SW_64K_R_X 8xaa @ Navi1x
+    {   3,    1,  111,  146,    0, } , // 64 pipes 2 bpe @ SW_64K_R_X 8xaa @ Navi1x
+    {   3,    2,  129,  133,    0, } , // 64 pipes 4 bpe @ SW_64K_R_X 8xaa @ Navi1x
+    {   3,    6,  130,  117,    0, } , // 64 pipes 8 bpe @ SW_64K_R_X 8xaa @ Navi1x
+    {   3,    7,  130,  147,    0, } , // 64 pipes 16 bpe @ SW_64K_R_X 8xaa @ Navi1x
 };
 
-const UINT_64 SW_4K_S[][12]=
+const ADDR_SW_PATINFO SW_64K_Z_X_1xaa_PATINFO[] =
 {
-    {X0,             X1,             X2,             X3,             Y0,             Y1,             Y2,             Y3,             Y4,             X4,             Y5,             X5              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             X4,             Y4,             X5              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             X3,             Y4,             X4              },
-    {0,              0,              0,              X0,             Y0,             Y1,             X1,             X2,             Y2,             X3,             Y3,             X4              },
-    {0,              0,              0,              0,              Y0,             Y1,             X0,             X1,             Y2,             X2,             Y3,             X3              },
+    {   1,    8,    1,    1,    0, } , // 1 pipes 1 bpe @ SW_64K_Z_X 1xaa @ Navi1x
+    {   1,    9,    2,    2,    0, } , // 1 pipes 2 bpe @ SW_64K_Z_X 1xaa @ Navi1x
+    {   1,   10,    3,    3,    0, } , // 1 pipes 4 bpe @ SW_64K_Z_X 1xaa @ Navi1x
+    {   1,   11,    4,    4,    0, } , // 1 pipes 8 bpe @ SW_64K_Z_X 1xaa @ Navi1x
+    {   1,    7,    5,    5,    0, } , // 1 pipes 16 bpe @ SW_64K_Z_X 1xaa @ Navi1x
+    {   3,   12,   61,    1,    0, } , // 2 pipes 1 bpe @ SW_64K_Z_X 1xaa @ Navi1x
+    {   3,    9,   62,    2,    0, } , // 2 pipes 2 bpe @ SW_64K_Z_X 1xaa @ Navi1x
+    {   3,   10,    8,    3,    0, } , // 2 pipes 4 bpe @ SW_64K_Z_X 1xaa @ Navi1x
+    {   3,   11,   63,    4,    0, } , // 2 pipes 8 bpe @ SW_64K_Z_X 1xaa @ Navi1x
+    {   3,    7,   64,    5,    0, } , // 2 pipes 16 bpe @ SW_64K_Z_X 1xaa @ Navi1x
+    {   3,   12,   65,    1,    0, } , // 4 pipes 1 bpe @ SW_64K_Z_X 1xaa @ Navi1x
+    {   3,    9,   66,    2,    0, } , // 4 pipes 2 bpe @ SW_64K_Z_X 1xaa @ Navi1x
+    {   3,   10,   67,    3,    0, } , // 4 pipes 4 bpe @ SW_64K_Z_X 1xaa @ Navi1x
+    {   3,   11,   68,    4,    0, } , // 4 pipes 8 bpe @ SW_64K_Z_X 1xaa @ Navi1x
+    {   3,    7,   69,   26,    0, } , // 4 pipes 16 bpe @ SW_64K_Z_X 1xaa @ Navi1x
+    {   3,   12,   70,    1,    0, } , // 8 pipes 1 bpe @ SW_64K_Z_X 1xaa @ Navi1x
+    {   3,    9,   71,    2,    0, } , // 8 pipes 2 bpe @ SW_64K_Z_X 1xaa @ Navi1x
+    {   3,   10,   72,   27,    0, } , // 8 pipes 4 bpe @ SW_64K_Z_X 1xaa @ Navi1x
+    {   3,   11,   72,   28,    0, } , // 8 pipes 8 bpe @ SW_64K_Z_X 1xaa @ Navi1x
+    {   3,    7,   73,   29,    0, } , // 8 pipes 16 bpe @ SW_64K_Z_X 1xaa @ Navi1x
+    {   3,   12,   74,    1,    0, } , // 16 pipes 1 bpe @ SW_64K_Z_X 1xaa @ Navi1x
+    {   3,    9,   74,   30,    0, } , // 16 pipes 2 bpe @ SW_64K_Z_X 1xaa @ Navi1x
+    {   3,   10,   74,   31,    0, } , // 16 pipes 4 bpe @ SW_64K_Z_X 1xaa @ Navi1x
+    {   3,   11,   74,   32,    0, } , // 16 pipes 8 bpe @ SW_64K_Z_X 1xaa @ Navi1x
+    {   3,    7,   74,   33,    0, } , // 16 pipes 16 bpe @ SW_64K_Z_X 1xaa @ Navi1x
+    {   3,   12,   75,    6,    0, } , // 32 pipes 1 bpe @ SW_64K_Z_X 1xaa @ Navi1x
+    {   3,    9,   75,   34,    0, } , // 32 pipes 2 bpe @ SW_64K_Z_X 1xaa @ Navi1x
+    {   3,   10,   75,   35,    0, } , // 32 pipes 4 bpe @ SW_64K_Z_X 1xaa @ Navi1x
+    {   3,   11,   75,   36,    0, } , // 32 pipes 8 bpe @ SW_64K_Z_X 1xaa @ Navi1x
+    {   3,    7,   76,   37,    0, } , // 32 pipes 16 bpe @ SW_64K_Z_X 1xaa @ Navi1x
+    {   3,   12,   77,   11,    0, } , // 64 pipes 1 bpe @ SW_64K_Z_X 1xaa @ Navi1x
+    {   3,    9,   77,   38,    0, } , // 64 pipes 2 bpe @ SW_64K_Z_X 1xaa @ Navi1x
+    {   3,   10,   77,   39,    0, } , // 64 pipes 4 bpe @ SW_64K_Z_X 1xaa @ Navi1x
+    {   3,   11,   78,   40,    0, } , // 64 pipes 8 bpe @ SW_64K_Z_X 1xaa @ Navi1x
+    {   3,    7,   79,   41,    0, } , // 64 pipes 16 bpe @ SW_64K_Z_X 1xaa @ Navi1x
 };
 
-const UINT_64 SW_4K_D[][12]=
+const ADDR_SW_PATINFO SW_64K_Z_X_2xaa_PATINFO[] =
 {
-    {X0,             X1,             X2,             Y1,             Y0,             Y2,             X3,             Y3,             Y4,             X4,             Y5,             X5              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             X4,             Y4,             X5              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             X3,             Y4,             X4              },
-    {0,              0,              0,              X0,             Y0,             X1,             X2,             Y1,             Y2,             X3,             Y3,             X4              },
-    {0,              0,              0,              0,              X0,             Y0,             X1,             Y1,             Y2,             X2,             Y3,             X3              },
+    {   1,   13,   80,   42,    0, } , // 1 pipes 1 bpe @ SW_64K_Z_X 2xaa @ Navi1x
+    {   1,   14,    3,    3,    0, } , // 1 pipes 2 bpe @ SW_64K_Z_X 2xaa @ Navi1x
+    {   2,   15,    3,   43,    0, } , // 1 pipes 4 bpe @ SW_64K_Z_X 2xaa @ Navi1x
+    {   2,   16,   81,   44,    0, } , // 1 pipes 8 bpe @ SW_64K_Z_X 2xaa @ Navi1x
+    {   2,   17,    5,   45,    0, } , // 1 pipes 16 bpe @ SW_64K_Z_X 2xaa @ Navi1x
+    {   3,   13,   82,   42,    0, } , // 2 pipes 1 bpe @ SW_64K_Z_X 2xaa @ Navi1x
+    {   3,   14,    8,    3,    0, } , // 2 pipes 2 bpe @ SW_64K_Z_X 2xaa @ Navi1x
+    {   3,   15,    8,   43,    0, } , // 2 pipes 4 bpe @ SW_64K_Z_X 2xaa @ Navi1x
+    {   3,   16,   83,   44,    0, } , // 2 pipes 8 bpe @ SW_64K_Z_X 2xaa @ Navi1x
+    {   3,   17,   64,   45,    0, } , // 2 pipes 16 bpe @ SW_64K_Z_X 2xaa @ Navi1x
+    {   3,   13,   84,   42,    0, } , // 4 pipes 1 bpe @ SW_64K_Z_X 2xaa @ Navi1x
+    {   3,   14,   67,    3,    0, } , // 4 pipes 2 bpe @ SW_64K_Z_X 2xaa @ Navi1x
+    {   3,   15,   67,   43,    0, } , // 4 pipes 4 bpe @ SW_64K_Z_X 2xaa @ Navi1x
+    {   3,   16,   85,   44,    0, } , // 4 pipes 8 bpe @ SW_64K_Z_X 2xaa @ Navi1x
+    {   3,   17,   69,   46,    0, } , // 4 pipes 16 bpe @ SW_64K_Z_X 2xaa @ Navi1x
+    {   3,   13,   86,   42,    0, } , // 8 pipes 1 bpe @ SW_64K_Z_X 2xaa @ Navi1x
+    {   3,   14,   72,   27,    0, } , // 8 pipes 2 bpe @ SW_64K_Z_X 2xaa @ Navi1x
+    {   3,   15,   72,   47,    0, } , // 8 pipes 4 bpe @ SW_64K_Z_X 2xaa @ Navi1x
+    {   3,   16,   73,   48,    0, } , // 8 pipes 8 bpe @ SW_64K_Z_X 2xaa @ Navi1x
+    {   3,   17,   73,   49,    0, } , // 8 pipes 16 bpe @ SW_64K_Z_X 2xaa @ Navi1x
+    {   3,   13,   74,   50,    0, } , // 16 pipes 1 bpe @ SW_64K_Z_X 2xaa @ Navi1x
+    {   3,   14,   74,   31,    0, } , // 16 pipes 2 bpe @ SW_64K_Z_X 2xaa @ Navi1x
+    {   3,   15,   74,   51,    0, } , // 16 pipes 4 bpe @ SW_64K_Z_X 2xaa @ Navi1x
+    {   3,   16,   74,   52,    0, } , // 16 pipes 8 bpe @ SW_64K_Z_X 2xaa @ Navi1x
+    {   3,   17,   87,   53,    0, } , // 16 pipes 16 bpe @ SW_64K_Z_X 2xaa @ Navi1x
+    {   3,   13,   75,   54,    0, } , // 32 pipes 1 bpe @ SW_64K_Z_X 2xaa @ Navi1x
+    {   3,   14,   75,   35,    0, } , // 32 pipes 2 bpe @ SW_64K_Z_X 2xaa @ Navi1x
+    {   3,   15,   75,   55,    0, } , // 32 pipes 4 bpe @ SW_64K_Z_X 2xaa @ Navi1x
+    {   3,   16,   76,   56,    0, } , // 32 pipes 8 bpe @ SW_64K_Z_X 2xaa @ Navi1x
+    {   3,   17,   88,   57,    0, } , // 32 pipes 16 bpe @ SW_64K_Z_X 2xaa @ Navi1x
+    {   3,   13,   78,   58,    0, } , // 64 pipes 1 bpe @ SW_64K_Z_X 2xaa @ Navi1x
+    {   3,   14,   78,   59,    0, } , // 64 pipes 2 bpe @ SW_64K_Z_X 2xaa @ Navi1x
+    {   3,   15,   78,   60,    0, } , // 64 pipes 4 bpe @ SW_64K_Z_X 2xaa @ Navi1x
+    {   3,   16,   79,   41,    0, } , // 64 pipes 8 bpe @ SW_64K_Z_X 2xaa @ Navi1x
+    {   3,   17,   89,   61,    0, } , // 64 pipes 16 bpe @ SW_64K_Z_X 2xaa @ Navi1x
 };
 
-const UINT_64 SW_4K_S_X[][12]=
+const ADDR_SW_PATINFO SW_64K_Z_X_4xaa_PATINFO[] =
 {
-    {X0,             X1,             X2,             X3,             Y0,             Y1,             Y2,             Y3,             Y4,             X4,             Y5,             X5              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             X4,             Y4,             X5              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             X3,             Y4,             X4              },
-    {0,              0,              0,              X0,             Y0,             Y1,             X1,             X2,             Y2,             X3,             Y3,             X4              },
-    {0,              0,              0,              0,              Y0,             Y1,             X0,             X1,             Y2,             X2,             Y3,             X3              },
-    {X0,             X1,             X2,             X3,             Y0,             Y1,             Y2,             Y3,             Z0 ^ X4 ^ Y4,   X4,             Y5,             X5              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Z0 ^ Y3 ^ X4,   X4,             Y4,             X5              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Z0 ^ X3 ^ Y3,   X3,             Y4,             X4              },
-    {0,              0,              0,              X0,             Y0,             Y1,             X1,             X2,             Z0 ^ Y2 ^ X3,   X3,             Y3,             X4              },
-    {0,              0,              0,              0,              Y0,             Y1,             X0,             X1,             Z0 ^ X2 ^ Y2,   X2,             Y3,             X3              },
-    {X0,             X1,             X2,             X3,             Y0,             Y1,             Y2,             Y3,             Z1 ^ Y4 ^ X5,   Z0 ^ X4 ^ Y5,   Y5,             X5              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Z1 ^ Y3 ^ X5,   Z0 ^ X4 ^ Y4,   Y4,             X5              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Z1 ^ Y3 ^ X4,   Z0 ^ X3 ^ Y4,   Y4,             X4              },
-    {0,              0,              0,              X0,             Y0,             Y1,             X1,             X2,             Z1 ^ Y2 ^ X4,   Z0 ^ X3 ^ Y3,   Y3,             X4              },
-    {0,              0,              0,              0,              Y0,             Y1,             X0,             X1,             Z1 ^ Y2 ^ X3,   Z0 ^ X2 ^ Y3,   Y3,             X3              },
-    {X0,             X1,             X2,             X3,             Y0,             Y1,             Y2,             Y3,             Z2 ^ Y4 ^ X6,   Z1 ^ X4 ^ Y6,   Z0 ^ X5 ^ Y5,   X5              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Z2 ^ Y3 ^ X6,   Z1 ^ X4 ^ Y5,   Z0 ^ Y4 ^ X5,   X5              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Z2 ^ Y3 ^ X5,   Z1 ^ X3 ^ Y5,   Z0 ^ X4 ^ Y4,   X4              },
-    {0,              0,              0,              X0,             Y0,             Y1,             X1,             X2,             Y2 ^ Z2 ^ X5,   Z1 ^ X3 ^ Y4,   Z0 ^ Y3 ^ X4,   X4              },
-    {0,              0,              0,              0,              Y0,             Y1,             X0,             X1,             Y2 ^ Z2 ^ X4,   Z1 ^ X2 ^ Y4,   Z0 ^ X3 ^ Y3,   X3              },
-    {X0,             X1,             X2,             X3,             Y0,             Y1,             Y2,             Y3,             Z3 ^ Y4 ^ X7,   Z2 ^ X4 ^ Y7,   Z1 ^ Y5 ^ X6,   Z0 ^ X5 ^ Y6    },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3 ^ Z3 ^ X7,   Z2 ^ X4 ^ Y6,   Z1 ^ Y4 ^ X6,   Z0 ^ X5 ^ Y5    },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3 ^ Z3 ^ X6,   Z2 ^ X3 ^ Y6,   Z1 ^ Y4 ^ X5,   Z0 ^ X4 ^ Y5    },
-    {0,              0,              0,              X0,             Y0,             Y1,             X1,             X2,             Y2 ^ Z3 ^ X6,   Z2 ^ X3 ^ Y5,   Z1 ^ Y3 ^ X5,   Z0 ^ X4 ^ Y4    },
-    {0,              0,              0,              0,              Y0,             Y1,             X0,             X1,             Y2 ^ Z3 ^ X5,   X2 ^ Z2 ^ Y5,   Z1 ^ Y3 ^ X4,   Z0 ^ X3 ^ Y4    },
-    {X0,             X1,             X2,             X3,             Y0,             Y1,             Y2,             Y3,             Z3 ^ Y4 ^ X7,   Z2 ^ X4 ^ Y7,   Z1 ^ Y5 ^ X6,   Z0 ^ X5 ^ Y6    },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3 ^ Z3 ^ X7,   Z2 ^ X4 ^ Y6,   Z1 ^ Y4 ^ X6,   Z0 ^ X5 ^ Y5    },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3 ^ Z3 ^ X6,   Z2 ^ X3 ^ Y6,   Z1 ^ Y4 ^ X5,   Z0 ^ X4 ^ Y5    },
-    {0,              0,              0,              X0,             Y0,             Y1,             X1,             X2,             Y2 ^ Z3 ^ X6,   Z2 ^ X3 ^ Y5,   Z1 ^ Y3 ^ X5,   Z0 ^ X4 ^ Y4    },
-    {0,              0,              0,              0,              Y0,             Y1,             X0,             X1,             Y2 ^ Z3 ^ X5,   X2 ^ Z2 ^ Y5,   Z1 ^ Y3 ^ X4,   Z0 ^ X3 ^ Y4    },
-    {X0,             X1,             X2,             X3,             Y0,             Y1,             Y2,             Y3,             Z3 ^ Y4 ^ X7,   Z2 ^ X4 ^ Y7,   Z1 ^ Y5 ^ X6,   Z0 ^ X5 ^ Y6    },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3 ^ Z3 ^ X7,   Z2 ^ X4 ^ Y6,   Z1 ^ Y4 ^ X6,   Z0 ^ X5 ^ Y5    },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3 ^ Z3 ^ X6,   Z2 ^ X3 ^ Y6,   Z1 ^ Y4 ^ X5,   Z0 ^ X4 ^ Y5    },
-    {0,              0,              0,              X0,             Y0,             Y1,             X1,             X2,             Y2 ^ Z3 ^ X6,   Z2 ^ X3 ^ Y5,   Z1 ^ Y3 ^ X5,   Z0 ^ X4 ^ Y4    },
-    {0,              0,              0,              0,              Y0,             Y1,             X0,             X1,             Y2 ^ Z3 ^ X5,   X2 ^ Z2 ^ Y5,   Z1 ^ Y3 ^ X4,   Z0 ^ X3 ^ Y4    },
-    {X0,             X1,             X2,             X3,             Y0,             Y1,             Y2,             Y3,             Y4,             X4,             Y5,             X5              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             X4,             Y4,             X5              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             X3,             Y4,             X4              },
-    {0,              0,              0,              X0,             Y0,             Y1,             X1,             X2,             Y2,             X3,             Y3,             X4              },
-    {0,              0,              0,              0,              Y0,             Y1,             X0,             X1,             Y2,             X2,             Y3,             X3              },
-    {X0,             X1,             X2,             X3,             Y0,             Y1,             Y2,             Y3,             Y4,             Z0 ^ X4 ^ Y5,   Y5,             X5              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             Z0 ^ X4 ^ Y4,   Y4,             X5              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             Z0 ^ X3 ^ Y4,   Y4,             X4              },
-    {0,              0,              0,              X0,             Y0,             Y1,             X1,             X2,             Y2,             Z0 ^ X3 ^ Y3,   Y3,             X4              },
-    {0,              0,              0,              0,              Y0,             Y1,             X0,             X1,             Y2,             Z0 ^ X2 ^ Y3,   Y3,             X3              },
-    {X0,             X1,             X2,             X3,             Y0,             Y1,             Y2,             Y3,             Y4,             Z1 ^ X4 ^ Y6,   Z0 ^ X5 ^ Y5,   X5              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             Z1 ^ X4 ^ Y5,   Z0 ^ Y4 ^ X5,   X5              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             Z1 ^ X3 ^ Y5,   Z0 ^ X4 ^ Y4,   X4              },
-    {0,              0,              0,              X0,             Y0,             Y1,             X1,             X2,             Y2,             Z1 ^ X3 ^ Y4,   Z0 ^ Y3 ^ X4,   X4              },
-    {0,              0,              0,              0,              Y0,             Y1,             X0,             X1,             Y2,             Z1 ^ X2 ^ Y4,   Z0 ^ X3 ^ Y3,   X3              },
-    {X0,             X1,             X2,             X3,             Y0,             Y1,             Y2,             Y3,             Y4,             Z2 ^ X4 ^ Y7,   Z1 ^ Y5 ^ X6,   Z0 ^ X5 ^ Y6    },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             Z2 ^ X4 ^ Y6,   Z1 ^ Y4 ^ X6,   Z0 ^ X5 ^ Y5    },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             Z2 ^ X3 ^ Y6,   Z1 ^ Y4 ^ X5,   Z0 ^ X4 ^ Y5    },
-    {0,              0,              0,              X0,             Y0,             Y1,             X1,             X2,             Y2,             Z2 ^ X3 ^ Y5,   Z1 ^ Y3 ^ X5,   Z0 ^ X4 ^ Y4    },
-    {0,              0,              0,              0,              Y0,             Y1,             X0,             X1,             Y2,             X2 ^ Z2 ^ Y5,   Z1 ^ Y3 ^ X4,   Z0 ^ X3 ^ Y4    },
-    {X0,             X1,             X2,             X3,             Y0,             Y1,             Y2,             Y3,             Y4,             Z2 ^ X4 ^ Y7,   Z1 ^ Y5 ^ X6,   Z0 ^ X5 ^ Y6    },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             Z2 ^ X4 ^ Y6,   Z1 ^ Y4 ^ X6,   Z0 ^ X5 ^ Y5    },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             Z2 ^ X3 ^ Y6,   Z1 ^ Y4 ^ X5,   Z0 ^ X4 ^ Y5    },
-    {0,              0,              0,              X0,             Y0,             Y1,             X1,             X2,             Y2,             Z2 ^ X3 ^ Y5,   Z1 ^ Y3 ^ X5,   Z0 ^ X4 ^ Y4    },
-    {0,              0,              0,              0,              Y0,             Y1,             X0,             X1,             Y2,             X2 ^ Z2 ^ Y5,   Z1 ^ Y3 ^ X4,   Z0 ^ X3 ^ Y4    },
-    {X0,             X1,             X2,             X3,             Y0,             Y1,             Y2,             Y3,             Y4,             Z2 ^ X4 ^ Y7,   Z1 ^ Y5 ^ X6,   Z0 ^ X5 ^ Y6    },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             Z2 ^ X4 ^ Y6,   Z1 ^ Y4 ^ X6,   Z0 ^ X5 ^ Y5    },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             Z2 ^ X3 ^ Y6,   Z1 ^ Y4 ^ X5,   Z0 ^ X4 ^ Y5    },
-    {0,              0,              0,              X0,             Y0,             Y1,             X1,             X2,             Y2,             Z2 ^ X3 ^ Y5,   Z1 ^ Y3 ^ X5,   Z0 ^ X4 ^ Y4    },
-    {0,              0,              0,              0,              Y0,             Y1,             X0,             X1,             Y2,             X2 ^ Z2 ^ Y5,   Z1 ^ Y3 ^ X4,   Z0 ^ X3 ^ Y4    },
-    {X0,             X1,             X2,             X3,             Y0,             Y1,             Y2,             Y3,             Y4,             Z2 ^ X4 ^ Y7,   Z1 ^ Y5 ^ X6,   Z0 ^ X5 ^ Y6    },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             Z2 ^ X4 ^ Y6,   Z1 ^ Y4 ^ X6,   Z0 ^ X5 ^ Y5    },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             Z2 ^ X3 ^ Y6,   Z1 ^ Y4 ^ X5,   Z0 ^ X4 ^ Y5    },
-    {0,              0,              0,              X0,             Y0,             Y1,             X1,             X2,             Y2,             Z2 ^ X3 ^ Y5,   Z1 ^ Y3 ^ X5,   Z0 ^ X4 ^ Y4    },
-    {0,              0,              0,              0,              Y0,             Y1,             X0,             X1,             Y2,             X2 ^ Z2 ^ Y5,   Z1 ^ Y3 ^ X4,   Z0 ^ X3 ^ Y4    },
-    {X0,             X1,             X2,             X3,             Y0,             Y1,             Y2,             Y3,             Y4,             X4,             Y5,             X5              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             X4,             Y4,             X5              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             X3,             Y4,             X4              },
-    {0,              0,              0,              X0,             Y0,             Y1,             X1,             X2,             Y2,             X3,             Y3,             X4              },
-    {0,              0,              0,              0,              Y0,             Y1,             X0,             X1,             Y2,             X2,             Y3,             X3              },
-    {X0,             X1,             X2,             X3,             Y0,             Y1,             Y2,             Y3,             Y4,             X4,             Z0 ^ X5 ^ Y5,   X5              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             X4,             Z0 ^ Y4 ^ X5,   X5              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             X3,             Z0 ^ X4 ^ Y4,   X4              },
-    {0,              0,              0,              X0,             Y0,             Y1,             X1,             X2,             Y2,             X3,             Z0 ^ Y3 ^ X4,   X4              },
-    {0,              0,              0,              0,              Y0,             Y1,             X0,             X1,             Y2,             X2,             Z0 ^ X3 ^ Y3,   X3              },
-    {X0,             X1,             X2,             X3,             Y0,             Y1,             Y2,             Y3,             Y4,             X4,             Z1 ^ Y5 ^ X6,   Z0 ^ X5 ^ Y6    },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             X4,             Z1 ^ Y4 ^ X6,   Z0 ^ X5 ^ Y5    },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             X3,             Z1 ^ Y4 ^ X5,   Z0 ^ X4 ^ Y5    },
-    {0,              0,              0,              X0,             Y0,             Y1,             X1,             X2,             Y2,             X3,             Z1 ^ Y3 ^ X5,   Z0 ^ X4 ^ Y4    },
-    {0,              0,              0,              0,              Y0,             Y1,             X0,             X1,             Y2,             X2,             Z1 ^ Y3 ^ X4,   Z0 ^ X3 ^ Y4    },
-    {X0,             X1,             X2,             X3,             Y0,             Y1,             Y2,             Y3,             Y4,             X4,             Z1 ^ Y5 ^ X6,   Z0 ^ X5 ^ Y6    },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             X4,             Z1 ^ Y4 ^ X6,   Z0 ^ X5 ^ Y5    },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             X3,             Z1 ^ Y4 ^ X5,   Z0 ^ X4 ^ Y5    },
-    {0,              0,              0,              X0,             Y0,             Y1,             X1,             X2,             Y2,             X3,             Z1 ^ Y3 ^ X5,   Z0 ^ X4 ^ Y4    },
-    {0,              0,              0,              0,              Y0,             Y1,             X0,             X1,             Y2,             X2,             Z1 ^ Y3 ^ X4,   Z0 ^ X3 ^ Y4    },
-    {X0,             X1,             X2,             X3,             Y0,             Y1,             Y2,             Y3,             Y4,             X4,             Z1 ^ Y5 ^ X6,   Z0 ^ X5 ^ Y6    },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             X4,             Z1 ^ Y4 ^ X6,   Z0 ^ X5 ^ Y5    },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             X3,             Z1 ^ Y4 ^ X5,   Z0 ^ X4 ^ Y5    },
-    {0,              0,              0,              X0,             Y0,             Y1,             X1,             X2,             Y2,             X3,             Z1 ^ Y3 ^ X5,   Z0 ^ X4 ^ Y4    },
-    {0,              0,              0,              0,              Y0,             Y1,             X0,             X1,             Y2,             X2,             Z1 ^ Y3 ^ X4,   Z0 ^ X3 ^ Y4    },
-    {X0,             X1,             X2,             X3,             Y0,             Y1,             Y2,             Y3,             Y4,             X4,             Z1 ^ Y5 ^ X6,   Z0 ^ X5 ^ Y6    },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             X4,             Z1 ^ Y4 ^ X6,   Z0 ^ X5 ^ Y5    },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             X3,             Z1 ^ Y4 ^ X5,   Z0 ^ X4 ^ Y5    },
-    {0,              0,              0,              X0,             Y0,             Y1,             X1,             X2,             Y2,             X3,             Z1 ^ Y3 ^ X5,   Z0 ^ X4 ^ Y4    },
-    {0,              0,              0,              0,              Y0,             Y1,             X0,             X1,             Y2,             X2,             Z1 ^ Y3 ^ X4,   Z0 ^ X3 ^ Y4    },
-    {X0,             X1,             X2,             X3,             Y0,             Y1,             Y2,             Y3,             Y4,             X4,             Z1 ^ Y5 ^ X6,   Z0 ^ X5 ^ Y6    },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             X4,             Z1 ^ Y4 ^ X6,   Z0 ^ X5 ^ Y5    },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             X3,             Z1 ^ Y4 ^ X5,   Z0 ^ X4 ^ Y5    },
-    {0,              0,              0,              X0,             Y0,             Y1,             X1,             X2,             Y2,             X3,             Z1 ^ Y3 ^ X5,   Z0 ^ X4 ^ Y4    },
-    {0,              0,              0,              0,              Y0,             Y1,             X0,             X1,             Y2,             X2,             Z1 ^ Y3 ^ X4,   Z0 ^ X3 ^ Y4    },
+    {   1,   18,    3,    3,    0, } , // 1 pipes 1 bpe @ SW_64K_Z_X 4xaa @ Navi1x
+    {   2,   19,   90,   62,    0, } , // 1 pipes 2 bpe @ SW_64K_Z_X 4xaa @ Navi1x
+    {   2,   20,    3,   63,    0, } , // 1 pipes 4 bpe @ SW_64K_Z_X 4xaa @ Navi1x
+    {   2,   21,    4,   64,    0, } , // 1 pipes 8 bpe @ SW_64K_Z_X 4xaa @ Navi1x
+    {   2,   22,    5,   65,    0, } , // 1 pipes 16 bpe @ SW_64K_Z_X 4xaa @ Navi1x
+    {   3,   18,    8,    3,    0, } , // 2 pipes 1 bpe @ SW_64K_Z_X 4xaa @ Navi1x
+    {   3,   19,   91,   62,    0, } , // 2 pipes 2 bpe @ SW_64K_Z_X 4xaa @ Navi1x
+    {   3,   20,    8,   66,    0, } , // 2 pipes 4 bpe @ SW_64K_Z_X 4xaa @ Navi1x
+    {   3,   21,   63,   67,    0, } , // 2 pipes 8 bpe @ SW_64K_Z_X 4xaa @ Navi1x
+    {   3,   22,   64,   68,    0, } , // 2 pipes 16 bpe @ SW_64K_Z_X 4xaa @ Navi1x
+    {   3,   18,   67,    3,    0, } , // 4 pipes 1 bpe @ SW_64K_Z_X 4xaa @ Navi1x
+    {   3,   19,   92,   62,    0, } , // 4 pipes 2 bpe @ SW_64K_Z_X 4xaa @ Navi1x
+    {   3,   20,   67,   63,    0, } , // 4 pipes 4 bpe @ SW_64K_Z_X 4xaa @ Navi1x
+    {   3,   21,   68,   64,    0, } , // 4 pipes 8 bpe @ SW_64K_Z_X 4xaa @ Navi1x
+    {   3,   22,   69,   69,    0, } , // 4 pipes 16 bpe @ SW_64K_Z_X 4xaa @ Navi1x
+    {   3,   18,   72,   27,    0, } , // 8 pipes 1 bpe @ SW_64K_Z_X 4xaa @ Navi1x
+    {   3,   19,   72,   70,    0, } , // 8 pipes 2 bpe @ SW_64K_Z_X 4xaa @ Navi1x
+    {   3,   20,   72,   71,    0, } , // 8 pipes 4 bpe @ SW_64K_Z_X 4xaa @ Navi1x
+    {   3,   21,   93,   72,    0, } , // 8 pipes 8 bpe @ SW_64K_Z_X 4xaa @ Navi1x
+    {   3,   22,   94,   73,    0, } , // 8 pipes 16 bpe @ SW_64K_Z_X 4xaa @ Navi1x
+    {   3,   18,   74,   31,    0, } , // 16 pipes 1 bpe @ SW_64K_Z_X 4xaa @ Navi1x
+    {   3,   19,   74,   74,    0, } , // 16 pipes 2 bpe @ SW_64K_Z_X 4xaa @ Navi1x
+    {   3,   20,   74,   75,    0, } , // 16 pipes 4 bpe @ SW_64K_Z_X 4xaa @ Navi1x
+    {   3,   21,   95,   76,    0, } , // 16 pipes 8 bpe @ SW_64K_Z_X 4xaa @ Navi1x
+    {   3,   22,   96,   76,    0, } , // 16 pipes 16 bpe @ SW_64K_Z_X 4xaa @ Navi1x
+    {   3,   18,   76,   77,    0, } , // 32 pipes 1 bpe @ SW_64K_Z_X 4xaa @ Navi1x
+    {   3,   19,   76,   78,    0, } , // 32 pipes 2 bpe @ SW_64K_Z_X 4xaa @ Navi1x
+    {   3,   20,   76,   56,    0, } , // 32 pipes 4 bpe @ SW_64K_Z_X 4xaa @ Navi1x
+    {   3,   21,   97,   79,    0, } , // 32 pipes 8 bpe @ SW_64K_Z_X 4xaa @ Navi1x
+    {   3,   22,   98,   79,    0, } , // 32 pipes 16 bpe @ SW_64K_Z_X 4xaa @ Navi1x
+    {   3,   18,   79,   80,    0, } , // 64 pipes 1 bpe @ SW_64K_Z_X 4xaa @ Navi1x
+    {   3,   19,   79,   81,    0, } , // 64 pipes 2 bpe @ SW_64K_Z_X 4xaa @ Navi1x
+    {   3,   20,   79,   41,    0, } , // 64 pipes 4 bpe @ SW_64K_Z_X 4xaa @ Navi1x
+    {   3,   21,   99,   82,    0, } , // 64 pipes 8 bpe @ SW_64K_Z_X 4xaa @ Navi1x
+    {   3,   22,  100,   82,    0, } , // 64 pipes 16 bpe @ SW_64K_Z_X 4xaa @ Navi1x
 };
 
-const UINT_64 SW_4K_D_X[][12]=
+const ADDR_SW_PATINFO SW_64K_Z_X_8xaa_PATINFO[] =
 {
-    {X0,             X1,             X2,             Y1,             Y0,             Y2,             X3,             Y3,             Y4,             X4,             Y5,             X5              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             X4,             Y4,             X5              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             X3,             Y4,             X4              },
-    {0,              0,              0,              X0,             Y0,             X1,             X2,             Y1,             Y2,             X3,             Y3,             X4              },
-    {0,              0,              0,              0,              X0,             Y0,             X1,             Y1,             Y2,             X2,             Y3,             X3              },
-    {X0,             X1,             X2,             Y1,             Y0,             Y2,             X3,             Y3,             Z0 ^ X4 ^ Y4,   X4,             Y5,             X5              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Z0 ^ Y3 ^ X4,   X4,             Y4,             X5              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Z0 ^ X3 ^ Y3,   X3,             Y4,             X4              },
-    {0,              0,              0,              X0,             Y0,             X1,             X2,             Y1,             Z0 ^ Y2 ^ X3,   X3,             Y3,             X4              },
-    {0,              0,              0,              0,              X0,             Y0,             X1,             Y1,             Z0 ^ X2 ^ Y2,   X2,             Y3,             X3              },
-    {X0,             X1,             X2,             Y1,             Y0,             Y2,             X3,             Y3,             Z1 ^ Y4 ^ X5,   Z0 ^ X4 ^ Y5,   Y5,             X5              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Z1 ^ Y3 ^ X5,   Z0 ^ X4 ^ Y4,   Y4,             X5              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Z1 ^ Y3 ^ X4,   Z0 ^ X3 ^ Y4,   Y4,             X4              },
-    {0,              0,              0,              X0,             Y0,             X1,             X2,             Y1,             Z1 ^ Y2 ^ X4,   Z0 ^ X3 ^ Y3,   Y3,             X4              },
-    {0,              0,              0,              0,              X0,             Y0,             X1,             Y1,             Z1 ^ Y2 ^ X3,   Z0 ^ X2 ^ Y3,   Y3,             X3              },
-    {X0,             X1,             X2,             Y1,             Y0,             Y2,             X3,             Y3,             Z2 ^ Y4 ^ X6,   Z1 ^ X4 ^ Y6,   Z0 ^ X5 ^ Y5,   X5              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Z2 ^ Y3 ^ X6,   Z1 ^ X4 ^ Y5,   Z0 ^ Y4 ^ X5,   X5              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Z2 ^ Y3 ^ X5,   Z1 ^ X3 ^ Y5,   Z0 ^ X4 ^ Y4,   X4              },
-    {0,              0,              0,              X0,             Y0,             X1,             X2,             Y1,             Y2 ^ Z2 ^ X5,   Z1 ^ X3 ^ Y4,   Z0 ^ Y3 ^ X4,   X4              },
-    {0,              0,              0,              0,              X0,             Y0,             X1,             Y1,             Y2 ^ Z2 ^ X4,   Z1 ^ X2 ^ Y4,   Z0 ^ X3 ^ Y3,   X3              },
-    {X0,             X1,             X2,             Y1,             Y0,             Y2,             X3,             Y3,             Z3 ^ Y4 ^ X7,   Z2 ^ X4 ^ Y7,   Z1 ^ Y5 ^ X6,   Z0 ^ X5 ^ Y6    },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3 ^ Z3 ^ X7,   Z2 ^ X4 ^ Y6,   Z1 ^ Y4 ^ X6,   Z0 ^ X5 ^ Y5    },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3 ^ Z3 ^ X6,   Z2 ^ X3 ^ Y6,   Z1 ^ Y4 ^ X5,   Z0 ^ X4 ^ Y5    },
-    {0,              0,              0,              X0,             Y0,             X1,             X2,             Y1,             Y2 ^ Z3 ^ X6,   Z2 ^ X3 ^ Y5,   Z1 ^ Y3 ^ X5,   Z0 ^ X4 ^ Y4    },
-    {0,              0,              0,              0,              X0,             Y0,             X1,             Y1,             Y2 ^ Z3 ^ X5,   X2 ^ Z2 ^ Y5,   Z1 ^ Y3 ^ X4,   Z0 ^ X3 ^ Y4    },
-    {X0,             X1,             X2,             Y1,             Y0,             Y2,             X3,             Y3,             Z3 ^ Y4 ^ X7,   Z2 ^ X4 ^ Y7,   Z1 ^ Y5 ^ X6,   Z0 ^ X5 ^ Y6    },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3 ^ Z3 ^ X7,   Z2 ^ X4 ^ Y6,   Z1 ^ Y4 ^ X6,   Z0 ^ X5 ^ Y5    },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3 ^ Z3 ^ X6,   Z2 ^ X3 ^ Y6,   Z1 ^ Y4 ^ X5,   Z0 ^ X4 ^ Y5    },
-    {0,              0,              0,              X0,             Y0,             X1,             X2,             Y1,             Y2 ^ Z3 ^ X6,   Z2 ^ X3 ^ Y5,   Z1 ^ Y3 ^ X5,   Z0 ^ X4 ^ Y4    },
-    {0,              0,              0,              0,              X0,             Y0,             X1,             Y1,             Y2 ^ Z3 ^ X5,   X2 ^ Z2 ^ Y5,   Z1 ^ Y3 ^ X4,   Z0 ^ X3 ^ Y4    },
-    {X0,             X1,             X2,             Y1,             Y0,             Y2,             X3,             Y3,             Z3 ^ Y4 ^ X7,   Z2 ^ X4 ^ Y7,   Z1 ^ Y5 ^ X6,   Z0 ^ X5 ^ Y6    },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3 ^ Z3 ^ X7,   Z2 ^ X4 ^ Y6,   Z1 ^ Y4 ^ X6,   Z0 ^ X5 ^ Y5    },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3 ^ Z3 ^ X6,   Z2 ^ X3 ^ Y6,   Z1 ^ Y4 ^ X5,   Z0 ^ X4 ^ Y5    },
-    {0,              0,              0,              X0,             Y0,             X1,             X2,             Y1,             Y2 ^ Z3 ^ X6,   Z2 ^ X3 ^ Y5,   Z1 ^ Y3 ^ X5,   Z0 ^ X4 ^ Y4    },
-    {0,              0,              0,              0,              X0,             Y0,             X1,             Y1,             Y2 ^ Z3 ^ X5,   X2 ^ Z2 ^ Y5,   Z1 ^ Y3 ^ X4,   Z0 ^ X3 ^ Y4    },
-    {X0,             X1,             X2,             Y1,             Y0,             Y2,             X3,             Y3,             Y4,             X4,             Y5,             X5              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             X4,             Y4,             X5              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             X3,             Y4,             X4              },
-    {0,              0,              0,              X0,             Y0,             X1,             X2,             Y1,             Y2,             X3,             Y3,             X4              },
-    {0,              0,              0,              0,              X0,             Y0,             X1,             Y1,             Y2,             X2,             Y3,             X3              },
-    {X0,             X1,             X2,             Y1,             Y0,             Y2,             X3,             Y3,             Y4,             Z0 ^ X4 ^ Y5,   Y5,             X5              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             Z0 ^ X4 ^ Y4,   Y4,             X5              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             Z0 ^ X3 ^ Y4,   Y4,             X4              },
-    {0,              0,              0,              X0,             Y0,             X1,             X2,             Y1,             Y2,             Z0 ^ X3 ^ Y3,   Y3,             X4              },
-    {0,              0,              0,              0,              X0,             Y0,             X1,             Y1,             Y2,             Z0 ^ X2 ^ Y3,   Y3,             X3              },
-    {X0,             X1,             X2,             Y1,             Y0,             Y2,             X3,             Y3,             Y4,             Z1 ^ X4 ^ Y6,   Z0 ^ X5 ^ Y5,   X5              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             Z1 ^ X4 ^ Y5,   Z0 ^ Y4 ^ X5,   X5              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             Z1 ^ X3 ^ Y5,   Z0 ^ X4 ^ Y4,   X4              },
-    {0,              0,              0,              X0,             Y0,             X1,             X2,             Y1,             Y2,             Z1 ^ X3 ^ Y4,   Z0 ^ Y3 ^ X4,   X4              },
-    {0,              0,              0,              0,              X0,             Y0,             X1,             Y1,             Y2,             Z1 ^ X2 ^ Y4,   Z0 ^ X3 ^ Y3,   X3              },
-    {X0,             X1,             X2,             Y1,             Y0,             Y2,             X3,             Y3,             Y4,             Z2 ^ X4 ^ Y7,   Z1 ^ Y5 ^ X6,   Z0 ^ X5 ^ Y6    },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             Z2 ^ X4 ^ Y6,   Z1 ^ Y4 ^ X6,   Z0 ^ X5 ^ Y5    },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             Z2 ^ X3 ^ Y6,   Z1 ^ Y4 ^ X5,   Z0 ^ X4 ^ Y5    },
-    {0,              0,              0,              X0,             Y0,             X1,             X2,             Y1,             Y2,             Z2 ^ X3 ^ Y5,   Z1 ^ Y3 ^ X5,   Z0 ^ X4 ^ Y4    },
-    {0,              0,              0,              0,              X0,             Y0,             X1,             Y1,             Y2,             X2 ^ Z2 ^ Y5,   Z1 ^ Y3 ^ X4,   Z0 ^ X3 ^ Y4    },
-    {X0,             X1,             X2,             Y1,             Y0,             Y2,             X3,             Y3,             Y4,             Z2 ^ X4 ^ Y7,   Z1 ^ Y5 ^ X6,   Z0 ^ X5 ^ Y6    },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             Z2 ^ X4 ^ Y6,   Z1 ^ Y4 ^ X6,   Z0 ^ X5 ^ Y5    },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             Z2 ^ X3 ^ Y6,   Z1 ^ Y4 ^ X5,   Z0 ^ X4 ^ Y5    },
-    {0,              0,              0,              X0,             Y0,             X1,             X2,             Y1,             Y2,             Z2 ^ X3 ^ Y5,   Z1 ^ Y3 ^ X5,   Z0 ^ X4 ^ Y4    },
-    {0,              0,              0,              0,              X0,             Y0,             X1,             Y1,             Y2,             X2 ^ Z2 ^ Y5,   Z1 ^ Y3 ^ X4,   Z0 ^ X3 ^ Y4    },
-    {X0,             X1,             X2,             Y1,             Y0,             Y2,             X3,             Y3,             Y4,             Z2 ^ X4 ^ Y7,   Z1 ^ Y5 ^ X6,   Z0 ^ X5 ^ Y6    },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             Z2 ^ X4 ^ Y6,   Z1 ^ Y4 ^ X6,   Z0 ^ X5 ^ Y5    },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             Z2 ^ X3 ^ Y6,   Z1 ^ Y4 ^ X5,   Z0 ^ X4 ^ Y5    },
-    {0,              0,              0,              X0,             Y0,             X1,             X2,             Y1,             Y2,             Z2 ^ X3 ^ Y5,   Z1 ^ Y3 ^ X5,   Z0 ^ X4 ^ Y4    },
-    {0,              0,              0,              0,              X0,             Y0,             X1,             Y1,             Y2,             X2 ^ Z2 ^ Y5,   Z1 ^ Y3 ^ X4,   Z0 ^ X3 ^ Y4    },
-    {X0,             X1,             X2,             Y1,             Y0,             Y2,             X3,             Y3,             Y4,             Z2 ^ X4 ^ Y7,   Z1 ^ Y5 ^ X6,   Z0 ^ X5 ^ Y6    },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             Z2 ^ X4 ^ Y6,   Z1 ^ Y4 ^ X6,   Z0 ^ X5 ^ Y5    },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             Z2 ^ X3 ^ Y6,   Z1 ^ Y4 ^ X5,   Z0 ^ X4 ^ Y5    },
-    {0,              0,              0,              X0,             Y0,             X1,             X2,             Y1,             Y2,             Z2 ^ X3 ^ Y5,   Z1 ^ Y3 ^ X5,   Z0 ^ X4 ^ Y4    },
-    {0,              0,              0,              0,              X0,             Y0,             X1,             Y1,             Y2,             X2 ^ Z2 ^ Y5,   Z1 ^ Y3 ^ X4,   Z0 ^ X3 ^ Y4    },
-    {X0,             X1,             X2,             Y1,             Y0,             Y2,             X3,             Y3,             Y4,             X4,             Y5,             X5              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             X4,             Y4,             X5              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             X3,             Y4,             X4              },
-    {0,              0,              0,              X0,             Y0,             X1,             X2,             Y1,             Y2,             X3,             Y3,             X4              },
-    {0,              0,              0,              0,              X0,             Y0,             X1,             Y1,             Y2,             X2,             Y3,             X3              },
-    {X0,             X1,             X2,             Y1,             Y0,             Y2,             X3,             Y3,             Y4,             X4,             Z0 ^ X5 ^ Y5,   X5              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             X4,             Z0 ^ Y4 ^ X5,   X5              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             X3,             Z0 ^ X4 ^ Y4,   X4              },
-    {0,              0,              0,              X0,             Y0,             X1,             X2,             Y1,             Y2,             X3,             Z0 ^ Y3 ^ X4,   X4              },
-    {0,              0,              0,              0,              X0,             Y0,             X1,             Y1,             Y2,             X2,             Z0 ^ X3 ^ Y3,   X3              },
-    {X0,             X1,             X2,             Y1,             Y0,             Y2,             X3,             Y3,             Y4,             X4,             Z1 ^ Y5 ^ X6,   Z0 ^ X5 ^ Y6    },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             X4,             Z1 ^ Y4 ^ X6,   Z0 ^ X5 ^ Y5    },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             X3,             Z1 ^ Y4 ^ X5,   Z0 ^ X4 ^ Y5    },
-    {0,              0,              0,              X0,             Y0,             X1,             X2,             Y1,             Y2,             X3,             Z1 ^ Y3 ^ X5,   Z0 ^ X4 ^ Y4    },
-    {0,              0,              0,              0,              X0,             Y0,             X1,             Y1,             Y2,             X2,             Z1 ^ Y3 ^ X4,   Z0 ^ X3 ^ Y4    },
-    {X0,             X1,             X2,             Y1,             Y0,             Y2,             X3,             Y3,             Y4,             X4,             Z1 ^ Y5 ^ X6,   Z0 ^ X5 ^ Y6    },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             X4,             Z1 ^ Y4 ^ X6,   Z0 ^ X5 ^ Y5    },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             X3,             Z1 ^ Y4 ^ X5,   Z0 ^ X4 ^ Y5    },
-    {0,              0,              0,              X0,             Y0,             X1,             X2,             Y1,             Y2,             X3,             Z1 ^ Y3 ^ X5,   Z0 ^ X4 ^ Y4    },
-    {0,              0,              0,              0,              X0,             Y0,             X1,             Y1,             Y2,             X2,             Z1 ^ Y3 ^ X4,   Z0 ^ X3 ^ Y4    },
-    {X0,             X1,             X2,             Y1,             Y0,             Y2,             X3,             Y3,             Y4,             X4,             Z1 ^ Y5 ^ X6,   Z0 ^ X5 ^ Y6    },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             X4,             Z1 ^ Y4 ^ X6,   Z0 ^ X5 ^ Y5    },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             X3,             Z1 ^ Y4 ^ X5,   Z0 ^ X4 ^ Y5    },
-    {0,              0,              0,              X0,             Y0,             X1,             X2,             Y1,             Y2,             X3,             Z1 ^ Y3 ^ X5,   Z0 ^ X4 ^ Y4    },
-    {0,              0,              0,              0,              X0,             Y0,             X1,             Y1,             Y2,             X2,             Z1 ^ Y3 ^ X4,   Z0 ^ X3 ^ Y4    },
-    {X0,             X1,             X2,             Y1,             Y0,             Y2,             X3,             Y3,             Y4,             X4,             Z1 ^ Y5 ^ X6,   Z0 ^ X5 ^ Y6    },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             X4,             Z1 ^ Y4 ^ X6,   Z0 ^ X5 ^ Y5    },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             X3,             Z1 ^ Y4 ^ X5,   Z0 ^ X4 ^ Y5    },
-    {0,              0,              0,              X0,             Y0,             X1,             X2,             Y1,             Y2,             X3,             Z1 ^ Y3 ^ X5,   Z0 ^ X4 ^ Y4    },
-    {0,              0,              0,              0,              X0,             Y0,             X1,             Y1,             Y2,             X2,             Z1 ^ Y3 ^ X4,   Z0 ^ X3 ^ Y4    },
-    {X0,             X1,             X2,             Y1,             Y0,             Y2,             X3,             Y3,             Y4,             X4,             Z1 ^ Y5 ^ X6,   Z0 ^ X5 ^ Y6    },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             X4,             Z1 ^ Y4 ^ X6,   Z0 ^ X5 ^ Y5    },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             X3,             Z1 ^ Y4 ^ X5,   Z0 ^ X4 ^ Y5    },
-    {0,              0,              0,              X0,             Y0,             X1,             X2,             Y1,             Y2,             X3,             Z1 ^ Y3 ^ X5,   Z0 ^ X4 ^ Y4    },
-    {0,              0,              0,              0,              X0,             Y0,             X1,             Y1,             Y2,             X2,             Z1 ^ Y3 ^ X4,   Z0 ^ X3 ^ Y4    },
+    {   2,   23,    3,   43,    0, } , // 1 pipes 1 bpe @ SW_64K_Z_X 8xaa @ Navi1x
+    {   2,   24,    3,   63,    0, } , // 1 pipes 2 bpe @ SW_64K_Z_X 8xaa @ Navi1x
+    {   2,   25,    3,   83,    0, } , // 1 pipes 4 bpe @ SW_64K_Z_X 8xaa @ Navi1x
+    {   2,   26,   81,   84,    0, } , // 1 pipes 8 bpe @ SW_64K_Z_X 8xaa @ Navi1x
+    {   2,   27,    5,   85,    0, } , // 1 pipes 16 bpe @ SW_64K_Z_X 8xaa @ Navi1x
+    {   3,   23,    8,   43,    0, } , // 2 pipes 1 bpe @ SW_64K_Z_X 8xaa @ Navi1x
+    {   3,   24,    8,   66,    0, } , // 2 pipes 2 bpe @ SW_64K_Z_X 8xaa @ Navi1x
+    {   3,   25,    8,   86,    0, } , // 2 pipes 4 bpe @ SW_64K_Z_X 8xaa @ Navi1x
+    {   3,   26,  101,   87,    0, } , // 2 pipes 8 bpe @ SW_64K_Z_X 8xaa @ Navi1x
+    {   3,   27,   64,   88,    0, } , // 2 pipes 16 bpe @ SW_64K_Z_X 8xaa @ Navi1x
+    {   3,   23,   67,   43,    0, } , // 4 pipes 1 bpe @ SW_64K_Z_X 8xaa @ Navi1x
+    {   3,   24,   67,   63,    0, } , // 4 pipes 2 bpe @ SW_64K_Z_X 8xaa @ Navi1x
+    {   3,   25,   67,   83,    0, } , // 4 pipes 4 bpe @ SW_64K_Z_X 8xaa @ Navi1x
+    {   3,   26,   85,   84,    0, } , // 4 pipes 8 bpe @ SW_64K_Z_X 8xaa @ Navi1x
+    {   3,   27,  102,   89,    0, } , // 4 pipes 16 bpe @ SW_64K_Z_X 8xaa @ Navi1x
+    {   3,   23,   72,   47,    0, } , // 8 pipes 1 bpe @ SW_64K_Z_X 8xaa @ Navi1x
+    {   3,   24,   72,   71,    0, } , // 8 pipes 2 bpe @ SW_64K_Z_X 8xaa @ Navi1x
+    {   3,   25,   72,   90,    0, } , // 8 pipes 4 bpe @ SW_64K_Z_X 8xaa @ Navi1x
+    {   3,   26,  103,   91,    0, } , // 8 pipes 8 bpe @ SW_64K_Z_X 8xaa @ Navi1x
+    {   3,   27,  104,   92,    0, } , // 8 pipes 16 bpe @ SW_64K_Z_X 8xaa @ Navi1x
+    {   3,   23,  105,   51,    0, } , // 16 pipes 1 bpe @ SW_64K_Z_X 8xaa @ Navi1x
+    {   3,   24,  105,   75,    0, } , // 16 pipes 2 bpe @ SW_64K_Z_X 8xaa @ Navi1x
+    {   3,   25,   87,   93,    0, } , // 16 pipes 4 bpe @ SW_64K_Z_X 8xaa @ Navi1x
+    {   3,   26,   96,   76,    0, } , // 16 pipes 8 bpe @ SW_64K_Z_X 8xaa @ Navi1x
+    {   3,   27,  106,   94,    0, } , // 16 pipes 16 bpe @ SW_64K_Z_X 8xaa @ Navi1x
+    {   3,   23,  107,   95,    0, } , // 32 pipes 1 bpe @ SW_64K_Z_X 8xaa @ Navi1x
+    {   3,   24,  108,   56,    0, } , // 32 pipes 2 bpe @ SW_64K_Z_X 8xaa @ Navi1x
+    {   3,   25,   88,   57,    0, } , // 32 pipes 4 bpe @ SW_64K_Z_X 8xaa @ Navi1x
+    {   3,   26,   98,   79,    0, } , // 32 pipes 8 bpe @ SW_64K_Z_X 8xaa @ Navi1x
+    {   3,   27,  109,   96,    0, } , // 32 pipes 16 bpe @ SW_64K_Z_X 8xaa @ Navi1x
+    {   3,   23,  110,   97,    0, } , // 64 pipes 1 bpe @ SW_64K_Z_X 8xaa @ Navi1x
+    {   3,   24,  111,   41,    0, } , // 64 pipes 2 bpe @ SW_64K_Z_X 8xaa @ Navi1x
+    {   3,   25,   89,   61,    0, } , // 64 pipes 4 bpe @ SW_64K_Z_X 8xaa @ Navi1x
+    {   3,   26,  100,   82,    0, } , // 64 pipes 8 bpe @ SW_64K_Z_X 8xaa @ Navi1x
+    {   3,   27,  112,   98,    0, } , // 64 pipes 16 bpe @ SW_64K_Z_X 8xaa @ Navi1x
 };
 
-const UINT_64 SW_64K_S[][16]=
+const ADDR_SW_PATINFO SW_64K_S3_PATINFO[] =
 {
-    {X0,             X1,             X2,             X3,             Y0,             Y1,             Y2,             Y3,             Y4,             X4,             Y5,             X5,             Y6,             X6,             Y7,             X7              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             X4,             Y4,             X5,             Y5,             X6,             Y6,             X7              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             X3,             Y4,             X4,             Y5,             X5,             Y6,             X6              },
-    {0,              0,              0,              X0,             Y0,             Y1,             X1,             X2,             Y2,             X3,             Y3,             X4,             Y4,             X5,             Y5,             X6              },
-    {0,              0,              0,              0,              Y0,             Y1,             X0,             X1,             Y2,             X2,             Y3,             X3,             Y4,             X4,             Y5,             X5              },
+    {   1,   29,  131,  148,    0, } , // 1 pipes 1 bpe @ SW_64K_S3 @ Navi1x
+    {   1,   30,  132,  149,    0, } , // 1 pipes 2 bpe @ SW_64K_S3 @ Navi1x
+    {   1,   31,  133,  150,    0, } , // 1 pipes 4 bpe @ SW_64K_S3 @ Navi1x
+    {   1,   32,  134,  151,    0, } , // 1 pipes 8 bpe @ SW_64K_S3 @ Navi1x
+    {   1,   33,  135,  152,    0, } , // 1 pipes 16 bpe @ SW_64K_S3 @ Navi1x
+    {   1,   29,  131,  148,    0, } , // 2 pipes 1 bpe @ SW_64K_S3 @ Navi1x
+    {   1,   30,  132,  149,    0, } , // 2 pipes 2 bpe @ SW_64K_S3 @ Navi1x
+    {   1,   31,  133,  150,    0, } , // 2 pipes 4 bpe @ SW_64K_S3 @ Navi1x
+    {   1,   32,  134,  151,    0, } , // 2 pipes 8 bpe @ SW_64K_S3 @ Navi1x
+    {   1,   33,  135,  152,    0, } , // 2 pipes 16 bpe @ SW_64K_S3 @ Navi1x
+    {   1,   29,  131,  148,    0, } , // 4 pipes 1 bpe @ SW_64K_S3 @ Navi1x
+    {   1,   30,  132,  149,    0, } , // 4 pipes 2 bpe @ SW_64K_S3 @ Navi1x
+    {   1,   31,  133,  150,    0, } , // 4 pipes 4 bpe @ SW_64K_S3 @ Navi1x
+    {   1,   32,  134,  151,    0, } , // 4 pipes 8 bpe @ SW_64K_S3 @ Navi1x
+    {   1,   33,  135,  152,    0, } , // 4 pipes 16 bpe @ SW_64K_S3 @ Navi1x
+    {   1,   29,  131,  148,    0, } , // 8 pipes 1 bpe @ SW_64K_S3 @ Navi1x
+    {   1,   30,  132,  149,    0, } , // 8 pipes 2 bpe @ SW_64K_S3 @ Navi1x
+    {   1,   31,  133,  150,    0, } , // 8 pipes 4 bpe @ SW_64K_S3 @ Navi1x
+    {   1,   32,  134,  151,    0, } , // 8 pipes 8 bpe @ SW_64K_S3 @ Navi1x
+    {   1,   33,  135,  152,    0, } , // 8 pipes 16 bpe @ SW_64K_S3 @ Navi1x
+    {   1,   29,  131,  148,    0, } , // 16 pipes 1 bpe @ SW_64K_S3 @ Navi1x
+    {   1,   30,  132,  149,    0, } , // 16 pipes 2 bpe @ SW_64K_S3 @ Navi1x
+    {   1,   31,  133,  150,    0, } , // 16 pipes 4 bpe @ SW_64K_S3 @ Navi1x
+    {   1,   32,  134,  151,    0, } , // 16 pipes 8 bpe @ SW_64K_S3 @ Navi1x
+    {   1,   33,  135,  152,    0, } , // 16 pipes 16 bpe @ SW_64K_S3 @ Navi1x
+    {   1,   29,  131,  148,    0, } , // 32 pipes 1 bpe @ SW_64K_S3 @ Navi1x
+    {   1,   30,  132,  149,    0, } , // 32 pipes 2 bpe @ SW_64K_S3 @ Navi1x
+    {   1,   31,  133,  150,    0, } , // 32 pipes 4 bpe @ SW_64K_S3 @ Navi1x
+    {   1,   32,  134,  151,    0, } , // 32 pipes 8 bpe @ SW_64K_S3 @ Navi1x
+    {   1,   33,  135,  152,    0, } , // 32 pipes 16 bpe @ SW_64K_S3 @ Navi1x
+    {   1,   29,  131,  148,    0, } , // 64 pipes 1 bpe @ SW_64K_S3 @ Navi1x
+    {   1,   30,  132,  149,    0, } , // 64 pipes 2 bpe @ SW_64K_S3 @ Navi1x
+    {   1,   31,  133,  150,    0, } , // 64 pipes 4 bpe @ SW_64K_S3 @ Navi1x
+    {   1,   32,  134,  151,    0, } , // 64 pipes 8 bpe @ SW_64K_S3 @ Navi1x
+    {   1,   33,  135,  152,    0, } , // 64 pipes 16 bpe @ SW_64K_S3 @ Navi1x
 };
 
-const UINT_64 SW_64K_D[][16]=
+const ADDR_SW_PATINFO SW_64K_S3_X_PATINFO[] =
 {
-    {X0,             X1,             X2,             Y1,             Y0,             Y2,             X3,             Y3,             Y4,             X4,             Y5,             X5,             Y6,             X6,             Y7,             X7              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             X4,             Y4,             X5,             Y5,             X6,             Y6,             X7              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             X3,             Y4,             X4,             Y5,             X5,             Y6,             X6              },
-    {0,              0,              0,              X0,             Y0,             X1,             X2,             Y1,             Y2,             X3,             Y3,             X4,             Y4,             X5,             Y5,             X6              },
-    {0,              0,              0,              0,              X0,             Y0,             X1,             Y1,             Y2,             X2,             Y3,             X3,             Y4,             X4,             Y5,             X5              },
+    {   1,   29,  131,  148,    0, } , // 1 pipes 1 bpe @ SW_64K_S3_X @ Navi1x
+    {   1,   30,  132,  149,    0, } , // 1 pipes 2 bpe @ SW_64K_S3_X @ Navi1x
+    {   1,   31,  133,  150,    0, } , // 1 pipes 4 bpe @ SW_64K_S3_X @ Navi1x
+    {   1,   32,  134,  151,    0, } , // 1 pipes 8 bpe @ SW_64K_S3_X @ Navi1x
+    {   1,   33,  135,  152,    0, } , // 1 pipes 16 bpe @ SW_64K_S3_X @ Navi1x
+    {   3,   29,  136,  148,    0, } , // 2 pipes 1 bpe @ SW_64K_S3_X @ Navi1x
+    {   3,   30,  137,  149,    0, } , // 2 pipes 2 bpe @ SW_64K_S3_X @ Navi1x
+    {   3,   31,  138,  150,    0, } , // 2 pipes 4 bpe @ SW_64K_S3_X @ Navi1x
+    {   3,   32,  139,  151,    0, } , // 2 pipes 8 bpe @ SW_64K_S3_X @ Navi1x
+    {   3,   33,  140,  152,    0, } , // 2 pipes 16 bpe @ SW_64K_S3_X @ Navi1x
+    {   3,   29,  141,  148,    0, } , // 4 pipes 1 bpe @ SW_64K_S3_X @ Navi1x
+    {   3,   30,  142,  149,    0, } , // 4 pipes 2 bpe @ SW_64K_S3_X @ Navi1x
+    {   3,   31,  143,  150,    0, } , // 4 pipes 4 bpe @ SW_64K_S3_X @ Navi1x
+    {   3,   32,  144,  151,    0, } , // 4 pipes 8 bpe @ SW_64K_S3_X @ Navi1x
+    {   3,   33,  145,  152,    0, } , // 4 pipes 16 bpe @ SW_64K_S3_X @ Navi1x
+    {   3,   29,  146,  148,    0, } , // 8 pipes 1 bpe @ SW_64K_S3_X @ Navi1x
+    {   3,   30,  147,  149,    0, } , // 8 pipes 2 bpe @ SW_64K_S3_X @ Navi1x
+    {   3,   31,  148,  150,    0, } , // 8 pipes 4 bpe @ SW_64K_S3_X @ Navi1x
+    {   3,   32,  149,  151,    0, } , // 8 pipes 8 bpe @ SW_64K_S3_X @ Navi1x
+    {   3,   33,  150,  152,    0, } , // 8 pipes 16 bpe @ SW_64K_S3_X @ Navi1x
+    {   3,   29,  151,  148,    0, } , // 16 pipes 1 bpe @ SW_64K_S3_X @ Navi1x
+    {   3,   30,  152,  149,    0, } , // 16 pipes 2 bpe @ SW_64K_S3_X @ Navi1x
+    {   3,   31,  153,  150,    0, } , // 16 pipes 4 bpe @ SW_64K_S3_X @ Navi1x
+    {   3,   32,  154,  151,    0, } , // 16 pipes 8 bpe @ SW_64K_S3_X @ Navi1x
+    {   3,   33,  155,  152,    0, } , // 16 pipes 16 bpe @ SW_64K_S3_X @ Navi1x
+    {   3,   29,  156,  153,    0, } , // 32 pipes 1 bpe @ SW_64K_S3_X @ Navi1x
+    {   3,   30,  157,  154,    0, } , // 32 pipes 2 bpe @ SW_64K_S3_X @ Navi1x
+    {   3,   31,  158,  155,    0, } , // 32 pipes 4 bpe @ SW_64K_S3_X @ Navi1x
+    {   3,   32,  159,  156,    0, } , // 32 pipes 8 bpe @ SW_64K_S3_X @ Navi1x
+    {   3,   33,  160,  157,    0, } , // 32 pipes 16 bpe @ SW_64K_S3_X @ Navi1x
+    {   3,   29,  161,  158,    0, } , // 64 pipes 1 bpe @ SW_64K_S3_X @ Navi1x
+    {   3,   30,  162,  159,    0, } , // 64 pipes 2 bpe @ SW_64K_S3_X @ Navi1x
+    {   3,   31,  163,  160,    0, } , // 64 pipes 4 bpe @ SW_64K_S3_X @ Navi1x
+    {   3,   32,  164,  161,    0, } , // 64 pipes 8 bpe @ SW_64K_S3_X @ Navi1x
+    {   3,   33,  165,  162,    0, } , // 64 pipes 16 bpe @ SW_64K_S3_X @ Navi1x
 };
 
-const UINT_64 SW_64K_S_T[][16]=
+const ADDR_SW_PATINFO SW_64K_S3_T_PATINFO[] =
 {
-    {X0,             X1,             X2,             X3,             Y0,             Y1,             Y2,             Y3,             Y4,             X4,             Y5,             X5,             Y6,             X6,             Y7,             X7              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             X4,             Y4,             X5,             Y5,             X6,             Y6,             X7              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             X3,             Y4,             X4,             Y5,             X5,             Y6,             X6              },
-    {0,              0,              0,              X0,             Y0,             Y1,             X1,             X2,             Y2,             X3,             Y3,             X4,             Y4,             X5,             Y5,             X6              },
-    {0,              0,              0,              0,              Y0,             Y1,             X0,             X1,             Y2,             X2,             Y3,             X3,             Y4,             X4,             Y5,             X5              },
-    {X0,             X1,             X2,             X3,             Y0,             Y1,             Y2,             Y3,             X4 ^ Y4,        X4,             Y5,             X5,             Y6,             X6,             Y7,             X7              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3 ^ X4,        X4,             Y4,             X5,             Y5,             X6,             Y6,             X7              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             X3 ^ Y3,        X3,             Y4,             X4,             Y5,             X5,             Y6,             X6              },
-    {0,              0,              0,              X0,             Y0,             Y1,             X1,             X2,             Y2 ^ X3,        X3,             Y3,             X4,             Y4,             X5,             Y5,             X6              },
-    {0,              0,              0,              0,              Y0,             Y1,             X0,             X1,             X2 ^ Y2,        X2,             Y3,             X3,             Y4,             X4,             Y5,             X5              },
-    {X0,             X1,             X2,             X3,             Y0,             Y1,             Y2,             Y3,             Y4 ^ X5,        X4 ^ Y5,        Y5,             X5,             Y6,             X6,             Y7,             X7              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3 ^ X5,        X4 ^ Y4,        Y4,             X5,             Y5,             X6,             Y6,             X7              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3 ^ X4,        X3 ^ Y4,        Y4,             X4,             Y5,             X5,             Y6,             X6              },
-    {0,              0,              0,              X0,             Y0,             Y1,             X1,             X2,             Y2 ^ X4,        X3 ^ Y3,        Y3,             X4,             Y4,             X5,             Y5,             X6              },
-    {0,              0,              0,              0,              Y0,             Y1,             X0,             X1,             Y2 ^ X3,        X2 ^ Y3,        Y3,             X3,             Y4,             X4,             Y5,             X5              },
-    {X0,             X1,             X2,             X3,             Y0,             Y1,             Y2,             Y3,             Y4 ^ X6,        X4 ^ Y6,        X5 ^ Y5,        X5,             Y6,             X6,             Y7,             X7              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3 ^ X6,        X4 ^ Y5,        Y4 ^ X5,        X5,             Y5,             X6,             Y6,             X7              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3 ^ X5,        X3 ^ Y5,        X4 ^ Y4,        X4,             Y5,             X5,             Y6,             X6              },
-    {0,              0,              0,              X0,             Y0,             Y1,             X1,             X2,             Y2 ^ X5,        X3 ^ Y4,        Y3 ^ X4,        X4,             Y4,             X5,             Y5,             X6              },
-    {0,              0,              0,              0,              Y0,             Y1,             X0,             X1,             Y2 ^ X4,        X2 ^ Y4,        X3 ^ Y3,        X3,             Y4,             X4,             Y5,             X5              },
-    {X0,             X1,             X2,             X3,             Y0,             Y1,             Y2,             Y3,             Y4 ^ X7,        X4 ^ Y7,        Y5 ^ X6,        X5 ^ Y6,        Y6,             X6,             Y7,             X7              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3 ^ X7,        X4 ^ Y6,        Y4 ^ X6,        X5 ^ Y5,        Y5,             X6,             Y6,             X7              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3 ^ X6,        X3 ^ Y6,        Y4 ^ X5,        X4 ^ Y5,        Y5,             X5,             Y6,             X6              },
-    {0,              0,              0,              X0,             Y0,             Y1,             X1,             X2,             Y2 ^ X6,        X3 ^ Y5,        Y3 ^ X5,        X4 ^ Y4,        Y4,             X5,             Y5,             X6              },
-    {0,              0,              0,              0,              Y0,             Y1,             X0,             X1,             Y2 ^ X5,        X2 ^ Y5,        Y3 ^ X4,        X3 ^ Y4,        Y4,             X4,             Y5,             X5              },
-    {X0,             X1,             X2,             X3,             Y0,             Y1,             Y2,             Y3,             Y4,             X4,             Y5 ^ X7,        X5 ^ Y7,        X6 ^ Y6,        X6,             Y7,             X7              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             X4,             Y4 ^ X7,        X5 ^ Y6,        Y5 ^ X6,        X6,             Y6,             X7              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             X3,             Y4 ^ X6,        X4 ^ Y6,        X5 ^ Y5,        X5,             Y6,             X6              },
-    {0,              0,              0,              X0,             Y0,             Y1,             X1,             X2,             Y2,             X3,             Y3 ^ X6,        X4 ^ Y5,        Y4 ^ X5,        X5,             Y5,             X6              },
-    {0,              0,              0,              0,              Y0,             Y1,             X0,             X1,             Y2,             X2,             Y3 ^ X5,        X3 ^ Y5,        X4 ^ Y4,        X4,             Y5,             X5              },
-    {X0,             X1,             X2,             X3,             Y0,             Y1,             Y2,             Y3,             Y4,             X4,             Y5,             X5,             Y6 ^ X7,        X6 ^ Y7,        Y7,             X7              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             X4,             Y4,             X5,             Y5 ^ X7,        X6 ^ Y6,        Y6,             X7              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             X3,             Y4,             X4,             Y5 ^ X6,        X5 ^ Y6,        Y6,             X6              },
-    {0,              0,              0,              X0,             Y0,             Y1,             X1,             X2,             Y2,             X3,             Y3,             X4,             Y4 ^ X6,        X5 ^ Y5,        Y5,             X6              },
-    {0,              0,              0,              0,              Y0,             Y1,             X0,             X1,             Y2,             X2,             Y3,             X3,             Y4 ^ X5,        X4 ^ Y5,        Y5,             X5              },
-    {X0,             X1,             X2,             X3,             Y0,             Y1,             Y2,             Y3,             Y4,             X4,             Y5,             X5,             Y6,             X6,             Y7,             X7              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             X4,             Y4,             X5,             Y5,             X6,             Y6,             X7              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             X3,             Y4,             X4,             Y5,             X5,             Y6,             X6              },
-    {0,              0,              0,              X0,             Y0,             Y1,             X1,             X2,             Y2,             X3,             Y3,             X4,             Y4,             X5,             Y5,             X6              },
-    {0,              0,              0,              0,              Y0,             Y1,             X0,             X1,             Y2,             X2,             Y3,             X3,             Y4,             X4,             Y5,             X5              },
-    {X0,             X1,             X2,             X3,             Y0,             Y1,             Y2,             Y3,             Y4,             X4 ^ Y5,        Y5,             X5,             Y6,             X6,             Y7,             X7              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             X4 ^ Y4,        Y4,             X5,             Y5,             X6,             Y6,             X7              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             X3 ^ Y4,        Y4,             X4,             Y5,             X5,             Y6,             X6              },
-    {0,              0,              0,              X0,             Y0,             Y1,             X1,             X2,             Y2,             X3 ^ Y3,        Y3,             X4,             Y4,             X5,             Y5,             X6              },
-    {0,              0,              0,              0,              Y0,             Y1,             X0,             X1,             Y2,             X2 ^ Y3,        Y3,             X3,             Y4,             X4,             Y5,             X5              },
-    {X0,             X1,             X2,             X3,             Y0,             Y1,             Y2,             Y3,             Y4,             X4 ^ Y6,        X5 ^ Y5,        X5,             Y6,             X6,             Y7,             X7              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             X4 ^ Y5,        Y4 ^ X5,        X5,             Y5,             X6,             Y6,             X7              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             X3 ^ Y5,        X4 ^ Y4,        X4,             Y5,             X5,             Y6,             X6              },
-    {0,              0,              0,              X0,             Y0,             Y1,             X1,             X2,             Y2,             X3 ^ Y4,        Y3 ^ X4,        X4,             Y4,             X5,             Y5,             X6              },
-    {0,              0,              0,              0,              Y0,             Y1,             X0,             X1,             Y2,             X2 ^ Y4,        X3 ^ Y3,        X3,             Y4,             X4,             Y5,             X5              },
-    {X0,             X1,             X2,             X3,             Y0,             Y1,             Y2,             Y3,             Y4,             X4 ^ Y7,        Y5 ^ X6,        X5 ^ Y6,        Y6,             X6,             Y7,             X7              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             X4 ^ Y6,        Y4 ^ X6,        X5 ^ Y5,        Y5,             X6,             Y6,             X7              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             X3 ^ Y6,        Y4 ^ X5,        X4 ^ Y5,        Y5,             X5,             Y6,             X6              },
-    {0,              0,              0,              X0,             Y0,             Y1,             X1,             X2,             Y2,             X3 ^ Y5,        Y3 ^ X5,        X4 ^ Y4,        Y4,             X5,             Y5,             X6              },
-    {0,              0,              0,              0,              Y0,             Y1,             X0,             X1,             Y2,             X2 ^ Y5,        Y3 ^ X4,        X3 ^ Y4,        Y4,             X4,             Y5,             X5              },
-    {X0,             X1,             X2,             X3,             Y0,             Y1,             Y2,             Y3,             Y4,             X4,             Y5 ^ X7,        X5 ^ Y7,        X6 ^ Y6,        X6,             Y7,             X7              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             X4,             Y4 ^ X7,        X5 ^ Y6,        Y5 ^ X6,        X6,             Y6,             X7              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             X3,             Y4 ^ X6,        X4 ^ Y6,        X5 ^ Y5,        X5,             Y6,             X6              },
-    {0,              0,              0,              X0,             Y0,             Y1,             X1,             X2,             Y2,             X3,             Y3 ^ X6,        X4 ^ Y5,        Y4 ^ X5,        X5,             Y5,             X6              },
-    {0,              0,              0,              0,              Y0,             Y1,             X0,             X1,             Y2,             X2,             Y3 ^ X5,        X3 ^ Y5,        X4 ^ Y4,        X4,             Y5,             X5              },
-    {X0,             X1,             X2,             X3,             Y0,             Y1,             Y2,             Y3,             Y4,             X4,             Y5,             X5,             Y6 ^ X7,        X6 ^ Y7,        Y7,             X7              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             X4,             Y4,             X5,             Y5 ^ X7,        X6 ^ Y6,        Y6,             X7              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             X3,             Y4,             X4,             Y5 ^ X6,        X5 ^ Y6,        Y6,             X6              },
-    {0,              0,              0,              X0,             Y0,             Y1,             X1,             X2,             Y2,             X3,             Y3,             X4,             Y4 ^ X6,        X5 ^ Y5,        Y5,             X6              },
-    {0,              0,              0,              0,              Y0,             Y1,             X0,             X1,             Y2,             X2,             Y3,             X3,             Y4 ^ X5,        X4 ^ Y5,        Y5,             X5              },
-    {X0,             X1,             X2,             X3,             Y0,             Y1,             Y2,             Y3,             Y4,             X4,             Y5,             X5,             Y6,             X6,             X7 ^ Y7,        X7              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             X4,             Y4,             X5,             Y5,             X6,             Y6 ^ X7,        X7              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             X3,             Y4,             X4,             Y5,             X5,             X6 ^ Y6,        X6              },
-    {0,              0,              0,              X0,             Y0,             Y1,             X1,             X2,             Y2,             X3,             Y3,             X4,             Y4,             X5,             Y5 ^ X6,        X6              },
-    {0,              0,              0,              0,              Y0,             Y1,             X0,             X1,             Y2,             X2,             Y3,             X3,             Y4,             X4,             X5 ^ Y5,        X5              },
-    {X0,             X1,             X2,             X3,             Y0,             Y1,             Y2,             Y3,             Y4,             X4,             Y5,             X5,             Y6,             X6,             Y7,             X7              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             X4,             Y4,             X5,             Y5,             X6,             Y6,             X7              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             X3,             Y4,             X4,             Y5,             X5,             Y6,             X6              },
-    {0,              0,              0,              X0,             Y0,             Y1,             X1,             X2,             Y2,             X3,             Y3,             X4,             Y4,             X5,             Y5,             X6              },
-    {0,              0,              0,              0,              Y0,             Y1,             X0,             X1,             Y2,             X2,             Y3,             X3,             Y4,             X4,             Y5,             X5              },
-    {X0,             X1,             X2,             X3,             Y0,             Y1,             Y2,             Y3,             Y4,             X4,             X5 ^ Y5,        X5,             Y6,             X6,             Y7,             X7              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             X4,             Y4 ^ X5,        X5,             Y5,             X6,             Y6,             X7              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             X3,             X4 ^ Y4,        X4,             Y5,             X5,             Y6,             X6              },
-    {0,              0,              0,              X0,             Y0,             Y1,             X1,             X2,             Y2,             X3,             Y3 ^ X4,        X4,             Y4,             X5,             Y5,             X6              },
-    {0,              0,              0,              0,              Y0,             Y1,             X0,             X1,             Y2,             X2,             X3 ^ Y3,        X3,             Y4,             X4,             Y5,             X5              },
-    {X0,             X1,             X2,             X3,             Y0,             Y1,             Y2,             Y3,             Y4,             X4,             Y5 ^ X6,        X5 ^ Y6,        Y6,             X6,             Y7,             X7              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             X4,             Y4 ^ X6,        X5 ^ Y5,        Y5,             X6,             Y6,             X7              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             X3,             Y4 ^ X5,        X4 ^ Y5,        Y5,             X5,             Y6,             X6              },
-    {0,              0,              0,              X0,             Y0,             Y1,             X1,             X2,             Y2,             X3,             Y3 ^ X5,        X4 ^ Y4,        Y4,             X5,             Y5,             X6              },
-    {0,              0,              0,              0,              Y0,             Y1,             X0,             X1,             Y2,             X2,             Y3 ^ X4,        X3 ^ Y4,        Y4,             X4,             Y5,             X5              },
-    {X0,             X1,             X2,             X3,             Y0,             Y1,             Y2,             Y3,             Y4,             X4,             Y5 ^ X7,        X5 ^ Y7,        X6 ^ Y6,        X6,             Y7,             X7              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             X4,             Y4 ^ X7,        X5 ^ Y6,        Y5 ^ X6,        X6,             Y6,             X7              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             X3,             Y4 ^ X6,        X4 ^ Y6,        X5 ^ Y5,        X5,             Y6,             X6              },
-    {0,              0,              0,              X0,             Y0,             Y1,             X1,             X2,             Y2,             X3,             Y3 ^ X6,        X4 ^ Y5,        Y4 ^ X5,        X5,             Y5,             X6              },
-    {0,              0,              0,              0,              Y0,             Y1,             X0,             X1,             Y2,             X2,             Y3 ^ X5,        X3 ^ Y5,        X4 ^ Y4,        X4,             Y5,             X5              },
-    {X0,             X1,             X2,             X3,             Y0,             Y1,             Y2,             Y3,             Y4,             X4,             Y5,             X5,             Y6 ^ X7,        X6 ^ Y7,        Y7,             X7              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             X4,             Y4,             X5,             Y5 ^ X7,        X6 ^ Y6,        Y6,             X7              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             X3,             Y4,             X4,             Y5 ^ X6,        X5 ^ Y6,        Y6,             X6              },
-    {0,              0,              0,              X0,             Y0,             Y1,             X1,             X2,             Y2,             X3,             Y3,             X4,             Y4 ^ X6,        X5 ^ Y5,        Y5,             X6              },
-    {0,              0,              0,              0,              Y0,             Y1,             X0,             X1,             Y2,             X2,             Y3,             X3,             Y4 ^ X5,        X4 ^ Y5,        Y5,             X5              },
-    {X0,             X1,             X2,             X3,             Y0,             Y1,             Y2,             Y3,             Y4,             X4,             Y5,             X5,             Y6,             X6,             X7 ^ Y7,        X7              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             X4,             Y4,             X5,             Y5,             X6,             Y6 ^ X7,        X7              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             X3,             Y4,             X4,             Y5,             X5,             X6 ^ Y6,        X6              },
-    {0,              0,              0,              X0,             Y0,             Y1,             X1,             X2,             Y2,             X3,             Y3,             X4,             Y4,             X5,             Y5 ^ X6,        X6              },
-    {0,              0,              0,              0,              Y0,             Y1,             X0,             X1,             Y2,             X2,             Y3,             X3,             Y4,             X4,             X5 ^ Y5,        X5              },
-    {X0,             X1,             X2,             X3,             Y0,             Y1,             Y2,             Y3,             Y4,             X4,             Y5,             X5,             Y6,             X6,             Y7,             X7              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             X4,             Y4,             X5,             Y5,             X6,             Y6,             X7              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             X3,             Y4,             X4,             Y5,             X5,             Y6,             X6              },
-    {0,              0,              0,              X0,             Y0,             Y1,             X1,             X2,             Y2,             X3,             Y3,             X4,             Y4,             X5,             Y5,             X6              },
-    {0,              0,              0,              0,              Y0,             Y1,             X0,             X1,             Y2,             X2,             Y3,             X3,             Y4,             X4,             Y5,             X5              },
+    {   1,   29,  131,  148,    0, } , // 1 pipes 1 bpe @ SW_64K_S3_T @ Navi1x
+    {   1,   30,  132,  149,    0, } , // 1 pipes 2 bpe @ SW_64K_S3_T @ Navi1x
+    {   1,   31,  133,  150,    0, } , // 1 pipes 4 bpe @ SW_64K_S3_T @ Navi1x
+    {   1,   32,  134,  151,    0, } , // 1 pipes 8 bpe @ SW_64K_S3_T @ Navi1x
+    {   1,   33,  135,  152,    0, } , // 1 pipes 16 bpe @ SW_64K_S3_T @ Navi1x
+    {   3,   29,  136,  148,    0, } , // 2 pipes 1 bpe @ SW_64K_S3_T @ Navi1x
+    {   3,   30,  137,  149,    0, } , // 2 pipes 2 bpe @ SW_64K_S3_T @ Navi1x
+    {   3,   31,  138,  150,    0, } , // 2 pipes 4 bpe @ SW_64K_S3_T @ Navi1x
+    {   3,   32,  139,  151,    0, } , // 2 pipes 8 bpe @ SW_64K_S3_T @ Navi1x
+    {   3,   33,  140,  152,    0, } , // 2 pipes 16 bpe @ SW_64K_S3_T @ Navi1x
+    {   3,   29,  141,  148,    0, } , // 4 pipes 1 bpe @ SW_64K_S3_T @ Navi1x
+    {   3,   30,  142,  149,    0, } , // 4 pipes 2 bpe @ SW_64K_S3_T @ Navi1x
+    {   3,   31,  143,  150,    0, } , // 4 pipes 4 bpe @ SW_64K_S3_T @ Navi1x
+    {   3,   32,  144,  151,    0, } , // 4 pipes 8 bpe @ SW_64K_S3_T @ Navi1x
+    {   3,   33,  145,  152,    0, } , // 4 pipes 16 bpe @ SW_64K_S3_T @ Navi1x
+    {   3,   29,  166,  148,    0, } , // 8 pipes 1 bpe @ SW_64K_S3_T @ Navi1x
+    {   3,   30,  167,  149,    0, } , // 8 pipes 2 bpe @ SW_64K_S3_T @ Navi1x
+    {   3,   31,  168,  150,    0, } , // 8 pipes 4 bpe @ SW_64K_S3_T @ Navi1x
+    {   3,   32,  169,  151,    0, } , // 8 pipes 8 bpe @ SW_64K_S3_T @ Navi1x
+    {   3,   33,  170,  152,    0, } , // 8 pipes 16 bpe @ SW_64K_S3_T @ Navi1x
+    {   3,   29,  171,  148,    0, } , // 16 pipes 1 bpe @ SW_64K_S3_T @ Navi1x
+    {   3,   30,  172,  149,    0, } , // 16 pipes 2 bpe @ SW_64K_S3_T @ Navi1x
+    {   3,   31,  173,  150,    0, } , // 16 pipes 4 bpe @ SW_64K_S3_T @ Navi1x
+    {   3,   32,  174,  151,    0, } , // 16 pipes 8 bpe @ SW_64K_S3_T @ Navi1x
+    {   3,   33,  175,  152,    0, } , // 16 pipes 16 bpe @ SW_64K_S3_T @ Navi1x
+    {   3,   29,  176,  153,    0, } , // 32 pipes 1 bpe @ SW_64K_S3_T @ Navi1x
+    {   3,   30,  177,  154,    0, } , // 32 pipes 2 bpe @ SW_64K_S3_T @ Navi1x
+    {   3,   31,  178,  155,    0, } , // 32 pipes 4 bpe @ SW_64K_S3_T @ Navi1x
+    {   3,   32,  179,  156,    0, } , // 32 pipes 8 bpe @ SW_64K_S3_T @ Navi1x
+    {   3,   33,  180,  157,    0, } , // 32 pipes 16 bpe @ SW_64K_S3_T @ Navi1x
+    {   3,   29,  131,  163,    0, } , // 64 pipes 1 bpe @ SW_64K_S3_T @ Navi1x
+    {   3,   30,  132,  164,    0, } , // 64 pipes 2 bpe @ SW_64K_S3_T @ Navi1x
+    {   3,   31,  133,  165,    0, } , // 64 pipes 4 bpe @ SW_64K_S3_T @ Navi1x
+    {   3,   32,  134,  166,    0, } , // 64 pipes 8 bpe @ SW_64K_S3_T @ Navi1x
+    {   3,   33,  135,  167,    0, } , // 64 pipes 16 bpe @ SW_64K_S3_T @ Navi1x
 };
 
-const UINT_64 SW_64K_D_T[][16]=
+const ADDR_SW_PATINFO SW_64K_D3_X_PATINFO[] =
 {
-    {X0,             X1,             X2,             Y1,             Y0,             Y2,             X3,             Y3,             Y4,             X4,             Y5,             X5,             Y6,             X6,             Y7,             X7              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             X4,             Y4,             X5,             Y5,             X6,             Y6,             X7              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             X3,             Y4,             X4,             Y5,             X5,             Y6,             X6              },
-    {0,              0,              0,              X0,             Y0,             X1,             X2,             Y1,             Y2,             X3,             Y3,             X4,             Y4,             X5,             Y5,             X6              },
-    {0,              0,              0,              0,              X0,             Y0,             X1,             Y1,             Y2,             X2,             Y3,             X3,             Y4,             X4,             Y5,             X5              },
-    {X0,             X1,             X2,             Y1,             Y0,             Y2,             X3,             Y3,             X4 ^ Y4,        X4,             Y5,             X5,             Y6,             X6,             Y7,             X7              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3 ^ X4,        X4,             Y4,             X5,             Y5,             X6,             Y6,             X7              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             X3 ^ Y3,        X3,             Y4,             X4,             Y5,             X5,             Y6,             X6              },
-    {0,              0,              0,              X0,             Y0,             X1,             X2,             Y1,             Y2 ^ X3,        X3,             Y3,             X4,             Y4,             X5,             Y5,             X6              },
-    {0,              0,              0,              0,              X0,             Y0,             X1,             Y1,             X2 ^ Y2,        X2,             Y3,             X3,             Y4,             X4,             Y5,             X5              },
-    {X0,             X1,             X2,             Y1,             Y0,             Y2,             X3,             Y3,             Y4 ^ X5,        X4 ^ Y5,        Y5,             X5,             Y6,             X6,             Y7,             X7              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3 ^ X5,        X4 ^ Y4,        Y4,             X5,             Y5,             X6,             Y6,             X7              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3 ^ X4,        X3 ^ Y4,        Y4,             X4,             Y5,             X5,             Y6,             X6              },
-    {0,              0,              0,              X0,             Y0,             X1,             X2,             Y1,             Y2 ^ X4,        X3 ^ Y3,        Y3,             X4,             Y4,             X5,             Y5,             X6              },
-    {0,              0,              0,              0,              X0,             Y0,             X1,             Y1,             Y2 ^ X3,        X2 ^ Y3,        Y3,             X3,             Y4,             X4,             Y5,             X5              },
-    {X0,             X1,             X2,             Y1,             Y0,             Y2,             X3,             Y3,             Y4 ^ X6,        X4 ^ Y6,        X5 ^ Y5,        X5,             Y6,             X6,             Y7,             X7              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3 ^ X6,        X4 ^ Y5,        Y4 ^ X5,        X5,             Y5,             X6,             Y6,             X7              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3 ^ X5,        X3 ^ Y5,        X4 ^ Y4,        X4,             Y5,             X5,             Y6,             X6              },
-    {0,              0,              0,              X0,             Y0,             X1,             X2,             Y1,             Y2 ^ X5,        X3 ^ Y4,        Y3 ^ X4,        X4,             Y4,             X5,             Y5,             X6              },
-    {0,              0,              0,              0,              X0,             Y0,             X1,             Y1,             Y2 ^ X4,        X2 ^ Y4,        X3 ^ Y3,        X3,             Y4,             X4,             Y5,             X5              },
-    {X0,             X1,             X2,             Y1,             Y0,             Y2,             X3,             Y3,             Y4 ^ X7,        X4 ^ Y7,        Y5 ^ X6,        X5 ^ Y6,        Y6,             X6,             Y7,             X7              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3 ^ X7,        X4 ^ Y6,        Y4 ^ X6,        X5 ^ Y5,        Y5,             X6,             Y6,             X7              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3 ^ X6,        X3 ^ Y6,        Y4 ^ X5,        X4 ^ Y5,        Y5,             X5,             Y6,             X6              },
-    {0,              0,              0,              X0,             Y0,             X1,             X2,             Y1,             Y2 ^ X6,        X3 ^ Y5,        Y3 ^ X5,        X4 ^ Y4,        Y4,             X5,             Y5,             X6              },
-    {0,              0,              0,              0,              X0,             Y0,             X1,             Y1,             Y2 ^ X5,        X2 ^ Y5,        Y3 ^ X4,        X3 ^ Y4,        Y4,             X4,             Y5,             X5              },
-    {X0,             X1,             X2,             Y1,             Y0,             Y2,             X3,             Y3,             Y4,             X4,             Y5 ^ X7,        X5 ^ Y7,        X6 ^ Y6,        X6,             Y7,             X7              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             X4,             Y4 ^ X7,        X5 ^ Y6,        Y5 ^ X6,        X6,             Y6,             X7              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             X3,             Y4 ^ X6,        X4 ^ Y6,        X5 ^ Y5,        X5,             Y6,             X6              },
-    {0,              0,              0,              X0,             Y0,             X1,             X2,             Y1,             Y2,             X3,             Y3 ^ X6,        X4 ^ Y5,        Y4 ^ X5,        X5,             Y5,             X6              },
-    {0,              0,              0,              0,              X0,             Y0,             X1,             Y1,             Y2,             X2,             Y3 ^ X5,        X3 ^ Y5,        X4 ^ Y4,        X4,             Y5,             X5              },
-    {X0,             X1,             X2,             Y1,             Y0,             Y2,             X3,             Y3,             Y4,             X4,             Y5,             X5,             Y6 ^ X7,        X6 ^ Y7,        Y7,             X7              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             X4,             Y4,             X5,             Y5 ^ X7,        X6 ^ Y6,        Y6,             X7              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             X3,             Y4,             X4,             Y5 ^ X6,        X5 ^ Y6,        Y6,             X6              },
-    {0,              0,              0,              X0,             Y0,             X1,             X2,             Y1,             Y2,             X3,             Y3,             X4,             Y4 ^ X6,        X5 ^ Y5,        Y5,             X6              },
-    {0,              0,              0,              0,              X0,             Y0,             X1,             Y1,             Y2,             X2,             Y3,             X3,             Y4 ^ X5,        X4 ^ Y5,        Y5,             X5              },
-    {X0,             X1,             X2,             Y1,             Y0,             Y2,             X3,             Y3,             Y4,             X4,             Y5,             X5,             Y6,             X6,             Y7,             X7              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             X4,             Y4,             X5,             Y5,             X6,             Y6,             X7              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             X3,             Y4,             X4,             Y5,             X5,             Y6,             X6              },
-    {0,              0,              0,              X0,             Y0,             X1,             X2,             Y1,             Y2,             X3,             Y3,             X4,             Y4,             X5,             Y5,             X6              },
-    {0,              0,              0,              0,              X0,             Y0,             X1,             Y1,             Y2,             X2,             Y3,             X3,             Y4,             X4,             Y5,             X5              },
-    {X0,             X1,             X2,             Y1,             Y0,             Y2,             X3,             Y3,             Y4,             X4 ^ Y5,        Y5,             X5,             Y6,             X6,             Y7,             X7              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             X4 ^ Y4,        Y4,             X5,             Y5,             X6,             Y6,             X7              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             X3 ^ Y4,        Y4,             X4,             Y5,             X5,             Y6,             X6              },
-    {0,              0,              0,              X0,             Y0,             X1,             X2,             Y1,             Y2,             X3 ^ Y3,        Y3,             X4,             Y4,             X5,             Y5,             X6              },
-    {0,              0,              0,              0,              X0,             Y0,             X1,             Y1,             Y2,             X2 ^ Y3,        Y3,             X3,             Y4,             X4,             Y5,             X5              },
-    {X0,             X1,             X2,             Y1,             Y0,             Y2,             X3,             Y3,             Y4,             X4 ^ Y6,        X5 ^ Y5,        X5,             Y6,             X6,             Y7,             X7              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             X4 ^ Y5,        Y4 ^ X5,        X5,             Y5,             X6,             Y6,             X7              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             X3 ^ Y5,        X4 ^ Y4,        X4,             Y5,             X5,             Y6,             X6              },
-    {0,              0,              0,              X0,             Y0,             X1,             X2,             Y1,             Y2,             X3 ^ Y4,        Y3 ^ X4,        X4,             Y4,             X5,             Y5,             X6              },
-    {0,              0,              0,              0,              X0,             Y0,             X1,             Y1,             Y2,             X2 ^ Y4,        X3 ^ Y3,        X3,             Y4,             X4,             Y5,             X5              },
-    {X0,             X1,             X2,             Y1,             Y0,             Y2,             X3,             Y3,             Y4,             X4 ^ Y7,        Y5 ^ X6,        X5 ^ Y6,        Y6,             X6,             Y7,             X7              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             X4 ^ Y6,        Y4 ^ X6,        X5 ^ Y5,        Y5,             X6,             Y6,             X7              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             X3 ^ Y6,        Y4 ^ X5,        X4 ^ Y5,        Y5,             X5,             Y6,             X6              },
-    {0,              0,              0,              X0,             Y0,             X1,             X2,             Y1,             Y2,             X3 ^ Y5,        Y3 ^ X5,        X4 ^ Y4,        Y4,             X5,             Y5,             X6              },
-    {0,              0,              0,              0,              X0,             Y0,             X1,             Y1,             Y2,             X2 ^ Y5,        Y3 ^ X4,        X3 ^ Y4,        Y4,             X4,             Y5,             X5              },
-    {X0,             X1,             X2,             Y1,             Y0,             Y2,             X3,             Y3,             Y4,             X4,             Y5 ^ X7,        X5 ^ Y7,        X6 ^ Y6,        X6,             Y7,             X7              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             X4,             Y4 ^ X7,        X5 ^ Y6,        Y5 ^ X6,        X6,             Y6,             X7              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             X3,             Y4 ^ X6,        X4 ^ Y6,        X5 ^ Y5,        X5,             Y6,             X6              },
-    {0,              0,              0,              X0,             Y0,             X1,             X2,             Y1,             Y2,             X3,             Y3 ^ X6,        X4 ^ Y5,        Y4 ^ X5,        X5,             Y5,             X6              },
-    {0,              0,              0,              0,              X0,             Y0,             X1,             Y1,             Y2,             X2,             Y3 ^ X5,        X3 ^ Y5,        X4 ^ Y4,        X4,             Y5,             X5              },
-    {X0,             X1,             X2,             Y1,             Y0,             Y2,             X3,             Y3,             Y4,             X4,             Y5,             X5,             Y6 ^ X7,        X6 ^ Y7,        Y7,             X7              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             X4,             Y4,             X5,             Y5 ^ X7,        X6 ^ Y6,        Y6,             X7              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             X3,             Y4,             X4,             Y5 ^ X6,        X5 ^ Y6,        Y6,             X6              },
-    {0,              0,              0,              X0,             Y0,             X1,             X2,             Y1,             Y2,             X3,             Y3,             X4,             Y4 ^ X6,        X5 ^ Y5,        Y5,             X6              },
-    {0,              0,              0,              0,              X0,             Y0,             X1,             Y1,             Y2,             X2,             Y3,             X3,             Y4 ^ X5,        X4 ^ Y5,        Y5,             X5              },
-    {X0,             X1,             X2,             Y1,             Y0,             Y2,             X3,             Y3,             Y4,             X4,             Y5,             X5,             Y6,             X6,             X7 ^ Y7,        X7              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             X4,             Y4,             X5,             Y5,             X6,             Y6 ^ X7,        X7              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             X3,             Y4,             X4,             Y5,             X5,             X6 ^ Y6,        X6              },
-    {0,              0,              0,              X0,             Y0,             X1,             X2,             Y1,             Y2,             X3,             Y3,             X4,             Y4,             X5,             Y5 ^ X6,        X6              },
-    {0,              0,              0,              0,              X0,             Y0,             X1,             Y1,             Y2,             X2,             Y3,             X3,             Y4,             X4,             X5 ^ Y5,        X5              },
-    {X0,             X1,             X2,             Y1,             Y0,             Y2,             X3,             Y3,             Y4,             X4,             Y5,             X5,             Y6,             X6,             Y7,             X7              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             X4,             Y4,             X5,             Y5,             X6,             Y6,             X7              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             X3,             Y4,             X4,             Y5,             X5,             Y6,             X6              },
-    {0,              0,              0,              X0,             Y0,             X1,             X2,             Y1,             Y2,             X3,             Y3,             X4,             Y4,             X5,             Y5,             X6              },
-    {0,              0,              0,              0,              X0,             Y0,             X1,             Y1,             Y2,             X2,             Y3,             X3,             Y4,             X4,             Y5,             X5              },
-    {X0,             X1,             X2,             Y1,             Y0,             Y2,             X3,             Y3,             Y4,             X4,             X5 ^ Y5,        X5,             Y6,             X6,             Y7,             X7              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             X4,             Y4 ^ X5,        X5,             Y5,             X6,             Y6,             X7              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             X3,             X4 ^ Y4,        X4,             Y5,             X5,             Y6,             X6              },
-    {0,              0,              0,              X0,             Y0,             X1,             X2,             Y1,             Y2,             X3,             Y3 ^ X4,        X4,             Y4,             X5,             Y5,             X6              },
-    {0,              0,              0,              0,              X0,             Y0,             X1,             Y1,             Y2,             X2,             X3 ^ Y3,        X3,             Y4,             X4,             Y5,             X5              },
-    {X0,             X1,             X2,             Y1,             Y0,             Y2,             X3,             Y3,             Y4,             X4,             Y5 ^ X6,        X5 ^ Y6,        Y6,             X6,             Y7,             X7              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             X4,             Y4 ^ X6,        X5 ^ Y5,        Y5,             X6,             Y6,             X7              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             X3,             Y4 ^ X5,        X4 ^ Y5,        Y5,             X5,             Y6,             X6              },
-    {0,              0,              0,              X0,             Y0,             X1,             X2,             Y1,             Y2,             X3,             Y3 ^ X5,        X4 ^ Y4,        Y4,             X5,             Y5,             X6              },
-    {0,              0,              0,              0,              X0,             Y0,             X1,             Y1,             Y2,             X2,             Y3 ^ X4,        X3 ^ Y4,        Y4,             X4,             Y5,             X5              },
-    {X0,             X1,             X2,             Y1,             Y0,             Y2,             X3,             Y3,             Y4,             X4,             Y5 ^ X7,        X5 ^ Y7,        X6 ^ Y6,        X6,             Y7,             X7              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             X4,             Y4 ^ X7,        X5 ^ Y6,        Y5 ^ X6,        X6,             Y6,             X7              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             X3,             Y4 ^ X6,        X4 ^ Y6,        X5 ^ Y5,        X5,             Y6,             X6              },
-    {0,              0,              0,              X0,             Y0,             X1,             X2,             Y1,             Y2,             X3,             Y3 ^ X6,        X4 ^ Y5,        Y4 ^ X5,        X5,             Y5,             X6              },
-    {0,              0,              0,              0,              X0,             Y0,             X1,             Y1,             Y2,             X2,             Y3 ^ X5,        X3 ^ Y5,        X4 ^ Y4,        X4,             Y5,             X5              },
-    {X0,             X1,             X2,             Y1,             Y0,             Y2,             X3,             Y3,             Y4,             X4,             Y5,             X5,             Y6 ^ X7,        X6 ^ Y7,        Y7,             X7              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             X4,             Y4,             X5,             Y5 ^ X7,        X6 ^ Y6,        Y6,             X7              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             X3,             Y4,             X4,             Y5 ^ X6,        X5 ^ Y6,        Y6,             X6              },
-    {0,              0,              0,              X0,             Y0,             X1,             X2,             Y1,             Y2,             X3,             Y3,             X4,             Y4 ^ X6,        X5 ^ Y5,        Y5,             X6              },
-    {0,              0,              0,              0,              X0,             Y0,             X1,             Y1,             Y2,             X2,             Y3,             X3,             Y4 ^ X5,        X4 ^ Y5,        Y5,             X5              },
-    {X0,             X1,             X2,             Y1,             Y0,             Y2,             X3,             Y3,             Y4,             X4,             Y5,             X5,             Y6,             X6,             X7 ^ Y7,        X7              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             X4,             Y4,             X5,             Y5,             X6,             Y6 ^ X7,        X7              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             X3,             Y4,             X4,             Y5,             X5,             X6 ^ Y6,        X6              },
-    {0,              0,              0,              X0,             Y0,             X1,             X2,             Y1,             Y2,             X3,             Y3,             X4,             Y4,             X5,             Y5 ^ X6,        X6              },
-    {0,              0,              0,              0,              X0,             Y0,             X1,             Y1,             Y2,             X2,             Y3,             X3,             Y4,             X4,             X5 ^ Y5,        X5              },
-    {X0,             X1,             X2,             Y1,             Y0,             Y2,             X3,             Y3,             Y4,             X4,             Y5,             X5,             Y6,             X6,             Y7,             X7              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             X4,             Y4,             X5,             Y5,             X6,             Y6,             X7              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             X3,             Y4,             X4,             Y5,             X5,             Y6,             X6              },
-    {0,              0,              0,              X0,             Y0,             X1,             X2,             Y1,             Y2,             X3,             Y3,             X4,             Y4,             X5,             Y5,             X6              },
-    {0,              0,              0,              0,              X0,             Y0,             X1,             Y1,             Y2,             X2,             Y3,             X3,             Y4,             X4,             Y5,             X5              },
+    {   1,   34,  131,  148,    0, } , // 1 pipes 1 bpe @ SW_64K_D3_X @ Navi1x
+    {   1,   35,  132,  149,    0, } , // 1 pipes 2 bpe @ SW_64K_D3_X @ Navi1x
+    {   1,   36,  133,  150,    0, } , // 1 pipes 4 bpe @ SW_64K_D3_X @ Navi1x
+    {   1,   37,  134,  151,    0, } , // 1 pipes 8 bpe @ SW_64K_D3_X @ Navi1x
+    {   1,   38,  135,  152,    0, } , // 1 pipes 16 bpe @ SW_64K_D3_X @ Navi1x
+    {   2,   34,  181,  148,    0, } , // 2 pipes 1 bpe @ SW_64K_D3_X @ Navi1x
+    {   2,   35,  182,  149,    0, } , // 2 pipes 2 bpe @ SW_64K_D3_X @ Navi1x
+    {   2,   36,  183,  150,    0, } , // 2 pipes 4 bpe @ SW_64K_D3_X @ Navi1x
+    {   2,   37,  184,  168,    0, } , // 2 pipes 8 bpe @ SW_64K_D3_X @ Navi1x
+    {   2,   38,  185,  169,    0, } , // 2 pipes 16 bpe @ SW_64K_D3_X @ Navi1x
+    {   2,   34,  186,  170,    0, } , // 4 pipes 1 bpe @ SW_64K_D3_X @ Navi1x
+    {   2,   35,  186,  171,    0, } , // 4 pipes 2 bpe @ SW_64K_D3_X @ Navi1x
+    {   2,   36,  187,  172,    0, } , // 4 pipes 4 bpe @ SW_64K_D3_X @ Navi1x
+    {   2,   37,  188,  169,    0, } , // 4 pipes 8 bpe @ SW_64K_D3_X @ Navi1x
+    {   3,   38,  189,  169,    0, } , // 4 pipes 16 bpe @ SW_64K_D3_X @ Navi1x
+    {   2,   34,  190,  173,    0, } , // 8 pipes 1 bpe @ SW_64K_D3_X @ Navi1x
+    {   3,   35,  191,  171,    0, } , // 8 pipes 2 bpe @ SW_64K_D3_X @ Navi1x
+    {   3,   36,  192,  172,    0, } , // 8 pipes 4 bpe @ SW_64K_D3_X @ Navi1x
+    {   3,   37,  193,  169,    0, } , // 8 pipes 8 bpe @ SW_64K_D3_X @ Navi1x
+    {   3,   38,  194,  169,    0, } , // 8 pipes 16 bpe @ SW_64K_D3_X @ Navi1x
+    {   3,   34,  195,  174,    0, } , // 16 pipes 1 bpe @ SW_64K_D3_X @ Navi1x
+    {   3,   35,  196,  171,    0, } , // 16 pipes 2 bpe @ SW_64K_D3_X @ Navi1x
+    {   3,   36,  197,  172,    0, } , // 16 pipes 4 bpe @ SW_64K_D3_X @ Navi1x
+    {   3,   37,  198,  169,    0, } , // 16 pipes 8 bpe @ SW_64K_D3_X @ Navi1x
+    {   3,   38,  199,  169,    0, } , // 16 pipes 16 bpe @ SW_64K_D3_X @ Navi1x
+    {   3,   34,  200,  175,    0, } , // 32 pipes 1 bpe @ SW_64K_D3_X @ Navi1x
+    {   3,   35,  201,  176,    0, } , // 32 pipes 2 bpe @ SW_64K_D3_X @ Navi1x
+    {   3,   36,  202,  177,    0, } , // 32 pipes 4 bpe @ SW_64K_D3_X @ Navi1x
+    {   3,   37,  203,  178,    0, } , // 32 pipes 8 bpe @ SW_64K_D3_X @ Navi1x
+    {   3,   38,  204,  178,    0, } , // 32 pipes 16 bpe @ SW_64K_D3_X @ Navi1x
+    {   3,   34,  205,  179,    0, } , // 64 pipes 1 bpe @ SW_64K_D3_X @ Navi1x
+    {   3,   35,  206,  180,    0, } , // 64 pipes 2 bpe @ SW_64K_D3_X @ Navi1x
+    {   3,   36,  207,  181,    0, } , // 64 pipes 4 bpe @ SW_64K_D3_X @ Navi1x
+    {   3,   37,  208,  182,    0, } , // 64 pipes 8 bpe @ SW_64K_D3_X @ Navi1x
+    {   3,   38,  209,  182,    0, } , // 64 pipes 16 bpe @ SW_64K_D3_X @ Navi1x
 };
 
-const UINT_64 SW_64K_S_X[][16]=
+const ADDR_SW_PATINFO SW_256_S_RBPLUS_PATINFO[] =
 {
-    {X0,             X1,             X2,             X3,             Y0,             Y1,             Y2,             Y3,             Y4,             X4,             Y5,             X5,             Y6,             X6,             Y7,             X7              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             X4,             Y4,             X5,             Y5,             X6,             Y6,             X7              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             X3,             Y4,             X4,             Y5,             X5,             Y6,             X6              },
-    {0,              0,              0,              X0,             Y0,             Y1,             X1,             X2,             Y2,             X3,             Y3,             X4,             Y4,             X5,             Y5,             X6              },
-    {0,              0,              0,              0,              Y0,             Y1,             X0,             X1,             Y2,             X2,             Y3,             X3,             Y4,             X4,             Y5,             X5              },
-    {X0,             X1,             X2,             X3,             Y0,             Y1,             Y2,             Y3,             Z0 ^ X4 ^ Y4,   X4,             Y5,             X5,             Y6,             X6,             Y7,             X7              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Z0 ^ Y3 ^ X4,   X4,             Y4,             X5,             Y5,             X6,             Y6,             X7              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Z0 ^ X3 ^ Y3,   X3,             Y4,             X4,             Y5,             X5,             Y6,             X6              },
-    {0,              0,              0,              X0,             Y0,             Y1,             X1,             X2,             Z0 ^ Y2 ^ X3,   X3,             Y3,             X4,             Y4,             X5,             Y5,             X6              },
-    {0,              0,              0,              0,              Y0,             Y1,             X0,             X1,             Z0 ^ X2 ^ Y2,   X2,             Y3,             X3,             Y4,             X4,             Y5,             X5              },
-    {X0,             X1,             X2,             X3,             Y0,             Y1,             Y2,             Y3,             Z1 ^ Y4 ^ X5,   Z0 ^ X4 ^ Y5,   Y5,             X5,             Y6,             X6,             Y7,             X7              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Z1 ^ Y3 ^ X5,   Z0 ^ X4 ^ Y4,   Y4,             X5,             Y5,             X6,             Y6,             X7              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Z1 ^ Y3 ^ X4,   Z0 ^ X3 ^ Y4,   Y4,             X4,             Y5,             X5,             Y6,             X6              },
-    {0,              0,              0,              X0,             Y0,             Y1,             X1,             X2,             Z1 ^ Y2 ^ X4,   Z0 ^ X3 ^ Y3,   Y3,             X4,             Y4,             X5,             Y5,             X6              },
-    {0,              0,              0,              0,              Y0,             Y1,             X0,             X1,             Z1 ^ Y2 ^ X3,   Z0 ^ X2 ^ Y3,   Y3,             X3,             Y4,             X4,             Y5,             X5              },
-    {X0,             X1,             X2,             X3,             Y0,             Y1,             Y2,             Y3,             Z2 ^ Y4 ^ X6,   Z1 ^ X4 ^ Y6,   Z0 ^ X5 ^ Y5,   X5,             Y6,             X6,             Y7,             X7              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Z2 ^ Y3 ^ X6,   Z1 ^ X4 ^ Y5,   Z0 ^ Y4 ^ X5,   X5,             Y5,             X6,             Y6,             X7              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Z2 ^ Y3 ^ X5,   Z1 ^ X3 ^ Y5,   Z0 ^ X4 ^ Y4,   X4,             Y5,             X5,             Y6,             X6              },
-    {0,              0,              0,              X0,             Y0,             Y1,             X1,             X2,             Y2 ^ Z2 ^ X5,   Z1 ^ X3 ^ Y4,   Z0 ^ Y3 ^ X4,   X4,             Y4,             X5,             Y5,             X6              },
-    {0,              0,              0,              0,              Y0,             Y1,             X0,             X1,             Y2 ^ Z2 ^ X4,   Z1 ^ X2 ^ Y4,   Z0 ^ X3 ^ Y3,   X3,             Y4,             X4,             Y5,             X5              },
-    {X0,             X1,             X2,             X3,             Y0,             Y1,             Y2,             Y3,             Z3 ^ Y4 ^ X7,   Z2 ^ X4 ^ Y7,   Z1 ^ Y5 ^ X6,   Z0 ^ X5 ^ Y6,   Y6,             X6,             Y7,             X7              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3 ^ Z3 ^ X7,   Z2 ^ X4 ^ Y6,   Z1 ^ Y4 ^ X6,   Z0 ^ X5 ^ Y5,   Y5,             X6,             Y6,             X7              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3 ^ Z3 ^ X6,   Z2 ^ X3 ^ Y6,   Z1 ^ Y4 ^ X5,   Z0 ^ X4 ^ Y5,   Y5,             X5,             Y6,             X6              },
-    {0,              0,              0,              X0,             Y0,             Y1,             X1,             X2,             Y2 ^ Z3 ^ X6,   Z2 ^ X3 ^ Y5,   Z1 ^ Y3 ^ X5,   Z0 ^ X4 ^ Y4,   Y4,             X5,             Y5,             X6              },
-    {0,              0,              0,              0,              Y0,             Y1,             X0,             X1,             Y2 ^ Z3 ^ X5,   X2 ^ Z2 ^ Y5,   Z1 ^ Y3 ^ X4,   Z0 ^ X3 ^ Y4,   Y4,             X4,             Y5,             X5              },
-    {X0,             X1,             X2,             X3,             Y0,             Y1,             Y2,             Y3,             Y4 ^ Z4 ^ X8,   Z3 ^ X4 ^ Y8,   Z2 ^ Y5 ^ X7,   Z1 ^ X5 ^ Y7,   Z0 ^ X6 ^ Y6,   X6,             Y7,             X7              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3 ^ Z4 ^ X8,   Z3 ^ X4 ^ Y7,   Z2 ^ Y4 ^ X7,   Z1 ^ X5 ^ Y6,   Z0 ^ Y5 ^ X6,   X6,             Y6,             X7              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3 ^ Z4 ^ X7,   X3 ^ Z3 ^ Y7,   Z2 ^ Y4 ^ X6,   Z1 ^ X4 ^ Y6,   Z0 ^ X5 ^ Y5,   X5,             Y6,             X6              },
-    {0,              0,              0,              X0,             Y0,             Y1,             X1,             X2,             Y2 ^ Z4 ^ X7,   X3 ^ Z3 ^ Y6,   Z2 ^ Y3 ^ X6,   Z1 ^ X4 ^ Y5,   Z0 ^ Y4 ^ X5,   X5,             Y5,             X6              },
-    {0,              0,              0,              0,              Y0,             Y1,             X0,             X1,             Y2 ^ Z4 ^ X6,   X2 ^ Z3 ^ Y6,   Z2 ^ Y3 ^ X5,   Z1 ^ X3 ^ Y5,   Z0 ^ X4 ^ Y4,   X4,             Y5,             X5              },
-    {X0,             X1,             X2,             X3,             Y0,             Y1,             Y2,             Y3,             Y4 ^ Z5 ^ X9,   X4 ^ Z4 ^ Y9,   Z3 ^ Y5 ^ X8,   Z2 ^ X5 ^ Y8,   Z1 ^ Y6 ^ X7,   Z0 ^ X6 ^ Y7,   Y7,             X7              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3 ^ Z5 ^ X9,   X4 ^ Z4 ^ Y8,   Z3 ^ Y4 ^ X8,   Z2 ^ X5 ^ Y7,   Z1 ^ Y5 ^ X7,   Z0 ^ X6 ^ Y6,   Y6,             X7              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3 ^ Z5 ^ X8,   X3 ^ Z4 ^ Y8,   Z3 ^ Y4 ^ X7,   Z2 ^ X4 ^ Y7,   Z1 ^ Y5 ^ X6,   Z0 ^ X5 ^ Y6,   Y6,             X6              },
-    {0,              0,              0,              X0,             Y0,             Y1,             X1,             X2,             Y2 ^ Z5 ^ X8,   X3 ^ Z4 ^ Y7,   Y3 ^ Z3 ^ X7,   Z2 ^ X4 ^ Y6,   Z1 ^ Y4 ^ X6,   Z0 ^ X5 ^ Y5,   Y5,             X6              },
-    {0,              0,              0,              0,              Y0,             Y1,             X0,             X1,             Y2 ^ Z5 ^ X7,   X2 ^ Z4 ^ Y7,   Y3 ^ Z3 ^ X6,   Z2 ^ X3 ^ Y6,   Z1 ^ Y4 ^ X5,   Z0 ^ X4 ^ Y5,   Y5,             X5              },
-    {X0,             X1,             X2,             X3,             Y0,             Y1,             Y2,             Y3,             Y4,             X4,             Y5,             X5,             Y6,             X6,             Y7,             X7              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             X4,             Y4,             X5,             Y5,             X6,             Y6,             X7              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             X3,             Y4,             X4,             Y5,             X5,             Y6,             X6              },
-    {0,              0,              0,              X0,             Y0,             Y1,             X1,             X2,             Y2,             X3,             Y3,             X4,             Y4,             X5,             Y5,             X6              },
-    {0,              0,              0,              0,              Y0,             Y1,             X0,             X1,             Y2,             X2,             Y3,             X3,             Y4,             X4,             Y5,             X5              },
-    {X0,             X1,             X2,             X3,             Y0,             Y1,             Y2,             Y3,             Y4,             Z0 ^ X4 ^ Y5,   Y5,             X5,             Y6,             X6,             Y7,             X7              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             Z0 ^ X4 ^ Y4,   Y4,             X5,             Y5,             X6,             Y6,             X7              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             Z0 ^ X3 ^ Y4,   Y4,             X4,             Y5,             X5,             Y6,             X6              },
-    {0,              0,              0,              X0,             Y0,             Y1,             X1,             X2,             Y2,             Z0 ^ X3 ^ Y3,   Y3,             X4,             Y4,             X5,             Y5,             X6              },
-    {0,              0,              0,              0,              Y0,             Y1,             X0,             X1,             Y2,             Z0 ^ X2 ^ Y3,   Y3,             X3,             Y4,             X4,             Y5,             X5              },
-    {X0,             X1,             X2,             X3,             Y0,             Y1,             Y2,             Y3,             Y4,             Z1 ^ X4 ^ Y6,   Z0 ^ X5 ^ Y5,   X5,             Y6,             X6,             Y7,             X7              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             Z1 ^ X4 ^ Y5,   Z0 ^ Y4 ^ X5,   X5,             Y5,             X6,             Y6,             X7              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             Z1 ^ X3 ^ Y5,   Z0 ^ X4 ^ Y4,   X4,             Y5,             X5,             Y6,             X6              },
-    {0,              0,              0,              X0,             Y0,             Y1,             X1,             X2,             Y2,             Z1 ^ X3 ^ Y4,   Z0 ^ Y3 ^ X4,   X4,             Y4,             X5,             Y5,             X6              },
-    {0,              0,              0,              0,              Y0,             Y1,             X0,             X1,             Y2,             Z1 ^ X2 ^ Y4,   Z0 ^ X3 ^ Y3,   X3,             Y4,             X4,             Y5,             X5              },
-    {X0,             X1,             X2,             X3,             Y0,             Y1,             Y2,             Y3,             Y4,             Z2 ^ X4 ^ Y7,   Z1 ^ Y5 ^ X6,   Z0 ^ X5 ^ Y6,   Y6,             X6,             Y7,             X7              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             Z2 ^ X4 ^ Y6,   Z1 ^ Y4 ^ X6,   Z0 ^ X5 ^ Y5,   Y5,             X6,             Y6,             X7              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             Z2 ^ X3 ^ Y6,   Z1 ^ Y4 ^ X5,   Z0 ^ X4 ^ Y5,   Y5,             X5,             Y6,             X6              },
-    {0,              0,              0,              X0,             Y0,             Y1,             X1,             X2,             Y2,             Z2 ^ X3 ^ Y5,   Z1 ^ Y3 ^ X5,   Z0 ^ X4 ^ Y4,   Y4,             X5,             Y5,             X6              },
-    {0,              0,              0,              0,              Y0,             Y1,             X0,             X1,             Y2,             X2 ^ Z2 ^ Y5,   Z1 ^ Y3 ^ X4,   Z0 ^ X3 ^ Y4,   Y4,             X4,             Y5,             X5              },
-    {X0,             X1,             X2,             X3,             Y0,             Y1,             Y2,             Y3,             Y4,             Z3 ^ X4 ^ Y8,   Z2 ^ Y5 ^ X7,   Z1 ^ X5 ^ Y7,   Z0 ^ X6 ^ Y6,   X6,             Y7,             X7              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             Z3 ^ X4 ^ Y7,   Z2 ^ Y4 ^ X7,   Z1 ^ X5 ^ Y6,   Z0 ^ Y5 ^ X6,   X6,             Y6,             X7              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             X3 ^ Z3 ^ Y7,   Z2 ^ Y4 ^ X6,   Z1 ^ X4 ^ Y6,   Z0 ^ X5 ^ Y5,   X5,             Y6,             X6              },
-    {0,              0,              0,              X0,             Y0,             Y1,             X1,             X2,             Y2,             X3 ^ Z3 ^ Y6,   Z2 ^ Y3 ^ X6,   Z1 ^ X4 ^ Y5,   Z0 ^ Y4 ^ X5,   X5,             Y5,             X6              },
-    {0,              0,              0,              0,              Y0,             Y1,             X0,             X1,             Y2,             X2 ^ Z3 ^ Y6,   Z2 ^ Y3 ^ X5,   Z1 ^ X3 ^ Y5,   Z0 ^ X4 ^ Y4,   X4,             Y5,             X5              },
-    {X0,             X1,             X2,             X3,             Y0,             Y1,             Y2,             Y3,             Y4,             X4 ^ Z4 ^ Y9,   Z3 ^ Y5 ^ X8,   Z2 ^ X5 ^ Y8,   Z1 ^ Y6 ^ X7,   Z0 ^ X6 ^ Y7,   Y7,             X7              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             X4 ^ Z4 ^ Y8,   Z3 ^ Y4 ^ X8,   Z2 ^ X5 ^ Y7,   Z1 ^ Y5 ^ X7,   Z0 ^ X6 ^ Y6,   Y6,             X7              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             X3 ^ Z4 ^ Y8,   Z3 ^ Y4 ^ X7,   Z2 ^ X4 ^ Y7,   Z1 ^ Y5 ^ X6,   Z0 ^ X5 ^ Y6,   Y6,             X6              },
-    {0,              0,              0,              X0,             Y0,             Y1,             X1,             X2,             Y2,             X3 ^ Z4 ^ Y7,   Y3 ^ Z3 ^ X7,   Z2 ^ X4 ^ Y6,   Z1 ^ Y4 ^ X6,   Z0 ^ X5 ^ Y5,   Y5,             X6              },
-    {0,              0,              0,              0,              Y0,             Y1,             X0,             X1,             Y2,             X2 ^ Z4 ^ Y7,   Y3 ^ Z3 ^ X6,   Z2 ^ X3 ^ Y6,   Z1 ^ Y4 ^ X5,   Z0 ^ X4 ^ Y5,   Y5,             X5              },
-    {X0,             X1,             X2,             X3,             Y0,             Y1,             Y2,             Y3,             Y4,             X4 ^ Z5 ^Y10,   Z4 ^ Y5 ^ X9,   Z3 ^ X5 ^ Y9,   Z2 ^ Y6 ^ X8,   Z1 ^ X6 ^ Y8,   Z0 ^ X7 ^ Y7,   X7              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             X4 ^ Z5 ^ Y9,   Y4 ^ Z4 ^ X9,   Z3 ^ X5 ^ Y8,   Z2 ^ Y5 ^ X8,   Z1 ^ X6 ^ Y7,   Z0 ^ Y6 ^ X7,   X7              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             X3 ^ Z5 ^ Y9,   Y4 ^ Z4 ^ X8,   Z3 ^ X4 ^ Y8,   Z2 ^ Y5 ^ X7,   Z1 ^ X5 ^ Y7,   Z0 ^ X6 ^ Y6,   X6              },
-    {0,              0,              0,              X0,             Y0,             Y1,             X1,             X2,             Y2,             X3 ^ Z5 ^ Y8,   Y3 ^ Z4 ^ X8,   Z3 ^ X4 ^ Y7,   Z2 ^ Y4 ^ X7,   Z1 ^ X5 ^ Y6,   Z0 ^ Y5 ^ X6,   X6              },
-    {0,              0,              0,              0,              Y0,             Y1,             X0,             X1,             Y2,             X2 ^ Z5 ^ Y8,   Y3 ^ Z4 ^ X7,   X3 ^ Z3 ^ Y7,   Z2 ^ Y4 ^ X6,   Z1 ^ X4 ^ Y6,   Z0 ^ X5 ^ Y5,   X5              },
-    {X0,             X1,             X2,             X3,             Y0,             Y1,             Y2,             Y3,             Y4,             X4,             Y5,             X5,             Y6,             X6,             Y7,             X7              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             X4,             Y4,             X5,             Y5,             X6,             Y6,             X7              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             X3,             Y4,             X4,             Y5,             X5,             Y6,             X6              },
-    {0,              0,              0,              X0,             Y0,             Y1,             X1,             X2,             Y2,             X3,             Y3,             X4,             Y4,             X5,             Y5,             X6              },
-    {0,              0,              0,              0,              Y0,             Y1,             X0,             X1,             Y2,             X2,             Y3,             X3,             Y4,             X4,             Y5,             X5              },
-    {X0,             X1,             X2,             X3,             Y0,             Y1,             Y2,             Y3,             Y4,             X4,             Z0 ^ X5 ^ Y5,   X5,             Y6,             X6,             Y7,             X7              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             X4,             Z0 ^ Y4 ^ X5,   X5,             Y5,             X6,             Y6,             X7              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             X3,             Z0 ^ X4 ^ Y4,   X4,             Y5,             X5,             Y6,             X6              },
-    {0,              0,              0,              X0,             Y0,             Y1,             X1,             X2,             Y2,             X3,             Z0 ^ Y3 ^ X4,   X4,             Y4,             X5,             Y5,             X6              },
-    {0,              0,              0,              0,              Y0,             Y1,             X0,             X1,             Y2,             X2,             Z0 ^ X3 ^ Y3,   X3,             Y4,             X4,             Y5,             X5              },
-    {X0,             X1,             X2,             X3,             Y0,             Y1,             Y2,             Y3,             Y4,             X4,             Z1 ^ Y5 ^ X6,   Z0 ^ X5 ^ Y6,   Y6,             X6,             Y7,             X7              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             X4,             Z1 ^ Y4 ^ X6,   Z0 ^ X5 ^ Y5,   Y5,             X6,             Y6,             X7              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             X3,             Z1 ^ Y4 ^ X5,   Z0 ^ X4 ^ Y5,   Y5,             X5,             Y6,             X6              },
-    {0,              0,              0,              X0,             Y0,             Y1,             X1,             X2,             Y2,             X3,             Z1 ^ Y3 ^ X5,   Z0 ^ X4 ^ Y4,   Y4,             X5,             Y5,             X6              },
-    {0,              0,              0,              0,              Y0,             Y1,             X0,             X1,             Y2,             X2,             Z1 ^ Y3 ^ X4,   Z0 ^ X3 ^ Y4,   Y4,             X4,             Y5,             X5              },
-    {X0,             X1,             X2,             X3,             Y0,             Y1,             Y2,             Y3,             Y4,             X4,             Z2 ^ Y5 ^ X7,   Z1 ^ X5 ^ Y7,   Z0 ^ X6 ^ Y6,   X6,             Y7,             X7              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             X4,             Z2 ^ Y4 ^ X7,   Z1 ^ X5 ^ Y6,   Z0 ^ Y5 ^ X6,   X6,             Y6,             X7              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             X3,             Z2 ^ Y4 ^ X6,   Z1 ^ X4 ^ Y6,   Z0 ^ X5 ^ Y5,   X5,             Y6,             X6              },
-    {0,              0,              0,              X0,             Y0,             Y1,             X1,             X2,             Y2,             X3,             Z2 ^ Y3 ^ X6,   Z1 ^ X4 ^ Y5,   Z0 ^ Y4 ^ X5,   X5,             Y5,             X6              },
-    {0,              0,              0,              0,              Y0,             Y1,             X0,             X1,             Y2,             X2,             Z2 ^ Y3 ^ X5,   Z1 ^ X3 ^ Y5,   Z0 ^ X4 ^ Y4,   X4,             Y5,             X5              },
-    {X0,             X1,             X2,             X3,             Y0,             Y1,             Y2,             Y3,             Y4,             X4,             Z3 ^ Y5 ^ X8,   Z2 ^ X5 ^ Y8,   Z1 ^ Y6 ^ X7,   Z0 ^ X6 ^ Y7,   Y7,             X7              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             X4,             Z3 ^ Y4 ^ X8,   Z2 ^ X5 ^ Y7,   Z1 ^ Y5 ^ X7,   Z0 ^ X6 ^ Y6,   Y6,             X7              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             X3,             Z3 ^ Y4 ^ X7,   Z2 ^ X4 ^ Y7,   Z1 ^ Y5 ^ X6,   Z0 ^ X5 ^ Y6,   Y6,             X6              },
-    {0,              0,              0,              X0,             Y0,             Y1,             X1,             X2,             Y2,             X3,             Y3 ^ Z3 ^ X7,   Z2 ^ X4 ^ Y6,   Z1 ^ Y4 ^ X6,   Z0 ^ X5 ^ Y5,   Y5,             X6              },
-    {0,              0,              0,              0,              Y0,             Y1,             X0,             X1,             Y2,             X2,             Y3 ^ Z3 ^ X6,   Z2 ^ X3 ^ Y6,   Z1 ^ Y4 ^ X5,   Z0 ^ X4 ^ Y5,   Y5,             X5              },
-    {X0,             X1,             X2,             X3,             Y0,             Y1,             Y2,             Y3,             Y4,             X4,             Z4 ^ Y5 ^ X9,   Z3 ^ X5 ^ Y9,   Z2 ^ Y6 ^ X8,   Z1 ^ X6 ^ Y8,   Z0 ^ X7 ^ Y7,   X7              },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             X4,             Y4 ^ Z4 ^ X9,   Z3 ^ X5 ^ Y8,   Z2 ^ Y5 ^ X8,   Z1 ^ X6 ^ Y7,   Z0 ^ Y6 ^ X7,   X7              },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             X3,             Y4 ^ Z4 ^ X8,   Z3 ^ X4 ^ Y8,   Z2 ^ Y5 ^ X7,   Z1 ^ X5 ^ Y7,   Z0 ^ X6 ^ Y6,   X6              },
-    {0,              0,              0,              X0,             Y0,             Y1,             X1,             X2,             Y2,             X3,             Y3 ^ Z4 ^ X8,   Z3 ^ X4 ^ Y7,   Z2 ^ Y4 ^ X7,   Z1 ^ X5 ^ Y6,   Z0 ^ Y5 ^ X6,   X6              },
-    {0,              0,              0,              0,              Y0,             Y1,             X0,             X1,             Y2,             X2,             Y3 ^ Z4 ^ X7,   X3 ^ Z3 ^ Y7,   Z2 ^ Y4 ^ X6,   Z1 ^ X4 ^ Y6,   Z0 ^ X5 ^ Y5,   X5              },
-    {X0,             X1,             X2,             X3,             Y0,             Y1,             Y2,             Y3,             Y4,             X4,             Y5 ^ Z5 ^X10,   Z4 ^ X5 ^Y10,   Z3 ^ Y6 ^ X9,   Z2 ^ X6 ^ Y9,   Z1 ^ Y7 ^ X8,   Z0 ^ X7 ^ Y8    },
-    {0,              X0,             X1,             X2,             Y0,             Y1,             Y2,             X3,             Y3,             X4,             Y4 ^ Z5 ^X10,   Z4 ^ X5 ^ Y9,   Z3 ^ Y5 ^ X9,   Z2 ^ X6 ^ Y8,   Z1 ^ Y6 ^ X8,   Z0 ^ X7 ^ Y7    },
-    {0,              0,              X0,             X1,             Y0,             Y1,             Y2,             X2,             Y3,             X3,             Y4 ^ Z5 ^ X9,   X4 ^ Z4 ^ Y9,   Z3 ^ Y5 ^ X8,   Z2 ^ X5 ^ Y8,   Z1 ^ Y6 ^ X7,   Z0 ^ X6 ^ Y7    },
-    {0,              0,              0,              X0,             Y0,             Y1,             X1,             X2,             Y2,             X3,             Y3 ^ Z5 ^ X9,   X4 ^ Z4 ^ Y8,   Z3 ^ Y4 ^ X8,   Z2 ^ X5 ^ Y7,   Z1 ^ Y5 ^ X7,   Z0 ^ X6 ^ Y6    },
-    {0,              0,              0,              0,              Y0,             Y1,             X0,             X1,             Y2,             X2,             Y3 ^ Z5 ^ X8,   X3 ^ Z4 ^ Y8,   Z3 ^ Y4 ^ X7,   Z2 ^ X4 ^ Y7,   Z1 ^ Y5 ^ X6,   Z0 ^ X5 ^ Y6    },
+    {   1,    0,    0,    0,    0, } , // 1 pipes (1 PKRs) 1 bpe @ SW_256_S @ RbPlus
+    {   1,    1,    0,    0,    0, } , // 1 pipes (1 PKRs) 2 bpe @ SW_256_S @ RbPlus
+    {   1,    2,    0,    0,    0, } , // 1 pipes (1 PKRs) 4 bpe @ SW_256_S @ RbPlus
+    {   1,    3,    0,    0,    0, } , // 1 pipes (1 PKRs) 8 bpe @ SW_256_S @ RbPlus
+    {   1,    4,    0,    0,    0, } , // 1 pipes (1 PKRs) 16 bpe @ SW_256_S @ RbPlus
+    {   1,    0,    0,    0,    0, } , // 2 pipes (1-2 PKRs) 1 bpe @ SW_256_S @ RbPlus
+    {   1,    1,    0,    0,    0, } , // 2 pipes (1-2 PKRs) 2 bpe @ SW_256_S @ RbPlus
+    {   1,    2,    0,    0,    0, } , // 2 pipes (1-2 PKRs) 4 bpe @ SW_256_S @ RbPlus
+    {   1,    3,    0,    0,    0, } , // 2 pipes (1-2 PKRs) 8 bpe @ SW_256_S @ RbPlus
+    {   1,    4,    0,    0,    0, } , // 2 pipes (1-2 PKRs) 16 bpe @ SW_256_S @ RbPlus
+    {   1,    0,    0,    0,    0, } , // 4 pipes (1-2 PKRs) 1 bpe @ SW_256_S @ RbPlus
+    {   1,    1,    0,    0,    0, } , // 4 pipes (1-2 PKRs) 2 bpe @ SW_256_S @ RbPlus
+    {   1,    2,    0,    0,    0, } , // 4 pipes (1-2 PKRs) 4 bpe @ SW_256_S @ RbPlus
+    {   1,    3,    0,    0,    0, } , // 4 pipes (1-2 PKRs) 8 bpe @ SW_256_S @ RbPlus
+    {   1,    4,    0,    0,    0, } , // 4 pipes (1-2 PKRs) 16 bpe @ SW_256_S @ RbPlus
+    {   1,    0,    0,    0,    0, } , // 8 pipes (2 PKRs) 1 bpe @ SW_256_S @ RbPlus
+    {   1,    1,    0,    0,    0, } , // 8 pipes (2 PKRs) 2 bpe @ SW_256_S @ RbPlus
+    {   1,    2,    0,    0,    0, } , // 8 pipes (2 PKRs) 4 bpe @ SW_256_S @ RbPlus
+    {   1,    3,    0,    0,    0, } , // 8 pipes (2 PKRs) 8 bpe @ SW_256_S @ RbPlus
+    {   1,    4,    0,    0,    0, } , // 8 pipes (2 PKRs) 16 bpe @ SW_256_S @ RbPlus
+    {   1,    0,    0,    0,    0, } , // 4 pipes (4 PKRs) 1 bpe @ SW_256_S @ RbPlus
+    {   1,    1,    0,    0,    0, } , // 4 pipes (4 PKRs) 2 bpe @ SW_256_S @ RbPlus
+    {   1,    2,    0,    0,    0, } , // 4 pipes (4 PKRs) 4 bpe @ SW_256_S @ RbPlus
+    {   1,    3,    0,    0,    0, } , // 4 pipes (4 PKRs) 8 bpe @ SW_256_S @ RbPlus
+    {   1,    4,    0,    0,    0, } , // 4 pipes (4 PKRs) 16 bpe @ SW_256_S @ RbPlus
+    {   1,    0,    0,    0,    0, } , // 8 pipes (4 PKRs) 1 bpe @ SW_256_S @ RbPlus
+    {   1,    1,    0,    0,    0, } , // 8 pipes (4 PKRs) 2 bpe @ SW_256_S @ RbPlus
+    {   1,    2,    0,    0,    0, } , // 8 pipes (4 PKRs) 4 bpe @ SW_256_S @ RbPlus
+    {   1,    3,    0,    0,    0, } , // 8 pipes (4 PKRs) 8 bpe @ SW_256_S @ RbPlus
+    {   1,    4,    0,    0,    0, } , // 8 pipes (4 PKRs) 16 bpe @ SW_256_S @ RbPlus
+    {   1,    0,    0,    0,    0, } , // 16 pipes (4 PKRs) 1 bpe @ SW_256_S @ RbPlus
+    {   1,    1,    0,    0,    0, } , // 16 pipes (4 PKRs) 2 bpe @ SW_256_S @ RbPlus
+    {   1,    2,    0,    0,    0, } , // 16 pipes (4 PKRs) 4 bpe @ SW_256_S @ RbPlus
+    {   1,    3,    0,    0,