• 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_DISPATCHES_H
9 #define VN_PROTOCOL_RENDERER_DISPATCHES_H
10 
11 #include "virgl_util.h"
12 
13 #include "vn_protocol_renderer_structs.h"
14 #include "vn_protocol_renderer_transport.h"
15 #include "vn_protocol_renderer_instance.h"
16 #include "vn_protocol_renderer_device.h"
17 #include "vn_protocol_renderer_queue.h"
18 #include "vn_protocol_renderer_fence.h"
19 #include "vn_protocol_renderer_semaphore.h"
20 #include "vn_protocol_renderer_event.h"
21 #include "vn_protocol_renderer_device_memory.h"
22 #include "vn_protocol_renderer_image.h"
23 #include "vn_protocol_renderer_image_view.h"
24 #include "vn_protocol_renderer_sampler.h"
25 #include "vn_protocol_renderer_sampler_ycbcr_conversion.h"
26 #include "vn_protocol_renderer_buffer.h"
27 #include "vn_protocol_renderer_buffer_view.h"
28 #include "vn_protocol_renderer_descriptor_pool.h"
29 #include "vn_protocol_renderer_descriptor_set.h"
30 #include "vn_protocol_renderer_descriptor_set_layout.h"
31 #include "vn_protocol_renderer_descriptor_update_template.h"
32 #include "vn_protocol_renderer_render_pass.h"
33 #include "vn_protocol_renderer_framebuffer.h"
34 #include "vn_protocol_renderer_query_pool.h"
35 #include "vn_protocol_renderer_shader_module.h"
36 #include "vn_protocol_renderer_pipeline.h"
37 #include "vn_protocol_renderer_pipeline_layout.h"
38 #include "vn_protocol_renderer_pipeline_cache.h"
39 #include "vn_protocol_renderer_command_pool.h"
40 #include "vn_protocol_renderer_command_buffer.h"
41 
vn_dispatch_command_name(VkCommandTypeEXT type)42 static inline const char *vn_dispatch_command_name(VkCommandTypeEXT type)
43 {
44     switch (type) {
45     case VK_COMMAND_TYPE_vkCreateInstance_EXT: return "vkCreateInstance";
46     case VK_COMMAND_TYPE_vkDestroyInstance_EXT: return "vkDestroyInstance";
47     case VK_COMMAND_TYPE_vkEnumeratePhysicalDevices_EXT: return "vkEnumeratePhysicalDevices";
48     case VK_COMMAND_TYPE_vkGetPhysicalDeviceProperties_EXT: return "vkGetPhysicalDeviceProperties";
49     case VK_COMMAND_TYPE_vkGetPhysicalDeviceQueueFamilyProperties_EXT: return "vkGetPhysicalDeviceQueueFamilyProperties";
50     case VK_COMMAND_TYPE_vkGetPhysicalDeviceMemoryProperties_EXT: return "vkGetPhysicalDeviceMemoryProperties";
51     case VK_COMMAND_TYPE_vkGetPhysicalDeviceFeatures_EXT: return "vkGetPhysicalDeviceFeatures";
52     case VK_COMMAND_TYPE_vkGetPhysicalDeviceFormatProperties_EXT: return "vkGetPhysicalDeviceFormatProperties";
53     case VK_COMMAND_TYPE_vkGetPhysicalDeviceImageFormatProperties_EXT: return "vkGetPhysicalDeviceImageFormatProperties";
54     case VK_COMMAND_TYPE_vkCreateDevice_EXT: return "vkCreateDevice";
55     case VK_COMMAND_TYPE_vkDestroyDevice_EXT: return "vkDestroyDevice";
56     case VK_COMMAND_TYPE_vkEnumerateInstanceVersion_EXT: return "vkEnumerateInstanceVersion";
57     case VK_COMMAND_TYPE_vkEnumerateInstanceLayerProperties_EXT: return "vkEnumerateInstanceLayerProperties";
58     case VK_COMMAND_TYPE_vkEnumerateInstanceExtensionProperties_EXT: return "vkEnumerateInstanceExtensionProperties";
59     case VK_COMMAND_TYPE_vkEnumerateDeviceLayerProperties_EXT: return "vkEnumerateDeviceLayerProperties";
60     case VK_COMMAND_TYPE_vkEnumerateDeviceExtensionProperties_EXT: return "vkEnumerateDeviceExtensionProperties";
61     case VK_COMMAND_TYPE_vkGetDeviceQueue_EXT: return "vkGetDeviceQueue";
62     case VK_COMMAND_TYPE_vkQueueSubmit_EXT: return "vkQueueSubmit";
63     case VK_COMMAND_TYPE_vkQueueWaitIdle_EXT: return "vkQueueWaitIdle";
64     case VK_COMMAND_TYPE_vkDeviceWaitIdle_EXT: return "vkDeviceWaitIdle";
65     case VK_COMMAND_TYPE_vkAllocateMemory_EXT: return "vkAllocateMemory";
66     case VK_COMMAND_TYPE_vkFreeMemory_EXT: return "vkFreeMemory";
67     case VK_COMMAND_TYPE_vkUnmapMemory_EXT: return "vkUnmapMemory";
68     case VK_COMMAND_TYPE_vkFlushMappedMemoryRanges_EXT: return "vkFlushMappedMemoryRanges";
69     case VK_COMMAND_TYPE_vkInvalidateMappedMemoryRanges_EXT: return "vkInvalidateMappedMemoryRanges";
70     case VK_COMMAND_TYPE_vkGetDeviceMemoryCommitment_EXT: return "vkGetDeviceMemoryCommitment";
71     case VK_COMMAND_TYPE_vkGetBufferMemoryRequirements_EXT: return "vkGetBufferMemoryRequirements";
72     case VK_COMMAND_TYPE_vkBindBufferMemory_EXT: return "vkBindBufferMemory";
73     case VK_COMMAND_TYPE_vkGetImageMemoryRequirements_EXT: return "vkGetImageMemoryRequirements";
74     case VK_COMMAND_TYPE_vkBindImageMemory_EXT: return "vkBindImageMemory";
75     case VK_COMMAND_TYPE_vkGetImageSparseMemoryRequirements_EXT: return "vkGetImageSparseMemoryRequirements";
76     case VK_COMMAND_TYPE_vkGetPhysicalDeviceSparseImageFormatProperties_EXT: return "vkGetPhysicalDeviceSparseImageFormatProperties";
77     case VK_COMMAND_TYPE_vkQueueBindSparse_EXT: return "vkQueueBindSparse";
78     case VK_COMMAND_TYPE_vkCreateFence_EXT: return "vkCreateFence";
79     case VK_COMMAND_TYPE_vkDestroyFence_EXT: return "vkDestroyFence";
80     case VK_COMMAND_TYPE_vkResetFences_EXT: return "vkResetFences";
81     case VK_COMMAND_TYPE_vkGetFenceStatus_EXT: return "vkGetFenceStatus";
82     case VK_COMMAND_TYPE_vkWaitForFences_EXT: return "vkWaitForFences";
83     case VK_COMMAND_TYPE_vkCreateSemaphore_EXT: return "vkCreateSemaphore";
84     case VK_COMMAND_TYPE_vkDestroySemaphore_EXT: return "vkDestroySemaphore";
85     case VK_COMMAND_TYPE_vkCreateEvent_EXT: return "vkCreateEvent";
86     case VK_COMMAND_TYPE_vkDestroyEvent_EXT: return "vkDestroyEvent";
87     case VK_COMMAND_TYPE_vkGetEventStatus_EXT: return "vkGetEventStatus";
88     case VK_COMMAND_TYPE_vkSetEvent_EXT: return "vkSetEvent";
89     case VK_COMMAND_TYPE_vkResetEvent_EXT: return "vkResetEvent";
90     case VK_COMMAND_TYPE_vkCreateQueryPool_EXT: return "vkCreateQueryPool";
91     case VK_COMMAND_TYPE_vkDestroyQueryPool_EXT: return "vkDestroyQueryPool";
92     case VK_COMMAND_TYPE_vkGetQueryPoolResults_EXT: return "vkGetQueryPoolResults";
93     case VK_COMMAND_TYPE_vkResetQueryPool_EXT: return "vkResetQueryPool";
94     case VK_COMMAND_TYPE_vkCreateBuffer_EXT: return "vkCreateBuffer";
95     case VK_COMMAND_TYPE_vkDestroyBuffer_EXT: return "vkDestroyBuffer";
96     case VK_COMMAND_TYPE_vkCreateBufferView_EXT: return "vkCreateBufferView";
97     case VK_COMMAND_TYPE_vkDestroyBufferView_EXT: return "vkDestroyBufferView";
98     case VK_COMMAND_TYPE_vkCreateImage_EXT: return "vkCreateImage";
99     case VK_COMMAND_TYPE_vkDestroyImage_EXT: return "vkDestroyImage";
100     case VK_COMMAND_TYPE_vkGetImageSubresourceLayout_EXT: return "vkGetImageSubresourceLayout";
101     case VK_COMMAND_TYPE_vkCreateImageView_EXT: return "vkCreateImageView";
102     case VK_COMMAND_TYPE_vkDestroyImageView_EXT: return "vkDestroyImageView";
103     case VK_COMMAND_TYPE_vkCreateShaderModule_EXT: return "vkCreateShaderModule";
104     case VK_COMMAND_TYPE_vkDestroyShaderModule_EXT: return "vkDestroyShaderModule";
105     case VK_COMMAND_TYPE_vkCreatePipelineCache_EXT: return "vkCreatePipelineCache";
106     case VK_COMMAND_TYPE_vkDestroyPipelineCache_EXT: return "vkDestroyPipelineCache";
107     case VK_COMMAND_TYPE_vkGetPipelineCacheData_EXT: return "vkGetPipelineCacheData";
108     case VK_COMMAND_TYPE_vkMergePipelineCaches_EXT: return "vkMergePipelineCaches";
109     case VK_COMMAND_TYPE_vkCreateGraphicsPipelines_EXT: return "vkCreateGraphicsPipelines";
110     case VK_COMMAND_TYPE_vkCreateComputePipelines_EXT: return "vkCreateComputePipelines";
111     case VK_COMMAND_TYPE_vkDestroyPipeline_EXT: return "vkDestroyPipeline";
112     case VK_COMMAND_TYPE_vkCreatePipelineLayout_EXT: return "vkCreatePipelineLayout";
113     case VK_COMMAND_TYPE_vkDestroyPipelineLayout_EXT: return "vkDestroyPipelineLayout";
114     case VK_COMMAND_TYPE_vkCreateSampler_EXT: return "vkCreateSampler";
115     case VK_COMMAND_TYPE_vkDestroySampler_EXT: return "vkDestroySampler";
116     case VK_COMMAND_TYPE_vkCreateDescriptorSetLayout_EXT: return "vkCreateDescriptorSetLayout";
117     case VK_COMMAND_TYPE_vkDestroyDescriptorSetLayout_EXT: return "vkDestroyDescriptorSetLayout";
118     case VK_COMMAND_TYPE_vkCreateDescriptorPool_EXT: return "vkCreateDescriptorPool";
119     case VK_COMMAND_TYPE_vkDestroyDescriptorPool_EXT: return "vkDestroyDescriptorPool";
120     case VK_COMMAND_TYPE_vkResetDescriptorPool_EXT: return "vkResetDescriptorPool";
121     case VK_COMMAND_TYPE_vkAllocateDescriptorSets_EXT: return "vkAllocateDescriptorSets";
122     case VK_COMMAND_TYPE_vkFreeDescriptorSets_EXT: return "vkFreeDescriptorSets";
123     case VK_COMMAND_TYPE_vkUpdateDescriptorSets_EXT: return "vkUpdateDescriptorSets";
124     case VK_COMMAND_TYPE_vkCreateFramebuffer_EXT: return "vkCreateFramebuffer";
125     case VK_COMMAND_TYPE_vkDestroyFramebuffer_EXT: return "vkDestroyFramebuffer";
126     case VK_COMMAND_TYPE_vkCreateRenderPass_EXT: return "vkCreateRenderPass";
127     case VK_COMMAND_TYPE_vkDestroyRenderPass_EXT: return "vkDestroyRenderPass";
128     case VK_COMMAND_TYPE_vkGetRenderAreaGranularity_EXT: return "vkGetRenderAreaGranularity";
129     case VK_COMMAND_TYPE_vkCreateCommandPool_EXT: return "vkCreateCommandPool";
130     case VK_COMMAND_TYPE_vkDestroyCommandPool_EXT: return "vkDestroyCommandPool";
131     case VK_COMMAND_TYPE_vkResetCommandPool_EXT: return "vkResetCommandPool";
132     case VK_COMMAND_TYPE_vkAllocateCommandBuffers_EXT: return "vkAllocateCommandBuffers";
133     case VK_COMMAND_TYPE_vkFreeCommandBuffers_EXT: return "vkFreeCommandBuffers";
134     case VK_COMMAND_TYPE_vkBeginCommandBuffer_EXT: return "vkBeginCommandBuffer";
135     case VK_COMMAND_TYPE_vkEndCommandBuffer_EXT: return "vkEndCommandBuffer";
136     case VK_COMMAND_TYPE_vkResetCommandBuffer_EXT: return "vkResetCommandBuffer";
137     case VK_COMMAND_TYPE_vkCmdBindPipeline_EXT: return "vkCmdBindPipeline";
138     case VK_COMMAND_TYPE_vkCmdSetViewport_EXT: return "vkCmdSetViewport";
139     case VK_COMMAND_TYPE_vkCmdSetScissor_EXT: return "vkCmdSetScissor";
140     case VK_COMMAND_TYPE_vkCmdSetLineWidth_EXT: return "vkCmdSetLineWidth";
141     case VK_COMMAND_TYPE_vkCmdSetDepthBias_EXT: return "vkCmdSetDepthBias";
142     case VK_COMMAND_TYPE_vkCmdSetBlendConstants_EXT: return "vkCmdSetBlendConstants";
143     case VK_COMMAND_TYPE_vkCmdSetDepthBounds_EXT: return "vkCmdSetDepthBounds";
144     case VK_COMMAND_TYPE_vkCmdSetStencilCompareMask_EXT: return "vkCmdSetStencilCompareMask";
145     case VK_COMMAND_TYPE_vkCmdSetStencilWriteMask_EXT: return "vkCmdSetStencilWriteMask";
146     case VK_COMMAND_TYPE_vkCmdSetStencilReference_EXT: return "vkCmdSetStencilReference";
147     case VK_COMMAND_TYPE_vkCmdBindDescriptorSets_EXT: return "vkCmdBindDescriptorSets";
148     case VK_COMMAND_TYPE_vkCmdBindIndexBuffer_EXT: return "vkCmdBindIndexBuffer";
149     case VK_COMMAND_TYPE_vkCmdBindVertexBuffers_EXT: return "vkCmdBindVertexBuffers";
150     case VK_COMMAND_TYPE_vkCmdDraw_EXT: return "vkCmdDraw";
151     case VK_COMMAND_TYPE_vkCmdDrawIndexed_EXT: return "vkCmdDrawIndexed";
152     case VK_COMMAND_TYPE_vkCmdDrawIndirect_EXT: return "vkCmdDrawIndirect";
153     case VK_COMMAND_TYPE_vkCmdDrawIndexedIndirect_EXT: return "vkCmdDrawIndexedIndirect";
154     case VK_COMMAND_TYPE_vkCmdDispatch_EXT: return "vkCmdDispatch";
155     case VK_COMMAND_TYPE_vkCmdDispatchIndirect_EXT: return "vkCmdDispatchIndirect";
156     case VK_COMMAND_TYPE_vkCmdCopyBuffer_EXT: return "vkCmdCopyBuffer";
157     case VK_COMMAND_TYPE_vkCmdCopyImage_EXT: return "vkCmdCopyImage";
158     case VK_COMMAND_TYPE_vkCmdBlitImage_EXT: return "vkCmdBlitImage";
159     case VK_COMMAND_TYPE_vkCmdCopyBufferToImage_EXT: return "vkCmdCopyBufferToImage";
160     case VK_COMMAND_TYPE_vkCmdCopyImageToBuffer_EXT: return "vkCmdCopyImageToBuffer";
161     case VK_COMMAND_TYPE_vkCmdUpdateBuffer_EXT: return "vkCmdUpdateBuffer";
162     case VK_COMMAND_TYPE_vkCmdFillBuffer_EXT: return "vkCmdFillBuffer";
163     case VK_COMMAND_TYPE_vkCmdClearColorImage_EXT: return "vkCmdClearColorImage";
164     case VK_COMMAND_TYPE_vkCmdClearDepthStencilImage_EXT: return "vkCmdClearDepthStencilImage";
165     case VK_COMMAND_TYPE_vkCmdClearAttachments_EXT: return "vkCmdClearAttachments";
166     case VK_COMMAND_TYPE_vkCmdResolveImage_EXT: return "vkCmdResolveImage";
167     case VK_COMMAND_TYPE_vkCmdSetEvent_EXT: return "vkCmdSetEvent";
168     case VK_COMMAND_TYPE_vkCmdResetEvent_EXT: return "vkCmdResetEvent";
169     case VK_COMMAND_TYPE_vkCmdWaitEvents_EXT: return "vkCmdWaitEvents";
170     case VK_COMMAND_TYPE_vkCmdPipelineBarrier_EXT: return "vkCmdPipelineBarrier";
171     case VK_COMMAND_TYPE_vkCmdBeginQuery_EXT: return "vkCmdBeginQuery";
172     case VK_COMMAND_TYPE_vkCmdEndQuery_EXT: return "vkCmdEndQuery";
173     case VK_COMMAND_TYPE_vkCmdResetQueryPool_EXT: return "vkCmdResetQueryPool";
174     case VK_COMMAND_TYPE_vkCmdWriteTimestamp_EXT: return "vkCmdWriteTimestamp";
175     case VK_COMMAND_TYPE_vkCmdCopyQueryPoolResults_EXT: return "vkCmdCopyQueryPoolResults";
176     case VK_COMMAND_TYPE_vkCmdPushConstants_EXT: return "vkCmdPushConstants";
177     case VK_COMMAND_TYPE_vkCmdBeginRenderPass_EXT: return "vkCmdBeginRenderPass";
178     case VK_COMMAND_TYPE_vkCmdNextSubpass_EXT: return "vkCmdNextSubpass";
179     case VK_COMMAND_TYPE_vkCmdEndRenderPass_EXT: return "vkCmdEndRenderPass";
180     case VK_COMMAND_TYPE_vkCmdExecuteCommands_EXT: return "vkCmdExecuteCommands";
181     case VK_COMMAND_TYPE_vkGetPhysicalDeviceFeatures2_EXT: return "vkGetPhysicalDeviceFeatures2";
182     case VK_COMMAND_TYPE_vkGetPhysicalDeviceProperties2_EXT: return "vkGetPhysicalDeviceProperties2";
183     case VK_COMMAND_TYPE_vkGetPhysicalDeviceFormatProperties2_EXT: return "vkGetPhysicalDeviceFormatProperties2";
184     case VK_COMMAND_TYPE_vkGetPhysicalDeviceImageFormatProperties2_EXT: return "vkGetPhysicalDeviceImageFormatProperties2";
185     case VK_COMMAND_TYPE_vkGetPhysicalDeviceQueueFamilyProperties2_EXT: return "vkGetPhysicalDeviceQueueFamilyProperties2";
186     case VK_COMMAND_TYPE_vkGetPhysicalDeviceMemoryProperties2_EXT: return "vkGetPhysicalDeviceMemoryProperties2";
187     case VK_COMMAND_TYPE_vkGetPhysicalDeviceSparseImageFormatProperties2_EXT: return "vkGetPhysicalDeviceSparseImageFormatProperties2";
188     case VK_COMMAND_TYPE_vkTrimCommandPool_EXT: return "vkTrimCommandPool";
189     case VK_COMMAND_TYPE_vkGetPhysicalDeviceExternalBufferProperties_EXT: return "vkGetPhysicalDeviceExternalBufferProperties";
190     case VK_COMMAND_TYPE_vkGetPhysicalDeviceExternalSemaphoreProperties_EXT: return "vkGetPhysicalDeviceExternalSemaphoreProperties";
191     case VK_COMMAND_TYPE_vkGetPhysicalDeviceExternalFenceProperties_EXT: return "vkGetPhysicalDeviceExternalFenceProperties";
192     case VK_COMMAND_TYPE_vkEnumeratePhysicalDeviceGroups_EXT: return "vkEnumeratePhysicalDeviceGroups";
193     case VK_COMMAND_TYPE_vkGetDeviceGroupPeerMemoryFeatures_EXT: return "vkGetDeviceGroupPeerMemoryFeatures";
194     case VK_COMMAND_TYPE_vkBindBufferMemory2_EXT: return "vkBindBufferMemory2";
195     case VK_COMMAND_TYPE_vkBindImageMemory2_EXT: return "vkBindImageMemory2";
196     case VK_COMMAND_TYPE_vkCmdSetDeviceMask_EXT: return "vkCmdSetDeviceMask";
197     case VK_COMMAND_TYPE_vkCmdDispatchBase_EXT: return "vkCmdDispatchBase";
198     case VK_COMMAND_TYPE_vkCreateDescriptorUpdateTemplate_EXT: return "vkCreateDescriptorUpdateTemplate";
199     case VK_COMMAND_TYPE_vkDestroyDescriptorUpdateTemplate_EXT: return "vkDestroyDescriptorUpdateTemplate";
200     case VK_COMMAND_TYPE_vkGetBufferMemoryRequirements2_EXT: return "vkGetBufferMemoryRequirements2";
201     case VK_COMMAND_TYPE_vkGetImageMemoryRequirements2_EXT: return "vkGetImageMemoryRequirements2";
202     case VK_COMMAND_TYPE_vkGetImageSparseMemoryRequirements2_EXT: return "vkGetImageSparseMemoryRequirements2";
203     case VK_COMMAND_TYPE_vkCreateSamplerYcbcrConversion_EXT: return "vkCreateSamplerYcbcrConversion";
204     case VK_COMMAND_TYPE_vkDestroySamplerYcbcrConversion_EXT: return "vkDestroySamplerYcbcrConversion";
205     case VK_COMMAND_TYPE_vkGetDeviceQueue2_EXT: return "vkGetDeviceQueue2";
206     case VK_COMMAND_TYPE_vkGetDescriptorSetLayoutSupport_EXT: return "vkGetDescriptorSetLayoutSupport";
207     case VK_COMMAND_TYPE_vkCreateRenderPass2_EXT: return "vkCreateRenderPass2";
208     case VK_COMMAND_TYPE_vkCmdBeginRenderPass2_EXT: return "vkCmdBeginRenderPass2";
209     case VK_COMMAND_TYPE_vkCmdNextSubpass2_EXT: return "vkCmdNextSubpass2";
210     case VK_COMMAND_TYPE_vkCmdEndRenderPass2_EXT: return "vkCmdEndRenderPass2";
211     case VK_COMMAND_TYPE_vkGetSemaphoreCounterValue_EXT: return "vkGetSemaphoreCounterValue";
212     case VK_COMMAND_TYPE_vkWaitSemaphores_EXT: return "vkWaitSemaphores";
213     case VK_COMMAND_TYPE_vkSignalSemaphore_EXT: return "vkSignalSemaphore";
214     case VK_COMMAND_TYPE_vkCmdDrawIndirectCount_EXT: return "vkCmdDrawIndirectCount";
215     case VK_COMMAND_TYPE_vkCmdDrawIndexedIndirectCount_EXT: return "vkCmdDrawIndexedIndirectCount";
216     case VK_COMMAND_TYPE_vkCmdBindTransformFeedbackBuffersEXT_EXT: return "vkCmdBindTransformFeedbackBuffersEXT";
217     case VK_COMMAND_TYPE_vkCmdBeginTransformFeedbackEXT_EXT: return "vkCmdBeginTransformFeedbackEXT";
218     case VK_COMMAND_TYPE_vkCmdEndTransformFeedbackEXT_EXT: return "vkCmdEndTransformFeedbackEXT";
219     case VK_COMMAND_TYPE_vkCmdBeginQueryIndexedEXT_EXT: return "vkCmdBeginQueryIndexedEXT";
220     case VK_COMMAND_TYPE_vkCmdEndQueryIndexedEXT_EXT: return "vkCmdEndQueryIndexedEXT";
221     case VK_COMMAND_TYPE_vkCmdDrawIndirectByteCountEXT_EXT: return "vkCmdDrawIndirectByteCountEXT";
222     case VK_COMMAND_TYPE_vkGetImageDrmFormatModifierPropertiesEXT_EXT: return "vkGetImageDrmFormatModifierPropertiesEXT";
223     case VK_COMMAND_TYPE_vkGetBufferOpaqueCaptureAddress_EXT: return "vkGetBufferOpaqueCaptureAddress";
224     case VK_COMMAND_TYPE_vkGetBufferDeviceAddress_EXT: return "vkGetBufferDeviceAddress";
225     case VK_COMMAND_TYPE_vkGetDeviceMemoryOpaqueCaptureAddress_EXT: return "vkGetDeviceMemoryOpaqueCaptureAddress";
226     case VK_COMMAND_TYPE_vkSetReplyCommandStreamMESA_EXT: return "vkSetReplyCommandStreamMESA";
227     case VK_COMMAND_TYPE_vkSeekReplyCommandStreamMESA_EXT: return "vkSeekReplyCommandStreamMESA";
228     case VK_COMMAND_TYPE_vkExecuteCommandStreamsMESA_EXT: return "vkExecuteCommandStreamsMESA";
229     case VK_COMMAND_TYPE_vkCreateRingMESA_EXT: return "vkCreateRingMESA";
230     case VK_COMMAND_TYPE_vkDestroyRingMESA_EXT: return "vkDestroyRingMESA";
231     case VK_COMMAND_TYPE_vkNotifyRingMESA_EXT: return "vkNotifyRingMESA";
232     case VK_COMMAND_TYPE_vkWriteRingExtraMESA_EXT: return "vkWriteRingExtraMESA";
233     case VK_COMMAND_TYPE_vkGetMemoryResourcePropertiesMESA_EXT: return "vkGetMemoryResourcePropertiesMESA";
234     case VK_COMMAND_TYPE_vkGetVenusExperimentalFeatureData100000MESA_EXT: return "vkGetVenusExperimentalFeatureData100000MESA";
235     case VK_COMMAND_TYPE_vkGetDeviceProcAddr_EXT: return "vkGetDeviceProcAddr";
236     case VK_COMMAND_TYPE_vkGetInstanceProcAddr_EXT: return "vkGetInstanceProcAddr";
237     case VK_COMMAND_TYPE_vkMapMemory_EXT: return "vkMapMemory";
238     case VK_COMMAND_TYPE_vkGetMemoryFdKHR_EXT: return "vkGetMemoryFdKHR";
239     case VK_COMMAND_TYPE_vkGetMemoryFdPropertiesKHR_EXT: return "vkGetMemoryFdPropertiesKHR";
240     case VK_COMMAND_TYPE_vkUpdateDescriptorSetWithTemplate_EXT: return "vkUpdateDescriptorSetWithTemplate";
241     default: return "unknown";
242     }
243 }
244 
245 static void (*const vn_dispatch_table[196])(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags) = {
246     [VK_COMMAND_TYPE_vkCreateInstance_EXT] = vn_dispatch_vkCreateInstance,
247     [VK_COMMAND_TYPE_vkDestroyInstance_EXT] = vn_dispatch_vkDestroyInstance,
248     [VK_COMMAND_TYPE_vkEnumeratePhysicalDevices_EXT] = vn_dispatch_vkEnumeratePhysicalDevices,
249     [VK_COMMAND_TYPE_vkGetPhysicalDeviceProperties_EXT] = vn_dispatch_vkGetPhysicalDeviceProperties,
250     [VK_COMMAND_TYPE_vkGetPhysicalDeviceQueueFamilyProperties_EXT] = vn_dispatch_vkGetPhysicalDeviceQueueFamilyProperties,
251     [VK_COMMAND_TYPE_vkGetPhysicalDeviceMemoryProperties_EXT] = vn_dispatch_vkGetPhysicalDeviceMemoryProperties,
252     [VK_COMMAND_TYPE_vkGetPhysicalDeviceFeatures_EXT] = vn_dispatch_vkGetPhysicalDeviceFeatures,
253     [VK_COMMAND_TYPE_vkGetPhysicalDeviceFormatProperties_EXT] = vn_dispatch_vkGetPhysicalDeviceFormatProperties,
254     [VK_COMMAND_TYPE_vkGetPhysicalDeviceImageFormatProperties_EXT] = vn_dispatch_vkGetPhysicalDeviceImageFormatProperties,
255     [VK_COMMAND_TYPE_vkCreateDevice_EXT] = vn_dispatch_vkCreateDevice,
256     [VK_COMMAND_TYPE_vkDestroyDevice_EXT] = vn_dispatch_vkDestroyDevice,
257     [VK_COMMAND_TYPE_vkEnumerateInstanceVersion_EXT] = vn_dispatch_vkEnumerateInstanceVersion,
258     [VK_COMMAND_TYPE_vkEnumerateInstanceLayerProperties_EXT] = vn_dispatch_vkEnumerateInstanceLayerProperties,
259     [VK_COMMAND_TYPE_vkEnumerateInstanceExtensionProperties_EXT] = vn_dispatch_vkEnumerateInstanceExtensionProperties,
260     [VK_COMMAND_TYPE_vkEnumerateDeviceLayerProperties_EXT] = vn_dispatch_vkEnumerateDeviceLayerProperties,
261     [VK_COMMAND_TYPE_vkEnumerateDeviceExtensionProperties_EXT] = vn_dispatch_vkEnumerateDeviceExtensionProperties,
262     [VK_COMMAND_TYPE_vkGetDeviceQueue_EXT] = vn_dispatch_vkGetDeviceQueue,
263     [VK_COMMAND_TYPE_vkQueueSubmit_EXT] = vn_dispatch_vkQueueSubmit,
264     [VK_COMMAND_TYPE_vkQueueWaitIdle_EXT] = vn_dispatch_vkQueueWaitIdle,
265     [VK_COMMAND_TYPE_vkDeviceWaitIdle_EXT] = vn_dispatch_vkDeviceWaitIdle,
266     [VK_COMMAND_TYPE_vkAllocateMemory_EXT] = vn_dispatch_vkAllocateMemory,
267     [VK_COMMAND_TYPE_vkFreeMemory_EXT] = vn_dispatch_vkFreeMemory,
268     [VK_COMMAND_TYPE_vkUnmapMemory_EXT] = vn_dispatch_vkUnmapMemory,
269     [VK_COMMAND_TYPE_vkFlushMappedMemoryRanges_EXT] = vn_dispatch_vkFlushMappedMemoryRanges,
270     [VK_COMMAND_TYPE_vkInvalidateMappedMemoryRanges_EXT] = vn_dispatch_vkInvalidateMappedMemoryRanges,
271     [VK_COMMAND_TYPE_vkGetDeviceMemoryCommitment_EXT] = vn_dispatch_vkGetDeviceMemoryCommitment,
272     [VK_COMMAND_TYPE_vkGetBufferMemoryRequirements_EXT] = vn_dispatch_vkGetBufferMemoryRequirements,
273     [VK_COMMAND_TYPE_vkBindBufferMemory_EXT] = vn_dispatch_vkBindBufferMemory,
274     [VK_COMMAND_TYPE_vkGetImageMemoryRequirements_EXT] = vn_dispatch_vkGetImageMemoryRequirements,
275     [VK_COMMAND_TYPE_vkBindImageMemory_EXT] = vn_dispatch_vkBindImageMemory,
276     [VK_COMMAND_TYPE_vkGetImageSparseMemoryRequirements_EXT] = vn_dispatch_vkGetImageSparseMemoryRequirements,
277     [VK_COMMAND_TYPE_vkGetPhysicalDeviceSparseImageFormatProperties_EXT] = vn_dispatch_vkGetPhysicalDeviceSparseImageFormatProperties,
278     [VK_COMMAND_TYPE_vkQueueBindSparse_EXT] = vn_dispatch_vkQueueBindSparse,
279     [VK_COMMAND_TYPE_vkCreateFence_EXT] = vn_dispatch_vkCreateFence,
280     [VK_COMMAND_TYPE_vkDestroyFence_EXT] = vn_dispatch_vkDestroyFence,
281     [VK_COMMAND_TYPE_vkResetFences_EXT] = vn_dispatch_vkResetFences,
282     [VK_COMMAND_TYPE_vkGetFenceStatus_EXT] = vn_dispatch_vkGetFenceStatus,
283     [VK_COMMAND_TYPE_vkWaitForFences_EXT] = vn_dispatch_vkWaitForFences,
284     [VK_COMMAND_TYPE_vkCreateSemaphore_EXT] = vn_dispatch_vkCreateSemaphore,
285     [VK_COMMAND_TYPE_vkDestroySemaphore_EXT] = vn_dispatch_vkDestroySemaphore,
286     [VK_COMMAND_TYPE_vkCreateEvent_EXT] = vn_dispatch_vkCreateEvent,
287     [VK_COMMAND_TYPE_vkDestroyEvent_EXT] = vn_dispatch_vkDestroyEvent,
288     [VK_COMMAND_TYPE_vkGetEventStatus_EXT] = vn_dispatch_vkGetEventStatus,
289     [VK_COMMAND_TYPE_vkSetEvent_EXT] = vn_dispatch_vkSetEvent,
290     [VK_COMMAND_TYPE_vkResetEvent_EXT] = vn_dispatch_vkResetEvent,
291     [VK_COMMAND_TYPE_vkCreateQueryPool_EXT] = vn_dispatch_vkCreateQueryPool,
292     [VK_COMMAND_TYPE_vkDestroyQueryPool_EXT] = vn_dispatch_vkDestroyQueryPool,
293     [VK_COMMAND_TYPE_vkGetQueryPoolResults_EXT] = vn_dispatch_vkGetQueryPoolResults,
294     [VK_COMMAND_TYPE_vkResetQueryPool_EXT] = vn_dispatch_vkResetQueryPool,
295     [VK_COMMAND_TYPE_vkCreateBuffer_EXT] = vn_dispatch_vkCreateBuffer,
296     [VK_COMMAND_TYPE_vkDestroyBuffer_EXT] = vn_dispatch_vkDestroyBuffer,
297     [VK_COMMAND_TYPE_vkCreateBufferView_EXT] = vn_dispatch_vkCreateBufferView,
298     [VK_COMMAND_TYPE_vkDestroyBufferView_EXT] = vn_dispatch_vkDestroyBufferView,
299     [VK_COMMAND_TYPE_vkCreateImage_EXT] = vn_dispatch_vkCreateImage,
300     [VK_COMMAND_TYPE_vkDestroyImage_EXT] = vn_dispatch_vkDestroyImage,
301     [VK_COMMAND_TYPE_vkGetImageSubresourceLayout_EXT] = vn_dispatch_vkGetImageSubresourceLayout,
302     [VK_COMMAND_TYPE_vkCreateImageView_EXT] = vn_dispatch_vkCreateImageView,
303     [VK_COMMAND_TYPE_vkDestroyImageView_EXT] = vn_dispatch_vkDestroyImageView,
304     [VK_COMMAND_TYPE_vkCreateShaderModule_EXT] = vn_dispatch_vkCreateShaderModule,
305     [VK_COMMAND_TYPE_vkDestroyShaderModule_EXT] = vn_dispatch_vkDestroyShaderModule,
306     [VK_COMMAND_TYPE_vkCreatePipelineCache_EXT] = vn_dispatch_vkCreatePipelineCache,
307     [VK_COMMAND_TYPE_vkDestroyPipelineCache_EXT] = vn_dispatch_vkDestroyPipelineCache,
308     [VK_COMMAND_TYPE_vkGetPipelineCacheData_EXT] = vn_dispatch_vkGetPipelineCacheData,
309     [VK_COMMAND_TYPE_vkMergePipelineCaches_EXT] = vn_dispatch_vkMergePipelineCaches,
310     [VK_COMMAND_TYPE_vkCreateGraphicsPipelines_EXT] = vn_dispatch_vkCreateGraphicsPipelines,
311     [VK_COMMAND_TYPE_vkCreateComputePipelines_EXT] = vn_dispatch_vkCreateComputePipelines,
312     [VK_COMMAND_TYPE_vkDestroyPipeline_EXT] = vn_dispatch_vkDestroyPipeline,
313     [VK_COMMAND_TYPE_vkCreatePipelineLayout_EXT] = vn_dispatch_vkCreatePipelineLayout,
314     [VK_COMMAND_TYPE_vkDestroyPipelineLayout_EXT] = vn_dispatch_vkDestroyPipelineLayout,
315     [VK_COMMAND_TYPE_vkCreateSampler_EXT] = vn_dispatch_vkCreateSampler,
316     [VK_COMMAND_TYPE_vkDestroySampler_EXT] = vn_dispatch_vkDestroySampler,
317     [VK_COMMAND_TYPE_vkCreateDescriptorSetLayout_EXT] = vn_dispatch_vkCreateDescriptorSetLayout,
318     [VK_COMMAND_TYPE_vkDestroyDescriptorSetLayout_EXT] = vn_dispatch_vkDestroyDescriptorSetLayout,
319     [VK_COMMAND_TYPE_vkCreateDescriptorPool_EXT] = vn_dispatch_vkCreateDescriptorPool,
320     [VK_COMMAND_TYPE_vkDestroyDescriptorPool_EXT] = vn_dispatch_vkDestroyDescriptorPool,
321     [VK_COMMAND_TYPE_vkResetDescriptorPool_EXT] = vn_dispatch_vkResetDescriptorPool,
322     [VK_COMMAND_TYPE_vkAllocateDescriptorSets_EXT] = vn_dispatch_vkAllocateDescriptorSets,
323     [VK_COMMAND_TYPE_vkFreeDescriptorSets_EXT] = vn_dispatch_vkFreeDescriptorSets,
324     [VK_COMMAND_TYPE_vkUpdateDescriptorSets_EXT] = vn_dispatch_vkUpdateDescriptorSets,
325     [VK_COMMAND_TYPE_vkCreateFramebuffer_EXT] = vn_dispatch_vkCreateFramebuffer,
326     [VK_COMMAND_TYPE_vkDestroyFramebuffer_EXT] = vn_dispatch_vkDestroyFramebuffer,
327     [VK_COMMAND_TYPE_vkCreateRenderPass_EXT] = vn_dispatch_vkCreateRenderPass,
328     [VK_COMMAND_TYPE_vkDestroyRenderPass_EXT] = vn_dispatch_vkDestroyRenderPass,
329     [VK_COMMAND_TYPE_vkGetRenderAreaGranularity_EXT] = vn_dispatch_vkGetRenderAreaGranularity,
330     [VK_COMMAND_TYPE_vkCreateCommandPool_EXT] = vn_dispatch_vkCreateCommandPool,
331     [VK_COMMAND_TYPE_vkDestroyCommandPool_EXT] = vn_dispatch_vkDestroyCommandPool,
332     [VK_COMMAND_TYPE_vkResetCommandPool_EXT] = vn_dispatch_vkResetCommandPool,
333     [VK_COMMAND_TYPE_vkAllocateCommandBuffers_EXT] = vn_dispatch_vkAllocateCommandBuffers,
334     [VK_COMMAND_TYPE_vkFreeCommandBuffers_EXT] = vn_dispatch_vkFreeCommandBuffers,
335     [VK_COMMAND_TYPE_vkBeginCommandBuffer_EXT] = vn_dispatch_vkBeginCommandBuffer,
336     [VK_COMMAND_TYPE_vkEndCommandBuffer_EXT] = vn_dispatch_vkEndCommandBuffer,
337     [VK_COMMAND_TYPE_vkResetCommandBuffer_EXT] = vn_dispatch_vkResetCommandBuffer,
338     [VK_COMMAND_TYPE_vkCmdBindPipeline_EXT] = vn_dispatch_vkCmdBindPipeline,
339     [VK_COMMAND_TYPE_vkCmdSetViewport_EXT] = vn_dispatch_vkCmdSetViewport,
340     [VK_COMMAND_TYPE_vkCmdSetScissor_EXT] = vn_dispatch_vkCmdSetScissor,
341     [VK_COMMAND_TYPE_vkCmdSetLineWidth_EXT] = vn_dispatch_vkCmdSetLineWidth,
342     [VK_COMMAND_TYPE_vkCmdSetDepthBias_EXT] = vn_dispatch_vkCmdSetDepthBias,
343     [VK_COMMAND_TYPE_vkCmdSetBlendConstants_EXT] = vn_dispatch_vkCmdSetBlendConstants,
344     [VK_COMMAND_TYPE_vkCmdSetDepthBounds_EXT] = vn_dispatch_vkCmdSetDepthBounds,
345     [VK_COMMAND_TYPE_vkCmdSetStencilCompareMask_EXT] = vn_dispatch_vkCmdSetStencilCompareMask,
346     [VK_COMMAND_TYPE_vkCmdSetStencilWriteMask_EXT] = vn_dispatch_vkCmdSetStencilWriteMask,
347     [VK_COMMAND_TYPE_vkCmdSetStencilReference_EXT] = vn_dispatch_vkCmdSetStencilReference,
348     [VK_COMMAND_TYPE_vkCmdBindDescriptorSets_EXT] = vn_dispatch_vkCmdBindDescriptorSets,
349     [VK_COMMAND_TYPE_vkCmdBindIndexBuffer_EXT] = vn_dispatch_vkCmdBindIndexBuffer,
350     [VK_COMMAND_TYPE_vkCmdBindVertexBuffers_EXT] = vn_dispatch_vkCmdBindVertexBuffers,
351     [VK_COMMAND_TYPE_vkCmdDraw_EXT] = vn_dispatch_vkCmdDraw,
352     [VK_COMMAND_TYPE_vkCmdDrawIndexed_EXT] = vn_dispatch_vkCmdDrawIndexed,
353     [VK_COMMAND_TYPE_vkCmdDrawIndirect_EXT] = vn_dispatch_vkCmdDrawIndirect,
354     [VK_COMMAND_TYPE_vkCmdDrawIndexedIndirect_EXT] = vn_dispatch_vkCmdDrawIndexedIndirect,
355     [VK_COMMAND_TYPE_vkCmdDispatch_EXT] = vn_dispatch_vkCmdDispatch,
356     [VK_COMMAND_TYPE_vkCmdDispatchIndirect_EXT] = vn_dispatch_vkCmdDispatchIndirect,
357     [VK_COMMAND_TYPE_vkCmdCopyBuffer_EXT] = vn_dispatch_vkCmdCopyBuffer,
358     [VK_COMMAND_TYPE_vkCmdCopyImage_EXT] = vn_dispatch_vkCmdCopyImage,
359     [VK_COMMAND_TYPE_vkCmdBlitImage_EXT] = vn_dispatch_vkCmdBlitImage,
360     [VK_COMMAND_TYPE_vkCmdCopyBufferToImage_EXT] = vn_dispatch_vkCmdCopyBufferToImage,
361     [VK_COMMAND_TYPE_vkCmdCopyImageToBuffer_EXT] = vn_dispatch_vkCmdCopyImageToBuffer,
362     [VK_COMMAND_TYPE_vkCmdUpdateBuffer_EXT] = vn_dispatch_vkCmdUpdateBuffer,
363     [VK_COMMAND_TYPE_vkCmdFillBuffer_EXT] = vn_dispatch_vkCmdFillBuffer,
364     [VK_COMMAND_TYPE_vkCmdClearColorImage_EXT] = vn_dispatch_vkCmdClearColorImage,
365     [VK_COMMAND_TYPE_vkCmdClearDepthStencilImage_EXT] = vn_dispatch_vkCmdClearDepthStencilImage,
366     [VK_COMMAND_TYPE_vkCmdClearAttachments_EXT] = vn_dispatch_vkCmdClearAttachments,
367     [VK_COMMAND_TYPE_vkCmdResolveImage_EXT] = vn_dispatch_vkCmdResolveImage,
368     [VK_COMMAND_TYPE_vkCmdSetEvent_EXT] = vn_dispatch_vkCmdSetEvent,
369     [VK_COMMAND_TYPE_vkCmdResetEvent_EXT] = vn_dispatch_vkCmdResetEvent,
370     [VK_COMMAND_TYPE_vkCmdWaitEvents_EXT] = vn_dispatch_vkCmdWaitEvents,
371     [VK_COMMAND_TYPE_vkCmdPipelineBarrier_EXT] = vn_dispatch_vkCmdPipelineBarrier,
372     [VK_COMMAND_TYPE_vkCmdBeginQuery_EXT] = vn_dispatch_vkCmdBeginQuery,
373     [VK_COMMAND_TYPE_vkCmdEndQuery_EXT] = vn_dispatch_vkCmdEndQuery,
374     [VK_COMMAND_TYPE_vkCmdResetQueryPool_EXT] = vn_dispatch_vkCmdResetQueryPool,
375     [VK_COMMAND_TYPE_vkCmdWriteTimestamp_EXT] = vn_dispatch_vkCmdWriteTimestamp,
376     [VK_COMMAND_TYPE_vkCmdCopyQueryPoolResults_EXT] = vn_dispatch_vkCmdCopyQueryPoolResults,
377     [VK_COMMAND_TYPE_vkCmdPushConstants_EXT] = vn_dispatch_vkCmdPushConstants,
378     [VK_COMMAND_TYPE_vkCmdBeginRenderPass_EXT] = vn_dispatch_vkCmdBeginRenderPass,
379     [VK_COMMAND_TYPE_vkCmdNextSubpass_EXT] = vn_dispatch_vkCmdNextSubpass,
380     [VK_COMMAND_TYPE_vkCmdEndRenderPass_EXT] = vn_dispatch_vkCmdEndRenderPass,
381     [VK_COMMAND_TYPE_vkCmdExecuteCommands_EXT] = vn_dispatch_vkCmdExecuteCommands,
382     [VK_COMMAND_TYPE_vkGetPhysicalDeviceFeatures2_EXT] = vn_dispatch_vkGetPhysicalDeviceFeatures2,
383     [VK_COMMAND_TYPE_vkGetPhysicalDeviceProperties2_EXT] = vn_dispatch_vkGetPhysicalDeviceProperties2,
384     [VK_COMMAND_TYPE_vkGetPhysicalDeviceFormatProperties2_EXT] = vn_dispatch_vkGetPhysicalDeviceFormatProperties2,
385     [VK_COMMAND_TYPE_vkGetPhysicalDeviceImageFormatProperties2_EXT] = vn_dispatch_vkGetPhysicalDeviceImageFormatProperties2,
386     [VK_COMMAND_TYPE_vkGetPhysicalDeviceQueueFamilyProperties2_EXT] = vn_dispatch_vkGetPhysicalDeviceQueueFamilyProperties2,
387     [VK_COMMAND_TYPE_vkGetPhysicalDeviceMemoryProperties2_EXT] = vn_dispatch_vkGetPhysicalDeviceMemoryProperties2,
388     [VK_COMMAND_TYPE_vkGetPhysicalDeviceSparseImageFormatProperties2_EXT] = vn_dispatch_vkGetPhysicalDeviceSparseImageFormatProperties2,
389     [VK_COMMAND_TYPE_vkTrimCommandPool_EXT] = vn_dispatch_vkTrimCommandPool,
390     [VK_COMMAND_TYPE_vkGetPhysicalDeviceExternalBufferProperties_EXT] = vn_dispatch_vkGetPhysicalDeviceExternalBufferProperties,
391     [VK_COMMAND_TYPE_vkGetPhysicalDeviceExternalSemaphoreProperties_EXT] = vn_dispatch_vkGetPhysicalDeviceExternalSemaphoreProperties,
392     [VK_COMMAND_TYPE_vkGetPhysicalDeviceExternalFenceProperties_EXT] = vn_dispatch_vkGetPhysicalDeviceExternalFenceProperties,
393     [VK_COMMAND_TYPE_vkEnumeratePhysicalDeviceGroups_EXT] = vn_dispatch_vkEnumeratePhysicalDeviceGroups,
394     [VK_COMMAND_TYPE_vkGetDeviceGroupPeerMemoryFeatures_EXT] = vn_dispatch_vkGetDeviceGroupPeerMemoryFeatures,
395     [VK_COMMAND_TYPE_vkBindBufferMemory2_EXT] = vn_dispatch_vkBindBufferMemory2,
396     [VK_COMMAND_TYPE_vkBindImageMemory2_EXT] = vn_dispatch_vkBindImageMemory2,
397     [VK_COMMAND_TYPE_vkCmdSetDeviceMask_EXT] = vn_dispatch_vkCmdSetDeviceMask,
398     [VK_COMMAND_TYPE_vkCmdDispatchBase_EXT] = vn_dispatch_vkCmdDispatchBase,
399     [VK_COMMAND_TYPE_vkCreateDescriptorUpdateTemplate_EXT] = vn_dispatch_vkCreateDescriptorUpdateTemplate,
400     [VK_COMMAND_TYPE_vkDestroyDescriptorUpdateTemplate_EXT] = vn_dispatch_vkDestroyDescriptorUpdateTemplate,
401     [VK_COMMAND_TYPE_vkGetBufferMemoryRequirements2_EXT] = vn_dispatch_vkGetBufferMemoryRequirements2,
402     [VK_COMMAND_TYPE_vkGetImageMemoryRequirements2_EXT] = vn_dispatch_vkGetImageMemoryRequirements2,
403     [VK_COMMAND_TYPE_vkGetImageSparseMemoryRequirements2_EXT] = vn_dispatch_vkGetImageSparseMemoryRequirements2,
404     [VK_COMMAND_TYPE_vkCreateSamplerYcbcrConversion_EXT] = vn_dispatch_vkCreateSamplerYcbcrConversion,
405     [VK_COMMAND_TYPE_vkDestroySamplerYcbcrConversion_EXT] = vn_dispatch_vkDestroySamplerYcbcrConversion,
406     [VK_COMMAND_TYPE_vkGetDeviceQueue2_EXT] = vn_dispatch_vkGetDeviceQueue2,
407     [VK_COMMAND_TYPE_vkGetDescriptorSetLayoutSupport_EXT] = vn_dispatch_vkGetDescriptorSetLayoutSupport,
408     [VK_COMMAND_TYPE_vkCreateRenderPass2_EXT] = vn_dispatch_vkCreateRenderPass2,
409     [VK_COMMAND_TYPE_vkCmdBeginRenderPass2_EXT] = vn_dispatch_vkCmdBeginRenderPass2,
410     [VK_COMMAND_TYPE_vkCmdNextSubpass2_EXT] = vn_dispatch_vkCmdNextSubpass2,
411     [VK_COMMAND_TYPE_vkCmdEndRenderPass2_EXT] = vn_dispatch_vkCmdEndRenderPass2,
412     [VK_COMMAND_TYPE_vkGetSemaphoreCounterValue_EXT] = vn_dispatch_vkGetSemaphoreCounterValue,
413     [VK_COMMAND_TYPE_vkWaitSemaphores_EXT] = vn_dispatch_vkWaitSemaphores,
414     [VK_COMMAND_TYPE_vkSignalSemaphore_EXT] = vn_dispatch_vkSignalSemaphore,
415     [VK_COMMAND_TYPE_vkCmdDrawIndirectCount_EXT] = vn_dispatch_vkCmdDrawIndirectCount,
416     [VK_COMMAND_TYPE_vkCmdDrawIndexedIndirectCount_EXT] = vn_dispatch_vkCmdDrawIndexedIndirectCount,
417     [VK_COMMAND_TYPE_vkCmdBindTransformFeedbackBuffersEXT_EXT] = vn_dispatch_vkCmdBindTransformFeedbackBuffersEXT,
418     [VK_COMMAND_TYPE_vkCmdBeginTransformFeedbackEXT_EXT] = vn_dispatch_vkCmdBeginTransformFeedbackEXT,
419     [VK_COMMAND_TYPE_vkCmdEndTransformFeedbackEXT_EXT] = vn_dispatch_vkCmdEndTransformFeedbackEXT,
420     [VK_COMMAND_TYPE_vkCmdBeginQueryIndexedEXT_EXT] = vn_dispatch_vkCmdBeginQueryIndexedEXT,
421     [VK_COMMAND_TYPE_vkCmdEndQueryIndexedEXT_EXT] = vn_dispatch_vkCmdEndQueryIndexedEXT,
422     [VK_COMMAND_TYPE_vkCmdDrawIndirectByteCountEXT_EXT] = vn_dispatch_vkCmdDrawIndirectByteCountEXT,
423     [VK_COMMAND_TYPE_vkGetImageDrmFormatModifierPropertiesEXT_EXT] = vn_dispatch_vkGetImageDrmFormatModifierPropertiesEXT,
424     [VK_COMMAND_TYPE_vkGetBufferOpaqueCaptureAddress_EXT] = vn_dispatch_vkGetBufferOpaqueCaptureAddress,
425     [VK_COMMAND_TYPE_vkGetBufferDeviceAddress_EXT] = vn_dispatch_vkGetBufferDeviceAddress,
426     [VK_COMMAND_TYPE_vkGetDeviceMemoryOpaqueCaptureAddress_EXT] = vn_dispatch_vkGetDeviceMemoryOpaqueCaptureAddress,
427     [VK_COMMAND_TYPE_vkSetReplyCommandStreamMESA_EXT] = vn_dispatch_vkSetReplyCommandStreamMESA,
428     [VK_COMMAND_TYPE_vkSeekReplyCommandStreamMESA_EXT] = vn_dispatch_vkSeekReplyCommandStreamMESA,
429     [VK_COMMAND_TYPE_vkExecuteCommandStreamsMESA_EXT] = vn_dispatch_vkExecuteCommandStreamsMESA,
430     [VK_COMMAND_TYPE_vkCreateRingMESA_EXT] = vn_dispatch_vkCreateRingMESA,
431     [VK_COMMAND_TYPE_vkDestroyRingMESA_EXT] = vn_dispatch_vkDestroyRingMESA,
432     [VK_COMMAND_TYPE_vkNotifyRingMESA_EXT] = vn_dispatch_vkNotifyRingMESA,
433     [VK_COMMAND_TYPE_vkWriteRingExtraMESA_EXT] = vn_dispatch_vkWriteRingExtraMESA,
434     [VK_COMMAND_TYPE_vkGetMemoryResourcePropertiesMESA_EXT] = vn_dispatch_vkGetMemoryResourcePropertiesMESA,
435     [VK_COMMAND_TYPE_vkGetVenusExperimentalFeatureData100000MESA_EXT] = vn_dispatch_vkGetVenusExperimentalFeatureData100000MESA,
436 };
437 
vn_dispatch_command(struct vn_dispatch_context * ctx)438 static inline void vn_dispatch_command(struct vn_dispatch_context *ctx)
439 {
440     VkCommandTypeEXT cmd_type;
441     VkCommandFlagsEXT cmd_flags;
442 
443     vn_decode_VkCommandTypeEXT(ctx->decoder, &cmd_type);
444     vn_decode_VkFlags(ctx->decoder, &cmd_flags);
445 
446     {
447 #ifdef DEBUG
448         TRACE_SCOPE_SLOW(vn_dispatch_command_name(cmd_type));
449 #endif
450         if (cmd_type < 196 && vn_dispatch_table[cmd_type])
451             vn_dispatch_table[cmd_type](ctx, cmd_flags);
452         else
453             vn_cs_decoder_set_fatal(ctx->decoder);
454     }
455 
456     if (vn_cs_decoder_get_fatal(ctx->decoder))
457         vn_dispatch_debug_log(ctx, "%s resulted in CS error", vn_dispatch_command_name(cmd_type));
458 }
459 
460 #endif /* VN_PROTOCOL_RENDERER_DISPATCHES_H */
461