1*35ffd701SAndroid Build Coastguard Worker /*============================================================================== 2*35ffd701SAndroid Build Coastguard Worker Copyright(c) 2017 Intel Corporation 3*35ffd701SAndroid Build Coastguard Worker 4*35ffd701SAndroid Build Coastguard Worker Permission is hereby granted, free of charge, to any person obtaining a 5*35ffd701SAndroid Build Coastguard Worker copy of this software and associated documentation files(the "Software"), 6*35ffd701SAndroid Build Coastguard Worker to deal in the Software without restriction, including without limitation 7*35ffd701SAndroid Build Coastguard Worker the rights to use, copy, modify, merge, publish, distribute, sublicense, 8*35ffd701SAndroid Build Coastguard Worker and / or sell copies of the Software, and to permit persons to whom the 9*35ffd701SAndroid Build Coastguard Worker Software is furnished to do so, subject to the following conditions: 10*35ffd701SAndroid Build Coastguard Worker 11*35ffd701SAndroid Build Coastguard Worker The above copyright notice and this permission notice shall be included 12*35ffd701SAndroid Build Coastguard Worker in all copies or substantial portions of the Software. 13*35ffd701SAndroid Build Coastguard Worker 14*35ffd701SAndroid Build Coastguard Worker THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 15*35ffd701SAndroid Build Coastguard Worker OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16*35ffd701SAndroid Build Coastguard Worker FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 17*35ffd701SAndroid Build Coastguard Worker THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR 18*35ffd701SAndroid Build Coastguard Worker OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 19*35ffd701SAndroid Build Coastguard Worker ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 20*35ffd701SAndroid Build Coastguard Worker OTHER DEALINGS IN THE SOFTWARE. 21*35ffd701SAndroid Build Coastguard Worker ============================================================================*/ 22*35ffd701SAndroid Build Coastguard Worker /* 23*35ffd701SAndroid Build Coastguard Worker File Name: sku_wa.h 24*35ffd701SAndroid Build Coastguard Worker 25*35ffd701SAndroid Build Coastguard Worker Description: 26*35ffd701SAndroid Build Coastguard Worker Common hardware sku and workaround information structures. 27*35ffd701SAndroid Build Coastguard Worker 28*35ffd701SAndroid Build Coastguard Worker This file is commented in a manner allowing automated parsing of WA information. 29*35ffd701SAndroid Build Coastguard Worker Each entry inside WA table should include comments in form of: 30*35ffd701SAndroid Build Coastguard Worker @WorkaroundName <name-mandatory> //this field is mandatory 31*35ffd701SAndroid Build Coastguard Worker @Description <short description (can be multiline) 32*35ffd701SAndroid Build Coastguard Worker @PerfImpact <performance impact> 33*35ffd701SAndroid Build Coastguard Worker @BugType <hang,crash etc.> 34*35ffd701SAndroid Build Coastguard Worker @Component <Gmm> 35*35ffd701SAndroid Build Coastguard Worker 36*35ffd701SAndroid Build Coastguard Worker \*****************************************************************************/ 37*35ffd701SAndroid Build Coastguard Worker #ifndef __SKU_WA_H__ 38*35ffd701SAndroid Build Coastguard Worker #define __SKU_WA_H__ 39*35ffd701SAndroid Build Coastguard Worker 40*35ffd701SAndroid Build Coastguard Worker // Prevent the following... 41*35ffd701SAndroid Build Coastguard Worker // warning: ISO C++ prohibits anonymous structs [-pedantic] 42*35ffd701SAndroid Build Coastguard Worker // warning: ISO C90 doesn't support unnamed structs/unions [-pedantic] 43*35ffd701SAndroid Build Coastguard Worker #if defined(__clang__) 44*35ffd701SAndroid Build Coastguard Worker #pragma clang diagnostic push 45*35ffd701SAndroid Build Coastguard Worker #pragma clang diagnostic ignored "-Wpedantic" // clang only recognizes -Wpedantic 46*35ffd701SAndroid Build Coastguard Worker #elif defined(__GNUC__) 47*35ffd701SAndroid Build Coastguard Worker #pragma GCC diagnostic push 48*35ffd701SAndroid Build Coastguard Worker #if __GNUC__ >= 6 49*35ffd701SAndroid Build Coastguard Worker #pragma GCC diagnostic ignored "-Wpedantic" 50*35ffd701SAndroid Build Coastguard Worker #else 51*35ffd701SAndroid Build Coastguard Worker #pragma GCC diagnostic ignored "-pedantic" // gcc <= 4.7.4 only recognizes -pedantic 52*35ffd701SAndroid Build Coastguard Worker #endif 53*35ffd701SAndroid Build Coastguard Worker #endif 54*35ffd701SAndroid Build Coastguard Worker 55*35ffd701SAndroid Build Coastguard Worker //********************************** SKU **************************************** 56*35ffd701SAndroid Build Coastguard Worker 57*35ffd701SAndroid Build Coastguard Worker // Sku Table structure to abstract sku based hw feature availability 58*35ffd701SAndroid Build Coastguard Worker // For any Sku based feature, add a field in this structure 59*35ffd701SAndroid Build Coastguard Worker 60*35ffd701SAndroid Build Coastguard Worker typedef struct _SKU_FEATURE_TABLE 61*35ffd701SAndroid Build Coastguard Worker { 62*35ffd701SAndroid Build Coastguard Worker // flags 1 = available, 0 = not available 63*35ffd701SAndroid Build Coastguard Worker struct //_sku_Core 64*35ffd701SAndroid Build Coastguard Worker { 65*35ffd701SAndroid Build Coastguard Worker unsigned int FtrULT : 1; // Indicates ULT SKU 66*35ffd701SAndroid Build Coastguard Worker unsigned int FtrVERing : 1; // Separate Ring for VideoEnhancement commands 67*35ffd701SAndroid Build Coastguard Worker unsigned int FtrVcs2 : 1; // Second VCS engine supported on Gen8 to Gen10 (in some configurations); 68*35ffd701SAndroid Build Coastguard Worker unsigned int FtrLCIA : 1; // Indicates Atom (Low Cost Intel Architecture) 69*35ffd701SAndroid Build Coastguard Worker unsigned int FtrCCSRing : 1; // To indicate if CCS hardware ring support is present. 70*35ffd701SAndroid Build Coastguard Worker unsigned int FtrCCSNode : 1; // To indicate if CCS Node support is present. 71*35ffd701SAndroid Build Coastguard Worker unsigned int FtrTileY : 1; // Identifies Legacy tiles TileY/Yf/Ys on the platform 72*35ffd701SAndroid Build Coastguard Worker unsigned int FtrCCSMultiInstance : 1; // To indicate if driver supports MultiContext mode on RCS and more than 1 CCS. 73*35ffd701SAndroid Build Coastguard Worker unsigned int FtrL3TransientDataFlush : 1; // Transient data flush from L3 cache 74*35ffd701SAndroid Build Coastguard Worker }; 75*35ffd701SAndroid Build Coastguard Worker 76*35ffd701SAndroid Build Coastguard Worker 77*35ffd701SAndroid Build Coastguard Worker struct //_sku_KMD_render 78*35ffd701SAndroid Build Coastguard Worker { // MI commends are capable to set 79*35ffd701SAndroid Build Coastguard Worker 80*35ffd701SAndroid Build Coastguard Worker unsigned int FtrPPGTT : 1; // Per-Process GTT 81*35ffd701SAndroid Build Coastguard Worker unsigned int FtrIA32eGfxPTEs : 1; // GTT/PPGTT's use 64-bit IA-32e PTE format. 82*35ffd701SAndroid Build Coastguard Worker unsigned int FtrMemTypeMocsDeferPAT : 1; // Pre-Gen12 MOCS can defers to PAT, e.g. eLLC Target Cache for MOCS 83*35ffd701SAndroid Build Coastguard Worker unsigned int FtrPml4Support : 1; // PML4-based gfx page tables are supported (in addition to PD-based tables). 84*35ffd701SAndroid Build Coastguard Worker unsigned int FtrSVM : 1; // Shared Virtual Memory (i.e. support for SVM buffers which can be accessed by both the CPU and GPU at numerically equivalent addresses.) 85*35ffd701SAndroid Build Coastguard Worker unsigned int FtrTileMappedResource : 1; // Tiled Resource support aka Sparse Textures. 86*35ffd701SAndroid Build Coastguard Worker unsigned int FtrTranslationTable : 1; // Translation Table support for Tiled Resources. 87*35ffd701SAndroid Build Coastguard Worker unsigned int FtrUserModeTranslationTable : 1; // User mode managed Translation Table support for Tiled Resources. 88*35ffd701SAndroid Build Coastguard Worker unsigned int FtrNullPages : 1; // Support for PTE-based Null pages for Sparse/Tiled Resources). 89*35ffd701SAndroid Build Coastguard Worker unsigned int FtrEDram : 1; // embedded DRAM enable 90*35ffd701SAndroid Build Coastguard Worker unsigned int FtrLLCBypass : 1; // Partial tunneling of UC memory traffic via CCF (LLC Bypass) 91*35ffd701SAndroid Build Coastguard Worker unsigned int FtrCrystalwell : 1; // Crystalwell Sku 92*35ffd701SAndroid Build Coastguard Worker unsigned int FtrCentralCachePolicy : 1; // Centralized Cache Policy 93*35ffd701SAndroid Build Coastguard Worker unsigned int FtrWddm2GpuMmu : 1; // WDDMv2 GpuMmu Model (Set in platform SKU files, but disabled by GMM as appropriate for given system.) 94*35ffd701SAndroid Build Coastguard Worker unsigned int FtrWddm2Svm : 1; // WDDMv2 SVM Model (Set in platform SKU files, but disabled by GMM as appropriate for given system.) 95*35ffd701SAndroid Build Coastguard Worker unsigned int FtrStandardMipTailFormat : 1; // Dx Standard MipTail Format for TileYf/Ys 96*35ffd701SAndroid Build Coastguard Worker unsigned int FtrWddm2_1_64kbPages : 1; // WDDMv2.1 64KB page support 97*35ffd701SAndroid Build Coastguard Worker unsigned int FtrE2ECompression : 1; // E2E Compression ie Aux Table support 98*35ffd701SAndroid Build Coastguard Worker unsigned int FtrLinearCCS : 1; // Linear Aux surface is supported 99*35ffd701SAndroid Build Coastguard Worker unsigned int FtrFrameBufferLLC : 1; // Displayable Frame buffers cached in LLC 100*35ffd701SAndroid Build Coastguard Worker unsigned int FtrDriverFLR : 1; // Enable Function Level Reset (Gen11+) 101*35ffd701SAndroid Build Coastguard Worker unsigned int FtrLocalMemory : 1; 102*35ffd701SAndroid Build Coastguard Worker unsigned int FtrCameraCaptureCaching : 1; 103*35ffd701SAndroid Build Coastguard Worker unsigned int FtrLocalMemoryAllows4KB : 1; 104*35ffd701SAndroid Build Coastguard Worker unsigned int FtrPpgtt64KBWalkOptimization : 1; // XeHP 64KB Page table walk optimization on PPGTT. 105*35ffd701SAndroid Build Coastguard Worker unsigned int FtrFlatPhysCCS : 1; // XeHP compression ie flat physical CCS 106*35ffd701SAndroid Build Coastguard Worker unsigned int FtrDisplayXTiling : 1; // Fallback to Legacy TileX Display, used for Pre-SI platforms. 107*35ffd701SAndroid Build Coastguard Worker unsigned int FtrMultiTileArch : 1; 108*35ffd701SAndroid Build Coastguard Worker unsigned int FtrDisplayPageTables : 1; // Display Page Tables: 2-Level Page walk for Displayable Frame buffers in GGTT. 109*35ffd701SAndroid Build Coastguard Worker unsigned int Ftr57bGPUAddressing : 1; // 57b GPUVA support eg: PVC 110*35ffd701SAndroid Build Coastguard Worker unsigned int FtrUnified3DMediaCompressionFormats : 1; // DG2 has unified Render/media compression(versus TGLLP/XeHP_SDV 's multiple instances) and requires changes to RC format h/w encodings. 111*35ffd701SAndroid Build Coastguard Worker unsigned int FtrForceTile4 : 1; // Flag to force Tile4 usage as default in Tile64 supported platforms. 112*35ffd701SAndroid Build Coastguard Worker unsigned int FtrTile64Optimization : 1; 113*35ffd701SAndroid Build Coastguard Worker unsigned int FtrDiscrete : 1; // Discrete-gfx 114*35ffd701SAndroid Build Coastguard Worker unsigned int FtrXe2Compression : 1; // Xe2 Stateless Compression 115*35ffd701SAndroid Build Coastguard Worker unsigned int FtrXe2PlusTiling : 1; // Tile64 MSAA Layout 116*35ffd701SAndroid Build Coastguard Worker unsigned int FtrL4Cache : 1; // L4 cache support 117*35ffd701SAndroid Build Coastguard Worker unsigned int FtrPml5Support : 1; // xe2 page tables 118*35ffd701SAndroid Build Coastguard Worker 119*35ffd701SAndroid Build Coastguard Worker }; 120*35ffd701SAndroid Build Coastguard Worker 121*35ffd701SAndroid Build Coastguard Worker 122*35ffd701SAndroid Build Coastguard Worker struct //_sku_3d 123*35ffd701SAndroid Build Coastguard Worker { 124*35ffd701SAndroid Build Coastguard Worker unsigned int FtrAstcLdr2D : 1; // ASTC 2D LDR Mode Support (mutually exclusive from other ASTC Ftr's) 125*35ffd701SAndroid Build Coastguard Worker unsigned int FtrAstcHdr2D : 1; // ASTC 2D HDR Mode Support (mutually exclusive from other ASTC Ftr's) 126*35ffd701SAndroid Build Coastguard Worker unsigned int FtrAstc3D : 1; // ASTC 3D LDR/HDR Mode Support (mutually exclusive from other ASTC Ftr's) 127*35ffd701SAndroid Build Coastguard Worker }; 128*35ffd701SAndroid Build Coastguard Worker 129*35ffd701SAndroid Build Coastguard Worker struct //_sku_PwrCons 130*35ffd701SAndroid Build Coastguard Worker { 131*35ffd701SAndroid Build Coastguard Worker //FBC 132*35ffd701SAndroid Build Coastguard Worker unsigned int FtrFbc : 1; // Frame Buffer Compression 133*35ffd701SAndroid Build Coastguard Worker 134*35ffd701SAndroid Build Coastguard Worker }; 135*35ffd701SAndroid Build Coastguard Worker 136*35ffd701SAndroid Build Coastguard Worker struct //_sku_Display 137*35ffd701SAndroid Build Coastguard Worker { 138*35ffd701SAndroid Build Coastguard Worker unsigned int FtrRendComp : 1; // For Render Compression Feature on Gen9+ 139*35ffd701SAndroid Build Coastguard Worker unsigned int FtrDisplayYTiling : 1; // For Y Tile Feature on Gen9+ 140*35ffd701SAndroid Build Coastguard Worker unsigned int FtrDisplayDisabled : 1; // Server skus with Display 141*35ffd701SAndroid Build Coastguard Worker 142*35ffd701SAndroid Build Coastguard Worker }; 143*35ffd701SAndroid Build Coastguard Worker 144*35ffd701SAndroid Build Coastguard Worker struct 145*35ffd701SAndroid Build Coastguard Worker { 146*35ffd701SAndroid Build Coastguard Worker unsigned int FtrS3D : 1; // Stereoscopic 3D 147*35ffd701SAndroid Build Coastguard Worker unsigned int FtrDisplayEngineS3d : 1; // Display Engine Stereoscopic 3D 148*35ffd701SAndroid Build Coastguard Worker }; 149*35ffd701SAndroid Build Coastguard Worker 150*35ffd701SAndroid Build Coastguard Worker struct // Virtualization features 151*35ffd701SAndroid Build Coastguard Worker { 152*35ffd701SAndroid Build Coastguard Worker unsigned int FtrVgt : 1; 153*35ffd701SAndroid Build Coastguard Worker }; 154*35ffd701SAndroid Build Coastguard Worker struct // For MultiTileArch, KMD reports default tile assignment to UMD-GmmLib - via __KmQueryDriverPrivateInfo 155*35ffd701SAndroid Build Coastguard Worker { 156*35ffd701SAndroid Build Coastguard Worker unsigned int FtrAssignedGpuTile : 3; // Indicates Gpu Tile number assigned to a process for Naive apps. 157*35ffd701SAndroid Build Coastguard Worker }; 158*35ffd701SAndroid Build Coastguard Worker 159*35ffd701SAndroid Build Coastguard Worker } SKU_FEATURE_TABLE, *PSKU_FEATURE_TABLE; 160*35ffd701SAndroid Build Coastguard Worker 161*35ffd701SAndroid Build Coastguard Worker #if defined(__clang__) 162*35ffd701SAndroid Build Coastguard Worker #pragma clang diagnostic pop 163*35ffd701SAndroid Build Coastguard Worker #elif defined(__GNUC__) 164*35ffd701SAndroid Build Coastguard Worker #pragma GCC diagnostic pop 165*35ffd701SAndroid Build Coastguard Worker #endif 166*35ffd701SAndroid Build Coastguard Worker 167*35ffd701SAndroid Build Coastguard Worker //********************************** WA **************************************** 168*35ffd701SAndroid Build Coastguard Worker 169*35ffd701SAndroid Build Coastguard Worker #define WA_DECLARE( wa, wa_comment, wa_bugType, wa_impact, wa_component) unsigned int wa : 1; 170*35ffd701SAndroid Build Coastguard Worker 171*35ffd701SAndroid Build Coastguard Worker enum WA_BUG_TYPE 172*35ffd701SAndroid Build Coastguard Worker { 173*35ffd701SAndroid Build Coastguard Worker WA_BUG_TYPE_UNKNOWN = 0, 174*35ffd701SAndroid Build Coastguard Worker WA_BUG_TYPE_CORRUPTION = 1, 175*35ffd701SAndroid Build Coastguard Worker WA_BUG_TYPE_HANG = 2, 176*35ffd701SAndroid Build Coastguard Worker WA_BUG_TYPE_PERF = 4, 177*35ffd701SAndroid Build Coastguard Worker WA_BUG_TYPE_FUNCTIONAL = 8, 178*35ffd701SAndroid Build Coastguard Worker WA_BUG_TYPE_SPEC = 16, 179*35ffd701SAndroid Build Coastguard Worker WA_BUG_TYPE_FAIL = 32 180*35ffd701SAndroid Build Coastguard Worker }; 181*35ffd701SAndroid Build Coastguard Worker 182*35ffd701SAndroid Build Coastguard Worker #define WA_BUG_PERF_IMPACT(f) f 183*35ffd701SAndroid Build Coastguard Worker #define WA_BUG_PERF_IMPACT_UNKNOWN -1 184*35ffd701SAndroid Build Coastguard Worker 185*35ffd701SAndroid Build Coastguard Worker enum WA_COMPONENT 186*35ffd701SAndroid Build Coastguard Worker { 187*35ffd701SAndroid Build Coastguard Worker WA_COMPONENT_UNKNOWN = 0, 188*35ffd701SAndroid Build Coastguard Worker WA_COMPONENT_GMM = 0x1, 189*35ffd701SAndroid Build Coastguard Worker WA_COMPONENT_MEDIA = 0x2, 190*35ffd701SAndroid Build Coastguard Worker WA_COMPONENT_OCL = 0x3, 191*35ffd701SAndroid Build Coastguard Worker }; 192*35ffd701SAndroid Build Coastguard Worker 193*35ffd701SAndroid Build Coastguard Worker // Workaround Table structure to abstract WA based on hw and rev id 194*35ffd701SAndroid Build Coastguard Worker typedef struct _WA_TABLE 195*35ffd701SAndroid Build Coastguard Worker { 196*35ffd701SAndroid Build Coastguard Worker // struct wa_3d 197*35ffd701SAndroid Build Coastguard Worker unsigned int : 0; 198*35ffd701SAndroid Build Coastguard Worker 199*35ffd701SAndroid Build Coastguard Worker WA_DECLARE( 200*35ffd701SAndroid Build Coastguard Worker WaAlignIndexBuffer, 201*35ffd701SAndroid Build Coastguard Worker "Force the end of the index buffer to be cacheline-aligned to work around a hardware bug that performs no bounds checking on accesses past the end of the index buffer when it only partially fills a cacheline.", 202*35ffd701SAndroid Build Coastguard Worker WA_BUG_TYPE_CORRUPTION, 203*35ffd701SAndroid Build Coastguard Worker WA_BUG_PERF_IMPACT_UNKNOWN, WA_COMPONENT_UNKNOWN) 204*35ffd701SAndroid Build Coastguard Worker 205*35ffd701SAndroid Build Coastguard Worker // struct _wa_Gmm 206*35ffd701SAndroid Build Coastguard Worker unsigned int : 0; 207*35ffd701SAndroid Build Coastguard Worker 208*35ffd701SAndroid Build Coastguard Worker WA_DECLARE( 209*35ffd701SAndroid Build Coastguard Worker WaValign2ForR8G8B8UINTFormat, 210*35ffd701SAndroid Build Coastguard Worker "sampler format decoding error in HW for this particular format double fetching is happening, WA is to use VALIGN_2 instead of VALIGN_4", 211*35ffd701SAndroid Build Coastguard Worker WA_BUG_TYPE_CORRUPTION, 212*35ffd701SAndroid Build Coastguard Worker WA_BUG_PERF_IMPACT(0), WA_COMPONENT_UNKNOWN) 213*35ffd701SAndroid Build Coastguard Worker 214*35ffd701SAndroid Build Coastguard Worker WA_DECLARE( 215*35ffd701SAndroid Build Coastguard Worker WaValign2For96bppFormats, 216*35ffd701SAndroid Build Coastguard Worker "VALIGN_2 only for 96bpp formats.", 217*35ffd701SAndroid Build Coastguard Worker WA_BUG_TYPE_UNKNOWN, 218*35ffd701SAndroid Build Coastguard Worker WA_BUG_PERF_IMPACT_UNKNOWN, WA_COMPONENT_UNKNOWN) 219*35ffd701SAndroid Build Coastguard Worker 220*35ffd701SAndroid Build Coastguard Worker WA_DECLARE( 221*35ffd701SAndroid Build Coastguard Worker WaCursor16K, 222*35ffd701SAndroid Build Coastguard Worker "Cursor memory need to be mapped in GTT", 223*35ffd701SAndroid Build Coastguard Worker WA_BUG_TYPE_UNKNOWN, 224*35ffd701SAndroid Build Coastguard Worker WA_BUG_PERF_IMPACT_UNKNOWN, WA_COMPONENT_UNKNOWN) 225*35ffd701SAndroid Build Coastguard Worker 226*35ffd701SAndroid Build Coastguard Worker WA_DECLARE( 227*35ffd701SAndroid Build Coastguard Worker Wa8kAlignforAsyncFlip, 228*35ffd701SAndroid Build Coastguard Worker "Enable 8k pitch alignment for Asynchronous Flips in rotated mode. (!) Unconventional use! When used, set each XP mode-change (not in platform WA file)!", 229*35ffd701SAndroid Build Coastguard Worker WA_BUG_TYPE_UNKNOWN, 230*35ffd701SAndroid Build Coastguard Worker WA_BUG_PERF_IMPACT_UNKNOWN, WA_COMPONENT_UNKNOWN) 231*35ffd701SAndroid Build Coastguard Worker 232*35ffd701SAndroid Build Coastguard Worker WA_DECLARE( 233*35ffd701SAndroid Build Coastguard Worker Wa29BitDisplayAddrLimit, 234*35ffd701SAndroid Build Coastguard Worker "Sprite/Overlay/Display addresses limited to 29 bits (512MB)", 235*35ffd701SAndroid Build Coastguard Worker WA_BUG_TYPE_UNKNOWN, 236*35ffd701SAndroid Build Coastguard Worker WA_BUG_PERF_IMPACT_UNKNOWN, WA_COMPONENT_UNKNOWN) 237*35ffd701SAndroid Build Coastguard Worker 238*35ffd701SAndroid Build Coastguard Worker WA_DECLARE( 239*35ffd701SAndroid Build Coastguard Worker WaAlignContextImage, 240*35ffd701SAndroid Build Coastguard Worker "WA for context alignment", 241*35ffd701SAndroid Build Coastguard Worker WA_BUG_TYPE_UNKNOWN, 242*35ffd701SAndroid Build Coastguard Worker WA_BUG_PERF_IMPACT_UNKNOWN, WA_COMPONENT_UNKNOWN) 243*35ffd701SAndroid Build Coastguard Worker 244*35ffd701SAndroid Build Coastguard Worker WA_DECLARE( 245*35ffd701SAndroid Build Coastguard Worker WaForceGlobalGTT, 246*35ffd701SAndroid Build Coastguard Worker "WA for cmds requiring memory address to come from global GTT, not PPGTT.", 247*35ffd701SAndroid Build Coastguard Worker WA_BUG_TYPE_UNKNOWN, 248*35ffd701SAndroid Build Coastguard Worker WA_BUG_PERF_IMPACT_UNKNOWN, WA_COMPONENT_UNKNOWN) 249*35ffd701SAndroid Build Coastguard Worker 250*35ffd701SAndroid Build Coastguard Worker WA_DECLARE( 251*35ffd701SAndroid Build Coastguard Worker WaReportPerfCountForceGlobalGTT, 252*35ffd701SAndroid Build Coastguard Worker "WA for MI_REPORT_PERF_COUNT cmd requiring memory address to come from global GTT, not PPGTT.", 253*35ffd701SAndroid Build Coastguard Worker WA_BUG_TYPE_UNKNOWN, 254*35ffd701SAndroid Build Coastguard Worker WA_BUG_PERF_IMPACT_UNKNOWN, WA_COMPONENT_UNKNOWN) 255*35ffd701SAndroid Build Coastguard Worker 256*35ffd701SAndroid Build Coastguard Worker WA_DECLARE( 257*35ffd701SAndroid Build Coastguard Worker WaOaAddressTranslation, 258*35ffd701SAndroid Build Coastguard Worker "WA for STDW and PIPE_CONTROL cmd requiring memory address to come from global GTT, not PPGTT.", 259*35ffd701SAndroid Build Coastguard Worker WA_BUG_TYPE_UNKNOWN, 260*35ffd701SAndroid Build Coastguard Worker WA_BUG_PERF_IMPACT_UNKNOWN, WA_COMPONENT_UNKNOWN) 261*35ffd701SAndroid Build Coastguard Worker 262*35ffd701SAndroid Build Coastguard Worker WA_DECLARE( 263*35ffd701SAndroid Build Coastguard Worker Wa2RowVerticalAlignment, 264*35ffd701SAndroid Build Coastguard Worker "WA to set VALIGN of sample and rt buffers.", 265*35ffd701SAndroid Build Coastguard Worker WA_BUG_TYPE_UNKNOWN, 266*35ffd701SAndroid Build Coastguard Worker WA_BUG_PERF_IMPACT_UNKNOWN, WA_COMPONENT_UNKNOWN) 267*35ffd701SAndroid Build Coastguard Worker 268*35ffd701SAndroid Build Coastguard Worker WA_DECLARE( 269*35ffd701SAndroid Build Coastguard Worker WaPpgttAliasGlobalGttSpace, 270*35ffd701SAndroid Build Coastguard Worker "Disallow independent PPGTT space--i.e. the PPGTT must simply alias global GTT space. (N/A without FtrPageDirectory set.)", 271*35ffd701SAndroid Build Coastguard Worker WA_BUG_TYPE_UNKNOWN, 272*35ffd701SAndroid Build Coastguard Worker WA_BUG_PERF_IMPACT_UNKNOWN, WA_COMPONENT_UNKNOWN) 273*35ffd701SAndroid Build Coastguard Worker 274*35ffd701SAndroid Build Coastguard Worker WA_DECLARE( 275*35ffd701SAndroid Build Coastguard Worker WaClearFenceRegistersAtDriverInit, 276*35ffd701SAndroid Build Coastguard Worker "WA to clear all fence registers at driver init time.", 277*35ffd701SAndroid Build Coastguard Worker WA_BUG_TYPE_UNKNOWN, 278*35ffd701SAndroid Build Coastguard Worker WA_BUG_PERF_IMPACT_UNKNOWN, WA_COMPONENT_UNKNOWN) 279*35ffd701SAndroid Build Coastguard Worker 280*35ffd701SAndroid Build Coastguard Worker WA_DECLARE( 281*35ffd701SAndroid Build Coastguard Worker WaRestrictPitch128KB, 282*35ffd701SAndroid Build Coastguard Worker "Restrict max surface pitch to 128KB.", 283*35ffd701SAndroid Build Coastguard Worker WA_BUG_TYPE_UNKNOWN, 284*35ffd701SAndroid Build Coastguard Worker WA_BUG_PERF_IMPACT_UNKNOWN, WA_COMPONENT_UNKNOWN) 285*35ffd701SAndroid Build Coastguard Worker 286*35ffd701SAndroid Build Coastguard Worker WA_DECLARE( 287*35ffd701SAndroid Build Coastguard Worker WaAvoidLLC, 288*35ffd701SAndroid Build Coastguard Worker "Avoid LLC use. (Intended for debug purposes only.)", 289*35ffd701SAndroid Build Coastguard Worker WA_BUG_TYPE_UNKNOWN, 290*35ffd701SAndroid Build Coastguard Worker WA_BUG_PERF_IMPACT_UNKNOWN, WA_COMPONENT_UNKNOWN) 291*35ffd701SAndroid Build Coastguard Worker 292*35ffd701SAndroid Build Coastguard Worker WA_DECLARE( 293*35ffd701SAndroid Build Coastguard Worker WaAvoidL3, 294*35ffd701SAndroid Build Coastguard Worker "Avoid L3 use (but don't reconfigure; and naturally URB/etc. still need L3). (Intended for debug purposes only.)", 295*35ffd701SAndroid Build Coastguard Worker WA_BUG_TYPE_UNKNOWN, 296*35ffd701SAndroid Build Coastguard Worker WA_BUG_PERF_IMPACT_UNKNOWN, WA_COMPONENT_UNKNOWN) 297*35ffd701SAndroid Build Coastguard Worker 298*35ffd701SAndroid Build Coastguard Worker WA_DECLARE( 299*35ffd701SAndroid Build Coastguard Worker Wa16TileFencesOnly, 300*35ffd701SAndroid Build Coastguard Worker "Limit to 16 tiling fences --Set at run-time by GMM.", 301*35ffd701SAndroid Build Coastguard Worker WA_BUG_TYPE_UNKNOWN, 302*35ffd701SAndroid Build Coastguard Worker WA_BUG_PERF_IMPACT_UNKNOWN, WA_COMPONENT_UNKNOWN) 303*35ffd701SAndroid Build Coastguard Worker 304*35ffd701SAndroid Build Coastguard Worker WA_DECLARE( 305*35ffd701SAndroid Build Coastguard Worker Wa16MBOABufferAlignment, 306*35ffd701SAndroid Build Coastguard Worker "WA align the base address of the OA buffer to 16mb", 307*35ffd701SAndroid Build Coastguard Worker WA_BUG_TYPE_UNKNOWN, 308*35ffd701SAndroid Build Coastguard Worker WA_BUG_PERF_IMPACT_UNKNOWN, WA_COMPONENT_UNKNOWN) 309*35ffd701SAndroid Build Coastguard Worker 310*35ffd701SAndroid Build Coastguard Worker WA_DECLARE( 311*35ffd701SAndroid Build Coastguard Worker WaTranslationTableUnavailable, 312*35ffd701SAndroid Build Coastguard Worker "WA for BXT and SKL skus without Tiled-Resource Translation-Table (TR-TT)", 313*35ffd701SAndroid Build Coastguard Worker WA_BUG_TYPE_SPEC, 314*35ffd701SAndroid Build Coastguard Worker WA_BUG_PERF_IMPACT_UNKNOWN, WA_COMPONENT_UNKNOWN) 315*35ffd701SAndroid Build Coastguard Worker 316*35ffd701SAndroid Build Coastguard Worker WA_DECLARE( 317*35ffd701SAndroid Build Coastguard Worker WaNoMinimizedTrivialSurfacePadding, 318*35ffd701SAndroid Build Coastguard Worker "(Not actual HW WA.) On BDW:B0+ trivial surfaces (single-LOD, non-arrayed, non-MSAA, 1D/2D/Buffers) are exempt from the samplers large padding requirements. This WA identifies platforms that dont yet support that.", 319*35ffd701SAndroid Build Coastguard Worker WA_BUG_TYPE_UNKNOWN, 320*35ffd701SAndroid Build Coastguard Worker WA_BUG_PERF_IMPACT_UNKNOWN, WA_COMPONENT_UNKNOWN) 321*35ffd701SAndroid Build Coastguard Worker 322*35ffd701SAndroid Build Coastguard Worker WA_DECLARE( 323*35ffd701SAndroid Build Coastguard Worker WaNoBufferSamplerPadding, 324*35ffd701SAndroid Build Coastguard Worker "Client agreeing to take responsibility for flushing L3 after sampling/etc.", 325*35ffd701SAndroid Build Coastguard Worker WA_BUG_TYPE_UNKNOWN, 326*35ffd701SAndroid Build Coastguard Worker WA_BUG_PERF_IMPACT_UNKNOWN, WA_COMPONENT_UNKNOWN) 327*35ffd701SAndroid Build Coastguard Worker 328*35ffd701SAndroid Build Coastguard Worker WA_DECLARE( 329*35ffd701SAndroid Build Coastguard Worker WaSurfaceStatePlanarYOffsetAlignBy2, 330*35ffd701SAndroid Build Coastguard Worker "WA to align SURFACE_STATE Y Offset for UV Plane by 2", 331*35ffd701SAndroid Build Coastguard Worker WA_BUG_TYPE_UNKNOWN, 332*35ffd701SAndroid Build Coastguard Worker WA_BUG_PERF_IMPACT_UNKNOWN, WA_COMPONENT_UNKNOWN) 333*35ffd701SAndroid Build Coastguard Worker 334*35ffd701SAndroid Build Coastguard Worker WA_DECLARE( 335*35ffd701SAndroid Build Coastguard Worker WaGttCachingOffByDefault, 336*35ffd701SAndroid Build Coastguard Worker "WA to enable the caching if off by defaultboth at driver init and Resume", 337*35ffd701SAndroid Build Coastguard Worker WA_BUG_TYPE_UNKNOWN, 338*35ffd701SAndroid Build Coastguard Worker WA_BUG_PERF_IMPACT_UNKNOWN, WA_COMPONENT_UNKNOWN) 339*35ffd701SAndroid Build Coastguard Worker 340*35ffd701SAndroid Build Coastguard Worker WA_DECLARE( 341*35ffd701SAndroid Build Coastguard Worker WaTouchAllSvmMemory, 342*35ffd701SAndroid Build Coastguard Worker "When in WDDM2 / SVM mode, all VA memory buffers/surfaces/etc need to be touched to ensure proper PTE mapping", 343*35ffd701SAndroid Build Coastguard Worker WA_BUG_TYPE_UNKNOWN, 344*35ffd701SAndroid Build Coastguard Worker WA_BUG_PERF_IMPACT_UNKNOWN, WA_COMPONENT_UNKNOWN) 345*35ffd701SAndroid Build Coastguard Worker 346*35ffd701SAndroid Build Coastguard Worker WA_DECLARE( 347*35ffd701SAndroid Build Coastguard Worker WaIOBAddressMustBeValidInHwContext, 348*35ffd701SAndroid Build Coastguard Worker "IndirectObjectBase address (of SBA cmd) in HW Context needs to be valid because it gets used every Context load", 349*35ffd701SAndroid Build Coastguard Worker WA_BUG_TYPE_HANG, 350*35ffd701SAndroid Build Coastguard Worker WA_BUG_PERF_IMPACT_UNKNOWN, WA_COMPONENT_UNKNOWN) 351*35ffd701SAndroid Build Coastguard Worker 352*35ffd701SAndroid Build Coastguard Worker WA_DECLARE( 353*35ffd701SAndroid Build Coastguard Worker WaFlushTlbAfterCpuGgttWrites, 354*35ffd701SAndroid Build Coastguard Worker "WA to flush TLB after CPU GTT writes because TLB entry invalidations on GTT writes use wrong address for look-up", 355*35ffd701SAndroid Build Coastguard Worker WA_BUG_TYPE_FUNCTIONAL, 356*35ffd701SAndroid Build Coastguard Worker WA_BUG_PERF_IMPACT_UNKNOWN, WA_COMPONENT_UNKNOWN) 357*35ffd701SAndroid Build Coastguard Worker 358*35ffd701SAndroid Build Coastguard Worker WA_DECLARE( 359*35ffd701SAndroid Build Coastguard Worker WaMsaa8xTileYDepthPitchAlignment, 360*35ffd701SAndroid Build Coastguard Worker "WA to use 256B pitch alignment for MSAA 8x + TileY depth surfaces.", 361*35ffd701SAndroid Build Coastguard Worker WA_BUG_TYPE_UNKNOWN, 362*35ffd701SAndroid Build Coastguard Worker WA_BUG_PERF_IMPACT_UNKNOWN, WA_COMPONENT_UNKNOWN) 363*35ffd701SAndroid Build Coastguard Worker 364*35ffd701SAndroid Build Coastguard Worker WA_DECLARE( 365*35ffd701SAndroid Build Coastguard Worker WaDisableNullPageAsDummy, 366*35ffd701SAndroid Build Coastguard Worker "WA to disable use of NULL bit in dummy PTE", 367*35ffd701SAndroid Build Coastguard Worker WA_BUG_TYPE_HANG | WA_BUG_TYPE_CORRUPTION, 368*35ffd701SAndroid Build Coastguard Worker WA_BUG_PERF_IMPACT_UNKNOWN, WA_COMPONENT_GMM) 369*35ffd701SAndroid Build Coastguard Worker 370*35ffd701SAndroid Build Coastguard Worker WA_DECLARE( 371*35ffd701SAndroid Build Coastguard Worker WaUseVAlign16OnTileXYBpp816, 372*35ffd701SAndroid Build Coastguard Worker "WA to make VAlign = 16, when bpp == 8 or 16 for both TileX and TileY on BDW", 373*35ffd701SAndroid Build Coastguard Worker WA_BUG_TYPE_CORRUPTION, 374*35ffd701SAndroid Build Coastguard Worker WA_BUG_PERF_IMPACT_UNKNOWN, WA_COMPONENT_GMM) 375*35ffd701SAndroid Build Coastguard Worker 376*35ffd701SAndroid Build Coastguard Worker WA_DECLARE( 377*35ffd701SAndroid Build Coastguard Worker WaNoMocsEllcOnly, 378*35ffd701SAndroid Build Coastguard Worker "WA to get eLLC Target Cache for MOCS surfaces, when MOCS defers to PAT", 379*35ffd701SAndroid Build Coastguard Worker WA_BUG_TYPE_FUNCTIONAL, 380*35ffd701SAndroid Build Coastguard Worker WA_BUG_PERF_IMPACT, WA_COMPONENT_GMM) 381*35ffd701SAndroid Build Coastguard Worker 382*35ffd701SAndroid Build Coastguard Worker WA_DECLARE( 383*35ffd701SAndroid Build Coastguard Worker WaGttPat0, 384*35ffd701SAndroid Build Coastguard Worker "GTT accesses hardwired to PAT0", 385*35ffd701SAndroid Build Coastguard Worker WA_BUG_TYPE_FUNCTIONAL, 386*35ffd701SAndroid Build Coastguard Worker WA_BUG_PERF_IMPACT, WA_COMPONENT_GMM) 387*35ffd701SAndroid Build Coastguard Worker 388*35ffd701SAndroid Build Coastguard Worker WA_DECLARE( 389*35ffd701SAndroid Build Coastguard Worker WaGttPat0WB, 390*35ffd701SAndroid Build Coastguard Worker "WA to set WB cache for GTT accessess on PAT0", 391*35ffd701SAndroid Build Coastguard Worker WA_BUG_TYPE_FUNCTIONAL, 392*35ffd701SAndroid Build Coastguard Worker WA_BUG_PERF_IMPACT, WA_COMPONENT_GMM) 393*35ffd701SAndroid Build Coastguard Worker 394*35ffd701SAndroid Build Coastguard Worker WA_DECLARE( 395*35ffd701SAndroid Build Coastguard Worker WaMemTypeIsMaxOfPatAndMocs, 396*35ffd701SAndroid Build Coastguard Worker "WA to set PAT.MT = UC. Since TGLLP uses MAX function to resolve PAT vs MOCS MemType So unless PTE.PAT says UC, MOCS won't be able to set UC!", 397*35ffd701SAndroid Build Coastguard Worker WA_BUG_TYPE_FUNCTIONAL, 398*35ffd701SAndroid Build Coastguard Worker WA_BUG_PERF_IMPACT, WA_COMPONENT_GMM) 399*35ffd701SAndroid Build Coastguard Worker 400*35ffd701SAndroid Build Coastguard Worker WA_DECLARE( 401*35ffd701SAndroid Build Coastguard Worker WaGttPat0GttWbOverOsIommuEllcOnly, 402*35ffd701SAndroid Build Coastguard Worker "WA to set PAT0 to full cacheable (LLC+eLLC) for GTT access over eLLC only usage for OS based SVM", 403*35ffd701SAndroid Build Coastguard Worker WA_BUG_TYPE_FUNCTIONAL, 404*35ffd701SAndroid Build Coastguard Worker WA_BUG_PERF_IMPACT, WA_COMPONENT_GMM) 405*35ffd701SAndroid Build Coastguard Worker 406*35ffd701SAndroid Build Coastguard Worker WA_DECLARE( 407*35ffd701SAndroid Build Coastguard Worker WaAddDummyPageForDisplayPrefetch, 408*35ffd701SAndroid Build Coastguard Worker "WA to add dummy page row after display surfaces to avoid issues with display pre-fetch", 409*35ffd701SAndroid Build Coastguard Worker WA_BUG_TYPE_CORRUPTION, 410*35ffd701SAndroid Build Coastguard Worker WA_BUG_PERF_IMPACT_UNKNOWN, WA_COMPONENT_GMM) 411*35ffd701SAndroid Build Coastguard Worker 412*35ffd701SAndroid Build Coastguard Worker WA_DECLARE( 413*35ffd701SAndroid Build Coastguard Worker WaLLCCachingUnsupported, 414*35ffd701SAndroid Build Coastguard Worker "There is no H/w support for LLC in VLV or VLV Plus", 415*35ffd701SAndroid Build Coastguard Worker WA_BUG_TYPE_UNKNOWN, 416*35ffd701SAndroid Build Coastguard Worker WA_BUG_PERF_IMPACT_UNKNOWN, WA_COMPONENT_GMM) 417*35ffd701SAndroid Build Coastguard Worker 418*35ffd701SAndroid Build Coastguard Worker WA_DECLARE( 419*35ffd701SAndroid Build Coastguard Worker WaEncryptedEdramOnlyPartials, 420*35ffd701SAndroid Build Coastguard Worker "Disable Edram only caching for encrypted usage", 421*35ffd701SAndroid Build Coastguard Worker WA_BUG_TYPE_CORRUPTION, 422*35ffd701SAndroid Build Coastguard Worker WA_BUG_PERF_IMPACT_UNKNOWN, WA_COMPONENT_GMM) 423*35ffd701SAndroid Build Coastguard Worker 424*35ffd701SAndroid Build Coastguard Worker WA_DECLARE( 425*35ffd701SAndroid Build Coastguard Worker WaDisableEdramForDisplayRT, 426*35ffd701SAndroid Build Coastguard Worker "WA to disable EDRAM cacheability of Displayable Render Targets on SKL Steppings until I0", 427*35ffd701SAndroid Build Coastguard Worker WA_BUG_TYPE_PERF, 428*35ffd701SAndroid Build Coastguard Worker WA_BUG_PERF_IMPACT, WA_COMPONENT_GMM) 429*35ffd701SAndroid Build Coastguard Worker 430*35ffd701SAndroid Build Coastguard Worker WA_DECLARE( 431*35ffd701SAndroid Build Coastguard Worker WaAstcCorruptionForOddCompressedBlockSizeX, 432*35ffd701SAndroid Build Coastguard Worker "Enable CHV D0+ WA for ASTC HW bug: sampling from mip levels 2+ returns wrong texels. WA adds XOffset to mip2+, requires D0 HW ECO fix.", 433*35ffd701SAndroid Build Coastguard Worker WA_BUG_TYPE_CORRUPTION, 434*35ffd701SAndroid Build Coastguard Worker WA_BUG_PERF_IMPACT_UNKNOWN, WA_COMPONENT_UNKNOWN) 435*35ffd701SAndroid Build Coastguard Worker 436*35ffd701SAndroid Build Coastguard Worker WA_DECLARE( 437*35ffd701SAndroid Build Coastguard Worker WaLosslessCompressionSurfaceStride, 438*35ffd701SAndroid Build Coastguard Worker "WA to align surface stride for unified aux surfaces", 439*35ffd701SAndroid Build Coastguard Worker WA_BUG_TYPE_UNKNOWN, 440*35ffd701SAndroid Build Coastguard Worker WA_BUG_PERF_IMPACT_UNKNOWN, WA_COMPONENT_UNKNOWN) 441*35ffd701SAndroid Build Coastguard Worker 442*35ffd701SAndroid Build Coastguard Worker WA_DECLARE( 443*35ffd701SAndroid Build Coastguard Worker Wa4kAlignUVOffsetNV12LinearSurface, 444*35ffd701SAndroid Build Coastguard Worker "WA to align UV plane offset at 4k page for NV12 Linear FlipChain surfaces", 445*35ffd701SAndroid Build Coastguard Worker WA_BUG_TYPE_CORRUPTION, 446*35ffd701SAndroid Build Coastguard Worker WA_BUG_PERF_IMPACT_UNKNOWN, WA_COMPONENT_UNKNOWN) 447*35ffd701SAndroid Build Coastguard Worker 448*35ffd701SAndroid Build Coastguard Worker WA_DECLARE( 449*35ffd701SAndroid Build Coastguard Worker WaFbcLinearSurfaceStride, 450*35ffd701SAndroid Build Coastguard Worker "WA to align surface stride for linear primary surfaces", 451*35ffd701SAndroid Build Coastguard Worker WA_BUG_TYPE_UNKNOWN, 452*35ffd701SAndroid Build Coastguard Worker WA_BUG_PERF_IMPACT_UNKNOWN, WA_COMPONENT_UNKNOWN) 453*35ffd701SAndroid Build Coastguard Worker 454*35ffd701SAndroid Build Coastguard Worker WA_DECLARE( 455*35ffd701SAndroid Build Coastguard Worker WaDoubleFastClearWidthAlignment, 456*35ffd701SAndroid Build Coastguard Worker "For all HSW GT3 skus and for all HSW GT E0+ skus, must double the width alignment when performing fast clears.", 457*35ffd701SAndroid Build Coastguard Worker WA_BUG_TYPE_CORRUPTION, 458*35ffd701SAndroid Build Coastguard Worker WA_BUG_PERF_IMPACT_UNKNOWN, WA_COMPONENT_UNKNOWN) 459*35ffd701SAndroid Build Coastguard Worker 460*35ffd701SAndroid Build Coastguard Worker WA_DECLARE( 461*35ffd701SAndroid Build Coastguard Worker WaCompressedResourceRequiresConstVA21, 462*35ffd701SAndroid Build Coastguard Worker "3D and Media compressed resources should not have addresses that change within bit range [20:0]", 463*35ffd701SAndroid Build Coastguard Worker WA_BUG_TYPE_UNKNOWN, 464*35ffd701SAndroid Build Coastguard Worker WA_BUG_PERF_IMPACT_UNKNOWN, WA_COMPONENT_UNKNOWN) 465*35ffd701SAndroid Build Coastguard Worker 466*35ffd701SAndroid Build Coastguard Worker WA_DECLARE( 467*35ffd701SAndroid Build Coastguard Worker WaDisregardPlatformChecks, 468*35ffd701SAndroid Build Coastguard Worker "Disable plarform checks to surface allocation.", 469*35ffd701SAndroid Build Coastguard Worker WA_BUG_TYPE_UNKNOWN, 470*35ffd701SAndroid Build Coastguard Worker WA_BUG_PERF_IMPACT_UNKNOWN, WA_COMPONENT_UNKNOWN) 471*35ffd701SAndroid Build Coastguard Worker 472*35ffd701SAndroid Build Coastguard Worker WA_DECLARE( 473*35ffd701SAndroid Build Coastguard Worker WaAlignYUVResourceToLCU, 474*35ffd701SAndroid Build Coastguard Worker "source and recon surfaces need to be aligned to the LCU size", 475*35ffd701SAndroid Build Coastguard Worker WA_BUG_TYPE_CORRUPTION, 476*35ffd701SAndroid Build Coastguard Worker WA_BUG_PERF_IMPACT_UNKNOWN, WA_COMPONENT_GMM) 477*35ffd701SAndroid Build Coastguard Worker 478*35ffd701SAndroid Build Coastguard Worker WA_DECLARE( 479*35ffd701SAndroid Build Coastguard Worker Wa32bppTileY2DColorNoHAlign4, 480*35ffd701SAndroid Build Coastguard Worker "Wa to defeature HALIGN_4 for 2D 32bpp RT surfaces, due to bug introduced from daprsc changes to help RCPB generate correct offsets to deal with cam match", 481*35ffd701SAndroid Build Coastguard Worker WA_BUG_TYPE_CORRUPTION, 482*35ffd701SAndroid Build Coastguard Worker WA_BUG_PERF_IMPACT_UNKNOWN, WA_COMPONENT_GMM) 483*35ffd701SAndroid Build Coastguard Worker 484*35ffd701SAndroid Build Coastguard Worker WA_DECLARE( 485*35ffd701SAndroid Build Coastguard Worker WaAuxTable16KGranular, 486*35ffd701SAndroid Build Coastguard Worker "AuxTable map granularity changed to 16K ", 487*35ffd701SAndroid Build Coastguard Worker WA_BUG_TYPE_PERF, 488*35ffd701SAndroid Build Coastguard Worker WA_BUG_PERF_IMPACT_UNKNOWN, WA_COMPONENT_UNKNOWN) 489*35ffd701SAndroid Build Coastguard Worker 490*35ffd701SAndroid Build Coastguard Worker WA_DECLARE( 491*35ffd701SAndroid Build Coastguard Worker WaAuxTable64KGranular, 492*35ffd701SAndroid Build Coastguard Worker "AuxTable map granularity changed to 64K ..Remove once Neo switches reference to WaAuxTable16KGranular", 493*35ffd701SAndroid Build Coastguard Worker WA_BUG_TYPE_PERF, 494*35ffd701SAndroid Build Coastguard Worker WA_BUG_PERF_IMPACT_UNKNOWN, WA_COMPONENT_UNKNOWN) 495*35ffd701SAndroid Build Coastguard Worker 496*35ffd701SAndroid Build Coastguard Worker WA_DECLARE( 497*35ffd701SAndroid Build Coastguard Worker WaLimit128BMediaCompr, 498*35ffd701SAndroid Build Coastguard Worker "WA to limit media decompression on Render pipe to 128B (2CLs) 4:n.", 499*35ffd701SAndroid Build Coastguard Worker WA_BUG_TYPE_FUNCTIONAL, 500*35ffd701SAndroid Build Coastguard Worker WA_BUG_PERF_IMPACT_UNKNOWN, WA_COMPONENT_GMM) 501*35ffd701SAndroid Build Coastguard Worker 502*35ffd701SAndroid Build Coastguard Worker WA_DECLARE( 503*35ffd701SAndroid Build Coastguard Worker WaUntypedBufferCompression, 504*35ffd701SAndroid Build Coastguard Worker "WA to allow untyped raw buffer AuxTable mapping", 505*35ffd701SAndroid Build Coastguard Worker WA_BUG_TYPE_FUNCTIONAL, 506*35ffd701SAndroid Build Coastguard Worker WA_BUG_PERF_IMPACT_UNKNOWN, WA_COMPONENT_GMM) 507*35ffd701SAndroid Build Coastguard Worker 508*35ffd701SAndroid Build Coastguard Worker WA_DECLARE( 509*35ffd701SAndroid Build Coastguard Worker Wa64kbMappingAt2mbGranularity, 510*35ffd701SAndroid Build Coastguard Worker "WA to force 2MB alignment for 64KB-LMEM pages", 511*35ffd701SAndroid Build Coastguard Worker WA_BUG_TYPE_FUNCTIONAL, 512*35ffd701SAndroid Build Coastguard Worker WA_BUG_PERF_IMPACT_UNKNOWN, WA_COMPONENT_GMM) 513*35ffd701SAndroid Build Coastguard Worker 514*35ffd701SAndroid Build Coastguard Worker WA_DECLARE( 515*35ffd701SAndroid Build Coastguard Worker WaDefaultTile4, 516*35ffd701SAndroid Build Coastguard Worker "[XeHP] Keep Tile4 as default on XeHP till B stepping", 517*35ffd701SAndroid Build Coastguard Worker WA_BUG_TYPE_UNKNOWN, 518*35ffd701SAndroid Build Coastguard Worker WA_BUG_PERF_IMPACT_UNKNOWN, WA_COMPONENT_GMM) 519*35ffd701SAndroid Build Coastguard Worker 520*35ffd701SAndroid Build Coastguard Worker WA_DECLARE( 521*35ffd701SAndroid Build Coastguard Worker Wa_1606955757, 522*35ffd701SAndroid Build Coastguard Worker "[GPSSCLT] [XeHP] Multicontext (LB) : out-of-order write-read access to scratch space from hdctlbunit", 523*35ffd701SAndroid Build Coastguard Worker WA_BUG_TYPE_UNKNOWN, 524*35ffd701SAndroid Build Coastguard Worker WA_BUG_PERF_IMPACT_UNKNOWN, WA_COMPONENT_OGL) 525*35ffd701SAndroid Build Coastguard Worker 526*35ffd701SAndroid Build Coastguard Worker WA_DECLARE( 527*35ffd701SAndroid Build Coastguard Worker WaTile64Optimization, 528*35ffd701SAndroid Build Coastguard Worker "Tile64 wastge a lot of memory so WA provides optimization to fall back to Tile4 when waste is relatively higher", 529*35ffd701SAndroid Build Coastguard Worker WA_BUG_TYPE_UNKNOWN, 530*35ffd701SAndroid Build Coastguard Worker WA_BUG_PERF_IMPACT_UNKNOWN, WA_COMPONENT_GMM) 531*35ffd701SAndroid Build Coastguard Worker 532*35ffd701SAndroid Build Coastguard Worker WA_DECLARE( 533*35ffd701SAndroid Build Coastguard Worker Wa_15010089951, 534*35ffd701SAndroid Build Coastguard Worker "[DG2][Silicon][Perf]DG2 VESFC performance when Compression feature is enabled.", 535*35ffd701SAndroid Build Coastguard Worker WA_BUG_TYPE_PERF, 536*35ffd701SAndroid Build Coastguard Worker WA_BUG_PERF_IMPACT_UNKNOWN, WA_COMPONENT_GMM) 537*35ffd701SAndroid Build Coastguard Worker 538*35ffd701SAndroid Build Coastguard Worker WA_DECLARE( 539*35ffd701SAndroid Build Coastguard Worker Wa_22016140776, 540*35ffd701SAndroid Build Coastguard Worker "[PVC] operation unexpectedly results in NAN", 541*35ffd701SAndroid Build Coastguard Worker WA_BUG_TYPE_UNKNOWN, 542*35ffd701SAndroid Build Coastguard Worker WA_BUG_PERF_IMPACT_UNKNOWN, WA_COMPONENT_UNKNOWN) 543*35ffd701SAndroid Build Coastguard Worker 544*35ffd701SAndroid Build Coastguard Worker WA_DECLARE( 545*35ffd701SAndroid Build Coastguard Worker Wa_14018443005, 546*35ffd701SAndroid Build Coastguard Worker "[Xe2] - Incorrect handling of compression when changing cached PA usage from compression OFF and another client does partial sector compression ON on W with UC", 547*35ffd701SAndroid Build Coastguard Worker WA_BUG_TYPE_UNKNOWN, 548*35ffd701SAndroid Build Coastguard Worker WA_BUG_PERF_IMPACT_UNKNOWN, WA_COMPONENT_GMM) 549*35ffd701SAndroid Build Coastguard Worker 550*35ffd701SAndroid Build Coastguard Worker WA_DECLARE( 551*35ffd701SAndroid Build Coastguard Worker Wa_14018976079, 552*35ffd701SAndroid Build Coastguard Worker "[LNL] CPU-GPU False sharing broken for 1-way coherent pages", 553*35ffd701SAndroid Build Coastguard Worker WA_BUG_TYPE_UNKNOWN, 554*35ffd701SAndroid Build Coastguard Worker WA_BUG_PERF_IMPACT_UNKNOWN, WA_COMPONENT_GMM) 555*35ffd701SAndroid Build Coastguard Worker 556*35ffd701SAndroid Build Coastguard Worker WA_DECLARE( 557*35ffd701SAndroid Build Coastguard Worker Wa_14018984349, 558*35ffd701SAndroid Build Coastguard Worker "[LNL] CPU-GPU False sharing broken for non-coherent pages", 559*35ffd701SAndroid Build Coastguard Worker WA_BUG_TYPE_UNKNOWN, 560*35ffd701SAndroid Build Coastguard Worker WA_BUG_PERF_IMPACT_UNKNOWN, WA_COMPONENT_GMM) 561*35ffd701SAndroid Build Coastguard Worker 562*35ffd701SAndroid Build Coastguard Worker WA_DECLARE( 563*35ffd701SAndroid Build Coastguard Worker Wa_14020040029, 564*35ffd701SAndroid Build Coastguard Worker "Misalignment on Depth buffer for Zplanes", 565*35ffd701SAndroid Build Coastguard Worker WA_BUG_TYPE_UNKNOWN, 566*35ffd701SAndroid Build Coastguard Worker WA_BUG_PERF_IMPACT_UNKNOWN, WA_COMPONENT_GMM) 567*35ffd701SAndroid Build Coastguard Worker 568*35ffd701SAndroid Build Coastguard Worker WA_DECLARE( 569*35ffd701SAndroid Build Coastguard Worker Wa_EmuMufasaSupportOnBmg, 570*35ffd701SAndroid Build Coastguard Worker "WA for supporting failure seen in BMG with Mufasa", 571*35ffd701SAndroid Build Coastguard Worker WA_BUG_TYPE_FUNCTIONAL, 572*35ffd701SAndroid Build Coastguard Worker WA_BUG_PERF_IMPACT_UNKNOWN, WA_COMPONENT_UNKNOWN) 573*35ffd701SAndroid Build Coastguard Worker 574*35ffd701SAndroid Build Coastguard Worker } WA_TABLE, *PWA_TABLE; 575*35ffd701SAndroid Build Coastguard Worker 576*35ffd701SAndroid Build Coastguard Worker //********************************** SKU/WA Macros ************************************* 577*35ffd701SAndroid Build Coastguard Worker 578*35ffd701SAndroid Build Coastguard Worker #if (defined(__MINIPORT) || defined(__KCH) || defined(__SOFTBIOS) || defined(__GRM) || defined(__PWRCONS)) 579*35ffd701SAndroid Build Coastguard Worker #if LHDM || LINUX 580*35ffd701SAndroid Build Coastguard Worker #define GFX_IS_SKU(s, f) ((s)->SkuTable.f) 581*35ffd701SAndroid Build Coastguard Worker #define GFX_IS_WA(s, w) ((s)->WaTable.w) 582*35ffd701SAndroid Build Coastguard Worker #define GFX_WRITE_WA(x, y, z) ((x)->WaTable.y = z) 583*35ffd701SAndroid Build Coastguard Worker //No checking is done in the GFX_WRITE_SKU macro that z actually fits into y. 584*35ffd701SAndroid Build Coastguard Worker // It is up to the user to know the size of y and to pass in z accordingly. 585*35ffd701SAndroid Build Coastguard Worker #define GFX_WRITE_SKU(x, y, z) ((x)->SkuTable.y = z) 586*35ffd701SAndroid Build Coastguard Worker #else 587*35ffd701SAndroid Build Coastguard Worker #define GFX_IS_SKU(h, f) (((PHW_DEVICE_EXTENSION)(h))->pHWStatusPage->pSkuTable->f) 588*35ffd701SAndroid Build Coastguard Worker #define GFX_IS_WA(h, w) (((PHW_DEVICE_EXTENSION)(h))->pHWStatusPage->pWaTable->w) 589*35ffd701SAndroid Build Coastguard Worker #define GFX_WRITE_WA(x, y, z) (((HW_DEVICE_EXTENSION *)(x))->pHWStatusPage->pWaTable->y = z) 590*35ffd701SAndroid Build Coastguard Worker //No checking is done in the GFX_WRITE_SKU macro that z actually fits into y. 591*35ffd701SAndroid Build Coastguard Worker // It is up to the user to know the size of y and to pass in z accordingly. 592*35ffd701SAndroid Build Coastguard Worker #define GFX_WRITE_SKU(x, y, z) (((HW_DEVICE_EXTENSION *)(x))->pHWStatusPage->pSkuTable->y = z) 593*35ffd701SAndroid Build Coastguard Worker #endif // end LHDM 594*35ffd701SAndroid Build Coastguard Worker #else 595*35ffd701SAndroid Build Coastguard Worker #define GFX_IS_SKU(s, f) ((s)->SkuTable.f) 596*35ffd701SAndroid Build Coastguard Worker #define GFX_IS_WA(s, w) ((s)->WaTable.w) 597*35ffd701SAndroid Build Coastguard Worker #endif 598*35ffd701SAndroid Build Coastguard Worker #define GRAPHICS_IS_SKU(s, f) ((s)->f) 599*35ffd701SAndroid Build Coastguard Worker #define GRAPHICS_IS_WA(s, w) ((s)->w) 600*35ffd701SAndroid Build Coastguard Worker 601*35ffd701SAndroid Build Coastguard Worker #endif //__SKU_WA_H__ 602