1# Copyright 2018 Google LLC 2# SPDX-License-Identifier: MIT 3 4KNOWN_FUNCTION_OPCODES = { 5 "vkCreateInstance": 20000, 6 "vkDestroyInstance": 20001, 7 "vkEnumeratePhysicalDevices": 20002, 8 "vkGetPhysicalDeviceFeatures": 20003, 9 "vkGetPhysicalDeviceFormatProperties": 20004, 10 "vkGetPhysicalDeviceImageFormatProperties": 20005, 11 "vkGetPhysicalDeviceProperties": 20006, 12 "vkGetPhysicalDeviceQueueFamilyProperties": 20007, 13 "vkGetPhysicalDeviceMemoryProperties": 20008, 14 "vkGetInstanceProcAddr": 20009, 15 "vkGetDeviceProcAddr": 20010, 16 "vkCreateDevice": 20011, 17 "vkDestroyDevice": 20012, 18 "vkEnumerateInstanceExtensionProperties": 20013, 19 "vkEnumerateDeviceExtensionProperties": 20014, 20 "vkEnumerateInstanceLayerProperties": 20015, 21 "vkEnumerateDeviceLayerProperties": 20016, 22 "vkGetDeviceQueue": 20017, 23 "vkQueueSubmit": 20018, 24 "vkQueueWaitIdle": 20019, 25 "vkDeviceWaitIdle": 20020, 26 "vkAllocateMemory": 20021, 27 "vkFreeMemory": 20022, 28 "vkMapMemory": 20023, 29 "vkUnmapMemory": 20024, 30 "vkFlushMappedMemoryRanges": 20025, 31 "vkInvalidateMappedMemoryRanges": 20026, 32 "vkGetDeviceMemoryCommitment": 20027, 33 "vkBindBufferMemory": 20028, 34 "vkBindImageMemory": 20029, 35 "vkGetBufferMemoryRequirements": 20030, 36 "vkGetImageMemoryRequirements": 20031, 37 "vkGetImageSparseMemoryRequirements": 20032, 38 "vkGetPhysicalDeviceSparseImageFormatProperties": 20033, 39 "vkQueueBindSparse": 20034, 40 "vkCreateFence": 20035, 41 "vkDestroyFence": 20036, 42 "vkResetFences": 20037, 43 "vkGetFenceStatus": 20038, 44 "vkWaitForFences": 20039, 45 "vkCreateSemaphore": 20040, 46 "vkDestroySemaphore": 20041, 47 "vkCreateEvent": 20042, 48 "vkDestroyEvent": 20043, 49 "vkGetEventStatus": 20044, 50 "vkSetEvent": 20045, 51 "vkResetEvent": 20046, 52 "vkCreateQueryPool": 20047, 53 "vkDestroyQueryPool": 20048, 54 "vkGetQueryPoolResults": 20049, 55 "vkCreateBuffer": 20050, 56 "vkDestroyBuffer": 20051, 57 "vkCreateBufferView": 20052, 58 "vkDestroyBufferView": 20053, 59 "vkCreateImage": 20054, 60 "vkDestroyImage": 20055, 61 "vkGetImageSubresourceLayout": 20056, 62 "vkCreateImageView": 20057, 63 "vkDestroyImageView": 20058, 64 "vkCreateShaderModule": 20059, 65 "vkDestroyShaderModule": 20060, 66 "vkCreatePipelineCache": 20061, 67 "vkDestroyPipelineCache": 20062, 68 "vkGetPipelineCacheData": 20063, 69 "vkMergePipelineCaches": 20064, 70 "vkCreateGraphicsPipelines": 20065, 71 "vkCreateComputePipelines": 20066, 72 "vkDestroyPipeline": 20067, 73 "vkCreatePipelineLayout": 20068, 74 "vkDestroyPipelineLayout": 20069, 75 "vkCreateSampler": 20070, 76 "vkDestroySampler": 20071, 77 "vkCreateDescriptorSetLayout": 20072, 78 "vkDestroyDescriptorSetLayout": 20073, 79 "vkCreateDescriptorPool": 20074, 80 "vkDestroyDescriptorPool": 20075, 81 "vkResetDescriptorPool": 20076, 82 "vkAllocateDescriptorSets": 20077, 83 "vkFreeDescriptorSets": 20078, 84 "vkUpdateDescriptorSets": 20079, 85 "vkCreateFramebuffer": 20080, 86 "vkDestroyFramebuffer": 20081, 87 "vkCreateRenderPass": 20082, 88 "vkDestroyRenderPass": 20083, 89 "vkGetRenderAreaGranularity": 20084, 90 "vkCreateCommandPool": 20085, 91 "vkDestroyCommandPool": 20086, 92 "vkResetCommandPool": 20087, 93 "vkAllocateCommandBuffers": 20088, 94 "vkFreeCommandBuffers": 20089, 95 "vkBeginCommandBuffer": 20090, 96 "vkEndCommandBuffer": 20091, 97 "vkResetCommandBuffer": 20092, 98 "vkCmdBindPipeline": 20093, 99 "vkCmdSetViewport": 20094, 100 "vkCmdSetScissor": 20095, 101 "vkCmdSetLineWidth": 20096, 102 "vkCmdSetDepthBias": 20097, 103 "vkCmdSetBlendConstants": 20098, 104 "vkCmdSetDepthBounds": 20099, 105 "vkCmdSetStencilCompareMask": 20100, 106 "vkCmdSetStencilWriteMask": 20101, 107 "vkCmdSetStencilReference": 20102, 108 "vkCmdBindDescriptorSets": 20103, 109 "vkCmdBindIndexBuffer": 20104, 110 "vkCmdBindVertexBuffers": 20105, 111 "vkCmdDraw": 20106, 112 "vkCmdDrawIndexed": 20107, 113 "vkCmdDrawIndirect": 20108, 114 "vkCmdDrawIndexedIndirect": 20109, 115 "vkCmdDispatch": 20110, 116 "vkCmdDispatchIndirect": 20111, 117 "vkCmdCopyBuffer": 20112, 118 "vkCmdCopyImage": 20113, 119 "vkCmdBlitImage": 20114, 120 "vkCmdCopyBufferToImage": 20115, 121 "vkCmdCopyImageToBuffer": 20116, 122 "vkCmdUpdateBuffer": 20117, 123 "vkCmdFillBuffer": 20118, 124 "vkCmdClearColorImage": 20119, 125 "vkCmdClearDepthStencilImage": 20120, 126 "vkCmdClearAttachments": 20121, 127 "vkCmdResolveImage": 20122, 128 "vkCmdSetEvent": 20123, 129 "vkCmdResetEvent": 20124, 130 "vkCmdWaitEvents": 20125, 131 "vkCmdPipelineBarrier": 20126, 132 "vkCmdBeginQuery": 20127, 133 "vkCmdEndQuery": 20128, 134 "vkCmdResetQueryPool": 20129, 135 "vkCmdWriteTimestamp": 20130, 136 "vkCmdCopyQueryPoolResults": 20131, 137 "vkCmdPushConstants": 20132, 138 "vkCmdBeginRenderPass": 20133, 139 "vkCmdNextSubpass": 20134, 140 "vkCmdEndRenderPass": 20135, 141 "vkCmdExecuteCommands": 20136, 142 "vkEnumerateInstanceVersion": 20137, 143 "vkBindBufferMemory2": 20138, 144 "vkBindImageMemory2": 20139, 145 "vkGetDeviceGroupPeerMemoryFeatures": 20140, 146 "vkCmdSetDeviceMask": 20141, 147 "vkCmdDispatchBase": 20142, 148 "vkEnumeratePhysicalDeviceGroups": 20143, 149 "vkGetImageMemoryRequirements2": 20144, 150 "vkGetBufferMemoryRequirements2": 20145, 151 "vkGetImageSparseMemoryRequirements2": 20146, 152 "vkGetPhysicalDeviceFeatures2": 20147, 153 "vkGetPhysicalDeviceProperties2": 20148, 154 "vkGetPhysicalDeviceFormatProperties2": 20149, 155 "vkGetPhysicalDeviceImageFormatProperties2": 20150, 156 "vkGetPhysicalDeviceQueueFamilyProperties2": 20151, 157 "vkGetPhysicalDeviceMemoryProperties2": 20152, 158 "vkGetPhysicalDeviceSparseImageFormatProperties2": 20153, 159 "vkTrimCommandPool": 20154, 160 "vkGetDeviceQueue2": 20155, 161 "vkCreateSamplerYcbcrConversion": 20156, 162 "vkDestroySamplerYcbcrConversion": 20157, 163 "vkCreateDescriptorUpdateTemplate": 20158, 164 "vkDestroyDescriptorUpdateTemplate": 20159, 165 "vkUpdateDescriptorSetWithTemplate": 20160, 166 "vkGetPhysicalDeviceExternalBufferProperties": 20161, 167 "vkGetPhysicalDeviceExternalFenceProperties": 20162, 168 "vkGetPhysicalDeviceExternalSemaphoreProperties": 20163, 169 "vkGetDescriptorSetLayoutSupport": 20164, 170 "vkDestroySurfaceKHR": 20165, 171 "vkGetPhysicalDeviceSurfaceSupportKHR": 20166, 172 "vkGetPhysicalDeviceSurfaceCapabilitiesKHR": 20167, 173 "vkGetPhysicalDeviceSurfaceFormatsKHR": 20168, 174 "vkGetPhysicalDeviceSurfacePresentModesKHR": 20169, 175 "vkCreateSwapchainKHR": 20170, 176 "vkDestroySwapchainKHR": 20171, 177 "vkGetSwapchainImagesKHR": 20172, 178 "vkAcquireNextImageKHR": 20173, 179 "vkQueuePresentKHR": 20174, 180 "vkGetDeviceGroupPresentCapabilitiesKHR": 20175, 181 "vkGetDeviceGroupSurfacePresentModesKHR": 20176, 182 "vkGetPhysicalDevicePresentRectanglesKHR": 20177, 183 "vkAcquireNextImage2KHR": 20178, 184 "vkGetPhysicalDeviceDisplayPropertiesKHR": 20179, 185 "vkGetPhysicalDeviceDisplayPlanePropertiesKHR": 20180, 186 "vkGetDisplayPlaneSupportedDisplaysKHR": 20181, 187 "vkGetDisplayModePropertiesKHR": 20182, 188 "vkCreateDisplayModeKHR": 20183, 189 "vkGetDisplayPlaneCapabilitiesKHR": 20184, 190 "vkCreateDisplayPlaneSurfaceKHR": 20185, 191 "vkCreateSharedSwapchainsKHR": 20186, 192 "vkCreateXlibSurfaceKHR": 20187, 193 "vkGetPhysicalDeviceXlibPresentationSupportKHR": 20188, 194 "vkCreateXcbSurfaceKHR": 20189, 195 "vkGetPhysicalDeviceXcbPresentationSupportKHR": 20190, 196 "vkCreateWaylandSurfaceKHR": 20191, 197 "vkGetPhysicalDeviceWaylandPresentationSupportKHR": 20192, 198 "vkCreateMirSurfaceKHR": 20193, 199 "vkGetPhysicalDeviceMirPresentationSupportKHR": 20194, 200 "vkCreateAndroidSurfaceKHR": 20195, 201 "vkCreateWin32SurfaceKHR": 20196, 202 "vkGetPhysicalDeviceWin32PresentationSupportKHR": 20197, 203 "vkGetPhysicalDeviceFeatures2KHR": 20198, 204 "vkGetPhysicalDeviceProperties2KHR": 20199, 205 "vkGetPhysicalDeviceFormatProperties2KHR": 20200, 206 "vkGetPhysicalDeviceImageFormatProperties2KHR": 20201, 207 "vkGetPhysicalDeviceQueueFamilyProperties2KHR": 20202, 208 "vkGetPhysicalDeviceMemoryProperties2KHR": 20203, 209 "vkGetPhysicalDeviceSparseImageFormatProperties2KHR": 20204, 210 "vkGetDeviceGroupPeerMemoryFeaturesKHR": 20205, 211 "vkCmdSetDeviceMaskKHR": 20206, 212 "vkCmdDispatchBaseKHR": 20207, 213 "vkTrimCommandPoolKHR": 20208, 214 "vkEnumeratePhysicalDeviceGroupsKHR": 20209, 215 "vkGetPhysicalDeviceExternalBufferPropertiesKHR": 20210, 216 "vkGetMemoryWin32HandleKHR": 20211, 217 "vkGetMemoryWin32HandlePropertiesKHR": 20212, 218 "vkGetMemoryFdKHR": 20213, 219 "vkGetMemoryFdPropertiesKHR": 20214, 220 "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR": 20215, 221 "vkImportSemaphoreWin32HandleKHR": 20216, 222 "vkGetSemaphoreWin32HandleKHR": 20217, 223 "vkImportSemaphoreFdKHR": 20218, 224 "vkGetSemaphoreFdKHR": 20219, 225 "vkCmdPushDescriptorSetKHR": 20220, 226 "vkCmdPushDescriptorSetWithTemplateKHR": 20221, 227 "vkCreateDescriptorUpdateTemplateKHR": 20222, 228 "vkDestroyDescriptorUpdateTemplateKHR": 20223, 229 "vkUpdateDescriptorSetWithTemplateKHR": 20224, 230 "vkCreateRenderPass2KHR": 20225, 231 "vkCmdBeginRenderPass2KHR": 20226, 232 "vkCmdNextSubpass2KHR": 20227, 233 "vkCmdEndRenderPass2KHR": 20228, 234 "vkGetSwapchainStatusKHR": 20229, 235 "vkGetPhysicalDeviceExternalFencePropertiesKHR": 20230, 236 "vkImportFenceWin32HandleKHR": 20231, 237 "vkGetFenceWin32HandleKHR": 20232, 238 "vkImportFenceFdKHR": 20233, 239 "vkGetFenceFdKHR": 20234, 240 "vkGetPhysicalDeviceSurfaceCapabilities2KHR": 20235, 241 "vkGetPhysicalDeviceSurfaceFormats2KHR": 20236, 242 "vkGetPhysicalDeviceDisplayProperties2KHR": 20237, 243 "vkGetPhysicalDeviceDisplayPlaneProperties2KHR": 20238, 244 "vkGetDisplayModeProperties2KHR": 20239, 245 "vkGetDisplayPlaneCapabilities2KHR": 20240, 246 "vkGetImageMemoryRequirements2KHR": 20241, 247 "vkGetBufferMemoryRequirements2KHR": 20242, 248 "vkGetImageSparseMemoryRequirements2KHR": 20243, 249 "vkCreateSamplerYcbcrConversionKHR": 20244, 250 "vkDestroySamplerYcbcrConversionKHR": 20245, 251 "vkBindBufferMemory2KHR": 20246, 252 "vkBindImageMemory2KHR": 20247, 253 "vkGetDescriptorSetLayoutSupportKHR": 20248, 254 "vkCmdDrawIndirectCountKHR": 20249, 255 "vkCmdDrawIndexedIndirectCountKHR": 20250, 256 "vkGetSwapchainGrallocUsageANDROID": 20251, 257 "vkAcquireImageANDROID": 20252, 258 "vkQueueSignalReleaseImageANDROID": 20253, 259 "vkCreateDebugReportCallbackEXT": 20254, 260 "vkDestroyDebugReportCallbackEXT": 20255, 261 "vkDebugReportMessageEXT": 20256, 262 "vkDebugMarkerSetObjectTagEXT": 20257, 263 "vkDebugMarkerSetObjectNameEXT": 20258, 264 "vkCmdDebugMarkerBeginEXT": 20259, 265 "vkCmdDebugMarkerEndEXT": 20260, 266 "vkCmdDebugMarkerInsertEXT": 20261, 267 "vkCmdDrawIndirectCountAMD": 20262, 268 "vkCmdDrawIndexedIndirectCountAMD": 20263, 269 "vkGetShaderInfoAMD": 20264, 270 "vkGetPhysicalDeviceExternalImageFormatPropertiesNV": 20265, 271 "vkGetMemoryWin32HandleNV": 20266, 272 "vkCreateViSurfaceNN": 20267, 273 "vkCmdBeginConditionalRenderingEXT": 20268, 274 "vkCmdEndConditionalRenderingEXT": 20269, 275 "vkCmdProcessCommandsNVX": 20270, 276 "vkCmdReserveSpaceForCommandsNVX": 20271, 277 "vkCreateIndirectCommandsLayoutNVX": 20272, 278 "vkDestroyIndirectCommandsLayoutNVX": 20273, 279 "vkCreateObjectTableNVX": 20274, 280 "vkDestroyObjectTableNVX": 20275, 281 "vkRegisterObjectsNVX": 20276, 282 "vkUnregisterObjectsNVX": 20277, 283 "vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX": 20278, 284 "vkCmdSetViewportWScalingNV": 20279, 285 "vkReleaseDisplayEXT": 20280, 286 "vkAcquireXlibDisplayEXT": 20281, 287 "vkGetRandROutputDisplayEXT": 20282, 288 "vkGetPhysicalDeviceSurfaceCapabilities2EXT": 20283, 289 "vkDisplayPowerControlEXT": 20284, 290 "vkRegisterDeviceEventEXT": 20285, 291 "vkRegisterDisplayEventEXT": 20286, 292 "vkGetSwapchainCounterEXT": 20287, 293 "vkGetRefreshCycleDurationGOOGLE": 20288, 294 "vkGetPastPresentationTimingGOOGLE": 20289, 295 "vkCmdSetDiscardRectangleEXT": 20290, 296 "vkSetHdrMetadataEXT": 20291, 297 "vkCreateIOSSurfaceMVK": 20292, 298 "vkCreateMacOSSurfaceMVK": 20293, 299 "vkSetDebugUtilsObjectNameEXT": 20294, 300 "vkSetDebugUtilsObjectTagEXT": 20295, 301 "vkQueueBeginDebugUtilsLabelEXT": 20296, 302 "vkQueueEndDebugUtilsLabelEXT": 20297, 303 "vkQueueInsertDebugUtilsLabelEXT": 20298, 304 "vkCmdBeginDebugUtilsLabelEXT": 20299, 305 "vkCmdEndDebugUtilsLabelEXT": 20300, 306 "vkCmdInsertDebugUtilsLabelEXT": 20301, 307 "vkCreateDebugUtilsMessengerEXT": 20302, 308 "vkDestroyDebugUtilsMessengerEXT": 20303, 309 "vkSubmitDebugUtilsMessageEXT": 20304, 310 "vkGetAndroidHardwareBufferPropertiesANDROID": 20305, 311 "vkGetMemoryAndroidHardwareBufferANDROID": 20306, 312 "vkCmdSetSampleLocationsEXT": 20307, 313 "vkGetPhysicalDeviceMultisamplePropertiesEXT": 20308, 314 "vkCreateValidationCacheEXT": 20309, 315 "vkDestroyValidationCacheEXT": 20310, 316 "vkMergeValidationCachesEXT": 20311, 317 "vkGetValidationCacheDataEXT": 20312, 318 "vkGetMemoryHostPointerPropertiesEXT": 20313, 319 "vkCmdWriteBufferMarkerAMD": 20314, 320 "vkCmdSetCheckpointNV": 20315, 321 "vkGetQueueCheckpointDataNV": 20316, 322 "vkMapMemoryIntoAddressSpaceGOOGLE": 20317, 323 "vkUpdateDescriptorSetWithTemplateSizedGOOGLE": 20320, 324 "vkBeginCommandBufferAsyncGOOGLE": 20321, 325 "vkEndCommandBufferAsyncGOOGLE": 20322, 326 "vkResetCommandBufferAsyncGOOGLE": 20323, 327 "vkCommandBufferHostSyncGOOGLE": 20324, 328 "vkCreateImageWithRequirementsGOOGLE": 20325, 329 "vkCreateBufferWithRequirementsGOOGLE": 20326, 330 "vkGetMemoryHostAddressInfoGOOGLE": 20327, 331 "vkFreeMemorySyncGOOGLE": 20328, 332 "vkQueueHostSyncGOOGLE": 20329, 333 "vkQueueSubmitAsyncGOOGLE": 20330, 334 "vkQueueWaitIdleAsyncGOOGLE": 20331, 335 "vkQueueBindSparseAsyncGOOGLE": 20332, 336 "vkGetLinearImageLayoutGOOGLE": 20333, 337 "vkQueueFlushCommandsGOOGLE": 20340, 338 "vkGetBlobGOOGLE": 20341, 339 "vkGetSemaphoreGOOGLE": 20342, 340} 341 342CUSTOM_MARSHAL_TYPES = { 343 "VkAccelerationStructureInstanceKHR": { 344 "common": """ 345typedef struct VkAccelerationStructureInstanceKHRWithoutBitFields { 346 VkTransformMatrixKHR transform; 347 uint32_t dwords[2]; 348 uint64_t accelerationStructureReference; 349} VkAccelerationStructureInstanceKHRWithoutBitFields; 350""", 351 "marshaling": """ 352const VkAccelerationStructureInstanceKHRWithoutBitFields* {newInputVarName} = (const VkAccelerationStructureInstanceKHRWithoutBitFields*)({inputVarName}); 353marshal_VkTransformMatrixKHR({streamVarName}, {rootTypeVarName}, (VkTransformMatrixKHR*)(&{newInputVarName}->transform)); 354for (uint32_t i = 0; i < 2; i++) {{ 355 {streamVarName}->write((uint32_t*)&({newInputVarName}->dwords[i]), sizeof(uint32_t)); 356}} 357{streamVarName}->write((uint64_t*)&{newInputVarName}->accelerationStructureReference, sizeof(uint64_t)); 358""", 359 "unmarshaling": """ 360VkAccelerationStructureInstanceKHRWithoutBitFields* {newInputVarName} = (VkAccelerationStructureInstanceKHRWithoutBitFields*)({inputVarName}); 361unmarshal_VkTransformMatrixKHR({streamVarName}, {rootTypeVarName}, (VkTransformMatrixKHR*)(&{newInputVarName}->transform)); 362for (uint32_t i = 0; i < 2; i++) {{ 363 {streamVarName}->read((uint32_t*)&({newInputVarName}->dwords[i]), sizeof(uint32_t)); 364}} 365{streamVarName}->read((uint64_t*)&{newInputVarName}->accelerationStructureReference, sizeof(uint64_t)); 366""", 367 "reservedmarshaling": """ 368(void)vkStream; 369const VkAccelerationStructureInstanceKHRWithoutBitFields* {newInputVarName} = (const VkAccelerationStructureInstanceKHRWithoutBitFields*)({inputVarName}); 370reservedmarshal_VkTransformMatrixKHR({streamVarName}, {rootTypeVarName}, (VkTransformMatrixKHR*)(&{newInputVarName}->transform), ptr); 371for (uint32_t i = 0; i < 2; i++) {{ 372 memcpy(*ptr, (uint32_t*)&({newInputVarName}->dwords[i]), sizeof(uint32_t)); 373 *ptr += sizeof(uint32_t); 374}} 375memcpy(*ptr, (uint64_t*)&{newInputVarName}->accelerationStructureReference, sizeof(uint64_t)); 376*ptr += sizeof(uint64_t); 377""", 378 "reservedunmarshaling": """ 379VkAccelerationStructureInstanceKHRWithoutBitFields* {newInputVarName} = (VkAccelerationStructureInstanceKHRWithoutBitFields*)({inputVarName}); 380reservedunmarshal_VkTransformMatrixKHR({streamVarName}, {rootTypeVarName}, (VkTransformMatrixKHR*)(&{newInputVarName}->transform), ptr); 381for (uint32_t i = 0; i < 2; i++) {{ 382 memcpy((uint32_t*)&({newInputVarName}->dwords[i]), *ptr, sizeof(uint32_t)); 383 *ptr += sizeof(uint32_t); 384}} 385memcpy((uint64_t*)&{newInputVarName}->accelerationStructureReference, *ptr, sizeof(uint64_t)); 386*ptr += sizeof(uint64_t); 387""", 388 }, 389 "VkAccelerationStructureMatrixMotionInstanceNV": { 390 "common": """ 391typedef struct VkAccelerationStructureMatrixMotionInstanceNVWithoutBitFields { 392 VkTransformMatrixKHR transformT0; 393 VkTransformMatrixKHR transformT1; 394 uint32_t dwords[2]; 395 uint64_t accelerationStructureReference; 396} VkAccelerationStructureMatrixMotionInstanceNVWithoutBitFields; 397""", 398 "marshaling": """ 399const VkAccelerationStructureMatrixMotionInstanceNVWithoutBitFields* {newInputVarName} = (const VkAccelerationStructureMatrixMotionInstanceNVWithoutBitFields*)({inputVarName}); 400marshal_VkTransformMatrixKHR({streamVarName}, {rootTypeVarName}, (VkTransformMatrixKHR*)(&{newInputVarName}->transformT0)); 401marshal_VkTransformMatrixKHR({streamVarName}, {rootTypeVarName}, (VkTransformMatrixKHR*)(&{newInputVarName}->transformT1)); 402for (uint32_t i = 0; i < 2; i++) {{ 403 {streamVarName}->write((uint32_t*)&({newInputVarName}->dwords[i]), sizeof(uint32_t)); 404}} 405{streamVarName}->write((uint64_t*)&{newInputVarName}->accelerationStructureReference, sizeof(uint64_t)); 406""", 407 "unmarshaling": """ 408VkAccelerationStructureMatrixMotionInstanceNVWithoutBitFields* {newInputVarName} = (VkAccelerationStructureMatrixMotionInstanceNVWithoutBitFields*)({inputVarName}); 409unmarshal_VkTransformMatrixKHR({streamVarName}, {rootTypeVarName}, (VkTransformMatrixKHR*)(&{newInputVarName}->transformT0)); 410unmarshal_VkTransformMatrixKHR({streamVarName}, {rootTypeVarName}, (VkTransformMatrixKHR*)(&{newInputVarName}->transformT1)); 411for (uint32_t i = 0; i < 2; i++) {{ 412 {streamVarName}->read((uint32_t*)&({newInputVarName}->dwords[i]), sizeof(uint32_t)); 413}} 414{streamVarName}->read((uint64_t*)&{newInputVarName}->accelerationStructureReference, sizeof(uint64_t)); 415""", 416 "reservedmarshaling": """ 417(void)vkStream; 418const VkAccelerationStructureMatrixMotionInstanceNVWithoutBitFields* {newInputVarName} = (const VkAccelerationStructureMatrixMotionInstanceNVWithoutBitFields*)({inputVarName}); 419reservedmarshal_VkTransformMatrixKHR({streamVarName}, {rootTypeVarName}, (VkTransformMatrixKHR*)(&{newInputVarName}->transformT0), ptr); 420reservedmarshal_VkTransformMatrixKHR({streamVarName}, {rootTypeVarName}, (VkTransformMatrixKHR*)(&{newInputVarName}->transformT1), ptr); 421for (uint32_t i = 0; i < 2; i++) {{ 422 memcpy(*ptr, (uint32_t*)&({newInputVarName}->dwords[i]), sizeof(uint32_t)); 423 *ptr += sizeof(uint32_t); 424}} 425memcpy(*ptr, (uint64_t*)&{newInputVarName}->accelerationStructureReference, sizeof(uint64_t)); 426*ptr += sizeof(uint64_t); 427""", 428 "reservedunmarshaling": """ 429VkAccelerationStructureMatrixMotionInstanceNVWithoutBitFields* {newInputVarName} = (VkAccelerationStructureMatrixMotionInstanceNVWithoutBitFields*)({inputVarName}); 430reservedunmarshal_VkTransformMatrixKHR({streamVarName}, {rootTypeVarName}, (VkTransformMatrixKHR*)(&{newInputVarName}->transformT0), ptr); 431reservedunmarshal_VkTransformMatrixKHR({streamVarName}, {rootTypeVarName}, (VkTransformMatrixKHR*)(&{newInputVarName}->transformT1), ptr); 432for (uint32_t i = 0; i < 2; i++) {{ 433 memcpy((uint32_t*)&({newInputVarName}->dwords[i]), *ptr, sizeof(uint32_t)); 434 *ptr += sizeof(uint32_t); 435}} 436memcpy((uint64_t*)&{newInputVarName}->accelerationStructureReference, *ptr, sizeof(uint64_t)); 437*ptr += sizeof(uint64_t); 438""", 439 }, 440 "VkAccelerationStructureSRTMotionInstanceNV": { 441 "common": """ 442typedef struct VkAccelerationStructureSRTMotionInstanceNVWithoutBitFields { 443 VkSRTDataNV transformT0; 444 VkSRTDataNV transformT1; 445 uint32_t dwords[2]; 446 uint64_t accelerationStructureReference; 447} VkAccelerationStructureSRTMotionInstanceNVWithoutBitFields; 448""", 449 "marshaling": """ 450const VkAccelerationStructureSRTMotionInstanceNVWithoutBitFields* {newInputVarName} = (const VkAccelerationStructureSRTMotionInstanceNVWithoutBitFields*)({inputVarName}); 451marshal_VkSRTDataNV({streamVarName}, {rootTypeVarName}, (VkSRTDataNV*)(&{newInputVarName}->transformT0)); 452marshal_VkSRTDataNV({streamVarName}, {rootTypeVarName}, (VkSRTDataNV*)(&{newInputVarName}->transformT1)); 453for (uint32_t i = 0; i < 2; i++) {{ 454 {streamVarName}->write((uint32_t*)&({newInputVarName}->dwords[i]), sizeof(uint32_t)); 455}} 456{streamVarName}->write((uint64_t*)&{newInputVarName}->accelerationStructureReference, sizeof(uint64_t)); 457""", 458 "unmarshaling": """ 459VkAccelerationStructureSRTMotionInstanceNVWithoutBitFields* {newInputVarName} = (VkAccelerationStructureSRTMotionInstanceNVWithoutBitFields*)({inputVarName}); 460unmarshal_VkSRTDataNV({streamVarName}, {rootTypeVarName}, (VkSRTDataNV*)(&{newInputVarName}->transformT0)); 461unmarshal_VkSRTDataNV({streamVarName}, {rootTypeVarName}, (VkSRTDataNV*)(&{newInputVarName}->transformT1)); 462for (uint32_t i = 0; i < 2; i++) {{ 463 {streamVarName}->read((uint32_t*)&({newInputVarName}->dwords[i]), sizeof(uint32_t)); 464}} 465{streamVarName}->read((uint64_t*)&{newInputVarName}->accelerationStructureReference, sizeof(uint64_t)); 466""", 467 "reservedmarshaling": """ 468(void)vkStream; 469const VkAccelerationStructureSRTMotionInstanceNVWithoutBitFields* {newInputVarName} = (const VkAccelerationStructureSRTMotionInstanceNVWithoutBitFields*)({inputVarName}); 470reservedmarshal_VkSRTDataNV({streamVarName}, {rootTypeVarName}, (VkSRTDataNV*)(&{newInputVarName}->transformT0), ptr); 471reservedmarshal_VkSRTDataNV({streamVarName}, {rootTypeVarName}, (VkSRTDataNV*)(&{newInputVarName}->transformT1), ptr); 472for (uint32_t i = 0; i < 2; i++) {{ 473 memcpy(*ptr, (uint32_t*)&({newInputVarName}->dwords[i]), sizeof(uint32_t)); 474 *ptr += sizeof(uint32_t); 475}} 476memcpy(*ptr, (uint64_t*)&{newInputVarName}->accelerationStructureReference, sizeof(uint64_t)); 477*ptr += sizeof(uint64_t); 478""", 479 "reservedunmarshaling": """ 480VkAccelerationStructureSRTMotionInstanceNVWithoutBitFields* {newInputVarName} = (VkAccelerationStructureSRTMotionInstanceNVWithoutBitFields*)({inputVarName}); 481reservedunmarshal_VkSRTDataNV({streamVarName}, {rootTypeVarName}, (VkSRTDataNV*)(&{newInputVarName}->transformT0), ptr); 482reservedunmarshal_VkSRTDataNV({streamVarName}, {rootTypeVarName}, (VkSRTDataNV*)(&{newInputVarName}->transformT1), ptr); 483for (uint32_t i = 0; i < 2; i++) {{ 484 memcpy((uint32_t*)&({newInputVarName}->dwords[i]), *ptr, sizeof(uint32_t)); 485 *ptr += sizeof(uint32_t); 486}} 487memcpy((uint64_t*)&{newInputVarName}->accelerationStructureReference, *ptr, sizeof(uint64_t)); 488*ptr += sizeof(uint64_t); 489""", 490 }, 491 "VkDescriptorBufferInfo": { 492 "common":"", 493 "reservedunmarshaling": """ 494 uint64_t cgen_var_0; 495 memcpy((uint64_t*)&cgen_var_0, *ptr, 1 * 8); 496 *ptr += 1 * 8; 497 *(VkBuffer*)&forUnmarshaling->buffer = (VkBuffer)try_unbox_VkBuffer((VkBuffer)(*&cgen_var_0)); 498 memcpy((VkDeviceSize*)&forUnmarshaling->offset, *ptr, sizeof(VkDeviceSize)); 499 *ptr += sizeof(VkDeviceSize); 500 memcpy((VkDeviceSize*)&forUnmarshaling->range, *ptr, sizeof(VkDeviceSize)); 501 *ptr += sizeof(VkDeviceSize); 502 """ 503 }, 504 "VkXcbSurfaceCreateInfoKHR": { 505 "common": """ 506// This struct should never be marshaled / unmarshaled. 507__builtin_trap(); 508""", 509 "marshaling": "", 510 "unmarshaling": "", 511 "reservedmarshaling": "", 512 "reservedunmarshaling": "", 513 }, 514 "VkMetalSurfaceCreateInfoEXT": { 515 "common": """ 516// This struct should never be marshaled / unmarshaled. 517__builtin_trap(); 518""", 519 "marshaling": "", 520 "unmarshaling": "", 521 "reservedmarshaling": "", 522 "reservedunmarshaling": "", 523 }, 524} 525