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: sharedata.h 24*35ffd701SAndroid Build Coastguard Worker ** 25*35ffd701SAndroid Build Coastguard Worker ** Description: These are data structures that are shared between the KMD 26*35ffd701SAndroid Build Coastguard Worker ** and the UMD 27*35ffd701SAndroid Build Coastguard Worker ** 28*35ffd701SAndroid Build Coastguard Worker ==============================================================================*/ 29*35ffd701SAndroid Build Coastguard Worker 30*35ffd701SAndroid Build Coastguard Worker #ifndef _SHAREDATA_H_ 31*35ffd701SAndroid Build Coastguard Worker #define _SHAREDATA_H_ 32*35ffd701SAndroid Build Coastguard Worker 33*35ffd701SAndroid Build Coastguard Worker #include "../common/gtsysinfo.h" 34*35ffd701SAndroid Build Coastguard Worker #include "../common/sku_wa.h" 35*35ffd701SAndroid Build Coastguard Worker #include "../common/igfxfmid.h" 36*35ffd701SAndroid Build Coastguard Worker #include "UmKmEnum.h" 37*35ffd701SAndroid Build Coastguard Worker #include "UmKmDmaPerfTimer.h" 38*35ffd701SAndroid Build Coastguard Worker #define ADAPTER_STRING_SIZE 250 39*35ffd701SAndroid Build Coastguard Worker #ifdef __cplusplus 40*35ffd701SAndroid Build Coastguard Worker extern "C" { 41*35ffd701SAndroid Build Coastguard Worker #endif 42*35ffd701SAndroid Build Coastguard Worker 43*35ffd701SAndroid Build Coastguard Worker #define UMD_KMD_MAX_REGISTRY_PATH_LENGTH (512) 44*35ffd701SAndroid Build Coastguard Worker 45*35ffd701SAndroid Build Coastguard Worker //=========================================================================== 46*35ffd701SAndroid Build Coastguard Worker // typedef: 47*35ffd701SAndroid Build Coastguard Worker // DRIVER_VERION_INFO 48*35ffd701SAndroid Build Coastguard Worker // 49*35ffd701SAndroid Build Coastguard Worker // Description: 50*35ffd701SAndroid Build Coastguard Worker // This structure is used to communicate Driver Build version between 51*35ffd701SAndroid Build Coastguard Worker // KMD and UMD 52*35ffd701SAndroid Build Coastguard Worker // 53*35ffd701SAndroid Build Coastguard Worker //--------------------------------------------------------------------------- 54*35ffd701SAndroid Build Coastguard Worker typedef struct __DRIVER_VERSION_INFO 55*35ffd701SAndroid Build Coastguard Worker { 56*35ffd701SAndroid Build Coastguard Worker unsigned :16; 57*35ffd701SAndroid Build Coastguard Worker unsigned DriverBuildNumber :16; 58*35ffd701SAndroid Build Coastguard Worker }DRIVER_VERSION_INFO; 59*35ffd701SAndroid Build Coastguard Worker 60*35ffd701SAndroid Build Coastguard Worker 61*35ffd701SAndroid Build Coastguard Worker // BIT field, '1' (i.e. Set) means cap is supported by KMD 62*35ffd701SAndroid Build Coastguard Worker typedef struct __KMD_CAPS_INFO 63*35ffd701SAndroid Build Coastguard Worker { 64*35ffd701SAndroid Build Coastguard Worker unsigned Gamma_Rgb256x3x16 :1; 65*35ffd701SAndroid Build Coastguard Worker unsigned GDIAcceleration :1; 66*35ffd701SAndroid Build Coastguard Worker unsigned OsManagedHwContext :1; // wddm1.2+ 67*35ffd701SAndroid Build Coastguard Worker unsigned GraphicsPreemptionGranularity :3; // wddm1.2+ 68*35ffd701SAndroid Build Coastguard Worker unsigned ComputePreemptionGranularity :3; // wddm1.2+ 69*35ffd701SAndroid Build Coastguard Worker unsigned InstrumentationIsEnabled :1; // KMD instrumentation state 70*35ffd701SAndroid Build Coastguard Worker unsigned DriverStoreEnabled :1; // wddm2.1+ 71*35ffd701SAndroid Build Coastguard Worker unsigned :21; 72*35ffd701SAndroid Build Coastguard Worker } KMD_CAPS_INFO; 73*35ffd701SAndroid Build Coastguard Worker 74*35ffd701SAndroid Build Coastguard Worker // Programmatically override overlay caps for testing 75*35ffd701SAndroid Build Coastguard Worker typedef struct __KMD_OVERLAY_OVERRIDE 76*35ffd701SAndroid Build Coastguard Worker { 77*35ffd701SAndroid Build Coastguard Worker uint32_t OverrideOverlayCaps : 1; // Override request 78*35ffd701SAndroid Build Coastguard Worker uint32_t RGBOverlay : 1; // RGB overlay override 79*35ffd701SAndroid Build Coastguard Worker uint32_t YUY2Overlay : 1; // YUY2 overlay override 80*35ffd701SAndroid Build Coastguard Worker uint32_t Reserved :29; 81*35ffd701SAndroid Build Coastguard Worker } KMD_OVERLAY_OVERRIDE; 82*35ffd701SAndroid Build Coastguard Worker 83*35ffd701SAndroid Build Coastguard Worker // Overlay caps info needed by WDDM 1.1 Changes 84*35ffd701SAndroid Build Coastguard Worker typedef struct __KMD_OVERLAY_CAPS_INFO 85*35ffd701SAndroid Build Coastguard Worker { 86*35ffd701SAndroid Build Coastguard Worker union 87*35ffd701SAndroid Build Coastguard Worker { 88*35ffd701SAndroid Build Coastguard Worker struct 89*35ffd701SAndroid Build Coastguard Worker { 90*35ffd701SAndroid Build Coastguard Worker uint32_t FullRangeRGB : 1; // 0x00000001 91*35ffd701SAndroid Build Coastguard Worker uint32_t LimitedRangeRGB : 1; // 0x00000002 92*35ffd701SAndroid Build Coastguard Worker uint32_t YCbCr_BT601 : 1; // 0x00000004 93*35ffd701SAndroid Build Coastguard Worker uint32_t YCbCr_BT709 : 1; // 0x00000008 94*35ffd701SAndroid Build Coastguard Worker uint32_t YCbCr_BT601_xvYCC : 1; // 0x00000010 95*35ffd701SAndroid Build Coastguard Worker uint32_t YCbCr_BT709_xvYCC : 1; // 0x00000020 96*35ffd701SAndroid Build Coastguard Worker uint32_t StretchX : 1; // 0x00000040 97*35ffd701SAndroid Build Coastguard Worker uint32_t StretchY : 1; // 0x00000080 98*35ffd701SAndroid Build Coastguard Worker uint32_t Reserved :24; // 0xFFFFFF00 99*35ffd701SAndroid Build Coastguard Worker } Caps; 100*35ffd701SAndroid Build Coastguard Worker uint32_t CapsValue; 101*35ffd701SAndroid Build Coastguard Worker }; 102*35ffd701SAndroid Build Coastguard Worker 103*35ffd701SAndroid Build Coastguard Worker KMD_OVERLAY_OVERRIDE OVOverride; 104*35ffd701SAndroid Build Coastguard Worker 105*35ffd701SAndroid Build Coastguard Worker uint32_t MaxOverlayDisplayWidth; 106*35ffd701SAndroid Build Coastguard Worker uint32_t MaxOverlayDisplayHeight; 107*35ffd701SAndroid Build Coastguard Worker uint8_t HWScalerExists; 108*35ffd701SAndroid Build Coastguard Worker uint32_t MaxHWScalerStride; 109*35ffd701SAndroid Build Coastguard Worker } KMD_OVERLAY_CAPS_INFO; 110*35ffd701SAndroid Build Coastguard Worker 111*35ffd701SAndroid Build Coastguard Worker // Frame Rate 112*35ffd701SAndroid Build Coastguard Worker typedef struct 113*35ffd701SAndroid Build Coastguard Worker { 114*35ffd701SAndroid Build Coastguard Worker uint32_t uiNumerator; 115*35ffd701SAndroid Build Coastguard Worker uint32_t uiDenominator; 116*35ffd701SAndroid Build Coastguard Worker } FRAME_RATE; 117*35ffd701SAndroid Build Coastguard Worker 118*35ffd701SAndroid Build Coastguard Worker typedef struct __KM_SYSTEM_INFO 119*35ffd701SAndroid Build Coastguard Worker { 120*35ffd701SAndroid Build Coastguard Worker 121*35ffd701SAndroid Build Coastguard Worker GT_SYSTEM_INFO SystemInfo; 122*35ffd701SAndroid Build Coastguard Worker // ShadowReg 119 caluclated value required for WA <WaProgramMgsrForCorrectSliceSpecificMmioReads> 123*35ffd701SAndroid Build Coastguard Worker uint32_t ShadowRegValue; 124*35ffd701SAndroid Build Coastguard Worker uint32_t ShadowRegValueforL3SpecificRegReads; // Shadow reg value for L3 bank specific MMIO reads. 125*35ffd701SAndroid Build Coastguard Worker 126*35ffd701SAndroid Build Coastguard Worker uint32_t GfxDevId; // DeviceID 127*35ffd701SAndroid Build Coastguard Worker }KM_SYSTEM_INFO; 128*35ffd701SAndroid Build Coastguard Worker 129*35ffd701SAndroid Build Coastguard Worker 130*35ffd701SAndroid Build Coastguard Worker 131*35ffd701SAndroid Build Coastguard Worker typedef struct _KM_DEFERRED_WAIT_INFO 132*35ffd701SAndroid Build Coastguard Worker { 133*35ffd701SAndroid Build Coastguard Worker uint32_t FeatureSupported; 134*35ffd701SAndroid Build Coastguard Worker uint32_t ActiveDisplay; 135*35ffd701SAndroid Build Coastguard Worker } KM_DEFERRED_WAIT_INFO; 136*35ffd701SAndroid Build Coastguard Worker 137*35ffd701SAndroid Build Coastguard Worker // struct to hold Adapter's BDF 138*35ffd701SAndroid Build Coastguard Worker typedef struct _ADAPTER_BDF_ 139*35ffd701SAndroid Build Coastguard Worker { 140*35ffd701SAndroid Build Coastguard Worker union 141*35ffd701SAndroid Build Coastguard Worker { 142*35ffd701SAndroid Build Coastguard Worker struct 143*35ffd701SAndroid Build Coastguard Worker { 144*35ffd701SAndroid Build Coastguard Worker uint32_t Bus : 8; 145*35ffd701SAndroid Build Coastguard Worker uint32_t Device : 8; 146*35ffd701SAndroid Build Coastguard Worker uint32_t Function : 8; 147*35ffd701SAndroid Build Coastguard Worker uint32_t Reserved : 8; 148*35ffd701SAndroid Build Coastguard Worker }; 149*35ffd701SAndroid Build Coastguard Worker uint32_t Data; 150*35ffd701SAndroid Build Coastguard Worker }; 151*35ffd701SAndroid Build Coastguard Worker }ADAPTER_BDF; 152*35ffd701SAndroid Build Coastguard Worker 153*35ffd701SAndroid Build Coastguard Worker // Private data structure for D3D callback QueryAdapterInfoCB 154*35ffd701SAndroid Build Coastguard Worker 155*35ffd701SAndroid Build Coastguard Worker //=========================================================================== 156*35ffd701SAndroid Build Coastguard Worker // typedef: 157*35ffd701SAndroid Build Coastguard Worker // _ADAPTER_INFO 158*35ffd701SAndroid Build Coastguard Worker // 159*35ffd701SAndroid Build Coastguard Worker // Description: 160*35ffd701SAndroid Build Coastguard Worker // This structure is private data structure that get passed by UMD to 161*35ffd701SAndroid Build Coastguard Worker // KMD during QueryAdapterInfoCB 162*35ffd701SAndroid Build Coastguard Worker // 163*35ffd701SAndroid Build Coastguard Worker // Note: Structure will be filled by KMD. 164*35ffd701SAndroid Build Coastguard Worker //--------------------------------------------------------------------------- 165*35ffd701SAndroid Build Coastguard Worker #pragma pack (push,1) 166*35ffd701SAndroid Build Coastguard Worker typedef struct _ADAPTER_INFO 167*35ffd701SAndroid Build Coastguard Worker { 168*35ffd701SAndroid Build Coastguard Worker uint32_t KmdVersionInfo; // Version ID 169*35ffd701SAndroid Build Coastguard Worker DRIVER_VERSION_INFO DriverVersionInfo; // 170*35ffd701SAndroid Build Coastguard Worker PLATFORM GfxPlatform; // Chipset Gfx family, product, render core, display core, etc 171*35ffd701SAndroid Build Coastguard Worker SKU_FEATURE_TABLE SkuTable; // SKU feature table 172*35ffd701SAndroid Build Coastguard Worker WA_TABLE WaTable; // WA table 173*35ffd701SAndroid Build Coastguard Worker uint32_t GfxTimeStampFreq; // In Hz (No. of clock ticks per second). So timestamp base = 1 / GfxTimeStampFreq 174*35ffd701SAndroid Build Coastguard Worker uint32_t GfxCoreFrequency; // In MHz. 175*35ffd701SAndroid Build Coastguard Worker uint32_t FSBFrequency; // In MHz. 176*35ffd701SAndroid Build Coastguard Worker uint32_t MinRenderFreq; // In MHz. 177*35ffd701SAndroid Build Coastguard Worker uint32_t MaxRenderFreq; // In MHz. 178*35ffd701SAndroid Build Coastguard Worker uint32_t PackageTdp; // TDP Power for the platform (In Watt) 179*35ffd701SAndroid Build Coastguard Worker uint32_t MaxFillRate; // Fillrate with Alphablend (In Pix/Clk) 180*35ffd701SAndroid Build Coastguard Worker uint32_t NumberOfEUs; // Number of EUs in GT 181*35ffd701SAndroid Build Coastguard Worker 182*35ffd701SAndroid Build Coastguard Worker // NOTE: Name is kept same so that we don't have to change PC_TARGET macro and usage 183*35ffd701SAndroid Build Coastguard Worker // of that. 184*35ffd701SAndroid Build Coastguard Worker uint32_t dwReleaseTarget; // PC Release Target Information supplied by INF 185*35ffd701SAndroid Build Coastguard Worker 186*35ffd701SAndroid Build Coastguard Worker // Following member can be use by UMD for optimal use of DMA and 187*35ffd701SAndroid Build Coastguard Worker // command buffer 188*35ffd701SAndroid Build Coastguard Worker uint32_t SizeOfDmaBuffer; // Size of DMA buffer set (In Bytes) 189*35ffd701SAndroid Build Coastguard Worker uint32_t PatchLocationListSize; // Size of Patch Location List (In number of entries) 190*35ffd701SAndroid Build Coastguard Worker uint32_t AllocationListSize; // Size of Patch Location List (In number of entries) 191*35ffd701SAndroid Build Coastguard Worker uint32_t SmallPatchLocationListSize; // Size of Patch Location List for UMD context that needs a small Patch Location List, 192*35ffd701SAndroid Build Coastguard Worker // currently only used by media context (In number of entries) 193*35ffd701SAndroid Build Coastguard Worker uint32_t DefaultCmdBufferSize; // Size of Cmd buffer default location 194*35ffd701SAndroid Build Coastguard Worker 195*35ffd701SAndroid Build Coastguard Worker // Following Members can be use for any UMD optimization (like Size of vertex buffer to allocate) 196*35ffd701SAndroid Build Coastguard Worker // any cacheline related read/write, etc 197*35ffd701SAndroid Build Coastguard Worker int64_t GfxMemorySize; // Total GFX memory (In MBytes) 198*35ffd701SAndroid Build Coastguard Worker uint32_t SystemMemorySize; // Total System Memory (In MBytes) 199*35ffd701SAndroid Build Coastguard Worker uint32_t CacheLineSize; // Processor CacheLine size 200*35ffd701SAndroid Build Coastguard Worker PROCESSOR_FAMILY ProcessorFamily; // Processor Family 201*35ffd701SAndroid Build Coastguard Worker uint8_t IsHTSupported; // Is Hyper Threaded CPU 202*35ffd701SAndroid Build Coastguard Worker uint8_t IsMutiCoreCpu; // Is Multi Core CPU 203*35ffd701SAndroid Build Coastguard Worker uint8_t IsVTDSupported; // Is Chipset VT is supported 204*35ffd701SAndroid Build Coastguard Worker char DeviceRegistryPath[UMD_KMD_MAX_REGISTRY_PATH_LENGTH]; // Array that contains the device registry path 205*35ffd701SAndroid Build Coastguard Worker uint32_t RegistryPathLength; // Actual chars (not including any trailing NULL) in the array set by the KMD 206*35ffd701SAndroid Build Coastguard Worker int64_t DedicatedVideoMemory; // Dedicated Video Memory 207*35ffd701SAndroid Build Coastguard Worker int64_t SystemSharedMemory; // System Shared Memory 208*35ffd701SAndroid Build Coastguard Worker int64_t SystemVideoMemory; // SystemVideoMemory 209*35ffd701SAndroid Build Coastguard Worker FRAME_RATE OutputFrameRate; // Output Frame Rate 210*35ffd701SAndroid Build Coastguard Worker FRAME_RATE InputFrameRate; // Input Frame Rate 211*35ffd701SAndroid Build Coastguard Worker KMD_CAPS_INFO Caps; // List of capabilities supported by the KMD 212*35ffd701SAndroid Build Coastguard Worker KMD_OVERLAY_CAPS_INFO OverlayCaps; // List of overlay capabilities supported 213*35ffd701SAndroid Build Coastguard Worker GT_SYSTEM_INFO SystemInfo; // List of system details 214*35ffd701SAndroid Build Coastguard Worker KM_DEFERRED_WAIT_INFO DeferredWaitInfo; // Indicates if DeferredWait feature is enabled and value of active display 215*35ffd701SAndroid Build Coastguard Worker 216*35ffd701SAndroid Build Coastguard Worker #ifdef _WIN32 217*35ffd701SAndroid Build Coastguard Worker ADAPTER_BDF stAdapterBDF; // Adapter BDF 218*35ffd701SAndroid Build Coastguard Worker #endif 219*35ffd701SAndroid Build Coastguard Worker 220*35ffd701SAndroid Build Coastguard Worker } ADAPTER_INFO, *PADAPTER_INFO; 221*35ffd701SAndroid Build Coastguard Worker #pragma pack (pop) 222*35ffd701SAndroid Build Coastguard Worker 223*35ffd701SAndroid Build Coastguard Worker #define MAX_ENGINE_INSTANCE_PER_CLASS 4 224*35ffd701SAndroid Build Coastguard Worker 225*35ffd701SAndroid Build Coastguard Worker // GEN11 Media Scalability 2.0: context based scheduling 226*35ffd701SAndroid Build Coastguard Worker typedef struct MEDIA_CONTEXT_REQUIREMENT_REC 227*35ffd701SAndroid Build Coastguard Worker { 228*35ffd701SAndroid Build Coastguard Worker union 229*35ffd701SAndroid Build Coastguard Worker { 230*35ffd701SAndroid Build Coastguard Worker struct 231*35ffd701SAndroid Build Coastguard Worker { 232*35ffd701SAndroid Build Coastguard Worker uint32_t UsingSFC : 1; // Use SFC or not 233*35ffd701SAndroid Build Coastguard Worker uint32_t HWRestrictedEngine : 1; 234*35ffd701SAndroid Build Coastguard Worker #if (_DEBUG || _RELEASE_INTERNAL || __KMDULT) 235*35ffd701SAndroid Build Coastguard Worker uint32_t Reserved : 29; 236*35ffd701SAndroid Build Coastguard Worker uint32_t DebugOverride : 1; // Debug & validation usage 237*35ffd701SAndroid Build Coastguard Worker #else 238*35ffd701SAndroid Build Coastguard Worker uint32_t Reserved : 30; 239*35ffd701SAndroid Build Coastguard Worker #endif 240*35ffd701SAndroid Build Coastguard Worker }; 241*35ffd701SAndroid Build Coastguard Worker 242*35ffd701SAndroid Build Coastguard Worker uint32_t Flags; 243*35ffd701SAndroid Build Coastguard Worker }; 244*35ffd701SAndroid Build Coastguard Worker 245*35ffd701SAndroid Build Coastguard Worker uint32_t LRCACount; 246*35ffd701SAndroid Build Coastguard Worker 247*35ffd701SAndroid Build Coastguard Worker // Logical engine instances used by this context; valid only if flag DebugOverride is set. 248*35ffd701SAndroid Build Coastguard Worker uint8_t EngineInstance[MAX_ENGINE_INSTANCE_PER_CLASS]; 249*35ffd701SAndroid Build Coastguard Worker 250*35ffd701SAndroid Build Coastguard Worker } MEDIA_CONTEXT_REQUIREMENT, *PMEDIA_CONTEXT_REQUIREMENT; 251*35ffd701SAndroid Build Coastguard Worker 252*35ffd701SAndroid Build Coastguard Worker // Bit-Struct for Driver's Use of D3DDDI_PATCHLOCATIONLIST.DriverId 253*35ffd701SAndroid Build Coastguard Worker typedef union __D3DDDI_PATCHLOCATIONLIST_DRIVERID 254*35ffd701SAndroid Build Coastguard Worker { 255*35ffd701SAndroid Build Coastguard Worker struct 256*35ffd701SAndroid Build Coastguard Worker { 257*35ffd701SAndroid Build Coastguard Worker uint32_t UseGlobalGtt : 1; // Indicates patch is to use global GTT space address (instead of PPGTT space). 258*35ffd701SAndroid Build Coastguard Worker uint32_t HasDecryptBits : 1; 259*35ffd701SAndroid Build Coastguard Worker uint32_t RenderTargetEnable : 1; // Indicates this is an output surface that may need to be encrypted 260*35ffd701SAndroid Build Coastguard Worker int32_t DecryptBitDwordOffset : 8; // signed offset (in # of DWORDS) from the patch location to where the cmd's decrypt bit is 261*35ffd701SAndroid Build Coastguard Worker uint32_t DecryptBitNumber : 5; // which bit to set in the dword specified by DecryptBitDwordOffset (0 - 31) 262*35ffd701SAndroid Build Coastguard Worker uint32_t GpGpuCsrBaseAddress : 1; // this patch location is for the GPGPU Preempt buffer 263*35ffd701SAndroid Build Coastguard Worker uint32_t SurfaceStateBaseAddress : 1; // Indicates this is patch for SBA.SurfaceStateBaseAddress 264*35ffd701SAndroid Build Coastguard Worker uint32_t PreemptPatchType : 3; // Contains list of addresses that may need patching due to Preemption/Resubmit. 265*35ffd701SAndroid Build Coastguard Worker uint32_t PatchLowDword : 1; // 32-bit patch despite 64-bit platform--Low DWORD. 266*35ffd701SAndroid Build Coastguard Worker uint32_t PatchHighDword : 1; // 32-bit patch despite 64-bit platform--High DWORD. 267*35ffd701SAndroid Build Coastguard Worker uint32_t StateSip : 1; // STATE_SIP address that needs to be patched in the context image (for thread-level preemption) 268*35ffd701SAndroid Build Coastguard Worker uint32_t GpGpuWSDIBegin : 1; // The start of the SDI command seq before GPGPU_WALKER (for restarting thread-level workload) 269*35ffd701SAndroid Build Coastguard Worker uint32_t GpGpuWSDIEnd : 1; // The end of the SDI command seq before GPGPU_WALKER (for restarting thread-level workload) 270*35ffd701SAndroid Build Coastguard Worker uint32_t NullPatch : 1; // Don't perform KMD patching (used for SVM, Tiled/Sparse Resources and ExistingSysMem Virtual Padding). 271*35ffd701SAndroid Build Coastguard Worker uint32_t UpperBoundsPatch : 1; // Indicates the patch is for an UpperBounds/"out-of-bounds" address 272*35ffd701SAndroid Build Coastguard Worker uint32_t BindingTablePoolPatch : 1; // Indicates the patch is for Binding Table Pool. Needed for bindless head testing. Remove later. 273*35ffd701SAndroid Build Coastguard Worker }; 274*35ffd701SAndroid Build Coastguard Worker uint32_t Value; 275*35ffd701SAndroid Build Coastguard Worker } D3DDDI_PATCHLOCATIONLIST_DRIVERID; 276*35ffd701SAndroid Build Coastguard Worker 277*35ffd701SAndroid Build Coastguard Worker #ifdef __cplusplus 278*35ffd701SAndroid Build Coastguard Worker } 279*35ffd701SAndroid Build Coastguard Worker #endif 280*35ffd701SAndroid Build Coastguard Worker #endif // _SHAREDATA_H_ 281