• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* This file is generated by venus-protocol.  See vn_protocol_renderer.h. */
2 
3 /*
4  * Copyright 2020 Google LLC
5  * SPDX-License-Identifier: MIT
6  */
7 
8 #ifndef VN_PROTOCOL_RENDERER_DEFINES_H
9 #define VN_PROTOCOL_RENDERER_DEFINES_H
10 
11 #include <stdarg.h>
12 #include <stdlib.h>
13 #include <string.h>
14 #include <stdio.h>
15 
16 #include "vulkan.h"
17 
18 #include "vn_protocol_renderer_cs.h"
19 
20 /* VkStructureType */
21 #define VK_STRUCTURE_TYPE_RING_CREATE_INFO_MESA ((VkStructureType)1000384000)
22 #define VK_STRUCTURE_TYPE_MEMORY_RESOURCE_PROPERTIES_MESA ((VkStructureType)1000384001)
23 #define VK_STRUCTURE_TYPE_IMPORT_MEMORY_RESOURCE_INFO_MESA ((VkStructureType)1000384002)
24 #define VK_STRUCTURE_TYPE_MEMORY_RESOURCE_ALLOCATION_SIZE_PROPERTIES_100000_MESA ((VkStructureType)1000384003)
25 
26 typedef enum VkCommandTypeEXT {
27     VK_COMMAND_TYPE_vkCreateInstance_EXT = 0,
28     VK_COMMAND_TYPE_vkDestroyInstance_EXT = 1,
29     VK_COMMAND_TYPE_vkEnumeratePhysicalDevices_EXT = 2,
30     VK_COMMAND_TYPE_vkGetPhysicalDeviceFeatures_EXT = 3,
31     VK_COMMAND_TYPE_vkGetPhysicalDeviceFormatProperties_EXT = 4,
32     VK_COMMAND_TYPE_vkGetPhysicalDeviceImageFormatProperties_EXT = 5,
33     VK_COMMAND_TYPE_vkGetPhysicalDeviceProperties_EXT = 6,
34     VK_COMMAND_TYPE_vkGetPhysicalDeviceQueueFamilyProperties_EXT = 7,
35     VK_COMMAND_TYPE_vkGetPhysicalDeviceMemoryProperties_EXT = 8,
36     VK_COMMAND_TYPE_vkGetInstanceProcAddr_EXT = 9,
37     VK_COMMAND_TYPE_vkGetDeviceProcAddr_EXT = 10,
38     VK_COMMAND_TYPE_vkCreateDevice_EXT = 11,
39     VK_COMMAND_TYPE_vkDestroyDevice_EXT = 12,
40     VK_COMMAND_TYPE_vkEnumerateInstanceExtensionProperties_EXT = 13,
41     VK_COMMAND_TYPE_vkEnumerateDeviceExtensionProperties_EXT = 14,
42     VK_COMMAND_TYPE_vkEnumerateInstanceLayerProperties_EXT = 15,
43     VK_COMMAND_TYPE_vkEnumerateDeviceLayerProperties_EXT = 16,
44     VK_COMMAND_TYPE_vkGetDeviceQueue_EXT = 17,
45     VK_COMMAND_TYPE_vkQueueSubmit_EXT = 18,
46     VK_COMMAND_TYPE_vkQueueWaitIdle_EXT = 19,
47     VK_COMMAND_TYPE_vkDeviceWaitIdle_EXT = 20,
48     VK_COMMAND_TYPE_vkAllocateMemory_EXT = 21,
49     VK_COMMAND_TYPE_vkFreeMemory_EXT = 22,
50     VK_COMMAND_TYPE_vkMapMemory_EXT = 23,
51     VK_COMMAND_TYPE_vkUnmapMemory_EXT = 24,
52     VK_COMMAND_TYPE_vkFlushMappedMemoryRanges_EXT = 25,
53     VK_COMMAND_TYPE_vkInvalidateMappedMemoryRanges_EXT = 26,
54     VK_COMMAND_TYPE_vkGetDeviceMemoryCommitment_EXT = 27,
55     VK_COMMAND_TYPE_vkBindBufferMemory_EXT = 28,
56     VK_COMMAND_TYPE_vkBindImageMemory_EXT = 29,
57     VK_COMMAND_TYPE_vkGetBufferMemoryRequirements_EXT = 30,
58     VK_COMMAND_TYPE_vkGetImageMemoryRequirements_EXT = 31,
59     VK_COMMAND_TYPE_vkGetImageSparseMemoryRequirements_EXT = 32,
60     VK_COMMAND_TYPE_vkGetPhysicalDeviceSparseImageFormatProperties_EXT = 33,
61     VK_COMMAND_TYPE_vkQueueBindSparse_EXT = 34,
62     VK_COMMAND_TYPE_vkCreateFence_EXT = 35,
63     VK_COMMAND_TYPE_vkDestroyFence_EXT = 36,
64     VK_COMMAND_TYPE_vkResetFences_EXT = 37,
65     VK_COMMAND_TYPE_vkGetFenceStatus_EXT = 38,
66     VK_COMMAND_TYPE_vkWaitForFences_EXT = 39,
67     VK_COMMAND_TYPE_vkCreateSemaphore_EXT = 40,
68     VK_COMMAND_TYPE_vkDestroySemaphore_EXT = 41,
69     VK_COMMAND_TYPE_vkCreateEvent_EXT = 42,
70     VK_COMMAND_TYPE_vkDestroyEvent_EXT = 43,
71     VK_COMMAND_TYPE_vkGetEventStatus_EXT = 44,
72     VK_COMMAND_TYPE_vkSetEvent_EXT = 45,
73     VK_COMMAND_TYPE_vkResetEvent_EXT = 46,
74     VK_COMMAND_TYPE_vkCreateQueryPool_EXT = 47,
75     VK_COMMAND_TYPE_vkDestroyQueryPool_EXT = 48,
76     VK_COMMAND_TYPE_vkGetQueryPoolResults_EXT = 49,
77     VK_COMMAND_TYPE_vkCreateBuffer_EXT = 50,
78     VK_COMMAND_TYPE_vkDestroyBuffer_EXT = 51,
79     VK_COMMAND_TYPE_vkCreateBufferView_EXT = 52,
80     VK_COMMAND_TYPE_vkDestroyBufferView_EXT = 53,
81     VK_COMMAND_TYPE_vkCreateImage_EXT = 54,
82     VK_COMMAND_TYPE_vkDestroyImage_EXT = 55,
83     VK_COMMAND_TYPE_vkGetImageSubresourceLayout_EXT = 56,
84     VK_COMMAND_TYPE_vkCreateImageView_EXT = 57,
85     VK_COMMAND_TYPE_vkDestroyImageView_EXT = 58,
86     VK_COMMAND_TYPE_vkCreateShaderModule_EXT = 59,
87     VK_COMMAND_TYPE_vkDestroyShaderModule_EXT = 60,
88     VK_COMMAND_TYPE_vkCreatePipelineCache_EXT = 61,
89     VK_COMMAND_TYPE_vkDestroyPipelineCache_EXT = 62,
90     VK_COMMAND_TYPE_vkGetPipelineCacheData_EXT = 63,
91     VK_COMMAND_TYPE_vkMergePipelineCaches_EXT = 64,
92     VK_COMMAND_TYPE_vkCreateGraphicsPipelines_EXT = 65,
93     VK_COMMAND_TYPE_vkCreateComputePipelines_EXT = 66,
94     VK_COMMAND_TYPE_vkDestroyPipeline_EXT = 67,
95     VK_COMMAND_TYPE_vkCreatePipelineLayout_EXT = 68,
96     VK_COMMAND_TYPE_vkDestroyPipelineLayout_EXT = 69,
97     VK_COMMAND_TYPE_vkCreateSampler_EXT = 70,
98     VK_COMMAND_TYPE_vkDestroySampler_EXT = 71,
99     VK_COMMAND_TYPE_vkCreateDescriptorSetLayout_EXT = 72,
100     VK_COMMAND_TYPE_vkDestroyDescriptorSetLayout_EXT = 73,
101     VK_COMMAND_TYPE_vkCreateDescriptorPool_EXT = 74,
102     VK_COMMAND_TYPE_vkDestroyDescriptorPool_EXT = 75,
103     VK_COMMAND_TYPE_vkResetDescriptorPool_EXT = 76,
104     VK_COMMAND_TYPE_vkAllocateDescriptorSets_EXT = 77,
105     VK_COMMAND_TYPE_vkFreeDescriptorSets_EXT = 78,
106     VK_COMMAND_TYPE_vkUpdateDescriptorSets_EXT = 79,
107     VK_COMMAND_TYPE_vkCreateFramebuffer_EXT = 80,
108     VK_COMMAND_TYPE_vkDestroyFramebuffer_EXT = 81,
109     VK_COMMAND_TYPE_vkCreateRenderPass_EXT = 82,
110     VK_COMMAND_TYPE_vkDestroyRenderPass_EXT = 83,
111     VK_COMMAND_TYPE_vkGetRenderAreaGranularity_EXT = 84,
112     VK_COMMAND_TYPE_vkCreateCommandPool_EXT = 85,
113     VK_COMMAND_TYPE_vkDestroyCommandPool_EXT = 86,
114     VK_COMMAND_TYPE_vkResetCommandPool_EXT = 87,
115     VK_COMMAND_TYPE_vkAllocateCommandBuffers_EXT = 88,
116     VK_COMMAND_TYPE_vkFreeCommandBuffers_EXT = 89,
117     VK_COMMAND_TYPE_vkBeginCommandBuffer_EXT = 90,
118     VK_COMMAND_TYPE_vkEndCommandBuffer_EXT = 91,
119     VK_COMMAND_TYPE_vkResetCommandBuffer_EXT = 92,
120     VK_COMMAND_TYPE_vkCmdBindPipeline_EXT = 93,
121     VK_COMMAND_TYPE_vkCmdSetViewport_EXT = 94,
122     VK_COMMAND_TYPE_vkCmdSetScissor_EXT = 95,
123     VK_COMMAND_TYPE_vkCmdSetLineWidth_EXT = 96,
124     VK_COMMAND_TYPE_vkCmdSetDepthBias_EXT = 97,
125     VK_COMMAND_TYPE_vkCmdSetBlendConstants_EXT = 98,
126     VK_COMMAND_TYPE_vkCmdSetDepthBounds_EXT = 99,
127     VK_COMMAND_TYPE_vkCmdSetStencilCompareMask_EXT = 100,
128     VK_COMMAND_TYPE_vkCmdSetStencilWriteMask_EXT = 101,
129     VK_COMMAND_TYPE_vkCmdSetStencilReference_EXT = 102,
130     VK_COMMAND_TYPE_vkCmdBindDescriptorSets_EXT = 103,
131     VK_COMMAND_TYPE_vkCmdBindIndexBuffer_EXT = 104,
132     VK_COMMAND_TYPE_vkCmdBindVertexBuffers_EXT = 105,
133     VK_COMMAND_TYPE_vkCmdDraw_EXT = 106,
134     VK_COMMAND_TYPE_vkCmdDrawIndexed_EXT = 107,
135     VK_COMMAND_TYPE_vkCmdDrawIndirect_EXT = 108,
136     VK_COMMAND_TYPE_vkCmdDrawIndexedIndirect_EXT = 109,
137     VK_COMMAND_TYPE_vkCmdDispatch_EXT = 110,
138     VK_COMMAND_TYPE_vkCmdDispatchIndirect_EXT = 111,
139     VK_COMMAND_TYPE_vkCmdCopyBuffer_EXT = 112,
140     VK_COMMAND_TYPE_vkCmdCopyImage_EXT = 113,
141     VK_COMMAND_TYPE_vkCmdBlitImage_EXT = 114,
142     VK_COMMAND_TYPE_vkCmdCopyBufferToImage_EXT = 115,
143     VK_COMMAND_TYPE_vkCmdCopyImageToBuffer_EXT = 116,
144     VK_COMMAND_TYPE_vkCmdUpdateBuffer_EXT = 117,
145     VK_COMMAND_TYPE_vkCmdFillBuffer_EXT = 118,
146     VK_COMMAND_TYPE_vkCmdClearColorImage_EXT = 119,
147     VK_COMMAND_TYPE_vkCmdClearDepthStencilImage_EXT = 120,
148     VK_COMMAND_TYPE_vkCmdClearAttachments_EXT = 121,
149     VK_COMMAND_TYPE_vkCmdResolveImage_EXT = 122,
150     VK_COMMAND_TYPE_vkCmdSetEvent_EXT = 123,
151     VK_COMMAND_TYPE_vkCmdResetEvent_EXT = 124,
152     VK_COMMAND_TYPE_vkCmdWaitEvents_EXT = 125,
153     VK_COMMAND_TYPE_vkCmdPipelineBarrier_EXT = 126,
154     VK_COMMAND_TYPE_vkCmdBeginQuery_EXT = 127,
155     VK_COMMAND_TYPE_vkCmdEndQuery_EXT = 128,
156     VK_COMMAND_TYPE_vkCmdResetQueryPool_EXT = 129,
157     VK_COMMAND_TYPE_vkCmdWriteTimestamp_EXT = 130,
158     VK_COMMAND_TYPE_vkCmdCopyQueryPoolResults_EXT = 131,
159     VK_COMMAND_TYPE_vkCmdPushConstants_EXT = 132,
160     VK_COMMAND_TYPE_vkCmdBeginRenderPass_EXT = 133,
161     VK_COMMAND_TYPE_vkCmdNextSubpass_EXT = 134,
162     VK_COMMAND_TYPE_vkCmdEndRenderPass_EXT = 135,
163     VK_COMMAND_TYPE_vkCmdExecuteCommands_EXT = 136,
164     VK_COMMAND_TYPE_vkEnumerateInstanceVersion_EXT = 137,
165     VK_COMMAND_TYPE_vkBindBufferMemory2_EXT = 138,
166     VK_COMMAND_TYPE_vkBindBufferMemory2KHR_EXT = 138,
167     VK_COMMAND_TYPE_vkBindImageMemory2_EXT = 139,
168     VK_COMMAND_TYPE_vkBindImageMemory2KHR_EXT = 139,
169     VK_COMMAND_TYPE_vkGetDeviceGroupPeerMemoryFeatures_EXT = 140,
170     VK_COMMAND_TYPE_vkGetDeviceGroupPeerMemoryFeaturesKHR_EXT = 140,
171     VK_COMMAND_TYPE_vkCmdSetDeviceMask_EXT = 141,
172     VK_COMMAND_TYPE_vkCmdSetDeviceMaskKHR_EXT = 141,
173     VK_COMMAND_TYPE_vkCmdDispatchBase_EXT = 142,
174     VK_COMMAND_TYPE_vkCmdDispatchBaseKHR_EXT = 142,
175     VK_COMMAND_TYPE_vkEnumeratePhysicalDeviceGroups_EXT = 143,
176     VK_COMMAND_TYPE_vkEnumeratePhysicalDeviceGroupsKHR_EXT = 143,
177     VK_COMMAND_TYPE_vkGetImageMemoryRequirements2_EXT = 144,
178     VK_COMMAND_TYPE_vkGetImageMemoryRequirements2KHR_EXT = 144,
179     VK_COMMAND_TYPE_vkGetBufferMemoryRequirements2_EXT = 145,
180     VK_COMMAND_TYPE_vkGetBufferMemoryRequirements2KHR_EXT = 145,
181     VK_COMMAND_TYPE_vkGetImageSparseMemoryRequirements2_EXT = 146,
182     VK_COMMAND_TYPE_vkGetImageSparseMemoryRequirements2KHR_EXT = 146,
183     VK_COMMAND_TYPE_vkGetPhysicalDeviceFeatures2_EXT = 147,
184     VK_COMMAND_TYPE_vkGetPhysicalDeviceFeatures2KHR_EXT = 147,
185     VK_COMMAND_TYPE_vkGetPhysicalDeviceProperties2_EXT = 148,
186     VK_COMMAND_TYPE_vkGetPhysicalDeviceProperties2KHR_EXT = 148,
187     VK_COMMAND_TYPE_vkGetPhysicalDeviceFormatProperties2_EXT = 149,
188     VK_COMMAND_TYPE_vkGetPhysicalDeviceFormatProperties2KHR_EXT = 149,
189     VK_COMMAND_TYPE_vkGetPhysicalDeviceImageFormatProperties2_EXT = 150,
190     VK_COMMAND_TYPE_vkGetPhysicalDeviceImageFormatProperties2KHR_EXT = 150,
191     VK_COMMAND_TYPE_vkGetPhysicalDeviceQueueFamilyProperties2_EXT = 151,
192     VK_COMMAND_TYPE_vkGetPhysicalDeviceQueueFamilyProperties2KHR_EXT = 151,
193     VK_COMMAND_TYPE_vkGetPhysicalDeviceMemoryProperties2_EXT = 152,
194     VK_COMMAND_TYPE_vkGetPhysicalDeviceMemoryProperties2KHR_EXT = 152,
195     VK_COMMAND_TYPE_vkGetPhysicalDeviceSparseImageFormatProperties2_EXT = 153,
196     VK_COMMAND_TYPE_vkGetPhysicalDeviceSparseImageFormatProperties2KHR_EXT = 153,
197     VK_COMMAND_TYPE_vkTrimCommandPool_EXT = 154,
198     VK_COMMAND_TYPE_vkTrimCommandPoolKHR_EXT = 154,
199     VK_COMMAND_TYPE_vkGetDeviceQueue2_EXT = 155,
200     VK_COMMAND_TYPE_vkCreateSamplerYcbcrConversion_EXT = 156,
201     VK_COMMAND_TYPE_vkCreateSamplerYcbcrConversionKHR_EXT = 156,
202     VK_COMMAND_TYPE_vkDestroySamplerYcbcrConversion_EXT = 157,
203     VK_COMMAND_TYPE_vkDestroySamplerYcbcrConversionKHR_EXT = 157,
204     VK_COMMAND_TYPE_vkCreateDescriptorUpdateTemplate_EXT = 158,
205     VK_COMMAND_TYPE_vkCreateDescriptorUpdateTemplateKHR_EXT = 158,
206     VK_COMMAND_TYPE_vkDestroyDescriptorUpdateTemplate_EXT = 159,
207     VK_COMMAND_TYPE_vkDestroyDescriptorUpdateTemplateKHR_EXT = 159,
208     VK_COMMAND_TYPE_vkUpdateDescriptorSetWithTemplate_EXT = 160,
209     VK_COMMAND_TYPE_vkUpdateDescriptorSetWithTemplateKHR_EXT = 160,
210     VK_COMMAND_TYPE_vkGetPhysicalDeviceExternalBufferProperties_EXT = 161,
211     VK_COMMAND_TYPE_vkGetPhysicalDeviceExternalBufferPropertiesKHR_EXT = 161,
212     VK_COMMAND_TYPE_vkGetPhysicalDeviceExternalFenceProperties_EXT = 162,
213     VK_COMMAND_TYPE_vkGetPhysicalDeviceExternalFencePropertiesKHR_EXT = 162,
214     VK_COMMAND_TYPE_vkGetPhysicalDeviceExternalSemaphoreProperties_EXT = 163,
215     VK_COMMAND_TYPE_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR_EXT = 163,
216     VK_COMMAND_TYPE_vkGetDescriptorSetLayoutSupport_EXT = 164,
217     VK_COMMAND_TYPE_vkGetDescriptorSetLayoutSupportKHR_EXT = 164,
218     VK_COMMAND_TYPE_vkCmdDrawIndirectCount_EXT = 165,
219     VK_COMMAND_TYPE_vkCmdDrawIndirectCountKHR_EXT = 165,
220     VK_COMMAND_TYPE_vkCmdDrawIndirectCountAMD_EXT = 165,
221     VK_COMMAND_TYPE_vkCmdDrawIndexedIndirectCount_EXT = 166,
222     VK_COMMAND_TYPE_vkCmdDrawIndexedIndirectCountKHR_EXT = 166,
223     VK_COMMAND_TYPE_vkCmdDrawIndexedIndirectCountAMD_EXT = 166,
224     VK_COMMAND_TYPE_vkCreateRenderPass2_EXT = 167,
225     VK_COMMAND_TYPE_vkCreateRenderPass2KHR_EXT = 167,
226     VK_COMMAND_TYPE_vkCmdBeginRenderPass2_EXT = 168,
227     VK_COMMAND_TYPE_vkCmdBeginRenderPass2KHR_EXT = 168,
228     VK_COMMAND_TYPE_vkCmdNextSubpass2_EXT = 169,
229     VK_COMMAND_TYPE_vkCmdNextSubpass2KHR_EXT = 169,
230     VK_COMMAND_TYPE_vkCmdEndRenderPass2_EXT = 170,
231     VK_COMMAND_TYPE_vkCmdEndRenderPass2KHR_EXT = 170,
232     VK_COMMAND_TYPE_vkResetQueryPool_EXT = 171,
233     VK_COMMAND_TYPE_vkResetQueryPoolEXT_EXT = 171,
234     VK_COMMAND_TYPE_vkGetSemaphoreCounterValue_EXT = 172,
235     VK_COMMAND_TYPE_vkGetSemaphoreCounterValueKHR_EXT = 172,
236     VK_COMMAND_TYPE_vkWaitSemaphores_EXT = 173,
237     VK_COMMAND_TYPE_vkWaitSemaphoresKHR_EXT = 173,
238     VK_COMMAND_TYPE_vkSignalSemaphore_EXT = 174,
239     VK_COMMAND_TYPE_vkSignalSemaphoreKHR_EXT = 174,
240     VK_COMMAND_TYPE_vkGetBufferDeviceAddress_EXT = 175,
241     VK_COMMAND_TYPE_vkGetBufferDeviceAddressKHR_EXT = 175,
242     VK_COMMAND_TYPE_vkGetBufferDeviceAddressEXT_EXT = 175,
243     VK_COMMAND_TYPE_vkGetBufferOpaqueCaptureAddress_EXT = 176,
244     VK_COMMAND_TYPE_vkGetBufferOpaqueCaptureAddressKHR_EXT = 176,
245     VK_COMMAND_TYPE_vkGetDeviceMemoryOpaqueCaptureAddress_EXT = 177,
246     VK_COMMAND_TYPE_vkGetDeviceMemoryOpaqueCaptureAddressKHR_EXT = 177,
247     VK_COMMAND_TYPE_vkCmdBindTransformFeedbackBuffersEXT_EXT = 181,
248     VK_COMMAND_TYPE_vkCmdBeginTransformFeedbackEXT_EXT = 182,
249     VK_COMMAND_TYPE_vkCmdEndTransformFeedbackEXT_EXT = 183,
250     VK_COMMAND_TYPE_vkCmdBeginQueryIndexedEXT_EXT = 184,
251     VK_COMMAND_TYPE_vkCmdEndQueryIndexedEXT_EXT = 185,
252     VK_COMMAND_TYPE_vkCmdDrawIndirectByteCountEXT_EXT = 186,
253     VK_COMMAND_TYPE_vkGetMemoryFdKHR_EXT = 193,
254     VK_COMMAND_TYPE_vkGetMemoryFdPropertiesKHR_EXT = 194,
255     VK_COMMAND_TYPE_vkGetImageDrmFormatModifierPropertiesEXT_EXT = 187,
256     VK_COMMAND_TYPE_vkSetReplyCommandStreamMESA_EXT = 178,
257     VK_COMMAND_TYPE_vkSeekReplyCommandStreamMESA_EXT = 179,
258     VK_COMMAND_TYPE_vkExecuteCommandStreamsMESA_EXT = 180,
259     VK_COMMAND_TYPE_vkCreateRingMESA_EXT = 188,
260     VK_COMMAND_TYPE_vkDestroyRingMESA_EXT = 189,
261     VK_COMMAND_TYPE_vkNotifyRingMESA_EXT = 190,
262     VK_COMMAND_TYPE_vkWriteRingExtraMESA_EXT = 191,
263     VK_COMMAND_TYPE_vkGetMemoryResourcePropertiesMESA_EXT = 192,
264     VK_COMMAND_TYPE_vkGetVenusExperimentalFeatureData100000MESA_EXT = 195,
265 } VkCommandTypeEXT;
266 
267 typedef enum VkCommandFlagBitsEXT {
268     VK_COMMAND_GENERATE_REPLY_BIT_EXT = 0x00000001,
269 } VkCommandFlagBitsEXT;
270 
271 typedef VkFlags VkCommandFlagsEXT;
272 
273 typedef VkFlags VkCommandStreamExecutionFlagsMESA;
274 
275 typedef VkFlags VkRingCreateFlagsMESA;
276 
277 typedef VkFlags VkRingNotifyFlagsMESA;
278 
279 typedef struct VkCommandStreamDescriptionMESA {
280     uint32_t resourceId;
281     size_t offset;
282     size_t size;
283 } VkCommandStreamDescriptionMESA;
284 
285 typedef struct VkCommandStreamDependencyMESA {
286     uint32_t srcCommandStream;
287     uint32_t dstCommandStream;
288 } VkCommandStreamDependencyMESA;
289 
290 typedef struct VkRingCreateInfoMESA {
291     VkStructureType sType;
292     const void* pNext;
293     VkRingCreateFlagsMESA flags;
294     uint32_t resourceId;
295     size_t offset;
296     size_t size;
297     uint64_t idleTimeout;
298     size_t headOffset;
299     size_t tailOffset;
300     size_t statusOffset;
301     size_t bufferOffset;
302     size_t bufferSize;
303     size_t extraOffset;
304     size_t extraSize;
305 } VkRingCreateInfoMESA;
306 
307 typedef struct VkMemoryResourcePropertiesMESA {
308     VkStructureType sType;
309     void* pNext;
310     uint32_t memoryTypeBits;
311 } VkMemoryResourcePropertiesMESA;
312 
313 typedef struct VkImportMemoryResourceInfoMESA {
314     VkStructureType sType;
315     const void* pNext;
316     uint32_t resourceId;
317 } VkImportMemoryResourceInfoMESA;
318 
319 typedef struct VkVenusExperimentalFeatures100000MESA {
320     VkBool32 memoryResourceAllocationSize;
321     VkBool32 globalFencing;
322     VkBool32 largeRing;
323 } VkVenusExperimentalFeatures100000MESA;
324 
325 typedef struct VkMemoryResourceAllocationSizeProperties100000MESA {
326     VkStructureType sType;
327     void* pNext;
328     uint64_t allocationSize;
329 } VkMemoryResourceAllocationSizeProperties100000MESA;
330 
331 struct vn_command_vkCreateInstance {
332     const VkInstanceCreateInfo* pCreateInfo;
333     const VkAllocationCallbacks* pAllocator;
334     VkInstance* pInstance;
335 
336     VkResult ret;
337 };
338 
339 struct vn_command_vkDestroyInstance {
340     VkInstance instance;
341     const VkAllocationCallbacks* pAllocator;
342 };
343 
344 struct vn_command_vkEnumeratePhysicalDevices {
345     VkInstance instance;
346     uint32_t* pPhysicalDeviceCount;
347     VkPhysicalDevice* pPhysicalDevices;
348 
349     VkResult ret;
350 };
351 
352 struct vn_command_vkGetDeviceProcAddr {
353     VkDevice device;
354     const char* pName;
355 
356     PFN_vkVoidFunction ret;
357 };
358 
359 struct vn_command_vkGetInstanceProcAddr {
360     VkInstance instance;
361     const char* pName;
362 
363     PFN_vkVoidFunction ret;
364 };
365 
366 struct vn_command_vkGetPhysicalDeviceProperties {
367     VkPhysicalDevice physicalDevice;
368     VkPhysicalDeviceProperties* pProperties;
369 };
370 
371 struct vn_command_vkGetPhysicalDeviceQueueFamilyProperties {
372     VkPhysicalDevice physicalDevice;
373     uint32_t* pQueueFamilyPropertyCount;
374     VkQueueFamilyProperties* pQueueFamilyProperties;
375 };
376 
377 struct vn_command_vkGetPhysicalDeviceMemoryProperties {
378     VkPhysicalDevice physicalDevice;
379     VkPhysicalDeviceMemoryProperties* pMemoryProperties;
380 };
381 
382 struct vn_command_vkGetPhysicalDeviceFeatures {
383     VkPhysicalDevice physicalDevice;
384     VkPhysicalDeviceFeatures* pFeatures;
385 };
386 
387 struct vn_command_vkGetPhysicalDeviceFormatProperties {
388     VkPhysicalDevice physicalDevice;
389     VkFormat format;
390     VkFormatProperties* pFormatProperties;
391 };
392 
393 struct vn_command_vkGetPhysicalDeviceImageFormatProperties {
394     VkPhysicalDevice physicalDevice;
395     VkFormat format;
396     VkImageType type;
397     VkImageTiling tiling;
398     VkImageUsageFlags usage;
399     VkImageCreateFlags flags;
400     VkImageFormatProperties* pImageFormatProperties;
401 
402     VkResult ret;
403 };
404 
405 struct vn_command_vkCreateDevice {
406     VkPhysicalDevice physicalDevice;
407     const VkDeviceCreateInfo* pCreateInfo;
408     const VkAllocationCallbacks* pAllocator;
409     VkDevice* pDevice;
410 
411     VkResult ret;
412 };
413 
414 struct vn_command_vkDestroyDevice {
415     VkDevice device;
416     const VkAllocationCallbacks* pAllocator;
417 };
418 
419 struct vn_command_vkEnumerateInstanceVersion {
420     uint32_t* pApiVersion;
421 
422     VkResult ret;
423 };
424 
425 struct vn_command_vkEnumerateInstanceLayerProperties {
426     uint32_t* pPropertyCount;
427     VkLayerProperties* pProperties;
428 
429     VkResult ret;
430 };
431 
432 struct vn_command_vkEnumerateInstanceExtensionProperties {
433     const char* pLayerName;
434     uint32_t* pPropertyCount;
435     VkExtensionProperties* pProperties;
436 
437     VkResult ret;
438 };
439 
440 struct vn_command_vkEnumerateDeviceLayerProperties {
441     VkPhysicalDevice physicalDevice;
442     uint32_t* pPropertyCount;
443     VkLayerProperties* pProperties;
444 
445     VkResult ret;
446 };
447 
448 struct vn_command_vkEnumerateDeviceExtensionProperties {
449     VkPhysicalDevice physicalDevice;
450     const char* pLayerName;
451     uint32_t* pPropertyCount;
452     VkExtensionProperties* pProperties;
453 
454     VkResult ret;
455 };
456 
457 struct vn_command_vkGetDeviceQueue {
458     VkDevice device;
459     uint32_t queueFamilyIndex;
460     uint32_t queueIndex;
461     VkQueue* pQueue;
462 };
463 
464 struct vn_command_vkQueueSubmit {
465     VkQueue queue;
466     uint32_t submitCount;
467     const VkSubmitInfo* pSubmits;
468     VkFence fence;
469 
470     VkResult ret;
471 };
472 
473 struct vn_command_vkQueueWaitIdle {
474     VkQueue queue;
475 
476     VkResult ret;
477 };
478 
479 struct vn_command_vkDeviceWaitIdle {
480     VkDevice device;
481 
482     VkResult ret;
483 };
484 
485 struct vn_command_vkAllocateMemory {
486     VkDevice device;
487     const VkMemoryAllocateInfo* pAllocateInfo;
488     const VkAllocationCallbacks* pAllocator;
489     VkDeviceMemory* pMemory;
490 
491     VkResult ret;
492 };
493 
494 struct vn_command_vkFreeMemory {
495     VkDevice device;
496     VkDeviceMemory memory;
497     const VkAllocationCallbacks* pAllocator;
498 };
499 
500 struct vn_command_vkMapMemory {
501     VkDevice device;
502     VkDeviceMemory memory;
503     VkDeviceSize offset;
504     VkDeviceSize size;
505     VkMemoryMapFlags flags;
506     void** ppData;
507 
508     VkResult ret;
509 };
510 
511 struct vn_command_vkUnmapMemory {
512     VkDevice device;
513     VkDeviceMemory memory;
514 };
515 
516 struct vn_command_vkFlushMappedMemoryRanges {
517     VkDevice device;
518     uint32_t memoryRangeCount;
519     const VkMappedMemoryRange* pMemoryRanges;
520 
521     VkResult ret;
522 };
523 
524 struct vn_command_vkInvalidateMappedMemoryRanges {
525     VkDevice device;
526     uint32_t memoryRangeCount;
527     const VkMappedMemoryRange* pMemoryRanges;
528 
529     VkResult ret;
530 };
531 
532 struct vn_command_vkGetDeviceMemoryCommitment {
533     VkDevice device;
534     VkDeviceMemory memory;
535     VkDeviceSize* pCommittedMemoryInBytes;
536 };
537 
538 struct vn_command_vkGetBufferMemoryRequirements {
539     VkDevice device;
540     VkBuffer buffer;
541     VkMemoryRequirements* pMemoryRequirements;
542 };
543 
544 struct vn_command_vkBindBufferMemory {
545     VkDevice device;
546     VkBuffer buffer;
547     VkDeviceMemory memory;
548     VkDeviceSize memoryOffset;
549 
550     VkResult ret;
551 };
552 
553 struct vn_command_vkGetImageMemoryRequirements {
554     VkDevice device;
555     VkImage image;
556     VkMemoryRequirements* pMemoryRequirements;
557 };
558 
559 struct vn_command_vkBindImageMemory {
560     VkDevice device;
561     VkImage image;
562     VkDeviceMemory memory;
563     VkDeviceSize memoryOffset;
564 
565     VkResult ret;
566 };
567 
568 struct vn_command_vkGetImageSparseMemoryRequirements {
569     VkDevice device;
570     VkImage image;
571     uint32_t* pSparseMemoryRequirementCount;
572     VkSparseImageMemoryRequirements* pSparseMemoryRequirements;
573 };
574 
575 struct vn_command_vkGetPhysicalDeviceSparseImageFormatProperties {
576     VkPhysicalDevice physicalDevice;
577     VkFormat format;
578     VkImageType type;
579     VkSampleCountFlagBits samples;
580     VkImageUsageFlags usage;
581     VkImageTiling tiling;
582     uint32_t* pPropertyCount;
583     VkSparseImageFormatProperties* pProperties;
584 };
585 
586 struct vn_command_vkQueueBindSparse {
587     VkQueue queue;
588     uint32_t bindInfoCount;
589     const VkBindSparseInfo* pBindInfo;
590     VkFence fence;
591 
592     VkResult ret;
593 };
594 
595 struct vn_command_vkCreateFence {
596     VkDevice device;
597     const VkFenceCreateInfo* pCreateInfo;
598     const VkAllocationCallbacks* pAllocator;
599     VkFence* pFence;
600 
601     VkResult ret;
602 };
603 
604 struct vn_command_vkDestroyFence {
605     VkDevice device;
606     VkFence fence;
607     const VkAllocationCallbacks* pAllocator;
608 };
609 
610 struct vn_command_vkResetFences {
611     VkDevice device;
612     uint32_t fenceCount;
613     const VkFence* pFences;
614 
615     VkResult ret;
616 };
617 
618 struct vn_command_vkGetFenceStatus {
619     VkDevice device;
620     VkFence fence;
621 
622     VkResult ret;
623 };
624 
625 struct vn_command_vkWaitForFences {
626     VkDevice device;
627     uint32_t fenceCount;
628     const VkFence* pFences;
629     VkBool32 waitAll;
630     uint64_t timeout;
631 
632     VkResult ret;
633 };
634 
635 struct vn_command_vkCreateSemaphore {
636     VkDevice device;
637     const VkSemaphoreCreateInfo* pCreateInfo;
638     const VkAllocationCallbacks* pAllocator;
639     VkSemaphore* pSemaphore;
640 
641     VkResult ret;
642 };
643 
644 struct vn_command_vkDestroySemaphore {
645     VkDevice device;
646     VkSemaphore semaphore;
647     const VkAllocationCallbacks* pAllocator;
648 };
649 
650 struct vn_command_vkCreateEvent {
651     VkDevice device;
652     const VkEventCreateInfo* pCreateInfo;
653     const VkAllocationCallbacks* pAllocator;
654     VkEvent* pEvent;
655 
656     VkResult ret;
657 };
658 
659 struct vn_command_vkDestroyEvent {
660     VkDevice device;
661     VkEvent event;
662     const VkAllocationCallbacks* pAllocator;
663 };
664 
665 struct vn_command_vkGetEventStatus {
666     VkDevice device;
667     VkEvent event;
668 
669     VkResult ret;
670 };
671 
672 struct vn_command_vkSetEvent {
673     VkDevice device;
674     VkEvent event;
675 
676     VkResult ret;
677 };
678 
679 struct vn_command_vkResetEvent {
680     VkDevice device;
681     VkEvent event;
682 
683     VkResult ret;
684 };
685 
686 struct vn_command_vkCreateQueryPool {
687     VkDevice device;
688     const VkQueryPoolCreateInfo* pCreateInfo;
689     const VkAllocationCallbacks* pAllocator;
690     VkQueryPool* pQueryPool;
691 
692     VkResult ret;
693 };
694 
695 struct vn_command_vkDestroyQueryPool {
696     VkDevice device;
697     VkQueryPool queryPool;
698     const VkAllocationCallbacks* pAllocator;
699 };
700 
701 struct vn_command_vkGetQueryPoolResults {
702     VkDevice device;
703     VkQueryPool queryPool;
704     uint32_t firstQuery;
705     uint32_t queryCount;
706     size_t dataSize;
707     void* pData;
708     VkDeviceSize stride;
709     VkQueryResultFlags flags;
710 
711     VkResult ret;
712 };
713 
714 struct vn_command_vkResetQueryPool {
715     VkDevice device;
716     VkQueryPool queryPool;
717     uint32_t firstQuery;
718     uint32_t queryCount;
719 };
720 
721 struct vn_command_vkCreateBuffer {
722     VkDevice device;
723     const VkBufferCreateInfo* pCreateInfo;
724     const VkAllocationCallbacks* pAllocator;
725     VkBuffer* pBuffer;
726 
727     VkResult ret;
728 };
729 
730 struct vn_command_vkDestroyBuffer {
731     VkDevice device;
732     VkBuffer buffer;
733     const VkAllocationCallbacks* pAllocator;
734 };
735 
736 struct vn_command_vkCreateBufferView {
737     VkDevice device;
738     const VkBufferViewCreateInfo* pCreateInfo;
739     const VkAllocationCallbacks* pAllocator;
740     VkBufferView* pView;
741 
742     VkResult ret;
743 };
744 
745 struct vn_command_vkDestroyBufferView {
746     VkDevice device;
747     VkBufferView bufferView;
748     const VkAllocationCallbacks* pAllocator;
749 };
750 
751 struct vn_command_vkCreateImage {
752     VkDevice device;
753     const VkImageCreateInfo* pCreateInfo;
754     const VkAllocationCallbacks* pAllocator;
755     VkImage* pImage;
756 
757     VkResult ret;
758 };
759 
760 struct vn_command_vkDestroyImage {
761     VkDevice device;
762     VkImage image;
763     const VkAllocationCallbacks* pAllocator;
764 };
765 
766 struct vn_command_vkGetImageSubresourceLayout {
767     VkDevice device;
768     VkImage image;
769     const VkImageSubresource* pSubresource;
770     VkSubresourceLayout* pLayout;
771 };
772 
773 struct vn_command_vkCreateImageView {
774     VkDevice device;
775     const VkImageViewCreateInfo* pCreateInfo;
776     const VkAllocationCallbacks* pAllocator;
777     VkImageView* pView;
778 
779     VkResult ret;
780 };
781 
782 struct vn_command_vkDestroyImageView {
783     VkDevice device;
784     VkImageView imageView;
785     const VkAllocationCallbacks* pAllocator;
786 };
787 
788 struct vn_command_vkCreateShaderModule {
789     VkDevice device;
790     const VkShaderModuleCreateInfo* pCreateInfo;
791     const VkAllocationCallbacks* pAllocator;
792     VkShaderModule* pShaderModule;
793 
794     VkResult ret;
795 };
796 
797 struct vn_command_vkDestroyShaderModule {
798     VkDevice device;
799     VkShaderModule shaderModule;
800     const VkAllocationCallbacks* pAllocator;
801 };
802 
803 struct vn_command_vkCreatePipelineCache {
804     VkDevice device;
805     const VkPipelineCacheCreateInfo* pCreateInfo;
806     const VkAllocationCallbacks* pAllocator;
807     VkPipelineCache* pPipelineCache;
808 
809     VkResult ret;
810 };
811 
812 struct vn_command_vkDestroyPipelineCache {
813     VkDevice device;
814     VkPipelineCache pipelineCache;
815     const VkAllocationCallbacks* pAllocator;
816 };
817 
818 struct vn_command_vkGetPipelineCacheData {
819     VkDevice device;
820     VkPipelineCache pipelineCache;
821     size_t* pDataSize;
822     void* pData;
823 
824     VkResult ret;
825 };
826 
827 struct vn_command_vkMergePipelineCaches {
828     VkDevice device;
829     VkPipelineCache dstCache;
830     uint32_t srcCacheCount;
831     const VkPipelineCache* pSrcCaches;
832 
833     VkResult ret;
834 };
835 
836 struct vn_command_vkCreateGraphicsPipelines {
837     VkDevice device;
838     VkPipelineCache pipelineCache;
839     uint32_t createInfoCount;
840     const VkGraphicsPipelineCreateInfo* pCreateInfos;
841     const VkAllocationCallbacks* pAllocator;
842     VkPipeline* pPipelines;
843 
844     VkResult ret;
845 };
846 
847 struct vn_command_vkCreateComputePipelines {
848     VkDevice device;
849     VkPipelineCache pipelineCache;
850     uint32_t createInfoCount;
851     const VkComputePipelineCreateInfo* pCreateInfos;
852     const VkAllocationCallbacks* pAllocator;
853     VkPipeline* pPipelines;
854 
855     VkResult ret;
856 };
857 
858 struct vn_command_vkDestroyPipeline {
859     VkDevice device;
860     VkPipeline pipeline;
861     const VkAllocationCallbacks* pAllocator;
862 };
863 
864 struct vn_command_vkCreatePipelineLayout {
865     VkDevice device;
866     const VkPipelineLayoutCreateInfo* pCreateInfo;
867     const VkAllocationCallbacks* pAllocator;
868     VkPipelineLayout* pPipelineLayout;
869 
870     VkResult ret;
871 };
872 
873 struct vn_command_vkDestroyPipelineLayout {
874     VkDevice device;
875     VkPipelineLayout pipelineLayout;
876     const VkAllocationCallbacks* pAllocator;
877 };
878 
879 struct vn_command_vkCreateSampler {
880     VkDevice device;
881     const VkSamplerCreateInfo* pCreateInfo;
882     const VkAllocationCallbacks* pAllocator;
883     VkSampler* pSampler;
884 
885     VkResult ret;
886 };
887 
888 struct vn_command_vkDestroySampler {
889     VkDevice device;
890     VkSampler sampler;
891     const VkAllocationCallbacks* pAllocator;
892 };
893 
894 struct vn_command_vkCreateDescriptorSetLayout {
895     VkDevice device;
896     const VkDescriptorSetLayoutCreateInfo* pCreateInfo;
897     const VkAllocationCallbacks* pAllocator;
898     VkDescriptorSetLayout* pSetLayout;
899 
900     VkResult ret;
901 };
902 
903 struct vn_command_vkDestroyDescriptorSetLayout {
904     VkDevice device;
905     VkDescriptorSetLayout descriptorSetLayout;
906     const VkAllocationCallbacks* pAllocator;
907 };
908 
909 struct vn_command_vkCreateDescriptorPool {
910     VkDevice device;
911     const VkDescriptorPoolCreateInfo* pCreateInfo;
912     const VkAllocationCallbacks* pAllocator;
913     VkDescriptorPool* pDescriptorPool;
914 
915     VkResult ret;
916 };
917 
918 struct vn_command_vkDestroyDescriptorPool {
919     VkDevice device;
920     VkDescriptorPool descriptorPool;
921     const VkAllocationCallbacks* pAllocator;
922 };
923 
924 struct vn_command_vkResetDescriptorPool {
925     VkDevice device;
926     VkDescriptorPool descriptorPool;
927     VkDescriptorPoolResetFlags flags;
928 
929     VkResult ret;
930 };
931 
932 struct vn_command_vkAllocateDescriptorSets {
933     VkDevice device;
934     const VkDescriptorSetAllocateInfo* pAllocateInfo;
935     VkDescriptorSet* pDescriptorSets;
936 
937     VkResult ret;
938 };
939 
940 struct vn_command_vkFreeDescriptorSets {
941     VkDevice device;
942     VkDescriptorPool descriptorPool;
943     uint32_t descriptorSetCount;
944     const VkDescriptorSet* pDescriptorSets;
945 
946     VkResult ret;
947 };
948 
949 struct vn_command_vkUpdateDescriptorSets {
950     VkDevice device;
951     uint32_t descriptorWriteCount;
952     const VkWriteDescriptorSet* pDescriptorWrites;
953     uint32_t descriptorCopyCount;
954     const VkCopyDescriptorSet* pDescriptorCopies;
955 };
956 
957 struct vn_command_vkCreateFramebuffer {
958     VkDevice device;
959     const VkFramebufferCreateInfo* pCreateInfo;
960     const VkAllocationCallbacks* pAllocator;
961     VkFramebuffer* pFramebuffer;
962 
963     VkResult ret;
964 };
965 
966 struct vn_command_vkDestroyFramebuffer {
967     VkDevice device;
968     VkFramebuffer framebuffer;
969     const VkAllocationCallbacks* pAllocator;
970 };
971 
972 struct vn_command_vkCreateRenderPass {
973     VkDevice device;
974     const VkRenderPassCreateInfo* pCreateInfo;
975     const VkAllocationCallbacks* pAllocator;
976     VkRenderPass* pRenderPass;
977 
978     VkResult ret;
979 };
980 
981 struct vn_command_vkDestroyRenderPass {
982     VkDevice device;
983     VkRenderPass renderPass;
984     const VkAllocationCallbacks* pAllocator;
985 };
986 
987 struct vn_command_vkGetRenderAreaGranularity {
988     VkDevice device;
989     VkRenderPass renderPass;
990     VkExtent2D* pGranularity;
991 };
992 
993 struct vn_command_vkCreateCommandPool {
994     VkDevice device;
995     const VkCommandPoolCreateInfo* pCreateInfo;
996     const VkAllocationCallbacks* pAllocator;
997     VkCommandPool* pCommandPool;
998 
999     VkResult ret;
1000 };
1001 
1002 struct vn_command_vkDestroyCommandPool {
1003     VkDevice device;
1004     VkCommandPool commandPool;
1005     const VkAllocationCallbacks* pAllocator;
1006 };
1007 
1008 struct vn_command_vkResetCommandPool {
1009     VkDevice device;
1010     VkCommandPool commandPool;
1011     VkCommandPoolResetFlags flags;
1012 
1013     VkResult ret;
1014 };
1015 
1016 struct vn_command_vkAllocateCommandBuffers {
1017     VkDevice device;
1018     const VkCommandBufferAllocateInfo* pAllocateInfo;
1019     VkCommandBuffer* pCommandBuffers;
1020 
1021     VkResult ret;
1022 };
1023 
1024 struct vn_command_vkFreeCommandBuffers {
1025     VkDevice device;
1026     VkCommandPool commandPool;
1027     uint32_t commandBufferCount;
1028     const VkCommandBuffer* pCommandBuffers;
1029 };
1030 
1031 struct vn_command_vkBeginCommandBuffer {
1032     VkCommandBuffer commandBuffer;
1033     const VkCommandBufferBeginInfo* pBeginInfo;
1034 
1035     VkResult ret;
1036 };
1037 
1038 struct vn_command_vkEndCommandBuffer {
1039     VkCommandBuffer commandBuffer;
1040 
1041     VkResult ret;
1042 };
1043 
1044 struct vn_command_vkResetCommandBuffer {
1045     VkCommandBuffer commandBuffer;
1046     VkCommandBufferResetFlags flags;
1047 
1048     VkResult ret;
1049 };
1050 
1051 struct vn_command_vkCmdBindPipeline {
1052     VkCommandBuffer commandBuffer;
1053     VkPipelineBindPoint pipelineBindPoint;
1054     VkPipeline pipeline;
1055 };
1056 
1057 struct vn_command_vkCmdSetViewport {
1058     VkCommandBuffer commandBuffer;
1059     uint32_t firstViewport;
1060     uint32_t viewportCount;
1061     const VkViewport* pViewports;
1062 };
1063 
1064 struct vn_command_vkCmdSetScissor {
1065     VkCommandBuffer commandBuffer;
1066     uint32_t firstScissor;
1067     uint32_t scissorCount;
1068     const VkRect2D* pScissors;
1069 };
1070 
1071 struct vn_command_vkCmdSetLineWidth {
1072     VkCommandBuffer commandBuffer;
1073     float lineWidth;
1074 };
1075 
1076 struct vn_command_vkCmdSetDepthBias {
1077     VkCommandBuffer commandBuffer;
1078     float depthBiasConstantFactor;
1079     float depthBiasClamp;
1080     float depthBiasSlopeFactor;
1081 };
1082 
1083 struct vn_command_vkCmdSetBlendConstants {
1084     VkCommandBuffer commandBuffer;
1085     const float blendConstants[4];
1086 };
1087 
1088 struct vn_command_vkCmdSetDepthBounds {
1089     VkCommandBuffer commandBuffer;
1090     float minDepthBounds;
1091     float maxDepthBounds;
1092 };
1093 
1094 struct vn_command_vkCmdSetStencilCompareMask {
1095     VkCommandBuffer commandBuffer;
1096     VkStencilFaceFlags faceMask;
1097     uint32_t compareMask;
1098 };
1099 
1100 struct vn_command_vkCmdSetStencilWriteMask {
1101     VkCommandBuffer commandBuffer;
1102     VkStencilFaceFlags faceMask;
1103     uint32_t writeMask;
1104 };
1105 
1106 struct vn_command_vkCmdSetStencilReference {
1107     VkCommandBuffer commandBuffer;
1108     VkStencilFaceFlags faceMask;
1109     uint32_t reference;
1110 };
1111 
1112 struct vn_command_vkCmdBindDescriptorSets {
1113     VkCommandBuffer commandBuffer;
1114     VkPipelineBindPoint pipelineBindPoint;
1115     VkPipelineLayout layout;
1116     uint32_t firstSet;
1117     uint32_t descriptorSetCount;
1118     const VkDescriptorSet* pDescriptorSets;
1119     uint32_t dynamicOffsetCount;
1120     const uint32_t* pDynamicOffsets;
1121 };
1122 
1123 struct vn_command_vkCmdBindIndexBuffer {
1124     VkCommandBuffer commandBuffer;
1125     VkBuffer buffer;
1126     VkDeviceSize offset;
1127     VkIndexType indexType;
1128 };
1129 
1130 struct vn_command_vkCmdBindVertexBuffers {
1131     VkCommandBuffer commandBuffer;
1132     uint32_t firstBinding;
1133     uint32_t bindingCount;
1134     const VkBuffer* pBuffers;
1135     const VkDeviceSize* pOffsets;
1136 };
1137 
1138 struct vn_command_vkCmdDraw {
1139     VkCommandBuffer commandBuffer;
1140     uint32_t vertexCount;
1141     uint32_t instanceCount;
1142     uint32_t firstVertex;
1143     uint32_t firstInstance;
1144 };
1145 
1146 struct vn_command_vkCmdDrawIndexed {
1147     VkCommandBuffer commandBuffer;
1148     uint32_t indexCount;
1149     uint32_t instanceCount;
1150     uint32_t firstIndex;
1151     int32_t vertexOffset;
1152     uint32_t firstInstance;
1153 };
1154 
1155 struct vn_command_vkCmdDrawIndirect {
1156     VkCommandBuffer commandBuffer;
1157     VkBuffer buffer;
1158     VkDeviceSize offset;
1159     uint32_t drawCount;
1160     uint32_t stride;
1161 };
1162 
1163 struct vn_command_vkCmdDrawIndexedIndirect {
1164     VkCommandBuffer commandBuffer;
1165     VkBuffer buffer;
1166     VkDeviceSize offset;
1167     uint32_t drawCount;
1168     uint32_t stride;
1169 };
1170 
1171 struct vn_command_vkCmdDispatch {
1172     VkCommandBuffer commandBuffer;
1173     uint32_t groupCountX;
1174     uint32_t groupCountY;
1175     uint32_t groupCountZ;
1176 };
1177 
1178 struct vn_command_vkCmdDispatchIndirect {
1179     VkCommandBuffer commandBuffer;
1180     VkBuffer buffer;
1181     VkDeviceSize offset;
1182 };
1183 
1184 struct vn_command_vkCmdCopyBuffer {
1185     VkCommandBuffer commandBuffer;
1186     VkBuffer srcBuffer;
1187     VkBuffer dstBuffer;
1188     uint32_t regionCount;
1189     const VkBufferCopy* pRegions;
1190 };
1191 
1192 struct vn_command_vkCmdCopyImage {
1193     VkCommandBuffer commandBuffer;
1194     VkImage srcImage;
1195     VkImageLayout srcImageLayout;
1196     VkImage dstImage;
1197     VkImageLayout dstImageLayout;
1198     uint32_t regionCount;
1199     const VkImageCopy* pRegions;
1200 };
1201 
1202 struct vn_command_vkCmdBlitImage {
1203     VkCommandBuffer commandBuffer;
1204     VkImage srcImage;
1205     VkImageLayout srcImageLayout;
1206     VkImage dstImage;
1207     VkImageLayout dstImageLayout;
1208     uint32_t regionCount;
1209     const VkImageBlit* pRegions;
1210     VkFilter filter;
1211 };
1212 
1213 struct vn_command_vkCmdCopyBufferToImage {
1214     VkCommandBuffer commandBuffer;
1215     VkBuffer srcBuffer;
1216     VkImage dstImage;
1217     VkImageLayout dstImageLayout;
1218     uint32_t regionCount;
1219     const VkBufferImageCopy* pRegions;
1220 };
1221 
1222 struct vn_command_vkCmdCopyImageToBuffer {
1223     VkCommandBuffer commandBuffer;
1224     VkImage srcImage;
1225     VkImageLayout srcImageLayout;
1226     VkBuffer dstBuffer;
1227     uint32_t regionCount;
1228     const VkBufferImageCopy* pRegions;
1229 };
1230 
1231 struct vn_command_vkCmdUpdateBuffer {
1232     VkCommandBuffer commandBuffer;
1233     VkBuffer dstBuffer;
1234     VkDeviceSize dstOffset;
1235     VkDeviceSize dataSize;
1236     const void* pData;
1237 };
1238 
1239 struct vn_command_vkCmdFillBuffer {
1240     VkCommandBuffer commandBuffer;
1241     VkBuffer dstBuffer;
1242     VkDeviceSize dstOffset;
1243     VkDeviceSize size;
1244     uint32_t data;
1245 };
1246 
1247 struct vn_command_vkCmdClearColorImage {
1248     VkCommandBuffer commandBuffer;
1249     VkImage image;
1250     VkImageLayout imageLayout;
1251     const VkClearColorValue* pColor;
1252     uint32_t rangeCount;
1253     const VkImageSubresourceRange* pRanges;
1254 };
1255 
1256 struct vn_command_vkCmdClearDepthStencilImage {
1257     VkCommandBuffer commandBuffer;
1258     VkImage image;
1259     VkImageLayout imageLayout;
1260     const VkClearDepthStencilValue* pDepthStencil;
1261     uint32_t rangeCount;
1262     const VkImageSubresourceRange* pRanges;
1263 };
1264 
1265 struct vn_command_vkCmdClearAttachments {
1266     VkCommandBuffer commandBuffer;
1267     uint32_t attachmentCount;
1268     const VkClearAttachment* pAttachments;
1269     uint32_t rectCount;
1270     const VkClearRect* pRects;
1271 };
1272 
1273 struct vn_command_vkCmdResolveImage {
1274     VkCommandBuffer commandBuffer;
1275     VkImage srcImage;
1276     VkImageLayout srcImageLayout;
1277     VkImage dstImage;
1278     VkImageLayout dstImageLayout;
1279     uint32_t regionCount;
1280     const VkImageResolve* pRegions;
1281 };
1282 
1283 struct vn_command_vkCmdSetEvent {
1284     VkCommandBuffer commandBuffer;
1285     VkEvent event;
1286     VkPipelineStageFlags stageMask;
1287 };
1288 
1289 struct vn_command_vkCmdResetEvent {
1290     VkCommandBuffer commandBuffer;
1291     VkEvent event;
1292     VkPipelineStageFlags stageMask;
1293 };
1294 
1295 struct vn_command_vkCmdWaitEvents {
1296     VkCommandBuffer commandBuffer;
1297     uint32_t eventCount;
1298     const VkEvent* pEvents;
1299     VkPipelineStageFlags srcStageMask;
1300     VkPipelineStageFlags dstStageMask;
1301     uint32_t memoryBarrierCount;
1302     const VkMemoryBarrier* pMemoryBarriers;
1303     uint32_t bufferMemoryBarrierCount;
1304     const VkBufferMemoryBarrier* pBufferMemoryBarriers;
1305     uint32_t imageMemoryBarrierCount;
1306     const VkImageMemoryBarrier* pImageMemoryBarriers;
1307 };
1308 
1309 struct vn_command_vkCmdPipelineBarrier {
1310     VkCommandBuffer commandBuffer;
1311     VkPipelineStageFlags srcStageMask;
1312     VkPipelineStageFlags dstStageMask;
1313     VkDependencyFlags dependencyFlags;
1314     uint32_t memoryBarrierCount;
1315     const VkMemoryBarrier* pMemoryBarriers;
1316     uint32_t bufferMemoryBarrierCount;
1317     const VkBufferMemoryBarrier* pBufferMemoryBarriers;
1318     uint32_t imageMemoryBarrierCount;
1319     const VkImageMemoryBarrier* pImageMemoryBarriers;
1320 };
1321 
1322 struct vn_command_vkCmdBeginQuery {
1323     VkCommandBuffer commandBuffer;
1324     VkQueryPool queryPool;
1325     uint32_t query;
1326     VkQueryControlFlags flags;
1327 };
1328 
1329 struct vn_command_vkCmdEndQuery {
1330     VkCommandBuffer commandBuffer;
1331     VkQueryPool queryPool;
1332     uint32_t query;
1333 };
1334 
1335 struct vn_command_vkCmdResetQueryPool {
1336     VkCommandBuffer commandBuffer;
1337     VkQueryPool queryPool;
1338     uint32_t firstQuery;
1339     uint32_t queryCount;
1340 };
1341 
1342 struct vn_command_vkCmdWriteTimestamp {
1343     VkCommandBuffer commandBuffer;
1344     VkPipelineStageFlagBits pipelineStage;
1345     VkQueryPool queryPool;
1346     uint32_t query;
1347 };
1348 
1349 struct vn_command_vkCmdCopyQueryPoolResults {
1350     VkCommandBuffer commandBuffer;
1351     VkQueryPool queryPool;
1352     uint32_t firstQuery;
1353     uint32_t queryCount;
1354     VkBuffer dstBuffer;
1355     VkDeviceSize dstOffset;
1356     VkDeviceSize stride;
1357     VkQueryResultFlags flags;
1358 };
1359 
1360 struct vn_command_vkCmdPushConstants {
1361     VkCommandBuffer commandBuffer;
1362     VkPipelineLayout layout;
1363     VkShaderStageFlags stageFlags;
1364     uint32_t offset;
1365     uint32_t size;
1366     const void* pValues;
1367 };
1368 
1369 struct vn_command_vkCmdBeginRenderPass {
1370     VkCommandBuffer commandBuffer;
1371     const VkRenderPassBeginInfo* pRenderPassBegin;
1372     VkSubpassContents contents;
1373 };
1374 
1375 struct vn_command_vkCmdNextSubpass {
1376     VkCommandBuffer commandBuffer;
1377     VkSubpassContents contents;
1378 };
1379 
1380 struct vn_command_vkCmdEndRenderPass {
1381     VkCommandBuffer commandBuffer;
1382 };
1383 
1384 struct vn_command_vkCmdExecuteCommands {
1385     VkCommandBuffer commandBuffer;
1386     uint32_t commandBufferCount;
1387     const VkCommandBuffer* pCommandBuffers;
1388 };
1389 
1390 struct vn_command_vkGetPhysicalDeviceFeatures2 {
1391     VkPhysicalDevice physicalDevice;
1392     VkPhysicalDeviceFeatures2* pFeatures;
1393 };
1394 
1395 struct vn_command_vkGetPhysicalDeviceProperties2 {
1396     VkPhysicalDevice physicalDevice;
1397     VkPhysicalDeviceProperties2* pProperties;
1398 };
1399 
1400 struct vn_command_vkGetPhysicalDeviceFormatProperties2 {
1401     VkPhysicalDevice physicalDevice;
1402     VkFormat format;
1403     VkFormatProperties2* pFormatProperties;
1404 };
1405 
1406 struct vn_command_vkGetPhysicalDeviceImageFormatProperties2 {
1407     VkPhysicalDevice physicalDevice;
1408     const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo;
1409     VkImageFormatProperties2* pImageFormatProperties;
1410 
1411     VkResult ret;
1412 };
1413 
1414 struct vn_command_vkGetPhysicalDeviceQueueFamilyProperties2 {
1415     VkPhysicalDevice physicalDevice;
1416     uint32_t* pQueueFamilyPropertyCount;
1417     VkQueueFamilyProperties2* pQueueFamilyProperties;
1418 };
1419 
1420 struct vn_command_vkGetPhysicalDeviceMemoryProperties2 {
1421     VkPhysicalDevice physicalDevice;
1422     VkPhysicalDeviceMemoryProperties2* pMemoryProperties;
1423 };
1424 
1425 struct vn_command_vkGetPhysicalDeviceSparseImageFormatProperties2 {
1426     VkPhysicalDevice physicalDevice;
1427     const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo;
1428     uint32_t* pPropertyCount;
1429     VkSparseImageFormatProperties2* pProperties;
1430 };
1431 
1432 struct vn_command_vkTrimCommandPool {
1433     VkDevice device;
1434     VkCommandPool commandPool;
1435     VkCommandPoolTrimFlags flags;
1436 };
1437 
1438 struct vn_command_vkGetPhysicalDeviceExternalBufferProperties {
1439     VkPhysicalDevice physicalDevice;
1440     const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo;
1441     VkExternalBufferProperties* pExternalBufferProperties;
1442 };
1443 
1444 struct vn_command_vkGetMemoryFdKHR {
1445     VkDevice device;
1446     const VkMemoryGetFdInfoKHR* pGetFdInfo;
1447     int* pFd;
1448 
1449     VkResult ret;
1450 };
1451 
1452 struct vn_command_vkGetMemoryFdPropertiesKHR {
1453     VkDevice device;
1454     VkExternalMemoryHandleTypeFlagBits handleType;
1455     int fd;
1456     VkMemoryFdPropertiesKHR* pMemoryFdProperties;
1457 
1458     VkResult ret;
1459 };
1460 
1461 struct vn_command_vkGetPhysicalDeviceExternalSemaphoreProperties {
1462     VkPhysicalDevice physicalDevice;
1463     const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo;
1464     VkExternalSemaphoreProperties* pExternalSemaphoreProperties;
1465 };
1466 
1467 struct vn_command_vkGetPhysicalDeviceExternalFenceProperties {
1468     VkPhysicalDevice physicalDevice;
1469     const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo;
1470     VkExternalFenceProperties* pExternalFenceProperties;
1471 };
1472 
1473 struct vn_command_vkEnumeratePhysicalDeviceGroups {
1474     VkInstance instance;
1475     uint32_t* pPhysicalDeviceGroupCount;
1476     VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties;
1477 
1478     VkResult ret;
1479 };
1480 
1481 struct vn_command_vkGetDeviceGroupPeerMemoryFeatures {
1482     VkDevice device;
1483     uint32_t heapIndex;
1484     uint32_t localDeviceIndex;
1485     uint32_t remoteDeviceIndex;
1486     VkPeerMemoryFeatureFlags* pPeerMemoryFeatures;
1487 };
1488 
1489 struct vn_command_vkBindBufferMemory2 {
1490     VkDevice device;
1491     uint32_t bindInfoCount;
1492     const VkBindBufferMemoryInfo* pBindInfos;
1493 
1494     VkResult ret;
1495 };
1496 
1497 struct vn_command_vkBindImageMemory2 {
1498     VkDevice device;
1499     uint32_t bindInfoCount;
1500     const VkBindImageMemoryInfo* pBindInfos;
1501 
1502     VkResult ret;
1503 };
1504 
1505 struct vn_command_vkCmdSetDeviceMask {
1506     VkCommandBuffer commandBuffer;
1507     uint32_t deviceMask;
1508 };
1509 
1510 struct vn_command_vkCmdDispatchBase {
1511     VkCommandBuffer commandBuffer;
1512     uint32_t baseGroupX;
1513     uint32_t baseGroupY;
1514     uint32_t baseGroupZ;
1515     uint32_t groupCountX;
1516     uint32_t groupCountY;
1517     uint32_t groupCountZ;
1518 };
1519 
1520 struct vn_command_vkCreateDescriptorUpdateTemplate {
1521     VkDevice device;
1522     const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo;
1523     const VkAllocationCallbacks* pAllocator;
1524     VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate;
1525 
1526     VkResult ret;
1527 };
1528 
1529 struct vn_command_vkDestroyDescriptorUpdateTemplate {
1530     VkDevice device;
1531     VkDescriptorUpdateTemplate descriptorUpdateTemplate;
1532     const VkAllocationCallbacks* pAllocator;
1533 };
1534 
1535 struct vn_command_vkUpdateDescriptorSetWithTemplate {
1536     VkDevice device;
1537     VkDescriptorSet descriptorSet;
1538     VkDescriptorUpdateTemplate descriptorUpdateTemplate;
1539     const void* pData;
1540 };
1541 
1542 struct vn_command_vkGetBufferMemoryRequirements2 {
1543     VkDevice device;
1544     const VkBufferMemoryRequirementsInfo2* pInfo;
1545     VkMemoryRequirements2* pMemoryRequirements;
1546 };
1547 
1548 struct vn_command_vkGetImageMemoryRequirements2 {
1549     VkDevice device;
1550     const VkImageMemoryRequirementsInfo2* pInfo;
1551     VkMemoryRequirements2* pMemoryRequirements;
1552 };
1553 
1554 struct vn_command_vkGetImageSparseMemoryRequirements2 {
1555     VkDevice device;
1556     const VkImageSparseMemoryRequirementsInfo2* pInfo;
1557     uint32_t* pSparseMemoryRequirementCount;
1558     VkSparseImageMemoryRequirements2* pSparseMemoryRequirements;
1559 };
1560 
1561 struct vn_command_vkCreateSamplerYcbcrConversion {
1562     VkDevice device;
1563     const VkSamplerYcbcrConversionCreateInfo* pCreateInfo;
1564     const VkAllocationCallbacks* pAllocator;
1565     VkSamplerYcbcrConversion* pYcbcrConversion;
1566 
1567     VkResult ret;
1568 };
1569 
1570 struct vn_command_vkDestroySamplerYcbcrConversion {
1571     VkDevice device;
1572     VkSamplerYcbcrConversion ycbcrConversion;
1573     const VkAllocationCallbacks* pAllocator;
1574 };
1575 
1576 struct vn_command_vkGetDeviceQueue2 {
1577     VkDevice device;
1578     const VkDeviceQueueInfo2* pQueueInfo;
1579     VkQueue* pQueue;
1580 };
1581 
1582 struct vn_command_vkGetDescriptorSetLayoutSupport {
1583     VkDevice device;
1584     const VkDescriptorSetLayoutCreateInfo* pCreateInfo;
1585     VkDescriptorSetLayoutSupport* pSupport;
1586 };
1587 
1588 struct vn_command_vkCreateRenderPass2 {
1589     VkDevice device;
1590     const VkRenderPassCreateInfo2* pCreateInfo;
1591     const VkAllocationCallbacks* pAllocator;
1592     VkRenderPass* pRenderPass;
1593 
1594     VkResult ret;
1595 };
1596 
1597 struct vn_command_vkCmdBeginRenderPass2 {
1598     VkCommandBuffer commandBuffer;
1599     const VkRenderPassBeginInfo* pRenderPassBegin;
1600     const VkSubpassBeginInfo* pSubpassBeginInfo;
1601 };
1602 
1603 struct vn_command_vkCmdNextSubpass2 {
1604     VkCommandBuffer commandBuffer;
1605     const VkSubpassBeginInfo* pSubpassBeginInfo;
1606     const VkSubpassEndInfo* pSubpassEndInfo;
1607 };
1608 
1609 struct vn_command_vkCmdEndRenderPass2 {
1610     VkCommandBuffer commandBuffer;
1611     const VkSubpassEndInfo* pSubpassEndInfo;
1612 };
1613 
1614 struct vn_command_vkGetSemaphoreCounterValue {
1615     VkDevice device;
1616     VkSemaphore semaphore;
1617     uint64_t* pValue;
1618 
1619     VkResult ret;
1620 };
1621 
1622 struct vn_command_vkWaitSemaphores {
1623     VkDevice device;
1624     const VkSemaphoreWaitInfo* pWaitInfo;
1625     uint64_t timeout;
1626 
1627     VkResult ret;
1628 };
1629 
1630 struct vn_command_vkSignalSemaphore {
1631     VkDevice device;
1632     const VkSemaphoreSignalInfo* pSignalInfo;
1633 
1634     VkResult ret;
1635 };
1636 
1637 struct vn_command_vkCmdDrawIndirectCount {
1638     VkCommandBuffer commandBuffer;
1639     VkBuffer buffer;
1640     VkDeviceSize offset;
1641     VkBuffer countBuffer;
1642     VkDeviceSize countBufferOffset;
1643     uint32_t maxDrawCount;
1644     uint32_t stride;
1645 };
1646 
1647 struct vn_command_vkCmdDrawIndexedIndirectCount {
1648     VkCommandBuffer commandBuffer;
1649     VkBuffer buffer;
1650     VkDeviceSize offset;
1651     VkBuffer countBuffer;
1652     VkDeviceSize countBufferOffset;
1653     uint32_t maxDrawCount;
1654     uint32_t stride;
1655 };
1656 
1657 struct vn_command_vkCmdBindTransformFeedbackBuffersEXT {
1658     VkCommandBuffer commandBuffer;
1659     uint32_t firstBinding;
1660     uint32_t bindingCount;
1661     const VkBuffer* pBuffers;
1662     const VkDeviceSize* pOffsets;
1663     const VkDeviceSize* pSizes;
1664 };
1665 
1666 struct vn_command_vkCmdBeginTransformFeedbackEXT {
1667     VkCommandBuffer commandBuffer;
1668     uint32_t firstCounterBuffer;
1669     uint32_t counterBufferCount;
1670     const VkBuffer* pCounterBuffers;
1671     const VkDeviceSize* pCounterBufferOffsets;
1672 };
1673 
1674 struct vn_command_vkCmdEndTransformFeedbackEXT {
1675     VkCommandBuffer commandBuffer;
1676     uint32_t firstCounterBuffer;
1677     uint32_t counterBufferCount;
1678     const VkBuffer* pCounterBuffers;
1679     const VkDeviceSize* pCounterBufferOffsets;
1680 };
1681 
1682 struct vn_command_vkCmdBeginQueryIndexedEXT {
1683     VkCommandBuffer commandBuffer;
1684     VkQueryPool queryPool;
1685     uint32_t query;
1686     VkQueryControlFlags flags;
1687     uint32_t index;
1688 };
1689 
1690 struct vn_command_vkCmdEndQueryIndexedEXT {
1691     VkCommandBuffer commandBuffer;
1692     VkQueryPool queryPool;
1693     uint32_t query;
1694     uint32_t index;
1695 };
1696 
1697 struct vn_command_vkCmdDrawIndirectByteCountEXT {
1698     VkCommandBuffer commandBuffer;
1699     uint32_t instanceCount;
1700     uint32_t firstInstance;
1701     VkBuffer counterBuffer;
1702     VkDeviceSize counterBufferOffset;
1703     uint32_t counterOffset;
1704     uint32_t vertexStride;
1705 };
1706 
1707 struct vn_command_vkGetImageDrmFormatModifierPropertiesEXT {
1708     VkDevice device;
1709     VkImage image;
1710     VkImageDrmFormatModifierPropertiesEXT* pProperties;
1711 
1712     VkResult ret;
1713 };
1714 
1715 struct vn_command_vkGetBufferOpaqueCaptureAddress {
1716     VkDevice device;
1717     const VkBufferDeviceAddressInfo* pInfo;
1718 
1719     uint64_t ret;
1720 };
1721 
1722 struct vn_command_vkGetBufferDeviceAddress {
1723     VkDevice device;
1724     const VkBufferDeviceAddressInfo* pInfo;
1725 
1726     VkDeviceAddress ret;
1727 };
1728 
1729 struct vn_command_vkGetDeviceMemoryOpaqueCaptureAddress {
1730     VkDevice device;
1731     const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo;
1732 
1733     uint64_t ret;
1734 };
1735 
1736 struct vn_command_vkSetReplyCommandStreamMESA {
1737     const VkCommandStreamDescriptionMESA* pStream;
1738 };
1739 
1740 struct vn_command_vkSeekReplyCommandStreamMESA {
1741     size_t position;
1742 };
1743 
1744 struct vn_command_vkExecuteCommandStreamsMESA {
1745     uint32_t streamCount;
1746     const VkCommandStreamDescriptionMESA* pStreams;
1747     const size_t* pReplyPositions;
1748     uint32_t dependencyCount;
1749     const VkCommandStreamDependencyMESA* pDependencies;
1750     VkCommandStreamExecutionFlagsMESA flags;
1751 };
1752 
1753 struct vn_command_vkCreateRingMESA {
1754     uint64_t ring;
1755     const VkRingCreateInfoMESA* pCreateInfo;
1756 };
1757 
1758 struct vn_command_vkDestroyRingMESA {
1759     uint64_t ring;
1760 };
1761 
1762 struct vn_command_vkNotifyRingMESA {
1763     uint64_t ring;
1764     uint32_t seqno;
1765     VkRingNotifyFlagsMESA flags;
1766 };
1767 
1768 struct vn_command_vkWriteRingExtraMESA {
1769     uint64_t ring;
1770     size_t offset;
1771     uint32_t value;
1772 };
1773 
1774 struct vn_command_vkGetMemoryResourcePropertiesMESA {
1775     VkDevice device;
1776     uint32_t resourceId;
1777     VkMemoryResourcePropertiesMESA* pMemoryResourceProperties;
1778 
1779     VkResult ret;
1780 };
1781 
1782 struct vn_command_vkGetVenusExperimentalFeatureData100000MESA {
1783     size_t* pDataSize;
1784     void* pData;
1785 };
1786 
1787 struct vn_dispatch_context {
1788     void *data;
1789     void (*debug_log)(struct vn_dispatch_context *ctx, const char *msg);
1790 
1791     struct vn_cs_encoder *encoder;
1792     struct vn_cs_decoder *decoder;
1793 
1794     void (*dispatch_vkCreateInstance)(struct vn_dispatch_context *ctx, struct vn_command_vkCreateInstance *args);
1795     void (*dispatch_vkDestroyInstance)(struct vn_dispatch_context *ctx, struct vn_command_vkDestroyInstance *args);
1796     void (*dispatch_vkEnumeratePhysicalDevices)(struct vn_dispatch_context *ctx, struct vn_command_vkEnumeratePhysicalDevices *args);
1797     void (*dispatch_vkGetDeviceProcAddr)(struct vn_dispatch_context *ctx, struct vn_command_vkGetDeviceProcAddr *args);
1798     void (*dispatch_vkGetInstanceProcAddr)(struct vn_dispatch_context *ctx, struct vn_command_vkGetInstanceProcAddr *args);
1799     void (*dispatch_vkGetPhysicalDeviceProperties)(struct vn_dispatch_context *ctx, struct vn_command_vkGetPhysicalDeviceProperties *args);
1800     void (*dispatch_vkGetPhysicalDeviceQueueFamilyProperties)(struct vn_dispatch_context *ctx, struct vn_command_vkGetPhysicalDeviceQueueFamilyProperties *args);
1801     void (*dispatch_vkGetPhysicalDeviceMemoryProperties)(struct vn_dispatch_context *ctx, struct vn_command_vkGetPhysicalDeviceMemoryProperties *args);
1802     void (*dispatch_vkGetPhysicalDeviceFeatures)(struct vn_dispatch_context *ctx, struct vn_command_vkGetPhysicalDeviceFeatures *args);
1803     void (*dispatch_vkGetPhysicalDeviceFormatProperties)(struct vn_dispatch_context *ctx, struct vn_command_vkGetPhysicalDeviceFormatProperties *args);
1804     void (*dispatch_vkGetPhysicalDeviceImageFormatProperties)(struct vn_dispatch_context *ctx, struct vn_command_vkGetPhysicalDeviceImageFormatProperties *args);
1805     void (*dispatch_vkCreateDevice)(struct vn_dispatch_context *ctx, struct vn_command_vkCreateDevice *args);
1806     void (*dispatch_vkDestroyDevice)(struct vn_dispatch_context *ctx, struct vn_command_vkDestroyDevice *args);
1807     void (*dispatch_vkEnumerateInstanceVersion)(struct vn_dispatch_context *ctx, struct vn_command_vkEnumerateInstanceVersion *args);
1808     void (*dispatch_vkEnumerateInstanceLayerProperties)(struct vn_dispatch_context *ctx, struct vn_command_vkEnumerateInstanceLayerProperties *args);
1809     void (*dispatch_vkEnumerateInstanceExtensionProperties)(struct vn_dispatch_context *ctx, struct vn_command_vkEnumerateInstanceExtensionProperties *args);
1810     void (*dispatch_vkEnumerateDeviceLayerProperties)(struct vn_dispatch_context *ctx, struct vn_command_vkEnumerateDeviceLayerProperties *args);
1811     void (*dispatch_vkEnumerateDeviceExtensionProperties)(struct vn_dispatch_context *ctx, struct vn_command_vkEnumerateDeviceExtensionProperties *args);
1812     void (*dispatch_vkGetDeviceQueue)(struct vn_dispatch_context *ctx, struct vn_command_vkGetDeviceQueue *args);
1813     void (*dispatch_vkQueueSubmit)(struct vn_dispatch_context *ctx, struct vn_command_vkQueueSubmit *args);
1814     void (*dispatch_vkQueueWaitIdle)(struct vn_dispatch_context *ctx, struct vn_command_vkQueueWaitIdle *args);
1815     void (*dispatch_vkDeviceWaitIdle)(struct vn_dispatch_context *ctx, struct vn_command_vkDeviceWaitIdle *args);
1816     void (*dispatch_vkAllocateMemory)(struct vn_dispatch_context *ctx, struct vn_command_vkAllocateMemory *args);
1817     void (*dispatch_vkFreeMemory)(struct vn_dispatch_context *ctx, struct vn_command_vkFreeMemory *args);
1818     void (*dispatch_vkMapMemory)(struct vn_dispatch_context *ctx, struct vn_command_vkMapMemory *args);
1819     void (*dispatch_vkUnmapMemory)(struct vn_dispatch_context *ctx, struct vn_command_vkUnmapMemory *args);
1820     void (*dispatch_vkFlushMappedMemoryRanges)(struct vn_dispatch_context *ctx, struct vn_command_vkFlushMappedMemoryRanges *args);
1821     void (*dispatch_vkInvalidateMappedMemoryRanges)(struct vn_dispatch_context *ctx, struct vn_command_vkInvalidateMappedMemoryRanges *args);
1822     void (*dispatch_vkGetDeviceMemoryCommitment)(struct vn_dispatch_context *ctx, struct vn_command_vkGetDeviceMemoryCommitment *args);
1823     void (*dispatch_vkGetBufferMemoryRequirements)(struct vn_dispatch_context *ctx, struct vn_command_vkGetBufferMemoryRequirements *args);
1824     void (*dispatch_vkBindBufferMemory)(struct vn_dispatch_context *ctx, struct vn_command_vkBindBufferMemory *args);
1825     void (*dispatch_vkGetImageMemoryRequirements)(struct vn_dispatch_context *ctx, struct vn_command_vkGetImageMemoryRequirements *args);
1826     void (*dispatch_vkBindImageMemory)(struct vn_dispatch_context *ctx, struct vn_command_vkBindImageMemory *args);
1827     void (*dispatch_vkGetImageSparseMemoryRequirements)(struct vn_dispatch_context *ctx, struct vn_command_vkGetImageSparseMemoryRequirements *args);
1828     void (*dispatch_vkGetPhysicalDeviceSparseImageFormatProperties)(struct vn_dispatch_context *ctx, struct vn_command_vkGetPhysicalDeviceSparseImageFormatProperties *args);
1829     void (*dispatch_vkQueueBindSparse)(struct vn_dispatch_context *ctx, struct vn_command_vkQueueBindSparse *args);
1830     void (*dispatch_vkCreateFence)(struct vn_dispatch_context *ctx, struct vn_command_vkCreateFence *args);
1831     void (*dispatch_vkDestroyFence)(struct vn_dispatch_context *ctx, struct vn_command_vkDestroyFence *args);
1832     void (*dispatch_vkResetFences)(struct vn_dispatch_context *ctx, struct vn_command_vkResetFences *args);
1833     void (*dispatch_vkGetFenceStatus)(struct vn_dispatch_context *ctx, struct vn_command_vkGetFenceStatus *args);
1834     void (*dispatch_vkWaitForFences)(struct vn_dispatch_context *ctx, struct vn_command_vkWaitForFences *args);
1835     void (*dispatch_vkCreateSemaphore)(struct vn_dispatch_context *ctx, struct vn_command_vkCreateSemaphore *args);
1836     void (*dispatch_vkDestroySemaphore)(struct vn_dispatch_context *ctx, struct vn_command_vkDestroySemaphore *args);
1837     void (*dispatch_vkCreateEvent)(struct vn_dispatch_context *ctx, struct vn_command_vkCreateEvent *args);
1838     void (*dispatch_vkDestroyEvent)(struct vn_dispatch_context *ctx, struct vn_command_vkDestroyEvent *args);
1839     void (*dispatch_vkGetEventStatus)(struct vn_dispatch_context *ctx, struct vn_command_vkGetEventStatus *args);
1840     void (*dispatch_vkSetEvent)(struct vn_dispatch_context *ctx, struct vn_command_vkSetEvent *args);
1841     void (*dispatch_vkResetEvent)(struct vn_dispatch_context *ctx, struct vn_command_vkResetEvent *args);
1842     void (*dispatch_vkCreateQueryPool)(struct vn_dispatch_context *ctx, struct vn_command_vkCreateQueryPool *args);
1843     void (*dispatch_vkDestroyQueryPool)(struct vn_dispatch_context *ctx, struct vn_command_vkDestroyQueryPool *args);
1844     void (*dispatch_vkGetQueryPoolResults)(struct vn_dispatch_context *ctx, struct vn_command_vkGetQueryPoolResults *args);
1845     void (*dispatch_vkResetQueryPool)(struct vn_dispatch_context *ctx, struct vn_command_vkResetQueryPool *args);
1846     void (*dispatch_vkCreateBuffer)(struct vn_dispatch_context *ctx, struct vn_command_vkCreateBuffer *args);
1847     void (*dispatch_vkDestroyBuffer)(struct vn_dispatch_context *ctx, struct vn_command_vkDestroyBuffer *args);
1848     void (*dispatch_vkCreateBufferView)(struct vn_dispatch_context *ctx, struct vn_command_vkCreateBufferView *args);
1849     void (*dispatch_vkDestroyBufferView)(struct vn_dispatch_context *ctx, struct vn_command_vkDestroyBufferView *args);
1850     void (*dispatch_vkCreateImage)(struct vn_dispatch_context *ctx, struct vn_command_vkCreateImage *args);
1851     void (*dispatch_vkDestroyImage)(struct vn_dispatch_context *ctx, struct vn_command_vkDestroyImage *args);
1852     void (*dispatch_vkGetImageSubresourceLayout)(struct vn_dispatch_context *ctx, struct vn_command_vkGetImageSubresourceLayout *args);
1853     void (*dispatch_vkCreateImageView)(struct vn_dispatch_context *ctx, struct vn_command_vkCreateImageView *args);
1854     void (*dispatch_vkDestroyImageView)(struct vn_dispatch_context *ctx, struct vn_command_vkDestroyImageView *args);
1855     void (*dispatch_vkCreateShaderModule)(struct vn_dispatch_context *ctx, struct vn_command_vkCreateShaderModule *args);
1856     void (*dispatch_vkDestroyShaderModule)(struct vn_dispatch_context *ctx, struct vn_command_vkDestroyShaderModule *args);
1857     void (*dispatch_vkCreatePipelineCache)(struct vn_dispatch_context *ctx, struct vn_command_vkCreatePipelineCache *args);
1858     void (*dispatch_vkDestroyPipelineCache)(struct vn_dispatch_context *ctx, struct vn_command_vkDestroyPipelineCache *args);
1859     void (*dispatch_vkGetPipelineCacheData)(struct vn_dispatch_context *ctx, struct vn_command_vkGetPipelineCacheData *args);
1860     void (*dispatch_vkMergePipelineCaches)(struct vn_dispatch_context *ctx, struct vn_command_vkMergePipelineCaches *args);
1861     void (*dispatch_vkCreateGraphicsPipelines)(struct vn_dispatch_context *ctx, struct vn_command_vkCreateGraphicsPipelines *args);
1862     void (*dispatch_vkCreateComputePipelines)(struct vn_dispatch_context *ctx, struct vn_command_vkCreateComputePipelines *args);
1863     void (*dispatch_vkDestroyPipeline)(struct vn_dispatch_context *ctx, struct vn_command_vkDestroyPipeline *args);
1864     void (*dispatch_vkCreatePipelineLayout)(struct vn_dispatch_context *ctx, struct vn_command_vkCreatePipelineLayout *args);
1865     void (*dispatch_vkDestroyPipelineLayout)(struct vn_dispatch_context *ctx, struct vn_command_vkDestroyPipelineLayout *args);
1866     void (*dispatch_vkCreateSampler)(struct vn_dispatch_context *ctx, struct vn_command_vkCreateSampler *args);
1867     void (*dispatch_vkDestroySampler)(struct vn_dispatch_context *ctx, struct vn_command_vkDestroySampler *args);
1868     void (*dispatch_vkCreateDescriptorSetLayout)(struct vn_dispatch_context *ctx, struct vn_command_vkCreateDescriptorSetLayout *args);
1869     void (*dispatch_vkDestroyDescriptorSetLayout)(struct vn_dispatch_context *ctx, struct vn_command_vkDestroyDescriptorSetLayout *args);
1870     void (*dispatch_vkCreateDescriptorPool)(struct vn_dispatch_context *ctx, struct vn_command_vkCreateDescriptorPool *args);
1871     void (*dispatch_vkDestroyDescriptorPool)(struct vn_dispatch_context *ctx, struct vn_command_vkDestroyDescriptorPool *args);
1872     void (*dispatch_vkResetDescriptorPool)(struct vn_dispatch_context *ctx, struct vn_command_vkResetDescriptorPool *args);
1873     void (*dispatch_vkAllocateDescriptorSets)(struct vn_dispatch_context *ctx, struct vn_command_vkAllocateDescriptorSets *args);
1874     void (*dispatch_vkFreeDescriptorSets)(struct vn_dispatch_context *ctx, struct vn_command_vkFreeDescriptorSets *args);
1875     void (*dispatch_vkUpdateDescriptorSets)(struct vn_dispatch_context *ctx, struct vn_command_vkUpdateDescriptorSets *args);
1876     void (*dispatch_vkCreateFramebuffer)(struct vn_dispatch_context *ctx, struct vn_command_vkCreateFramebuffer *args);
1877     void (*dispatch_vkDestroyFramebuffer)(struct vn_dispatch_context *ctx, struct vn_command_vkDestroyFramebuffer *args);
1878     void (*dispatch_vkCreateRenderPass)(struct vn_dispatch_context *ctx, struct vn_command_vkCreateRenderPass *args);
1879     void (*dispatch_vkDestroyRenderPass)(struct vn_dispatch_context *ctx, struct vn_command_vkDestroyRenderPass *args);
1880     void (*dispatch_vkGetRenderAreaGranularity)(struct vn_dispatch_context *ctx, struct vn_command_vkGetRenderAreaGranularity *args);
1881     void (*dispatch_vkCreateCommandPool)(struct vn_dispatch_context *ctx, struct vn_command_vkCreateCommandPool *args);
1882     void (*dispatch_vkDestroyCommandPool)(struct vn_dispatch_context *ctx, struct vn_command_vkDestroyCommandPool *args);
1883     void (*dispatch_vkResetCommandPool)(struct vn_dispatch_context *ctx, struct vn_command_vkResetCommandPool *args);
1884     void (*dispatch_vkAllocateCommandBuffers)(struct vn_dispatch_context *ctx, struct vn_command_vkAllocateCommandBuffers *args);
1885     void (*dispatch_vkFreeCommandBuffers)(struct vn_dispatch_context *ctx, struct vn_command_vkFreeCommandBuffers *args);
1886     void (*dispatch_vkBeginCommandBuffer)(struct vn_dispatch_context *ctx, struct vn_command_vkBeginCommandBuffer *args);
1887     void (*dispatch_vkEndCommandBuffer)(struct vn_dispatch_context *ctx, struct vn_command_vkEndCommandBuffer *args);
1888     void (*dispatch_vkResetCommandBuffer)(struct vn_dispatch_context *ctx, struct vn_command_vkResetCommandBuffer *args);
1889     void (*dispatch_vkCmdBindPipeline)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdBindPipeline *args);
1890     void (*dispatch_vkCmdSetViewport)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdSetViewport *args);
1891     void (*dispatch_vkCmdSetScissor)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdSetScissor *args);
1892     void (*dispatch_vkCmdSetLineWidth)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdSetLineWidth *args);
1893     void (*dispatch_vkCmdSetDepthBias)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdSetDepthBias *args);
1894     void (*dispatch_vkCmdSetBlendConstants)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdSetBlendConstants *args);
1895     void (*dispatch_vkCmdSetDepthBounds)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdSetDepthBounds *args);
1896     void (*dispatch_vkCmdSetStencilCompareMask)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdSetStencilCompareMask *args);
1897     void (*dispatch_vkCmdSetStencilWriteMask)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdSetStencilWriteMask *args);
1898     void (*dispatch_vkCmdSetStencilReference)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdSetStencilReference *args);
1899     void (*dispatch_vkCmdBindDescriptorSets)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdBindDescriptorSets *args);
1900     void (*dispatch_vkCmdBindIndexBuffer)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdBindIndexBuffer *args);
1901     void (*dispatch_vkCmdBindVertexBuffers)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdBindVertexBuffers *args);
1902     void (*dispatch_vkCmdDraw)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdDraw *args);
1903     void (*dispatch_vkCmdDrawIndexed)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdDrawIndexed *args);
1904     void (*dispatch_vkCmdDrawIndirect)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdDrawIndirect *args);
1905     void (*dispatch_vkCmdDrawIndexedIndirect)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdDrawIndexedIndirect *args);
1906     void (*dispatch_vkCmdDispatch)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdDispatch *args);
1907     void (*dispatch_vkCmdDispatchIndirect)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdDispatchIndirect *args);
1908     void (*dispatch_vkCmdCopyBuffer)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdCopyBuffer *args);
1909     void (*dispatch_vkCmdCopyImage)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdCopyImage *args);
1910     void (*dispatch_vkCmdBlitImage)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdBlitImage *args);
1911     void (*dispatch_vkCmdCopyBufferToImage)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdCopyBufferToImage *args);
1912     void (*dispatch_vkCmdCopyImageToBuffer)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdCopyImageToBuffer *args);
1913     void (*dispatch_vkCmdUpdateBuffer)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdUpdateBuffer *args);
1914     void (*dispatch_vkCmdFillBuffer)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdFillBuffer *args);
1915     void (*dispatch_vkCmdClearColorImage)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdClearColorImage *args);
1916     void (*dispatch_vkCmdClearDepthStencilImage)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdClearDepthStencilImage *args);
1917     void (*dispatch_vkCmdClearAttachments)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdClearAttachments *args);
1918     void (*dispatch_vkCmdResolveImage)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdResolveImage *args);
1919     void (*dispatch_vkCmdSetEvent)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdSetEvent *args);
1920     void (*dispatch_vkCmdResetEvent)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdResetEvent *args);
1921     void (*dispatch_vkCmdWaitEvents)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdWaitEvents *args);
1922     void (*dispatch_vkCmdPipelineBarrier)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdPipelineBarrier *args);
1923     void (*dispatch_vkCmdBeginQuery)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdBeginQuery *args);
1924     void (*dispatch_vkCmdEndQuery)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdEndQuery *args);
1925     void (*dispatch_vkCmdResetQueryPool)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdResetQueryPool *args);
1926     void (*dispatch_vkCmdWriteTimestamp)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdWriteTimestamp *args);
1927     void (*dispatch_vkCmdCopyQueryPoolResults)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdCopyQueryPoolResults *args);
1928     void (*dispatch_vkCmdPushConstants)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdPushConstants *args);
1929     void (*dispatch_vkCmdBeginRenderPass)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdBeginRenderPass *args);
1930     void (*dispatch_vkCmdNextSubpass)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdNextSubpass *args);
1931     void (*dispatch_vkCmdEndRenderPass)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdEndRenderPass *args);
1932     void (*dispatch_vkCmdExecuteCommands)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdExecuteCommands *args);
1933     void (*dispatch_vkGetPhysicalDeviceFeatures2)(struct vn_dispatch_context *ctx, struct vn_command_vkGetPhysicalDeviceFeatures2 *args);
1934     void (*dispatch_vkGetPhysicalDeviceProperties2)(struct vn_dispatch_context *ctx, struct vn_command_vkGetPhysicalDeviceProperties2 *args);
1935     void (*dispatch_vkGetPhysicalDeviceFormatProperties2)(struct vn_dispatch_context *ctx, struct vn_command_vkGetPhysicalDeviceFormatProperties2 *args);
1936     void (*dispatch_vkGetPhysicalDeviceImageFormatProperties2)(struct vn_dispatch_context *ctx, struct vn_command_vkGetPhysicalDeviceImageFormatProperties2 *args);
1937     void (*dispatch_vkGetPhysicalDeviceQueueFamilyProperties2)(struct vn_dispatch_context *ctx, struct vn_command_vkGetPhysicalDeviceQueueFamilyProperties2 *args);
1938     void (*dispatch_vkGetPhysicalDeviceMemoryProperties2)(struct vn_dispatch_context *ctx, struct vn_command_vkGetPhysicalDeviceMemoryProperties2 *args);
1939     void (*dispatch_vkGetPhysicalDeviceSparseImageFormatProperties2)(struct vn_dispatch_context *ctx, struct vn_command_vkGetPhysicalDeviceSparseImageFormatProperties2 *args);
1940     void (*dispatch_vkTrimCommandPool)(struct vn_dispatch_context *ctx, struct vn_command_vkTrimCommandPool *args);
1941     void (*dispatch_vkGetPhysicalDeviceExternalBufferProperties)(struct vn_dispatch_context *ctx, struct vn_command_vkGetPhysicalDeviceExternalBufferProperties *args);
1942     void (*dispatch_vkGetMemoryFdKHR)(struct vn_dispatch_context *ctx, struct vn_command_vkGetMemoryFdKHR *args);
1943     void (*dispatch_vkGetMemoryFdPropertiesKHR)(struct vn_dispatch_context *ctx, struct vn_command_vkGetMemoryFdPropertiesKHR *args);
1944     void (*dispatch_vkGetPhysicalDeviceExternalSemaphoreProperties)(struct vn_dispatch_context *ctx, struct vn_command_vkGetPhysicalDeviceExternalSemaphoreProperties *args);
1945     void (*dispatch_vkGetPhysicalDeviceExternalFenceProperties)(struct vn_dispatch_context *ctx, struct vn_command_vkGetPhysicalDeviceExternalFenceProperties *args);
1946     void (*dispatch_vkEnumeratePhysicalDeviceGroups)(struct vn_dispatch_context *ctx, struct vn_command_vkEnumeratePhysicalDeviceGroups *args);
1947     void (*dispatch_vkGetDeviceGroupPeerMemoryFeatures)(struct vn_dispatch_context *ctx, struct vn_command_vkGetDeviceGroupPeerMemoryFeatures *args);
1948     void (*dispatch_vkBindBufferMemory2)(struct vn_dispatch_context *ctx, struct vn_command_vkBindBufferMemory2 *args);
1949     void (*dispatch_vkBindImageMemory2)(struct vn_dispatch_context *ctx, struct vn_command_vkBindImageMemory2 *args);
1950     void (*dispatch_vkCmdSetDeviceMask)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdSetDeviceMask *args);
1951     void (*dispatch_vkCmdDispatchBase)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdDispatchBase *args);
1952     void (*dispatch_vkCreateDescriptorUpdateTemplate)(struct vn_dispatch_context *ctx, struct vn_command_vkCreateDescriptorUpdateTemplate *args);
1953     void (*dispatch_vkDestroyDescriptorUpdateTemplate)(struct vn_dispatch_context *ctx, struct vn_command_vkDestroyDescriptorUpdateTemplate *args);
1954     void (*dispatch_vkUpdateDescriptorSetWithTemplate)(struct vn_dispatch_context *ctx, struct vn_command_vkUpdateDescriptorSetWithTemplate *args);
1955     void (*dispatch_vkGetBufferMemoryRequirements2)(struct vn_dispatch_context *ctx, struct vn_command_vkGetBufferMemoryRequirements2 *args);
1956     void (*dispatch_vkGetImageMemoryRequirements2)(struct vn_dispatch_context *ctx, struct vn_command_vkGetImageMemoryRequirements2 *args);
1957     void (*dispatch_vkGetImageSparseMemoryRequirements2)(struct vn_dispatch_context *ctx, struct vn_command_vkGetImageSparseMemoryRequirements2 *args);
1958     void (*dispatch_vkCreateSamplerYcbcrConversion)(struct vn_dispatch_context *ctx, struct vn_command_vkCreateSamplerYcbcrConversion *args);
1959     void (*dispatch_vkDestroySamplerYcbcrConversion)(struct vn_dispatch_context *ctx, struct vn_command_vkDestroySamplerYcbcrConversion *args);
1960     void (*dispatch_vkGetDeviceQueue2)(struct vn_dispatch_context *ctx, struct vn_command_vkGetDeviceQueue2 *args);
1961     void (*dispatch_vkGetDescriptorSetLayoutSupport)(struct vn_dispatch_context *ctx, struct vn_command_vkGetDescriptorSetLayoutSupport *args);
1962     void (*dispatch_vkCreateRenderPass2)(struct vn_dispatch_context *ctx, struct vn_command_vkCreateRenderPass2 *args);
1963     void (*dispatch_vkCmdBeginRenderPass2)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdBeginRenderPass2 *args);
1964     void (*dispatch_vkCmdNextSubpass2)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdNextSubpass2 *args);
1965     void (*dispatch_vkCmdEndRenderPass2)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdEndRenderPass2 *args);
1966     void (*dispatch_vkGetSemaphoreCounterValue)(struct vn_dispatch_context *ctx, struct vn_command_vkGetSemaphoreCounterValue *args);
1967     void (*dispatch_vkWaitSemaphores)(struct vn_dispatch_context *ctx, struct vn_command_vkWaitSemaphores *args);
1968     void (*dispatch_vkSignalSemaphore)(struct vn_dispatch_context *ctx, struct vn_command_vkSignalSemaphore *args);
1969     void (*dispatch_vkCmdDrawIndirectCount)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdDrawIndirectCount *args);
1970     void (*dispatch_vkCmdDrawIndexedIndirectCount)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdDrawIndexedIndirectCount *args);
1971     void (*dispatch_vkCmdBindTransformFeedbackBuffersEXT)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdBindTransformFeedbackBuffersEXT *args);
1972     void (*dispatch_vkCmdBeginTransformFeedbackEXT)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdBeginTransformFeedbackEXT *args);
1973     void (*dispatch_vkCmdEndTransformFeedbackEXT)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdEndTransformFeedbackEXT *args);
1974     void (*dispatch_vkCmdBeginQueryIndexedEXT)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdBeginQueryIndexedEXT *args);
1975     void (*dispatch_vkCmdEndQueryIndexedEXT)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdEndQueryIndexedEXT *args);
1976     void (*dispatch_vkCmdDrawIndirectByteCountEXT)(struct vn_dispatch_context *ctx, struct vn_command_vkCmdDrawIndirectByteCountEXT *args);
1977     void (*dispatch_vkGetImageDrmFormatModifierPropertiesEXT)(struct vn_dispatch_context *ctx, struct vn_command_vkGetImageDrmFormatModifierPropertiesEXT *args);
1978     void (*dispatch_vkGetBufferOpaqueCaptureAddress)(struct vn_dispatch_context *ctx, struct vn_command_vkGetBufferOpaqueCaptureAddress *args);
1979     void (*dispatch_vkGetBufferDeviceAddress)(struct vn_dispatch_context *ctx, struct vn_command_vkGetBufferDeviceAddress *args);
1980     void (*dispatch_vkGetDeviceMemoryOpaqueCaptureAddress)(struct vn_dispatch_context *ctx, struct vn_command_vkGetDeviceMemoryOpaqueCaptureAddress *args);
1981     void (*dispatch_vkSetReplyCommandStreamMESA)(struct vn_dispatch_context *ctx, struct vn_command_vkSetReplyCommandStreamMESA *args);
1982     void (*dispatch_vkSeekReplyCommandStreamMESA)(struct vn_dispatch_context *ctx, struct vn_command_vkSeekReplyCommandStreamMESA *args);
1983     void (*dispatch_vkExecuteCommandStreamsMESA)(struct vn_dispatch_context *ctx, struct vn_command_vkExecuteCommandStreamsMESA *args);
1984     void (*dispatch_vkCreateRingMESA)(struct vn_dispatch_context *ctx, struct vn_command_vkCreateRingMESA *args);
1985     void (*dispatch_vkDestroyRingMESA)(struct vn_dispatch_context *ctx, struct vn_command_vkDestroyRingMESA *args);
1986     void (*dispatch_vkNotifyRingMESA)(struct vn_dispatch_context *ctx, struct vn_command_vkNotifyRingMESA *args);
1987     void (*dispatch_vkWriteRingExtraMESA)(struct vn_dispatch_context *ctx, struct vn_command_vkWriteRingExtraMESA *args);
1988     void (*dispatch_vkGetMemoryResourcePropertiesMESA)(struct vn_dispatch_context *ctx, struct vn_command_vkGetMemoryResourcePropertiesMESA *args);
1989     void (*dispatch_vkGetVenusExperimentalFeatureData100000MESA)(struct vn_dispatch_context *ctx, struct vn_command_vkGetVenusExperimentalFeatureData100000MESA *args);
1990 };
1991 
vn_dispatch_debug_log(struct vn_dispatch_context * ctx,const char * format,...)1992 static inline void vn_dispatch_debug_log(struct vn_dispatch_context *ctx, const char *format, ...)
1993 {
1994     char msg[256];
1995     va_list va;
1996 
1997     if (!ctx->debug_log)
1998         return;
1999 
2000     va_start(va, format);
2001     vsnprintf(msg, sizeof(msg), format, va);
2002     ctx->debug_log(ctx, msg);
2003     va_end(va);
2004 }
2005 
vn_dispatch_should_log_result(VkResult result)2006 static inline bool vn_dispatch_should_log_result(VkResult result)
2007 {
2008     switch (result) {
2009     case VK_ERROR_FORMAT_NOT_SUPPORTED:
2010     case VK_ERROR_FRAGMENTED_POOL:
2011     case VK_ERROR_OUT_OF_POOL_MEMORY:
2012         /* do not log errors that apps normally handle properly */
2013         return false;
2014     default:
2015         /* log all other errors */
2016         return result < VK_SUCCESS;
2017     }
2018 }
2019 
2020 #endif /* VN_PROTOCOL_RENDERER_DEFINES_H */
2021