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