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_guest
17 //
18 // (impl) generated by scripts/genvk.py -registry ../../vulkan/registry/vk.xml -registryGfxstream
19 // xml/vk_gfxstream.xml cereal -o /tmp/
20 //
21 // Please do not modify directly;
22 // re-run mesa3d/src/gfxstream/codegen/generate-gfxstream-vulkan.sh,
23 // or directly from Python by defining:
24 // VULKAN_REGISTRY_XML_DIR : Directory containing vk.xml
25 // VULKAN_REGISTRY_SCRIPTS_DIR : Directory containing genvk.py
26 // CEREAL_OUTPUT_DIR: Where to put the generated sources.
27 //
28 // python3 $VULKAN_REGISTRY_SCRIPTS_DIR/genvk.py -registry $VULKAN_REGISTRY_XML_DIR/vk.xml cereal -o
29 // $CEREAL_OUTPUT_DIR
30 //
31
32 #include "goldfish_vk_extension_structs_guest.h"
33 namespace gfxstream {
34 namespace vk {
35
goldfish_vk_struct_type(const void * structExtension)36 uint32_t goldfish_vk_struct_type(const void* structExtension) {
37 const uint32_t asStructType = *(reinterpret_cast<const uint32_t*>(structExtension));
38 return asStructType;
39 }
40
goldfish_vk_extension_struct_size(VkStructureType rootType,const void * structExtension)41 size_t goldfish_vk_extension_struct_size(VkStructureType rootType, const void* structExtension) {
42 if (!structExtension) {
43 return (size_t)0;
44 }
45 uint32_t structType = (uint32_t)goldfish_vk_struct_type(structExtension);
46 switch (structType) {
47 #ifdef VK_VERSION_1_0
48 case VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO: {
49 return sizeof(VkShaderModuleCreateInfo);
50 }
51 case VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO: {
52 return sizeof(VkPipelineLayoutCreateInfo);
53 }
54 #endif
55 #ifdef VK_VERSION_1_1
56 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES: {
57 return sizeof(VkPhysicalDeviceSubgroupProperties);
58 }
59 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES: {
60 return sizeof(VkPhysicalDevice16BitStorageFeatures);
61 }
62 case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS: {
63 return sizeof(VkMemoryDedicatedRequirements);
64 }
65 case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO: {
66 return sizeof(VkMemoryDedicatedAllocateInfo);
67 }
68 case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO: {
69 return sizeof(VkMemoryAllocateFlagsInfo);
70 }
71 case VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO: {
72 return sizeof(VkDeviceGroupRenderPassBeginInfo);
73 }
74 case VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO: {
75 return sizeof(VkDeviceGroupCommandBufferBeginInfo);
76 }
77 case VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO: {
78 return sizeof(VkDeviceGroupSubmitInfo);
79 }
80 case VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO: {
81 return sizeof(VkDeviceGroupBindSparseInfo);
82 }
83 case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO: {
84 return sizeof(VkBindBufferMemoryDeviceGroupInfo);
85 }
86 case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO: {
87 return sizeof(VkBindImageMemoryDeviceGroupInfo);
88 }
89 case VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO: {
90 return sizeof(VkDeviceGroupDeviceCreateInfo);
91 }
92 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2: {
93 return sizeof(VkPhysicalDeviceFeatures2);
94 }
95 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES: {
96 return sizeof(VkPhysicalDevicePointClippingProperties);
97 }
98 case VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO: {
99 return sizeof(VkRenderPassInputAttachmentAspectCreateInfo);
100 }
101 case VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO: {
102 return sizeof(VkImageViewUsageCreateInfo);
103 }
104 case VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO: {
105 return sizeof(VkPipelineTessellationDomainOriginStateCreateInfo);
106 }
107 case VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO: {
108 return sizeof(VkRenderPassMultiviewCreateInfo);
109 }
110 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES: {
111 return sizeof(VkPhysicalDeviceMultiviewFeatures);
112 }
113 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES: {
114 return sizeof(VkPhysicalDeviceMultiviewProperties);
115 }
116 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES: {
117 return sizeof(VkPhysicalDeviceVariablePointersFeatures);
118 }
119 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES: {
120 return sizeof(VkPhysicalDeviceProtectedMemoryFeatures);
121 }
122 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES: {
123 return sizeof(VkPhysicalDeviceProtectedMemoryProperties);
124 }
125 case VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO: {
126 return sizeof(VkProtectedSubmitInfo);
127 }
128 case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO: {
129 return sizeof(VkSamplerYcbcrConversionInfo);
130 }
131 case VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO: {
132 return sizeof(VkBindImagePlaneMemoryInfo);
133 }
134 case VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO: {
135 return sizeof(VkImagePlaneMemoryRequirementsInfo);
136 }
137 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES: {
138 return sizeof(VkPhysicalDeviceSamplerYcbcrConversionFeatures);
139 }
140 case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES: {
141 return sizeof(VkSamplerYcbcrConversionImageFormatProperties);
142 }
143 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO: {
144 return sizeof(VkPhysicalDeviceExternalImageFormatInfo);
145 }
146 case VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES: {
147 return sizeof(VkExternalImageFormatProperties);
148 }
149 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES: {
150 return sizeof(VkPhysicalDeviceIDProperties);
151 }
152 case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO: {
153 return sizeof(VkExternalMemoryImageCreateInfo);
154 }
155 case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO: {
156 return sizeof(VkExternalMemoryBufferCreateInfo);
157 }
158 case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO: {
159 return sizeof(VkExportMemoryAllocateInfo);
160 }
161 case VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO: {
162 return sizeof(VkExportFenceCreateInfo);
163 }
164 case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO: {
165 return sizeof(VkExportSemaphoreCreateInfo);
166 }
167 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES: {
168 return sizeof(VkPhysicalDeviceMaintenance3Properties);
169 }
170 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES: {
171 return sizeof(VkPhysicalDeviceShaderDrawParametersFeatures);
172 }
173 #endif
174 #ifdef VK_VERSION_1_2
175 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES: {
176 return sizeof(VkPhysicalDeviceVulkan11Features);
177 }
178 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES: {
179 return sizeof(VkPhysicalDeviceVulkan11Properties);
180 }
181 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES: {
182 return sizeof(VkPhysicalDeviceVulkan12Features);
183 }
184 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES: {
185 return sizeof(VkPhysicalDeviceVulkan12Properties);
186 }
187 case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO: {
188 return sizeof(VkImageFormatListCreateInfo);
189 }
190 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES: {
191 return sizeof(VkPhysicalDevice8BitStorageFeatures);
192 }
193 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES: {
194 return sizeof(VkPhysicalDeviceDriverProperties);
195 }
196 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES: {
197 return sizeof(VkPhysicalDeviceShaderAtomicInt64Features);
198 }
199 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES: {
200 return sizeof(VkPhysicalDeviceShaderFloat16Int8Features);
201 }
202 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES: {
203 return sizeof(VkPhysicalDeviceFloatControlsProperties);
204 }
205 case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO: {
206 return sizeof(VkDescriptorSetLayoutBindingFlagsCreateInfo);
207 }
208 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES: {
209 return sizeof(VkPhysicalDeviceDescriptorIndexingFeatures);
210 }
211 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES: {
212 return sizeof(VkPhysicalDeviceDescriptorIndexingProperties);
213 }
214 case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO: {
215 return sizeof(VkDescriptorSetVariableDescriptorCountAllocateInfo);
216 }
217 case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT: {
218 return sizeof(VkDescriptorSetVariableDescriptorCountLayoutSupport);
219 }
220 case VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE: {
221 return sizeof(VkSubpassDescriptionDepthStencilResolve);
222 }
223 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES: {
224 return sizeof(VkPhysicalDeviceDepthStencilResolveProperties);
225 }
226 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES: {
227 return sizeof(VkPhysicalDeviceScalarBlockLayoutFeatures);
228 }
229 case VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO: {
230 return sizeof(VkImageStencilUsageCreateInfo);
231 }
232 case VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO: {
233 return sizeof(VkSamplerReductionModeCreateInfo);
234 }
235 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES: {
236 return sizeof(VkPhysicalDeviceSamplerFilterMinmaxProperties);
237 }
238 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES: {
239 return sizeof(VkPhysicalDeviceVulkanMemoryModelFeatures);
240 }
241 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES: {
242 return sizeof(VkPhysicalDeviceImagelessFramebufferFeatures);
243 }
244 case VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO: {
245 return sizeof(VkFramebufferAttachmentsCreateInfo);
246 }
247 case VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO: {
248 return sizeof(VkRenderPassAttachmentBeginInfo);
249 }
250 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES: {
251 return sizeof(VkPhysicalDeviceUniformBufferStandardLayoutFeatures);
252 }
253 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES: {
254 return sizeof(VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures);
255 }
256 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES: {
257 return sizeof(VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures);
258 }
259 case VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT: {
260 return sizeof(VkAttachmentReferenceStencilLayout);
261 }
262 case VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT: {
263 return sizeof(VkAttachmentDescriptionStencilLayout);
264 }
265 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES: {
266 return sizeof(VkPhysicalDeviceHostQueryResetFeatures);
267 }
268 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES: {
269 return sizeof(VkPhysicalDeviceTimelineSemaphoreFeatures);
270 }
271 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES: {
272 return sizeof(VkPhysicalDeviceTimelineSemaphoreProperties);
273 }
274 case VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO: {
275 return sizeof(VkSemaphoreTypeCreateInfo);
276 }
277 case VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO: {
278 return sizeof(VkTimelineSemaphoreSubmitInfo);
279 }
280 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES: {
281 return sizeof(VkPhysicalDeviceBufferDeviceAddressFeatures);
282 }
283 case VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO: {
284 return sizeof(VkBufferOpaqueCaptureAddressCreateInfo);
285 }
286 case VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO: {
287 return sizeof(VkMemoryOpaqueCaptureAddressAllocateInfo);
288 }
289 #endif
290 #ifdef VK_VERSION_1_3
291 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES: {
292 return sizeof(VkPhysicalDeviceVulkan13Features);
293 }
294 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES: {
295 return sizeof(VkPhysicalDeviceVulkan13Properties);
296 }
297 case VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO: {
298 return sizeof(VkPipelineCreationFeedbackCreateInfo);
299 }
300 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES: {
301 return sizeof(VkPhysicalDeviceShaderTerminateInvocationFeatures);
302 }
303 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES: {
304 return sizeof(VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures);
305 }
306 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES: {
307 return sizeof(VkPhysicalDevicePrivateDataFeatures);
308 }
309 case VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO: {
310 return sizeof(VkDevicePrivateDataCreateInfo);
311 }
312 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES: {
313 return sizeof(VkPhysicalDevicePipelineCreationCacheControlFeatures);
314 }
315 case VK_STRUCTURE_TYPE_MEMORY_BARRIER_2: {
316 return sizeof(VkMemoryBarrier2);
317 }
318 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES: {
319 return sizeof(VkPhysicalDeviceSynchronization2Features);
320 }
321 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES: {
322 return sizeof(VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures);
323 }
324 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES: {
325 return sizeof(VkPhysicalDeviceImageRobustnessFeatures);
326 }
327 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES: {
328 return sizeof(VkPhysicalDeviceSubgroupSizeControlFeatures);
329 }
330 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES: {
331 return sizeof(VkPhysicalDeviceSubgroupSizeControlProperties);
332 }
333 case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO: {
334 return sizeof(VkPipelineShaderStageRequiredSubgroupSizeCreateInfo);
335 }
336 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES: {
337 return sizeof(VkPhysicalDeviceInlineUniformBlockFeatures);
338 }
339 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES: {
340 return sizeof(VkPhysicalDeviceInlineUniformBlockProperties);
341 }
342 case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK: {
343 return sizeof(VkWriteDescriptorSetInlineUniformBlock);
344 }
345 case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO: {
346 return sizeof(VkDescriptorPoolInlineUniformBlockCreateInfo);
347 }
348 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES: {
349 return sizeof(VkPhysicalDeviceTextureCompressionASTCHDRFeatures);
350 }
351 case VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO: {
352 return sizeof(VkPipelineRenderingCreateInfo);
353 }
354 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES: {
355 return sizeof(VkPhysicalDeviceDynamicRenderingFeatures);
356 }
357 case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO: {
358 return sizeof(VkCommandBufferInheritanceRenderingInfo);
359 }
360 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES: {
361 return sizeof(VkPhysicalDeviceShaderIntegerDotProductFeatures);
362 }
363 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES: {
364 return sizeof(VkPhysicalDeviceShaderIntegerDotProductProperties);
365 }
366 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES: {
367 return sizeof(VkPhysicalDeviceTexelBufferAlignmentProperties);
368 }
369 case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3: {
370 return sizeof(VkFormatProperties3);
371 }
372 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES: {
373 return sizeof(VkPhysicalDeviceMaintenance4Features);
374 }
375 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES: {
376 return sizeof(VkPhysicalDeviceMaintenance4Properties);
377 }
378 #endif
379 #ifdef VK_KHR_dynamic_rendering
380 case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR: {
381 return sizeof(VkRenderingFragmentShadingRateAttachmentInfoKHR);
382 }
383 case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT: {
384 return sizeof(VkRenderingFragmentDensityMapAttachmentInfoEXT);
385 }
386 case VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD: {
387 return sizeof(VkAttachmentSampleCountInfoAMD);
388 }
389 case VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX: {
390 return sizeof(VkMultiviewPerViewAttributesInfoNVX);
391 }
392 #endif
393 #ifdef VK_KHR_incremental_present
394 case VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR: {
395 return sizeof(VkPresentRegionsKHR);
396 }
397 #endif
398 #ifdef VK_KHR_pipeline_executable_properties
399 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR: {
400 return sizeof(VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR);
401 }
402 #endif
403 #ifdef VK_KHR_synchronization2
404 case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV: {
405 return sizeof(VkQueueFamilyCheckpointProperties2NV);
406 }
407 #endif
408 #ifdef VK_KHR_maintenance5
409 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR: {
410 return sizeof(VkPhysicalDeviceMaintenance5FeaturesKHR);
411 }
412 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR: {
413 return sizeof(VkPhysicalDeviceMaintenance5PropertiesKHR);
414 }
415 case VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR: {
416 return sizeof(VkPipelineCreateFlags2CreateInfoKHR);
417 }
418 case VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR: {
419 return sizeof(VkBufferUsageFlags2CreateInfoKHR);
420 }
421 #endif
422 #ifdef VK_KHR_line_rasterization
423 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_KHR: {
424 return sizeof(VkPhysicalDeviceLineRasterizationFeaturesKHR);
425 }
426 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_KHR: {
427 return sizeof(VkPhysicalDeviceLineRasterizationPropertiesKHR);
428 }
429 case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_KHR: {
430 return sizeof(VkPipelineRasterizationLineStateCreateInfoKHR);
431 }
432 #endif
433 #ifdef VK_ANDROID_native_buffer
434 case VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID: {
435 return sizeof(VkNativeBufferANDROID);
436 }
437 #endif
438 #ifdef VK_EXT_transform_feedback
439 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT: {
440 return sizeof(VkPhysicalDeviceTransformFeedbackFeaturesEXT);
441 }
442 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT: {
443 return sizeof(VkPhysicalDeviceTransformFeedbackPropertiesEXT);
444 }
445 case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT: {
446 return sizeof(VkPipelineRasterizationStateStreamCreateInfoEXT);
447 }
448 #endif
449 #ifdef VK_EXT_depth_clip_enable
450 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT: {
451 return sizeof(VkPhysicalDeviceDepthClipEnableFeaturesEXT);
452 }
453 case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT: {
454 return sizeof(VkPipelineRasterizationDepthClipStateCreateInfoEXT);
455 }
456 #endif
457 #ifdef VK_EXT_image_drm_format_modifier
458 case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT: {
459 return sizeof(VkDrmFormatModifierPropertiesListEXT);
460 }
461 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT: {
462 return sizeof(VkPhysicalDeviceImageDrmFormatModifierInfoEXT);
463 }
464 case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT: {
465 return sizeof(VkImageDrmFormatModifierListCreateInfoEXT);
466 }
467 case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT: {
468 return sizeof(VkImageDrmFormatModifierExplicitCreateInfoEXT);
469 }
470 case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT: {
471 return sizeof(VkDrmFormatModifierPropertiesList2EXT);
472 }
473 #endif
474 #ifdef VK_EXT_vertex_attribute_divisor
475 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT: {
476 return sizeof(VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT);
477 }
478 #endif
479 #ifdef VK_EXT_fragment_density_map
480 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT: {
481 switch (rootType) {
482 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2: {
483 return sizeof(VkPhysicalDeviceFragmentDensityMapFeaturesEXT);
484 break;
485 }
486 case VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO: {
487 return sizeof(VkPhysicalDeviceFragmentDensityMapFeaturesEXT);
488 break;
489 }
490 case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO: {
491 return sizeof(VkImportColorBufferGOOGLE);
492 break;
493 }
494 default: {
495 return sizeof(VkPhysicalDeviceFragmentDensityMapFeaturesEXT);
496 break;
497 }
498 }
499 }
500 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT: {
501 switch (rootType) {
502 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2: {
503 return sizeof(VkPhysicalDeviceFragmentDensityMapPropertiesEXT);
504 break;
505 }
506 case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO: {
507 return sizeof(VkCreateBlobGOOGLE);
508 break;
509 }
510 default: {
511 return sizeof(VkPhysicalDeviceFragmentDensityMapPropertiesEXT);
512 break;
513 }
514 }
515 }
516 case VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT: {
517 switch (rootType) {
518 case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO: {
519 return sizeof(VkRenderPassFragmentDensityMapCreateInfoEXT);
520 break;
521 }
522 case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2: {
523 return sizeof(VkRenderPassFragmentDensityMapCreateInfoEXT);
524 break;
525 }
526 case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO: {
527 return sizeof(VkImportBufferGOOGLE);
528 break;
529 }
530 default: {
531 return sizeof(VkRenderPassFragmentDensityMapCreateInfoEXT);
532 break;
533 }
534 }
535 }
536 #endif
537 #ifdef VK_EXT_provoking_vertex
538 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT: {
539 return sizeof(VkPhysicalDeviceProvokingVertexFeaturesEXT);
540 }
541 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT: {
542 return sizeof(VkPhysicalDeviceProvokingVertexPropertiesEXT);
543 }
544 case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT: {
545 return sizeof(VkPipelineRasterizationProvokingVertexStateCreateInfoEXT);
546 }
547 #endif
548 #ifdef VK_EXT_extended_dynamic_state
549 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT: {
550 return sizeof(VkPhysicalDeviceExtendedDynamicStateFeaturesEXT);
551 }
552 #endif
553 #ifdef VK_EXT_host_image_copy
554 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT: {
555 return sizeof(VkPhysicalDeviceHostImageCopyFeaturesEXT);
556 }
557 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT: {
558 return sizeof(VkPhysicalDeviceHostImageCopyPropertiesEXT);
559 }
560 case VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT: {
561 return sizeof(VkSubresourceHostMemcpySizeEXT);
562 }
563 case VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT: {
564 return sizeof(VkHostImageCopyDevicePerformanceQueryEXT);
565 }
566 #endif
567 #ifdef VK_EXT_texel_buffer_alignment
568 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT: {
569 return sizeof(VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT);
570 }
571 #endif
572 #ifdef VK_EXT_device_memory_report
573 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT: {
574 return sizeof(VkPhysicalDeviceDeviceMemoryReportFeaturesEXT);
575 }
576 case VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT: {
577 return sizeof(VkDeviceDeviceMemoryReportCreateInfoEXT);
578 }
579 #endif
580 #ifdef VK_EXT_robustness2
581 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT: {
582 return sizeof(VkPhysicalDeviceRobustness2FeaturesEXT);
583 }
584 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT: {
585 return sizeof(VkPhysicalDeviceRobustness2PropertiesEXT);
586 }
587 #endif
588 #ifdef VK_EXT_custom_border_color
589 case VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT: {
590 return sizeof(VkSamplerCustomBorderColorCreateInfoEXT);
591 }
592 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT: {
593 return sizeof(VkPhysicalDeviceCustomBorderColorPropertiesEXT);
594 }
595 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT: {
596 return sizeof(VkPhysicalDeviceCustomBorderColorFeaturesEXT);
597 }
598 #endif
599 #ifdef VK_EXT_graphics_pipeline_library
600 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT: {
601 return sizeof(VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT);
602 }
603 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT: {
604 return sizeof(VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT);
605 }
606 case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT: {
607 return sizeof(VkGraphicsPipelineLibraryCreateInfoEXT);
608 }
609 #endif
610 #ifdef VK_EXT_ycbcr_2plane_444_formats
611 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT: {
612 return sizeof(VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT);
613 }
614 #endif
615 #ifdef VK_EXT_image_compression_control
616 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT: {
617 return sizeof(VkPhysicalDeviceImageCompressionControlFeaturesEXT);
618 }
619 case VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT: {
620 return sizeof(VkImageCompressionControlEXT);
621 }
622 case VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT: {
623 return sizeof(VkImageCompressionPropertiesEXT);
624 }
625 #endif
626 #ifdef VK_EXT_4444_formats
627 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT: {
628 return sizeof(VkPhysicalDevice4444FormatsFeaturesEXT);
629 }
630 #endif
631 #ifdef VK_EXT_primitive_topology_list_restart
632 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT: {
633 return sizeof(VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT);
634 }
635 #endif
636 #ifdef VK_EXT_extended_dynamic_state2
637 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT: {
638 return sizeof(VkPhysicalDeviceExtendedDynamicState2FeaturesEXT);
639 }
640 #endif
641 #ifdef VK_EXT_color_write_enable
642 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT: {
643 return sizeof(VkPhysicalDeviceColorWriteEnableFeaturesEXT);
644 }
645 case VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT: {
646 return sizeof(VkPipelineColorWriteCreateInfoEXT);
647 }
648 #endif
649 #ifdef VK_GOOGLE_gfxstream
650 case VK_STRUCTURE_TYPE_IMPORT_COLOR_BUFFER_GOOGLE: {
651 return sizeof(VkImportColorBufferGOOGLE);
652 }
653 case VK_STRUCTURE_TYPE_IMPORT_BUFFER_GOOGLE: {
654 return sizeof(VkImportBufferGOOGLE);
655 }
656 case VK_STRUCTURE_TYPE_CREATE_BLOB_GOOGLE: {
657 return sizeof(VkCreateBlobGOOGLE);
658 }
659 #endif
660 #ifdef VK_EXT_image_compression_control_swapchain
661 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT: {
662 return sizeof(VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT);
663 }
664 #endif
665 default: {
666 return (size_t)0;
667 }
668 }
669 }
670
goldfish_vk_extension_struct_size_with_stream_features(uint32_t streamFeatures,VkStructureType rootType,const void * structExtension)671 size_t goldfish_vk_extension_struct_size_with_stream_features(uint32_t streamFeatures,
672 VkStructureType rootType,
673 const void* structExtension) {
674 if (!structExtension) {
675 return (size_t)0;
676 }
677 uint32_t structType = (uint32_t)goldfish_vk_struct_type(structExtension);
678 switch (structType) {
679 #ifdef VK_VERSION_1_0
680 case VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO: {
681 return sizeof(VkShaderModuleCreateInfo);
682 }
683 case VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO: {
684 return sizeof(VkPipelineLayoutCreateInfo);
685 }
686 #endif
687 #ifdef VK_VERSION_1_1
688 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES: {
689 return sizeof(VkPhysicalDeviceSubgroupProperties);
690 }
691 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES: {
692 return sizeof(VkPhysicalDevice16BitStorageFeatures);
693 }
694 case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS: {
695 return sizeof(VkMemoryDedicatedRequirements);
696 }
697 case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO: {
698 return sizeof(VkMemoryDedicatedAllocateInfo);
699 }
700 case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO: {
701 return sizeof(VkMemoryAllocateFlagsInfo);
702 }
703 case VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO: {
704 return sizeof(VkDeviceGroupRenderPassBeginInfo);
705 }
706 case VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO: {
707 return sizeof(VkDeviceGroupCommandBufferBeginInfo);
708 }
709 case VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO: {
710 return sizeof(VkDeviceGroupSubmitInfo);
711 }
712 case VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO: {
713 return sizeof(VkDeviceGroupBindSparseInfo);
714 }
715 case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO: {
716 return sizeof(VkBindBufferMemoryDeviceGroupInfo);
717 }
718 case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO: {
719 return sizeof(VkBindImageMemoryDeviceGroupInfo);
720 }
721 case VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO: {
722 return sizeof(VkDeviceGroupDeviceCreateInfo);
723 }
724 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2: {
725 return sizeof(VkPhysicalDeviceFeatures2);
726 }
727 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES: {
728 return sizeof(VkPhysicalDevicePointClippingProperties);
729 }
730 case VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO: {
731 return sizeof(VkRenderPassInputAttachmentAspectCreateInfo);
732 }
733 case VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO: {
734 return sizeof(VkImageViewUsageCreateInfo);
735 }
736 case VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO: {
737 return sizeof(VkPipelineTessellationDomainOriginStateCreateInfo);
738 }
739 case VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO: {
740 return sizeof(VkRenderPassMultiviewCreateInfo);
741 }
742 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES: {
743 return sizeof(VkPhysicalDeviceMultiviewFeatures);
744 }
745 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES: {
746 return sizeof(VkPhysicalDeviceMultiviewProperties);
747 }
748 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES: {
749 return sizeof(VkPhysicalDeviceVariablePointersFeatures);
750 }
751 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES: {
752 return sizeof(VkPhysicalDeviceProtectedMemoryFeatures);
753 }
754 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES: {
755 return sizeof(VkPhysicalDeviceProtectedMemoryProperties);
756 }
757 case VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO: {
758 return sizeof(VkProtectedSubmitInfo);
759 }
760 case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO: {
761 return sizeof(VkSamplerYcbcrConversionInfo);
762 }
763 case VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO: {
764 return sizeof(VkBindImagePlaneMemoryInfo);
765 }
766 case VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO: {
767 return sizeof(VkImagePlaneMemoryRequirementsInfo);
768 }
769 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES: {
770 return sizeof(VkPhysicalDeviceSamplerYcbcrConversionFeatures);
771 }
772 case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES: {
773 return sizeof(VkSamplerYcbcrConversionImageFormatProperties);
774 }
775 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO: {
776 return sizeof(VkPhysicalDeviceExternalImageFormatInfo);
777 }
778 case VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES: {
779 return sizeof(VkExternalImageFormatProperties);
780 }
781 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES: {
782 return sizeof(VkPhysicalDeviceIDProperties);
783 }
784 case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO: {
785 return sizeof(VkExternalMemoryImageCreateInfo);
786 }
787 case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO: {
788 return sizeof(VkExternalMemoryBufferCreateInfo);
789 }
790 case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO: {
791 return sizeof(VkExportMemoryAllocateInfo);
792 }
793 case VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO: {
794 return sizeof(VkExportFenceCreateInfo);
795 }
796 case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO: {
797 return sizeof(VkExportSemaphoreCreateInfo);
798 }
799 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES: {
800 return sizeof(VkPhysicalDeviceMaintenance3Properties);
801 }
802 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES: {
803 return sizeof(VkPhysicalDeviceShaderDrawParametersFeatures);
804 }
805 #endif
806 #ifdef VK_VERSION_1_2
807 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES: {
808 return sizeof(VkPhysicalDeviceVulkan11Features);
809 }
810 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES: {
811 return sizeof(VkPhysicalDeviceVulkan11Properties);
812 }
813 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES: {
814 return sizeof(VkPhysicalDeviceVulkan12Features);
815 }
816 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES: {
817 return sizeof(VkPhysicalDeviceVulkan12Properties);
818 }
819 case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO: {
820 return sizeof(VkImageFormatListCreateInfo);
821 }
822 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES: {
823 return sizeof(VkPhysicalDevice8BitStorageFeatures);
824 }
825 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES: {
826 return sizeof(VkPhysicalDeviceDriverProperties);
827 }
828 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES: {
829 return sizeof(VkPhysicalDeviceShaderAtomicInt64Features);
830 }
831 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES: {
832 if (streamFeatures & VULKAN_STREAM_FEATURE_SHADER_FLOAT16_INT8_BIT) {
833 return sizeof(VkPhysicalDeviceShaderFloat16Int8Features);
834 } else {
835 return 0;
836 }
837 }
838 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES: {
839 return sizeof(VkPhysicalDeviceFloatControlsProperties);
840 }
841 case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO: {
842 return sizeof(VkDescriptorSetLayoutBindingFlagsCreateInfo);
843 }
844 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES: {
845 return sizeof(VkPhysicalDeviceDescriptorIndexingFeatures);
846 }
847 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES: {
848 return sizeof(VkPhysicalDeviceDescriptorIndexingProperties);
849 }
850 case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO: {
851 return sizeof(VkDescriptorSetVariableDescriptorCountAllocateInfo);
852 }
853 case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT: {
854 return sizeof(VkDescriptorSetVariableDescriptorCountLayoutSupport);
855 }
856 case VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE: {
857 return sizeof(VkSubpassDescriptionDepthStencilResolve);
858 }
859 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES: {
860 return sizeof(VkPhysicalDeviceDepthStencilResolveProperties);
861 }
862 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES: {
863 return sizeof(VkPhysicalDeviceScalarBlockLayoutFeatures);
864 }
865 case VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO: {
866 return sizeof(VkImageStencilUsageCreateInfo);
867 }
868 case VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO: {
869 return sizeof(VkSamplerReductionModeCreateInfo);
870 }
871 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES: {
872 return sizeof(VkPhysicalDeviceSamplerFilterMinmaxProperties);
873 }
874 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES: {
875 return sizeof(VkPhysicalDeviceVulkanMemoryModelFeatures);
876 }
877 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES: {
878 return sizeof(VkPhysicalDeviceImagelessFramebufferFeatures);
879 }
880 case VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO: {
881 return sizeof(VkFramebufferAttachmentsCreateInfo);
882 }
883 case VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO: {
884 return sizeof(VkRenderPassAttachmentBeginInfo);
885 }
886 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES: {
887 return sizeof(VkPhysicalDeviceUniformBufferStandardLayoutFeatures);
888 }
889 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES: {
890 return sizeof(VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures);
891 }
892 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES: {
893 return sizeof(VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures);
894 }
895 case VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT: {
896 return sizeof(VkAttachmentReferenceStencilLayout);
897 }
898 case VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT: {
899 return sizeof(VkAttachmentDescriptionStencilLayout);
900 }
901 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES: {
902 return sizeof(VkPhysicalDeviceHostQueryResetFeatures);
903 }
904 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES: {
905 return sizeof(VkPhysicalDeviceTimelineSemaphoreFeatures);
906 }
907 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES: {
908 return sizeof(VkPhysicalDeviceTimelineSemaphoreProperties);
909 }
910 case VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO: {
911 return sizeof(VkSemaphoreTypeCreateInfo);
912 }
913 case VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO: {
914 return sizeof(VkTimelineSemaphoreSubmitInfo);
915 }
916 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES: {
917 return sizeof(VkPhysicalDeviceBufferDeviceAddressFeatures);
918 }
919 case VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO: {
920 return sizeof(VkBufferOpaqueCaptureAddressCreateInfo);
921 }
922 case VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO: {
923 return sizeof(VkMemoryOpaqueCaptureAddressAllocateInfo);
924 }
925 #endif
926 #ifdef VK_VERSION_1_3
927 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES: {
928 return sizeof(VkPhysicalDeviceVulkan13Features);
929 }
930 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES: {
931 return sizeof(VkPhysicalDeviceVulkan13Properties);
932 }
933 case VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO: {
934 return sizeof(VkPipelineCreationFeedbackCreateInfo);
935 }
936 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES: {
937 return sizeof(VkPhysicalDeviceShaderTerminateInvocationFeatures);
938 }
939 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES: {
940 return sizeof(VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures);
941 }
942 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES: {
943 return sizeof(VkPhysicalDevicePrivateDataFeatures);
944 }
945 case VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO: {
946 return sizeof(VkDevicePrivateDataCreateInfo);
947 }
948 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES: {
949 return sizeof(VkPhysicalDevicePipelineCreationCacheControlFeatures);
950 }
951 case VK_STRUCTURE_TYPE_MEMORY_BARRIER_2: {
952 return sizeof(VkMemoryBarrier2);
953 }
954 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES: {
955 return sizeof(VkPhysicalDeviceSynchronization2Features);
956 }
957 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES: {
958 return sizeof(VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures);
959 }
960 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES: {
961 return sizeof(VkPhysicalDeviceImageRobustnessFeatures);
962 }
963 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES: {
964 return sizeof(VkPhysicalDeviceSubgroupSizeControlFeatures);
965 }
966 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES: {
967 return sizeof(VkPhysicalDeviceSubgroupSizeControlProperties);
968 }
969 case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO: {
970 return sizeof(VkPipelineShaderStageRequiredSubgroupSizeCreateInfo);
971 }
972 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES: {
973 return sizeof(VkPhysicalDeviceInlineUniformBlockFeatures);
974 }
975 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES: {
976 return sizeof(VkPhysicalDeviceInlineUniformBlockProperties);
977 }
978 case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK: {
979 return sizeof(VkWriteDescriptorSetInlineUniformBlock);
980 }
981 case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO: {
982 return sizeof(VkDescriptorPoolInlineUniformBlockCreateInfo);
983 }
984 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES: {
985 return sizeof(VkPhysicalDeviceTextureCompressionASTCHDRFeatures);
986 }
987 case VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO: {
988 return sizeof(VkPipelineRenderingCreateInfo);
989 }
990 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES: {
991 return sizeof(VkPhysicalDeviceDynamicRenderingFeatures);
992 }
993 case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO: {
994 return sizeof(VkCommandBufferInheritanceRenderingInfo);
995 }
996 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES: {
997 return sizeof(VkPhysicalDeviceShaderIntegerDotProductFeatures);
998 }
999 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES: {
1000 return sizeof(VkPhysicalDeviceShaderIntegerDotProductProperties);
1001 }
1002 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES: {
1003 return sizeof(VkPhysicalDeviceTexelBufferAlignmentProperties);
1004 }
1005 case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3: {
1006 return sizeof(VkFormatProperties3);
1007 }
1008 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES: {
1009 return sizeof(VkPhysicalDeviceMaintenance4Features);
1010 }
1011 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES: {
1012 return sizeof(VkPhysicalDeviceMaintenance4Properties);
1013 }
1014 #endif
1015 #ifdef VK_KHR_dynamic_rendering
1016 case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR: {
1017 return sizeof(VkRenderingFragmentShadingRateAttachmentInfoKHR);
1018 }
1019 case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT: {
1020 return sizeof(VkRenderingFragmentDensityMapAttachmentInfoEXT);
1021 }
1022 case VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD: {
1023 return sizeof(VkAttachmentSampleCountInfoAMD);
1024 }
1025 case VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX: {
1026 return sizeof(VkMultiviewPerViewAttributesInfoNVX);
1027 }
1028 #endif
1029 #ifdef VK_KHR_incremental_present
1030 case VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR: {
1031 return sizeof(VkPresentRegionsKHR);
1032 }
1033 #endif
1034 #ifdef VK_KHR_pipeline_executable_properties
1035 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR: {
1036 return sizeof(VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR);
1037 }
1038 #endif
1039 #ifdef VK_KHR_synchronization2
1040 case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV: {
1041 return sizeof(VkQueueFamilyCheckpointProperties2NV);
1042 }
1043 #endif
1044 #ifdef VK_KHR_maintenance5
1045 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR: {
1046 return sizeof(VkPhysicalDeviceMaintenance5FeaturesKHR);
1047 }
1048 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR: {
1049 return sizeof(VkPhysicalDeviceMaintenance5PropertiesKHR);
1050 }
1051 case VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR: {
1052 return sizeof(VkPipelineCreateFlags2CreateInfoKHR);
1053 }
1054 case VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR: {
1055 return sizeof(VkBufferUsageFlags2CreateInfoKHR);
1056 }
1057 #endif
1058 #ifdef VK_KHR_line_rasterization
1059 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_KHR: {
1060 return sizeof(VkPhysicalDeviceLineRasterizationFeaturesKHR);
1061 }
1062 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_KHR: {
1063 return sizeof(VkPhysicalDeviceLineRasterizationPropertiesKHR);
1064 }
1065 case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_KHR: {
1066 return sizeof(VkPipelineRasterizationLineStateCreateInfoKHR);
1067 }
1068 #endif
1069 #ifdef VK_ANDROID_native_buffer
1070 case VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID: {
1071 return sizeof(VkNativeBufferANDROID);
1072 }
1073 #endif
1074 #ifdef VK_EXT_transform_feedback
1075 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT: {
1076 return sizeof(VkPhysicalDeviceTransformFeedbackFeaturesEXT);
1077 }
1078 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT: {
1079 return sizeof(VkPhysicalDeviceTransformFeedbackPropertiesEXT);
1080 }
1081 case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT: {
1082 return sizeof(VkPipelineRasterizationStateStreamCreateInfoEXT);
1083 }
1084 #endif
1085 #ifdef VK_EXT_depth_clip_enable
1086 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT: {
1087 return sizeof(VkPhysicalDeviceDepthClipEnableFeaturesEXT);
1088 }
1089 case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT: {
1090 return sizeof(VkPipelineRasterizationDepthClipStateCreateInfoEXT);
1091 }
1092 #endif
1093 #ifdef VK_EXT_image_drm_format_modifier
1094 case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT: {
1095 return sizeof(VkDrmFormatModifierPropertiesListEXT);
1096 }
1097 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT: {
1098 return sizeof(VkPhysicalDeviceImageDrmFormatModifierInfoEXT);
1099 }
1100 case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT: {
1101 return sizeof(VkImageDrmFormatModifierListCreateInfoEXT);
1102 }
1103 case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT: {
1104 return sizeof(VkImageDrmFormatModifierExplicitCreateInfoEXT);
1105 }
1106 case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT: {
1107 return sizeof(VkDrmFormatModifierPropertiesList2EXT);
1108 }
1109 #endif
1110 #ifdef VK_EXT_vertex_attribute_divisor
1111 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT: {
1112 return sizeof(VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT);
1113 }
1114 #endif
1115 #ifdef VK_EXT_fragment_density_map
1116 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT: {
1117 switch (rootType) {
1118 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2: {
1119 return sizeof(VkPhysicalDeviceFragmentDensityMapFeaturesEXT);
1120 break;
1121 }
1122 case VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO: {
1123 return sizeof(VkPhysicalDeviceFragmentDensityMapFeaturesEXT);
1124 break;
1125 }
1126 case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO: {
1127 return sizeof(VkImportColorBufferGOOGLE);
1128 break;
1129 }
1130 default: {
1131 return sizeof(VkPhysicalDeviceFragmentDensityMapFeaturesEXT);
1132 break;
1133 }
1134 }
1135 }
1136 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT: {
1137 switch (rootType) {
1138 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2: {
1139 return sizeof(VkPhysicalDeviceFragmentDensityMapPropertiesEXT);
1140 break;
1141 }
1142 case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO: {
1143 return sizeof(VkCreateBlobGOOGLE);
1144 break;
1145 }
1146 default: {
1147 return sizeof(VkPhysicalDeviceFragmentDensityMapPropertiesEXT);
1148 break;
1149 }
1150 }
1151 }
1152 case VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT: {
1153 switch (rootType) {
1154 case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO: {
1155 return sizeof(VkRenderPassFragmentDensityMapCreateInfoEXT);
1156 break;
1157 }
1158 case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2: {
1159 return sizeof(VkRenderPassFragmentDensityMapCreateInfoEXT);
1160 break;
1161 }
1162 case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO: {
1163 return sizeof(VkImportBufferGOOGLE);
1164 break;
1165 }
1166 default: {
1167 return sizeof(VkRenderPassFragmentDensityMapCreateInfoEXT);
1168 break;
1169 }
1170 }
1171 }
1172 #endif
1173 #ifdef VK_EXT_provoking_vertex
1174 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT: {
1175 return sizeof(VkPhysicalDeviceProvokingVertexFeaturesEXT);
1176 }
1177 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT: {
1178 return sizeof(VkPhysicalDeviceProvokingVertexPropertiesEXT);
1179 }
1180 case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT: {
1181 return sizeof(VkPipelineRasterizationProvokingVertexStateCreateInfoEXT);
1182 }
1183 #endif
1184 #ifdef VK_EXT_extended_dynamic_state
1185 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT: {
1186 return sizeof(VkPhysicalDeviceExtendedDynamicStateFeaturesEXT);
1187 }
1188 #endif
1189 #ifdef VK_EXT_host_image_copy
1190 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT: {
1191 return sizeof(VkPhysicalDeviceHostImageCopyFeaturesEXT);
1192 }
1193 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT: {
1194 return sizeof(VkPhysicalDeviceHostImageCopyPropertiesEXT);
1195 }
1196 case VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT: {
1197 return sizeof(VkSubresourceHostMemcpySizeEXT);
1198 }
1199 case VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT: {
1200 return sizeof(VkHostImageCopyDevicePerformanceQueryEXT);
1201 }
1202 #endif
1203 #ifdef VK_EXT_texel_buffer_alignment
1204 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT: {
1205 return sizeof(VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT);
1206 }
1207 #endif
1208 #ifdef VK_EXT_device_memory_report
1209 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT: {
1210 return sizeof(VkPhysicalDeviceDeviceMemoryReportFeaturesEXT);
1211 }
1212 case VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT: {
1213 return sizeof(VkDeviceDeviceMemoryReportCreateInfoEXT);
1214 }
1215 #endif
1216 #ifdef VK_EXT_robustness2
1217 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT: {
1218 return sizeof(VkPhysicalDeviceRobustness2FeaturesEXT);
1219 }
1220 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT: {
1221 return sizeof(VkPhysicalDeviceRobustness2PropertiesEXT);
1222 }
1223 #endif
1224 #ifdef VK_EXT_custom_border_color
1225 case VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT: {
1226 return sizeof(VkSamplerCustomBorderColorCreateInfoEXT);
1227 }
1228 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT: {
1229 return sizeof(VkPhysicalDeviceCustomBorderColorPropertiesEXT);
1230 }
1231 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT: {
1232 return sizeof(VkPhysicalDeviceCustomBorderColorFeaturesEXT);
1233 }
1234 #endif
1235 #ifdef VK_EXT_graphics_pipeline_library
1236 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT: {
1237 return sizeof(VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT);
1238 }
1239 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT: {
1240 return sizeof(VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT);
1241 }
1242 case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT: {
1243 return sizeof(VkGraphicsPipelineLibraryCreateInfoEXT);
1244 }
1245 #endif
1246 #ifdef VK_EXT_ycbcr_2plane_444_formats
1247 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT: {
1248 return sizeof(VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT);
1249 }
1250 #endif
1251 #ifdef VK_EXT_image_compression_control
1252 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT: {
1253 return sizeof(VkPhysicalDeviceImageCompressionControlFeaturesEXT);
1254 }
1255 case VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT: {
1256 return sizeof(VkImageCompressionControlEXT);
1257 }
1258 case VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT: {
1259 return sizeof(VkImageCompressionPropertiesEXT);
1260 }
1261 #endif
1262 #ifdef VK_EXT_4444_formats
1263 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT: {
1264 return sizeof(VkPhysicalDevice4444FormatsFeaturesEXT);
1265 }
1266 #endif
1267 #ifdef VK_EXT_primitive_topology_list_restart
1268 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT: {
1269 return sizeof(VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT);
1270 }
1271 #endif
1272 #ifdef VK_EXT_extended_dynamic_state2
1273 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT: {
1274 return sizeof(VkPhysicalDeviceExtendedDynamicState2FeaturesEXT);
1275 }
1276 #endif
1277 #ifdef VK_EXT_color_write_enable
1278 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT: {
1279 return sizeof(VkPhysicalDeviceColorWriteEnableFeaturesEXT);
1280 }
1281 case VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT: {
1282 return sizeof(VkPipelineColorWriteCreateInfoEXT);
1283 }
1284 #endif
1285 #ifdef VK_GOOGLE_gfxstream
1286 case VK_STRUCTURE_TYPE_IMPORT_COLOR_BUFFER_GOOGLE: {
1287 return sizeof(VkImportColorBufferGOOGLE);
1288 }
1289 case VK_STRUCTURE_TYPE_IMPORT_BUFFER_GOOGLE: {
1290 return sizeof(VkImportBufferGOOGLE);
1291 }
1292 case VK_STRUCTURE_TYPE_CREATE_BLOB_GOOGLE: {
1293 return sizeof(VkCreateBlobGOOGLE);
1294 }
1295 #endif
1296 #ifdef VK_EXT_image_compression_control_swapchain
1297 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT: {
1298 return sizeof(VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT);
1299 }
1300 #endif
1301 default: {
1302 return (size_t)0;
1303 }
1304 }
1305 }
1306
1307 } // namespace vk
1308 } // namespace gfxstream
1309