• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/* WARNING: This is auto-generated file. Do not modify, since changes will
2 * be lost! Modify the generating script instead.
3 * This file was generated by /scripts/gen_framework.py
4 */
5
6struct VkBaseOutStructure
7{
8	VkStructureType				sType;
9	struct VkBaseOutStructure*	pNext;
10};
11
12struct VkBaseInStructure
13{
14	VkStructureType					sType;
15	const struct VkBaseInStructure*	pNext;
16};
17
18struct VkOffset2D
19{
20	int32_t	x;
21	int32_t	y;
22};
23
24struct VkOffset3D
25{
26	int32_t	x;
27	int32_t	y;
28	int32_t	z;
29};
30
31struct VkExtent2D
32{
33	uint32_t	width;
34	uint32_t	height;
35};
36
37struct VkExtent3D
38{
39	uint32_t	width;
40	uint32_t	height;
41	uint32_t	depth;
42};
43
44struct VkViewport
45{
46	float	x;
47	float	y;
48	float	width;
49	float	height;
50	float	minDepth;
51	float	maxDepth;
52};
53
54struct VkRect2D
55{
56	VkOffset2D	offset;
57	VkExtent2D	extent;
58};
59
60struct VkClearRect
61{
62	VkRect2D	rect;
63	uint32_t	baseArrayLayer;
64	uint32_t	layerCount;
65};
66
67struct VkComponentMapping
68{
69	VkComponentSwizzle	r;
70	VkComponentSwizzle	g;
71	VkComponentSwizzle	b;
72	VkComponentSwizzle	a;
73};
74
75struct VkExtensionProperties
76{
77	char		extensionName[VK_MAX_EXTENSION_NAME_SIZE];
78	uint32_t	specVersion;
79};
80
81struct VkLayerProperties
82{
83	char		layerName[VK_MAX_EXTENSION_NAME_SIZE];
84	uint32_t	specVersion;
85	uint32_t	implementationVersion;
86	char		description[VK_MAX_DESCRIPTION_SIZE];
87};
88
89struct VkApplicationInfo
90{
91	VkStructureType	sType;
92	const void*		pNext;
93	const char*		pApplicationName;
94	uint32_t		applicationVersion;
95	const char*		pEngineName;
96	uint32_t		engineVersion;
97	uint32_t		apiVersion;
98};
99
100struct VkAllocationCallbacks
101{
102	void*									pUserData;
103	PFN_vkAllocationFunction				pfnAllocation;
104	PFN_vkReallocationFunction				pfnReallocation;
105	PFN_vkFreeFunction						pfnFree;
106	PFN_vkInternalAllocationNotification	pfnInternalAllocation;
107	PFN_vkInternalFreeNotification			pfnInternalFree;
108};
109
110struct VkDeviceQueueCreateInfo
111{
112	VkStructureType				sType;
113	const void*					pNext;
114	VkDeviceQueueCreateFlags	flags;
115	uint32_t					queueFamilyIndex;
116	uint32_t					queueCount;
117	const float*				pQueuePriorities;
118};
119
120struct VkInstanceCreateInfo
121{
122	VkStructureType				sType;
123	const void*					pNext;
124	VkInstanceCreateFlags		flags;
125	const VkApplicationInfo*	pApplicationInfo;
126	uint32_t					enabledLayerCount;
127	const char* const*			ppEnabledLayerNames;
128	uint32_t					enabledExtensionCount;
129	const char* const*			ppEnabledExtensionNames;
130};
131
132struct VkQueueFamilyProperties
133{
134	VkQueueFlags	queueFlags;
135	uint32_t		queueCount;
136	uint32_t		timestampValidBits;
137	VkExtent3D		minImageTransferGranularity;
138};
139
140struct VkMemoryAllocateInfo
141{
142	VkStructureType	sType;
143	const void*		pNext;
144	VkDeviceSize	allocationSize;
145	uint32_t		memoryTypeIndex;
146};
147
148struct VkMemoryRequirements
149{
150	VkDeviceSize	size;
151	VkDeviceSize	alignment;
152	uint32_t		memoryTypeBits;
153};
154
155struct VkSparseImageFormatProperties
156{
157	VkImageAspectFlags			aspectMask;
158	VkExtent3D					imageGranularity;
159	VkSparseImageFormatFlags	flags;
160};
161
162struct VkSparseImageMemoryRequirements
163{
164	VkSparseImageFormatProperties	formatProperties;
165	uint32_t						imageMipTailFirstLod;
166	VkDeviceSize					imageMipTailSize;
167	VkDeviceSize					imageMipTailOffset;
168	VkDeviceSize					imageMipTailStride;
169};
170
171struct VkMemoryType
172{
173	VkMemoryPropertyFlags	propertyFlags;
174	uint32_t				heapIndex;
175};
176
177struct VkMemoryHeap
178{
179	VkDeviceSize		size;
180	VkMemoryHeapFlags	flags;
181};
182
183struct VkPhysicalDeviceMemoryProperties
184{
185	uint32_t		memoryTypeCount;
186	VkMemoryType	memoryTypes[VK_MAX_MEMORY_TYPES];
187	uint32_t		memoryHeapCount;
188	VkMemoryHeap	memoryHeaps[VK_MAX_MEMORY_HEAPS];
189};
190
191struct VkMappedMemoryRange
192{
193	VkStructureType	sType;
194	const void*		pNext;
195	VkDeviceMemory	memory;
196	VkDeviceSize	offset;
197	VkDeviceSize	size;
198};
199
200struct VkFormatProperties
201{
202	VkFormatFeatureFlags	linearTilingFeatures;
203	VkFormatFeatureFlags	optimalTilingFeatures;
204	VkFormatFeatureFlags	bufferFeatures;
205};
206
207struct VkImageFormatProperties
208{
209	VkExtent3D			maxExtent;
210	uint32_t			maxMipLevels;
211	uint32_t			maxArrayLayers;
212	VkSampleCountFlags	sampleCounts;
213	VkDeviceSize		maxResourceSize;
214};
215
216struct VkDescriptorBufferInfo
217{
218	VkBuffer		buffer;
219	VkDeviceSize	offset;
220	VkDeviceSize	range;
221};
222
223struct VkDescriptorImageInfo
224{
225	VkSampler		sampler;
226	VkImageView		imageView;
227	VkImageLayout	imageLayout;
228};
229
230struct VkWriteDescriptorSet
231{
232	VkStructureType					sType;
233	const void*						pNext;
234	VkDescriptorSet					dstSet;
235	uint32_t						dstBinding;
236	uint32_t						dstArrayElement;
237	uint32_t						descriptorCount;
238	VkDescriptorType				descriptorType;
239	const VkDescriptorImageInfo*	pImageInfo;
240	const VkDescriptorBufferInfo*	pBufferInfo;
241	const VkBufferView*				pTexelBufferView;
242};
243
244struct VkCopyDescriptorSet
245{
246	VkStructureType	sType;
247	const void*		pNext;
248	VkDescriptorSet	srcSet;
249	uint32_t		srcBinding;
250	uint32_t		srcArrayElement;
251	VkDescriptorSet	dstSet;
252	uint32_t		dstBinding;
253	uint32_t		dstArrayElement;
254	uint32_t		descriptorCount;
255};
256
257struct VkBufferCreateInfo
258{
259	VkStructureType		sType;
260	const void*			pNext;
261	VkBufferCreateFlags	flags;
262	VkDeviceSize		size;
263	VkBufferUsageFlags	usage;
264	VkSharingMode		sharingMode;
265	uint32_t			queueFamilyIndexCount;
266	const uint32_t*		pQueueFamilyIndices;
267};
268
269struct VkBufferViewCreateInfo
270{
271	VkStructureType			sType;
272	const void*				pNext;
273	VkBufferViewCreateFlags	flags;
274	VkBuffer				buffer;
275	VkFormat				format;
276	VkDeviceSize			offset;
277	VkDeviceSize			range;
278};
279
280struct VkImageSubresource
281{
282	VkImageAspectFlags	aspectMask;
283	uint32_t			mipLevel;
284	uint32_t			arrayLayer;
285};
286
287struct VkImageSubresourceLayers
288{
289	VkImageAspectFlags	aspectMask;
290	uint32_t			mipLevel;
291	uint32_t			baseArrayLayer;
292	uint32_t			layerCount;
293};
294
295struct VkImageSubresourceRange
296{
297	VkImageAspectFlags	aspectMask;
298	uint32_t			baseMipLevel;
299	uint32_t			levelCount;
300	uint32_t			baseArrayLayer;
301	uint32_t			layerCount;
302};
303
304struct VkMemoryBarrier
305{
306	VkStructureType	sType;
307	const void*		pNext;
308	VkAccessFlags	srcAccessMask;
309	VkAccessFlags	dstAccessMask;
310};
311
312struct VkBufferMemoryBarrier
313{
314	VkStructureType	sType;
315	const void*		pNext;
316	VkAccessFlags	srcAccessMask;
317	VkAccessFlags	dstAccessMask;
318	uint32_t		srcQueueFamilyIndex;
319	uint32_t		dstQueueFamilyIndex;
320	VkBuffer		buffer;
321	VkDeviceSize	offset;
322	VkDeviceSize	size;
323};
324
325struct VkImageMemoryBarrier
326{
327	VkStructureType			sType;
328	const void*				pNext;
329	VkAccessFlags			srcAccessMask;
330	VkAccessFlags			dstAccessMask;
331	VkImageLayout			oldLayout;
332	VkImageLayout			newLayout;
333	uint32_t				srcQueueFamilyIndex;
334	uint32_t				dstQueueFamilyIndex;
335	VkImage					image;
336	VkImageSubresourceRange	subresourceRange;
337};
338
339struct VkImageCreateInfo
340{
341	VkStructureType			sType;
342	const void*				pNext;
343	VkImageCreateFlags		flags;
344	VkImageType				imageType;
345	VkFormat				format;
346	VkExtent3D				extent;
347	uint32_t				mipLevels;
348	uint32_t				arrayLayers;
349	VkSampleCountFlagBits	samples;
350	VkImageTiling			tiling;
351	VkImageUsageFlags		usage;
352	VkSharingMode			sharingMode;
353	uint32_t				queueFamilyIndexCount;
354	const uint32_t*			pQueueFamilyIndices;
355	VkImageLayout			initialLayout;
356};
357
358struct VkSubresourceLayout
359{
360	VkDeviceSize	offset;
361	VkDeviceSize	size;
362	VkDeviceSize	rowPitch;
363	VkDeviceSize	arrayPitch;
364	VkDeviceSize	depthPitch;
365};
366
367struct VkImageViewCreateInfo
368{
369	VkStructureType			sType;
370	const void*				pNext;
371	VkImageViewCreateFlags	flags;
372	VkImage					image;
373	VkImageViewType			viewType;
374	VkFormat				format;
375	VkComponentMapping		components;
376	VkImageSubresourceRange	subresourceRange;
377};
378
379struct VkBufferCopy
380{
381	VkDeviceSize	srcOffset;
382	VkDeviceSize	dstOffset;
383	VkDeviceSize	size;
384};
385
386struct VkSparseMemoryBind
387{
388	VkDeviceSize			resourceOffset;
389	VkDeviceSize			size;
390	VkDeviceMemory			memory;
391	VkDeviceSize			memoryOffset;
392	VkSparseMemoryBindFlags	flags;
393};
394
395struct VkSparseImageMemoryBind
396{
397	VkImageSubresource		subresource;
398	VkOffset3D				offset;
399	VkExtent3D				extent;
400	VkDeviceMemory			memory;
401	VkDeviceSize			memoryOffset;
402	VkSparseMemoryBindFlags	flags;
403};
404
405struct VkSparseBufferMemoryBindInfo
406{
407	VkBuffer					buffer;
408	uint32_t					bindCount;
409	const VkSparseMemoryBind*	pBinds;
410};
411
412struct VkSparseImageOpaqueMemoryBindInfo
413{
414	VkImage						image;
415	uint32_t					bindCount;
416	const VkSparseMemoryBind*	pBinds;
417};
418
419struct VkSparseImageMemoryBindInfo
420{
421	VkImage							image;
422	uint32_t						bindCount;
423	const VkSparseImageMemoryBind*	pBinds;
424};
425
426struct VkBindSparseInfo
427{
428	VkStructureType								sType;
429	const void*									pNext;
430	uint32_t									waitSemaphoreCount;
431	const VkSemaphore*							pWaitSemaphores;
432	uint32_t									bufferBindCount;
433	const VkSparseBufferMemoryBindInfo*			pBufferBinds;
434	uint32_t									imageOpaqueBindCount;
435	const VkSparseImageOpaqueMemoryBindInfo*	pImageOpaqueBinds;
436	uint32_t									imageBindCount;
437	const VkSparseImageMemoryBindInfo*			pImageBinds;
438	uint32_t									signalSemaphoreCount;
439	const VkSemaphore*							pSignalSemaphores;
440};
441
442struct VkImageCopy
443{
444	VkImageSubresourceLayers	srcSubresource;
445	VkOffset3D					srcOffset;
446	VkImageSubresourceLayers	dstSubresource;
447	VkOffset3D					dstOffset;
448	VkExtent3D					extent;
449};
450
451struct VkImageBlit
452{
453	VkImageSubresourceLayers	srcSubresource;
454	VkOffset3D					srcOffsets[2];
455	VkImageSubresourceLayers	dstSubresource;
456	VkOffset3D					dstOffsets[2];
457};
458
459struct VkBufferImageCopy
460{
461	VkDeviceSize				bufferOffset;
462	uint32_t					bufferRowLength;
463	uint32_t					bufferImageHeight;
464	VkImageSubresourceLayers	imageSubresource;
465	VkOffset3D					imageOffset;
466	VkExtent3D					imageExtent;
467};
468
469struct VkCopyMemoryIndirectCommandNV
470{
471	VkDeviceAddress	srcAddress;
472	VkDeviceAddress	dstAddress;
473	VkDeviceSize	size;
474};
475
476struct VkCopyMemoryToImageIndirectCommandNV
477{
478	VkDeviceAddress				srcAddress;
479	uint32_t					bufferRowLength;
480	uint32_t					bufferImageHeight;
481	VkImageSubresourceLayers	imageSubresource;
482	VkOffset3D					imageOffset;
483	VkExtent3D					imageExtent;
484};
485
486struct VkImageResolve
487{
488	VkImageSubresourceLayers	srcSubresource;
489	VkOffset3D					srcOffset;
490	VkImageSubresourceLayers	dstSubresource;
491	VkOffset3D					dstOffset;
492	VkExtent3D					extent;
493};
494
495struct VkShaderModuleCreateInfo
496{
497	VkStructureType				sType;
498	const void*					pNext;
499	VkShaderModuleCreateFlags	flags;
500	size_t						codeSize;
501	const uint32_t*				pCode;
502};
503
504struct VkDescriptorSetLayoutBinding
505{
506	uint32_t			binding;
507	VkDescriptorType	descriptorType;
508	uint32_t			descriptorCount;
509	VkShaderStageFlags	stageFlags;
510	const VkSampler*	pImmutableSamplers;
511};
512
513struct VkDescriptorSetLayoutCreateInfo
514{
515	VkStructureType						sType;
516	const void*							pNext;
517	VkDescriptorSetLayoutCreateFlags	flags;
518	uint32_t							bindingCount;
519	const VkDescriptorSetLayoutBinding*	pBindings;
520};
521
522struct VkDescriptorPoolSize
523{
524	VkDescriptorType	type;
525	uint32_t			descriptorCount;
526};
527
528struct VkDescriptorPoolCreateInfo
529{
530	VkStructureType				sType;
531	const void*					pNext;
532	VkDescriptorPoolCreateFlags	flags;
533	uint32_t					maxSets;
534	uint32_t					poolSizeCount;
535	const VkDescriptorPoolSize*	pPoolSizes;
536};
537
538struct VkDescriptorSetAllocateInfo
539{
540	VkStructureType					sType;
541	const void*						pNext;
542	VkDescriptorPool				descriptorPool;
543	uint32_t						descriptorSetCount;
544	const VkDescriptorSetLayout*	pSetLayouts;
545};
546
547struct VkSpecializationMapEntry
548{
549	uint32_t	constantID;
550	uint32_t	offset;
551	size_t		size;
552};
553
554struct VkSpecializationInfo
555{
556	uint32_t						mapEntryCount;
557	const VkSpecializationMapEntry*	pMapEntries;
558	size_t							dataSize;
559	const void*						pData;
560};
561
562struct VkPipelineShaderStageCreateInfo
563{
564	VkStructureType						sType;
565	const void*							pNext;
566	VkPipelineShaderStageCreateFlags	flags;
567	VkShaderStageFlagBits				stage;
568	VkShaderModule						module;
569	const char*							pName;
570	const VkSpecializationInfo*			pSpecializationInfo;
571};
572
573struct VkComputePipelineCreateInfo
574{
575	VkStructureType					sType;
576	const void*						pNext;
577	VkPipelineCreateFlags			flags;
578	VkPipelineShaderStageCreateInfo	stage;
579	VkPipelineLayout				layout;
580	VkPipeline						basePipelineHandle;
581	int32_t							basePipelineIndex;
582};
583
584struct VkVertexInputBindingDescription
585{
586	uint32_t			binding;
587	uint32_t			stride;
588	VkVertexInputRate	inputRate;
589};
590
591struct VkVertexInputAttributeDescription
592{
593	uint32_t	location;
594	uint32_t	binding;
595	VkFormat	format;
596	uint32_t	offset;
597};
598
599struct VkPipelineVertexInputStateCreateInfo
600{
601	VkStructureType								sType;
602	const void*									pNext;
603	VkPipelineVertexInputStateCreateFlags		flags;
604	uint32_t									vertexBindingDescriptionCount;
605	const VkVertexInputBindingDescription*		pVertexBindingDescriptions;
606	uint32_t									vertexAttributeDescriptionCount;
607	const VkVertexInputAttributeDescription*	pVertexAttributeDescriptions;
608};
609
610struct VkPipelineInputAssemblyStateCreateInfo
611{
612	VkStructureType							sType;
613	const void*								pNext;
614	VkPipelineInputAssemblyStateCreateFlags	flags;
615	VkPrimitiveTopology						topology;
616	VkBool32								primitiveRestartEnable;
617};
618
619struct VkPipelineTessellationStateCreateInfo
620{
621	VkStructureType							sType;
622	const void*								pNext;
623	VkPipelineTessellationStateCreateFlags	flags;
624	uint32_t								patchControlPoints;
625};
626
627struct VkPipelineViewportStateCreateInfo
628{
629	VkStructureType						sType;
630	const void*							pNext;
631	VkPipelineViewportStateCreateFlags	flags;
632	uint32_t							viewportCount;
633	const VkViewport*					pViewports;
634	uint32_t							scissorCount;
635	const VkRect2D*						pScissors;
636};
637
638struct VkPipelineRasterizationStateCreateInfo
639{
640	VkStructureType							sType;
641	const void*								pNext;
642	VkPipelineRasterizationStateCreateFlags	flags;
643	VkBool32								depthClampEnable;
644	VkBool32								rasterizerDiscardEnable;
645	VkPolygonMode							polygonMode;
646	VkCullModeFlags							cullMode;
647	VkFrontFace								frontFace;
648	VkBool32								depthBiasEnable;
649	float									depthBiasConstantFactor;
650	float									depthBiasClamp;
651	float									depthBiasSlopeFactor;
652	float									lineWidth;
653};
654
655struct VkPipelineMultisampleStateCreateInfo
656{
657	VkStructureType							sType;
658	const void*								pNext;
659	VkPipelineMultisampleStateCreateFlags	flags;
660	VkSampleCountFlagBits					rasterizationSamples;
661	VkBool32								sampleShadingEnable;
662	float									minSampleShading;
663	const VkSampleMask*						pSampleMask;
664	VkBool32								alphaToCoverageEnable;
665	VkBool32								alphaToOneEnable;
666};
667
668struct VkPipelineColorBlendAttachmentState
669{
670	VkBool32				blendEnable;
671	VkBlendFactor			srcColorBlendFactor;
672	VkBlendFactor			dstColorBlendFactor;
673	VkBlendOp				colorBlendOp;
674	VkBlendFactor			srcAlphaBlendFactor;
675	VkBlendFactor			dstAlphaBlendFactor;
676	VkBlendOp				alphaBlendOp;
677	VkColorComponentFlags	colorWriteMask;
678};
679
680struct VkPipelineColorBlendStateCreateInfo
681{
682	VkStructureType								sType;
683	const void*									pNext;
684	VkPipelineColorBlendStateCreateFlags		flags;
685	VkBool32									logicOpEnable;
686	VkLogicOp									logicOp;
687	uint32_t									attachmentCount;
688	const VkPipelineColorBlendAttachmentState*	pAttachments;
689	float										blendConstants[4];
690};
691
692struct VkPipelineDynamicStateCreateInfo
693{
694	VkStructureType						sType;
695	const void*							pNext;
696	VkPipelineDynamicStateCreateFlags	flags;
697	uint32_t							dynamicStateCount;
698	const VkDynamicState*				pDynamicStates;
699};
700
701struct VkStencilOpState
702{
703	VkStencilOp	failOp;
704	VkStencilOp	passOp;
705	VkStencilOp	depthFailOp;
706	VkCompareOp	compareOp;
707	uint32_t	compareMask;
708	uint32_t	writeMask;
709	uint32_t	reference;
710};
711
712struct VkPipelineDepthStencilStateCreateInfo
713{
714	VkStructureType							sType;
715	const void*								pNext;
716	VkPipelineDepthStencilStateCreateFlags	flags;
717	VkBool32								depthTestEnable;
718	VkBool32								depthWriteEnable;
719	VkCompareOp								depthCompareOp;
720	VkBool32								depthBoundsTestEnable;
721	VkBool32								stencilTestEnable;
722	VkStencilOpState						front;
723	VkStencilOpState						back;
724	float									minDepthBounds;
725	float									maxDepthBounds;
726};
727
728struct VkGraphicsPipelineCreateInfo
729{
730	VkStructureType									sType;
731	const void*										pNext;
732	VkPipelineCreateFlags							flags;
733	uint32_t										stageCount;
734	const VkPipelineShaderStageCreateInfo*			pStages;
735	const VkPipelineVertexInputStateCreateInfo*		pVertexInputState;
736	const VkPipelineInputAssemblyStateCreateInfo*	pInputAssemblyState;
737	const VkPipelineTessellationStateCreateInfo*	pTessellationState;
738	const VkPipelineViewportStateCreateInfo*		pViewportState;
739	const VkPipelineRasterizationStateCreateInfo*	pRasterizationState;
740	const VkPipelineMultisampleStateCreateInfo*		pMultisampleState;
741	const VkPipelineDepthStencilStateCreateInfo*	pDepthStencilState;
742	const VkPipelineColorBlendStateCreateInfo*		pColorBlendState;
743	const VkPipelineDynamicStateCreateInfo*			pDynamicState;
744	VkPipelineLayout								layout;
745	VkRenderPass									renderPass;
746	uint32_t										subpass;
747	VkPipeline										basePipelineHandle;
748	int32_t											basePipelineIndex;
749};
750
751struct VkPipelineCacheCreateInfo
752{
753	VkStructureType				sType;
754	const void*					pNext;
755	VkPipelineCacheCreateFlags	flags;
756	size_t						initialDataSize;
757	const void*					pInitialData;
758};
759
760struct VkPipelineCacheHeaderVersionOne
761{
762	uint32_t						headerSize;
763	VkPipelineCacheHeaderVersion	headerVersion;
764	uint32_t						vendorID;
765	uint32_t						deviceID;
766	uint8_t							pipelineCacheUUID[VK_UUID_SIZE];
767};
768
769struct VkPushConstantRange
770{
771	VkShaderStageFlags	stageFlags;
772	uint32_t			offset;
773	uint32_t			size;
774};
775
776struct VkPipelineLayoutCreateInfo
777{
778	VkStructureType					sType;
779	const void*						pNext;
780	VkPipelineLayoutCreateFlags		flags;
781	uint32_t						setLayoutCount;
782	const VkDescriptorSetLayout*	pSetLayouts;
783	uint32_t						pushConstantRangeCount;
784	const VkPushConstantRange*		pPushConstantRanges;
785};
786
787struct VkSamplerCreateInfo
788{
789	VkStructureType			sType;
790	const void*				pNext;
791	VkSamplerCreateFlags	flags;
792	VkFilter				magFilter;
793	VkFilter				minFilter;
794	VkSamplerMipmapMode		mipmapMode;
795	VkSamplerAddressMode	addressModeU;
796	VkSamplerAddressMode	addressModeV;
797	VkSamplerAddressMode	addressModeW;
798	float					mipLodBias;
799	VkBool32				anisotropyEnable;
800	float					maxAnisotropy;
801	VkBool32				compareEnable;
802	VkCompareOp				compareOp;
803	float					minLod;
804	float					maxLod;
805	VkBorderColor			borderColor;
806	VkBool32				unnormalizedCoordinates;
807};
808
809struct VkCommandPoolCreateInfo
810{
811	VkStructureType				sType;
812	const void*					pNext;
813	VkCommandPoolCreateFlags	flags;
814	uint32_t					queueFamilyIndex;
815};
816
817struct VkCommandBufferAllocateInfo
818{
819	VkStructureType			sType;
820	const void*				pNext;
821	VkCommandPool			commandPool;
822	VkCommandBufferLevel	level;
823	uint32_t				commandBufferCount;
824};
825
826struct VkCommandBufferInheritanceInfo
827{
828	VkStructureType					sType;
829	const void*						pNext;
830	VkRenderPass					renderPass;
831	uint32_t						subpass;
832	VkFramebuffer					framebuffer;
833	VkBool32						occlusionQueryEnable;
834	VkQueryControlFlags				queryFlags;
835	VkQueryPipelineStatisticFlags	pipelineStatistics;
836};
837
838struct VkCommandBufferBeginInfo
839{
840	VkStructureType							sType;
841	const void*								pNext;
842	VkCommandBufferUsageFlags				flags;
843	const VkCommandBufferInheritanceInfo*	pInheritanceInfo;
844};
845
846union VkClearColorValue
847{
848	float		float32[4];
849	int32_t		int32[4];
850	uint32_t	uint32[4];
851};
852
853struct VkClearDepthStencilValue
854{
855	float		depth;
856	uint32_t	stencil;
857};
858
859union VkClearValue
860{
861	VkClearColorValue			color;
862	VkClearDepthStencilValue	depthStencil;
863};
864
865struct VkRenderPassBeginInfo
866{
867	VkStructureType		sType;
868	const void*			pNext;
869	VkRenderPass		renderPass;
870	VkFramebuffer		framebuffer;
871	VkRect2D			renderArea;
872	uint32_t			clearValueCount;
873	const VkClearValue*	pClearValues;
874};
875
876struct VkClearAttachment
877{
878	VkImageAspectFlags	aspectMask;
879	uint32_t			colorAttachment;
880	VkClearValue		clearValue;
881};
882
883struct VkAttachmentDescription
884{
885	VkAttachmentDescriptionFlags	flags;
886	VkFormat						format;
887	VkSampleCountFlagBits			samples;
888	VkAttachmentLoadOp				loadOp;
889	VkAttachmentStoreOp				storeOp;
890	VkAttachmentLoadOp				stencilLoadOp;
891	VkAttachmentStoreOp				stencilStoreOp;
892	VkImageLayout					initialLayout;
893	VkImageLayout					finalLayout;
894};
895
896struct VkAttachmentReference
897{
898	uint32_t		attachment;
899	VkImageLayout	layout;
900};
901
902struct VkSubpassDescription
903{
904	VkSubpassDescriptionFlags		flags;
905	VkPipelineBindPoint				pipelineBindPoint;
906	uint32_t						inputAttachmentCount;
907	const VkAttachmentReference*	pInputAttachments;
908	uint32_t						colorAttachmentCount;
909	const VkAttachmentReference*	pColorAttachments;
910	const VkAttachmentReference*	pResolveAttachments;
911	const VkAttachmentReference*	pDepthStencilAttachment;
912	uint32_t						preserveAttachmentCount;
913	const uint32_t*					pPreserveAttachments;
914};
915
916struct VkSubpassDependency
917{
918	uint32_t				srcSubpass;
919	uint32_t				dstSubpass;
920	VkPipelineStageFlags	srcStageMask;
921	VkPipelineStageFlags	dstStageMask;
922	VkAccessFlags			srcAccessMask;
923	VkAccessFlags			dstAccessMask;
924	VkDependencyFlags		dependencyFlags;
925};
926
927struct VkRenderPassCreateInfo
928{
929	VkStructureType					sType;
930	const void*						pNext;
931	VkRenderPassCreateFlags			flags;
932	uint32_t						attachmentCount;
933	const VkAttachmentDescription*	pAttachments;
934	uint32_t						subpassCount;
935	const VkSubpassDescription*		pSubpasses;
936	uint32_t						dependencyCount;
937	const VkSubpassDependency*		pDependencies;
938};
939
940struct VkEventCreateInfo
941{
942	VkStructureType		sType;
943	const void*			pNext;
944	VkEventCreateFlags	flags;
945};
946
947struct VkFenceCreateInfo
948{
949	VkStructureType		sType;
950	const void*			pNext;
951	VkFenceCreateFlags	flags;
952};
953
954struct VkPhysicalDeviceFeatures
955{
956	VkBool32	robustBufferAccess;
957	VkBool32	fullDrawIndexUint32;
958	VkBool32	imageCubeArray;
959	VkBool32	independentBlend;
960	VkBool32	geometryShader;
961	VkBool32	tessellationShader;
962	VkBool32	sampleRateShading;
963	VkBool32	dualSrcBlend;
964	VkBool32	logicOp;
965	VkBool32	multiDrawIndirect;
966	VkBool32	drawIndirectFirstInstance;
967	VkBool32	depthClamp;
968	VkBool32	depthBiasClamp;
969	VkBool32	fillModeNonSolid;
970	VkBool32	depthBounds;
971	VkBool32	wideLines;
972	VkBool32	largePoints;
973	VkBool32	alphaToOne;
974	VkBool32	multiViewport;
975	VkBool32	samplerAnisotropy;
976	VkBool32	textureCompressionETC2;
977	VkBool32	textureCompressionASTC_LDR;
978	VkBool32	textureCompressionBC;
979	VkBool32	occlusionQueryPrecise;
980	VkBool32	pipelineStatisticsQuery;
981	VkBool32	vertexPipelineStoresAndAtomics;
982	VkBool32	fragmentStoresAndAtomics;
983	VkBool32	shaderTessellationAndGeometryPointSize;
984	VkBool32	shaderImageGatherExtended;
985	VkBool32	shaderStorageImageExtendedFormats;
986	VkBool32	shaderStorageImageMultisample;
987	VkBool32	shaderStorageImageReadWithoutFormat;
988	VkBool32	shaderStorageImageWriteWithoutFormat;
989	VkBool32	shaderUniformBufferArrayDynamicIndexing;
990	VkBool32	shaderSampledImageArrayDynamicIndexing;
991	VkBool32	shaderStorageBufferArrayDynamicIndexing;
992	VkBool32	shaderStorageImageArrayDynamicIndexing;
993	VkBool32	shaderClipDistance;
994	VkBool32	shaderCullDistance;
995	VkBool32	shaderFloat64;
996	VkBool32	shaderInt64;
997	VkBool32	shaderInt16;
998	VkBool32	shaderResourceResidency;
999	VkBool32	shaderResourceMinLod;
1000	VkBool32	sparseBinding;
1001	VkBool32	sparseResidencyBuffer;
1002	VkBool32	sparseResidencyImage2D;
1003	VkBool32	sparseResidencyImage3D;
1004	VkBool32	sparseResidency2Samples;
1005	VkBool32	sparseResidency4Samples;
1006	VkBool32	sparseResidency8Samples;
1007	VkBool32	sparseResidency16Samples;
1008	VkBool32	sparseResidencyAliased;
1009	VkBool32	variableMultisampleRate;
1010	VkBool32	inheritedQueries;
1011};
1012
1013struct VkDeviceCreateInfo
1014{
1015	VkStructureType					sType;
1016	const void*						pNext;
1017	VkDeviceCreateFlags				flags;
1018	uint32_t						queueCreateInfoCount;
1019	const VkDeviceQueueCreateInfo*	pQueueCreateInfos;
1020	uint32_t						enabledLayerCount;
1021	const char* const*				ppEnabledLayerNames;
1022	uint32_t						enabledExtensionCount;
1023	const char* const*				ppEnabledExtensionNames;
1024	const VkPhysicalDeviceFeatures*	pEnabledFeatures;
1025};
1026
1027struct VkPhysicalDeviceSparseProperties
1028{
1029	VkBool32	residencyStandard2DBlockShape;
1030	VkBool32	residencyStandard2DMultisampleBlockShape;
1031	VkBool32	residencyStandard3DBlockShape;
1032	VkBool32	residencyAlignedMipSize;
1033	VkBool32	residencyNonResidentStrict;
1034};
1035
1036struct VkPhysicalDeviceLimits
1037{
1038	uint32_t			maxImageDimension1D;
1039	uint32_t			maxImageDimension2D;
1040	uint32_t			maxImageDimension3D;
1041	uint32_t			maxImageDimensionCube;
1042	uint32_t			maxImageArrayLayers;
1043	uint32_t			maxTexelBufferElements;
1044	uint32_t			maxUniformBufferRange;
1045	uint32_t			maxStorageBufferRange;
1046	uint32_t			maxPushConstantsSize;
1047	uint32_t			maxMemoryAllocationCount;
1048	uint32_t			maxSamplerAllocationCount;
1049	VkDeviceSize		bufferImageGranularity;
1050	VkDeviceSize		sparseAddressSpaceSize;
1051	uint32_t			maxBoundDescriptorSets;
1052	uint32_t			maxPerStageDescriptorSamplers;
1053	uint32_t			maxPerStageDescriptorUniformBuffers;
1054	uint32_t			maxPerStageDescriptorStorageBuffers;
1055	uint32_t			maxPerStageDescriptorSampledImages;
1056	uint32_t			maxPerStageDescriptorStorageImages;
1057	uint32_t			maxPerStageDescriptorInputAttachments;
1058	uint32_t			maxPerStageResources;
1059	uint32_t			maxDescriptorSetSamplers;
1060	uint32_t			maxDescriptorSetUniformBuffers;
1061	uint32_t			maxDescriptorSetUniformBuffersDynamic;
1062	uint32_t			maxDescriptorSetStorageBuffers;
1063	uint32_t			maxDescriptorSetStorageBuffersDynamic;
1064	uint32_t			maxDescriptorSetSampledImages;
1065	uint32_t			maxDescriptorSetStorageImages;
1066	uint32_t			maxDescriptorSetInputAttachments;
1067	uint32_t			maxVertexInputAttributes;
1068	uint32_t			maxVertexInputBindings;
1069	uint32_t			maxVertexInputAttributeOffset;
1070	uint32_t			maxVertexInputBindingStride;
1071	uint32_t			maxVertexOutputComponents;
1072	uint32_t			maxTessellationGenerationLevel;
1073	uint32_t			maxTessellationPatchSize;
1074	uint32_t			maxTessellationControlPerVertexInputComponents;
1075	uint32_t			maxTessellationControlPerVertexOutputComponents;
1076	uint32_t			maxTessellationControlPerPatchOutputComponents;
1077	uint32_t			maxTessellationControlTotalOutputComponents;
1078	uint32_t			maxTessellationEvaluationInputComponents;
1079	uint32_t			maxTessellationEvaluationOutputComponents;
1080	uint32_t			maxGeometryShaderInvocations;
1081	uint32_t			maxGeometryInputComponents;
1082	uint32_t			maxGeometryOutputComponents;
1083	uint32_t			maxGeometryOutputVertices;
1084	uint32_t			maxGeometryTotalOutputComponents;
1085	uint32_t			maxFragmentInputComponents;
1086	uint32_t			maxFragmentOutputAttachments;
1087	uint32_t			maxFragmentDualSrcAttachments;
1088	uint32_t			maxFragmentCombinedOutputResources;
1089	uint32_t			maxComputeSharedMemorySize;
1090	uint32_t			maxComputeWorkGroupCount[3];
1091	uint32_t			maxComputeWorkGroupInvocations;
1092	uint32_t			maxComputeWorkGroupSize[3];
1093	uint32_t			subPixelPrecisionBits;
1094	uint32_t			subTexelPrecisionBits;
1095	uint32_t			mipmapPrecisionBits;
1096	uint32_t			maxDrawIndexedIndexValue;
1097	uint32_t			maxDrawIndirectCount;
1098	float				maxSamplerLodBias;
1099	float				maxSamplerAnisotropy;
1100	uint32_t			maxViewports;
1101	uint32_t			maxViewportDimensions[2];
1102	float				viewportBoundsRange[2];
1103	uint32_t			viewportSubPixelBits;
1104	size_t				minMemoryMapAlignment;
1105	VkDeviceSize		minTexelBufferOffsetAlignment;
1106	VkDeviceSize		minUniformBufferOffsetAlignment;
1107	VkDeviceSize		minStorageBufferOffsetAlignment;
1108	int32_t				minTexelOffset;
1109	uint32_t			maxTexelOffset;
1110	int32_t				minTexelGatherOffset;
1111	uint32_t			maxTexelGatherOffset;
1112	float				minInterpolationOffset;
1113	float				maxInterpolationOffset;
1114	uint32_t			subPixelInterpolationOffsetBits;
1115	uint32_t			maxFramebufferWidth;
1116	uint32_t			maxFramebufferHeight;
1117	uint32_t			maxFramebufferLayers;
1118	VkSampleCountFlags	framebufferColorSampleCounts;
1119	VkSampleCountFlags	framebufferDepthSampleCounts;
1120	VkSampleCountFlags	framebufferStencilSampleCounts;
1121	VkSampleCountFlags	framebufferNoAttachmentsSampleCounts;
1122	uint32_t			maxColorAttachments;
1123	VkSampleCountFlags	sampledImageColorSampleCounts;
1124	VkSampleCountFlags	sampledImageIntegerSampleCounts;
1125	VkSampleCountFlags	sampledImageDepthSampleCounts;
1126	VkSampleCountFlags	sampledImageStencilSampleCounts;
1127	VkSampleCountFlags	storageImageSampleCounts;
1128	uint32_t			maxSampleMaskWords;
1129	VkBool32			timestampComputeAndGraphics;
1130	float				timestampPeriod;
1131	uint32_t			maxClipDistances;
1132	uint32_t			maxCullDistances;
1133	uint32_t			maxCombinedClipAndCullDistances;
1134	uint32_t			discreteQueuePriorities;
1135	float				pointSizeRange[2];
1136	float				lineWidthRange[2];
1137	float				pointSizeGranularity;
1138	float				lineWidthGranularity;
1139	VkBool32			strictLines;
1140	VkBool32			standardSampleLocations;
1141	VkDeviceSize		optimalBufferCopyOffsetAlignment;
1142	VkDeviceSize		optimalBufferCopyRowPitchAlignment;
1143	VkDeviceSize		nonCoherentAtomSize;
1144};
1145
1146struct VkPhysicalDeviceProperties
1147{
1148	uint32_t							apiVersion;
1149	uint32_t							driverVersion;
1150	uint32_t							vendorID;
1151	uint32_t							deviceID;
1152	VkPhysicalDeviceType				deviceType;
1153	char								deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE];
1154	uint8_t								pipelineCacheUUID[VK_UUID_SIZE];
1155	VkPhysicalDeviceLimits				limits;
1156	VkPhysicalDeviceSparseProperties	sparseProperties;
1157};
1158
1159struct VkSemaphoreCreateInfo
1160{
1161	VkStructureType			sType;
1162	const void*				pNext;
1163	VkSemaphoreCreateFlags	flags;
1164};
1165
1166struct VkQueryPoolCreateInfo
1167{
1168	VkStructureType					sType;
1169	const void*						pNext;
1170	VkQueryPoolCreateFlags			flags;
1171	VkQueryType						queryType;
1172	uint32_t						queryCount;
1173	VkQueryPipelineStatisticFlags	pipelineStatistics;
1174};
1175
1176struct VkFramebufferCreateInfo
1177{
1178	VkStructureType				sType;
1179	const void*					pNext;
1180	VkFramebufferCreateFlags	flags;
1181	VkRenderPass				renderPass;
1182	uint32_t					attachmentCount;
1183	const VkImageView*			pAttachments;
1184	uint32_t					width;
1185	uint32_t					height;
1186	uint32_t					layers;
1187};
1188
1189struct VkDrawIndirectCommand
1190{
1191	uint32_t	vertexCount;
1192	uint32_t	instanceCount;
1193	uint32_t	firstVertex;
1194	uint32_t	firstInstance;
1195};
1196
1197struct VkDrawIndexedIndirectCommand
1198{
1199	uint32_t	indexCount;
1200	uint32_t	instanceCount;
1201	uint32_t	firstIndex;
1202	int32_t		vertexOffset;
1203	uint32_t	firstInstance;
1204};
1205
1206struct VkDispatchIndirectCommand
1207{
1208	uint32_t	x;
1209	uint32_t	y;
1210	uint32_t	z;
1211};
1212
1213struct VkMultiDrawInfoEXT
1214{
1215	uint32_t	firstVertex;
1216	uint32_t	vertexCount;
1217};
1218
1219struct VkMultiDrawIndexedInfoEXT
1220{
1221	uint32_t	firstIndex;
1222	uint32_t	indexCount;
1223	int32_t		vertexOffset;
1224};
1225
1226struct VkSubmitInfo
1227{
1228	VkStructureType				sType;
1229	const void*					pNext;
1230	uint32_t					waitSemaphoreCount;
1231	const VkSemaphore*			pWaitSemaphores;
1232	const VkPipelineStageFlags*	pWaitDstStageMask;
1233	uint32_t					commandBufferCount;
1234	const VkCommandBuffer*		pCommandBuffers;
1235	uint32_t					signalSemaphoreCount;
1236	const VkSemaphore*			pSignalSemaphores;
1237};
1238
1239struct VkDisplayPropertiesKHR
1240{
1241	VkDisplayKHR				display;
1242	const char*					displayName;
1243	VkExtent2D					physicalDimensions;
1244	VkExtent2D					physicalResolution;
1245	VkSurfaceTransformFlagsKHR	supportedTransforms;
1246	VkBool32					planeReorderPossible;
1247	VkBool32					persistentContent;
1248};
1249
1250struct VkDisplayPlanePropertiesKHR
1251{
1252	VkDisplayKHR	currentDisplay;
1253	uint32_t		currentStackIndex;
1254};
1255
1256struct VkDisplayModeParametersKHR
1257{
1258	VkExtent2D	visibleRegion;
1259	uint32_t	refreshRate;
1260};
1261
1262struct VkDisplayModePropertiesKHR
1263{
1264	VkDisplayModeKHR			displayMode;
1265	VkDisplayModeParametersKHR	parameters;
1266};
1267
1268struct VkDisplayModeCreateInfoKHR
1269{
1270	VkStructureType				sType;
1271	const void*					pNext;
1272	VkDisplayModeCreateFlagsKHR	flags;
1273	VkDisplayModeParametersKHR	parameters;
1274};
1275
1276struct VkDisplayPlaneCapabilitiesKHR
1277{
1278	VkDisplayPlaneAlphaFlagsKHR	supportedAlpha;
1279	VkOffset2D					minSrcPosition;
1280	VkOffset2D					maxSrcPosition;
1281	VkExtent2D					minSrcExtent;
1282	VkExtent2D					maxSrcExtent;
1283	VkOffset2D					minDstPosition;
1284	VkOffset2D					maxDstPosition;
1285	VkExtent2D					minDstExtent;
1286	VkExtent2D					maxDstExtent;
1287};
1288
1289struct VkDisplaySurfaceCreateInfoKHR
1290{
1291	VkStructureType					sType;
1292	const void*						pNext;
1293	VkDisplaySurfaceCreateFlagsKHR	flags;
1294	VkDisplayModeKHR				displayMode;
1295	uint32_t						planeIndex;
1296	uint32_t						planeStackIndex;
1297	VkSurfaceTransformFlagBitsKHR	transform;
1298	float							globalAlpha;
1299	VkDisplayPlaneAlphaFlagBitsKHR	alphaMode;
1300	VkExtent2D						imageExtent;
1301};
1302
1303struct VkDisplayPresentInfoKHR
1304{
1305	VkStructureType	sType;
1306	const void*		pNext;
1307	VkRect2D		srcRect;
1308	VkRect2D		dstRect;
1309	VkBool32		persistent;
1310};
1311
1312struct VkSurfaceCapabilitiesKHR
1313{
1314	uint32_t						minImageCount;
1315	uint32_t						maxImageCount;
1316	VkExtent2D						currentExtent;
1317	VkExtent2D						minImageExtent;
1318	VkExtent2D						maxImageExtent;
1319	uint32_t						maxImageArrayLayers;
1320	VkSurfaceTransformFlagsKHR		supportedTransforms;
1321	VkSurfaceTransformFlagBitsKHR	currentTransform;
1322	VkCompositeAlphaFlagsKHR		supportedCompositeAlpha;
1323	VkImageUsageFlags				supportedUsageFlags;
1324};
1325
1326struct VkAndroidSurfaceCreateInfoKHR
1327{
1328	VkStructureType						sType;
1329	const void*							pNext;
1330	VkAndroidSurfaceCreateFlagsKHR		flags;
1331	struct pt::AndroidNativeWindowPtr	window;
1332};
1333
1334struct VkViSurfaceCreateInfoNN
1335{
1336	VkStructureType				sType;
1337	const void*					pNext;
1338	VkViSurfaceCreateFlagsNN	flags;
1339	void*						window;
1340};
1341
1342struct VkWaylandSurfaceCreateInfoKHR
1343{
1344	VkStructureType					sType;
1345	const void*						pNext;
1346	VkWaylandSurfaceCreateFlagsKHR	flags;
1347	pt::WaylandDisplayPtr			display;
1348	pt::WaylandSurfacePtr			surface;
1349};
1350
1351struct VkWin32SurfaceCreateInfoKHR
1352{
1353	VkStructureType					sType;
1354	const void*						pNext;
1355	VkWin32SurfaceCreateFlagsKHR	flags;
1356	pt::Win32InstanceHandle			hinstance;
1357	pt::Win32WindowHandle			hwnd;
1358};
1359
1360struct VkXlibSurfaceCreateInfoKHR
1361{
1362	VkStructureType				sType;
1363	const void*					pNext;
1364	VkXlibSurfaceCreateFlagsKHR	flags;
1365	pt::XlibDisplayPtr			dpy;
1366	pt::XlibWindow				window;
1367};
1368
1369struct VkXcbSurfaceCreateInfoKHR
1370{
1371	VkStructureType				sType;
1372	const void*					pNext;
1373	VkXcbSurfaceCreateFlagsKHR	flags;
1374	pt::XcbConnectionPtr		connection;
1375	pt::XcbWindow				window;
1376};
1377
1378struct VkImagePipeSurfaceCreateInfoFUCHSIA
1379{
1380	VkStructureType							sType;
1381	const void*								pNext;
1382	VkImagePipeSurfaceCreateFlagsFUCHSIA	flags;
1383	pt::zx_handle_t							imagePipeHandle;
1384};
1385
1386struct VkStreamDescriptorSurfaceCreateInfoGGP
1387{
1388	VkStructureType							sType;
1389	const void*								pNext;
1390	VkStreamDescriptorSurfaceCreateFlagsGGP	flags;
1391	pt::GgpStreamDescriptor					streamDescriptor;
1392};
1393
1394struct VkScreenSurfaceCreateInfoQNX
1395{
1396	VkStructureType					sType;
1397	const void*						pNext;
1398	VkScreenSurfaceCreateFlagsQNX	flags;
1399	pt::QNXScreenContextPtr			context;
1400	pt::QNXScreenWindowPtr			window;
1401};
1402
1403struct VkOHOSSurfaceCreateInfoOpenHarmony
1404{
1405	VkStructureType						sType;
1406	const void*							pNext;
1407	VkOHOSSurfaceCreateFlagsOpenHarmony	flags;
1408	struct pt::OhosNativeWindowPtr		window;
1409};
1410
1411struct VkOHOSNativeBufferPropertiesOpenHarmony
1412{
1413	VkStructureType	sType;
1414	const void*		pNext;
1415	VkDeviceSize	allocationSize;
1416	uint32_t		memoryTypeBits;
1417};
1418
1419struct VkSurfaceFormatKHR
1420{
1421	VkFormat		format;
1422	VkColorSpaceKHR	colorSpace;
1423};
1424
1425struct VkSwapchainCreateInfoKHR
1426{
1427	VkStructureType					sType;
1428	const void*						pNext;
1429	VkSwapchainCreateFlagsKHR		flags;
1430	VkSurfaceKHR					surface;
1431	uint32_t						minImageCount;
1432	VkFormat						imageFormat;
1433	VkColorSpaceKHR					imageColorSpace;
1434	VkExtent2D						imageExtent;
1435	uint32_t						imageArrayLayers;
1436	VkImageUsageFlags				imageUsage;
1437	VkSharingMode					imageSharingMode;
1438	uint32_t						queueFamilyIndexCount;
1439	const uint32_t*					pQueueFamilyIndices;
1440	VkSurfaceTransformFlagBitsKHR	preTransform;
1441	VkCompositeAlphaFlagBitsKHR		compositeAlpha;
1442	VkPresentModeKHR				presentMode;
1443	VkBool32						clipped;
1444	VkSwapchainKHR					oldSwapchain;
1445};
1446
1447struct VkPresentInfoKHR
1448{
1449	VkStructureType			sType;
1450	const void*				pNext;
1451	uint32_t				waitSemaphoreCount;
1452	const VkSemaphore*		pWaitSemaphores;
1453	uint32_t				swapchainCount;
1454	const VkSwapchainKHR*	pSwapchains;
1455	const uint32_t*			pImageIndices;
1456	VkResult*				pResults;
1457};
1458
1459struct VkDebugReportCallbackCreateInfoEXT
1460{
1461	VkStructureType					sType;
1462	const void*						pNext;
1463	VkDebugReportFlagsEXT			flags;
1464	PFN_vkDebugReportCallbackEXT	pfnCallback;
1465	void*							pUserData;
1466};
1467
1468struct VkValidationFlagsEXT
1469{
1470	VkStructureType				sType;
1471	const void*					pNext;
1472	uint32_t					disabledValidationCheckCount;
1473	const VkValidationCheckEXT*	pDisabledValidationChecks;
1474};
1475
1476struct VkValidationFeaturesEXT
1477{
1478	VkStructureType							sType;
1479	const void*								pNext;
1480	uint32_t								enabledValidationFeatureCount;
1481	const VkValidationFeatureEnableEXT*		pEnabledValidationFeatures;
1482	uint32_t								disabledValidationFeatureCount;
1483	const VkValidationFeatureDisableEXT*	pDisabledValidationFeatures;
1484};
1485
1486struct VkPipelineRasterizationStateRasterizationOrderAMD
1487{
1488	VkStructureType			sType;
1489	const void*				pNext;
1490	VkRasterizationOrderAMD	rasterizationOrder;
1491};
1492
1493struct VkDebugMarkerObjectNameInfoEXT
1494{
1495	VkStructureType				sType;
1496	const void*					pNext;
1497	VkDebugReportObjectTypeEXT	objectType;
1498	uint64_t					object;
1499	const char*					pObjectName;
1500};
1501
1502struct VkDebugMarkerObjectTagInfoEXT
1503{
1504	VkStructureType				sType;
1505	const void*					pNext;
1506	VkDebugReportObjectTypeEXT	objectType;
1507	uint64_t					object;
1508	uint64_t					tagName;
1509	size_t						tagSize;
1510	const void*					pTag;
1511};
1512
1513struct VkDebugMarkerMarkerInfoEXT
1514{
1515	VkStructureType	sType;
1516	const void*		pNext;
1517	const char*		pMarkerName;
1518	float			color[4];
1519};
1520
1521struct VkDedicatedAllocationImageCreateInfoNV
1522{
1523	VkStructureType	sType;
1524	const void*		pNext;
1525	VkBool32		dedicatedAllocation;
1526};
1527
1528struct VkDedicatedAllocationBufferCreateInfoNV
1529{
1530	VkStructureType	sType;
1531	const void*		pNext;
1532	VkBool32		dedicatedAllocation;
1533};
1534
1535struct VkDedicatedAllocationMemoryAllocateInfoNV
1536{
1537	VkStructureType	sType;
1538	const void*		pNext;
1539	VkImage			image;
1540	VkBuffer		buffer;
1541};
1542
1543struct VkExternalImageFormatPropertiesNV
1544{
1545	VkImageFormatProperties				imageFormatProperties;
1546	VkExternalMemoryFeatureFlagsNV		externalMemoryFeatures;
1547	VkExternalMemoryHandleTypeFlagsNV	exportFromImportedHandleTypes;
1548	VkExternalMemoryHandleTypeFlagsNV	compatibleHandleTypes;
1549};
1550
1551struct VkExternalMemoryImageCreateInfoNV
1552{
1553	VkStructureType						sType;
1554	const void*							pNext;
1555	VkExternalMemoryHandleTypeFlagsNV	handleTypes;
1556};
1557
1558struct VkExportMemoryAllocateInfoNV
1559{
1560	VkStructureType						sType;
1561	const void*							pNext;
1562	VkExternalMemoryHandleTypeFlagsNV	handleTypes;
1563};
1564
1565struct VkImportMemoryWin32HandleInfoNV
1566{
1567	VkStructureType						sType;
1568	const void*							pNext;
1569	VkExternalMemoryHandleTypeFlagsNV	handleType;
1570	pt::Win32Handle						handle;
1571};
1572
1573struct VkExportMemoryWin32HandleInfoNV
1574{
1575	VkStructureType					sType;
1576	const void*						pNext;
1577	pt::Win32SecurityAttributesPtr	pAttributes;
1578	uint32_t						dwAccess;
1579};
1580
1581struct VkWin32KeyedMutexAcquireReleaseInfoNV
1582{
1583	VkStructureType			sType;
1584	const void*				pNext;
1585	uint32_t				acquireCount;
1586	const VkDeviceMemory*	pAcquireSyncs;
1587	const uint64_t*			pAcquireKeys;
1588	const uint32_t*			pAcquireTimeoutMilliseconds;
1589	uint32_t				releaseCount;
1590	const VkDeviceMemory*	pReleaseSyncs;
1591	const uint64_t*			pReleaseKeys;
1592};
1593
1594struct VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV
1595{
1596	VkStructureType	sType;
1597	void*			pNext;
1598	VkBool32		deviceGeneratedCommands;
1599};
1600
1601struct VkDevicePrivateDataCreateInfo
1602{
1603	VkStructureType	sType;
1604	const void*		pNext;
1605	uint32_t		privateDataSlotRequestCount;
1606};
1607
1608struct VkPrivateDataSlotCreateInfo
1609{
1610	VkStructureType					sType;
1611	const void*						pNext;
1612	VkPrivateDataSlotCreateFlags	flags;
1613};
1614
1615struct VkPhysicalDevicePrivateDataFeatures
1616{
1617	VkStructureType	sType;
1618	void*			pNext;
1619	VkBool32		privateData;
1620};
1621
1622struct VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV
1623{
1624	VkStructureType	sType;
1625	void*			pNext;
1626	uint32_t		maxGraphicsShaderGroupCount;
1627	uint32_t		maxIndirectSequenceCount;
1628	uint32_t		maxIndirectCommandsTokenCount;
1629	uint32_t		maxIndirectCommandsStreamCount;
1630	uint32_t		maxIndirectCommandsTokenOffset;
1631	uint32_t		maxIndirectCommandsStreamStride;
1632	uint32_t		minSequencesCountBufferOffsetAlignment;
1633	uint32_t		minSequencesIndexBufferOffsetAlignment;
1634	uint32_t		minIndirectCommandsBufferOffsetAlignment;
1635};
1636
1637struct VkPhysicalDeviceMultiDrawPropertiesEXT
1638{
1639	VkStructureType	sType;
1640	void*			pNext;
1641	uint32_t		maxMultiDrawCount;
1642};
1643
1644struct VkGraphicsShaderGroupCreateInfoNV
1645{
1646	VkStructureType									sType;
1647	const void*										pNext;
1648	uint32_t										stageCount;
1649	const VkPipelineShaderStageCreateInfo*			pStages;
1650	const VkPipelineVertexInputStateCreateInfo*		pVertexInputState;
1651	const VkPipelineTessellationStateCreateInfo*	pTessellationState;
1652};
1653
1654struct VkGraphicsPipelineShaderGroupsCreateInfoNV
1655{
1656	VkStructureType								sType;
1657	const void*									pNext;
1658	uint32_t									groupCount;
1659	const VkGraphicsShaderGroupCreateInfoNV*	pGroups;
1660	uint32_t									pipelineCount;
1661	const VkPipeline*							pPipelines;
1662};
1663
1664struct VkBindShaderGroupIndirectCommandNV
1665{
1666	uint32_t	groupIndex;
1667};
1668
1669struct VkBindIndexBufferIndirectCommandNV
1670{
1671	VkDeviceAddress	bufferAddress;
1672	uint32_t		size;
1673	VkIndexType		indexType;
1674};
1675
1676struct VkBindVertexBufferIndirectCommandNV
1677{
1678	VkDeviceAddress	bufferAddress;
1679	uint32_t		size;
1680	uint32_t		stride;
1681};
1682
1683struct VkSetStateFlagsIndirectCommandNV
1684{
1685	uint32_t	data;
1686};
1687
1688struct VkIndirectCommandsStreamNV
1689{
1690	VkBuffer		buffer;
1691	VkDeviceSize	offset;
1692};
1693
1694struct VkIndirectCommandsLayoutTokenNV
1695{
1696	VkStructureType					sType;
1697	const void*						pNext;
1698	VkIndirectCommandsTokenTypeNV	tokenType;
1699	uint32_t						stream;
1700	uint32_t						offset;
1701	uint32_t						vertexBindingUnit;
1702	VkBool32						vertexDynamicStride;
1703	VkPipelineLayout				pushconstantPipelineLayout;
1704	VkShaderStageFlags				pushconstantShaderStageFlags;
1705	uint32_t						pushconstantOffset;
1706	uint32_t						pushconstantSize;
1707	VkIndirectStateFlagsNV			indirectStateFlags;
1708	uint32_t						indexTypeCount;
1709	const VkIndexType*				pIndexTypes;
1710	const uint32_t*					pIndexTypeValues;
1711};
1712
1713struct VkIndirectCommandsLayoutCreateInfoNV
1714{
1715	VkStructureType							sType;
1716	const void*								pNext;
1717	VkIndirectCommandsLayoutUsageFlagsNV	flags;
1718	VkPipelineBindPoint						pipelineBindPoint;
1719	uint32_t								tokenCount;
1720	const VkIndirectCommandsLayoutTokenNV*	pTokens;
1721	uint32_t								streamCount;
1722	const uint32_t*							pStreamStrides;
1723};
1724
1725struct VkGeneratedCommandsInfoNV
1726{
1727	VkStructureType						sType;
1728	const void*							pNext;
1729	VkPipelineBindPoint					pipelineBindPoint;
1730	VkPipeline							pipeline;
1731	VkIndirectCommandsLayoutNV			indirectCommandsLayout;
1732	uint32_t							streamCount;
1733	const VkIndirectCommandsStreamNV*	pStreams;
1734	uint32_t							sequencesCount;
1735	VkBuffer							preprocessBuffer;
1736	VkDeviceSize						preprocessOffset;
1737	VkDeviceSize						preprocessSize;
1738	VkBuffer							sequencesCountBuffer;
1739	VkDeviceSize						sequencesCountOffset;
1740	VkBuffer							sequencesIndexBuffer;
1741	VkDeviceSize						sequencesIndexOffset;
1742};
1743
1744struct VkGeneratedCommandsMemoryRequirementsInfoNV
1745{
1746	VkStructureType				sType;
1747	const void*					pNext;
1748	VkPipelineBindPoint			pipelineBindPoint;
1749	VkPipeline					pipeline;
1750	VkIndirectCommandsLayoutNV	indirectCommandsLayout;
1751	uint32_t					maxSequencesCount;
1752};
1753
1754struct VkPhysicalDeviceFeatures2
1755{
1756	VkStructureType				sType;
1757	void*						pNext;
1758	VkPhysicalDeviceFeatures	features;
1759};
1760
1761struct VkPhysicalDeviceProperties2
1762{
1763	VkStructureType				sType;
1764	void*						pNext;
1765	VkPhysicalDeviceProperties	properties;
1766};
1767
1768struct VkFormatProperties2
1769{
1770	VkStructureType		sType;
1771	void*				pNext;
1772	VkFormatProperties	formatProperties;
1773};
1774
1775struct VkImageFormatProperties2
1776{
1777	VkStructureType			sType;
1778	void*					pNext;
1779	VkImageFormatProperties	imageFormatProperties;
1780};
1781
1782struct VkPhysicalDeviceImageFormatInfo2
1783{
1784	VkStructureType		sType;
1785	const void*			pNext;
1786	VkFormat			format;
1787	VkImageType			type;
1788	VkImageTiling		tiling;
1789	VkImageUsageFlags	usage;
1790	VkImageCreateFlags	flags;
1791};
1792
1793struct VkQueueFamilyProperties2
1794{
1795	VkStructureType			sType;
1796	void*					pNext;
1797	VkQueueFamilyProperties	queueFamilyProperties;
1798};
1799
1800struct VkPhysicalDeviceMemoryProperties2
1801{
1802	VkStructureType						sType;
1803	void*								pNext;
1804	VkPhysicalDeviceMemoryProperties	memoryProperties;
1805};
1806
1807struct VkSparseImageFormatProperties2
1808{
1809	VkStructureType					sType;
1810	void*							pNext;
1811	VkSparseImageFormatProperties	properties;
1812};
1813
1814struct VkPhysicalDeviceSparseImageFormatInfo2
1815{
1816	VkStructureType			sType;
1817	const void*				pNext;
1818	VkFormat				format;
1819	VkImageType				type;
1820	VkSampleCountFlagBits	samples;
1821	VkImageUsageFlags		usage;
1822	VkImageTiling			tiling;
1823};
1824
1825struct VkPhysicalDevicePushDescriptorPropertiesKHR
1826{
1827	VkStructureType	sType;
1828	void*			pNext;
1829	uint32_t		maxPushDescriptors;
1830};
1831
1832struct VkConformanceVersion
1833{
1834	uint8_t	major;
1835	uint8_t	minor;
1836	uint8_t	subminor;
1837	uint8_t	patch;
1838};
1839
1840struct VkPhysicalDeviceDriverProperties
1841{
1842	VkStructureType			sType;
1843	void*					pNext;
1844	VkDriverId				driverID;
1845	char					driverName[VK_MAX_DRIVER_NAME_SIZE];
1846	char					driverInfo[VK_MAX_DRIVER_INFO_SIZE];
1847	VkConformanceVersion	conformanceVersion;
1848};
1849
1850struct VkRectLayerKHR
1851{
1852	VkOffset2D	offset;
1853	VkExtent2D	extent;
1854	uint32_t	layer;
1855};
1856
1857struct VkPresentRegionKHR
1858{
1859	uint32_t				rectangleCount;
1860	const VkRectLayerKHR*	pRectangles;
1861};
1862
1863struct VkPhysicalDeviceVariablePointersFeatures
1864{
1865	VkStructureType	sType;
1866	void*			pNext;
1867	VkBool32		variablePointersStorageBuffer;
1868	VkBool32		variablePointers;
1869};
1870
1871struct VkPresentRegionsKHR
1872{
1873	VkStructureType				sType;
1874	const void*					pNext;
1875	uint32_t					swapchainCount;
1876	const VkPresentRegionKHR*	pRegions;
1877};
1878
1879struct VkExternalMemoryProperties
1880{
1881	VkExternalMemoryFeatureFlags	externalMemoryFeatures;
1882	VkExternalMemoryHandleTypeFlags	exportFromImportedHandleTypes;
1883	VkExternalMemoryHandleTypeFlags	compatibleHandleTypes;
1884};
1885
1886struct VkPhysicalDeviceExternalImageFormatInfo
1887{
1888	VkStructureType						sType;
1889	const void*							pNext;
1890	VkExternalMemoryHandleTypeFlagBits	handleType;
1891};
1892
1893struct VkExternalImageFormatProperties
1894{
1895	VkStructureType				sType;
1896	void*						pNext;
1897	VkExternalMemoryProperties	externalMemoryProperties;
1898};
1899
1900struct VkPhysicalDeviceExternalBufferInfo
1901{
1902	VkStructureType						sType;
1903	const void*							pNext;
1904	VkBufferCreateFlags					flags;
1905	VkBufferUsageFlags					usage;
1906	VkExternalMemoryHandleTypeFlagBits	handleType;
1907};
1908
1909struct VkExternalBufferProperties
1910{
1911	VkStructureType				sType;
1912	void*						pNext;
1913	VkExternalMemoryProperties	externalMemoryProperties;
1914};
1915
1916struct VkPhysicalDeviceIDProperties
1917{
1918	VkStructureType	sType;
1919	void*			pNext;
1920	uint8_t			deviceUUID[VK_UUID_SIZE];
1921	uint8_t			driverUUID[VK_UUID_SIZE];
1922	uint8_t			deviceLUID[VK_LUID_SIZE];
1923	uint32_t		deviceNodeMask;
1924	VkBool32		deviceLUIDValid;
1925};
1926
1927struct VkExternalMemoryImageCreateInfo
1928{
1929	VkStructureType					sType;
1930	const void*						pNext;
1931	VkExternalMemoryHandleTypeFlags	handleTypes;
1932};
1933
1934struct VkExternalMemoryBufferCreateInfo
1935{
1936	VkStructureType					sType;
1937	const void*						pNext;
1938	VkExternalMemoryHandleTypeFlags	handleTypes;
1939};
1940
1941struct VkExportMemoryAllocateInfo
1942{
1943	VkStructureType					sType;
1944	const void*						pNext;
1945	VkExternalMemoryHandleTypeFlags	handleTypes;
1946};
1947
1948struct VkImportMemoryWin32HandleInfoKHR
1949{
1950	VkStructureType						sType;
1951	const void*							pNext;
1952	VkExternalMemoryHandleTypeFlagBits	handleType;
1953	pt::Win32Handle						handle;
1954	pt::Win32LPCWSTR					name;
1955};
1956
1957struct VkExportMemoryWin32HandleInfoKHR
1958{
1959	VkStructureType					sType;
1960	const void*						pNext;
1961	pt::Win32SecurityAttributesPtr	pAttributes;
1962	uint32_t						dwAccess;
1963	pt::Win32LPCWSTR				name;
1964};
1965
1966struct VkImportMemoryZirconHandleInfoFUCHSIA
1967{
1968	VkStructureType						sType;
1969	const void*							pNext;
1970	VkExternalMemoryHandleTypeFlagBits	handleType;
1971	pt::zx_handle_t						handle;
1972};
1973
1974struct VkMemoryZirconHandlePropertiesFUCHSIA
1975{
1976	VkStructureType	sType;
1977	void*			pNext;
1978	uint32_t		memoryTypeBits;
1979};
1980
1981struct VkMemoryGetZirconHandleInfoFUCHSIA
1982{
1983	VkStructureType						sType;
1984	const void*							pNext;
1985	VkDeviceMemory						memory;
1986	VkExternalMemoryHandleTypeFlagBits	handleType;
1987};
1988
1989struct VkMemoryWin32HandlePropertiesKHR
1990{
1991	VkStructureType	sType;
1992	void*			pNext;
1993	uint32_t		memoryTypeBits;
1994};
1995
1996struct VkMemoryGetWin32HandleInfoKHR
1997{
1998	VkStructureType						sType;
1999	const void*							pNext;
2000	VkDeviceMemory						memory;
2001	VkExternalMemoryHandleTypeFlagBits	handleType;
2002};
2003
2004struct VkImportMemoryFdInfoKHR
2005{
2006	VkStructureType						sType;
2007	const void*							pNext;
2008	VkExternalMemoryHandleTypeFlagBits	handleType;
2009	int									fd;
2010};
2011
2012struct VkMemoryFdPropertiesKHR
2013{
2014	VkStructureType	sType;
2015	void*			pNext;
2016	uint32_t		memoryTypeBits;
2017};
2018
2019struct VkMemoryGetFdInfoKHR
2020{
2021	VkStructureType						sType;
2022	const void*							pNext;
2023	VkDeviceMemory						memory;
2024	VkExternalMemoryHandleTypeFlagBits	handleType;
2025};
2026
2027struct VkWin32KeyedMutexAcquireReleaseInfoKHR
2028{
2029	VkStructureType			sType;
2030	const void*				pNext;
2031	uint32_t				acquireCount;
2032	const VkDeviceMemory*	pAcquireSyncs;
2033	const uint64_t*			pAcquireKeys;
2034	const uint32_t*			pAcquireTimeouts;
2035	uint32_t				releaseCount;
2036	const VkDeviceMemory*	pReleaseSyncs;
2037	const uint64_t*			pReleaseKeys;
2038};
2039
2040struct VkPhysicalDeviceExternalSemaphoreInfo
2041{
2042	VkStructureType							sType;
2043	const void*								pNext;
2044	VkExternalSemaphoreHandleTypeFlagBits	handleType;
2045};
2046
2047struct VkExternalSemaphoreProperties
2048{
2049	VkStructureType						sType;
2050	void*								pNext;
2051	VkExternalSemaphoreHandleTypeFlags	exportFromImportedHandleTypes;
2052	VkExternalSemaphoreHandleTypeFlags	compatibleHandleTypes;
2053	VkExternalSemaphoreFeatureFlags		externalSemaphoreFeatures;
2054};
2055
2056struct VkExportSemaphoreCreateInfo
2057{
2058	VkStructureType						sType;
2059	const void*							pNext;
2060	VkExternalSemaphoreHandleTypeFlags	handleTypes;
2061};
2062
2063struct VkImportSemaphoreWin32HandleInfoKHR
2064{
2065	VkStructureType							sType;
2066	const void*								pNext;
2067	VkSemaphore								semaphore;
2068	VkSemaphoreImportFlags					flags;
2069	VkExternalSemaphoreHandleTypeFlagBits	handleType;
2070	pt::Win32Handle							handle;
2071	pt::Win32LPCWSTR						name;
2072};
2073
2074struct VkExportSemaphoreWin32HandleInfoKHR
2075{
2076	VkStructureType					sType;
2077	const void*						pNext;
2078	pt::Win32SecurityAttributesPtr	pAttributes;
2079	uint32_t						dwAccess;
2080	pt::Win32LPCWSTR				name;
2081};
2082
2083struct VkD3D12FenceSubmitInfoKHR
2084{
2085	VkStructureType	sType;
2086	const void*		pNext;
2087	uint32_t		waitSemaphoreValuesCount;
2088	const uint64_t*	pWaitSemaphoreValues;
2089	uint32_t		signalSemaphoreValuesCount;
2090	const uint64_t*	pSignalSemaphoreValues;
2091};
2092
2093struct VkSemaphoreGetWin32HandleInfoKHR
2094{
2095	VkStructureType							sType;
2096	const void*								pNext;
2097	VkSemaphore								semaphore;
2098	VkExternalSemaphoreHandleTypeFlagBits	handleType;
2099};
2100
2101struct VkImportSemaphoreFdInfoKHR
2102{
2103	VkStructureType							sType;
2104	const void*								pNext;
2105	VkSemaphore								semaphore;
2106	VkSemaphoreImportFlags					flags;
2107	VkExternalSemaphoreHandleTypeFlagBits	handleType;
2108	int										fd;
2109};
2110
2111struct VkSemaphoreGetFdInfoKHR
2112{
2113	VkStructureType							sType;
2114	const void*								pNext;
2115	VkSemaphore								semaphore;
2116	VkExternalSemaphoreHandleTypeFlagBits	handleType;
2117};
2118
2119struct VkImportSemaphoreZirconHandleInfoFUCHSIA
2120{
2121	VkStructureType							sType;
2122	const void*								pNext;
2123	VkSemaphore								semaphore;
2124	VkSemaphoreImportFlags					flags;
2125	VkExternalSemaphoreHandleTypeFlagBits	handleType;
2126	pt::zx_handle_t							zirconHandle;
2127};
2128
2129struct VkSemaphoreGetZirconHandleInfoFUCHSIA
2130{
2131	VkStructureType							sType;
2132	const void*								pNext;
2133	VkSemaphore								semaphore;
2134	VkExternalSemaphoreHandleTypeFlagBits	handleType;
2135};
2136
2137struct VkPhysicalDeviceExternalFenceInfo
2138{
2139	VkStructureType						sType;
2140	const void*							pNext;
2141	VkExternalFenceHandleTypeFlagBits	handleType;
2142};
2143
2144struct VkExternalFenceProperties
2145{
2146	VkStructureType					sType;
2147	void*							pNext;
2148	VkExternalFenceHandleTypeFlags	exportFromImportedHandleTypes;
2149	VkExternalFenceHandleTypeFlags	compatibleHandleTypes;
2150	VkExternalFenceFeatureFlags		externalFenceFeatures;
2151};
2152
2153struct VkExportFenceCreateInfo
2154{
2155	VkStructureType					sType;
2156	const void*						pNext;
2157	VkExternalFenceHandleTypeFlags	handleTypes;
2158};
2159
2160struct VkImportFenceWin32HandleInfoKHR
2161{
2162	VkStructureType						sType;
2163	const void*							pNext;
2164	VkFence								fence;
2165	VkFenceImportFlags					flags;
2166	VkExternalFenceHandleTypeFlagBits	handleType;
2167	pt::Win32Handle						handle;
2168	pt::Win32LPCWSTR					name;
2169};
2170
2171struct VkExportFenceWin32HandleInfoKHR
2172{
2173	VkStructureType					sType;
2174	const void*						pNext;
2175	pt::Win32SecurityAttributesPtr	pAttributes;
2176	uint32_t						dwAccess;
2177	pt::Win32LPCWSTR				name;
2178};
2179
2180struct VkFenceGetWin32HandleInfoKHR
2181{
2182	VkStructureType						sType;
2183	const void*							pNext;
2184	VkFence								fence;
2185	VkExternalFenceHandleTypeFlagBits	handleType;
2186};
2187
2188struct VkImportFenceFdInfoKHR
2189{
2190	VkStructureType						sType;
2191	const void*							pNext;
2192	VkFence								fence;
2193	VkFenceImportFlags					flags;
2194	VkExternalFenceHandleTypeFlagBits	handleType;
2195	int									fd;
2196};
2197
2198struct VkFenceGetFdInfoKHR
2199{
2200	VkStructureType						sType;
2201	const void*							pNext;
2202	VkFence								fence;
2203	VkExternalFenceHandleTypeFlagBits	handleType;
2204};
2205
2206struct VkPhysicalDeviceMultiviewFeatures
2207{
2208	VkStructureType	sType;
2209	void*			pNext;
2210	VkBool32		multiview;
2211	VkBool32		multiviewGeometryShader;
2212	VkBool32		multiviewTessellationShader;
2213};
2214
2215struct VkPhysicalDeviceMultiviewProperties
2216{
2217	VkStructureType	sType;
2218	void*			pNext;
2219	uint32_t		maxMultiviewViewCount;
2220	uint32_t		maxMultiviewInstanceIndex;
2221};
2222
2223struct VkRenderPassMultiviewCreateInfo
2224{
2225	VkStructureType	sType;
2226	const void*		pNext;
2227	uint32_t		subpassCount;
2228	const uint32_t*	pViewMasks;
2229	uint32_t		dependencyCount;
2230	const int32_t*	pViewOffsets;
2231	uint32_t		correlationMaskCount;
2232	const uint32_t*	pCorrelationMasks;
2233};
2234
2235struct VkSurfaceCapabilities2EXT
2236{
2237	VkStructureType					sType;
2238	void*							pNext;
2239	uint32_t						minImageCount;
2240	uint32_t						maxImageCount;
2241	VkExtent2D						currentExtent;
2242	VkExtent2D						minImageExtent;
2243	VkExtent2D						maxImageExtent;
2244	uint32_t						maxImageArrayLayers;
2245	VkSurfaceTransformFlagsKHR		supportedTransforms;
2246	VkSurfaceTransformFlagBitsKHR	currentTransform;
2247	VkCompositeAlphaFlagsKHR		supportedCompositeAlpha;
2248	VkImageUsageFlags				supportedUsageFlags;
2249	VkSurfaceCounterFlagsEXT		supportedSurfaceCounters;
2250};
2251
2252struct VkDisplayPowerInfoEXT
2253{
2254	VkStructureType			sType;
2255	const void*				pNext;
2256	VkDisplayPowerStateEXT	powerState;
2257};
2258
2259struct VkDeviceEventInfoEXT
2260{
2261	VkStructureType			sType;
2262	const void*				pNext;
2263	VkDeviceEventTypeEXT	deviceEvent;
2264};
2265
2266struct VkDisplayEventInfoEXT
2267{
2268	VkStructureType			sType;
2269	const void*				pNext;
2270	VkDisplayEventTypeEXT	displayEvent;
2271};
2272
2273struct VkSwapchainCounterCreateInfoEXT
2274{
2275	VkStructureType				sType;
2276	const void*					pNext;
2277	VkSurfaceCounterFlagsEXT	surfaceCounters;
2278};
2279
2280struct VkPhysicalDeviceGroupProperties
2281{
2282	VkStructureType		sType;
2283	void*				pNext;
2284	uint32_t			physicalDeviceCount;
2285	VkPhysicalDevice	physicalDevices[VK_MAX_DEVICE_GROUP_SIZE];
2286	VkBool32			subsetAllocation;
2287};
2288
2289struct VkMemoryAllocateFlagsInfo
2290{
2291	VkStructureType			sType;
2292	const void*				pNext;
2293	VkMemoryAllocateFlags	flags;
2294	uint32_t				deviceMask;
2295};
2296
2297struct VkBindBufferMemoryInfo
2298{
2299	VkStructureType	sType;
2300	const void*		pNext;
2301	VkBuffer		buffer;
2302	VkDeviceMemory	memory;
2303	VkDeviceSize	memoryOffset;
2304};
2305
2306struct VkBindBufferMemoryDeviceGroupInfo
2307{
2308	VkStructureType	sType;
2309	const void*		pNext;
2310	uint32_t		deviceIndexCount;
2311	const uint32_t*	pDeviceIndices;
2312};
2313
2314struct VkBindImageMemoryInfo
2315{
2316	VkStructureType	sType;
2317	const void*		pNext;
2318	VkImage			image;
2319	VkDeviceMemory	memory;
2320	VkDeviceSize	memoryOffset;
2321};
2322
2323struct VkBindImageMemoryDeviceGroupInfo
2324{
2325	VkStructureType	sType;
2326	const void*		pNext;
2327	uint32_t		deviceIndexCount;
2328	const uint32_t*	pDeviceIndices;
2329	uint32_t		splitInstanceBindRegionCount;
2330	const VkRect2D*	pSplitInstanceBindRegions;
2331};
2332
2333struct VkDeviceGroupRenderPassBeginInfo
2334{
2335	VkStructureType	sType;
2336	const void*		pNext;
2337	uint32_t		deviceMask;
2338	uint32_t		deviceRenderAreaCount;
2339	const VkRect2D*	pDeviceRenderAreas;
2340};
2341
2342struct VkDeviceGroupCommandBufferBeginInfo
2343{
2344	VkStructureType	sType;
2345	const void*		pNext;
2346	uint32_t		deviceMask;
2347};
2348
2349struct VkDeviceGroupSubmitInfo
2350{
2351	VkStructureType	sType;
2352	const void*		pNext;
2353	uint32_t		waitSemaphoreCount;
2354	const uint32_t*	pWaitSemaphoreDeviceIndices;
2355	uint32_t		commandBufferCount;
2356	const uint32_t*	pCommandBufferDeviceMasks;
2357	uint32_t		signalSemaphoreCount;
2358	const uint32_t*	pSignalSemaphoreDeviceIndices;
2359};
2360
2361struct VkDeviceGroupBindSparseInfo
2362{
2363	VkStructureType	sType;
2364	const void*		pNext;
2365	uint32_t		resourceDeviceIndex;
2366	uint32_t		memoryDeviceIndex;
2367};
2368
2369struct VkDeviceGroupPresentCapabilitiesKHR
2370{
2371	VkStructureType						sType;
2372	void*								pNext;
2373	uint32_t							presentMask[VK_MAX_DEVICE_GROUP_SIZE];
2374	VkDeviceGroupPresentModeFlagsKHR	modes;
2375};
2376
2377struct VkImageSwapchainCreateInfoKHR
2378{
2379	VkStructureType	sType;
2380	const void*		pNext;
2381	VkSwapchainKHR	swapchain;
2382};
2383
2384struct VkBindImageMemorySwapchainInfoKHR
2385{
2386	VkStructureType	sType;
2387	const void*		pNext;
2388	VkSwapchainKHR	swapchain;
2389	uint32_t		imageIndex;
2390};
2391
2392struct VkAcquireNextImageInfoKHR
2393{
2394	VkStructureType	sType;
2395	const void*		pNext;
2396	VkSwapchainKHR	swapchain;
2397	uint64_t		timeout;
2398	VkSemaphore		semaphore;
2399	VkFence			fence;
2400	uint32_t		deviceMask;
2401};
2402
2403struct VkDeviceGroupPresentInfoKHR
2404{
2405	VkStructureType						sType;
2406	const void*							pNext;
2407	uint32_t							swapchainCount;
2408	const uint32_t*						pDeviceMasks;
2409	VkDeviceGroupPresentModeFlagBitsKHR	mode;
2410};
2411
2412struct VkDeviceGroupDeviceCreateInfo
2413{
2414	VkStructureType			sType;
2415	const void*				pNext;
2416	uint32_t				physicalDeviceCount;
2417	const VkPhysicalDevice*	pPhysicalDevices;
2418};
2419
2420struct VkDeviceGroupSwapchainCreateInfoKHR
2421{
2422	VkStructureType						sType;
2423	const void*							pNext;
2424	VkDeviceGroupPresentModeFlagsKHR	modes;
2425};
2426
2427struct VkDescriptorUpdateTemplateEntry
2428{
2429	uint32_t			dstBinding;
2430	uint32_t			dstArrayElement;
2431	uint32_t			descriptorCount;
2432	VkDescriptorType	descriptorType;
2433	size_t				offset;
2434	size_t				stride;
2435};
2436
2437struct VkDescriptorUpdateTemplateCreateInfo
2438{
2439	VkStructureType							sType;
2440	const void*								pNext;
2441	VkDescriptorUpdateTemplateCreateFlags	flags;
2442	uint32_t								descriptorUpdateEntryCount;
2443	const VkDescriptorUpdateTemplateEntry*	pDescriptorUpdateEntries;
2444	VkDescriptorUpdateTemplateType			templateType;
2445	VkDescriptorSetLayout					descriptorSetLayout;
2446	VkPipelineBindPoint						pipelineBindPoint;
2447	VkPipelineLayout						pipelineLayout;
2448	uint32_t								set;
2449};
2450
2451struct VkXYColorEXT
2452{
2453	float	x;
2454	float	y;
2455};
2456
2457struct VkPhysicalDevicePresentIdFeaturesKHR
2458{
2459	VkStructureType	sType;
2460	void*			pNext;
2461	VkBool32		presentId;
2462};
2463
2464struct VkPresentIdKHR
2465{
2466	VkStructureType	sType;
2467	const void*		pNext;
2468	uint32_t		swapchainCount;
2469	const uint64_t*	pPresentIds;
2470};
2471
2472struct VkPhysicalDevicePresentWaitFeaturesKHR
2473{
2474	VkStructureType	sType;
2475	void*			pNext;
2476	VkBool32		presentWait;
2477};
2478
2479struct VkHdrMetadataEXT
2480{
2481	VkStructureType	sType;
2482	const void*		pNext;
2483	VkXYColorEXT	displayPrimaryRed;
2484	VkXYColorEXT	displayPrimaryGreen;
2485	VkXYColorEXT	displayPrimaryBlue;
2486	VkXYColorEXT	whitePoint;
2487	float			maxLuminance;
2488	float			minLuminance;
2489	float			maxContentLightLevel;
2490	float			maxFrameAverageLightLevel;
2491};
2492
2493struct VkDisplayNativeHdrSurfaceCapabilitiesAMD
2494{
2495	VkStructureType	sType;
2496	void*			pNext;
2497	VkBool32		localDimmingSupport;
2498};
2499
2500struct VkSwapchainDisplayNativeHdrCreateInfoAMD
2501{
2502	VkStructureType	sType;
2503	const void*		pNext;
2504	VkBool32		localDimmingEnable;
2505};
2506
2507struct VkRefreshCycleDurationGOOGLE
2508{
2509	uint64_t	refreshDuration;
2510};
2511
2512struct VkPastPresentationTimingGOOGLE
2513{
2514	uint32_t	presentID;
2515	uint64_t	desiredPresentTime;
2516	uint64_t	actualPresentTime;
2517	uint64_t	earliestPresentTime;
2518	uint64_t	presentMargin;
2519};
2520
2521struct VkPresentTimeGOOGLE
2522{
2523	uint32_t	presentID;
2524	uint64_t	desiredPresentTime;
2525};
2526
2527struct VkPresentTimesInfoGOOGLE
2528{
2529	VkStructureType				sType;
2530	const void*					pNext;
2531	uint32_t					swapchainCount;
2532	const VkPresentTimeGOOGLE*	pTimes;
2533};
2534
2535struct VkIOSSurfaceCreateInfoMVK
2536{
2537	VkStructureType				sType;
2538	const void*					pNext;
2539	VkIOSSurfaceCreateFlagsMVK	flags;
2540	const void*					pView;
2541};
2542
2543struct VkMacOSSurfaceCreateInfoMVK
2544{
2545	VkStructureType					sType;
2546	const void*						pNext;
2547	VkMacOSSurfaceCreateFlagsMVK	flags;
2548	const void*						pView;
2549};
2550
2551struct VkMetalSurfaceCreateInfoEXT
2552{
2553	VkStructureType					sType;
2554	const void*						pNext;
2555	VkMetalSurfaceCreateFlagsEXT	flags;
2556	const pt::CAMetalLayer*			pLayer;
2557};
2558
2559struct VkViewportWScalingNV
2560{
2561	float	xcoeff;
2562	float	ycoeff;
2563};
2564
2565struct VkPipelineViewportWScalingStateCreateInfoNV
2566{
2567	VkStructureType				sType;
2568	const void*					pNext;
2569	VkBool32					viewportWScalingEnable;
2570	uint32_t					viewportCount;
2571	const VkViewportWScalingNV*	pViewportWScalings;
2572};
2573
2574struct VkViewportSwizzleNV
2575{
2576	VkViewportCoordinateSwizzleNV	x;
2577	VkViewportCoordinateSwizzleNV	y;
2578	VkViewportCoordinateSwizzleNV	z;
2579	VkViewportCoordinateSwizzleNV	w;
2580};
2581
2582struct VkPipelineViewportSwizzleStateCreateInfoNV
2583{
2584	VkStructureType								sType;
2585	const void*									pNext;
2586	VkPipelineViewportSwizzleStateCreateFlagsNV	flags;
2587	uint32_t									viewportCount;
2588	const VkViewportSwizzleNV*					pViewportSwizzles;
2589};
2590
2591struct VkPhysicalDeviceDiscardRectanglePropertiesEXT
2592{
2593	VkStructureType	sType;
2594	void*			pNext;
2595	uint32_t		maxDiscardRectangles;
2596};
2597
2598struct VkPipelineDiscardRectangleStateCreateInfoEXT
2599{
2600	VkStructureType									sType;
2601	const void*										pNext;
2602	VkPipelineDiscardRectangleStateCreateFlagsEXT	flags;
2603	VkDiscardRectangleModeEXT						discardRectangleMode;
2604	uint32_t										discardRectangleCount;
2605	const VkRect2D*									pDiscardRectangles;
2606};
2607
2608struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
2609{
2610	VkStructureType	sType;
2611	void*			pNext;
2612	VkBool32		perViewPositionAllComponents;
2613};
2614
2615struct VkInputAttachmentAspectReference
2616{
2617	uint32_t			subpass;
2618	uint32_t			inputAttachmentIndex;
2619	VkImageAspectFlags	aspectMask;
2620};
2621
2622struct VkRenderPassInputAttachmentAspectCreateInfo
2623{
2624	VkStructureType							sType;
2625	const void*								pNext;
2626	uint32_t								aspectReferenceCount;
2627	const VkInputAttachmentAspectReference*	pAspectReferences;
2628};
2629
2630struct VkPhysicalDeviceSurfaceInfo2KHR
2631{
2632	VkStructureType	sType;
2633	const void*		pNext;
2634	VkSurfaceKHR	surface;
2635};
2636
2637struct VkSurfaceCapabilities2KHR
2638{
2639	VkStructureType				sType;
2640	void*						pNext;
2641	VkSurfaceCapabilitiesKHR	surfaceCapabilities;
2642};
2643
2644struct VkSurfaceFormat2KHR
2645{
2646	VkStructureType		sType;
2647	void*				pNext;
2648	VkSurfaceFormatKHR	surfaceFormat;
2649};
2650
2651struct VkDisplayProperties2KHR
2652{
2653	VkStructureType			sType;
2654	void*					pNext;
2655	VkDisplayPropertiesKHR	displayProperties;
2656};
2657
2658struct VkDisplayPlaneProperties2KHR
2659{
2660	VkStructureType				sType;
2661	void*						pNext;
2662	VkDisplayPlanePropertiesKHR	displayPlaneProperties;
2663};
2664
2665struct VkDisplayModeProperties2KHR
2666{
2667	VkStructureType				sType;
2668	void*						pNext;
2669	VkDisplayModePropertiesKHR	displayModeProperties;
2670};
2671
2672struct VkDisplayPlaneInfo2KHR
2673{
2674	VkStructureType		sType;
2675	const void*			pNext;
2676	VkDisplayModeKHR	mode;
2677	uint32_t			planeIndex;
2678};
2679
2680struct VkDisplayPlaneCapabilities2KHR
2681{
2682	VkStructureType					sType;
2683	void*							pNext;
2684	VkDisplayPlaneCapabilitiesKHR	capabilities;
2685};
2686
2687struct VkSharedPresentSurfaceCapabilitiesKHR
2688{
2689	VkStructureType		sType;
2690	void*				pNext;
2691	VkImageUsageFlags	sharedPresentSupportedUsageFlags;
2692};
2693
2694struct VkPhysicalDevice16BitStorageFeatures
2695{
2696	VkStructureType	sType;
2697	void*			pNext;
2698	VkBool32		storageBuffer16BitAccess;
2699	VkBool32		uniformAndStorageBuffer16BitAccess;
2700	VkBool32		storagePushConstant16;
2701	VkBool32		storageInputOutput16;
2702};
2703
2704struct VkPhysicalDeviceSubgroupProperties
2705{
2706	VkStructureType			sType;
2707	void*					pNext;
2708	uint32_t				subgroupSize;
2709	VkShaderStageFlags		supportedStages;
2710	VkSubgroupFeatureFlags	supportedOperations;
2711	VkBool32				quadOperationsInAllStages;
2712};
2713
2714struct VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures
2715{
2716	VkStructureType	sType;
2717	void*			pNext;
2718	VkBool32		shaderSubgroupExtendedTypes;
2719};
2720
2721struct VkBufferMemoryRequirementsInfo2
2722{
2723	VkStructureType	sType;
2724	const void*		pNext;
2725	VkBuffer		buffer;
2726};
2727
2728struct VkDeviceBufferMemoryRequirements
2729{
2730	VkStructureType				sType;
2731	const void*					pNext;
2732	const VkBufferCreateInfo*	pCreateInfo;
2733};
2734
2735struct VkImageMemoryRequirementsInfo2
2736{
2737	VkStructureType	sType;
2738	const void*		pNext;
2739	VkImage			image;
2740};
2741
2742struct VkImageSparseMemoryRequirementsInfo2
2743{
2744	VkStructureType	sType;
2745	const void*		pNext;
2746	VkImage			image;
2747};
2748
2749struct VkDeviceImageMemoryRequirements
2750{
2751	VkStructureType				sType;
2752	const void*					pNext;
2753	const VkImageCreateInfo*	pCreateInfo;
2754	VkImageAspectFlagBits		planeAspect;
2755};
2756
2757struct VkMemoryRequirements2
2758{
2759	VkStructureType			sType;
2760	void*					pNext;
2761	VkMemoryRequirements	memoryRequirements;
2762};
2763
2764struct VkSparseImageMemoryRequirements2
2765{
2766	VkStructureType					sType;
2767	void*							pNext;
2768	VkSparseImageMemoryRequirements	memoryRequirements;
2769};
2770
2771struct VkPhysicalDevicePointClippingProperties
2772{
2773	VkStructureType			sType;
2774	void*					pNext;
2775	VkPointClippingBehavior	pointClippingBehavior;
2776};
2777
2778struct VkMemoryDedicatedRequirements
2779{
2780	VkStructureType	sType;
2781	void*			pNext;
2782	VkBool32		prefersDedicatedAllocation;
2783	VkBool32		requiresDedicatedAllocation;
2784};
2785
2786struct VkMemoryDedicatedAllocateInfo
2787{
2788	VkStructureType	sType;
2789	const void*		pNext;
2790	VkImage			image;
2791	VkBuffer		buffer;
2792};
2793
2794struct VkImageViewUsageCreateInfo
2795{
2796	VkStructureType		sType;
2797	const void*			pNext;
2798	VkImageUsageFlags	usage;
2799};
2800
2801struct VkPipelineTessellationDomainOriginStateCreateInfo
2802{
2803	VkStructureType				sType;
2804	const void*					pNext;
2805	VkTessellationDomainOrigin	domainOrigin;
2806};
2807
2808struct VkSamplerYcbcrConversionInfo
2809{
2810	VkStructureType				sType;
2811	const void*					pNext;
2812	VkSamplerYcbcrConversion	conversion;
2813};
2814
2815struct VkSamplerYcbcrConversionCreateInfo
2816{
2817	VkStructureType					sType;
2818	const void*						pNext;
2819	VkFormat						format;
2820	VkSamplerYcbcrModelConversion	ycbcrModel;
2821	VkSamplerYcbcrRange				ycbcrRange;
2822	VkComponentMapping				components;
2823	VkChromaLocation				xChromaOffset;
2824	VkChromaLocation				yChromaOffset;
2825	VkFilter						chromaFilter;
2826	VkBool32						forceExplicitReconstruction;
2827};
2828
2829struct VkBindImagePlaneMemoryInfo
2830{
2831	VkStructureType			sType;
2832	const void*				pNext;
2833	VkImageAspectFlagBits	planeAspect;
2834};
2835
2836struct VkImagePlaneMemoryRequirementsInfo
2837{
2838	VkStructureType			sType;
2839	const void*				pNext;
2840	VkImageAspectFlagBits	planeAspect;
2841};
2842
2843struct VkPhysicalDeviceSamplerYcbcrConversionFeatures
2844{
2845	VkStructureType	sType;
2846	void*			pNext;
2847	VkBool32		samplerYcbcrConversion;
2848};
2849
2850struct VkSamplerYcbcrConversionImageFormatProperties
2851{
2852	VkStructureType	sType;
2853	void*			pNext;
2854	uint32_t		combinedImageSamplerDescriptorCount;
2855};
2856
2857struct VkTextureLODGatherFormatPropertiesAMD
2858{
2859	VkStructureType	sType;
2860	void*			pNext;
2861	VkBool32		supportsTextureGatherLODBiasAMD;
2862};
2863
2864struct VkConditionalRenderingBeginInfoEXT
2865{
2866	VkStructureType					sType;
2867	const void*						pNext;
2868	VkBuffer						buffer;
2869	VkDeviceSize					offset;
2870	VkConditionalRenderingFlagsEXT	flags;
2871};
2872
2873struct VkProtectedSubmitInfo
2874{
2875	VkStructureType	sType;
2876	const void*		pNext;
2877	VkBool32		protectedSubmit;
2878};
2879
2880struct VkPhysicalDeviceProtectedMemoryFeatures
2881{
2882	VkStructureType	sType;
2883	void*			pNext;
2884	VkBool32		protectedMemory;
2885};
2886
2887struct VkPhysicalDeviceProtectedMemoryProperties
2888{
2889	VkStructureType	sType;
2890	void*			pNext;
2891	VkBool32		protectedNoFault;
2892};
2893
2894struct VkDeviceQueueInfo2
2895{
2896	VkStructureType				sType;
2897	const void*					pNext;
2898	VkDeviceQueueCreateFlags	flags;
2899	uint32_t					queueFamilyIndex;
2900	uint32_t					queueIndex;
2901};
2902
2903struct VkPipelineCoverageToColorStateCreateInfoNV
2904{
2905	VkStructureType								sType;
2906	const void*									pNext;
2907	VkPipelineCoverageToColorStateCreateFlagsNV	flags;
2908	VkBool32									coverageToColorEnable;
2909	uint32_t									coverageToColorLocation;
2910};
2911
2912struct VkPhysicalDeviceSamplerFilterMinmaxProperties
2913{
2914	VkStructureType	sType;
2915	void*			pNext;
2916	VkBool32		filterMinmaxSingleComponentFormats;
2917	VkBool32		filterMinmaxImageComponentMapping;
2918};
2919
2920struct VkSampleLocationEXT
2921{
2922	float	x;
2923	float	y;
2924};
2925
2926struct VkSampleLocationsInfoEXT
2927{
2928	VkStructureType				sType;
2929	const void*					pNext;
2930	VkSampleCountFlagBits		sampleLocationsPerPixel;
2931	VkExtent2D					sampleLocationGridSize;
2932	uint32_t					sampleLocationsCount;
2933	const VkSampleLocationEXT*	pSampleLocations;
2934};
2935
2936struct VkAttachmentSampleLocationsEXT
2937{
2938	uint32_t					attachmentIndex;
2939	VkSampleLocationsInfoEXT	sampleLocationsInfo;
2940};
2941
2942struct VkSubpassSampleLocationsEXT
2943{
2944	uint32_t					subpassIndex;
2945	VkSampleLocationsInfoEXT	sampleLocationsInfo;
2946};
2947
2948struct VkRenderPassSampleLocationsBeginInfoEXT
2949{
2950	VkStructureType							sType;
2951	const void*								pNext;
2952	uint32_t								attachmentInitialSampleLocationsCount;
2953	const VkAttachmentSampleLocationsEXT*	pAttachmentInitialSampleLocations;
2954	uint32_t								postSubpassSampleLocationsCount;
2955	const VkSubpassSampleLocationsEXT*		pPostSubpassSampleLocations;
2956};
2957
2958struct VkPipelineSampleLocationsStateCreateInfoEXT
2959{
2960	VkStructureType				sType;
2961	const void*					pNext;
2962	VkBool32					sampleLocationsEnable;
2963	VkSampleLocationsInfoEXT	sampleLocationsInfo;
2964};
2965
2966struct VkPhysicalDeviceSampleLocationsPropertiesEXT
2967{
2968	VkStructureType		sType;
2969	void*				pNext;
2970	VkSampleCountFlags	sampleLocationSampleCounts;
2971	VkExtent2D			maxSampleLocationGridSize;
2972	float				sampleLocationCoordinateRange[2];
2973	uint32_t			sampleLocationSubPixelBits;
2974	VkBool32			variableSampleLocations;
2975};
2976
2977struct VkMultisamplePropertiesEXT
2978{
2979	VkStructureType	sType;
2980	void*			pNext;
2981	VkExtent2D		maxSampleLocationGridSize;
2982};
2983
2984struct VkSamplerReductionModeCreateInfo
2985{
2986	VkStructureType			sType;
2987	const void*				pNext;
2988	VkSamplerReductionMode	reductionMode;
2989};
2990
2991struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
2992{
2993	VkStructureType	sType;
2994	void*			pNext;
2995	VkBool32		advancedBlendCoherentOperations;
2996};
2997
2998struct VkPhysicalDeviceMultiDrawFeaturesEXT
2999{
3000	VkStructureType	sType;
3001	void*			pNext;
3002	VkBool32		multiDraw;
3003};
3004
3005struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
3006{
3007	VkStructureType	sType;
3008	void*			pNext;
3009	uint32_t		advancedBlendMaxColorAttachments;
3010	VkBool32		advancedBlendIndependentBlend;
3011	VkBool32		advancedBlendNonPremultipliedSrcColor;
3012	VkBool32		advancedBlendNonPremultipliedDstColor;
3013	VkBool32		advancedBlendCorrelatedOverlap;
3014	VkBool32		advancedBlendAllOperations;
3015};
3016
3017struct VkPipelineColorBlendAdvancedStateCreateInfoEXT
3018{
3019	VkStructureType		sType;
3020	const void*			pNext;
3021	VkBool32			srcPremultiplied;
3022	VkBool32			dstPremultiplied;
3023	VkBlendOverlapEXT	blendOverlap;
3024};
3025
3026struct VkPhysicalDeviceInlineUniformBlockFeatures
3027{
3028	VkStructureType	sType;
3029	void*			pNext;
3030	VkBool32		inlineUniformBlock;
3031	VkBool32		descriptorBindingInlineUniformBlockUpdateAfterBind;
3032};
3033
3034struct VkPhysicalDeviceInlineUniformBlockProperties
3035{
3036	VkStructureType	sType;
3037	void*			pNext;
3038	uint32_t		maxInlineUniformBlockSize;
3039	uint32_t		maxPerStageDescriptorInlineUniformBlocks;
3040	uint32_t		maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks;
3041	uint32_t		maxDescriptorSetInlineUniformBlocks;
3042	uint32_t		maxDescriptorSetUpdateAfterBindInlineUniformBlocks;
3043};
3044
3045struct VkWriteDescriptorSetInlineUniformBlock
3046{
3047	VkStructureType	sType;
3048	const void*		pNext;
3049	uint32_t		dataSize;
3050	const void*		pData;
3051};
3052
3053struct VkDescriptorPoolInlineUniformBlockCreateInfo
3054{
3055	VkStructureType	sType;
3056	const void*		pNext;
3057	uint32_t		maxInlineUniformBlockBindings;
3058};
3059
3060struct VkPipelineCoverageModulationStateCreateInfoNV
3061{
3062	VkStructureType									sType;
3063	const void*										pNext;
3064	VkPipelineCoverageModulationStateCreateFlagsNV	flags;
3065	VkCoverageModulationModeNV						coverageModulationMode;
3066	VkBool32										coverageModulationTableEnable;
3067	uint32_t										coverageModulationTableCount;
3068	const float*									pCoverageModulationTable;
3069};
3070
3071struct VkImageFormatListCreateInfo
3072{
3073	VkStructureType	sType;
3074	const void*		pNext;
3075	uint32_t		viewFormatCount;
3076	const VkFormat*	pViewFormats;
3077};
3078
3079struct VkValidationCacheCreateInfoEXT
3080{
3081	VkStructureType					sType;
3082	const void*						pNext;
3083	VkValidationCacheCreateFlagsEXT	flags;
3084	size_t							initialDataSize;
3085	const void*						pInitialData;
3086};
3087
3088struct VkShaderModuleValidationCacheCreateInfoEXT
3089{
3090	VkStructureType			sType;
3091	const void*				pNext;
3092	VkValidationCacheEXT	validationCache;
3093};
3094
3095struct VkPhysicalDeviceMaintenance3Properties
3096{
3097	VkStructureType	sType;
3098	void*			pNext;
3099	uint32_t		maxPerSetDescriptors;
3100	VkDeviceSize	maxMemoryAllocationSize;
3101};
3102
3103struct VkPhysicalDeviceMaintenance4Features
3104{
3105	VkStructureType	sType;
3106	void*			pNext;
3107	VkBool32		maintenance4;
3108};
3109
3110struct VkPhysicalDeviceMaintenance4Properties
3111{
3112	VkStructureType	sType;
3113	void*			pNext;
3114	VkDeviceSize	maxBufferSize;
3115};
3116
3117struct VkDescriptorSetLayoutSupport
3118{
3119	VkStructureType	sType;
3120	void*			pNext;
3121	VkBool32		supported;
3122};
3123
3124struct VkPhysicalDeviceShaderDrawParametersFeatures
3125{
3126	VkStructureType	sType;
3127	void*			pNext;
3128	VkBool32		shaderDrawParameters;
3129};
3130
3131struct VkPhysicalDeviceShaderFloat16Int8Features
3132{
3133	VkStructureType	sType;
3134	void*			pNext;
3135	VkBool32		shaderFloat16;
3136	VkBool32		shaderInt8;
3137};
3138
3139struct VkPhysicalDeviceFloatControlsProperties
3140{
3141	VkStructureType						sType;
3142	void*								pNext;
3143	VkShaderFloatControlsIndependence	denormBehaviorIndependence;
3144	VkShaderFloatControlsIndependence	roundingModeIndependence;
3145	VkBool32							shaderSignedZeroInfNanPreserveFloat16;
3146	VkBool32							shaderSignedZeroInfNanPreserveFloat32;
3147	VkBool32							shaderSignedZeroInfNanPreserveFloat64;
3148	VkBool32							shaderDenormPreserveFloat16;
3149	VkBool32							shaderDenormPreserveFloat32;
3150	VkBool32							shaderDenormPreserveFloat64;
3151	VkBool32							shaderDenormFlushToZeroFloat16;
3152	VkBool32							shaderDenormFlushToZeroFloat32;
3153	VkBool32							shaderDenormFlushToZeroFloat64;
3154	VkBool32							shaderRoundingModeRTEFloat16;
3155	VkBool32							shaderRoundingModeRTEFloat32;
3156	VkBool32							shaderRoundingModeRTEFloat64;
3157	VkBool32							shaderRoundingModeRTZFloat16;
3158	VkBool32							shaderRoundingModeRTZFloat32;
3159	VkBool32							shaderRoundingModeRTZFloat64;
3160};
3161
3162struct VkPhysicalDeviceHostQueryResetFeatures
3163{
3164	VkStructureType	sType;
3165	void*			pNext;
3166	VkBool32		hostQueryReset;
3167};
3168
3169struct VkNativeBufferOpenHarmony
3170{
3171	VkStructureType	sType;
3172	const void*		pNext;
3173	const void*		handle;
3174};
3175
3176struct VkSwapchainImageCreateInfoOpenHarmony
3177{
3178	VkStructureType							sType;
3179	const void*								pNext;
3180	VkSwapchainImageUsageFlagsOpenHarmony	usage;
3181};
3182
3183struct VkPhysicalDevicePresentationPropertiesOpenHarmony
3184{
3185	VkStructureType	sType;
3186	const void*		pNext;
3187	VkBool32		sharedImage;
3188};
3189
3190struct VkShaderResourceUsageAMD
3191{
3192	uint32_t	numUsedVgprs;
3193	uint32_t	numUsedSgprs;
3194	uint32_t	ldsSizePerLocalWorkGroup;
3195	size_t		ldsUsageSizeInBytes;
3196	size_t		scratchMemUsageInBytes;
3197};
3198
3199struct VkShaderStatisticsInfoAMD
3200{
3201	VkShaderStageFlags			shaderStageMask;
3202	VkShaderResourceUsageAMD	resourceUsage;
3203	uint32_t					numPhysicalVgprs;
3204	uint32_t					numPhysicalSgprs;
3205	uint32_t					numAvailableVgprs;
3206	uint32_t					numAvailableSgprs;
3207	uint32_t					computeWorkGroupSize[3];
3208};
3209
3210struct VkDeviceQueueGlobalPriorityCreateInfoKHR
3211{
3212	VkStructureType				sType;
3213	const void*					pNext;
3214	VkQueueGlobalPriorityKHR	globalPriority;
3215};
3216
3217struct VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR
3218{
3219	VkStructureType	sType;
3220	void*			pNext;
3221	VkBool32		globalPriorityQuery;
3222};
3223
3224struct VkQueueFamilyGlobalPriorityPropertiesKHR
3225{
3226	VkStructureType				sType;
3227	void*						pNext;
3228	uint32_t					priorityCount;
3229	VkQueueGlobalPriorityKHR	priorities[VK_MAX_GLOBAL_PRIORITY_SIZE_KHR];
3230};
3231
3232struct VkDebugUtilsObjectNameInfoEXT
3233{
3234	VkStructureType	sType;
3235	const void*		pNext;
3236	VkObjectType	objectType;
3237	uint64_t		objectHandle;
3238	const char*		pObjectName;
3239};
3240
3241struct VkDebugUtilsObjectTagInfoEXT
3242{
3243	VkStructureType	sType;
3244	const void*		pNext;
3245	VkObjectType	objectType;
3246	uint64_t		objectHandle;
3247	uint64_t		tagName;
3248	size_t			tagSize;
3249	const void*		pTag;
3250};
3251
3252struct VkDebugUtilsLabelEXT
3253{
3254	VkStructureType	sType;
3255	const void*		pNext;
3256	const char*		pLabelName;
3257	float			color[4];
3258};
3259
3260struct VkDebugUtilsMessengerCreateInfoEXT
3261{
3262	VkStructureType							sType;
3263	const void*								pNext;
3264	VkDebugUtilsMessengerCreateFlagsEXT		flags;
3265	VkDebugUtilsMessageSeverityFlagsEXT		messageSeverity;
3266	VkDebugUtilsMessageTypeFlagsEXT			messageType;
3267	PFN_vkDebugUtilsMessengerCallbackEXT	pfnUserCallback;
3268	void*									pUserData;
3269};
3270
3271struct VkDebugUtilsMessengerCallbackDataEXT
3272{
3273	VkStructureType								sType;
3274	const void*									pNext;
3275	VkDebugUtilsMessengerCallbackDataFlagsEXT	flags;
3276	const char*									pMessageIdName;
3277	int32_t										messageIdNumber;
3278	const char*									pMessage;
3279	uint32_t									queueLabelCount;
3280	const VkDebugUtilsLabelEXT*					pQueueLabels;
3281	uint32_t									cmdBufLabelCount;
3282	const VkDebugUtilsLabelEXT*					pCmdBufLabels;
3283	uint32_t									objectCount;
3284	const VkDebugUtilsObjectNameInfoEXT*		pObjects;
3285};
3286
3287struct VkPhysicalDeviceDeviceMemoryReportFeaturesEXT
3288{
3289	VkStructureType	sType;
3290	void*			pNext;
3291	VkBool32		deviceMemoryReport;
3292};
3293
3294struct VkDeviceDeviceMemoryReportCreateInfoEXT
3295{
3296	VkStructureType						sType;
3297	const void*							pNext;
3298	VkDeviceMemoryReportFlagsEXT		flags;
3299	PFN_vkDeviceMemoryReportCallbackEXT	pfnUserCallback;
3300	void*								pUserData;
3301};
3302
3303struct VkDeviceMemoryReportCallbackDataEXT
3304{
3305	VkStructureType						sType;
3306	void*								pNext;
3307	VkDeviceMemoryReportFlagsEXT		flags;
3308	VkDeviceMemoryReportEventTypeEXT	type;
3309	uint64_t							memoryObjectId;
3310	VkDeviceSize						size;
3311	VkObjectType						objectType;
3312	uint64_t							objectHandle;
3313	uint32_t							heapIndex;
3314};
3315
3316struct VkImportMemoryHostPointerInfoEXT
3317{
3318	VkStructureType						sType;
3319	const void*							pNext;
3320	VkExternalMemoryHandleTypeFlagBits	handleType;
3321	void*								pHostPointer;
3322};
3323
3324struct VkMemoryHostPointerPropertiesEXT
3325{
3326	VkStructureType	sType;
3327	void*			pNext;
3328	uint32_t		memoryTypeBits;
3329};
3330
3331struct VkPhysicalDeviceExternalMemoryHostPropertiesEXT
3332{
3333	VkStructureType	sType;
3334	void*			pNext;
3335	VkDeviceSize	minImportedHostPointerAlignment;
3336};
3337
3338struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT
3339{
3340	VkStructureType	sType;
3341	void*			pNext;
3342	float			primitiveOverestimationSize;
3343	float			maxExtraPrimitiveOverestimationSize;
3344	float			extraPrimitiveOverestimationSizeGranularity;
3345	VkBool32		primitiveUnderestimation;
3346	VkBool32		conservativePointAndLineRasterization;
3347	VkBool32		degenerateTrianglesRasterized;
3348	VkBool32		degenerateLinesRasterized;
3349	VkBool32		fullyCoveredFragmentShaderInputVariable;
3350	VkBool32		conservativeRasterizationPostDepthCoverage;
3351};
3352
3353struct VkCalibratedTimestampInfoEXT
3354{
3355	VkStructureType	sType;
3356	const void*		pNext;
3357	VkTimeDomainEXT	timeDomain;
3358};
3359
3360struct VkPhysicalDeviceShaderCorePropertiesAMD
3361{
3362	VkStructureType	sType;
3363	void*			pNext;
3364	uint32_t		shaderEngineCount;
3365	uint32_t		shaderArraysPerEngineCount;
3366	uint32_t		computeUnitsPerShaderArray;
3367	uint32_t		simdPerComputeUnit;
3368	uint32_t		wavefrontsPerSimd;
3369	uint32_t		wavefrontSize;
3370	uint32_t		sgprsPerSimd;
3371	uint32_t		minSgprAllocation;
3372	uint32_t		maxSgprAllocation;
3373	uint32_t		sgprAllocationGranularity;
3374	uint32_t		vgprsPerSimd;
3375	uint32_t		minVgprAllocation;
3376	uint32_t		maxVgprAllocation;
3377	uint32_t		vgprAllocationGranularity;
3378};
3379
3380struct VkPhysicalDeviceShaderCoreProperties2AMD
3381{
3382	VkStructureType					sType;
3383	void*							pNext;
3384	VkShaderCorePropertiesFlagsAMD	shaderCoreFeatures;
3385	uint32_t						activeComputeUnitCount;
3386};
3387
3388struct VkPipelineRasterizationConservativeStateCreateInfoEXT
3389{
3390	VkStructureType											sType;
3391	const void*												pNext;
3392	VkPipelineRasterizationConservativeStateCreateFlagsEXT	flags;
3393	VkConservativeRasterizationModeEXT						conservativeRasterizationMode;
3394	float													extraPrimitiveOverestimationSize;
3395};
3396
3397struct VkPhysicalDeviceDescriptorIndexingFeatures
3398{
3399	VkStructureType	sType;
3400	void*			pNext;
3401	VkBool32		shaderInputAttachmentArrayDynamicIndexing;
3402	VkBool32		shaderUniformTexelBufferArrayDynamicIndexing;
3403	VkBool32		shaderStorageTexelBufferArrayDynamicIndexing;
3404	VkBool32		shaderUniformBufferArrayNonUniformIndexing;
3405	VkBool32		shaderSampledImageArrayNonUniformIndexing;
3406	VkBool32		shaderStorageBufferArrayNonUniformIndexing;
3407	VkBool32		shaderStorageImageArrayNonUniformIndexing;
3408	VkBool32		shaderInputAttachmentArrayNonUniformIndexing;
3409	VkBool32		shaderUniformTexelBufferArrayNonUniformIndexing;
3410	VkBool32		shaderStorageTexelBufferArrayNonUniformIndexing;
3411	VkBool32		descriptorBindingUniformBufferUpdateAfterBind;
3412	VkBool32		descriptorBindingSampledImageUpdateAfterBind;
3413	VkBool32		descriptorBindingStorageImageUpdateAfterBind;
3414	VkBool32		descriptorBindingStorageBufferUpdateAfterBind;
3415	VkBool32		descriptorBindingUniformTexelBufferUpdateAfterBind;
3416	VkBool32		descriptorBindingStorageTexelBufferUpdateAfterBind;
3417	VkBool32		descriptorBindingUpdateUnusedWhilePending;
3418	VkBool32		descriptorBindingPartiallyBound;
3419	VkBool32		descriptorBindingVariableDescriptorCount;
3420	VkBool32		runtimeDescriptorArray;
3421};
3422
3423struct VkPhysicalDeviceDescriptorIndexingProperties
3424{
3425	VkStructureType	sType;
3426	void*			pNext;
3427	uint32_t		maxUpdateAfterBindDescriptorsInAllPools;
3428	VkBool32		shaderUniformBufferArrayNonUniformIndexingNative;
3429	VkBool32		shaderSampledImageArrayNonUniformIndexingNative;
3430	VkBool32		shaderStorageBufferArrayNonUniformIndexingNative;
3431	VkBool32		shaderStorageImageArrayNonUniformIndexingNative;
3432	VkBool32		shaderInputAttachmentArrayNonUniformIndexingNative;
3433	VkBool32		robustBufferAccessUpdateAfterBind;
3434	VkBool32		quadDivergentImplicitLod;
3435	uint32_t		maxPerStageDescriptorUpdateAfterBindSamplers;
3436	uint32_t		maxPerStageDescriptorUpdateAfterBindUniformBuffers;
3437	uint32_t		maxPerStageDescriptorUpdateAfterBindStorageBuffers;
3438	uint32_t		maxPerStageDescriptorUpdateAfterBindSampledImages;
3439	uint32_t		maxPerStageDescriptorUpdateAfterBindStorageImages;
3440	uint32_t		maxPerStageDescriptorUpdateAfterBindInputAttachments;
3441	uint32_t		maxPerStageUpdateAfterBindResources;
3442	uint32_t		maxDescriptorSetUpdateAfterBindSamplers;
3443	uint32_t		maxDescriptorSetUpdateAfterBindUniformBuffers;
3444	uint32_t		maxDescriptorSetUpdateAfterBindUniformBuffersDynamic;
3445	uint32_t		maxDescriptorSetUpdateAfterBindStorageBuffers;
3446	uint32_t		maxDescriptorSetUpdateAfterBindStorageBuffersDynamic;
3447	uint32_t		maxDescriptorSetUpdateAfterBindSampledImages;
3448	uint32_t		maxDescriptorSetUpdateAfterBindStorageImages;
3449	uint32_t		maxDescriptorSetUpdateAfterBindInputAttachments;
3450};
3451
3452struct VkDescriptorSetLayoutBindingFlagsCreateInfo
3453{
3454	VkStructureType					sType;
3455	const void*						pNext;
3456	uint32_t						bindingCount;
3457	const VkDescriptorBindingFlags*	pBindingFlags;
3458};
3459
3460struct VkDescriptorSetVariableDescriptorCountAllocateInfo
3461{
3462	VkStructureType	sType;
3463	const void*		pNext;
3464	uint32_t		descriptorSetCount;
3465	const uint32_t*	pDescriptorCounts;
3466};
3467
3468struct VkDescriptorSetVariableDescriptorCountLayoutSupport
3469{
3470	VkStructureType	sType;
3471	void*			pNext;
3472	uint32_t		maxVariableDescriptorCount;
3473};
3474
3475struct VkAttachmentDescription2
3476{
3477	VkStructureType					sType;
3478	const void*						pNext;
3479	VkAttachmentDescriptionFlags	flags;
3480	VkFormat						format;
3481	VkSampleCountFlagBits			samples;
3482	VkAttachmentLoadOp				loadOp;
3483	VkAttachmentStoreOp				storeOp;
3484	VkAttachmentLoadOp				stencilLoadOp;
3485	VkAttachmentStoreOp				stencilStoreOp;
3486	VkImageLayout					initialLayout;
3487	VkImageLayout					finalLayout;
3488};
3489
3490struct VkAttachmentReference2
3491{
3492	VkStructureType		sType;
3493	const void*			pNext;
3494	uint32_t			attachment;
3495	VkImageLayout		layout;
3496	VkImageAspectFlags	aspectMask;
3497};
3498
3499struct VkSubpassDescription2
3500{
3501	VkStructureType					sType;
3502	const void*						pNext;
3503	VkSubpassDescriptionFlags		flags;
3504	VkPipelineBindPoint				pipelineBindPoint;
3505	uint32_t						viewMask;
3506	uint32_t						inputAttachmentCount;
3507	const VkAttachmentReference2*	pInputAttachments;
3508	uint32_t						colorAttachmentCount;
3509	const VkAttachmentReference2*	pColorAttachments;
3510	const VkAttachmentReference2*	pResolveAttachments;
3511	const VkAttachmentReference2*	pDepthStencilAttachment;
3512	uint32_t						preserveAttachmentCount;
3513	const uint32_t*					pPreserveAttachments;
3514};
3515
3516struct VkSubpassDependency2
3517{
3518	VkStructureType			sType;
3519	const void*				pNext;
3520	uint32_t				srcSubpass;
3521	uint32_t				dstSubpass;
3522	VkPipelineStageFlags	srcStageMask;
3523	VkPipelineStageFlags	dstStageMask;
3524	VkAccessFlags			srcAccessMask;
3525	VkAccessFlags			dstAccessMask;
3526	VkDependencyFlags		dependencyFlags;
3527	int32_t					viewOffset;
3528};
3529
3530struct VkRenderPassCreateInfo2
3531{
3532	VkStructureType					sType;
3533	const void*						pNext;
3534	VkRenderPassCreateFlags			flags;
3535	uint32_t						attachmentCount;
3536	const VkAttachmentDescription2*	pAttachments;
3537	uint32_t						subpassCount;
3538	const VkSubpassDescription2*	pSubpasses;
3539	uint32_t						dependencyCount;
3540	const VkSubpassDependency2*		pDependencies;
3541	uint32_t						correlatedViewMaskCount;
3542	const uint32_t*					pCorrelatedViewMasks;
3543};
3544
3545struct VkSubpassBeginInfo
3546{
3547	VkStructureType		sType;
3548	const void*			pNext;
3549	VkSubpassContents	contents;
3550};
3551
3552struct VkSubpassEndInfo
3553{
3554	VkStructureType	sType;
3555	const void*		pNext;
3556};
3557
3558struct VkPhysicalDeviceTimelineSemaphoreFeatures
3559{
3560	VkStructureType	sType;
3561	void*			pNext;
3562	VkBool32		timelineSemaphore;
3563};
3564
3565struct VkPhysicalDeviceTimelineSemaphoreProperties
3566{
3567	VkStructureType	sType;
3568	void*			pNext;
3569	uint64_t		maxTimelineSemaphoreValueDifference;
3570};
3571
3572struct VkSemaphoreTypeCreateInfo
3573{
3574	VkStructureType	sType;
3575	const void*		pNext;
3576	VkSemaphoreType	semaphoreType;
3577	uint64_t		initialValue;
3578};
3579
3580struct VkTimelineSemaphoreSubmitInfo
3581{
3582	VkStructureType	sType;
3583	const void*		pNext;
3584	uint32_t		waitSemaphoreValueCount;
3585	const uint64_t*	pWaitSemaphoreValues;
3586	uint32_t		signalSemaphoreValueCount;
3587	const uint64_t*	pSignalSemaphoreValues;
3588};
3589
3590struct VkSemaphoreWaitInfo
3591{
3592	VkStructureType			sType;
3593	const void*				pNext;
3594	VkSemaphoreWaitFlags	flags;
3595	uint32_t				semaphoreCount;
3596	const VkSemaphore*		pSemaphores;
3597	const uint64_t*			pValues;
3598};
3599
3600struct VkSemaphoreSignalInfo
3601{
3602	VkStructureType	sType;
3603	const void*		pNext;
3604	VkSemaphore		semaphore;
3605	uint64_t		value;
3606};
3607
3608struct VkVertexInputBindingDivisorDescriptionEXT
3609{
3610	uint32_t	binding;
3611	uint32_t	divisor;
3612};
3613
3614struct VkPipelineVertexInputDivisorStateCreateInfoEXT
3615{
3616	VkStructureType										sType;
3617	const void*											pNext;
3618	uint32_t											vertexBindingDivisorCount;
3619	const VkVertexInputBindingDivisorDescriptionEXT*	pVertexBindingDivisors;
3620};
3621
3622struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
3623{
3624	VkStructureType	sType;
3625	void*			pNext;
3626	uint32_t		maxVertexAttribDivisor;
3627};
3628
3629struct VkPhysicalDevicePCIBusInfoPropertiesEXT
3630{
3631	VkStructureType	sType;
3632	void*			pNext;
3633	uint32_t		pciDomain;
3634	uint32_t		pciBus;
3635	uint32_t		pciDevice;
3636	uint32_t		pciFunction;
3637};
3638
3639struct VkImportAndroidHardwareBufferInfoANDROID
3640{
3641	VkStructureType						sType;
3642	const void*							pNext;
3643	struct pt::AndroidHardwareBufferPtr	buffer;
3644};
3645
3646struct VkImportOHOSNativeBufferInfoOpenHarmony
3647{
3648	VkStructureType			sType;
3649	const void*				pNext;
3650	struct OH_NativeBuffer*	buffer;
3651};
3652
3653struct VkAndroidHardwareBufferUsageANDROID
3654{
3655	VkStructureType	sType;
3656	void*			pNext;
3657	uint64_t		androidHardwareBufferUsage;
3658};
3659
3660struct VkOHOSNativeBufferUsageOpenHarmony
3661{
3662	VkStructureType	sType;
3663	void*			pNext;
3664	uint64_t		OHOSNativeBufferUsage;
3665};
3666
3667struct VkAndroidHardwareBufferPropertiesANDROID
3668{
3669	VkStructureType	sType;
3670	void*			pNext;
3671	VkDeviceSize	allocationSize;
3672	uint32_t		memoryTypeBits;
3673};
3674
3675struct VkMemoryGetAndroidHardwareBufferInfoANDROID
3676{
3677	VkStructureType	sType;
3678	const void*		pNext;
3679	VkDeviceMemory	memory;
3680};
3681
3682struct VkMemoryGetOHOSNativeBufferInfoOpenHarmony
3683{
3684	VkStructureType	sType;
3685	const void*		pNext;
3686	VkDeviceMemory	memory;
3687};
3688
3689struct VkAndroidHardwareBufferFormatPropertiesANDROID
3690{
3691	VkStructureType					sType;
3692	void*							pNext;
3693	VkFormat						format;
3694	uint64_t						externalFormat;
3695	VkFormatFeatureFlags			formatFeatures;
3696	VkComponentMapping				samplerYcbcrConversionComponents;
3697	VkSamplerYcbcrModelConversion	suggestedYcbcrModel;
3698	VkSamplerYcbcrRange				suggestedYcbcrRange;
3699	VkChromaLocation				suggestedXChromaOffset;
3700	VkChromaLocation				suggestedYChromaOffset;
3701};
3702
3703struct VkOHOSNativeBufferFormatPropertiesOpenHarmony
3704{
3705	VkStructureType					sType;
3706	void*							pNext;
3707	VkFormat						format;
3708	uint64_t						externalFormat;
3709	VkFormatFeatureFlags			formatFeatures;
3710	VkComponentMapping				samplerYcbcrConversionComponents;
3711	VkSamplerYcbcrModelConversion	suggestedYcbcrModel;
3712	VkSamplerYcbcrRange				suggestedYcbcrRange;
3713	VkChromaLocation				suggestedXChromaOffset;
3714	VkChromaLocation				suggestedYChromaOffset;
3715};
3716
3717struct VkCommandBufferInheritanceConditionalRenderingInfoEXT
3718{
3719	VkStructureType	sType;
3720	const void*		pNext;
3721	VkBool32		conditionalRenderingEnable;
3722};
3723
3724struct VkExternalFormatANDROID
3725{
3726	VkStructureType	sType;
3727	void*			pNext;
3728	uint64_t		externalFormat;
3729};
3730
3731struct VkExternalFormatOpenHarmony
3732{
3733	VkStructureType	sType;
3734	void*			pNext;
3735	uint64_t		externalFormat;
3736};
3737
3738struct VkPhysicalDevice8BitStorageFeatures
3739{
3740	VkStructureType	sType;
3741	void*			pNext;
3742	VkBool32		storageBuffer8BitAccess;
3743	VkBool32		uniformAndStorageBuffer8BitAccess;
3744	VkBool32		storagePushConstant8;
3745};
3746
3747struct VkPhysicalDeviceConditionalRenderingFeaturesEXT
3748{
3749	VkStructureType	sType;
3750	void*			pNext;
3751	VkBool32		conditionalRendering;
3752	VkBool32		inheritedConditionalRendering;
3753};
3754
3755struct VkPhysicalDeviceVulkanMemoryModelFeatures
3756{
3757	VkStructureType	sType;
3758	void*			pNext;
3759	VkBool32		vulkanMemoryModel;
3760	VkBool32		vulkanMemoryModelDeviceScope;
3761	VkBool32		vulkanMemoryModelAvailabilityVisibilityChains;
3762};
3763
3764struct VkPhysicalDeviceShaderAtomicInt64Features
3765{
3766	VkStructureType	sType;
3767	void*			pNext;
3768	VkBool32		shaderBufferInt64Atomics;
3769	VkBool32		shaderSharedInt64Atomics;
3770};
3771
3772struct VkPhysicalDeviceShaderAtomicFloatFeaturesEXT
3773{
3774	VkStructureType	sType;
3775	void*			pNext;
3776	VkBool32		shaderBufferFloat32Atomics;
3777	VkBool32		shaderBufferFloat32AtomicAdd;
3778	VkBool32		shaderBufferFloat64Atomics;
3779	VkBool32		shaderBufferFloat64AtomicAdd;
3780	VkBool32		shaderSharedFloat32Atomics;
3781	VkBool32		shaderSharedFloat32AtomicAdd;
3782	VkBool32		shaderSharedFloat64Atomics;
3783	VkBool32		shaderSharedFloat64AtomicAdd;
3784	VkBool32		shaderImageFloat32Atomics;
3785	VkBool32		shaderImageFloat32AtomicAdd;
3786	VkBool32		sparseImageFloat32Atomics;
3787	VkBool32		sparseImageFloat32AtomicAdd;
3788};
3789
3790struct VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT
3791{
3792	VkStructureType	sType;
3793	void*			pNext;
3794	VkBool32		shaderBufferFloat16Atomics;
3795	VkBool32		shaderBufferFloat16AtomicAdd;
3796	VkBool32		shaderBufferFloat16AtomicMinMax;
3797	VkBool32		shaderBufferFloat32AtomicMinMax;
3798	VkBool32		shaderBufferFloat64AtomicMinMax;
3799	VkBool32		shaderSharedFloat16Atomics;
3800	VkBool32		shaderSharedFloat16AtomicAdd;
3801	VkBool32		shaderSharedFloat16AtomicMinMax;
3802	VkBool32		shaderSharedFloat32AtomicMinMax;
3803	VkBool32		shaderSharedFloat64AtomicMinMax;
3804	VkBool32		shaderImageFloat32AtomicMinMax;
3805	VkBool32		sparseImageFloat32AtomicMinMax;
3806};
3807
3808struct VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT
3809{
3810	VkStructureType	sType;
3811	void*			pNext;
3812	VkBool32		vertexAttributeInstanceRateDivisor;
3813	VkBool32		vertexAttributeInstanceRateZeroDivisor;
3814};
3815
3816struct VkQueueFamilyCheckpointPropertiesNV
3817{
3818	VkStructureType			sType;
3819	void*					pNext;
3820	VkPipelineStageFlags	checkpointExecutionStageMask;
3821};
3822
3823struct VkCheckpointDataNV
3824{
3825	VkStructureType			sType;
3826	void*					pNext;
3827	VkPipelineStageFlagBits	stage;
3828	void*					pCheckpointMarker;
3829};
3830
3831struct VkPhysicalDeviceDepthStencilResolveProperties
3832{
3833	VkStructureType		sType;
3834	void*				pNext;
3835	VkResolveModeFlags	supportedDepthResolveModes;
3836	VkResolveModeFlags	supportedStencilResolveModes;
3837	VkBool32			independentResolveNone;
3838	VkBool32			independentResolve;
3839};
3840
3841struct VkSubpassDescriptionDepthStencilResolve
3842{
3843	VkStructureType					sType;
3844	const void*						pNext;
3845	VkResolveModeFlagBits			depthResolveMode;
3846	VkResolveModeFlagBits			stencilResolveMode;
3847	const VkAttachmentReference2*	pDepthStencilResolveAttachment;
3848};
3849
3850struct VkImageViewASTCDecodeModeEXT
3851{
3852	VkStructureType	sType;
3853	const void*		pNext;
3854	VkFormat		decodeMode;
3855};
3856
3857struct VkPhysicalDeviceASTCDecodeFeaturesEXT
3858{
3859	VkStructureType	sType;
3860	void*			pNext;
3861	VkBool32		decodeModeSharedExponent;
3862};
3863
3864struct VkPhysicalDeviceTransformFeedbackFeaturesEXT
3865{
3866	VkStructureType	sType;
3867	void*			pNext;
3868	VkBool32		transformFeedback;
3869	VkBool32		geometryStreams;
3870};
3871
3872struct VkPhysicalDeviceTransformFeedbackPropertiesEXT
3873{
3874	VkStructureType	sType;
3875	void*			pNext;
3876	uint32_t		maxTransformFeedbackStreams;
3877	uint32_t		maxTransformFeedbackBuffers;
3878	VkDeviceSize	maxTransformFeedbackBufferSize;
3879	uint32_t		maxTransformFeedbackStreamDataSize;
3880	uint32_t		maxTransformFeedbackBufferDataSize;
3881	uint32_t		maxTransformFeedbackBufferDataStride;
3882	VkBool32		transformFeedbackQueries;
3883	VkBool32		transformFeedbackStreamsLinesTriangles;
3884	VkBool32		transformFeedbackRasterizationStreamSelect;
3885	VkBool32		transformFeedbackDraw;
3886};
3887
3888struct VkPipelineRasterizationStateStreamCreateInfoEXT
3889{
3890	VkStructureType										sType;
3891	const void*											pNext;
3892	VkPipelineRasterizationStateStreamCreateFlagsEXT	flags;
3893	uint32_t											rasterizationStream;
3894};
3895
3896struct VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV
3897{
3898	VkStructureType	sType;
3899	void*			pNext;
3900	VkBool32		representativeFragmentTest;
3901};
3902
3903struct VkPipelineRepresentativeFragmentTestStateCreateInfoNV
3904{
3905	VkStructureType	sType;
3906	const void*		pNext;
3907	VkBool32		representativeFragmentTestEnable;
3908};
3909
3910struct VkPhysicalDeviceExclusiveScissorFeaturesNV
3911{
3912	VkStructureType	sType;
3913	void*			pNext;
3914	VkBool32		exclusiveScissor;
3915};
3916
3917struct VkPipelineViewportExclusiveScissorStateCreateInfoNV
3918{
3919	VkStructureType	sType;
3920	const void*		pNext;
3921	uint32_t		exclusiveScissorCount;
3922	const VkRect2D*	pExclusiveScissors;
3923};
3924
3925struct VkPhysicalDeviceCornerSampledImageFeaturesNV
3926{
3927	VkStructureType	sType;
3928	void*			pNext;
3929	VkBool32		cornerSampledImage;
3930};
3931
3932struct VkPhysicalDeviceComputeShaderDerivativesFeaturesNV
3933{
3934	VkStructureType	sType;
3935	void*			pNext;
3936	VkBool32		computeDerivativeGroupQuads;
3937	VkBool32		computeDerivativeGroupLinear;
3938};
3939
3940struct VkPhysicalDeviceShaderImageFootprintFeaturesNV
3941{
3942	VkStructureType	sType;
3943	void*			pNext;
3944	VkBool32		imageFootprint;
3945};
3946
3947struct VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV
3948{
3949	VkStructureType	sType;
3950	void*			pNext;
3951	VkBool32		dedicatedAllocationImageAliasing;
3952};
3953
3954struct VkPhysicalDeviceCopyMemoryIndirectFeaturesNV
3955{
3956	VkStructureType	sType;
3957	void*			pNext;
3958	VkBool32		indirectCopy;
3959};
3960
3961struct VkPhysicalDeviceCopyMemoryIndirectPropertiesNV
3962{
3963	VkStructureType	sType;
3964	void*			pNext;
3965	VkQueueFlags	supportedQueues;
3966};
3967
3968struct VkPhysicalDeviceMemoryDecompressionFeaturesNV
3969{
3970	VkStructureType	sType;
3971	void*			pNext;
3972	VkBool32		memoryDecompression;
3973};
3974
3975struct VkPhysicalDeviceMemoryDecompressionPropertiesNV
3976{
3977	VkStructureType						sType;
3978	void*								pNext;
3979	VkMemoryDecompressionMethodFlagsNV	decompressionMethods;
3980	uint64_t							maxDecompressionIndirectCount;
3981};
3982
3983struct VkShadingRatePaletteNV
3984{
3985	uint32_t							shadingRatePaletteEntryCount;
3986	const VkShadingRatePaletteEntryNV*	pShadingRatePaletteEntries;
3987};
3988
3989struct VkPipelineViewportShadingRateImageStateCreateInfoNV
3990{
3991	VkStructureType					sType;
3992	const void*						pNext;
3993	VkBool32						shadingRateImageEnable;
3994	uint32_t						viewportCount;
3995	const VkShadingRatePaletteNV*	pShadingRatePalettes;
3996};
3997
3998struct VkPhysicalDeviceShadingRateImageFeaturesNV
3999{
4000	VkStructureType	sType;
4001	void*			pNext;
4002	VkBool32		shadingRateImage;
4003	VkBool32		shadingRateCoarseSampleOrder;
4004};
4005
4006struct VkPhysicalDeviceShadingRateImagePropertiesNV
4007{
4008	VkStructureType	sType;
4009	void*			pNext;
4010	VkExtent2D		shadingRateTexelSize;
4011	uint32_t		shadingRatePaletteSize;
4012	uint32_t		shadingRateMaxCoarseSamples;
4013};
4014
4015struct VkPhysicalDeviceInvocationMaskFeaturesHUAWEI
4016{
4017	VkStructureType	sType;
4018	void*			pNext;
4019	VkBool32		invocationMask;
4020};
4021
4022struct VkCoarseSampleLocationNV
4023{
4024	uint32_t	pixelX;
4025	uint32_t	pixelY;
4026	uint32_t	sample;
4027};
4028
4029struct VkCoarseSampleOrderCustomNV
4030{
4031	VkShadingRatePaletteEntryNV		shadingRate;
4032	uint32_t						sampleCount;
4033	uint32_t						sampleLocationCount;
4034	const VkCoarseSampleLocationNV*	pSampleLocations;
4035};
4036
4037struct VkPipelineViewportCoarseSampleOrderStateCreateInfoNV
4038{
4039	VkStructureType						sType;
4040	const void*							pNext;
4041	VkCoarseSampleOrderTypeNV			sampleOrderType;
4042	uint32_t							customSampleOrderCount;
4043	const VkCoarseSampleOrderCustomNV*	pCustomSampleOrders;
4044};
4045
4046struct VkPhysicalDeviceMeshShaderFeaturesNV
4047{
4048	VkStructureType	sType;
4049	void*			pNext;
4050	VkBool32		taskShader;
4051	VkBool32		meshShader;
4052};
4053
4054struct VkPhysicalDeviceMeshShaderPropertiesNV
4055{
4056	VkStructureType	sType;
4057	void*			pNext;
4058	uint32_t		maxDrawMeshTasksCount;
4059	uint32_t		maxTaskWorkGroupInvocations;
4060	uint32_t		maxTaskWorkGroupSize[3];
4061	uint32_t		maxTaskTotalMemorySize;
4062	uint32_t		maxTaskOutputCount;
4063	uint32_t		maxMeshWorkGroupInvocations;
4064	uint32_t		maxMeshWorkGroupSize[3];
4065	uint32_t		maxMeshTotalMemorySize;
4066	uint32_t		maxMeshOutputVertices;
4067	uint32_t		maxMeshOutputPrimitives;
4068	uint32_t		maxMeshMultiviewViewCount;
4069	uint32_t		meshOutputPerVertexGranularity;
4070	uint32_t		meshOutputPerPrimitiveGranularity;
4071};
4072
4073struct VkDrawMeshTasksIndirectCommandNV
4074{
4075	uint32_t	taskCount;
4076	uint32_t	firstTask;
4077};
4078
4079struct VkPhysicalDeviceMeshShaderFeaturesEXT
4080{
4081	VkStructureType	sType;
4082	void*			pNext;
4083	VkBool32		taskShader;
4084	VkBool32		meshShader;
4085	VkBool32		multiviewMeshShader;
4086	VkBool32		primitiveFragmentShadingRateMeshShader;
4087	VkBool32		meshShaderQueries;
4088};
4089
4090struct VkPhysicalDeviceMeshShaderPropertiesEXT
4091{
4092	VkStructureType	sType;
4093	void*			pNext;
4094	uint32_t		maxTaskWorkGroupTotalCount;
4095	uint32_t		maxTaskWorkGroupCount[3];
4096	uint32_t		maxTaskWorkGroupInvocations;
4097	uint32_t		maxTaskWorkGroupSize[3];
4098	uint32_t		maxTaskPayloadSize;
4099	uint32_t		maxTaskSharedMemorySize;
4100	uint32_t		maxTaskPayloadAndSharedMemorySize;
4101	uint32_t		maxMeshWorkGroupTotalCount;
4102	uint32_t		maxMeshWorkGroupCount[3];
4103	uint32_t		maxMeshWorkGroupInvocations;
4104	uint32_t		maxMeshWorkGroupSize[3];
4105	uint32_t		maxMeshSharedMemorySize;
4106	uint32_t		maxMeshPayloadAndSharedMemorySize;
4107	uint32_t		maxMeshOutputMemorySize;
4108	uint32_t		maxMeshPayloadAndOutputMemorySize;
4109	uint32_t		maxMeshOutputComponents;
4110	uint32_t		maxMeshOutputVertices;
4111	uint32_t		maxMeshOutputPrimitives;
4112	uint32_t		maxMeshOutputLayers;
4113	uint32_t		maxMeshMultiviewViewCount;
4114	uint32_t		meshOutputPerVertexGranularity;
4115	uint32_t		meshOutputPerPrimitiveGranularity;
4116	uint32_t		maxPreferredTaskWorkGroupInvocations;
4117	uint32_t		maxPreferredMeshWorkGroupInvocations;
4118	VkBool32		prefersLocalInvocationVertexOutput;
4119	VkBool32		prefersLocalInvocationPrimitiveOutput;
4120	VkBool32		prefersCompactVertexOutput;
4121	VkBool32		prefersCompactPrimitiveOutput;
4122};
4123
4124struct VkDrawMeshTasksIndirectCommandEXT
4125{
4126	uint32_t	groupCountX;
4127	uint32_t	groupCountY;
4128	uint32_t	groupCountZ;
4129};
4130
4131struct VkRayTracingShaderGroupCreateInfoNV
4132{
4133	VkStructureType					sType;
4134	const void*						pNext;
4135	VkRayTracingShaderGroupTypeKHR	type;
4136	uint32_t						generalShader;
4137	uint32_t						closestHitShader;
4138	uint32_t						anyHitShader;
4139	uint32_t						intersectionShader;
4140};
4141
4142struct VkRayTracingShaderGroupCreateInfoKHR
4143{
4144	VkStructureType					sType;
4145	const void*						pNext;
4146	VkRayTracingShaderGroupTypeKHR	type;
4147	uint32_t						generalShader;
4148	uint32_t						closestHitShader;
4149	uint32_t						anyHitShader;
4150	uint32_t						intersectionShader;
4151	const void*						pShaderGroupCaptureReplayHandle;
4152};
4153
4154struct VkRayTracingPipelineCreateInfoNV
4155{
4156	VkStructureType								sType;
4157	const void*									pNext;
4158	VkPipelineCreateFlags						flags;
4159	uint32_t									stageCount;
4160	const VkPipelineShaderStageCreateInfo*		pStages;
4161	uint32_t									groupCount;
4162	const VkRayTracingShaderGroupCreateInfoNV*	pGroups;
4163	uint32_t									maxRecursionDepth;
4164	VkPipelineLayout							layout;
4165	VkPipeline									basePipelineHandle;
4166	int32_t										basePipelineIndex;
4167};
4168
4169struct VkGeometryTrianglesNV
4170{
4171	VkStructureType	sType;
4172	const void*		pNext;
4173	VkBuffer		vertexData;
4174	VkDeviceSize	vertexOffset;
4175	uint32_t		vertexCount;
4176	VkDeviceSize	vertexStride;
4177	VkFormat		vertexFormat;
4178	VkBuffer		indexData;
4179	VkDeviceSize	indexOffset;
4180	uint32_t		indexCount;
4181	VkIndexType		indexType;
4182	VkBuffer		transformData;
4183	VkDeviceSize	transformOffset;
4184};
4185
4186struct VkGeometryAABBNV
4187{
4188	VkStructureType	sType;
4189	const void*		pNext;
4190	VkBuffer		aabbData;
4191	uint32_t		numAABBs;
4192	uint32_t		stride;
4193	VkDeviceSize	offset;
4194};
4195
4196struct VkGeometryDataNV
4197{
4198	VkGeometryTrianglesNV	triangles;
4199	VkGeometryAABBNV		aabbs;
4200};
4201
4202struct VkGeometryNV
4203{
4204	VkStructureType		sType;
4205	const void*			pNext;
4206	VkGeometryTypeKHR	geometryType;
4207	VkGeometryDataNV	geometry;
4208	VkGeometryFlagsKHR	flags;
4209};
4210
4211struct VkAccelerationStructureInfoNV
4212{
4213	VkStructureType						sType;
4214	const void*							pNext;
4215	VkAccelerationStructureTypeNV		type;
4216	VkBuildAccelerationStructureFlagsNV	flags;
4217	uint32_t							instanceCount;
4218	uint32_t							geometryCount;
4219	const VkGeometryNV*					pGeometries;
4220};
4221
4222struct VkAccelerationStructureCreateInfoNV
4223{
4224	VkStructureType					sType;
4225	const void*						pNext;
4226	VkDeviceSize					compactedSize;
4227	VkAccelerationStructureInfoNV	info;
4228};
4229
4230struct VkBindAccelerationStructureMemoryInfoNV
4231{
4232	VkStructureType				sType;
4233	const void*					pNext;
4234	VkAccelerationStructureNV	accelerationStructure;
4235	VkDeviceMemory				memory;
4236	VkDeviceSize				memoryOffset;
4237	uint32_t					deviceIndexCount;
4238	const uint32_t*				pDeviceIndices;
4239};
4240
4241struct VkWriteDescriptorSetAccelerationStructureKHR
4242{
4243	VkStructureType						sType;
4244	const void*							pNext;
4245	uint32_t							accelerationStructureCount;
4246	const VkAccelerationStructureKHR*	pAccelerationStructures;
4247};
4248
4249struct VkWriteDescriptorSetAccelerationStructureNV
4250{
4251	VkStructureType						sType;
4252	const void*							pNext;
4253	uint32_t							accelerationStructureCount;
4254	const VkAccelerationStructureNV*	pAccelerationStructures;
4255};
4256
4257struct VkAccelerationStructureMemoryRequirementsInfoNV
4258{
4259	VkStructureType									sType;
4260	const void*										pNext;
4261	VkAccelerationStructureMemoryRequirementsTypeNV	type;
4262	VkAccelerationStructureNV						accelerationStructure;
4263};
4264
4265struct VkPhysicalDeviceAccelerationStructureFeaturesKHR
4266{
4267	VkStructureType	sType;
4268	void*			pNext;
4269	VkBool32		accelerationStructure;
4270	VkBool32		accelerationStructureCaptureReplay;
4271	VkBool32		accelerationStructureIndirectBuild;
4272	VkBool32		accelerationStructureHostCommands;
4273	VkBool32		descriptorBindingAccelerationStructureUpdateAfterBind;
4274};
4275
4276struct VkPhysicalDeviceRayTracingPipelineFeaturesKHR
4277{
4278	VkStructureType	sType;
4279	void*			pNext;
4280	VkBool32		rayTracingPipeline;
4281	VkBool32		rayTracingPipelineShaderGroupHandleCaptureReplay;
4282	VkBool32		rayTracingPipelineShaderGroupHandleCaptureReplayMixed;
4283	VkBool32		rayTracingPipelineTraceRaysIndirect;
4284	VkBool32		rayTraversalPrimitiveCulling;
4285};
4286
4287struct VkPhysicalDeviceRayQueryFeaturesKHR
4288{
4289	VkStructureType	sType;
4290	void*			pNext;
4291	VkBool32		rayQuery;
4292};
4293
4294struct VkPhysicalDeviceAccelerationStructurePropertiesKHR
4295{
4296	VkStructureType	sType;
4297	void*			pNext;
4298	uint64_t		maxGeometryCount;
4299	uint64_t		maxInstanceCount;
4300	uint64_t		maxPrimitiveCount;
4301	uint32_t		maxPerStageDescriptorAccelerationStructures;
4302	uint32_t		maxPerStageDescriptorUpdateAfterBindAccelerationStructures;
4303	uint32_t		maxDescriptorSetAccelerationStructures;
4304	uint32_t		maxDescriptorSetUpdateAfterBindAccelerationStructures;
4305	uint32_t		minAccelerationStructureScratchOffsetAlignment;
4306};
4307
4308struct VkPhysicalDeviceRayTracingPipelinePropertiesKHR
4309{
4310	VkStructureType	sType;
4311	void*			pNext;
4312	uint32_t		shaderGroupHandleSize;
4313	uint32_t		maxRayRecursionDepth;
4314	uint32_t		maxShaderGroupStride;
4315	uint32_t		shaderGroupBaseAlignment;
4316	uint32_t		shaderGroupHandleCaptureReplaySize;
4317	uint32_t		maxRayDispatchInvocationCount;
4318	uint32_t		shaderGroupHandleAlignment;
4319	uint32_t		maxRayHitAttributeSize;
4320};
4321
4322struct VkPhysicalDeviceRayTracingPropertiesNV
4323{
4324	VkStructureType	sType;
4325	void*			pNext;
4326	uint32_t		shaderGroupHandleSize;
4327	uint32_t		maxRecursionDepth;
4328	uint32_t		maxShaderGroupStride;
4329	uint32_t		shaderGroupBaseAlignment;
4330	uint64_t		maxGeometryCount;
4331	uint64_t		maxInstanceCount;
4332	uint64_t		maxTriangleCount;
4333	uint32_t		maxDescriptorSetAccelerationStructures;
4334};
4335
4336struct VkStridedDeviceAddressRegionKHR
4337{
4338	VkDeviceAddress	deviceAddress;
4339	VkDeviceSize	stride;
4340	VkDeviceSize	size;
4341};
4342
4343struct VkTraceRaysIndirectCommandKHR
4344{
4345	uint32_t	width;
4346	uint32_t	height;
4347	uint32_t	depth;
4348};
4349
4350struct VkTraceRaysIndirectCommand2KHR
4351{
4352	VkDeviceAddress	raygenShaderRecordAddress;
4353	VkDeviceSize	raygenShaderRecordSize;
4354	VkDeviceAddress	missShaderBindingTableAddress;
4355	VkDeviceSize	missShaderBindingTableSize;
4356	VkDeviceSize	missShaderBindingTableStride;
4357	VkDeviceAddress	hitShaderBindingTableAddress;
4358	VkDeviceSize	hitShaderBindingTableSize;
4359	VkDeviceSize	hitShaderBindingTableStride;
4360	VkDeviceAddress	callableShaderBindingTableAddress;
4361	VkDeviceSize	callableShaderBindingTableSize;
4362	VkDeviceSize	callableShaderBindingTableStride;
4363	uint32_t		width;
4364	uint32_t		height;
4365	uint32_t		depth;
4366};
4367
4368struct VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR
4369{
4370	VkStructureType	sType;
4371	void*			pNext;
4372	VkBool32		rayTracingMaintenance1;
4373	VkBool32		rayTracingPipelineTraceRaysIndirect2;
4374};
4375
4376struct VkDrmFormatModifierPropertiesEXT
4377{
4378	uint64_t				drmFormatModifier;
4379	uint32_t				drmFormatModifierPlaneCount;
4380	VkFormatFeatureFlags	drmFormatModifierTilingFeatures;
4381};
4382
4383struct VkDrmFormatModifierPropertiesListEXT
4384{
4385	VkStructureType						sType;
4386	void*								pNext;
4387	uint32_t							drmFormatModifierCount;
4388	VkDrmFormatModifierPropertiesEXT*	pDrmFormatModifierProperties;
4389};
4390
4391struct VkPhysicalDeviceImageDrmFormatModifierInfoEXT
4392{
4393	VkStructureType	sType;
4394	const void*		pNext;
4395	uint64_t		drmFormatModifier;
4396	VkSharingMode	sharingMode;
4397	uint32_t		queueFamilyIndexCount;
4398	const uint32_t*	pQueueFamilyIndices;
4399};
4400
4401struct VkImageDrmFormatModifierListCreateInfoEXT
4402{
4403	VkStructureType	sType;
4404	const void*		pNext;
4405	uint32_t		drmFormatModifierCount;
4406	const uint64_t*	pDrmFormatModifiers;
4407};
4408
4409struct VkImageDrmFormatModifierExplicitCreateInfoEXT
4410{
4411	VkStructureType				sType;
4412	const void*					pNext;
4413	uint64_t					drmFormatModifier;
4414	uint32_t					drmFormatModifierPlaneCount;
4415	const VkSubresourceLayout*	pPlaneLayouts;
4416};
4417
4418struct VkImageDrmFormatModifierPropertiesEXT
4419{
4420	VkStructureType	sType;
4421	void*			pNext;
4422	uint64_t		drmFormatModifier;
4423};
4424
4425struct VkImageStencilUsageCreateInfo
4426{
4427	VkStructureType		sType;
4428	const void*			pNext;
4429	VkImageUsageFlags	stencilUsage;
4430};
4431
4432struct VkDeviceMemoryOverallocationCreateInfoAMD
4433{
4434	VkStructureType						sType;
4435	const void*							pNext;
4436	VkMemoryOverallocationBehaviorAMD	overallocationBehavior;
4437};
4438
4439struct VkPhysicalDeviceFragmentDensityMapFeaturesEXT
4440{
4441	VkStructureType	sType;
4442	void*			pNext;
4443	VkBool32		fragmentDensityMap;
4444	VkBool32		fragmentDensityMapDynamic;
4445	VkBool32		fragmentDensityMapNonSubsampledImages;
4446};
4447
4448struct VkPhysicalDeviceFragmentDensityMap2FeaturesEXT
4449{
4450	VkStructureType	sType;
4451	void*			pNext;
4452	VkBool32		fragmentDensityMapDeferred;
4453};
4454
4455struct VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM
4456{
4457	VkStructureType	sType;
4458	void*			pNext;
4459	VkBool32		fragmentDensityMapOffset;
4460};
4461
4462struct VkPhysicalDeviceFragmentDensityMapPropertiesEXT
4463{
4464	VkStructureType	sType;
4465	void*			pNext;
4466	VkExtent2D		minFragmentDensityTexelSize;
4467	VkExtent2D		maxFragmentDensityTexelSize;
4468	VkBool32		fragmentDensityInvocations;
4469};
4470
4471struct VkPhysicalDeviceFragmentDensityMap2PropertiesEXT
4472{
4473	VkStructureType	sType;
4474	void*			pNext;
4475	VkBool32		subsampledLoads;
4476	VkBool32		subsampledCoarseReconstructionEarlyAccess;
4477	uint32_t		maxSubsampledArrayLayers;
4478	uint32_t		maxDescriptorSetSubsampledSamplers;
4479};
4480
4481struct VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM
4482{
4483	VkStructureType	sType;
4484	void*			pNext;
4485	VkExtent2D		fragmentDensityOffsetGranularity;
4486};
4487
4488struct VkRenderPassFragmentDensityMapCreateInfoEXT
4489{
4490	VkStructureType			sType;
4491	const void*				pNext;
4492	VkAttachmentReference	fragmentDensityMapAttachment;
4493};
4494
4495struct VkSubpassFragmentDensityMapOffsetEndInfoQCOM
4496{
4497	VkStructureType		sType;
4498	const void*			pNext;
4499	uint32_t			fragmentDensityOffsetCount;
4500	const VkOffset2D*	pFragmentDensityOffsets;
4501};
4502
4503struct VkPhysicalDeviceScalarBlockLayoutFeatures
4504{
4505	VkStructureType	sType;
4506	void*			pNext;
4507	VkBool32		scalarBlockLayout;
4508};
4509
4510struct VkSurfaceProtectedCapabilitiesKHR
4511{
4512	VkStructureType	sType;
4513	const void*		pNext;
4514	VkBool32		supportsProtected;
4515};
4516
4517struct VkPhysicalDeviceUniformBufferStandardLayoutFeatures
4518{
4519	VkStructureType	sType;
4520	void*			pNext;
4521	VkBool32		uniformBufferStandardLayout;
4522};
4523
4524struct VkPhysicalDeviceDepthClipEnableFeaturesEXT
4525{
4526	VkStructureType	sType;
4527	void*			pNext;
4528	VkBool32		depthClipEnable;
4529};
4530
4531struct VkPipelineRasterizationDepthClipStateCreateInfoEXT
4532{
4533	VkStructureType										sType;
4534	const void*											pNext;
4535	VkPipelineRasterizationDepthClipStateCreateFlagsEXT	flags;
4536	VkBool32											depthClipEnable;
4537};
4538
4539struct VkPhysicalDeviceMemoryBudgetPropertiesEXT
4540{
4541	VkStructureType	sType;
4542	void*			pNext;
4543	VkDeviceSize	heapBudget[VK_MAX_MEMORY_HEAPS];
4544	VkDeviceSize	heapUsage[VK_MAX_MEMORY_HEAPS];
4545};
4546
4547struct VkPhysicalDeviceMemoryPriorityFeaturesEXT
4548{
4549	VkStructureType	sType;
4550	void*			pNext;
4551	VkBool32		memoryPriority;
4552};
4553
4554struct VkMemoryPriorityAllocateInfoEXT
4555{
4556	VkStructureType	sType;
4557	const void*		pNext;
4558	float			priority;
4559};
4560
4561struct VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT
4562{
4563	VkStructureType	sType;
4564	void*			pNext;
4565	VkBool32		pageableDeviceLocalMemory;
4566};
4567
4568struct VkPhysicalDeviceBufferDeviceAddressFeatures
4569{
4570	VkStructureType	sType;
4571	void*			pNext;
4572	VkBool32		bufferDeviceAddress;
4573	VkBool32		bufferDeviceAddressCaptureReplay;
4574	VkBool32		bufferDeviceAddressMultiDevice;
4575};
4576
4577struct VkPhysicalDeviceBufferDeviceAddressFeaturesEXT
4578{
4579	VkStructureType	sType;
4580	void*			pNext;
4581	VkBool32		bufferDeviceAddress;
4582	VkBool32		bufferDeviceAddressCaptureReplay;
4583	VkBool32		bufferDeviceAddressMultiDevice;
4584};
4585
4586struct VkBufferDeviceAddressInfo
4587{
4588	VkStructureType	sType;
4589	const void*		pNext;
4590	VkBuffer		buffer;
4591};
4592
4593struct VkBufferOpaqueCaptureAddressCreateInfo
4594{
4595	VkStructureType	sType;
4596	const void*		pNext;
4597	uint64_t		opaqueCaptureAddress;
4598};
4599
4600struct VkBufferDeviceAddressCreateInfoEXT
4601{
4602	VkStructureType	sType;
4603	const void*		pNext;
4604	VkDeviceAddress	deviceAddress;
4605};
4606
4607struct VkPhysicalDeviceImageViewImageFormatInfoEXT
4608{
4609	VkStructureType	sType;
4610	void*			pNext;
4611	VkImageViewType	imageViewType;
4612};
4613
4614struct VkFilterCubicImageViewImageFormatPropertiesEXT
4615{
4616	VkStructureType	sType;
4617	void*			pNext;
4618	VkBool32		filterCubic;
4619	VkBool32		filterCubicMinmax;
4620};
4621
4622struct VkPhysicalDeviceImagelessFramebufferFeatures
4623{
4624	VkStructureType	sType;
4625	void*			pNext;
4626	VkBool32		imagelessFramebuffer;
4627};
4628
4629struct VkFramebufferAttachmentImageInfo
4630{
4631	VkStructureType		sType;
4632	const void*			pNext;
4633	VkImageCreateFlags	flags;
4634	VkImageUsageFlags	usage;
4635	uint32_t			width;
4636	uint32_t			height;
4637	uint32_t			layerCount;
4638	uint32_t			viewFormatCount;
4639	const VkFormat*		pViewFormats;
4640};
4641
4642struct VkFramebufferAttachmentsCreateInfo
4643{
4644	VkStructureType							sType;
4645	const void*								pNext;
4646	uint32_t								attachmentImageInfoCount;
4647	const VkFramebufferAttachmentImageInfo*	pAttachmentImageInfos;
4648};
4649
4650struct VkRenderPassAttachmentBeginInfo
4651{
4652	VkStructureType		sType;
4653	const void*			pNext;
4654	uint32_t			attachmentCount;
4655	const VkImageView*	pAttachments;
4656};
4657
4658struct VkPhysicalDeviceTextureCompressionASTCHDRFeatures
4659{
4660	VkStructureType	sType;
4661	void*			pNext;
4662	VkBool32		textureCompressionASTC_HDR;
4663};
4664
4665struct VkPhysicalDeviceCooperativeMatrixFeaturesNV
4666{
4667	VkStructureType	sType;
4668	void*			pNext;
4669	VkBool32		cooperativeMatrix;
4670	VkBool32		cooperativeMatrixRobustBufferAccess;
4671};
4672
4673struct VkPhysicalDeviceCooperativeMatrixPropertiesNV
4674{
4675	VkStructureType		sType;
4676	void*				pNext;
4677	VkShaderStageFlags	cooperativeMatrixSupportedStages;
4678};
4679
4680struct VkCooperativeMatrixPropertiesNV
4681{
4682	VkStructureType		sType;
4683	void*				pNext;
4684	uint32_t			MSize;
4685	uint32_t			NSize;
4686	uint32_t			KSize;
4687	VkComponentTypeNV	AType;
4688	VkComponentTypeNV	BType;
4689	VkComponentTypeNV	CType;
4690	VkComponentTypeNV	DType;
4691	VkScopeNV			scope;
4692};
4693
4694struct VkPhysicalDeviceYcbcrImageArraysFeaturesEXT
4695{
4696	VkStructureType	sType;
4697	void*			pNext;
4698	VkBool32		ycbcrImageArrays;
4699};
4700
4701struct VkImageViewHandleInfoNVX
4702{
4703	VkStructureType		sType;
4704	const void*			pNext;
4705	VkImageView			imageView;
4706	VkDescriptorType	descriptorType;
4707	VkSampler			sampler;
4708};
4709
4710struct VkImageViewAddressPropertiesNVX
4711{
4712	VkStructureType	sType;
4713	void*			pNext;
4714	VkDeviceAddress	deviceAddress;
4715	VkDeviceSize	size;
4716};
4717
4718struct VkPresentFrameTokenGGP
4719{
4720	VkStructureType		sType;
4721	const void*			pNext;
4722	pt::GgpFrameToken	frameToken;
4723};
4724
4725struct VkPipelineCreationFeedback
4726{
4727	VkPipelineCreationFeedbackFlags	flags;
4728	uint64_t						duration;
4729};
4730
4731struct VkPipelineCreationFeedbackCreateInfo
4732{
4733	VkStructureType				sType;
4734	const void*					pNext;
4735	VkPipelineCreationFeedback*	pPipelineCreationFeedback;
4736	uint32_t					pipelineStageCreationFeedbackCount;
4737	VkPipelineCreationFeedback*	pPipelineStageCreationFeedbacks;
4738};
4739
4740struct VkSurfaceFullScreenExclusiveInfoEXT
4741{
4742	VkStructureType				sType;
4743	void*						pNext;
4744	VkFullScreenExclusiveEXT	fullScreenExclusive;
4745};
4746
4747struct VkSurfaceFullScreenExclusiveWin32InfoEXT
4748{
4749	VkStructureType			sType;
4750	const void*				pNext;
4751	pt::Win32MonitorHandle	hmonitor;
4752};
4753
4754struct VkSurfaceCapabilitiesFullScreenExclusiveEXT
4755{
4756	VkStructureType	sType;
4757	void*			pNext;
4758	VkBool32		fullScreenExclusiveSupported;
4759};
4760
4761struct VkPhysicalDevicePresentBarrierFeaturesNV
4762{
4763	VkStructureType	sType;
4764	void*			pNext;
4765	VkBool32		presentBarrier;
4766};
4767
4768struct VkSurfaceCapabilitiesPresentBarrierNV
4769{
4770	VkStructureType	sType;
4771	void*			pNext;
4772	VkBool32		presentBarrierSupported;
4773};
4774
4775struct VkSwapchainPresentBarrierCreateInfoNV
4776{
4777	VkStructureType	sType;
4778	void*			pNext;
4779	VkBool32		presentBarrierEnable;
4780};
4781
4782struct VkPhysicalDevicePerformanceQueryFeaturesKHR
4783{
4784	VkStructureType	sType;
4785	void*			pNext;
4786	VkBool32		performanceCounterQueryPools;
4787	VkBool32		performanceCounterMultipleQueryPools;
4788};
4789
4790struct VkPhysicalDevicePerformanceQueryPropertiesKHR
4791{
4792	VkStructureType	sType;
4793	void*			pNext;
4794	VkBool32		allowCommandBufferQueryCopies;
4795};
4796
4797struct VkPerformanceCounterKHR
4798{
4799	VkStructureType					sType;
4800	void*							pNext;
4801	VkPerformanceCounterUnitKHR		unit;
4802	VkPerformanceCounterScopeKHR	scope;
4803	VkPerformanceCounterStorageKHR	storage;
4804	uint8_t							uuid[VK_UUID_SIZE];
4805};
4806
4807struct VkPerformanceCounterDescriptionKHR
4808{
4809	VkStructureType							sType;
4810	void*									pNext;
4811	VkPerformanceCounterDescriptionFlagsKHR	flags;
4812	char									name[VK_MAX_DESCRIPTION_SIZE];
4813	char									category[VK_MAX_DESCRIPTION_SIZE];
4814	char									description[VK_MAX_DESCRIPTION_SIZE];
4815};
4816
4817struct VkQueryPoolPerformanceCreateInfoKHR
4818{
4819	VkStructureType	sType;
4820	const void*		pNext;
4821	uint32_t		queueFamilyIndex;
4822	uint32_t		counterIndexCount;
4823	const uint32_t*	pCounterIndices;
4824};
4825
4826union VkPerformanceCounterResultKHR
4827{
4828	int32_t		int32;
4829	int64_t		int64;
4830	uint32_t	uint32;
4831	uint64_t	uint64;
4832	float		float32;
4833	double		float64;
4834};
4835
4836struct VkAcquireProfilingLockInfoKHR
4837{
4838	VkStructureType					sType;
4839	const void*						pNext;
4840	VkAcquireProfilingLockFlagsKHR	flags;
4841	uint64_t						timeout;
4842};
4843
4844struct VkPerformanceQuerySubmitInfoKHR
4845{
4846	VkStructureType	sType;
4847	const void*		pNext;
4848	uint32_t		counterPassIndex;
4849};
4850
4851struct VkHeadlessSurfaceCreateInfoEXT
4852{
4853	VkStructureType					sType;
4854	const void*						pNext;
4855	VkHeadlessSurfaceCreateFlagsEXT	flags;
4856};
4857
4858struct VkPhysicalDeviceCoverageReductionModeFeaturesNV
4859{
4860	VkStructureType	sType;
4861	void*			pNext;
4862	VkBool32		coverageReductionMode;
4863};
4864
4865struct VkPipelineCoverageReductionStateCreateInfoNV
4866{
4867	VkStructureType									sType;
4868	const void*										pNext;
4869	VkPipelineCoverageReductionStateCreateFlagsNV	flags;
4870	VkCoverageReductionModeNV						coverageReductionMode;
4871};
4872
4873struct VkFramebufferMixedSamplesCombinationNV
4874{
4875	VkStructureType				sType;
4876	void*						pNext;
4877	VkCoverageReductionModeNV	coverageReductionMode;
4878	VkSampleCountFlagBits		rasterizationSamples;
4879	VkSampleCountFlags			depthStencilSamples;
4880	VkSampleCountFlags			colorSamples;
4881};
4882
4883struct VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL
4884{
4885	VkStructureType	sType;
4886	void*			pNext;
4887	VkBool32		shaderIntegerFunctions2;
4888};
4889
4890union VkPerformanceValueDataINTEL
4891{
4892	uint32_t	value32;
4893	uint64_t	value64;
4894	float		valueFloat;
4895	VkBool32	valueBool;
4896	const char*	valueString;
4897};
4898
4899struct VkPerformanceValueINTEL
4900{
4901	VkPerformanceValueTypeINTEL	type;
4902	VkPerformanceValueDataINTEL	data;
4903};
4904
4905struct VkInitializePerformanceApiInfoINTEL
4906{
4907	VkStructureType	sType;
4908	const void*		pNext;
4909	void*			pUserData;
4910};
4911
4912struct VkQueryPoolPerformanceQueryCreateInfoINTEL
4913{
4914	VkStructureType					sType;
4915	const void*						pNext;
4916	VkQueryPoolSamplingModeINTEL	performanceCountersSampling;
4917};
4918
4919struct VkPerformanceMarkerInfoINTEL
4920{
4921	VkStructureType	sType;
4922	const void*		pNext;
4923	uint64_t		marker;
4924};
4925
4926struct VkPerformanceStreamMarkerInfoINTEL
4927{
4928	VkStructureType	sType;
4929	const void*		pNext;
4930	uint32_t		marker;
4931};
4932
4933struct VkPerformanceOverrideInfoINTEL
4934{
4935	VkStructureType					sType;
4936	const void*						pNext;
4937	VkPerformanceOverrideTypeINTEL	type;
4938	VkBool32						enable;
4939	uint64_t						parameter;
4940};
4941
4942struct VkPerformanceConfigurationAcquireInfoINTEL
4943{
4944	VkStructureType						sType;
4945	const void*							pNext;
4946	VkPerformanceConfigurationTypeINTEL	type;
4947};
4948
4949struct VkPhysicalDeviceShaderClockFeaturesKHR
4950{
4951	VkStructureType	sType;
4952	void*			pNext;
4953	VkBool32		shaderSubgroupClock;
4954	VkBool32		shaderDeviceClock;
4955};
4956
4957struct VkPhysicalDeviceIndexTypeUint8FeaturesEXT
4958{
4959	VkStructureType	sType;
4960	void*			pNext;
4961	VkBool32		indexTypeUint8;
4962};
4963
4964struct VkPhysicalDeviceShaderSMBuiltinsPropertiesNV
4965{
4966	VkStructureType	sType;
4967	void*			pNext;
4968	uint32_t		shaderSMCount;
4969	uint32_t		shaderWarpsPerSM;
4970};
4971
4972struct VkPhysicalDeviceShaderSMBuiltinsFeaturesNV
4973{
4974	VkStructureType	sType;
4975	void*			pNext;
4976	VkBool32		shaderSMBuiltins;
4977};
4978
4979struct VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT
4980{
4981	VkStructureType	sType;
4982	void*			pNext;
4983	VkBool32		fragmentShaderSampleInterlock;
4984	VkBool32		fragmentShaderPixelInterlock;
4985	VkBool32		fragmentShaderShadingRateInterlock;
4986};
4987
4988struct VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures
4989{
4990	VkStructureType	sType;
4991	void*			pNext;
4992	VkBool32		separateDepthStencilLayouts;
4993};
4994
4995struct VkAttachmentReferenceStencilLayout
4996{
4997	VkStructureType	sType;
4998	void*			pNext;
4999	VkImageLayout	stencilLayout;
5000};
5001
5002struct VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT
5003{
5004	VkStructureType	sType;
5005	void*			pNext;
5006	VkBool32		primitiveTopologyListRestart;
5007	VkBool32		primitiveTopologyPatchListRestart;
5008};
5009
5010struct VkAttachmentDescriptionStencilLayout
5011{
5012	VkStructureType	sType;
5013	void*			pNext;
5014	VkImageLayout	stencilInitialLayout;
5015	VkImageLayout	stencilFinalLayout;
5016};
5017
5018struct VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR
5019{
5020	VkStructureType	sType;
5021	void*			pNext;
5022	VkBool32		pipelineExecutableInfo;
5023};
5024
5025struct VkPipelineInfoKHR
5026{
5027	VkStructureType	sType;
5028	const void*		pNext;
5029	VkPipeline		pipeline;
5030};
5031
5032struct VkPipelineExecutablePropertiesKHR
5033{
5034	VkStructureType		sType;
5035	void*				pNext;
5036	VkShaderStageFlags	stages;
5037	char				name[VK_MAX_DESCRIPTION_SIZE];
5038	char				description[VK_MAX_DESCRIPTION_SIZE];
5039	uint32_t			subgroupSize;
5040};
5041
5042struct VkPipelineExecutableInfoKHR
5043{
5044	VkStructureType	sType;
5045	const void*		pNext;
5046	VkPipeline		pipeline;
5047	uint32_t		executableIndex;
5048};
5049
5050union VkPipelineExecutableStatisticValueKHR
5051{
5052	VkBool32	b32;
5053	int64_t		i64;
5054	uint64_t	u64;
5055	double		f64;
5056};
5057
5058struct VkPipelineExecutableStatisticKHR
5059{
5060	VkStructureType							sType;
5061	void*									pNext;
5062	char									name[VK_MAX_DESCRIPTION_SIZE];
5063	char									description[VK_MAX_DESCRIPTION_SIZE];
5064	VkPipelineExecutableStatisticFormatKHR	format;
5065	VkPipelineExecutableStatisticValueKHR	value;
5066};
5067
5068struct VkPipelineExecutableInternalRepresentationKHR
5069{
5070	VkStructureType	sType;
5071	void*			pNext;
5072	char			name[VK_MAX_DESCRIPTION_SIZE];
5073	char			description[VK_MAX_DESCRIPTION_SIZE];
5074	VkBool32		isText;
5075	size_t			dataSize;
5076	void*			pData;
5077};
5078
5079struct VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures
5080{
5081	VkStructureType	sType;
5082	void*			pNext;
5083	VkBool32		shaderDemoteToHelperInvocation;
5084};
5085
5086struct VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT
5087{
5088	VkStructureType	sType;
5089	void*			pNext;
5090	VkBool32		texelBufferAlignment;
5091};
5092
5093struct VkPhysicalDeviceTexelBufferAlignmentProperties
5094{
5095	VkStructureType	sType;
5096	void*			pNext;
5097	VkDeviceSize	storageTexelBufferOffsetAlignmentBytes;
5098	VkBool32		storageTexelBufferOffsetSingleTexelAlignment;
5099	VkDeviceSize	uniformTexelBufferOffsetAlignmentBytes;
5100	VkBool32		uniformTexelBufferOffsetSingleTexelAlignment;
5101};
5102
5103struct VkPhysicalDeviceSubgroupSizeControlFeatures
5104{
5105	VkStructureType	sType;
5106	void*			pNext;
5107	VkBool32		subgroupSizeControl;
5108	VkBool32		computeFullSubgroups;
5109};
5110
5111struct VkPhysicalDeviceSubgroupSizeControlProperties
5112{
5113	VkStructureType		sType;
5114	void*				pNext;
5115	uint32_t			minSubgroupSize;
5116	uint32_t			maxSubgroupSize;
5117	uint32_t			maxComputeWorkgroupSubgroups;
5118	VkShaderStageFlags	requiredSubgroupSizeStages;
5119};
5120
5121struct VkPipelineShaderStageRequiredSubgroupSizeCreateInfo
5122{
5123	VkStructureType	sType;
5124	void*			pNext;
5125	uint32_t		requiredSubgroupSize;
5126};
5127
5128struct VkSubpassShadingPipelineCreateInfoHUAWEI
5129{
5130	VkStructureType	sType;
5131	void*			pNext;
5132	VkRenderPass	renderPass;
5133	uint32_t		subpass;
5134};
5135
5136struct VkPhysicalDeviceSubpassShadingPropertiesHUAWEI
5137{
5138	VkStructureType	sType;
5139	void*			pNext;
5140	uint32_t		maxSubpassShadingWorkgroupSizeAspectRatio;
5141};
5142
5143struct VkMemoryOpaqueCaptureAddressAllocateInfo
5144{
5145	VkStructureType	sType;
5146	const void*		pNext;
5147	uint64_t		opaqueCaptureAddress;
5148};
5149
5150struct VkDeviceMemoryOpaqueCaptureAddressInfo
5151{
5152	VkStructureType	sType;
5153	const void*		pNext;
5154	VkDeviceMemory	memory;
5155};
5156
5157struct VkPhysicalDeviceLineRasterizationFeaturesEXT
5158{
5159	VkStructureType	sType;
5160	void*			pNext;
5161	VkBool32		rectangularLines;
5162	VkBool32		bresenhamLines;
5163	VkBool32		smoothLines;
5164	VkBool32		stippledRectangularLines;
5165	VkBool32		stippledBresenhamLines;
5166	VkBool32		stippledSmoothLines;
5167};
5168
5169struct VkPhysicalDeviceLineRasterizationPropertiesEXT
5170{
5171	VkStructureType	sType;
5172	void*			pNext;
5173	uint32_t		lineSubPixelPrecisionBits;
5174};
5175
5176struct VkPipelineRasterizationLineStateCreateInfoEXT
5177{
5178	VkStructureType				sType;
5179	const void*					pNext;
5180	VkLineRasterizationModeEXT	lineRasterizationMode;
5181	VkBool32					stippledLineEnable;
5182	uint32_t					lineStippleFactor;
5183	uint16_t					lineStipplePattern;
5184};
5185
5186struct VkPhysicalDevicePipelineCreationCacheControlFeatures
5187{
5188	VkStructureType	sType;
5189	void*			pNext;
5190	VkBool32		pipelineCreationCacheControl;
5191};
5192
5193struct VkPhysicalDeviceVulkan11Features
5194{
5195	VkStructureType	sType;
5196	void*			pNext;
5197	VkBool32		storageBuffer16BitAccess;
5198	VkBool32		uniformAndStorageBuffer16BitAccess;
5199	VkBool32		storagePushConstant16;
5200	VkBool32		storageInputOutput16;
5201	VkBool32		multiview;
5202	VkBool32		multiviewGeometryShader;
5203	VkBool32		multiviewTessellationShader;
5204	VkBool32		variablePointersStorageBuffer;
5205	VkBool32		variablePointers;
5206	VkBool32		protectedMemory;
5207	VkBool32		samplerYcbcrConversion;
5208	VkBool32		shaderDrawParameters;
5209};
5210
5211struct VkPhysicalDeviceVulkan11Properties
5212{
5213	VkStructureType			sType;
5214	void*					pNext;
5215	uint8_t					deviceUUID[VK_UUID_SIZE];
5216	uint8_t					driverUUID[VK_UUID_SIZE];
5217	uint8_t					deviceLUID[VK_LUID_SIZE];
5218	uint32_t				deviceNodeMask;
5219	VkBool32				deviceLUIDValid;
5220	uint32_t				subgroupSize;
5221	VkShaderStageFlags		subgroupSupportedStages;
5222	VkSubgroupFeatureFlags	subgroupSupportedOperations;
5223	VkBool32				subgroupQuadOperationsInAllStages;
5224	VkPointClippingBehavior	pointClippingBehavior;
5225	uint32_t				maxMultiviewViewCount;
5226	uint32_t				maxMultiviewInstanceIndex;
5227	VkBool32				protectedNoFault;
5228	uint32_t				maxPerSetDescriptors;
5229	VkDeviceSize			maxMemoryAllocationSize;
5230};
5231
5232struct VkPhysicalDeviceVulkan12Features
5233{
5234	VkStructureType	sType;
5235	void*			pNext;
5236	VkBool32		samplerMirrorClampToEdge;
5237	VkBool32		drawIndirectCount;
5238	VkBool32		storageBuffer8BitAccess;
5239	VkBool32		uniformAndStorageBuffer8BitAccess;
5240	VkBool32		storagePushConstant8;
5241	VkBool32		shaderBufferInt64Atomics;
5242	VkBool32		shaderSharedInt64Atomics;
5243	VkBool32		shaderFloat16;
5244	VkBool32		shaderInt8;
5245	VkBool32		descriptorIndexing;
5246	VkBool32		shaderInputAttachmentArrayDynamicIndexing;
5247	VkBool32		shaderUniformTexelBufferArrayDynamicIndexing;
5248	VkBool32		shaderStorageTexelBufferArrayDynamicIndexing;
5249	VkBool32		shaderUniformBufferArrayNonUniformIndexing;
5250	VkBool32		shaderSampledImageArrayNonUniformIndexing;
5251	VkBool32		shaderStorageBufferArrayNonUniformIndexing;
5252	VkBool32		shaderStorageImageArrayNonUniformIndexing;
5253	VkBool32		shaderInputAttachmentArrayNonUniformIndexing;
5254	VkBool32		shaderUniformTexelBufferArrayNonUniformIndexing;
5255	VkBool32		shaderStorageTexelBufferArrayNonUniformIndexing;
5256	VkBool32		descriptorBindingUniformBufferUpdateAfterBind;
5257	VkBool32		descriptorBindingSampledImageUpdateAfterBind;
5258	VkBool32		descriptorBindingStorageImageUpdateAfterBind;
5259	VkBool32		descriptorBindingStorageBufferUpdateAfterBind;
5260	VkBool32		descriptorBindingUniformTexelBufferUpdateAfterBind;
5261	VkBool32		descriptorBindingStorageTexelBufferUpdateAfterBind;
5262	VkBool32		descriptorBindingUpdateUnusedWhilePending;
5263	VkBool32		descriptorBindingPartiallyBound;
5264	VkBool32		descriptorBindingVariableDescriptorCount;
5265	VkBool32		runtimeDescriptorArray;
5266	VkBool32		samplerFilterMinmax;
5267	VkBool32		scalarBlockLayout;
5268	VkBool32		imagelessFramebuffer;
5269	VkBool32		uniformBufferStandardLayout;
5270	VkBool32		shaderSubgroupExtendedTypes;
5271	VkBool32		separateDepthStencilLayouts;
5272	VkBool32		hostQueryReset;
5273	VkBool32		timelineSemaphore;
5274	VkBool32		bufferDeviceAddress;
5275	VkBool32		bufferDeviceAddressCaptureReplay;
5276	VkBool32		bufferDeviceAddressMultiDevice;
5277	VkBool32		vulkanMemoryModel;
5278	VkBool32		vulkanMemoryModelDeviceScope;
5279	VkBool32		vulkanMemoryModelAvailabilityVisibilityChains;
5280	VkBool32		shaderOutputViewportIndex;
5281	VkBool32		shaderOutputLayer;
5282	VkBool32		subgroupBroadcastDynamicId;
5283};
5284
5285struct VkPhysicalDeviceVulkan12Properties
5286{
5287	VkStructureType						sType;
5288	void*								pNext;
5289	VkDriverId							driverID;
5290	char								driverName[VK_MAX_DRIVER_NAME_SIZE];
5291	char								driverInfo[VK_MAX_DRIVER_INFO_SIZE];
5292	VkConformanceVersion				conformanceVersion;
5293	VkShaderFloatControlsIndependence	denormBehaviorIndependence;
5294	VkShaderFloatControlsIndependence	roundingModeIndependence;
5295	VkBool32							shaderSignedZeroInfNanPreserveFloat16;
5296	VkBool32							shaderSignedZeroInfNanPreserveFloat32;
5297	VkBool32							shaderSignedZeroInfNanPreserveFloat64;
5298	VkBool32							shaderDenormPreserveFloat16;
5299	VkBool32							shaderDenormPreserveFloat32;
5300	VkBool32							shaderDenormPreserveFloat64;
5301	VkBool32							shaderDenormFlushToZeroFloat16;
5302	VkBool32							shaderDenormFlushToZeroFloat32;
5303	VkBool32							shaderDenormFlushToZeroFloat64;
5304	VkBool32							shaderRoundingModeRTEFloat16;
5305	VkBool32							shaderRoundingModeRTEFloat32;
5306	VkBool32							shaderRoundingModeRTEFloat64;
5307	VkBool32							shaderRoundingModeRTZFloat16;
5308	VkBool32							shaderRoundingModeRTZFloat32;
5309	VkBool32							shaderRoundingModeRTZFloat64;
5310	uint32_t							maxUpdateAfterBindDescriptorsInAllPools;
5311	VkBool32							shaderUniformBufferArrayNonUniformIndexingNative;
5312	VkBool32							shaderSampledImageArrayNonUniformIndexingNative;
5313	VkBool32							shaderStorageBufferArrayNonUniformIndexingNative;
5314	VkBool32							shaderStorageImageArrayNonUniformIndexingNative;
5315	VkBool32							shaderInputAttachmentArrayNonUniformIndexingNative;
5316	VkBool32							robustBufferAccessUpdateAfterBind;
5317	VkBool32							quadDivergentImplicitLod;
5318	uint32_t							maxPerStageDescriptorUpdateAfterBindSamplers;
5319	uint32_t							maxPerStageDescriptorUpdateAfterBindUniformBuffers;
5320	uint32_t							maxPerStageDescriptorUpdateAfterBindStorageBuffers;
5321	uint32_t							maxPerStageDescriptorUpdateAfterBindSampledImages;
5322	uint32_t							maxPerStageDescriptorUpdateAfterBindStorageImages;
5323	uint32_t							maxPerStageDescriptorUpdateAfterBindInputAttachments;
5324	uint32_t							maxPerStageUpdateAfterBindResources;
5325	uint32_t							maxDescriptorSetUpdateAfterBindSamplers;
5326	uint32_t							maxDescriptorSetUpdateAfterBindUniformBuffers;
5327	uint32_t							maxDescriptorSetUpdateAfterBindUniformBuffersDynamic;
5328	uint32_t							maxDescriptorSetUpdateAfterBindStorageBuffers;
5329	uint32_t							maxDescriptorSetUpdateAfterBindStorageBuffersDynamic;
5330	uint32_t							maxDescriptorSetUpdateAfterBindSampledImages;
5331	uint32_t							maxDescriptorSetUpdateAfterBindStorageImages;
5332	uint32_t							maxDescriptorSetUpdateAfterBindInputAttachments;
5333	VkResolveModeFlags					supportedDepthResolveModes;
5334	VkResolveModeFlags					supportedStencilResolveModes;
5335	VkBool32							independentResolveNone;
5336	VkBool32							independentResolve;
5337	VkBool32							filterMinmaxSingleComponentFormats;
5338	VkBool32							filterMinmaxImageComponentMapping;
5339	uint64_t							maxTimelineSemaphoreValueDifference;
5340	VkSampleCountFlags					framebufferIntegerColorSampleCounts;
5341};
5342
5343struct VkPhysicalDeviceVulkan13Features
5344{
5345	VkStructureType	sType;
5346	void*			pNext;
5347	VkBool32		robustImageAccess;
5348	VkBool32		inlineUniformBlock;
5349	VkBool32		descriptorBindingInlineUniformBlockUpdateAfterBind;
5350	VkBool32		pipelineCreationCacheControl;
5351	VkBool32		privateData;
5352	VkBool32		shaderDemoteToHelperInvocation;
5353	VkBool32		shaderTerminateInvocation;
5354	VkBool32		subgroupSizeControl;
5355	VkBool32		computeFullSubgroups;
5356	VkBool32		synchronization2;
5357	VkBool32		textureCompressionASTC_HDR;
5358	VkBool32		shaderZeroInitializeWorkgroupMemory;
5359	VkBool32		dynamicRendering;
5360	VkBool32		shaderIntegerDotProduct;
5361	VkBool32		maintenance4;
5362};
5363
5364struct VkPhysicalDeviceVulkan13Properties
5365{
5366	VkStructureType		sType;
5367	void*				pNext;
5368	uint32_t			minSubgroupSize;
5369	uint32_t			maxSubgroupSize;
5370	uint32_t			maxComputeWorkgroupSubgroups;
5371	VkShaderStageFlags	requiredSubgroupSizeStages;
5372	uint32_t			maxInlineUniformBlockSize;
5373	uint32_t			maxPerStageDescriptorInlineUniformBlocks;
5374	uint32_t			maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks;
5375	uint32_t			maxDescriptorSetInlineUniformBlocks;
5376	uint32_t			maxDescriptorSetUpdateAfterBindInlineUniformBlocks;
5377	uint32_t			maxInlineUniformTotalSize;
5378	VkBool32			integerDotProduct8BitUnsignedAccelerated;
5379	VkBool32			integerDotProduct8BitSignedAccelerated;
5380	VkBool32			integerDotProduct8BitMixedSignednessAccelerated;
5381	VkBool32			integerDotProduct4x8BitPackedUnsignedAccelerated;
5382	VkBool32			integerDotProduct4x8BitPackedSignedAccelerated;
5383	VkBool32			integerDotProduct4x8BitPackedMixedSignednessAccelerated;
5384	VkBool32			integerDotProduct16BitUnsignedAccelerated;
5385	VkBool32			integerDotProduct16BitSignedAccelerated;
5386	VkBool32			integerDotProduct16BitMixedSignednessAccelerated;
5387	VkBool32			integerDotProduct32BitUnsignedAccelerated;
5388	VkBool32			integerDotProduct32BitSignedAccelerated;
5389	VkBool32			integerDotProduct32BitMixedSignednessAccelerated;
5390	VkBool32			integerDotProduct64BitUnsignedAccelerated;
5391	VkBool32			integerDotProduct64BitSignedAccelerated;
5392	VkBool32			integerDotProduct64BitMixedSignednessAccelerated;
5393	VkBool32			integerDotProductAccumulatingSaturating8BitUnsignedAccelerated;
5394	VkBool32			integerDotProductAccumulatingSaturating8BitSignedAccelerated;
5395	VkBool32			integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated;
5396	VkBool32			integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated;
5397	VkBool32			integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated;
5398	VkBool32			integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated;
5399	VkBool32			integerDotProductAccumulatingSaturating16BitUnsignedAccelerated;
5400	VkBool32			integerDotProductAccumulatingSaturating16BitSignedAccelerated;
5401	VkBool32			integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated;
5402	VkBool32			integerDotProductAccumulatingSaturating32BitUnsignedAccelerated;
5403	VkBool32			integerDotProductAccumulatingSaturating32BitSignedAccelerated;
5404	VkBool32			integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated;
5405	VkBool32			integerDotProductAccumulatingSaturating64BitUnsignedAccelerated;
5406	VkBool32			integerDotProductAccumulatingSaturating64BitSignedAccelerated;
5407	VkBool32			integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated;
5408	VkDeviceSize		storageTexelBufferOffsetAlignmentBytes;
5409	VkBool32			storageTexelBufferOffsetSingleTexelAlignment;
5410	VkDeviceSize		uniformTexelBufferOffsetAlignmentBytes;
5411	VkBool32			uniformTexelBufferOffsetSingleTexelAlignment;
5412	VkDeviceSize		maxBufferSize;
5413};
5414
5415struct VkPipelineCompilerControlCreateInfoAMD
5416{
5417	VkStructureType						sType;
5418	const void*							pNext;
5419	VkPipelineCompilerControlFlagsAMD	compilerControlFlags;
5420};
5421
5422struct VkPhysicalDeviceCoherentMemoryFeaturesAMD
5423{
5424	VkStructureType	sType;
5425	void*			pNext;
5426	VkBool32		deviceCoherentMemory;
5427};
5428
5429struct VkPhysicalDeviceToolProperties
5430{
5431	VkStructureType		sType;
5432	void*				pNext;
5433	char				name[VK_MAX_EXTENSION_NAME_SIZE];
5434	char				version[VK_MAX_EXTENSION_NAME_SIZE];
5435	VkToolPurposeFlags	purposes;
5436	char				description[VK_MAX_DESCRIPTION_SIZE];
5437	char				layer[VK_MAX_EXTENSION_NAME_SIZE];
5438};
5439
5440struct VkSamplerCustomBorderColorCreateInfoEXT
5441{
5442	VkStructureType		sType;
5443	const void*			pNext;
5444	VkClearColorValue	customBorderColor;
5445	VkFormat			format;
5446};
5447
5448struct VkPhysicalDeviceCustomBorderColorPropertiesEXT
5449{
5450	VkStructureType	sType;
5451	void*			pNext;
5452	uint32_t		maxCustomBorderColorSamplers;
5453};
5454
5455struct VkPhysicalDeviceCustomBorderColorFeaturesEXT
5456{
5457	VkStructureType	sType;
5458	void*			pNext;
5459	VkBool32		customBorderColors;
5460	VkBool32		customBorderColorWithoutFormat;
5461};
5462
5463struct VkSamplerBorderColorComponentMappingCreateInfoEXT
5464{
5465	VkStructureType		sType;
5466	const void*			pNext;
5467	VkComponentMapping	components;
5468	VkBool32			srgb;
5469};
5470
5471struct VkPhysicalDeviceBorderColorSwizzleFeaturesEXT
5472{
5473	VkStructureType	sType;
5474	void*			pNext;
5475	VkBool32		borderColorSwizzle;
5476	VkBool32		borderColorSwizzleFromImage;
5477};
5478
5479union VkDeviceOrHostAddressKHR
5480{
5481	VkDeviceAddress	deviceAddress;
5482	void*			hostAddress;
5483};
5484
5485union VkDeviceOrHostAddressConstKHR
5486{
5487	VkDeviceAddress	deviceAddress;
5488	const void*		hostAddress;
5489};
5490
5491struct VkAccelerationStructureGeometryTrianglesDataKHR
5492{
5493	VkStructureType					sType;
5494	const void*						pNext;
5495	VkFormat						vertexFormat;
5496	VkDeviceOrHostAddressConstKHR	vertexData;
5497	VkDeviceSize					vertexStride;
5498	uint32_t						maxVertex;
5499	VkIndexType						indexType;
5500	VkDeviceOrHostAddressConstKHR	indexData;
5501	VkDeviceOrHostAddressConstKHR	transformData;
5502};
5503
5504struct VkAccelerationStructureGeometryAabbsDataKHR
5505{
5506	VkStructureType					sType;
5507	const void*						pNext;
5508	VkDeviceOrHostAddressConstKHR	data;
5509	VkDeviceSize					stride;
5510};
5511
5512struct VkAccelerationStructureGeometryInstancesDataKHR
5513{
5514	VkStructureType					sType;
5515	const void*						pNext;
5516	VkBool32						arrayOfPointers;
5517	VkDeviceOrHostAddressConstKHR	data;
5518};
5519
5520union VkAccelerationStructureGeometryDataKHR
5521{
5522	VkAccelerationStructureGeometryTrianglesDataKHR	triangles;
5523	VkAccelerationStructureGeometryAabbsDataKHR		aabbs;
5524	VkAccelerationStructureGeometryInstancesDataKHR	instances;
5525};
5526
5527struct VkAccelerationStructureGeometryKHR
5528{
5529	VkStructureType							sType;
5530	const void*								pNext;
5531	VkGeometryTypeKHR						geometryType;
5532	VkAccelerationStructureGeometryDataKHR	geometry;
5533	VkGeometryFlagsKHR						flags;
5534};
5535
5536struct VkAccelerationStructureBuildGeometryInfoKHR
5537{
5538	VkStructureType										sType;
5539	const void*											pNext;
5540	VkAccelerationStructureTypeKHR						type;
5541	VkBuildAccelerationStructureFlagsKHR				flags;
5542	VkBuildAccelerationStructureModeKHR					mode;
5543	VkAccelerationStructureKHR							srcAccelerationStructure;
5544	VkAccelerationStructureKHR							dstAccelerationStructure;
5545	uint32_t											geometryCount;
5546	const VkAccelerationStructureGeometryKHR*			pGeometries;
5547	const VkAccelerationStructureGeometryKHR* const*	ppGeometries;
5548	VkDeviceOrHostAddressKHR							scratchData;
5549};
5550
5551struct VkAccelerationStructureBuildRangeInfoKHR
5552{
5553	uint32_t	primitiveCount;
5554	uint32_t	primitiveOffset;
5555	uint32_t	firstVertex;
5556	uint32_t	transformOffset;
5557};
5558
5559struct VkAccelerationStructureCreateInfoKHR
5560{
5561	VkStructureType							sType;
5562	const void*								pNext;
5563	VkAccelerationStructureCreateFlagsKHR	createFlags;
5564	VkBuffer								buffer;
5565	VkDeviceSize							offset;
5566	VkDeviceSize							size;
5567	VkAccelerationStructureTypeKHR			type;
5568	VkDeviceAddress							deviceAddress;
5569};
5570
5571struct VkAabbPositionsKHR
5572{
5573	float	minX;
5574	float	minY;
5575	float	minZ;
5576	float	maxX;
5577	float	maxY;
5578	float	maxZ;
5579};
5580
5581struct VkTransformMatrixKHR
5582{
5583	float	matrix[3][4];
5584};
5585
5586struct VkAccelerationStructureInstanceKHR
5587{
5588	VkTransformMatrixKHR		transform;
5589	uint32_t					instanceCustomIndex:24;
5590	uint32_t					mask:8;
5591	uint32_t					instanceShaderBindingTableRecordOffset:24;
5592	VkGeometryInstanceFlagsKHR	flags:8;
5593	uint64_t					accelerationStructureReference;
5594};
5595
5596struct VkAccelerationStructureDeviceAddressInfoKHR
5597{
5598	VkStructureType				sType;
5599	const void*					pNext;
5600	VkAccelerationStructureKHR	accelerationStructure;
5601};
5602
5603struct VkAccelerationStructureVersionInfoKHR
5604{
5605	VkStructureType	sType;
5606	const void*		pNext;
5607	const uint8_t*	pVersionData;
5608};
5609
5610struct VkCopyAccelerationStructureInfoKHR
5611{
5612	VkStructureType						sType;
5613	const void*							pNext;
5614	VkAccelerationStructureKHR			src;
5615	VkAccelerationStructureKHR			dst;
5616	VkCopyAccelerationStructureModeKHR	mode;
5617};
5618
5619struct VkCopyAccelerationStructureToMemoryInfoKHR
5620{
5621	VkStructureType						sType;
5622	const void*							pNext;
5623	VkAccelerationStructureKHR			src;
5624	VkDeviceOrHostAddressKHR			dst;
5625	VkCopyAccelerationStructureModeKHR	mode;
5626};
5627
5628struct VkCopyMemoryToAccelerationStructureInfoKHR
5629{
5630	VkStructureType						sType;
5631	const void*							pNext;
5632	VkDeviceOrHostAddressConstKHR		src;
5633	VkAccelerationStructureKHR			dst;
5634	VkCopyAccelerationStructureModeKHR	mode;
5635};
5636
5637struct VkRayTracingPipelineInterfaceCreateInfoKHR
5638{
5639	VkStructureType	sType;
5640	const void*		pNext;
5641	uint32_t		maxPipelineRayPayloadSize;
5642	uint32_t		maxPipelineRayHitAttributeSize;
5643};
5644
5645struct VkPipelineLibraryCreateInfoKHR
5646{
5647	VkStructureType		sType;
5648	const void*			pNext;
5649	uint32_t			libraryCount;
5650	const VkPipeline*	pLibraries;
5651};
5652
5653struct VkRayTracingPipelineCreateInfoKHR
5654{
5655	VkStructureType										sType;
5656	const void*											pNext;
5657	VkPipelineCreateFlags								flags;
5658	uint32_t											stageCount;
5659	const VkPipelineShaderStageCreateInfo*				pStages;
5660	uint32_t											groupCount;
5661	const VkRayTracingShaderGroupCreateInfoKHR*			pGroups;
5662	uint32_t											maxPipelineRayRecursionDepth;
5663	const VkPipelineLibraryCreateInfoKHR*				pLibraryInfo;
5664	const VkRayTracingPipelineInterfaceCreateInfoKHR*	pLibraryInterface;
5665	const VkPipelineDynamicStateCreateInfo*				pDynamicState;
5666	VkPipelineLayout									layout;
5667	VkPipeline											basePipelineHandle;
5668	int32_t												basePipelineIndex;
5669};
5670
5671struct VkPhysicalDeviceExtendedDynamicStateFeaturesEXT
5672{
5673	VkStructureType	sType;
5674	void*			pNext;
5675	VkBool32		extendedDynamicState;
5676};
5677
5678struct VkPhysicalDeviceExtendedDynamicState2FeaturesEXT
5679{
5680	VkStructureType	sType;
5681	void*			pNext;
5682	VkBool32		extendedDynamicState2;
5683	VkBool32		extendedDynamicState2LogicOp;
5684	VkBool32		extendedDynamicState2PatchControlPoints;
5685};
5686
5687struct VkPhysicalDeviceExtendedDynamicState3FeaturesEXT
5688{
5689	VkStructureType	sType;
5690	void*			pNext;
5691	VkBool32		extendedDynamicState3TessellationDomainOrigin;
5692	VkBool32		extendedDynamicState3DepthClampEnable;
5693	VkBool32		extendedDynamicState3PolygonMode;
5694	VkBool32		extendedDynamicState3RasterizationSamples;
5695	VkBool32		extendedDynamicState3SampleMask;
5696	VkBool32		extendedDynamicState3AlphaToCoverageEnable;
5697	VkBool32		extendedDynamicState3AlphaToOneEnable;
5698	VkBool32		extendedDynamicState3LogicOpEnable;
5699	VkBool32		extendedDynamicState3ColorBlendEnable;
5700	VkBool32		extendedDynamicState3ColorBlendEquation;
5701	VkBool32		extendedDynamicState3ColorWriteMask;
5702	VkBool32		extendedDynamicState3RasterizationStream;
5703	VkBool32		extendedDynamicState3ConservativeRasterizationMode;
5704	VkBool32		extendedDynamicState3ExtraPrimitiveOverestimationSize;
5705	VkBool32		extendedDynamicState3DepthClipEnable;
5706	VkBool32		extendedDynamicState3SampleLocationsEnable;
5707	VkBool32		extendedDynamicState3ColorBlendAdvanced;
5708	VkBool32		extendedDynamicState3ProvokingVertexMode;
5709	VkBool32		extendedDynamicState3LineRasterizationMode;
5710	VkBool32		extendedDynamicState3LineStippleEnable;
5711	VkBool32		extendedDynamicState3DepthClipNegativeOneToOne;
5712	VkBool32		extendedDynamicState3ViewportWScalingEnable;
5713	VkBool32		extendedDynamicState3ViewportSwizzle;
5714	VkBool32		extendedDynamicState3CoverageToColorEnable;
5715	VkBool32		extendedDynamicState3CoverageToColorLocation;
5716	VkBool32		extendedDynamicState3CoverageModulationMode;
5717	VkBool32		extendedDynamicState3CoverageModulationTableEnable;
5718	VkBool32		extendedDynamicState3CoverageModulationTable;
5719	VkBool32		extendedDynamicState3CoverageReductionMode;
5720	VkBool32		extendedDynamicState3RepresentativeFragmentTestEnable;
5721	VkBool32		extendedDynamicState3ShadingRateImageEnable;
5722};
5723
5724struct VkPhysicalDeviceExtendedDynamicState3PropertiesEXT
5725{
5726	VkStructureType	sType;
5727	void*			pNext;
5728	VkBool32		dynamicPrimitiveTopologyUnrestricted;
5729};
5730
5731struct VkColorBlendEquationEXT
5732{
5733	VkBlendFactor	srcColorBlendFactor;
5734	VkBlendFactor	dstColorBlendFactor;
5735	VkBlendOp		colorBlendOp;
5736	VkBlendFactor	srcAlphaBlendFactor;
5737	VkBlendFactor	dstAlphaBlendFactor;
5738	VkBlendOp		alphaBlendOp;
5739};
5740
5741struct VkColorBlendAdvancedEXT
5742{
5743	VkBlendOp			advancedBlendOp;
5744	VkBool32			srcPremultiplied;
5745	VkBool32			dstPremultiplied;
5746	VkBlendOverlapEXT	blendOverlap;
5747	VkBool32			clampResults;
5748};
5749
5750struct VkRenderPassTransformBeginInfoQCOM
5751{
5752	VkStructureType					sType;
5753	void*							pNext;
5754	VkSurfaceTransformFlagBitsKHR	transform;
5755};
5756
5757struct VkCopyCommandTransformInfoQCOM
5758{
5759	VkStructureType					sType;
5760	const void*						pNext;
5761	VkSurfaceTransformFlagBitsKHR	transform;
5762};
5763
5764struct VkCommandBufferInheritanceRenderPassTransformInfoQCOM
5765{
5766	VkStructureType					sType;
5767	void*							pNext;
5768	VkSurfaceTransformFlagBitsKHR	transform;
5769	VkRect2D						renderArea;
5770};
5771
5772struct VkPhysicalDeviceDiagnosticsConfigFeaturesNV
5773{
5774	VkStructureType	sType;
5775	void*			pNext;
5776	VkBool32		diagnosticsConfig;
5777};
5778
5779struct VkDeviceDiagnosticsConfigCreateInfoNV
5780{
5781	VkStructureType						sType;
5782	const void*							pNext;
5783	VkDeviceDiagnosticsConfigFlagsNV	flags;
5784};
5785
5786struct VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures
5787{
5788	VkStructureType	sType;
5789	void*			pNext;
5790	VkBool32		shaderZeroInitializeWorkgroupMemory;
5791};
5792
5793struct VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR
5794{
5795	VkStructureType	sType;
5796	void*			pNext;
5797	VkBool32		shaderSubgroupUniformControlFlow;
5798};
5799
5800struct VkPhysicalDeviceRobustness2FeaturesEXT
5801{
5802	VkStructureType	sType;
5803	void*			pNext;
5804	VkBool32		robustBufferAccess2;
5805	VkBool32		robustImageAccess2;
5806	VkBool32		nullDescriptor;
5807};
5808
5809struct VkPhysicalDeviceRobustness2PropertiesEXT
5810{
5811	VkStructureType	sType;
5812	void*			pNext;
5813	VkDeviceSize	robustStorageBufferAccessSizeAlignment;
5814	VkDeviceSize	robustUniformBufferAccessSizeAlignment;
5815};
5816
5817struct VkPhysicalDeviceImageRobustnessFeatures
5818{
5819	VkStructureType	sType;
5820	void*			pNext;
5821	VkBool32		robustImageAccess;
5822};
5823
5824struct VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR
5825{
5826	VkStructureType	sType;
5827	void*			pNext;
5828	VkBool32		workgroupMemoryExplicitLayout;
5829	VkBool32		workgroupMemoryExplicitLayoutScalarBlockLayout;
5830	VkBool32		workgroupMemoryExplicitLayout8BitAccess;
5831	VkBool32		workgroupMemoryExplicitLayout16BitAccess;
5832};
5833
5834struct VkPhysicalDevicePortabilitySubsetFeaturesKHR
5835{
5836	VkStructureType	sType;
5837	void*			pNext;
5838	VkBool32		constantAlphaColorBlendFactors;
5839	VkBool32		events;
5840	VkBool32		imageViewFormatReinterpretation;
5841	VkBool32		imageViewFormatSwizzle;
5842	VkBool32		imageView2DOn3DImage;
5843	VkBool32		multisampleArrayImage;
5844	VkBool32		mutableComparisonSamplers;
5845	VkBool32		pointPolygons;
5846	VkBool32		samplerMipLodBias;
5847	VkBool32		separateStencilMaskRef;
5848	VkBool32		shaderSampleRateInterpolationFunctions;
5849	VkBool32		tessellationIsolines;
5850	VkBool32		tessellationPointMode;
5851	VkBool32		triangleFans;
5852	VkBool32		vertexAttributeAccessBeyondStride;
5853};
5854
5855struct VkPhysicalDevicePortabilitySubsetPropertiesKHR
5856{
5857	VkStructureType	sType;
5858	void*			pNext;
5859	uint32_t		minVertexInputBindingStrideAlignment;
5860};
5861
5862struct VkPhysicalDevice4444FormatsFeaturesEXT
5863{
5864	VkStructureType	sType;
5865	void*			pNext;
5866	VkBool32		formatA4R4G4B4;
5867	VkBool32		formatA4B4G4R4;
5868};
5869
5870struct VkPhysicalDeviceSubpassShadingFeaturesHUAWEI
5871{
5872	VkStructureType	sType;
5873	void*			pNext;
5874	VkBool32		subpassShading;
5875};
5876
5877struct VkBufferCopy2
5878{
5879	VkStructureType	sType;
5880	const void*		pNext;
5881	VkDeviceSize	srcOffset;
5882	VkDeviceSize	dstOffset;
5883	VkDeviceSize	size;
5884};
5885
5886struct VkImageCopy2
5887{
5888	VkStructureType				sType;
5889	const void*					pNext;
5890	VkImageSubresourceLayers	srcSubresource;
5891	VkOffset3D					srcOffset;
5892	VkImageSubresourceLayers	dstSubresource;
5893	VkOffset3D					dstOffset;
5894	VkExtent3D					extent;
5895};
5896
5897struct VkImageBlit2
5898{
5899	VkStructureType				sType;
5900	const void*					pNext;
5901	VkImageSubresourceLayers	srcSubresource;
5902	VkOffset3D					srcOffsets[2];
5903	VkImageSubresourceLayers	dstSubresource;
5904	VkOffset3D					dstOffsets[2];
5905};
5906
5907struct VkBufferImageCopy2
5908{
5909	VkStructureType				sType;
5910	const void*					pNext;
5911	VkDeviceSize				bufferOffset;
5912	uint32_t					bufferRowLength;
5913	uint32_t					bufferImageHeight;
5914	VkImageSubresourceLayers	imageSubresource;
5915	VkOffset3D					imageOffset;
5916	VkExtent3D					imageExtent;
5917};
5918
5919struct VkImageResolve2
5920{
5921	VkStructureType				sType;
5922	const void*					pNext;
5923	VkImageSubresourceLayers	srcSubresource;
5924	VkOffset3D					srcOffset;
5925	VkImageSubresourceLayers	dstSubresource;
5926	VkOffset3D					dstOffset;
5927	VkExtent3D					extent;
5928};
5929
5930struct VkCopyBufferInfo2
5931{
5932	VkStructureType			sType;
5933	const void*				pNext;
5934	VkBuffer				srcBuffer;
5935	VkBuffer				dstBuffer;
5936	uint32_t				regionCount;
5937	const VkBufferCopy2*	pRegions;
5938};
5939
5940struct VkCopyImageInfo2
5941{
5942	VkStructureType		sType;
5943	const void*			pNext;
5944	VkImage				srcImage;
5945	VkImageLayout		srcImageLayout;
5946	VkImage				dstImage;
5947	VkImageLayout		dstImageLayout;
5948	uint32_t			regionCount;
5949	const VkImageCopy2*	pRegions;
5950};
5951
5952struct VkBlitImageInfo2
5953{
5954	VkStructureType		sType;
5955	const void*			pNext;
5956	VkImage				srcImage;
5957	VkImageLayout		srcImageLayout;
5958	VkImage				dstImage;
5959	VkImageLayout		dstImageLayout;
5960	uint32_t			regionCount;
5961	const VkImageBlit2*	pRegions;
5962	VkFilter			filter;
5963};
5964
5965struct VkCopyBufferToImageInfo2
5966{
5967	VkStructureType				sType;
5968	const void*					pNext;
5969	VkBuffer					srcBuffer;
5970	VkImage						dstImage;
5971	VkImageLayout				dstImageLayout;
5972	uint32_t					regionCount;
5973	const VkBufferImageCopy2*	pRegions;
5974};
5975
5976struct VkCopyImageToBufferInfo2
5977{
5978	VkStructureType				sType;
5979	const void*					pNext;
5980	VkImage						srcImage;
5981	VkImageLayout				srcImageLayout;
5982	VkBuffer					dstBuffer;
5983	uint32_t					regionCount;
5984	const VkBufferImageCopy2*	pRegions;
5985};
5986
5987struct VkResolveImageInfo2
5988{
5989	VkStructureType			sType;
5990	const void*				pNext;
5991	VkImage					srcImage;
5992	VkImageLayout			srcImageLayout;
5993	VkImage					dstImage;
5994	VkImageLayout			dstImageLayout;
5995	uint32_t				regionCount;
5996	const VkImageResolve2*	pRegions;
5997};
5998
5999struct VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT
6000{
6001	VkStructureType	sType;
6002	void*			pNext;
6003	VkBool32		shaderImageInt64Atomics;
6004	VkBool32		sparseImageInt64Atomics;
6005};
6006
6007struct VkFragmentShadingRateAttachmentInfoKHR
6008{
6009	VkStructureType					sType;
6010	const void*						pNext;
6011	const VkAttachmentReference2*	pFragmentShadingRateAttachment;
6012	VkExtent2D						shadingRateAttachmentTexelSize;
6013};
6014
6015struct VkPipelineFragmentShadingRateStateCreateInfoKHR
6016{
6017	VkStructureType						sType;
6018	const void*							pNext;
6019	VkExtent2D							fragmentSize;
6020	VkFragmentShadingRateCombinerOpKHR	combinerOps[2];
6021};
6022
6023struct VkPhysicalDeviceFragmentShadingRateFeaturesKHR
6024{
6025	VkStructureType	sType;
6026	void*			pNext;
6027	VkBool32		pipelineFragmentShadingRate;
6028	VkBool32		primitiveFragmentShadingRate;
6029	VkBool32		attachmentFragmentShadingRate;
6030};
6031
6032struct VkPhysicalDeviceFragmentShadingRatePropertiesKHR
6033{
6034	VkStructureType			sType;
6035	void*					pNext;
6036	VkExtent2D				minFragmentShadingRateAttachmentTexelSize;
6037	VkExtent2D				maxFragmentShadingRateAttachmentTexelSize;
6038	uint32_t				maxFragmentShadingRateAttachmentTexelSizeAspectRatio;
6039	VkBool32				primitiveFragmentShadingRateWithMultipleViewports;
6040	VkBool32				layeredShadingRateAttachments;
6041	VkBool32				fragmentShadingRateNonTrivialCombinerOps;
6042	VkExtent2D				maxFragmentSize;
6043	uint32_t				maxFragmentSizeAspectRatio;
6044	uint32_t				maxFragmentShadingRateCoverageSamples;
6045	VkSampleCountFlagBits	maxFragmentShadingRateRasterizationSamples;
6046	VkBool32				fragmentShadingRateWithShaderDepthStencilWrites;
6047	VkBool32				fragmentShadingRateWithSampleMask;
6048	VkBool32				fragmentShadingRateWithShaderSampleMask;
6049	VkBool32				fragmentShadingRateWithConservativeRasterization;
6050	VkBool32				fragmentShadingRateWithFragmentShaderInterlock;
6051	VkBool32				fragmentShadingRateWithCustomSampleLocations;
6052	VkBool32				fragmentShadingRateStrictMultiplyCombiner;
6053};
6054
6055struct VkPhysicalDeviceFragmentShadingRateKHR
6056{
6057	VkStructureType		sType;
6058	void*				pNext;
6059	VkSampleCountFlags	sampleCounts;
6060	VkExtent2D			fragmentSize;
6061};
6062
6063struct VkPhysicalDeviceShaderTerminateInvocationFeatures
6064{
6065	VkStructureType	sType;
6066	void*			pNext;
6067	VkBool32		shaderTerminateInvocation;
6068};
6069
6070struct VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV
6071{
6072	VkStructureType	sType;
6073	void*			pNext;
6074	VkBool32		fragmentShadingRateEnums;
6075	VkBool32		supersampleFragmentShadingRates;
6076	VkBool32		noInvocationFragmentShadingRates;
6077};
6078
6079struct VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV
6080{
6081	VkStructureType			sType;
6082	void*					pNext;
6083	VkSampleCountFlagBits	maxFragmentShadingRateInvocationCount;
6084};
6085
6086struct VkPipelineFragmentShadingRateEnumStateCreateInfoNV
6087{
6088	VkStructureType						sType;
6089	const void*							pNext;
6090	VkFragmentShadingRateTypeNV			shadingRateType;
6091	VkFragmentShadingRateNV				shadingRate;
6092	VkFragmentShadingRateCombinerOpKHR	combinerOps[2];
6093};
6094
6095struct VkAccelerationStructureBuildSizesInfoKHR
6096{
6097	VkStructureType	sType;
6098	const void*		pNext;
6099	VkDeviceSize	accelerationStructureSize;
6100	VkDeviceSize	updateScratchSize;
6101	VkDeviceSize	buildScratchSize;
6102};
6103
6104struct VkPhysicalDeviceImage2DViewOf3DFeaturesEXT
6105{
6106	VkStructureType	sType;
6107	void*			pNext;
6108	VkBool32		image2DViewOf3D;
6109	VkBool32		sampler2DViewOf3D;
6110};
6111
6112struct VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT
6113{
6114	VkStructureType	sType;
6115	void*			pNext;
6116	VkBool32		mutableDescriptorType;
6117};
6118
6119struct VkMutableDescriptorTypeListEXT
6120{
6121	uint32_t				descriptorTypeCount;
6122	const VkDescriptorType*	pDescriptorTypes;
6123};
6124
6125struct VkMutableDescriptorTypeCreateInfoEXT
6126{
6127	VkStructureType							sType;
6128	const void*								pNext;
6129	uint32_t								mutableDescriptorTypeListCount;
6130	const VkMutableDescriptorTypeListEXT*	pMutableDescriptorTypeLists;
6131};
6132
6133struct VkPhysicalDeviceDepthClipControlFeaturesEXT
6134{
6135	VkStructureType	sType;
6136	void*			pNext;
6137	VkBool32		depthClipControl;
6138};
6139
6140struct VkPipelineViewportDepthClipControlCreateInfoEXT
6141{
6142	VkStructureType	sType;
6143	const void*		pNext;
6144	VkBool32		negativeOneToOne;
6145};
6146
6147struct VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT
6148{
6149	VkStructureType	sType;
6150	void*			pNext;
6151	VkBool32		vertexInputDynamicState;
6152};
6153
6154struct VkPhysicalDeviceExternalMemoryRDMAFeaturesNV
6155{
6156	VkStructureType	sType;
6157	void*			pNext;
6158	VkBool32		externalMemoryRDMA;
6159};
6160
6161struct VkVertexInputBindingDescription2EXT
6162{
6163	VkStructureType		sType;
6164	void*				pNext;
6165	uint32_t			binding;
6166	uint32_t			stride;
6167	VkVertexInputRate	inputRate;
6168	uint32_t			divisor;
6169};
6170
6171struct VkVertexInputAttributeDescription2EXT
6172{
6173	VkStructureType	sType;
6174	void*			pNext;
6175	uint32_t		location;
6176	uint32_t		binding;
6177	VkFormat		format;
6178	uint32_t		offset;
6179};
6180
6181struct VkPhysicalDeviceColorWriteEnableFeaturesEXT
6182{
6183	VkStructureType	sType;
6184	void*			pNext;
6185	VkBool32		colorWriteEnable;
6186};
6187
6188struct VkPipelineColorWriteCreateInfoEXT
6189{
6190	VkStructureType	sType;
6191	const void*		pNext;
6192	uint32_t		attachmentCount;
6193	const VkBool32*	pColorWriteEnables;
6194};
6195
6196struct VkMemoryBarrier2
6197{
6198	VkStructureType			sType;
6199	const void*				pNext;
6200	VkPipelineStageFlags2	srcStageMask;
6201	VkAccessFlags2			srcAccessMask;
6202	VkPipelineStageFlags2	dstStageMask;
6203	VkAccessFlags2			dstAccessMask;
6204};
6205
6206struct VkImageMemoryBarrier2
6207{
6208	VkStructureType			sType;
6209	const void*				pNext;
6210	VkPipelineStageFlags2	srcStageMask;
6211	VkAccessFlags2			srcAccessMask;
6212	VkPipelineStageFlags2	dstStageMask;
6213	VkAccessFlags2			dstAccessMask;
6214	VkImageLayout			oldLayout;
6215	VkImageLayout			newLayout;
6216	uint32_t				srcQueueFamilyIndex;
6217	uint32_t				dstQueueFamilyIndex;
6218	VkImage					image;
6219	VkImageSubresourceRange	subresourceRange;
6220};
6221
6222struct VkBufferMemoryBarrier2
6223{
6224	VkStructureType			sType;
6225	const void*				pNext;
6226	VkPipelineStageFlags2	srcStageMask;
6227	VkAccessFlags2			srcAccessMask;
6228	VkPipelineStageFlags2	dstStageMask;
6229	VkAccessFlags2			dstAccessMask;
6230	uint32_t				srcQueueFamilyIndex;
6231	uint32_t				dstQueueFamilyIndex;
6232	VkBuffer				buffer;
6233	VkDeviceSize			offset;
6234	VkDeviceSize			size;
6235};
6236
6237struct VkDependencyInfo
6238{
6239	VkStructureType					sType;
6240	const void*						pNext;
6241	VkDependencyFlags				dependencyFlags;
6242	uint32_t						memoryBarrierCount;
6243	const VkMemoryBarrier2*			pMemoryBarriers;
6244	uint32_t						bufferMemoryBarrierCount;
6245	const VkBufferMemoryBarrier2*	pBufferMemoryBarriers;
6246	uint32_t						imageMemoryBarrierCount;
6247	const VkImageMemoryBarrier2*	pImageMemoryBarriers;
6248};
6249
6250struct VkSemaphoreSubmitInfo
6251{
6252	VkStructureType			sType;
6253	const void*				pNext;
6254	VkSemaphore				semaphore;
6255	uint64_t				value;
6256	VkPipelineStageFlags2	stageMask;
6257	uint32_t				deviceIndex;
6258};
6259
6260struct VkCommandBufferSubmitInfo
6261{
6262	VkStructureType	sType;
6263	const void*		pNext;
6264	VkCommandBuffer	commandBuffer;
6265	uint32_t		deviceMask;
6266};
6267
6268struct VkSubmitInfo2
6269{
6270	VkStructureType						sType;
6271	const void*							pNext;
6272	VkSubmitFlags						flags;
6273	uint32_t							waitSemaphoreInfoCount;
6274	const VkSemaphoreSubmitInfo*		pWaitSemaphoreInfos;
6275	uint32_t							commandBufferInfoCount;
6276	const VkCommandBufferSubmitInfo*	pCommandBufferInfos;
6277	uint32_t							signalSemaphoreInfoCount;
6278	const VkSemaphoreSubmitInfo*		pSignalSemaphoreInfos;
6279};
6280
6281struct VkQueueFamilyCheckpointProperties2NV
6282{
6283	VkStructureType			sType;
6284	void*					pNext;
6285	VkPipelineStageFlags2	checkpointExecutionStageMask;
6286};
6287
6288struct VkCheckpointData2NV
6289{
6290	VkStructureType			sType;
6291	void*					pNext;
6292	VkPipelineStageFlags2	stage;
6293	void*					pCheckpointMarker;
6294};
6295
6296struct VkPhysicalDeviceSynchronization2Features
6297{
6298	VkStructureType	sType;
6299	void*			pNext;
6300	VkBool32		synchronization2;
6301};
6302
6303struct VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT
6304{
6305	VkStructureType	sType;
6306	void*			pNext;
6307	VkBool32		primitivesGeneratedQuery;
6308	VkBool32		primitivesGeneratedQueryWithRasterizerDiscard;
6309	VkBool32		primitivesGeneratedQueryWithNonZeroStreams;
6310};
6311
6312struct VkPhysicalDeviceLegacyDitheringFeaturesEXT
6313{
6314	VkStructureType	sType;
6315	void*			pNext;
6316	VkBool32		legacyDithering;
6317};
6318
6319struct VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT
6320{
6321	VkStructureType	sType;
6322	void*			pNext;
6323	VkBool32		multisampledRenderToSingleSampled;
6324};
6325
6326struct VkSubpassResolvePerformanceQueryEXT
6327{
6328	VkStructureType	sType;
6329	void*			pNext;
6330	VkBool32		optimal;
6331};
6332
6333struct VkMultisampledRenderToSingleSampledInfoEXT
6334{
6335	VkStructureType			sType;
6336	const void*				pNext;
6337	VkBool32				multisampledRenderToSingleSampledEnable;
6338	VkSampleCountFlagBits	rasterizationSamples;
6339};
6340
6341struct VkPhysicalDevicePipelineProtectedAccessFeaturesEXT
6342{
6343	VkStructureType	sType;
6344	void*			pNext;
6345	VkBool32		pipelineProtectedAccess;
6346};
6347
6348struct VkQueueFamilyVideoPropertiesKHR
6349{
6350	VkStructureType					sType;
6351	void*							pNext;
6352	VkVideoCodecOperationFlagsKHR	videoCodecOperations;
6353};
6354
6355struct VkQueueFamilyQueryResultStatusPropertiesKHR
6356{
6357	VkStructureType	sType;
6358	void*			pNext;
6359	VkBool32		queryResultStatusSupport;
6360};
6361
6362struct VkPhysicalDeviceVideoFormatInfoKHR
6363{
6364	VkStructureType		sType;
6365	const void*			pNext;
6366	VkImageUsageFlags	imageUsage;
6367};
6368
6369struct VkVideoFormatPropertiesKHR
6370{
6371	VkStructureType		sType;
6372	void*				pNext;
6373	VkFormat			format;
6374	VkComponentMapping	componentMapping;
6375	VkImageCreateFlags	imageCreateFlags;
6376	VkImageType			imageType;
6377	VkImageTiling		imageTiling;
6378	VkImageUsageFlags	imageUsageFlags;
6379};
6380
6381struct VkVideoProfileInfoKHR
6382{
6383	VkStructureType						sType;
6384	const void*							pNext;
6385	VkVideoCodecOperationFlagBitsKHR	videoCodecOperation;
6386	VkVideoChromaSubsamplingFlagsKHR	chromaSubsampling;
6387	VkVideoComponentBitDepthFlagsKHR	lumaBitDepth;
6388	VkVideoComponentBitDepthFlagsKHR	chromaBitDepth;
6389};
6390
6391struct VkVideoProfileListInfoKHR
6392{
6393	VkStructureType					sType;
6394	const void*						pNext;
6395	uint32_t						profileCount;
6396	const VkVideoProfileInfoKHR*	pProfiles;
6397};
6398
6399struct VkVideoCapabilitiesKHR
6400{
6401	VkStructureType				sType;
6402	void*						pNext;
6403	VkVideoCapabilityFlagsKHR	flags;
6404	VkDeviceSize				minBitstreamBufferOffsetAlignment;
6405	VkDeviceSize				minBitstreamBufferSizeAlignment;
6406	VkExtent2D					pictureAccessGranularity;
6407	VkExtent2D					minCodedExtent;
6408	VkExtent2D					maxCodedExtent;
6409	uint32_t					maxDpbSlots;
6410	uint32_t					maxActiveReferencePictures;
6411	VkExtensionProperties		stdHeaderVersion;
6412};
6413
6414struct VkVideoSessionMemoryRequirementsKHR
6415{
6416	VkStructureType			sType;
6417	void*					pNext;
6418	uint32_t				memoryBindIndex;
6419	VkMemoryRequirements	memoryRequirements;
6420};
6421
6422struct VkBindVideoSessionMemoryInfoKHR
6423{
6424	VkStructureType	sType;
6425	const void*		pNext;
6426	uint32_t		memoryBindIndex;
6427	VkDeviceMemory	memory;
6428	VkDeviceSize	memoryOffset;
6429	VkDeviceSize	memorySize;
6430};
6431
6432struct VkVideoPictureResourceInfoKHR
6433{
6434	VkStructureType	sType;
6435	const void*		pNext;
6436	VkOffset2D		codedOffset;
6437	VkExtent2D		codedExtent;
6438	uint32_t		baseArrayLayer;
6439	VkImageView		imageViewBinding;
6440};
6441
6442struct VkVideoReferenceSlotInfoKHR
6443{
6444	VkStructureType							sType;
6445	const void*								pNext;
6446	int32_t									slotIndex;
6447	const VkVideoPictureResourceInfoKHR*	pPictureResource;
6448};
6449
6450struct VkVideoDecodeCapabilitiesKHR
6451{
6452	VkStructureType					sType;
6453	void*							pNext;
6454	VkVideoDecodeCapabilityFlagsKHR	flags;
6455};
6456
6457struct VkVideoDecodeUsageInfoKHR
6458{
6459	VkStructureType				sType;
6460	const void*					pNext;
6461	VkVideoDecodeUsageFlagsKHR	videoUsageHints;
6462};
6463
6464struct VkVideoDecodeInfoKHR
6465{
6466	VkStructureType						sType;
6467	const void*							pNext;
6468	VkVideoDecodeFlagsKHR				flags;
6469	VkBuffer							srcBuffer;
6470	VkDeviceSize						srcBufferOffset;
6471	VkDeviceSize						srcBufferRange;
6472	VkVideoPictureResourceInfoKHR		dstPictureResource;
6473	const VkVideoReferenceSlotInfoKHR*	pSetupReferenceSlot;
6474	uint32_t							referenceSlotCount;
6475	const VkVideoReferenceSlotInfoKHR*	pReferenceSlots;
6476};
6477
6478struct VkVideoDecodeH264ProfileInfoKHR
6479{
6480	VkStructureType								sType;
6481	const void*									pNext;
6482	StdVideoH264ProfileIdc						stdProfileIdc;
6483	VkVideoDecodeH264PictureLayoutFlagBitsKHR	pictureLayout;
6484};
6485
6486struct VkVideoDecodeH264CapabilitiesKHR
6487{
6488	VkStructureType			sType;
6489	void*					pNext;
6490	StdVideoH264LevelIdc	maxLevelIdc;
6491	VkOffset2D				fieldOffsetGranularity;
6492};
6493
6494struct VkVideoDecodeH265ProfileInfoKHR
6495{
6496	VkStructureType			sType;
6497	const void*				pNext;
6498	StdVideoH265ProfileIdc	stdProfileIdc;
6499};
6500
6501struct VkVideoDecodeH265CapabilitiesKHR
6502{
6503	VkStructureType			sType;
6504	void*					pNext;
6505	StdVideoH265LevelIdc	maxLevelIdc;
6506};
6507
6508struct VkVideoSessionCreateInfoKHR
6509{
6510	VkStructureType					sType;
6511	const void*						pNext;
6512	uint32_t						queueFamilyIndex;
6513	VkVideoSessionCreateFlagsKHR	flags;
6514	const VkVideoProfileInfoKHR*	pVideoProfile;
6515	VkFormat						pictureFormat;
6516	VkExtent2D						maxCodedExtent;
6517	VkFormat						referencePictureFormat;
6518	uint32_t						maxDpbSlots;
6519	uint32_t						maxActiveReferencePictures;
6520	const VkExtensionProperties*	pStdHeaderVersion;
6521};
6522
6523struct VkVideoSessionParametersCreateInfoKHR
6524{
6525	VkStructureType							sType;
6526	const void*								pNext;
6527	VkVideoSessionParametersCreateFlagsKHR	flags;
6528	VkVideoSessionParametersKHR				videoSessionParametersTemplate;
6529	VkVideoSessionKHR						videoSession;
6530};
6531
6532struct VkVideoSessionParametersUpdateInfoKHR
6533{
6534	VkStructureType	sType;
6535	const void*		pNext;
6536	uint32_t		updateSequenceCount;
6537};
6538
6539struct VkVideoBeginCodingInfoKHR
6540{
6541	VkStructureType						sType;
6542	const void*							pNext;
6543	VkVideoBeginCodingFlagsKHR			flags;
6544	VkVideoSessionKHR					videoSession;
6545	VkVideoSessionParametersKHR			videoSessionParameters;
6546	uint32_t							referenceSlotCount;
6547	const VkVideoReferenceSlotInfoKHR*	pReferenceSlots;
6548};
6549
6550struct VkVideoEndCodingInfoKHR
6551{
6552	VkStructureType				sType;
6553	const void*					pNext;
6554	VkVideoEndCodingFlagsKHR	flags;
6555};
6556
6557struct VkVideoCodingControlInfoKHR
6558{
6559	VkStructureType					sType;
6560	const void*						pNext;
6561	VkVideoCodingControlFlagsKHR	flags;
6562};
6563
6564struct VkVideoEncodeUsageInfoKHR
6565{
6566	VkStructureType					sType;
6567	const void*						pNext;
6568	VkVideoEncodeUsageFlagsKHR		videoUsageHints;
6569	VkVideoEncodeContentFlagsKHR	videoContentHints;
6570	VkVideoEncodeTuningModeKHR		tuningMode;
6571};
6572
6573struct VkVideoEncodeInfoKHR
6574{
6575	VkStructureType						sType;
6576	const void*							pNext;
6577	VkVideoEncodeFlagsKHR				flags;
6578	uint32_t							qualityLevel;
6579	VkBuffer							dstBitstreamBuffer;
6580	VkDeviceSize						dstBitstreamBufferOffset;
6581	VkDeviceSize						dstBitstreamBufferMaxRange;
6582	VkVideoPictureResourceInfoKHR		srcPictureResource;
6583	const VkVideoReferenceSlotInfoKHR*	pSetupReferenceSlot;
6584	uint32_t							referenceSlotCount;
6585	const VkVideoReferenceSlotInfoKHR*	pReferenceSlots;
6586	uint32_t							precedingExternallyEncodedBytes;
6587};
6588
6589struct VkVideoEncodeRateControlLayerInfoKHR
6590{
6591	VkStructureType	sType;
6592	const void*		pNext;
6593	uint32_t		averageBitrate;
6594	uint32_t		maxBitrate;
6595	uint32_t		frameRateNumerator;
6596	uint32_t		frameRateDenominator;
6597	uint32_t		virtualBufferSizeInMs;
6598	uint32_t		initialVirtualBufferSizeInMs;
6599};
6600
6601struct VkVideoEncodeRateControlInfoKHR
6602{
6603	VkStructureType								sType;
6604	const void*									pNext;
6605	VkVideoEncodeRateControlFlagsKHR			flags;
6606	VkVideoEncodeRateControlModeFlagBitsKHR		rateControlMode;
6607	uint8_t										layerCount;
6608	const VkVideoEncodeRateControlLayerInfoKHR*	pLayerConfigs;
6609};
6610
6611struct VkVideoEncodeCapabilitiesKHR
6612{
6613	VkStructureType							sType;
6614	void*									pNext;
6615	VkVideoEncodeCapabilityFlagsKHR			flags;
6616	VkVideoEncodeRateControlModeFlagsKHR	rateControlModes;
6617	uint8_t									rateControlLayerCount;
6618	uint8_t									qualityLevelCount;
6619	VkExtent2D								inputImageDataFillAlignment;
6620};
6621
6622struct VkVideoEncodeH264CapabilitiesEXT
6623{
6624	VkStructureType						sType;
6625	void*								pNext;
6626	VkVideoEncodeH264CapabilityFlagsEXT	flags;
6627	VkVideoEncodeH264InputModeFlagsEXT	inputModeFlags;
6628	VkVideoEncodeH264OutputModeFlagsEXT	outputModeFlags;
6629	uint8_t								maxPPictureL0ReferenceCount;
6630	uint8_t								maxBPictureL0ReferenceCount;
6631	uint8_t								maxL1ReferenceCount;
6632	VkBool32							motionVectorsOverPicBoundariesFlag;
6633	uint32_t							maxBytesPerPicDenom;
6634	uint32_t							maxBitsPerMbDenom;
6635	uint32_t							log2MaxMvLengthHorizontal;
6636	uint32_t							log2MaxMvLengthVertical;
6637};
6638
6639struct VkVideoEncodeH264EmitPictureParametersInfoEXT
6640{
6641	VkStructureType	sType;
6642	const void*		pNext;
6643	uint8_t			spsId;
6644	VkBool32		emitSpsEnable;
6645	uint32_t		ppsIdEntryCount;
6646	const uint8_t*	ppsIdEntries;
6647};
6648
6649struct VkVideoEncodeH264ProfileInfoEXT
6650{
6651	VkStructureType			sType;
6652	const void*				pNext;
6653	StdVideoH264ProfileIdc	stdProfileIdc;
6654};
6655
6656struct VkVideoEncodeH264RateControlInfoEXT
6657{
6658	VkStructureType								sType;
6659	const void*									pNext;
6660	uint32_t									gopFrameCount;
6661	uint32_t									idrPeriod;
6662	uint32_t									consecutiveBFrameCount;
6663	VkVideoEncodeH264RateControlStructureEXT	rateControlStructure;
6664	uint8_t										temporalLayerCount;
6665};
6666
6667struct VkVideoEncodeH264QpEXT
6668{
6669	int32_t	qpI;
6670	int32_t	qpP;
6671	int32_t	qpB;
6672};
6673
6674struct VkVideoEncodeH264FrameSizeEXT
6675{
6676	uint32_t	frameISize;
6677	uint32_t	framePSize;
6678	uint32_t	frameBSize;
6679};
6680
6681struct VkVideoEncodeH264RateControlLayerInfoEXT
6682{
6683	VkStructureType					sType;
6684	const void*						pNext;
6685	uint8_t							temporalLayerId;
6686	VkBool32						useInitialRcQp;
6687	VkVideoEncodeH264QpEXT			initialRcQp;
6688	VkBool32						useMinQp;
6689	VkVideoEncodeH264QpEXT			minQp;
6690	VkBool32						useMaxQp;
6691	VkVideoEncodeH264QpEXT			maxQp;
6692	VkBool32						useMaxFrameSize;
6693	VkVideoEncodeH264FrameSizeEXT	maxFrameSize;
6694};
6695
6696struct VkVideoEncodeH265CapabilitiesEXT
6697{
6698	VkStructureType								sType;
6699	void*										pNext;
6700	VkVideoEncodeH265CapabilityFlagsEXT			flags;
6701	VkVideoEncodeH265InputModeFlagsEXT			inputModeFlags;
6702	VkVideoEncodeH265OutputModeFlagsEXT			outputModeFlags;
6703	VkVideoEncodeH265CtbSizeFlagsEXT			ctbSizes;
6704	VkVideoEncodeH265TransformBlockSizeFlagsEXT	transformBlockSizes;
6705	uint8_t										maxPPictureL0ReferenceCount;
6706	uint8_t										maxBPictureL0ReferenceCount;
6707	uint8_t										maxL1ReferenceCount;
6708	uint8_t										maxSubLayersCount;
6709	uint8_t										minLog2MinLumaCodingBlockSizeMinus3;
6710	uint8_t										maxLog2MinLumaCodingBlockSizeMinus3;
6711	uint8_t										minLog2MinLumaTransformBlockSizeMinus2;
6712	uint8_t										maxLog2MinLumaTransformBlockSizeMinus2;
6713	uint8_t										minMaxTransformHierarchyDepthInter;
6714	uint8_t										maxMaxTransformHierarchyDepthInter;
6715	uint8_t										minMaxTransformHierarchyDepthIntra;
6716	uint8_t										maxMaxTransformHierarchyDepthIntra;
6717	uint8_t										maxDiffCuQpDeltaDepth;
6718	uint8_t										minMaxNumMergeCand;
6719	uint8_t										maxMaxNumMergeCand;
6720};
6721
6722struct VkVideoEncodeH265EmitPictureParametersInfoEXT
6723{
6724	VkStructureType	sType;
6725	const void*		pNext;
6726	uint8_t			vpsId;
6727	uint8_t			spsId;
6728	VkBool32		emitVpsEnable;
6729	VkBool32		emitSpsEnable;
6730	uint32_t		ppsIdEntryCount;
6731	const uint8_t*	ppsIdEntries;
6732};
6733
6734struct VkVideoEncodeH265RateControlInfoEXT
6735{
6736	VkStructureType								sType;
6737	const void*									pNext;
6738	uint32_t									gopFrameCount;
6739	uint32_t									idrPeriod;
6740	uint32_t									consecutiveBFrameCount;
6741	VkVideoEncodeH265RateControlStructureEXT	rateControlStructure;
6742	uint8_t										subLayerCount;
6743};
6744
6745struct VkVideoEncodeH265QpEXT
6746{
6747	int32_t	qpI;
6748	int32_t	qpP;
6749	int32_t	qpB;
6750};
6751
6752struct VkVideoEncodeH265FrameSizeEXT
6753{
6754	uint32_t	frameISize;
6755	uint32_t	framePSize;
6756	uint32_t	frameBSize;
6757};
6758
6759struct VkVideoEncodeH265RateControlLayerInfoEXT
6760{
6761	VkStructureType					sType;
6762	const void*						pNext;
6763	uint8_t							temporalId;
6764	VkBool32						useInitialRcQp;
6765	VkVideoEncodeH265QpEXT			initialRcQp;
6766	VkBool32						useMinQp;
6767	VkVideoEncodeH265QpEXT			minQp;
6768	VkBool32						useMaxQp;
6769	VkVideoEncodeH265QpEXT			maxQp;
6770	VkBool32						useMaxFrameSize;
6771	VkVideoEncodeH265FrameSizeEXT	maxFrameSize;
6772};
6773
6774struct VkVideoEncodeH265ProfileInfoEXT
6775{
6776	VkStructureType			sType;
6777	const void*				pNext;
6778	StdVideoH265ProfileIdc	stdProfileIdc;
6779};
6780
6781struct VkPhysicalDeviceInheritedViewportScissorFeaturesNV
6782{
6783	VkStructureType	sType;
6784	void*			pNext;
6785	VkBool32		inheritedViewportScissor2D;
6786};
6787
6788struct VkCommandBufferInheritanceViewportScissorInfoNV
6789{
6790	VkStructureType		sType;
6791	const void*			pNext;
6792	VkBool32			viewportScissor2D;
6793	uint32_t			viewportDepthCount;
6794	const VkViewport*	pViewportDepths;
6795};
6796
6797struct VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT
6798{
6799	VkStructureType	sType;
6800	void*			pNext;
6801	VkBool32		ycbcr2plane444Formats;
6802};
6803
6804struct VkPhysicalDeviceProvokingVertexFeaturesEXT
6805{
6806	VkStructureType	sType;
6807	void*			pNext;
6808	VkBool32		provokingVertexLast;
6809	VkBool32		transformFeedbackPreservesProvokingVertex;
6810};
6811
6812struct VkPhysicalDeviceProvokingVertexPropertiesEXT
6813{
6814	VkStructureType	sType;
6815	void*			pNext;
6816	VkBool32		provokingVertexModePerPipeline;
6817	VkBool32		transformFeedbackPreservesTriangleFanProvokingVertex;
6818};
6819
6820struct VkPipelineRasterizationProvokingVertexStateCreateInfoEXT
6821{
6822	VkStructureType				sType;
6823	const void*					pNext;
6824	VkProvokingVertexModeEXT	provokingVertexMode;
6825};
6826
6827struct VkCuModuleCreateInfoNVX
6828{
6829	VkStructureType	sType;
6830	const void*		pNext;
6831	size_t			dataSize;
6832	const void*		pData;
6833};
6834
6835struct VkCuFunctionCreateInfoNVX
6836{
6837	VkStructureType	sType;
6838	const void*		pNext;
6839	VkCuModuleNVX	module;
6840	const char*		pName;
6841};
6842
6843struct VkCuLaunchInfoNVX
6844{
6845	VkStructureType		sType;
6846	const void*			pNext;
6847	VkCuFunctionNVX		function;
6848	uint32_t			gridDimX;
6849	uint32_t			gridDimY;
6850	uint32_t			gridDimZ;
6851	uint32_t			blockDimX;
6852	uint32_t			blockDimY;
6853	uint32_t			blockDimZ;
6854	uint32_t			sharedMemBytes;
6855	size_t				paramCount;
6856	const void* const *	pParams;
6857	size_t				extraCount;
6858	const void* const *	pExtras;
6859};
6860
6861struct VkPhysicalDeviceDescriptorBufferFeaturesEXT
6862{
6863	VkStructureType	sType;
6864	void*			pNext;
6865	VkBool32		descriptorBuffer;
6866	VkBool32		descriptorBufferCaptureReplay;
6867	VkBool32		descriptorBufferImageLayoutIgnored;
6868	VkBool32		descriptorBufferPushDescriptors;
6869};
6870
6871struct VkPhysicalDeviceDescriptorBufferPropertiesEXT
6872{
6873	VkStructureType	sType;
6874	void*			pNext;
6875	VkBool32		combinedImageSamplerDescriptorSingleArray;
6876	VkBool32		bufferlessPushDescriptors;
6877	VkBool32		allowSamplerImageViewPostSubmitCreation;
6878	VkDeviceSize	descriptorBufferOffsetAlignment;
6879	uint32_t		maxDescriptorBufferBindings;
6880	uint32_t		maxResourceDescriptorBufferBindings;
6881	uint32_t		maxSamplerDescriptorBufferBindings;
6882	uint32_t		maxEmbeddedImmutableSamplerBindings;
6883	uint32_t		maxEmbeddedImmutableSamplers;
6884	size_t			bufferCaptureReplayDescriptorDataSize;
6885	size_t			imageCaptureReplayDescriptorDataSize;
6886	size_t			imageViewCaptureReplayDescriptorDataSize;
6887	size_t			samplerCaptureReplayDescriptorDataSize;
6888	size_t			accelerationStructureCaptureReplayDescriptorDataSize;
6889	size_t			samplerDescriptorSize;
6890	size_t			combinedImageSamplerDescriptorSize;
6891	size_t			sampledImageDescriptorSize;
6892	size_t			storageImageDescriptorSize;
6893	size_t			uniformTexelBufferDescriptorSize;
6894	size_t			robustUniformTexelBufferDescriptorSize;
6895	size_t			storageTexelBufferDescriptorSize;
6896	size_t			robustStorageTexelBufferDescriptorSize;
6897	size_t			uniformBufferDescriptorSize;
6898	size_t			robustUniformBufferDescriptorSize;
6899	size_t			storageBufferDescriptorSize;
6900	size_t			robustStorageBufferDescriptorSize;
6901	size_t			inputAttachmentDescriptorSize;
6902	size_t			accelerationStructureDescriptorSize;
6903	VkDeviceSize	maxSamplerDescriptorBufferRange;
6904	VkDeviceSize	maxResourceDescriptorBufferRange;
6905	VkDeviceSize	samplerDescriptorBufferAddressSpaceSize;
6906	VkDeviceSize	resourceDescriptorBufferAddressSpaceSize;
6907	VkDeviceSize	descriptorBufferAddressSpaceSize;
6908};
6909
6910struct VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT
6911{
6912	VkStructureType	sType;
6913	void*			pNext;
6914	size_t			combinedImageSamplerDensityMapDescriptorSize;
6915};
6916
6917struct VkDescriptorAddressInfoEXT
6918{
6919	VkStructureType	sType;
6920	void*			pNext;
6921	VkDeviceAddress	address;
6922	VkDeviceSize	range;
6923	VkFormat		format;
6924};
6925
6926struct VkDescriptorBufferBindingInfoEXT
6927{
6928	VkStructureType		sType;
6929	void*				pNext;
6930	VkDeviceAddress		address;
6931	VkBufferUsageFlags	usage;
6932};
6933
6934struct VkDescriptorBufferBindingPushDescriptorBufferHandleEXT
6935{
6936	VkStructureType	sType;
6937	void*			pNext;
6938	VkBuffer		buffer;
6939};
6940
6941union VkDescriptorDataEXT
6942{
6943	const VkSampler*					pSampler;
6944	const VkDescriptorImageInfo*		pCombinedImageSampler;
6945	const VkDescriptorImageInfo*		pInputAttachmentImage;
6946	const VkDescriptorImageInfo*		pSampledImage;
6947	const VkDescriptorImageInfo*		pStorageImage;
6948	const VkDescriptorAddressInfoEXT*	pUniformTexelBuffer;
6949	const VkDescriptorAddressInfoEXT*	pStorageTexelBuffer;
6950	const VkDescriptorAddressInfoEXT*	pUniformBuffer;
6951	const VkDescriptorAddressInfoEXT*	pStorageBuffer;
6952	VkDeviceAddress						accelerationStructure;
6953};
6954
6955struct VkDescriptorGetInfoEXT
6956{
6957	VkStructureType		sType;
6958	const void*			pNext;
6959	VkDescriptorType	type;
6960	VkDescriptorDataEXT	data;
6961};
6962
6963struct VkBufferCaptureDescriptorDataInfoEXT
6964{
6965	VkStructureType	sType;
6966	const void*		pNext;
6967	VkBuffer		buffer;
6968};
6969
6970struct VkImageCaptureDescriptorDataInfoEXT
6971{
6972	VkStructureType	sType;
6973	const void*		pNext;
6974	VkImage			image;
6975};
6976
6977struct VkImageViewCaptureDescriptorDataInfoEXT
6978{
6979	VkStructureType	sType;
6980	const void*		pNext;
6981	VkImageView		imageView;
6982};
6983
6984struct VkSamplerCaptureDescriptorDataInfoEXT
6985{
6986	VkStructureType	sType;
6987	const void*		pNext;
6988	VkSampler		sampler;
6989};
6990
6991struct VkAccelerationStructureCaptureDescriptorDataInfoEXT
6992{
6993	VkStructureType				sType;
6994	const void*					pNext;
6995	VkAccelerationStructureKHR	accelerationStructure;
6996	VkAccelerationStructureNV	accelerationStructureNV;
6997};
6998
6999struct VkOpaqueCaptureDescriptorDataCreateInfoEXT
7000{
7001	VkStructureType	sType;
7002	const void*		pNext;
7003	const void*		opaqueCaptureDescriptorData;
7004};
7005
7006struct VkPhysicalDeviceShaderIntegerDotProductFeatures
7007{
7008	VkStructureType	sType;
7009	void*			pNext;
7010	VkBool32		shaderIntegerDotProduct;
7011};
7012
7013struct VkPhysicalDeviceShaderIntegerDotProductProperties
7014{
7015	VkStructureType	sType;
7016	void*			pNext;
7017	VkBool32		integerDotProduct8BitUnsignedAccelerated;
7018	VkBool32		integerDotProduct8BitSignedAccelerated;
7019	VkBool32		integerDotProduct8BitMixedSignednessAccelerated;
7020	VkBool32		integerDotProduct4x8BitPackedUnsignedAccelerated;
7021	VkBool32		integerDotProduct4x8BitPackedSignedAccelerated;
7022	VkBool32		integerDotProduct4x8BitPackedMixedSignednessAccelerated;
7023	VkBool32		integerDotProduct16BitUnsignedAccelerated;
7024	VkBool32		integerDotProduct16BitSignedAccelerated;
7025	VkBool32		integerDotProduct16BitMixedSignednessAccelerated;
7026	VkBool32		integerDotProduct32BitUnsignedAccelerated;
7027	VkBool32		integerDotProduct32BitSignedAccelerated;
7028	VkBool32		integerDotProduct32BitMixedSignednessAccelerated;
7029	VkBool32		integerDotProduct64BitUnsignedAccelerated;
7030	VkBool32		integerDotProduct64BitSignedAccelerated;
7031	VkBool32		integerDotProduct64BitMixedSignednessAccelerated;
7032	VkBool32		integerDotProductAccumulatingSaturating8BitUnsignedAccelerated;
7033	VkBool32		integerDotProductAccumulatingSaturating8BitSignedAccelerated;
7034	VkBool32		integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated;
7035	VkBool32		integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated;
7036	VkBool32		integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated;
7037	VkBool32		integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated;
7038	VkBool32		integerDotProductAccumulatingSaturating16BitUnsignedAccelerated;
7039	VkBool32		integerDotProductAccumulatingSaturating16BitSignedAccelerated;
7040	VkBool32		integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated;
7041	VkBool32		integerDotProductAccumulatingSaturating32BitUnsignedAccelerated;
7042	VkBool32		integerDotProductAccumulatingSaturating32BitSignedAccelerated;
7043	VkBool32		integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated;
7044	VkBool32		integerDotProductAccumulatingSaturating64BitUnsignedAccelerated;
7045	VkBool32		integerDotProductAccumulatingSaturating64BitSignedAccelerated;
7046	VkBool32		integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated;
7047};
7048
7049struct VkPhysicalDeviceDrmPropertiesEXT
7050{
7051	VkStructureType	sType;
7052	void*			pNext;
7053	VkBool32		hasPrimary;
7054	VkBool32		hasRender;
7055	int64_t			primaryMajor;
7056	int64_t			primaryMinor;
7057	int64_t			renderMajor;
7058	int64_t			renderMinor;
7059};
7060
7061struct VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR
7062{
7063	VkStructureType	sType;
7064	void*			pNext;
7065	VkBool32		fragmentShaderBarycentric;
7066};
7067
7068struct VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR
7069{
7070	VkStructureType	sType;
7071	void*			pNext;
7072	VkBool32		triStripVertexOrderIndependentOfProvokingVertex;
7073};
7074
7075struct VkPhysicalDeviceRayTracingMotionBlurFeaturesNV
7076{
7077	VkStructureType	sType;
7078	void*			pNext;
7079	VkBool32		rayTracingMotionBlur;
7080	VkBool32		rayTracingMotionBlurPipelineTraceRaysIndirect;
7081};
7082
7083struct VkAccelerationStructureGeometryMotionTrianglesDataNV
7084{
7085	VkStructureType					sType;
7086	const void*						pNext;
7087	VkDeviceOrHostAddressConstKHR	vertexData;
7088};
7089
7090struct VkAccelerationStructureMotionInfoNV
7091{
7092	VkStructureType								sType;
7093	const void*									pNext;
7094	uint32_t									maxInstances;
7095	VkAccelerationStructureMotionInfoFlagsNV	flags;
7096};
7097
7098struct VkSRTDataNV
7099{
7100	float	sx;
7101	float	a;
7102	float	b;
7103	float	pvx;
7104	float	sy;
7105	float	c;
7106	float	pvy;
7107	float	sz;
7108	float	pvz;
7109	float	qx;
7110	float	qy;
7111	float	qz;
7112	float	qw;
7113	float	tx;
7114	float	ty;
7115	float	tz;
7116};
7117
7118struct VkAccelerationStructureSRTMotionInstanceNV
7119{
7120	VkSRTDataNV					transformT0;
7121	VkSRTDataNV					transformT1;
7122	uint32_t					instanceCustomIndex:24;
7123	uint32_t					mask:8;
7124	uint32_t					instanceShaderBindingTableRecordOffset:24;
7125	VkGeometryInstanceFlagsKHR	flags:8;
7126	uint64_t					accelerationStructureReference;
7127};
7128
7129struct VkAccelerationStructureMatrixMotionInstanceNV
7130{
7131	VkTransformMatrixKHR		transformT0;
7132	VkTransformMatrixKHR		transformT1;
7133	uint32_t					instanceCustomIndex:24;
7134	uint32_t					mask:8;
7135	uint32_t					instanceShaderBindingTableRecordOffset:24;
7136	VkGeometryInstanceFlagsKHR	flags:8;
7137	uint64_t					accelerationStructureReference;
7138};
7139
7140union VkAccelerationStructureMotionInstanceDataNV
7141{
7142	VkAccelerationStructureInstanceKHR				staticInstance;
7143	VkAccelerationStructureMatrixMotionInstanceNV	matrixMotionInstance;
7144	VkAccelerationStructureSRTMotionInstanceNV		srtMotionInstance;
7145};
7146
7147struct VkAccelerationStructureMotionInstanceNV
7148{
7149	VkAccelerationStructureMotionInstanceTypeNV		type;
7150	VkAccelerationStructureMotionInstanceFlagsNV	flags;
7151	VkAccelerationStructureMotionInstanceDataNV		data;
7152};
7153
7154struct VkMemoryGetRemoteAddressInfoNV
7155{
7156	VkStructureType						sType;
7157	const void*							pNext;
7158	VkDeviceMemory						memory;
7159	VkExternalMemoryHandleTypeFlagBits	handleType;
7160};
7161
7162struct VkImportMemoryBufferCollectionFUCHSIA
7163{
7164	VkStructureType				sType;
7165	const void*					pNext;
7166	VkBufferCollectionFUCHSIA	collection;
7167	uint32_t					index;
7168};
7169
7170struct VkBufferCollectionImageCreateInfoFUCHSIA
7171{
7172	VkStructureType				sType;
7173	const void*					pNext;
7174	VkBufferCollectionFUCHSIA	collection;
7175	uint32_t					index;
7176};
7177
7178struct VkBufferCollectionBufferCreateInfoFUCHSIA
7179{
7180	VkStructureType				sType;
7181	const void*					pNext;
7182	VkBufferCollectionFUCHSIA	collection;
7183	uint32_t					index;
7184};
7185
7186struct VkBufferCollectionCreateInfoFUCHSIA
7187{
7188	VkStructureType	sType;
7189	const void*		pNext;
7190	pt::zx_handle_t	collectionToken;
7191};
7192
7193struct VkSysmemColorSpaceFUCHSIA
7194{
7195	VkStructureType	sType;
7196	const void*		pNext;
7197	uint32_t		colorSpace;
7198};
7199
7200struct VkBufferCollectionPropertiesFUCHSIA
7201{
7202	VkStructureType					sType;
7203	void*							pNext;
7204	uint32_t						memoryTypeBits;
7205	uint32_t						bufferCount;
7206	uint32_t						createInfoIndex;
7207	uint64_t						sysmemPixelFormat;
7208	VkFormatFeatureFlags			formatFeatures;
7209	VkSysmemColorSpaceFUCHSIA		sysmemColorSpaceIndex;
7210	VkComponentMapping				samplerYcbcrConversionComponents;
7211	VkSamplerYcbcrModelConversion	suggestedYcbcrModel;
7212	VkSamplerYcbcrRange				suggestedYcbcrRange;
7213	VkChromaLocation				suggestedXChromaOffset;
7214	VkChromaLocation				suggestedYChromaOffset;
7215};
7216
7217struct VkImageFormatConstraintsInfoFUCHSIA
7218{
7219	VkStructureType							sType;
7220	const void*								pNext;
7221	VkImageCreateInfo						imageCreateInfo;
7222	VkFormatFeatureFlags					requiredFormatFeatures;
7223	VkImageFormatConstraintsFlagsFUCHSIA	flags;
7224	uint64_t								sysmemPixelFormat;
7225	uint32_t								colorSpaceCount;
7226	const VkSysmemColorSpaceFUCHSIA*		pColorSpaces;
7227};
7228
7229struct VkBufferCollectionConstraintsInfoFUCHSIA
7230{
7231	VkStructureType	sType;
7232	const void*		pNext;
7233	uint32_t		minBufferCount;
7234	uint32_t		maxBufferCount;
7235	uint32_t		minBufferCountForCamping;
7236	uint32_t		minBufferCountForDedicatedSlack;
7237	uint32_t		minBufferCountForSharedSlack;
7238};
7239
7240struct VkBufferConstraintsInfoFUCHSIA
7241{
7242	VkStructureType								sType;
7243	const void*									pNext;
7244	VkBufferCreateInfo							createInfo;
7245	VkFormatFeatureFlags						requiredFormatFeatures;
7246	VkBufferCollectionConstraintsInfoFUCHSIA	bufferCollectionConstraints;
7247};
7248
7249struct VkImageConstraintsInfoFUCHSIA
7250{
7251	VkStructureType								sType;
7252	const void*									pNext;
7253	uint32_t									formatConstraintsCount;
7254	const VkImageFormatConstraintsInfoFUCHSIA*	pFormatConstraints;
7255	VkBufferCollectionConstraintsInfoFUCHSIA	bufferCollectionConstraints;
7256	VkImageConstraintsInfoFlagsFUCHSIA			flags;
7257};
7258
7259struct VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT
7260{
7261	VkStructureType	sType;
7262	void*			pNext;
7263	VkBool32		formatRgba10x6WithoutYCbCrSampler;
7264};
7265
7266struct VkFormatProperties3
7267{
7268	VkStructureType			sType;
7269	void*					pNext;
7270	VkFormatFeatureFlags2	linearTilingFeatures;
7271	VkFormatFeatureFlags2	optimalTilingFeatures;
7272	VkFormatFeatureFlags2	bufferFeatures;
7273};
7274
7275struct VkDrmFormatModifierProperties2EXT
7276{
7277	uint64_t				drmFormatModifier;
7278	uint32_t				drmFormatModifierPlaneCount;
7279	VkFormatFeatureFlags2	drmFormatModifierTilingFeatures;
7280};
7281
7282struct VkDrmFormatModifierPropertiesList2EXT
7283{
7284	VkStructureType						sType;
7285	void*								pNext;
7286	uint32_t							drmFormatModifierCount;
7287	VkDrmFormatModifierProperties2EXT*	pDrmFormatModifierProperties;
7288};
7289
7290struct VkAndroidHardwareBufferFormatProperties2ANDROID
7291{
7292	VkStructureType					sType;
7293	void*							pNext;
7294	VkFormat						format;
7295	uint64_t						externalFormat;
7296	VkFormatFeatureFlags2			formatFeatures;
7297	VkComponentMapping				samplerYcbcrConversionComponents;
7298	VkSamplerYcbcrModelConversion	suggestedYcbcrModel;
7299	VkSamplerYcbcrRange				suggestedYcbcrRange;
7300	VkChromaLocation				suggestedXChromaOffset;
7301	VkChromaLocation				suggestedYChromaOffset;
7302};
7303
7304struct VkPipelineRenderingCreateInfo
7305{
7306	VkStructureType	sType;
7307	const void*		pNext;
7308	uint32_t		viewMask;
7309	uint32_t		colorAttachmentCount;
7310	const VkFormat*	pColorAttachmentFormats;
7311	VkFormat		depthAttachmentFormat;
7312	VkFormat		stencilAttachmentFormat;
7313};
7314
7315struct VkRenderingAttachmentInfo
7316{
7317	VkStructureType			sType;
7318	const void*				pNext;
7319	VkImageView				imageView;
7320	VkImageLayout			imageLayout;
7321	VkResolveModeFlagBits	resolveMode;
7322	VkImageView				resolveImageView;
7323	VkImageLayout			resolveImageLayout;
7324	VkAttachmentLoadOp		loadOp;
7325	VkAttachmentStoreOp		storeOp;
7326	VkClearValue			clearValue;
7327};
7328
7329struct VkRenderingInfo
7330{
7331	VkStructureType						sType;
7332	const void*							pNext;
7333	VkRenderingFlags					flags;
7334	VkRect2D							renderArea;
7335	uint32_t							layerCount;
7336	uint32_t							viewMask;
7337	uint32_t							colorAttachmentCount;
7338	const VkRenderingAttachmentInfo*	pColorAttachments;
7339	const VkRenderingAttachmentInfo*	pDepthAttachment;
7340	const VkRenderingAttachmentInfo*	pStencilAttachment;
7341};
7342
7343struct VkRenderingFragmentShadingRateAttachmentInfoKHR
7344{
7345	VkStructureType	sType;
7346	const void*		pNext;
7347	VkImageView		imageView;
7348	VkImageLayout	imageLayout;
7349	VkExtent2D		shadingRateAttachmentTexelSize;
7350};
7351
7352struct VkRenderingFragmentDensityMapAttachmentInfoEXT
7353{
7354	VkStructureType	sType;
7355	const void*		pNext;
7356	VkImageView		imageView;
7357	VkImageLayout	imageLayout;
7358};
7359
7360struct VkPhysicalDeviceDynamicRenderingFeatures
7361{
7362	VkStructureType	sType;
7363	void*			pNext;
7364	VkBool32		dynamicRendering;
7365};
7366
7367struct VkCommandBufferInheritanceRenderingInfo
7368{
7369	VkStructureType			sType;
7370	const void*				pNext;
7371	VkRenderingFlags		flags;
7372	uint32_t				viewMask;
7373	uint32_t				colorAttachmentCount;
7374	const VkFormat*			pColorAttachmentFormats;
7375	VkFormat				depthAttachmentFormat;
7376	VkFormat				stencilAttachmentFormat;
7377	VkSampleCountFlagBits	rasterizationSamples;
7378};
7379
7380struct VkAttachmentSampleCountInfoAMD
7381{
7382	VkStructureType					sType;
7383	const void*						pNext;
7384	uint32_t						colorAttachmentCount;
7385	const VkSampleCountFlagBits*	pColorAttachmentSamples;
7386	VkSampleCountFlagBits			depthStencilAttachmentSamples;
7387};
7388
7389struct VkMultiviewPerViewAttributesInfoNVX
7390{
7391	VkStructureType	sType;
7392	const void*		pNext;
7393	VkBool32		perViewAttributes;
7394	VkBool32		perViewAttributesPositionXOnly;
7395};
7396
7397struct VkPhysicalDeviceImageViewMinLodFeaturesEXT
7398{
7399	VkStructureType	sType;
7400	void*			pNext;
7401	VkBool32		minLod;
7402};
7403
7404struct VkImageViewMinLodCreateInfoEXT
7405{
7406	VkStructureType	sType;
7407	const void*		pNext;
7408	float			minLod;
7409};
7410
7411struct VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT
7412{
7413	VkStructureType	sType;
7414	void*			pNext;
7415	VkBool32		rasterizationOrderColorAttachmentAccess;
7416	VkBool32		rasterizationOrderDepthAttachmentAccess;
7417	VkBool32		rasterizationOrderStencilAttachmentAccess;
7418};
7419
7420struct VkPhysicalDeviceLinearColorAttachmentFeaturesNV
7421{
7422	VkStructureType	sType;
7423	void*			pNext;
7424	VkBool32		linearColorAttachment;
7425};
7426
7427struct VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT
7428{
7429	VkStructureType	sType;
7430	void*			pNext;
7431	VkBool32		graphicsPipelineLibrary;
7432};
7433
7434struct VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT
7435{
7436	VkStructureType	sType;
7437	void*			pNext;
7438	VkBool32		graphicsPipelineLibraryFastLinking;
7439	VkBool32		graphicsPipelineLibraryIndependentInterpolationDecoration;
7440};
7441
7442struct VkGraphicsPipelineLibraryCreateInfoEXT
7443{
7444	VkStructureType						sType;
7445	void*								pNext;
7446	VkGraphicsPipelineLibraryFlagsEXT	flags;
7447};
7448
7449struct VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE
7450{
7451	VkStructureType	sType;
7452	void*			pNext;
7453	VkBool32		descriptorSetHostMapping;
7454};
7455
7456struct VkDescriptorSetBindingReferenceVALVE
7457{
7458	VkStructureType			sType;
7459	const void*				pNext;
7460	VkDescriptorSetLayout	descriptorSetLayout;
7461	uint32_t				binding;
7462};
7463
7464struct VkDescriptorSetLayoutHostMappingInfoVALVE
7465{
7466	VkStructureType	sType;
7467	void*			pNext;
7468	size_t			descriptorOffset;
7469	uint32_t		descriptorSize;
7470};
7471
7472struct VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT
7473{
7474	VkStructureType	sType;
7475	void*			pNext;
7476	VkBool32		shaderModuleIdentifier;
7477};
7478
7479struct VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT
7480{
7481	VkStructureType	sType;
7482	void*			pNext;
7483	uint8_t			shaderModuleIdentifierAlgorithmUUID[VK_UUID_SIZE];
7484};
7485
7486struct VkPipelineShaderStageModuleIdentifierCreateInfoEXT
7487{
7488	VkStructureType	sType;
7489	const void*		pNext;
7490	uint32_t		identifierSize;
7491	const uint8_t*	pIdentifier;
7492};
7493
7494struct VkShaderModuleIdentifierEXT
7495{
7496	VkStructureType	sType;
7497	void*			pNext;
7498	uint32_t		identifierSize;
7499	uint8_t			identifier[VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT];
7500};
7501
7502struct VkImageCompressionControlEXT
7503{
7504	VkStructureType							sType;
7505	const void*								pNext;
7506	VkImageCompressionFlagsEXT				flags;
7507	uint32_t								compressionControlPlaneCount;
7508	VkImageCompressionFixedRateFlagsEXT*	pFixedRateFlags;
7509};
7510
7511struct VkPhysicalDeviceImageCompressionControlFeaturesEXT
7512{
7513	VkStructureType	sType;
7514	void*			pNext;
7515	VkBool32		imageCompressionControl;
7516};
7517
7518struct VkImageCompressionPropertiesEXT
7519{
7520	VkStructureType						sType;
7521	void*								pNext;
7522	VkImageCompressionFlagsEXT			imageCompressionFlags;
7523	VkImageCompressionFixedRateFlagsEXT	imageCompressionFixedRateFlags;
7524};
7525
7526struct VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT
7527{
7528	VkStructureType	sType;
7529	void*			pNext;
7530	VkBool32		imageCompressionControlSwapchain;
7531};
7532
7533struct VkImageSubresource2EXT
7534{
7535	VkStructureType		sType;
7536	void*				pNext;
7537	VkImageSubresource	imageSubresource;
7538};
7539
7540struct VkSubresourceLayout2EXT
7541{
7542	VkStructureType		sType;
7543	void*				pNext;
7544	VkSubresourceLayout	subresourceLayout;
7545};
7546
7547struct VkRenderPassCreationControlEXT
7548{
7549	VkStructureType	sType;
7550	const void*		pNext;
7551	VkBool32		disallowMerging;
7552};
7553
7554struct VkRenderPassCreationFeedbackInfoEXT
7555{
7556	uint32_t	postMergeSubpassCount;
7557};
7558
7559struct VkRenderPassCreationFeedbackCreateInfoEXT
7560{
7561	VkStructureType							sType;
7562	const void*								pNext;
7563	VkRenderPassCreationFeedbackInfoEXT*	pRenderPassFeedback;
7564};
7565
7566struct VkRenderPassSubpassFeedbackInfoEXT
7567{
7568	VkSubpassMergeStatusEXT	subpassMergeStatus;
7569	char					description[VK_MAX_DESCRIPTION_SIZE];
7570	uint32_t				postMergeIndex;
7571};
7572
7573struct VkRenderPassSubpassFeedbackCreateInfoEXT
7574{
7575	VkStructureType						sType;
7576	const void*							pNext;
7577	VkRenderPassSubpassFeedbackInfoEXT*	pSubpassFeedback;
7578};
7579
7580struct VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT
7581{
7582	VkStructureType	sType;
7583	void*			pNext;
7584	VkBool32		subpassMergeFeedback;
7585};
7586
7587struct VkMicromapCreateInfoEXT
7588{
7589	VkStructureType				sType;
7590	const void*					pNext;
7591	VkMicromapCreateFlagsEXT	createFlags;
7592	VkBuffer					buffer;
7593	VkDeviceSize				offset;
7594	VkDeviceSize				size;
7595	VkMicromapTypeEXT			type;
7596	VkDeviceAddress				deviceAddress;
7597};
7598
7599struct VkMicromapVersionInfoEXT
7600{
7601	VkStructureType	sType;
7602	const void*		pNext;
7603	const uint8_t*	pVersionData;
7604};
7605
7606struct VkCopyMicromapInfoEXT
7607{
7608	VkStructureType			sType;
7609	const void*				pNext;
7610	VkMicromapEXT			src;
7611	VkMicromapEXT			dst;
7612	VkCopyMicromapModeEXT	mode;
7613};
7614
7615struct VkCopyMicromapToMemoryInfoEXT
7616{
7617	VkStructureType				sType;
7618	const void*					pNext;
7619	VkMicromapEXT				src;
7620	VkDeviceOrHostAddressKHR	dst;
7621	VkCopyMicromapModeEXT		mode;
7622};
7623
7624struct VkCopyMemoryToMicromapInfoEXT
7625{
7626	VkStructureType					sType;
7627	const void*						pNext;
7628	VkDeviceOrHostAddressConstKHR	src;
7629	VkMicromapEXT					dst;
7630	VkCopyMicromapModeEXT			mode;
7631};
7632
7633struct VkMicromapBuildSizesInfoEXT
7634{
7635	VkStructureType	sType;
7636	const void*		pNext;
7637	VkDeviceSize	micromapSize;
7638	VkDeviceSize	buildScratchSize;
7639	VkBool32		discardable;
7640};
7641
7642struct VkMicromapUsageEXT
7643{
7644	uint32_t	count;
7645	uint32_t	subdivisionLevel;
7646	uint32_t	format;
7647};
7648
7649struct VkMicromapBuildInfoEXT
7650{
7651	VkStructureType						sType;
7652	const void*							pNext;
7653	VkMicromapTypeEXT					type;
7654	VkBuildMicromapFlagsEXT				flags;
7655	VkBuildMicromapModeEXT				mode;
7656	VkMicromapEXT						dstMicromap;
7657	uint32_t							usageCountsCount;
7658	const VkMicromapUsageEXT*			pUsageCounts;
7659	const VkMicromapUsageEXT* const*	ppUsageCounts;
7660	VkDeviceOrHostAddressConstKHR		data;
7661	VkDeviceOrHostAddressKHR			scratchData;
7662	VkDeviceOrHostAddressConstKHR		triangleArray;
7663	VkDeviceSize						triangleArrayStride;
7664};
7665
7666struct VkMicromapTriangleEXT
7667{
7668	uint32_t	dataOffset;
7669	uint16_t	subdivisionLevel;
7670	uint16_t	format;
7671};
7672
7673struct VkPhysicalDeviceOpacityMicromapFeaturesEXT
7674{
7675	VkStructureType	sType;
7676	void*			pNext;
7677	VkBool32		micromap;
7678	VkBool32		micromapCaptureReplay;
7679	VkBool32		micromapHostCommands;
7680};
7681
7682struct VkPhysicalDeviceOpacityMicromapPropertiesEXT
7683{
7684	VkStructureType	sType;
7685	void*			pNext;
7686	uint32_t		maxOpacity2StateSubdivisionLevel;
7687	uint32_t		maxOpacity4StateSubdivisionLevel;
7688};
7689
7690struct VkAccelerationStructureTrianglesOpacityMicromapEXT
7691{
7692	VkStructureType						sType;
7693	void*								pNext;
7694	VkIndexType							indexType;
7695	VkDeviceOrHostAddressConstKHR		indexBuffer;
7696	VkDeviceSize						indexStride;
7697	uint32_t							baseTriangle;
7698	uint32_t							usageCountsCount;
7699	const VkMicromapUsageEXT*			pUsageCounts;
7700	const VkMicromapUsageEXT* const*	ppUsageCounts;
7701	VkMicromapEXT						micromap;
7702};
7703
7704struct VkPipelinePropertiesIdentifierEXT
7705{
7706	VkStructureType	sType;
7707	void*			pNext;
7708	uint8_t			pipelineIdentifier[VK_UUID_SIZE];
7709};
7710
7711struct VkPhysicalDevicePipelinePropertiesFeaturesEXT
7712{
7713	VkStructureType	sType;
7714	void*			pNext;
7715	VkBool32		pipelinePropertiesIdentifier;
7716};
7717
7718struct VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD
7719{
7720	VkStructureType	sType;
7721	void*			pNext;
7722	VkBool32		shaderEarlyAndLateFragmentTests;
7723};
7724
7725struct VkExportMetalObjectCreateInfoEXT
7726{
7727	VkStructureType						sType;
7728	const void*							pNext;
7729	VkExportMetalObjectTypeFlagBitsEXT	exportObjectType;
7730};
7731
7732struct VkExportMetalObjectsInfoEXT
7733{
7734	VkStructureType	sType;
7735	const void*		pNext;
7736};
7737
7738struct VkExportMetalDeviceInfoEXT
7739{
7740	VkStructureType		sType;
7741	const void*			pNext;
7742	pt::MTLDevice_id	mtlDevice;
7743};
7744
7745struct VkExportMetalCommandQueueInfoEXT
7746{
7747	VkStructureType			sType;
7748	const void*				pNext;
7749	VkQueue					queue;
7750	pt::MTLCommandQueue_id	mtlCommandQueue;
7751};
7752
7753struct VkExportMetalBufferInfoEXT
7754{
7755	VkStructureType		sType;
7756	const void*			pNext;
7757	VkDeviceMemory		memory;
7758	pt::MTLBuffer_id	mtlBuffer;
7759};
7760
7761struct VkImportMetalBufferInfoEXT
7762{
7763	VkStructureType		sType;
7764	const void*			pNext;
7765	pt::MTLBuffer_id	mtlBuffer;
7766};
7767
7768struct VkExportMetalTextureInfoEXT
7769{
7770	VkStructureType			sType;
7771	const void*				pNext;
7772	VkImage					image;
7773	VkImageView				imageView;
7774	VkBufferView			bufferView;
7775	VkImageAspectFlagBits	plane;
7776	pt::MTLTexture_id		mtlTexture;
7777};
7778
7779struct VkImportMetalTextureInfoEXT
7780{
7781	VkStructureType			sType;
7782	const void*				pNext;
7783	VkImageAspectFlagBits	plane;
7784	pt::MTLTexture_id		mtlTexture;
7785};
7786
7787struct VkExportMetalIOSurfaceInfoEXT
7788{
7789	VkStructureType		sType;
7790	const void*			pNext;
7791	VkImage				image;
7792	pt::IOSurfaceRef	ioSurface;
7793};
7794
7795struct VkImportMetalIOSurfaceInfoEXT
7796{
7797	VkStructureType		sType;
7798	const void*			pNext;
7799	pt::IOSurfaceRef	ioSurface;
7800};
7801
7802struct VkExportMetalSharedEventInfoEXT
7803{
7804	VkStructureType			sType;
7805	const void*				pNext;
7806	VkSemaphore				semaphore;
7807	VkEvent					event;
7808	pt::MTLSharedEvent_id	mtlSharedEvent;
7809};
7810
7811struct VkImportMetalSharedEventInfoEXT
7812{
7813	VkStructureType			sType;
7814	const void*				pNext;
7815	pt::MTLSharedEvent_id	mtlSharedEvent;
7816};
7817
7818struct VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT
7819{
7820	VkStructureType	sType;
7821	void*			pNext;
7822	VkBool32		nonSeamlessCubeMap;
7823};
7824
7825struct VkPhysicalDevicePipelineRobustnessFeaturesEXT
7826{
7827	VkStructureType	sType;
7828	void*			pNext;
7829	VkBool32		pipelineRobustness;
7830};
7831
7832struct VkPipelineRobustnessCreateInfoEXT
7833{
7834	VkStructureType							sType;
7835	const void*								pNext;
7836	VkPipelineRobustnessBufferBehaviorEXT	storageBuffers;
7837	VkPipelineRobustnessBufferBehaviorEXT	uniformBuffers;
7838	VkPipelineRobustnessBufferBehaviorEXT	vertexInputs;
7839	VkPipelineRobustnessImageBehaviorEXT	images;
7840};
7841
7842struct VkPhysicalDevicePipelineRobustnessPropertiesEXT
7843{
7844	VkStructureType							sType;
7845	void*									pNext;
7846	VkPipelineRobustnessBufferBehaviorEXT	defaultRobustnessStorageBuffers;
7847	VkPipelineRobustnessBufferBehaviorEXT	defaultRobustnessUniformBuffers;
7848	VkPipelineRobustnessBufferBehaviorEXT	defaultRobustnessVertexInputs;
7849	VkPipelineRobustnessImageBehaviorEXT	defaultRobustnessImages;
7850};
7851
7852struct VkImageViewSampleWeightCreateInfoQCOM
7853{
7854	VkStructureType	sType;
7855	const void*		pNext;
7856	VkOffset2D		filterCenter;
7857	VkExtent2D		filterSize;
7858	uint32_t		numPhases;
7859};
7860
7861struct VkPhysicalDeviceImageProcessingFeaturesQCOM
7862{
7863	VkStructureType	sType;
7864	void*			pNext;
7865	VkBool32		textureSampleWeighted;
7866	VkBool32		textureBoxFilter;
7867	VkBool32		textureBlockMatch;
7868};
7869
7870struct VkPhysicalDeviceImageProcessingPropertiesQCOM
7871{
7872	VkStructureType	sType;
7873	void*			pNext;
7874	uint32_t		maxWeightFilterPhases;
7875	VkExtent2D		maxWeightFilterDimension;
7876	VkExtent2D		maxBlockMatchRegion;
7877	VkExtent2D		maxBoxFilterBlockSize;
7878};
7879
7880struct VkPhysicalDeviceTilePropertiesFeaturesQCOM
7881{
7882	VkStructureType	sType;
7883	void*			pNext;
7884	VkBool32		tileProperties;
7885};
7886
7887struct VkTilePropertiesQCOM
7888{
7889	VkStructureType	sType;
7890	void*			pNext;
7891	VkExtent3D		tileSize;
7892	VkExtent2D		apronSize;
7893	VkOffset2D		origin;
7894};
7895
7896struct VkPhysicalDeviceAmigoProfilingFeaturesSEC
7897{
7898	VkStructureType	sType;
7899	void*			pNext;
7900	VkBool32		amigoProfiling;
7901};
7902
7903struct VkAmigoProfilingSubmitInfoSEC
7904{
7905	VkStructureType	sType;
7906	const void*		pNext;
7907	uint64_t		firstDrawTimestamp;
7908	uint64_t		swapBufferTimestamp;
7909};
7910
7911struct VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT
7912{
7913	VkStructureType	sType;
7914	void*			pNext;
7915	VkBool32		attachmentFeedbackLoopLayout;
7916};
7917
7918struct VkPhysicalDeviceDepthClampZeroOneFeaturesEXT
7919{
7920	VkStructureType	sType;
7921	void*			pNext;
7922	VkBool32		depthClampZeroOne;
7923};
7924
7925struct VkPhysicalDeviceAddressBindingReportFeaturesEXT
7926{
7927	VkStructureType	sType;
7928	void*			pNext;
7929	VkBool32		reportAddressBinding;
7930};
7931
7932struct VkDeviceAddressBindingCallbackDataEXT
7933{
7934	VkStructureType					sType;
7935	void*							pNext;
7936	VkDeviceAddressBindingFlagsEXT	flags;
7937	VkDeviceAddress					baseAddress;
7938	VkDeviceSize					size;
7939	VkDeviceAddressBindingTypeEXT	bindingType;
7940};
7941
7942struct VkPhysicalDeviceOpticalFlowFeaturesNV
7943{
7944	VkStructureType	sType;
7945	void*			pNext;
7946	VkBool32		opticalFlow;
7947};
7948
7949struct VkPhysicalDeviceOpticalFlowPropertiesNV
7950{
7951	VkStructureType					sType;
7952	void*							pNext;
7953	VkOpticalFlowGridSizeFlagsNV	supportedOutputGridSizes;
7954	VkOpticalFlowGridSizeFlagsNV	supportedHintGridSizes;
7955	VkBool32						hintSupported;
7956	VkBool32						costSupported;
7957	VkBool32						bidirectionalFlowSupported;
7958	VkBool32						globalFlowSupported;
7959	uint32_t						minWidth;
7960	uint32_t						minHeight;
7961	uint32_t						maxWidth;
7962	uint32_t						maxHeight;
7963	uint32_t						maxNumRegionsOfInterest;
7964};
7965
7966struct VkOpticalFlowImageFormatInfoNV
7967{
7968	VkStructureType				sType;
7969	const void*					pNext;
7970	VkOpticalFlowUsageFlagsNV	usage;
7971};
7972
7973struct VkOpticalFlowImageFormatPropertiesNV
7974{
7975	VkStructureType	sType;
7976	const void*		pNext;
7977	VkFormat		format;
7978};
7979
7980struct VkOpticalFlowSessionCreateInfoNV
7981{
7982	VkStructureType						sType;
7983	void*								pNext;
7984	uint32_t							width;
7985	uint32_t							height;
7986	VkFormat							imageFormat;
7987	VkFormat							flowVectorFormat;
7988	VkFormat							costFormat;
7989	VkOpticalFlowGridSizeFlagsNV		outputGridSize;
7990	VkOpticalFlowGridSizeFlagsNV		hintGridSize;
7991	VkOpticalFlowPerformanceLevelNV		performanceLevel;
7992	VkOpticalFlowSessionCreateFlagsNV	flags;
7993};
7994
7995struct VkOpticalFlowSessionCreatePrivateDataInfoNV
7996{
7997	VkStructureType	sType;
7998	void*			pNext;
7999	uint32_t		id;
8000	uint32_t		size;
8001	const void*		pPrivateData;
8002};
8003
8004struct VkOpticalFlowExecuteInfoNV
8005{
8006	VkStructureType				sType;
8007	void*						pNext;
8008	VkOpticalFlowExecuteFlagsNV	flags;
8009	uint32_t					regionCount;
8010	const VkRect2D*				pRegions;
8011};
8012
8013struct VkPhysicalDeviceFaultFeaturesEXT
8014{
8015	VkStructureType	sType;
8016	void*			pNext;
8017	VkBool32		deviceFault;
8018	VkBool32		deviceFaultVendorBinary;
8019};
8020
8021struct VkDeviceFaultAddressInfoEXT
8022{
8023	VkDeviceFaultAddressTypeEXT	addressType;
8024	VkDeviceAddress				reportedAddress;
8025	VkDeviceSize				addressPrecision;
8026};
8027
8028struct VkDeviceFaultVendorInfoEXT
8029{
8030	char		description[VK_MAX_DESCRIPTION_SIZE];
8031	uint64_t	vendorFaultCode;
8032	uint64_t	vendorFaultData;
8033};
8034
8035struct VkDeviceFaultCountsEXT
8036{
8037	VkStructureType	sType;
8038	void*			pNext;
8039	uint32_t		addressInfoCount;
8040	uint32_t		vendorInfoCount;
8041	VkDeviceSize	vendorBinarySize;
8042};
8043
8044struct VkDeviceFaultInfoEXT
8045{
8046	VkStructureType					sType;
8047	void*							pNext;
8048	char							description[VK_MAX_DESCRIPTION_SIZE];
8049	VkDeviceFaultAddressInfoEXT*	pAddressInfos;
8050	VkDeviceFaultVendorInfoEXT*		pVendorInfos;
8051	void*							pVendorBinaryData;
8052};
8053
8054struct VkDeviceFaultVendorBinaryHeaderVersionOneEXT
8055{
8056	uint32_t									headerSize;
8057	VkDeviceFaultVendorBinaryHeaderVersionEXT	headerVersion;
8058	uint32_t									vendorID;
8059	uint32_t									deviceID;
8060	uint32_t									driverVersion;
8061	uint8_t										pipelineCacheUUID[VK_UUID_SIZE];
8062	uint32_t									applicationNameOffset;
8063	uint32_t									applicationVersion;
8064	uint32_t									engineNameOffset;
8065};
8066
8067struct VkDecompressMemoryRegionNV
8068{
8069	VkDeviceAddress						srcAddress;
8070	VkDeviceAddress						dstAddress;
8071	VkDeviceSize						compressedSize;
8072	VkDeviceSize						decompressedSize;
8073	VkMemoryDecompressionMethodFlagsNV	decompressionMethod;
8074};
8075
8076struct VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM
8077{
8078	VkStructureType	sType;
8079	void*			pNext;
8080	uint64_t		shaderCoreMask;
8081	uint32_t		shaderCoreCount;
8082	uint32_t		shaderWarpsPerCore;
8083};
8084
8085struct VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM
8086{
8087	VkStructureType	sType;
8088	void*			pNext;
8089	VkBool32		shaderCoreBuiltins;
8090};
8091
8092struct VkSurfacePresentModeEXT
8093{
8094	VkStructureType		sType;
8095	void*				pNext;
8096	VkPresentModeKHR	presentMode;
8097};
8098
8099struct VkSurfacePresentScalingCapabilitiesEXT
8100{
8101	VkStructureType				sType;
8102	void*						pNext;
8103	VkPresentScalingFlagsEXT	supportedPresentScaling;
8104	VkPresentGravityFlagsEXT	supportedPresentGravityX;
8105	VkPresentGravityFlagsEXT	supportedPresentGravityY;
8106	VkExtent2D					minScaledImageExtent;
8107	VkExtent2D					maxScaledImageExtent;
8108};
8109
8110struct VkSurfacePresentModeCompatibilityEXT
8111{
8112	VkStructureType		sType;
8113	void*				pNext;
8114	uint32_t			presentModeCount;
8115	VkPresentModeKHR*	pPresentModes;
8116};
8117
8118struct VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT
8119{
8120	VkStructureType	sType;
8121	void*			pNext;
8122	VkBool32		swapchainMaintenance1;
8123};
8124
8125struct VkSwapchainPresentFenceInfoEXT
8126{
8127	VkStructureType	sType;
8128	void*			pNext;
8129	uint32_t		swapchainCount;
8130	const VkFence*	pFences;
8131};
8132
8133struct VkSwapchainPresentModesCreateInfoEXT
8134{
8135	VkStructureType			sType;
8136	void*					pNext;
8137	uint32_t				presentModeCount;
8138	const VkPresentModeKHR*	pPresentModes;
8139};
8140
8141struct VkSwapchainPresentModeInfoEXT
8142{
8143	VkStructureType			sType;
8144	void*					pNext;
8145	uint32_t				swapchainCount;
8146	const VkPresentModeKHR*	pPresentModes;
8147};
8148
8149struct VkSwapchainPresentScalingCreateInfoEXT
8150{
8151	VkStructureType				sType;
8152	const void*					pNext;
8153	VkPresentScalingFlagsEXT	scalingBehavior;
8154	VkPresentGravityFlagsEXT	presentGravityX;
8155	VkPresentGravityFlagsEXT	presentGravityY;
8156};
8157
8158struct VkReleaseSwapchainImagesInfoEXT
8159{
8160	VkStructureType	sType;
8161	const void*		pNext;
8162	VkSwapchainKHR	swapchain;
8163	uint32_t		imageIndexCount;
8164	const uint32_t*	pImageIndices;
8165};
8166
8167struct VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV
8168{
8169	VkStructureType	sType;
8170	void*			pNext;
8171	VkBool32		rayTracingInvocationReorder;
8172};
8173
8174struct VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV
8175{
8176	VkStructureType						sType;
8177	void*								pNext;
8178	VkRayTracingInvocationReorderModeNV	rayTracingInvocationReorderReorderingHint;
8179};
8180
8181struct VkDirectDriverLoadingInfoLUNARG
8182{
8183	VkStructureType						sType;
8184	void*								pNext;
8185	VkDirectDriverLoadingFlagsLUNARG	flags;
8186	PFN_vkGetInstanceProcAddrLUNARG		pfnGetInstanceProcAddr;
8187};
8188
8189struct VkDirectDriverLoadingListLUNARG
8190{
8191	VkStructureType							sType;
8192	void*									pNext;
8193	VkDirectDriverLoadingModeLUNARG			mode;
8194	uint32_t								driverCount;
8195	const VkDirectDriverLoadingInfoLUNARG*	pDrivers;
8196};
8197
8198struct VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM
8199{
8200	VkStructureType	sType;
8201	void*			pNext;
8202	VkBool32		multiviewPerViewViewports;
8203};
8204
8205struct StdVideoH264SpsVuiFlags
8206{
8207	uint32_t	aspect_ratio_info_present_flag:1;
8208	uint32_t	overscan_info_present_flag:1;
8209	uint32_t	overscan_appropriate_flag:1;
8210	uint32_t	video_signal_type_present_flag:1;
8211	uint32_t	video_full_range_flag:1;
8212	uint32_t	color_description_present_flag:1;
8213	uint32_t	chroma_loc_info_present_flag:1;
8214	uint32_t	timing_info_present_flag:1;
8215	uint32_t	fixed_frame_rate_flag:1;
8216	uint32_t	bitstream_restriction_flag:1;
8217	uint32_t	nal_hrd_parameters_present_flag:1;
8218	uint32_t	vcl_hrd_parameters_present_flag:1;
8219};
8220
8221struct StdVideoH264HrdParameters
8222{
8223	uint8_t		cpb_cnt_minus1;
8224	uint8_t		bit_rate_scale;
8225	uint8_t		cpb_size_scale;
8226	uint8_t		reserved1;
8227	uint32_t	bit_rate_value_minus1[STD_VIDEO_H264_CPB_CNT_LIST_SIZE];
8228	uint32_t	cpb_size_value_minus1[STD_VIDEO_H264_CPB_CNT_LIST_SIZE];
8229	uint8_t		cbr_flag[STD_VIDEO_H264_CPB_CNT_LIST_SIZE];
8230	uint32_t	initial_cpb_removal_delay_length_minus1;
8231	uint32_t	cpb_removal_delay_length_minus1;
8232	uint32_t	dpb_output_delay_length_minus1;
8233	uint32_t	time_offset_length;
8234};
8235
8236struct StdVideoH264SequenceParameterSetVui
8237{
8238	StdVideoH264SpsVuiFlags				flags;
8239	StdVideoH264AspectRatioIdc			aspect_ratio_idc;
8240	uint16_t							sar_width;
8241	uint16_t							sar_height;
8242	uint8_t								video_format;
8243	uint8_t								colour_primaries;
8244	uint8_t								transfer_characteristics;
8245	uint8_t								matrix_coefficients;
8246	uint32_t							num_units_in_tick;
8247	uint32_t							time_scale;
8248	uint8_t								max_num_reorder_frames;
8249	uint8_t								max_dec_frame_buffering;
8250	uint8_t								chroma_sample_loc_type_top_field;
8251	uint8_t								chroma_sample_loc_type_bottom_field;
8252	uint32_t							reserved1;
8253	const StdVideoH264HrdParameters*	pHrdParameters;
8254};
8255
8256struct StdVideoH264SpsFlags
8257{
8258	uint32_t	constraint_set0_flag:1;
8259	uint32_t	constraint_set1_flag:1;
8260	uint32_t	constraint_set2_flag:1;
8261	uint32_t	constraint_set3_flag:1;
8262	uint32_t	constraint_set4_flag:1;
8263	uint32_t	constraint_set5_flag:1;
8264	uint32_t	direct_8x8_inference_flag:1;
8265	uint32_t	mb_adaptive_frame_field_flag:1;
8266	uint32_t	frame_mbs_only_flag:1;
8267	uint32_t	delta_pic_order_always_zero_flag:1;
8268	uint32_t	separate_colour_plane_flag:1;
8269	uint32_t	gaps_in_frame_num_value_allowed_flag:1;
8270	uint32_t	qpprime_y_zero_transform_bypass_flag:1;
8271	uint32_t	frame_cropping_flag:1;
8272	uint32_t	seq_scaling_matrix_present_flag:1;
8273	uint32_t	vui_parameters_present_flag:1;
8274};
8275
8276struct StdVideoH264ScalingLists
8277{
8278	uint16_t	scaling_list_present_mask;
8279	uint16_t	use_default_scaling_matrix_mask;
8280	uint8_t		ScalingList4x4[STD_VIDEO_H264_SCALING_LIST_4X4_NUM_LISTS][STD_VIDEO_H264_SCALING_LIST_4X4_NUM_ELEMENTS];
8281	uint8_t		ScalingList8x8[STD_VIDEO_H264_SCALING_LIST_8X8_NUM_LISTS][STD_VIDEO_H264_SCALING_LIST_8X8_NUM_ELEMENTS];
8282};
8283
8284struct StdVideoH264SequenceParameterSet
8285{
8286	StdVideoH264SpsFlags						flags;
8287	StdVideoH264ProfileIdc						profile_idc;
8288	StdVideoH264LevelIdc						level_idc;
8289	StdVideoH264ChromaFormatIdc					chroma_format_idc;
8290	uint8_t										seq_parameter_set_id;
8291	uint8_t										bit_depth_luma_minus8;
8292	uint8_t										bit_depth_chroma_minus8;
8293	uint8_t										log2_max_frame_num_minus4;
8294	StdVideoH264PocType							pic_order_cnt_type;
8295	int32_t										offset_for_non_ref_pic;
8296	int32_t										offset_for_top_to_bottom_field;
8297	uint8_t										log2_max_pic_order_cnt_lsb_minus4;
8298	uint8_t										num_ref_frames_in_pic_order_cnt_cycle;
8299	uint8_t										max_num_ref_frames;
8300	uint8_t										reserved1;
8301	uint32_t									pic_width_in_mbs_minus1;
8302	uint32_t									pic_height_in_map_units_minus1;
8303	uint32_t									frame_crop_left_offset;
8304	uint32_t									frame_crop_right_offset;
8305	uint32_t									frame_crop_top_offset;
8306	uint32_t									frame_crop_bottom_offset;
8307	uint32_t									reserved2;
8308	const int32_t*								pOffsetForRefFrame;
8309	const StdVideoH264ScalingLists*				pScalingLists;
8310	const StdVideoH264SequenceParameterSetVui*	pSequenceParameterSetVui;
8311};
8312
8313struct StdVideoH264PpsFlags
8314{
8315	uint32_t	transform_8x8_mode_flag:1;
8316	uint32_t	redundant_pic_cnt_present_flag:1;
8317	uint32_t	constrained_intra_pred_flag:1;
8318	uint32_t	deblocking_filter_control_present_flag:1;
8319	uint32_t	weighted_pred_flag:1;
8320	uint32_t	bottom_field_pic_order_in_frame_present_flag:1;
8321	uint32_t	entropy_coding_mode_flag:1;
8322	uint32_t	pic_scaling_matrix_present_flag:1;
8323};
8324
8325struct StdVideoH264PictureParameterSet
8326{
8327	StdVideoH264PpsFlags			flags;
8328	uint8_t							seq_parameter_set_id;
8329	uint8_t							pic_parameter_set_id;
8330	uint8_t							num_ref_idx_l0_default_active_minus1;
8331	uint8_t							num_ref_idx_l1_default_active_minus1;
8332	StdVideoH264WeightedBipredIdc	weighted_bipred_idc;
8333	int8_t							pic_init_qp_minus26;
8334	int8_t							pic_init_qs_minus26;
8335	int8_t							chroma_qp_index_offset;
8336	int8_t							second_chroma_qp_index_offset;
8337	const StdVideoH264ScalingLists*	pScalingLists;
8338};
8339
8340struct VkVideoDecodeH264SessionParametersAddInfoKHR
8341{
8342	VkStructureType							sType;
8343	const void*								pNext;
8344	uint32_t								stdSPSCount;
8345	const StdVideoH264SequenceParameterSet*	pStdSPSs;
8346	uint32_t								stdPPSCount;
8347	const StdVideoH264PictureParameterSet*	pStdPPSs;
8348};
8349
8350struct VkVideoEncodeH264SessionParametersAddInfoEXT
8351{
8352	VkStructureType							sType;
8353	const void*								pNext;
8354	uint32_t								stdSPSCount;
8355	const StdVideoH264SequenceParameterSet*	pStdSPSs;
8356	uint32_t								stdPPSCount;
8357	const StdVideoH264PictureParameterSet*	pStdPPSs;
8358};
8359
8360struct StdVideoDecodeH264PictureInfoFlags
8361{
8362	uint32_t	field_pic_flag:1;
8363	uint32_t	is_intra:1;
8364	uint32_t	IdrPicFlag:1;
8365	uint32_t	bottom_field_flag:1;
8366	uint32_t	is_reference:1;
8367	uint32_t	complementary_field_pair:1;
8368};
8369
8370struct VkVideoDecodeH264SessionParametersCreateInfoKHR
8371{
8372	VkStructureType										sType;
8373	const void*											pNext;
8374	uint32_t											maxStdSPSCount;
8375	uint32_t											maxStdPPSCount;
8376	const VkVideoDecodeH264SessionParametersAddInfoKHR*	pParametersAddInfo;
8377};
8378
8379struct VkVideoEncodeH264SessionParametersCreateInfoEXT
8380{
8381	VkStructureType										sType;
8382	const void*											pNext;
8383	uint32_t											maxStdSPSCount;
8384	uint32_t											maxStdPPSCount;
8385	const VkVideoEncodeH264SessionParametersAddInfoEXT*	pParametersAddInfo;
8386};
8387
8388struct StdVideoDecodeH264PictureInfo
8389{
8390	StdVideoDecodeH264PictureInfoFlags	flags;
8391	uint8_t								seq_parameter_set_id;
8392	uint8_t								pic_parameter_set_id;
8393	uint8_t								reserved1;
8394	uint8_t								reserved2;
8395	uint16_t							frame_num;
8396	uint16_t							idr_pic_id;
8397	int32_t								PicOrderCnt[STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_LIST_SIZE];
8398};
8399
8400struct VkVideoDecodeH264PictureInfoKHR
8401{
8402	VkStructureType							sType;
8403	const void*								pNext;
8404	const StdVideoDecodeH264PictureInfo*	pStdPictureInfo;
8405	uint32_t								sliceCount;
8406	const uint32_t*							pSliceOffsets;
8407};
8408
8409struct StdVideoDecodeH264ReferenceInfoFlags
8410{
8411	uint32_t	top_field_flag:1;
8412	uint32_t	bottom_field_flag:1;
8413	uint32_t	used_for_long_term_reference:1;
8414	uint32_t	is_non_existing:1;
8415};
8416
8417struct StdVideoDecodeH264ReferenceInfo
8418{
8419	StdVideoDecodeH264ReferenceInfoFlags	flags;
8420	uint16_t								FrameNum;
8421	uint16_t								reserved;
8422	int32_t									PicOrderCnt[STD_VIDEO_DECODE_H264_FIELD_ORDER_COUNT_LIST_SIZE];
8423};
8424
8425struct VkVideoDecodeH264DpbSlotInfoKHR
8426{
8427	VkStructureType							sType;
8428	const void*								pNext;
8429	const StdVideoDecodeH264ReferenceInfo*	pStdReferenceInfo;
8430};
8431
8432struct StdVideoEncodeH264WeightTableFlags
8433{
8434	uint32_t	luma_weight_l0_flag;
8435	uint32_t	chroma_weight_l0_flag;
8436	uint32_t	luma_weight_l1_flag;
8437	uint32_t	chroma_weight_l1_flag;
8438};
8439
8440struct StdVideoEncodeH264WeightTable
8441{
8442	StdVideoEncodeH264WeightTableFlags	flags;
8443	uint8_t								luma_log2_weight_denom;
8444	uint8_t								chroma_log2_weight_denom;
8445	int8_t								luma_weight_l0[STD_VIDEO_H264_MAX_NUM_LIST_REF];
8446	int8_t								luma_offset_l0[STD_VIDEO_H264_MAX_NUM_LIST_REF];
8447	int8_t								chroma_weight_l0[STD_VIDEO_H264_MAX_NUM_LIST_REF][STD_VIDEO_H264_MAX_CHROMA_PLANES];
8448	int8_t								chroma_offset_l0[STD_VIDEO_H264_MAX_NUM_LIST_REF][STD_VIDEO_H264_MAX_CHROMA_PLANES];
8449	int8_t								luma_weight_l1[STD_VIDEO_H264_MAX_NUM_LIST_REF];
8450	int8_t								luma_offset_l1[STD_VIDEO_H264_MAX_NUM_LIST_REF];
8451	int8_t								chroma_weight_l1[STD_VIDEO_H264_MAX_NUM_LIST_REF][STD_VIDEO_H264_MAX_CHROMA_PLANES];
8452	int8_t								chroma_offset_l1[STD_VIDEO_H264_MAX_NUM_LIST_REF][STD_VIDEO_H264_MAX_CHROMA_PLANES];
8453};
8454
8455struct StdVideoEncodeH264SliceHeaderFlags
8456{
8457	uint32_t	direct_spatial_mv_pred_flag:1;
8458	uint32_t	num_ref_idx_active_override_flag:1;
8459	uint32_t	no_output_of_prior_pics_flag:1;
8460	uint32_t	adaptive_ref_pic_marking_mode_flag:1;
8461	uint32_t	no_prior_references_available_flag:1;
8462};
8463
8464struct StdVideoEncodeH264PictureInfoFlags
8465{
8466	uint32_t	idr_flag:1;
8467	uint32_t	is_reference_flag:1;
8468	uint32_t	used_for_long_term_reference:1;
8469};
8470
8471struct StdVideoEncodeH264ReferenceInfoFlags
8472{
8473	uint32_t	used_for_long_term_reference:1;
8474};
8475
8476struct StdVideoEncodeH264RefMgmtFlags
8477{
8478	uint32_t	ref_pic_list_modification_l0_flag:1;
8479	uint32_t	ref_pic_list_modification_l1_flag:1;
8480};
8481
8482struct StdVideoEncodeH264RefListModEntry
8483{
8484	StdVideoH264ModificationOfPicNumsIdc	modification_of_pic_nums_idc;
8485	uint16_t								abs_diff_pic_num_minus1;
8486	uint16_t								long_term_pic_num;
8487};
8488
8489struct StdVideoEncodeH264RefPicMarkingEntry
8490{
8491	StdVideoH264MemMgmtControlOp	operation;
8492	uint16_t						difference_of_pic_nums_minus1;
8493	uint16_t						long_term_pic_num;
8494	uint16_t						long_term_frame_idx;
8495	uint16_t						max_long_term_frame_idx_plus1;
8496};
8497
8498struct StdVideoEncodeH264RefMemMgmtCtrlOperations
8499{
8500	StdVideoEncodeH264RefMgmtFlags				flags;
8501	uint8_t										refList0ModOpCount;
8502	const StdVideoEncodeH264RefListModEntry*	pRefList0ModOperations;
8503	uint8_t										refList1ModOpCount;
8504	const StdVideoEncodeH264RefListModEntry*	pRefList1ModOperations;
8505	uint8_t										refPicMarkingOpCount;
8506	const StdVideoEncodeH264RefPicMarkingEntry*	pRefPicMarkingOperations;
8507};
8508
8509struct StdVideoEncodeH264PictureInfo
8510{
8511	StdVideoEncodeH264PictureInfoFlags	flags;
8512	uint8_t								seq_parameter_set_id;
8513	uint8_t								pic_parameter_set_id;
8514	StdVideoH264PictureType				pictureType;
8515	uint32_t							frame_num;
8516	int32_t								PicOrderCnt;
8517};
8518
8519struct StdVideoEncodeH264ReferenceInfo
8520{
8521	StdVideoEncodeH264ReferenceInfoFlags	flags;
8522	uint32_t								FrameNum;
8523	int32_t									PicOrderCnt;
8524	uint16_t								long_term_pic_num;
8525	uint16_t								long_term_frame_idx;
8526};
8527
8528struct VkVideoEncodeH264DpbSlotInfoEXT
8529{
8530	VkStructureType							sType;
8531	const void*								pNext;
8532	int8_t									slotIndex;
8533	const StdVideoEncodeH264ReferenceInfo*	pStdReferenceInfo;
8534};
8535
8536struct StdVideoEncodeH264SliceHeader
8537{
8538	StdVideoEncodeH264SliceHeaderFlags		flags;
8539	uint32_t								first_mb_in_slice;
8540	StdVideoH264SliceType					slice_type;
8541	uint16_t								idr_pic_id;
8542	uint8_t									num_ref_idx_l0_active_minus1;
8543	uint8_t									num_ref_idx_l1_active_minus1;
8544	StdVideoH264CabacInitIdc				cabac_init_idc;
8545	StdVideoH264DisableDeblockingFilterIdc	disable_deblocking_filter_idc;
8546	int8_t									slice_alpha_c0_offset_div2;
8547	int8_t									slice_beta_offset_div2;
8548	const StdVideoEncodeH264WeightTable*	pWeightTable;
8549};
8550
8551struct VkVideoEncodeH264ReferenceListsInfoEXT
8552{
8553	VkStructureType										sType;
8554	const void*											pNext;
8555	uint8_t												referenceList0EntryCount;
8556	const VkVideoEncodeH264DpbSlotInfoEXT*				pReferenceList0Entries;
8557	uint8_t												referenceList1EntryCount;
8558	const VkVideoEncodeH264DpbSlotInfoEXT*				pReferenceList1Entries;
8559	const StdVideoEncodeH264RefMemMgmtCtrlOperations*	pMemMgmtCtrlOperations;
8560};
8561
8562struct StdVideoH265ProfileTierLevelFlags
8563{
8564	uint32_t	general_tier_flag:1;
8565	uint32_t	general_progressive_source_flag:1;
8566	uint32_t	general_interlaced_source_flag:1;
8567	uint32_t	general_non_packed_constraint_flag:1;
8568	uint32_t	general_frame_only_constraint_flag:1;
8569};
8570
8571struct VkVideoEncodeH264NaluSliceInfoEXT
8572{
8573	VkStructureType									sType;
8574	const void*										pNext;
8575	uint32_t										mbCount;
8576	const VkVideoEncodeH264ReferenceListsInfoEXT*	pReferenceFinalLists;
8577	const StdVideoEncodeH264SliceHeader*			pSliceHeaderStd;
8578};
8579
8580struct StdVideoH265ProfileTierLevel
8581{
8582	StdVideoH265ProfileTierLevelFlags	flags;
8583	StdVideoH265ProfileIdc				general_profile_idc;
8584	StdVideoH265LevelIdc				general_level_idc;
8585};
8586
8587struct VkVideoEncodeH264VclFrameInfoEXT
8588{
8589	VkStructureType									sType;
8590	const void*										pNext;
8591	const VkVideoEncodeH264ReferenceListsInfoEXT*	pReferenceFinalLists;
8592	uint32_t										naluSliceEntryCount;
8593	const VkVideoEncodeH264NaluSliceInfoEXT*		pNaluSliceEntries;
8594	const StdVideoEncodeH264PictureInfo*			pCurrentPictureInfo;
8595};
8596
8597struct StdVideoH265DecPicBufMgr
8598{
8599	uint32_t	max_latency_increase_plus1[STD_VIDEO_H265_SUBLAYERS_LIST_SIZE];
8600	uint8_t		max_dec_pic_buffering_minus1[STD_VIDEO_H265_SUBLAYERS_LIST_SIZE];
8601	uint8_t		max_num_reorder_pics[STD_VIDEO_H265_SUBLAYERS_LIST_SIZE];
8602};
8603
8604struct StdVideoH265SubLayerHrdParameters
8605{
8606	uint32_t	bit_rate_value_minus1[STD_VIDEO_H265_CPB_CNT_LIST_SIZE];
8607	uint32_t	cpb_size_value_minus1[STD_VIDEO_H265_CPB_CNT_LIST_SIZE];
8608	uint32_t	cpb_size_du_value_minus1[STD_VIDEO_H265_CPB_CNT_LIST_SIZE];
8609	uint32_t	bit_rate_du_value_minus1[STD_VIDEO_H265_CPB_CNT_LIST_SIZE];
8610	uint32_t	cbr_flag;
8611};
8612
8613struct StdVideoH265HrdFlags
8614{
8615	uint32_t	nal_hrd_parameters_present_flag:1;
8616	uint32_t	vcl_hrd_parameters_present_flag:1;
8617	uint32_t	sub_pic_hrd_params_present_flag:1;
8618	uint32_t	sub_pic_cpb_params_in_pic_timing_sei_flag:1;
8619	uint32_t	fixed_pic_rate_general_flag:8;
8620	uint32_t	fixed_pic_rate_within_cvs_flag:8;
8621	uint32_t	low_delay_hrd_flag:8;
8622};
8623
8624struct StdVideoH265HrdParameters
8625{
8626	StdVideoH265HrdFlags						flags;
8627	uint8_t										tick_divisor_minus2;
8628	uint8_t										du_cpb_removal_delay_increment_length_minus1;
8629	uint8_t										dpb_output_delay_du_length_minus1;
8630	uint8_t										bit_rate_scale;
8631	uint8_t										cpb_size_scale;
8632	uint8_t										cpb_size_du_scale;
8633	uint8_t										initial_cpb_removal_delay_length_minus1;
8634	uint8_t										au_cpb_removal_delay_length_minus1;
8635	uint8_t										dpb_output_delay_length_minus1;
8636	uint8_t										cpb_cnt_minus1[STD_VIDEO_H265_SUBLAYERS_LIST_SIZE];
8637	uint16_t									elemental_duration_in_tc_minus1[STD_VIDEO_H265_SUBLAYERS_LIST_SIZE];
8638	uint16_t									reserved[3];
8639	const StdVideoH265SubLayerHrdParameters*	pSubLayerHrdParametersNal;
8640	const StdVideoH265SubLayerHrdParameters*	pSubLayerHrdParametersVcl;
8641};
8642
8643struct StdVideoH265VpsFlags
8644{
8645	uint32_t	vps_temporal_id_nesting_flag:1;
8646	uint32_t	vps_sub_layer_ordering_info_present_flag:1;
8647	uint32_t	vps_timing_info_present_flag:1;
8648	uint32_t	vps_poc_proportional_to_timing_flag:1;
8649};
8650
8651struct StdVideoH265VideoParameterSet
8652{
8653	StdVideoH265VpsFlags				flags;
8654	uint8_t								vps_video_parameter_set_id;
8655	uint8_t								vps_max_sub_layers_minus1;
8656	uint8_t								reserved1;
8657	uint8_t								reserved2;
8658	uint32_t							vps_num_units_in_tick;
8659	uint32_t							vps_time_scale;
8660	uint32_t							vps_num_ticks_poc_diff_one_minus1;
8661	uint32_t							reserved3;
8662	const StdVideoH265DecPicBufMgr*		pDecPicBufMgr;
8663	const StdVideoH265HrdParameters*	pHrdParameters;
8664	const StdVideoH265ProfileTierLevel*	pProfileTierLevel;
8665};
8666
8667struct StdVideoH265ScalingLists
8668{
8669	uint8_t	ScalingList4x4[STD_VIDEO_H265_SCALING_LIST_4X4_NUM_LISTS][STD_VIDEO_H265_SCALING_LIST_4X4_NUM_ELEMENTS];
8670	uint8_t	ScalingList8x8[STD_VIDEO_H265_SCALING_LIST_8X8_NUM_LISTS][STD_VIDEO_H265_SCALING_LIST_8X8_NUM_ELEMENTS];
8671	uint8_t	ScalingList16x16[STD_VIDEO_H265_SCALING_LIST_16X16_NUM_LISTS][STD_VIDEO_H265_SCALING_LIST_16X16_NUM_ELEMENTS];
8672	uint8_t	ScalingList32x32[STD_VIDEO_H265_SCALING_LIST_32X32_NUM_LISTS][STD_VIDEO_H265_SCALING_LIST_32X32_NUM_ELEMENTS];
8673	uint8_t	ScalingListDCCoef16x16[STD_VIDEO_H265_SCALING_LIST_16X16_NUM_LISTS];
8674	uint8_t	ScalingListDCCoef32x32[STD_VIDEO_H265_SCALING_LIST_32X32_NUM_LISTS];
8675};
8676
8677struct StdVideoH265ShortTermRefPicSetFlags
8678{
8679	uint32_t	inter_ref_pic_set_prediction_flag:1;
8680	uint32_t	delta_rps_sign:1;
8681};
8682
8683struct StdVideoH265ShortTermRefPicSet
8684{
8685	StdVideoH265ShortTermRefPicSetFlags	flags;
8686	uint32_t							delta_idx_minus1;
8687	uint16_t							use_delta_flag;
8688	uint16_t							abs_delta_rps_minus1;
8689	uint16_t							used_by_curr_pic_flag;
8690	uint16_t							used_by_curr_pic_s0_flag;
8691	uint16_t							used_by_curr_pic_s1_flag;
8692	uint16_t							reserved1;
8693	uint8_t								reserved2;
8694	uint8_t								reserved3;
8695	uint8_t								num_negative_pics;
8696	uint8_t								num_positive_pics;
8697	uint16_t							delta_poc_s0_minus1[STD_VIDEO_H265_MAX_DPB_SIZE];
8698	uint16_t							delta_poc_s1_minus1[STD_VIDEO_H265_MAX_DPB_SIZE];
8699};
8700
8701struct StdVideoH265LongTermRefPicsSps
8702{
8703	uint32_t	used_by_curr_pic_lt_sps_flag;
8704	uint32_t	lt_ref_pic_poc_lsb_sps[STD_VIDEO_H265_MAX_LONG_TERM_REF_PICS_SPS];
8705};
8706
8707struct StdVideoH265SpsVuiFlags
8708{
8709	uint32_t	aspect_ratio_info_present_flag:1;
8710	uint32_t	overscan_info_present_flag:1;
8711	uint32_t	overscan_appropriate_flag:1;
8712	uint32_t	video_signal_type_present_flag:1;
8713	uint32_t	video_full_range_flag:1;
8714	uint32_t	colour_description_present_flag:1;
8715	uint32_t	chroma_loc_info_present_flag:1;
8716	uint32_t	neutral_chroma_indication_flag:1;
8717	uint32_t	field_seq_flag:1;
8718	uint32_t	frame_field_info_present_flag:1;
8719	uint32_t	default_display_window_flag:1;
8720	uint32_t	vui_timing_info_present_flag:1;
8721	uint32_t	vui_poc_proportional_to_timing_flag:1;
8722	uint32_t	vui_hrd_parameters_present_flag:1;
8723	uint32_t	bitstream_restriction_flag:1;
8724	uint32_t	tiles_fixed_structure_flag:1;
8725	uint32_t	motion_vectors_over_pic_boundaries_flag:1;
8726	uint32_t	restricted_ref_pic_lists_flag:1;
8727};
8728
8729struct StdVideoH265SequenceParameterSetVui
8730{
8731	StdVideoH265SpsVuiFlags				flags;
8732	StdVideoH265AspectRatioIdc			aspect_ratio_idc;
8733	uint16_t							sar_width;
8734	uint16_t							sar_height;
8735	uint8_t								video_format;
8736	uint8_t								colour_primaries;
8737	uint8_t								transfer_characteristics;
8738	uint8_t								matrix_coeffs;
8739	uint8_t								chroma_sample_loc_type_top_field;
8740	uint8_t								chroma_sample_loc_type_bottom_field;
8741	uint8_t								reserved1;
8742	uint8_t								reserved2;
8743	uint16_t							def_disp_win_left_offset;
8744	uint16_t							def_disp_win_right_offset;
8745	uint16_t							def_disp_win_top_offset;
8746	uint16_t							def_disp_win_bottom_offset;
8747	uint32_t							vui_num_units_in_tick;
8748	uint32_t							vui_time_scale;
8749	uint32_t							vui_num_ticks_poc_diff_one_minus1;
8750	uint16_t							min_spatial_segmentation_idc;
8751	uint16_t							reserved3;
8752	uint8_t								max_bytes_per_pic_denom;
8753	uint8_t								max_bits_per_min_cu_denom;
8754	uint8_t								log2_max_mv_length_horizontal;
8755	uint8_t								log2_max_mv_length_vertical;
8756	const StdVideoH265HrdParameters*	pHrdParameters;
8757};
8758
8759struct StdVideoH265PredictorPaletteEntries
8760{
8761	uint16_t	PredictorPaletteEntries[STD_VIDEO_H265_PREDICTOR_PALETTE_COMPONENTS_LIST_SIZE][STD_VIDEO_H265_PREDICTOR_PALETTE_COMP_ENTRIES_LIST_SIZE];
8762};
8763
8764struct StdVideoH265SpsFlags
8765{
8766	uint32_t	sps_temporal_id_nesting_flag:1;
8767	uint32_t	separate_colour_plane_flag:1;
8768	uint32_t	conformance_window_flag:1;
8769	uint32_t	sps_sub_layer_ordering_info_present_flag:1;
8770	uint32_t	scaling_list_enabled_flag:1;
8771	uint32_t	sps_scaling_list_data_present_flag:1;
8772	uint32_t	amp_enabled_flag:1;
8773	uint32_t	sample_adaptive_offset_enabled_flag:1;
8774	uint32_t	pcm_enabled_flag:1;
8775	uint32_t	pcm_loop_filter_disabled_flag:1;
8776	uint32_t	long_term_ref_pics_present_flag:1;
8777	uint32_t	sps_temporal_mvp_enabled_flag:1;
8778	uint32_t	strong_intra_smoothing_enabled_flag:1;
8779	uint32_t	vui_parameters_present_flag:1;
8780	uint32_t	sps_extension_present_flag:1;
8781	uint32_t	sps_range_extension_flag:1;
8782	uint32_t	transform_skip_rotation_enabled_flag:1;
8783	uint32_t	transform_skip_context_enabled_flag:1;
8784	uint32_t	implicit_rdpcm_enabled_flag:1;
8785	uint32_t	explicit_rdpcm_enabled_flag:1;
8786	uint32_t	extended_precision_processing_flag:1;
8787	uint32_t	intra_smoothing_disabled_flag:1;
8788	uint32_t	high_precision_offsets_enabled_flag:1;
8789	uint32_t	persistent_rice_adaptation_enabled_flag:1;
8790	uint32_t	cabac_bypass_alignment_enabled_flag:1;
8791	uint32_t	sps_scc_extension_flag:1;
8792	uint32_t	sps_curr_pic_ref_enabled_flag:1;
8793	uint32_t	palette_mode_enabled_flag:1;
8794	uint32_t	sps_palette_predictor_initializers_present_flag:1;
8795	uint32_t	intra_boundary_filtering_disabled_flag:1;
8796};
8797
8798struct StdVideoH265SequenceParameterSet
8799{
8800	StdVideoH265SpsFlags						flags;
8801	StdVideoH265ChromaFormatIdc					chroma_format_idc;
8802	uint32_t									pic_width_in_luma_samples;
8803	uint32_t									pic_height_in_luma_samples;
8804	uint8_t										sps_video_parameter_set_id;
8805	uint8_t										sps_max_sub_layers_minus1;
8806	uint8_t										sps_seq_parameter_set_id;
8807	uint8_t										bit_depth_luma_minus8;
8808	uint8_t										bit_depth_chroma_minus8;
8809	uint8_t										log2_max_pic_order_cnt_lsb_minus4;
8810	uint8_t										log2_min_luma_coding_block_size_minus3;
8811	uint8_t										log2_diff_max_min_luma_coding_block_size;
8812	uint8_t										log2_min_luma_transform_block_size_minus2;
8813	uint8_t										log2_diff_max_min_luma_transform_block_size;
8814	uint8_t										max_transform_hierarchy_depth_inter;
8815	uint8_t										max_transform_hierarchy_depth_intra;
8816	uint8_t										num_short_term_ref_pic_sets;
8817	uint8_t										num_long_term_ref_pics_sps;
8818	uint8_t										pcm_sample_bit_depth_luma_minus1;
8819	uint8_t										pcm_sample_bit_depth_chroma_minus1;
8820	uint8_t										log2_min_pcm_luma_coding_block_size_minus3;
8821	uint8_t										log2_diff_max_min_pcm_luma_coding_block_size;
8822	uint8_t										reserved1;
8823	uint8_t										reserved2;
8824	uint8_t										palette_max_size;
8825	uint8_t										delta_palette_max_predictor_size;
8826	uint8_t										motion_vector_resolution_control_idc;
8827	uint8_t										sps_num_palette_predictor_initializers_minus1;
8828	uint32_t									conf_win_left_offset;
8829	uint32_t									conf_win_right_offset;
8830	uint32_t									conf_win_top_offset;
8831	uint32_t									conf_win_bottom_offset;
8832	const StdVideoH265ProfileTierLevel*			pProfileTierLevel;
8833	const StdVideoH265DecPicBufMgr*				pDecPicBufMgr;
8834	const StdVideoH265ScalingLists*				pScalingLists;
8835	const StdVideoH265ShortTermRefPicSet*		pShortTermRefPicSet;
8836	const StdVideoH265LongTermRefPicsSps*		pLongTermRefPicsSps;
8837	const StdVideoH265SequenceParameterSetVui*	pSequenceParameterSetVui;
8838	const StdVideoH265PredictorPaletteEntries*	pPredictorPaletteEntries;
8839};
8840
8841struct StdVideoH265PpsFlags
8842{
8843	uint32_t	dependent_slice_segments_enabled_flag:1;
8844	uint32_t	output_flag_present_flag:1;
8845	uint32_t	sign_data_hiding_enabled_flag:1;
8846	uint32_t	cabac_init_present_flag:1;
8847	uint32_t	constrained_intra_pred_flag:1;
8848	uint32_t	transform_skip_enabled_flag:1;
8849	uint32_t	cu_qp_delta_enabled_flag:1;
8850	uint32_t	pps_slice_chroma_qp_offsets_present_flag:1;
8851	uint32_t	weighted_pred_flag:1;
8852	uint32_t	weighted_bipred_flag:1;
8853	uint32_t	transquant_bypass_enabled_flag:1;
8854	uint32_t	tiles_enabled_flag:1;
8855	uint32_t	entropy_coding_sync_enabled_flag:1;
8856	uint32_t	uniform_spacing_flag:1;
8857	uint32_t	loop_filter_across_tiles_enabled_flag:1;
8858	uint32_t	pps_loop_filter_across_slices_enabled_flag:1;
8859	uint32_t	deblocking_filter_control_present_flag:1;
8860	uint32_t	deblocking_filter_override_enabled_flag:1;
8861	uint32_t	pps_deblocking_filter_disabled_flag:1;
8862	uint32_t	pps_scaling_list_data_present_flag:1;
8863	uint32_t	lists_modification_present_flag:1;
8864	uint32_t	slice_segment_header_extension_present_flag:1;
8865	uint32_t	pps_extension_present_flag:1;
8866	uint32_t	cross_component_prediction_enabled_flag:1;
8867	uint32_t	chroma_qp_offset_list_enabled_flag:1;
8868	uint32_t	pps_curr_pic_ref_enabled_flag:1;
8869	uint32_t	residual_adaptive_colour_transform_enabled_flag:1;
8870	uint32_t	pps_slice_act_qp_offsets_present_flag:1;
8871	uint32_t	pps_palette_predictor_initializers_present_flag:1;
8872	uint32_t	monochrome_palette_flag:1;
8873	uint32_t	pps_range_extension_flag:1;
8874};
8875
8876struct StdVideoH265PictureParameterSet
8877{
8878	StdVideoH265PpsFlags						flags;
8879	uint8_t										pps_pic_parameter_set_id;
8880	uint8_t										pps_seq_parameter_set_id;
8881	uint8_t										sps_video_parameter_set_id;
8882	uint8_t										num_extra_slice_header_bits;
8883	uint8_t										num_ref_idx_l0_default_active_minus1;
8884	uint8_t										num_ref_idx_l1_default_active_minus1;
8885	int8_t										init_qp_minus26;
8886	uint8_t										diff_cu_qp_delta_depth;
8887	int8_t										pps_cb_qp_offset;
8888	int8_t										pps_cr_qp_offset;
8889	int8_t										pps_beta_offset_div2;
8890	int8_t										pps_tc_offset_div2;
8891	uint8_t										log2_parallel_merge_level_minus2;
8892	uint8_t										log2_max_transform_skip_block_size_minus2;
8893	uint8_t										diff_cu_chroma_qp_offset_depth;
8894	uint8_t										chroma_qp_offset_list_len_minus1;
8895	int8_t										cb_qp_offset_list[STD_VIDEO_H265_CHROMA_QP_OFFSET_LIST_SIZE];
8896	int8_t										cr_qp_offset_list[STD_VIDEO_H265_CHROMA_QP_OFFSET_LIST_SIZE];
8897	uint8_t										log2_sao_offset_scale_luma;
8898	uint8_t										log2_sao_offset_scale_chroma;
8899	int8_t										pps_act_y_qp_offset_plus5;
8900	int8_t										pps_act_cb_qp_offset_plus5;
8901	int8_t										pps_act_cr_qp_offset_plus3;
8902	uint8_t										pps_num_palette_predictor_initializers;
8903	uint8_t										luma_bit_depth_entry_minus8;
8904	uint8_t										chroma_bit_depth_entry_minus8;
8905	uint8_t										num_tile_columns_minus1;
8906	uint8_t										num_tile_rows_minus1;
8907	uint8_t										reserved1;
8908	uint8_t										reserved2;
8909	uint16_t									column_width_minus1[STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_COLS_LIST_SIZE];
8910	uint16_t									row_height_minus1[STD_VIDEO_H265_CHROMA_QP_OFFSET_TILE_ROWS_LIST_SIZE];
8911	uint32_t									reserved3;
8912	const StdVideoH265ScalingLists*				pScalingLists;
8913	const StdVideoH265PredictorPaletteEntries*	pPredictorPaletteEntries;
8914};
8915
8916struct VkVideoDecodeH265SessionParametersAddInfoKHR
8917{
8918	VkStructureType							sType;
8919	const void*								pNext;
8920	uint32_t								stdVPSCount;
8921	const StdVideoH265VideoParameterSet*	pStdVPSs;
8922	uint32_t								stdSPSCount;
8923	const StdVideoH265SequenceParameterSet*	pStdSPSs;
8924	uint32_t								stdPPSCount;
8925	const StdVideoH265PictureParameterSet*	pStdPPSs;
8926};
8927
8928struct VkVideoEncodeH265SessionParametersAddInfoEXT
8929{
8930	VkStructureType							sType;
8931	const void*								pNext;
8932	uint32_t								stdVPSCount;
8933	const StdVideoH265VideoParameterSet*	pStdVPSs;
8934	uint32_t								stdSPSCount;
8935	const StdVideoH265SequenceParameterSet*	pStdSPSs;
8936	uint32_t								stdPPSCount;
8937	const StdVideoH265PictureParameterSet*	pStdPPSs;
8938};
8939
8940struct StdVideoDecodeH265PictureInfoFlags
8941{
8942	uint32_t	IrapPicFlag:1;
8943	uint32_t	IdrPicFlag:1;
8944	uint32_t	IsReference:1;
8945	uint32_t	short_term_ref_pic_set_sps_flag:1;
8946};
8947
8948struct VkVideoDecodeH265SessionParametersCreateInfoKHR
8949{
8950	VkStructureType										sType;
8951	const void*											pNext;
8952	uint32_t											maxStdVPSCount;
8953	uint32_t											maxStdSPSCount;
8954	uint32_t											maxStdPPSCount;
8955	const VkVideoDecodeH265SessionParametersAddInfoKHR*	pParametersAddInfo;
8956};
8957
8958struct VkVideoEncodeH265SessionParametersCreateInfoEXT
8959{
8960	VkStructureType										sType;
8961	const void*											pNext;
8962	uint32_t											maxStdVPSCount;
8963	uint32_t											maxStdSPSCount;
8964	uint32_t											maxStdPPSCount;
8965	const VkVideoEncodeH265SessionParametersAddInfoEXT*	pParametersAddInfo;
8966};
8967
8968struct StdVideoDecodeH265PictureInfo
8969{
8970	StdVideoDecodeH265PictureInfoFlags	flags;
8971	uint8_t								sps_video_parameter_set_id;
8972	uint8_t								pps_seq_parameter_set_id;
8973	uint8_t								pps_pic_parameter_set_id;
8974	uint8_t								NumDeltaPocsOfRefRpsIdx;
8975	int32_t								PicOrderCntVal;
8976	uint16_t							NumBitsForSTRefPicSetInSlice;
8977	uint16_t							reserved;
8978	uint8_t								RefPicSetStCurrBefore[STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE];
8979	uint8_t								RefPicSetStCurrAfter[STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE];
8980	uint8_t								RefPicSetLtCurr[STD_VIDEO_DECODE_H265_REF_PIC_SET_LIST_SIZE];
8981};
8982
8983struct VkVideoDecodeH265PictureInfoKHR
8984{
8985	VkStructureType					sType;
8986	const void*						pNext;
8987	StdVideoDecodeH265PictureInfo*	pStdPictureInfo;
8988	uint32_t						sliceSegmentCount;
8989	const uint32_t*					pSliceSegmentOffsets;
8990};
8991
8992struct StdVideoDecodeH265ReferenceInfoFlags
8993{
8994	uint32_t	used_for_long_term_reference:1;
8995	uint32_t	unused_for_reference:1;
8996};
8997
8998struct StdVideoDecodeH265ReferenceInfo
8999{
9000	StdVideoDecodeH265ReferenceInfoFlags	flags;
9001	int32_t									PicOrderCntVal;
9002};
9003
9004struct VkVideoDecodeH265DpbSlotInfoKHR
9005{
9006	VkStructureType							sType;
9007	const void*								pNext;
9008	const StdVideoDecodeH265ReferenceInfo*	pStdReferenceInfo;
9009};
9010
9011struct StdVideoEncodeH265WeightTableFlags
9012{
9013	uint16_t	luma_weight_l0_flag;
9014	uint16_t	chroma_weight_l0_flag;
9015	uint16_t	luma_weight_l1_flag;
9016	uint16_t	chroma_weight_l1_flag;
9017};
9018
9019struct StdVideoEncodeH265WeightTable
9020{
9021	StdVideoEncodeH265WeightTableFlags	flags;
9022	uint8_t								luma_log2_weight_denom;
9023	int8_t								delta_chroma_log2_weight_denom;
9024	int8_t								delta_luma_weight_l0[STD_VIDEO_H265_MAX_NUM_LIST_REF];
9025	int8_t								luma_offset_l0[STD_VIDEO_H265_MAX_NUM_LIST_REF];
9026	int8_t								delta_chroma_weight_l0[STD_VIDEO_H265_MAX_NUM_LIST_REF][STD_VIDEO_H265_MAX_CHROMA_PLANES];
9027	int8_t								delta_chroma_offset_l0[STD_VIDEO_H265_MAX_NUM_LIST_REF][STD_VIDEO_H265_MAX_CHROMA_PLANES];
9028	int8_t								delta_luma_weight_l1[STD_VIDEO_H265_MAX_NUM_LIST_REF];
9029	int8_t								luma_offset_l1[STD_VIDEO_H265_MAX_NUM_LIST_REF];
9030	int8_t								delta_chroma_weight_l1[STD_VIDEO_H265_MAX_NUM_LIST_REF][STD_VIDEO_H265_MAX_CHROMA_PLANES];
9031	int8_t								delta_chroma_offset_l1[STD_VIDEO_H265_MAX_NUM_LIST_REF][STD_VIDEO_H265_MAX_CHROMA_PLANES];
9032};
9033
9034struct StdVideoEncodeH265SliceSegmentLongTermRefPics
9035{
9036	uint8_t		num_long_term_sps;
9037	uint8_t		num_long_term_pics;
9038	uint8_t		lt_idx_sps[STD_VIDEO_H265_MAX_LONG_TERM_REF_PICS_SPS];
9039	uint8_t		poc_lsb_lt[STD_VIDEO_H265_MAX_LONG_TERM_PICS];
9040	uint16_t	used_by_curr_pic_lt_flag;
9041	uint8_t		delta_poc_msb_present_flag[STD_VIDEO_H265_MAX_DELTA_POC];
9042	uint8_t		delta_poc_msb_cycle_lt[STD_VIDEO_H265_MAX_DELTA_POC];
9043};
9044
9045struct StdVideoEncodeH265SliceSegmentHeaderFlags
9046{
9047	uint32_t	first_slice_segment_in_pic_flag:1;
9048	uint32_t	no_output_of_prior_pics_flag:1;
9049	uint32_t	dependent_slice_segment_flag:1;
9050	uint32_t	pic_output_flag:1;
9051	uint32_t	short_term_ref_pic_set_sps_flag:1;
9052	uint32_t	slice_temporal_mvp_enable_flag:1;
9053	uint32_t	slice_sao_luma_flag:1;
9054	uint32_t	slice_sao_chroma_flag:1;
9055	uint32_t	num_ref_idx_active_override_flag:1;
9056	uint32_t	mvd_l1_zero_flag:1;
9057	uint32_t	cabac_init_flag:1;
9058	uint32_t	cu_chroma_qp_offset_enabled_flag:1;
9059	uint32_t	deblocking_filter_override_flag:1;
9060	uint32_t	slice_deblocking_filter_disabled_flag:1;
9061	uint32_t	collocated_from_l0_flag:1;
9062	uint32_t	slice_loop_filter_across_slices_enabled_flag:1;
9063};
9064
9065struct StdVideoEncodeH265SliceSegmentHeader
9066{
9067	StdVideoEncodeH265SliceSegmentHeaderFlags				flags;
9068	StdVideoH265SliceType									slice_type;
9069	uint32_t												slice_segment_address;
9070	uint8_t													short_term_ref_pic_set_idx;
9071	uint8_t													collocated_ref_idx;
9072	uint8_t													num_ref_idx_l0_active_minus1;
9073	uint8_t													num_ref_idx_l1_active_minus1;
9074	uint8_t													MaxNumMergeCand;
9075	int8_t													slice_cb_qp_offset;
9076	int8_t													slice_cr_qp_offset;
9077	int8_t													slice_beta_offset_div2;
9078	int8_t													slice_tc_offset_div2;
9079	int8_t													slice_act_y_qp_offset;
9080	int8_t													slice_act_cb_qp_offset;
9081	int8_t													slice_act_cr_qp_offset;
9082	const StdVideoH265ShortTermRefPicSet*					pShortTermRefPicSet;
9083	const StdVideoEncodeH265SliceSegmentLongTermRefPics*	pLongTermRefPics;
9084	const StdVideoEncodeH265WeightTable*					pWeightTable;
9085};
9086
9087struct StdVideoEncodeH265ReferenceModificationFlags
9088{
9089	uint32_t	ref_pic_list_modification_flag_l0:1;
9090	uint32_t	ref_pic_list_modification_flag_l1:1;
9091};
9092
9093struct StdVideoEncodeH265ReferenceModifications
9094{
9095	StdVideoEncodeH265ReferenceModificationFlags	flags;
9096	uint8_t											referenceList0ModificationsCount;
9097	const uint8_t*									pReferenceList0Modifications;
9098	uint8_t											referenceList1ModificationsCount;
9099	const uint8_t*									pReferenceList1Modifications;
9100};
9101
9102struct StdVideoEncodeH265PictureInfoFlags
9103{
9104	uint32_t	is_reference_flag:1;
9105	uint32_t	IrapPicFlag:1;
9106	uint32_t	long_term_flag:1;
9107	uint32_t	discardable_flag:1;
9108	uint32_t	cross_layer_bla_flag:1;
9109};
9110
9111struct StdVideoEncodeH265PictureInfo
9112{
9113	StdVideoEncodeH265PictureInfoFlags	flags;
9114	StdVideoH265PictureType				PictureType;
9115	uint8_t								sps_video_parameter_set_id;
9116	uint8_t								pps_seq_parameter_set_id;
9117	uint8_t								pps_pic_parameter_set_id;
9118	int32_t								PicOrderCntVal;
9119	uint8_t								TemporalId;
9120};
9121
9122struct StdVideoEncodeH265ReferenceInfoFlags
9123{
9124	uint32_t	used_for_long_term_reference:1;
9125	uint32_t	unused_for_reference:1;
9126};
9127
9128struct StdVideoEncodeH265ReferenceInfo
9129{
9130	StdVideoEncodeH265ReferenceInfoFlags	flags;
9131	int32_t									PicOrderCntVal;
9132	uint8_t									TemporalId;
9133};
9134
9135struct VkVideoEncodeH265DpbSlotInfoEXT
9136{
9137	VkStructureType							sType;
9138	const void*								pNext;
9139	int8_t									slotIndex;
9140	const StdVideoEncodeH265ReferenceInfo*	pStdReferenceInfo;
9141};
9142
9143struct VkVideoEncodeH265ReferenceListsInfoEXT
9144{
9145	VkStructureType									sType;
9146	const void*										pNext;
9147	uint8_t											referenceList0EntryCount;
9148	const VkVideoEncodeH265DpbSlotInfoEXT*			pReferenceList0Entries;
9149	uint8_t											referenceList1EntryCount;
9150	const VkVideoEncodeH265DpbSlotInfoEXT*			pReferenceList1Entries;
9151	const StdVideoEncodeH265ReferenceModifications*	pReferenceModifications;
9152};
9153
9154struct VkVideoEncodeH265NaluSliceSegmentInfoEXT
9155{
9156	VkStructureType									sType;
9157	const void*										pNext;
9158	uint32_t										ctbCount;
9159	const VkVideoEncodeH265ReferenceListsInfoEXT*	pReferenceFinalLists;
9160	const StdVideoEncodeH265SliceSegmentHeader*		pSliceSegmentHeaderStd;
9161};
9162
9163struct VkVideoEncodeH265VclFrameInfoEXT
9164{
9165	VkStructureType									sType;
9166	const void*										pNext;
9167	const VkVideoEncodeH265ReferenceListsInfoEXT*	pReferenceFinalLists;
9168	uint32_t										naluSliceSegmentEntryCount;
9169	const VkVideoEncodeH265NaluSliceSegmentInfoEXT*	pNaluSliceSegmentEntries;
9170	const StdVideoEncodeH265PictureInfo*			pCurrentPictureInfo;
9171};
9172
9173typedef VkDevicePrivateDataCreateInfo VkDevicePrivateDataCreateInfoEXT;
9174
9175typedef VkPrivateDataSlotCreateInfo VkPrivateDataSlotCreateInfoEXT;
9176
9177typedef VkPhysicalDevicePrivateDataFeatures VkPhysicalDevicePrivateDataFeaturesEXT;
9178
9179typedef VkPhysicalDeviceFeatures2 VkPhysicalDeviceFeatures2KHR;
9180
9181typedef VkPhysicalDeviceProperties2 VkPhysicalDeviceProperties2KHR;
9182
9183typedef VkFormatProperties2 VkFormatProperties2KHR;
9184
9185typedef VkImageFormatProperties2 VkImageFormatProperties2KHR;
9186
9187typedef VkPhysicalDeviceImageFormatInfo2 VkPhysicalDeviceImageFormatInfo2KHR;
9188
9189typedef VkQueueFamilyProperties2 VkQueueFamilyProperties2KHR;
9190
9191typedef VkPhysicalDeviceMemoryProperties2 VkPhysicalDeviceMemoryProperties2KHR;
9192
9193typedef VkSparseImageFormatProperties2 VkSparseImageFormatProperties2KHR;
9194
9195typedef VkPhysicalDeviceSparseImageFormatInfo2 VkPhysicalDeviceSparseImageFormatInfo2KHR;
9196
9197typedef VkConformanceVersion VkConformanceVersionKHR;
9198
9199typedef VkPhysicalDeviceDriverProperties VkPhysicalDeviceDriverPropertiesKHR;
9200
9201typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointersFeaturesKHR;
9202
9203typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointerFeaturesKHR;
9204
9205typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointerFeatures;
9206
9207typedef VkExternalMemoryProperties VkExternalMemoryPropertiesKHR;
9208
9209typedef VkPhysicalDeviceExternalImageFormatInfo VkPhysicalDeviceExternalImageFormatInfoKHR;
9210
9211typedef VkExternalImageFormatProperties VkExternalImageFormatPropertiesKHR;
9212
9213typedef VkPhysicalDeviceExternalBufferInfo VkPhysicalDeviceExternalBufferInfoKHR;
9214
9215typedef VkExternalBufferProperties VkExternalBufferPropertiesKHR;
9216
9217typedef VkPhysicalDeviceIDProperties VkPhysicalDeviceIDPropertiesKHR;
9218
9219typedef VkExternalMemoryImageCreateInfo VkExternalMemoryImageCreateInfoKHR;
9220
9221typedef VkExternalMemoryBufferCreateInfo VkExternalMemoryBufferCreateInfoKHR;
9222
9223typedef VkExportMemoryAllocateInfo VkExportMemoryAllocateInfoKHR;
9224
9225typedef VkPhysicalDeviceExternalSemaphoreInfo VkPhysicalDeviceExternalSemaphoreInfoKHR;
9226
9227typedef VkExternalSemaphoreProperties VkExternalSemaphorePropertiesKHR;
9228
9229typedef VkExportSemaphoreCreateInfo VkExportSemaphoreCreateInfoKHR;
9230
9231typedef VkPhysicalDeviceExternalFenceInfo VkPhysicalDeviceExternalFenceInfoKHR;
9232
9233typedef VkExternalFenceProperties VkExternalFencePropertiesKHR;
9234
9235typedef VkExportFenceCreateInfo VkExportFenceCreateInfoKHR;
9236
9237typedef VkPhysicalDeviceMultiviewFeatures VkPhysicalDeviceMultiviewFeaturesKHR;
9238
9239typedef VkPhysicalDeviceMultiviewProperties VkPhysicalDeviceMultiviewPropertiesKHR;
9240
9241typedef VkRenderPassMultiviewCreateInfo VkRenderPassMultiviewCreateInfoKHR;
9242
9243typedef VkPhysicalDeviceGroupProperties VkPhysicalDeviceGroupPropertiesKHR;
9244
9245typedef VkMemoryAllocateFlagsInfo VkMemoryAllocateFlagsInfoKHR;
9246
9247typedef VkBindBufferMemoryInfo VkBindBufferMemoryInfoKHR;
9248
9249typedef VkBindBufferMemoryDeviceGroupInfo VkBindBufferMemoryDeviceGroupInfoKHR;
9250
9251typedef VkBindImageMemoryInfo VkBindImageMemoryInfoKHR;
9252
9253typedef VkBindImageMemoryDeviceGroupInfo VkBindImageMemoryDeviceGroupInfoKHR;
9254
9255typedef VkDeviceGroupRenderPassBeginInfo VkDeviceGroupRenderPassBeginInfoKHR;
9256
9257typedef VkDeviceGroupCommandBufferBeginInfo VkDeviceGroupCommandBufferBeginInfoKHR;
9258
9259typedef VkDeviceGroupSubmitInfo VkDeviceGroupSubmitInfoKHR;
9260
9261typedef VkDeviceGroupBindSparseInfo VkDeviceGroupBindSparseInfoKHR;
9262
9263typedef VkDeviceGroupDeviceCreateInfo VkDeviceGroupDeviceCreateInfoKHR;
9264
9265typedef VkDescriptorUpdateTemplateEntry VkDescriptorUpdateTemplateEntryKHR;
9266
9267typedef VkDescriptorUpdateTemplateCreateInfo VkDescriptorUpdateTemplateCreateInfoKHR;
9268
9269typedef VkInputAttachmentAspectReference VkInputAttachmentAspectReferenceKHR;
9270
9271typedef VkRenderPassInputAttachmentAspectCreateInfo VkRenderPassInputAttachmentAspectCreateInfoKHR;
9272
9273typedef VkPhysicalDevice16BitStorageFeatures VkPhysicalDevice16BitStorageFeaturesKHR;
9274
9275typedef VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR;
9276
9277typedef VkBufferMemoryRequirementsInfo2 VkBufferMemoryRequirementsInfo2KHR;
9278
9279typedef VkDeviceBufferMemoryRequirements VkDeviceBufferMemoryRequirementsKHR;
9280
9281typedef VkImageMemoryRequirementsInfo2 VkImageMemoryRequirementsInfo2KHR;
9282
9283typedef VkImageSparseMemoryRequirementsInfo2 VkImageSparseMemoryRequirementsInfo2KHR;
9284
9285typedef VkDeviceImageMemoryRequirements VkDeviceImageMemoryRequirementsKHR;
9286
9287typedef VkMemoryRequirements2 VkMemoryRequirements2KHR;
9288
9289typedef VkSparseImageMemoryRequirements2 VkSparseImageMemoryRequirements2KHR;
9290
9291typedef VkPhysicalDevicePointClippingProperties VkPhysicalDevicePointClippingPropertiesKHR;
9292
9293typedef VkMemoryDedicatedRequirements VkMemoryDedicatedRequirementsKHR;
9294
9295typedef VkMemoryDedicatedAllocateInfo VkMemoryDedicatedAllocateInfoKHR;
9296
9297typedef VkImageViewUsageCreateInfo VkImageViewUsageCreateInfoKHR;
9298
9299typedef VkPipelineTessellationDomainOriginStateCreateInfo VkPipelineTessellationDomainOriginStateCreateInfoKHR;
9300
9301typedef VkSamplerYcbcrConversionInfo VkSamplerYcbcrConversionInfoKHR;
9302
9303typedef VkSamplerYcbcrConversionCreateInfo VkSamplerYcbcrConversionCreateInfoKHR;
9304
9305typedef VkBindImagePlaneMemoryInfo VkBindImagePlaneMemoryInfoKHR;
9306
9307typedef VkImagePlaneMemoryRequirementsInfo VkImagePlaneMemoryRequirementsInfoKHR;
9308
9309typedef VkPhysicalDeviceSamplerYcbcrConversionFeatures VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR;
9310
9311typedef VkSamplerYcbcrConversionImageFormatProperties VkSamplerYcbcrConversionImageFormatPropertiesKHR;
9312
9313typedef VkPhysicalDeviceSamplerFilterMinmaxProperties VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT;
9314
9315typedef VkSamplerReductionModeCreateInfo VkSamplerReductionModeCreateInfoEXT;
9316
9317typedef VkPhysicalDeviceInlineUniformBlockFeatures VkPhysicalDeviceInlineUniformBlockFeaturesEXT;
9318
9319typedef VkPhysicalDeviceInlineUniformBlockProperties VkPhysicalDeviceInlineUniformBlockPropertiesEXT;
9320
9321typedef VkWriteDescriptorSetInlineUniformBlock VkWriteDescriptorSetInlineUniformBlockEXT;
9322
9323typedef VkDescriptorPoolInlineUniformBlockCreateInfo VkDescriptorPoolInlineUniformBlockCreateInfoEXT;
9324
9325typedef VkImageFormatListCreateInfo VkImageFormatListCreateInfoKHR;
9326
9327typedef VkPhysicalDeviceMaintenance3Properties VkPhysicalDeviceMaintenance3PropertiesKHR;
9328
9329typedef VkPhysicalDeviceMaintenance4Features VkPhysicalDeviceMaintenance4FeaturesKHR;
9330
9331typedef VkPhysicalDeviceMaintenance4Properties VkPhysicalDeviceMaintenance4PropertiesKHR;
9332
9333typedef VkDescriptorSetLayoutSupport VkDescriptorSetLayoutSupportKHR;
9334
9335typedef VkPhysicalDeviceShaderDrawParametersFeatures VkPhysicalDeviceShaderDrawParameterFeatures;
9336
9337typedef VkPhysicalDeviceShaderFloat16Int8Features VkPhysicalDeviceShaderFloat16Int8FeaturesKHR;
9338
9339typedef VkPhysicalDeviceShaderFloat16Int8Features VkPhysicalDeviceFloat16Int8FeaturesKHR;
9340
9341typedef VkPhysicalDeviceFloatControlsProperties VkPhysicalDeviceFloatControlsPropertiesKHR;
9342
9343typedef VkPhysicalDeviceHostQueryResetFeatures VkPhysicalDeviceHostQueryResetFeaturesEXT;
9344
9345typedef VkDeviceQueueGlobalPriorityCreateInfoKHR VkDeviceQueueGlobalPriorityCreateInfoEXT;
9346
9347typedef VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT;
9348
9349typedef VkQueueFamilyGlobalPriorityPropertiesKHR VkQueueFamilyGlobalPriorityPropertiesEXT;
9350
9351typedef VkPhysicalDeviceDescriptorIndexingFeatures VkPhysicalDeviceDescriptorIndexingFeaturesEXT;
9352
9353typedef VkPhysicalDeviceDescriptorIndexingProperties VkPhysicalDeviceDescriptorIndexingPropertiesEXT;
9354
9355typedef VkDescriptorSetLayoutBindingFlagsCreateInfo VkDescriptorSetLayoutBindingFlagsCreateInfoEXT;
9356
9357typedef VkDescriptorSetVariableDescriptorCountAllocateInfo VkDescriptorSetVariableDescriptorCountAllocateInfoEXT;
9358
9359typedef VkDescriptorSetVariableDescriptorCountLayoutSupport VkDescriptorSetVariableDescriptorCountLayoutSupportEXT;
9360
9361typedef VkAttachmentDescription2 VkAttachmentDescription2KHR;
9362
9363typedef VkAttachmentReference2 VkAttachmentReference2KHR;
9364
9365typedef VkSubpassDescription2 VkSubpassDescription2KHR;
9366
9367typedef VkSubpassDependency2 VkSubpassDependency2KHR;
9368
9369typedef VkRenderPassCreateInfo2 VkRenderPassCreateInfo2KHR;
9370
9371typedef VkSubpassBeginInfo VkSubpassBeginInfoKHR;
9372
9373typedef VkSubpassEndInfo VkSubpassEndInfoKHR;
9374
9375typedef VkPhysicalDeviceTimelineSemaphoreFeatures VkPhysicalDeviceTimelineSemaphoreFeaturesKHR;
9376
9377typedef VkPhysicalDeviceTimelineSemaphoreProperties VkPhysicalDeviceTimelineSemaphorePropertiesKHR;
9378
9379typedef VkSemaphoreTypeCreateInfo VkSemaphoreTypeCreateInfoKHR;
9380
9381typedef VkTimelineSemaphoreSubmitInfo VkTimelineSemaphoreSubmitInfoKHR;
9382
9383typedef VkSemaphoreWaitInfo VkSemaphoreWaitInfoKHR;
9384
9385typedef VkSemaphoreSignalInfo VkSemaphoreSignalInfoKHR;
9386
9387typedef VkPhysicalDevice8BitStorageFeatures VkPhysicalDevice8BitStorageFeaturesKHR;
9388
9389typedef VkPhysicalDeviceVulkanMemoryModelFeatures VkPhysicalDeviceVulkanMemoryModelFeaturesKHR;
9390
9391typedef VkPhysicalDeviceShaderAtomicInt64Features VkPhysicalDeviceShaderAtomicInt64FeaturesKHR;
9392
9393typedef VkPhysicalDeviceDepthStencilResolveProperties VkPhysicalDeviceDepthStencilResolvePropertiesKHR;
9394
9395typedef VkSubpassDescriptionDepthStencilResolve VkSubpassDescriptionDepthStencilResolveKHR;
9396
9397typedef VkImageStencilUsageCreateInfo VkImageStencilUsageCreateInfoEXT;
9398
9399typedef VkPhysicalDeviceScalarBlockLayoutFeatures VkPhysicalDeviceScalarBlockLayoutFeaturesEXT;
9400
9401typedef VkPhysicalDeviceUniformBufferStandardLayoutFeatures VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR;
9402
9403typedef VkPhysicalDeviceBufferDeviceAddressFeatures VkPhysicalDeviceBufferDeviceAddressFeaturesKHR;
9404
9405typedef VkPhysicalDeviceBufferDeviceAddressFeaturesEXT VkPhysicalDeviceBufferAddressFeaturesEXT;
9406
9407typedef VkBufferDeviceAddressInfo VkBufferDeviceAddressInfoKHR;
9408
9409typedef VkBufferDeviceAddressInfo VkBufferDeviceAddressInfoEXT;
9410
9411typedef VkBufferOpaqueCaptureAddressCreateInfo VkBufferOpaqueCaptureAddressCreateInfoKHR;
9412
9413typedef VkPhysicalDeviceImagelessFramebufferFeatures VkPhysicalDeviceImagelessFramebufferFeaturesKHR;
9414
9415typedef VkFramebufferAttachmentsCreateInfo VkFramebufferAttachmentsCreateInfoKHR;
9416
9417typedef VkFramebufferAttachmentImageInfo VkFramebufferAttachmentImageInfoKHR;
9418
9419typedef VkRenderPassAttachmentBeginInfo VkRenderPassAttachmentBeginInfoKHR;
9420
9421typedef VkPhysicalDeviceTextureCompressionASTCHDRFeatures VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT;
9422
9423typedef VkPipelineCreationFeedback VkPipelineCreationFeedbackEXT;
9424
9425typedef VkPipelineCreationFeedbackCreateInfo VkPipelineCreationFeedbackCreateInfoEXT;
9426
9427typedef VkQueryPoolPerformanceQueryCreateInfoINTEL VkQueryPoolCreateInfoINTEL;
9428
9429typedef VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR;
9430
9431typedef VkAttachmentReferenceStencilLayout VkAttachmentReferenceStencilLayoutKHR;
9432
9433typedef VkAttachmentDescriptionStencilLayout VkAttachmentDescriptionStencilLayoutKHR;
9434
9435typedef VkPipelineInfoKHR VkPipelineInfoEXT;
9436
9437typedef VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT;
9438
9439typedef VkPhysicalDeviceTexelBufferAlignmentProperties VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT;
9440
9441typedef VkPhysicalDeviceSubgroupSizeControlFeatures VkPhysicalDeviceSubgroupSizeControlFeaturesEXT;
9442
9443typedef VkPhysicalDeviceSubgroupSizeControlProperties VkPhysicalDeviceSubgroupSizeControlPropertiesEXT;
9444
9445typedef VkPipelineShaderStageRequiredSubgroupSizeCreateInfo VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT;
9446
9447typedef VkMemoryOpaqueCaptureAddressAllocateInfo VkMemoryOpaqueCaptureAddressAllocateInfoKHR;
9448
9449typedef VkDeviceMemoryOpaqueCaptureAddressInfo VkDeviceMemoryOpaqueCaptureAddressInfoKHR;
9450
9451typedef VkPhysicalDevicePipelineCreationCacheControlFeatures VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT;
9452
9453typedef VkPhysicalDeviceToolProperties VkPhysicalDeviceToolPropertiesEXT;
9454
9455typedef VkAabbPositionsKHR VkAabbPositionsNV;
9456
9457typedef VkTransformMatrixKHR VkTransformMatrixNV;
9458
9459typedef VkAccelerationStructureInstanceKHR VkAccelerationStructureInstanceNV;
9460
9461typedef VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR;
9462
9463typedef VkPhysicalDeviceImageRobustnessFeatures VkPhysicalDeviceImageRobustnessFeaturesEXT;
9464
9465typedef VkBufferCopy2 VkBufferCopy2KHR;
9466
9467typedef VkImageCopy2 VkImageCopy2KHR;
9468
9469typedef VkImageBlit2 VkImageBlit2KHR;
9470
9471typedef VkBufferImageCopy2 VkBufferImageCopy2KHR;
9472
9473typedef VkImageResolve2 VkImageResolve2KHR;
9474
9475typedef VkCopyBufferInfo2 VkCopyBufferInfo2KHR;
9476
9477typedef VkCopyImageInfo2 VkCopyImageInfo2KHR;
9478
9479typedef VkBlitImageInfo2 VkBlitImageInfo2KHR;
9480
9481typedef VkCopyBufferToImageInfo2 VkCopyBufferToImageInfo2KHR;
9482
9483typedef VkCopyImageToBufferInfo2 VkCopyImageToBufferInfo2KHR;
9484
9485typedef VkResolveImageInfo2 VkResolveImageInfo2KHR;
9486
9487typedef VkPhysicalDeviceShaderTerminateInvocationFeatures VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR;
9488
9489typedef VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE;
9490
9491typedef VkMutableDescriptorTypeListEXT VkMutableDescriptorTypeListVALVE;
9492
9493typedef VkMutableDescriptorTypeCreateInfoEXT VkMutableDescriptorTypeCreateInfoVALVE;
9494
9495typedef VkMemoryBarrier2 VkMemoryBarrier2KHR;
9496
9497typedef VkImageMemoryBarrier2 VkImageMemoryBarrier2KHR;
9498
9499typedef VkBufferMemoryBarrier2 VkBufferMemoryBarrier2KHR;
9500
9501typedef VkDependencyInfo VkDependencyInfoKHR;
9502
9503typedef VkSemaphoreSubmitInfo VkSemaphoreSubmitInfoKHR;
9504
9505typedef VkCommandBufferSubmitInfo VkCommandBufferSubmitInfoKHR;
9506
9507typedef VkSubmitInfo2 VkSubmitInfo2KHR;
9508
9509typedef VkPhysicalDeviceSynchronization2Features VkPhysicalDeviceSynchronization2FeaturesKHR;
9510
9511typedef VkPhysicalDeviceShaderIntegerDotProductFeatures VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR;
9512
9513typedef VkPhysicalDeviceShaderIntegerDotProductProperties VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR;
9514
9515typedef VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV;
9516
9517typedef VkFormatProperties3 VkFormatProperties3KHR;
9518
9519typedef VkPipelineRenderingCreateInfo VkPipelineRenderingCreateInfoKHR;
9520
9521typedef VkRenderingInfo VkRenderingInfoKHR;
9522
9523typedef VkRenderingAttachmentInfo VkRenderingAttachmentInfoKHR;
9524
9525typedef VkPhysicalDeviceDynamicRenderingFeatures VkPhysicalDeviceDynamicRenderingFeaturesKHR;
9526
9527typedef VkCommandBufferInheritanceRenderingInfo VkCommandBufferInheritanceRenderingInfoKHR;
9528
9529typedef VkAttachmentSampleCountInfoAMD VkAttachmentSampleCountInfoNV;
9530
9531typedef VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM;
9532
9533