• 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 */
4struct VkApplicationInfo
5{
6	VkStructureType	sType;
7	const void*		pNext;
8	const char*		pApplicationName;
9	deUint32		applicationVersion;
10	const char*		pEngineName;
11	deUint32		engineVersion;
12	deUint32		apiVersion;
13};
14
15struct VkInstanceCreateInfo
16{
17	VkStructureType				sType;
18	const void*					pNext;
19	VkInstanceCreateFlags		flags;
20	const VkApplicationInfo*	pApplicationInfo;
21	deUint32					enabledLayerCount;
22	const char* const*			ppEnabledLayerNames;
23	deUint32					enabledExtensionCount;
24	const char* const*			ppEnabledExtensionNames;
25};
26
27struct VkAllocationCallbacks
28{
29	void*									pUserData;
30	PFN_vkAllocationFunction				pfnAllocation;
31	PFN_vkReallocationFunction				pfnReallocation;
32	PFN_vkFreeFunction						pfnFree;
33	PFN_vkInternalAllocationNotification	pfnInternalAllocation;
34	PFN_vkInternalFreeNotification			pfnInternalFree;
35};
36
37struct VkPhysicalDeviceFeatures
38{
39	VkBool32	robustBufferAccess;
40	VkBool32	fullDrawIndexUint32;
41	VkBool32	imageCubeArray;
42	VkBool32	independentBlend;
43	VkBool32	geometryShader;
44	VkBool32	tessellationShader;
45	VkBool32	sampleRateShading;
46	VkBool32	dualSrcBlend;
47	VkBool32	logicOp;
48	VkBool32	multiDrawIndirect;
49	VkBool32	drawIndirectFirstInstance;
50	VkBool32	depthClamp;
51	VkBool32	depthBiasClamp;
52	VkBool32	fillModeNonSolid;
53	VkBool32	depthBounds;
54	VkBool32	wideLines;
55	VkBool32	largePoints;
56	VkBool32	alphaToOne;
57	VkBool32	multiViewport;
58	VkBool32	samplerAnisotropy;
59	VkBool32	textureCompressionETC2;
60	VkBool32	textureCompressionASTC_LDR;
61	VkBool32	textureCompressionBC;
62	VkBool32	occlusionQueryPrecise;
63	VkBool32	pipelineStatisticsQuery;
64	VkBool32	vertexPipelineStoresAndAtomics;
65	VkBool32	fragmentStoresAndAtomics;
66	VkBool32	shaderTessellationAndGeometryPointSize;
67	VkBool32	shaderImageGatherExtended;
68	VkBool32	shaderStorageImageExtendedFormats;
69	VkBool32	shaderStorageImageMultisample;
70	VkBool32	shaderStorageImageReadWithoutFormat;
71	VkBool32	shaderStorageImageWriteWithoutFormat;
72	VkBool32	shaderUniformBufferArrayDynamicIndexing;
73	VkBool32	shaderSampledImageArrayDynamicIndexing;
74	VkBool32	shaderStorageBufferArrayDynamicIndexing;
75	VkBool32	shaderStorageImageArrayDynamicIndexing;
76	VkBool32	shaderClipDistance;
77	VkBool32	shaderCullDistance;
78	VkBool32	shaderFloat64;
79	VkBool32	shaderInt64;
80	VkBool32	shaderInt16;
81	VkBool32	shaderResourceResidency;
82	VkBool32	shaderResourceMinLod;
83	VkBool32	sparseBinding;
84	VkBool32	sparseResidencyBuffer;
85	VkBool32	sparseResidencyImage2D;
86	VkBool32	sparseResidencyImage3D;
87	VkBool32	sparseResidency2Samples;
88	VkBool32	sparseResidency4Samples;
89	VkBool32	sparseResidency8Samples;
90	VkBool32	sparseResidency16Samples;
91	VkBool32	sparseResidencyAliased;
92	VkBool32	variableMultisampleRate;
93	VkBool32	inheritedQueries;
94};
95
96struct VkFormatProperties
97{
98	VkFormatFeatureFlags	linearTilingFeatures;
99	VkFormatFeatureFlags	optimalTilingFeatures;
100	VkFormatFeatureFlags	bufferFeatures;
101};
102
103struct VkExtent3D
104{
105	deUint32	width;
106	deUint32	height;
107	deUint32	depth;
108};
109
110struct VkImageFormatProperties
111{
112	VkExtent3D			maxExtent;
113	deUint32			maxMipLevels;
114	deUint32			maxArrayLayers;
115	VkSampleCountFlags	sampleCounts;
116	VkDeviceSize		maxResourceSize;
117};
118
119struct VkPhysicalDeviceLimits
120{
121	deUint32			maxImageDimension1D;
122	deUint32			maxImageDimension2D;
123	deUint32			maxImageDimension3D;
124	deUint32			maxImageDimensionCube;
125	deUint32			maxImageArrayLayers;
126	deUint32			maxTexelBufferElements;
127	deUint32			maxUniformBufferRange;
128	deUint32			maxStorageBufferRange;
129	deUint32			maxPushConstantsSize;
130	deUint32			maxMemoryAllocationCount;
131	deUint32			maxSamplerAllocationCount;
132	VkDeviceSize		bufferImageGranularity;
133	VkDeviceSize		sparseAddressSpaceSize;
134	deUint32			maxBoundDescriptorSets;
135	deUint32			maxPerStageDescriptorSamplers;
136	deUint32			maxPerStageDescriptorUniformBuffers;
137	deUint32			maxPerStageDescriptorStorageBuffers;
138	deUint32			maxPerStageDescriptorSampledImages;
139	deUint32			maxPerStageDescriptorStorageImages;
140	deUint32			maxPerStageDescriptorInputAttachments;
141	deUint32			maxPerStageResources;
142	deUint32			maxDescriptorSetSamplers;
143	deUint32			maxDescriptorSetUniformBuffers;
144	deUint32			maxDescriptorSetUniformBuffersDynamic;
145	deUint32			maxDescriptorSetStorageBuffers;
146	deUint32			maxDescriptorSetStorageBuffersDynamic;
147	deUint32			maxDescriptorSetSampledImages;
148	deUint32			maxDescriptorSetStorageImages;
149	deUint32			maxDescriptorSetInputAttachments;
150	deUint32			maxVertexInputAttributes;
151	deUint32			maxVertexInputBindings;
152	deUint32			maxVertexInputAttributeOffset;
153	deUint32			maxVertexInputBindingStride;
154	deUint32			maxVertexOutputComponents;
155	deUint32			maxTessellationGenerationLevel;
156	deUint32			maxTessellationPatchSize;
157	deUint32			maxTessellationControlPerVertexInputComponents;
158	deUint32			maxTessellationControlPerVertexOutputComponents;
159	deUint32			maxTessellationControlPerPatchOutputComponents;
160	deUint32			maxTessellationControlTotalOutputComponents;
161	deUint32			maxTessellationEvaluationInputComponents;
162	deUint32			maxTessellationEvaluationOutputComponents;
163	deUint32			maxGeometryShaderInvocations;
164	deUint32			maxGeometryInputComponents;
165	deUint32			maxGeometryOutputComponents;
166	deUint32			maxGeometryOutputVertices;
167	deUint32			maxGeometryTotalOutputComponents;
168	deUint32			maxFragmentInputComponents;
169	deUint32			maxFragmentOutputAttachments;
170	deUint32			maxFragmentDualSrcAttachments;
171	deUint32			maxFragmentCombinedOutputResources;
172	deUint32			maxComputeSharedMemorySize;
173	deUint32			maxComputeWorkGroupCount[3];
174	deUint32			maxComputeWorkGroupInvocations;
175	deUint32			maxComputeWorkGroupSize[3];
176	deUint32			subPixelPrecisionBits;
177	deUint32			subTexelPrecisionBits;
178	deUint32			mipmapPrecisionBits;
179	deUint32			maxDrawIndexedIndexValue;
180	deUint32			maxDrawIndirectCount;
181	float				maxSamplerLodBias;
182	float				maxSamplerAnisotropy;
183	deUint32			maxViewports;
184	deUint32			maxViewportDimensions[2];
185	float				viewportBoundsRange[2];
186	deUint32			viewportSubPixelBits;
187	deUintptr			minMemoryMapAlignment;
188	VkDeviceSize		minTexelBufferOffsetAlignment;
189	VkDeviceSize		minUniformBufferOffsetAlignment;
190	VkDeviceSize		minStorageBufferOffsetAlignment;
191	deInt32				minTexelOffset;
192	deUint32			maxTexelOffset;
193	deInt32				minTexelGatherOffset;
194	deUint32			maxTexelGatherOffset;
195	float				minInterpolationOffset;
196	float				maxInterpolationOffset;
197	deUint32			subPixelInterpolationOffsetBits;
198	deUint32			maxFramebufferWidth;
199	deUint32			maxFramebufferHeight;
200	deUint32			maxFramebufferLayers;
201	VkSampleCountFlags	framebufferColorSampleCounts;
202	VkSampleCountFlags	framebufferDepthSampleCounts;
203	VkSampleCountFlags	framebufferStencilSampleCounts;
204	VkSampleCountFlags	framebufferNoAttachmentsSampleCounts;
205	deUint32			maxColorAttachments;
206	VkSampleCountFlags	sampledImageColorSampleCounts;
207	VkSampleCountFlags	sampledImageIntegerSampleCounts;
208	VkSampleCountFlags	sampledImageDepthSampleCounts;
209	VkSampleCountFlags	sampledImageStencilSampleCounts;
210	VkSampleCountFlags	storageImageSampleCounts;
211	deUint32			maxSampleMaskWords;
212	VkBool32			timestampComputeAndGraphics;
213	float				timestampPeriod;
214	deUint32			maxClipDistances;
215	deUint32			maxCullDistances;
216	deUint32			maxCombinedClipAndCullDistances;
217	deUint32			discreteQueuePriorities;
218	float				pointSizeRange[2];
219	float				lineWidthRange[2];
220	float				pointSizeGranularity;
221	float				lineWidthGranularity;
222	VkBool32			strictLines;
223	VkBool32			standardSampleLocations;
224	VkDeviceSize		optimalBufferCopyOffsetAlignment;
225	VkDeviceSize		optimalBufferCopyRowPitchAlignment;
226	VkDeviceSize		nonCoherentAtomSize;
227};
228
229struct VkPhysicalDeviceSparseProperties
230{
231	VkBool32	residencyStandard2DBlockShape;
232	VkBool32	residencyStandard2DMultisampleBlockShape;
233	VkBool32	residencyStandard3DBlockShape;
234	VkBool32	residencyAlignedMipSize;
235	VkBool32	residencyNonResidentStrict;
236};
237
238struct VkPhysicalDeviceProperties
239{
240	deUint32							apiVersion;
241	deUint32							driverVersion;
242	deUint32							vendorID;
243	deUint32							deviceID;
244	VkPhysicalDeviceType				deviceType;
245	char								deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE];
246	deUint8								pipelineCacheUUID[VK_UUID_SIZE];
247	VkPhysicalDeviceLimits				limits;
248	VkPhysicalDeviceSparseProperties	sparseProperties;
249};
250
251struct VkQueueFamilyProperties
252{
253	VkQueueFlags	queueFlags;
254	deUint32		queueCount;
255	deUint32		timestampValidBits;
256	VkExtent3D		minImageTransferGranularity;
257};
258
259struct VkMemoryType
260{
261	VkMemoryPropertyFlags	propertyFlags;
262	deUint32				heapIndex;
263};
264
265struct VkMemoryHeap
266{
267	VkDeviceSize		size;
268	VkMemoryHeapFlags	flags;
269};
270
271struct VkPhysicalDeviceMemoryProperties
272{
273	deUint32		memoryTypeCount;
274	VkMemoryType	memoryTypes[VK_MAX_MEMORY_TYPES];
275	deUint32		memoryHeapCount;
276	VkMemoryHeap	memoryHeaps[VK_MAX_MEMORY_HEAPS];
277};
278
279struct VkDeviceQueueCreateInfo
280{
281	VkStructureType				sType;
282	const void*					pNext;
283	VkDeviceQueueCreateFlags	flags;
284	deUint32					queueFamilyIndex;
285	deUint32					queueCount;
286	const float*				pQueuePriorities;
287};
288
289struct VkDeviceCreateInfo
290{
291	VkStructureType					sType;
292	const void*						pNext;
293	VkDeviceCreateFlags				flags;
294	deUint32						queueCreateInfoCount;
295	const VkDeviceQueueCreateInfo*	pQueueCreateInfos;
296	deUint32						enabledLayerCount;
297	const char* const*				ppEnabledLayerNames;
298	deUint32						enabledExtensionCount;
299	const char* const*				ppEnabledExtensionNames;
300	const VkPhysicalDeviceFeatures*	pEnabledFeatures;
301};
302
303struct VkExtensionProperties
304{
305	char		extensionName[VK_MAX_EXTENSION_NAME_SIZE];
306	deUint32	specVersion;
307};
308
309struct VkLayerProperties
310{
311	char		layerName[VK_MAX_EXTENSION_NAME_SIZE];
312	deUint32	specVersion;
313	deUint32	implementationVersion;
314	char		description[VK_MAX_DESCRIPTION_SIZE];
315};
316
317struct VkSubmitInfo
318{
319	VkStructureType				sType;
320	const void*					pNext;
321	deUint32					waitSemaphoreCount;
322	const VkSemaphore*			pWaitSemaphores;
323	const VkPipelineStageFlags*	pWaitDstStageMask;
324	deUint32					commandBufferCount;
325	const VkCommandBuffer*		pCommandBuffers;
326	deUint32					signalSemaphoreCount;
327	const VkSemaphore*			pSignalSemaphores;
328};
329
330struct VkMemoryAllocateInfo
331{
332	VkStructureType	sType;
333	const void*		pNext;
334	VkDeviceSize	allocationSize;
335	deUint32		memoryTypeIndex;
336};
337
338struct VkMappedMemoryRange
339{
340	VkStructureType	sType;
341	const void*		pNext;
342	VkDeviceMemory	memory;
343	VkDeviceSize	offset;
344	VkDeviceSize	size;
345};
346
347struct VkMemoryRequirements
348{
349	VkDeviceSize	size;
350	VkDeviceSize	alignment;
351	deUint32		memoryTypeBits;
352};
353
354struct VkSparseImageFormatProperties
355{
356	VkImageAspectFlags			aspectMask;
357	VkExtent3D					imageGranularity;
358	VkSparseImageFormatFlags	flags;
359};
360
361struct VkSparseImageMemoryRequirements
362{
363	VkSparseImageFormatProperties	formatProperties;
364	deUint32						imageMipTailFirstLod;
365	VkDeviceSize					imageMipTailSize;
366	VkDeviceSize					imageMipTailOffset;
367	VkDeviceSize					imageMipTailStride;
368};
369
370struct VkSparseMemoryBind
371{
372	VkDeviceSize			resourceOffset;
373	VkDeviceSize			size;
374	VkDeviceMemory			memory;
375	VkDeviceSize			memoryOffset;
376	VkSparseMemoryBindFlags	flags;
377};
378
379struct VkSparseBufferMemoryBindInfo
380{
381	VkBuffer					buffer;
382	deUint32					bindCount;
383	const VkSparseMemoryBind*	pBinds;
384};
385
386struct VkSparseImageOpaqueMemoryBindInfo
387{
388	VkImage						image;
389	deUint32					bindCount;
390	const VkSparseMemoryBind*	pBinds;
391};
392
393struct VkImageSubresource
394{
395	VkImageAspectFlags	aspectMask;
396	deUint32			mipLevel;
397	deUint32			arrayLayer;
398};
399
400struct VkOffset3D
401{
402	deInt32	x;
403	deInt32	y;
404	deInt32	z;
405};
406
407struct VkSparseImageMemoryBind
408{
409	VkImageSubresource		subresource;
410	VkOffset3D				offset;
411	VkExtent3D				extent;
412	VkDeviceMemory			memory;
413	VkDeviceSize			memoryOffset;
414	VkSparseMemoryBindFlags	flags;
415};
416
417struct VkSparseImageMemoryBindInfo
418{
419	VkImage							image;
420	deUint32						bindCount;
421	const VkSparseImageMemoryBind*	pBinds;
422};
423
424struct VkBindSparseInfo
425{
426	VkStructureType								sType;
427	const void*									pNext;
428	deUint32									waitSemaphoreCount;
429	const VkSemaphore*							pWaitSemaphores;
430	deUint32									bufferBindCount;
431	const VkSparseBufferMemoryBindInfo*			pBufferBinds;
432	deUint32									imageOpaqueBindCount;
433	const VkSparseImageOpaqueMemoryBindInfo*	pImageOpaqueBinds;
434	deUint32									imageBindCount;
435	const VkSparseImageMemoryBindInfo*			pImageBinds;
436	deUint32									signalSemaphoreCount;
437	const VkSemaphore*							pSignalSemaphores;
438};
439
440struct VkFenceCreateInfo
441{
442	VkStructureType		sType;
443	const void*			pNext;
444	VkFenceCreateFlags	flags;
445};
446
447struct VkSemaphoreCreateInfo
448{
449	VkStructureType			sType;
450	const void*				pNext;
451	VkSemaphoreCreateFlags	flags;
452};
453
454struct VkEventCreateInfo
455{
456	VkStructureType		sType;
457	const void*			pNext;
458	VkEventCreateFlags	flags;
459};
460
461struct VkQueryPoolCreateInfo
462{
463	VkStructureType					sType;
464	const void*						pNext;
465	VkQueryPoolCreateFlags			flags;
466	VkQueryType						queryType;
467	deUint32						queryCount;
468	VkQueryPipelineStatisticFlags	pipelineStatistics;
469};
470
471struct VkBufferCreateInfo
472{
473	VkStructureType		sType;
474	const void*			pNext;
475	VkBufferCreateFlags	flags;
476	VkDeviceSize		size;
477	VkBufferUsageFlags	usage;
478	VkSharingMode		sharingMode;
479	deUint32			queueFamilyIndexCount;
480	const deUint32*		pQueueFamilyIndices;
481};
482
483struct VkBufferViewCreateInfo
484{
485	VkStructureType			sType;
486	const void*				pNext;
487	VkBufferViewCreateFlags	flags;
488	VkBuffer				buffer;
489	VkFormat				format;
490	VkDeviceSize			offset;
491	VkDeviceSize			range;
492};
493
494struct VkImageCreateInfo
495{
496	VkStructureType			sType;
497	const void*				pNext;
498	VkImageCreateFlags		flags;
499	VkImageType				imageType;
500	VkFormat				format;
501	VkExtent3D				extent;
502	deUint32				mipLevels;
503	deUint32				arrayLayers;
504	VkSampleCountFlagBits	samples;
505	VkImageTiling			tiling;
506	VkImageUsageFlags		usage;
507	VkSharingMode			sharingMode;
508	deUint32				queueFamilyIndexCount;
509	const deUint32*			pQueueFamilyIndices;
510	VkImageLayout			initialLayout;
511};
512
513struct VkSubresourceLayout
514{
515	VkDeviceSize	offset;
516	VkDeviceSize	size;
517	VkDeviceSize	rowPitch;
518	VkDeviceSize	arrayPitch;
519	VkDeviceSize	depthPitch;
520};
521
522struct VkComponentMapping
523{
524	VkComponentSwizzle	r;
525	VkComponentSwizzle	g;
526	VkComponentSwizzle	b;
527	VkComponentSwizzle	a;
528};
529
530struct VkImageSubresourceRange
531{
532	VkImageAspectFlags	aspectMask;
533	deUint32			baseMipLevel;
534	deUint32			levelCount;
535	deUint32			baseArrayLayer;
536	deUint32			layerCount;
537};
538
539struct VkImageViewCreateInfo
540{
541	VkStructureType			sType;
542	const void*				pNext;
543	VkImageViewCreateFlags	flags;
544	VkImage					image;
545	VkImageViewType			viewType;
546	VkFormat				format;
547	VkComponentMapping		components;
548	VkImageSubresourceRange	subresourceRange;
549};
550
551struct VkShaderModuleCreateInfo
552{
553	VkStructureType				sType;
554	const void*					pNext;
555	VkShaderModuleCreateFlags	flags;
556	deUintptr					codeSize;
557	const deUint32*				pCode;
558};
559
560struct VkPipelineCacheCreateInfo
561{
562	VkStructureType				sType;
563	const void*					pNext;
564	VkPipelineCacheCreateFlags	flags;
565	deUintptr					initialDataSize;
566	const void*					pInitialData;
567};
568
569struct VkSpecializationMapEntry
570{
571	deUint32	constantID;
572	deUint32	offset;
573	deUintptr	size;
574};
575
576struct VkSpecializationInfo
577{
578	deUint32						mapEntryCount;
579	const VkSpecializationMapEntry*	pMapEntries;
580	deUintptr						dataSize;
581	const void*						pData;
582};
583
584struct VkPipelineShaderStageCreateInfo
585{
586	VkStructureType						sType;
587	const void*							pNext;
588	VkPipelineShaderStageCreateFlags	flags;
589	VkShaderStageFlagBits				stage;
590	VkShaderModule						module;
591	const char*							pName;
592	const VkSpecializationInfo*			pSpecializationInfo;
593};
594
595struct VkVertexInputBindingDescription
596{
597	deUint32			binding;
598	deUint32			stride;
599	VkVertexInputRate	inputRate;
600};
601
602struct VkVertexInputAttributeDescription
603{
604	deUint32	location;
605	deUint32	binding;
606	VkFormat	format;
607	deUint32	offset;
608};
609
610struct VkPipelineVertexInputStateCreateInfo
611{
612	VkStructureType								sType;
613	const void*									pNext;
614	VkPipelineVertexInputStateCreateFlags		flags;
615	deUint32									vertexBindingDescriptionCount;
616	const VkVertexInputBindingDescription*		pVertexBindingDescriptions;
617	deUint32									vertexAttributeDescriptionCount;
618	const VkVertexInputAttributeDescription*	pVertexAttributeDescriptions;
619};
620
621struct VkPipelineInputAssemblyStateCreateInfo
622{
623	VkStructureType							sType;
624	const void*								pNext;
625	VkPipelineInputAssemblyStateCreateFlags	flags;
626	VkPrimitiveTopology						topology;
627	VkBool32								primitiveRestartEnable;
628};
629
630struct VkPipelineTessellationStateCreateInfo
631{
632	VkStructureType							sType;
633	const void*								pNext;
634	VkPipelineTessellationStateCreateFlags	flags;
635	deUint32								patchControlPoints;
636};
637
638struct VkViewport
639{
640	float	x;
641	float	y;
642	float	width;
643	float	height;
644	float	minDepth;
645	float	maxDepth;
646};
647
648struct VkOffset2D
649{
650	deInt32	x;
651	deInt32	y;
652};
653
654struct VkExtent2D
655{
656	deUint32	width;
657	deUint32	height;
658};
659
660struct VkRect2D
661{
662	VkOffset2D	offset;
663	VkExtent2D	extent;
664};
665
666struct VkPipelineViewportStateCreateInfo
667{
668	VkStructureType						sType;
669	const void*							pNext;
670	VkPipelineViewportStateCreateFlags	flags;
671	deUint32							viewportCount;
672	const VkViewport*					pViewports;
673	deUint32							scissorCount;
674	const VkRect2D*						pScissors;
675};
676
677struct VkPipelineRasterizationStateCreateInfo
678{
679	VkStructureType							sType;
680	const void*								pNext;
681	VkPipelineRasterizationStateCreateFlags	flags;
682	VkBool32								depthClampEnable;
683	VkBool32								rasterizerDiscardEnable;
684	VkPolygonMode							polygonMode;
685	VkCullModeFlags							cullMode;
686	VkFrontFace								frontFace;
687	VkBool32								depthBiasEnable;
688	float									depthBiasConstantFactor;
689	float									depthBiasClamp;
690	float									depthBiasSlopeFactor;
691	float									lineWidth;
692};
693
694struct VkPipelineMultisampleStateCreateInfo
695{
696	VkStructureType							sType;
697	const void*								pNext;
698	VkPipelineMultisampleStateCreateFlags	flags;
699	VkSampleCountFlagBits					rasterizationSamples;
700	VkBool32								sampleShadingEnable;
701	float									minSampleShading;
702	const VkSampleMask*						pSampleMask;
703	VkBool32								alphaToCoverageEnable;
704	VkBool32								alphaToOneEnable;
705};
706
707struct VkStencilOpState
708{
709	VkStencilOp	failOp;
710	VkStencilOp	passOp;
711	VkStencilOp	depthFailOp;
712	VkCompareOp	compareOp;
713	deUint32	compareMask;
714	deUint32	writeMask;
715	deUint32	reference;
716};
717
718struct VkPipelineDepthStencilStateCreateInfo
719{
720	VkStructureType							sType;
721	const void*								pNext;
722	VkPipelineDepthStencilStateCreateFlags	flags;
723	VkBool32								depthTestEnable;
724	VkBool32								depthWriteEnable;
725	VkCompareOp								depthCompareOp;
726	VkBool32								depthBoundsTestEnable;
727	VkBool32								stencilTestEnable;
728	VkStencilOpState						front;
729	VkStencilOpState						back;
730	float									minDepthBounds;
731	float									maxDepthBounds;
732};
733
734struct VkPipelineColorBlendAttachmentState
735{
736	VkBool32				blendEnable;
737	VkBlendFactor			srcColorBlendFactor;
738	VkBlendFactor			dstColorBlendFactor;
739	VkBlendOp				colorBlendOp;
740	VkBlendFactor			srcAlphaBlendFactor;
741	VkBlendFactor			dstAlphaBlendFactor;
742	VkBlendOp				alphaBlendOp;
743	VkColorComponentFlags	colorWriteMask;
744};
745
746struct VkPipelineColorBlendStateCreateInfo
747{
748	VkStructureType								sType;
749	const void*									pNext;
750	VkPipelineColorBlendStateCreateFlags		flags;
751	VkBool32									logicOpEnable;
752	VkLogicOp									logicOp;
753	deUint32									attachmentCount;
754	const VkPipelineColorBlendAttachmentState*	pAttachments;
755	float										blendConstants[4];
756};
757
758struct VkPipelineDynamicStateCreateInfo
759{
760	VkStructureType						sType;
761	const void*							pNext;
762	VkPipelineDynamicStateCreateFlags	flags;
763	deUint32							dynamicStateCount;
764	const VkDynamicState*				pDynamicStates;
765};
766
767struct VkGraphicsPipelineCreateInfo
768{
769	VkStructureType									sType;
770	const void*										pNext;
771	VkPipelineCreateFlags							flags;
772	deUint32										stageCount;
773	const VkPipelineShaderStageCreateInfo*			pStages;
774	const VkPipelineVertexInputStateCreateInfo*		pVertexInputState;
775	const VkPipelineInputAssemblyStateCreateInfo*	pInputAssemblyState;
776	const VkPipelineTessellationStateCreateInfo*	pTessellationState;
777	const VkPipelineViewportStateCreateInfo*		pViewportState;
778	const VkPipelineRasterizationStateCreateInfo*	pRasterizationState;
779	const VkPipelineMultisampleStateCreateInfo*		pMultisampleState;
780	const VkPipelineDepthStencilStateCreateInfo*	pDepthStencilState;
781	const VkPipelineColorBlendStateCreateInfo*		pColorBlendState;
782	const VkPipelineDynamicStateCreateInfo*			pDynamicState;
783	VkPipelineLayout								layout;
784	VkRenderPass									renderPass;
785	deUint32										subpass;
786	VkPipeline										basePipelineHandle;
787	deInt32											basePipelineIndex;
788};
789
790struct VkComputePipelineCreateInfo
791{
792	VkStructureType					sType;
793	const void*						pNext;
794	VkPipelineCreateFlags			flags;
795	VkPipelineShaderStageCreateInfo	stage;
796	VkPipelineLayout				layout;
797	VkPipeline						basePipelineHandle;
798	deInt32							basePipelineIndex;
799};
800
801struct VkPushConstantRange
802{
803	VkShaderStageFlags	stageFlags;
804	deUint32			offset;
805	deUint32			size;
806};
807
808struct VkPipelineLayoutCreateInfo
809{
810	VkStructureType					sType;
811	const void*						pNext;
812	VkPipelineLayoutCreateFlags		flags;
813	deUint32						setLayoutCount;
814	const VkDescriptorSetLayout*	pSetLayouts;
815	deUint32						pushConstantRangeCount;
816	const VkPushConstantRange*		pPushConstantRanges;
817};
818
819struct VkSamplerCreateInfo
820{
821	VkStructureType			sType;
822	const void*				pNext;
823	VkSamplerCreateFlags	flags;
824	VkFilter				magFilter;
825	VkFilter				minFilter;
826	VkSamplerMipmapMode		mipmapMode;
827	VkSamplerAddressMode	addressModeU;
828	VkSamplerAddressMode	addressModeV;
829	VkSamplerAddressMode	addressModeW;
830	float					mipLodBias;
831	VkBool32				anisotropyEnable;
832	float					maxAnisotropy;
833	VkBool32				compareEnable;
834	VkCompareOp				compareOp;
835	float					minLod;
836	float					maxLod;
837	VkBorderColor			borderColor;
838	VkBool32				unnormalizedCoordinates;
839};
840
841struct VkDescriptorSetLayoutBinding
842{
843	deUint32			binding;
844	VkDescriptorType	descriptorType;
845	deUint32			descriptorCount;
846	VkShaderStageFlags	stageFlags;
847	const VkSampler*	pImmutableSamplers;
848};
849
850struct VkDescriptorSetLayoutCreateInfo
851{
852	VkStructureType						sType;
853	const void*							pNext;
854	VkDescriptorSetLayoutCreateFlags	flags;
855	deUint32							bindingCount;
856	const VkDescriptorSetLayoutBinding*	pBindings;
857};
858
859struct VkDescriptorPoolSize
860{
861	VkDescriptorType	type;
862	deUint32			descriptorCount;
863};
864
865struct VkDescriptorPoolCreateInfo
866{
867	VkStructureType				sType;
868	const void*					pNext;
869	VkDescriptorPoolCreateFlags	flags;
870	deUint32					maxSets;
871	deUint32					poolSizeCount;
872	const VkDescriptorPoolSize*	pPoolSizes;
873};
874
875struct VkDescriptorSetAllocateInfo
876{
877	VkStructureType					sType;
878	const void*						pNext;
879	VkDescriptorPool				descriptorPool;
880	deUint32						descriptorSetCount;
881	const VkDescriptorSetLayout*	pSetLayouts;
882};
883
884struct VkDescriptorImageInfo
885{
886	VkSampler		sampler;
887	VkImageView		imageView;
888	VkImageLayout	imageLayout;
889};
890
891struct VkDescriptorBufferInfo
892{
893	VkBuffer		buffer;
894	VkDeviceSize	offset;
895	VkDeviceSize	range;
896};
897
898struct VkWriteDescriptorSet
899{
900	VkStructureType					sType;
901	const void*						pNext;
902	VkDescriptorSet					dstSet;
903	deUint32						dstBinding;
904	deUint32						dstArrayElement;
905	deUint32						descriptorCount;
906	VkDescriptorType				descriptorType;
907	const VkDescriptorImageInfo*	pImageInfo;
908	const VkDescriptorBufferInfo*	pBufferInfo;
909	const VkBufferView*				pTexelBufferView;
910};
911
912struct VkCopyDescriptorSet
913{
914	VkStructureType	sType;
915	const void*		pNext;
916	VkDescriptorSet	srcSet;
917	deUint32		srcBinding;
918	deUint32		srcArrayElement;
919	VkDescriptorSet	dstSet;
920	deUint32		dstBinding;
921	deUint32		dstArrayElement;
922	deUint32		descriptorCount;
923};
924
925struct VkFramebufferCreateInfo
926{
927	VkStructureType				sType;
928	const void*					pNext;
929	VkFramebufferCreateFlags	flags;
930	VkRenderPass				renderPass;
931	deUint32					attachmentCount;
932	const VkImageView*			pAttachments;
933	deUint32					width;
934	deUint32					height;
935	deUint32					layers;
936};
937
938struct VkAttachmentDescription
939{
940	VkAttachmentDescriptionFlags	flags;
941	VkFormat						format;
942	VkSampleCountFlagBits			samples;
943	VkAttachmentLoadOp				loadOp;
944	VkAttachmentStoreOp				storeOp;
945	VkAttachmentLoadOp				stencilLoadOp;
946	VkAttachmentStoreOp				stencilStoreOp;
947	VkImageLayout					initialLayout;
948	VkImageLayout					finalLayout;
949};
950
951struct VkAttachmentReference
952{
953	deUint32		attachment;
954	VkImageLayout	layout;
955};
956
957struct VkSubpassDescription
958{
959	VkSubpassDescriptionFlags		flags;
960	VkPipelineBindPoint				pipelineBindPoint;
961	deUint32						inputAttachmentCount;
962	const VkAttachmentReference*	pInputAttachments;
963	deUint32						colorAttachmentCount;
964	const VkAttachmentReference*	pColorAttachments;
965	const VkAttachmentReference*	pResolveAttachments;
966	const VkAttachmentReference*	pDepthStencilAttachment;
967	deUint32						preserveAttachmentCount;
968	const deUint32*					pPreserveAttachments;
969};
970
971struct VkSubpassDependency
972{
973	deUint32				srcSubpass;
974	deUint32				dstSubpass;
975	VkPipelineStageFlags	srcStageMask;
976	VkPipelineStageFlags	dstStageMask;
977	VkAccessFlags			srcAccessMask;
978	VkAccessFlags			dstAccessMask;
979	VkDependencyFlags		dependencyFlags;
980};
981
982struct VkRenderPassCreateInfo
983{
984	VkStructureType					sType;
985	const void*						pNext;
986	VkRenderPassCreateFlags			flags;
987	deUint32						attachmentCount;
988	const VkAttachmentDescription*	pAttachments;
989	deUint32						subpassCount;
990	const VkSubpassDescription*		pSubpasses;
991	deUint32						dependencyCount;
992	const VkSubpassDependency*		pDependencies;
993};
994
995struct VkCommandPoolCreateInfo
996{
997	VkStructureType				sType;
998	const void*					pNext;
999	VkCommandPoolCreateFlags	flags;
1000	deUint32					queueFamilyIndex;
1001};
1002
1003struct VkCommandBufferAllocateInfo
1004{
1005	VkStructureType			sType;
1006	const void*				pNext;
1007	VkCommandPool			commandPool;
1008	VkCommandBufferLevel	level;
1009	deUint32				commandBufferCount;
1010};
1011
1012struct VkCommandBufferInheritanceInfo
1013{
1014	VkStructureType					sType;
1015	const void*						pNext;
1016	VkRenderPass					renderPass;
1017	deUint32						subpass;
1018	VkFramebuffer					framebuffer;
1019	VkBool32						occlusionQueryEnable;
1020	VkQueryControlFlags				queryFlags;
1021	VkQueryPipelineStatisticFlags	pipelineStatistics;
1022};
1023
1024struct VkCommandBufferBeginInfo
1025{
1026	VkStructureType							sType;
1027	const void*								pNext;
1028	VkCommandBufferUsageFlags				flags;
1029	const VkCommandBufferInheritanceInfo*	pInheritanceInfo;
1030};
1031
1032struct VkBufferCopy
1033{
1034	VkDeviceSize	srcOffset;
1035	VkDeviceSize	dstOffset;
1036	VkDeviceSize	size;
1037};
1038
1039struct VkImageSubresourceLayers
1040{
1041	VkImageAspectFlags	aspectMask;
1042	deUint32			mipLevel;
1043	deUint32			baseArrayLayer;
1044	deUint32			layerCount;
1045};
1046
1047struct VkImageCopy
1048{
1049	VkImageSubresourceLayers	srcSubresource;
1050	VkOffset3D					srcOffset;
1051	VkImageSubresourceLayers	dstSubresource;
1052	VkOffset3D					dstOffset;
1053	VkExtent3D					extent;
1054};
1055
1056struct VkImageBlit
1057{
1058	VkImageSubresourceLayers	srcSubresource;
1059	VkOffset3D					srcOffsets[2];
1060	VkImageSubresourceLayers	dstSubresource;
1061	VkOffset3D					dstOffsets[2];
1062};
1063
1064struct VkBufferImageCopy
1065{
1066	VkDeviceSize				bufferOffset;
1067	deUint32					bufferRowLength;
1068	deUint32					bufferImageHeight;
1069	VkImageSubresourceLayers	imageSubresource;
1070	VkOffset3D					imageOffset;
1071	VkExtent3D					imageExtent;
1072};
1073
1074union VkClearColorValue
1075{
1076	float		float32[4];
1077	deInt32		int32[4];
1078	deUint32	uint32[4];
1079};
1080
1081struct VkClearDepthStencilValue
1082{
1083	float		depth;
1084	deUint32	stencil;
1085};
1086
1087union VkClearValue
1088{
1089	VkClearColorValue			color;
1090	VkClearDepthStencilValue	depthStencil;
1091};
1092
1093struct VkClearAttachment
1094{
1095	VkImageAspectFlags	aspectMask;
1096	deUint32			colorAttachment;
1097	VkClearValue		clearValue;
1098};
1099
1100struct VkClearRect
1101{
1102	VkRect2D	rect;
1103	deUint32	baseArrayLayer;
1104	deUint32	layerCount;
1105};
1106
1107struct VkImageResolve
1108{
1109	VkImageSubresourceLayers	srcSubresource;
1110	VkOffset3D					srcOffset;
1111	VkImageSubresourceLayers	dstSubresource;
1112	VkOffset3D					dstOffset;
1113	VkExtent3D					extent;
1114};
1115
1116struct VkMemoryBarrier
1117{
1118	VkStructureType	sType;
1119	const void*		pNext;
1120	VkAccessFlags	srcAccessMask;
1121	VkAccessFlags	dstAccessMask;
1122};
1123
1124struct VkBufferMemoryBarrier
1125{
1126	VkStructureType	sType;
1127	const void*		pNext;
1128	VkAccessFlags	srcAccessMask;
1129	VkAccessFlags	dstAccessMask;
1130	deUint32		srcQueueFamilyIndex;
1131	deUint32		dstQueueFamilyIndex;
1132	VkBuffer		buffer;
1133	VkDeviceSize	offset;
1134	VkDeviceSize	size;
1135};
1136
1137struct VkImageMemoryBarrier
1138{
1139	VkStructureType			sType;
1140	const void*				pNext;
1141	VkAccessFlags			srcAccessMask;
1142	VkAccessFlags			dstAccessMask;
1143	VkImageLayout			oldLayout;
1144	VkImageLayout			newLayout;
1145	deUint32				srcQueueFamilyIndex;
1146	deUint32				dstQueueFamilyIndex;
1147	VkImage					image;
1148	VkImageSubresourceRange	subresourceRange;
1149};
1150
1151struct VkRenderPassBeginInfo
1152{
1153	VkStructureType		sType;
1154	const void*			pNext;
1155	VkRenderPass		renderPass;
1156	VkFramebuffer		framebuffer;
1157	VkRect2D			renderArea;
1158	deUint32			clearValueCount;
1159	const VkClearValue*	pClearValues;
1160};
1161
1162struct VkDispatchIndirectCommand
1163{
1164	deUint32	x;
1165	deUint32	y;
1166	deUint32	z;
1167};
1168
1169struct VkDrawIndexedIndirectCommand
1170{
1171	deUint32	indexCount;
1172	deUint32	instanceCount;
1173	deUint32	firstIndex;
1174	deInt32		vertexOffset;
1175	deUint32	firstInstance;
1176};
1177
1178struct VkDrawIndirectCommand
1179{
1180	deUint32	vertexCount;
1181	deUint32	instanceCount;
1182	deUint32	firstVertex;
1183	deUint32	firstInstance;
1184};
1185
1186struct VkPhysicalDeviceSubgroupProperties
1187{
1188	VkStructureType			sType;
1189	void*					pNext;
1190	deUint32				subgroupSize;
1191	VkShaderStageFlags		supportedStages;
1192	VkSubgroupFeatureFlags	supportedOperations;
1193	VkBool32				quadOperationsInAllStages;
1194};
1195
1196struct VkBindBufferMemoryInfo
1197{
1198	VkStructureType	sType;
1199	const void*		pNext;
1200	VkBuffer		buffer;
1201	VkDeviceMemory	memory;
1202	VkDeviceSize	memoryOffset;
1203};
1204
1205struct VkBindImageMemoryInfo
1206{
1207	VkStructureType	sType;
1208	const void*		pNext;
1209	VkImage			image;
1210	VkDeviceMemory	memory;
1211	VkDeviceSize	memoryOffset;
1212};
1213
1214struct VkPhysicalDevice8BitStorageFeaturesKHR
1215{
1216	VkStructureType	sType;
1217	void*			pNext;
1218	VkBool32		storageBuffer8BitAccess;
1219	VkBool32		uniformAndStorageBuffer8BitAccess;
1220	VkBool32		storagePushConstant8;
1221};
1222
1223struct VkPhysicalDevice16BitStorageFeatures
1224{
1225	VkStructureType	sType;
1226	void*			pNext;
1227	VkBool32		storageBuffer16BitAccess;
1228	VkBool32		uniformAndStorageBuffer16BitAccess;
1229	VkBool32		storagePushConstant16;
1230	VkBool32		storageInputOutput16;
1231};
1232
1233struct VkMemoryDedicatedRequirements
1234{
1235	VkStructureType	sType;
1236	void*			pNext;
1237	VkBool32		prefersDedicatedAllocation;
1238	VkBool32		requiresDedicatedAllocation;
1239};
1240
1241struct VkMemoryDedicatedAllocateInfo
1242{
1243	VkStructureType	sType;
1244	const void*		pNext;
1245	VkImage			image;
1246	VkBuffer		buffer;
1247};
1248
1249struct VkMemoryAllocateFlagsInfo
1250{
1251	VkStructureType			sType;
1252	const void*				pNext;
1253	VkMemoryAllocateFlags	flags;
1254	deUint32				deviceMask;
1255};
1256
1257struct VkDeviceGroupRenderPassBeginInfo
1258{
1259	VkStructureType	sType;
1260	const void*		pNext;
1261	deUint32		deviceMask;
1262	deUint32		deviceRenderAreaCount;
1263	const VkRect2D*	pDeviceRenderAreas;
1264};
1265
1266struct VkDeviceGroupCommandBufferBeginInfo
1267{
1268	VkStructureType	sType;
1269	const void*		pNext;
1270	deUint32		deviceMask;
1271};
1272
1273struct VkDeviceGroupSubmitInfo
1274{
1275	VkStructureType	sType;
1276	const void*		pNext;
1277	deUint32		waitSemaphoreCount;
1278	const deUint32*	pWaitSemaphoreDeviceIndices;
1279	deUint32		commandBufferCount;
1280	const deUint32*	pCommandBufferDeviceMasks;
1281	deUint32		signalSemaphoreCount;
1282	const deUint32*	pSignalSemaphoreDeviceIndices;
1283};
1284
1285struct VkDeviceGroupBindSparseInfo
1286{
1287	VkStructureType	sType;
1288	const void*		pNext;
1289	deUint32		resourceDeviceIndex;
1290	deUint32		memoryDeviceIndex;
1291};
1292
1293struct VkBindBufferMemoryDeviceGroupInfo
1294{
1295	VkStructureType	sType;
1296	const void*		pNext;
1297	deUint32		deviceIndexCount;
1298	const deUint32*	pDeviceIndices;
1299};
1300
1301struct VkBindImageMemoryDeviceGroupInfo
1302{
1303	VkStructureType	sType;
1304	const void*		pNext;
1305	deUint32		deviceIndexCount;
1306	const deUint32*	pDeviceIndices;
1307	deUint32		SFRRectCount;
1308	const VkRect2D*	pSFRRects;
1309};
1310
1311struct VkPhysicalDeviceGroupProperties
1312{
1313	VkStructureType		sType;
1314	void*				pNext;
1315	deUint32			physicalDeviceCount;
1316	VkPhysicalDevice	physicalDevices[VK_MAX_DEVICE_GROUP_SIZE];
1317	VkBool32			subsetAllocation;
1318};
1319
1320struct VkDeviceGroupDeviceCreateInfo
1321{
1322	VkStructureType			sType;
1323	const void*				pNext;
1324	deUint32				physicalDeviceCount;
1325	const VkPhysicalDevice*	pPhysicalDevices;
1326};
1327
1328struct VkBufferMemoryRequirementsInfo2
1329{
1330	VkStructureType	sType;
1331	const void*		pNext;
1332	VkBuffer		buffer;
1333};
1334
1335struct VkImageMemoryRequirementsInfo2
1336{
1337	VkStructureType	sType;
1338	const void*		pNext;
1339	VkImage			image;
1340};
1341
1342struct VkImageSparseMemoryRequirementsInfo2
1343{
1344	VkStructureType	sType;
1345	const void*		pNext;
1346	VkImage			image;
1347};
1348
1349struct VkMemoryRequirements2
1350{
1351	VkStructureType			sType;
1352	void*					pNext;
1353	VkMemoryRequirements	memoryRequirements;
1354};
1355
1356struct VkSparseImageMemoryRequirements2
1357{
1358	VkStructureType					sType;
1359	void*							pNext;
1360	VkSparseImageMemoryRequirements	memoryRequirements;
1361};
1362
1363struct VkPhysicalDeviceFeatures2
1364{
1365	VkStructureType				sType;
1366	void*						pNext;
1367	VkPhysicalDeviceFeatures	features;
1368};
1369
1370struct VkPhysicalDeviceProperties2
1371{
1372	VkStructureType				sType;
1373	void*						pNext;
1374	VkPhysicalDeviceProperties	properties;
1375};
1376
1377struct VkFormatProperties2
1378{
1379	VkStructureType		sType;
1380	void*				pNext;
1381	VkFormatProperties	formatProperties;
1382};
1383
1384struct VkImageFormatProperties2
1385{
1386	VkStructureType			sType;
1387	void*					pNext;
1388	VkImageFormatProperties	imageFormatProperties;
1389};
1390
1391struct VkPhysicalDeviceImageFormatInfo2
1392{
1393	VkStructureType		sType;
1394	const void*			pNext;
1395	VkFormat			format;
1396	VkImageType			type;
1397	VkImageTiling		tiling;
1398	VkImageUsageFlags	usage;
1399	VkImageCreateFlags	flags;
1400};
1401
1402struct VkQueueFamilyProperties2
1403{
1404	VkStructureType			sType;
1405	void*					pNext;
1406	VkQueueFamilyProperties	queueFamilyProperties;
1407};
1408
1409struct VkPhysicalDeviceMemoryProperties2
1410{
1411	VkStructureType						sType;
1412	void*								pNext;
1413	VkPhysicalDeviceMemoryProperties	memoryProperties;
1414};
1415
1416struct VkSparseImageFormatProperties2
1417{
1418	VkStructureType					sType;
1419	void*							pNext;
1420	VkSparseImageFormatProperties	properties;
1421};
1422
1423struct VkPhysicalDeviceSparseImageFormatInfo2
1424{
1425	VkStructureType			sType;
1426	const void*				pNext;
1427	VkFormat				format;
1428	VkImageType				type;
1429	VkSampleCountFlagBits	samples;
1430	VkImageUsageFlags		usage;
1431	VkImageTiling			tiling;
1432};
1433
1434struct VkPhysicalDevicePointClippingProperties
1435{
1436	VkStructureType			sType;
1437	void*					pNext;
1438	VkPointClippingBehavior	pointClippingBehavior;
1439};
1440
1441struct VkInputAttachmentAspectReference
1442{
1443	deUint32			subpass;
1444	deUint32			inputAttachmentIndex;
1445	VkImageAspectFlags	aspectMask;
1446};
1447
1448struct VkRenderPassInputAttachmentAspectCreateInfo
1449{
1450	VkStructureType							sType;
1451	const void*								pNext;
1452	deUint32								aspectReferenceCount;
1453	const VkInputAttachmentAspectReference*	pAspectReferences;
1454};
1455
1456struct VkImageViewUsageCreateInfo
1457{
1458	VkStructureType		sType;
1459	const void*			pNext;
1460	VkImageUsageFlags	usage;
1461};
1462
1463struct VkPipelineTessellationDomainOriginStateCreateInfo
1464{
1465	VkStructureType				sType;
1466	const void*					pNext;
1467	VkTessellationDomainOrigin	domainOrigin;
1468};
1469
1470struct VkRenderPassMultiviewCreateInfo
1471{
1472	VkStructureType	sType;
1473	const void*		pNext;
1474	deUint32		subpassCount;
1475	const deUint32*	pViewMasks;
1476	deUint32		dependencyCount;
1477	const deInt32*	pViewOffsets;
1478	deUint32		correlationMaskCount;
1479	const deUint32*	pCorrelationMasks;
1480};
1481
1482struct VkPhysicalDeviceMultiviewFeatures
1483{
1484	VkStructureType	sType;
1485	void*			pNext;
1486	VkBool32		multiview;
1487	VkBool32		multiviewGeometryShader;
1488	VkBool32		multiviewTessellationShader;
1489};
1490
1491struct VkPhysicalDeviceMultiviewProperties
1492{
1493	VkStructureType	sType;
1494	void*			pNext;
1495	deUint32		maxMultiviewViewCount;
1496	deUint32		maxMultiviewInstanceIndex;
1497};
1498
1499struct VkPhysicalDeviceVariablePointerFeatures
1500{
1501	VkStructureType	sType;
1502	void*			pNext;
1503	VkBool32		variablePointersStorageBuffer;
1504	VkBool32		variablePointers;
1505};
1506
1507struct VkPhysicalDeviceProtectedMemoryFeatures
1508{
1509	VkStructureType	sType;
1510	void*			pNext;
1511	VkBool32		protectedMemory;
1512};
1513
1514struct VkPhysicalDeviceProtectedMemoryProperties
1515{
1516	VkStructureType	sType;
1517	void*			pNext;
1518	VkBool32		protectedNoFault;
1519};
1520
1521struct VkDeviceQueueInfo2
1522{
1523	VkStructureType				sType;
1524	const void*					pNext;
1525	VkDeviceQueueCreateFlags	flags;
1526	deUint32					queueFamilyIndex;
1527	deUint32					queueIndex;
1528};
1529
1530struct VkProtectedSubmitInfo
1531{
1532	VkStructureType	sType;
1533	const void*		pNext;
1534	VkBool32		protectedSubmit;
1535};
1536
1537struct VkSamplerYcbcrConversionCreateInfo
1538{
1539	VkStructureType					sType;
1540	const void*						pNext;
1541	VkFormat						format;
1542	VkSamplerYcbcrModelConversion	ycbcrModel;
1543	VkSamplerYcbcrRange				ycbcrRange;
1544	VkComponentMapping				components;
1545	VkChromaLocation				xChromaOffset;
1546	VkChromaLocation				yChromaOffset;
1547	VkFilter						chromaFilter;
1548	VkBool32						forceExplicitReconstruction;
1549};
1550
1551struct VkSamplerYcbcrConversionInfo
1552{
1553	VkStructureType				sType;
1554	const void*					pNext;
1555	VkSamplerYcbcrConversion	conversion;
1556};
1557
1558struct VkBindImagePlaneMemoryInfo
1559{
1560	VkStructureType			sType;
1561	const void*				pNext;
1562	VkImageAspectFlagBits	planeAspect;
1563};
1564
1565struct VkImagePlaneMemoryRequirementsInfo
1566{
1567	VkStructureType			sType;
1568	const void*				pNext;
1569	VkImageAspectFlagBits	planeAspect;
1570};
1571
1572struct VkPhysicalDeviceSamplerYcbcrConversionFeatures
1573{
1574	VkStructureType	sType;
1575	void*			pNext;
1576	VkBool32		samplerYcbcrConversion;
1577};
1578
1579struct VkSamplerYcbcrConversionImageFormatProperties
1580{
1581	VkStructureType	sType;
1582	void*			pNext;
1583	deUint32		combinedImageSamplerDescriptorCount;
1584};
1585
1586struct VkDescriptorUpdateTemplateEntry
1587{
1588	deUint32			dstBinding;
1589	deUint32			dstArrayElement;
1590	deUint32			descriptorCount;
1591	VkDescriptorType	descriptorType;
1592	deUintptr			offset;
1593	deUintptr			stride;
1594};
1595
1596struct VkDescriptorUpdateTemplateCreateInfo
1597{
1598	VkStructureType							sType;
1599	void*									pNext;
1600	VkDescriptorUpdateTemplateCreateFlags	flags;
1601	deUint32								descriptorUpdateEntryCount;
1602	const VkDescriptorUpdateTemplateEntry*	pDescriptorUpdateEntries;
1603	VkDescriptorUpdateTemplateType			templateType;
1604	VkDescriptorSetLayout					descriptorSetLayout;
1605	VkPipelineBindPoint						pipelineBindPoint;
1606	VkPipelineLayout						pipelineLayout;
1607	deUint32								set;
1608};
1609
1610struct VkExternalMemoryProperties
1611{
1612	VkExternalMemoryFeatureFlags	externalMemoryFeatures;
1613	VkExternalMemoryHandleTypeFlags	exportFromImportedHandleTypes;
1614	VkExternalMemoryHandleTypeFlags	compatibleHandleTypes;
1615};
1616
1617struct VkPhysicalDeviceExternalImageFormatInfo
1618{
1619	VkStructureType						sType;
1620	const void*							pNext;
1621	VkExternalMemoryHandleTypeFlagBits	handleType;
1622};
1623
1624struct VkExternalImageFormatProperties
1625{
1626	VkStructureType				sType;
1627	void*						pNext;
1628	VkExternalMemoryProperties	externalMemoryProperties;
1629};
1630
1631struct VkPhysicalDeviceExternalBufferInfo
1632{
1633	VkStructureType						sType;
1634	const void*							pNext;
1635	VkBufferCreateFlags					flags;
1636	VkBufferUsageFlags					usage;
1637	VkExternalMemoryHandleTypeFlagBits	handleType;
1638};
1639
1640struct VkExternalBufferProperties
1641{
1642	VkStructureType				sType;
1643	void*						pNext;
1644	VkExternalMemoryProperties	externalMemoryProperties;
1645};
1646
1647struct VkPhysicalDeviceIDProperties
1648{
1649	VkStructureType	sType;
1650	void*			pNext;
1651	deUint8			deviceUUID[VK_UUID_SIZE];
1652	deUint8			driverUUID[VK_UUID_SIZE];
1653	deUint8			deviceLUID[VK_LUID_SIZE];
1654	deUint32		deviceNodeMask;
1655	VkBool32		deviceLUIDValid;
1656};
1657
1658struct VkExternalMemoryImageCreateInfo
1659{
1660	VkStructureType					sType;
1661	const void*						pNext;
1662	VkExternalMemoryHandleTypeFlags	handleTypes;
1663};
1664
1665struct VkExternalMemoryBufferCreateInfo
1666{
1667	VkStructureType					sType;
1668	const void*						pNext;
1669	VkExternalMemoryHandleTypeFlags	handleTypes;
1670};
1671
1672struct VkExportMemoryAllocateInfo
1673{
1674	VkStructureType					sType;
1675	const void*						pNext;
1676	VkExternalMemoryHandleTypeFlags	handleTypes;
1677};
1678
1679struct VkPhysicalDeviceExternalFenceInfo
1680{
1681	VkStructureType						sType;
1682	const void*							pNext;
1683	VkExternalFenceHandleTypeFlagBits	handleType;
1684};
1685
1686struct VkExternalFenceProperties
1687{
1688	VkStructureType					sType;
1689	void*							pNext;
1690	VkExternalFenceHandleTypeFlags	exportFromImportedHandleTypes;
1691	VkExternalFenceHandleTypeFlags	compatibleHandleTypes;
1692	VkExternalFenceFeatureFlags		externalFenceFeatures;
1693};
1694
1695struct VkExportFenceCreateInfo
1696{
1697	VkStructureType					sType;
1698	const void*						pNext;
1699	VkExternalFenceHandleTypeFlags	handleTypes;
1700};
1701
1702struct VkExportSemaphoreCreateInfo
1703{
1704	VkStructureType						sType;
1705	const void*							pNext;
1706	VkExternalSemaphoreHandleTypeFlags	handleTypes;
1707};
1708
1709struct VkPhysicalDeviceExternalSemaphoreInfo
1710{
1711	VkStructureType							sType;
1712	const void*								pNext;
1713	VkExternalSemaphoreHandleTypeFlagBits	handleType;
1714};
1715
1716struct VkExternalSemaphoreProperties
1717{
1718	VkStructureType						sType;
1719	void*								pNext;
1720	VkExternalSemaphoreHandleTypeFlags	exportFromImportedHandleTypes;
1721	VkExternalSemaphoreHandleTypeFlags	compatibleHandleTypes;
1722	VkExternalSemaphoreFeatureFlags		externalSemaphoreFeatures;
1723};
1724
1725struct VkPhysicalDeviceMaintenance3Properties
1726{
1727	VkStructureType	sType;
1728	void*			pNext;
1729	deUint32		maxPerSetDescriptors;
1730	VkDeviceSize	maxMemoryAllocationSize;
1731};
1732
1733struct VkDescriptorSetLayoutSupport
1734{
1735	VkStructureType	sType;
1736	void*			pNext;
1737	VkBool32		supported;
1738};
1739
1740struct VkPhysicalDeviceShaderDrawParameterFeatures
1741{
1742	VkStructureType	sType;
1743	void*			pNext;
1744	VkBool32		shaderDrawParameters;
1745};
1746
1747struct VkSurfaceCapabilitiesKHR
1748{
1749	deUint32						minImageCount;
1750	deUint32						maxImageCount;
1751	VkExtent2D						currentExtent;
1752	VkExtent2D						minImageExtent;
1753	VkExtent2D						maxImageExtent;
1754	deUint32						maxImageArrayLayers;
1755	VkSurfaceTransformFlagsKHR		supportedTransforms;
1756	VkSurfaceTransformFlagBitsKHR	currentTransform;
1757	VkCompositeAlphaFlagsKHR		supportedCompositeAlpha;
1758	VkImageUsageFlags				supportedUsageFlags;
1759};
1760
1761struct VkSurfaceFormatKHR
1762{
1763	VkFormat		format;
1764	VkColorSpaceKHR	colorSpace;
1765};
1766
1767struct VkSwapchainCreateInfoKHR
1768{
1769	VkStructureType					sType;
1770	const void*						pNext;
1771	VkSwapchainCreateFlagsKHR		flags;
1772	VkSurfaceKHR					surface;
1773	deUint32						minImageCount;
1774	VkFormat						imageFormat;
1775	VkColorSpaceKHR					imageColorSpace;
1776	VkExtent2D						imageExtent;
1777	deUint32						imageArrayLayers;
1778	VkImageUsageFlags				imageUsage;
1779	VkSharingMode					imageSharingMode;
1780	deUint32						queueFamilyIndexCount;
1781	const deUint32*					pQueueFamilyIndices;
1782	VkSurfaceTransformFlagBitsKHR	preTransform;
1783	VkCompositeAlphaFlagBitsKHR		compositeAlpha;
1784	VkPresentModeKHR				presentMode;
1785	VkBool32						clipped;
1786	VkSwapchainKHR					oldSwapchain;
1787};
1788
1789struct VkPresentInfoKHR
1790{
1791	VkStructureType			sType;
1792	const void*				pNext;
1793	deUint32				waitSemaphoreCount;
1794	const VkSemaphore*		pWaitSemaphores;
1795	deUint32				swapchainCount;
1796	const VkSwapchainKHR*	pSwapchains;
1797	const deUint32*			pImageIndices;
1798	VkResult*				pResults;
1799};
1800
1801struct VkImageSwapchainCreateInfoKHR
1802{
1803	VkStructureType	sType;
1804	const void*		pNext;
1805	VkSwapchainKHR	swapchain;
1806};
1807
1808struct VkBindImageMemorySwapchainInfoKHR
1809{
1810	VkStructureType	sType;
1811	const void*		pNext;
1812	VkSwapchainKHR	swapchain;
1813	deUint32		imageIndex;
1814};
1815
1816struct VkAcquireNextImageInfoKHR
1817{
1818	VkStructureType	sType;
1819	const void*		pNext;
1820	VkSwapchainKHR	swapchain;
1821	deUint64		timeout;
1822	VkSemaphore		semaphore;
1823	VkFence			fence;
1824	deUint32		deviceMask;
1825};
1826
1827struct VkDeviceGroupPresentCapabilitiesKHR
1828{
1829	VkStructureType						sType;
1830	const void*							pNext;
1831	deUint32							presentMask[VK_MAX_DEVICE_GROUP_SIZE];
1832	VkDeviceGroupPresentModeFlagsKHR	modes;
1833};
1834
1835struct VkDeviceGroupPresentInfoKHR
1836{
1837	VkStructureType						sType;
1838	const void*							pNext;
1839	deUint32							swapchainCount;
1840	const deUint32*						pDeviceMasks;
1841	VkDeviceGroupPresentModeFlagBitsKHR	mode;
1842};
1843
1844struct VkDeviceGroupSwapchainCreateInfoKHR
1845{
1846	VkStructureType						sType;
1847	const void*							pNext;
1848	VkDeviceGroupPresentModeFlagsKHR	modes;
1849};
1850
1851struct VkDisplayPropertiesKHR
1852{
1853	VkDisplayKHR				display;
1854	const char*					displayName;
1855	VkExtent2D					physicalDimensions;
1856	VkExtent2D					physicalResolution;
1857	VkSurfaceTransformFlagsKHR	supportedTransforms;
1858	VkBool32					planeReorderPossible;
1859	VkBool32					persistentContent;
1860};
1861
1862struct VkDisplayModeParametersKHR
1863{
1864	VkExtent2D	visibleRegion;
1865	deUint32	refreshRate;
1866};
1867
1868struct VkDisplayModePropertiesKHR
1869{
1870	VkDisplayModeKHR			displayMode;
1871	VkDisplayModeParametersKHR	parameters;
1872};
1873
1874struct VkDisplayModeCreateInfoKHR
1875{
1876	VkStructureType				sType;
1877	const void*					pNext;
1878	VkDisplayModeCreateFlagsKHR	flags;
1879	VkDisplayModeParametersKHR	parameters;
1880};
1881
1882struct VkDisplayPlaneCapabilitiesKHR
1883{
1884	VkDisplayPlaneAlphaFlagsKHR	supportedAlpha;
1885	VkOffset2D					minSrcPosition;
1886	VkOffset2D					maxSrcPosition;
1887	VkExtent2D					minSrcExtent;
1888	VkExtent2D					maxSrcExtent;
1889	VkOffset2D					minDstPosition;
1890	VkOffset2D					maxDstPosition;
1891	VkExtent2D					minDstExtent;
1892	VkExtent2D					maxDstExtent;
1893};
1894
1895struct VkDisplayPlanePropertiesKHR
1896{
1897	VkDisplayKHR	currentDisplay;
1898	deUint32		currentStackIndex;
1899};
1900
1901struct VkDisplaySurfaceCreateInfoKHR
1902{
1903	VkStructureType					sType;
1904	const void*						pNext;
1905	VkDisplaySurfaceCreateFlagsKHR	flags;
1906	VkDisplayModeKHR				displayMode;
1907	deUint32						planeIndex;
1908	deUint32						planeStackIndex;
1909	VkSurfaceTransformFlagBitsKHR	transform;
1910	float							globalAlpha;
1911	VkDisplayPlaneAlphaFlagBitsKHR	alphaMode;
1912	VkExtent2D						imageExtent;
1913};
1914
1915struct VkDisplayPresentInfoKHR
1916{
1917	VkStructureType	sType;
1918	const void*		pNext;
1919	VkRect2D		srcRect;
1920	VkRect2D		dstRect;
1921	VkBool32		persistent;
1922};
1923
1924struct VkXlibSurfaceCreateInfoKHR
1925{
1926	VkStructureType				sType;
1927	const void*					pNext;
1928	VkXlibSurfaceCreateFlagsKHR	flags;
1929	pt::XlibDisplayPtr			dpy;
1930	pt::XlibWindow				window;
1931};
1932
1933struct VkXcbSurfaceCreateInfoKHR
1934{
1935	VkStructureType				sType;
1936	const void*					pNext;
1937	VkXcbSurfaceCreateFlagsKHR	flags;
1938	pt::XcbConnectionPtr		connection;
1939	pt::XcbWindow				window;
1940};
1941
1942struct VkWaylandSurfaceCreateInfoKHR
1943{
1944	VkStructureType					sType;
1945	const void*						pNext;
1946	VkWaylandSurfaceCreateFlagsKHR	flags;
1947	pt::WaylandDisplayPtr			display;
1948	pt::WaylandSurfacePtr			surface;
1949};
1950
1951struct VkMirSurfaceCreateInfoKHR
1952{
1953	VkStructureType				sType;
1954	const void*					pNext;
1955	VkMirSurfaceCreateFlagsKHR	flags;
1956	pt::MirConnectionPtr		connection;
1957	pt::MirSurfacePtr			mirSurface;
1958};
1959
1960struct VkAndroidSurfaceCreateInfoKHR
1961{
1962	VkStructureType					sType;
1963	const void*						pNext;
1964	VkAndroidSurfaceCreateFlagsKHR	flags;
1965	pt::AndroidNativeWindowPtr		window;
1966};
1967
1968struct VkWin32SurfaceCreateInfoKHR
1969{
1970	VkStructureType					sType;
1971	const void*						pNext;
1972	VkWin32SurfaceCreateFlagsKHR	flags;
1973	pt::Win32InstanceHandle			hinstance;
1974	pt::Win32WindowHandle			hwnd;
1975};
1976
1977struct VkImportMemoryWin32HandleInfoKHR
1978{
1979	VkStructureType						sType;
1980	const void*							pNext;
1981	VkExternalMemoryHandleTypeFlagBits	handleType;
1982	pt::Win32Handle						handle;
1983	char*								name;
1984};
1985
1986struct VkExportMemoryWin32HandleInfoKHR
1987{
1988	VkStructureType					sType;
1989	const void*						pNext;
1990	pt::Win32SecurityAttributesPtr	pAttributes;
1991	deUint32						dwAccess;
1992	char*							name;
1993};
1994
1995struct VkMemoryWin32HandlePropertiesKHR
1996{
1997	VkStructureType	sType;
1998	void*			pNext;
1999	deUint32		memoryTypeBits;
2000};
2001
2002struct VkMemoryGetWin32HandleInfoKHR
2003{
2004	VkStructureType						sType;
2005	const void*							pNext;
2006	VkDeviceMemory						memory;
2007	VkExternalMemoryHandleTypeFlagBits	handleType;
2008};
2009
2010struct VkImportMemoryFdInfoKHR
2011{
2012	VkStructureType						sType;
2013	const void*							pNext;
2014	VkExternalMemoryHandleTypeFlagBits	handleType;
2015	int									fd;
2016};
2017
2018struct VkMemoryFdPropertiesKHR
2019{
2020	VkStructureType	sType;
2021	void*			pNext;
2022	deUint32		memoryTypeBits;
2023};
2024
2025struct VkMemoryGetFdInfoKHR
2026{
2027	VkStructureType						sType;
2028	const void*							pNext;
2029	VkDeviceMemory						memory;
2030	VkExternalMemoryHandleTypeFlagBits	handleType;
2031};
2032
2033struct VkWin32KeyedMutexAcquireReleaseInfoKHR
2034{
2035	VkStructureType			sType;
2036	const void*				pNext;
2037	deUint32				acquireCount;
2038	const VkDeviceMemory*	pAcquireSyncs;
2039	const deUint64*			pAcquireKeys;
2040	const deUint32*			pAcquireTimeouts;
2041	deUint32				releaseCount;
2042	const VkDeviceMemory*	pReleaseSyncs;
2043	const deUint64*			pReleaseKeys;
2044};
2045
2046struct VkImportSemaphoreWin32HandleInfoKHR
2047{
2048	VkStructureType							sType;
2049	const void*								pNext;
2050	VkSemaphore								semaphore;
2051	VkSemaphoreImportFlags					flags;
2052	VkExternalSemaphoreHandleTypeFlagBits	handleType;
2053	pt::Win32Handle							handle;
2054	char*									name;
2055};
2056
2057struct VkExportSemaphoreWin32HandleInfoKHR
2058{
2059	VkStructureType					sType;
2060	const void*						pNext;
2061	pt::Win32SecurityAttributesPtr	pAttributes;
2062	deUint32						dwAccess;
2063	char*							name;
2064};
2065
2066struct VkD3D12FenceSubmitInfoKHR
2067{
2068	VkStructureType	sType;
2069	const void*		pNext;
2070	deUint32		waitSemaphoreValuesCount;
2071	const deUint64*	pWaitSemaphoreValues;
2072	deUint32		signalSemaphoreValuesCount;
2073	const deUint64*	pSignalSemaphoreValues;
2074};
2075
2076struct VkSemaphoreGetWin32HandleInfoKHR
2077{
2078	VkStructureType							sType;
2079	const void*								pNext;
2080	VkSemaphore								semaphore;
2081	VkExternalSemaphoreHandleTypeFlagBits	handleType;
2082};
2083
2084struct VkImportSemaphoreFdInfoKHR
2085{
2086	VkStructureType							sType;
2087	const void*								pNext;
2088	VkSemaphore								semaphore;
2089	VkSemaphoreImportFlags					flags;
2090	VkExternalSemaphoreHandleTypeFlagBits	handleType;
2091	int										fd;
2092};
2093
2094struct VkSemaphoreGetFdInfoKHR
2095{
2096	VkStructureType							sType;
2097	const void*								pNext;
2098	VkSemaphore								semaphore;
2099	VkExternalSemaphoreHandleTypeFlagBits	handleType;
2100};
2101
2102struct VkPhysicalDevicePushDescriptorPropertiesKHR
2103{
2104	VkStructureType	sType;
2105	void*			pNext;
2106	deUint32		maxPushDescriptors;
2107};
2108
2109struct VkPhysicalDeviceFloat16Int8FeaturesKHR
2110{
2111	VkStructureType	sType;
2112	void*			pNext;
2113	VkBool32		shaderFloat16;
2114	VkBool32		shaderInt8;
2115};
2116
2117struct VkRectLayerKHR
2118{
2119	VkOffset2D	offset;
2120	VkExtent2D	extent;
2121	deUint32	layer;
2122};
2123
2124struct VkPresentRegionKHR
2125{
2126	deUint32				rectangleCount;
2127	const VkRectLayerKHR*	pRectangles;
2128};
2129
2130struct VkPresentRegionsKHR
2131{
2132	VkStructureType				sType;
2133	const void*					pNext;
2134	deUint32					swapchainCount;
2135	const VkPresentRegionKHR*	pRegions;
2136};
2137
2138struct VkAttachmentDescription2KHR
2139{
2140	VkStructureType					sType;
2141	const void*						pNext;
2142	VkAttachmentDescriptionFlags	flags;
2143	VkFormat						format;
2144	VkSampleCountFlagBits			samples;
2145	VkAttachmentLoadOp				loadOp;
2146	VkAttachmentStoreOp				storeOp;
2147	VkAttachmentLoadOp				stencilLoadOp;
2148	VkAttachmentStoreOp				stencilStoreOp;
2149	VkImageLayout					initialLayout;
2150	VkImageLayout					finalLayout;
2151};
2152
2153struct VkAttachmentReference2KHR
2154{
2155	VkStructureType		sType;
2156	const void*			pNext;
2157	deUint32			attachment;
2158	VkImageLayout		layout;
2159	VkImageAspectFlags	aspectMask;
2160};
2161
2162struct VkSubpassDescription2KHR
2163{
2164	VkStructureType						sType;
2165	const void*							pNext;
2166	VkSubpassDescriptionFlags			flags;
2167	VkPipelineBindPoint					pipelineBindPoint;
2168	deUint32							viewMask;
2169	deUint32							inputAttachmentCount;
2170	const VkAttachmentReference2KHR*	pInputAttachments;
2171	deUint32							colorAttachmentCount;
2172	const VkAttachmentReference2KHR*	pColorAttachments;
2173	const VkAttachmentReference2KHR*	pResolveAttachments;
2174	const VkAttachmentReference2KHR*	pDepthStencilAttachment;
2175	deUint32							preserveAttachmentCount;
2176	const deUint32*						pPreserveAttachments;
2177};
2178
2179struct VkSubpassDependency2KHR
2180{
2181	VkStructureType			sType;
2182	const void*				pNext;
2183	deUint32				srcSubpass;
2184	deUint32				dstSubpass;
2185	VkPipelineStageFlags	srcStageMask;
2186	VkPipelineStageFlags	dstStageMask;
2187	VkAccessFlags			srcAccessMask;
2188	VkAccessFlags			dstAccessMask;
2189	VkDependencyFlags		dependencyFlags;
2190	deInt32					viewOffset;
2191};
2192
2193struct VkRenderPassCreateInfo2KHR
2194{
2195	VkStructureType						sType;
2196	const void*							pNext;
2197	VkRenderPassCreateFlags				flags;
2198	deUint32							attachmentCount;
2199	const VkAttachmentDescription2KHR*	pAttachments;
2200	deUint32							subpassCount;
2201	const VkSubpassDescription2KHR*		pSubpasses;
2202	deUint32							dependencyCount;
2203	const VkSubpassDependency2KHR*		pDependencies;
2204	deUint32							correlatedViewMaskCount;
2205	const deUint32*						pCorrelatedViewMasks;
2206};
2207
2208struct VkSubpassBeginInfoKHR
2209{
2210	VkStructureType		sType;
2211	const void*			pNext;
2212	VkSubpassContents	contents;
2213};
2214
2215struct VkSubpassEndInfoKHR
2216{
2217	VkStructureType	sType;
2218	const void*		pNext;
2219};
2220
2221struct VkSharedPresentSurfaceCapabilitiesKHR
2222{
2223	VkStructureType		sType;
2224	void*				pNext;
2225	VkImageUsageFlags	sharedPresentSupportedUsageFlags;
2226};
2227
2228struct VkImportFenceWin32HandleInfoKHR
2229{
2230	VkStructureType						sType;
2231	const void*							pNext;
2232	VkFence								fence;
2233	VkFenceImportFlags					flags;
2234	VkExternalFenceHandleTypeFlagBits	handleType;
2235	pt::Win32Handle						handle;
2236	char*								name;
2237};
2238
2239struct VkExportFenceWin32HandleInfoKHR
2240{
2241	VkStructureType					sType;
2242	const void*						pNext;
2243	pt::Win32SecurityAttributesPtr	pAttributes;
2244	deUint32						dwAccess;
2245	char*							name;
2246};
2247
2248struct VkFenceGetWin32HandleInfoKHR
2249{
2250	VkStructureType						sType;
2251	const void*							pNext;
2252	VkFence								fence;
2253	VkExternalFenceHandleTypeFlagBits	handleType;
2254};
2255
2256struct VkImportFenceFdInfoKHR
2257{
2258	VkStructureType						sType;
2259	const void*							pNext;
2260	VkFence								fence;
2261	VkFenceImportFlags					flags;
2262	VkExternalFenceHandleTypeFlagBits	handleType;
2263	int									fd;
2264};
2265
2266struct VkFenceGetFdInfoKHR
2267{
2268	VkStructureType						sType;
2269	const void*							pNext;
2270	VkFence								fence;
2271	VkExternalFenceHandleTypeFlagBits	handleType;
2272};
2273
2274struct VkPhysicalDeviceSurfaceInfo2KHR
2275{
2276	VkStructureType	sType;
2277	const void*		pNext;
2278	VkSurfaceKHR	surface;
2279};
2280
2281struct VkSurfaceCapabilities2KHR
2282{
2283	VkStructureType				sType;
2284	void*						pNext;
2285	VkSurfaceCapabilitiesKHR	surfaceCapabilities;
2286};
2287
2288struct VkSurfaceFormat2KHR
2289{
2290	VkStructureType		sType;
2291	void*				pNext;
2292	VkSurfaceFormatKHR	surfaceFormat;
2293};
2294
2295struct VkDisplayProperties2KHR
2296{
2297	VkStructureType			sType;
2298	void*					pNext;
2299	VkDisplayPropertiesKHR	displayProperties;
2300};
2301
2302struct VkDisplayPlaneProperties2KHR
2303{
2304	VkStructureType				sType;
2305	void*						pNext;
2306	VkDisplayPlanePropertiesKHR	displayPlaneProperties;
2307};
2308
2309struct VkDisplayModeProperties2KHR
2310{
2311	VkStructureType				sType;
2312	void*						pNext;
2313	VkDisplayModePropertiesKHR	displayModeProperties;
2314};
2315
2316struct VkDisplayPlaneInfo2KHR
2317{
2318	VkStructureType		sType;
2319	const void*			pNext;
2320	VkDisplayModeKHR	mode;
2321	deUint32			planeIndex;
2322};
2323
2324struct VkDisplayPlaneCapabilities2KHR
2325{
2326	VkStructureType					sType;
2327	void*							pNext;
2328	VkDisplayPlaneCapabilitiesKHR	capabilities;
2329};
2330
2331struct VkImageFormatListCreateInfoKHR
2332{
2333	VkStructureType	sType;
2334	const void*		pNext;
2335	deUint32		viewFormatCount;
2336	const VkFormat*	pViewFormats;
2337};
2338
2339struct VkConformanceVersionKHR
2340{
2341	deUint8	major;
2342	deUint8	minor;
2343	deUint8	subminor;
2344	deUint8	patch;
2345};
2346
2347struct VkPhysicalDeviceDriverPropertiesKHR
2348{
2349	VkStructureType			sType;
2350	void*					pNext;
2351	deUint32				driverID;
2352	char					driverName[VK_MAX_DRIVER_NAME_SIZE_KHR];
2353	char					driverInfo[VK_MAX_DRIVER_INFO_SIZE_KHR];
2354	VkConformanceVersionKHR	conformanceVersion;
2355};
2356
2357struct VkPhysicalDeviceFloatControlsPropertiesKHR
2358{
2359	VkStructureType	sType;
2360	void*			pNext;
2361	VkBool32		separateDenormSettings;
2362	VkBool32		separateRoundingModeSettings;
2363	VkBool32		shaderSignedZeroInfNanPreserveFloat16;
2364	VkBool32		shaderSignedZeroInfNanPreserveFloat32;
2365	VkBool32		shaderSignedZeroInfNanPreserveFloat64;
2366	VkBool32		shaderDenormPreserveFloat16;
2367	VkBool32		shaderDenormPreserveFloat32;
2368	VkBool32		shaderDenormPreserveFloat64;
2369	VkBool32		shaderDenormFlushToZeroFloat16;
2370	VkBool32		shaderDenormFlushToZeroFloat32;
2371	VkBool32		shaderDenormFlushToZeroFloat64;
2372	VkBool32		shaderRoundingModeRTEFloat16;
2373	VkBool32		shaderRoundingModeRTEFloat32;
2374	VkBool32		shaderRoundingModeRTEFloat64;
2375	VkBool32		shaderRoundingModeRTZFloat16;
2376	VkBool32		shaderRoundingModeRTZFloat32;
2377	VkBool32		shaderRoundingModeRTZFloat64;
2378};
2379
2380struct VkSubpassDescriptionDepthStencilResolveKHR
2381{
2382	VkStructureType						sType;
2383	const void*							pNext;
2384	VkResolveModeFlagBitsKHR			depthResolveMode;
2385	VkResolveModeFlagBitsKHR			stencilResolveMode;
2386	const VkAttachmentReference2KHR*	pDepthStencilResolveAttachment;
2387};
2388
2389struct VkPhysicalDeviceDepthStencilResolvePropertiesKHR
2390{
2391	VkStructureType			sType;
2392	void*					pNext;
2393	VkResolveModeFlagsKHR	supportedDepthResolveModes;
2394	VkResolveModeFlagsKHR	supportedStencilResolveModes;
2395	VkBool32				independentResolveNone;
2396	VkBool32				independentResolve;
2397};
2398
2399struct VkSurfaceProtectedCapabilitiesKHR
2400{
2401	VkStructureType	sType;
2402	const void*		pNext;
2403	VkBool32		supportsProtected;
2404};
2405
2406struct VkDebugReportCallbackCreateInfoEXT
2407{
2408	VkStructureType					sType;
2409	const void*						pNext;
2410	VkDebugReportFlagsEXT			flags;
2411	PFN_vkDebugReportCallbackEXT	pfnCallback;
2412	void*							pUserData;
2413};
2414
2415struct VkPipelineRasterizationStateRasterizationOrderAMD
2416{
2417	VkStructureType			sType;
2418	const void*				pNext;
2419	VkRasterizationOrderAMD	rasterizationOrder;
2420};
2421
2422struct VkDebugMarkerObjectNameInfoEXT
2423{
2424	VkStructureType				sType;
2425	const void*					pNext;
2426	VkDebugReportObjectTypeEXT	objectType;
2427	deUint64					object;
2428	const char*					pObjectName;
2429};
2430
2431struct VkDebugMarkerObjectTagInfoEXT
2432{
2433	VkStructureType				sType;
2434	const void*					pNext;
2435	VkDebugReportObjectTypeEXT	objectType;
2436	deUint64					object;
2437	deUint64					tagName;
2438	deUintptr					tagSize;
2439	const void*					pTag;
2440};
2441
2442struct VkDebugMarkerMarkerInfoEXT
2443{
2444	VkStructureType	sType;
2445	const void*		pNext;
2446	const char*		pMarkerName;
2447	float			color[4];
2448};
2449
2450struct VkDedicatedAllocationImageCreateInfoNV
2451{
2452	VkStructureType	sType;
2453	const void*		pNext;
2454	VkBool32		dedicatedAllocation;
2455};
2456
2457struct VkDedicatedAllocationBufferCreateInfoNV
2458{
2459	VkStructureType	sType;
2460	const void*		pNext;
2461	VkBool32		dedicatedAllocation;
2462};
2463
2464struct VkDedicatedAllocationMemoryAllocateInfoNV
2465{
2466	VkStructureType	sType;
2467	const void*		pNext;
2468	VkImage			image;
2469	VkBuffer		buffer;
2470};
2471
2472struct VkTextureLODGatherFormatPropertiesAMD
2473{
2474	VkStructureType	sType;
2475	void*			pNext;
2476	VkBool32		supportsTextureGatherLODBiasAMD;
2477};
2478
2479struct VkExternalImageFormatPropertiesNV
2480{
2481	VkImageFormatProperties				imageFormatProperties;
2482	VkExternalMemoryFeatureFlagsNV		externalMemoryFeatures;
2483	VkExternalMemoryHandleTypeFlagsNV	exportFromImportedHandleTypes;
2484	VkExternalMemoryHandleTypeFlagsNV	compatibleHandleTypes;
2485};
2486
2487struct VkExternalMemoryImageCreateInfoNV
2488{
2489	VkStructureType						sType;
2490	const void*							pNext;
2491	VkExternalMemoryHandleTypeFlagsNV	handleTypes;
2492};
2493
2494struct VkExportMemoryAllocateInfoNV
2495{
2496	VkStructureType						sType;
2497	const void*							pNext;
2498	VkExternalMemoryHandleTypeFlagsNV	handleTypes;
2499};
2500
2501struct VkImportMemoryWin32HandleInfoNV
2502{
2503	VkStructureType						sType;
2504	const void*							pNext;
2505	VkExternalMemoryHandleTypeFlagsNV	handleType;
2506	pt::Win32Handle						handle;
2507};
2508
2509struct VkExportMemoryWin32HandleInfoNV
2510{
2511	VkStructureType					sType;
2512	const void*						pNext;
2513	pt::Win32SecurityAttributesPtr	pAttributes;
2514	deUint32						dwAccess;
2515};
2516
2517struct VkWin32KeyedMutexAcquireReleaseInfoNV
2518{
2519	VkStructureType			sType;
2520	const void*				pNext;
2521	deUint32				acquireCount;
2522	const VkDeviceMemory*	pAcquireSyncs;
2523	const deUint64*			pAcquireKeys;
2524	const deUint32*			pAcquireTimeoutMilliseconds;
2525	deUint32				releaseCount;
2526	const VkDeviceMemory*	pReleaseSyncs;
2527	const deUint64*			pReleaseKeys;
2528};
2529
2530struct VkValidationFlagsEXT
2531{
2532	VkStructureType			sType;
2533	const void*				pNext;
2534	deUint32				disabledValidationCheckCount;
2535	VkValidationCheckEXT*	pDisabledValidationChecks;
2536};
2537
2538struct VkViSurfaceCreateInfoNN
2539{
2540	VkStructureType				sType;
2541	const void*					pNext;
2542	VkViSurfaceCreateFlagsNN	flags;
2543	void*						window;
2544};
2545
2546struct VkConditionalRenderingBeginInfoEXT
2547{
2548	VkStructureType					sType;
2549	const void*						pNext;
2550	VkBuffer						buffer;
2551	VkDeviceSize					offset;
2552	VkConditionalRenderingFlagsEXT	flags;
2553};
2554
2555struct VkPhysicalDeviceConditionalRenderingFeaturesEXT
2556{
2557	VkStructureType	sType;
2558	void*			pNext;
2559	VkBool32		conditionalRendering;
2560	VkBool32		inheritedConditionalRendering;
2561};
2562
2563struct VkCommandBufferInheritanceConditionalRenderingInfoEXT
2564{
2565	VkStructureType	sType;
2566	const void*		pNext;
2567	VkBool32		conditionalRenderingEnable;
2568};
2569
2570struct VkDeviceGeneratedCommandsFeaturesNVX
2571{
2572	VkStructureType	sType;
2573	const void*		pNext;
2574	VkBool32		computeBindingPointSupport;
2575};
2576
2577struct VkDeviceGeneratedCommandsLimitsNVX
2578{
2579	VkStructureType	sType;
2580	const void*		pNext;
2581	deUint32		maxIndirectCommandsLayoutTokenCount;
2582	deUint32		maxObjectEntryCounts;
2583	deUint32		minSequenceCountBufferOffsetAlignment;
2584	deUint32		minSequenceIndexBufferOffsetAlignment;
2585	deUint32		minCommandsTokenBufferOffsetAlignment;
2586};
2587
2588struct VkIndirectCommandsTokenNVX
2589{
2590	VkIndirectCommandsTokenTypeNVX	tokenType;
2591	VkBuffer						buffer;
2592	VkDeviceSize					offset;
2593};
2594
2595struct VkIndirectCommandsLayoutTokenNVX
2596{
2597	VkIndirectCommandsTokenTypeNVX	tokenType;
2598	deUint32						bindingUnit;
2599	deUint32						dynamicCount;
2600	deUint32						divisor;
2601};
2602
2603struct VkIndirectCommandsLayoutCreateInfoNVX
2604{
2605	VkStructureType							sType;
2606	const void*								pNext;
2607	VkPipelineBindPoint						pipelineBindPoint;
2608	VkIndirectCommandsLayoutUsageFlagsNVX	flags;
2609	deUint32								tokenCount;
2610	const VkIndirectCommandsLayoutTokenNVX*	pTokens;
2611};
2612
2613struct VkCmdProcessCommandsInfoNVX
2614{
2615	VkStructureType						sType;
2616	const void*							pNext;
2617	VkObjectTableNVX					objectTable;
2618	VkIndirectCommandsLayoutNVX			indirectCommandsLayout;
2619	deUint32							indirectCommandsTokenCount;
2620	const VkIndirectCommandsTokenNVX*	pIndirectCommandsTokens;
2621	deUint32							maxSequencesCount;
2622	VkCommandBuffer						targetCommandBuffer;
2623	VkBuffer							sequencesCountBuffer;
2624	VkDeviceSize						sequencesCountOffset;
2625	VkBuffer							sequencesIndexBuffer;
2626	VkDeviceSize						sequencesIndexOffset;
2627};
2628
2629struct VkCmdReserveSpaceForCommandsInfoNVX
2630{
2631	VkStructureType				sType;
2632	const void*					pNext;
2633	VkObjectTableNVX			objectTable;
2634	VkIndirectCommandsLayoutNVX	indirectCommandsLayout;
2635	deUint32					maxSequencesCount;
2636};
2637
2638struct VkObjectTableCreateInfoNVX
2639{
2640	VkStructureType						sType;
2641	const void*							pNext;
2642	deUint32							objectCount;
2643	const VkObjectEntryTypeNVX*			pObjectEntryTypes;
2644	const deUint32*						pObjectEntryCounts;
2645	const VkObjectEntryUsageFlagsNVX*	pObjectEntryUsageFlags;
2646	deUint32							maxUniformBuffersPerDescriptor;
2647	deUint32							maxStorageBuffersPerDescriptor;
2648	deUint32							maxStorageImagesPerDescriptor;
2649	deUint32							maxSampledImagesPerDescriptor;
2650	deUint32							maxPipelineLayouts;
2651};
2652
2653struct VkObjectTableEntryNVX
2654{
2655	VkObjectEntryTypeNVX		type;
2656	VkObjectEntryUsageFlagsNVX	flags;
2657};
2658
2659struct VkObjectTablePipelineEntryNVX
2660{
2661	VkObjectEntryTypeNVX		type;
2662	VkObjectEntryUsageFlagsNVX	flags;
2663	VkPipeline					pipeline;
2664};
2665
2666struct VkObjectTableDescriptorSetEntryNVX
2667{
2668	VkObjectEntryTypeNVX		type;
2669	VkObjectEntryUsageFlagsNVX	flags;
2670	VkPipelineLayout			pipelineLayout;
2671	VkDescriptorSet				descriptorSet;
2672};
2673
2674struct VkObjectTableVertexBufferEntryNVX
2675{
2676	VkObjectEntryTypeNVX		type;
2677	VkObjectEntryUsageFlagsNVX	flags;
2678	VkBuffer					buffer;
2679};
2680
2681struct VkObjectTableIndexBufferEntryNVX
2682{
2683	VkObjectEntryTypeNVX		type;
2684	VkObjectEntryUsageFlagsNVX	flags;
2685	VkBuffer					buffer;
2686	VkIndexType					indexType;
2687};
2688
2689struct VkObjectTablePushConstantEntryNVX
2690{
2691	VkObjectEntryTypeNVX		type;
2692	VkObjectEntryUsageFlagsNVX	flags;
2693	VkPipelineLayout			pipelineLayout;
2694	VkShaderStageFlags			stageFlags;
2695};
2696
2697struct VkViewportWScalingNV
2698{
2699	float	xcoeff;
2700	float	ycoeff;
2701};
2702
2703struct VkPipelineViewportWScalingStateCreateInfoNV
2704{
2705	VkStructureType				sType;
2706	const void*					pNext;
2707	VkBool32					viewportWScalingEnable;
2708	deUint32					viewportCount;
2709	const VkViewportWScalingNV*	pViewportWScalings;
2710};
2711
2712struct VkSurfaceCapabilities2EXT
2713{
2714	VkStructureType					sType;
2715	void*							pNext;
2716	deUint32						minImageCount;
2717	deUint32						maxImageCount;
2718	VkExtent2D						currentExtent;
2719	VkExtent2D						minImageExtent;
2720	VkExtent2D						maxImageExtent;
2721	deUint32						maxImageArrayLayers;
2722	VkSurfaceTransformFlagsKHR		supportedTransforms;
2723	VkSurfaceTransformFlagBitsKHR	currentTransform;
2724	VkCompositeAlphaFlagsKHR		supportedCompositeAlpha;
2725	VkImageUsageFlags				supportedUsageFlags;
2726	VkSurfaceCounterFlagsEXT		supportedSurfaceCounters;
2727};
2728
2729struct VkDisplayPowerInfoEXT
2730{
2731	VkStructureType			sType;
2732	const void*				pNext;
2733	VkDisplayPowerStateEXT	powerState;
2734};
2735
2736struct VkDeviceEventInfoEXT
2737{
2738	VkStructureType			sType;
2739	const void*				pNext;
2740	VkDeviceEventTypeEXT	deviceEvent;
2741};
2742
2743struct VkDisplayEventInfoEXT
2744{
2745	VkStructureType			sType;
2746	const void*				pNext;
2747	VkDisplayEventTypeEXT	displayEvent;
2748};
2749
2750struct VkSwapchainCounterCreateInfoEXT
2751{
2752	VkStructureType				sType;
2753	const void*					pNext;
2754	VkSurfaceCounterFlagsEXT	surfaceCounters;
2755};
2756
2757struct VkRefreshCycleDurationGOOGLE
2758{
2759	deUint64	refreshDuration;
2760};
2761
2762struct VkPastPresentationTimingGOOGLE
2763{
2764	deUint32	presentID;
2765	deUint64	desiredPresentTime;
2766	deUint64	actualPresentTime;
2767	deUint64	earliestPresentTime;
2768	deUint64	presentMargin;
2769};
2770
2771struct VkPresentTimeGOOGLE
2772{
2773	deUint32	presentID;
2774	deUint64	desiredPresentTime;
2775};
2776
2777struct VkPresentTimesInfoGOOGLE
2778{
2779	VkStructureType				sType;
2780	const void*					pNext;
2781	deUint32					swapchainCount;
2782	const VkPresentTimeGOOGLE*	pTimes;
2783};
2784
2785struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX
2786{
2787	VkStructureType	sType;
2788	void*			pNext;
2789	VkBool32		perViewPositionAllComponents;
2790};
2791
2792struct VkViewportSwizzleNV
2793{
2794	VkViewportCoordinateSwizzleNV	x;
2795	VkViewportCoordinateSwizzleNV	y;
2796	VkViewportCoordinateSwizzleNV	z;
2797	VkViewportCoordinateSwizzleNV	w;
2798};
2799
2800struct VkPipelineViewportSwizzleStateCreateInfoNV
2801{
2802	VkStructureType								sType;
2803	const void*									pNext;
2804	VkPipelineViewportSwizzleStateCreateFlagsNV	flags;
2805	deUint32									viewportCount;
2806	const VkViewportSwizzleNV*					pViewportSwizzles;
2807};
2808
2809struct VkPhysicalDeviceDiscardRectanglePropertiesEXT
2810{
2811	VkStructureType	sType;
2812	void*			pNext;
2813	deUint32		maxDiscardRectangles;
2814};
2815
2816struct VkPipelineDiscardRectangleStateCreateInfoEXT
2817{
2818	VkStructureType									sType;
2819	const void*										pNext;
2820	VkPipelineDiscardRectangleStateCreateFlagsEXT	flags;
2821	VkDiscardRectangleModeEXT						discardRectangleMode;
2822	deUint32										discardRectangleCount;
2823	const VkRect2D*									pDiscardRectangles;
2824};
2825
2826struct VkXYColorEXT
2827{
2828	float	x;
2829	float	y;
2830};
2831
2832struct VkHdrMetadataEXT
2833{
2834	VkStructureType	sType;
2835	const void*		pNext;
2836	VkXYColorEXT	displayPrimaryRed;
2837	VkXYColorEXT	displayPrimaryGreen;
2838	VkXYColorEXT	displayPrimaryBlue;
2839	VkXYColorEXT	whitePoint;
2840	float			maxLuminance;
2841	float			minLuminance;
2842	float			maxContentLightLevel;
2843	float			maxFrameAverageLightLevel;
2844};
2845
2846struct VkIOSSurfaceCreateInfoMVK
2847{
2848	VkStructureType				sType;
2849	const void*					pNext;
2850	VkIOSSurfaceCreateFlagsMVK	flags;
2851	const void*					pView;
2852};
2853
2854struct VkMacOSSurfaceCreateInfoMVK
2855{
2856	VkStructureType					sType;
2857	const void*						pNext;
2858	VkMacOSSurfaceCreateFlagsMVK	flags;
2859	const void*						pView;
2860};
2861
2862struct VkSamplerReductionModeCreateInfoEXT
2863{
2864	VkStructureType				sType;
2865	const void*					pNext;
2866	VkSamplerReductionModeEXT	reductionMode;
2867};
2868
2869struct VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT
2870{
2871	VkStructureType	sType;
2872	void*			pNext;
2873	VkBool32		filterMinmaxSingleComponentFormats;
2874	VkBool32		filterMinmaxImageComponentMapping;
2875};
2876
2877struct VkSampleLocationEXT
2878{
2879	float	x;
2880	float	y;
2881};
2882
2883struct VkSampleLocationsInfoEXT
2884{
2885	VkStructureType				sType;
2886	const void*					pNext;
2887	VkSampleCountFlagBits		sampleLocationsPerPixel;
2888	VkExtent2D					sampleLocationGridSize;
2889	deUint32					sampleLocationsCount;
2890	const VkSampleLocationEXT*	pSampleLocations;
2891};
2892
2893struct VkAttachmentSampleLocationsEXT
2894{
2895	deUint32					attachmentIndex;
2896	VkSampleLocationsInfoEXT	sampleLocationsInfo;
2897};
2898
2899struct VkSubpassSampleLocationsEXT
2900{
2901	deUint32					subpassIndex;
2902	VkSampleLocationsInfoEXT	sampleLocationsInfo;
2903};
2904
2905struct VkRenderPassSampleLocationsBeginInfoEXT
2906{
2907	VkStructureType							sType;
2908	const void*								pNext;
2909	deUint32								attachmentInitialSampleLocationsCount;
2910	const VkAttachmentSampleLocationsEXT*	pAttachmentInitialSampleLocations;
2911	deUint32								postSubpassSampleLocationsCount;
2912	const VkSubpassSampleLocationsEXT*		pSubpassSampleLocations;
2913};
2914
2915struct VkPipelineSampleLocationsStateCreateInfoEXT
2916{
2917	VkStructureType				sType;
2918	const void*					pNext;
2919	VkBool32					sampleLocationsEnable;
2920	VkSampleLocationsInfoEXT	sampleLocationsInfo;
2921};
2922
2923struct VkPhysicalDeviceSampleLocationsPropertiesEXT
2924{
2925	VkStructureType		sType;
2926	void*				pNext;
2927	VkSampleCountFlags	sampleLocationSampleCounts;
2928	VkExtent2D			maxSampleLocationGridSize;
2929	float				sampleLocationCoordinateRange[2];
2930	deUint32			sampleLocationSubPixelBits;
2931	VkBool32			variableSampleLocations;
2932};
2933
2934struct VkMultisamplePropertiesEXT
2935{
2936	VkStructureType	sType;
2937	void*			pNext;
2938	VkExtent2D		maxSampleLocationGridSize;
2939};
2940
2941struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT
2942{
2943	VkStructureType	sType;
2944	void*			pNext;
2945	VkBool32		advancedBlendCoherentOperations;
2946};
2947
2948struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT
2949{
2950	VkStructureType	sType;
2951	void*			pNext;
2952	deUint32		advancedBlendMaxColorAttachments;
2953	VkBool32		advancedBlendIndependentBlend;
2954	VkBool32		advancedBlendNonPremultipliedSrcColor;
2955	VkBool32		advancedBlendNonPremultipliedDstColor;
2956	VkBool32		advancedBlendCorrelatedOverlap;
2957	VkBool32		advancedBlendAllOperations;
2958};
2959
2960struct VkPipelineColorBlendAdvancedStateCreateInfoEXT
2961{
2962	VkStructureType		sType;
2963	const void*			pNext;
2964	VkBool32			srcPremultiplied;
2965	VkBool32			dstPremultiplied;
2966	VkBlendOverlapEXT	blendOverlap;
2967};
2968
2969struct VkPipelineCoverageToColorStateCreateInfoNV
2970{
2971	VkStructureType								sType;
2972	const void*									pNext;
2973	VkPipelineCoverageToColorStateCreateFlagsNV	flags;
2974	VkBool32									coverageToColorEnable;
2975	deUint32									coverageToColorLocation;
2976};
2977
2978struct VkPipelineCoverageModulationStateCreateInfoNV
2979{
2980	VkStructureType									sType;
2981	const void*										pNext;
2982	VkPipelineCoverageModulationStateCreateFlagsNV	flags;
2983	VkCoverageModulationModeNV						coverageModulationMode;
2984	VkBool32										coverageModulationTableEnable;
2985	deUint32										coverageModulationTableCount;
2986	const float*									pCoverageModulationTable;
2987};
2988
2989struct VkValidationCacheCreateInfoEXT
2990{
2991	VkStructureType					sType;
2992	const void*						pNext;
2993	VkValidationCacheCreateFlagsEXT	flags;
2994	deUintptr						initialDataSize;
2995	const void*						pInitialData;
2996};
2997
2998struct VkShaderModuleValidationCacheCreateInfoEXT
2999{
3000	VkStructureType			sType;
3001	const void*				pNext;
3002	VkValidationCacheEXT	validationCache;
3003};
3004
3005struct VkAndroidHardwareBufferUsageANDROID
3006{
3007	VkStructureType	sType;
3008	void*			pNext;
3009	deUint64		androidHardwareBufferUsage;
3010};
3011
3012struct VkAndroidHardwareBufferPropertiesANDROID
3013{
3014	VkStructureType	sType;
3015	void*			pNext;
3016	VkDeviceSize	allocationSize;
3017	deUint32		memoryTypeBits;
3018};
3019
3020struct VkAndroidHardwareBufferFormatPropertiesANDROID
3021{
3022	VkStructureType					sType;
3023	void*							pNext;
3024	VkFormat						format;
3025	deUint64						externalFormat;
3026	VkFormatFeatureFlags			formatFeatures;
3027	VkComponentMapping				samplerYcbcrConversionComponents;
3028	VkSamplerYcbcrModelConversion	suggestedYcbcrModel;
3029	VkSamplerYcbcrRange				suggestedYcbcrRange;
3030	VkChromaLocation				suggestedXChromaOffset;
3031	VkChromaLocation				suggestedYChromaOffset;
3032};
3033
3034struct VkImportAndroidHardwareBufferInfoANDROID
3035{
3036	VkStructureType						sType;
3037	const void*							pNext;
3038	struct pt::AndroidHardwareBufferPtr	buffer;
3039};
3040
3041struct VkMemoryGetAndroidHardwareBufferInfoANDROID
3042{
3043	VkStructureType	sType;
3044	void*			pNext;
3045	VkDeviceMemory	memory;
3046};
3047
3048struct VkExternalFormatANDROID
3049{
3050	VkStructureType	sType;
3051	void*			pNext;
3052	deUint64		externalFormat;
3053};
3054
3055struct VkImportMemoryHostPointerInfoEXT
3056{
3057	VkStructureType						sType;
3058	const void*							pNext;
3059	VkExternalMemoryHandleTypeFlagBits	handleType;
3060	void*								pHostPointer;
3061};
3062
3063struct VkMemoryHostPointerPropertiesEXT
3064{
3065	VkStructureType	sType;
3066	void*			pNext;
3067	deUint32		memoryTypeBits;
3068};
3069
3070struct VkPhysicalDeviceExternalMemoryHostPropertiesEXT
3071{
3072	VkStructureType	sType;
3073	void*			pNext;
3074	VkDeviceSize	minImportedHostPointerAlignment;
3075};
3076
3077struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT
3078{
3079	VkStructureType	sType;
3080	void*			pNext;
3081	deUint32		maxVertexAttribDivisor;
3082};
3083
3084struct VkVertexInputBindingDivisorDescriptionEXT
3085{
3086	deUint32	binding;
3087	deUint32	divisor;
3088};
3089
3090struct VkPipelineVertexInputDivisorStateCreateInfoEXT
3091{
3092	VkStructureType										sType;
3093	const void*											pNext;
3094	deUint32											vertexBindingDivisorCount;
3095	const VkVertexInputBindingDivisorDescriptionEXT*	pVertexBindingDivisors;
3096};
3097
3098struct VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT
3099{
3100	VkStructureType	sType;
3101	void*			pNext;
3102	VkBool32		vertexAttributeInstanceRateDivisor;
3103	VkBool32		vertexAttributeInstanceRateZeroDivisor;
3104};
3105
3106struct VkDescriptorSetLayoutBindingFlagsCreateInfoEXT
3107{
3108	VkStructureType						sType;
3109	const void*							pNext;
3110	deUint32							bindingCount;
3111	const VkDescriptorBindingFlagsEXT*	pBindingFlags;
3112};
3113
3114struct VkPhysicalDeviceDescriptorIndexingFeaturesEXT
3115{
3116	VkStructureType	sType;
3117	void*			pNext;
3118	VkBool32		shaderInputAttachmentArrayDynamicIndexing;
3119	VkBool32		shaderUniformTexelBufferArrayDynamicIndexing;
3120	VkBool32		shaderStorageTexelBufferArrayDynamicIndexing;
3121	VkBool32		shaderUniformBufferArrayNonUniformIndexing;
3122	VkBool32		shaderSampledImageArrayNonUniformIndexing;
3123	VkBool32		shaderStorageBufferArrayNonUniformIndexing;
3124	VkBool32		shaderStorageImageArrayNonUniformIndexing;
3125	VkBool32		shaderInputAttachmentArrayNonUniformIndexing;
3126	VkBool32		shaderUniformTexelBufferArrayNonUniformIndexing;
3127	VkBool32		shaderStorageTexelBufferArrayNonUniformIndexing;
3128	VkBool32		descriptorBindingUniformBufferUpdateAfterBind;
3129	VkBool32		descriptorBindingSampledImageUpdateAfterBind;
3130	VkBool32		descriptorBindingStorageImageUpdateAfterBind;
3131	VkBool32		descriptorBindingStorageBufferUpdateAfterBind;
3132	VkBool32		descriptorBindingUniformTexelBufferUpdateAfterBind;
3133	VkBool32		descriptorBindingStorageTexelBufferUpdateAfterBind;
3134	VkBool32		descriptorBindingUpdateUnusedWhilePending;
3135	VkBool32		descriptorBindingPartiallyBound;
3136	VkBool32		descriptorBindingVariableDescriptorCount;
3137	VkBool32		runtimeDescriptorArray;
3138};
3139
3140struct VkPhysicalDeviceDescriptorIndexingPropertiesEXT
3141{
3142	VkStructureType	sType;
3143	void*			pNext;
3144	deUint32		maxUpdateAfterBindDescriptorsInAllPools;
3145	VkBool32		shaderUniformBufferArrayNonUniformIndexingNative;
3146	VkBool32		shaderSampledImageArrayNonUniformIndexingNative;
3147	VkBool32		shaderStorageBufferArrayNonUniformIndexingNative;
3148	VkBool32		shaderStorageImageArrayNonUniformIndexingNative;
3149	VkBool32		shaderInputAttachmentArrayNonUniformIndexingNative;
3150	VkBool32		robustBufferAccessUpdateAfterBind;
3151	VkBool32		quadDivergentImplicitLod;
3152	deUint32		maxPerStageDescriptorUpdateAfterBindSamplers;
3153	deUint32		maxPerStageDescriptorUpdateAfterBindUniformBuffers;
3154	deUint32		maxPerStageDescriptorUpdateAfterBindStorageBuffers;
3155	deUint32		maxPerStageDescriptorUpdateAfterBindSampledImages;
3156	deUint32		maxPerStageDescriptorUpdateAfterBindStorageImages;
3157	deUint32		maxPerStageDescriptorUpdateAfterBindInputAttachments;
3158	deUint32		maxPerStageUpdateAfterBindResources;
3159	deUint32		maxDescriptorSetUpdateAfterBindSamplers;
3160	deUint32		maxDescriptorSetUpdateAfterBindUniformBuffers;
3161	deUint32		maxDescriptorSetUpdateAfterBindUniformBuffersDynamic;
3162	deUint32		maxDescriptorSetUpdateAfterBindStorageBuffers;
3163	deUint32		maxDescriptorSetUpdateAfterBindStorageBuffersDynamic;
3164	deUint32		maxDescriptorSetUpdateAfterBindSampledImages;
3165	deUint32		maxDescriptorSetUpdateAfterBindStorageImages;
3166	deUint32		maxDescriptorSetUpdateAfterBindInputAttachments;
3167};
3168
3169struct VkDescriptorSetVariableDescriptorCountAllocateInfoEXT
3170{
3171	VkStructureType	sType;
3172	const void*		pNext;
3173	deUint32		descriptorSetCount;
3174	const deUint32*	pDescriptorCounts;
3175};
3176
3177struct VkDescriptorSetVariableDescriptorCountLayoutSupportEXT
3178{
3179	VkStructureType	sType;
3180	void*			pNext;
3181	deUint32		maxVariableDescriptorCount;
3182};
3183
3184struct VkPhysicalDeviceInlineUniformBlockFeaturesEXT
3185{
3186	VkStructureType	sType;
3187	void*			pNext;
3188	VkBool32		inlineUniformBlock;
3189	VkBool32		descriptorBindingInlineUniformBlockUpdateAfterBind;
3190};
3191
3192struct VkPhysicalDeviceInlineUniformBlockPropertiesEXT
3193{
3194	VkStructureType	sType;
3195	void*			pNext;
3196	deUint32		maxInlineUniformBlockSize;
3197	deUint32		maxPerStageDescriptorInlineUniformBlocks;
3198	deUint32		maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks;
3199	deUint32		maxDescriptorSetInlineUniformBlocks;
3200	deUint32		maxDescriptorSetUpdateAfterBindInlineUniformBlocks;
3201};
3202
3203struct VkWriteDescriptorSetInlineUniformBlockEXT
3204{
3205	VkStructureType	sType;
3206	const void*		pNext;
3207	deUint32		dataSize;
3208	const void*		pData;
3209};
3210
3211struct VkDescriptorPoolInlineUniformBlockCreateInfoEXT
3212{
3213	VkStructureType	sType;
3214	const void*		pNext;
3215	deUint32		maxInlineUniformBlockBindings;
3216};
3217
3218struct VkPhysicalDeviceShaderAtomicInt64FeaturesKHR
3219{
3220	VkStructureType	sType;
3221	void*			pNext;
3222	VkBool32		shaderBufferInt64Atomics;
3223	VkBool32		shaderSharedInt64Atomics;
3224};
3225
3226struct VkPhysicalDeviceVulkanMemoryModelFeaturesKHR
3227{
3228	VkStructureType	sType;
3229	void*			pNext;
3230	VkBool32		vulkanMemoryModel;
3231	VkBool32		vulkanMemoryModelDeviceScope;
3232	VkBool32		vulkanMemoryModelAvailabilityVisibilityChains;
3233};
3234
3235struct VkPhysicalDeviceScalarBlockLayoutFeaturesEXT
3236{
3237	VkStructureType	sType;
3238	void*			pNext;
3239	VkBool32		scalarBlockLayout;
3240};
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304