xref: /aosp_15_r20/external/gmmlib/Source/inc/umKmInc/sharedata.h (revision 35ffd701415c9e32e53136d61a677a8d0a8fc4a5)
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