1 /* This file is generated by venus-protocol. See vn_protocol_renderer.h. */
2
3 /*
4 * Copyright 2022 Google LLC
5 * Copyright 2022 Collabora Ltd.
6 * SPDX-License-Identifier: MIT
7 */
8
9 #ifndef VN_PROTOCOL_RENDERER_UTIL_H
10 #define VN_PROTOCOL_RENDERER_UTIL_H
11
12 #include "vn_protocol_renderer_info.h"
13
14 struct vn_physical_device_proc_table {
15 PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT GetPhysicalDeviceCalibrateableTimeDomainsEXT;
16 PFN_vkGetPhysicalDeviceToolProperties GetPhysicalDeviceToolProperties;
17 };
18
19 struct vn_device_proc_table {
20 PFN_vkAllocateCommandBuffers AllocateCommandBuffers;
21 PFN_vkAllocateDescriptorSets AllocateDescriptorSets;
22 PFN_vkAllocateMemory AllocateMemory;
23 PFN_vkBeginCommandBuffer BeginCommandBuffer;
24 PFN_vkBindBufferMemory BindBufferMemory;
25 PFN_vkBindBufferMemory2 BindBufferMemory2;
26 PFN_vkBindImageMemory BindImageMemory;
27 PFN_vkBindImageMemory2 BindImageMemory2;
28 PFN_vkCmdBeginConditionalRenderingEXT CmdBeginConditionalRenderingEXT;
29 PFN_vkCmdBeginQuery CmdBeginQuery;
30 PFN_vkCmdBeginQueryIndexedEXT CmdBeginQueryIndexedEXT;
31 PFN_vkCmdBeginRenderPass CmdBeginRenderPass;
32 PFN_vkCmdBeginRenderPass2 CmdBeginRenderPass2;
33 PFN_vkCmdBeginRendering CmdBeginRendering;
34 PFN_vkCmdBeginTransformFeedbackEXT CmdBeginTransformFeedbackEXT;
35 PFN_vkCmdBindDescriptorSets CmdBindDescriptorSets;
36 PFN_vkCmdBindIndexBuffer CmdBindIndexBuffer;
37 PFN_vkCmdBindPipeline CmdBindPipeline;
38 PFN_vkCmdBindTransformFeedbackBuffersEXT CmdBindTransformFeedbackBuffersEXT;
39 PFN_vkCmdBindVertexBuffers CmdBindVertexBuffers;
40 PFN_vkCmdBindVertexBuffers2 CmdBindVertexBuffers2;
41 PFN_vkCmdBlitImage CmdBlitImage;
42 PFN_vkCmdBlitImage2 CmdBlitImage2;
43 PFN_vkCmdClearAttachments CmdClearAttachments;
44 PFN_vkCmdClearColorImage CmdClearColorImage;
45 PFN_vkCmdClearDepthStencilImage CmdClearDepthStencilImage;
46 PFN_vkCmdCopyBuffer CmdCopyBuffer;
47 PFN_vkCmdCopyBuffer2 CmdCopyBuffer2;
48 PFN_vkCmdCopyBufferToImage CmdCopyBufferToImage;
49 PFN_vkCmdCopyBufferToImage2 CmdCopyBufferToImage2;
50 PFN_vkCmdCopyImage CmdCopyImage;
51 PFN_vkCmdCopyImage2 CmdCopyImage2;
52 PFN_vkCmdCopyImageToBuffer CmdCopyImageToBuffer;
53 PFN_vkCmdCopyImageToBuffer2 CmdCopyImageToBuffer2;
54 PFN_vkCmdCopyQueryPoolResults CmdCopyQueryPoolResults;
55 PFN_vkCmdDispatch CmdDispatch;
56 PFN_vkCmdDispatchBase CmdDispatchBase;
57 PFN_vkCmdDispatchIndirect CmdDispatchIndirect;
58 PFN_vkCmdDraw CmdDraw;
59 PFN_vkCmdDrawIndexed CmdDrawIndexed;
60 PFN_vkCmdDrawIndexedIndirect CmdDrawIndexedIndirect;
61 PFN_vkCmdDrawIndexedIndirectCount CmdDrawIndexedIndirectCount;
62 PFN_vkCmdDrawIndirect CmdDrawIndirect;
63 PFN_vkCmdDrawIndirectByteCountEXT CmdDrawIndirectByteCountEXT;
64 PFN_vkCmdDrawIndirectCount CmdDrawIndirectCount;
65 PFN_vkCmdDrawMultiEXT CmdDrawMultiEXT;
66 PFN_vkCmdDrawMultiIndexedEXT CmdDrawMultiIndexedEXT;
67 PFN_vkCmdEndConditionalRenderingEXT CmdEndConditionalRenderingEXT;
68 PFN_vkCmdEndQuery CmdEndQuery;
69 PFN_vkCmdEndQueryIndexedEXT CmdEndQueryIndexedEXT;
70 PFN_vkCmdEndRenderPass CmdEndRenderPass;
71 PFN_vkCmdEndRenderPass2 CmdEndRenderPass2;
72 PFN_vkCmdEndRendering CmdEndRendering;
73 PFN_vkCmdEndTransformFeedbackEXT CmdEndTransformFeedbackEXT;
74 PFN_vkCmdExecuteCommands CmdExecuteCommands;
75 PFN_vkCmdFillBuffer CmdFillBuffer;
76 PFN_vkCmdNextSubpass CmdNextSubpass;
77 PFN_vkCmdNextSubpass2 CmdNextSubpass2;
78 PFN_vkCmdPipelineBarrier CmdPipelineBarrier;
79 PFN_vkCmdPipelineBarrier2 CmdPipelineBarrier2;
80 PFN_vkCmdPushConstants CmdPushConstants;
81 PFN_vkCmdPushDescriptorSetKHR CmdPushDescriptorSetKHR;
82 PFN_vkCmdPushDescriptorSetWithTemplateKHR CmdPushDescriptorSetWithTemplateKHR;
83 PFN_vkCmdResetEvent CmdResetEvent;
84 PFN_vkCmdResetEvent2 CmdResetEvent2;
85 PFN_vkCmdResetQueryPool CmdResetQueryPool;
86 PFN_vkCmdResolveImage CmdResolveImage;
87 PFN_vkCmdResolveImage2 CmdResolveImage2;
88 PFN_vkCmdSetBlendConstants CmdSetBlendConstants;
89 PFN_vkCmdSetCullMode CmdSetCullMode;
90 PFN_vkCmdSetDepthBias CmdSetDepthBias;
91 PFN_vkCmdSetDepthBiasEnable CmdSetDepthBiasEnable;
92 PFN_vkCmdSetDepthBounds CmdSetDepthBounds;
93 PFN_vkCmdSetDepthBoundsTestEnable CmdSetDepthBoundsTestEnable;
94 PFN_vkCmdSetDepthCompareOp CmdSetDepthCompareOp;
95 PFN_vkCmdSetDepthTestEnable CmdSetDepthTestEnable;
96 PFN_vkCmdSetDepthWriteEnable CmdSetDepthWriteEnable;
97 PFN_vkCmdSetDeviceMask CmdSetDeviceMask;
98 PFN_vkCmdSetEvent CmdSetEvent;
99 PFN_vkCmdSetEvent2 CmdSetEvent2;
100 PFN_vkCmdSetFrontFace CmdSetFrontFace;
101 PFN_vkCmdSetLineStippleEXT CmdSetLineStippleEXT;
102 PFN_vkCmdSetLineWidth CmdSetLineWidth;
103 PFN_vkCmdSetLogicOpEXT CmdSetLogicOpEXT;
104 PFN_vkCmdSetPatchControlPointsEXT CmdSetPatchControlPointsEXT;
105 PFN_vkCmdSetPrimitiveRestartEnable CmdSetPrimitiveRestartEnable;
106 PFN_vkCmdSetPrimitiveTopology CmdSetPrimitiveTopology;
107 PFN_vkCmdSetRasterizerDiscardEnable CmdSetRasterizerDiscardEnable;
108 PFN_vkCmdSetScissor CmdSetScissor;
109 PFN_vkCmdSetScissorWithCount CmdSetScissorWithCount;
110 PFN_vkCmdSetStencilCompareMask CmdSetStencilCompareMask;
111 PFN_vkCmdSetStencilOp CmdSetStencilOp;
112 PFN_vkCmdSetStencilReference CmdSetStencilReference;
113 PFN_vkCmdSetStencilTestEnable CmdSetStencilTestEnable;
114 PFN_vkCmdSetStencilWriteMask CmdSetStencilWriteMask;
115 PFN_vkCmdSetViewport CmdSetViewport;
116 PFN_vkCmdSetViewportWithCount CmdSetViewportWithCount;
117 PFN_vkCmdUpdateBuffer CmdUpdateBuffer;
118 PFN_vkCmdWaitEvents CmdWaitEvents;
119 PFN_vkCmdWaitEvents2 CmdWaitEvents2;
120 PFN_vkCmdWriteTimestamp CmdWriteTimestamp;
121 PFN_vkCmdWriteTimestamp2 CmdWriteTimestamp2;
122 PFN_vkCreateBuffer CreateBuffer;
123 PFN_vkCreateBufferView CreateBufferView;
124 PFN_vkCreateCommandPool CreateCommandPool;
125 PFN_vkCreateComputePipelines CreateComputePipelines;
126 PFN_vkCreateDescriptorPool CreateDescriptorPool;
127 PFN_vkCreateDescriptorSetLayout CreateDescriptorSetLayout;
128 PFN_vkCreateDescriptorUpdateTemplate CreateDescriptorUpdateTemplate;
129 PFN_vkCreateEvent CreateEvent;
130 PFN_vkCreateFence CreateFence;
131 PFN_vkCreateFramebuffer CreateFramebuffer;
132 PFN_vkCreateGraphicsPipelines CreateGraphicsPipelines;
133 PFN_vkCreateImage CreateImage;
134 PFN_vkCreateImageView CreateImageView;
135 PFN_vkCreatePipelineCache CreatePipelineCache;
136 PFN_vkCreatePipelineLayout CreatePipelineLayout;
137 PFN_vkCreatePrivateDataSlot CreatePrivateDataSlot;
138 PFN_vkCreateQueryPool CreateQueryPool;
139 PFN_vkCreateRenderPass CreateRenderPass;
140 PFN_vkCreateRenderPass2 CreateRenderPass2;
141 PFN_vkCreateSampler CreateSampler;
142 PFN_vkCreateSamplerYcbcrConversion CreateSamplerYcbcrConversion;
143 PFN_vkCreateSemaphore CreateSemaphore;
144 PFN_vkCreateShaderModule CreateShaderModule;
145 PFN_vkDestroyBuffer DestroyBuffer;
146 PFN_vkDestroyBufferView DestroyBufferView;
147 PFN_vkDestroyCommandPool DestroyCommandPool;
148 PFN_vkDestroyDescriptorPool DestroyDescriptorPool;
149 PFN_vkDestroyDescriptorSetLayout DestroyDescriptorSetLayout;
150 PFN_vkDestroyDescriptorUpdateTemplate DestroyDescriptorUpdateTemplate;
151 PFN_vkDestroyDevice DestroyDevice;
152 PFN_vkDestroyEvent DestroyEvent;
153 PFN_vkDestroyFence DestroyFence;
154 PFN_vkDestroyFramebuffer DestroyFramebuffer;
155 PFN_vkDestroyImage DestroyImage;
156 PFN_vkDestroyImageView DestroyImageView;
157 PFN_vkDestroyPipeline DestroyPipeline;
158 PFN_vkDestroyPipelineCache DestroyPipelineCache;
159 PFN_vkDestroyPipelineLayout DestroyPipelineLayout;
160 PFN_vkDestroyPrivateDataSlot DestroyPrivateDataSlot;
161 PFN_vkDestroyQueryPool DestroyQueryPool;
162 PFN_vkDestroyRenderPass DestroyRenderPass;
163 PFN_vkDestroySampler DestroySampler;
164 PFN_vkDestroySamplerYcbcrConversion DestroySamplerYcbcrConversion;
165 PFN_vkDestroySemaphore DestroySemaphore;
166 PFN_vkDestroyShaderModule DestroyShaderModule;
167 PFN_vkDeviceWaitIdle DeviceWaitIdle;
168 PFN_vkEndCommandBuffer EndCommandBuffer;
169 PFN_vkFlushMappedMemoryRanges FlushMappedMemoryRanges;
170 PFN_vkFreeCommandBuffers FreeCommandBuffers;
171 PFN_vkFreeDescriptorSets FreeDescriptorSets;
172 PFN_vkFreeMemory FreeMemory;
173 PFN_vkGetBufferDeviceAddress GetBufferDeviceAddress;
174 PFN_vkGetBufferMemoryRequirements GetBufferMemoryRequirements;
175 PFN_vkGetBufferMemoryRequirements2 GetBufferMemoryRequirements2;
176 PFN_vkGetBufferOpaqueCaptureAddress GetBufferOpaqueCaptureAddress;
177 PFN_vkGetCalibratedTimestampsEXT GetCalibratedTimestampsEXT;
178 PFN_vkGetDescriptorSetLayoutSupport GetDescriptorSetLayoutSupport;
179 PFN_vkGetDeviceBufferMemoryRequirements GetDeviceBufferMemoryRequirements;
180 PFN_vkGetDeviceGroupPeerMemoryFeatures GetDeviceGroupPeerMemoryFeatures;
181 PFN_vkGetDeviceImageMemoryRequirements GetDeviceImageMemoryRequirements;
182 PFN_vkGetDeviceImageSparseMemoryRequirements GetDeviceImageSparseMemoryRequirements;
183 PFN_vkGetDeviceMemoryCommitment GetDeviceMemoryCommitment;
184 PFN_vkGetDeviceMemoryOpaqueCaptureAddress GetDeviceMemoryOpaqueCaptureAddress;
185 PFN_vkGetDeviceProcAddr GetDeviceProcAddr;
186 PFN_vkGetDeviceQueue GetDeviceQueue;
187 PFN_vkGetDeviceQueue2 GetDeviceQueue2;
188 PFN_vkGetEventStatus GetEventStatus;
189 PFN_vkGetFenceFdKHR GetFenceFdKHR;
190 PFN_vkGetFenceStatus GetFenceStatus;
191 PFN_vkGetImageDrmFormatModifierPropertiesEXT GetImageDrmFormatModifierPropertiesEXT;
192 PFN_vkGetImageMemoryRequirements GetImageMemoryRequirements;
193 PFN_vkGetImageMemoryRequirements2 GetImageMemoryRequirements2;
194 PFN_vkGetImageSparseMemoryRequirements GetImageSparseMemoryRequirements;
195 PFN_vkGetImageSparseMemoryRequirements2 GetImageSparseMemoryRequirements2;
196 PFN_vkGetImageSubresourceLayout GetImageSubresourceLayout;
197 PFN_vkGetMemoryFdKHR GetMemoryFdKHR;
198 PFN_vkGetMemoryFdPropertiesKHR GetMemoryFdPropertiesKHR;
199 PFN_vkGetPipelineCacheData GetPipelineCacheData;
200 PFN_vkGetPrivateData GetPrivateData;
201 PFN_vkGetQueryPoolResults GetQueryPoolResults;
202 PFN_vkGetRenderAreaGranularity GetRenderAreaGranularity;
203 PFN_vkGetSemaphoreCounterValue GetSemaphoreCounterValue;
204 PFN_vkGetSemaphoreFdKHR GetSemaphoreFdKHR;
205 PFN_vkImportFenceFdKHR ImportFenceFdKHR;
206 PFN_vkImportSemaphoreFdKHR ImportSemaphoreFdKHR;
207 PFN_vkInvalidateMappedMemoryRanges InvalidateMappedMemoryRanges;
208 PFN_vkMapMemory MapMemory;
209 PFN_vkMergePipelineCaches MergePipelineCaches;
210 PFN_vkQueueBindSparse QueueBindSparse;
211 PFN_vkQueueSubmit QueueSubmit;
212 PFN_vkQueueSubmit2 QueueSubmit2;
213 PFN_vkQueueWaitIdle QueueWaitIdle;
214 PFN_vkResetCommandBuffer ResetCommandBuffer;
215 PFN_vkResetCommandPool ResetCommandPool;
216 PFN_vkResetDescriptorPool ResetDescriptorPool;
217 PFN_vkResetEvent ResetEvent;
218 PFN_vkResetFences ResetFences;
219 PFN_vkResetQueryPool ResetQueryPool;
220 PFN_vkSetEvent SetEvent;
221 PFN_vkSetPrivateData SetPrivateData;
222 PFN_vkSignalSemaphore SignalSemaphore;
223 PFN_vkTrimCommandPool TrimCommandPool;
224 PFN_vkUnmapMemory UnmapMemory;
225 PFN_vkUpdateDescriptorSetWithTemplate UpdateDescriptorSetWithTemplate;
226 PFN_vkUpdateDescriptorSets UpdateDescriptorSets;
227 PFN_vkWaitForFences WaitForFences;
228 PFN_vkWaitSemaphores WaitSemaphores;
229 };
230
231 static inline void
vn_util_init_physical_device_proc_table(VkInstance instance,struct vn_physical_device_proc_table * proc_table)232 vn_util_init_physical_device_proc_table(VkInstance instance,
233 struct vn_physical_device_proc_table *proc_table)
234 {
235 #define VN_GIPA(instance, cmd) (PFN_ ## cmd)vkGetInstanceProcAddr(instance, #cmd)
236 proc_table->GetPhysicalDeviceCalibrateableTimeDomainsEXT = VN_GIPA(instance, vkGetPhysicalDeviceCalibrateableTimeDomainsEXT);
237 proc_table->GetPhysicalDeviceToolProperties = VN_GIPA(instance, vkGetPhysicalDeviceToolProperties);
238 if (!proc_table->GetPhysicalDeviceToolProperties)
239 proc_table->GetPhysicalDeviceToolProperties = VN_GIPA(instance, vkGetPhysicalDeviceToolPropertiesEXT);
240 #undef VN_GIPA
241 }
242
243
244 static inline void
vn_util_init_device_proc_table(VkDevice dev,uint32_t api_version,const struct vn_info_extension_table * ext_table,struct vn_device_proc_table * proc_table)245 vn_util_init_device_proc_table(VkDevice dev,
246 uint32_t api_version,
247 const struct vn_info_extension_table *ext_table,
248 struct vn_device_proc_table *proc_table)
249 {
250 #define VN_GDPA(dev, cmd) (PFN_ ## cmd)vkGetDeviceProcAddr(dev, #cmd)
251 proc_table->AllocateCommandBuffers = VN_GDPA(dev, vkAllocateCommandBuffers);
252 proc_table->AllocateDescriptorSets = VN_GDPA(dev, vkAllocateDescriptorSets);
253 proc_table->AllocateMemory = VN_GDPA(dev, vkAllocateMemory);
254 proc_table->BeginCommandBuffer = VN_GDPA(dev, vkBeginCommandBuffer);
255 proc_table->BindBufferMemory = VN_GDPA(dev, vkBindBufferMemory);
256 proc_table->BindBufferMemory2 =
257 api_version >= VK_API_VERSION_1_1 ? VN_GDPA(dev, vkBindBufferMemory2) :
258 ext_table->KHR_bind_memory2 ? VN_GDPA(dev, vkBindBufferMemory2KHR) :
259 NULL;
260 proc_table->BindImageMemory = VN_GDPA(dev, vkBindImageMemory);
261 proc_table->BindImageMemory2 =
262 api_version >= VK_API_VERSION_1_1 ? VN_GDPA(dev, vkBindImageMemory2) :
263 ext_table->KHR_bind_memory2 ? VN_GDPA(dev, vkBindImageMemory2KHR) :
264 NULL;
265 proc_table->CmdBeginConditionalRenderingEXT =
266 ext_table->EXT_conditional_rendering ? VN_GDPA(dev, vkCmdBeginConditionalRenderingEXT) :
267 NULL;
268 proc_table->CmdBeginQuery = VN_GDPA(dev, vkCmdBeginQuery);
269 proc_table->CmdBeginQueryIndexedEXT =
270 ext_table->EXT_transform_feedback ? VN_GDPA(dev, vkCmdBeginQueryIndexedEXT) :
271 NULL;
272 proc_table->CmdBeginRenderPass = VN_GDPA(dev, vkCmdBeginRenderPass);
273 proc_table->CmdBeginRenderPass2 =
274 api_version >= VK_API_VERSION_1_2 ? VN_GDPA(dev, vkCmdBeginRenderPass2) :
275 ext_table->KHR_create_renderpass2 ? VN_GDPA(dev, vkCmdBeginRenderPass2KHR) :
276 NULL;
277 proc_table->CmdBeginRendering =
278 api_version >= VK_API_VERSION_1_3 ? VN_GDPA(dev, vkCmdBeginRendering) :
279 ext_table->KHR_dynamic_rendering ? VN_GDPA(dev, vkCmdBeginRenderingKHR) :
280 NULL;
281 proc_table->CmdBeginTransformFeedbackEXT =
282 ext_table->EXT_transform_feedback ? VN_GDPA(dev, vkCmdBeginTransformFeedbackEXT) :
283 NULL;
284 proc_table->CmdBindDescriptorSets = VN_GDPA(dev, vkCmdBindDescriptorSets);
285 proc_table->CmdBindIndexBuffer = VN_GDPA(dev, vkCmdBindIndexBuffer);
286 proc_table->CmdBindPipeline = VN_GDPA(dev, vkCmdBindPipeline);
287 proc_table->CmdBindTransformFeedbackBuffersEXT =
288 ext_table->EXT_transform_feedback ? VN_GDPA(dev, vkCmdBindTransformFeedbackBuffersEXT) :
289 NULL;
290 proc_table->CmdBindVertexBuffers = VN_GDPA(dev, vkCmdBindVertexBuffers);
291 proc_table->CmdBindVertexBuffers2 =
292 api_version >= VK_API_VERSION_1_3 ? VN_GDPA(dev, vkCmdBindVertexBuffers2) :
293 ext_table->EXT_extended_dynamic_state ? VN_GDPA(dev, vkCmdBindVertexBuffers2EXT) :
294 NULL;
295 proc_table->CmdBlitImage = VN_GDPA(dev, vkCmdBlitImage);
296 proc_table->CmdBlitImage2 =
297 api_version >= VK_API_VERSION_1_3 ? VN_GDPA(dev, vkCmdBlitImage2) :
298 ext_table->KHR_copy_commands2 ? VN_GDPA(dev, vkCmdBlitImage2KHR) :
299 NULL;
300 proc_table->CmdClearAttachments = VN_GDPA(dev, vkCmdClearAttachments);
301 proc_table->CmdClearColorImage = VN_GDPA(dev, vkCmdClearColorImage);
302 proc_table->CmdClearDepthStencilImage = VN_GDPA(dev, vkCmdClearDepthStencilImage);
303 proc_table->CmdCopyBuffer = VN_GDPA(dev, vkCmdCopyBuffer);
304 proc_table->CmdCopyBuffer2 =
305 api_version >= VK_API_VERSION_1_3 ? VN_GDPA(dev, vkCmdCopyBuffer2) :
306 ext_table->KHR_copy_commands2 ? VN_GDPA(dev, vkCmdCopyBuffer2KHR) :
307 NULL;
308 proc_table->CmdCopyBufferToImage = VN_GDPA(dev, vkCmdCopyBufferToImage);
309 proc_table->CmdCopyBufferToImage2 =
310 api_version >= VK_API_VERSION_1_3 ? VN_GDPA(dev, vkCmdCopyBufferToImage2) :
311 ext_table->KHR_copy_commands2 ? VN_GDPA(dev, vkCmdCopyBufferToImage2KHR) :
312 NULL;
313 proc_table->CmdCopyImage = VN_GDPA(dev, vkCmdCopyImage);
314 proc_table->CmdCopyImage2 =
315 api_version >= VK_API_VERSION_1_3 ? VN_GDPA(dev, vkCmdCopyImage2) :
316 ext_table->KHR_copy_commands2 ? VN_GDPA(dev, vkCmdCopyImage2KHR) :
317 NULL;
318 proc_table->CmdCopyImageToBuffer = VN_GDPA(dev, vkCmdCopyImageToBuffer);
319 proc_table->CmdCopyImageToBuffer2 =
320 api_version >= VK_API_VERSION_1_3 ? VN_GDPA(dev, vkCmdCopyImageToBuffer2) :
321 ext_table->KHR_copy_commands2 ? VN_GDPA(dev, vkCmdCopyImageToBuffer2KHR) :
322 NULL;
323 proc_table->CmdCopyQueryPoolResults = VN_GDPA(dev, vkCmdCopyQueryPoolResults);
324 proc_table->CmdDispatch = VN_GDPA(dev, vkCmdDispatch);
325 proc_table->CmdDispatchBase =
326 api_version >= VK_API_VERSION_1_1 ? VN_GDPA(dev, vkCmdDispatchBase) :
327 ext_table->KHR_device_group ? VN_GDPA(dev, vkCmdDispatchBaseKHR) :
328 NULL;
329 proc_table->CmdDispatchIndirect = VN_GDPA(dev, vkCmdDispatchIndirect);
330 proc_table->CmdDraw = VN_GDPA(dev, vkCmdDraw);
331 proc_table->CmdDrawIndexed = VN_GDPA(dev, vkCmdDrawIndexed);
332 proc_table->CmdDrawIndexedIndirect = VN_GDPA(dev, vkCmdDrawIndexedIndirect);
333 proc_table->CmdDrawIndexedIndirectCount =
334 api_version >= VK_API_VERSION_1_2 ? VN_GDPA(dev, vkCmdDrawIndexedIndirectCount) :
335 ext_table->KHR_draw_indirect_count ? VN_GDPA(dev, vkCmdDrawIndexedIndirectCountKHR) :
336 NULL;
337 proc_table->CmdDrawIndirect = VN_GDPA(dev, vkCmdDrawIndirect);
338 proc_table->CmdDrawIndirectByteCountEXT =
339 ext_table->EXT_transform_feedback ? VN_GDPA(dev, vkCmdDrawIndirectByteCountEXT) :
340 NULL;
341 proc_table->CmdDrawIndirectCount =
342 api_version >= VK_API_VERSION_1_2 ? VN_GDPA(dev, vkCmdDrawIndirectCount) :
343 ext_table->KHR_draw_indirect_count ? VN_GDPA(dev, vkCmdDrawIndirectCountKHR) :
344 NULL;
345 proc_table->CmdDrawMultiEXT =
346 ext_table->EXT_multi_draw ? VN_GDPA(dev, vkCmdDrawMultiEXT) :
347 NULL;
348 proc_table->CmdDrawMultiIndexedEXT =
349 ext_table->EXT_multi_draw ? VN_GDPA(dev, vkCmdDrawMultiIndexedEXT) :
350 NULL;
351 proc_table->CmdEndConditionalRenderingEXT =
352 ext_table->EXT_conditional_rendering ? VN_GDPA(dev, vkCmdEndConditionalRenderingEXT) :
353 NULL;
354 proc_table->CmdEndQuery = VN_GDPA(dev, vkCmdEndQuery);
355 proc_table->CmdEndQueryIndexedEXT =
356 ext_table->EXT_transform_feedback ? VN_GDPA(dev, vkCmdEndQueryIndexedEXT) :
357 NULL;
358 proc_table->CmdEndRenderPass = VN_GDPA(dev, vkCmdEndRenderPass);
359 proc_table->CmdEndRenderPass2 =
360 api_version >= VK_API_VERSION_1_2 ? VN_GDPA(dev, vkCmdEndRenderPass2) :
361 ext_table->KHR_create_renderpass2 ? VN_GDPA(dev, vkCmdEndRenderPass2KHR) :
362 NULL;
363 proc_table->CmdEndRendering =
364 api_version >= VK_API_VERSION_1_3 ? VN_GDPA(dev, vkCmdEndRendering) :
365 ext_table->KHR_dynamic_rendering ? VN_GDPA(dev, vkCmdEndRenderingKHR) :
366 NULL;
367 proc_table->CmdEndTransformFeedbackEXT =
368 ext_table->EXT_transform_feedback ? VN_GDPA(dev, vkCmdEndTransformFeedbackEXT) :
369 NULL;
370 proc_table->CmdExecuteCommands = VN_GDPA(dev, vkCmdExecuteCommands);
371 proc_table->CmdFillBuffer = VN_GDPA(dev, vkCmdFillBuffer);
372 proc_table->CmdNextSubpass = VN_GDPA(dev, vkCmdNextSubpass);
373 proc_table->CmdNextSubpass2 =
374 api_version >= VK_API_VERSION_1_2 ? VN_GDPA(dev, vkCmdNextSubpass2) :
375 ext_table->KHR_create_renderpass2 ? VN_GDPA(dev, vkCmdNextSubpass2KHR) :
376 NULL;
377 proc_table->CmdPipelineBarrier = VN_GDPA(dev, vkCmdPipelineBarrier);
378 proc_table->CmdPipelineBarrier2 =
379 api_version >= VK_API_VERSION_1_3 ? VN_GDPA(dev, vkCmdPipelineBarrier2) :
380 ext_table->KHR_synchronization2 ? VN_GDPA(dev, vkCmdPipelineBarrier2KHR) :
381 NULL;
382 proc_table->CmdPushConstants = VN_GDPA(dev, vkCmdPushConstants);
383 proc_table->CmdPushDescriptorSetKHR =
384 ext_table->KHR_push_descriptor ? VN_GDPA(dev, vkCmdPushDescriptorSetKHR) :
385 NULL;
386 proc_table->CmdPushDescriptorSetWithTemplateKHR =
387 ext_table->KHR_push_descriptor ? VN_GDPA(dev, vkCmdPushDescriptorSetWithTemplateKHR) :
388 NULL;
389 proc_table->CmdResetEvent = VN_GDPA(dev, vkCmdResetEvent);
390 proc_table->CmdResetEvent2 =
391 api_version >= VK_API_VERSION_1_3 ? VN_GDPA(dev, vkCmdResetEvent2) :
392 ext_table->KHR_synchronization2 ? VN_GDPA(dev, vkCmdResetEvent2KHR) :
393 NULL;
394 proc_table->CmdResetQueryPool = VN_GDPA(dev, vkCmdResetQueryPool);
395 proc_table->CmdResolveImage = VN_GDPA(dev, vkCmdResolveImage);
396 proc_table->CmdResolveImage2 =
397 api_version >= VK_API_VERSION_1_3 ? VN_GDPA(dev, vkCmdResolveImage2) :
398 ext_table->KHR_copy_commands2 ? VN_GDPA(dev, vkCmdResolveImage2KHR) :
399 NULL;
400 proc_table->CmdSetBlendConstants = VN_GDPA(dev, vkCmdSetBlendConstants);
401 proc_table->CmdSetCullMode =
402 api_version >= VK_API_VERSION_1_3 ? VN_GDPA(dev, vkCmdSetCullMode) :
403 ext_table->EXT_extended_dynamic_state ? VN_GDPA(dev, vkCmdSetCullModeEXT) :
404 NULL;
405 proc_table->CmdSetDepthBias = VN_GDPA(dev, vkCmdSetDepthBias);
406 proc_table->CmdSetDepthBiasEnable =
407 api_version >= VK_API_VERSION_1_3 ? VN_GDPA(dev, vkCmdSetDepthBiasEnable) :
408 ext_table->EXT_extended_dynamic_state2 ? VN_GDPA(dev, vkCmdSetDepthBiasEnableEXT) :
409 NULL;
410 proc_table->CmdSetDepthBounds = VN_GDPA(dev, vkCmdSetDepthBounds);
411 proc_table->CmdSetDepthBoundsTestEnable =
412 api_version >= VK_API_VERSION_1_3 ? VN_GDPA(dev, vkCmdSetDepthBoundsTestEnable) :
413 ext_table->EXT_extended_dynamic_state ? VN_GDPA(dev, vkCmdSetDepthBoundsTestEnableEXT) :
414 NULL;
415 proc_table->CmdSetDepthCompareOp =
416 api_version >= VK_API_VERSION_1_3 ? VN_GDPA(dev, vkCmdSetDepthCompareOp) :
417 ext_table->EXT_extended_dynamic_state ? VN_GDPA(dev, vkCmdSetDepthCompareOpEXT) :
418 NULL;
419 proc_table->CmdSetDepthTestEnable =
420 api_version >= VK_API_VERSION_1_3 ? VN_GDPA(dev, vkCmdSetDepthTestEnable) :
421 ext_table->EXT_extended_dynamic_state ? VN_GDPA(dev, vkCmdSetDepthTestEnableEXT) :
422 NULL;
423 proc_table->CmdSetDepthWriteEnable =
424 api_version >= VK_API_VERSION_1_3 ? VN_GDPA(dev, vkCmdSetDepthWriteEnable) :
425 ext_table->EXT_extended_dynamic_state ? VN_GDPA(dev, vkCmdSetDepthWriteEnableEXT) :
426 NULL;
427 proc_table->CmdSetDeviceMask =
428 api_version >= VK_API_VERSION_1_1 ? VN_GDPA(dev, vkCmdSetDeviceMask) :
429 ext_table->KHR_device_group ? VN_GDPA(dev, vkCmdSetDeviceMaskKHR) :
430 NULL;
431 proc_table->CmdSetEvent = VN_GDPA(dev, vkCmdSetEvent);
432 proc_table->CmdSetEvent2 =
433 api_version >= VK_API_VERSION_1_3 ? VN_GDPA(dev, vkCmdSetEvent2) :
434 ext_table->KHR_synchronization2 ? VN_GDPA(dev, vkCmdSetEvent2KHR) :
435 NULL;
436 proc_table->CmdSetFrontFace =
437 api_version >= VK_API_VERSION_1_3 ? VN_GDPA(dev, vkCmdSetFrontFace) :
438 ext_table->EXT_extended_dynamic_state ? VN_GDPA(dev, vkCmdSetFrontFaceEXT) :
439 NULL;
440 proc_table->CmdSetLineStippleEXT =
441 ext_table->EXT_line_rasterization ? VN_GDPA(dev, vkCmdSetLineStippleEXT) :
442 NULL;
443 proc_table->CmdSetLineWidth = VN_GDPA(dev, vkCmdSetLineWidth);
444 proc_table->CmdSetLogicOpEXT =
445 ext_table->EXT_extended_dynamic_state2 ? VN_GDPA(dev, vkCmdSetLogicOpEXT) :
446 NULL;
447 proc_table->CmdSetPatchControlPointsEXT =
448 ext_table->EXT_extended_dynamic_state2 ? VN_GDPA(dev, vkCmdSetPatchControlPointsEXT) :
449 NULL;
450 proc_table->CmdSetPrimitiveRestartEnable =
451 api_version >= VK_API_VERSION_1_3 ? VN_GDPA(dev, vkCmdSetPrimitiveRestartEnable) :
452 ext_table->EXT_extended_dynamic_state2 ? VN_GDPA(dev, vkCmdSetPrimitiveRestartEnableEXT) :
453 NULL;
454 proc_table->CmdSetPrimitiveTopology =
455 api_version >= VK_API_VERSION_1_3 ? VN_GDPA(dev, vkCmdSetPrimitiveTopology) :
456 ext_table->EXT_extended_dynamic_state ? VN_GDPA(dev, vkCmdSetPrimitiveTopologyEXT) :
457 NULL;
458 proc_table->CmdSetRasterizerDiscardEnable =
459 api_version >= VK_API_VERSION_1_3 ? VN_GDPA(dev, vkCmdSetRasterizerDiscardEnable) :
460 ext_table->EXT_extended_dynamic_state2 ? VN_GDPA(dev, vkCmdSetRasterizerDiscardEnableEXT) :
461 NULL;
462 proc_table->CmdSetScissor = VN_GDPA(dev, vkCmdSetScissor);
463 proc_table->CmdSetScissorWithCount =
464 api_version >= VK_API_VERSION_1_3 ? VN_GDPA(dev, vkCmdSetScissorWithCount) :
465 ext_table->EXT_extended_dynamic_state ? VN_GDPA(dev, vkCmdSetScissorWithCountEXT) :
466 NULL;
467 proc_table->CmdSetStencilCompareMask = VN_GDPA(dev, vkCmdSetStencilCompareMask);
468 proc_table->CmdSetStencilOp =
469 api_version >= VK_API_VERSION_1_3 ? VN_GDPA(dev, vkCmdSetStencilOp) :
470 ext_table->EXT_extended_dynamic_state ? VN_GDPA(dev, vkCmdSetStencilOpEXT) :
471 NULL;
472 proc_table->CmdSetStencilReference = VN_GDPA(dev, vkCmdSetStencilReference);
473 proc_table->CmdSetStencilTestEnable =
474 api_version >= VK_API_VERSION_1_3 ? VN_GDPA(dev, vkCmdSetStencilTestEnable) :
475 ext_table->EXT_extended_dynamic_state ? VN_GDPA(dev, vkCmdSetStencilTestEnableEXT) :
476 NULL;
477 proc_table->CmdSetStencilWriteMask = VN_GDPA(dev, vkCmdSetStencilWriteMask);
478 proc_table->CmdSetViewport = VN_GDPA(dev, vkCmdSetViewport);
479 proc_table->CmdSetViewportWithCount =
480 api_version >= VK_API_VERSION_1_3 ? VN_GDPA(dev, vkCmdSetViewportWithCount) :
481 ext_table->EXT_extended_dynamic_state ? VN_GDPA(dev, vkCmdSetViewportWithCountEXT) :
482 NULL;
483 proc_table->CmdUpdateBuffer = VN_GDPA(dev, vkCmdUpdateBuffer);
484 proc_table->CmdWaitEvents = VN_GDPA(dev, vkCmdWaitEvents);
485 proc_table->CmdWaitEvents2 =
486 api_version >= VK_API_VERSION_1_3 ? VN_GDPA(dev, vkCmdWaitEvents2) :
487 ext_table->KHR_synchronization2 ? VN_GDPA(dev, vkCmdWaitEvents2KHR) :
488 NULL;
489 proc_table->CmdWriteTimestamp = VN_GDPA(dev, vkCmdWriteTimestamp);
490 proc_table->CmdWriteTimestamp2 =
491 api_version >= VK_API_VERSION_1_3 ? VN_GDPA(dev, vkCmdWriteTimestamp2) :
492 ext_table->KHR_synchronization2 ? VN_GDPA(dev, vkCmdWriteTimestamp2KHR) :
493 NULL;
494 proc_table->CreateBuffer = VN_GDPA(dev, vkCreateBuffer);
495 proc_table->CreateBufferView = VN_GDPA(dev, vkCreateBufferView);
496 proc_table->CreateCommandPool = VN_GDPA(dev, vkCreateCommandPool);
497 proc_table->CreateComputePipelines = VN_GDPA(dev, vkCreateComputePipelines);
498 proc_table->CreateDescriptorPool = VN_GDPA(dev, vkCreateDescriptorPool);
499 proc_table->CreateDescriptorSetLayout = VN_GDPA(dev, vkCreateDescriptorSetLayout);
500 proc_table->CreateDescriptorUpdateTemplate =
501 api_version >= VK_API_VERSION_1_1 ? VN_GDPA(dev, vkCreateDescriptorUpdateTemplate) :
502 ext_table->KHR_descriptor_update_template ? VN_GDPA(dev, vkCreateDescriptorUpdateTemplateKHR) :
503 NULL;
504 proc_table->CreateEvent = VN_GDPA(dev, vkCreateEvent);
505 proc_table->CreateFence = VN_GDPA(dev, vkCreateFence);
506 proc_table->CreateFramebuffer = VN_GDPA(dev, vkCreateFramebuffer);
507 proc_table->CreateGraphicsPipelines = VN_GDPA(dev, vkCreateGraphicsPipelines);
508 proc_table->CreateImage = VN_GDPA(dev, vkCreateImage);
509 proc_table->CreateImageView = VN_GDPA(dev, vkCreateImageView);
510 proc_table->CreatePipelineCache = VN_GDPA(dev, vkCreatePipelineCache);
511 proc_table->CreatePipelineLayout = VN_GDPA(dev, vkCreatePipelineLayout);
512 proc_table->CreatePrivateDataSlot =
513 api_version >= VK_API_VERSION_1_3 ? VN_GDPA(dev, vkCreatePrivateDataSlot) :
514 ext_table->EXT_private_data ? VN_GDPA(dev, vkCreatePrivateDataSlotEXT) :
515 NULL;
516 proc_table->CreateQueryPool = VN_GDPA(dev, vkCreateQueryPool);
517 proc_table->CreateRenderPass = VN_GDPA(dev, vkCreateRenderPass);
518 proc_table->CreateRenderPass2 =
519 api_version >= VK_API_VERSION_1_2 ? VN_GDPA(dev, vkCreateRenderPass2) :
520 ext_table->KHR_create_renderpass2 ? VN_GDPA(dev, vkCreateRenderPass2KHR) :
521 NULL;
522 proc_table->CreateSampler = VN_GDPA(dev, vkCreateSampler);
523 proc_table->CreateSamplerYcbcrConversion =
524 api_version >= VK_API_VERSION_1_1 ? VN_GDPA(dev, vkCreateSamplerYcbcrConversion) :
525 ext_table->KHR_sampler_ycbcr_conversion ? VN_GDPA(dev, vkCreateSamplerYcbcrConversionKHR) :
526 NULL;
527 proc_table->CreateSemaphore = VN_GDPA(dev, vkCreateSemaphore);
528 proc_table->CreateShaderModule = VN_GDPA(dev, vkCreateShaderModule);
529 proc_table->DestroyBuffer = VN_GDPA(dev, vkDestroyBuffer);
530 proc_table->DestroyBufferView = VN_GDPA(dev, vkDestroyBufferView);
531 proc_table->DestroyCommandPool = VN_GDPA(dev, vkDestroyCommandPool);
532 proc_table->DestroyDescriptorPool = VN_GDPA(dev, vkDestroyDescriptorPool);
533 proc_table->DestroyDescriptorSetLayout = VN_GDPA(dev, vkDestroyDescriptorSetLayout);
534 proc_table->DestroyDescriptorUpdateTemplate =
535 api_version >= VK_API_VERSION_1_1 ? VN_GDPA(dev, vkDestroyDescriptorUpdateTemplate) :
536 ext_table->KHR_descriptor_update_template ? VN_GDPA(dev, vkDestroyDescriptorUpdateTemplateKHR) :
537 NULL;
538 proc_table->DestroyDevice = VN_GDPA(dev, vkDestroyDevice);
539 proc_table->DestroyEvent = VN_GDPA(dev, vkDestroyEvent);
540 proc_table->DestroyFence = VN_GDPA(dev, vkDestroyFence);
541 proc_table->DestroyFramebuffer = VN_GDPA(dev, vkDestroyFramebuffer);
542 proc_table->DestroyImage = VN_GDPA(dev, vkDestroyImage);
543 proc_table->DestroyImageView = VN_GDPA(dev, vkDestroyImageView);
544 proc_table->DestroyPipeline = VN_GDPA(dev, vkDestroyPipeline);
545 proc_table->DestroyPipelineCache = VN_GDPA(dev, vkDestroyPipelineCache);
546 proc_table->DestroyPipelineLayout = VN_GDPA(dev, vkDestroyPipelineLayout);
547 proc_table->DestroyPrivateDataSlot =
548 api_version >= VK_API_VERSION_1_3 ? VN_GDPA(dev, vkDestroyPrivateDataSlot) :
549 ext_table->EXT_private_data ? VN_GDPA(dev, vkDestroyPrivateDataSlotEXT) :
550 NULL;
551 proc_table->DestroyQueryPool = VN_GDPA(dev, vkDestroyQueryPool);
552 proc_table->DestroyRenderPass = VN_GDPA(dev, vkDestroyRenderPass);
553 proc_table->DestroySampler = VN_GDPA(dev, vkDestroySampler);
554 proc_table->DestroySamplerYcbcrConversion =
555 api_version >= VK_API_VERSION_1_1 ? VN_GDPA(dev, vkDestroySamplerYcbcrConversion) :
556 ext_table->KHR_sampler_ycbcr_conversion ? VN_GDPA(dev, vkDestroySamplerYcbcrConversionKHR) :
557 NULL;
558 proc_table->DestroySemaphore = VN_GDPA(dev, vkDestroySemaphore);
559 proc_table->DestroyShaderModule = VN_GDPA(dev, vkDestroyShaderModule);
560 proc_table->DeviceWaitIdle = VN_GDPA(dev, vkDeviceWaitIdle);
561 proc_table->EndCommandBuffer = VN_GDPA(dev, vkEndCommandBuffer);
562 proc_table->FlushMappedMemoryRanges = VN_GDPA(dev, vkFlushMappedMemoryRanges);
563 proc_table->FreeCommandBuffers = VN_GDPA(dev, vkFreeCommandBuffers);
564 proc_table->FreeDescriptorSets = VN_GDPA(dev, vkFreeDescriptorSets);
565 proc_table->FreeMemory = VN_GDPA(dev, vkFreeMemory);
566 proc_table->GetBufferDeviceAddress =
567 api_version >= VK_API_VERSION_1_2 ? VN_GDPA(dev, vkGetBufferDeviceAddress) :
568 ext_table->KHR_buffer_device_address ? VN_GDPA(dev, vkGetBufferDeviceAddressKHR) :
569 NULL;
570 proc_table->GetBufferMemoryRequirements = VN_GDPA(dev, vkGetBufferMemoryRequirements);
571 proc_table->GetBufferMemoryRequirements2 =
572 api_version >= VK_API_VERSION_1_1 ? VN_GDPA(dev, vkGetBufferMemoryRequirements2) :
573 ext_table->KHR_get_memory_requirements2 ? VN_GDPA(dev, vkGetBufferMemoryRequirements2KHR) :
574 NULL;
575 proc_table->GetBufferOpaqueCaptureAddress =
576 api_version >= VK_API_VERSION_1_2 ? VN_GDPA(dev, vkGetBufferOpaqueCaptureAddress) :
577 ext_table->KHR_buffer_device_address ? VN_GDPA(dev, vkGetBufferOpaqueCaptureAddressKHR) :
578 NULL;
579 proc_table->GetCalibratedTimestampsEXT =
580 ext_table->EXT_calibrated_timestamps ? VN_GDPA(dev, vkGetCalibratedTimestampsEXT) :
581 NULL;
582 proc_table->GetDescriptorSetLayoutSupport =
583 api_version >= VK_API_VERSION_1_1 ? VN_GDPA(dev, vkGetDescriptorSetLayoutSupport) :
584 ext_table->KHR_maintenance3 ? VN_GDPA(dev, vkGetDescriptorSetLayoutSupportKHR) :
585 NULL;
586 proc_table->GetDeviceBufferMemoryRequirements =
587 api_version >= VK_API_VERSION_1_3 ? VN_GDPA(dev, vkGetDeviceBufferMemoryRequirements) :
588 ext_table->KHR_maintenance4 ? VN_GDPA(dev, vkGetDeviceBufferMemoryRequirementsKHR) :
589 NULL;
590 proc_table->GetDeviceGroupPeerMemoryFeatures =
591 api_version >= VK_API_VERSION_1_1 ? VN_GDPA(dev, vkGetDeviceGroupPeerMemoryFeatures) :
592 ext_table->KHR_device_group ? VN_GDPA(dev, vkGetDeviceGroupPeerMemoryFeaturesKHR) :
593 NULL;
594 proc_table->GetDeviceImageMemoryRequirements =
595 api_version >= VK_API_VERSION_1_3 ? VN_GDPA(dev, vkGetDeviceImageMemoryRequirements) :
596 ext_table->KHR_maintenance4 ? VN_GDPA(dev, vkGetDeviceImageMemoryRequirementsKHR) :
597 NULL;
598 proc_table->GetDeviceImageSparseMemoryRequirements =
599 api_version >= VK_API_VERSION_1_3 ? VN_GDPA(dev, vkGetDeviceImageSparseMemoryRequirements) :
600 ext_table->KHR_maintenance4 ? VN_GDPA(dev, vkGetDeviceImageSparseMemoryRequirementsKHR) :
601 NULL;
602 proc_table->GetDeviceMemoryCommitment = VN_GDPA(dev, vkGetDeviceMemoryCommitment);
603 proc_table->GetDeviceMemoryOpaqueCaptureAddress =
604 api_version >= VK_API_VERSION_1_2 ? VN_GDPA(dev, vkGetDeviceMemoryOpaqueCaptureAddress) :
605 ext_table->KHR_buffer_device_address ? VN_GDPA(dev, vkGetDeviceMemoryOpaqueCaptureAddressKHR) :
606 NULL;
607 proc_table->GetDeviceProcAddr = VN_GDPA(dev, vkGetDeviceProcAddr);
608 proc_table->GetDeviceQueue = VN_GDPA(dev, vkGetDeviceQueue);
609 proc_table->GetDeviceQueue2 =
610 api_version >= VK_API_VERSION_1_1 ? VN_GDPA(dev, vkGetDeviceQueue2) :
611 NULL;
612 proc_table->GetEventStatus = VN_GDPA(dev, vkGetEventStatus);
613 proc_table->GetFenceFdKHR =
614 ext_table->KHR_external_fence_fd ? VN_GDPA(dev, vkGetFenceFdKHR) :
615 NULL;
616 proc_table->GetFenceStatus = VN_GDPA(dev, vkGetFenceStatus);
617 proc_table->GetImageDrmFormatModifierPropertiesEXT =
618 ext_table->EXT_image_drm_format_modifier ? VN_GDPA(dev, vkGetImageDrmFormatModifierPropertiesEXT) :
619 NULL;
620 proc_table->GetImageMemoryRequirements = VN_GDPA(dev, vkGetImageMemoryRequirements);
621 proc_table->GetImageMemoryRequirements2 =
622 api_version >= VK_API_VERSION_1_1 ? VN_GDPA(dev, vkGetImageMemoryRequirements2) :
623 ext_table->KHR_get_memory_requirements2 ? VN_GDPA(dev, vkGetImageMemoryRequirements2KHR) :
624 NULL;
625 proc_table->GetImageSparseMemoryRequirements = VN_GDPA(dev, vkGetImageSparseMemoryRequirements);
626 proc_table->GetImageSparseMemoryRequirements2 =
627 api_version >= VK_API_VERSION_1_1 ? VN_GDPA(dev, vkGetImageSparseMemoryRequirements2) :
628 ext_table->KHR_get_memory_requirements2 ? VN_GDPA(dev, vkGetImageSparseMemoryRequirements2KHR) :
629 NULL;
630 proc_table->GetImageSubresourceLayout = VN_GDPA(dev, vkGetImageSubresourceLayout);
631 proc_table->GetMemoryFdKHR =
632 ext_table->KHR_external_memory_fd ? VN_GDPA(dev, vkGetMemoryFdKHR) :
633 NULL;
634 proc_table->GetMemoryFdPropertiesKHR =
635 ext_table->KHR_external_memory_fd ? VN_GDPA(dev, vkGetMemoryFdPropertiesKHR) :
636 NULL;
637 proc_table->GetPipelineCacheData = VN_GDPA(dev, vkGetPipelineCacheData);
638 proc_table->GetPrivateData =
639 api_version >= VK_API_VERSION_1_3 ? VN_GDPA(dev, vkGetPrivateData) :
640 ext_table->EXT_private_data ? VN_GDPA(dev, vkGetPrivateDataEXT) :
641 NULL;
642 proc_table->GetQueryPoolResults = VN_GDPA(dev, vkGetQueryPoolResults);
643 proc_table->GetRenderAreaGranularity = VN_GDPA(dev, vkGetRenderAreaGranularity);
644 proc_table->GetSemaphoreCounterValue =
645 api_version >= VK_API_VERSION_1_2 ? VN_GDPA(dev, vkGetSemaphoreCounterValue) :
646 ext_table->KHR_timeline_semaphore ? VN_GDPA(dev, vkGetSemaphoreCounterValueKHR) :
647 NULL;
648 proc_table->GetSemaphoreFdKHR =
649 ext_table->KHR_external_semaphore_fd ? VN_GDPA(dev, vkGetSemaphoreFdKHR) :
650 NULL;
651 proc_table->ImportFenceFdKHR =
652 ext_table->KHR_external_fence_fd ? VN_GDPA(dev, vkImportFenceFdKHR) :
653 NULL;
654 proc_table->ImportSemaphoreFdKHR =
655 ext_table->KHR_external_semaphore_fd ? VN_GDPA(dev, vkImportSemaphoreFdKHR) :
656 NULL;
657 proc_table->InvalidateMappedMemoryRanges = VN_GDPA(dev, vkInvalidateMappedMemoryRanges);
658 proc_table->MapMemory = VN_GDPA(dev, vkMapMemory);
659 proc_table->MergePipelineCaches = VN_GDPA(dev, vkMergePipelineCaches);
660 proc_table->QueueBindSparse = VN_GDPA(dev, vkQueueBindSparse);
661 proc_table->QueueSubmit = VN_GDPA(dev, vkQueueSubmit);
662 proc_table->QueueSubmit2 =
663 api_version >= VK_API_VERSION_1_3 ? VN_GDPA(dev, vkQueueSubmit2) :
664 ext_table->KHR_synchronization2 ? VN_GDPA(dev, vkQueueSubmit2KHR) :
665 NULL;
666 proc_table->QueueWaitIdle = VN_GDPA(dev, vkQueueWaitIdle);
667 proc_table->ResetCommandBuffer = VN_GDPA(dev, vkResetCommandBuffer);
668 proc_table->ResetCommandPool = VN_GDPA(dev, vkResetCommandPool);
669 proc_table->ResetDescriptorPool = VN_GDPA(dev, vkResetDescriptorPool);
670 proc_table->ResetEvent = VN_GDPA(dev, vkResetEvent);
671 proc_table->ResetFences = VN_GDPA(dev, vkResetFences);
672 proc_table->ResetQueryPool =
673 api_version >= VK_API_VERSION_1_2 ? VN_GDPA(dev, vkResetQueryPool) :
674 ext_table->EXT_host_query_reset ? VN_GDPA(dev, vkResetQueryPoolEXT) :
675 NULL;
676 proc_table->SetEvent = VN_GDPA(dev, vkSetEvent);
677 proc_table->SetPrivateData =
678 api_version >= VK_API_VERSION_1_3 ? VN_GDPA(dev, vkSetPrivateData) :
679 ext_table->EXT_private_data ? VN_GDPA(dev, vkSetPrivateDataEXT) :
680 NULL;
681 proc_table->SignalSemaphore =
682 api_version >= VK_API_VERSION_1_2 ? VN_GDPA(dev, vkSignalSemaphore) :
683 ext_table->KHR_timeline_semaphore ? VN_GDPA(dev, vkSignalSemaphoreKHR) :
684 NULL;
685 proc_table->TrimCommandPool =
686 api_version >= VK_API_VERSION_1_1 ? VN_GDPA(dev, vkTrimCommandPool) :
687 ext_table->KHR_maintenance1 ? VN_GDPA(dev, vkTrimCommandPoolKHR) :
688 NULL;
689 proc_table->UnmapMemory = VN_GDPA(dev, vkUnmapMemory);
690 proc_table->UpdateDescriptorSetWithTemplate =
691 api_version >= VK_API_VERSION_1_1 ? VN_GDPA(dev, vkUpdateDescriptorSetWithTemplate) :
692 ext_table->KHR_descriptor_update_template ? VN_GDPA(dev, vkUpdateDescriptorSetWithTemplateKHR) :
693 NULL;
694 proc_table->UpdateDescriptorSets = VN_GDPA(dev, vkUpdateDescriptorSets);
695 proc_table->WaitForFences = VN_GDPA(dev, vkWaitForFences);
696 proc_table->WaitSemaphores =
697 api_version >= VK_API_VERSION_1_2 ? VN_GDPA(dev, vkWaitSemaphores) :
698 ext_table->KHR_timeline_semaphore ? VN_GDPA(dev, vkWaitSemaphoresKHR) :
699 NULL;
700 #undef VN_GDPA
701 }
702
703 #endif /* VN_PROTOCOL_RENDERER_UTIL_H */
704