• 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
6
7inline VkOffset2D makeOffset2D (int32_t x, int32_t y)
8{
9	VkOffset2D res;
10	res.x	= x;
11	res.y	= y;
12	return res;
13}
14
15inline VkOffset3D makeOffset3D (int32_t x, int32_t y, int32_t z)
16{
17	VkOffset3D res;
18	res.x	= x;
19	res.y	= y;
20	res.z	= z;
21	return res;
22}
23
24inline VkExtent2D makeExtent2D (uint32_t width, uint32_t height)
25{
26	VkExtent2D res;
27	res.width	= width;
28	res.height	= height;
29	return res;
30}
31
32inline VkExtent3D makeExtent3D (uint32_t width, uint32_t height, uint32_t depth)
33{
34	VkExtent3D res;
35	res.width	= width;
36	res.height	= height;
37	res.depth	= depth;
38	return res;
39}
40
41inline VkViewport makeViewport (float x, float y, float width, float height, float minDepth, float maxDepth)
42{
43	VkViewport res;
44	res.x			= x;
45	res.y			= y;
46	res.width		= width;
47	res.height		= height;
48	res.minDepth	= minDepth;
49	res.maxDepth	= maxDepth;
50	return res;
51}
52
53inline VkComponentMapping makeComponentMapping (VkComponentSwizzle r, VkComponentSwizzle g, VkComponentSwizzle b, VkComponentSwizzle a)
54{
55	VkComponentMapping res;
56	res.r	= r;
57	res.g	= g;
58	res.b	= b;
59	res.a	= a;
60	return res;
61}
62
63inline VkAllocationCallbacks makeAllocationCallbacks (void* pUserData, PFN_vkAllocationFunction pfnAllocation, PFN_vkReallocationFunction pfnReallocation, PFN_vkFreeFunction pfnFree, PFN_vkInternalAllocationNotification pfnInternalAllocation, PFN_vkInternalFreeNotification pfnInternalFree)
64{
65	VkAllocationCallbacks res;
66	res.pUserData				= pUserData;
67	res.pfnAllocation			= pfnAllocation;
68	res.pfnReallocation			= pfnReallocation;
69	res.pfnFree					= pfnFree;
70	res.pfnInternalAllocation	= pfnInternalAllocation;
71	res.pfnInternalFree			= pfnInternalFree;
72	return res;
73}
74
75inline VkMemoryRequirements makeMemoryRequirements (VkDeviceSize size, VkDeviceSize alignment, uint32_t memoryTypeBits)
76{
77	VkMemoryRequirements res;
78	res.size			= size;
79	res.alignment		= alignment;
80	res.memoryTypeBits	= memoryTypeBits;
81	return res;
82}
83
84inline VkDescriptorBufferInfo makeDescriptorBufferInfo (VkBuffer buffer, VkDeviceSize offset, VkDeviceSize range)
85{
86	VkDescriptorBufferInfo res;
87	res.buffer	= buffer;
88	res.offset	= offset;
89	res.range	= range;
90	return res;
91}
92
93inline VkDescriptorImageInfo makeDescriptorImageInfo (VkSampler sampler, VkImageView imageView, VkImageLayout imageLayout)
94{
95	VkDescriptorImageInfo res;
96	res.sampler		= sampler;
97	res.imageView	= imageView;
98	res.imageLayout	= imageLayout;
99	return res;
100}
101
102inline VkImageSubresource makeImageSubresource (VkImageAspectFlags aspectMask, uint32_t mipLevel, uint32_t arrayLayer)
103{
104	VkImageSubresource res;
105	res.aspectMask	= aspectMask;
106	res.mipLevel	= mipLevel;
107	res.arrayLayer	= arrayLayer;
108	return res;
109}
110
111inline VkImageSubresourceLayers makeImageSubresourceLayers (VkImageAspectFlags aspectMask, uint32_t mipLevel, uint32_t baseArrayLayer, uint32_t layerCount)
112{
113	VkImageSubresourceLayers res;
114	res.aspectMask		= aspectMask;
115	res.mipLevel		= mipLevel;
116	res.baseArrayLayer	= baseArrayLayer;
117	res.layerCount		= layerCount;
118	return res;
119}
120
121inline VkImageSubresourceRange makeImageSubresourceRange (VkImageAspectFlags aspectMask, uint32_t baseMipLevel, uint32_t levelCount, uint32_t baseArrayLayer, uint32_t layerCount)
122{
123	VkImageSubresourceRange res;
124	res.aspectMask		= aspectMask;
125	res.baseMipLevel	= baseMipLevel;
126	res.levelCount		= levelCount;
127	res.baseArrayLayer	= baseArrayLayer;
128	res.layerCount		= layerCount;
129	return res;
130}
131
132inline VkSubresourceLayout makeSubresourceLayout (VkDeviceSize offset, VkDeviceSize size, VkDeviceSize rowPitch, VkDeviceSize arrayPitch, VkDeviceSize depthPitch)
133{
134	VkSubresourceLayout res;
135	res.offset		= offset;
136	res.size		= size;
137	res.rowPitch	= rowPitch;
138	res.arrayPitch	= arrayPitch;
139	res.depthPitch	= depthPitch;
140	return res;
141}
142
143inline VkBufferCopy makeBufferCopy (VkDeviceSize srcOffset, VkDeviceSize dstOffset, VkDeviceSize size)
144{
145	VkBufferCopy res;
146	res.srcOffset	= srcOffset;
147	res.dstOffset	= dstOffset;
148	res.size		= size;
149	return res;
150}
151
152inline VkSparseMemoryBind makeSparseMemoryBind (VkDeviceSize resourceOffset, VkDeviceSize size, VkDeviceMemory memory, VkDeviceSize memoryOffset, VkSparseMemoryBindFlags flags)
153{
154	VkSparseMemoryBind res;
155	res.resourceOffset	= resourceOffset;
156	res.size			= size;
157	res.memory			= memory;
158	res.memoryOffset	= memoryOffset;
159	res.flags			= flags;
160	return res;
161}
162
163inline VkSparseBufferMemoryBindInfo makeSparseBufferMemoryBindInfo (VkBuffer buffer, uint32_t bindCount, const VkSparseMemoryBind* pBinds)
164{
165	VkSparseBufferMemoryBindInfo res;
166	res.buffer		= buffer;
167	res.bindCount	= bindCount;
168	res.pBinds		= pBinds;
169	return res;
170}
171
172inline VkSparseImageOpaqueMemoryBindInfo makeSparseImageOpaqueMemoryBindInfo (VkImage image, uint32_t bindCount, const VkSparseMemoryBind* pBinds)
173{
174	VkSparseImageOpaqueMemoryBindInfo res;
175	res.image		= image;
176	res.bindCount	= bindCount;
177	res.pBinds		= pBinds;
178	return res;
179}
180
181inline VkSparseImageMemoryBindInfo makeSparseImageMemoryBindInfo (VkImage image, uint32_t bindCount, const VkSparseImageMemoryBind* pBinds)
182{
183	VkSparseImageMemoryBindInfo res;
184	res.image		= image;
185	res.bindCount	= bindCount;
186	res.pBinds		= pBinds;
187	return res;
188}
189
190inline VkCopyMemoryIndirectCommandNV makeCopyMemoryIndirectCommandNV (VkDeviceAddress srcAddress, VkDeviceAddress dstAddress, VkDeviceSize size)
191{
192	VkCopyMemoryIndirectCommandNV res;
193	res.srcAddress	= srcAddress;
194	res.dstAddress	= dstAddress;
195	res.size		= size;
196	return res;
197}
198
199inline VkDescriptorSetLayoutBinding makeDescriptorSetLayoutBinding (uint32_t binding, VkDescriptorType descriptorType, uint32_t descriptorCount, VkShaderStageFlags stageFlags, const VkSampler* pImmutableSamplers)
200{
201	VkDescriptorSetLayoutBinding res;
202	res.binding				= binding;
203	res.descriptorType		= descriptorType;
204	res.descriptorCount		= descriptorCount;
205	res.stageFlags			= stageFlags;
206	res.pImmutableSamplers	= pImmutableSamplers;
207	return res;
208}
209
210inline VkDescriptorPoolSize makeDescriptorPoolSize (VkDescriptorType type, uint32_t descriptorCount)
211{
212	VkDescriptorPoolSize res;
213	res.type			= type;
214	res.descriptorCount	= descriptorCount;
215	return res;
216}
217
218inline VkSpecializationMapEntry makeSpecializationMapEntry (uint32_t constantID, uint32_t offset, size_t size)
219{
220	VkSpecializationMapEntry res;
221	res.constantID	= constantID;
222	res.offset		= offset;
223	res.size		= size;
224	return res;
225}
226
227inline VkSpecializationInfo makeSpecializationInfo (uint32_t mapEntryCount, const VkSpecializationMapEntry* pMapEntries, size_t dataSize, const void* pData)
228{
229	VkSpecializationInfo res;
230	res.mapEntryCount	= mapEntryCount;
231	res.pMapEntries		= pMapEntries;
232	res.dataSize		= dataSize;
233	res.pData			= pData;
234	return res;
235}
236
237inline VkVertexInputBindingDescription makeVertexInputBindingDescription (uint32_t binding, uint32_t stride, VkVertexInputRate inputRate)
238{
239	VkVertexInputBindingDescription res;
240	res.binding		= binding;
241	res.stride		= stride;
242	res.inputRate	= inputRate;
243	return res;
244}
245
246inline VkVertexInputAttributeDescription makeVertexInputAttributeDescription (uint32_t location, uint32_t binding, VkFormat format, uint32_t offset)
247{
248	VkVertexInputAttributeDescription res;
249	res.location	= location;
250	res.binding		= binding;
251	res.format		= format;
252	res.offset		= offset;
253	return res;
254}
255
256inline VkPipelineColorBlendAttachmentState makePipelineColorBlendAttachmentState (VkBool32 blendEnable, VkBlendFactor srcColorBlendFactor, VkBlendFactor dstColorBlendFactor, VkBlendOp colorBlendOp, VkBlendFactor srcAlphaBlendFactor, VkBlendFactor dstAlphaBlendFactor, VkBlendOp alphaBlendOp, VkColorComponentFlags colorWriteMask)
257{
258	VkPipelineColorBlendAttachmentState res;
259	res.blendEnable			= blendEnable;
260	res.srcColorBlendFactor	= srcColorBlendFactor;
261	res.dstColorBlendFactor	= dstColorBlendFactor;
262	res.colorBlendOp		= colorBlendOp;
263	res.srcAlphaBlendFactor	= srcAlphaBlendFactor;
264	res.dstAlphaBlendFactor	= dstAlphaBlendFactor;
265	res.alphaBlendOp		= alphaBlendOp;
266	res.colorWriteMask		= colorWriteMask;
267	return res;
268}
269
270inline VkStencilOpState makeStencilOpState (VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp, uint32_t compareMask, uint32_t writeMask, uint32_t reference)
271{
272	VkStencilOpState res;
273	res.failOp		= failOp;
274	res.passOp		= passOp;
275	res.depthFailOp	= depthFailOp;
276	res.compareOp	= compareOp;
277	res.compareMask	= compareMask;
278	res.writeMask	= writeMask;
279	res.reference	= reference;
280	return res;
281}
282
283inline VkPushConstantRange makePushConstantRange (VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size)
284{
285	VkPushConstantRange res;
286	res.stageFlags	= stageFlags;
287	res.offset		= offset;
288	res.size		= size;
289	return res;
290}
291
292inline VkPipelineBinaryDataKHR makePipelineBinaryDataKHR (size_t dataSize, void* pData)
293{
294	VkPipelineBinaryDataKHR res;
295	res.dataSize	= dataSize;
296	res.pData		= pData;
297	return res;
298}
299
300inline VkPipelineBinaryKeysAndDataKHR makePipelineBinaryKeysAndDataKHR (uint32_t binaryCount, const VkPipelineBinaryKeyKHR* pPipelineBinaryKeys, const VkPipelineBinaryDataKHR* pPipelineBinaryData)
301{
302	VkPipelineBinaryKeysAndDataKHR res;
303	res.binaryCount			= binaryCount;
304	res.pPipelineBinaryKeys	= pPipelineBinaryKeys;
305	res.pPipelineBinaryData	= pPipelineBinaryData;
306	return res;
307}
308
309inline VkClearDepthStencilValue makeClearDepthStencilValue (float depth, uint32_t stencil)
310{
311	VkClearDepthStencilValue res;
312	res.depth	= depth;
313	res.stencil	= stencil;
314	return res;
315}
316
317inline VkAttachmentDescription makeAttachmentDescription (VkAttachmentDescriptionFlags flags, VkFormat format, VkSampleCountFlagBits samples, VkAttachmentLoadOp loadOp, VkAttachmentStoreOp storeOp, VkAttachmentLoadOp stencilLoadOp, VkAttachmentStoreOp stencilStoreOp, VkImageLayout initialLayout, VkImageLayout finalLayout)
318{
319	VkAttachmentDescription res;
320	res.flags			= flags;
321	res.format			= format;
322	res.samples			= samples;
323	res.loadOp			= loadOp;
324	res.storeOp			= storeOp;
325	res.stencilLoadOp	= stencilLoadOp;
326	res.stencilStoreOp	= stencilStoreOp;
327	res.initialLayout	= initialLayout;
328	res.finalLayout		= finalLayout;
329	return res;
330}
331
332inline VkAttachmentReference makeAttachmentReference (uint32_t attachment, VkImageLayout layout)
333{
334	VkAttachmentReference res;
335	res.attachment	= attachment;
336	res.layout		= layout;
337	return res;
338}
339
340inline VkSubpassDescription makeSubpassDescription (VkSubpassDescriptionFlags flags, VkPipelineBindPoint pipelineBindPoint, uint32_t inputAttachmentCount, const VkAttachmentReference* pInputAttachments, uint32_t colorAttachmentCount, const VkAttachmentReference* pColorAttachments, const VkAttachmentReference* pResolveAttachments, const VkAttachmentReference* pDepthStencilAttachment, uint32_t preserveAttachmentCount, const uint32_t* pPreserveAttachments)
341{
342	VkSubpassDescription res;
343	res.flags					= flags;
344	res.pipelineBindPoint		= pipelineBindPoint;
345	res.inputAttachmentCount	= inputAttachmentCount;
346	res.pInputAttachments		= pInputAttachments;
347	res.colorAttachmentCount	= colorAttachmentCount;
348	res.pColorAttachments		= pColorAttachments;
349	res.pResolveAttachments		= pResolveAttachments;
350	res.pDepthStencilAttachment	= pDepthStencilAttachment;
351	res.preserveAttachmentCount	= preserveAttachmentCount;
352	res.pPreserveAttachments	= pPreserveAttachments;
353	return res;
354}
355
356inline VkSubpassDependency makeSubpassDependency (uint32_t srcSubpass, uint32_t dstSubpass, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkAccessFlags srcAccessMask, VkAccessFlags dstAccessMask, VkDependencyFlags dependencyFlags)
357{
358	VkSubpassDependency res;
359	res.srcSubpass		= srcSubpass;
360	res.dstSubpass		= dstSubpass;
361	res.srcStageMask	= srcStageMask;
362	res.dstStageMask	= dstStageMask;
363	res.srcAccessMask	= srcAccessMask;
364	res.dstAccessMask	= dstAccessMask;
365	res.dependencyFlags	= dependencyFlags;
366	return res;
367}
368
369inline VkDrawIndirectCommand makeDrawIndirectCommand (uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance)
370{
371	VkDrawIndirectCommand res;
372	res.vertexCount		= vertexCount;
373	res.instanceCount	= instanceCount;
374	res.firstVertex		= firstVertex;
375	res.firstInstance	= firstInstance;
376	return res;
377}
378
379inline VkDrawIndexedIndirectCommand makeDrawIndexedIndirectCommand (uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance)
380{
381	VkDrawIndexedIndirectCommand res;
382	res.indexCount		= indexCount;
383	res.instanceCount	= instanceCount;
384	res.firstIndex		= firstIndex;
385	res.vertexOffset	= vertexOffset;
386	res.firstInstance	= firstInstance;
387	return res;
388}
389
390inline VkDispatchIndirectCommand makeDispatchIndirectCommand (uint32_t x, uint32_t y, uint32_t z)
391{
392	VkDispatchIndirectCommand res;
393	res.x	= x;
394	res.y	= y;
395	res.z	= z;
396	return res;
397}
398
399inline VkMultiDrawInfoEXT makeMultiDrawInfoEXT (uint32_t firstVertex, uint32_t vertexCount)
400{
401	VkMultiDrawInfoEXT res;
402	res.firstVertex	= firstVertex;
403	res.vertexCount	= vertexCount;
404	return res;
405}
406
407inline VkMultiDrawIndexedInfoEXT makeMultiDrawIndexedInfoEXT (uint32_t firstIndex, uint32_t indexCount, int32_t vertexOffset)
408{
409	VkMultiDrawIndexedInfoEXT res;
410	res.firstIndex		= firstIndex;
411	res.indexCount		= indexCount;
412	res.vertexOffset	= vertexOffset;
413	return res;
414}
415
416inline VkDisplayPlanePropertiesKHR makeDisplayPlanePropertiesKHR (VkDisplayKHR currentDisplay, uint32_t currentStackIndex)
417{
418	VkDisplayPlanePropertiesKHR res;
419	res.currentDisplay		= currentDisplay;
420	res.currentStackIndex	= currentStackIndex;
421	return res;
422}
423
424inline VkSurfaceFormatKHR makeSurfaceFormatKHR (VkFormat format, VkColorSpaceKHR colorSpace)
425{
426	VkSurfaceFormatKHR res;
427	res.format		= format;
428	res.colorSpace	= colorSpace;
429	return res;
430}
431
432inline VkLayerSettingEXT makeLayerSettingEXT (const char* pLayerName, const char* pSettingName, VkLayerSettingTypeEXT type, uint32_t valueCount, const void* pValues)
433{
434	VkLayerSettingEXT res;
435	res.pLayerName		= pLayerName;
436	res.pSettingName	= pSettingName;
437	res.type			= type;
438	res.valueCount		= valueCount;
439	res.pValues			= pValues;
440	return res;
441}
442
443inline VkBindShaderGroupIndirectCommandNV makeBindShaderGroupIndirectCommandNV (uint32_t groupIndex)
444{
445	VkBindShaderGroupIndirectCommandNV res;
446	res.groupIndex	= groupIndex;
447	return res;
448}
449
450inline VkBindIndexBufferIndirectCommandNV makeBindIndexBufferIndirectCommandNV (VkDeviceAddress bufferAddress, uint32_t size, VkIndexType indexType)
451{
452	VkBindIndexBufferIndirectCommandNV res;
453	res.bufferAddress	= bufferAddress;
454	res.size			= size;
455	res.indexType		= indexType;
456	return res;
457}
458
459inline VkBindVertexBufferIndirectCommandNV makeBindVertexBufferIndirectCommandNV (VkDeviceAddress bufferAddress, uint32_t size, uint32_t stride)
460{
461	VkBindVertexBufferIndirectCommandNV res;
462	res.bufferAddress	= bufferAddress;
463	res.size			= size;
464	res.stride			= stride;
465	return res;
466}
467
468inline VkSetStateFlagsIndirectCommandNV makeSetStateFlagsIndirectCommandNV (uint32_t data)
469{
470	VkSetStateFlagsIndirectCommandNV res;
471	res.data	= data;
472	return res;
473}
474
475inline VkIndirectCommandsStreamNV makeIndirectCommandsStreamNV (VkBuffer buffer, VkDeviceSize offset)
476{
477	VkIndirectCommandsStreamNV res;
478	res.buffer	= buffer;
479	res.offset	= offset;
480	return res;
481}
482
483inline VkBindPipelineIndirectCommandNV makeBindPipelineIndirectCommandNV (VkDeviceAddress pipelineAddress)
484{
485	VkBindPipelineIndirectCommandNV res;
486	res.pipelineAddress	= pipelineAddress;
487	return res;
488}
489
490inline VkConformanceVersion makeConformanceVersion (uint8_t major, uint8_t minor, uint8_t subminor, uint8_t patch)
491{
492	VkConformanceVersion res;
493	res.major		= major;
494	res.minor		= minor;
495	res.subminor	= subminor;
496	res.patch		= patch;
497	return res;
498}
499
500inline VkPresentRegionKHR makePresentRegionKHR (uint32_t rectangleCount, const VkRectLayerKHR* pRectangles)
501{
502	VkPresentRegionKHR res;
503	res.rectangleCount	= rectangleCount;
504	res.pRectangles		= pRectangles;
505	return res;
506}
507
508inline VkExternalMemoryProperties makeExternalMemoryProperties (VkExternalMemoryFeatureFlags externalMemoryFeatures, VkExternalMemoryHandleTypeFlags exportFromImportedHandleTypes, VkExternalMemoryHandleTypeFlags compatibleHandleTypes)
509{
510	VkExternalMemoryProperties res;
511	res.externalMemoryFeatures			= externalMemoryFeatures;
512	res.exportFromImportedHandleTypes	= exportFromImportedHandleTypes;
513	res.compatibleHandleTypes			= compatibleHandleTypes;
514	return res;
515}
516
517inline VkDescriptorUpdateTemplateEntry makeDescriptorUpdateTemplateEntry (uint32_t dstBinding, uint32_t dstArrayElement, uint32_t descriptorCount, VkDescriptorType descriptorType, size_t offset, size_t stride)
518{
519	VkDescriptorUpdateTemplateEntry res;
520	res.dstBinding		= dstBinding;
521	res.dstArrayElement	= dstArrayElement;
522	res.descriptorCount	= descriptorCount;
523	res.descriptorType	= descriptorType;
524	res.offset			= offset;
525	res.stride			= stride;
526	return res;
527}
528
529inline VkXYColorEXT makeXYColorEXT (float x, float y)
530{
531	VkXYColorEXT res;
532	res.x	= x;
533	res.y	= y;
534	return res;
535}
536
537inline VkRefreshCycleDurationGOOGLE makeRefreshCycleDurationGOOGLE (uint64_t refreshDuration)
538{
539	VkRefreshCycleDurationGOOGLE res;
540	res.refreshDuration	= refreshDuration;
541	return res;
542}
543
544inline VkPastPresentationTimingGOOGLE makePastPresentationTimingGOOGLE (uint32_t presentID, uint64_t desiredPresentTime, uint64_t actualPresentTime, uint64_t earliestPresentTime, uint64_t presentMargin)
545{
546	VkPastPresentationTimingGOOGLE res;
547	res.presentID			= presentID;
548	res.desiredPresentTime	= desiredPresentTime;
549	res.actualPresentTime	= actualPresentTime;
550	res.earliestPresentTime	= earliestPresentTime;
551	res.presentMargin		= presentMargin;
552	return res;
553}
554
555inline VkPresentTimeGOOGLE makePresentTimeGOOGLE (uint32_t presentID, uint64_t desiredPresentTime)
556{
557	VkPresentTimeGOOGLE res;
558	res.presentID			= presentID;
559	res.desiredPresentTime	= desiredPresentTime;
560	return res;
561}
562
563inline VkViewportWScalingNV makeViewportWScalingNV (float xcoeff, float ycoeff)
564{
565	VkViewportWScalingNV res;
566	res.xcoeff	= xcoeff;
567	res.ycoeff	= ycoeff;
568	return res;
569}
570
571inline VkViewportSwizzleNV makeViewportSwizzleNV (VkViewportCoordinateSwizzleNV x, VkViewportCoordinateSwizzleNV y, VkViewportCoordinateSwizzleNV z, VkViewportCoordinateSwizzleNV w)
572{
573	VkViewportSwizzleNV res;
574	res.x	= x;
575	res.y	= y;
576	res.z	= z;
577	res.w	= w;
578	return res;
579}
580
581inline VkInputAttachmentAspectReference makeInputAttachmentAspectReference (uint32_t subpass, uint32_t inputAttachmentIndex, VkImageAspectFlags aspectMask)
582{
583	VkInputAttachmentAspectReference res;
584	res.subpass					= subpass;
585	res.inputAttachmentIndex	= inputAttachmentIndex;
586	res.aspectMask				= aspectMask;
587	return res;
588}
589
590inline VkSampleLocationEXT makeSampleLocationEXT (float x, float y)
591{
592	VkSampleLocationEXT res;
593	res.x	= x;
594	res.y	= y;
595	return res;
596}
597
598inline VkShaderResourceUsageAMD makeShaderResourceUsageAMD (uint32_t numUsedVgprs, uint32_t numUsedSgprs, uint32_t ldsSizePerLocalWorkGroup, size_t ldsUsageSizeInBytes, size_t scratchMemUsageInBytes)
599{
600	VkShaderResourceUsageAMD res;
601	res.numUsedVgprs				= numUsedVgprs;
602	res.numUsedSgprs				= numUsedSgprs;
603	res.ldsSizePerLocalWorkGroup	= ldsSizePerLocalWorkGroup;
604	res.ldsUsageSizeInBytes			= ldsUsageSizeInBytes;
605	res.scratchMemUsageInBytes		= scratchMemUsageInBytes;
606	return res;
607}
608
609inline VkVertexInputBindingDivisorDescription makeVertexInputBindingDivisorDescription (uint32_t binding, uint32_t divisor)
610{
611	VkVertexInputBindingDivisorDescription res;
612	res.binding	= binding;
613	res.divisor	= divisor;
614	return res;
615}
616
617inline VkShadingRatePaletteNV makeShadingRatePaletteNV (uint32_t shadingRatePaletteEntryCount, const VkShadingRatePaletteEntryNV* pShadingRatePaletteEntries)
618{
619	VkShadingRatePaletteNV res;
620	res.shadingRatePaletteEntryCount	= shadingRatePaletteEntryCount;
621	res.pShadingRatePaletteEntries		= pShadingRatePaletteEntries;
622	return res;
623}
624
625inline VkCoarseSampleLocationNV makeCoarseSampleLocationNV (uint32_t pixelX, uint32_t pixelY, uint32_t sample)
626{
627	VkCoarseSampleLocationNV res;
628	res.pixelX	= pixelX;
629	res.pixelY	= pixelY;
630	res.sample	= sample;
631	return res;
632}
633
634inline VkCoarseSampleOrderCustomNV makeCoarseSampleOrderCustomNV (VkShadingRatePaletteEntryNV shadingRate, uint32_t sampleCount, uint32_t sampleLocationCount, const VkCoarseSampleLocationNV* pSampleLocations)
635{
636	VkCoarseSampleOrderCustomNV res;
637	res.shadingRate			= shadingRate;
638	res.sampleCount			= sampleCount;
639	res.sampleLocationCount	= sampleLocationCount;
640	res.pSampleLocations	= pSampleLocations;
641	return res;
642}
643
644inline VkDrawMeshTasksIndirectCommandNV makeDrawMeshTasksIndirectCommandNV (uint32_t taskCount, uint32_t firstTask)
645{
646	VkDrawMeshTasksIndirectCommandNV res;
647	res.taskCount	= taskCount;
648	res.firstTask	= firstTask;
649	return res;
650}
651
652inline VkDrawMeshTasksIndirectCommandEXT makeDrawMeshTasksIndirectCommandEXT (uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ)
653{
654	VkDrawMeshTasksIndirectCommandEXT res;
655	res.groupCountX	= groupCountX;
656	res.groupCountY	= groupCountY;
657	res.groupCountZ	= groupCountZ;
658	return res;
659}
660
661inline VkStridedDeviceAddressRegionKHR makeStridedDeviceAddressRegionKHR (VkDeviceAddress deviceAddress, VkDeviceSize stride, VkDeviceSize size)
662{
663	VkStridedDeviceAddressRegionKHR res;
664	res.deviceAddress	= deviceAddress;
665	res.stride			= stride;
666	res.size			= size;
667	return res;
668}
669
670inline VkTraceRaysIndirectCommandKHR makeTraceRaysIndirectCommandKHR (uint32_t width, uint32_t height, uint32_t depth)
671{
672	VkTraceRaysIndirectCommandKHR res;
673	res.width	= width;
674	res.height	= height;
675	res.depth	= depth;
676	return res;
677}
678
679inline VkTraceRaysIndirectCommand2KHR makeTraceRaysIndirectCommand2KHR (VkDeviceAddress raygenShaderRecordAddress, VkDeviceSize raygenShaderRecordSize, VkDeviceAddress missShaderBindingTableAddress, VkDeviceSize missShaderBindingTableSize, VkDeviceSize missShaderBindingTableStride, VkDeviceAddress hitShaderBindingTableAddress, VkDeviceSize hitShaderBindingTableSize, VkDeviceSize hitShaderBindingTableStride, VkDeviceAddress callableShaderBindingTableAddress, VkDeviceSize callableShaderBindingTableSize, VkDeviceSize callableShaderBindingTableStride, uint32_t width, uint32_t height, uint32_t depth)
680{
681	VkTraceRaysIndirectCommand2KHR res;
682	res.raygenShaderRecordAddress			= raygenShaderRecordAddress;
683	res.raygenShaderRecordSize				= raygenShaderRecordSize;
684	res.missShaderBindingTableAddress		= missShaderBindingTableAddress;
685	res.missShaderBindingTableSize			= missShaderBindingTableSize;
686	res.missShaderBindingTableStride		= missShaderBindingTableStride;
687	res.hitShaderBindingTableAddress		= hitShaderBindingTableAddress;
688	res.hitShaderBindingTableSize			= hitShaderBindingTableSize;
689	res.hitShaderBindingTableStride			= hitShaderBindingTableStride;
690	res.callableShaderBindingTableAddress	= callableShaderBindingTableAddress;
691	res.callableShaderBindingTableSize		= callableShaderBindingTableSize;
692	res.callableShaderBindingTableStride	= callableShaderBindingTableStride;
693	res.width								= width;
694	res.height								= height;
695	res.depth								= depth;
696	return res;
697}
698
699inline VkDrmFormatModifierPropertiesEXT makeDrmFormatModifierPropertiesEXT (uint64_t drmFormatModifier, uint32_t drmFormatModifierPlaneCount, VkFormatFeatureFlags drmFormatModifierTilingFeatures)
700{
701	VkDrmFormatModifierPropertiesEXT res;
702	res.drmFormatModifier				= drmFormatModifier;
703	res.drmFormatModifierPlaneCount		= drmFormatModifierPlaneCount;
704	res.drmFormatModifierTilingFeatures	= drmFormatModifierTilingFeatures;
705	return res;
706}
707
708inline VkPipelineCreationFeedback makePipelineCreationFeedback (VkPipelineCreationFeedbackFlags flags, uint64_t duration)
709{
710	VkPipelineCreationFeedback res;
711	res.flags		= flags;
712	res.duration	= duration;
713	return res;
714}
715
716inline VkAccelerationStructureBuildRangeInfoKHR makeAccelerationStructureBuildRangeInfoKHR (uint32_t primitiveCount, uint32_t primitiveOffset, uint32_t firstVertex, uint32_t transformOffset)
717{
718	VkAccelerationStructureBuildRangeInfoKHR res;
719	res.primitiveCount	= primitiveCount;
720	res.primitiveOffset	= primitiveOffset;
721	res.firstVertex		= firstVertex;
722	res.transformOffset	= transformOffset;
723	return res;
724}
725
726inline VkAabbPositionsKHR makeAabbPositionsKHR (float minX, float minY, float minZ, float maxX, float maxY, float maxZ)
727{
728	VkAabbPositionsKHR res;
729	res.minX	= minX;
730	res.minY	= minY;
731	res.minZ	= minZ;
732	res.maxX	= maxX;
733	res.maxY	= maxY;
734	res.maxZ	= maxZ;
735	return res;
736}
737
738inline VkColorBlendEquationEXT makeColorBlendEquationEXT (VkBlendFactor srcColorBlendFactor, VkBlendFactor dstColorBlendFactor, VkBlendOp colorBlendOp, VkBlendFactor srcAlphaBlendFactor, VkBlendFactor dstAlphaBlendFactor, VkBlendOp alphaBlendOp)
739{
740	VkColorBlendEquationEXT res;
741	res.srcColorBlendFactor	= srcColorBlendFactor;
742	res.dstColorBlendFactor	= dstColorBlendFactor;
743	res.colorBlendOp		= colorBlendOp;
744	res.srcAlphaBlendFactor	= srcAlphaBlendFactor;
745	res.dstAlphaBlendFactor	= dstAlphaBlendFactor;
746	res.alphaBlendOp		= alphaBlendOp;
747	return res;
748}
749
750inline VkColorBlendAdvancedEXT makeColorBlendAdvancedEXT (VkBlendOp advancedBlendOp, VkBool32 srcPremultiplied, VkBool32 dstPremultiplied, VkBlendOverlapEXT blendOverlap, VkBool32 clampResults)
751{
752	VkColorBlendAdvancedEXT res;
753	res.advancedBlendOp		= advancedBlendOp;
754	res.srcPremultiplied	= srcPremultiplied;
755	res.dstPremultiplied	= dstPremultiplied;
756	res.blendOverlap		= blendOverlap;
757	res.clampResults		= clampResults;
758	return res;
759}
760
761inline VkMutableDescriptorTypeListEXT makeMutableDescriptorTypeListEXT (uint32_t descriptorTypeCount, const VkDescriptorType* pDescriptorTypes)
762{
763	VkMutableDescriptorTypeListEXT res;
764	res.descriptorTypeCount	= descriptorTypeCount;
765	res.pDescriptorTypes	= pDescriptorTypes;
766	return res;
767}
768
769inline VkDrawIndirectCountIndirectCommandEXT makeDrawIndirectCountIndirectCommandEXT (VkDeviceAddress bufferAddress, uint32_t stride, uint32_t commandCount)
770{
771	VkDrawIndirectCountIndirectCommandEXT res;
772	res.bufferAddress	= bufferAddress;
773	res.stride			= stride;
774	res.commandCount	= commandCount;
775	return res;
776}
777
778inline VkIndirectCommandsVertexBufferTokenEXT makeIndirectCommandsVertexBufferTokenEXT (uint32_t vertexBindingUnit)
779{
780	VkIndirectCommandsVertexBufferTokenEXT res;
781	res.vertexBindingUnit	= vertexBindingUnit;
782	return res;
783}
784
785inline VkBindVertexBufferIndirectCommandEXT makeBindVertexBufferIndirectCommandEXT (VkDeviceAddress bufferAddress, uint32_t size, uint32_t stride)
786{
787	VkBindVertexBufferIndirectCommandEXT res;
788	res.bufferAddress	= bufferAddress;
789	res.size			= size;
790	res.stride			= stride;
791	return res;
792}
793
794inline VkIndirectCommandsIndexBufferTokenEXT makeIndirectCommandsIndexBufferTokenEXT (VkIndirectCommandsInputModeFlagBitsEXT mode)
795{
796	VkIndirectCommandsIndexBufferTokenEXT res;
797	res.mode	= mode;
798	return res;
799}
800
801inline VkBindIndexBufferIndirectCommandEXT makeBindIndexBufferIndirectCommandEXT (VkDeviceAddress bufferAddress, uint32_t size, VkIndexType indexType)
802{
803	VkBindIndexBufferIndirectCommandEXT res;
804	res.bufferAddress	= bufferAddress;
805	res.size			= size;
806	res.indexType		= indexType;
807	return res;
808}
809
810inline VkIndirectCommandsExecutionSetTokenEXT makeIndirectCommandsExecutionSetTokenEXT (VkIndirectExecutionSetInfoTypeEXT type, VkShaderStageFlags shaderStages)
811{
812	VkIndirectCommandsExecutionSetTokenEXT res;
813	res.type			= type;
814	res.shaderStages	= shaderStages;
815	return res;
816}
817
818inline VkVideoEncodeH264QpKHR makeVideoEncodeH264QpKHR (int32_t qpI, int32_t qpP, int32_t qpB)
819{
820	VkVideoEncodeH264QpKHR res;
821	res.qpI	= qpI;
822	res.qpP	= qpP;
823	res.qpB	= qpB;
824	return res;
825}
826
827inline VkVideoEncodeH264FrameSizeKHR makeVideoEncodeH264FrameSizeKHR (uint32_t frameISize, uint32_t framePSize, uint32_t frameBSize)
828{
829	VkVideoEncodeH264FrameSizeKHR res;
830	res.frameISize	= frameISize;
831	res.framePSize	= framePSize;
832	res.frameBSize	= frameBSize;
833	return res;
834}
835
836inline VkVideoEncodeH265QpKHR makeVideoEncodeH265QpKHR (int32_t qpI, int32_t qpP, int32_t qpB)
837{
838	VkVideoEncodeH265QpKHR res;
839	res.qpI	= qpI;
840	res.qpP	= qpP;
841	res.qpB	= qpB;
842	return res;
843}
844
845inline VkVideoEncodeH265FrameSizeKHR makeVideoEncodeH265FrameSizeKHR (uint32_t frameISize, uint32_t framePSize, uint32_t frameBSize)
846{
847	VkVideoEncodeH265FrameSizeKHR res;
848	res.frameISize	= frameISize;
849	res.framePSize	= framePSize;
850	res.frameBSize	= frameBSize;
851	return res;
852}
853
854inline VkVideoEncodeAV1QIndexKHR makeVideoEncodeAV1QIndexKHR (uint32_t intraQIndex, uint32_t predictiveQIndex, uint32_t bipredictiveQIndex)
855{
856	VkVideoEncodeAV1QIndexKHR res;
857	res.intraQIndex			= intraQIndex;
858	res.predictiveQIndex	= predictiveQIndex;
859	res.bipredictiveQIndex	= bipredictiveQIndex;
860	return res;
861}
862
863inline VkVideoEncodeAV1FrameSizeKHR makeVideoEncodeAV1FrameSizeKHR (uint32_t intraFrameSize, uint32_t predictiveFrameSize, uint32_t bipredictiveFrameSize)
864{
865	VkVideoEncodeAV1FrameSizeKHR res;
866	res.intraFrameSize			= intraFrameSize;
867	res.predictiveFrameSize		= predictiveFrameSize;
868	res.bipredictiveFrameSize	= bipredictiveFrameSize;
869	return res;
870}
871
872inline VkSRTDataNV makeSRTDataNV (float sx, float a, float b, float pvx, float sy, float c, float pvy, float sz, float pvz, float qx, float qy, float qz, float qw, float tx, float ty, float tz)
873{
874	VkSRTDataNV res;
875	res.sx	= sx;
876	res.a	= a;
877	res.b	= b;
878	res.pvx	= pvx;
879	res.sy	= sy;
880	res.c	= c;
881	res.pvy	= pvy;
882	res.sz	= sz;
883	res.pvz	= pvz;
884	res.qx	= qx;
885	res.qy	= qy;
886	res.qz	= qz;
887	res.qw	= qw;
888	res.tx	= tx;
889	res.ty	= ty;
890	res.tz	= tz;
891	return res;
892}
893
894inline VkDrmFormatModifierProperties2EXT makeDrmFormatModifierProperties2EXT (uint64_t drmFormatModifier, uint32_t drmFormatModifierPlaneCount, VkFormatFeatureFlags2 drmFormatModifierTilingFeatures)
895{
896	VkDrmFormatModifierProperties2EXT res;
897	res.drmFormatModifier				= drmFormatModifier;
898	res.drmFormatModifierPlaneCount		= drmFormatModifierPlaneCount;
899	res.drmFormatModifierTilingFeatures	= drmFormatModifierTilingFeatures;
900	return res;
901}
902
903inline VkRenderPassCreationFeedbackInfoEXT makeRenderPassCreationFeedbackInfoEXT (uint32_t postMergeSubpassCount)
904{
905	VkRenderPassCreationFeedbackInfoEXT res;
906	res.postMergeSubpassCount	= postMergeSubpassCount;
907	return res;
908}
909
910inline VkMicromapUsageEXT makeMicromapUsageEXT (uint32_t count, uint32_t subdivisionLevel, uint32_t format)
911{
912	VkMicromapUsageEXT res;
913	res.count				= count;
914	res.subdivisionLevel	= subdivisionLevel;
915	res.format				= format;
916	return res;
917}
918
919inline VkMicromapTriangleEXT makeMicromapTriangleEXT (uint32_t dataOffset, uint16_t subdivisionLevel, uint16_t format)
920{
921	VkMicromapTriangleEXT res;
922	res.dataOffset			= dataOffset;
923	res.subdivisionLevel	= subdivisionLevel;
924	res.format				= format;
925	return res;
926}
927
928inline VkDeviceFaultAddressInfoEXT makeDeviceFaultAddressInfoEXT (VkDeviceFaultAddressTypeEXT addressType, VkDeviceAddress reportedAddress, VkDeviceSize addressPrecision)
929{
930	VkDeviceFaultAddressInfoEXT res;
931	res.addressType			= addressType;
932	res.reportedAddress		= reportedAddress;
933	res.addressPrecision	= addressPrecision;
934	return res;
935}
936
937inline VkDecompressMemoryRegionNV makeDecompressMemoryRegionNV (VkDeviceAddress srcAddress, VkDeviceAddress dstAddress, VkDeviceSize compressedSize, VkDeviceSize decompressedSize, VkMemoryDecompressionMethodFlagsNV decompressionMethod)
938{
939	VkDecompressMemoryRegionNV res;
940	res.srcAddress			= srcAddress;
941	res.dstAddress			= dstAddress;
942	res.compressedSize		= compressedSize;
943	res.decompressedSize	= decompressedSize;
944	res.decompressionMethod	= decompressionMethod;
945	return res;
946}
947
948inline VkDepthClampRangeEXT makeDepthClampRangeEXT (float minDepthClamp, float maxDepthClamp)
949{
950	VkDepthClampRangeEXT res;
951	res.minDepthClamp	= minDepthClamp;
952	res.maxDepthClamp	= maxDepthClamp;
953	return res;
954}
955
956inline StdVideoEncodeH264WeightTableFlags makeStdVideoEncodeH264WeightTableFlags (uint32_t luma_weight_l0_flag, uint32_t chroma_weight_l0_flag, uint32_t luma_weight_l1_flag, uint32_t chroma_weight_l1_flag)
957{
958	StdVideoEncodeH264WeightTableFlags res;
959	res.luma_weight_l0_flag		= luma_weight_l0_flag;
960	res.chroma_weight_l0_flag	= chroma_weight_l0_flag;
961	res.luma_weight_l1_flag		= luma_weight_l1_flag;
962	res.chroma_weight_l1_flag	= chroma_weight_l1_flag;
963	return res;
964}
965
966inline StdVideoEncodeH264RefListModEntry makeStdVideoEncodeH264RefListModEntry (StdVideoH264ModificationOfPicNumsIdc modification_of_pic_nums_idc, uint16_t abs_diff_pic_num_minus1, uint16_t long_term_pic_num)
967{
968	StdVideoEncodeH264RefListModEntry res;
969	res.modification_of_pic_nums_idc	= modification_of_pic_nums_idc;
970	res.abs_diff_pic_num_minus1			= abs_diff_pic_num_minus1;
971	res.long_term_pic_num				= long_term_pic_num;
972	return res;
973}
974
975inline StdVideoEncodeH264RefPicMarkingEntry makeStdVideoEncodeH264RefPicMarkingEntry (StdVideoH264MemMgmtControlOp memory_management_control_operation, uint16_t difference_of_pic_nums_minus1, uint16_t long_term_pic_num, uint16_t long_term_frame_idx, uint16_t max_long_term_frame_idx_plus1)
976{
977	StdVideoEncodeH264RefPicMarkingEntry res;
978	res.memory_management_control_operation	= memory_management_control_operation;
979	res.difference_of_pic_nums_minus1		= difference_of_pic_nums_minus1;
980	res.long_term_pic_num					= long_term_pic_num;
981	res.long_term_frame_idx					= long_term_frame_idx;
982	res.max_long_term_frame_idx_plus1		= max_long_term_frame_idx_plus1;
983	return res;
984}
985
986inline StdVideoEncodeH265WeightTableFlags makeStdVideoEncodeH265WeightTableFlags (uint16_t luma_weight_l0_flag, uint16_t chroma_weight_l0_flag, uint16_t luma_weight_l1_flag, uint16_t chroma_weight_l1_flag)
987{
988	StdVideoEncodeH265WeightTableFlags res;
989	res.luma_weight_l0_flag		= luma_weight_l0_flag;
990	res.chroma_weight_l0_flag	= chroma_weight_l0_flag;
991	res.luma_weight_l1_flag		= luma_weight_l1_flag;
992	res.chroma_weight_l1_flag	= chroma_weight_l1_flag;
993	return res;
994}
995
996inline StdVideoEncodeAV1ExtensionHeader makeStdVideoEncodeAV1ExtensionHeader (uint8_t temporal_id, uint8_t spatial_id)
997{
998	StdVideoEncodeAV1ExtensionHeader res;
999	res.temporal_id	= temporal_id;
1000	res.spatial_id	= spatial_id;
1001	return res;
1002}
1003
1004inline StdVideoEncodeAV1DecoderModelInfo makeStdVideoEncodeAV1DecoderModelInfo (uint8_t buffer_delay_length_minus_1, uint8_t buffer_removal_time_length_minus_1, uint8_t frame_presentation_time_length_minus_1, uint8_t reserved1, uint32_t num_units_in_decoding_tick)
1005{
1006	StdVideoEncodeAV1DecoderModelInfo res;
1007	res.buffer_delay_length_minus_1				= buffer_delay_length_minus_1;
1008	res.buffer_removal_time_length_minus_1		= buffer_removal_time_length_minus_1;
1009	res.frame_presentation_time_length_minus_1	= frame_presentation_time_length_minus_1;
1010	res.reserved1								= reserved1;
1011	res.num_units_in_decoding_tick				= num_units_in_decoding_tick;
1012	return res;
1013}
1014