1 /* 2 * Copyright (C) 2018-2021 Intel Corporation 3 * 4 * SPDX-License-Identifier: MIT 5 * 6 */ 7 8 #pragma once 9 10 #include "shared/source/gmm_helper/gmm_lib.h" 11 12 #include "sku_info.h" 13 14 namespace NEO { 15 struct SkuInfoBaseReference { fillReferenceFtrForTransferSkuInfoBaseReference16 static void fillReferenceFtrForTransfer(_SKU_FEATURE_TABLE &refFtrTable) { 17 memset(&refFtrTable, 0, sizeof(refFtrTable)); 18 refFtrTable.FtrStandardMipTailFormat = 1; 19 refFtrTable.FtrULT = 1; 20 refFtrTable.FtrEDram = 1; 21 refFtrTable.FtrFrameBufferLLC = 1; 22 refFtrTable.FtrCrystalwell = 1; 23 refFtrTable.FtrDisplayEngineS3d = 1; 24 refFtrTable.FtrTileY = 1; 25 refFtrTable.FtrDisplayYTiling = 1; 26 refFtrTable.FtrFbc = 1; 27 refFtrTable.FtrVERing = 1; 28 refFtrTable.FtrVcs2 = 1; 29 refFtrTable.FtrLCIA = 1; 30 refFtrTable.FtrIA32eGfxPTEs = 1; 31 refFtrTable.FtrWddm2GpuMmu = 1; 32 refFtrTable.FtrWddm2_1_64kbPages = 1; 33 34 refFtrTable.FtrTranslationTable = 1; 35 refFtrTable.FtrUserModeTranslationTable = 1; 36 refFtrTable.FtrWddm2Svm = 1; 37 refFtrTable.FtrLLCBypass = 1; 38 39 refFtrTable.FtrE2ECompression = 1; 40 refFtrTable.FtrLinearCCS = 1; 41 refFtrTable.FtrCCSRing = 1; 42 refFtrTable.FtrCCSNode = 1; 43 refFtrTable.FtrMemTypeMocsDeferPAT = 1; 44 refFtrTable.FtrLocalMemory = 1; 45 refFtrTable.FtrLocalMemoryAllows4KB = 1; 46 refFtrTable.FtrSVM = 1; 47 refFtrTable.FtrFlatPhysCCS = 1; 48 refFtrTable.FtrMultiTileArch = 1; 49 refFtrTable.FtrCCSMultiInstance = 1; 50 refFtrTable.FtrPpgtt64KBWalkOptimization = 1; 51 refFtrTable.FtrUnified3DMediaCompressionFormats = 1; 52 refFtrTable.Ftr57bGPUAddressing = 1; 53 } 54 fillReferenceWaForTransferSkuInfoBaseReference55 static void fillReferenceWaForTransfer(_WA_TABLE &refWaTable) { 56 memset(&refWaTable, 0, sizeof(refWaTable)); 57 refWaTable.WaFbcLinearSurfaceStride = 1; 58 refWaTable.WaDisableEdramForDisplayRT = 1; 59 refWaTable.WaEncryptedEdramOnlyPartials = 1; 60 refWaTable.WaLosslessCompressionSurfaceStride = 1; 61 refWaTable.WaRestrictPitch128KB = 1; 62 refWaTable.WaLimit128BMediaCompr = 1; 63 refWaTable.WaUntypedBufferCompression = 1; 64 refWaTable.WaAuxTable16KGranular = 1; 65 refWaTable.WaDefaultTile4 = 1; 66 refWaTable.WaAuxTable64KGranular = 1; 67 } 68 fillReferenceFtrToReceiveSkuInfoBaseReference69 static void fillReferenceFtrToReceive(FeatureTable &refFtrTable) { 70 refFtrTable = {}; 71 refFtrTable.flags.ftrDesktop = true; 72 refFtrTable.flags.ftrChannelSwizzlingXOREnabled = true; 73 74 refFtrTable.flags.ftrGtBigDie = true; 75 refFtrTable.flags.ftrGtMediumDie = true; 76 refFtrTable.flags.ftrGtSmallDie = true; 77 78 refFtrTable.flags.ftrGT1 = true; 79 refFtrTable.flags.ftrGT1_5 = true; 80 refFtrTable.flags.ftrGT2 = true; 81 refFtrTable.flags.ftrGT2_5 = true; 82 refFtrTable.flags.ftrGT3 = true; 83 refFtrTable.flags.ftrGT4 = true; 84 85 refFtrTable.flags.ftrIVBM0M1Platform = true; 86 refFtrTable.flags.ftrSGTPVSKUStrapPresent = true; 87 refFtrTable.flags.ftrGTA = true; 88 refFtrTable.flags.ftrGTC = true; 89 refFtrTable.flags.ftrGTX = true; 90 refFtrTable.flags.ftr5Slice = true; 91 92 refFtrTable.flags.ftrGpGpuMidBatchPreempt = true; 93 refFtrTable.flags.ftrGpGpuThreadGroupLevelPreempt = true; 94 refFtrTable.flags.ftrGpGpuMidThreadLevelPreempt = true; 95 96 refFtrTable.flags.ftrIoMmuPageFaulting = true; 97 refFtrTable.flags.ftrWddm2Svm = true; 98 refFtrTable.flags.ftrPooledEuEnabled = true; 99 100 refFtrTable.flags.ftrResourceStreamer = true; 101 102 refFtrTable.flags.ftrPPGTT = true; 103 refFtrTable.flags.ftrSVM = true; 104 refFtrTable.flags.ftrEDram = true; 105 refFtrTable.flags.ftrL3IACoherency = true; 106 refFtrTable.flags.ftrIA32eGfxPTEs = true; 107 108 refFtrTable.flags.ftr3dMidBatchPreempt = true; 109 refFtrTable.flags.ftr3dObjectLevelPreempt = true; 110 refFtrTable.flags.ftrPerCtxtPreemptionGranularityControl = true; 111 112 refFtrTable.flags.ftrTileY = true; 113 refFtrTable.flags.ftrDisplayYTiling = true; 114 refFtrTable.flags.ftrTranslationTable = true; 115 refFtrTable.flags.ftrUserModeTranslationTable = true; 116 117 refFtrTable.flags.ftrEnableGuC = true; 118 119 refFtrTable.flags.ftrFbc = true; 120 refFtrTable.flags.ftrFbc2AddressTranslation = true; 121 refFtrTable.flags.ftrFbcBlitterTracking = true; 122 refFtrTable.flags.ftrFbcCpuTracking = true; 123 124 refFtrTable.flags.ftrVcs2 = true; 125 refFtrTable.flags.ftrVEBOX = true; 126 refFtrTable.flags.ftrSingleVeboxSlice = true; 127 refFtrTable.flags.ftrULT = true; 128 refFtrTable.flags.ftrLCIA = true; 129 refFtrTable.flags.ftrGttCacheInvalidation = true; 130 refFtrTable.flags.ftrTileMappedResource = true; 131 refFtrTable.flags.ftrAstcHdr2D = true; 132 refFtrTable.flags.ftrAstcLdr2D = true; 133 134 refFtrTable.flags.ftrStandardMipTailFormat = true; 135 refFtrTable.flags.ftrFrameBufferLLC = true; 136 refFtrTable.flags.ftrCrystalwell = true; 137 refFtrTable.flags.ftrLLCBypass = true; 138 refFtrTable.flags.ftrDisplayEngineS3d = true; 139 refFtrTable.flags.ftrVERing = true; 140 refFtrTable.flags.ftrWddm2GpuMmu = true; 141 refFtrTable.flags.ftrWddm2_1_64kbPages = true; 142 143 refFtrTable.flags.ftrKmdDaf = true; 144 refFtrTable.flags.ftrSimulationMode = true; 145 146 refFtrTable.flags.ftrE2ECompression = true; 147 refFtrTable.flags.ftrLinearCCS = true; 148 refFtrTable.flags.ftrCCSRing = true; 149 refFtrTable.flags.ftrCCSNode = true; 150 refFtrTable.flags.ftrRcsNode = true; 151 refFtrTable.flags.ftrMemTypeMocsDeferPAT = true; 152 refFtrTable.flags.ftrLocalMemory = true; 153 refFtrTable.flags.ftrLocalMemoryAllows4KB = true; 154 155 refFtrTable.flags.ftrFlatPhysCCS = true; 156 refFtrTable.flags.ftrMultiTileArch = true; 157 refFtrTable.flags.ftrCCSMultiInstance = true; 158 refFtrTable.flags.ftrPpgtt64KBWalkOptimization = true; 159 refFtrTable.flags.ftrUnified3DMediaCompressionFormats = true; 160 refFtrTable.flags.ftr57bGPUAddressing = true; 161 } 162 fillReferenceWaToReceiveSkuInfoBaseReference163 static void fillReferenceWaToReceive(WorkaroundTable &refWaTable) { 164 refWaTable = {}; 165 refWaTable.flags.waDoNotUseMIReportPerfCount = true; 166 167 refWaTable.flags.waEnablePreemptionGranularityControlByUMD = true; 168 refWaTable.flags.waSendMIFLUSHBeforeVFE = true; 169 refWaTable.flags.waReportPerfCountUseGlobalContextID = true; 170 refWaTable.flags.waDisableLSQCROPERFforOCL = true; 171 refWaTable.flags.waMsaa8xTileYDepthPitchAlignment = true; 172 refWaTable.flags.waLosslessCompressionSurfaceStride = true; 173 refWaTable.flags.waFbcLinearSurfaceStride = true; 174 refWaTable.flags.wa4kAlignUVOffsetNV12LinearSurface = true; 175 refWaTable.flags.waEncryptedEdramOnlyPartials = true; 176 refWaTable.flags.waDisableEdramForDisplayRT = true; 177 refWaTable.flags.waForcePcBbFullCfgRestore = true; 178 refWaTable.flags.waCompressedResourceRequiresConstVA21 = true; 179 refWaTable.flags.waDisablePerCtxtPreemptionGranularityControl = true; 180 refWaTable.flags.waLLCCachingUnsupported = true; 181 refWaTable.flags.waUseVAlign16OnTileXYBpp816 = true; 182 refWaTable.flags.waModifyVFEStateAfterGPGPUPreemption = true; 183 refWaTable.flags.waCSRUncachable = true; 184 refWaTable.flags.waSamplerCacheFlushBetweenRedescribedSurfaceReads = true; 185 refWaTable.flags.waRestrictPitch128KB = true; 186 refWaTable.flags.waLimit128BMediaCompr = true; 187 refWaTable.flags.waUntypedBufferCompression = true; 188 refWaTable.flags.waAuxTable16KGranular = true; 189 refWaTable.flags.waDisableFusedThreadScheduling = true; 190 refWaTable.flags.waDefaultTile4 = true; 191 refWaTable.flags.waAuxTable64KGranular = true; 192 } 193 }; // namespace SkuInfoBaseReference 194 } // namespace NEO 195