blob: 57472a6503f206b2113c50250287c4c9f51b6606 [file] [log] [blame]
# Copyright (c) 2021 The Android Open Source Project
# Copyright (c) 2021 Google Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
KNOWN_FUNCTION_OPCODES = {
"vkCreateInstance": 20000,
"vkDestroyInstance": 20001,
"vkEnumeratePhysicalDevices": 20002,
"vkGetPhysicalDeviceFeatures": 20003,
"vkGetPhysicalDeviceFormatProperties": 20004,
"vkGetPhysicalDeviceImageFormatProperties": 20005,
"vkGetPhysicalDeviceProperties": 20006,
"vkGetPhysicalDeviceQueueFamilyProperties": 20007,
"vkGetPhysicalDeviceMemoryProperties": 20008,
"vkGetInstanceProcAddr": 20009,
"vkGetDeviceProcAddr": 20010,
"vkCreateDevice": 20011,
"vkDestroyDevice": 20012,
"vkEnumerateInstanceExtensionProperties": 20013,
"vkEnumerateDeviceExtensionProperties": 20014,
"vkEnumerateInstanceLayerProperties": 20015,
"vkEnumerateDeviceLayerProperties": 20016,
"vkGetDeviceQueue": 20017,
"vkQueueSubmit": 20018,
"vkQueueWaitIdle": 20019,
"vkDeviceWaitIdle": 20020,
"vkAllocateMemory": 20021,
"vkFreeMemory": 20022,
"vkMapMemory": 20023,
"vkUnmapMemory": 20024,
"vkFlushMappedMemoryRanges": 20025,
"vkInvalidateMappedMemoryRanges": 20026,
"vkGetDeviceMemoryCommitment": 20027,
"vkBindBufferMemory": 20028,
"vkBindImageMemory": 20029,
"vkGetBufferMemoryRequirements": 20030,
"vkGetImageMemoryRequirements": 20031,
"vkGetImageSparseMemoryRequirements": 20032,
"vkGetPhysicalDeviceSparseImageFormatProperties": 20033,
"vkQueueBindSparse": 20034,
"vkCreateFence": 20035,
"vkDestroyFence": 20036,
"vkResetFences": 20037,
"vkGetFenceStatus": 20038,
"vkWaitForFences": 20039,
"vkCreateSemaphore": 20040,
"vkDestroySemaphore": 20041,
"vkCreateEvent": 20042,
"vkDestroyEvent": 20043,
"vkGetEventStatus": 20044,
"vkSetEvent": 20045,
"vkResetEvent": 20046,
"vkCreateQueryPool": 20047,
"vkDestroyQueryPool": 20048,
"vkGetQueryPoolResults": 20049,
"vkCreateBuffer": 20050,
"vkDestroyBuffer": 20051,
"vkCreateBufferView": 20052,
"vkDestroyBufferView": 20053,
"vkCreateImage": 20054,
"vkDestroyImage": 20055,
"vkGetImageSubresourceLayout": 20056,
"vkCreateImageView": 20057,
"vkDestroyImageView": 20058,
"vkCreateShaderModule": 20059,
"vkDestroyShaderModule": 20060,
"vkCreatePipelineCache": 20061,
"vkDestroyPipelineCache": 20062,
"vkGetPipelineCacheData": 20063,
"vkMergePipelineCaches": 20064,
"vkCreateGraphicsPipelines": 20065,
"vkCreateComputePipelines": 20066,
"vkDestroyPipeline": 20067,
"vkCreatePipelineLayout": 20068,
"vkDestroyPipelineLayout": 20069,
"vkCreateSampler": 20070,
"vkDestroySampler": 20071,
"vkCreateDescriptorSetLayout": 20072,
"vkDestroyDescriptorSetLayout": 20073,
"vkCreateDescriptorPool": 20074,
"vkDestroyDescriptorPool": 20075,
"vkResetDescriptorPool": 20076,
"vkAllocateDescriptorSets": 20077,
"vkFreeDescriptorSets": 20078,
"vkUpdateDescriptorSets": 20079,
"vkCreateFramebuffer": 20080,
"vkDestroyFramebuffer": 20081,
"vkCreateRenderPass": 20082,
"vkDestroyRenderPass": 20083,
"vkGetRenderAreaGranularity": 20084,
"vkCreateCommandPool": 20085,
"vkDestroyCommandPool": 20086,
"vkResetCommandPool": 20087,
"vkAllocateCommandBuffers": 20088,
"vkFreeCommandBuffers": 20089,
"vkBeginCommandBuffer": 20090,
"vkEndCommandBuffer": 20091,
"vkResetCommandBuffer": 20092,
"vkCmdBindPipeline": 20093,
"vkCmdSetViewport": 20094,
"vkCmdSetScissor": 20095,
"vkCmdSetLineWidth": 20096,
"vkCmdSetDepthBias": 20097,
"vkCmdSetBlendConstants": 20098,
"vkCmdSetDepthBounds": 20099,
"vkCmdSetStencilCompareMask": 20100,
"vkCmdSetStencilWriteMask": 20101,
"vkCmdSetStencilReference": 20102,
"vkCmdBindDescriptorSets": 20103,
"vkCmdBindIndexBuffer": 20104,
"vkCmdBindVertexBuffers": 20105,
"vkCmdDraw": 20106,
"vkCmdDrawIndexed": 20107,
"vkCmdDrawIndirect": 20108,
"vkCmdDrawIndexedIndirect": 20109,
"vkCmdDispatch": 20110,
"vkCmdDispatchIndirect": 20111,
"vkCmdCopyBuffer": 20112,
"vkCmdCopyImage": 20113,
"vkCmdBlitImage": 20114,
"vkCmdCopyBufferToImage": 20115,
"vkCmdCopyImageToBuffer": 20116,
"vkCmdUpdateBuffer": 20117,
"vkCmdFillBuffer": 20118,
"vkCmdClearColorImage": 20119,
"vkCmdClearDepthStencilImage": 20120,
"vkCmdClearAttachments": 20121,
"vkCmdResolveImage": 20122,
"vkCmdSetEvent": 20123,
"vkCmdResetEvent": 20124,
"vkCmdWaitEvents": 20125,
"vkCmdPipelineBarrier": 20126,
"vkCmdBeginQuery": 20127,
"vkCmdEndQuery": 20128,
"vkCmdResetQueryPool": 20129,
"vkCmdWriteTimestamp": 20130,
"vkCmdCopyQueryPoolResults": 20131,
"vkCmdPushConstants": 20132,
"vkCmdBeginRenderPass": 20133,
"vkCmdNextSubpass": 20134,
"vkCmdEndRenderPass": 20135,
"vkCmdExecuteCommands": 20136,
"vkEnumerateInstanceVersion": 20137,
"vkBindBufferMemory2": 20138,
"vkBindImageMemory2": 20139,
"vkGetDeviceGroupPeerMemoryFeatures": 20140,
"vkCmdSetDeviceMask": 20141,
"vkCmdDispatchBase": 20142,
"vkEnumeratePhysicalDeviceGroups": 20143,
"vkGetImageMemoryRequirements2": 20144,
"vkGetBufferMemoryRequirements2": 20145,
"vkGetImageSparseMemoryRequirements2": 20146,
"vkGetPhysicalDeviceFeatures2": 20147,
"vkGetPhysicalDeviceProperties2": 20148,
"vkGetPhysicalDeviceFormatProperties2": 20149,
"vkGetPhysicalDeviceImageFormatProperties2": 20150,
"vkGetPhysicalDeviceQueueFamilyProperties2": 20151,
"vkGetPhysicalDeviceMemoryProperties2": 20152,
"vkGetPhysicalDeviceSparseImageFormatProperties2": 20153,
"vkTrimCommandPool": 20154,
"vkGetDeviceQueue2": 20155,
"vkCreateSamplerYcbcrConversion": 20156,
"vkDestroySamplerYcbcrConversion": 20157,
"vkCreateDescriptorUpdateTemplate": 20158,
"vkDestroyDescriptorUpdateTemplate": 20159,
"vkUpdateDescriptorSetWithTemplate": 20160,
"vkGetPhysicalDeviceExternalBufferProperties": 20161,
"vkGetPhysicalDeviceExternalFenceProperties": 20162,
"vkGetPhysicalDeviceExternalSemaphoreProperties": 20163,
"vkGetDescriptorSetLayoutSupport": 20164,
"vkDestroySurfaceKHR": 20165,
"vkGetPhysicalDeviceSurfaceSupportKHR": 20166,
"vkGetPhysicalDeviceSurfaceCapabilitiesKHR": 20167,
"vkGetPhysicalDeviceSurfaceFormatsKHR": 20168,
"vkGetPhysicalDeviceSurfacePresentModesKHR": 20169,
"vkCreateSwapchainKHR": 20170,
"vkDestroySwapchainKHR": 20171,
"vkGetSwapchainImagesKHR": 20172,
"vkAcquireNextImageKHR": 20173,
"vkQueuePresentKHR": 20174,
"vkGetDeviceGroupPresentCapabilitiesKHR": 20175,
"vkGetDeviceGroupSurfacePresentModesKHR": 20176,
"vkGetPhysicalDevicePresentRectanglesKHR": 20177,
"vkAcquireNextImage2KHR": 20178,
"vkGetPhysicalDeviceDisplayPropertiesKHR": 20179,
"vkGetPhysicalDeviceDisplayPlanePropertiesKHR": 20180,
"vkGetDisplayPlaneSupportedDisplaysKHR": 20181,
"vkGetDisplayModePropertiesKHR": 20182,
"vkCreateDisplayModeKHR": 20183,
"vkGetDisplayPlaneCapabilitiesKHR": 20184,
"vkCreateDisplayPlaneSurfaceKHR": 20185,
"vkCreateSharedSwapchainsKHR": 20186,
"vkCreateXlibSurfaceKHR": 20187,
"vkGetPhysicalDeviceXlibPresentationSupportKHR": 20188,
"vkCreateXcbSurfaceKHR": 20189,
"vkGetPhysicalDeviceXcbPresentationSupportKHR": 20190,
"vkCreateWaylandSurfaceKHR": 20191,
"vkGetPhysicalDeviceWaylandPresentationSupportKHR": 20192,
"vkCreateMirSurfaceKHR": 20193,
"vkGetPhysicalDeviceMirPresentationSupportKHR": 20194,
"vkCreateAndroidSurfaceKHR": 20195,
"vkCreateWin32SurfaceKHR": 20196,
"vkGetPhysicalDeviceWin32PresentationSupportKHR": 20197,
"vkGetPhysicalDeviceFeatures2KHR": 20198,
"vkGetPhysicalDeviceProperties2KHR": 20199,
"vkGetPhysicalDeviceFormatProperties2KHR": 20200,
"vkGetPhysicalDeviceImageFormatProperties2KHR": 20201,
"vkGetPhysicalDeviceQueueFamilyProperties2KHR": 20202,
"vkGetPhysicalDeviceMemoryProperties2KHR": 20203,
"vkGetPhysicalDeviceSparseImageFormatProperties2KHR": 20204,
"vkGetDeviceGroupPeerMemoryFeaturesKHR": 20205,
"vkCmdSetDeviceMaskKHR": 20206,
"vkCmdDispatchBaseKHR": 20207,
"vkTrimCommandPoolKHR": 20208,
"vkEnumeratePhysicalDeviceGroupsKHR": 20209,
"vkGetPhysicalDeviceExternalBufferPropertiesKHR": 20210,
"vkGetMemoryWin32HandleKHR": 20211,
"vkGetMemoryWin32HandlePropertiesKHR": 20212,
"vkGetMemoryFdKHR": 20213,
"vkGetMemoryFdPropertiesKHR": 20214,
"vkGetPhysicalDeviceExternalSemaphorePropertiesKHR": 20215,
"vkImportSemaphoreWin32HandleKHR": 20216,
"vkGetSemaphoreWin32HandleKHR": 20217,
"vkImportSemaphoreFdKHR": 20218,
"vkGetSemaphoreFdKHR": 20219,
"vkCmdPushDescriptorSetKHR": 20220,
"vkCmdPushDescriptorSetWithTemplateKHR": 20221,
"vkCreateDescriptorUpdateTemplateKHR": 20222,
"vkDestroyDescriptorUpdateTemplateKHR": 20223,
"vkUpdateDescriptorSetWithTemplateKHR": 20224,
"vkCreateRenderPass2KHR": 20225,
"vkCmdBeginRenderPass2KHR": 20226,
"vkCmdNextSubpass2KHR": 20227,
"vkCmdEndRenderPass2KHR": 20228,
"vkGetSwapchainStatusKHR": 20229,
"vkGetPhysicalDeviceExternalFencePropertiesKHR": 20230,
"vkImportFenceWin32HandleKHR": 20231,
"vkGetFenceWin32HandleKHR": 20232,
"vkImportFenceFdKHR": 20233,
"vkGetFenceFdKHR": 20234,
"vkGetPhysicalDeviceSurfaceCapabilities2KHR": 20235,
"vkGetPhysicalDeviceSurfaceFormats2KHR": 20236,
"vkGetPhysicalDeviceDisplayProperties2KHR": 20237,
"vkGetPhysicalDeviceDisplayPlaneProperties2KHR": 20238,
"vkGetDisplayModeProperties2KHR": 20239,
"vkGetDisplayPlaneCapabilities2KHR": 20240,
"vkGetImageMemoryRequirements2KHR": 20241,
"vkGetBufferMemoryRequirements2KHR": 20242,
"vkGetImageSparseMemoryRequirements2KHR": 20243,
"vkCreateSamplerYcbcrConversionKHR": 20244,
"vkDestroySamplerYcbcrConversionKHR": 20245,
"vkBindBufferMemory2KHR": 20246,
"vkBindImageMemory2KHR": 20247,
"vkGetDescriptorSetLayoutSupportKHR": 20248,
"vkCmdDrawIndirectCountKHR": 20249,
"vkCmdDrawIndexedIndirectCountKHR": 20250,
"vkGetSwapchainGrallocUsageANDROID": 20251,
"vkAcquireImageANDROID": 20252,
"vkQueueSignalReleaseImageANDROID": 20253,
"vkCreateDebugReportCallbackEXT": 20254,
"vkDestroyDebugReportCallbackEXT": 20255,
"vkDebugReportMessageEXT": 20256,
"vkDebugMarkerSetObjectTagEXT": 20257,
"vkDebugMarkerSetObjectNameEXT": 20258,
"vkCmdDebugMarkerBeginEXT": 20259,
"vkCmdDebugMarkerEndEXT": 20260,
"vkCmdDebugMarkerInsertEXT": 20261,
"vkCmdDrawIndirectCountAMD": 20262,
"vkCmdDrawIndexedIndirectCountAMD": 20263,
"vkGetShaderInfoAMD": 20264,
"vkGetPhysicalDeviceExternalImageFormatPropertiesNV": 20265,
"vkGetMemoryWin32HandleNV": 20266,
"vkCreateViSurfaceNN": 20267,
"vkCmdBeginConditionalRenderingEXT": 20268,
"vkCmdEndConditionalRenderingEXT": 20269,
"vkCmdProcessCommandsNVX": 20270,
"vkCmdReserveSpaceForCommandsNVX": 20271,
"vkCreateIndirectCommandsLayoutNVX": 20272,
"vkDestroyIndirectCommandsLayoutNVX": 20273,
"vkCreateObjectTableNVX": 20274,
"vkDestroyObjectTableNVX": 20275,
"vkRegisterObjectsNVX": 20276,
"vkUnregisterObjectsNVX": 20277,
"vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX": 20278,
"vkCmdSetViewportWScalingNV": 20279,
"vkReleaseDisplayEXT": 20280,
"vkAcquireXlibDisplayEXT": 20281,
"vkGetRandROutputDisplayEXT": 20282,
"vkGetPhysicalDeviceSurfaceCapabilities2EXT": 20283,
"vkDisplayPowerControlEXT": 20284,
"vkRegisterDeviceEventEXT": 20285,
"vkRegisterDisplayEventEXT": 20286,
"vkGetSwapchainCounterEXT": 20287,
"vkGetRefreshCycleDurationGOOGLE": 20288,
"vkGetPastPresentationTimingGOOGLE": 20289,
"vkCmdSetDiscardRectangleEXT": 20290,
"vkSetHdrMetadataEXT": 20291,
"vkCreateIOSSurfaceMVK": 20292,
"vkCreateMacOSSurfaceMVK": 20293,
"vkSetDebugUtilsObjectNameEXT": 20294,
"vkSetDebugUtilsObjectTagEXT": 20295,
"vkQueueBeginDebugUtilsLabelEXT": 20296,
"vkQueueEndDebugUtilsLabelEXT": 20297,
"vkQueueInsertDebugUtilsLabelEXT": 20298,
"vkCmdBeginDebugUtilsLabelEXT": 20299,
"vkCmdEndDebugUtilsLabelEXT": 20300,
"vkCmdInsertDebugUtilsLabelEXT": 20301,
"vkCreateDebugUtilsMessengerEXT": 20302,
"vkDestroyDebugUtilsMessengerEXT": 20303,
"vkSubmitDebugUtilsMessageEXT": 20304,
"vkGetAndroidHardwareBufferPropertiesANDROID": 20305,
"vkGetMemoryAndroidHardwareBufferANDROID": 20306,
"vkCmdSetSampleLocationsEXT": 20307,
"vkGetPhysicalDeviceMultisamplePropertiesEXT": 20308,
"vkCreateValidationCacheEXT": 20309,
"vkDestroyValidationCacheEXT": 20310,
"vkMergeValidationCachesEXT": 20311,
"vkGetValidationCacheDataEXT": 20312,
"vkGetMemoryHostPointerPropertiesEXT": 20313,
"vkCmdWriteBufferMarkerAMD": 20314,
"vkCmdSetCheckpointNV": 20315,
"vkGetQueueCheckpointDataNV": 20316,
"vkMapMemoryIntoAddressSpaceGOOGLE": 20317,
"vkUpdateDescriptorSetWithTemplateSizedGOOGLE": 20320,
"vkBeginCommandBufferAsyncGOOGLE": 20321,
"vkEndCommandBufferAsyncGOOGLE": 20322,
"vkResetCommandBufferAsyncGOOGLE": 20323,
"vkCommandBufferHostSyncGOOGLE": 20324,
"vkCreateImageWithRequirementsGOOGLE": 20325,
"vkCreateBufferWithRequirementsGOOGLE": 20326,
"vkGetMemoryHostAddressInfoGOOGLE": 20327,
"vkFreeMemorySyncGOOGLE": 20328,
"vkQueueHostSyncGOOGLE": 20329,
"vkQueueSubmitAsyncGOOGLE": 20330,
"vkQueueWaitIdleAsyncGOOGLE": 20331,
"vkQueueBindSparseAsyncGOOGLE": 20332,
"vkGetLinearImageLayoutGOOGLE": 20333,
"vkGetMTLDeviceMVK": 20334,
"vkSetMTLTextureMVK": 20335,
"vkGetMTLTextureMVK": 20336,
"vkGetMTLBufferMVK": 20337,
"vkUseIOSurfaceMVK": 20338,
"vkGetIOSurfaceMVK": 20339,
"vkQueueFlushCommandsGOOGLE": 20340,
}
CUSTOM_MARSHAL_TYPES = {
"VkAccelerationStructureInstanceKHR": {
"common": """
typedef struct VkAccelerationStructureInstanceKHRWithoutBitFields {
VkTransformMatrixKHR transform;
uint32_t dwords[2];
uint64_t accelerationStructureReference;
} VkAccelerationStructureInstanceKHRWithoutBitFields;
""",
"marshaling": """
const VkAccelerationStructureInstanceKHRWithoutBitFields* {newInputVarName} = (const VkAccelerationStructureInstanceKHRWithoutBitFields*)({inputVarName});
marshal_VkTransformMatrixKHR({streamVarName}, {rootTypeVarName}, (VkTransformMatrixKHR*)(&{newInputVarName}->transform));
for (uint32_t i = 0; i < 2; i++) {{
{streamVarName}->write((uint32_t*)&({newInputVarName}->dwords[i]), sizeof(uint32_t));
}}
{streamVarName}->write((uint64_t*)&{newInputVarName}->accelerationStructureReference, sizeof(uint64_t));
""",
"unmarshaling": """
VkAccelerationStructureInstanceKHRWithoutBitFields* {newInputVarName} = (VkAccelerationStructureInstanceKHRWithoutBitFields*)({inputVarName});
unmarshal_VkTransformMatrixKHR({streamVarName}, {rootTypeVarName}, (VkTransformMatrixKHR*)(&{newInputVarName}->transform));
for (uint32_t i = 0; i < 2; i++) {{
{streamVarName}->read((uint32_t*)&({newInputVarName}->dwords[i]), sizeof(uint32_t));
}}
{streamVarName}->read((uint64_t*)&{newInputVarName}->accelerationStructureReference, sizeof(uint64_t));
""",
"reservedmarshaling": """
(void)vkStream;
const VkAccelerationStructureInstanceKHRWithoutBitFields* {newInputVarName} = (const VkAccelerationStructureInstanceKHRWithoutBitFields*)({inputVarName});
reservedmarshal_VkTransformMatrixKHR({streamVarName}, {rootTypeVarName}, (VkTransformMatrixKHR*)(&{newInputVarName}->transform), ptr);
for (uint32_t i = 0; i < 2; i++) {{
memcpy(*ptr, (uint32_t*)&({newInputVarName}->dwords[i]), sizeof(uint32_t));
*ptr += sizeof(uint32_t);
}}
memcpy(*ptr, (uint64_t*)&{newInputVarName}->accelerationStructureReference, sizeof(uint64_t));
*ptr += sizeof(uint64_t);
""",
"reservedunmarshaling": """
VkAccelerationStructureInstanceKHRWithoutBitFields* {newInputVarName} = (VkAccelerationStructureInstanceKHRWithoutBitFields*)({inputVarName});
reservedunmarshal_VkTransformMatrixKHR({streamVarName}, {rootTypeVarName}, (VkTransformMatrixKHR*)(&{newInputVarName}->transform), ptr);
for (uint32_t i = 0; i < 2; i++) {{
memcpy((uint32_t*)&({newInputVarName}->dwords[i]), *ptr, sizeof(uint32_t));
*ptr += sizeof(uint32_t);
}}
memcpy((uint64_t*)&{newInputVarName}->accelerationStructureReference, *ptr, sizeof(uint64_t));
*ptr += sizeof(uint64_t);
""",
},
"VkAccelerationStructureMatrixMotionInstanceNV": {
"common": """
typedef struct VkAccelerationStructureMatrixMotionInstanceNVWithoutBitFields {
VkTransformMatrixKHR transformT0;
VkTransformMatrixKHR transformT1;
uint32_t dwords[2];
uint64_t accelerationStructureReference;
} VkAccelerationStructureMatrixMotionInstanceNVWithoutBitFields;
""",
"marshaling": """
const VkAccelerationStructureMatrixMotionInstanceNVWithoutBitFields* {newInputVarName} = (const VkAccelerationStructureMatrixMotionInstanceNVWithoutBitFields*)({inputVarName});
marshal_VkTransformMatrixKHR({streamVarName}, {rootTypeVarName}, (VkTransformMatrixKHR*)(&{newInputVarName}->transformT0));
marshal_VkTransformMatrixKHR({streamVarName}, {rootTypeVarName}, (VkTransformMatrixKHR*)(&{newInputVarName}->transformT1));
for (uint32_t i = 0; i < 2; i++) {{
{streamVarName}->write((uint32_t*)&({newInputVarName}->dwords[i]), sizeof(uint32_t));
}}
{streamVarName}->write((uint64_t*)&{newInputVarName}->accelerationStructureReference, sizeof(uint64_t));
""",
"unmarshaling": """
VkAccelerationStructureMatrixMotionInstanceNVWithoutBitFields* {newInputVarName} = (VkAccelerationStructureMatrixMotionInstanceNVWithoutBitFields*)({inputVarName});
unmarshal_VkTransformMatrixKHR({streamVarName}, {rootTypeVarName}, (VkTransformMatrixKHR*)(&{newInputVarName}->transformT0));
unmarshal_VkTransformMatrixKHR({streamVarName}, {rootTypeVarName}, (VkTransformMatrixKHR*)(&{newInputVarName}->transformT1));
for (uint32_t i = 0; i < 2; i++) {{
{streamVarName}->read((uint32_t*)&({newInputVarName}->dwords[i]), sizeof(uint32_t));
}}
{streamVarName}->read((uint64_t*)&{newInputVarName}->accelerationStructureReference, sizeof(uint64_t));
""",
"reservedmarshaling": """
(void)vkStream;
const VkAccelerationStructureMatrixMotionInstanceNVWithoutBitFields* {newInputVarName} = (const VkAccelerationStructureMatrixMotionInstanceNVWithoutBitFields*)({inputVarName});
reservedmarshal_VkTransformMatrixKHR({streamVarName}, {rootTypeVarName}, (VkTransformMatrixKHR*)(&{newInputVarName}->transformT0), ptr);
reservedmarshal_VkTransformMatrixKHR({streamVarName}, {rootTypeVarName}, (VkTransformMatrixKHR*)(&{newInputVarName}->transformT1), ptr);
for (uint32_t i = 0; i < 2; i++) {{
memcpy(*ptr, (uint32_t*)&({newInputVarName}->dwords[i]), sizeof(uint32_t));
*ptr += sizeof(uint32_t);
}}
memcpy(*ptr, (uint64_t*)&{newInputVarName}->accelerationStructureReference, sizeof(uint64_t));
*ptr += sizeof(uint64_t);
""",
"reservedunmarshaling": """
VkAccelerationStructureMatrixMotionInstanceNVWithoutBitFields* {newInputVarName} = (VkAccelerationStructureMatrixMotionInstanceNVWithoutBitFields*)({inputVarName});
reservedunmarshal_VkTransformMatrixKHR({streamVarName}, {rootTypeVarName}, (VkTransformMatrixKHR*)(&{newInputVarName}->transformT0), ptr);
reservedunmarshal_VkTransformMatrixKHR({streamVarName}, {rootTypeVarName}, (VkTransformMatrixKHR*)(&{newInputVarName}->transformT1), ptr);
for (uint32_t i = 0; i < 2; i++) {{
memcpy((uint32_t*)&({newInputVarName}->dwords[i]), *ptr, sizeof(uint32_t));
*ptr += sizeof(uint32_t);
}}
memcpy((uint64_t*)&{newInputVarName}->accelerationStructureReference, *ptr, sizeof(uint64_t));
*ptr += sizeof(uint64_t);
""",
},
"VkAccelerationStructureSRTMotionInstanceNV": {
"common": """
typedef struct VkAccelerationStructureSRTMotionInstanceNVWithoutBitFields {
VkSRTDataNV transformT0;
VkSRTDataNV transformT1;
uint32_t dwords[2];
uint64_t accelerationStructureReference;
} VkAccelerationStructureSRTMotionInstanceNVWithoutBitFields;
""",
"marshaling": """
const VkAccelerationStructureSRTMotionInstanceNVWithoutBitFields* {newInputVarName} = (const VkAccelerationStructureSRTMotionInstanceNVWithoutBitFields*)({inputVarName});
marshal_VkSRTDataNV({streamVarName}, {rootTypeVarName}, (VkSRTDataNV*)(&{newInputVarName}->transformT0));
marshal_VkSRTDataNV({streamVarName}, {rootTypeVarName}, (VkSRTDataNV*)(&{newInputVarName}->transformT1));
for (uint32_t i = 0; i < 2; i++) {{
{streamVarName}->write((uint32_t*)&({newInputVarName}->dwords[i]), sizeof(uint32_t));
}}
{streamVarName}->write((uint64_t*)&{newInputVarName}->accelerationStructureReference, sizeof(uint64_t));
""",
"unmarshaling": """
VkAccelerationStructureSRTMotionInstanceNVWithoutBitFields* {newInputVarName} = (VkAccelerationStructureSRTMotionInstanceNVWithoutBitFields*)({inputVarName});
unmarshal_VkSRTDataNV({streamVarName}, {rootTypeVarName}, (VkSRTDataNV*)(&{newInputVarName}->transformT0));
unmarshal_VkSRTDataNV({streamVarName}, {rootTypeVarName}, (VkSRTDataNV*)(&{newInputVarName}->transformT1));
for (uint32_t i = 0; i < 2; i++) {{
{streamVarName}->read((uint32_t*)&({newInputVarName}->dwords[i]), sizeof(uint32_t));
}}
{streamVarName}->read((uint64_t*)&{newInputVarName}->accelerationStructureReference, sizeof(uint64_t));
""",
"reservedmarshaling": """
(void)vkStream;
const VkAccelerationStructureSRTMotionInstanceNVWithoutBitFields* {newInputVarName} = (const VkAccelerationStructureSRTMotionInstanceNVWithoutBitFields*)({inputVarName});
reservedmarshal_VkSRTDataNV({streamVarName}, {rootTypeVarName}, (VkSRTDataNV*)(&{newInputVarName}->transformT0), ptr);
reservedmarshal_VkSRTDataNV({streamVarName}, {rootTypeVarName}, (VkSRTDataNV*)(&{newInputVarName}->transformT1), ptr);
for (uint32_t i = 0; i < 2; i++) {{
memcpy(*ptr, (uint32_t*)&({newInputVarName}->dwords[i]), sizeof(uint32_t));
*ptr += sizeof(uint32_t);
}}
memcpy(*ptr, (uint64_t*)&{newInputVarName}->accelerationStructureReference, sizeof(uint64_t));
*ptr += sizeof(uint64_t);
""",
"reservedunmarshaling": """
VkAccelerationStructureSRTMotionInstanceNVWithoutBitFields* {newInputVarName} = (VkAccelerationStructureSRTMotionInstanceNVWithoutBitFields*)({inputVarName});
reservedunmarshal_VkSRTDataNV({streamVarName}, {rootTypeVarName}, (VkSRTDataNV*)(&{newInputVarName}->transformT0), ptr);
reservedunmarshal_VkSRTDataNV({streamVarName}, {rootTypeVarName}, (VkSRTDataNV*)(&{newInputVarName}->transformT1), ptr);
for (uint32_t i = 0; i < 2; i++) {{
memcpy((uint32_t*)&({newInputVarName}->dwords[i]), *ptr, sizeof(uint32_t));
*ptr += sizeof(uint32_t);
}}
memcpy((uint64_t*)&{newInputVarName}->accelerationStructureReference, *ptr, sizeof(uint64_t));
*ptr += sizeof(uint64_t);
""",
},
"VkXcbSurfaceCreateInfoKHR": {
"common": """
// This struct should never be marshaled / unmarshaled.
__builtin_trap();
""",
"marshaling": "",
"unmarshaling": "",
"reservedmarshaling": "",
"reservedunmarshaling": "",
},
"VkMetalSurfaceCreateInfoEXT": {
"common": """
// This struct should never be marshaled / unmarshaled.
__builtin_trap();
""",
"marshaling": "",
"unmarshaling": "",
"reservedmarshaling": "",
"reservedunmarshaling": "",
},
}