• 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 */
4
5inline VkExtent2D makeExtent2D (uint32_t width, uint32_t height)
6{
7	VkExtent2D res;
8	res.width	= width;
9	res.height	= height;
10	return res;
11}
12
13inline VkExtent3D makeExtent3D (uint32_t width, uint32_t height, uint32_t depth)
14{
15	VkExtent3D res;
16	res.width	= width;
17	res.height	= height;
18	res.depth	= depth;
19	return res;
20}
21
22inline VkOffset2D makeOffset2D (int32_t x, int32_t y)
23{
24	VkOffset2D res;
25	res.x	= x;
26	res.y	= y;
27	return res;
28}
29
30inline VkOffset3D makeOffset3D (int32_t x, int32_t y, int32_t z)
31{
32	VkOffset3D res;
33	res.x	= x;
34	res.y	= y;
35	res.z	= z;
36	return res;
37}
38
39inline VkDispatchIndirectCommand makeDispatchIndirectCommand (uint32_t x, uint32_t y, uint32_t z)
40{
41	VkDispatchIndirectCommand res;
42	res.x	= x;
43	res.y	= y;
44	res.z	= z;
45	return res;
46}
47
48inline VkDrawIndexedIndirectCommand makeDrawIndexedIndirectCommand (uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance)
49{
50	VkDrawIndexedIndirectCommand res;
51	res.indexCount		= indexCount;
52	res.instanceCount	= instanceCount;
53	res.firstIndex		= firstIndex;
54	res.vertexOffset	= vertexOffset;
55	res.firstInstance	= firstInstance;
56	return res;
57}
58
59inline VkDrawIndirectCommand makeDrawIndirectCommand (uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance)
60{
61	VkDrawIndirectCommand res;
62	res.vertexCount		= vertexCount;
63	res.instanceCount	= instanceCount;
64	res.firstVertex		= firstVertex;
65	res.firstInstance	= firstInstance;
66	return res;
67}
68
69inline VkImageSubresourceRange makeImageSubresourceRange (VkImageAspectFlags aspectMask, uint32_t baseMipLevel, uint32_t levelCount, uint32_t baseArrayLayer, uint32_t layerCount)
70{
71	VkImageSubresourceRange res;
72	res.aspectMask		= aspectMask;
73	res.baseMipLevel	= baseMipLevel;
74	res.levelCount		= levelCount;
75	res.baseArrayLayer	= baseArrayLayer;
76	res.layerCount		= layerCount;
77	return res;
78}
79
80inline VkAllocationCallbacks makeAllocationCallbacks (void* pUserData, PFN_vkAllocationFunction pfnAllocation, PFN_vkReallocationFunction pfnReallocation, PFN_vkFreeFunction pfnFree, PFN_vkInternalAllocationNotification pfnInternalAllocation, PFN_vkInternalFreeNotification pfnInternalFree)
81{
82	VkAllocationCallbacks res;
83	res.pUserData				= pUserData;
84	res.pfnAllocation			= pfnAllocation;
85	res.pfnReallocation			= pfnReallocation;
86	res.pfnFree					= pfnFree;
87	res.pfnInternalAllocation	= pfnInternalAllocation;
88	res.pfnInternalFree			= pfnInternalFree;
89	return res;
90}
91
92inline VkMemoryRequirements makeMemoryRequirements (VkDeviceSize size, VkDeviceSize alignment, uint32_t memoryTypeBits)
93{
94	VkMemoryRequirements res;
95	res.size			= size;
96	res.alignment		= alignment;
97	res.memoryTypeBits	= memoryTypeBits;
98	return res;
99}
100
101inline VkSparseMemoryBind makeSparseMemoryBind (VkDeviceSize resourceOffset, VkDeviceSize size, VkDeviceMemory memory, VkDeviceSize memoryOffset, VkSparseMemoryBindFlags flags)
102{
103	VkSparseMemoryBind res;
104	res.resourceOffset	= resourceOffset;
105	res.size			= size;
106	res.memory			= memory;
107	res.memoryOffset	= memoryOffset;
108	res.flags			= flags;
109	return res;
110}
111
112inline VkSparseBufferMemoryBindInfo makeSparseBufferMemoryBindInfo (VkBuffer buffer, uint32_t bindCount, const VkSparseMemoryBind* pBinds)
113{
114	VkSparseBufferMemoryBindInfo res;
115	res.buffer		= buffer;
116	res.bindCount	= bindCount;
117	res.pBinds		= pBinds;
118	return res;
119}
120
121inline VkSparseImageOpaqueMemoryBindInfo makeSparseImageOpaqueMemoryBindInfo (VkImage image, uint32_t bindCount, const VkSparseMemoryBind* pBinds)
122{
123	VkSparseImageOpaqueMemoryBindInfo res;
124	res.image		= image;
125	res.bindCount	= bindCount;
126	res.pBinds		= pBinds;
127	return res;
128}
129
130inline VkImageSubresource makeImageSubresource (VkImageAspectFlags aspectMask, uint32_t mipLevel, uint32_t arrayLayer)
131{
132	VkImageSubresource res;
133	res.aspectMask	= aspectMask;
134	res.mipLevel	= mipLevel;
135	res.arrayLayer	= arrayLayer;
136	return res;
137}
138
139inline VkSparseImageMemoryBindInfo makeSparseImageMemoryBindInfo (VkImage image, uint32_t bindCount, const VkSparseImageMemoryBind* pBinds)
140{
141	VkSparseImageMemoryBindInfo res;
142	res.image		= image;
143	res.bindCount	= bindCount;
144	res.pBinds		= pBinds;
145	return res;
146}
147
148inline VkSubresourceLayout makeSubresourceLayout (VkDeviceSize offset, VkDeviceSize size, VkDeviceSize rowPitch, VkDeviceSize arrayPitch, VkDeviceSize depthPitch)
149{
150	VkSubresourceLayout res;
151	res.offset		= offset;
152	res.size		= size;
153	res.rowPitch	= rowPitch;
154	res.arrayPitch	= arrayPitch;
155	res.depthPitch	= depthPitch;
156	return res;
157}
158
159inline VkComponentMapping makeComponentMapping (VkComponentSwizzle r, VkComponentSwizzle g, VkComponentSwizzle b, VkComponentSwizzle a)
160{
161	VkComponentMapping res;
162	res.r	= r;
163	res.g	= g;
164	res.b	= b;
165	res.a	= a;
166	return res;
167}
168
169inline VkSpecializationMapEntry makeSpecializationMapEntry (uint32_t constantID, uint32_t offset, size_t size)
170{
171	VkSpecializationMapEntry res;
172	res.constantID	= constantID;
173	res.offset		= offset;
174	res.size		= size;
175	return res;
176}
177
178inline VkSpecializationInfo makeSpecializationInfo (uint32_t mapEntryCount, const VkSpecializationMapEntry* pMapEntries, size_t dataSize, const void* pData)
179{
180	VkSpecializationInfo res;
181	res.mapEntryCount	= mapEntryCount;
182	res.pMapEntries		= pMapEntries;
183	res.dataSize		= dataSize;
184	res.pData			= pData;
185	return res;
186}
187
188inline VkVertexInputBindingDescription makeVertexInputBindingDescription (uint32_t binding, uint32_t stride, VkVertexInputRate inputRate)
189{
190	VkVertexInputBindingDescription res;
191	res.binding		= binding;
192	res.stride		= stride;
193	res.inputRate	= inputRate;
194	return res;
195}
196
197inline VkVertexInputAttributeDescription makeVertexInputAttributeDescription (uint32_t location, uint32_t binding, VkFormat format, uint32_t offset)
198{
199	VkVertexInputAttributeDescription res;
200	res.location	= location;
201	res.binding		= binding;
202	res.format		= format;
203	res.offset		= offset;
204	return res;
205}
206
207inline VkViewport makeViewport (float x, float y, float width, float height, float minDepth, float maxDepth)
208{
209	VkViewport res;
210	res.x			= x;
211	res.y			= y;
212	res.width		= width;
213	res.height		= height;
214	res.minDepth	= minDepth;
215	res.maxDepth	= maxDepth;
216	return res;
217}
218
219inline VkStencilOpState makeStencilOpState (VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp, uint32_t compareMask, uint32_t writeMask, uint32_t reference)
220{
221	VkStencilOpState res;
222	res.failOp		= failOp;
223	res.passOp		= passOp;
224	res.depthFailOp	= depthFailOp;
225	res.compareOp	= compareOp;
226	res.compareMask	= compareMask;
227	res.writeMask	= writeMask;
228	res.reference	= reference;
229	return res;
230}
231
232inline VkPipelineColorBlendAttachmentState makePipelineColorBlendAttachmentState (VkBool32 blendEnable, VkBlendFactor srcColorBlendFactor, VkBlendFactor dstColorBlendFactor, VkBlendOp colorBlendOp, VkBlendFactor srcAlphaBlendFactor, VkBlendFactor dstAlphaBlendFactor, VkBlendOp alphaBlendOp, VkColorComponentFlags colorWriteMask)
233{
234	VkPipelineColorBlendAttachmentState res;
235	res.blendEnable			= blendEnable;
236	res.srcColorBlendFactor	= srcColorBlendFactor;
237	res.dstColorBlendFactor	= dstColorBlendFactor;
238	res.colorBlendOp		= colorBlendOp;
239	res.srcAlphaBlendFactor	= srcAlphaBlendFactor;
240	res.dstAlphaBlendFactor	= dstAlphaBlendFactor;
241	res.alphaBlendOp		= alphaBlendOp;
242	res.colorWriteMask		= colorWriteMask;
243	return res;
244}
245
246inline VkPushConstantRange makePushConstantRange (VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size)
247{
248	VkPushConstantRange res;
249	res.stageFlags	= stageFlags;
250	res.offset		= offset;
251	res.size		= size;
252	return res;
253}
254
255inline VkDescriptorBufferInfo makeDescriptorBufferInfo (VkBuffer buffer, VkDeviceSize offset, VkDeviceSize range)
256{
257	VkDescriptorBufferInfo res;
258	res.buffer	= buffer;
259	res.offset	= offset;
260	res.range	= range;
261	return res;
262}
263
264inline VkDescriptorImageInfo makeDescriptorImageInfo (VkSampler sampler, VkImageView imageView, VkImageLayout imageLayout)
265{
266	VkDescriptorImageInfo res;
267	res.sampler		= sampler;
268	res.imageView	= imageView;
269	res.imageLayout	= imageLayout;
270	return res;
271}
272
273inline VkDescriptorPoolSize makeDescriptorPoolSize (VkDescriptorType type, uint32_t descriptorCount)
274{
275	VkDescriptorPoolSize res;
276	res.type			= type;
277	res.descriptorCount	= descriptorCount;
278	return res;
279}
280
281inline VkDescriptorSetLayoutBinding makeDescriptorSetLayoutBinding (uint32_t binding, VkDescriptorType descriptorType, uint32_t descriptorCount, VkShaderStageFlags stageFlags, const VkSampler* pImmutableSamplers)
282{
283	VkDescriptorSetLayoutBinding res;
284	res.binding				= binding;
285	res.descriptorType		= descriptorType;
286	res.descriptorCount		= descriptorCount;
287	res.stageFlags			= stageFlags;
288	res.pImmutableSamplers	= pImmutableSamplers;
289	return res;
290}
291
292inline VkAttachmentDescription makeAttachmentDescription (VkAttachmentDescriptionFlags flags, VkFormat format, VkSampleCountFlagBits samples, VkAttachmentLoadOp loadOp, VkAttachmentStoreOp storeOp, VkAttachmentLoadOp stencilLoadOp, VkAttachmentStoreOp stencilStoreOp, VkImageLayout initialLayout, VkImageLayout finalLayout)
293{
294	VkAttachmentDescription res;
295	res.flags			= flags;
296	res.format			= format;
297	res.samples			= samples;
298	res.loadOp			= loadOp;
299	res.storeOp			= storeOp;
300	res.stencilLoadOp	= stencilLoadOp;
301	res.stencilStoreOp	= stencilStoreOp;
302	res.initialLayout	= initialLayout;
303	res.finalLayout		= finalLayout;
304	return res;
305}
306
307inline VkAttachmentReference makeAttachmentReference (uint32_t attachment, VkImageLayout layout)
308{
309	VkAttachmentReference res;
310	res.attachment	= attachment;
311	res.layout		= layout;
312	return res;
313}
314
315inline 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)
316{
317	VkSubpassDescription res;
318	res.flags					= flags;
319	res.pipelineBindPoint		= pipelineBindPoint;
320	res.inputAttachmentCount	= inputAttachmentCount;
321	res.pInputAttachments		= pInputAttachments;
322	res.colorAttachmentCount	= colorAttachmentCount;
323	res.pColorAttachments		= pColorAttachments;
324	res.pResolveAttachments		= pResolveAttachments;
325	res.pDepthStencilAttachment	= pDepthStencilAttachment;
326	res.preserveAttachmentCount	= preserveAttachmentCount;
327	res.pPreserveAttachments	= pPreserveAttachments;
328	return res;
329}
330
331inline VkSubpassDependency makeSubpassDependency (uint32_t srcSubpass, uint32_t dstSubpass, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkAccessFlags srcAccessMask, VkAccessFlags dstAccessMask, VkDependencyFlags dependencyFlags)
332{
333	VkSubpassDependency res;
334	res.srcSubpass		= srcSubpass;
335	res.dstSubpass		= dstSubpass;
336	res.srcStageMask	= srcStageMask;
337	res.dstStageMask	= dstStageMask;
338	res.srcAccessMask	= srcAccessMask;
339	res.dstAccessMask	= dstAccessMask;
340	res.dependencyFlags	= dependencyFlags;
341	return res;
342}
343
344inline VkBufferCopy makeBufferCopy (VkDeviceSize srcOffset, VkDeviceSize dstOffset, VkDeviceSize size)
345{
346	VkBufferCopy res;
347	res.srcOffset	= srcOffset;
348	res.dstOffset	= dstOffset;
349	res.size		= size;
350	return res;
351}
352
353inline VkImageSubresourceLayers makeImageSubresourceLayers (VkImageAspectFlags aspectMask, uint32_t mipLevel, uint32_t baseArrayLayer, uint32_t layerCount)
354{
355	VkImageSubresourceLayers res;
356	res.aspectMask		= aspectMask;
357	res.mipLevel		= mipLevel;
358	res.baseArrayLayer	= baseArrayLayer;
359	res.layerCount		= layerCount;
360	return res;
361}
362
363inline VkClearDepthStencilValue makeClearDepthStencilValue (float depth, uint32_t stencil)
364{
365	VkClearDepthStencilValue res;
366	res.depth	= depth;
367	res.stencil	= stencil;
368	return res;
369}
370
371inline VkInputAttachmentAspectReference makeInputAttachmentAspectReference (uint32_t subpass, uint32_t inputAttachmentIndex, VkImageAspectFlags aspectMask)
372{
373	VkInputAttachmentAspectReference res;
374	res.subpass					= subpass;
375	res.inputAttachmentIndex	= inputAttachmentIndex;
376	res.aspectMask				= aspectMask;
377	return res;
378}
379
380inline VkDescriptorUpdateTemplateEntry makeDescriptorUpdateTemplateEntry (uint32_t dstBinding, uint32_t dstArrayElement, uint32_t descriptorCount, VkDescriptorType descriptorType, size_t offset, size_t stride)
381{
382	VkDescriptorUpdateTemplateEntry res;
383	res.dstBinding		= dstBinding;
384	res.dstArrayElement	= dstArrayElement;
385	res.descriptorCount	= descriptorCount;
386	res.descriptorType	= descriptorType;
387	res.offset			= offset;
388	res.stride			= stride;
389	return res;
390}
391
392inline VkExternalMemoryProperties makeExternalMemoryProperties (VkExternalMemoryFeatureFlags externalMemoryFeatures, VkExternalMemoryHandleTypeFlags exportFromImportedHandleTypes, VkExternalMemoryHandleTypeFlags compatibleHandleTypes)
393{
394	VkExternalMemoryProperties res;
395	res.externalMemoryFeatures			= externalMemoryFeatures;
396	res.exportFromImportedHandleTypes	= exportFromImportedHandleTypes;
397	res.compatibleHandleTypes			= compatibleHandleTypes;
398	return res;
399}
400
401inline VkConformanceVersion makeConformanceVersion (uint8_t major, uint8_t minor, uint8_t subminor, uint8_t patch)
402{
403	VkConformanceVersion res;
404	res.major		= major;
405	res.minor		= minor;
406	res.subminor	= subminor;
407	res.patch		= patch;
408	return res;
409}
410
411inline VkSurfaceFormatKHR makeSurfaceFormatKHR (VkFormat format, VkColorSpaceKHR colorSpace)
412{
413	VkSurfaceFormatKHR res;
414	res.format		= format;
415	res.colorSpace	= colorSpace;
416	return res;
417}
418
419inline VkDisplayPlanePropertiesKHR makeDisplayPlanePropertiesKHR (VkDisplayKHR currentDisplay, uint32_t currentStackIndex)
420{
421	VkDisplayPlanePropertiesKHR res;
422	res.currentDisplay		= currentDisplay;
423	res.currentStackIndex	= currentStackIndex;
424	return res;
425}
426
427inline VkPresentRegionKHR makePresentRegionKHR (uint32_t rectangleCount, const VkRectLayerKHR* pRectangles)
428{
429	VkPresentRegionKHR res;
430	res.rectangleCount	= rectangleCount;
431	res.pRectangles		= pRectangles;
432	return res;
433}
434
435inline VkShaderResourceUsageAMD makeShaderResourceUsageAMD (uint32_t numUsedVgprs, uint32_t numUsedSgprs, uint32_t ldsSizePerLocalWorkGroup, size_t ldsUsageSizeInBytes, size_t scratchMemUsageInBytes)
436{
437	VkShaderResourceUsageAMD res;
438	res.numUsedVgprs				= numUsedVgprs;
439	res.numUsedSgprs				= numUsedSgprs;
440	res.ldsSizePerLocalWorkGroup	= ldsSizePerLocalWorkGroup;
441	res.ldsUsageSizeInBytes			= ldsUsageSizeInBytes;
442	res.scratchMemUsageInBytes		= scratchMemUsageInBytes;
443	return res;
444}
445
446inline VkViewportWScalingNV makeViewportWScalingNV (float xcoeff, float ycoeff)
447{
448	VkViewportWScalingNV res;
449	res.xcoeff	= xcoeff;
450	res.ycoeff	= ycoeff;
451	return res;
452}
453
454inline VkRefreshCycleDurationGOOGLE makeRefreshCycleDurationGOOGLE (uint64_t refreshDuration)
455{
456	VkRefreshCycleDurationGOOGLE res;
457	res.refreshDuration	= refreshDuration;
458	return res;
459}
460
461inline VkPastPresentationTimingGOOGLE makePastPresentationTimingGOOGLE (uint32_t presentID, uint64_t desiredPresentTime, uint64_t actualPresentTime, uint64_t earliestPresentTime, uint64_t presentMargin)
462{
463	VkPastPresentationTimingGOOGLE res;
464	res.presentID			= presentID;
465	res.desiredPresentTime	= desiredPresentTime;
466	res.actualPresentTime	= actualPresentTime;
467	res.earliestPresentTime	= earliestPresentTime;
468	res.presentMargin		= presentMargin;
469	return res;
470}
471
472inline VkPresentTimeGOOGLE makePresentTimeGOOGLE (uint32_t presentID, uint64_t desiredPresentTime)
473{
474	VkPresentTimeGOOGLE res;
475	res.presentID			= presentID;
476	res.desiredPresentTime	= desiredPresentTime;
477	return res;
478}
479
480inline VkViewportSwizzleNV makeViewportSwizzleNV (VkViewportCoordinateSwizzleNV x, VkViewportCoordinateSwizzleNV y, VkViewportCoordinateSwizzleNV z, VkViewportCoordinateSwizzleNV w)
481{
482	VkViewportSwizzleNV res;
483	res.x	= x;
484	res.y	= y;
485	res.z	= z;
486	res.w	= w;
487	return res;
488}
489
490inline VkXYColorEXT makeXYColorEXT (float x, float y)
491{
492	VkXYColorEXT res;
493	res.x	= x;
494	res.y	= y;
495	return res;
496}
497
498inline VkSampleLocationEXT makeSampleLocationEXT (float x, float y)
499{
500	VkSampleLocationEXT res;
501	res.x	= x;
502	res.y	= y;
503	return res;
504}
505
506inline VkDrmFormatModifierPropertiesEXT makeDrmFormatModifierPropertiesEXT (uint64_t drmFormatModifier, uint32_t drmFormatModifierPlaneCount, VkFormatFeatureFlags drmFormatModifierTilingFeatures)
507{
508	VkDrmFormatModifierPropertiesEXT res;
509	res.drmFormatModifier				= drmFormatModifier;
510	res.drmFormatModifierPlaneCount		= drmFormatModifierPlaneCount;
511	res.drmFormatModifierTilingFeatures	= drmFormatModifierTilingFeatures;
512	return res;
513}
514
515inline VkDrmFormatModifierProperties2EXT makeDrmFormatModifierProperties2EXT (uint64_t drmFormatModifier, uint32_t drmFormatModifierPlaneCount, VkFormatFeatureFlags2KHR drmFormatModifierTilingFeatures)
516{
517	VkDrmFormatModifierProperties2EXT res;
518	res.drmFormatModifier				= drmFormatModifier;
519	res.drmFormatModifierPlaneCount		= drmFormatModifierPlaneCount;
520	res.drmFormatModifierTilingFeatures	= drmFormatModifierTilingFeatures;
521	return res;
522}
523
524inline VkShadingRatePaletteNV makeShadingRatePaletteNV (uint32_t shadingRatePaletteEntryCount, const VkShadingRatePaletteEntryNV* pShadingRatePaletteEntries)
525{
526	VkShadingRatePaletteNV res;
527	res.shadingRatePaletteEntryCount	= shadingRatePaletteEntryCount;
528	res.pShadingRatePaletteEntries		= pShadingRatePaletteEntries;
529	return res;
530}
531
532inline VkCoarseSampleLocationNV makeCoarseSampleLocationNV (uint32_t pixelX, uint32_t pixelY, uint32_t sample)
533{
534	VkCoarseSampleLocationNV res;
535	res.pixelX	= pixelX;
536	res.pixelY	= pixelY;
537	res.sample	= sample;
538	return res;
539}
540
541inline VkCoarseSampleOrderCustomNV makeCoarseSampleOrderCustomNV (VkShadingRatePaletteEntryNV shadingRate, uint32_t sampleCount, uint32_t sampleLocationCount, const VkCoarseSampleLocationNV* pSampleLocations)
542{
543	VkCoarseSampleOrderCustomNV res;
544	res.shadingRate			= shadingRate;
545	res.sampleCount			= sampleCount;
546	res.sampleLocationCount	= sampleLocationCount;
547	res.pSampleLocations	= pSampleLocations;
548	return res;
549}
550
551inline VkAabbPositionsKHR makeAabbPositionsKHR (float minX, float minY, float minZ, float maxX, float maxY, float maxZ)
552{
553	VkAabbPositionsKHR res;
554	res.minX	= minX;
555	res.minY	= minY;
556	res.minZ	= minZ;
557	res.maxX	= maxX;
558	res.maxY	= maxY;
559	res.maxZ	= maxZ;
560	return res;
561}
562
563inline VkVertexInputBindingDivisorDescriptionEXT makeVertexInputBindingDivisorDescriptionEXT (uint32_t binding, uint32_t divisor)
564{
565	VkVertexInputBindingDivisorDescriptionEXT res;
566	res.binding	= binding;
567	res.divisor	= divisor;
568	return res;
569}
570
571inline VkPipelineCreationFeedbackEXT makePipelineCreationFeedbackEXT (VkPipelineCreationFeedbackFlagsEXT flags, uint64_t duration)
572{
573	VkPipelineCreationFeedbackEXT res;
574	res.flags		= flags;
575	res.duration	= duration;
576	return res;
577}
578
579inline VkDrawMeshTasksIndirectCommandNV makeDrawMeshTasksIndirectCommandNV (uint32_t taskCount, uint32_t firstTask)
580{
581	VkDrawMeshTasksIndirectCommandNV res;
582	res.taskCount	= taskCount;
583	res.firstTask	= firstTask;
584	return res;
585}
586
587inline VkBindShaderGroupIndirectCommandNV makeBindShaderGroupIndirectCommandNV (uint32_t groupIndex)
588{
589	VkBindShaderGroupIndirectCommandNV res;
590	res.groupIndex	= groupIndex;
591	return res;
592}
593
594inline VkBindIndexBufferIndirectCommandNV makeBindIndexBufferIndirectCommandNV (VkDeviceAddress bufferAddress, uint32_t size, VkIndexType indexType)
595{
596	VkBindIndexBufferIndirectCommandNV res;
597	res.bufferAddress	= bufferAddress;
598	res.size			= size;
599	res.indexType		= indexType;
600	return res;
601}
602
603inline VkBindVertexBufferIndirectCommandNV makeBindVertexBufferIndirectCommandNV (VkDeviceAddress bufferAddress, uint32_t size, uint32_t stride)
604{
605	VkBindVertexBufferIndirectCommandNV res;
606	res.bufferAddress	= bufferAddress;
607	res.size			= size;
608	res.stride			= stride;
609	return res;
610}
611
612inline VkSetStateFlagsIndirectCommandNV makeSetStateFlagsIndirectCommandNV (uint32_t data)
613{
614	VkSetStateFlagsIndirectCommandNV res;
615	res.data	= data;
616	return res;
617}
618
619inline VkIndirectCommandsStreamNV makeIndirectCommandsStreamNV (VkBuffer buffer, VkDeviceSize offset)
620{
621	VkIndirectCommandsStreamNV res;
622	res.buffer	= buffer;
623	res.offset	= offset;
624	return res;
625}
626
627inline 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)
628{
629	VkSRTDataNV res;
630	res.sx	= sx;
631	res.a	= a;
632	res.b	= b;
633	res.pvx	= pvx;
634	res.sy	= sy;
635	res.c	= c;
636	res.pvy	= pvy;
637	res.sz	= sz;
638	res.pvz	= pvz;
639	res.qx	= qx;
640	res.qy	= qy;
641	res.qz	= qz;
642	res.qw	= qw;
643	res.tx	= tx;
644	res.ty	= ty;
645	res.tz	= tz;
646	return res;
647}
648
649inline VkMutableDescriptorTypeListVALVE makeMutableDescriptorTypeListVALVE (uint32_t descriptorTypeCount, const VkDescriptorType* pDescriptorTypes)
650{
651	VkMutableDescriptorTypeListVALVE res;
652	res.descriptorTypeCount	= descriptorTypeCount;
653	res.pDescriptorTypes	= pDescriptorTypes;
654	return res;
655}
656
657inline VkMultiDrawInfoEXT makeMultiDrawInfoEXT (uint32_t firstVertex, uint32_t vertexCount)
658{
659	VkMultiDrawInfoEXT res;
660	res.firstVertex	= firstVertex;
661	res.vertexCount	= vertexCount;
662	return res;
663}
664
665inline VkMultiDrawIndexedInfoEXT makeMultiDrawIndexedInfoEXT (uint32_t firstIndex, uint32_t indexCount, int32_t vertexOffset)
666{
667	VkMultiDrawIndexedInfoEXT res;
668	res.firstIndex		= firstIndex;
669	res.indexCount		= indexCount;
670	res.vertexOffset	= vertexOffset;
671	return res;
672}
673
674inline VkAccelerationStructureBuildRangeInfoKHR makeAccelerationStructureBuildRangeInfoKHR (uint32_t primitiveCount, uint32_t primitiveOffset, uint32_t firstVertex, uint32_t transformOffset)
675{
676	VkAccelerationStructureBuildRangeInfoKHR res;
677	res.primitiveCount	= primitiveCount;
678	res.primitiveOffset	= primitiveOffset;
679	res.firstVertex		= firstVertex;
680	res.transformOffset	= transformOffset;
681	return res;
682}
683
684inline VkStridedDeviceAddressRegionKHR makeStridedDeviceAddressRegionKHR (VkDeviceAddress deviceAddress, VkDeviceSize stride, VkDeviceSize size)
685{
686	VkStridedDeviceAddressRegionKHR res;
687	res.deviceAddress	= deviceAddress;
688	res.stride			= stride;
689	res.size			= size;
690	return res;
691}
692
693inline VkTraceRaysIndirectCommandKHR makeTraceRaysIndirectCommandKHR (uint32_t width, uint32_t height, uint32_t depth)
694{
695	VkTraceRaysIndirectCommandKHR res;
696	res.width	= width;
697	res.height	= height;
698	res.depth	= depth;
699	return res;
700}
701
702inline StdVideoEncodeH264RefListModEntry makeStdVideoEncodeH264RefListModEntry (StdVideoH264ModificationOfPicNumsIdc modification_of_pic_nums_idc, uint16_t abs_diff_pic_num_minus1, uint16_t long_term_pic_num)
703{
704	StdVideoEncodeH264RefListModEntry res;
705	res.modification_of_pic_nums_idc	= modification_of_pic_nums_idc;
706	res.abs_diff_pic_num_minus1			= abs_diff_pic_num_minus1;
707	res.long_term_pic_num				= long_term_pic_num;
708	return res;
709}
710
711inline StdVideoEncodeH264RefPicMarkingEntry makeStdVideoEncodeH264RefPicMarkingEntry (StdVideoH264MemMgmtControlOp 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)
712{
713	StdVideoEncodeH264RefPicMarkingEntry res;
714	res.operation						= operation;
715	res.difference_of_pic_nums_minus1	= difference_of_pic_nums_minus1;
716	res.long_term_pic_num				= long_term_pic_num;
717	res.long_term_frame_idx				= long_term_frame_idx;
718	res.max_long_term_frame_idx_plus1	= max_long_term_frame_idx_plus1;
719	return res;
720}
721
722inline VkVideoEncodeH264QpEXT makeVideoEncodeH264QpEXT (int32_t qpI, int32_t qpP, int32_t qpB)
723{
724	VkVideoEncodeH264QpEXT res;
725	res.qpI	= qpI;
726	res.qpP	= qpP;
727	res.qpB	= qpB;
728	return res;
729}
730
731inline VkVideoEncodeH264FrameSizeEXT makeVideoEncodeH264FrameSizeEXT (uint32_t frameISize, uint32_t framePSize, uint32_t frameBSize)
732{
733	VkVideoEncodeH264FrameSizeEXT res;
734	res.frameISize	= frameISize;
735	res.framePSize	= framePSize;
736	res.frameBSize	= frameBSize;
737	return res;
738}
739
740inline VkVideoEncodeH265QpEXT makeVideoEncodeH265QpEXT (int32_t qpI, int32_t qpP, int32_t qpB)
741{
742	VkVideoEncodeH265QpEXT res;
743	res.qpI	= qpI;
744	res.qpP	= qpP;
745	res.qpB	= qpB;
746	return res;
747}
748
749inline VkVideoEncodeH265FrameSizeEXT makeVideoEncodeH265FrameSizeEXT (uint32_t frameISize, uint32_t framePSize, uint32_t frameBSize)
750{
751	VkVideoEncodeH265FrameSizeEXT res;
752	res.frameISize	= frameISize;
753	res.framePSize	= framePSize;
754	res.frameBSize	= frameBSize;
755	return res;
756}
757
758inline StdVideoDecodeH264Mvc makeStdVideoDecodeH264Mvc (uint32_t viewId0, uint32_t mvcElementCount, StdVideoDecodeH264MvcElement* pMvcElements)
759{
760	StdVideoDecodeH264Mvc res;
761	res.viewId0			= viewId0;
762	res.mvcElementCount	= mvcElementCount;
763	res.pMvcElements	= pMvcElements;
764	return res;
765}
766