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 (deUint32 width, deUint32 height)
6{
7	VkExtent2D res;
8	res.width	= width;
9	res.height	= height;
10	return res;
11}
12
13inline VkExtent3D makeExtent3D (deUint32 width, deUint32 height, deUint32 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 (deInt32 x, deInt32 y)
23{
24	VkOffset2D res;
25	res.x	= x;
26	res.y	= y;
27	return res;
28}
29
30inline VkOffset3D makeOffset3D (deInt32 x, deInt32 y, deInt32 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 (deUint32 x, deUint32 y, deUint32 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 (deUint32 indexCount, deUint32 instanceCount, deUint32 firstIndex, deInt32 vertexOffset, deUint32 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 (deUint32 vertexCount, deUint32 instanceCount, deUint32 firstVertex, deUint32 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, deUint32 baseMipLevel, deUint32 levelCount, deUint32 baseArrayLayer, deUint32 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, deUint32 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, deUint32 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, deUint32 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, deUint32 mipLevel, deUint32 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, deUint32 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 (deUint32 constantID, deUint32 offset, deUintptr 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 (deUint32 mapEntryCount, const VkSpecializationMapEntry* pMapEntries, deUintptr 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 (deUint32 binding, deUint32 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 (deUint32 location, deUint32 binding, VkFormat format, deUint32 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, deUint32 compareMask, deUint32 writeMask, deUint32 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, deUint32 offset, deUint32 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, deUint32 descriptorCount)
274{
275	VkDescriptorPoolSize res;
276	res.type			= type;
277	res.descriptorCount	= descriptorCount;
278	return res;
279}
280
281inline VkDescriptorSetLayoutBinding makeDescriptorSetLayoutBinding (deUint32 binding, VkDescriptorType descriptorType, deUint32 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 (deUint32 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, deUint32 inputAttachmentCount, const VkAttachmentReference* pInputAttachments, deUint32 colorAttachmentCount, const VkAttachmentReference* pColorAttachments, const VkAttachmentReference* pResolveAttachments, const VkAttachmentReference* pDepthStencilAttachment, deUint32 preserveAttachmentCount, const deUint32* 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 (deUint32 srcSubpass, deUint32 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, deUint32 mipLevel, deUint32 baseArrayLayer, deUint32 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, deUint32 stencil)
364{
365	VkClearDepthStencilValue res;
366	res.depth	= depth;
367	res.stencil	= stencil;
368	return res;
369}
370
371inline VkInputAttachmentAspectReference makeInputAttachmentAspectReference (deUint32 subpass, deUint32 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 (deUint32 dstBinding, deUint32 dstArrayElement, deUint32 descriptorCount, VkDescriptorType descriptorType, deUintptr offset, deUintptr 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 (deUint8 major, deUint8 minor, deUint8 subminor, deUint8 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, deUint32 currentStackIndex)
420{
421	VkDisplayPlanePropertiesKHR res;
422	res.currentDisplay		= currentDisplay;
423	res.currentStackIndex	= currentStackIndex;
424	return res;
425}
426
427inline VkPresentRegionKHR makePresentRegionKHR (deUint32 rectangleCount, const VkRectLayerKHR* pRectangles)
428{
429	VkPresentRegionKHR res;
430	res.rectangleCount	= rectangleCount;
431	res.pRectangles		= pRectangles;
432	return res;
433}
434
435inline VkShaderResourceUsageAMD makeShaderResourceUsageAMD (deUint32 numUsedVgprs, deUint32 numUsedSgprs, deUint32 ldsSizePerLocalWorkGroup, deUintptr ldsUsageSizeInBytes, deUintptr 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 (deUint64 refreshDuration)
455{
456	VkRefreshCycleDurationGOOGLE res;
457	res.refreshDuration	= refreshDuration;
458	return res;
459}
460
461inline VkPastPresentationTimingGOOGLE makePastPresentationTimingGOOGLE (deUint32 presentID, deUint64 desiredPresentTime, deUint64 actualPresentTime, deUint64 earliestPresentTime, deUint64 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 (deUint32 presentID, deUint64 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 (deUint64 drmFormatModifier, deUint32 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 VkShadingRatePaletteNV makeShadingRatePaletteNV (deUint32 shadingRatePaletteEntryCount, const VkShadingRatePaletteEntryNV* pShadingRatePaletteEntries)
516{
517	VkShadingRatePaletteNV res;
518	res.shadingRatePaletteEntryCount	= shadingRatePaletteEntryCount;
519	res.pShadingRatePaletteEntries		= pShadingRatePaletteEntries;
520	return res;
521}
522
523inline VkCoarseSampleLocationNV makeCoarseSampleLocationNV (deUint32 pixelX, deUint32 pixelY, deUint32 sample)
524{
525	VkCoarseSampleLocationNV res;
526	res.pixelX	= pixelX;
527	res.pixelY	= pixelY;
528	res.sample	= sample;
529	return res;
530}
531
532inline VkCoarseSampleOrderCustomNV makeCoarseSampleOrderCustomNV (VkShadingRatePaletteEntryNV shadingRate, deUint32 sampleCount, deUint32 sampleLocationCount, const VkCoarseSampleLocationNV* pSampleLocations)
533{
534	VkCoarseSampleOrderCustomNV res;
535	res.shadingRate			= shadingRate;
536	res.sampleCount			= sampleCount;
537	res.sampleLocationCount	= sampleLocationCount;
538	res.pSampleLocations	= pSampleLocations;
539	return res;
540}
541
542inline VkAabbPositionsKHR makeAabbPositionsKHR (float minX, float minY, float minZ, float maxX, float maxY, float maxZ)
543{
544	VkAabbPositionsKHR res;
545	res.minX	= minX;
546	res.minY	= minY;
547	res.minZ	= minZ;
548	res.maxX	= maxX;
549	res.maxY	= maxY;
550	res.maxZ	= maxZ;
551	return res;
552}
553
554inline VkVertexInputBindingDivisorDescriptionEXT makeVertexInputBindingDivisorDescriptionEXT (deUint32 binding, deUint32 divisor)
555{
556	VkVertexInputBindingDivisorDescriptionEXT res;
557	res.binding	= binding;
558	res.divisor	= divisor;
559	return res;
560}
561
562inline VkPipelineCreationFeedbackEXT makePipelineCreationFeedbackEXT (VkPipelineCreationFeedbackFlagsEXT flags, deUint64 duration)
563{
564	VkPipelineCreationFeedbackEXT res;
565	res.flags		= flags;
566	res.duration	= duration;
567	return res;
568}
569
570inline VkDrawMeshTasksIndirectCommandNV makeDrawMeshTasksIndirectCommandNV (deUint32 taskCount, deUint32 firstTask)
571{
572	VkDrawMeshTasksIndirectCommandNV res;
573	res.taskCount	= taskCount;
574	res.firstTask	= firstTask;
575	return res;
576}
577
578inline VkBindShaderGroupIndirectCommandNV makeBindShaderGroupIndirectCommandNV (deUint32 groupIndex)
579{
580	VkBindShaderGroupIndirectCommandNV res;
581	res.groupIndex	= groupIndex;
582	return res;
583}
584
585inline VkBindIndexBufferIndirectCommandNV makeBindIndexBufferIndirectCommandNV (VkDeviceAddress bufferAddress, deUint32 size, VkIndexType indexType)
586{
587	VkBindIndexBufferIndirectCommandNV res;
588	res.bufferAddress	= bufferAddress;
589	res.size			= size;
590	res.indexType		= indexType;
591	return res;
592}
593
594inline VkBindVertexBufferIndirectCommandNV makeBindVertexBufferIndirectCommandNV (VkDeviceAddress bufferAddress, deUint32 size, deUint32 stride)
595{
596	VkBindVertexBufferIndirectCommandNV res;
597	res.bufferAddress	= bufferAddress;
598	res.size			= size;
599	res.stride			= stride;
600	return res;
601}
602
603inline VkSetStateFlagsIndirectCommandNV makeSetStateFlagsIndirectCommandNV (deUint32 data)
604{
605	VkSetStateFlagsIndirectCommandNV res;
606	res.data	= data;
607	return res;
608}
609
610inline VkIndirectCommandsStreamNV makeIndirectCommandsStreamNV (VkBuffer buffer, VkDeviceSize offset)
611{
612	VkIndirectCommandsStreamNV res;
613	res.buffer	= buffer;
614	res.offset	= offset;
615	return res;
616}
617
618inline VkAccelerationStructureBuildOffsetInfoKHR makeAccelerationStructureBuildOffsetInfoKHR (deUint32 primitiveCount, deUint32 primitiveOffset, deUint32 firstVertex, deUint32 transformOffset)
619{
620	VkAccelerationStructureBuildOffsetInfoKHR res;
621	res.primitiveCount	= primitiveCount;
622	res.primitiveOffset	= primitiveOffset;
623	res.firstVertex		= firstVertex;
624	res.transformOffset	= transformOffset;
625	return res;
626}
627
628inline VkStridedBufferRegionKHR makeStridedBufferRegionKHR (VkBuffer buffer, VkDeviceSize offset, VkDeviceSize stride, VkDeviceSize size)
629{
630	VkStridedBufferRegionKHR res;
631	res.buffer	= buffer;
632	res.offset	= offset;
633	res.stride	= stride;
634	res.size	= size;
635	return res;
636}
637
638inline VkTraceRaysIndirectCommandKHR makeTraceRaysIndirectCommandKHR (deUint32 width, deUint32 height, deUint32 depth)
639{
640	VkTraceRaysIndirectCommandKHR res;
641	res.width	= width;
642	res.height	= height;
643	res.depth	= depth;
644	return res;
645}
646