1 /*========================== begin_copyright_notice ============================
2 
3 Copyright (C) 2017-2021 Intel Corporation
4 
5 SPDX-License-Identifier: MIT
6 
7 ============================= end_copyright_notice ===========================*/
8 
9 #pragma once
10 #include <stdint.h>
11 #include "patch_list.h"
12 
13 #pragma pack( push, 1 )
14 
15 namespace iOpenCL
16 {
17 /*****************************************************************************\
18 STRUCT: SPatchStateSIP
19 \*****************************************************************************/
20 struct SPatchStateSIP :
21        SPatchItemHeader
22 {
23     uint32_t   SystemKernelOffset;
24 };
25 
26 // Update CURRENT_ICBE_VERSION when modifying the patch list
27 static_assert( sizeof( SPatchStateSIP ) == ( 4 + sizeof( SPatchItemHeader ) ) , "The size of SPatchStateSIP is not what is expected" );
28 
29 /*****************************************************************************\
30 STRUCT: SPatchSamplerStateArray
31 \*****************************************************************************/
32 struct SPatchSamplerStateArray :
33        SPatchItemHeader
34 {
35     uint32_t   Offset;
36     uint32_t   Count;
37     uint32_t   BorderColorOffset;
38 };
39 
40 // Update CURRENT_ICBE_VERSION when modifying the patch list
41 static_assert( sizeof( SPatchSamplerStateArray ) == ( 12 + sizeof( SPatchItemHeader ) ) , "The size of SPatchSamplerStateArray is not what is expected" );
42 
43 /*****************************************************************************\
44 STRUCT: SPatchBindingTableState
45 \*****************************************************************************/
46 struct SPatchBindingTableState :
47        SPatchItemHeader
48 {
49     uint32_t   Offset;
50     uint32_t   Count;
51     uint32_t   SurfaceStateOffset;
52 };
53 
54 // Update CURRENT_ICBE_VERSION when modifying the patch list
55 static_assert( sizeof( SPatchBindingTableState ) == ( 12 + sizeof( SPatchItemHeader ) ) , "The size of SPatchBindingTableState is not what is expected" );
56 
57 
58 /*****************************************************************************\
59 STRUCT: SPatchAllocateScratchSurface
60 \*****************************************************************************/
61 struct SPatchAllocateScratchSurface :
62        SPatchItemHeader
63 {
64     uint32_t   Offset;
65     uint32_t   PerThreadScratchSpaceSize;
66 };
67 
68 // Update CURRENT_ICBE_VERSION when modifying the patch list
69 static_assert( sizeof( SPatchAllocateScratchSurface ) == ( 8 + sizeof( SPatchItemHeader ) ) , "The size of SPatchAllocateScratchSurface is not what is expected" );
70 
71 /*****************************************************************************\
72 STRUCT: SPatchAllocatePrivateMemorySurface
73 \*****************************************************************************/
74 struct SPatchAllocatePrivateMemorySurface :
75        SPatchItemHeader
76 {
77     uint32_t   Offset;
78     uint32_t   PerThreadPrivateMemorySize;
79 };
80 
81 // Update CURRENT_ICBE_VERSION when modifying the patch list
82 static_assert( sizeof( SPatchAllocatePrivateMemorySurface ) == ( 8 + sizeof( SPatchItemHeader ) ) , "The size of SPatchAllocatePrivateMemorySurface is not what is expected" );
83 
84 /*****************************************************************************\
85 STRUCT: SPatchAllocateSystemThreadSurface
86 \*****************************************************************************/
87 struct SPatchAllocateSystemThreadSurface :
88        SPatchItemHeader
89 {
90     uint32_t   Offset;
91     uint32_t   PerThreadSystemThreadSurfaceSize;
92     uint32_t   BTI;
93 };
94 
95 // Update CURRENT_ICBE_VERSION when modifying the patch list
96 static_assert( sizeof( SPatchAllocateSystemThreadSurface ) == ( 12 + sizeof( SPatchItemHeader ) ) , "The size of SPatchAllocateSystemThreadSurface is not what is expected" );
97 
98 /*****************************************************************************\
99 STRUCT: SPatchAllocateSurfaceWithInitialization
100 \*****************************************************************************/
101 struct SPatchAllocateSurfaceWithInitialization :
102        SPatchItemHeader
103 {
104     uint32_t   Offset;
105     uint32_t   InitializationDataSize;
106 };
107 
108 // Update CURRENT_ICBE_VERSION when modifying the patch list
109 static_assert( sizeof( SPatchAllocateSurfaceWithInitialization ) == ( 8 + sizeof( SPatchItemHeader ) ) , "The size of SPatchAllocateSurfaceWithInitialization is not what is expected" );
110 
111 /*****************************************************************************\
112 STRUCT: SPatchAllocateConstantMemorySurfaceWithInitialization
113 \*****************************************************************************/
114 struct SPatchAllocateConstantMemorySurfaceWithInitialization :
115        SPatchItemHeader
116 {
117     uint32_t   ConstantBufferIndex;
118     uint32_t   Offset;
119 #if 0 // needed for CB2CR - need RT buy off.
120     uint32_t   InlineConstantBufferIndex;
121 #endif
122 };
123 
124 // Update CURRENT_ICBE_VERSION when modifying the patch list
125 static_assert( sizeof( SPatchAllocateConstantMemorySurfaceWithInitialization ) == ( 8 + sizeof( SPatchItemHeader ) ) , "The size of SPatchAllocateConstantMemorySurfaceWithInitialization is not what is expected" );
126 
127 /*****************************************************************************\
128 STRUCT: SPatchAllocateLocalSurface
129 \*****************************************************************************/
130 struct SPatchAllocateLocalSurface :
131        SPatchItemHeader
132 {
133     uint32_t   Offset;
134     uint32_t   TotalInlineLocalMemorySize;
135 };
136 
137 // Update CURRENT_ICBE_VERSION when modifying the patch list
138 static_assert( sizeof( SPatchAllocateLocalSurface ) == ( 8 + sizeof( SPatchItemHeader ) ) , "The size of SPatchAllocateLocalSurface is not what is expected" );
139 
140 /*****************************************************************************\
141 STRUCT: SPatchThreadPayload
142 \*****************************************************************************/
143 struct SPatchThreadPayload :
144        SPatchItemHeader
145 {
146     uint32_t    HeaderPresent;
147     uint32_t    LocalIDXPresent;
148     uint32_t    LocalIDYPresent;
149     uint32_t    LocalIDZPresent;
150     uint32_t    LocalIDFlattenedPresent;
151     uint32_t    IndirectPayloadStorage;
152     uint32_t    UnusedPerThreadConstantPresent;
153     uint32_t    GetLocalIDPresent;
154     uint32_t    GetGroupIDPresent;
155     uint32_t    GetGlobalOffsetPresent;
156     uint32_t    StageInGridOriginPresent;
157     uint32_t    StageInGridSizePresent;
158     uint32_t    OffsetToSkipPerThreadDataLoad;
159     uint32_t    OffsetToSkipSetFFIDGP;
160     uint32_t    PassInlineData;
161 };
162 
163 // Update CURRENT_ICBE_VERSION when modifying the patch list
164 static_assert(sizeof(SPatchThreadPayload) == (60 + sizeof(SPatchItemHeader)), "The size of SPatchThreadPayload is not what is expected");
165 
166 /*****************************************************************************\
167 STRUCT: SPatchExecutionEnvironment
168 \*****************************************************************************/
169 struct SPatchExecutionEnvironment :
170        SPatchItemHeader
171 {
172     uint32_t    RequiredWorkGroupSizeX;
173     uint32_t    RequiredWorkGroupSizeY;
174     uint32_t    RequiredWorkGroupSizeZ;
175     uint32_t    LargestCompiledSIMDSize;
176     uint32_t    CompiledSubGroupsNumber;
177     uint32_t    HasBarriers;
178     uint32_t    DisableMidThreadPreemption;
179     uint32_t    CompiledSIMD8;
180     uint32_t    CompiledSIMD16;
181     uint32_t    CompiledSIMD32;
182     uint32_t    HasDeviceEnqueue;
183     uint32_t    MayAccessUndeclaredResource;
184     uint32_t    UsesFencesForReadWriteImages;
185     uint32_t    UsesStatelessSpillFill;
186     uint32_t    UsesMultiScratchSpaces;
187     uint32_t    IsCoherent;
188     uint32_t    IsInitializer;
189     uint32_t    IsFinalizer;
190     uint32_t    SubgroupIndependentForwardProgressRequired;
191     uint32_t    CompiledForGreaterThan4GBBuffers;
192     uint32_t    NumGRFRequired;
193     uint32_t    WorkgroupWalkOrderDims; // dim0 : [0 : 1]; dim1 : [2 : 3]; dim2 : [4 : 5]
194     uint32_t    HasGlobalAtomics;
195     uint32_t    HasDPAS;
196     uint32_t    reserved1;
197     uint32_t    reserved2;
198     uint32_t    StatelessWritesCount;
199     uint32_t    IndirectStatelessCount;
200     uint32_t    UseBindlessMode;
201     uint32_t    HasStackCalls;
202     uint64_t    SIMDInfo;
203 };
204 
205 // Update CURRENT_ICBE_VERSION when modifying the patch list
206 static_assert(sizeof(SPatchExecutionEnvironment) == (128 + sizeof(SPatchItemHeader)), "The size of SPatchExecutionEnvironment is not what is expected");
207 
208 /*****************************************************************************\
209 STRUCT: SPatchString
210 \*****************************************************************************/
211 struct SPatchString :
212        SPatchItemHeader
213 {
214     uint32_t   Index;
215     uint32_t   StringSize;
216 };
217 
218 // Update CURRENT_ICBE_VERSION when modifying the patch list
219 static_assert( sizeof( SPatchString ) == ( 8 + sizeof( SPatchItemHeader ) ) , "The size of SPatchString is not what is expected" );
220 
221 /*****************************************************************************\
222 STRUCT: SPatchAllocatePrintfSurface
223 \*****************************************************************************/
224 struct SPatchAllocatePrintfSurface :
225        SPatchItemHeader
226 {
227     uint32_t   PrintfSurfaceIndex;
228     uint32_t   Offset;
229 };
230 
231 // Update CURRENT_ICBE_VERSION when modifying the patch list
232 static_assert( sizeof( SPatchAllocatePrintfSurface ) == ( 8 + sizeof( SPatchItemHeader ) ) , "The size of SPatchAllocatePrintfSurface is not what is expected" );
233 
234 /*****************************************************************************\
235 STRUCT: SPatchAllocateGlobalMemorySurfaceWithInitialization
236 \*****************************************************************************/
237 struct SPatchAllocateGlobalMemorySurfaceWithInitialization :
238        SPatchItemHeader
239 {
240     uint32_t   GlobalBufferIndex;
241     uint32_t   Offset;
242 };
243 
244 // Update CURRENT_ICBE_VERSION when modifying the patch list
245 static_assert( sizeof( SPatchAllocateGlobalMemorySurfaceWithInitialization ) == ( 8 + sizeof( SPatchItemHeader ) ) , "The size of SPatchAllocateGlobalMemorySurfaceWithInitialization is not what is expected" );
246 
247 /*****************************************************************************\
248 STRUCT: SPatchCB2CRGatherTable
249 \*****************************************************************************/
250 struct SPatchCB2CRGatherTable :
251         SPatchItemHeader
252 {
253     uint32_t   NumberOfEntries;
254     uint32_t   Offset;
255 };
256 
257 // Update CURRENT_ICBE_VERSION when modifying the patch list
258 static_assert( sizeof( SPatchCB2CRGatherTable ) == ( 8 + sizeof( SPatchItemHeader ) ) , "The size of SPatchCB2CRGatherTable is not what is expected" );
259 
260 /*****************************************************************************\
261 STRUCT: SPatchCB2KernelArgument
262 \*****************************************************************************/
263 struct SPatchConstantBufferMapping :
264         SPatchItemHeader
265 {
266     uint32_t   ConstantBufferType;
267     uint32_t   ConstantBufferIndex;
268     uint32_t   ConstantBufferId;
269 };
270 
271 // Update CURRENT_ICBE_VERSION when modifying the patch list
272 static_assert( sizeof( SPatchConstantBufferMapping ) == ( 12 + sizeof( SPatchItemHeader ) ) , "The size of SPatchConstantBufferMapping is not what is expected" );
273 
274 /*****************************************************************************\
275 STRUCT: SPatchStatelessGlobalMemoryObjectKernelArgument
276 \*****************************************************************************/
277 struct SPatchStatelessGlobalMemoryObjectKernelArgument :
278        SPatchItemHeader
279 {
280     uint32_t   ArgumentNumber;
281     uint32_t   SurfaceStateHeapOffset;
282     uint32_t   DataParamOffset;
283     uint32_t   DataParamSize;
284     uint32_t   LocationIndex;
285     uint32_t   LocationIndex2;
286     uint32_t   IsEmulationArgument;
287 };
288 
289 // Update CURRENT_ICBE_VERSION when modifying the patch list
290 static_assert( sizeof( SPatchStatelessGlobalMemoryObjectKernelArgument ) == ( 28 + sizeof( SPatchItemHeader ) ) , "The size of SPatchStatelessGlobalMemoryObjectKernelArgument is not what is expected" );
291 
292 /*****************************************************************************\
293 STRUCT: SPatchStatelessConstantMemoryObjectKernelArgument
294 \*****************************************************************************/
295 struct SPatchStatelessConstantMemoryObjectKernelArgument :
296        SPatchItemHeader
297 {
298     uint32_t   ArgumentNumber;
299     uint32_t   SurfaceStateHeapOffset;
300     uint32_t   DataParamOffset;
301     uint32_t   DataParamSize;
302     uint32_t   LocationIndex;
303     uint32_t   LocationIndex2;
304     uint32_t   IsEmulationArgument;
305 };
306 
307 // Update CURRENT_ICBE_VERSION when modifying the patch list
308 static_assert( sizeof( SPatchStatelessConstantMemoryObjectKernelArgument ) == ( 28 + sizeof( SPatchItemHeader ) ) , "The size of SPatchStatelessConstantMemoryObjectKernelArgument is not what is expected" );
309 
310 /*****************************************************************************\
311 STRUCT: SPatchAllocateStatelessGlobalMemorySurfaceWithInitialization
312 \*****************************************************************************/
313 struct SPatchAllocateStatelessGlobalMemorySurfaceWithInitialization :
314     SPatchItemHeader
315 {
316     uint32_t   GlobalBufferIndex;
317     uint32_t   SurfaceStateHeapOffset;
318     uint32_t   DataParamOffset;
319     uint32_t   DataParamSize;
320 };
321 
322 // Update CURRENT_ICBE_VERSION when modifying the patch list
323 static_assert( sizeof( SPatchAllocateStatelessGlobalMemorySurfaceWithInitialization ) == ( 16 + sizeof( SPatchItemHeader ) ) , "The size of SPatchAllocateStatelessGlobalMemorySurfaceWithInitialization is not what is expected" );
324 
325 /*****************************************************************************\
326 STRUCT: SPatchAllocateStatelessConstantMemorySurfaceWithInitialization
327 \*****************************************************************************/
328 struct SPatchAllocateStatelessConstantMemorySurfaceWithInitialization :
329     SPatchItemHeader
330 {
331     uint32_t   ConstantBufferIndex;
332     uint32_t   SurfaceStateHeapOffset;
333     uint32_t   DataParamOffset;
334     uint32_t   DataParamSize;
335 };
336 
337 // Update CURRENT_ICBE_VERSION when modifying the patch list
338 static_assert( sizeof( SPatchAllocateStatelessConstantMemorySurfaceWithInitialization ) == ( 16 + sizeof( SPatchItemHeader ) ) , "The size of SPatchAllocateStatelessConstantMemorySurfaceWithInitialization is not what is expected" );
339 
340 /*****************************************************************************\
341 STRUCT: SPatchAllocateGlobalMemorySurfaceProgramBinaryInfo
342 \*****************************************************************************/
343 struct SPatchAllocateGlobalMemorySurfaceProgramBinaryInfo :
344     SPatchItemHeader
345 {
346     uint32_t   Type;
347     uint32_t   GlobalBufferIndex;
348     uint32_t   InlineDataSize;
349 };
350 
351 // Update CURRENT_ICBE_VERSION when modifying the patch list
352 static_assert( sizeof( SPatchAllocateGlobalMemorySurfaceProgramBinaryInfo ) == ( 12 + sizeof( SPatchItemHeader ) ) , "The size of SPatchAllocateGlobalMemorySurfaceProgramBinaryInfo is not what is expected" );
353 
354 /*****************************************************************************\
355 STRUCT: SPatchKernelTypeProgramBinaryInfo
356 \*****************************************************************************/
357 struct SPatchKernelTypeProgramBinaryInfo :
358     SPatchItemHeader
359 {
360     uint32_t   Type; // constructor or destructor
361     uint32_t   InlineDataSize;  // size of kernel name for constructor/desctructor
362 };
363 
364 // Update CURRENT_ICBE_VERSION when modifying the patch list
365 static_assert( sizeof( SPatchKernelTypeProgramBinaryInfo ) == ( 8 + sizeof( SPatchItemHeader ) ) , "The size of SPatchKernelTypeProgramBinaryInfo is not what is expected" );
366 
367 /*****************************************************************************\
368 STRUCT: SPatchInlineVMESamplerInfo
369 \*****************************************************************************/
370 struct SPatchInlineVMESamplerInfo :
371        SPatchItemHeader
372 {
373 };
374 
375 // Update CURRENT_ICBE_VERSION when modifying the patch list
376 static_assert( sizeof( SPatchInlineVMESamplerInfo ) == ( sizeof( SPatchItemHeader ) ) , "The size of SPatchInlineVMESamplerInfo is not what is expected" );
377 
378 /*****************************************************************************\
379 STRUCT: SPatchAllocateConstantMemorySurfaceProgramBinaryInfo
380 \*****************************************************************************/
381 struct SPatchAllocateConstantMemorySurfaceProgramBinaryInfo :
382     SPatchItemHeader
383 {
384     uint32_t   ConstantBufferIndex;
385     uint32_t   InlineDataSize;
386 };
387 
388 // Update CURRENT_ICBE_VERSION when modifying the patch list
389 static_assert( sizeof( SPatchAllocateConstantMemorySurfaceProgramBinaryInfo ) == ( 8 + sizeof( SPatchItemHeader ) ) , "The size of SPatchAllocateConstantMemorySurfaceProgramBinaryInfo is not what is expected" );
390 
391 /*****************************************************************************\
392 STRUCT: SPatchGlobalPointerProgramBinaryInfo
393 \*****************************************************************************/
394 struct SPatchGlobalPointerProgramBinaryInfo :
395     SPatchItemHeader
396 {
397     uint32_t   GlobalBufferIndex;
398     uint64_t   GlobalPointerOffset;
399     uint32_t   BufferType;
400     uint32_t   BufferIndex;
401 };
402 
403 // Update CURRENT_ICBE_VERSION when modifying the patch list
404 static_assert( sizeof( SPatchGlobalPointerProgramBinaryInfo ) == ( 20 + sizeof( SPatchItemHeader ) ) , "The size of SPatchGlobalPointerProgramBinaryInfo is not what is expected" );
405 
406 /*****************************************************************************\
407 STRUCT: SPatchConstantPointerProgramBinaryInfo
408 \*****************************************************************************/
409 struct SPatchConstantPointerProgramBinaryInfo :
410     SPatchItemHeader
411 {
412     uint32_t   ConstantBufferIndex;
413     uint64_t   ConstantPointerOffset;
414     uint32_t   BufferType;
415     uint32_t   BufferIndex;
416 };
417 
418 // Update CURRENT_ICBE_VERSION when modifying the patch list
419 static_assert( sizeof( SPatchConstantPointerProgramBinaryInfo ) == ( 20 + sizeof( SPatchItemHeader ) ) , "The size of SPatchConstantPointerProgramBinaryInfo is not what is expected" );
420 
421 /*****************************************************************************\
422 STRUCT: SPatchAllocateStatelessPrintfSurface
423 \*****************************************************************************/
424 struct SPatchAllocateStatelessPrintfSurface :
425        SPatchItemHeader
426 {
427     uint32_t   PrintfSurfaceIndex;
428     uint32_t   SurfaceStateHeapOffset;
429     uint32_t   DataParamOffset;
430     uint32_t   DataParamSize;
431 };
432 
433 // Update CURRENT_ICBE_VERSION when modifying the patch list
434 static_assert( sizeof( SPatchAllocateStatelessPrintfSurface ) == ( 16 + sizeof( SPatchItemHeader ) ) , "The size of SPatchAllocateStatelessPrintfSurface is not what is expected" );
435 
436 struct SPatchAllocateSyncBuffer :
437        SPatchItemHeader
438 {
439     uint32_t   SurfaceStateHeapOffset;
440     uint32_t   DataParamOffset;
441     uint32_t   DataParamSize;
442 };
443 
444 // Update CURRENT_ICBE_VERSION when modifying the patch list
445 static_assert( sizeof( SPatchAllocateSyncBuffer ) == ( 12 + sizeof( SPatchItemHeader ) ), "The size of SPatchAllocateSyncBuffer is not what is expected" );
446 
447 /*****************************************************************************\
448 STRUCT: SPatchAllocateStatelessPrivateSurface
449 \*****************************************************************************/
450 struct SPatchAllocateStatelessPrivateSurface :
451        SPatchItemHeader
452 {
453     uint32_t   SurfaceStateHeapOffset;
454     uint32_t   DataParamOffset;
455     uint32_t   DataParamSize;
456     uint32_t   PerThreadPrivateMemorySize;
457     // if IsSimtThread is true, API assumes it is allocated per-simt-thread
458     // else, API assumes it's allocated per-hardware-thread
459     uint32_t   IsSimtThread;
460 };
461 
462 // Update CURRENT_ICBE_VERSION when modifying the patch list
463 static_assert( sizeof( SPatchAllocateStatelessPrivateSurface ) == ( 20 + sizeof( SPatchItemHeader ) ) , "The size of SPatchAllocateStatelessPrivateSurface is not what is expected" );
464 
465 /*****************************************************************************\
466 STRUCT: SPatchMediaVFEState
467 \*****************************************************************************/
468 struct SPatchMediaVFEState :
469        SPatchItemHeader
470 {
471     uint32_t   ScratchSpaceOffset;
472     uint32_t   PerThreadScratchSpace;
473 };
474 
475 // Update CURRENT_ICBE_VERSION when modifying the patch list
476 static_assert( sizeof( SPatchMediaVFEState ) == ( 8 + sizeof( SPatchItemHeader ) ) , "The size of SPatchMediaVFEState is not what is expected" );
477 
478 /*****************************************************************************\
479 STRUCT: SPatchAllocateStatelessEventPoolSurface
480 \*****************************************************************************/
481 struct SPatchAllocateStatelessEventPoolSurface :
482        SPatchItemHeader
483 {
484     uint32_t   EventPoolSurfaceIndex;
485     uint32_t   SurfaceStateHeapOffset;
486     uint32_t   DataParamOffset;
487     uint32_t   DataParamSize;
488 };
489 
490 // Update CURRENT_ICBE_VERSION when modifying the patch list
491 static_assert( sizeof( SPatchAllocateStatelessEventPoolSurface ) == ( 16 + sizeof( SPatchItemHeader ) ) , "The size of SPatchAllocateStatelessEventPoolSurface is not what is expected" );
492 
493 /*****************************************************************************\
494 STRUCT: SPatchAllocateStatelessDefaultDeviceQueueSurface
495 \*****************************************************************************/
496 struct SPatchAllocateStatelessDefaultDeviceQueueSurface :
497        SPatchItemHeader
498 {
499     uint32_t   SurfaceStateHeapOffset;
500     uint32_t   DataParamOffset;
501     uint32_t   DataParamSize;
502 };
503 
504 // Update CURRENT_ICBE_VERSION when modifying the patch list
505 static_assert( sizeof( SPatchAllocateStatelessDefaultDeviceQueueSurface ) == ( 12 + sizeof( SPatchItemHeader ) ) , "The size of SPatchAllocateStatelessDefaultDeviceQueueSurface is not what is expected" );
506 
507 /*****************************************************************************\
508 STRUCT: SPatchStatelessDeviceQueueKernelArgument
509 \*****************************************************************************/
510 struct SPatchStatelessDeviceQueueKernelArgument :
511        SPatchItemHeader
512 {
513     uint32_t   ArgumentNumber;
514     uint32_t   SurfaceStateHeapOffset;
515     uint32_t   DataParamOffset;
516     uint32_t   DataParamSize;
517     uint32_t   LocationIndex;
518     uint32_t   LocationIndex2;
519     uint32_t   IsEmulationArgument;
520 };
521 
522 // Update CURRENT_ICBE_VERSION when modifying the patch list
523 static_assert( sizeof( SPatchStatelessDeviceQueueKernelArgument ) == ( 28 + sizeof( SPatchItemHeader ) ) , "The size of SPatchStatelessDeviceQueueKernelArgument is not what is expected" );
524 
525 /*****************************************************************************\
526 STRUCT: SPatchNullSurfaceLocation
527 \*****************************************************************************/
528 struct SPatchNullSurfaceLocation :
529        SPatchItemHeader
530 {
531     uint32_t   Offset;
532 };
533 
534 // Update CURRENT_ICBE_VERSION when modifying the patch list
535 static_assert( sizeof( SPatchNullSurfaceLocation ) == ( 4 + sizeof( SPatchItemHeader ) ) , "The size of SPatchNullSurfaceLocation is not what is expected" );
536 
537 /*****************************************************************************\
538 STRUCT: SPatchGtpinFreeGRFInfo
539 \*****************************************************************************/
540 struct SPatchGtpinFreeGRFInfo :
541     SPatchItemHeader
542 {
543     uint32_t   BufferSize;
544 };
545 
546 // Update CURRENT_ICBE_VERSION when modifying the patch list
547 static_assert(sizeof(SPatchGtpinFreeGRFInfo) == (4 + sizeof(SPatchItemHeader)), "The size of SPatchGtpinFreeGRFInfo is not what is expected");
548 
549 /*****************************************************************************\
550  STRUCT: SPatchFunctionTableInfo
551  \*****************************************************************************/
552 struct SPatchFunctionTableInfo :
553     SPatchItemHeader
554 {
555     uint32_t   NumEntries;
556 };
557 
558 // Update CURRENT_ICBE_VERSION when modifying the patch list
559 static_assert(sizeof(SPatchFunctionTableInfo) == (4 + sizeof(SPatchItemHeader)), "The size of SPatchFunctionTableInfo is not what is expected");
560 
561 
562 } // namespace
563 #pragma pack( pop )
564