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