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_VERSION_1_4
380 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_4_FEATURES: {
381 return sizeof(VkPhysicalDeviceVulkan14Features);
382 }
383 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_4_PROPERTIES: {
384 return sizeof(VkPhysicalDeviceVulkan14Properties);
385 }
386 case VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO: {
387 return sizeof(VkDeviceQueueGlobalPriorityCreateInfo);
388 }
389 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES: {
390 return sizeof(VkPhysicalDeviceGlobalPriorityQueryFeatures);
391 }
392 case VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES: {
393 return sizeof(VkQueueFamilyGlobalPriorityProperties);
394 }
395 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES: {
396 return sizeof(VkPhysicalDeviceShaderSubgroupRotateFeatures);
397 }
398 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES: {
399 return sizeof(VkPhysicalDeviceShaderFloatControls2Features);
400 }
401 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES: {
402 return sizeof(VkPhysicalDeviceShaderExpectAssumeFeatures);
403 }
404 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES: {
405 return sizeof(VkPhysicalDeviceLineRasterizationFeatures);
406 }
407 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES: {
408 return sizeof(VkPhysicalDeviceLineRasterizationProperties);
409 }
410 case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO: {
411 return sizeof(VkPipelineRasterizationLineStateCreateInfo);
412 }
413 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES: {
414 return sizeof(VkPhysicalDeviceVertexAttributeDivisorProperties);
415 }
416 case VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO: {
417 return sizeof(VkPipelineVertexInputDivisorStateCreateInfo);
418 }
419 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES: {
420 return sizeof(VkPhysicalDeviceVertexAttributeDivisorFeatures);
421 }
422 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES: {
423 return sizeof(VkPhysicalDeviceIndexTypeUint8Features);
424 }
425 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES: {
426 return sizeof(VkPhysicalDeviceMaintenance5Features);
427 }
428 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES: {
429 return sizeof(VkPhysicalDeviceMaintenance5Properties);
430 }
431 case VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO: {
432 return sizeof(VkPipelineCreateFlags2CreateInfo);
433 }
434 case VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO: {
435 return sizeof(VkBufferUsageFlags2CreateInfo);
436 }
437 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES: {
438 return sizeof(VkPhysicalDevicePushDescriptorProperties);
439 }
440 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES: {
441 return sizeof(VkPhysicalDeviceDynamicRenderingLocalReadFeatures);
442 }
443 case VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_LOCATION_INFO: {
444 return sizeof(VkRenderingAttachmentLocationInfo);
445 }
446 case VK_STRUCTURE_TYPE_RENDERING_INPUT_ATTACHMENT_INDEX_INFO: {
447 return sizeof(VkRenderingInputAttachmentIndexInfo);
448 }
449 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES: {
450 return sizeof(VkPhysicalDeviceMaintenance6Features);
451 }
452 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES: {
453 return sizeof(VkPhysicalDeviceMaintenance6Properties);
454 }
455 case VK_STRUCTURE_TYPE_BIND_MEMORY_STATUS: {
456 return sizeof(VkBindMemoryStatus);
457 }
458 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES: {
459 return sizeof(VkPhysicalDevicePipelineProtectedAccessFeatures);
460 }
461 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES: {
462 return sizeof(VkPhysicalDevicePipelineRobustnessFeatures);
463 }
464 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES: {
465 return sizeof(VkPhysicalDevicePipelineRobustnessProperties);
466 }
467 case VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO: {
468 return sizeof(VkPipelineRobustnessCreateInfo);
469 }
470 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES: {
471 return sizeof(VkPhysicalDeviceHostImageCopyFeatures);
472 }
473 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES: {
474 return sizeof(VkPhysicalDeviceHostImageCopyProperties);
475 }
476 case VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE: {
477 return sizeof(VkSubresourceHostMemcpySize);
478 }
479 case VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY: {
480 return sizeof(VkHostImageCopyDevicePerformanceQuery);
481 }
482 #endif
483 #ifdef VK_KHR_incremental_present
484 case VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR: {
485 return sizeof(VkPresentRegionsKHR);
486 }
487 #endif
488 #ifdef VK_KHR_pipeline_executable_properties
489 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR: {
490 return sizeof(VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR);
491 }
492 #endif
493 #ifdef VK_ANDROID_native_buffer
494 case VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID: {
495 return sizeof(VkNativeBufferANDROID);
496 }
497 #endif
498 #ifdef VK_EXT_transform_feedback
499 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT: {
500 return sizeof(VkPhysicalDeviceTransformFeedbackFeaturesEXT);
501 }
502 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT: {
503 return sizeof(VkPhysicalDeviceTransformFeedbackPropertiesEXT);
504 }
505 case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT: {
506 return sizeof(VkPipelineRasterizationStateStreamCreateInfoEXT);
507 }
508 #endif
509 #ifdef VK_EXT_depth_clip_enable
510 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT: {
511 return sizeof(VkPhysicalDeviceDepthClipEnableFeaturesEXT);
512 }
513 case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT: {
514 return sizeof(VkPipelineRasterizationDepthClipStateCreateInfoEXT);
515 }
516 #endif
517 #ifdef VK_EXT_image_drm_format_modifier
518 case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT: {
519 return sizeof(VkDrmFormatModifierPropertiesListEXT);
520 }
521 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT: {
522 return sizeof(VkPhysicalDeviceImageDrmFormatModifierInfoEXT);
523 }
524 case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT: {
525 return sizeof(VkImageDrmFormatModifierListCreateInfoEXT);
526 }
527 case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT: {
528 return sizeof(VkImageDrmFormatModifierExplicitCreateInfoEXT);
529 }
530 case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT: {
531 return sizeof(VkDrmFormatModifierPropertiesList2EXT);
532 }
533 #endif
534 #ifdef VK_EXT_vertex_attribute_divisor
535 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT: {
536 return sizeof(VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT);
537 }
538 #endif
539 #ifdef VK_EXT_fragment_density_map
540 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT: {
541 switch (rootType) {
542 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2: {
543 return sizeof(VkPhysicalDeviceFragmentDensityMapFeaturesEXT);
544 break;
545 }
546 case VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO: {
547 return sizeof(VkPhysicalDeviceFragmentDensityMapFeaturesEXT);
548 break;
549 }
550 case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO: {
551 return sizeof(VkImportColorBufferGOOGLE);
552 break;
553 }
554 default: {
555 return sizeof(VkPhysicalDeviceFragmentDensityMapFeaturesEXT);
556 break;
557 }
558 }
559 }
560 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT: {
561 switch (rootType) {
562 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2: {
563 return sizeof(VkPhysicalDeviceFragmentDensityMapPropertiesEXT);
564 break;
565 }
566 case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO: {
567 return sizeof(VkCreateBlobGOOGLE);
568 break;
569 }
570 default: {
571 return sizeof(VkPhysicalDeviceFragmentDensityMapPropertiesEXT);
572 break;
573 }
574 }
575 }
576 case VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT: {
577 switch (rootType) {
578 case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO: {
579 return sizeof(VkRenderPassFragmentDensityMapCreateInfoEXT);
580 break;
581 }
582 case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2: {
583 return sizeof(VkRenderPassFragmentDensityMapCreateInfoEXT);
584 break;
585 }
586 case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO: {
587 return sizeof(VkImportBufferGOOGLE);
588 break;
589 }
590 default: {
591 return sizeof(VkRenderPassFragmentDensityMapCreateInfoEXT);
592 break;
593 }
594 }
595 }
596 case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT: {
597 return sizeof(VkRenderingFragmentDensityMapAttachmentInfoEXT);
598 }
599 #endif
600 #ifdef VK_EXT_provoking_vertex
601 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT: {
602 return sizeof(VkPhysicalDeviceProvokingVertexFeaturesEXT);
603 }
604 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT: {
605 return sizeof(VkPhysicalDeviceProvokingVertexPropertiesEXT);
606 }
607 case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT: {
608 return sizeof(VkPipelineRasterizationProvokingVertexStateCreateInfoEXT);
609 }
610 #endif
611 #ifdef VK_EXT_extended_dynamic_state
612 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT: {
613 return sizeof(VkPhysicalDeviceExtendedDynamicStateFeaturesEXT);
614 }
615 #endif
616 #ifdef VK_EXT_texel_buffer_alignment
617 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT: {
618 return sizeof(VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT);
619 }
620 #endif
621 #ifdef VK_EXT_device_memory_report
622 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT: {
623 return sizeof(VkPhysicalDeviceDeviceMemoryReportFeaturesEXT);
624 }
625 case VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT: {
626 return sizeof(VkDeviceDeviceMemoryReportCreateInfoEXT);
627 }
628 #endif
629 #ifdef VK_EXT_robustness2
630 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT: {
631 return sizeof(VkPhysicalDeviceRobustness2FeaturesEXT);
632 }
633 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT: {
634 return sizeof(VkPhysicalDeviceRobustness2PropertiesEXT);
635 }
636 #endif
637 #ifdef VK_EXT_custom_border_color
638 case VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT: {
639 return sizeof(VkSamplerCustomBorderColorCreateInfoEXT);
640 }
641 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT: {
642 return sizeof(VkPhysicalDeviceCustomBorderColorPropertiesEXT);
643 }
644 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT: {
645 return sizeof(VkPhysicalDeviceCustomBorderColorFeaturesEXT);
646 }
647 #endif
648 #ifdef VK_EXT_graphics_pipeline_library
649 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT: {
650 return sizeof(VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT);
651 }
652 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT: {
653 return sizeof(VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT);
654 }
655 case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT: {
656 return sizeof(VkGraphicsPipelineLibraryCreateInfoEXT);
657 }
658 #endif
659 #ifdef VK_EXT_ycbcr_2plane_444_formats
660 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT: {
661 return sizeof(VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT);
662 }
663 #endif
664 #ifdef VK_EXT_image_compression_control
665 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT: {
666 return sizeof(VkPhysicalDeviceImageCompressionControlFeaturesEXT);
667 }
668 case VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT: {
669 return sizeof(VkImageCompressionControlEXT);
670 }
671 case VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT: {
672 return sizeof(VkImageCompressionPropertiesEXT);
673 }
674 #endif
675 #ifdef VK_EXT_4444_formats
676 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT: {
677 return sizeof(VkPhysicalDevice4444FormatsFeaturesEXT);
678 }
679 #endif
680 #ifdef VK_EXT_primitive_topology_list_restart
681 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT: {
682 return sizeof(VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT);
683 }
684 #endif
685 #ifdef VK_EXT_extended_dynamic_state2
686 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT: {
687 return sizeof(VkPhysicalDeviceExtendedDynamicState2FeaturesEXT);
688 }
689 #endif
690 #ifdef VK_EXT_color_write_enable
691 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT: {
692 return sizeof(VkPhysicalDeviceColorWriteEnableFeaturesEXT);
693 }
694 case VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT: {
695 return sizeof(VkPipelineColorWriteCreateInfoEXT);
696 }
697 #endif
698 #ifdef VK_GOOGLE_gfxstream
699 case VK_STRUCTURE_TYPE_IMPORT_COLOR_BUFFER_GOOGLE: {
700 return sizeof(VkImportColorBufferGOOGLE);
701 }
702 case VK_STRUCTURE_TYPE_IMPORT_BUFFER_GOOGLE: {
703 return sizeof(VkImportBufferGOOGLE);
704 }
705 case VK_STRUCTURE_TYPE_CREATE_BLOB_GOOGLE: {
706 return sizeof(VkCreateBlobGOOGLE);
707 }
708 #endif
709 #ifdef VK_EXT_image_compression_control_swapchain
710 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT: {
711 return sizeof(VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT);
712 }
713 #endif
714 default: {
715 return (size_t)0;
716 }
717 }
718 }
719
goldfish_vk_extension_struct_size_with_stream_features(uint32_t streamFeatures,VkStructureType rootType,const void * structExtension)720 size_t goldfish_vk_extension_struct_size_with_stream_features(uint32_t streamFeatures,
721 VkStructureType rootType,
722 const void* structExtension) {
723 if (!structExtension) {
724 return (size_t)0;
725 }
726 uint32_t structType = (uint32_t)goldfish_vk_struct_type(structExtension);
727 switch (structType) {
728 #ifdef VK_VERSION_1_0
729 case VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO: {
730 return sizeof(VkShaderModuleCreateInfo);
731 }
732 case VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO: {
733 return sizeof(VkPipelineLayoutCreateInfo);
734 }
735 #endif
736 #ifdef VK_VERSION_1_1
737 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES: {
738 return sizeof(VkPhysicalDeviceSubgroupProperties);
739 }
740 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES: {
741 return sizeof(VkPhysicalDevice16BitStorageFeatures);
742 }
743 case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS: {
744 return sizeof(VkMemoryDedicatedRequirements);
745 }
746 case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO: {
747 return sizeof(VkMemoryDedicatedAllocateInfo);
748 }
749 case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO: {
750 return sizeof(VkMemoryAllocateFlagsInfo);
751 }
752 case VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO: {
753 return sizeof(VkDeviceGroupRenderPassBeginInfo);
754 }
755 case VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO: {
756 return sizeof(VkDeviceGroupCommandBufferBeginInfo);
757 }
758 case VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO: {
759 return sizeof(VkDeviceGroupSubmitInfo);
760 }
761 case VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO: {
762 return sizeof(VkDeviceGroupBindSparseInfo);
763 }
764 case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO: {
765 return sizeof(VkBindBufferMemoryDeviceGroupInfo);
766 }
767 case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO: {
768 return sizeof(VkBindImageMemoryDeviceGroupInfo);
769 }
770 case VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO: {
771 return sizeof(VkDeviceGroupDeviceCreateInfo);
772 }
773 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2: {
774 return sizeof(VkPhysicalDeviceFeatures2);
775 }
776 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES: {
777 return sizeof(VkPhysicalDevicePointClippingProperties);
778 }
779 case VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO: {
780 return sizeof(VkRenderPassInputAttachmentAspectCreateInfo);
781 }
782 case VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO: {
783 return sizeof(VkImageViewUsageCreateInfo);
784 }
785 case VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO: {
786 return sizeof(VkPipelineTessellationDomainOriginStateCreateInfo);
787 }
788 case VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO: {
789 return sizeof(VkRenderPassMultiviewCreateInfo);
790 }
791 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES: {
792 return sizeof(VkPhysicalDeviceMultiviewFeatures);
793 }
794 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES: {
795 return sizeof(VkPhysicalDeviceMultiviewProperties);
796 }
797 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES: {
798 return sizeof(VkPhysicalDeviceVariablePointersFeatures);
799 }
800 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES: {
801 return sizeof(VkPhysicalDeviceProtectedMemoryFeatures);
802 }
803 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES: {
804 return sizeof(VkPhysicalDeviceProtectedMemoryProperties);
805 }
806 case VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO: {
807 return sizeof(VkProtectedSubmitInfo);
808 }
809 case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO: {
810 return sizeof(VkSamplerYcbcrConversionInfo);
811 }
812 case VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO: {
813 return sizeof(VkBindImagePlaneMemoryInfo);
814 }
815 case VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO: {
816 return sizeof(VkImagePlaneMemoryRequirementsInfo);
817 }
818 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES: {
819 return sizeof(VkPhysicalDeviceSamplerYcbcrConversionFeatures);
820 }
821 case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES: {
822 return sizeof(VkSamplerYcbcrConversionImageFormatProperties);
823 }
824 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO: {
825 return sizeof(VkPhysicalDeviceExternalImageFormatInfo);
826 }
827 case VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES: {
828 return sizeof(VkExternalImageFormatProperties);
829 }
830 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES: {
831 return sizeof(VkPhysicalDeviceIDProperties);
832 }
833 case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO: {
834 return sizeof(VkExternalMemoryImageCreateInfo);
835 }
836 case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO: {
837 return sizeof(VkExternalMemoryBufferCreateInfo);
838 }
839 case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO: {
840 return sizeof(VkExportMemoryAllocateInfo);
841 }
842 case VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO: {
843 return sizeof(VkExportFenceCreateInfo);
844 }
845 case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO: {
846 return sizeof(VkExportSemaphoreCreateInfo);
847 }
848 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES: {
849 return sizeof(VkPhysicalDeviceMaintenance3Properties);
850 }
851 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES: {
852 return sizeof(VkPhysicalDeviceShaderDrawParametersFeatures);
853 }
854 #endif
855 #ifdef VK_VERSION_1_2
856 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES: {
857 return sizeof(VkPhysicalDeviceVulkan11Features);
858 }
859 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES: {
860 return sizeof(VkPhysicalDeviceVulkan11Properties);
861 }
862 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES: {
863 return sizeof(VkPhysicalDeviceVulkan12Features);
864 }
865 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES: {
866 return sizeof(VkPhysicalDeviceVulkan12Properties);
867 }
868 case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO: {
869 return sizeof(VkImageFormatListCreateInfo);
870 }
871 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES: {
872 return sizeof(VkPhysicalDevice8BitStorageFeatures);
873 }
874 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES: {
875 return sizeof(VkPhysicalDeviceDriverProperties);
876 }
877 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES: {
878 return sizeof(VkPhysicalDeviceShaderAtomicInt64Features);
879 }
880 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES: {
881 if (streamFeatures & VULKAN_STREAM_FEATURE_SHADER_FLOAT16_INT8_BIT) {
882 return sizeof(VkPhysicalDeviceShaderFloat16Int8Features);
883 } else {
884 return 0;
885 }
886 }
887 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES: {
888 return sizeof(VkPhysicalDeviceFloatControlsProperties);
889 }
890 case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO: {
891 return sizeof(VkDescriptorSetLayoutBindingFlagsCreateInfo);
892 }
893 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES: {
894 return sizeof(VkPhysicalDeviceDescriptorIndexingFeatures);
895 }
896 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES: {
897 return sizeof(VkPhysicalDeviceDescriptorIndexingProperties);
898 }
899 case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO: {
900 return sizeof(VkDescriptorSetVariableDescriptorCountAllocateInfo);
901 }
902 case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT: {
903 return sizeof(VkDescriptorSetVariableDescriptorCountLayoutSupport);
904 }
905 case VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE: {
906 return sizeof(VkSubpassDescriptionDepthStencilResolve);
907 }
908 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES: {
909 return sizeof(VkPhysicalDeviceDepthStencilResolveProperties);
910 }
911 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES: {
912 return sizeof(VkPhysicalDeviceScalarBlockLayoutFeatures);
913 }
914 case VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO: {
915 return sizeof(VkImageStencilUsageCreateInfo);
916 }
917 case VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO: {
918 return sizeof(VkSamplerReductionModeCreateInfo);
919 }
920 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES: {
921 return sizeof(VkPhysicalDeviceSamplerFilterMinmaxProperties);
922 }
923 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES: {
924 return sizeof(VkPhysicalDeviceVulkanMemoryModelFeatures);
925 }
926 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES: {
927 return sizeof(VkPhysicalDeviceImagelessFramebufferFeatures);
928 }
929 case VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO: {
930 return sizeof(VkFramebufferAttachmentsCreateInfo);
931 }
932 case VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO: {
933 return sizeof(VkRenderPassAttachmentBeginInfo);
934 }
935 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES: {
936 return sizeof(VkPhysicalDeviceUniformBufferStandardLayoutFeatures);
937 }
938 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES: {
939 return sizeof(VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures);
940 }
941 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES: {
942 return sizeof(VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures);
943 }
944 case VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT: {
945 return sizeof(VkAttachmentReferenceStencilLayout);
946 }
947 case VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT: {
948 return sizeof(VkAttachmentDescriptionStencilLayout);
949 }
950 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES: {
951 return sizeof(VkPhysicalDeviceHostQueryResetFeatures);
952 }
953 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES: {
954 return sizeof(VkPhysicalDeviceTimelineSemaphoreFeatures);
955 }
956 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES: {
957 return sizeof(VkPhysicalDeviceTimelineSemaphoreProperties);
958 }
959 case VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO: {
960 return sizeof(VkSemaphoreTypeCreateInfo);
961 }
962 case VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO: {
963 return sizeof(VkTimelineSemaphoreSubmitInfo);
964 }
965 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES: {
966 return sizeof(VkPhysicalDeviceBufferDeviceAddressFeatures);
967 }
968 case VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO: {
969 return sizeof(VkBufferOpaqueCaptureAddressCreateInfo);
970 }
971 case VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO: {
972 return sizeof(VkMemoryOpaqueCaptureAddressAllocateInfo);
973 }
974 #endif
975 #ifdef VK_VERSION_1_3
976 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES: {
977 return sizeof(VkPhysicalDeviceVulkan13Features);
978 }
979 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES: {
980 return sizeof(VkPhysicalDeviceVulkan13Properties);
981 }
982 case VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO: {
983 return sizeof(VkPipelineCreationFeedbackCreateInfo);
984 }
985 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES: {
986 return sizeof(VkPhysicalDeviceShaderTerminateInvocationFeatures);
987 }
988 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES: {
989 return sizeof(VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures);
990 }
991 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES: {
992 return sizeof(VkPhysicalDevicePrivateDataFeatures);
993 }
994 case VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO: {
995 return sizeof(VkDevicePrivateDataCreateInfo);
996 }
997 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES: {
998 return sizeof(VkPhysicalDevicePipelineCreationCacheControlFeatures);
999 }
1000 case VK_STRUCTURE_TYPE_MEMORY_BARRIER_2: {
1001 return sizeof(VkMemoryBarrier2);
1002 }
1003 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES: {
1004 return sizeof(VkPhysicalDeviceSynchronization2Features);
1005 }
1006 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES: {
1007 return sizeof(VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures);
1008 }
1009 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES: {
1010 return sizeof(VkPhysicalDeviceImageRobustnessFeatures);
1011 }
1012 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES: {
1013 return sizeof(VkPhysicalDeviceSubgroupSizeControlFeatures);
1014 }
1015 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES: {
1016 return sizeof(VkPhysicalDeviceSubgroupSizeControlProperties);
1017 }
1018 case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO: {
1019 return sizeof(VkPipelineShaderStageRequiredSubgroupSizeCreateInfo);
1020 }
1021 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES: {
1022 return sizeof(VkPhysicalDeviceInlineUniformBlockFeatures);
1023 }
1024 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES: {
1025 return sizeof(VkPhysicalDeviceInlineUniformBlockProperties);
1026 }
1027 case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK: {
1028 return sizeof(VkWriteDescriptorSetInlineUniformBlock);
1029 }
1030 case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO: {
1031 return sizeof(VkDescriptorPoolInlineUniformBlockCreateInfo);
1032 }
1033 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES: {
1034 return sizeof(VkPhysicalDeviceTextureCompressionASTCHDRFeatures);
1035 }
1036 case VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO: {
1037 return sizeof(VkPipelineRenderingCreateInfo);
1038 }
1039 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES: {
1040 return sizeof(VkPhysicalDeviceDynamicRenderingFeatures);
1041 }
1042 case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO: {
1043 return sizeof(VkCommandBufferInheritanceRenderingInfo);
1044 }
1045 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES: {
1046 return sizeof(VkPhysicalDeviceShaderIntegerDotProductFeatures);
1047 }
1048 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES: {
1049 return sizeof(VkPhysicalDeviceShaderIntegerDotProductProperties);
1050 }
1051 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES: {
1052 return sizeof(VkPhysicalDeviceTexelBufferAlignmentProperties);
1053 }
1054 case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3: {
1055 return sizeof(VkFormatProperties3);
1056 }
1057 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES: {
1058 return sizeof(VkPhysicalDeviceMaintenance4Features);
1059 }
1060 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES: {
1061 return sizeof(VkPhysicalDeviceMaintenance4Properties);
1062 }
1063 #endif
1064 #ifdef VK_VERSION_1_4
1065 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_4_FEATURES: {
1066 return sizeof(VkPhysicalDeviceVulkan14Features);
1067 }
1068 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_4_PROPERTIES: {
1069 return sizeof(VkPhysicalDeviceVulkan14Properties);
1070 }
1071 case VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO: {
1072 return sizeof(VkDeviceQueueGlobalPriorityCreateInfo);
1073 }
1074 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES: {
1075 return sizeof(VkPhysicalDeviceGlobalPriorityQueryFeatures);
1076 }
1077 case VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES: {
1078 return sizeof(VkQueueFamilyGlobalPriorityProperties);
1079 }
1080 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES: {
1081 return sizeof(VkPhysicalDeviceShaderSubgroupRotateFeatures);
1082 }
1083 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES: {
1084 return sizeof(VkPhysicalDeviceShaderFloatControls2Features);
1085 }
1086 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES: {
1087 return sizeof(VkPhysicalDeviceShaderExpectAssumeFeatures);
1088 }
1089 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES: {
1090 return sizeof(VkPhysicalDeviceLineRasterizationFeatures);
1091 }
1092 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES: {
1093 return sizeof(VkPhysicalDeviceLineRasterizationProperties);
1094 }
1095 case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO: {
1096 return sizeof(VkPipelineRasterizationLineStateCreateInfo);
1097 }
1098 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES: {
1099 return sizeof(VkPhysicalDeviceVertexAttributeDivisorProperties);
1100 }
1101 case VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO: {
1102 return sizeof(VkPipelineVertexInputDivisorStateCreateInfo);
1103 }
1104 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES: {
1105 return sizeof(VkPhysicalDeviceVertexAttributeDivisorFeatures);
1106 }
1107 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES: {
1108 return sizeof(VkPhysicalDeviceIndexTypeUint8Features);
1109 }
1110 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES: {
1111 return sizeof(VkPhysicalDeviceMaintenance5Features);
1112 }
1113 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES: {
1114 return sizeof(VkPhysicalDeviceMaintenance5Properties);
1115 }
1116 case VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO: {
1117 return sizeof(VkPipelineCreateFlags2CreateInfo);
1118 }
1119 case VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO: {
1120 return sizeof(VkBufferUsageFlags2CreateInfo);
1121 }
1122 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES: {
1123 return sizeof(VkPhysicalDevicePushDescriptorProperties);
1124 }
1125 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES: {
1126 return sizeof(VkPhysicalDeviceDynamicRenderingLocalReadFeatures);
1127 }
1128 case VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_LOCATION_INFO: {
1129 return sizeof(VkRenderingAttachmentLocationInfo);
1130 }
1131 case VK_STRUCTURE_TYPE_RENDERING_INPUT_ATTACHMENT_INDEX_INFO: {
1132 return sizeof(VkRenderingInputAttachmentIndexInfo);
1133 }
1134 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES: {
1135 return sizeof(VkPhysicalDeviceMaintenance6Features);
1136 }
1137 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES: {
1138 return sizeof(VkPhysicalDeviceMaintenance6Properties);
1139 }
1140 case VK_STRUCTURE_TYPE_BIND_MEMORY_STATUS: {
1141 return sizeof(VkBindMemoryStatus);
1142 }
1143 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES: {
1144 return sizeof(VkPhysicalDevicePipelineProtectedAccessFeatures);
1145 }
1146 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES: {
1147 return sizeof(VkPhysicalDevicePipelineRobustnessFeatures);
1148 }
1149 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES: {
1150 return sizeof(VkPhysicalDevicePipelineRobustnessProperties);
1151 }
1152 case VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO: {
1153 return sizeof(VkPipelineRobustnessCreateInfo);
1154 }
1155 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES: {
1156 return sizeof(VkPhysicalDeviceHostImageCopyFeatures);
1157 }
1158 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES: {
1159 return sizeof(VkPhysicalDeviceHostImageCopyProperties);
1160 }
1161 case VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE: {
1162 return sizeof(VkSubresourceHostMemcpySize);
1163 }
1164 case VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY: {
1165 return sizeof(VkHostImageCopyDevicePerformanceQuery);
1166 }
1167 #endif
1168 #ifdef VK_KHR_incremental_present
1169 case VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR: {
1170 return sizeof(VkPresentRegionsKHR);
1171 }
1172 #endif
1173 #ifdef VK_KHR_pipeline_executable_properties
1174 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR: {
1175 return sizeof(VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR);
1176 }
1177 #endif
1178 #ifdef VK_ANDROID_native_buffer
1179 case VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID: {
1180 return sizeof(VkNativeBufferANDROID);
1181 }
1182 #endif
1183 #ifdef VK_EXT_transform_feedback
1184 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT: {
1185 return sizeof(VkPhysicalDeviceTransformFeedbackFeaturesEXT);
1186 }
1187 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT: {
1188 return sizeof(VkPhysicalDeviceTransformFeedbackPropertiesEXT);
1189 }
1190 case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT: {
1191 return sizeof(VkPipelineRasterizationStateStreamCreateInfoEXT);
1192 }
1193 #endif
1194 #ifdef VK_EXT_depth_clip_enable
1195 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT: {
1196 return sizeof(VkPhysicalDeviceDepthClipEnableFeaturesEXT);
1197 }
1198 case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT: {
1199 return sizeof(VkPipelineRasterizationDepthClipStateCreateInfoEXT);
1200 }
1201 #endif
1202 #ifdef VK_EXT_image_drm_format_modifier
1203 case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT: {
1204 return sizeof(VkDrmFormatModifierPropertiesListEXT);
1205 }
1206 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT: {
1207 return sizeof(VkPhysicalDeviceImageDrmFormatModifierInfoEXT);
1208 }
1209 case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT: {
1210 return sizeof(VkImageDrmFormatModifierListCreateInfoEXT);
1211 }
1212 case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT: {
1213 return sizeof(VkImageDrmFormatModifierExplicitCreateInfoEXT);
1214 }
1215 case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT: {
1216 return sizeof(VkDrmFormatModifierPropertiesList2EXT);
1217 }
1218 #endif
1219 #ifdef VK_EXT_vertex_attribute_divisor
1220 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT: {
1221 return sizeof(VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT);
1222 }
1223 #endif
1224 #ifdef VK_EXT_fragment_density_map
1225 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT: {
1226 switch (rootType) {
1227 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2: {
1228 return sizeof(VkPhysicalDeviceFragmentDensityMapFeaturesEXT);
1229 break;
1230 }
1231 case VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO: {
1232 return sizeof(VkPhysicalDeviceFragmentDensityMapFeaturesEXT);
1233 break;
1234 }
1235 case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO: {
1236 return sizeof(VkImportColorBufferGOOGLE);
1237 break;
1238 }
1239 default: {
1240 return sizeof(VkPhysicalDeviceFragmentDensityMapFeaturesEXT);
1241 break;
1242 }
1243 }
1244 }
1245 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT: {
1246 switch (rootType) {
1247 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2: {
1248 return sizeof(VkPhysicalDeviceFragmentDensityMapPropertiesEXT);
1249 break;
1250 }
1251 case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO: {
1252 return sizeof(VkCreateBlobGOOGLE);
1253 break;
1254 }
1255 default: {
1256 return sizeof(VkPhysicalDeviceFragmentDensityMapPropertiesEXT);
1257 break;
1258 }
1259 }
1260 }
1261 case VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT: {
1262 switch (rootType) {
1263 case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO: {
1264 return sizeof(VkRenderPassFragmentDensityMapCreateInfoEXT);
1265 break;
1266 }
1267 case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2: {
1268 return sizeof(VkRenderPassFragmentDensityMapCreateInfoEXT);
1269 break;
1270 }
1271 case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO: {
1272 return sizeof(VkImportBufferGOOGLE);
1273 break;
1274 }
1275 default: {
1276 return sizeof(VkRenderPassFragmentDensityMapCreateInfoEXT);
1277 break;
1278 }
1279 }
1280 }
1281 case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT: {
1282 return sizeof(VkRenderingFragmentDensityMapAttachmentInfoEXT);
1283 }
1284 #endif
1285 #ifdef VK_EXT_provoking_vertex
1286 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT: {
1287 return sizeof(VkPhysicalDeviceProvokingVertexFeaturesEXT);
1288 }
1289 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT: {
1290 return sizeof(VkPhysicalDeviceProvokingVertexPropertiesEXT);
1291 }
1292 case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT: {
1293 return sizeof(VkPipelineRasterizationProvokingVertexStateCreateInfoEXT);
1294 }
1295 #endif
1296 #ifdef VK_EXT_extended_dynamic_state
1297 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT: {
1298 return sizeof(VkPhysicalDeviceExtendedDynamicStateFeaturesEXT);
1299 }
1300 #endif
1301 #ifdef VK_EXT_texel_buffer_alignment
1302 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT: {
1303 return sizeof(VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT);
1304 }
1305 #endif
1306 #ifdef VK_EXT_device_memory_report
1307 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT: {
1308 return sizeof(VkPhysicalDeviceDeviceMemoryReportFeaturesEXT);
1309 }
1310 case VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT: {
1311 return sizeof(VkDeviceDeviceMemoryReportCreateInfoEXT);
1312 }
1313 #endif
1314 #ifdef VK_EXT_robustness2
1315 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT: {
1316 return sizeof(VkPhysicalDeviceRobustness2FeaturesEXT);
1317 }
1318 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT: {
1319 return sizeof(VkPhysicalDeviceRobustness2PropertiesEXT);
1320 }
1321 #endif
1322 #ifdef VK_EXT_custom_border_color
1323 case VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT: {
1324 return sizeof(VkSamplerCustomBorderColorCreateInfoEXT);
1325 }
1326 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT: {
1327 return sizeof(VkPhysicalDeviceCustomBorderColorPropertiesEXT);
1328 }
1329 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT: {
1330 return sizeof(VkPhysicalDeviceCustomBorderColorFeaturesEXT);
1331 }
1332 #endif
1333 #ifdef VK_EXT_graphics_pipeline_library
1334 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT: {
1335 return sizeof(VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT);
1336 }
1337 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT: {
1338 return sizeof(VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT);
1339 }
1340 case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT: {
1341 return sizeof(VkGraphicsPipelineLibraryCreateInfoEXT);
1342 }
1343 #endif
1344 #ifdef VK_EXT_ycbcr_2plane_444_formats
1345 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT: {
1346 return sizeof(VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT);
1347 }
1348 #endif
1349 #ifdef VK_EXT_image_compression_control
1350 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT: {
1351 return sizeof(VkPhysicalDeviceImageCompressionControlFeaturesEXT);
1352 }
1353 case VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT: {
1354 return sizeof(VkImageCompressionControlEXT);
1355 }
1356 case VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT: {
1357 return sizeof(VkImageCompressionPropertiesEXT);
1358 }
1359 #endif
1360 #ifdef VK_EXT_4444_formats
1361 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT: {
1362 return sizeof(VkPhysicalDevice4444FormatsFeaturesEXT);
1363 }
1364 #endif
1365 #ifdef VK_EXT_primitive_topology_list_restart
1366 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT: {
1367 return sizeof(VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT);
1368 }
1369 #endif
1370 #ifdef VK_EXT_extended_dynamic_state2
1371 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT: {
1372 return sizeof(VkPhysicalDeviceExtendedDynamicState2FeaturesEXT);
1373 }
1374 #endif
1375 #ifdef VK_EXT_color_write_enable
1376 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT: {
1377 return sizeof(VkPhysicalDeviceColorWriteEnableFeaturesEXT);
1378 }
1379 case VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT: {
1380 return sizeof(VkPipelineColorWriteCreateInfoEXT);
1381 }
1382 #endif
1383 #ifdef VK_GOOGLE_gfxstream
1384 case VK_STRUCTURE_TYPE_IMPORT_COLOR_BUFFER_GOOGLE: {
1385 return sizeof(VkImportColorBufferGOOGLE);
1386 }
1387 case VK_STRUCTURE_TYPE_IMPORT_BUFFER_GOOGLE: {
1388 return sizeof(VkImportBufferGOOGLE);
1389 }
1390 case VK_STRUCTURE_TYPE_CREATE_BLOB_GOOGLE: {
1391 return sizeof(VkCreateBlobGOOGLE);
1392 }
1393 #endif
1394 #ifdef VK_EXT_image_compression_control_swapchain
1395 case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT: {
1396 return sizeof(VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT);
1397 }
1398 #endif
1399 default: {
1400 return (size_t)0;
1401 }
1402 }
1403 }
1404
1405 } // namespace vk
1406 } // namespace gfxstream
1407