1 // Copyright (C) 2018 The Android Open Source Project
2 // Copyright (C) 2018 Google Inc.
3 //
4 // Licensed under the Apache License, Version 2.0 (the "License");
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
7 //
8 // http://www.apache.org/licenses/LICENSE-2.0
9 //
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an "AS IS" BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
15 
16 // Autogenerated module goldfish_vk_extension_structs
17 //
18 // (impl) generated by scripts/genvk.py -registry
19 // ../../../../../hardware/google/gfxstream/codegen/vulkan/vulkan-docs-next/xml/vk.xml
20 // -registryGfxstream xml/vk_gfxstream.xml cereal -o
21 // ../../../../../hardware/google/gfxstream/host/vulkan/cereal
22 //
23 // Please do not modify directly;
24 // re-run mesa3d/src/gfxstream/codegen/generate-gfxstream-vulkan.sh,
25 // or directly from Python by defining:
26 // VULKAN_REGISTRY_XML_DIR : Directory containing vk.xml
27 // VULKAN_REGISTRY_SCRIPTS_DIR : Directory containing genvk.py
28 // CEREAL_OUTPUT_DIR: Where to put the generated sources.
29 //
30 // python3 $VULKAN_REGISTRY_SCRIPTS_DIR/genvk.py -registry $VULKAN_REGISTRY_XML_DIR/vk.xml cereal -o
31 // $CEREAL_OUTPUT_DIR
32 //
33 
34 #include "goldfish_vk_extension_structs.h"
35 namespace gfxstream {
36 namespace vk {
37 
goldfish_vk_struct_type(const void * structExtension)38 uint32_t goldfish_vk_struct_type(const void* structExtension) {
39     const uint32_t asStructType = *(reinterpret_cast<const uint32_t*>(structExtension));
40     return asStructType;
41 }
42 
goldfish_vk_extension_struct_size(VkStructureType rootType,const void * structExtension)43 size_t goldfish_vk_extension_struct_size(VkStructureType rootType, const void* structExtension) {
44     if (!structExtension) {
45         return (size_t)0;
46     }
47     uint32_t structType = (uint32_t)goldfish_vk_struct_type(structExtension);
48     switch (structType) {
49 #ifdef VK_VERSION_1_0
50         case VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO: {
51             return sizeof(VkShaderModuleCreateInfo);
52         }
53 #endif
54 #ifdef VK_VERSION_1_1
55         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES: {
56             return sizeof(VkPhysicalDeviceSubgroupProperties);
57         }
58         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES: {
59             return sizeof(VkPhysicalDevice16BitStorageFeatures);
60         }
61         case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS: {
62             return sizeof(VkMemoryDedicatedRequirements);
63         }
64         case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO: {
65             return sizeof(VkMemoryDedicatedAllocateInfo);
66         }
67         case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO: {
68             return sizeof(VkMemoryAllocateFlagsInfo);
69         }
70         case VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO: {
71             return sizeof(VkDeviceGroupRenderPassBeginInfo);
72         }
73         case VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO: {
74             return sizeof(VkDeviceGroupCommandBufferBeginInfo);
75         }
76         case VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO: {
77             return sizeof(VkDeviceGroupSubmitInfo);
78         }
79         case VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO: {
80             return sizeof(VkDeviceGroupBindSparseInfo);
81         }
82         case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO: {
83             return sizeof(VkBindBufferMemoryDeviceGroupInfo);
84         }
85         case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO: {
86             return sizeof(VkBindImageMemoryDeviceGroupInfo);
87         }
88         case VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO: {
89             return sizeof(VkDeviceGroupDeviceCreateInfo);
90         }
91         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2: {
92             return sizeof(VkPhysicalDeviceFeatures2);
93         }
94         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES: {
95             return sizeof(VkPhysicalDevicePointClippingProperties);
96         }
97         case VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO: {
98             return sizeof(VkRenderPassInputAttachmentAspectCreateInfo);
99         }
100         case VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO: {
101             return sizeof(VkImageViewUsageCreateInfo);
102         }
103         case VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO: {
104             return sizeof(VkPipelineTessellationDomainOriginStateCreateInfo);
105         }
106         case VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO: {
107             return sizeof(VkRenderPassMultiviewCreateInfo);
108         }
109         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES: {
110             return sizeof(VkPhysicalDeviceMultiviewFeatures);
111         }
112         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES: {
113             return sizeof(VkPhysicalDeviceMultiviewProperties);
114         }
115         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES: {
116             return sizeof(VkPhysicalDeviceVariablePointersFeatures);
117         }
118         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES: {
119             return sizeof(VkPhysicalDeviceProtectedMemoryFeatures);
120         }
121         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES: {
122             return sizeof(VkPhysicalDeviceProtectedMemoryProperties);
123         }
124         case VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO: {
125             return sizeof(VkProtectedSubmitInfo);
126         }
127         case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO: {
128             return sizeof(VkSamplerYcbcrConversionInfo);
129         }
130         case VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO: {
131             return sizeof(VkBindImagePlaneMemoryInfo);
132         }
133         case VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO: {
134             return sizeof(VkImagePlaneMemoryRequirementsInfo);
135         }
136         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES: {
137             return sizeof(VkPhysicalDeviceSamplerYcbcrConversionFeatures);
138         }
139         case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES: {
140             return sizeof(VkSamplerYcbcrConversionImageFormatProperties);
141         }
142         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO: {
143             return sizeof(VkPhysicalDeviceExternalImageFormatInfo);
144         }
145         case VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES: {
146             return sizeof(VkExternalImageFormatProperties);
147         }
148         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES: {
149             return sizeof(VkPhysicalDeviceIDProperties);
150         }
151         case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO: {
152             return sizeof(VkExternalMemoryImageCreateInfo);
153         }
154         case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO: {
155             return sizeof(VkExternalMemoryBufferCreateInfo);
156         }
157         case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO: {
158             return sizeof(VkExportMemoryAllocateInfo);
159         }
160         case VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO: {
161             return sizeof(VkExportFenceCreateInfo);
162         }
163         case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO: {
164             return sizeof(VkExportSemaphoreCreateInfo);
165         }
166         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES: {
167             return sizeof(VkPhysicalDeviceMaintenance3Properties);
168         }
169         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES: {
170             return sizeof(VkPhysicalDeviceShaderDrawParametersFeatures);
171         }
172 #endif
173 #ifdef VK_VERSION_1_2
174         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES: {
175             return sizeof(VkPhysicalDeviceVulkan11Features);
176         }
177         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES: {
178             return sizeof(VkPhysicalDeviceVulkan11Properties);
179         }
180         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES: {
181             return sizeof(VkPhysicalDeviceVulkan12Features);
182         }
183         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES: {
184             return sizeof(VkPhysicalDeviceVulkan12Properties);
185         }
186         case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO: {
187             return sizeof(VkImageFormatListCreateInfo);
188         }
189         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES: {
190             return sizeof(VkPhysicalDevice8BitStorageFeatures);
191         }
192         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES: {
193             return sizeof(VkPhysicalDeviceDriverProperties);
194         }
195         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES: {
196             return sizeof(VkPhysicalDeviceShaderAtomicInt64Features);
197         }
198         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES: {
199             return sizeof(VkPhysicalDeviceShaderFloat16Int8Features);
200         }
201         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES: {
202             return sizeof(VkPhysicalDeviceFloatControlsProperties);
203         }
204         case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO: {
205             return sizeof(VkDescriptorSetLayoutBindingFlagsCreateInfo);
206         }
207         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES: {
208             return sizeof(VkPhysicalDeviceDescriptorIndexingFeatures);
209         }
210         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES: {
211             return sizeof(VkPhysicalDeviceDescriptorIndexingProperties);
212         }
213         case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO: {
214             return sizeof(VkDescriptorSetVariableDescriptorCountAllocateInfo);
215         }
216         case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT: {
217             return sizeof(VkDescriptorSetVariableDescriptorCountLayoutSupport);
218         }
219         case VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE: {
220             return sizeof(VkSubpassDescriptionDepthStencilResolve);
221         }
222         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES: {
223             return sizeof(VkPhysicalDeviceDepthStencilResolveProperties);
224         }
225         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES: {
226             return sizeof(VkPhysicalDeviceScalarBlockLayoutFeatures);
227         }
228         case VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO: {
229             return sizeof(VkImageStencilUsageCreateInfo);
230         }
231         case VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO: {
232             return sizeof(VkSamplerReductionModeCreateInfo);
233         }
234         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES: {
235             return sizeof(VkPhysicalDeviceSamplerFilterMinmaxProperties);
236         }
237         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES: {
238             return sizeof(VkPhysicalDeviceVulkanMemoryModelFeatures);
239         }
240         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES: {
241             return sizeof(VkPhysicalDeviceImagelessFramebufferFeatures);
242         }
243         case VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO: {
244             return sizeof(VkFramebufferAttachmentsCreateInfo);
245         }
246         case VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO: {
247             return sizeof(VkRenderPassAttachmentBeginInfo);
248         }
249         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES: {
250             return sizeof(VkPhysicalDeviceUniformBufferStandardLayoutFeatures);
251         }
252         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES: {
253             return sizeof(VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures);
254         }
255         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES: {
256             return sizeof(VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures);
257         }
258         case VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT: {
259             return sizeof(VkAttachmentReferenceStencilLayout);
260         }
261         case VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT: {
262             return sizeof(VkAttachmentDescriptionStencilLayout);
263         }
264         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES: {
265             return sizeof(VkPhysicalDeviceHostQueryResetFeatures);
266         }
267         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES: {
268             return sizeof(VkPhysicalDeviceTimelineSemaphoreFeatures);
269         }
270         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES: {
271             return sizeof(VkPhysicalDeviceTimelineSemaphoreProperties);
272         }
273         case VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO: {
274             return sizeof(VkSemaphoreTypeCreateInfo);
275         }
276         case VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO: {
277             return sizeof(VkTimelineSemaphoreSubmitInfo);
278         }
279         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES: {
280             return sizeof(VkPhysicalDeviceBufferDeviceAddressFeatures);
281         }
282         case VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO: {
283             return sizeof(VkBufferOpaqueCaptureAddressCreateInfo);
284         }
285         case VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO: {
286             return sizeof(VkMemoryOpaqueCaptureAddressAllocateInfo);
287         }
288 #endif
289 #ifdef VK_VERSION_1_3
290         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES: {
291             return sizeof(VkPhysicalDeviceVulkan13Features);
292         }
293         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES: {
294             return sizeof(VkPhysicalDeviceVulkan13Properties);
295         }
296         case VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO: {
297             return sizeof(VkPipelineCreationFeedbackCreateInfo);
298         }
299         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES: {
300             return sizeof(VkPhysicalDeviceShaderTerminateInvocationFeatures);
301         }
302         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES: {
303             return sizeof(VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures);
304         }
305         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES: {
306             return sizeof(VkPhysicalDevicePrivateDataFeatures);
307         }
308         case VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO: {
309             return sizeof(VkDevicePrivateDataCreateInfo);
310         }
311         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES: {
312             return sizeof(VkPhysicalDevicePipelineCreationCacheControlFeatures);
313         }
314         case VK_STRUCTURE_TYPE_MEMORY_BARRIER_2: {
315             return sizeof(VkMemoryBarrier2);
316         }
317         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES: {
318             return sizeof(VkPhysicalDeviceSynchronization2Features);
319         }
320         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES: {
321             return sizeof(VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures);
322         }
323         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES: {
324             return sizeof(VkPhysicalDeviceImageRobustnessFeatures);
325         }
326         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES: {
327             return sizeof(VkPhysicalDeviceSubgroupSizeControlFeatures);
328         }
329         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES: {
330             return sizeof(VkPhysicalDeviceSubgroupSizeControlProperties);
331         }
332         case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO: {
333             return sizeof(VkPipelineShaderStageRequiredSubgroupSizeCreateInfo);
334         }
335         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES: {
336             return sizeof(VkPhysicalDeviceInlineUniformBlockFeatures);
337         }
338         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES: {
339             return sizeof(VkPhysicalDeviceInlineUniformBlockProperties);
340         }
341         case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK: {
342             return sizeof(VkWriteDescriptorSetInlineUniformBlock);
343         }
344         case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO: {
345             return sizeof(VkDescriptorPoolInlineUniformBlockCreateInfo);
346         }
347         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES: {
348             return sizeof(VkPhysicalDeviceTextureCompressionASTCHDRFeatures);
349         }
350         case VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO: {
351             return sizeof(VkPipelineRenderingCreateInfo);
352         }
353         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES: {
354             return sizeof(VkPhysicalDeviceDynamicRenderingFeatures);
355         }
356         case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO: {
357             return sizeof(VkCommandBufferInheritanceRenderingInfo);
358         }
359         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES: {
360             return sizeof(VkPhysicalDeviceShaderIntegerDotProductFeatures);
361         }
362         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES: {
363             return sizeof(VkPhysicalDeviceShaderIntegerDotProductProperties);
364         }
365         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES: {
366             return sizeof(VkPhysicalDeviceTexelBufferAlignmentProperties);
367         }
368         case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3: {
369             return sizeof(VkFormatProperties3);
370         }
371         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES: {
372             return sizeof(VkPhysicalDeviceMaintenance4Features);
373         }
374         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES: {
375             return sizeof(VkPhysicalDeviceMaintenance4Properties);
376         }
377 #endif
378 #ifdef VK_KHR_swapchain
379         case VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR: {
380             return sizeof(VkImageSwapchainCreateInfoKHR);
381         }
382         case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR: {
383             return sizeof(VkBindImageMemorySwapchainInfoKHR);
384         }
385         case VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR: {
386             return sizeof(VkDeviceGroupPresentInfoKHR);
387         }
388         case VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR: {
389             return sizeof(VkDeviceGroupSwapchainCreateInfoKHR);
390         }
391 #endif
392 #ifdef VK_KHR_display_swapchain
393         case VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR: {
394             return sizeof(VkDisplayPresentInfoKHR);
395         }
396 #endif
397 #ifdef VK_KHR_video_queue
398         case VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR: {
399             return sizeof(VkQueueFamilyQueryResultStatusPropertiesKHR);
400         }
401         case VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR: {
402             return sizeof(VkQueueFamilyVideoPropertiesKHR);
403         }
404         case VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR: {
405             return sizeof(VkVideoProfileInfoKHR);
406         }
407         case VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR: {
408             return sizeof(VkVideoProfileListInfoKHR);
409         }
410 #endif
411 #ifdef VK_KHR_video_decode_queue
412         case VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR: {
413             return sizeof(VkVideoDecodeCapabilitiesKHR);
414         }
415         case VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR: {
416             return sizeof(VkVideoDecodeUsageInfoKHR);
417         }
418 #endif
419 #ifdef VK_KHR_video_decode_h264
420         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_KHR: {
421             return sizeof(VkVideoDecodeH264ProfileInfoKHR);
422         }
423         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_KHR: {
424             return sizeof(VkVideoDecodeH264CapabilitiesKHR);
425         }
426         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR: {
427             return sizeof(VkVideoDecodeH264SessionParametersAddInfoKHR);
428         }
429         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR: {
430             return sizeof(VkVideoDecodeH264SessionParametersCreateInfoKHR);
431         }
432         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_KHR: {
433             return sizeof(VkVideoDecodeH264PictureInfoKHR);
434         }
435         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR: {
436             return sizeof(VkVideoDecodeH264DpbSlotInfoKHR);
437         }
438 #endif
439 #ifdef VK_KHR_dynamic_rendering
440         case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR: {
441             return sizeof(VkRenderingFragmentShadingRateAttachmentInfoKHR);
442         }
443         case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT: {
444             return sizeof(VkRenderingFragmentDensityMapAttachmentInfoEXT);
445         }
446         case VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD: {
447             return sizeof(VkAttachmentSampleCountInfoAMD);
448         }
449         case VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX: {
450             return sizeof(VkMultiviewPerViewAttributesInfoNVX);
451         }
452 #endif
453 #ifdef VK_KHR_win32_keyed_mutex
454         case VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR: {
455             return sizeof(VkWin32KeyedMutexAcquireReleaseInfoKHR);
456         }
457 #endif
458 #ifdef VK_KHR_push_descriptor
459         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR: {
460             return sizeof(VkPhysicalDevicePushDescriptorPropertiesKHR);
461         }
462 #endif
463 #ifdef VK_KHR_incremental_present
464         case VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR: {
465             return sizeof(VkPresentRegionsKHR);
466         }
467 #endif
468 #ifdef VK_KHR_shared_presentable_image
469         case VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR: {
470             return sizeof(VkSharedPresentSurfaceCapabilitiesKHR);
471         }
472 #endif
473 #ifdef VK_KHR_external_fence_win32
474         case VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR: {
475             return sizeof(VkExportFenceWin32HandleInfoKHR);
476         }
477 #endif
478 #ifdef VK_KHR_performance_query
479         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR: {
480             return sizeof(VkPhysicalDevicePerformanceQueryFeaturesKHR);
481         }
482         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR: {
483             return sizeof(VkPhysicalDevicePerformanceQueryPropertiesKHR);
484         }
485         case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR: {
486             return sizeof(VkQueryPoolPerformanceCreateInfoKHR);
487         }
488         case VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR: {
489             return sizeof(VkPerformanceQuerySubmitInfoKHR);
490         }
491 #endif
492 #ifdef VK_KHR_portability_subset
493 #ifdef VK_ENABLE_BETA_EXTENSIONS
494         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR: {
495             return sizeof(VkPhysicalDevicePortabilitySubsetFeaturesKHR);
496         }
497 #endif  // VK_ENABLE_BETA_EXTENSIONS
498 #ifdef VK_ENABLE_BETA_EXTENSIONS
499         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR: {
500             return sizeof(VkPhysicalDevicePortabilitySubsetPropertiesKHR);
501         }
502 #endif  // VK_ENABLE_BETA_EXTENSIONS
503 #endif
504 #ifdef VK_KHR_shader_clock
505         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR: {
506             return sizeof(VkPhysicalDeviceShaderClockFeaturesKHR);
507         }
508 #endif
509 #ifdef VK_KHR_video_decode_h265
510         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_KHR: {
511             return sizeof(VkVideoDecodeH265ProfileInfoKHR);
512         }
513         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_KHR: {
514             return sizeof(VkVideoDecodeH265CapabilitiesKHR);
515         }
516         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR: {
517             return sizeof(VkVideoDecodeH265SessionParametersAddInfoKHR);
518         }
519         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR: {
520             return sizeof(VkVideoDecodeH265SessionParametersCreateInfoKHR);
521         }
522         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_KHR: {
523             return sizeof(VkVideoDecodeH265PictureInfoKHR);
524         }
525         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR: {
526             return sizeof(VkVideoDecodeH265DpbSlotInfoKHR);
527         }
528 #endif
529 #ifdef VK_KHR_global_priority
530         case VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR: {
531             return sizeof(VkDeviceQueueGlobalPriorityCreateInfoKHR);
532         }
533         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR: {
534             return sizeof(VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR);
535         }
536         case VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR: {
537             return sizeof(VkQueueFamilyGlobalPriorityPropertiesKHR);
538         }
539 #endif
540 #ifdef VK_KHR_fragment_shading_rate
541         case VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR: {
542             return sizeof(VkFragmentShadingRateAttachmentInfoKHR);
543         }
544         case VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR: {
545             return sizeof(VkPipelineFragmentShadingRateStateCreateInfoKHR);
546         }
547         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR: {
548             return sizeof(VkPhysicalDeviceFragmentShadingRateFeaturesKHR);
549         }
550         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR: {
551             return sizeof(VkPhysicalDeviceFragmentShadingRatePropertiesKHR);
552         }
553 #endif
554 #ifdef VK_KHR_surface_protected_capabilities
555         case VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR: {
556             return sizeof(VkSurfaceProtectedCapabilitiesKHR);
557         }
558 #endif
559 #ifdef VK_KHR_present_wait
560         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR: {
561             return sizeof(VkPhysicalDevicePresentWaitFeaturesKHR);
562         }
563 #endif
564 #ifdef VK_KHR_pipeline_executable_properties
565         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR: {
566             return sizeof(VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR);
567         }
568 #endif
569 #ifdef VK_KHR_pipeline_library
570         case VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR: {
571             return sizeof(VkPipelineLibraryCreateInfoKHR);
572         }
573 #endif
574 #ifdef VK_KHR_present_id
575         case VK_STRUCTURE_TYPE_PRESENT_ID_KHR: {
576             return sizeof(VkPresentIdKHR);
577         }
578         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR: {
579             return sizeof(VkPhysicalDevicePresentIdFeaturesKHR);
580         }
581 #endif
582 #ifdef VK_KHR_video_encode_queue
583 #ifdef VK_ENABLE_BETA_EXTENSIONS
584         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR: {
585             return sizeof(VkVideoEncodeCapabilitiesKHR);
586         }
587 #endif  // VK_ENABLE_BETA_EXTENSIONS
588 #ifdef VK_ENABLE_BETA_EXTENSIONS
589         case VK_STRUCTURE_TYPE_QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHR: {
590             return sizeof(VkQueryPoolVideoEncodeFeedbackCreateInfoKHR);
591         }
592 #endif  // VK_ENABLE_BETA_EXTENSIONS
593 #ifdef VK_ENABLE_BETA_EXTENSIONS
594         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHR: {
595             return sizeof(VkVideoEncodeUsageInfoKHR);
596         }
597 #endif  // VK_ENABLE_BETA_EXTENSIONS
598 #ifdef VK_ENABLE_BETA_EXTENSIONS
599         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR: {
600             return sizeof(VkVideoEncodeRateControlInfoKHR);
601         }
602 #endif  // VK_ENABLE_BETA_EXTENSIONS
603 #ifdef VK_ENABLE_BETA_EXTENSIONS
604         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR: {
605             return sizeof(VkVideoEncodeQualityLevelInfoKHR);
606         }
607 #endif  // VK_ENABLE_BETA_EXTENSIONS
608 #endif
609 #ifdef VK_KHR_synchronization2
610         case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV: {
611             return sizeof(VkQueueFamilyCheckpointProperties2NV);
612         }
613 #endif
614 #ifdef VK_KHR_fragment_shader_barycentric
615         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR: {
616             return sizeof(VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR);
617         }
618         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR: {
619             return sizeof(VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR);
620         }
621 #endif
622 #ifdef VK_KHR_shader_subgroup_uniform_control_flow
623         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR: {
624             return sizeof(VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR);
625         }
626 #endif
627 #ifdef VK_KHR_workgroup_memory_explicit_layout
628         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR: {
629             return sizeof(VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR);
630         }
631 #endif
632 #ifdef VK_KHR_ray_tracing_maintenance1
633         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR: {
634             return sizeof(VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR);
635         }
636 #endif
637 #ifdef VK_KHR_maintenance5
638         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR: {
639             return sizeof(VkPhysicalDeviceMaintenance5FeaturesKHR);
640         }
641         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR: {
642             return sizeof(VkPhysicalDeviceMaintenance5PropertiesKHR);
643         }
644         case VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR: {
645             return sizeof(VkPipelineCreateFlags2CreateInfoKHR);
646         }
647         case VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR: {
648             return sizeof(VkBufferUsageFlags2CreateInfoKHR);
649         }
650 #endif
651 #ifdef VK_KHR_ray_tracing_position_fetch
652         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR: {
653             return sizeof(VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR);
654         }
655 #endif
656 #ifdef VK_KHR_cooperative_matrix
657         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR: {
658             return sizeof(VkPhysicalDeviceCooperativeMatrixFeaturesKHR);
659         }
660         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR: {
661             return sizeof(VkPhysicalDeviceCooperativeMatrixPropertiesKHR);
662         }
663 #endif
664 #ifdef VK_KHR_line_rasterization
665         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_KHR: {
666             return sizeof(VkPhysicalDeviceLineRasterizationFeaturesKHR);
667         }
668         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_KHR: {
669             return sizeof(VkPhysicalDeviceLineRasterizationPropertiesKHR);
670         }
671         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_KHR: {
672             return sizeof(VkPipelineRasterizationLineStateCreateInfoKHR);
673         }
674 #endif
675 #ifdef VK_ANDROID_native_buffer
676         case VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID: {
677             return sizeof(VkNativeBufferANDROID);
678         }
679 #endif
680 #ifdef VK_EXT_debug_report
681         case VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT: {
682             return sizeof(VkDebugReportCallbackCreateInfoEXT);
683         }
684 #endif
685 #ifdef VK_AMD_rasterization_order
686         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD: {
687             return sizeof(VkPipelineRasterizationStateRasterizationOrderAMD);
688         }
689 #endif
690 #ifdef VK_NV_dedicated_allocation
691         case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV: {
692             return sizeof(VkDedicatedAllocationImageCreateInfoNV);
693         }
694         case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV: {
695             return sizeof(VkDedicatedAllocationBufferCreateInfoNV);
696         }
697         case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV: {
698             return sizeof(VkDedicatedAllocationMemoryAllocateInfoNV);
699         }
700 #endif
701 #ifdef VK_EXT_transform_feedback
702         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT: {
703             return sizeof(VkPhysicalDeviceTransformFeedbackFeaturesEXT);
704         }
705         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT: {
706             return sizeof(VkPhysicalDeviceTransformFeedbackPropertiesEXT);
707         }
708         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT: {
709             return sizeof(VkPipelineRasterizationStateStreamCreateInfoEXT);
710         }
711 #endif
712 #ifdef VK_EXT_video_encode_h264
713 #ifdef VK_ENABLE_BETA_EXTENSIONS
714         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT: {
715             return sizeof(VkVideoEncodeH264CapabilitiesEXT);
716         }
717 #endif  // VK_ENABLE_BETA_EXTENSIONS
718 #ifdef VK_ENABLE_BETA_EXTENSIONS
719         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_QUALITY_LEVEL_PROPERTIES_EXT: {
720             return sizeof(VkVideoEncodeH264QualityLevelPropertiesEXT);
721         }
722 #endif  // VK_ENABLE_BETA_EXTENSIONS
723 #ifdef VK_ENABLE_BETA_EXTENSIONS
724         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_EXT: {
725             return sizeof(VkVideoEncodeH264SessionCreateInfoEXT);
726         }
727 #endif  // VK_ENABLE_BETA_EXTENSIONS
728 #ifdef VK_ENABLE_BETA_EXTENSIONS
729         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT: {
730             return sizeof(VkVideoEncodeH264SessionParametersAddInfoEXT);
731         }
732 #endif  // VK_ENABLE_BETA_EXTENSIONS
733 #ifdef VK_ENABLE_BETA_EXTENSIONS
734         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT: {
735             return sizeof(VkVideoEncodeH264SessionParametersCreateInfoEXT);
736         }
737 #endif  // VK_ENABLE_BETA_EXTENSIONS
738 #ifdef VK_ENABLE_BETA_EXTENSIONS
739         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_GET_INFO_EXT: {
740             return sizeof(VkVideoEncodeH264SessionParametersGetInfoEXT);
741         }
742 #endif  // VK_ENABLE_BETA_EXTENSIONS
743 #ifdef VK_ENABLE_BETA_EXTENSIONS
744         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_FEEDBACK_INFO_EXT: {
745             return sizeof(VkVideoEncodeH264SessionParametersFeedbackInfoEXT);
746         }
747 #endif  // VK_ENABLE_BETA_EXTENSIONS
748 #ifdef VK_ENABLE_BETA_EXTENSIONS
749         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PICTURE_INFO_EXT: {
750             return sizeof(VkVideoEncodeH264PictureInfoEXT);
751         }
752 #endif  // VK_ENABLE_BETA_EXTENSIONS
753 #ifdef VK_ENABLE_BETA_EXTENSIONS
754         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT: {
755             return sizeof(VkVideoEncodeH264DpbSlotInfoEXT);
756         }
757 #endif  // VK_ENABLE_BETA_EXTENSIONS
758 #ifdef VK_ENABLE_BETA_EXTENSIONS
759         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_INFO_EXT: {
760             return sizeof(VkVideoEncodeH264ProfileInfoEXT);
761         }
762 #endif  // VK_ENABLE_BETA_EXTENSIONS
763 #ifdef VK_ENABLE_BETA_EXTENSIONS
764         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_EXT: {
765             return sizeof(VkVideoEncodeH264RateControlInfoEXT);
766         }
767 #endif  // VK_ENABLE_BETA_EXTENSIONS
768 #ifdef VK_ENABLE_BETA_EXTENSIONS
769         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_EXT: {
770             return sizeof(VkVideoEncodeH264RateControlLayerInfoEXT);
771         }
772 #endif  // VK_ENABLE_BETA_EXTENSIONS
773 #ifdef VK_ENABLE_BETA_EXTENSIONS
774         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_GOP_REMAINING_FRAME_INFO_EXT: {
775             return sizeof(VkVideoEncodeH264GopRemainingFrameInfoEXT);
776         }
777 #endif  // VK_ENABLE_BETA_EXTENSIONS
778 #endif
779 #ifdef VK_EXT_video_encode_h265
780 #ifdef VK_ENABLE_BETA_EXTENSIONS
781         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT: {
782             return sizeof(VkVideoEncodeH265CapabilitiesEXT);
783         }
784 #endif  // VK_ENABLE_BETA_EXTENSIONS
785 #ifdef VK_ENABLE_BETA_EXTENSIONS
786         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_CREATE_INFO_EXT: {
787             return sizeof(VkVideoEncodeH265SessionCreateInfoEXT);
788         }
789 #endif  // VK_ENABLE_BETA_EXTENSIONS
790 #ifdef VK_ENABLE_BETA_EXTENSIONS
791         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_QUALITY_LEVEL_PROPERTIES_EXT: {
792             return sizeof(VkVideoEncodeH265QualityLevelPropertiesEXT);
793         }
794 #endif  // VK_ENABLE_BETA_EXTENSIONS
795 #ifdef VK_ENABLE_BETA_EXTENSIONS
796         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT: {
797             return sizeof(VkVideoEncodeH265SessionParametersAddInfoEXT);
798         }
799 #endif  // VK_ENABLE_BETA_EXTENSIONS
800 #ifdef VK_ENABLE_BETA_EXTENSIONS
801         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT: {
802             return sizeof(VkVideoEncodeH265SessionParametersCreateInfoEXT);
803         }
804 #endif  // VK_ENABLE_BETA_EXTENSIONS
805 #ifdef VK_ENABLE_BETA_EXTENSIONS
806         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_GET_INFO_EXT: {
807             return sizeof(VkVideoEncodeH265SessionParametersGetInfoEXT);
808         }
809 #endif  // VK_ENABLE_BETA_EXTENSIONS
810 #ifdef VK_ENABLE_BETA_EXTENSIONS
811         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_FEEDBACK_INFO_EXT: {
812             return sizeof(VkVideoEncodeH265SessionParametersFeedbackInfoEXT);
813         }
814 #endif  // VK_ENABLE_BETA_EXTENSIONS
815 #ifdef VK_ENABLE_BETA_EXTENSIONS
816         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PICTURE_INFO_EXT: {
817             return sizeof(VkVideoEncodeH265PictureInfoEXT);
818         }
819 #endif  // VK_ENABLE_BETA_EXTENSIONS
820 #ifdef VK_ENABLE_BETA_EXTENSIONS
821         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_EXT: {
822             return sizeof(VkVideoEncodeH265DpbSlotInfoEXT);
823         }
824 #endif  // VK_ENABLE_BETA_EXTENSIONS
825 #ifdef VK_ENABLE_BETA_EXTENSIONS
826         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_INFO_EXT: {
827             return sizeof(VkVideoEncodeH265ProfileInfoEXT);
828         }
829 #endif  // VK_ENABLE_BETA_EXTENSIONS
830 #ifdef VK_ENABLE_BETA_EXTENSIONS
831         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_EXT: {
832             return sizeof(VkVideoEncodeH265RateControlInfoEXT);
833         }
834 #endif  // VK_ENABLE_BETA_EXTENSIONS
835 #ifdef VK_ENABLE_BETA_EXTENSIONS
836         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_EXT: {
837             return sizeof(VkVideoEncodeH265RateControlLayerInfoEXT);
838         }
839 #endif  // VK_ENABLE_BETA_EXTENSIONS
840 #ifdef VK_ENABLE_BETA_EXTENSIONS
841         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_GOP_REMAINING_FRAME_INFO_EXT: {
842             return sizeof(VkVideoEncodeH265GopRemainingFrameInfoEXT);
843         }
844 #endif  // VK_ENABLE_BETA_EXTENSIONS
845 #endif
846 #ifdef VK_AMD_texture_gather_bias_lod
847         case VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD: {
848             return sizeof(VkTextureLODGatherFormatPropertiesAMD);
849         }
850 #endif
851 #ifdef VK_NV_corner_sampled_image
852         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV: {
853             return sizeof(VkPhysicalDeviceCornerSampledImageFeaturesNV);
854         }
855 #endif
856 #ifdef VK_NV_external_memory
857         case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV: {
858             return sizeof(VkExternalMemoryImageCreateInfoNV);
859         }
860         case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV: {
861             return sizeof(VkExportMemoryAllocateInfoNV);
862         }
863 #endif
864 #ifdef VK_NV_external_memory_win32
865         case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV: {
866             return sizeof(VkImportMemoryWin32HandleInfoNV);
867         }
868         case VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV: {
869             return sizeof(VkExportMemoryWin32HandleInfoNV);
870         }
871 #endif
872 #ifdef VK_NV_win32_keyed_mutex
873         case VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV: {
874             return sizeof(VkWin32KeyedMutexAcquireReleaseInfoNV);
875         }
876 #endif
877 #ifdef VK_EXT_validation_flags
878         case VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT: {
879             return sizeof(VkValidationFlagsEXT);
880         }
881 #endif
882 #ifdef VK_EXT_astc_decode_mode
883         case VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT: {
884             return sizeof(VkImageViewASTCDecodeModeEXT);
885         }
886         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT: {
887             return sizeof(VkPhysicalDeviceASTCDecodeFeaturesEXT);
888         }
889 #endif
890 #ifdef VK_EXT_pipeline_robustness
891         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT: {
892             return sizeof(VkPhysicalDevicePipelineRobustnessFeaturesEXT);
893         }
894         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT: {
895             return sizeof(VkPhysicalDevicePipelineRobustnessPropertiesEXT);
896         }
897         case VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT: {
898             return sizeof(VkPipelineRobustnessCreateInfoEXT);
899         }
900 #endif
901 #ifdef VK_EXT_conditional_rendering
902         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT: {
903             return sizeof(VkPhysicalDeviceConditionalRenderingFeaturesEXT);
904         }
905         case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT: {
906             return sizeof(VkCommandBufferInheritanceConditionalRenderingInfoEXT);
907         }
908 #endif
909 #ifdef VK_NV_clip_space_w_scaling
910         case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV: {
911             return sizeof(VkPipelineViewportWScalingStateCreateInfoNV);
912         }
913 #endif
914 #ifdef VK_EXT_display_control
915         case VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT: {
916             return sizeof(VkSwapchainCounterCreateInfoEXT);
917         }
918 #endif
919 #ifdef VK_GOOGLE_display_timing
920         case VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE: {
921             return sizeof(VkPresentTimesInfoGOOGLE);
922         }
923 #endif
924 #ifdef VK_NVX_multiview_per_view_attributes
925         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX: {
926             return sizeof(VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX);
927         }
928 #endif
929 #ifdef VK_NV_viewport_swizzle
930         case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV: {
931             return sizeof(VkPipelineViewportSwizzleStateCreateInfoNV);
932         }
933 #endif
934 #ifdef VK_EXT_discard_rectangles
935         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT: {
936             return sizeof(VkPhysicalDeviceDiscardRectanglePropertiesEXT);
937         }
938         case VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT: {
939             return sizeof(VkPipelineDiscardRectangleStateCreateInfoEXT);
940         }
941 #endif
942 #ifdef VK_EXT_conservative_rasterization
943         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT: {
944             return sizeof(VkPhysicalDeviceConservativeRasterizationPropertiesEXT);
945         }
946         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT: {
947             return sizeof(VkPipelineRasterizationConservativeStateCreateInfoEXT);
948         }
949 #endif
950 #ifdef VK_EXT_depth_clip_enable
951         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT: {
952             return sizeof(VkPhysicalDeviceDepthClipEnableFeaturesEXT);
953         }
954         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT: {
955             return sizeof(VkPipelineRasterizationDepthClipStateCreateInfoEXT);
956         }
957 #endif
958 #ifdef VK_EXT_debug_utils
959         case VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT: {
960             return sizeof(VkDebugUtilsObjectNameInfoEXT);
961         }
962         case VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT: {
963             return sizeof(VkDebugUtilsMessengerCreateInfoEXT);
964         }
965 #endif
966 #ifdef VK_AMDX_shader_enqueue
967 #ifdef VK_ENABLE_BETA_EXTENSIONS
968         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX: {
969             return sizeof(VkPhysicalDeviceShaderEnqueueFeaturesAMDX);
970         }
971 #endif  // VK_ENABLE_BETA_EXTENSIONS
972 #ifdef VK_ENABLE_BETA_EXTENSIONS
973         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX: {
974             return sizeof(VkPhysicalDeviceShaderEnqueuePropertiesAMDX);
975         }
976 #endif  // VK_ENABLE_BETA_EXTENSIONS
977 #ifdef VK_ENABLE_BETA_EXTENSIONS
978         case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX: {
979             return sizeof(VkPipelineShaderStageNodeCreateInfoAMDX);
980         }
981 #endif  // VK_ENABLE_BETA_EXTENSIONS
982 #endif
983 #ifdef VK_EXT_sample_locations
984         case VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT: {
985             return sizeof(VkSampleLocationsInfoEXT);
986         }
987         case VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT: {
988             return sizeof(VkRenderPassSampleLocationsBeginInfoEXT);
989         }
990         case VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT: {
991             return sizeof(VkPipelineSampleLocationsStateCreateInfoEXT);
992         }
993         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT: {
994             return sizeof(VkPhysicalDeviceSampleLocationsPropertiesEXT);
995         }
996 #endif
997 #ifdef VK_EXT_blend_operation_advanced
998         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT: {
999             return sizeof(VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT);
1000         }
1001         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT: {
1002             return sizeof(VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT);
1003         }
1004         case VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT: {
1005             return sizeof(VkPipelineColorBlendAdvancedStateCreateInfoEXT);
1006         }
1007 #endif
1008 #ifdef VK_NV_fragment_coverage_to_color
1009         case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV: {
1010             return sizeof(VkPipelineCoverageToColorStateCreateInfoNV);
1011         }
1012 #endif
1013 #ifdef VK_NV_framebuffer_mixed_samples
1014         case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV: {
1015             return sizeof(VkPipelineCoverageModulationStateCreateInfoNV);
1016         }
1017 #endif
1018 #ifdef VK_NV_shader_sm_builtins
1019         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV: {
1020             return sizeof(VkPhysicalDeviceShaderSMBuiltinsPropertiesNV);
1021         }
1022         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV: {
1023             return sizeof(VkPhysicalDeviceShaderSMBuiltinsFeaturesNV);
1024         }
1025 #endif
1026 #ifdef VK_EXT_image_drm_format_modifier
1027         case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT: {
1028             return sizeof(VkDrmFormatModifierPropertiesListEXT);
1029         }
1030         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT: {
1031             return sizeof(VkPhysicalDeviceImageDrmFormatModifierInfoEXT);
1032         }
1033         case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT: {
1034             return sizeof(VkImageDrmFormatModifierListCreateInfoEXT);
1035         }
1036         case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT: {
1037             return sizeof(VkImageDrmFormatModifierExplicitCreateInfoEXT);
1038         }
1039         case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT: {
1040             return sizeof(VkDrmFormatModifierPropertiesList2EXT);
1041         }
1042 #endif
1043 #ifdef VK_EXT_validation_cache
1044         case VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT: {
1045             return sizeof(VkShaderModuleValidationCacheCreateInfoEXT);
1046         }
1047 #endif
1048 #ifdef VK_NV_shading_rate_image
1049         case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV: {
1050             return sizeof(VkPipelineViewportShadingRateImageStateCreateInfoNV);
1051         }
1052         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV: {
1053             return sizeof(VkPhysicalDeviceShadingRateImageFeaturesNV);
1054         }
1055         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV: {
1056             return sizeof(VkPhysicalDeviceShadingRateImagePropertiesNV);
1057         }
1058         case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV: {
1059             return sizeof(VkPipelineViewportCoarseSampleOrderStateCreateInfoNV);
1060         }
1061 #endif
1062 #ifdef VK_NV_ray_tracing
1063         case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV: {
1064             return sizeof(VkWriteDescriptorSetAccelerationStructureNV);
1065         }
1066         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV: {
1067             return sizeof(VkPhysicalDeviceRayTracingPropertiesNV);
1068         }
1069 #endif
1070 #ifdef VK_NV_representative_fragment_test
1071         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV: {
1072             return sizeof(VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV);
1073         }
1074         case VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV: {
1075             return sizeof(VkPipelineRepresentativeFragmentTestStateCreateInfoNV);
1076         }
1077 #endif
1078 #ifdef VK_EXT_filter_cubic
1079         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT: {
1080             return sizeof(VkPhysicalDeviceImageViewImageFormatInfoEXT);
1081         }
1082         case VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT: {
1083             return sizeof(VkFilterCubicImageViewImageFormatPropertiesEXT);
1084         }
1085 #endif
1086 #ifdef VK_EXT_external_memory_host
1087         case VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT: {
1088             return sizeof(VkImportMemoryHostPointerInfoEXT);
1089         }
1090         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT: {
1091             return sizeof(VkPhysicalDeviceExternalMemoryHostPropertiesEXT);
1092         }
1093 #endif
1094 #ifdef VK_AMD_pipeline_compiler_control
1095         case VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD: {
1096             return sizeof(VkPipelineCompilerControlCreateInfoAMD);
1097         }
1098 #endif
1099 #ifdef VK_AMD_shader_core_properties
1100         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD: {
1101             return sizeof(VkPhysicalDeviceShaderCorePropertiesAMD);
1102         }
1103 #endif
1104 #ifdef VK_AMD_memory_overallocation_behavior
1105         case VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD: {
1106             return sizeof(VkDeviceMemoryOverallocationCreateInfoAMD);
1107         }
1108 #endif
1109 #ifdef VK_EXT_vertex_attribute_divisor
1110         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT: {
1111             return sizeof(VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT);
1112         }
1113         case VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT: {
1114             return sizeof(VkPipelineVertexInputDivisorStateCreateInfoEXT);
1115         }
1116         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT: {
1117             return sizeof(VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT);
1118         }
1119 #endif
1120 #ifdef VK_GGP_frame_token
1121         case VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP: {
1122             return sizeof(VkPresentFrameTokenGGP);
1123         }
1124 #endif
1125 #ifdef VK_NV_compute_shader_derivatives
1126         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV: {
1127             return sizeof(VkPhysicalDeviceComputeShaderDerivativesFeaturesNV);
1128         }
1129 #endif
1130 #ifdef VK_NV_mesh_shader
1131         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV: {
1132             return sizeof(VkPhysicalDeviceMeshShaderFeaturesNV);
1133         }
1134         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV: {
1135             return sizeof(VkPhysicalDeviceMeshShaderPropertiesNV);
1136         }
1137 #endif
1138 #ifdef VK_NV_shader_image_footprint
1139         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV: {
1140             return sizeof(VkPhysicalDeviceShaderImageFootprintFeaturesNV);
1141         }
1142 #endif
1143 #ifdef VK_NV_scissor_exclusive
1144         case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV: {
1145             return sizeof(VkPipelineViewportExclusiveScissorStateCreateInfoNV);
1146         }
1147         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV: {
1148             return sizeof(VkPhysicalDeviceExclusiveScissorFeaturesNV);
1149         }
1150 #endif
1151 #ifdef VK_INTEL_shader_integer_functions2
1152         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL: {
1153             return sizeof(VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL);
1154         }
1155 #endif
1156 #ifdef VK_INTEL_performance_query
1157         case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL: {
1158             return sizeof(VkQueryPoolPerformanceQueryCreateInfoINTEL);
1159         }
1160 #endif
1161 #ifdef VK_EXT_pci_bus_info
1162         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT: {
1163             return sizeof(VkPhysicalDevicePCIBusInfoPropertiesEXT);
1164         }
1165 #endif
1166 #ifdef VK_AMD_display_native_hdr
1167         case VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD: {
1168             return sizeof(VkDisplayNativeHdrSurfaceCapabilitiesAMD);
1169         }
1170         case VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD: {
1171             return sizeof(VkSwapchainDisplayNativeHdrCreateInfoAMD);
1172         }
1173 #endif
1174 #ifdef VK_EXT_fragment_density_map
1175         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT: {
1176             switch (rootType) {
1177                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2: {
1178                     return sizeof(VkPhysicalDeviceFragmentDensityMapFeaturesEXT);
1179                     break;
1180                 }
1181                 case VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO: {
1182                     return sizeof(VkPhysicalDeviceFragmentDensityMapFeaturesEXT);
1183                     break;
1184                 }
1185                 case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO: {
1186                     return sizeof(VkImportColorBufferGOOGLE);
1187                     break;
1188                 }
1189                 default: {
1190                     return sizeof(VkPhysicalDeviceFragmentDensityMapFeaturesEXT);
1191                     break;
1192                 }
1193             }
1194         }
1195         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT: {
1196             switch (rootType) {
1197                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2: {
1198                     return sizeof(VkPhysicalDeviceFragmentDensityMapPropertiesEXT);
1199                     break;
1200                 }
1201                 case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO: {
1202                     return sizeof(VkCreateBlobGOOGLE);
1203                     break;
1204                 }
1205                 default: {
1206                     return sizeof(VkPhysicalDeviceFragmentDensityMapPropertiesEXT);
1207                     break;
1208                 }
1209             }
1210         }
1211         case VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT: {
1212             switch (rootType) {
1213                 case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO: {
1214                     return sizeof(VkRenderPassFragmentDensityMapCreateInfoEXT);
1215                     break;
1216                 }
1217                 case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2: {
1218                     return sizeof(VkRenderPassFragmentDensityMapCreateInfoEXT);
1219                     break;
1220                 }
1221                 case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO: {
1222                     return sizeof(VkImportBufferGOOGLE);
1223                     break;
1224                 }
1225                 default: {
1226                     return sizeof(VkRenderPassFragmentDensityMapCreateInfoEXT);
1227                     break;
1228                 }
1229             }
1230         }
1231 #endif
1232 #ifdef VK_AMD_shader_core_properties2
1233         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD: {
1234             return sizeof(VkPhysicalDeviceShaderCoreProperties2AMD);
1235         }
1236 #endif
1237 #ifdef VK_AMD_device_coherent_memory
1238         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD: {
1239             return sizeof(VkPhysicalDeviceCoherentMemoryFeaturesAMD);
1240         }
1241 #endif
1242 #ifdef VK_EXT_shader_image_atomic_int64
1243         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT: {
1244             return sizeof(VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT);
1245         }
1246 #endif
1247 #ifdef VK_EXT_memory_budget
1248         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT: {
1249             return sizeof(VkPhysicalDeviceMemoryBudgetPropertiesEXT);
1250         }
1251 #endif
1252 #ifdef VK_EXT_memory_priority
1253         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT: {
1254             return sizeof(VkPhysicalDeviceMemoryPriorityFeaturesEXT);
1255         }
1256         case VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT: {
1257             return sizeof(VkMemoryPriorityAllocateInfoEXT);
1258         }
1259 #endif
1260 #ifdef VK_NV_dedicated_allocation_image_aliasing
1261         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV: {
1262             return sizeof(VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV);
1263         }
1264 #endif
1265 #ifdef VK_EXT_buffer_device_address
1266         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT: {
1267             return sizeof(VkPhysicalDeviceBufferDeviceAddressFeaturesEXT);
1268         }
1269         case VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT: {
1270             return sizeof(VkBufferDeviceAddressCreateInfoEXT);
1271         }
1272 #endif
1273 #ifdef VK_EXT_validation_features
1274         case VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT: {
1275             return sizeof(VkValidationFeaturesEXT);
1276         }
1277 #endif
1278 #ifdef VK_NV_cooperative_matrix
1279         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV: {
1280             return sizeof(VkPhysicalDeviceCooperativeMatrixFeaturesNV);
1281         }
1282         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV: {
1283             return sizeof(VkPhysicalDeviceCooperativeMatrixPropertiesNV);
1284         }
1285 #endif
1286 #ifdef VK_NV_coverage_reduction_mode
1287         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV: {
1288             return sizeof(VkPhysicalDeviceCoverageReductionModeFeaturesNV);
1289         }
1290         case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV: {
1291             return sizeof(VkPipelineCoverageReductionStateCreateInfoNV);
1292         }
1293 #endif
1294 #ifdef VK_EXT_fragment_shader_interlock
1295         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT: {
1296             return sizeof(VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT);
1297         }
1298 #endif
1299 #ifdef VK_EXT_ycbcr_image_arrays
1300         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT: {
1301             return sizeof(VkPhysicalDeviceYcbcrImageArraysFeaturesEXT);
1302         }
1303 #endif
1304 #ifdef VK_EXT_provoking_vertex
1305         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT: {
1306             return sizeof(VkPhysicalDeviceProvokingVertexFeaturesEXT);
1307         }
1308         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT: {
1309             return sizeof(VkPhysicalDeviceProvokingVertexPropertiesEXT);
1310         }
1311         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT: {
1312             return sizeof(VkPipelineRasterizationProvokingVertexStateCreateInfoEXT);
1313         }
1314 #endif
1315 #ifdef VK_EXT_full_screen_exclusive
1316         case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT: {
1317             return sizeof(VkSurfaceFullScreenExclusiveInfoEXT);
1318         }
1319         case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT: {
1320             return sizeof(VkSurfaceCapabilitiesFullScreenExclusiveEXT);
1321         }
1322         case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT: {
1323             return sizeof(VkSurfaceFullScreenExclusiveWin32InfoEXT);
1324         }
1325 #endif
1326 #ifdef VK_EXT_shader_atomic_float
1327         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT: {
1328             return sizeof(VkPhysicalDeviceShaderAtomicFloatFeaturesEXT);
1329         }
1330 #endif
1331 #ifdef VK_EXT_index_type_uint8
1332         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT: {
1333             return sizeof(VkPhysicalDeviceIndexTypeUint8FeaturesEXT);
1334         }
1335 #endif
1336 #ifdef VK_EXT_extended_dynamic_state
1337         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT: {
1338             return sizeof(VkPhysicalDeviceExtendedDynamicStateFeaturesEXT);
1339         }
1340 #endif
1341 #ifdef VK_EXT_host_image_copy
1342         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT: {
1343             return sizeof(VkPhysicalDeviceHostImageCopyFeaturesEXT);
1344         }
1345         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT: {
1346             return sizeof(VkPhysicalDeviceHostImageCopyPropertiesEXT);
1347         }
1348         case VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT: {
1349             return sizeof(VkSubresourceHostMemcpySizeEXT);
1350         }
1351         case VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT: {
1352             return sizeof(VkHostImageCopyDevicePerformanceQueryEXT);
1353         }
1354 #endif
1355 #ifdef VK_EXT_shader_atomic_float2
1356         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT: {
1357             return sizeof(VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT);
1358         }
1359 #endif
1360 #ifdef VK_EXT_surface_maintenance1
1361         case VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT: {
1362             return sizeof(VkSurfacePresentModeEXT);
1363         }
1364         case VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT: {
1365             return sizeof(VkSurfacePresentScalingCapabilitiesEXT);
1366         }
1367         case VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT: {
1368             return sizeof(VkSurfacePresentModeCompatibilityEXT);
1369         }
1370 #endif
1371 #ifdef VK_EXT_swapchain_maintenance1
1372         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT: {
1373             return sizeof(VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT);
1374         }
1375         case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT: {
1376             return sizeof(VkSwapchainPresentFenceInfoEXT);
1377         }
1378         case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT: {
1379             return sizeof(VkSwapchainPresentModesCreateInfoEXT);
1380         }
1381         case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT: {
1382             return sizeof(VkSwapchainPresentModeInfoEXT);
1383         }
1384         case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT: {
1385             return sizeof(VkSwapchainPresentScalingCreateInfoEXT);
1386         }
1387 #endif
1388 #ifdef VK_NV_device_generated_commands
1389         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV: {
1390             return sizeof(VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV);
1391         }
1392         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV: {
1393             return sizeof(VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV);
1394         }
1395         case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV: {
1396             return sizeof(VkGraphicsPipelineShaderGroupsCreateInfoNV);
1397         }
1398 #endif
1399 #ifdef VK_NV_inherited_viewport_scissor
1400         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV: {
1401             return sizeof(VkPhysicalDeviceInheritedViewportScissorFeaturesNV);
1402         }
1403         case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV: {
1404             return sizeof(VkCommandBufferInheritanceViewportScissorInfoNV);
1405         }
1406 #endif
1407 #ifdef VK_EXT_texel_buffer_alignment
1408         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT: {
1409             return sizeof(VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT);
1410         }
1411 #endif
1412 #ifdef VK_QCOM_render_pass_transform
1413         case VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM: {
1414             return sizeof(VkRenderPassTransformBeginInfoQCOM);
1415         }
1416         case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM: {
1417             return sizeof(VkCommandBufferInheritanceRenderPassTransformInfoQCOM);
1418         }
1419 #endif
1420 #ifdef VK_EXT_depth_bias_control
1421         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT: {
1422             return sizeof(VkPhysicalDeviceDepthBiasControlFeaturesEXT);
1423         }
1424         case VK_STRUCTURE_TYPE_DEPTH_BIAS_REPRESENTATION_INFO_EXT: {
1425             return sizeof(VkDepthBiasRepresentationInfoEXT);
1426         }
1427 #endif
1428 #ifdef VK_EXT_device_memory_report
1429         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT: {
1430             return sizeof(VkPhysicalDeviceDeviceMemoryReportFeaturesEXT);
1431         }
1432         case VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT: {
1433             return sizeof(VkDeviceDeviceMemoryReportCreateInfoEXT);
1434         }
1435 #endif
1436 #ifdef VK_EXT_robustness2
1437         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT: {
1438             return sizeof(VkPhysicalDeviceRobustness2FeaturesEXT);
1439         }
1440         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT: {
1441             return sizeof(VkPhysicalDeviceRobustness2PropertiesEXT);
1442         }
1443 #endif
1444 #ifdef VK_EXT_custom_border_color
1445         case VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT: {
1446             return sizeof(VkSamplerCustomBorderColorCreateInfoEXT);
1447         }
1448         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT: {
1449             return sizeof(VkPhysicalDeviceCustomBorderColorPropertiesEXT);
1450         }
1451         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT: {
1452             return sizeof(VkPhysicalDeviceCustomBorderColorFeaturesEXT);
1453         }
1454 #endif
1455 #ifdef VK_NV_present_barrier
1456         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV: {
1457             return sizeof(VkPhysicalDevicePresentBarrierFeaturesNV);
1458         }
1459         case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV: {
1460             return sizeof(VkSurfaceCapabilitiesPresentBarrierNV);
1461         }
1462         case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV: {
1463             return sizeof(VkSwapchainPresentBarrierCreateInfoNV);
1464         }
1465 #endif
1466 #ifdef VK_NV_device_diagnostics_config
1467         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV: {
1468             return sizeof(VkPhysicalDeviceDiagnosticsConfigFeaturesNV);
1469         }
1470         case VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV: {
1471             return sizeof(VkDeviceDiagnosticsConfigCreateInfoNV);
1472         }
1473 #endif
1474 #ifdef VK_NV_cuda_kernel_launch
1475         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_FEATURES_NV: {
1476             return sizeof(VkPhysicalDeviceCudaKernelLaunchFeaturesNV);
1477         }
1478         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_PROPERTIES_NV: {
1479             return sizeof(VkPhysicalDeviceCudaKernelLaunchPropertiesNV);
1480         }
1481 #endif
1482 #ifdef VK_NV_low_latency
1483         case VK_STRUCTURE_TYPE_QUERY_LOW_LATENCY_SUPPORT_NV: {
1484             return sizeof(VkQueryLowLatencySupportNV);
1485         }
1486 #endif
1487 #ifdef VK_EXT_descriptor_buffer
1488         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT: {
1489             return sizeof(VkPhysicalDeviceDescriptorBufferPropertiesEXT);
1490         }
1491         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT: {
1492             return sizeof(VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT);
1493         }
1494         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT: {
1495             return sizeof(VkPhysicalDeviceDescriptorBufferFeaturesEXT);
1496         }
1497         case VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT: {
1498             return sizeof(VkDescriptorBufferBindingPushDescriptorBufferHandleEXT);
1499         }
1500         case VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT: {
1501             return sizeof(VkOpaqueCaptureDescriptorDataCreateInfoEXT);
1502         }
1503 #endif
1504 #ifdef VK_EXT_graphics_pipeline_library
1505         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT: {
1506             return sizeof(VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT);
1507         }
1508         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT: {
1509             return sizeof(VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT);
1510         }
1511         case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT: {
1512             return sizeof(VkGraphicsPipelineLibraryCreateInfoEXT);
1513         }
1514 #endif
1515 #ifdef VK_AMD_shader_early_and_late_fragment_tests
1516         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD: {
1517             return sizeof(VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD);
1518         }
1519 #endif
1520 #ifdef VK_NV_fragment_shading_rate_enums
1521         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV: {
1522             return sizeof(VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV);
1523         }
1524         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV: {
1525             return sizeof(VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV);
1526         }
1527         case VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV: {
1528             return sizeof(VkPipelineFragmentShadingRateEnumStateCreateInfoNV);
1529         }
1530 #endif
1531 #ifdef VK_NV_ray_tracing_motion_blur
1532         case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV: {
1533             return sizeof(VkAccelerationStructureGeometryMotionTrianglesDataNV);
1534         }
1535         case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV: {
1536             return sizeof(VkAccelerationStructureMotionInfoNV);
1537         }
1538         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV: {
1539             return sizeof(VkPhysicalDeviceRayTracingMotionBlurFeaturesNV);
1540         }
1541 #endif
1542 #ifdef VK_EXT_ycbcr_2plane_444_formats
1543         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT: {
1544             return sizeof(VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT);
1545         }
1546 #endif
1547 #ifdef VK_EXT_fragment_density_map2
1548         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT: {
1549             return sizeof(VkPhysicalDeviceFragmentDensityMap2FeaturesEXT);
1550         }
1551         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT: {
1552             return sizeof(VkPhysicalDeviceFragmentDensityMap2PropertiesEXT);
1553         }
1554 #endif
1555 #ifdef VK_QCOM_rotated_copy_commands
1556         case VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM: {
1557             return sizeof(VkCopyCommandTransformInfoQCOM);
1558         }
1559 #endif
1560 #ifdef VK_EXT_image_compression_control
1561         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT: {
1562             return sizeof(VkPhysicalDeviceImageCompressionControlFeaturesEXT);
1563         }
1564         case VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT: {
1565             return sizeof(VkImageCompressionControlEXT);
1566         }
1567         case VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT: {
1568             return sizeof(VkImageCompressionPropertiesEXT);
1569         }
1570 #endif
1571 #ifdef VK_EXT_attachment_feedback_loop_layout
1572         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT: {
1573             return sizeof(VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT);
1574         }
1575 #endif
1576 #ifdef VK_EXT_4444_formats
1577         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT: {
1578             return sizeof(VkPhysicalDevice4444FormatsFeaturesEXT);
1579         }
1580 #endif
1581 #ifdef VK_EXT_device_fault
1582         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT: {
1583             return sizeof(VkPhysicalDeviceFaultFeaturesEXT);
1584         }
1585 #endif
1586 #ifdef VK_ARM_rasterization_order_attachment_access
1587         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT: {
1588             return sizeof(VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT);
1589         }
1590 #endif
1591 #ifdef VK_EXT_rgba10x6_formats
1592         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT: {
1593             return sizeof(VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT);
1594         }
1595 #endif
1596 #ifdef VK_VALVE_mutable_descriptor_type
1597         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT: {
1598             return sizeof(VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT);
1599         }
1600         case VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT: {
1601             return sizeof(VkMutableDescriptorTypeCreateInfoEXT);
1602         }
1603 #endif
1604 #ifdef VK_EXT_vertex_input_dynamic_state
1605         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT: {
1606             return sizeof(VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT);
1607         }
1608 #endif
1609 #ifdef VK_EXT_physical_device_drm
1610         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT: {
1611             return sizeof(VkPhysicalDeviceDrmPropertiesEXT);
1612         }
1613 #endif
1614 #ifdef VK_EXT_device_address_binding_report
1615         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT: {
1616             return sizeof(VkPhysicalDeviceAddressBindingReportFeaturesEXT);
1617         }
1618         case VK_STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT: {
1619             return sizeof(VkDeviceAddressBindingCallbackDataEXT);
1620         }
1621 #endif
1622 #ifdef VK_EXT_depth_clip_control
1623         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT: {
1624             return sizeof(VkPhysicalDeviceDepthClipControlFeaturesEXT);
1625         }
1626         case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT: {
1627             return sizeof(VkPipelineViewportDepthClipControlCreateInfoEXT);
1628         }
1629 #endif
1630 #ifdef VK_EXT_primitive_topology_list_restart
1631         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT: {
1632             return sizeof(VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT);
1633         }
1634 #endif
1635 #ifdef VK_FUCHSIA_external_memory
1636         case VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA: {
1637             return sizeof(VkImportMemoryZirconHandleInfoFUCHSIA);
1638         }
1639 #endif
1640 #ifdef VK_FUCHSIA_buffer_collection
1641         case VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA: {
1642             return sizeof(VkImportMemoryBufferCollectionFUCHSIA);
1643         }
1644         case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA: {
1645             return sizeof(VkBufferCollectionImageCreateInfoFUCHSIA);
1646         }
1647         case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA: {
1648             return sizeof(VkBufferCollectionBufferCreateInfoFUCHSIA);
1649         }
1650 #endif
1651 #ifdef VK_HUAWEI_subpass_shading
1652         case VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI: {
1653             return sizeof(VkSubpassShadingPipelineCreateInfoHUAWEI);
1654         }
1655         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI: {
1656             return sizeof(VkPhysicalDeviceSubpassShadingFeaturesHUAWEI);
1657         }
1658         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI: {
1659             return sizeof(VkPhysicalDeviceSubpassShadingPropertiesHUAWEI);
1660         }
1661 #endif
1662 #ifdef VK_HUAWEI_invocation_mask
1663         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI: {
1664             return sizeof(VkPhysicalDeviceInvocationMaskFeaturesHUAWEI);
1665         }
1666 #endif
1667 #ifdef VK_NV_external_memory_rdma
1668         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV: {
1669             return sizeof(VkPhysicalDeviceExternalMemoryRDMAFeaturesNV);
1670         }
1671 #endif
1672 #ifdef VK_EXT_pipeline_properties
1673         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT: {
1674             return sizeof(VkPhysicalDevicePipelinePropertiesFeaturesEXT);
1675         }
1676 #endif
1677 #ifdef VK_EXT_frame_boundary
1678         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT: {
1679             return sizeof(VkPhysicalDeviceFrameBoundaryFeaturesEXT);
1680         }
1681         case VK_STRUCTURE_TYPE_FRAME_BOUNDARY_EXT: {
1682             return sizeof(VkFrameBoundaryEXT);
1683         }
1684 #endif
1685 #ifdef VK_EXT_multisampled_render_to_single_sampled
1686         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT: {
1687             return sizeof(VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT);
1688         }
1689         case VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT: {
1690             return sizeof(VkSubpassResolvePerformanceQueryEXT);
1691         }
1692         case VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT: {
1693             return sizeof(VkMultisampledRenderToSingleSampledInfoEXT);
1694         }
1695 #endif
1696 #ifdef VK_EXT_extended_dynamic_state2
1697         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT: {
1698             return sizeof(VkPhysicalDeviceExtendedDynamicState2FeaturesEXT);
1699         }
1700 #endif
1701 #ifdef VK_EXT_color_write_enable
1702         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT: {
1703             return sizeof(VkPhysicalDeviceColorWriteEnableFeaturesEXT);
1704         }
1705         case VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT: {
1706             return sizeof(VkPipelineColorWriteCreateInfoEXT);
1707         }
1708 #endif
1709 #ifdef VK_EXT_primitives_generated_query
1710         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT: {
1711             return sizeof(VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT);
1712         }
1713 #endif
1714 #ifdef VK_GOOGLE_gfxstream
1715         case VK_STRUCTURE_TYPE_IMPORT_COLOR_BUFFER_GOOGLE: {
1716             return sizeof(VkImportColorBufferGOOGLE);
1717         }
1718         case VK_STRUCTURE_TYPE_IMPORT_BUFFER_GOOGLE: {
1719             return sizeof(VkImportBufferGOOGLE);
1720         }
1721         case VK_STRUCTURE_TYPE_CREATE_BLOB_GOOGLE: {
1722             return sizeof(VkCreateBlobGOOGLE);
1723         }
1724 #endif
1725 #ifdef VK_EXT_image_view_min_lod
1726         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT: {
1727             return sizeof(VkPhysicalDeviceImageViewMinLodFeaturesEXT);
1728         }
1729         case VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT: {
1730             return sizeof(VkImageViewMinLodCreateInfoEXT);
1731         }
1732 #endif
1733 #ifdef VK_EXT_multi_draw
1734         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT: {
1735             return sizeof(VkPhysicalDeviceMultiDrawFeaturesEXT);
1736         }
1737         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT: {
1738             return sizeof(VkPhysicalDeviceMultiDrawPropertiesEXT);
1739         }
1740 #endif
1741 #ifdef VK_EXT_image_2d_view_of_3d
1742         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT: {
1743             return sizeof(VkPhysicalDeviceImage2DViewOf3DFeaturesEXT);
1744         }
1745 #endif
1746 #ifdef VK_EXT_shader_tile_image
1747         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT: {
1748             return sizeof(VkPhysicalDeviceShaderTileImageFeaturesEXT);
1749         }
1750         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT: {
1751             return sizeof(VkPhysicalDeviceShaderTileImagePropertiesEXT);
1752         }
1753 #endif
1754 #ifdef VK_EXT_opacity_micromap
1755         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT: {
1756             return sizeof(VkPhysicalDeviceOpacityMicromapFeaturesEXT);
1757         }
1758         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT: {
1759             return sizeof(VkPhysicalDeviceOpacityMicromapPropertiesEXT);
1760         }
1761         case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT: {
1762             return sizeof(VkAccelerationStructureTrianglesOpacityMicromapEXT);
1763         }
1764 #endif
1765 #ifdef VK_NV_displacement_micromap
1766 #ifdef VK_ENABLE_BETA_EXTENSIONS
1767         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV: {
1768             return sizeof(VkPhysicalDeviceDisplacementMicromapFeaturesNV);
1769         }
1770 #endif  // VK_ENABLE_BETA_EXTENSIONS
1771 #ifdef VK_ENABLE_BETA_EXTENSIONS
1772         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV: {
1773             return sizeof(VkPhysicalDeviceDisplacementMicromapPropertiesNV);
1774         }
1775 #endif  // VK_ENABLE_BETA_EXTENSIONS
1776 #ifdef VK_ENABLE_BETA_EXTENSIONS
1777         case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV: {
1778             return sizeof(VkAccelerationStructureTrianglesDisplacementMicromapNV);
1779         }
1780 #endif  // VK_ENABLE_BETA_EXTENSIONS
1781 #endif
1782 #ifdef VK_HUAWEI_cluster_culling_shader
1783         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI: {
1784             return sizeof(VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI);
1785         }
1786         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI: {
1787             return sizeof(VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI);
1788         }
1789 #endif
1790 #ifdef VK_EXT_border_color_swizzle
1791         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT: {
1792             return sizeof(VkPhysicalDeviceBorderColorSwizzleFeaturesEXT);
1793         }
1794         case VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT: {
1795             return sizeof(VkSamplerBorderColorComponentMappingCreateInfoEXT);
1796         }
1797 #endif
1798 #ifdef VK_EXT_pageable_device_local_memory
1799         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT: {
1800             return sizeof(VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT);
1801         }
1802 #endif
1803 #ifdef VK_ARM_shader_core_properties
1804         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM: {
1805             return sizeof(VkPhysicalDeviceShaderCorePropertiesARM);
1806         }
1807 #endif
1808 #ifdef VK_ARM_scheduling_controls
1809         case VK_STRUCTURE_TYPE_DEVICE_QUEUE_SHADER_CORE_CONTROL_CREATE_INFO_ARM: {
1810             return sizeof(VkDeviceQueueShaderCoreControlCreateInfoARM);
1811         }
1812         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARM: {
1813             return sizeof(VkPhysicalDeviceSchedulingControlsFeaturesARM);
1814         }
1815         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_PROPERTIES_ARM: {
1816             return sizeof(VkPhysicalDeviceSchedulingControlsPropertiesARM);
1817         }
1818 #endif
1819 #ifdef VK_EXT_image_sliced_view_of_3d
1820         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT: {
1821             return sizeof(VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT);
1822         }
1823         case VK_STRUCTURE_TYPE_IMAGE_VIEW_SLICED_CREATE_INFO_EXT: {
1824             return sizeof(VkImageViewSlicedCreateInfoEXT);
1825         }
1826 #endif
1827 #ifdef VK_VALVE_descriptor_set_host_mapping
1828         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE: {
1829             return sizeof(VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE);
1830         }
1831 #endif
1832 #ifdef VK_EXT_depth_clamp_zero_one
1833         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT: {
1834             return sizeof(VkPhysicalDeviceDepthClampZeroOneFeaturesEXT);
1835         }
1836 #endif
1837 #ifdef VK_EXT_non_seamless_cube_map
1838         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT: {
1839             return sizeof(VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT);
1840         }
1841 #endif
1842 #ifdef VK_QCOM_fragment_density_map_offset
1843         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM: {
1844             return sizeof(VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM);
1845         }
1846         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM: {
1847             return sizeof(VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM);
1848         }
1849         case VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM: {
1850             return sizeof(VkSubpassFragmentDensityMapOffsetEndInfoQCOM);
1851         }
1852 #endif
1853 #ifdef VK_NV_copy_memory_indirect
1854         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV: {
1855             return sizeof(VkPhysicalDeviceCopyMemoryIndirectFeaturesNV);
1856         }
1857         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV: {
1858             return sizeof(VkPhysicalDeviceCopyMemoryIndirectPropertiesNV);
1859         }
1860 #endif
1861 #ifdef VK_NV_memory_decompression
1862         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV: {
1863             return sizeof(VkPhysicalDeviceMemoryDecompressionFeaturesNV);
1864         }
1865         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV: {
1866             return sizeof(VkPhysicalDeviceMemoryDecompressionPropertiesNV);
1867         }
1868 #endif
1869 #ifdef VK_NV_device_generated_commands_compute
1870         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV: {
1871             return sizeof(VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV);
1872         }
1873 #endif
1874 #ifdef VK_NV_linear_color_attachment
1875         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV: {
1876             return sizeof(VkPhysicalDeviceLinearColorAttachmentFeaturesNV);
1877         }
1878 #endif
1879 #ifdef VK_EXT_image_compression_control_swapchain
1880         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT: {
1881             return sizeof(VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT);
1882         }
1883 #endif
1884 #ifdef VK_QCOM_image_processing
1885         case VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM: {
1886             return sizeof(VkImageViewSampleWeightCreateInfoQCOM);
1887         }
1888         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM: {
1889             return sizeof(VkPhysicalDeviceImageProcessingFeaturesQCOM);
1890         }
1891         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM: {
1892             return sizeof(VkPhysicalDeviceImageProcessingPropertiesQCOM);
1893         }
1894 #endif
1895 #ifdef VK_EXT_nested_command_buffer
1896         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT: {
1897             return sizeof(VkPhysicalDeviceNestedCommandBufferFeaturesEXT);
1898         }
1899         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT: {
1900             return sizeof(VkPhysicalDeviceNestedCommandBufferPropertiesEXT);
1901         }
1902 #endif
1903 #ifdef VK_EXT_external_memory_acquire_unmodified
1904         case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT: {
1905             return sizeof(VkExternalMemoryAcquireUnmodifiedEXT);
1906         }
1907 #endif
1908 #ifdef VK_EXT_extended_dynamic_state3
1909         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT: {
1910             return sizeof(VkPhysicalDeviceExtendedDynamicState3FeaturesEXT);
1911         }
1912         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT: {
1913             return sizeof(VkPhysicalDeviceExtendedDynamicState3PropertiesEXT);
1914         }
1915 #endif
1916 #ifdef VK_EXT_subpass_merge_feedback
1917         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT: {
1918             return sizeof(VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT);
1919         }
1920         case VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT: {
1921             return sizeof(VkRenderPassCreationControlEXT);
1922         }
1923         case VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT: {
1924             return sizeof(VkRenderPassCreationFeedbackCreateInfoEXT);
1925         }
1926         case VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT: {
1927             return sizeof(VkRenderPassSubpassFeedbackCreateInfoEXT);
1928         }
1929 #endif
1930 #ifdef VK_LUNARG_direct_driver_loading
1931         case VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG: {
1932             return sizeof(VkDirectDriverLoadingListLUNARG);
1933         }
1934 #endif
1935 #ifdef VK_EXT_shader_module_identifier
1936         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT: {
1937             return sizeof(VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT);
1938         }
1939         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT: {
1940             return sizeof(VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT);
1941         }
1942         case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT: {
1943             return sizeof(VkPipelineShaderStageModuleIdentifierCreateInfoEXT);
1944         }
1945 #endif
1946 #ifdef VK_NV_optical_flow
1947         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV: {
1948             return sizeof(VkPhysicalDeviceOpticalFlowFeaturesNV);
1949         }
1950         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV: {
1951             return sizeof(VkPhysicalDeviceOpticalFlowPropertiesNV);
1952         }
1953         case VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV: {
1954             return sizeof(VkOpticalFlowImageFormatInfoNV);
1955         }
1956         case VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV: {
1957             return sizeof(VkOpticalFlowSessionCreatePrivateDataInfoNV);
1958         }
1959 #endif
1960 #ifdef VK_EXT_legacy_dithering
1961         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT: {
1962             return sizeof(VkPhysicalDeviceLegacyDitheringFeaturesEXT);
1963         }
1964 #endif
1965 #ifdef VK_EXT_pipeline_protected_access
1966         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT: {
1967             return sizeof(VkPhysicalDevicePipelineProtectedAccessFeaturesEXT);
1968         }
1969 #endif
1970 #ifdef VK_ANDROID_external_format_resolve
1971         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID: {
1972             return sizeof(VkPhysicalDeviceExternalFormatResolveFeaturesANDROID);
1973         }
1974         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID: {
1975             return sizeof(VkPhysicalDeviceExternalFormatResolvePropertiesANDROID);
1976         }
1977         case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID: {
1978             return sizeof(VkAndroidHardwareBufferFormatResolvePropertiesANDROID);
1979         }
1980 #endif
1981 #ifdef VK_EXT_shader_object
1982         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT: {
1983             return sizeof(VkPhysicalDeviceShaderObjectFeaturesEXT);
1984         }
1985         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT: {
1986             return sizeof(VkPhysicalDeviceShaderObjectPropertiesEXT);
1987         }
1988 #endif
1989 #ifdef VK_QCOM_tile_properties
1990         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM: {
1991             return sizeof(VkPhysicalDeviceTilePropertiesFeaturesQCOM);
1992         }
1993 #endif
1994 #ifdef VK_SEC_amigo_profiling
1995         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC: {
1996             return sizeof(VkPhysicalDeviceAmigoProfilingFeaturesSEC);
1997         }
1998         case VK_STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC: {
1999             return sizeof(VkAmigoProfilingSubmitInfoSEC);
2000         }
2001 #endif
2002 #ifdef VK_QCOM_multiview_per_view_viewports
2003         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM: {
2004             return sizeof(VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM);
2005         }
2006 #endif
2007 #ifdef VK_NV_ray_tracing_invocation_reorder
2008         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV: {
2009             return sizeof(VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV);
2010         }
2011         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV: {
2012             return sizeof(VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV);
2013         }
2014 #endif
2015 #ifdef VK_NV_extended_sparse_address_space
2016         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV: {
2017             return sizeof(VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV);
2018         }
2019         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV: {
2020             return sizeof(VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV);
2021         }
2022 #endif
2023 #ifdef VK_ARM_shader_core_builtins
2024         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM: {
2025             return sizeof(VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM);
2026         }
2027         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM: {
2028             return sizeof(VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM);
2029         }
2030 #endif
2031 #ifdef VK_EXT_pipeline_library_group_handles
2032         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT: {
2033             return sizeof(VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT);
2034         }
2035 #endif
2036 #ifdef VK_EXT_dynamic_rendering_unused_attachments
2037         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT: {
2038             return sizeof(VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT);
2039         }
2040 #endif
2041 #ifdef VK_NV_low_latency2
2042         case VK_STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV: {
2043             return sizeof(VkLatencySubmissionPresentIdNV);
2044         }
2045         case VK_STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NV: {
2046             return sizeof(VkSwapchainLatencyCreateInfoNV);
2047         }
2048         case VK_STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV: {
2049             return sizeof(VkLatencySurfaceCapabilitiesNV);
2050         }
2051 #endif
2052 #ifdef VK_QCOM_multiview_per_view_render_areas
2053         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM: {
2054             return sizeof(VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM);
2055         }
2056         case VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM: {
2057             return sizeof(VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM);
2058         }
2059 #endif
2060 #ifdef VK_QCOM_image_processing2
2061         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM: {
2062             return sizeof(VkPhysicalDeviceImageProcessing2FeaturesQCOM);
2063         }
2064         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM: {
2065             return sizeof(VkPhysicalDeviceImageProcessing2PropertiesQCOM);
2066         }
2067         case VK_STRUCTURE_TYPE_SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM: {
2068             return sizeof(VkSamplerBlockMatchWindowCreateInfoQCOM);
2069         }
2070 #endif
2071 #ifdef VK_QCOM_filter_cubic_weights
2072         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM: {
2073             return sizeof(VkPhysicalDeviceCubicWeightsFeaturesQCOM);
2074         }
2075         case VK_STRUCTURE_TYPE_SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM: {
2076             return sizeof(VkSamplerCubicWeightsCreateInfoQCOM);
2077         }
2078         case VK_STRUCTURE_TYPE_BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM: {
2079             return sizeof(VkBlitImageCubicWeightsInfoQCOM);
2080         }
2081 #endif
2082 #ifdef VK_QCOM_ycbcr_degamma
2083         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM: {
2084             return sizeof(VkPhysicalDeviceYcbcrDegammaFeaturesQCOM);
2085         }
2086         case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM: {
2087             return sizeof(VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM);
2088         }
2089 #endif
2090 #ifdef VK_QCOM_filter_cubic_clamp
2091         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM: {
2092             return sizeof(VkPhysicalDeviceCubicClampFeaturesQCOM);
2093         }
2094 #endif
2095 #ifdef VK_EXT_attachment_feedback_loop_dynamic_state
2096         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT: {
2097             return sizeof(VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT);
2098         }
2099 #endif
2100 #ifdef VK_MSFT_layered_driver
2101         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT: {
2102             return sizeof(VkPhysicalDeviceLayeredDriverPropertiesMSFT);
2103         }
2104 #endif
2105 #ifdef VK_NV_descriptor_pool_overallocation
2106         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV: {
2107             return sizeof(VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV);
2108         }
2109 #endif
2110 #ifdef VK_KHR_acceleration_structure
2111         case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR: {
2112             return sizeof(VkWriteDescriptorSetAccelerationStructureKHR);
2113         }
2114         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR: {
2115             return sizeof(VkPhysicalDeviceAccelerationStructureFeaturesKHR);
2116         }
2117         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR: {
2118             return sizeof(VkPhysicalDeviceAccelerationStructurePropertiesKHR);
2119         }
2120 #endif
2121 #ifdef VK_KHR_ray_tracing_pipeline
2122         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR: {
2123             return sizeof(VkPhysicalDeviceRayTracingPipelineFeaturesKHR);
2124         }
2125         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR: {
2126             return sizeof(VkPhysicalDeviceRayTracingPipelinePropertiesKHR);
2127         }
2128 #endif
2129 #ifdef VK_KHR_ray_query
2130         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR: {
2131             return sizeof(VkPhysicalDeviceRayQueryFeaturesKHR);
2132         }
2133 #endif
2134 #ifdef VK_EXT_mesh_shader
2135         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT: {
2136             return sizeof(VkPhysicalDeviceMeshShaderFeaturesEXT);
2137         }
2138         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT: {
2139             return sizeof(VkPhysicalDeviceMeshShaderPropertiesEXT);
2140         }
2141 #endif
2142         default: {
2143             fprintf(stderr, "Unhandled Vulkan structure type %s [%d], aborting.\n",
2144                     string_VkStructureType(VkStructureType(structType)), structType);
2145             GFXSTREAM_ABORT(::emugl::FatalError(::emugl::ABORT_REASON_OTHER));
2146             return static_cast<size_t>(0);
2147         }
2148     }
2149 }
2150 
goldfish_vk_extension_struct_size_with_stream_features(uint32_t streamFeatures,VkStructureType rootType,const void * structExtension)2151 size_t goldfish_vk_extension_struct_size_with_stream_features(uint32_t streamFeatures,
2152                                                               VkStructureType rootType,
2153                                                               const void* structExtension) {
2154     if (!structExtension) {
2155         return (size_t)0;
2156     }
2157     uint32_t structType = (uint32_t)goldfish_vk_struct_type(structExtension);
2158     switch (structType) {
2159 #ifdef VK_VERSION_1_0
2160         case VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO: {
2161             return sizeof(VkShaderModuleCreateInfo);
2162         }
2163 #endif
2164 #ifdef VK_VERSION_1_1
2165         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES: {
2166             return sizeof(VkPhysicalDeviceSubgroupProperties);
2167         }
2168         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES: {
2169             return sizeof(VkPhysicalDevice16BitStorageFeatures);
2170         }
2171         case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS: {
2172             return sizeof(VkMemoryDedicatedRequirements);
2173         }
2174         case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO: {
2175             return sizeof(VkMemoryDedicatedAllocateInfo);
2176         }
2177         case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO: {
2178             return sizeof(VkMemoryAllocateFlagsInfo);
2179         }
2180         case VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO: {
2181             return sizeof(VkDeviceGroupRenderPassBeginInfo);
2182         }
2183         case VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO: {
2184             return sizeof(VkDeviceGroupCommandBufferBeginInfo);
2185         }
2186         case VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO: {
2187             return sizeof(VkDeviceGroupSubmitInfo);
2188         }
2189         case VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO: {
2190             return sizeof(VkDeviceGroupBindSparseInfo);
2191         }
2192         case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO: {
2193             return sizeof(VkBindBufferMemoryDeviceGroupInfo);
2194         }
2195         case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO: {
2196             return sizeof(VkBindImageMemoryDeviceGroupInfo);
2197         }
2198         case VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO: {
2199             return sizeof(VkDeviceGroupDeviceCreateInfo);
2200         }
2201         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2: {
2202             return sizeof(VkPhysicalDeviceFeatures2);
2203         }
2204         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES: {
2205             return sizeof(VkPhysicalDevicePointClippingProperties);
2206         }
2207         case VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO: {
2208             return sizeof(VkRenderPassInputAttachmentAspectCreateInfo);
2209         }
2210         case VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO: {
2211             return sizeof(VkImageViewUsageCreateInfo);
2212         }
2213         case VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO: {
2214             return sizeof(VkPipelineTessellationDomainOriginStateCreateInfo);
2215         }
2216         case VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO: {
2217             return sizeof(VkRenderPassMultiviewCreateInfo);
2218         }
2219         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES: {
2220             return sizeof(VkPhysicalDeviceMultiviewFeatures);
2221         }
2222         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES: {
2223             return sizeof(VkPhysicalDeviceMultiviewProperties);
2224         }
2225         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES: {
2226             return sizeof(VkPhysicalDeviceVariablePointersFeatures);
2227         }
2228         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES: {
2229             return sizeof(VkPhysicalDeviceProtectedMemoryFeatures);
2230         }
2231         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES: {
2232             return sizeof(VkPhysicalDeviceProtectedMemoryProperties);
2233         }
2234         case VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO: {
2235             return sizeof(VkProtectedSubmitInfo);
2236         }
2237         case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO: {
2238             return sizeof(VkSamplerYcbcrConversionInfo);
2239         }
2240         case VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO: {
2241             return sizeof(VkBindImagePlaneMemoryInfo);
2242         }
2243         case VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO: {
2244             return sizeof(VkImagePlaneMemoryRequirementsInfo);
2245         }
2246         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES: {
2247             return sizeof(VkPhysicalDeviceSamplerYcbcrConversionFeatures);
2248         }
2249         case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES: {
2250             return sizeof(VkSamplerYcbcrConversionImageFormatProperties);
2251         }
2252         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO: {
2253             return sizeof(VkPhysicalDeviceExternalImageFormatInfo);
2254         }
2255         case VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES: {
2256             return sizeof(VkExternalImageFormatProperties);
2257         }
2258         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES: {
2259             return sizeof(VkPhysicalDeviceIDProperties);
2260         }
2261         case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO: {
2262             return sizeof(VkExternalMemoryImageCreateInfo);
2263         }
2264         case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO: {
2265             return sizeof(VkExternalMemoryBufferCreateInfo);
2266         }
2267         case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO: {
2268             return sizeof(VkExportMemoryAllocateInfo);
2269         }
2270         case VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO: {
2271             return sizeof(VkExportFenceCreateInfo);
2272         }
2273         case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO: {
2274             return sizeof(VkExportSemaphoreCreateInfo);
2275         }
2276         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES: {
2277             return sizeof(VkPhysicalDeviceMaintenance3Properties);
2278         }
2279         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES: {
2280             return sizeof(VkPhysicalDeviceShaderDrawParametersFeatures);
2281         }
2282 #endif
2283 #ifdef VK_VERSION_1_2
2284         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES: {
2285             return sizeof(VkPhysicalDeviceVulkan11Features);
2286         }
2287         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES: {
2288             return sizeof(VkPhysicalDeviceVulkan11Properties);
2289         }
2290         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES: {
2291             return sizeof(VkPhysicalDeviceVulkan12Features);
2292         }
2293         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES: {
2294             return sizeof(VkPhysicalDeviceVulkan12Properties);
2295         }
2296         case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO: {
2297             return sizeof(VkImageFormatListCreateInfo);
2298         }
2299         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES: {
2300             return sizeof(VkPhysicalDevice8BitStorageFeatures);
2301         }
2302         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES: {
2303             return sizeof(VkPhysicalDeviceDriverProperties);
2304         }
2305         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES: {
2306             return sizeof(VkPhysicalDeviceShaderAtomicInt64Features);
2307         }
2308         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES: {
2309             if (streamFeatures & VULKAN_STREAM_FEATURE_SHADER_FLOAT16_INT8_BIT) {
2310                 return sizeof(VkPhysicalDeviceShaderFloat16Int8Features);
2311             } else {
2312                 return 0;
2313             }
2314         }
2315         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES: {
2316             return sizeof(VkPhysicalDeviceFloatControlsProperties);
2317         }
2318         case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO: {
2319             return sizeof(VkDescriptorSetLayoutBindingFlagsCreateInfo);
2320         }
2321         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES: {
2322             return sizeof(VkPhysicalDeviceDescriptorIndexingFeatures);
2323         }
2324         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES: {
2325             return sizeof(VkPhysicalDeviceDescriptorIndexingProperties);
2326         }
2327         case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO: {
2328             return sizeof(VkDescriptorSetVariableDescriptorCountAllocateInfo);
2329         }
2330         case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT: {
2331             return sizeof(VkDescriptorSetVariableDescriptorCountLayoutSupport);
2332         }
2333         case VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE: {
2334             return sizeof(VkSubpassDescriptionDepthStencilResolve);
2335         }
2336         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES: {
2337             return sizeof(VkPhysicalDeviceDepthStencilResolveProperties);
2338         }
2339         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES: {
2340             return sizeof(VkPhysicalDeviceScalarBlockLayoutFeatures);
2341         }
2342         case VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO: {
2343             return sizeof(VkImageStencilUsageCreateInfo);
2344         }
2345         case VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO: {
2346             return sizeof(VkSamplerReductionModeCreateInfo);
2347         }
2348         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES: {
2349             return sizeof(VkPhysicalDeviceSamplerFilterMinmaxProperties);
2350         }
2351         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES: {
2352             return sizeof(VkPhysicalDeviceVulkanMemoryModelFeatures);
2353         }
2354         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES: {
2355             return sizeof(VkPhysicalDeviceImagelessFramebufferFeatures);
2356         }
2357         case VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO: {
2358             return sizeof(VkFramebufferAttachmentsCreateInfo);
2359         }
2360         case VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO: {
2361             return sizeof(VkRenderPassAttachmentBeginInfo);
2362         }
2363         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES: {
2364             return sizeof(VkPhysicalDeviceUniformBufferStandardLayoutFeatures);
2365         }
2366         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES: {
2367             return sizeof(VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures);
2368         }
2369         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES: {
2370             return sizeof(VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures);
2371         }
2372         case VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT: {
2373             return sizeof(VkAttachmentReferenceStencilLayout);
2374         }
2375         case VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT: {
2376             return sizeof(VkAttachmentDescriptionStencilLayout);
2377         }
2378         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES: {
2379             return sizeof(VkPhysicalDeviceHostQueryResetFeatures);
2380         }
2381         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES: {
2382             return sizeof(VkPhysicalDeviceTimelineSemaphoreFeatures);
2383         }
2384         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES: {
2385             return sizeof(VkPhysicalDeviceTimelineSemaphoreProperties);
2386         }
2387         case VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO: {
2388             return sizeof(VkSemaphoreTypeCreateInfo);
2389         }
2390         case VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO: {
2391             return sizeof(VkTimelineSemaphoreSubmitInfo);
2392         }
2393         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES: {
2394             return sizeof(VkPhysicalDeviceBufferDeviceAddressFeatures);
2395         }
2396         case VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO: {
2397             return sizeof(VkBufferOpaqueCaptureAddressCreateInfo);
2398         }
2399         case VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO: {
2400             return sizeof(VkMemoryOpaqueCaptureAddressAllocateInfo);
2401         }
2402 #endif
2403 #ifdef VK_VERSION_1_3
2404         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES: {
2405             return sizeof(VkPhysicalDeviceVulkan13Features);
2406         }
2407         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES: {
2408             return sizeof(VkPhysicalDeviceVulkan13Properties);
2409         }
2410         case VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO: {
2411             return sizeof(VkPipelineCreationFeedbackCreateInfo);
2412         }
2413         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES: {
2414             return sizeof(VkPhysicalDeviceShaderTerminateInvocationFeatures);
2415         }
2416         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES: {
2417             return sizeof(VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures);
2418         }
2419         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES: {
2420             return sizeof(VkPhysicalDevicePrivateDataFeatures);
2421         }
2422         case VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO: {
2423             return sizeof(VkDevicePrivateDataCreateInfo);
2424         }
2425         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES: {
2426             return sizeof(VkPhysicalDevicePipelineCreationCacheControlFeatures);
2427         }
2428         case VK_STRUCTURE_TYPE_MEMORY_BARRIER_2: {
2429             return sizeof(VkMemoryBarrier2);
2430         }
2431         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES: {
2432             return sizeof(VkPhysicalDeviceSynchronization2Features);
2433         }
2434         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES: {
2435             return sizeof(VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures);
2436         }
2437         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES: {
2438             return sizeof(VkPhysicalDeviceImageRobustnessFeatures);
2439         }
2440         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES: {
2441             return sizeof(VkPhysicalDeviceSubgroupSizeControlFeatures);
2442         }
2443         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES: {
2444             return sizeof(VkPhysicalDeviceSubgroupSizeControlProperties);
2445         }
2446         case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO: {
2447             return sizeof(VkPipelineShaderStageRequiredSubgroupSizeCreateInfo);
2448         }
2449         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES: {
2450             return sizeof(VkPhysicalDeviceInlineUniformBlockFeatures);
2451         }
2452         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES: {
2453             return sizeof(VkPhysicalDeviceInlineUniformBlockProperties);
2454         }
2455         case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK: {
2456             return sizeof(VkWriteDescriptorSetInlineUniformBlock);
2457         }
2458         case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO: {
2459             return sizeof(VkDescriptorPoolInlineUniformBlockCreateInfo);
2460         }
2461         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES: {
2462             return sizeof(VkPhysicalDeviceTextureCompressionASTCHDRFeatures);
2463         }
2464         case VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO: {
2465             return sizeof(VkPipelineRenderingCreateInfo);
2466         }
2467         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES: {
2468             return sizeof(VkPhysicalDeviceDynamicRenderingFeatures);
2469         }
2470         case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO: {
2471             return sizeof(VkCommandBufferInheritanceRenderingInfo);
2472         }
2473         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES: {
2474             return sizeof(VkPhysicalDeviceShaderIntegerDotProductFeatures);
2475         }
2476         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES: {
2477             return sizeof(VkPhysicalDeviceShaderIntegerDotProductProperties);
2478         }
2479         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES: {
2480             return sizeof(VkPhysicalDeviceTexelBufferAlignmentProperties);
2481         }
2482         case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3: {
2483             return sizeof(VkFormatProperties3);
2484         }
2485         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES: {
2486             return sizeof(VkPhysicalDeviceMaintenance4Features);
2487         }
2488         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES: {
2489             return sizeof(VkPhysicalDeviceMaintenance4Properties);
2490         }
2491 #endif
2492 #ifdef VK_KHR_swapchain
2493         case VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR: {
2494             return sizeof(VkImageSwapchainCreateInfoKHR);
2495         }
2496         case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR: {
2497             return sizeof(VkBindImageMemorySwapchainInfoKHR);
2498         }
2499         case VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR: {
2500             return sizeof(VkDeviceGroupPresentInfoKHR);
2501         }
2502         case VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR: {
2503             return sizeof(VkDeviceGroupSwapchainCreateInfoKHR);
2504         }
2505 #endif
2506 #ifdef VK_KHR_display_swapchain
2507         case VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR: {
2508             return sizeof(VkDisplayPresentInfoKHR);
2509         }
2510 #endif
2511 #ifdef VK_KHR_video_queue
2512         case VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR: {
2513             return sizeof(VkQueueFamilyQueryResultStatusPropertiesKHR);
2514         }
2515         case VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR: {
2516             return sizeof(VkQueueFamilyVideoPropertiesKHR);
2517         }
2518         case VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR: {
2519             return sizeof(VkVideoProfileInfoKHR);
2520         }
2521         case VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR: {
2522             return sizeof(VkVideoProfileListInfoKHR);
2523         }
2524 #endif
2525 #ifdef VK_KHR_video_decode_queue
2526         case VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR: {
2527             return sizeof(VkVideoDecodeCapabilitiesKHR);
2528         }
2529         case VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR: {
2530             return sizeof(VkVideoDecodeUsageInfoKHR);
2531         }
2532 #endif
2533 #ifdef VK_KHR_video_decode_h264
2534         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_KHR: {
2535             return sizeof(VkVideoDecodeH264ProfileInfoKHR);
2536         }
2537         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_KHR: {
2538             return sizeof(VkVideoDecodeH264CapabilitiesKHR);
2539         }
2540         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR: {
2541             return sizeof(VkVideoDecodeH264SessionParametersAddInfoKHR);
2542         }
2543         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR: {
2544             return sizeof(VkVideoDecodeH264SessionParametersCreateInfoKHR);
2545         }
2546         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_KHR: {
2547             return sizeof(VkVideoDecodeH264PictureInfoKHR);
2548         }
2549         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR: {
2550             return sizeof(VkVideoDecodeH264DpbSlotInfoKHR);
2551         }
2552 #endif
2553 #ifdef VK_KHR_dynamic_rendering
2554         case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR: {
2555             return sizeof(VkRenderingFragmentShadingRateAttachmentInfoKHR);
2556         }
2557         case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT: {
2558             return sizeof(VkRenderingFragmentDensityMapAttachmentInfoEXT);
2559         }
2560         case VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD: {
2561             return sizeof(VkAttachmentSampleCountInfoAMD);
2562         }
2563         case VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX: {
2564             return sizeof(VkMultiviewPerViewAttributesInfoNVX);
2565         }
2566 #endif
2567 #ifdef VK_KHR_win32_keyed_mutex
2568         case VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR: {
2569             return sizeof(VkWin32KeyedMutexAcquireReleaseInfoKHR);
2570         }
2571 #endif
2572 #ifdef VK_KHR_push_descriptor
2573         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR: {
2574             return sizeof(VkPhysicalDevicePushDescriptorPropertiesKHR);
2575         }
2576 #endif
2577 #ifdef VK_KHR_incremental_present
2578         case VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR: {
2579             return sizeof(VkPresentRegionsKHR);
2580         }
2581 #endif
2582 #ifdef VK_KHR_shared_presentable_image
2583         case VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR: {
2584             return sizeof(VkSharedPresentSurfaceCapabilitiesKHR);
2585         }
2586 #endif
2587 #ifdef VK_KHR_external_fence_win32
2588         case VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR: {
2589             return sizeof(VkExportFenceWin32HandleInfoKHR);
2590         }
2591 #endif
2592 #ifdef VK_KHR_performance_query
2593         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR: {
2594             return sizeof(VkPhysicalDevicePerformanceQueryFeaturesKHR);
2595         }
2596         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR: {
2597             return sizeof(VkPhysicalDevicePerformanceQueryPropertiesKHR);
2598         }
2599         case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR: {
2600             return sizeof(VkQueryPoolPerformanceCreateInfoKHR);
2601         }
2602         case VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR: {
2603             return sizeof(VkPerformanceQuerySubmitInfoKHR);
2604         }
2605 #endif
2606 #ifdef VK_KHR_portability_subset
2607 #ifdef VK_ENABLE_BETA_EXTENSIONS
2608         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR: {
2609             return sizeof(VkPhysicalDevicePortabilitySubsetFeaturesKHR);
2610         }
2611 #endif  // VK_ENABLE_BETA_EXTENSIONS
2612 #ifdef VK_ENABLE_BETA_EXTENSIONS
2613         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR: {
2614             return sizeof(VkPhysicalDevicePortabilitySubsetPropertiesKHR);
2615         }
2616 #endif  // VK_ENABLE_BETA_EXTENSIONS
2617 #endif
2618 #ifdef VK_KHR_shader_clock
2619         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR: {
2620             return sizeof(VkPhysicalDeviceShaderClockFeaturesKHR);
2621         }
2622 #endif
2623 #ifdef VK_KHR_video_decode_h265
2624         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_KHR: {
2625             return sizeof(VkVideoDecodeH265ProfileInfoKHR);
2626         }
2627         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_KHR: {
2628             return sizeof(VkVideoDecodeH265CapabilitiesKHR);
2629         }
2630         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR: {
2631             return sizeof(VkVideoDecodeH265SessionParametersAddInfoKHR);
2632         }
2633         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR: {
2634             return sizeof(VkVideoDecodeH265SessionParametersCreateInfoKHR);
2635         }
2636         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_KHR: {
2637             return sizeof(VkVideoDecodeH265PictureInfoKHR);
2638         }
2639         case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR: {
2640             return sizeof(VkVideoDecodeH265DpbSlotInfoKHR);
2641         }
2642 #endif
2643 #ifdef VK_KHR_global_priority
2644         case VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR: {
2645             return sizeof(VkDeviceQueueGlobalPriorityCreateInfoKHR);
2646         }
2647         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR: {
2648             return sizeof(VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR);
2649         }
2650         case VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR: {
2651             return sizeof(VkQueueFamilyGlobalPriorityPropertiesKHR);
2652         }
2653 #endif
2654 #ifdef VK_KHR_fragment_shading_rate
2655         case VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR: {
2656             return sizeof(VkFragmentShadingRateAttachmentInfoKHR);
2657         }
2658         case VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR: {
2659             return sizeof(VkPipelineFragmentShadingRateStateCreateInfoKHR);
2660         }
2661         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR: {
2662             return sizeof(VkPhysicalDeviceFragmentShadingRateFeaturesKHR);
2663         }
2664         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR: {
2665             return sizeof(VkPhysicalDeviceFragmentShadingRatePropertiesKHR);
2666         }
2667 #endif
2668 #ifdef VK_KHR_surface_protected_capabilities
2669         case VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR: {
2670             return sizeof(VkSurfaceProtectedCapabilitiesKHR);
2671         }
2672 #endif
2673 #ifdef VK_KHR_present_wait
2674         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR: {
2675             return sizeof(VkPhysicalDevicePresentWaitFeaturesKHR);
2676         }
2677 #endif
2678 #ifdef VK_KHR_pipeline_executable_properties
2679         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR: {
2680             return sizeof(VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR);
2681         }
2682 #endif
2683 #ifdef VK_KHR_pipeline_library
2684         case VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR: {
2685             return sizeof(VkPipelineLibraryCreateInfoKHR);
2686         }
2687 #endif
2688 #ifdef VK_KHR_present_id
2689         case VK_STRUCTURE_TYPE_PRESENT_ID_KHR: {
2690             return sizeof(VkPresentIdKHR);
2691         }
2692         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR: {
2693             return sizeof(VkPhysicalDevicePresentIdFeaturesKHR);
2694         }
2695 #endif
2696 #ifdef VK_KHR_video_encode_queue
2697 #ifdef VK_ENABLE_BETA_EXTENSIONS
2698         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR: {
2699             return sizeof(VkVideoEncodeCapabilitiesKHR);
2700         }
2701 #endif  // VK_ENABLE_BETA_EXTENSIONS
2702 #ifdef VK_ENABLE_BETA_EXTENSIONS
2703         case VK_STRUCTURE_TYPE_QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHR: {
2704             return sizeof(VkQueryPoolVideoEncodeFeedbackCreateInfoKHR);
2705         }
2706 #endif  // VK_ENABLE_BETA_EXTENSIONS
2707 #ifdef VK_ENABLE_BETA_EXTENSIONS
2708         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHR: {
2709             return sizeof(VkVideoEncodeUsageInfoKHR);
2710         }
2711 #endif  // VK_ENABLE_BETA_EXTENSIONS
2712 #ifdef VK_ENABLE_BETA_EXTENSIONS
2713         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR: {
2714             return sizeof(VkVideoEncodeRateControlInfoKHR);
2715         }
2716 #endif  // VK_ENABLE_BETA_EXTENSIONS
2717 #ifdef VK_ENABLE_BETA_EXTENSIONS
2718         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR: {
2719             return sizeof(VkVideoEncodeQualityLevelInfoKHR);
2720         }
2721 #endif  // VK_ENABLE_BETA_EXTENSIONS
2722 #endif
2723 #ifdef VK_KHR_synchronization2
2724         case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV: {
2725             return sizeof(VkQueueFamilyCheckpointProperties2NV);
2726         }
2727 #endif
2728 #ifdef VK_KHR_fragment_shader_barycentric
2729         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR: {
2730             return sizeof(VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR);
2731         }
2732         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR: {
2733             return sizeof(VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR);
2734         }
2735 #endif
2736 #ifdef VK_KHR_shader_subgroup_uniform_control_flow
2737         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR: {
2738             return sizeof(VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR);
2739         }
2740 #endif
2741 #ifdef VK_KHR_workgroup_memory_explicit_layout
2742         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR: {
2743             return sizeof(VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR);
2744         }
2745 #endif
2746 #ifdef VK_KHR_ray_tracing_maintenance1
2747         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR: {
2748             return sizeof(VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR);
2749         }
2750 #endif
2751 #ifdef VK_KHR_maintenance5
2752         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR: {
2753             return sizeof(VkPhysicalDeviceMaintenance5FeaturesKHR);
2754         }
2755         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR: {
2756             return sizeof(VkPhysicalDeviceMaintenance5PropertiesKHR);
2757         }
2758         case VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR: {
2759             return sizeof(VkPipelineCreateFlags2CreateInfoKHR);
2760         }
2761         case VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR: {
2762             return sizeof(VkBufferUsageFlags2CreateInfoKHR);
2763         }
2764 #endif
2765 #ifdef VK_KHR_ray_tracing_position_fetch
2766         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR: {
2767             return sizeof(VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR);
2768         }
2769 #endif
2770 #ifdef VK_KHR_cooperative_matrix
2771         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR: {
2772             return sizeof(VkPhysicalDeviceCooperativeMatrixFeaturesKHR);
2773         }
2774         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR: {
2775             return sizeof(VkPhysicalDeviceCooperativeMatrixPropertiesKHR);
2776         }
2777 #endif
2778 #ifdef VK_KHR_line_rasterization
2779         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_KHR: {
2780             return sizeof(VkPhysicalDeviceLineRasterizationFeaturesKHR);
2781         }
2782         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_KHR: {
2783             return sizeof(VkPhysicalDeviceLineRasterizationPropertiesKHR);
2784         }
2785         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_KHR: {
2786             return sizeof(VkPipelineRasterizationLineStateCreateInfoKHR);
2787         }
2788 #endif
2789 #ifdef VK_ANDROID_native_buffer
2790         case VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID: {
2791             return sizeof(VkNativeBufferANDROID);
2792         }
2793 #endif
2794 #ifdef VK_EXT_debug_report
2795         case VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT: {
2796             return sizeof(VkDebugReportCallbackCreateInfoEXT);
2797         }
2798 #endif
2799 #ifdef VK_AMD_rasterization_order
2800         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD: {
2801             return sizeof(VkPipelineRasterizationStateRasterizationOrderAMD);
2802         }
2803 #endif
2804 #ifdef VK_NV_dedicated_allocation
2805         case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV: {
2806             return sizeof(VkDedicatedAllocationImageCreateInfoNV);
2807         }
2808         case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV: {
2809             return sizeof(VkDedicatedAllocationBufferCreateInfoNV);
2810         }
2811         case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV: {
2812             return sizeof(VkDedicatedAllocationMemoryAllocateInfoNV);
2813         }
2814 #endif
2815 #ifdef VK_EXT_transform_feedback
2816         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT: {
2817             return sizeof(VkPhysicalDeviceTransformFeedbackFeaturesEXT);
2818         }
2819         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT: {
2820             return sizeof(VkPhysicalDeviceTransformFeedbackPropertiesEXT);
2821         }
2822         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT: {
2823             return sizeof(VkPipelineRasterizationStateStreamCreateInfoEXT);
2824         }
2825 #endif
2826 #ifdef VK_EXT_video_encode_h264
2827 #ifdef VK_ENABLE_BETA_EXTENSIONS
2828         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_EXT: {
2829             return sizeof(VkVideoEncodeH264CapabilitiesEXT);
2830         }
2831 #endif  // VK_ENABLE_BETA_EXTENSIONS
2832 #ifdef VK_ENABLE_BETA_EXTENSIONS
2833         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_QUALITY_LEVEL_PROPERTIES_EXT: {
2834             return sizeof(VkVideoEncodeH264QualityLevelPropertiesEXT);
2835         }
2836 #endif  // VK_ENABLE_BETA_EXTENSIONS
2837 #ifdef VK_ENABLE_BETA_EXTENSIONS
2838         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_EXT: {
2839             return sizeof(VkVideoEncodeH264SessionCreateInfoEXT);
2840         }
2841 #endif  // VK_ENABLE_BETA_EXTENSIONS
2842 #ifdef VK_ENABLE_BETA_EXTENSIONS
2843         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_EXT: {
2844             return sizeof(VkVideoEncodeH264SessionParametersAddInfoEXT);
2845         }
2846 #endif  // VK_ENABLE_BETA_EXTENSIONS
2847 #ifdef VK_ENABLE_BETA_EXTENSIONS
2848         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_EXT: {
2849             return sizeof(VkVideoEncodeH264SessionParametersCreateInfoEXT);
2850         }
2851 #endif  // VK_ENABLE_BETA_EXTENSIONS
2852 #ifdef VK_ENABLE_BETA_EXTENSIONS
2853         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_GET_INFO_EXT: {
2854             return sizeof(VkVideoEncodeH264SessionParametersGetInfoEXT);
2855         }
2856 #endif  // VK_ENABLE_BETA_EXTENSIONS
2857 #ifdef VK_ENABLE_BETA_EXTENSIONS
2858         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_FEEDBACK_INFO_EXT: {
2859             return sizeof(VkVideoEncodeH264SessionParametersFeedbackInfoEXT);
2860         }
2861 #endif  // VK_ENABLE_BETA_EXTENSIONS
2862 #ifdef VK_ENABLE_BETA_EXTENSIONS
2863         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PICTURE_INFO_EXT: {
2864             return sizeof(VkVideoEncodeH264PictureInfoEXT);
2865         }
2866 #endif  // VK_ENABLE_BETA_EXTENSIONS
2867 #ifdef VK_ENABLE_BETA_EXTENSIONS
2868         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_EXT: {
2869             return sizeof(VkVideoEncodeH264DpbSlotInfoEXT);
2870         }
2871 #endif  // VK_ENABLE_BETA_EXTENSIONS
2872 #ifdef VK_ENABLE_BETA_EXTENSIONS
2873         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_INFO_EXT: {
2874             return sizeof(VkVideoEncodeH264ProfileInfoEXT);
2875         }
2876 #endif  // VK_ENABLE_BETA_EXTENSIONS
2877 #ifdef VK_ENABLE_BETA_EXTENSIONS
2878         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_EXT: {
2879             return sizeof(VkVideoEncodeH264RateControlInfoEXT);
2880         }
2881 #endif  // VK_ENABLE_BETA_EXTENSIONS
2882 #ifdef VK_ENABLE_BETA_EXTENSIONS
2883         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_EXT: {
2884             return sizeof(VkVideoEncodeH264RateControlLayerInfoEXT);
2885         }
2886 #endif  // VK_ENABLE_BETA_EXTENSIONS
2887 #ifdef VK_ENABLE_BETA_EXTENSIONS
2888         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_GOP_REMAINING_FRAME_INFO_EXT: {
2889             return sizeof(VkVideoEncodeH264GopRemainingFrameInfoEXT);
2890         }
2891 #endif  // VK_ENABLE_BETA_EXTENSIONS
2892 #endif
2893 #ifdef VK_EXT_video_encode_h265
2894 #ifdef VK_ENABLE_BETA_EXTENSIONS
2895         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_EXT: {
2896             return sizeof(VkVideoEncodeH265CapabilitiesEXT);
2897         }
2898 #endif  // VK_ENABLE_BETA_EXTENSIONS
2899 #ifdef VK_ENABLE_BETA_EXTENSIONS
2900         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_CREATE_INFO_EXT: {
2901             return sizeof(VkVideoEncodeH265SessionCreateInfoEXT);
2902         }
2903 #endif  // VK_ENABLE_BETA_EXTENSIONS
2904 #ifdef VK_ENABLE_BETA_EXTENSIONS
2905         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_QUALITY_LEVEL_PROPERTIES_EXT: {
2906             return sizeof(VkVideoEncodeH265QualityLevelPropertiesEXT);
2907         }
2908 #endif  // VK_ENABLE_BETA_EXTENSIONS
2909 #ifdef VK_ENABLE_BETA_EXTENSIONS
2910         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_EXT: {
2911             return sizeof(VkVideoEncodeH265SessionParametersAddInfoEXT);
2912         }
2913 #endif  // VK_ENABLE_BETA_EXTENSIONS
2914 #ifdef VK_ENABLE_BETA_EXTENSIONS
2915         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_EXT: {
2916             return sizeof(VkVideoEncodeH265SessionParametersCreateInfoEXT);
2917         }
2918 #endif  // VK_ENABLE_BETA_EXTENSIONS
2919 #ifdef VK_ENABLE_BETA_EXTENSIONS
2920         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_GET_INFO_EXT: {
2921             return sizeof(VkVideoEncodeH265SessionParametersGetInfoEXT);
2922         }
2923 #endif  // VK_ENABLE_BETA_EXTENSIONS
2924 #ifdef VK_ENABLE_BETA_EXTENSIONS
2925         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_FEEDBACK_INFO_EXT: {
2926             return sizeof(VkVideoEncodeH265SessionParametersFeedbackInfoEXT);
2927         }
2928 #endif  // VK_ENABLE_BETA_EXTENSIONS
2929 #ifdef VK_ENABLE_BETA_EXTENSIONS
2930         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PICTURE_INFO_EXT: {
2931             return sizeof(VkVideoEncodeH265PictureInfoEXT);
2932         }
2933 #endif  // VK_ENABLE_BETA_EXTENSIONS
2934 #ifdef VK_ENABLE_BETA_EXTENSIONS
2935         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_EXT: {
2936             return sizeof(VkVideoEncodeH265DpbSlotInfoEXT);
2937         }
2938 #endif  // VK_ENABLE_BETA_EXTENSIONS
2939 #ifdef VK_ENABLE_BETA_EXTENSIONS
2940         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_INFO_EXT: {
2941             return sizeof(VkVideoEncodeH265ProfileInfoEXT);
2942         }
2943 #endif  // VK_ENABLE_BETA_EXTENSIONS
2944 #ifdef VK_ENABLE_BETA_EXTENSIONS
2945         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_EXT: {
2946             return sizeof(VkVideoEncodeH265RateControlInfoEXT);
2947         }
2948 #endif  // VK_ENABLE_BETA_EXTENSIONS
2949 #ifdef VK_ENABLE_BETA_EXTENSIONS
2950         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_EXT: {
2951             return sizeof(VkVideoEncodeH265RateControlLayerInfoEXT);
2952         }
2953 #endif  // VK_ENABLE_BETA_EXTENSIONS
2954 #ifdef VK_ENABLE_BETA_EXTENSIONS
2955         case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_GOP_REMAINING_FRAME_INFO_EXT: {
2956             return sizeof(VkVideoEncodeH265GopRemainingFrameInfoEXT);
2957         }
2958 #endif  // VK_ENABLE_BETA_EXTENSIONS
2959 #endif
2960 #ifdef VK_AMD_texture_gather_bias_lod
2961         case VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD: {
2962             return sizeof(VkTextureLODGatherFormatPropertiesAMD);
2963         }
2964 #endif
2965 #ifdef VK_NV_corner_sampled_image
2966         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV: {
2967             return sizeof(VkPhysicalDeviceCornerSampledImageFeaturesNV);
2968         }
2969 #endif
2970 #ifdef VK_NV_external_memory
2971         case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV: {
2972             return sizeof(VkExternalMemoryImageCreateInfoNV);
2973         }
2974         case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV: {
2975             return sizeof(VkExportMemoryAllocateInfoNV);
2976         }
2977 #endif
2978 #ifdef VK_NV_external_memory_win32
2979         case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV: {
2980             return sizeof(VkImportMemoryWin32HandleInfoNV);
2981         }
2982         case VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV: {
2983             return sizeof(VkExportMemoryWin32HandleInfoNV);
2984         }
2985 #endif
2986 #ifdef VK_NV_win32_keyed_mutex
2987         case VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV: {
2988             return sizeof(VkWin32KeyedMutexAcquireReleaseInfoNV);
2989         }
2990 #endif
2991 #ifdef VK_EXT_validation_flags
2992         case VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT: {
2993             return sizeof(VkValidationFlagsEXT);
2994         }
2995 #endif
2996 #ifdef VK_EXT_astc_decode_mode
2997         case VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT: {
2998             return sizeof(VkImageViewASTCDecodeModeEXT);
2999         }
3000         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT: {
3001             return sizeof(VkPhysicalDeviceASTCDecodeFeaturesEXT);
3002         }
3003 #endif
3004 #ifdef VK_EXT_pipeline_robustness
3005         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT: {
3006             return sizeof(VkPhysicalDevicePipelineRobustnessFeaturesEXT);
3007         }
3008         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT: {
3009             return sizeof(VkPhysicalDevicePipelineRobustnessPropertiesEXT);
3010         }
3011         case VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT: {
3012             return sizeof(VkPipelineRobustnessCreateInfoEXT);
3013         }
3014 #endif
3015 #ifdef VK_EXT_conditional_rendering
3016         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT: {
3017             return sizeof(VkPhysicalDeviceConditionalRenderingFeaturesEXT);
3018         }
3019         case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT: {
3020             return sizeof(VkCommandBufferInheritanceConditionalRenderingInfoEXT);
3021         }
3022 #endif
3023 #ifdef VK_NV_clip_space_w_scaling
3024         case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV: {
3025             return sizeof(VkPipelineViewportWScalingStateCreateInfoNV);
3026         }
3027 #endif
3028 #ifdef VK_EXT_display_control
3029         case VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT: {
3030             return sizeof(VkSwapchainCounterCreateInfoEXT);
3031         }
3032 #endif
3033 #ifdef VK_GOOGLE_display_timing
3034         case VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE: {
3035             return sizeof(VkPresentTimesInfoGOOGLE);
3036         }
3037 #endif
3038 #ifdef VK_NVX_multiview_per_view_attributes
3039         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX: {
3040             return sizeof(VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX);
3041         }
3042 #endif
3043 #ifdef VK_NV_viewport_swizzle
3044         case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV: {
3045             return sizeof(VkPipelineViewportSwizzleStateCreateInfoNV);
3046         }
3047 #endif
3048 #ifdef VK_EXT_discard_rectangles
3049         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT: {
3050             return sizeof(VkPhysicalDeviceDiscardRectanglePropertiesEXT);
3051         }
3052         case VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT: {
3053             return sizeof(VkPipelineDiscardRectangleStateCreateInfoEXT);
3054         }
3055 #endif
3056 #ifdef VK_EXT_conservative_rasterization
3057         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT: {
3058             return sizeof(VkPhysicalDeviceConservativeRasterizationPropertiesEXT);
3059         }
3060         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT: {
3061             return sizeof(VkPipelineRasterizationConservativeStateCreateInfoEXT);
3062         }
3063 #endif
3064 #ifdef VK_EXT_depth_clip_enable
3065         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT: {
3066             return sizeof(VkPhysicalDeviceDepthClipEnableFeaturesEXT);
3067         }
3068         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT: {
3069             return sizeof(VkPipelineRasterizationDepthClipStateCreateInfoEXT);
3070         }
3071 #endif
3072 #ifdef VK_EXT_debug_utils
3073         case VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT: {
3074             return sizeof(VkDebugUtilsObjectNameInfoEXT);
3075         }
3076         case VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT: {
3077             return sizeof(VkDebugUtilsMessengerCreateInfoEXT);
3078         }
3079 #endif
3080 #ifdef VK_AMDX_shader_enqueue
3081 #ifdef VK_ENABLE_BETA_EXTENSIONS
3082         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX: {
3083             return sizeof(VkPhysicalDeviceShaderEnqueueFeaturesAMDX);
3084         }
3085 #endif  // VK_ENABLE_BETA_EXTENSIONS
3086 #ifdef VK_ENABLE_BETA_EXTENSIONS
3087         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX: {
3088             return sizeof(VkPhysicalDeviceShaderEnqueuePropertiesAMDX);
3089         }
3090 #endif  // VK_ENABLE_BETA_EXTENSIONS
3091 #ifdef VK_ENABLE_BETA_EXTENSIONS
3092         case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX: {
3093             return sizeof(VkPipelineShaderStageNodeCreateInfoAMDX);
3094         }
3095 #endif  // VK_ENABLE_BETA_EXTENSIONS
3096 #endif
3097 #ifdef VK_EXT_sample_locations
3098         case VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT: {
3099             return sizeof(VkSampleLocationsInfoEXT);
3100         }
3101         case VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT: {
3102             return sizeof(VkRenderPassSampleLocationsBeginInfoEXT);
3103         }
3104         case VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT: {
3105             return sizeof(VkPipelineSampleLocationsStateCreateInfoEXT);
3106         }
3107         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT: {
3108             return sizeof(VkPhysicalDeviceSampleLocationsPropertiesEXT);
3109         }
3110 #endif
3111 #ifdef VK_EXT_blend_operation_advanced
3112         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT: {
3113             return sizeof(VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT);
3114         }
3115         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT: {
3116             return sizeof(VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT);
3117         }
3118         case VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT: {
3119             return sizeof(VkPipelineColorBlendAdvancedStateCreateInfoEXT);
3120         }
3121 #endif
3122 #ifdef VK_NV_fragment_coverage_to_color
3123         case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV: {
3124             return sizeof(VkPipelineCoverageToColorStateCreateInfoNV);
3125         }
3126 #endif
3127 #ifdef VK_NV_framebuffer_mixed_samples
3128         case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV: {
3129             return sizeof(VkPipelineCoverageModulationStateCreateInfoNV);
3130         }
3131 #endif
3132 #ifdef VK_NV_shader_sm_builtins
3133         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV: {
3134             return sizeof(VkPhysicalDeviceShaderSMBuiltinsPropertiesNV);
3135         }
3136         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV: {
3137             return sizeof(VkPhysicalDeviceShaderSMBuiltinsFeaturesNV);
3138         }
3139 #endif
3140 #ifdef VK_EXT_image_drm_format_modifier
3141         case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT: {
3142             return sizeof(VkDrmFormatModifierPropertiesListEXT);
3143         }
3144         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT: {
3145             return sizeof(VkPhysicalDeviceImageDrmFormatModifierInfoEXT);
3146         }
3147         case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT: {
3148             return sizeof(VkImageDrmFormatModifierListCreateInfoEXT);
3149         }
3150         case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT: {
3151             return sizeof(VkImageDrmFormatModifierExplicitCreateInfoEXT);
3152         }
3153         case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT: {
3154             return sizeof(VkDrmFormatModifierPropertiesList2EXT);
3155         }
3156 #endif
3157 #ifdef VK_EXT_validation_cache
3158         case VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT: {
3159             return sizeof(VkShaderModuleValidationCacheCreateInfoEXT);
3160         }
3161 #endif
3162 #ifdef VK_NV_shading_rate_image
3163         case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV: {
3164             return sizeof(VkPipelineViewportShadingRateImageStateCreateInfoNV);
3165         }
3166         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV: {
3167             return sizeof(VkPhysicalDeviceShadingRateImageFeaturesNV);
3168         }
3169         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV: {
3170             return sizeof(VkPhysicalDeviceShadingRateImagePropertiesNV);
3171         }
3172         case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV: {
3173             return sizeof(VkPipelineViewportCoarseSampleOrderStateCreateInfoNV);
3174         }
3175 #endif
3176 #ifdef VK_NV_ray_tracing
3177         case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV: {
3178             return sizeof(VkWriteDescriptorSetAccelerationStructureNV);
3179         }
3180         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV: {
3181             return sizeof(VkPhysicalDeviceRayTracingPropertiesNV);
3182         }
3183 #endif
3184 #ifdef VK_NV_representative_fragment_test
3185         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV: {
3186             return sizeof(VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV);
3187         }
3188         case VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV: {
3189             return sizeof(VkPipelineRepresentativeFragmentTestStateCreateInfoNV);
3190         }
3191 #endif
3192 #ifdef VK_EXT_filter_cubic
3193         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT: {
3194             return sizeof(VkPhysicalDeviceImageViewImageFormatInfoEXT);
3195         }
3196         case VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT: {
3197             return sizeof(VkFilterCubicImageViewImageFormatPropertiesEXT);
3198         }
3199 #endif
3200 #ifdef VK_EXT_external_memory_host
3201         case VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT: {
3202             return sizeof(VkImportMemoryHostPointerInfoEXT);
3203         }
3204         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT: {
3205             return sizeof(VkPhysicalDeviceExternalMemoryHostPropertiesEXT);
3206         }
3207 #endif
3208 #ifdef VK_AMD_pipeline_compiler_control
3209         case VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD: {
3210             return sizeof(VkPipelineCompilerControlCreateInfoAMD);
3211         }
3212 #endif
3213 #ifdef VK_AMD_shader_core_properties
3214         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD: {
3215             return sizeof(VkPhysicalDeviceShaderCorePropertiesAMD);
3216         }
3217 #endif
3218 #ifdef VK_AMD_memory_overallocation_behavior
3219         case VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD: {
3220             return sizeof(VkDeviceMemoryOverallocationCreateInfoAMD);
3221         }
3222 #endif
3223 #ifdef VK_EXT_vertex_attribute_divisor
3224         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT: {
3225             return sizeof(VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT);
3226         }
3227         case VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT: {
3228             return sizeof(VkPipelineVertexInputDivisorStateCreateInfoEXT);
3229         }
3230         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT: {
3231             return sizeof(VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT);
3232         }
3233 #endif
3234 #ifdef VK_GGP_frame_token
3235         case VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP: {
3236             return sizeof(VkPresentFrameTokenGGP);
3237         }
3238 #endif
3239 #ifdef VK_NV_compute_shader_derivatives
3240         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV: {
3241             return sizeof(VkPhysicalDeviceComputeShaderDerivativesFeaturesNV);
3242         }
3243 #endif
3244 #ifdef VK_NV_mesh_shader
3245         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV: {
3246             return sizeof(VkPhysicalDeviceMeshShaderFeaturesNV);
3247         }
3248         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV: {
3249             return sizeof(VkPhysicalDeviceMeshShaderPropertiesNV);
3250         }
3251 #endif
3252 #ifdef VK_NV_shader_image_footprint
3253         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV: {
3254             return sizeof(VkPhysicalDeviceShaderImageFootprintFeaturesNV);
3255         }
3256 #endif
3257 #ifdef VK_NV_scissor_exclusive
3258         case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV: {
3259             return sizeof(VkPipelineViewportExclusiveScissorStateCreateInfoNV);
3260         }
3261         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV: {
3262             return sizeof(VkPhysicalDeviceExclusiveScissorFeaturesNV);
3263         }
3264 #endif
3265 #ifdef VK_INTEL_shader_integer_functions2
3266         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL: {
3267             return sizeof(VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL);
3268         }
3269 #endif
3270 #ifdef VK_INTEL_performance_query
3271         case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL: {
3272             return sizeof(VkQueryPoolPerformanceQueryCreateInfoINTEL);
3273         }
3274 #endif
3275 #ifdef VK_EXT_pci_bus_info
3276         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT: {
3277             return sizeof(VkPhysicalDevicePCIBusInfoPropertiesEXT);
3278         }
3279 #endif
3280 #ifdef VK_AMD_display_native_hdr
3281         case VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD: {
3282             return sizeof(VkDisplayNativeHdrSurfaceCapabilitiesAMD);
3283         }
3284         case VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD: {
3285             return sizeof(VkSwapchainDisplayNativeHdrCreateInfoAMD);
3286         }
3287 #endif
3288 #ifdef VK_EXT_fragment_density_map
3289         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT: {
3290             switch (rootType) {
3291                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2: {
3292                     return sizeof(VkPhysicalDeviceFragmentDensityMapFeaturesEXT);
3293                     break;
3294                 }
3295                 case VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO: {
3296                     return sizeof(VkPhysicalDeviceFragmentDensityMapFeaturesEXT);
3297                     break;
3298                 }
3299                 case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO: {
3300                     return sizeof(VkImportColorBufferGOOGLE);
3301                     break;
3302                 }
3303                 default: {
3304                     return sizeof(VkPhysicalDeviceFragmentDensityMapFeaturesEXT);
3305                     break;
3306                 }
3307             }
3308         }
3309         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT: {
3310             switch (rootType) {
3311                 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2: {
3312                     return sizeof(VkPhysicalDeviceFragmentDensityMapPropertiesEXT);
3313                     break;
3314                 }
3315                 case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO: {
3316                     return sizeof(VkCreateBlobGOOGLE);
3317                     break;
3318                 }
3319                 default: {
3320                     return sizeof(VkPhysicalDeviceFragmentDensityMapPropertiesEXT);
3321                     break;
3322                 }
3323             }
3324         }
3325         case VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT: {
3326             switch (rootType) {
3327                 case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO: {
3328                     return sizeof(VkRenderPassFragmentDensityMapCreateInfoEXT);
3329                     break;
3330                 }
3331                 case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2: {
3332                     return sizeof(VkRenderPassFragmentDensityMapCreateInfoEXT);
3333                     break;
3334                 }
3335                 case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO: {
3336                     return sizeof(VkImportBufferGOOGLE);
3337                     break;
3338                 }
3339                 default: {
3340                     return sizeof(VkRenderPassFragmentDensityMapCreateInfoEXT);
3341                     break;
3342                 }
3343             }
3344         }
3345 #endif
3346 #ifdef VK_AMD_shader_core_properties2
3347         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD: {
3348             return sizeof(VkPhysicalDeviceShaderCoreProperties2AMD);
3349         }
3350 #endif
3351 #ifdef VK_AMD_device_coherent_memory
3352         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD: {
3353             return sizeof(VkPhysicalDeviceCoherentMemoryFeaturesAMD);
3354         }
3355 #endif
3356 #ifdef VK_EXT_shader_image_atomic_int64
3357         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT: {
3358             return sizeof(VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT);
3359         }
3360 #endif
3361 #ifdef VK_EXT_memory_budget
3362         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT: {
3363             return sizeof(VkPhysicalDeviceMemoryBudgetPropertiesEXT);
3364         }
3365 #endif
3366 #ifdef VK_EXT_memory_priority
3367         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT: {
3368             return sizeof(VkPhysicalDeviceMemoryPriorityFeaturesEXT);
3369         }
3370         case VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT: {
3371             return sizeof(VkMemoryPriorityAllocateInfoEXT);
3372         }
3373 #endif
3374 #ifdef VK_NV_dedicated_allocation_image_aliasing
3375         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV: {
3376             return sizeof(VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV);
3377         }
3378 #endif
3379 #ifdef VK_EXT_buffer_device_address
3380         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT: {
3381             return sizeof(VkPhysicalDeviceBufferDeviceAddressFeaturesEXT);
3382         }
3383         case VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT: {
3384             return sizeof(VkBufferDeviceAddressCreateInfoEXT);
3385         }
3386 #endif
3387 #ifdef VK_EXT_validation_features
3388         case VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT: {
3389             return sizeof(VkValidationFeaturesEXT);
3390         }
3391 #endif
3392 #ifdef VK_NV_cooperative_matrix
3393         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV: {
3394             return sizeof(VkPhysicalDeviceCooperativeMatrixFeaturesNV);
3395         }
3396         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV: {
3397             return sizeof(VkPhysicalDeviceCooperativeMatrixPropertiesNV);
3398         }
3399 #endif
3400 #ifdef VK_NV_coverage_reduction_mode
3401         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV: {
3402             return sizeof(VkPhysicalDeviceCoverageReductionModeFeaturesNV);
3403         }
3404         case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV: {
3405             return sizeof(VkPipelineCoverageReductionStateCreateInfoNV);
3406         }
3407 #endif
3408 #ifdef VK_EXT_fragment_shader_interlock
3409         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT: {
3410             return sizeof(VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT);
3411         }
3412 #endif
3413 #ifdef VK_EXT_ycbcr_image_arrays
3414         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT: {
3415             return sizeof(VkPhysicalDeviceYcbcrImageArraysFeaturesEXT);
3416         }
3417 #endif
3418 #ifdef VK_EXT_provoking_vertex
3419         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT: {
3420             return sizeof(VkPhysicalDeviceProvokingVertexFeaturesEXT);
3421         }
3422         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT: {
3423             return sizeof(VkPhysicalDeviceProvokingVertexPropertiesEXT);
3424         }
3425         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT: {
3426             return sizeof(VkPipelineRasterizationProvokingVertexStateCreateInfoEXT);
3427         }
3428 #endif
3429 #ifdef VK_EXT_full_screen_exclusive
3430         case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT: {
3431             return sizeof(VkSurfaceFullScreenExclusiveInfoEXT);
3432         }
3433         case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT: {
3434             return sizeof(VkSurfaceCapabilitiesFullScreenExclusiveEXT);
3435         }
3436         case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT: {
3437             return sizeof(VkSurfaceFullScreenExclusiveWin32InfoEXT);
3438         }
3439 #endif
3440 #ifdef VK_EXT_shader_atomic_float
3441         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT: {
3442             return sizeof(VkPhysicalDeviceShaderAtomicFloatFeaturesEXT);
3443         }
3444 #endif
3445 #ifdef VK_EXT_index_type_uint8
3446         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT: {
3447             return sizeof(VkPhysicalDeviceIndexTypeUint8FeaturesEXT);
3448         }
3449 #endif
3450 #ifdef VK_EXT_extended_dynamic_state
3451         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT: {
3452             return sizeof(VkPhysicalDeviceExtendedDynamicStateFeaturesEXT);
3453         }
3454 #endif
3455 #ifdef VK_EXT_host_image_copy
3456         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT: {
3457             return sizeof(VkPhysicalDeviceHostImageCopyFeaturesEXT);
3458         }
3459         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT: {
3460             return sizeof(VkPhysicalDeviceHostImageCopyPropertiesEXT);
3461         }
3462         case VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT: {
3463             return sizeof(VkSubresourceHostMemcpySizeEXT);
3464         }
3465         case VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT: {
3466             return sizeof(VkHostImageCopyDevicePerformanceQueryEXT);
3467         }
3468 #endif
3469 #ifdef VK_EXT_shader_atomic_float2
3470         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT: {
3471             return sizeof(VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT);
3472         }
3473 #endif
3474 #ifdef VK_EXT_surface_maintenance1
3475         case VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT: {
3476             return sizeof(VkSurfacePresentModeEXT);
3477         }
3478         case VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT: {
3479             return sizeof(VkSurfacePresentScalingCapabilitiesEXT);
3480         }
3481         case VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT: {
3482             return sizeof(VkSurfacePresentModeCompatibilityEXT);
3483         }
3484 #endif
3485 #ifdef VK_EXT_swapchain_maintenance1
3486         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT: {
3487             return sizeof(VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT);
3488         }
3489         case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT: {
3490             return sizeof(VkSwapchainPresentFenceInfoEXT);
3491         }
3492         case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT: {
3493             return sizeof(VkSwapchainPresentModesCreateInfoEXT);
3494         }
3495         case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT: {
3496             return sizeof(VkSwapchainPresentModeInfoEXT);
3497         }
3498         case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT: {
3499             return sizeof(VkSwapchainPresentScalingCreateInfoEXT);
3500         }
3501 #endif
3502 #ifdef VK_NV_device_generated_commands
3503         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV: {
3504             return sizeof(VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV);
3505         }
3506         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV: {
3507             return sizeof(VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV);
3508         }
3509         case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV: {
3510             return sizeof(VkGraphicsPipelineShaderGroupsCreateInfoNV);
3511         }
3512 #endif
3513 #ifdef VK_NV_inherited_viewport_scissor
3514         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV: {
3515             return sizeof(VkPhysicalDeviceInheritedViewportScissorFeaturesNV);
3516         }
3517         case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV: {
3518             return sizeof(VkCommandBufferInheritanceViewportScissorInfoNV);
3519         }
3520 #endif
3521 #ifdef VK_EXT_texel_buffer_alignment
3522         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT: {
3523             return sizeof(VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT);
3524         }
3525 #endif
3526 #ifdef VK_QCOM_render_pass_transform
3527         case VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM: {
3528             return sizeof(VkRenderPassTransformBeginInfoQCOM);
3529         }
3530         case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM: {
3531             return sizeof(VkCommandBufferInheritanceRenderPassTransformInfoQCOM);
3532         }
3533 #endif
3534 #ifdef VK_EXT_depth_bias_control
3535         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT: {
3536             return sizeof(VkPhysicalDeviceDepthBiasControlFeaturesEXT);
3537         }
3538         case VK_STRUCTURE_TYPE_DEPTH_BIAS_REPRESENTATION_INFO_EXT: {
3539             return sizeof(VkDepthBiasRepresentationInfoEXT);
3540         }
3541 #endif
3542 #ifdef VK_EXT_device_memory_report
3543         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT: {
3544             return sizeof(VkPhysicalDeviceDeviceMemoryReportFeaturesEXT);
3545         }
3546         case VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT: {
3547             return sizeof(VkDeviceDeviceMemoryReportCreateInfoEXT);
3548         }
3549 #endif
3550 #ifdef VK_EXT_robustness2
3551         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT: {
3552             return sizeof(VkPhysicalDeviceRobustness2FeaturesEXT);
3553         }
3554         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT: {
3555             return sizeof(VkPhysicalDeviceRobustness2PropertiesEXT);
3556         }
3557 #endif
3558 #ifdef VK_EXT_custom_border_color
3559         case VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT: {
3560             return sizeof(VkSamplerCustomBorderColorCreateInfoEXT);
3561         }
3562         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT: {
3563             return sizeof(VkPhysicalDeviceCustomBorderColorPropertiesEXT);
3564         }
3565         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT: {
3566             return sizeof(VkPhysicalDeviceCustomBorderColorFeaturesEXT);
3567         }
3568 #endif
3569 #ifdef VK_NV_present_barrier
3570         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV: {
3571             return sizeof(VkPhysicalDevicePresentBarrierFeaturesNV);
3572         }
3573         case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV: {
3574             return sizeof(VkSurfaceCapabilitiesPresentBarrierNV);
3575         }
3576         case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV: {
3577             return sizeof(VkSwapchainPresentBarrierCreateInfoNV);
3578         }
3579 #endif
3580 #ifdef VK_NV_device_diagnostics_config
3581         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV: {
3582             return sizeof(VkPhysicalDeviceDiagnosticsConfigFeaturesNV);
3583         }
3584         case VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV: {
3585             return sizeof(VkDeviceDiagnosticsConfigCreateInfoNV);
3586         }
3587 #endif
3588 #ifdef VK_NV_cuda_kernel_launch
3589         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_FEATURES_NV: {
3590             return sizeof(VkPhysicalDeviceCudaKernelLaunchFeaturesNV);
3591         }
3592         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_PROPERTIES_NV: {
3593             return sizeof(VkPhysicalDeviceCudaKernelLaunchPropertiesNV);
3594         }
3595 #endif
3596 #ifdef VK_NV_low_latency
3597         case VK_STRUCTURE_TYPE_QUERY_LOW_LATENCY_SUPPORT_NV: {
3598             return sizeof(VkQueryLowLatencySupportNV);
3599         }
3600 #endif
3601 #ifdef VK_EXT_descriptor_buffer
3602         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT: {
3603             return sizeof(VkPhysicalDeviceDescriptorBufferPropertiesEXT);
3604         }
3605         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT: {
3606             return sizeof(VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT);
3607         }
3608         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT: {
3609             return sizeof(VkPhysicalDeviceDescriptorBufferFeaturesEXT);
3610         }
3611         case VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT: {
3612             return sizeof(VkDescriptorBufferBindingPushDescriptorBufferHandleEXT);
3613         }
3614         case VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT: {
3615             return sizeof(VkOpaqueCaptureDescriptorDataCreateInfoEXT);
3616         }
3617 #endif
3618 #ifdef VK_EXT_graphics_pipeline_library
3619         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT: {
3620             return sizeof(VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT);
3621         }
3622         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT: {
3623             return sizeof(VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT);
3624         }
3625         case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT: {
3626             return sizeof(VkGraphicsPipelineLibraryCreateInfoEXT);
3627         }
3628 #endif
3629 #ifdef VK_AMD_shader_early_and_late_fragment_tests
3630         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD: {
3631             return sizeof(VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD);
3632         }
3633 #endif
3634 #ifdef VK_NV_fragment_shading_rate_enums
3635         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV: {
3636             return sizeof(VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV);
3637         }
3638         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV: {
3639             return sizeof(VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV);
3640         }
3641         case VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV: {
3642             return sizeof(VkPipelineFragmentShadingRateEnumStateCreateInfoNV);
3643         }
3644 #endif
3645 #ifdef VK_NV_ray_tracing_motion_blur
3646         case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV: {
3647             return sizeof(VkAccelerationStructureGeometryMotionTrianglesDataNV);
3648         }
3649         case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV: {
3650             return sizeof(VkAccelerationStructureMotionInfoNV);
3651         }
3652         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV: {
3653             return sizeof(VkPhysicalDeviceRayTracingMotionBlurFeaturesNV);
3654         }
3655 #endif
3656 #ifdef VK_EXT_ycbcr_2plane_444_formats
3657         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT: {
3658             return sizeof(VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT);
3659         }
3660 #endif
3661 #ifdef VK_EXT_fragment_density_map2
3662         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT: {
3663             return sizeof(VkPhysicalDeviceFragmentDensityMap2FeaturesEXT);
3664         }
3665         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT: {
3666             return sizeof(VkPhysicalDeviceFragmentDensityMap2PropertiesEXT);
3667         }
3668 #endif
3669 #ifdef VK_QCOM_rotated_copy_commands
3670         case VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM: {
3671             return sizeof(VkCopyCommandTransformInfoQCOM);
3672         }
3673 #endif
3674 #ifdef VK_EXT_image_compression_control
3675         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT: {
3676             return sizeof(VkPhysicalDeviceImageCompressionControlFeaturesEXT);
3677         }
3678         case VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT: {
3679             return sizeof(VkImageCompressionControlEXT);
3680         }
3681         case VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT: {
3682             return sizeof(VkImageCompressionPropertiesEXT);
3683         }
3684 #endif
3685 #ifdef VK_EXT_attachment_feedback_loop_layout
3686         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT: {
3687             return sizeof(VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT);
3688         }
3689 #endif
3690 #ifdef VK_EXT_4444_formats
3691         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT: {
3692             return sizeof(VkPhysicalDevice4444FormatsFeaturesEXT);
3693         }
3694 #endif
3695 #ifdef VK_EXT_device_fault
3696         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT: {
3697             return sizeof(VkPhysicalDeviceFaultFeaturesEXT);
3698         }
3699 #endif
3700 #ifdef VK_ARM_rasterization_order_attachment_access
3701         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT: {
3702             return sizeof(VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT);
3703         }
3704 #endif
3705 #ifdef VK_EXT_rgba10x6_formats
3706         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT: {
3707             return sizeof(VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT);
3708         }
3709 #endif
3710 #ifdef VK_VALVE_mutable_descriptor_type
3711         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT: {
3712             return sizeof(VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT);
3713         }
3714         case VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT: {
3715             return sizeof(VkMutableDescriptorTypeCreateInfoEXT);
3716         }
3717 #endif
3718 #ifdef VK_EXT_vertex_input_dynamic_state
3719         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT: {
3720             return sizeof(VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT);
3721         }
3722 #endif
3723 #ifdef VK_EXT_physical_device_drm
3724         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT: {
3725             return sizeof(VkPhysicalDeviceDrmPropertiesEXT);
3726         }
3727 #endif
3728 #ifdef VK_EXT_device_address_binding_report
3729         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT: {
3730             return sizeof(VkPhysicalDeviceAddressBindingReportFeaturesEXT);
3731         }
3732         case VK_STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT: {
3733             return sizeof(VkDeviceAddressBindingCallbackDataEXT);
3734         }
3735 #endif
3736 #ifdef VK_EXT_depth_clip_control
3737         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT: {
3738             return sizeof(VkPhysicalDeviceDepthClipControlFeaturesEXT);
3739         }
3740         case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT: {
3741             return sizeof(VkPipelineViewportDepthClipControlCreateInfoEXT);
3742         }
3743 #endif
3744 #ifdef VK_EXT_primitive_topology_list_restart
3745         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT: {
3746             return sizeof(VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT);
3747         }
3748 #endif
3749 #ifdef VK_FUCHSIA_external_memory
3750         case VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA: {
3751             return sizeof(VkImportMemoryZirconHandleInfoFUCHSIA);
3752         }
3753 #endif
3754 #ifdef VK_FUCHSIA_buffer_collection
3755         case VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA: {
3756             return sizeof(VkImportMemoryBufferCollectionFUCHSIA);
3757         }
3758         case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA: {
3759             return sizeof(VkBufferCollectionImageCreateInfoFUCHSIA);
3760         }
3761         case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA: {
3762             return sizeof(VkBufferCollectionBufferCreateInfoFUCHSIA);
3763         }
3764 #endif
3765 #ifdef VK_HUAWEI_subpass_shading
3766         case VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI: {
3767             return sizeof(VkSubpassShadingPipelineCreateInfoHUAWEI);
3768         }
3769         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI: {
3770             return sizeof(VkPhysicalDeviceSubpassShadingFeaturesHUAWEI);
3771         }
3772         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI: {
3773             return sizeof(VkPhysicalDeviceSubpassShadingPropertiesHUAWEI);
3774         }
3775 #endif
3776 #ifdef VK_HUAWEI_invocation_mask
3777         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI: {
3778             return sizeof(VkPhysicalDeviceInvocationMaskFeaturesHUAWEI);
3779         }
3780 #endif
3781 #ifdef VK_NV_external_memory_rdma
3782         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV: {
3783             return sizeof(VkPhysicalDeviceExternalMemoryRDMAFeaturesNV);
3784         }
3785 #endif
3786 #ifdef VK_EXT_pipeline_properties
3787         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT: {
3788             return sizeof(VkPhysicalDevicePipelinePropertiesFeaturesEXT);
3789         }
3790 #endif
3791 #ifdef VK_EXT_frame_boundary
3792         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT: {
3793             return sizeof(VkPhysicalDeviceFrameBoundaryFeaturesEXT);
3794         }
3795         case VK_STRUCTURE_TYPE_FRAME_BOUNDARY_EXT: {
3796             return sizeof(VkFrameBoundaryEXT);
3797         }
3798 #endif
3799 #ifdef VK_EXT_multisampled_render_to_single_sampled
3800         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT: {
3801             return sizeof(VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT);
3802         }
3803         case VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT: {
3804             return sizeof(VkSubpassResolvePerformanceQueryEXT);
3805         }
3806         case VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT: {
3807             return sizeof(VkMultisampledRenderToSingleSampledInfoEXT);
3808         }
3809 #endif
3810 #ifdef VK_EXT_extended_dynamic_state2
3811         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT: {
3812             return sizeof(VkPhysicalDeviceExtendedDynamicState2FeaturesEXT);
3813         }
3814 #endif
3815 #ifdef VK_EXT_color_write_enable
3816         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT: {
3817             return sizeof(VkPhysicalDeviceColorWriteEnableFeaturesEXT);
3818         }
3819         case VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT: {
3820             return sizeof(VkPipelineColorWriteCreateInfoEXT);
3821         }
3822 #endif
3823 #ifdef VK_EXT_primitives_generated_query
3824         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT: {
3825             return sizeof(VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT);
3826         }
3827 #endif
3828 #ifdef VK_GOOGLE_gfxstream
3829         case VK_STRUCTURE_TYPE_IMPORT_COLOR_BUFFER_GOOGLE: {
3830             return sizeof(VkImportColorBufferGOOGLE);
3831         }
3832         case VK_STRUCTURE_TYPE_IMPORT_BUFFER_GOOGLE: {
3833             return sizeof(VkImportBufferGOOGLE);
3834         }
3835         case VK_STRUCTURE_TYPE_CREATE_BLOB_GOOGLE: {
3836             return sizeof(VkCreateBlobGOOGLE);
3837         }
3838 #endif
3839 #ifdef VK_EXT_image_view_min_lod
3840         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT: {
3841             return sizeof(VkPhysicalDeviceImageViewMinLodFeaturesEXT);
3842         }
3843         case VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT: {
3844             return sizeof(VkImageViewMinLodCreateInfoEXT);
3845         }
3846 #endif
3847 #ifdef VK_EXT_multi_draw
3848         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT: {
3849             return sizeof(VkPhysicalDeviceMultiDrawFeaturesEXT);
3850         }
3851         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT: {
3852             return sizeof(VkPhysicalDeviceMultiDrawPropertiesEXT);
3853         }
3854 #endif
3855 #ifdef VK_EXT_image_2d_view_of_3d
3856         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT: {
3857             return sizeof(VkPhysicalDeviceImage2DViewOf3DFeaturesEXT);
3858         }
3859 #endif
3860 #ifdef VK_EXT_shader_tile_image
3861         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT: {
3862             return sizeof(VkPhysicalDeviceShaderTileImageFeaturesEXT);
3863         }
3864         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT: {
3865             return sizeof(VkPhysicalDeviceShaderTileImagePropertiesEXT);
3866         }
3867 #endif
3868 #ifdef VK_EXT_opacity_micromap
3869         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT: {
3870             return sizeof(VkPhysicalDeviceOpacityMicromapFeaturesEXT);
3871         }
3872         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT: {
3873             return sizeof(VkPhysicalDeviceOpacityMicromapPropertiesEXT);
3874         }
3875         case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT: {
3876             return sizeof(VkAccelerationStructureTrianglesOpacityMicromapEXT);
3877         }
3878 #endif
3879 #ifdef VK_NV_displacement_micromap
3880 #ifdef VK_ENABLE_BETA_EXTENSIONS
3881         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV: {
3882             return sizeof(VkPhysicalDeviceDisplacementMicromapFeaturesNV);
3883         }
3884 #endif  // VK_ENABLE_BETA_EXTENSIONS
3885 #ifdef VK_ENABLE_BETA_EXTENSIONS
3886         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV: {
3887             return sizeof(VkPhysicalDeviceDisplacementMicromapPropertiesNV);
3888         }
3889 #endif  // VK_ENABLE_BETA_EXTENSIONS
3890 #ifdef VK_ENABLE_BETA_EXTENSIONS
3891         case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV: {
3892             return sizeof(VkAccelerationStructureTrianglesDisplacementMicromapNV);
3893         }
3894 #endif  // VK_ENABLE_BETA_EXTENSIONS
3895 #endif
3896 #ifdef VK_HUAWEI_cluster_culling_shader
3897         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI: {
3898             return sizeof(VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI);
3899         }
3900         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI: {
3901             return sizeof(VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI);
3902         }
3903 #endif
3904 #ifdef VK_EXT_border_color_swizzle
3905         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT: {
3906             return sizeof(VkPhysicalDeviceBorderColorSwizzleFeaturesEXT);
3907         }
3908         case VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT: {
3909             return sizeof(VkSamplerBorderColorComponentMappingCreateInfoEXT);
3910         }
3911 #endif
3912 #ifdef VK_EXT_pageable_device_local_memory
3913         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT: {
3914             return sizeof(VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT);
3915         }
3916 #endif
3917 #ifdef VK_ARM_shader_core_properties
3918         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM: {
3919             return sizeof(VkPhysicalDeviceShaderCorePropertiesARM);
3920         }
3921 #endif
3922 #ifdef VK_ARM_scheduling_controls
3923         case VK_STRUCTURE_TYPE_DEVICE_QUEUE_SHADER_CORE_CONTROL_CREATE_INFO_ARM: {
3924             return sizeof(VkDeviceQueueShaderCoreControlCreateInfoARM);
3925         }
3926         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARM: {
3927             return sizeof(VkPhysicalDeviceSchedulingControlsFeaturesARM);
3928         }
3929         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_PROPERTIES_ARM: {
3930             return sizeof(VkPhysicalDeviceSchedulingControlsPropertiesARM);
3931         }
3932 #endif
3933 #ifdef VK_EXT_image_sliced_view_of_3d
3934         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT: {
3935             return sizeof(VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT);
3936         }
3937         case VK_STRUCTURE_TYPE_IMAGE_VIEW_SLICED_CREATE_INFO_EXT: {
3938             return sizeof(VkImageViewSlicedCreateInfoEXT);
3939         }
3940 #endif
3941 #ifdef VK_VALVE_descriptor_set_host_mapping
3942         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE: {
3943             return sizeof(VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE);
3944         }
3945 #endif
3946 #ifdef VK_EXT_depth_clamp_zero_one
3947         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT: {
3948             return sizeof(VkPhysicalDeviceDepthClampZeroOneFeaturesEXT);
3949         }
3950 #endif
3951 #ifdef VK_EXT_non_seamless_cube_map
3952         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT: {
3953             return sizeof(VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT);
3954         }
3955 #endif
3956 #ifdef VK_QCOM_fragment_density_map_offset
3957         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM: {
3958             return sizeof(VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM);
3959         }
3960         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM: {
3961             return sizeof(VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM);
3962         }
3963         case VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM: {
3964             return sizeof(VkSubpassFragmentDensityMapOffsetEndInfoQCOM);
3965         }
3966 #endif
3967 #ifdef VK_NV_copy_memory_indirect
3968         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV: {
3969             return sizeof(VkPhysicalDeviceCopyMemoryIndirectFeaturesNV);
3970         }
3971         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV: {
3972             return sizeof(VkPhysicalDeviceCopyMemoryIndirectPropertiesNV);
3973         }
3974 #endif
3975 #ifdef VK_NV_memory_decompression
3976         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV: {
3977             return sizeof(VkPhysicalDeviceMemoryDecompressionFeaturesNV);
3978         }
3979         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV: {
3980             return sizeof(VkPhysicalDeviceMemoryDecompressionPropertiesNV);
3981         }
3982 #endif
3983 #ifdef VK_NV_device_generated_commands_compute
3984         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV: {
3985             return sizeof(VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV);
3986         }
3987 #endif
3988 #ifdef VK_NV_linear_color_attachment
3989         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV: {
3990             return sizeof(VkPhysicalDeviceLinearColorAttachmentFeaturesNV);
3991         }
3992 #endif
3993 #ifdef VK_EXT_image_compression_control_swapchain
3994         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT: {
3995             return sizeof(VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT);
3996         }
3997 #endif
3998 #ifdef VK_QCOM_image_processing
3999         case VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM: {
4000             return sizeof(VkImageViewSampleWeightCreateInfoQCOM);
4001         }
4002         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM: {
4003             return sizeof(VkPhysicalDeviceImageProcessingFeaturesQCOM);
4004         }
4005         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM: {
4006             return sizeof(VkPhysicalDeviceImageProcessingPropertiesQCOM);
4007         }
4008 #endif
4009 #ifdef VK_EXT_nested_command_buffer
4010         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT: {
4011             return sizeof(VkPhysicalDeviceNestedCommandBufferFeaturesEXT);
4012         }
4013         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT: {
4014             return sizeof(VkPhysicalDeviceNestedCommandBufferPropertiesEXT);
4015         }
4016 #endif
4017 #ifdef VK_EXT_external_memory_acquire_unmodified
4018         case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT: {
4019             return sizeof(VkExternalMemoryAcquireUnmodifiedEXT);
4020         }
4021 #endif
4022 #ifdef VK_EXT_extended_dynamic_state3
4023         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT: {
4024             return sizeof(VkPhysicalDeviceExtendedDynamicState3FeaturesEXT);
4025         }
4026         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT: {
4027             return sizeof(VkPhysicalDeviceExtendedDynamicState3PropertiesEXT);
4028         }
4029 #endif
4030 #ifdef VK_EXT_subpass_merge_feedback
4031         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT: {
4032             return sizeof(VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT);
4033         }
4034         case VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT: {
4035             return sizeof(VkRenderPassCreationControlEXT);
4036         }
4037         case VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT: {
4038             return sizeof(VkRenderPassCreationFeedbackCreateInfoEXT);
4039         }
4040         case VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT: {
4041             return sizeof(VkRenderPassSubpassFeedbackCreateInfoEXT);
4042         }
4043 #endif
4044 #ifdef VK_LUNARG_direct_driver_loading
4045         case VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG: {
4046             return sizeof(VkDirectDriverLoadingListLUNARG);
4047         }
4048 #endif
4049 #ifdef VK_EXT_shader_module_identifier
4050         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT: {
4051             return sizeof(VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT);
4052         }
4053         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT: {
4054             return sizeof(VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT);
4055         }
4056         case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT: {
4057             return sizeof(VkPipelineShaderStageModuleIdentifierCreateInfoEXT);
4058         }
4059 #endif
4060 #ifdef VK_NV_optical_flow
4061         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV: {
4062             return sizeof(VkPhysicalDeviceOpticalFlowFeaturesNV);
4063         }
4064         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV: {
4065             return sizeof(VkPhysicalDeviceOpticalFlowPropertiesNV);
4066         }
4067         case VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV: {
4068             return sizeof(VkOpticalFlowImageFormatInfoNV);
4069         }
4070         case VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV: {
4071             return sizeof(VkOpticalFlowSessionCreatePrivateDataInfoNV);
4072         }
4073 #endif
4074 #ifdef VK_EXT_legacy_dithering
4075         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT: {
4076             return sizeof(VkPhysicalDeviceLegacyDitheringFeaturesEXT);
4077         }
4078 #endif
4079 #ifdef VK_EXT_pipeline_protected_access
4080         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT: {
4081             return sizeof(VkPhysicalDevicePipelineProtectedAccessFeaturesEXT);
4082         }
4083 #endif
4084 #ifdef VK_ANDROID_external_format_resolve
4085         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID: {
4086             return sizeof(VkPhysicalDeviceExternalFormatResolveFeaturesANDROID);
4087         }
4088         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID: {
4089             return sizeof(VkPhysicalDeviceExternalFormatResolvePropertiesANDROID);
4090         }
4091         case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID: {
4092             return sizeof(VkAndroidHardwareBufferFormatResolvePropertiesANDROID);
4093         }
4094 #endif
4095 #ifdef VK_EXT_shader_object
4096         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT: {
4097             return sizeof(VkPhysicalDeviceShaderObjectFeaturesEXT);
4098         }
4099         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT: {
4100             return sizeof(VkPhysicalDeviceShaderObjectPropertiesEXT);
4101         }
4102 #endif
4103 #ifdef VK_QCOM_tile_properties
4104         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM: {
4105             return sizeof(VkPhysicalDeviceTilePropertiesFeaturesQCOM);
4106         }
4107 #endif
4108 #ifdef VK_SEC_amigo_profiling
4109         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC: {
4110             return sizeof(VkPhysicalDeviceAmigoProfilingFeaturesSEC);
4111         }
4112         case VK_STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC: {
4113             return sizeof(VkAmigoProfilingSubmitInfoSEC);
4114         }
4115 #endif
4116 #ifdef VK_QCOM_multiview_per_view_viewports
4117         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM: {
4118             return sizeof(VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM);
4119         }
4120 #endif
4121 #ifdef VK_NV_ray_tracing_invocation_reorder
4122         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV: {
4123             return sizeof(VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV);
4124         }
4125         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV: {
4126             return sizeof(VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV);
4127         }
4128 #endif
4129 #ifdef VK_NV_extended_sparse_address_space
4130         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV: {
4131             return sizeof(VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV);
4132         }
4133         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV: {
4134             return sizeof(VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV);
4135         }
4136 #endif
4137 #ifdef VK_ARM_shader_core_builtins
4138         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM: {
4139             return sizeof(VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM);
4140         }
4141         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM: {
4142             return sizeof(VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM);
4143         }
4144 #endif
4145 #ifdef VK_EXT_pipeline_library_group_handles
4146         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT: {
4147             return sizeof(VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT);
4148         }
4149 #endif
4150 #ifdef VK_EXT_dynamic_rendering_unused_attachments
4151         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT: {
4152             return sizeof(VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT);
4153         }
4154 #endif
4155 #ifdef VK_NV_low_latency2
4156         case VK_STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV: {
4157             return sizeof(VkLatencySubmissionPresentIdNV);
4158         }
4159         case VK_STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NV: {
4160             return sizeof(VkSwapchainLatencyCreateInfoNV);
4161         }
4162         case VK_STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV: {
4163             return sizeof(VkLatencySurfaceCapabilitiesNV);
4164         }
4165 #endif
4166 #ifdef VK_QCOM_multiview_per_view_render_areas
4167         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM: {
4168             return sizeof(VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM);
4169         }
4170         case VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM: {
4171             return sizeof(VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM);
4172         }
4173 #endif
4174 #ifdef VK_QCOM_image_processing2
4175         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM: {
4176             return sizeof(VkPhysicalDeviceImageProcessing2FeaturesQCOM);
4177         }
4178         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM: {
4179             return sizeof(VkPhysicalDeviceImageProcessing2PropertiesQCOM);
4180         }
4181         case VK_STRUCTURE_TYPE_SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM: {
4182             return sizeof(VkSamplerBlockMatchWindowCreateInfoQCOM);
4183         }
4184 #endif
4185 #ifdef VK_QCOM_filter_cubic_weights
4186         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM: {
4187             return sizeof(VkPhysicalDeviceCubicWeightsFeaturesQCOM);
4188         }
4189         case VK_STRUCTURE_TYPE_SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM: {
4190             return sizeof(VkSamplerCubicWeightsCreateInfoQCOM);
4191         }
4192         case VK_STRUCTURE_TYPE_BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM: {
4193             return sizeof(VkBlitImageCubicWeightsInfoQCOM);
4194         }
4195 #endif
4196 #ifdef VK_QCOM_ycbcr_degamma
4197         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM: {
4198             return sizeof(VkPhysicalDeviceYcbcrDegammaFeaturesQCOM);
4199         }
4200         case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM: {
4201             return sizeof(VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM);
4202         }
4203 #endif
4204 #ifdef VK_QCOM_filter_cubic_clamp
4205         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM: {
4206             return sizeof(VkPhysicalDeviceCubicClampFeaturesQCOM);
4207         }
4208 #endif
4209 #ifdef VK_EXT_attachment_feedback_loop_dynamic_state
4210         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT: {
4211             return sizeof(VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT);
4212         }
4213 #endif
4214 #ifdef VK_MSFT_layered_driver
4215         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT: {
4216             return sizeof(VkPhysicalDeviceLayeredDriverPropertiesMSFT);
4217         }
4218 #endif
4219 #ifdef VK_NV_descriptor_pool_overallocation
4220         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV: {
4221             return sizeof(VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV);
4222         }
4223 #endif
4224 #ifdef VK_KHR_acceleration_structure
4225         case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR: {
4226             return sizeof(VkWriteDescriptorSetAccelerationStructureKHR);
4227         }
4228         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR: {
4229             return sizeof(VkPhysicalDeviceAccelerationStructureFeaturesKHR);
4230         }
4231         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR: {
4232             return sizeof(VkPhysicalDeviceAccelerationStructurePropertiesKHR);
4233         }
4234 #endif
4235 #ifdef VK_KHR_ray_tracing_pipeline
4236         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR: {
4237             return sizeof(VkPhysicalDeviceRayTracingPipelineFeaturesKHR);
4238         }
4239         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR: {
4240             return sizeof(VkPhysicalDeviceRayTracingPipelinePropertiesKHR);
4241         }
4242 #endif
4243 #ifdef VK_KHR_ray_query
4244         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR: {
4245             return sizeof(VkPhysicalDeviceRayQueryFeaturesKHR);
4246         }
4247 #endif
4248 #ifdef VK_EXT_mesh_shader
4249         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT: {
4250             return sizeof(VkPhysicalDeviceMeshShaderFeaturesEXT);
4251         }
4252         case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT: {
4253             return sizeof(VkPhysicalDeviceMeshShaderPropertiesEXT);
4254         }
4255 #endif
4256         default: {
4257             fprintf(stderr, "Unhandled Vulkan structure type %s [%d], aborting.\n",
4258                     string_VkStructureType(VkStructureType(structType)), structType);
4259             GFXSTREAM_ABORT(::emugl::FatalError(::emugl::ABORT_REASON_OTHER));
4260             return static_cast<size_t>(0);
4261         }
4262     }
4263 }
4264 
4265 }  // namespace vk
4266 }  // namespace gfxstream
4267