blob: 88d09728e756cbbb77a07ab7222ca2200c3794a1 [file] [log] [blame]
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001// Copyright (C) 2018 The Android Open Source Project
2// Copyright (C) 2018 Google Inc.
3//
4// Licensed under the Apache License, Version 2.0 (the "License");
5// you may not use this file except in compliance with the License.
6// You may obtain a copy of the License at
7//
8// http://www.apache.org/licenses/LICENSE-2.0
9//
10// Unless required by applicable law or agreed to in writing, software
11// distributed under the License is distributed on an "AS IS" BASIS,
12// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13// See the License for the specific language governing permissions and
14// limitations under the License.
15
16// Autogenerated module func_table
17// (impl) generated by android/android-emugl/host/libs/libOpenglRender/vulkan-registry/xml/genvk.py -registry android/android-emugl/host/libs/libOpenglRender/vulkan-registry/xml/vk.xml cereal -o android/android-emugl/host/libs/libOpenglRender/vulkan/cereal
18// Please do not modify directly;
19// re-run android/scripts/generate-vulkan-sources.sh,
20// or directly from Python by defining:
21// VULKAN_REGISTRY_XML_DIR : Directory containing genvk.py and vk.xml
22// CEREAL_OUTPUT_DIR: Where to put the generated sources.
23// python3 $VULKAN_REGISTRY_XML_DIR/genvk.py -registry $VULKAN_REGISTRY_XML_DIR/vk.xml cereal -o $CEREAL_OUTPUT_DIR
24
25#include "func_table.h"
26
27
28#include "VkEncoder.h"
29#include "HostConnection.h"
Lingfeng Yange9979522018-12-25 14:44:52 -080030#include "ResourceTracker.h"
Lingfeng Yang0b81df22018-11-05 21:40:30 -080031
Lingfeng Yang808a6312018-11-13 21:06:15 -080032#include "goldfish_vk_private_defs.h"
33
Lingfeng Yang0b81df22018-11-05 21:40:30 -080034// Stuff we are not going to use but if included,
35// will cause compile errors. These are Android Vulkan
36// required extensions, but the approach will be to
37// implement them completely on the guest side.
38#undef VK_KHR_android_surface
39#undef VK_ANDROID_external_memory_android_hardware_buffer
40
41
42namespace goldfish_vk {
43
44#ifdef VK_VERSION_1_0
45static VkResult entry_vkCreateInstance(
46 const VkInstanceCreateInfo* pCreateInfo,
47 const VkAllocationCallbacks* pAllocator,
48 VkInstance* pInstance)
49{
50 auto vkEnc = HostConnection::get()->vkEncoder();
51 VkResult vkCreateInstance_VkResult_return = (VkResult)0;
52 vkCreateInstance_VkResult_return = vkEnc->vkCreateInstance(pCreateInfo, pAllocator, pInstance);
53 return vkCreateInstance_VkResult_return;
54}
55static void entry_vkDestroyInstance(
56 VkInstance instance,
57 const VkAllocationCallbacks* pAllocator)
58{
59 auto vkEnc = HostConnection::get()->vkEncoder();
60 vkEnc->vkDestroyInstance(instance, pAllocator);
61}
62static VkResult entry_vkEnumeratePhysicalDevices(
63 VkInstance instance,
64 uint32_t* pPhysicalDeviceCount,
65 VkPhysicalDevice* pPhysicalDevices)
66{
67 auto vkEnc = HostConnection::get()->vkEncoder();
68 VkResult vkEnumeratePhysicalDevices_VkResult_return = (VkResult)0;
69 vkEnumeratePhysicalDevices_VkResult_return = vkEnc->vkEnumeratePhysicalDevices(instance, pPhysicalDeviceCount, pPhysicalDevices);
70 return vkEnumeratePhysicalDevices_VkResult_return;
71}
72static void entry_vkGetPhysicalDeviceFeatures(
73 VkPhysicalDevice physicalDevice,
74 VkPhysicalDeviceFeatures* pFeatures)
75{
76 auto vkEnc = HostConnection::get()->vkEncoder();
77 vkEnc->vkGetPhysicalDeviceFeatures(physicalDevice, pFeatures);
78}
79static void entry_vkGetPhysicalDeviceFormatProperties(
80 VkPhysicalDevice physicalDevice,
81 VkFormat format,
82 VkFormatProperties* pFormatProperties)
83{
84 auto vkEnc = HostConnection::get()->vkEncoder();
85 vkEnc->vkGetPhysicalDeviceFormatProperties(physicalDevice, format, pFormatProperties);
86}
87static VkResult entry_vkGetPhysicalDeviceImageFormatProperties(
88 VkPhysicalDevice physicalDevice,
89 VkFormat format,
90 VkImageType type,
91 VkImageTiling tiling,
92 VkImageUsageFlags usage,
93 VkImageCreateFlags flags,
94 VkImageFormatProperties* pImageFormatProperties)
95{
96 auto vkEnc = HostConnection::get()->vkEncoder();
97 VkResult vkGetPhysicalDeviceImageFormatProperties_VkResult_return = (VkResult)0;
98 vkGetPhysicalDeviceImageFormatProperties_VkResult_return = vkEnc->vkGetPhysicalDeviceImageFormatProperties(physicalDevice, format, type, tiling, usage, flags, pImageFormatProperties);
99 return vkGetPhysicalDeviceImageFormatProperties_VkResult_return;
100}
101static void entry_vkGetPhysicalDeviceProperties(
102 VkPhysicalDevice physicalDevice,
103 VkPhysicalDeviceProperties* pProperties)
104{
105 auto vkEnc = HostConnection::get()->vkEncoder();
106 vkEnc->vkGetPhysicalDeviceProperties(physicalDevice, pProperties);
107}
108static void entry_vkGetPhysicalDeviceQueueFamilyProperties(
109 VkPhysicalDevice physicalDevice,
110 uint32_t* pQueueFamilyPropertyCount,
111 VkQueueFamilyProperties* pQueueFamilyProperties)
112{
113 auto vkEnc = HostConnection::get()->vkEncoder();
114 vkEnc->vkGetPhysicalDeviceQueueFamilyProperties(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties);
115}
116static void entry_vkGetPhysicalDeviceMemoryProperties(
117 VkPhysicalDevice physicalDevice,
118 VkPhysicalDeviceMemoryProperties* pMemoryProperties)
119{
120 auto vkEnc = HostConnection::get()->vkEncoder();
121 vkEnc->vkGetPhysicalDeviceMemoryProperties(physicalDevice, pMemoryProperties);
122}
123static PFN_vkVoidFunction entry_vkGetInstanceProcAddr(
124 VkInstance instance,
125 const char* pName)
126{
127 auto vkEnc = HostConnection::get()->vkEncoder();
128 PFN_vkVoidFunction vkGetInstanceProcAddr_PFN_vkVoidFunction_return = (PFN_vkVoidFunction)0;
129 vkGetInstanceProcAddr_PFN_vkVoidFunction_return = vkEnc->vkGetInstanceProcAddr(instance, pName);
130 return vkGetInstanceProcAddr_PFN_vkVoidFunction_return;
131}
132static PFN_vkVoidFunction entry_vkGetDeviceProcAddr(
133 VkDevice device,
134 const char* pName)
135{
136 auto vkEnc = HostConnection::get()->vkEncoder();
137 PFN_vkVoidFunction vkGetDeviceProcAddr_PFN_vkVoidFunction_return = (PFN_vkVoidFunction)0;
138 vkGetDeviceProcAddr_PFN_vkVoidFunction_return = vkEnc->vkGetDeviceProcAddr(device, pName);
139 return vkGetDeviceProcAddr_PFN_vkVoidFunction_return;
140}
141static VkResult entry_vkCreateDevice(
142 VkPhysicalDevice physicalDevice,
143 const VkDeviceCreateInfo* pCreateInfo,
144 const VkAllocationCallbacks* pAllocator,
145 VkDevice* pDevice)
146{
147 auto vkEnc = HostConnection::get()->vkEncoder();
148 VkResult vkCreateDevice_VkResult_return = (VkResult)0;
149 vkCreateDevice_VkResult_return = vkEnc->vkCreateDevice(physicalDevice, pCreateInfo, pAllocator, pDevice);
150 return vkCreateDevice_VkResult_return;
151}
152static void entry_vkDestroyDevice(
153 VkDevice device,
154 const VkAllocationCallbacks* pAllocator)
155{
156 auto vkEnc = HostConnection::get()->vkEncoder();
157 vkEnc->vkDestroyDevice(device, pAllocator);
158}
159static VkResult entry_vkEnumerateInstanceExtensionProperties(
160 const char* pLayerName,
161 uint32_t* pPropertyCount,
162 VkExtensionProperties* pProperties)
163{
164 auto vkEnc = HostConnection::get()->vkEncoder();
165 VkResult vkEnumerateInstanceExtensionProperties_VkResult_return = (VkResult)0;
Lingfeng Yang154a33c2019-01-29 19:06:23 -0800166 auto resources = ResourceTracker::get();
167 vkEnumerateInstanceExtensionProperties_VkResult_return = resources->on_vkEnumerateInstanceExtensionProperties(vkEnc, VK_SUCCESS, pLayerName, pPropertyCount, pProperties);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800168 return vkEnumerateInstanceExtensionProperties_VkResult_return;
169}
170static VkResult entry_vkEnumerateDeviceExtensionProperties(
171 VkPhysicalDevice physicalDevice,
172 const char* pLayerName,
173 uint32_t* pPropertyCount,
174 VkExtensionProperties* pProperties)
175{
176 auto vkEnc = HostConnection::get()->vkEncoder();
177 VkResult vkEnumerateDeviceExtensionProperties_VkResult_return = (VkResult)0;
Lingfeng Yang154a33c2019-01-29 19:06:23 -0800178 auto resources = ResourceTracker::get();
179 vkEnumerateDeviceExtensionProperties_VkResult_return = resources->on_vkEnumerateDeviceExtensionProperties(vkEnc, VK_SUCCESS, physicalDevice, pLayerName, pPropertyCount, pProperties);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800180 return vkEnumerateDeviceExtensionProperties_VkResult_return;
181}
182static VkResult entry_vkEnumerateInstanceLayerProperties(
183 uint32_t* pPropertyCount,
184 VkLayerProperties* pProperties)
185{
186 auto vkEnc = HostConnection::get()->vkEncoder();
187 VkResult vkEnumerateInstanceLayerProperties_VkResult_return = (VkResult)0;
188 vkEnumerateInstanceLayerProperties_VkResult_return = vkEnc->vkEnumerateInstanceLayerProperties(pPropertyCount, pProperties);
189 return vkEnumerateInstanceLayerProperties_VkResult_return;
190}
191static VkResult entry_vkEnumerateDeviceLayerProperties(
192 VkPhysicalDevice physicalDevice,
193 uint32_t* pPropertyCount,
194 VkLayerProperties* pProperties)
195{
196 auto vkEnc = HostConnection::get()->vkEncoder();
197 VkResult vkEnumerateDeviceLayerProperties_VkResult_return = (VkResult)0;
198 vkEnumerateDeviceLayerProperties_VkResult_return = vkEnc->vkEnumerateDeviceLayerProperties(physicalDevice, pPropertyCount, pProperties);
199 return vkEnumerateDeviceLayerProperties_VkResult_return;
200}
201static void entry_vkGetDeviceQueue(
202 VkDevice device,
203 uint32_t queueFamilyIndex,
204 uint32_t queueIndex,
205 VkQueue* pQueue)
206{
207 auto vkEnc = HostConnection::get()->vkEncoder();
208 vkEnc->vkGetDeviceQueue(device, queueFamilyIndex, queueIndex, pQueue);
209}
210static VkResult entry_vkQueueSubmit(
211 VkQueue queue,
212 uint32_t submitCount,
213 const VkSubmitInfo* pSubmits,
214 VkFence fence)
215{
216 auto vkEnc = HostConnection::get()->vkEncoder();
217 VkResult vkQueueSubmit_VkResult_return = (VkResult)0;
218 vkQueueSubmit_VkResult_return = vkEnc->vkQueueSubmit(queue, submitCount, pSubmits, fence);
219 return vkQueueSubmit_VkResult_return;
220}
221static VkResult entry_vkQueueWaitIdle(
222 VkQueue queue)
223{
224 auto vkEnc = HostConnection::get()->vkEncoder();
225 VkResult vkQueueWaitIdle_VkResult_return = (VkResult)0;
226 vkQueueWaitIdle_VkResult_return = vkEnc->vkQueueWaitIdle(queue);
227 return vkQueueWaitIdle_VkResult_return;
228}
229static VkResult entry_vkDeviceWaitIdle(
230 VkDevice device)
231{
232 auto vkEnc = HostConnection::get()->vkEncoder();
233 VkResult vkDeviceWaitIdle_VkResult_return = (VkResult)0;
234 vkDeviceWaitIdle_VkResult_return = vkEnc->vkDeviceWaitIdle(device);
235 return vkDeviceWaitIdle_VkResult_return;
236}
237static VkResult entry_vkAllocateMemory(
238 VkDevice device,
239 const VkMemoryAllocateInfo* pAllocateInfo,
240 const VkAllocationCallbacks* pAllocator,
241 VkDeviceMemory* pMemory)
242{
243 auto vkEnc = HostConnection::get()->vkEncoder();
244 VkResult vkAllocateMemory_VkResult_return = (VkResult)0;
Lingfeng Yange9979522018-12-25 14:44:52 -0800245 auto resources = ResourceTracker::get();
246 vkAllocateMemory_VkResult_return = resources->on_vkAllocateMemory(vkEnc, VK_SUCCESS, device, pAllocateInfo, pAllocator, pMemory);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800247 return vkAllocateMemory_VkResult_return;
248}
249static void entry_vkFreeMemory(
250 VkDevice device,
251 VkDeviceMemory memory,
252 const VkAllocationCallbacks* pAllocator)
253{
254 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yange9979522018-12-25 14:44:52 -0800255 auto resources = ResourceTracker::get();
256 resources->on_vkFreeMemory(vkEnc, device, memory, pAllocator);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800257}
258static VkResult entry_vkMapMemory(
259 VkDevice device,
260 VkDeviceMemory memory,
261 VkDeviceSize offset,
262 VkDeviceSize size,
263 VkMemoryMapFlags flags,
264 void** ppData)
265{
266 auto vkEnc = HostConnection::get()->vkEncoder();
267 VkResult vkMapMemory_VkResult_return = (VkResult)0;
268 vkMapMemory_VkResult_return = vkEnc->vkMapMemory(device, memory, offset, size, flags, ppData);
269 return vkMapMemory_VkResult_return;
270}
271static void entry_vkUnmapMemory(
272 VkDevice device,
273 VkDeviceMemory memory)
274{
275 auto vkEnc = HostConnection::get()->vkEncoder();
276 vkEnc->vkUnmapMemory(device, memory);
277}
278static VkResult entry_vkFlushMappedMemoryRanges(
279 VkDevice device,
280 uint32_t memoryRangeCount,
281 const VkMappedMemoryRange* pMemoryRanges)
282{
283 auto vkEnc = HostConnection::get()->vkEncoder();
284 VkResult vkFlushMappedMemoryRanges_VkResult_return = (VkResult)0;
285 vkFlushMappedMemoryRanges_VkResult_return = vkEnc->vkFlushMappedMemoryRanges(device, memoryRangeCount, pMemoryRanges);
286 return vkFlushMappedMemoryRanges_VkResult_return;
287}
288static VkResult entry_vkInvalidateMappedMemoryRanges(
289 VkDevice device,
290 uint32_t memoryRangeCount,
291 const VkMappedMemoryRange* pMemoryRanges)
292{
293 auto vkEnc = HostConnection::get()->vkEncoder();
294 VkResult vkInvalidateMappedMemoryRanges_VkResult_return = (VkResult)0;
295 vkInvalidateMappedMemoryRanges_VkResult_return = vkEnc->vkInvalidateMappedMemoryRanges(device, memoryRangeCount, pMemoryRanges);
296 return vkInvalidateMappedMemoryRanges_VkResult_return;
297}
298static void entry_vkGetDeviceMemoryCommitment(
299 VkDevice device,
300 VkDeviceMemory memory,
301 VkDeviceSize* pCommittedMemoryInBytes)
302{
303 auto vkEnc = HostConnection::get()->vkEncoder();
304 vkEnc->vkGetDeviceMemoryCommitment(device, memory, pCommittedMemoryInBytes);
305}
306static VkResult entry_vkBindBufferMemory(
307 VkDevice device,
308 VkBuffer buffer,
309 VkDeviceMemory memory,
310 VkDeviceSize memoryOffset)
311{
312 auto vkEnc = HostConnection::get()->vkEncoder();
313 VkResult vkBindBufferMemory_VkResult_return = (VkResult)0;
Lingfeng Yang4af5f322019-02-14 08:10:28 -0800314 auto resources = ResourceTracker::get();
315 vkBindBufferMemory_VkResult_return = resources->on_vkBindBufferMemory(vkEnc, VK_SUCCESS, device, buffer, memory, memoryOffset);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800316 return vkBindBufferMemory_VkResult_return;
317}
318static VkResult entry_vkBindImageMemory(
319 VkDevice device,
320 VkImage image,
321 VkDeviceMemory memory,
322 VkDeviceSize memoryOffset)
323{
324 auto vkEnc = HostConnection::get()->vkEncoder();
325 VkResult vkBindImageMemory_VkResult_return = (VkResult)0;
Lingfeng Yang4af5f322019-02-14 08:10:28 -0800326 auto resources = ResourceTracker::get();
327 vkBindImageMemory_VkResult_return = resources->on_vkBindImageMemory(vkEnc, VK_SUCCESS, device, image, memory, memoryOffset);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800328 return vkBindImageMemory_VkResult_return;
329}
330static void entry_vkGetBufferMemoryRequirements(
331 VkDevice device,
332 VkBuffer buffer,
333 VkMemoryRequirements* pMemoryRequirements)
334{
335 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang4af5f322019-02-14 08:10:28 -0800336 auto resources = ResourceTracker::get();
337 resources->on_vkGetBufferMemoryRequirements(vkEnc, device, buffer, pMemoryRequirements);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800338}
339static void entry_vkGetImageMemoryRequirements(
340 VkDevice device,
341 VkImage image,
342 VkMemoryRequirements* pMemoryRequirements)
343{
344 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang4af5f322019-02-14 08:10:28 -0800345 auto resources = ResourceTracker::get();
346 resources->on_vkGetImageMemoryRequirements(vkEnc, device, image, pMemoryRequirements);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800347}
348static void entry_vkGetImageSparseMemoryRequirements(
349 VkDevice device,
350 VkImage image,
351 uint32_t* pSparseMemoryRequirementCount,
352 VkSparseImageMemoryRequirements* pSparseMemoryRequirements)
353{
354 auto vkEnc = HostConnection::get()->vkEncoder();
355 vkEnc->vkGetImageSparseMemoryRequirements(device, image, pSparseMemoryRequirementCount, pSparseMemoryRequirements);
356}
357static void entry_vkGetPhysicalDeviceSparseImageFormatProperties(
358 VkPhysicalDevice physicalDevice,
359 VkFormat format,
360 VkImageType type,
361 VkSampleCountFlagBits samples,
362 VkImageUsageFlags usage,
363 VkImageTiling tiling,
364 uint32_t* pPropertyCount,
365 VkSparseImageFormatProperties* pProperties)
366{
367 auto vkEnc = HostConnection::get()->vkEncoder();
368 vkEnc->vkGetPhysicalDeviceSparseImageFormatProperties(physicalDevice, format, type, samples, usage, tiling, pPropertyCount, pProperties);
369}
370static VkResult entry_vkQueueBindSparse(
371 VkQueue queue,
372 uint32_t bindInfoCount,
373 const VkBindSparseInfo* pBindInfo,
374 VkFence fence)
375{
376 auto vkEnc = HostConnection::get()->vkEncoder();
377 VkResult vkQueueBindSparse_VkResult_return = (VkResult)0;
378 vkQueueBindSparse_VkResult_return = vkEnc->vkQueueBindSparse(queue, bindInfoCount, pBindInfo, fence);
379 return vkQueueBindSparse_VkResult_return;
380}
381static VkResult entry_vkCreateFence(
382 VkDevice device,
383 const VkFenceCreateInfo* pCreateInfo,
384 const VkAllocationCallbacks* pAllocator,
385 VkFence* pFence)
386{
387 auto vkEnc = HostConnection::get()->vkEncoder();
388 VkResult vkCreateFence_VkResult_return = (VkResult)0;
389 vkCreateFence_VkResult_return = vkEnc->vkCreateFence(device, pCreateInfo, pAllocator, pFence);
390 return vkCreateFence_VkResult_return;
391}
392static void entry_vkDestroyFence(
393 VkDevice device,
394 VkFence fence,
395 const VkAllocationCallbacks* pAllocator)
396{
397 auto vkEnc = HostConnection::get()->vkEncoder();
398 vkEnc->vkDestroyFence(device, fence, pAllocator);
399}
400static VkResult entry_vkResetFences(
401 VkDevice device,
402 uint32_t fenceCount,
403 const VkFence* pFences)
404{
405 auto vkEnc = HostConnection::get()->vkEncoder();
406 VkResult vkResetFences_VkResult_return = (VkResult)0;
407 vkResetFences_VkResult_return = vkEnc->vkResetFences(device, fenceCount, pFences);
408 return vkResetFences_VkResult_return;
409}
410static VkResult entry_vkGetFenceStatus(
411 VkDevice device,
412 VkFence fence)
413{
414 auto vkEnc = HostConnection::get()->vkEncoder();
415 VkResult vkGetFenceStatus_VkResult_return = (VkResult)0;
416 vkGetFenceStatus_VkResult_return = vkEnc->vkGetFenceStatus(device, fence);
417 return vkGetFenceStatus_VkResult_return;
418}
419static VkResult entry_vkWaitForFences(
420 VkDevice device,
421 uint32_t fenceCount,
422 const VkFence* pFences,
423 VkBool32 waitAll,
424 uint64_t timeout)
425{
426 auto vkEnc = HostConnection::get()->vkEncoder();
427 VkResult vkWaitForFences_VkResult_return = (VkResult)0;
428 vkWaitForFences_VkResult_return = vkEnc->vkWaitForFences(device, fenceCount, pFences, waitAll, timeout);
429 return vkWaitForFences_VkResult_return;
430}
431static VkResult entry_vkCreateSemaphore(
432 VkDevice device,
433 const VkSemaphoreCreateInfo* pCreateInfo,
434 const VkAllocationCallbacks* pAllocator,
435 VkSemaphore* pSemaphore)
436{
437 auto vkEnc = HostConnection::get()->vkEncoder();
438 VkResult vkCreateSemaphore_VkResult_return = (VkResult)0;
439 vkCreateSemaphore_VkResult_return = vkEnc->vkCreateSemaphore(device, pCreateInfo, pAllocator, pSemaphore);
440 return vkCreateSemaphore_VkResult_return;
441}
442static void entry_vkDestroySemaphore(
443 VkDevice device,
444 VkSemaphore semaphore,
445 const VkAllocationCallbacks* pAllocator)
446{
447 auto vkEnc = HostConnection::get()->vkEncoder();
448 vkEnc->vkDestroySemaphore(device, semaphore, pAllocator);
449}
450static VkResult entry_vkCreateEvent(
451 VkDevice device,
452 const VkEventCreateInfo* pCreateInfo,
453 const VkAllocationCallbacks* pAllocator,
454 VkEvent* pEvent)
455{
456 auto vkEnc = HostConnection::get()->vkEncoder();
457 VkResult vkCreateEvent_VkResult_return = (VkResult)0;
458 vkCreateEvent_VkResult_return = vkEnc->vkCreateEvent(device, pCreateInfo, pAllocator, pEvent);
459 return vkCreateEvent_VkResult_return;
460}
461static void entry_vkDestroyEvent(
462 VkDevice device,
463 VkEvent event,
464 const VkAllocationCallbacks* pAllocator)
465{
466 auto vkEnc = HostConnection::get()->vkEncoder();
467 vkEnc->vkDestroyEvent(device, event, pAllocator);
468}
469static VkResult entry_vkGetEventStatus(
470 VkDevice device,
471 VkEvent event)
472{
473 auto vkEnc = HostConnection::get()->vkEncoder();
474 VkResult vkGetEventStatus_VkResult_return = (VkResult)0;
475 vkGetEventStatus_VkResult_return = vkEnc->vkGetEventStatus(device, event);
476 return vkGetEventStatus_VkResult_return;
477}
478static VkResult entry_vkSetEvent(
479 VkDevice device,
480 VkEvent event)
481{
482 auto vkEnc = HostConnection::get()->vkEncoder();
483 VkResult vkSetEvent_VkResult_return = (VkResult)0;
484 vkSetEvent_VkResult_return = vkEnc->vkSetEvent(device, event);
485 return vkSetEvent_VkResult_return;
486}
487static VkResult entry_vkResetEvent(
488 VkDevice device,
489 VkEvent event)
490{
491 auto vkEnc = HostConnection::get()->vkEncoder();
492 VkResult vkResetEvent_VkResult_return = (VkResult)0;
493 vkResetEvent_VkResult_return = vkEnc->vkResetEvent(device, event);
494 return vkResetEvent_VkResult_return;
495}
496static VkResult entry_vkCreateQueryPool(
497 VkDevice device,
498 const VkQueryPoolCreateInfo* pCreateInfo,
499 const VkAllocationCallbacks* pAllocator,
500 VkQueryPool* pQueryPool)
501{
502 auto vkEnc = HostConnection::get()->vkEncoder();
503 VkResult vkCreateQueryPool_VkResult_return = (VkResult)0;
504 vkCreateQueryPool_VkResult_return = vkEnc->vkCreateQueryPool(device, pCreateInfo, pAllocator, pQueryPool);
505 return vkCreateQueryPool_VkResult_return;
506}
507static void entry_vkDestroyQueryPool(
508 VkDevice device,
509 VkQueryPool queryPool,
510 const VkAllocationCallbacks* pAllocator)
511{
512 auto vkEnc = HostConnection::get()->vkEncoder();
513 vkEnc->vkDestroyQueryPool(device, queryPool, pAllocator);
514}
515static VkResult entry_vkGetQueryPoolResults(
516 VkDevice device,
517 VkQueryPool queryPool,
518 uint32_t firstQuery,
519 uint32_t queryCount,
520 size_t dataSize,
521 void* pData,
522 VkDeviceSize stride,
523 VkQueryResultFlags flags)
524{
525 auto vkEnc = HostConnection::get()->vkEncoder();
526 VkResult vkGetQueryPoolResults_VkResult_return = (VkResult)0;
527 vkGetQueryPoolResults_VkResult_return = vkEnc->vkGetQueryPoolResults(device, queryPool, firstQuery, queryCount, dataSize, pData, stride, flags);
528 return vkGetQueryPoolResults_VkResult_return;
529}
530static VkResult entry_vkCreateBuffer(
531 VkDevice device,
532 const VkBufferCreateInfo* pCreateInfo,
533 const VkAllocationCallbacks* pAllocator,
534 VkBuffer* pBuffer)
535{
536 auto vkEnc = HostConnection::get()->vkEncoder();
537 VkResult vkCreateBuffer_VkResult_return = (VkResult)0;
Lingfeng Yang4af5f322019-02-14 08:10:28 -0800538 auto resources = ResourceTracker::get();
539 vkCreateBuffer_VkResult_return = resources->on_vkCreateBuffer(vkEnc, VK_SUCCESS, device, pCreateInfo, pAllocator, pBuffer);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800540 return vkCreateBuffer_VkResult_return;
541}
542static void entry_vkDestroyBuffer(
543 VkDevice device,
544 VkBuffer buffer,
545 const VkAllocationCallbacks* pAllocator)
546{
547 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang4af5f322019-02-14 08:10:28 -0800548 auto resources = ResourceTracker::get();
549 resources->on_vkDestroyBuffer(vkEnc, device, buffer, pAllocator);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800550}
551static VkResult entry_vkCreateBufferView(
552 VkDevice device,
553 const VkBufferViewCreateInfo* pCreateInfo,
554 const VkAllocationCallbacks* pAllocator,
555 VkBufferView* pView)
556{
557 auto vkEnc = HostConnection::get()->vkEncoder();
558 VkResult vkCreateBufferView_VkResult_return = (VkResult)0;
559 vkCreateBufferView_VkResult_return = vkEnc->vkCreateBufferView(device, pCreateInfo, pAllocator, pView);
560 return vkCreateBufferView_VkResult_return;
561}
562static void entry_vkDestroyBufferView(
563 VkDevice device,
564 VkBufferView bufferView,
565 const VkAllocationCallbacks* pAllocator)
566{
567 auto vkEnc = HostConnection::get()->vkEncoder();
568 vkEnc->vkDestroyBufferView(device, bufferView, pAllocator);
569}
570static VkResult entry_vkCreateImage(
571 VkDevice device,
572 const VkImageCreateInfo* pCreateInfo,
573 const VkAllocationCallbacks* pAllocator,
574 VkImage* pImage)
575{
576 auto vkEnc = HostConnection::get()->vkEncoder();
577 VkResult vkCreateImage_VkResult_return = (VkResult)0;
Lingfeng Yang4af5f322019-02-14 08:10:28 -0800578 auto resources = ResourceTracker::get();
579 vkCreateImage_VkResult_return = resources->on_vkCreateImage(vkEnc, VK_SUCCESS, device, pCreateInfo, pAllocator, pImage);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800580 return vkCreateImage_VkResult_return;
581}
582static void entry_vkDestroyImage(
583 VkDevice device,
584 VkImage image,
585 const VkAllocationCallbacks* pAllocator)
586{
587 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang4af5f322019-02-14 08:10:28 -0800588 auto resources = ResourceTracker::get();
589 resources->on_vkDestroyImage(vkEnc, device, image, pAllocator);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800590}
591static void entry_vkGetImageSubresourceLayout(
592 VkDevice device,
593 VkImage image,
594 const VkImageSubresource* pSubresource,
595 VkSubresourceLayout* pLayout)
596{
597 auto vkEnc = HostConnection::get()->vkEncoder();
598 vkEnc->vkGetImageSubresourceLayout(device, image, pSubresource, pLayout);
599}
600static VkResult entry_vkCreateImageView(
601 VkDevice device,
602 const VkImageViewCreateInfo* pCreateInfo,
603 const VkAllocationCallbacks* pAllocator,
604 VkImageView* pView)
605{
606 auto vkEnc = HostConnection::get()->vkEncoder();
607 VkResult vkCreateImageView_VkResult_return = (VkResult)0;
608 vkCreateImageView_VkResult_return = vkEnc->vkCreateImageView(device, pCreateInfo, pAllocator, pView);
609 return vkCreateImageView_VkResult_return;
610}
611static void entry_vkDestroyImageView(
612 VkDevice device,
613 VkImageView imageView,
614 const VkAllocationCallbacks* pAllocator)
615{
616 auto vkEnc = HostConnection::get()->vkEncoder();
617 vkEnc->vkDestroyImageView(device, imageView, pAllocator);
618}
619static VkResult entry_vkCreateShaderModule(
620 VkDevice device,
621 const VkShaderModuleCreateInfo* pCreateInfo,
622 const VkAllocationCallbacks* pAllocator,
623 VkShaderModule* pShaderModule)
624{
625 auto vkEnc = HostConnection::get()->vkEncoder();
626 VkResult vkCreateShaderModule_VkResult_return = (VkResult)0;
627 vkCreateShaderModule_VkResult_return = vkEnc->vkCreateShaderModule(device, pCreateInfo, pAllocator, pShaderModule);
628 return vkCreateShaderModule_VkResult_return;
629}
630static void entry_vkDestroyShaderModule(
631 VkDevice device,
632 VkShaderModule shaderModule,
633 const VkAllocationCallbacks* pAllocator)
634{
635 auto vkEnc = HostConnection::get()->vkEncoder();
636 vkEnc->vkDestroyShaderModule(device, shaderModule, pAllocator);
637}
638static VkResult entry_vkCreatePipelineCache(
639 VkDevice device,
640 const VkPipelineCacheCreateInfo* pCreateInfo,
641 const VkAllocationCallbacks* pAllocator,
642 VkPipelineCache* pPipelineCache)
643{
644 auto vkEnc = HostConnection::get()->vkEncoder();
645 VkResult vkCreatePipelineCache_VkResult_return = (VkResult)0;
646 vkCreatePipelineCache_VkResult_return = vkEnc->vkCreatePipelineCache(device, pCreateInfo, pAllocator, pPipelineCache);
647 return vkCreatePipelineCache_VkResult_return;
648}
649static void entry_vkDestroyPipelineCache(
650 VkDevice device,
651 VkPipelineCache pipelineCache,
652 const VkAllocationCallbacks* pAllocator)
653{
654 auto vkEnc = HostConnection::get()->vkEncoder();
655 vkEnc->vkDestroyPipelineCache(device, pipelineCache, pAllocator);
656}
657static VkResult entry_vkGetPipelineCacheData(
658 VkDevice device,
659 VkPipelineCache pipelineCache,
660 size_t* pDataSize,
661 void* pData)
662{
663 auto vkEnc = HostConnection::get()->vkEncoder();
664 VkResult vkGetPipelineCacheData_VkResult_return = (VkResult)0;
665 vkGetPipelineCacheData_VkResult_return = vkEnc->vkGetPipelineCacheData(device, pipelineCache, pDataSize, pData);
666 return vkGetPipelineCacheData_VkResult_return;
667}
668static VkResult entry_vkMergePipelineCaches(
669 VkDevice device,
670 VkPipelineCache dstCache,
671 uint32_t srcCacheCount,
672 const VkPipelineCache* pSrcCaches)
673{
674 auto vkEnc = HostConnection::get()->vkEncoder();
675 VkResult vkMergePipelineCaches_VkResult_return = (VkResult)0;
676 vkMergePipelineCaches_VkResult_return = vkEnc->vkMergePipelineCaches(device, dstCache, srcCacheCount, pSrcCaches);
677 return vkMergePipelineCaches_VkResult_return;
678}
679static VkResult entry_vkCreateGraphicsPipelines(
680 VkDevice device,
681 VkPipelineCache pipelineCache,
682 uint32_t createInfoCount,
683 const VkGraphicsPipelineCreateInfo* pCreateInfos,
684 const VkAllocationCallbacks* pAllocator,
685 VkPipeline* pPipelines)
686{
687 auto vkEnc = HostConnection::get()->vkEncoder();
688 VkResult vkCreateGraphicsPipelines_VkResult_return = (VkResult)0;
689 vkCreateGraphicsPipelines_VkResult_return = vkEnc->vkCreateGraphicsPipelines(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines);
690 return vkCreateGraphicsPipelines_VkResult_return;
691}
692static VkResult entry_vkCreateComputePipelines(
693 VkDevice device,
694 VkPipelineCache pipelineCache,
695 uint32_t createInfoCount,
696 const VkComputePipelineCreateInfo* pCreateInfos,
697 const VkAllocationCallbacks* pAllocator,
698 VkPipeline* pPipelines)
699{
700 auto vkEnc = HostConnection::get()->vkEncoder();
701 VkResult vkCreateComputePipelines_VkResult_return = (VkResult)0;
702 vkCreateComputePipelines_VkResult_return = vkEnc->vkCreateComputePipelines(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines);
703 return vkCreateComputePipelines_VkResult_return;
704}
705static void entry_vkDestroyPipeline(
706 VkDevice device,
707 VkPipeline pipeline,
708 const VkAllocationCallbacks* pAllocator)
709{
710 auto vkEnc = HostConnection::get()->vkEncoder();
711 vkEnc->vkDestroyPipeline(device, pipeline, pAllocator);
712}
713static VkResult entry_vkCreatePipelineLayout(
714 VkDevice device,
715 const VkPipelineLayoutCreateInfo* pCreateInfo,
716 const VkAllocationCallbacks* pAllocator,
717 VkPipelineLayout* pPipelineLayout)
718{
719 auto vkEnc = HostConnection::get()->vkEncoder();
720 VkResult vkCreatePipelineLayout_VkResult_return = (VkResult)0;
721 vkCreatePipelineLayout_VkResult_return = vkEnc->vkCreatePipelineLayout(device, pCreateInfo, pAllocator, pPipelineLayout);
722 return vkCreatePipelineLayout_VkResult_return;
723}
724static void entry_vkDestroyPipelineLayout(
725 VkDevice device,
726 VkPipelineLayout pipelineLayout,
727 const VkAllocationCallbacks* pAllocator)
728{
729 auto vkEnc = HostConnection::get()->vkEncoder();
730 vkEnc->vkDestroyPipelineLayout(device, pipelineLayout, pAllocator);
731}
732static VkResult entry_vkCreateSampler(
733 VkDevice device,
734 const VkSamplerCreateInfo* pCreateInfo,
735 const VkAllocationCallbacks* pAllocator,
736 VkSampler* pSampler)
737{
738 auto vkEnc = HostConnection::get()->vkEncoder();
739 VkResult vkCreateSampler_VkResult_return = (VkResult)0;
740 vkCreateSampler_VkResult_return = vkEnc->vkCreateSampler(device, pCreateInfo, pAllocator, pSampler);
741 return vkCreateSampler_VkResult_return;
742}
743static void entry_vkDestroySampler(
744 VkDevice device,
745 VkSampler sampler,
746 const VkAllocationCallbacks* pAllocator)
747{
748 auto vkEnc = HostConnection::get()->vkEncoder();
749 vkEnc->vkDestroySampler(device, sampler, pAllocator);
750}
751static VkResult entry_vkCreateDescriptorSetLayout(
752 VkDevice device,
753 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
754 const VkAllocationCallbacks* pAllocator,
755 VkDescriptorSetLayout* pSetLayout)
756{
757 auto vkEnc = HostConnection::get()->vkEncoder();
758 VkResult vkCreateDescriptorSetLayout_VkResult_return = (VkResult)0;
759 vkCreateDescriptorSetLayout_VkResult_return = vkEnc->vkCreateDescriptorSetLayout(device, pCreateInfo, pAllocator, pSetLayout);
760 return vkCreateDescriptorSetLayout_VkResult_return;
761}
762static void entry_vkDestroyDescriptorSetLayout(
763 VkDevice device,
764 VkDescriptorSetLayout descriptorSetLayout,
765 const VkAllocationCallbacks* pAllocator)
766{
767 auto vkEnc = HostConnection::get()->vkEncoder();
768 vkEnc->vkDestroyDescriptorSetLayout(device, descriptorSetLayout, pAllocator);
769}
770static VkResult entry_vkCreateDescriptorPool(
771 VkDevice device,
772 const VkDescriptorPoolCreateInfo* pCreateInfo,
773 const VkAllocationCallbacks* pAllocator,
774 VkDescriptorPool* pDescriptorPool)
775{
776 auto vkEnc = HostConnection::get()->vkEncoder();
777 VkResult vkCreateDescriptorPool_VkResult_return = (VkResult)0;
778 vkCreateDescriptorPool_VkResult_return = vkEnc->vkCreateDescriptorPool(device, pCreateInfo, pAllocator, pDescriptorPool);
779 return vkCreateDescriptorPool_VkResult_return;
780}
781static void entry_vkDestroyDescriptorPool(
782 VkDevice device,
783 VkDescriptorPool descriptorPool,
784 const VkAllocationCallbacks* pAllocator)
785{
786 auto vkEnc = HostConnection::get()->vkEncoder();
787 vkEnc->vkDestroyDescriptorPool(device, descriptorPool, pAllocator);
788}
789static VkResult entry_vkResetDescriptorPool(
790 VkDevice device,
791 VkDescriptorPool descriptorPool,
792 VkDescriptorPoolResetFlags flags)
793{
794 auto vkEnc = HostConnection::get()->vkEncoder();
795 VkResult vkResetDescriptorPool_VkResult_return = (VkResult)0;
796 vkResetDescriptorPool_VkResult_return = vkEnc->vkResetDescriptorPool(device, descriptorPool, flags);
797 return vkResetDescriptorPool_VkResult_return;
798}
799static VkResult entry_vkAllocateDescriptorSets(
800 VkDevice device,
801 const VkDescriptorSetAllocateInfo* pAllocateInfo,
802 VkDescriptorSet* pDescriptorSets)
803{
804 auto vkEnc = HostConnection::get()->vkEncoder();
805 VkResult vkAllocateDescriptorSets_VkResult_return = (VkResult)0;
806 vkAllocateDescriptorSets_VkResult_return = vkEnc->vkAllocateDescriptorSets(device, pAllocateInfo, pDescriptorSets);
807 return vkAllocateDescriptorSets_VkResult_return;
808}
809static VkResult entry_vkFreeDescriptorSets(
810 VkDevice device,
811 VkDescriptorPool descriptorPool,
812 uint32_t descriptorSetCount,
813 const VkDescriptorSet* pDescriptorSets)
814{
815 auto vkEnc = HostConnection::get()->vkEncoder();
816 VkResult vkFreeDescriptorSets_VkResult_return = (VkResult)0;
817 vkFreeDescriptorSets_VkResult_return = vkEnc->vkFreeDescriptorSets(device, descriptorPool, descriptorSetCount, pDescriptorSets);
818 return vkFreeDescriptorSets_VkResult_return;
819}
820static void entry_vkUpdateDescriptorSets(
821 VkDevice device,
822 uint32_t descriptorWriteCount,
823 const VkWriteDescriptorSet* pDescriptorWrites,
824 uint32_t descriptorCopyCount,
825 const VkCopyDescriptorSet* pDescriptorCopies)
826{
827 auto vkEnc = HostConnection::get()->vkEncoder();
828 vkEnc->vkUpdateDescriptorSets(device, descriptorWriteCount, pDescriptorWrites, descriptorCopyCount, pDescriptorCopies);
829}
830static VkResult entry_vkCreateFramebuffer(
831 VkDevice device,
832 const VkFramebufferCreateInfo* pCreateInfo,
833 const VkAllocationCallbacks* pAllocator,
834 VkFramebuffer* pFramebuffer)
835{
836 auto vkEnc = HostConnection::get()->vkEncoder();
837 VkResult vkCreateFramebuffer_VkResult_return = (VkResult)0;
838 vkCreateFramebuffer_VkResult_return = vkEnc->vkCreateFramebuffer(device, pCreateInfo, pAllocator, pFramebuffer);
839 return vkCreateFramebuffer_VkResult_return;
840}
841static void entry_vkDestroyFramebuffer(
842 VkDevice device,
843 VkFramebuffer framebuffer,
844 const VkAllocationCallbacks* pAllocator)
845{
846 auto vkEnc = HostConnection::get()->vkEncoder();
847 vkEnc->vkDestroyFramebuffer(device, framebuffer, pAllocator);
848}
849static VkResult entry_vkCreateRenderPass(
850 VkDevice device,
851 const VkRenderPassCreateInfo* pCreateInfo,
852 const VkAllocationCallbacks* pAllocator,
853 VkRenderPass* pRenderPass)
854{
855 auto vkEnc = HostConnection::get()->vkEncoder();
856 VkResult vkCreateRenderPass_VkResult_return = (VkResult)0;
857 vkCreateRenderPass_VkResult_return = vkEnc->vkCreateRenderPass(device, pCreateInfo, pAllocator, pRenderPass);
858 return vkCreateRenderPass_VkResult_return;
859}
860static void entry_vkDestroyRenderPass(
861 VkDevice device,
862 VkRenderPass renderPass,
863 const VkAllocationCallbacks* pAllocator)
864{
865 auto vkEnc = HostConnection::get()->vkEncoder();
866 vkEnc->vkDestroyRenderPass(device, renderPass, pAllocator);
867}
868static void entry_vkGetRenderAreaGranularity(
869 VkDevice device,
870 VkRenderPass renderPass,
871 VkExtent2D* pGranularity)
872{
873 auto vkEnc = HostConnection::get()->vkEncoder();
874 vkEnc->vkGetRenderAreaGranularity(device, renderPass, pGranularity);
875}
876static VkResult entry_vkCreateCommandPool(
877 VkDevice device,
878 const VkCommandPoolCreateInfo* pCreateInfo,
879 const VkAllocationCallbacks* pAllocator,
880 VkCommandPool* pCommandPool)
881{
882 auto vkEnc = HostConnection::get()->vkEncoder();
883 VkResult vkCreateCommandPool_VkResult_return = (VkResult)0;
884 vkCreateCommandPool_VkResult_return = vkEnc->vkCreateCommandPool(device, pCreateInfo, pAllocator, pCommandPool);
885 return vkCreateCommandPool_VkResult_return;
886}
887static void entry_vkDestroyCommandPool(
888 VkDevice device,
889 VkCommandPool commandPool,
890 const VkAllocationCallbacks* pAllocator)
891{
892 auto vkEnc = HostConnection::get()->vkEncoder();
893 vkEnc->vkDestroyCommandPool(device, commandPool, pAllocator);
894}
895static VkResult entry_vkResetCommandPool(
896 VkDevice device,
897 VkCommandPool commandPool,
898 VkCommandPoolResetFlags flags)
899{
900 auto vkEnc = HostConnection::get()->vkEncoder();
901 VkResult vkResetCommandPool_VkResult_return = (VkResult)0;
902 vkResetCommandPool_VkResult_return = vkEnc->vkResetCommandPool(device, commandPool, flags);
903 return vkResetCommandPool_VkResult_return;
904}
905static VkResult entry_vkAllocateCommandBuffers(
906 VkDevice device,
907 const VkCommandBufferAllocateInfo* pAllocateInfo,
908 VkCommandBuffer* pCommandBuffers)
909{
910 auto vkEnc = HostConnection::get()->vkEncoder();
911 VkResult vkAllocateCommandBuffers_VkResult_return = (VkResult)0;
912 vkAllocateCommandBuffers_VkResult_return = vkEnc->vkAllocateCommandBuffers(device, pAllocateInfo, pCommandBuffers);
913 return vkAllocateCommandBuffers_VkResult_return;
914}
915static void entry_vkFreeCommandBuffers(
916 VkDevice device,
917 VkCommandPool commandPool,
918 uint32_t commandBufferCount,
919 const VkCommandBuffer* pCommandBuffers)
920{
921 auto vkEnc = HostConnection::get()->vkEncoder();
922 vkEnc->vkFreeCommandBuffers(device, commandPool, commandBufferCount, pCommandBuffers);
923}
924static VkResult entry_vkBeginCommandBuffer(
925 VkCommandBuffer commandBuffer,
926 const VkCommandBufferBeginInfo* pBeginInfo)
927{
928 auto vkEnc = HostConnection::get()->vkEncoder();
929 VkResult vkBeginCommandBuffer_VkResult_return = (VkResult)0;
930 vkBeginCommandBuffer_VkResult_return = vkEnc->vkBeginCommandBuffer(commandBuffer, pBeginInfo);
931 return vkBeginCommandBuffer_VkResult_return;
932}
933static VkResult entry_vkEndCommandBuffer(
934 VkCommandBuffer commandBuffer)
935{
936 auto vkEnc = HostConnection::get()->vkEncoder();
937 VkResult vkEndCommandBuffer_VkResult_return = (VkResult)0;
938 vkEndCommandBuffer_VkResult_return = vkEnc->vkEndCommandBuffer(commandBuffer);
939 return vkEndCommandBuffer_VkResult_return;
940}
941static VkResult entry_vkResetCommandBuffer(
942 VkCommandBuffer commandBuffer,
943 VkCommandBufferResetFlags flags)
944{
945 auto vkEnc = HostConnection::get()->vkEncoder();
946 VkResult vkResetCommandBuffer_VkResult_return = (VkResult)0;
947 vkResetCommandBuffer_VkResult_return = vkEnc->vkResetCommandBuffer(commandBuffer, flags);
948 return vkResetCommandBuffer_VkResult_return;
949}
950static void entry_vkCmdBindPipeline(
951 VkCommandBuffer commandBuffer,
952 VkPipelineBindPoint pipelineBindPoint,
953 VkPipeline pipeline)
954{
955 auto vkEnc = HostConnection::get()->vkEncoder();
956 vkEnc->vkCmdBindPipeline(commandBuffer, pipelineBindPoint, pipeline);
957}
958static void entry_vkCmdSetViewport(
959 VkCommandBuffer commandBuffer,
960 uint32_t firstViewport,
961 uint32_t viewportCount,
962 const VkViewport* pViewports)
963{
964 auto vkEnc = HostConnection::get()->vkEncoder();
965 vkEnc->vkCmdSetViewport(commandBuffer, firstViewport, viewportCount, pViewports);
966}
967static void entry_vkCmdSetScissor(
968 VkCommandBuffer commandBuffer,
969 uint32_t firstScissor,
970 uint32_t scissorCount,
971 const VkRect2D* pScissors)
972{
973 auto vkEnc = HostConnection::get()->vkEncoder();
974 vkEnc->vkCmdSetScissor(commandBuffer, firstScissor, scissorCount, pScissors);
975}
976static void entry_vkCmdSetLineWidth(
977 VkCommandBuffer commandBuffer,
978 float lineWidth)
979{
980 auto vkEnc = HostConnection::get()->vkEncoder();
981 vkEnc->vkCmdSetLineWidth(commandBuffer, lineWidth);
982}
983static void entry_vkCmdSetDepthBias(
984 VkCommandBuffer commandBuffer,
985 float depthBiasConstantFactor,
986 float depthBiasClamp,
987 float depthBiasSlopeFactor)
988{
989 auto vkEnc = HostConnection::get()->vkEncoder();
990 vkEnc->vkCmdSetDepthBias(commandBuffer, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor);
991}
992static void entry_vkCmdSetBlendConstants(
993 VkCommandBuffer commandBuffer,
994 const float blendConstants)
995{
996 auto vkEnc = HostConnection::get()->vkEncoder();
997 vkEnc->vkCmdSetBlendConstants(commandBuffer, blendConstants);
998}
999static void entry_vkCmdSetDepthBounds(
1000 VkCommandBuffer commandBuffer,
1001 float minDepthBounds,
1002 float maxDepthBounds)
1003{
1004 auto vkEnc = HostConnection::get()->vkEncoder();
1005 vkEnc->vkCmdSetDepthBounds(commandBuffer, minDepthBounds, maxDepthBounds);
1006}
1007static void entry_vkCmdSetStencilCompareMask(
1008 VkCommandBuffer commandBuffer,
1009 VkStencilFaceFlags faceMask,
1010 uint32_t compareMask)
1011{
1012 auto vkEnc = HostConnection::get()->vkEncoder();
1013 vkEnc->vkCmdSetStencilCompareMask(commandBuffer, faceMask, compareMask);
1014}
1015static void entry_vkCmdSetStencilWriteMask(
1016 VkCommandBuffer commandBuffer,
1017 VkStencilFaceFlags faceMask,
1018 uint32_t writeMask)
1019{
1020 auto vkEnc = HostConnection::get()->vkEncoder();
1021 vkEnc->vkCmdSetStencilWriteMask(commandBuffer, faceMask, writeMask);
1022}
1023static void entry_vkCmdSetStencilReference(
1024 VkCommandBuffer commandBuffer,
1025 VkStencilFaceFlags faceMask,
1026 uint32_t reference)
1027{
1028 auto vkEnc = HostConnection::get()->vkEncoder();
1029 vkEnc->vkCmdSetStencilReference(commandBuffer, faceMask, reference);
1030}
1031static void entry_vkCmdBindDescriptorSets(
1032 VkCommandBuffer commandBuffer,
1033 VkPipelineBindPoint pipelineBindPoint,
1034 VkPipelineLayout layout,
1035 uint32_t firstSet,
1036 uint32_t descriptorSetCount,
1037 const VkDescriptorSet* pDescriptorSets,
1038 uint32_t dynamicOffsetCount,
1039 const uint32_t* pDynamicOffsets)
1040{
1041 auto vkEnc = HostConnection::get()->vkEncoder();
1042 vkEnc->vkCmdBindDescriptorSets(commandBuffer, pipelineBindPoint, layout, firstSet, descriptorSetCount, pDescriptorSets, dynamicOffsetCount, pDynamicOffsets);
1043}
1044static void entry_vkCmdBindIndexBuffer(
1045 VkCommandBuffer commandBuffer,
1046 VkBuffer buffer,
1047 VkDeviceSize offset,
1048 VkIndexType indexType)
1049{
1050 auto vkEnc = HostConnection::get()->vkEncoder();
1051 vkEnc->vkCmdBindIndexBuffer(commandBuffer, buffer, offset, indexType);
1052}
1053static void entry_vkCmdBindVertexBuffers(
1054 VkCommandBuffer commandBuffer,
1055 uint32_t firstBinding,
1056 uint32_t bindingCount,
1057 const VkBuffer* pBuffers,
1058 const VkDeviceSize* pOffsets)
1059{
1060 auto vkEnc = HostConnection::get()->vkEncoder();
1061 vkEnc->vkCmdBindVertexBuffers(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets);
1062}
1063static void entry_vkCmdDraw(
1064 VkCommandBuffer commandBuffer,
1065 uint32_t vertexCount,
1066 uint32_t instanceCount,
1067 uint32_t firstVertex,
1068 uint32_t firstInstance)
1069{
1070 auto vkEnc = HostConnection::get()->vkEncoder();
1071 vkEnc->vkCmdDraw(commandBuffer, vertexCount, instanceCount, firstVertex, firstInstance);
1072}
1073static void entry_vkCmdDrawIndexed(
1074 VkCommandBuffer commandBuffer,
1075 uint32_t indexCount,
1076 uint32_t instanceCount,
1077 uint32_t firstIndex,
1078 int32_t vertexOffset,
1079 uint32_t firstInstance)
1080{
1081 auto vkEnc = HostConnection::get()->vkEncoder();
1082 vkEnc->vkCmdDrawIndexed(commandBuffer, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance);
1083}
1084static void entry_vkCmdDrawIndirect(
1085 VkCommandBuffer commandBuffer,
1086 VkBuffer buffer,
1087 VkDeviceSize offset,
1088 uint32_t drawCount,
1089 uint32_t stride)
1090{
1091 auto vkEnc = HostConnection::get()->vkEncoder();
1092 vkEnc->vkCmdDrawIndirect(commandBuffer, buffer, offset, drawCount, stride);
1093}
1094static void entry_vkCmdDrawIndexedIndirect(
1095 VkCommandBuffer commandBuffer,
1096 VkBuffer buffer,
1097 VkDeviceSize offset,
1098 uint32_t drawCount,
1099 uint32_t stride)
1100{
1101 auto vkEnc = HostConnection::get()->vkEncoder();
1102 vkEnc->vkCmdDrawIndexedIndirect(commandBuffer, buffer, offset, drawCount, stride);
1103}
1104static void entry_vkCmdDispatch(
1105 VkCommandBuffer commandBuffer,
1106 uint32_t groupCountX,
1107 uint32_t groupCountY,
1108 uint32_t groupCountZ)
1109{
1110 auto vkEnc = HostConnection::get()->vkEncoder();
1111 vkEnc->vkCmdDispatch(commandBuffer, groupCountX, groupCountY, groupCountZ);
1112}
1113static void entry_vkCmdDispatchIndirect(
1114 VkCommandBuffer commandBuffer,
1115 VkBuffer buffer,
1116 VkDeviceSize offset)
1117{
1118 auto vkEnc = HostConnection::get()->vkEncoder();
1119 vkEnc->vkCmdDispatchIndirect(commandBuffer, buffer, offset);
1120}
1121static void entry_vkCmdCopyBuffer(
1122 VkCommandBuffer commandBuffer,
1123 VkBuffer srcBuffer,
1124 VkBuffer dstBuffer,
1125 uint32_t regionCount,
1126 const VkBufferCopy* pRegions)
1127{
1128 auto vkEnc = HostConnection::get()->vkEncoder();
1129 vkEnc->vkCmdCopyBuffer(commandBuffer, srcBuffer, dstBuffer, regionCount, pRegions);
1130}
1131static void entry_vkCmdCopyImage(
1132 VkCommandBuffer commandBuffer,
1133 VkImage srcImage,
1134 VkImageLayout srcImageLayout,
1135 VkImage dstImage,
1136 VkImageLayout dstImageLayout,
1137 uint32_t regionCount,
1138 const VkImageCopy* pRegions)
1139{
1140 auto vkEnc = HostConnection::get()->vkEncoder();
1141 vkEnc->vkCmdCopyImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions);
1142}
1143static void entry_vkCmdBlitImage(
1144 VkCommandBuffer commandBuffer,
1145 VkImage srcImage,
1146 VkImageLayout srcImageLayout,
1147 VkImage dstImage,
1148 VkImageLayout dstImageLayout,
1149 uint32_t regionCount,
1150 const VkImageBlit* pRegions,
1151 VkFilter filter)
1152{
1153 auto vkEnc = HostConnection::get()->vkEncoder();
1154 vkEnc->vkCmdBlitImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions, filter);
1155}
1156static void entry_vkCmdCopyBufferToImage(
1157 VkCommandBuffer commandBuffer,
1158 VkBuffer srcBuffer,
1159 VkImage dstImage,
1160 VkImageLayout dstImageLayout,
1161 uint32_t regionCount,
1162 const VkBufferImageCopy* pRegions)
1163{
1164 auto vkEnc = HostConnection::get()->vkEncoder();
1165 vkEnc->vkCmdCopyBufferToImage(commandBuffer, srcBuffer, dstImage, dstImageLayout, regionCount, pRegions);
1166}
1167static void entry_vkCmdCopyImageToBuffer(
1168 VkCommandBuffer commandBuffer,
1169 VkImage srcImage,
1170 VkImageLayout srcImageLayout,
1171 VkBuffer dstBuffer,
1172 uint32_t regionCount,
1173 const VkBufferImageCopy* pRegions)
1174{
1175 auto vkEnc = HostConnection::get()->vkEncoder();
1176 vkEnc->vkCmdCopyImageToBuffer(commandBuffer, srcImage, srcImageLayout, dstBuffer, regionCount, pRegions);
1177}
1178static void entry_vkCmdUpdateBuffer(
1179 VkCommandBuffer commandBuffer,
1180 VkBuffer dstBuffer,
1181 VkDeviceSize dstOffset,
1182 VkDeviceSize dataSize,
1183 const void* pData)
1184{
1185 auto vkEnc = HostConnection::get()->vkEncoder();
1186 vkEnc->vkCmdUpdateBuffer(commandBuffer, dstBuffer, dstOffset, dataSize, pData);
1187}
1188static void entry_vkCmdFillBuffer(
1189 VkCommandBuffer commandBuffer,
1190 VkBuffer dstBuffer,
1191 VkDeviceSize dstOffset,
1192 VkDeviceSize size,
1193 uint32_t data)
1194{
1195 auto vkEnc = HostConnection::get()->vkEncoder();
1196 vkEnc->vkCmdFillBuffer(commandBuffer, dstBuffer, dstOffset, size, data);
1197}
1198static void entry_vkCmdClearColorImage(
1199 VkCommandBuffer commandBuffer,
1200 VkImage image,
1201 VkImageLayout imageLayout,
1202 const VkClearColorValue* pColor,
1203 uint32_t rangeCount,
1204 const VkImageSubresourceRange* pRanges)
1205{
1206 auto vkEnc = HostConnection::get()->vkEncoder();
1207 vkEnc->vkCmdClearColorImage(commandBuffer, image, imageLayout, pColor, rangeCount, pRanges);
1208}
1209static void entry_vkCmdClearDepthStencilImage(
1210 VkCommandBuffer commandBuffer,
1211 VkImage image,
1212 VkImageLayout imageLayout,
1213 const VkClearDepthStencilValue* pDepthStencil,
1214 uint32_t rangeCount,
1215 const VkImageSubresourceRange* pRanges)
1216{
1217 auto vkEnc = HostConnection::get()->vkEncoder();
1218 vkEnc->vkCmdClearDepthStencilImage(commandBuffer, image, imageLayout, pDepthStencil, rangeCount, pRanges);
1219}
1220static void entry_vkCmdClearAttachments(
1221 VkCommandBuffer commandBuffer,
1222 uint32_t attachmentCount,
1223 const VkClearAttachment* pAttachments,
1224 uint32_t rectCount,
1225 const VkClearRect* pRects)
1226{
1227 auto vkEnc = HostConnection::get()->vkEncoder();
1228 vkEnc->vkCmdClearAttachments(commandBuffer, attachmentCount, pAttachments, rectCount, pRects);
1229}
1230static void entry_vkCmdResolveImage(
1231 VkCommandBuffer commandBuffer,
1232 VkImage srcImage,
1233 VkImageLayout srcImageLayout,
1234 VkImage dstImage,
1235 VkImageLayout dstImageLayout,
1236 uint32_t regionCount,
1237 const VkImageResolve* pRegions)
1238{
1239 auto vkEnc = HostConnection::get()->vkEncoder();
1240 vkEnc->vkCmdResolveImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions);
1241}
1242static void entry_vkCmdSetEvent(
1243 VkCommandBuffer commandBuffer,
1244 VkEvent event,
1245 VkPipelineStageFlags stageMask)
1246{
1247 auto vkEnc = HostConnection::get()->vkEncoder();
1248 vkEnc->vkCmdSetEvent(commandBuffer, event, stageMask);
1249}
1250static void entry_vkCmdResetEvent(
1251 VkCommandBuffer commandBuffer,
1252 VkEvent event,
1253 VkPipelineStageFlags stageMask)
1254{
1255 auto vkEnc = HostConnection::get()->vkEncoder();
1256 vkEnc->vkCmdResetEvent(commandBuffer, event, stageMask);
1257}
1258static void entry_vkCmdWaitEvents(
1259 VkCommandBuffer commandBuffer,
1260 uint32_t eventCount,
1261 const VkEvent* pEvents,
1262 VkPipelineStageFlags srcStageMask,
1263 VkPipelineStageFlags dstStageMask,
1264 uint32_t memoryBarrierCount,
1265 const VkMemoryBarrier* pMemoryBarriers,
1266 uint32_t bufferMemoryBarrierCount,
1267 const VkBufferMemoryBarrier* pBufferMemoryBarriers,
1268 uint32_t imageMemoryBarrierCount,
1269 const VkImageMemoryBarrier* pImageMemoryBarriers)
1270{
1271 auto vkEnc = HostConnection::get()->vkEncoder();
1272 vkEnc->vkCmdWaitEvents(commandBuffer, eventCount, pEvents, srcStageMask, dstStageMask, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers);
1273}
1274static void entry_vkCmdPipelineBarrier(
1275 VkCommandBuffer commandBuffer,
1276 VkPipelineStageFlags srcStageMask,
1277 VkPipelineStageFlags dstStageMask,
1278 VkDependencyFlags dependencyFlags,
1279 uint32_t memoryBarrierCount,
1280 const VkMemoryBarrier* pMemoryBarriers,
1281 uint32_t bufferMemoryBarrierCount,
1282 const VkBufferMemoryBarrier* pBufferMemoryBarriers,
1283 uint32_t imageMemoryBarrierCount,
1284 const VkImageMemoryBarrier* pImageMemoryBarriers)
1285{
1286 auto vkEnc = HostConnection::get()->vkEncoder();
1287 vkEnc->vkCmdPipelineBarrier(commandBuffer, srcStageMask, dstStageMask, dependencyFlags, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers);
1288}
1289static void entry_vkCmdBeginQuery(
1290 VkCommandBuffer commandBuffer,
1291 VkQueryPool queryPool,
1292 uint32_t query,
1293 VkQueryControlFlags flags)
1294{
1295 auto vkEnc = HostConnection::get()->vkEncoder();
1296 vkEnc->vkCmdBeginQuery(commandBuffer, queryPool, query, flags);
1297}
1298static void entry_vkCmdEndQuery(
1299 VkCommandBuffer commandBuffer,
1300 VkQueryPool queryPool,
1301 uint32_t query)
1302{
1303 auto vkEnc = HostConnection::get()->vkEncoder();
1304 vkEnc->vkCmdEndQuery(commandBuffer, queryPool, query);
1305}
1306static void entry_vkCmdResetQueryPool(
1307 VkCommandBuffer commandBuffer,
1308 VkQueryPool queryPool,
1309 uint32_t firstQuery,
1310 uint32_t queryCount)
1311{
1312 auto vkEnc = HostConnection::get()->vkEncoder();
1313 vkEnc->vkCmdResetQueryPool(commandBuffer, queryPool, firstQuery, queryCount);
1314}
1315static void entry_vkCmdWriteTimestamp(
1316 VkCommandBuffer commandBuffer,
1317 VkPipelineStageFlagBits pipelineStage,
1318 VkQueryPool queryPool,
1319 uint32_t query)
1320{
1321 auto vkEnc = HostConnection::get()->vkEncoder();
1322 vkEnc->vkCmdWriteTimestamp(commandBuffer, pipelineStage, queryPool, query);
1323}
1324static void entry_vkCmdCopyQueryPoolResults(
1325 VkCommandBuffer commandBuffer,
1326 VkQueryPool queryPool,
1327 uint32_t firstQuery,
1328 uint32_t queryCount,
1329 VkBuffer dstBuffer,
1330 VkDeviceSize dstOffset,
1331 VkDeviceSize stride,
1332 VkQueryResultFlags flags)
1333{
1334 auto vkEnc = HostConnection::get()->vkEncoder();
1335 vkEnc->vkCmdCopyQueryPoolResults(commandBuffer, queryPool, firstQuery, queryCount, dstBuffer, dstOffset, stride, flags);
1336}
1337static void entry_vkCmdPushConstants(
1338 VkCommandBuffer commandBuffer,
1339 VkPipelineLayout layout,
1340 VkShaderStageFlags stageFlags,
1341 uint32_t offset,
1342 uint32_t size,
1343 const void* pValues)
1344{
1345 auto vkEnc = HostConnection::get()->vkEncoder();
1346 vkEnc->vkCmdPushConstants(commandBuffer, layout, stageFlags, offset, size, pValues);
1347}
1348static void entry_vkCmdBeginRenderPass(
1349 VkCommandBuffer commandBuffer,
1350 const VkRenderPassBeginInfo* pRenderPassBegin,
1351 VkSubpassContents contents)
1352{
1353 auto vkEnc = HostConnection::get()->vkEncoder();
1354 vkEnc->vkCmdBeginRenderPass(commandBuffer, pRenderPassBegin, contents);
1355}
1356static void entry_vkCmdNextSubpass(
1357 VkCommandBuffer commandBuffer,
1358 VkSubpassContents contents)
1359{
1360 auto vkEnc = HostConnection::get()->vkEncoder();
1361 vkEnc->vkCmdNextSubpass(commandBuffer, contents);
1362}
1363static void entry_vkCmdEndRenderPass(
1364 VkCommandBuffer commandBuffer)
1365{
1366 auto vkEnc = HostConnection::get()->vkEncoder();
1367 vkEnc->vkCmdEndRenderPass(commandBuffer);
1368}
1369static void entry_vkCmdExecuteCommands(
1370 VkCommandBuffer commandBuffer,
1371 uint32_t commandBufferCount,
1372 const VkCommandBuffer* pCommandBuffers)
1373{
1374 auto vkEnc = HostConnection::get()->vkEncoder();
1375 vkEnc->vkCmdExecuteCommands(commandBuffer, commandBufferCount, pCommandBuffers);
1376}
1377#endif
1378#ifdef VK_VERSION_1_1
1379static VkResult entry_vkEnumerateInstanceVersion(
1380 uint32_t* pApiVersion)
1381{
1382 auto vkEnc = HostConnection::get()->vkEncoder();
1383 VkResult vkEnumerateInstanceVersion_VkResult_return = (VkResult)0;
1384 vkEnumerateInstanceVersion_VkResult_return = vkEnc->vkEnumerateInstanceVersion(pApiVersion);
1385 return vkEnumerateInstanceVersion_VkResult_return;
1386}
1387static VkResult entry_vkBindBufferMemory2(
1388 VkDevice device,
1389 uint32_t bindInfoCount,
1390 const VkBindBufferMemoryInfo* pBindInfos)
1391{
1392 auto vkEnc = HostConnection::get()->vkEncoder();
1393 VkResult vkBindBufferMemory2_VkResult_return = (VkResult)0;
Lingfeng Yang4af5f322019-02-14 08:10:28 -08001394 auto resources = ResourceTracker::get();
1395 vkBindBufferMemory2_VkResult_return = resources->on_vkBindBufferMemory2(vkEnc, VK_SUCCESS, device, bindInfoCount, pBindInfos);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001396 return vkBindBufferMemory2_VkResult_return;
1397}
1398static VkResult entry_vkBindImageMemory2(
1399 VkDevice device,
1400 uint32_t bindInfoCount,
1401 const VkBindImageMemoryInfo* pBindInfos)
1402{
1403 auto vkEnc = HostConnection::get()->vkEncoder();
1404 VkResult vkBindImageMemory2_VkResult_return = (VkResult)0;
Lingfeng Yang4af5f322019-02-14 08:10:28 -08001405 auto resources = ResourceTracker::get();
1406 vkBindImageMemory2_VkResult_return = resources->on_vkBindImageMemory2(vkEnc, VK_SUCCESS, device, bindInfoCount, pBindInfos);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001407 return vkBindImageMemory2_VkResult_return;
1408}
1409static void entry_vkGetDeviceGroupPeerMemoryFeatures(
1410 VkDevice device,
1411 uint32_t heapIndex,
1412 uint32_t localDeviceIndex,
1413 uint32_t remoteDeviceIndex,
1414 VkPeerMemoryFeatureFlags* pPeerMemoryFeatures)
1415{
1416 auto vkEnc = HostConnection::get()->vkEncoder();
1417 vkEnc->vkGetDeviceGroupPeerMemoryFeatures(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures);
1418}
1419static void entry_vkCmdSetDeviceMask(
1420 VkCommandBuffer commandBuffer,
1421 uint32_t deviceMask)
1422{
1423 auto vkEnc = HostConnection::get()->vkEncoder();
1424 vkEnc->vkCmdSetDeviceMask(commandBuffer, deviceMask);
1425}
1426static void entry_vkCmdDispatchBase(
1427 VkCommandBuffer commandBuffer,
1428 uint32_t baseGroupX,
1429 uint32_t baseGroupY,
1430 uint32_t baseGroupZ,
1431 uint32_t groupCountX,
1432 uint32_t groupCountY,
1433 uint32_t groupCountZ)
1434{
1435 auto vkEnc = HostConnection::get()->vkEncoder();
1436 vkEnc->vkCmdDispatchBase(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ);
1437}
1438static VkResult entry_vkEnumeratePhysicalDeviceGroups(
1439 VkInstance instance,
1440 uint32_t* pPhysicalDeviceGroupCount,
1441 VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties)
1442{
1443 auto vkEnc = HostConnection::get()->vkEncoder();
1444 VkResult vkEnumeratePhysicalDeviceGroups_VkResult_return = (VkResult)0;
1445 vkEnumeratePhysicalDeviceGroups_VkResult_return = vkEnc->vkEnumeratePhysicalDeviceGroups(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties);
1446 return vkEnumeratePhysicalDeviceGroups_VkResult_return;
1447}
1448static void entry_vkGetImageMemoryRequirements2(
1449 VkDevice device,
1450 const VkImageMemoryRequirementsInfo2* pInfo,
1451 VkMemoryRequirements2* pMemoryRequirements)
1452{
1453 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang4af5f322019-02-14 08:10:28 -08001454 auto resources = ResourceTracker::get();
1455 resources->on_vkGetImageMemoryRequirements2(vkEnc, device, pInfo, pMemoryRequirements);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001456}
1457static void entry_vkGetBufferMemoryRequirements2(
1458 VkDevice device,
1459 const VkBufferMemoryRequirementsInfo2* pInfo,
1460 VkMemoryRequirements2* pMemoryRequirements)
1461{
1462 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang4af5f322019-02-14 08:10:28 -08001463 auto resources = ResourceTracker::get();
1464 resources->on_vkGetBufferMemoryRequirements2(vkEnc, device, pInfo, pMemoryRequirements);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001465}
1466static void entry_vkGetImageSparseMemoryRequirements2(
1467 VkDevice device,
1468 const VkImageSparseMemoryRequirementsInfo2* pInfo,
1469 uint32_t* pSparseMemoryRequirementCount,
1470 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements)
1471{
1472 auto vkEnc = HostConnection::get()->vkEncoder();
1473 vkEnc->vkGetImageSparseMemoryRequirements2(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements);
1474}
1475static void entry_vkGetPhysicalDeviceFeatures2(
1476 VkPhysicalDevice physicalDevice,
1477 VkPhysicalDeviceFeatures2* pFeatures)
1478{
1479 auto vkEnc = HostConnection::get()->vkEncoder();
1480 vkEnc->vkGetPhysicalDeviceFeatures2(physicalDevice, pFeatures);
1481}
1482static void entry_vkGetPhysicalDeviceProperties2(
1483 VkPhysicalDevice physicalDevice,
1484 VkPhysicalDeviceProperties2* pProperties)
1485{
1486 auto vkEnc = HostConnection::get()->vkEncoder();
1487 vkEnc->vkGetPhysicalDeviceProperties2(physicalDevice, pProperties);
1488}
1489static void entry_vkGetPhysicalDeviceFormatProperties2(
1490 VkPhysicalDevice physicalDevice,
1491 VkFormat format,
1492 VkFormatProperties2* pFormatProperties)
1493{
1494 auto vkEnc = HostConnection::get()->vkEncoder();
1495 vkEnc->vkGetPhysicalDeviceFormatProperties2(physicalDevice, format, pFormatProperties);
1496}
1497static VkResult entry_vkGetPhysicalDeviceImageFormatProperties2(
1498 VkPhysicalDevice physicalDevice,
1499 const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
1500 VkImageFormatProperties2* pImageFormatProperties)
1501{
1502 auto vkEnc = HostConnection::get()->vkEncoder();
1503 VkResult vkGetPhysicalDeviceImageFormatProperties2_VkResult_return = (VkResult)0;
1504 vkGetPhysicalDeviceImageFormatProperties2_VkResult_return = vkEnc->vkGetPhysicalDeviceImageFormatProperties2(physicalDevice, pImageFormatInfo, pImageFormatProperties);
1505 return vkGetPhysicalDeviceImageFormatProperties2_VkResult_return;
1506}
1507static void entry_vkGetPhysicalDeviceQueueFamilyProperties2(
1508 VkPhysicalDevice physicalDevice,
1509 uint32_t* pQueueFamilyPropertyCount,
1510 VkQueueFamilyProperties2* pQueueFamilyProperties)
1511{
1512 auto vkEnc = HostConnection::get()->vkEncoder();
1513 vkEnc->vkGetPhysicalDeviceQueueFamilyProperties2(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties);
1514}
1515static void entry_vkGetPhysicalDeviceMemoryProperties2(
1516 VkPhysicalDevice physicalDevice,
1517 VkPhysicalDeviceMemoryProperties2* pMemoryProperties)
1518{
1519 auto vkEnc = HostConnection::get()->vkEncoder();
1520 vkEnc->vkGetPhysicalDeviceMemoryProperties2(physicalDevice, pMemoryProperties);
1521}
1522static void entry_vkGetPhysicalDeviceSparseImageFormatProperties2(
1523 VkPhysicalDevice physicalDevice,
1524 const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
1525 uint32_t* pPropertyCount,
1526 VkSparseImageFormatProperties2* pProperties)
1527{
1528 auto vkEnc = HostConnection::get()->vkEncoder();
1529 vkEnc->vkGetPhysicalDeviceSparseImageFormatProperties2(physicalDevice, pFormatInfo, pPropertyCount, pProperties);
1530}
1531static void entry_vkTrimCommandPool(
1532 VkDevice device,
1533 VkCommandPool commandPool,
1534 VkCommandPoolTrimFlags flags)
1535{
1536 auto vkEnc = HostConnection::get()->vkEncoder();
1537 vkEnc->vkTrimCommandPool(device, commandPool, flags);
1538}
1539static void entry_vkGetDeviceQueue2(
1540 VkDevice device,
1541 const VkDeviceQueueInfo2* pQueueInfo,
1542 VkQueue* pQueue)
1543{
1544 auto vkEnc = HostConnection::get()->vkEncoder();
1545 vkEnc->vkGetDeviceQueue2(device, pQueueInfo, pQueue);
1546}
1547static VkResult entry_vkCreateSamplerYcbcrConversion(
1548 VkDevice device,
1549 const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
1550 const VkAllocationCallbacks* pAllocator,
1551 VkSamplerYcbcrConversion* pYcbcrConversion)
1552{
1553 auto vkEnc = HostConnection::get()->vkEncoder();
1554 VkResult vkCreateSamplerYcbcrConversion_VkResult_return = (VkResult)0;
1555 vkCreateSamplerYcbcrConversion_VkResult_return = vkEnc->vkCreateSamplerYcbcrConversion(device, pCreateInfo, pAllocator, pYcbcrConversion);
1556 return vkCreateSamplerYcbcrConversion_VkResult_return;
1557}
1558static void entry_vkDestroySamplerYcbcrConversion(
1559 VkDevice device,
1560 VkSamplerYcbcrConversion ycbcrConversion,
1561 const VkAllocationCallbacks* pAllocator)
1562{
1563 auto vkEnc = HostConnection::get()->vkEncoder();
1564 vkEnc->vkDestroySamplerYcbcrConversion(device, ycbcrConversion, pAllocator);
1565}
1566static VkResult entry_vkCreateDescriptorUpdateTemplate(
1567 VkDevice device,
1568 const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
1569 const VkAllocationCallbacks* pAllocator,
1570 VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate)
1571{
1572 auto vkEnc = HostConnection::get()->vkEncoder();
1573 VkResult vkCreateDescriptorUpdateTemplate_VkResult_return = (VkResult)0;
1574 vkCreateDescriptorUpdateTemplate_VkResult_return = vkEnc->vkCreateDescriptorUpdateTemplate(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate);
1575 return vkCreateDescriptorUpdateTemplate_VkResult_return;
1576}
1577static void entry_vkDestroyDescriptorUpdateTemplate(
1578 VkDevice device,
1579 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
1580 const VkAllocationCallbacks* pAllocator)
1581{
1582 auto vkEnc = HostConnection::get()->vkEncoder();
1583 vkEnc->vkDestroyDescriptorUpdateTemplate(device, descriptorUpdateTemplate, pAllocator);
1584}
1585static void entry_vkUpdateDescriptorSetWithTemplate(
1586 VkDevice device,
1587 VkDescriptorSet descriptorSet,
1588 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
1589 const void* pData)
1590{
1591 auto vkEnc = HostConnection::get()->vkEncoder();
1592 vkEnc->vkUpdateDescriptorSetWithTemplate(device, descriptorSet, descriptorUpdateTemplate, pData);
1593}
1594static void entry_vkGetPhysicalDeviceExternalBufferProperties(
1595 VkPhysicalDevice physicalDevice,
1596 const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
1597 VkExternalBufferProperties* pExternalBufferProperties)
1598{
1599 auto vkEnc = HostConnection::get()->vkEncoder();
1600 vkEnc->vkGetPhysicalDeviceExternalBufferProperties(physicalDevice, pExternalBufferInfo, pExternalBufferProperties);
1601}
1602static void entry_vkGetPhysicalDeviceExternalFenceProperties(
1603 VkPhysicalDevice physicalDevice,
1604 const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
1605 VkExternalFenceProperties* pExternalFenceProperties)
1606{
1607 auto vkEnc = HostConnection::get()->vkEncoder();
1608 vkEnc->vkGetPhysicalDeviceExternalFenceProperties(physicalDevice, pExternalFenceInfo, pExternalFenceProperties);
1609}
1610static void entry_vkGetPhysicalDeviceExternalSemaphoreProperties(
1611 VkPhysicalDevice physicalDevice,
1612 const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
1613 VkExternalSemaphoreProperties* pExternalSemaphoreProperties)
1614{
1615 auto vkEnc = HostConnection::get()->vkEncoder();
1616 vkEnc->vkGetPhysicalDeviceExternalSemaphoreProperties(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties);
1617}
1618static void entry_vkGetDescriptorSetLayoutSupport(
1619 VkDevice device,
1620 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
1621 VkDescriptorSetLayoutSupport* pSupport)
1622{
1623 auto vkEnc = HostConnection::get()->vkEncoder();
1624 vkEnc->vkGetDescriptorSetLayoutSupport(device, pCreateInfo, pSupport);
1625}
1626#endif
1627#ifdef VK_KHR_surface
1628static void entry_vkDestroySurfaceKHR(
1629 VkInstance instance,
1630 VkSurfaceKHR surface,
1631 const VkAllocationCallbacks* pAllocator)
1632{
1633 auto vkEnc = HostConnection::get()->vkEncoder();
1634 vkEnc->vkDestroySurfaceKHR(instance, surface, pAllocator);
1635}
1636static VkResult entry_vkGetPhysicalDeviceSurfaceSupportKHR(
1637 VkPhysicalDevice physicalDevice,
1638 uint32_t queueFamilyIndex,
1639 VkSurfaceKHR surface,
1640 VkBool32* pSupported)
1641{
1642 auto vkEnc = HostConnection::get()->vkEncoder();
1643 VkResult vkGetPhysicalDeviceSurfaceSupportKHR_VkResult_return = (VkResult)0;
1644 vkGetPhysicalDeviceSurfaceSupportKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceSupportKHR(physicalDevice, queueFamilyIndex, surface, pSupported);
1645 return vkGetPhysicalDeviceSurfaceSupportKHR_VkResult_return;
1646}
1647static VkResult entry_vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
1648 VkPhysicalDevice physicalDevice,
1649 VkSurfaceKHR surface,
1650 VkSurfaceCapabilitiesKHR* pSurfaceCapabilities)
1651{
1652 auto vkEnc = HostConnection::get()->vkEncoder();
1653 VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR_VkResult_return = (VkResult)0;
1654 vkGetPhysicalDeviceSurfaceCapabilitiesKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceCapabilitiesKHR(physicalDevice, surface, pSurfaceCapabilities);
1655 return vkGetPhysicalDeviceSurfaceCapabilitiesKHR_VkResult_return;
1656}
1657static VkResult entry_vkGetPhysicalDeviceSurfaceFormatsKHR(
1658 VkPhysicalDevice physicalDevice,
1659 VkSurfaceKHR surface,
1660 uint32_t* pSurfaceFormatCount,
1661 VkSurfaceFormatKHR* pSurfaceFormats)
1662{
1663 auto vkEnc = HostConnection::get()->vkEncoder();
1664 VkResult vkGetPhysicalDeviceSurfaceFormatsKHR_VkResult_return = (VkResult)0;
1665 vkGetPhysicalDeviceSurfaceFormatsKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceFormatsKHR(physicalDevice, surface, pSurfaceFormatCount, pSurfaceFormats);
1666 return vkGetPhysicalDeviceSurfaceFormatsKHR_VkResult_return;
1667}
1668static VkResult entry_vkGetPhysicalDeviceSurfacePresentModesKHR(
1669 VkPhysicalDevice physicalDevice,
1670 VkSurfaceKHR surface,
1671 uint32_t* pPresentModeCount,
1672 VkPresentModeKHR* pPresentModes)
1673{
1674 auto vkEnc = HostConnection::get()->vkEncoder();
1675 VkResult vkGetPhysicalDeviceSurfacePresentModesKHR_VkResult_return = (VkResult)0;
1676 vkGetPhysicalDeviceSurfacePresentModesKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfacePresentModesKHR(physicalDevice, surface, pPresentModeCount, pPresentModes);
1677 return vkGetPhysicalDeviceSurfacePresentModesKHR_VkResult_return;
1678}
1679#endif
1680#ifdef VK_KHR_swapchain
1681static VkResult entry_vkCreateSwapchainKHR(
1682 VkDevice device,
1683 const VkSwapchainCreateInfoKHR* pCreateInfo,
1684 const VkAllocationCallbacks* pAllocator,
1685 VkSwapchainKHR* pSwapchain)
1686{
1687 auto vkEnc = HostConnection::get()->vkEncoder();
1688 VkResult vkCreateSwapchainKHR_VkResult_return = (VkResult)0;
1689 vkCreateSwapchainKHR_VkResult_return = vkEnc->vkCreateSwapchainKHR(device, pCreateInfo, pAllocator, pSwapchain);
1690 return vkCreateSwapchainKHR_VkResult_return;
1691}
1692static void entry_vkDestroySwapchainKHR(
1693 VkDevice device,
1694 VkSwapchainKHR swapchain,
1695 const VkAllocationCallbacks* pAllocator)
1696{
1697 auto vkEnc = HostConnection::get()->vkEncoder();
1698 vkEnc->vkDestroySwapchainKHR(device, swapchain, pAllocator);
1699}
1700static VkResult entry_vkGetSwapchainImagesKHR(
1701 VkDevice device,
1702 VkSwapchainKHR swapchain,
1703 uint32_t* pSwapchainImageCount,
1704 VkImage* pSwapchainImages)
1705{
1706 auto vkEnc = HostConnection::get()->vkEncoder();
1707 VkResult vkGetSwapchainImagesKHR_VkResult_return = (VkResult)0;
1708 vkGetSwapchainImagesKHR_VkResult_return = vkEnc->vkGetSwapchainImagesKHR(device, swapchain, pSwapchainImageCount, pSwapchainImages);
1709 return vkGetSwapchainImagesKHR_VkResult_return;
1710}
1711static VkResult entry_vkAcquireNextImageKHR(
1712 VkDevice device,
1713 VkSwapchainKHR swapchain,
1714 uint64_t timeout,
1715 VkSemaphore semaphore,
1716 VkFence fence,
1717 uint32_t* pImageIndex)
1718{
1719 auto vkEnc = HostConnection::get()->vkEncoder();
1720 VkResult vkAcquireNextImageKHR_VkResult_return = (VkResult)0;
1721 vkAcquireNextImageKHR_VkResult_return = vkEnc->vkAcquireNextImageKHR(device, swapchain, timeout, semaphore, fence, pImageIndex);
1722 return vkAcquireNextImageKHR_VkResult_return;
1723}
1724static VkResult entry_vkQueuePresentKHR(
1725 VkQueue queue,
1726 const VkPresentInfoKHR* pPresentInfo)
1727{
1728 auto vkEnc = HostConnection::get()->vkEncoder();
1729 VkResult vkQueuePresentKHR_VkResult_return = (VkResult)0;
1730 vkQueuePresentKHR_VkResult_return = vkEnc->vkQueuePresentKHR(queue, pPresentInfo);
1731 return vkQueuePresentKHR_VkResult_return;
1732}
1733static VkResult entry_vkGetDeviceGroupPresentCapabilitiesKHR(
1734 VkDevice device,
1735 VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities)
1736{
1737 auto vkEnc = HostConnection::get()->vkEncoder();
1738 VkResult vkGetDeviceGroupPresentCapabilitiesKHR_VkResult_return = (VkResult)0;
1739 vkGetDeviceGroupPresentCapabilitiesKHR_VkResult_return = vkEnc->vkGetDeviceGroupPresentCapabilitiesKHR(device, pDeviceGroupPresentCapabilities);
1740 return vkGetDeviceGroupPresentCapabilitiesKHR_VkResult_return;
1741}
1742static VkResult entry_vkGetDeviceGroupSurfacePresentModesKHR(
1743 VkDevice device,
1744 VkSurfaceKHR surface,
1745 VkDeviceGroupPresentModeFlagsKHR* pModes)
1746{
1747 auto vkEnc = HostConnection::get()->vkEncoder();
1748 VkResult vkGetDeviceGroupSurfacePresentModesKHR_VkResult_return = (VkResult)0;
1749 vkGetDeviceGroupSurfacePresentModesKHR_VkResult_return = vkEnc->vkGetDeviceGroupSurfacePresentModesKHR(device, surface, pModes);
1750 return vkGetDeviceGroupSurfacePresentModesKHR_VkResult_return;
1751}
1752static VkResult entry_vkGetPhysicalDevicePresentRectanglesKHR(
1753 VkPhysicalDevice physicalDevice,
1754 VkSurfaceKHR surface,
1755 uint32_t* pRectCount,
1756 VkRect2D* pRects)
1757{
1758 auto vkEnc = HostConnection::get()->vkEncoder();
1759 VkResult vkGetPhysicalDevicePresentRectanglesKHR_VkResult_return = (VkResult)0;
1760 vkGetPhysicalDevicePresentRectanglesKHR_VkResult_return = vkEnc->vkGetPhysicalDevicePresentRectanglesKHR(physicalDevice, surface, pRectCount, pRects);
1761 return vkGetPhysicalDevicePresentRectanglesKHR_VkResult_return;
1762}
1763static VkResult entry_vkAcquireNextImage2KHR(
1764 VkDevice device,
1765 const VkAcquireNextImageInfoKHR* pAcquireInfo,
1766 uint32_t* pImageIndex)
1767{
1768 auto vkEnc = HostConnection::get()->vkEncoder();
1769 VkResult vkAcquireNextImage2KHR_VkResult_return = (VkResult)0;
1770 vkAcquireNextImage2KHR_VkResult_return = vkEnc->vkAcquireNextImage2KHR(device, pAcquireInfo, pImageIndex);
1771 return vkAcquireNextImage2KHR_VkResult_return;
1772}
1773#endif
1774#ifdef VK_KHR_display
1775static VkResult entry_vkGetPhysicalDeviceDisplayPropertiesKHR(
1776 VkPhysicalDevice physicalDevice,
1777 uint32_t* pPropertyCount,
1778 VkDisplayPropertiesKHR* pProperties)
1779{
1780 auto vkEnc = HostConnection::get()->vkEncoder();
1781 VkResult vkGetPhysicalDeviceDisplayPropertiesKHR_VkResult_return = (VkResult)0;
1782 vkGetPhysicalDeviceDisplayPropertiesKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceDisplayPropertiesKHR(physicalDevice, pPropertyCount, pProperties);
1783 return vkGetPhysicalDeviceDisplayPropertiesKHR_VkResult_return;
1784}
1785static VkResult entry_vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
1786 VkPhysicalDevice physicalDevice,
1787 uint32_t* pPropertyCount,
1788 VkDisplayPlanePropertiesKHR* pProperties)
1789{
1790 auto vkEnc = HostConnection::get()->vkEncoder();
1791 VkResult vkGetPhysicalDeviceDisplayPlanePropertiesKHR_VkResult_return = (VkResult)0;
1792 vkGetPhysicalDeviceDisplayPlanePropertiesKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceDisplayPlanePropertiesKHR(physicalDevice, pPropertyCount, pProperties);
1793 return vkGetPhysicalDeviceDisplayPlanePropertiesKHR_VkResult_return;
1794}
1795static VkResult entry_vkGetDisplayPlaneSupportedDisplaysKHR(
1796 VkPhysicalDevice physicalDevice,
1797 uint32_t planeIndex,
1798 uint32_t* pDisplayCount,
1799 VkDisplayKHR* pDisplays)
1800{
1801 auto vkEnc = HostConnection::get()->vkEncoder();
1802 VkResult vkGetDisplayPlaneSupportedDisplaysKHR_VkResult_return = (VkResult)0;
1803 vkGetDisplayPlaneSupportedDisplaysKHR_VkResult_return = vkEnc->vkGetDisplayPlaneSupportedDisplaysKHR(physicalDevice, planeIndex, pDisplayCount, pDisplays);
1804 return vkGetDisplayPlaneSupportedDisplaysKHR_VkResult_return;
1805}
1806static VkResult entry_vkGetDisplayModePropertiesKHR(
1807 VkPhysicalDevice physicalDevice,
1808 VkDisplayKHR display,
1809 uint32_t* pPropertyCount,
1810 VkDisplayModePropertiesKHR* pProperties)
1811{
1812 auto vkEnc = HostConnection::get()->vkEncoder();
1813 VkResult vkGetDisplayModePropertiesKHR_VkResult_return = (VkResult)0;
1814 vkGetDisplayModePropertiesKHR_VkResult_return = vkEnc->vkGetDisplayModePropertiesKHR(physicalDevice, display, pPropertyCount, pProperties);
1815 return vkGetDisplayModePropertiesKHR_VkResult_return;
1816}
1817static VkResult entry_vkCreateDisplayModeKHR(
1818 VkPhysicalDevice physicalDevice,
1819 VkDisplayKHR display,
1820 const VkDisplayModeCreateInfoKHR* pCreateInfo,
1821 const VkAllocationCallbacks* pAllocator,
1822 VkDisplayModeKHR* pMode)
1823{
1824 auto vkEnc = HostConnection::get()->vkEncoder();
1825 VkResult vkCreateDisplayModeKHR_VkResult_return = (VkResult)0;
1826 vkCreateDisplayModeKHR_VkResult_return = vkEnc->vkCreateDisplayModeKHR(physicalDevice, display, pCreateInfo, pAllocator, pMode);
1827 return vkCreateDisplayModeKHR_VkResult_return;
1828}
1829static VkResult entry_vkGetDisplayPlaneCapabilitiesKHR(
1830 VkPhysicalDevice physicalDevice,
1831 VkDisplayModeKHR mode,
1832 uint32_t planeIndex,
1833 VkDisplayPlaneCapabilitiesKHR* pCapabilities)
1834{
1835 auto vkEnc = HostConnection::get()->vkEncoder();
1836 VkResult vkGetDisplayPlaneCapabilitiesKHR_VkResult_return = (VkResult)0;
1837 vkGetDisplayPlaneCapabilitiesKHR_VkResult_return = vkEnc->vkGetDisplayPlaneCapabilitiesKHR(physicalDevice, mode, planeIndex, pCapabilities);
1838 return vkGetDisplayPlaneCapabilitiesKHR_VkResult_return;
1839}
1840static VkResult entry_vkCreateDisplayPlaneSurfaceKHR(
1841 VkInstance instance,
1842 const VkDisplaySurfaceCreateInfoKHR* pCreateInfo,
1843 const VkAllocationCallbacks* pAllocator,
1844 VkSurfaceKHR* pSurface)
1845{
1846 auto vkEnc = HostConnection::get()->vkEncoder();
1847 VkResult vkCreateDisplayPlaneSurfaceKHR_VkResult_return = (VkResult)0;
1848 vkCreateDisplayPlaneSurfaceKHR_VkResult_return = vkEnc->vkCreateDisplayPlaneSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
1849 return vkCreateDisplayPlaneSurfaceKHR_VkResult_return;
1850}
1851#endif
1852#ifdef VK_KHR_display_swapchain
1853static VkResult entry_vkCreateSharedSwapchainsKHR(
1854 VkDevice device,
1855 uint32_t swapchainCount,
1856 const VkSwapchainCreateInfoKHR* pCreateInfos,
1857 const VkAllocationCallbacks* pAllocator,
1858 VkSwapchainKHR* pSwapchains)
1859{
1860 auto vkEnc = HostConnection::get()->vkEncoder();
1861 VkResult vkCreateSharedSwapchainsKHR_VkResult_return = (VkResult)0;
1862 vkCreateSharedSwapchainsKHR_VkResult_return = vkEnc->vkCreateSharedSwapchainsKHR(device, swapchainCount, pCreateInfos, pAllocator, pSwapchains);
1863 return vkCreateSharedSwapchainsKHR_VkResult_return;
1864}
1865#endif
1866#ifdef VK_KHR_xlib_surface
1867static VkResult entry_vkCreateXlibSurfaceKHR(
1868 VkInstance instance,
1869 const VkXlibSurfaceCreateInfoKHR* pCreateInfo,
1870 const VkAllocationCallbacks* pAllocator,
1871 VkSurfaceKHR* pSurface)
1872{
1873 auto vkEnc = HostConnection::get()->vkEncoder();
1874 VkResult vkCreateXlibSurfaceKHR_VkResult_return = (VkResult)0;
1875 vkCreateXlibSurfaceKHR_VkResult_return = vkEnc->vkCreateXlibSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
1876 return vkCreateXlibSurfaceKHR_VkResult_return;
1877}
1878static VkBool32 entry_vkGetPhysicalDeviceXlibPresentationSupportKHR(
1879 VkPhysicalDevice physicalDevice,
1880 uint32_t queueFamilyIndex,
1881 Display* dpy,
1882 VisualID visualID)
1883{
1884 auto vkEnc = HostConnection::get()->vkEncoder();
1885 VkBool32 vkGetPhysicalDeviceXlibPresentationSupportKHR_VkBool32_return = (VkBool32)0;
1886 vkGetPhysicalDeviceXlibPresentationSupportKHR_VkBool32_return = vkEnc->vkGetPhysicalDeviceXlibPresentationSupportKHR(physicalDevice, queueFamilyIndex, dpy, visualID);
1887 return vkGetPhysicalDeviceXlibPresentationSupportKHR_VkBool32_return;
1888}
1889#endif
1890#ifdef VK_KHR_xcb_surface
1891static VkResult entry_vkCreateXcbSurfaceKHR(
1892 VkInstance instance,
1893 const VkXcbSurfaceCreateInfoKHR* pCreateInfo,
1894 const VkAllocationCallbacks* pAllocator,
1895 VkSurfaceKHR* pSurface)
1896{
1897 auto vkEnc = HostConnection::get()->vkEncoder();
1898 VkResult vkCreateXcbSurfaceKHR_VkResult_return = (VkResult)0;
1899 vkCreateXcbSurfaceKHR_VkResult_return = vkEnc->vkCreateXcbSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
1900 return vkCreateXcbSurfaceKHR_VkResult_return;
1901}
1902static VkBool32 entry_vkGetPhysicalDeviceXcbPresentationSupportKHR(
1903 VkPhysicalDevice physicalDevice,
1904 uint32_t queueFamilyIndex,
1905 xcb_connection_t* connection,
1906 xcb_visualid_t visual_id)
1907{
1908 auto vkEnc = HostConnection::get()->vkEncoder();
1909 VkBool32 vkGetPhysicalDeviceXcbPresentationSupportKHR_VkBool32_return = (VkBool32)0;
1910 vkGetPhysicalDeviceXcbPresentationSupportKHR_VkBool32_return = vkEnc->vkGetPhysicalDeviceXcbPresentationSupportKHR(physicalDevice, queueFamilyIndex, connection, visual_id);
1911 return vkGetPhysicalDeviceXcbPresentationSupportKHR_VkBool32_return;
1912}
1913#endif
1914#ifdef VK_KHR_wayland_surface
1915static VkResult entry_vkCreateWaylandSurfaceKHR(
1916 VkInstance instance,
1917 const VkWaylandSurfaceCreateInfoKHR* pCreateInfo,
1918 const VkAllocationCallbacks* pAllocator,
1919 VkSurfaceKHR* pSurface)
1920{
1921 auto vkEnc = HostConnection::get()->vkEncoder();
1922 VkResult vkCreateWaylandSurfaceKHR_VkResult_return = (VkResult)0;
1923 vkCreateWaylandSurfaceKHR_VkResult_return = vkEnc->vkCreateWaylandSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
1924 return vkCreateWaylandSurfaceKHR_VkResult_return;
1925}
1926static VkBool32 entry_vkGetPhysicalDeviceWaylandPresentationSupportKHR(
1927 VkPhysicalDevice physicalDevice,
1928 uint32_t queueFamilyIndex,
1929 wl_display* display)
1930{
1931 auto vkEnc = HostConnection::get()->vkEncoder();
1932 VkBool32 vkGetPhysicalDeviceWaylandPresentationSupportKHR_VkBool32_return = (VkBool32)0;
1933 vkGetPhysicalDeviceWaylandPresentationSupportKHR_VkBool32_return = vkEnc->vkGetPhysicalDeviceWaylandPresentationSupportKHR(physicalDevice, queueFamilyIndex, display);
1934 return vkGetPhysicalDeviceWaylandPresentationSupportKHR_VkBool32_return;
1935}
1936#endif
1937#ifdef VK_KHR_mir_surface
1938static VkResult entry_vkCreateMirSurfaceKHR(
1939 VkInstance instance,
1940 const VkMirSurfaceCreateInfoKHR* pCreateInfo,
1941 const VkAllocationCallbacks* pAllocator,
1942 VkSurfaceKHR* pSurface)
1943{
1944 auto vkEnc = HostConnection::get()->vkEncoder();
1945 VkResult vkCreateMirSurfaceKHR_VkResult_return = (VkResult)0;
1946 vkCreateMirSurfaceKHR_VkResult_return = vkEnc->vkCreateMirSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
1947 return vkCreateMirSurfaceKHR_VkResult_return;
1948}
1949static VkBool32 entry_vkGetPhysicalDeviceMirPresentationSupportKHR(
1950 VkPhysicalDevice physicalDevice,
1951 uint32_t queueFamilyIndex,
1952 MirConnection* connection)
1953{
1954 auto vkEnc = HostConnection::get()->vkEncoder();
1955 VkBool32 vkGetPhysicalDeviceMirPresentationSupportKHR_VkBool32_return = (VkBool32)0;
1956 vkGetPhysicalDeviceMirPresentationSupportKHR_VkBool32_return = vkEnc->vkGetPhysicalDeviceMirPresentationSupportKHR(physicalDevice, queueFamilyIndex, connection);
1957 return vkGetPhysicalDeviceMirPresentationSupportKHR_VkBool32_return;
1958}
1959#endif
1960#ifdef VK_KHR_android_surface
1961static VkResult entry_vkCreateAndroidSurfaceKHR(
1962 VkInstance instance,
1963 const VkAndroidSurfaceCreateInfoKHR* pCreateInfo,
1964 const VkAllocationCallbacks* pAllocator,
1965 VkSurfaceKHR* pSurface)
1966{
1967 auto vkEnc = HostConnection::get()->vkEncoder();
1968 VkResult vkCreateAndroidSurfaceKHR_VkResult_return = (VkResult)0;
1969 vkCreateAndroidSurfaceKHR_VkResult_return = vkEnc->vkCreateAndroidSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
1970 return vkCreateAndroidSurfaceKHR_VkResult_return;
1971}
1972#endif
1973#ifdef VK_KHR_win32_surface
1974static VkResult entry_vkCreateWin32SurfaceKHR(
1975 VkInstance instance,
1976 const VkWin32SurfaceCreateInfoKHR* pCreateInfo,
1977 const VkAllocationCallbacks* pAllocator,
1978 VkSurfaceKHR* pSurface)
1979{
1980 auto vkEnc = HostConnection::get()->vkEncoder();
1981 VkResult vkCreateWin32SurfaceKHR_VkResult_return = (VkResult)0;
1982 vkCreateWin32SurfaceKHR_VkResult_return = vkEnc->vkCreateWin32SurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
1983 return vkCreateWin32SurfaceKHR_VkResult_return;
1984}
1985static VkBool32 entry_vkGetPhysicalDeviceWin32PresentationSupportKHR(
1986 VkPhysicalDevice physicalDevice,
1987 uint32_t queueFamilyIndex)
1988{
1989 auto vkEnc = HostConnection::get()->vkEncoder();
1990 VkBool32 vkGetPhysicalDeviceWin32PresentationSupportKHR_VkBool32_return = (VkBool32)0;
1991 vkGetPhysicalDeviceWin32PresentationSupportKHR_VkBool32_return = vkEnc->vkGetPhysicalDeviceWin32PresentationSupportKHR(physicalDevice, queueFamilyIndex);
1992 return vkGetPhysicalDeviceWin32PresentationSupportKHR_VkBool32_return;
1993}
1994#endif
1995#ifdef VK_KHR_sampler_mirror_clamp_to_edge
1996#endif
1997#ifdef VK_KHR_multiview
1998#endif
1999#ifdef VK_KHR_get_physical_device_properties2
2000static void entry_vkGetPhysicalDeviceFeatures2KHR(
2001 VkPhysicalDevice physicalDevice,
2002 VkPhysicalDeviceFeatures2* pFeatures)
2003{
2004 auto vkEnc = HostConnection::get()->vkEncoder();
2005 vkEnc->vkGetPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures);
2006}
2007static void entry_vkGetPhysicalDeviceProperties2KHR(
2008 VkPhysicalDevice physicalDevice,
2009 VkPhysicalDeviceProperties2* pProperties)
2010{
2011 auto vkEnc = HostConnection::get()->vkEncoder();
2012 vkEnc->vkGetPhysicalDeviceProperties2KHR(physicalDevice, pProperties);
2013}
2014static void entry_vkGetPhysicalDeviceFormatProperties2KHR(
2015 VkPhysicalDevice physicalDevice,
2016 VkFormat format,
2017 VkFormatProperties2* pFormatProperties)
2018{
2019 auto vkEnc = HostConnection::get()->vkEncoder();
2020 vkEnc->vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice, format, pFormatProperties);
2021}
2022static VkResult entry_vkGetPhysicalDeviceImageFormatProperties2KHR(
2023 VkPhysicalDevice physicalDevice,
2024 const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
2025 VkImageFormatProperties2* pImageFormatProperties)
2026{
2027 auto vkEnc = HostConnection::get()->vkEncoder();
2028 VkResult vkGetPhysicalDeviceImageFormatProperties2KHR_VkResult_return = (VkResult)0;
2029 vkGetPhysicalDeviceImageFormatProperties2KHR_VkResult_return = vkEnc->vkGetPhysicalDeviceImageFormatProperties2KHR(physicalDevice, pImageFormatInfo, pImageFormatProperties);
2030 return vkGetPhysicalDeviceImageFormatProperties2KHR_VkResult_return;
2031}
2032static void entry_vkGetPhysicalDeviceQueueFamilyProperties2KHR(
2033 VkPhysicalDevice physicalDevice,
2034 uint32_t* pQueueFamilyPropertyCount,
2035 VkQueueFamilyProperties2* pQueueFamilyProperties)
2036{
2037 auto vkEnc = HostConnection::get()->vkEncoder();
2038 vkEnc->vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties);
2039}
2040static void entry_vkGetPhysicalDeviceMemoryProperties2KHR(
2041 VkPhysicalDevice physicalDevice,
2042 VkPhysicalDeviceMemoryProperties2* pMemoryProperties)
2043{
2044 auto vkEnc = HostConnection::get()->vkEncoder();
2045 vkEnc->vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice, pMemoryProperties);
2046}
2047static void entry_vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
2048 VkPhysicalDevice physicalDevice,
2049 const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
2050 uint32_t* pPropertyCount,
2051 VkSparseImageFormatProperties2* pProperties)
2052{
2053 auto vkEnc = HostConnection::get()->vkEncoder();
2054 vkEnc->vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties);
2055}
2056#endif
2057#ifdef VK_KHR_device_group
2058static void entry_vkGetDeviceGroupPeerMemoryFeaturesKHR(
2059 VkDevice device,
2060 uint32_t heapIndex,
2061 uint32_t localDeviceIndex,
2062 uint32_t remoteDeviceIndex,
2063 VkPeerMemoryFeatureFlags* pPeerMemoryFeatures)
2064{
2065 auto vkEnc = HostConnection::get()->vkEncoder();
2066 vkEnc->vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures);
2067}
2068static void entry_vkCmdSetDeviceMaskKHR(
2069 VkCommandBuffer commandBuffer,
2070 uint32_t deviceMask)
2071{
2072 auto vkEnc = HostConnection::get()->vkEncoder();
2073 vkEnc->vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask);
2074}
2075static void entry_vkCmdDispatchBaseKHR(
2076 VkCommandBuffer commandBuffer,
2077 uint32_t baseGroupX,
2078 uint32_t baseGroupY,
2079 uint32_t baseGroupZ,
2080 uint32_t groupCountX,
2081 uint32_t groupCountY,
2082 uint32_t groupCountZ)
2083{
2084 auto vkEnc = HostConnection::get()->vkEncoder();
2085 vkEnc->vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ);
2086}
2087#endif
2088#ifdef VK_KHR_shader_draw_parameters
2089#endif
2090#ifdef VK_KHR_maintenance1
2091static void entry_vkTrimCommandPoolKHR(
2092 VkDevice device,
2093 VkCommandPool commandPool,
2094 VkCommandPoolTrimFlags flags)
2095{
2096 auto vkEnc = HostConnection::get()->vkEncoder();
2097 vkEnc->vkTrimCommandPoolKHR(device, commandPool, flags);
2098}
2099#endif
2100#ifdef VK_KHR_device_group_creation
2101static VkResult entry_vkEnumeratePhysicalDeviceGroupsKHR(
2102 VkInstance instance,
2103 uint32_t* pPhysicalDeviceGroupCount,
2104 VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties)
2105{
2106 auto vkEnc = HostConnection::get()->vkEncoder();
2107 VkResult vkEnumeratePhysicalDeviceGroupsKHR_VkResult_return = (VkResult)0;
2108 vkEnumeratePhysicalDeviceGroupsKHR_VkResult_return = vkEnc->vkEnumeratePhysicalDeviceGroupsKHR(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties);
2109 return vkEnumeratePhysicalDeviceGroupsKHR_VkResult_return;
2110}
2111#endif
2112#ifdef VK_KHR_external_memory_capabilities
2113static void entry_vkGetPhysicalDeviceExternalBufferPropertiesKHR(
2114 VkPhysicalDevice physicalDevice,
2115 const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
2116 VkExternalBufferProperties* pExternalBufferProperties)
2117{
2118 auto vkEnc = HostConnection::get()->vkEncoder();
2119 vkEnc->vkGetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties);
2120}
2121#endif
2122#ifdef VK_KHR_external_memory
2123#endif
2124#ifdef VK_KHR_external_memory_win32
2125static VkResult entry_vkGetMemoryWin32HandleKHR(
2126 VkDevice device,
2127 const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo,
2128 HANDLE* pHandle)
2129{
2130 auto vkEnc = HostConnection::get()->vkEncoder();
2131 VkResult vkGetMemoryWin32HandleKHR_VkResult_return = (VkResult)0;
2132 vkGetMemoryWin32HandleKHR_VkResult_return = vkEnc->vkGetMemoryWin32HandleKHR(device, pGetWin32HandleInfo, pHandle);
2133 return vkGetMemoryWin32HandleKHR_VkResult_return;
2134}
2135static VkResult entry_vkGetMemoryWin32HandlePropertiesKHR(
2136 VkDevice device,
2137 VkExternalMemoryHandleTypeFlagBits handleType,
2138 HANDLE handle,
2139 VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties)
2140{
2141 auto vkEnc = HostConnection::get()->vkEncoder();
2142 VkResult vkGetMemoryWin32HandlePropertiesKHR_VkResult_return = (VkResult)0;
2143 vkGetMemoryWin32HandlePropertiesKHR_VkResult_return = vkEnc->vkGetMemoryWin32HandlePropertiesKHR(device, handleType, handle, pMemoryWin32HandleProperties);
2144 return vkGetMemoryWin32HandlePropertiesKHR_VkResult_return;
2145}
2146#endif
2147#ifdef VK_KHR_external_memory_fd
2148static VkResult entry_vkGetMemoryFdKHR(
2149 VkDevice device,
2150 const VkMemoryGetFdInfoKHR* pGetFdInfo,
2151 int* pFd)
2152{
2153 auto vkEnc = HostConnection::get()->vkEncoder();
2154 VkResult vkGetMemoryFdKHR_VkResult_return = (VkResult)0;
2155 vkGetMemoryFdKHR_VkResult_return = vkEnc->vkGetMemoryFdKHR(device, pGetFdInfo, pFd);
2156 return vkGetMemoryFdKHR_VkResult_return;
2157}
2158static VkResult entry_vkGetMemoryFdPropertiesKHR(
2159 VkDevice device,
2160 VkExternalMemoryHandleTypeFlagBits handleType,
2161 int fd,
2162 VkMemoryFdPropertiesKHR* pMemoryFdProperties)
2163{
2164 auto vkEnc = HostConnection::get()->vkEncoder();
2165 VkResult vkGetMemoryFdPropertiesKHR_VkResult_return = (VkResult)0;
2166 vkGetMemoryFdPropertiesKHR_VkResult_return = vkEnc->vkGetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties);
2167 return vkGetMemoryFdPropertiesKHR_VkResult_return;
2168}
2169#endif
2170#ifdef VK_KHR_win32_keyed_mutex
2171#endif
2172#ifdef VK_KHR_external_semaphore_capabilities
2173static void entry_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
2174 VkPhysicalDevice physicalDevice,
2175 const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
2176 VkExternalSemaphoreProperties* pExternalSemaphoreProperties)
2177{
2178 auto vkEnc = HostConnection::get()->vkEncoder();
2179 vkEnc->vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties);
2180}
2181#endif
2182#ifdef VK_KHR_external_semaphore
2183#endif
2184#ifdef VK_KHR_external_semaphore_win32
2185static VkResult entry_vkImportSemaphoreWin32HandleKHR(
2186 VkDevice device,
2187 const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo)
2188{
2189 auto vkEnc = HostConnection::get()->vkEncoder();
2190 VkResult vkImportSemaphoreWin32HandleKHR_VkResult_return = (VkResult)0;
2191 vkImportSemaphoreWin32HandleKHR_VkResult_return = vkEnc->vkImportSemaphoreWin32HandleKHR(device, pImportSemaphoreWin32HandleInfo);
2192 return vkImportSemaphoreWin32HandleKHR_VkResult_return;
2193}
2194static VkResult entry_vkGetSemaphoreWin32HandleKHR(
2195 VkDevice device,
2196 const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo,
2197 HANDLE* pHandle)
2198{
2199 auto vkEnc = HostConnection::get()->vkEncoder();
2200 VkResult vkGetSemaphoreWin32HandleKHR_VkResult_return = (VkResult)0;
2201 vkGetSemaphoreWin32HandleKHR_VkResult_return = vkEnc->vkGetSemaphoreWin32HandleKHR(device, pGetWin32HandleInfo, pHandle);
2202 return vkGetSemaphoreWin32HandleKHR_VkResult_return;
2203}
2204#endif
2205#ifdef VK_KHR_external_semaphore_fd
2206static VkResult entry_vkImportSemaphoreFdKHR(
2207 VkDevice device,
2208 const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo)
2209{
2210 auto vkEnc = HostConnection::get()->vkEncoder();
2211 VkResult vkImportSemaphoreFdKHR_VkResult_return = (VkResult)0;
2212 vkImportSemaphoreFdKHR_VkResult_return = vkEnc->vkImportSemaphoreFdKHR(device, pImportSemaphoreFdInfo);
2213 return vkImportSemaphoreFdKHR_VkResult_return;
2214}
2215static VkResult entry_vkGetSemaphoreFdKHR(
2216 VkDevice device,
2217 const VkSemaphoreGetFdInfoKHR* pGetFdInfo,
2218 int* pFd)
2219{
2220 auto vkEnc = HostConnection::get()->vkEncoder();
2221 VkResult vkGetSemaphoreFdKHR_VkResult_return = (VkResult)0;
2222 vkGetSemaphoreFdKHR_VkResult_return = vkEnc->vkGetSemaphoreFdKHR(device, pGetFdInfo, pFd);
2223 return vkGetSemaphoreFdKHR_VkResult_return;
2224}
2225#endif
2226#ifdef VK_KHR_push_descriptor
2227static void entry_vkCmdPushDescriptorSetKHR(
2228 VkCommandBuffer commandBuffer,
2229 VkPipelineBindPoint pipelineBindPoint,
2230 VkPipelineLayout layout,
2231 uint32_t set,
2232 uint32_t descriptorWriteCount,
2233 const VkWriteDescriptorSet* pDescriptorWrites)
2234{
2235 auto vkEnc = HostConnection::get()->vkEncoder();
2236 vkEnc->vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites);
2237}
2238static void entry_vkCmdPushDescriptorSetWithTemplateKHR(
2239 VkCommandBuffer commandBuffer,
2240 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
2241 VkPipelineLayout layout,
2242 uint32_t set,
2243 const void* pData)
2244{
2245 auto vkEnc = HostConnection::get()->vkEncoder();
2246 vkEnc->vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData);
2247}
2248#endif
2249#ifdef VK_KHR_16bit_storage
2250#endif
2251#ifdef VK_KHR_incremental_present
2252#endif
2253#ifdef VK_KHR_descriptor_update_template
2254static VkResult entry_vkCreateDescriptorUpdateTemplateKHR(
2255 VkDevice device,
2256 const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
2257 const VkAllocationCallbacks* pAllocator,
2258 VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate)
2259{
2260 auto vkEnc = HostConnection::get()->vkEncoder();
2261 VkResult vkCreateDescriptorUpdateTemplateKHR_VkResult_return = (VkResult)0;
2262 vkCreateDescriptorUpdateTemplateKHR_VkResult_return = vkEnc->vkCreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate);
2263 return vkCreateDescriptorUpdateTemplateKHR_VkResult_return;
2264}
2265static void entry_vkDestroyDescriptorUpdateTemplateKHR(
2266 VkDevice device,
2267 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
2268 const VkAllocationCallbacks* pAllocator)
2269{
2270 auto vkEnc = HostConnection::get()->vkEncoder();
2271 vkEnc->vkDestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator);
2272}
2273static void entry_vkUpdateDescriptorSetWithTemplateKHR(
2274 VkDevice device,
2275 VkDescriptorSet descriptorSet,
2276 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
2277 const void* pData)
2278{
2279 auto vkEnc = HostConnection::get()->vkEncoder();
2280 vkEnc->vkUpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData);
2281}
2282#endif
2283#ifdef VK_KHR_create_renderpass2
2284static VkResult entry_vkCreateRenderPass2KHR(
2285 VkDevice device,
2286 const VkRenderPassCreateInfo2KHR* pCreateInfo,
2287 const VkAllocationCallbacks* pAllocator,
2288 VkRenderPass* pRenderPass)
2289{
2290 auto vkEnc = HostConnection::get()->vkEncoder();
2291 VkResult vkCreateRenderPass2KHR_VkResult_return = (VkResult)0;
2292 vkCreateRenderPass2KHR_VkResult_return = vkEnc->vkCreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass);
2293 return vkCreateRenderPass2KHR_VkResult_return;
2294}
2295static void entry_vkCmdBeginRenderPass2KHR(
2296 VkCommandBuffer commandBuffer,
2297 const VkRenderPassBeginInfo* pRenderPassBegin,
2298 const VkSubpassBeginInfoKHR* pSubpassBeginInfo)
2299{
2300 auto vkEnc = HostConnection::get()->vkEncoder();
2301 vkEnc->vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo);
2302}
2303static void entry_vkCmdNextSubpass2KHR(
2304 VkCommandBuffer commandBuffer,
2305 const VkSubpassBeginInfoKHR* pSubpassBeginInfo,
2306 const VkSubpassEndInfoKHR* pSubpassEndInfo)
2307{
2308 auto vkEnc = HostConnection::get()->vkEncoder();
2309 vkEnc->vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo);
2310}
2311static void entry_vkCmdEndRenderPass2KHR(
2312 VkCommandBuffer commandBuffer,
2313 const VkSubpassEndInfoKHR* pSubpassEndInfo)
2314{
2315 auto vkEnc = HostConnection::get()->vkEncoder();
2316 vkEnc->vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo);
2317}
2318#endif
2319#ifdef VK_KHR_shared_presentable_image
2320static VkResult entry_vkGetSwapchainStatusKHR(
2321 VkDevice device,
2322 VkSwapchainKHR swapchain)
2323{
2324 auto vkEnc = HostConnection::get()->vkEncoder();
2325 VkResult vkGetSwapchainStatusKHR_VkResult_return = (VkResult)0;
2326 vkGetSwapchainStatusKHR_VkResult_return = vkEnc->vkGetSwapchainStatusKHR(device, swapchain);
2327 return vkGetSwapchainStatusKHR_VkResult_return;
2328}
2329#endif
2330#ifdef VK_KHR_external_fence_capabilities
2331static void entry_vkGetPhysicalDeviceExternalFencePropertiesKHR(
2332 VkPhysicalDevice physicalDevice,
2333 const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
2334 VkExternalFenceProperties* pExternalFenceProperties)
2335{
2336 auto vkEnc = HostConnection::get()->vkEncoder();
2337 vkEnc->vkGetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice, pExternalFenceInfo, pExternalFenceProperties);
2338}
2339#endif
2340#ifdef VK_KHR_external_fence
2341#endif
2342#ifdef VK_KHR_external_fence_win32
2343static VkResult entry_vkImportFenceWin32HandleKHR(
2344 VkDevice device,
2345 const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo)
2346{
2347 auto vkEnc = HostConnection::get()->vkEncoder();
2348 VkResult vkImportFenceWin32HandleKHR_VkResult_return = (VkResult)0;
2349 vkImportFenceWin32HandleKHR_VkResult_return = vkEnc->vkImportFenceWin32HandleKHR(device, pImportFenceWin32HandleInfo);
2350 return vkImportFenceWin32HandleKHR_VkResult_return;
2351}
2352static VkResult entry_vkGetFenceWin32HandleKHR(
2353 VkDevice device,
2354 const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo,
2355 HANDLE* pHandle)
2356{
2357 auto vkEnc = HostConnection::get()->vkEncoder();
2358 VkResult vkGetFenceWin32HandleKHR_VkResult_return = (VkResult)0;
2359 vkGetFenceWin32HandleKHR_VkResult_return = vkEnc->vkGetFenceWin32HandleKHR(device, pGetWin32HandleInfo, pHandle);
2360 return vkGetFenceWin32HandleKHR_VkResult_return;
2361}
2362#endif
2363#ifdef VK_KHR_external_fence_fd
2364static VkResult entry_vkImportFenceFdKHR(
2365 VkDevice device,
2366 const VkImportFenceFdInfoKHR* pImportFenceFdInfo)
2367{
2368 auto vkEnc = HostConnection::get()->vkEncoder();
2369 VkResult vkImportFenceFdKHR_VkResult_return = (VkResult)0;
2370 vkImportFenceFdKHR_VkResult_return = vkEnc->vkImportFenceFdKHR(device, pImportFenceFdInfo);
2371 return vkImportFenceFdKHR_VkResult_return;
2372}
2373static VkResult entry_vkGetFenceFdKHR(
2374 VkDevice device,
2375 const VkFenceGetFdInfoKHR* pGetFdInfo,
2376 int* pFd)
2377{
2378 auto vkEnc = HostConnection::get()->vkEncoder();
2379 VkResult vkGetFenceFdKHR_VkResult_return = (VkResult)0;
2380 vkGetFenceFdKHR_VkResult_return = vkEnc->vkGetFenceFdKHR(device, pGetFdInfo, pFd);
2381 return vkGetFenceFdKHR_VkResult_return;
2382}
2383#endif
2384#ifdef VK_KHR_maintenance2
2385#endif
2386#ifdef VK_KHR_get_surface_capabilities2
2387static VkResult entry_vkGetPhysicalDeviceSurfaceCapabilities2KHR(
2388 VkPhysicalDevice physicalDevice,
2389 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
2390 VkSurfaceCapabilities2KHR* pSurfaceCapabilities)
2391{
2392 auto vkEnc = HostConnection::get()->vkEncoder();
2393 VkResult vkGetPhysicalDeviceSurfaceCapabilities2KHR_VkResult_return = (VkResult)0;
2394 vkGetPhysicalDeviceSurfaceCapabilities2KHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, pSurfaceInfo, pSurfaceCapabilities);
2395 return vkGetPhysicalDeviceSurfaceCapabilities2KHR_VkResult_return;
2396}
2397static VkResult entry_vkGetPhysicalDeviceSurfaceFormats2KHR(
2398 VkPhysicalDevice physicalDevice,
2399 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
2400 uint32_t* pSurfaceFormatCount,
2401 VkSurfaceFormat2KHR* pSurfaceFormats)
2402{
2403 auto vkEnc = HostConnection::get()->vkEncoder();
2404 VkResult vkGetPhysicalDeviceSurfaceFormats2KHR_VkResult_return = (VkResult)0;
2405 vkGetPhysicalDeviceSurfaceFormats2KHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceFormats2KHR(physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats);
2406 return vkGetPhysicalDeviceSurfaceFormats2KHR_VkResult_return;
2407}
2408#endif
2409#ifdef VK_KHR_variable_pointers
2410#endif
2411#ifdef VK_KHR_get_display_properties2
2412static VkResult entry_vkGetPhysicalDeviceDisplayProperties2KHR(
2413 VkPhysicalDevice physicalDevice,
2414 uint32_t* pPropertyCount,
2415 VkDisplayProperties2KHR* pProperties)
2416{
2417 auto vkEnc = HostConnection::get()->vkEncoder();
2418 VkResult vkGetPhysicalDeviceDisplayProperties2KHR_VkResult_return = (VkResult)0;
2419 vkGetPhysicalDeviceDisplayProperties2KHR_VkResult_return = vkEnc->vkGetPhysicalDeviceDisplayProperties2KHR(physicalDevice, pPropertyCount, pProperties);
2420 return vkGetPhysicalDeviceDisplayProperties2KHR_VkResult_return;
2421}
2422static VkResult entry_vkGetPhysicalDeviceDisplayPlaneProperties2KHR(
2423 VkPhysicalDevice physicalDevice,
2424 uint32_t* pPropertyCount,
2425 VkDisplayPlaneProperties2KHR* pProperties)
2426{
2427 auto vkEnc = HostConnection::get()->vkEncoder();
2428 VkResult vkGetPhysicalDeviceDisplayPlaneProperties2KHR_VkResult_return = (VkResult)0;
2429 vkGetPhysicalDeviceDisplayPlaneProperties2KHR_VkResult_return = vkEnc->vkGetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice, pPropertyCount, pProperties);
2430 return vkGetPhysicalDeviceDisplayPlaneProperties2KHR_VkResult_return;
2431}
2432static VkResult entry_vkGetDisplayModeProperties2KHR(
2433 VkPhysicalDevice physicalDevice,
2434 VkDisplayKHR display,
2435 uint32_t* pPropertyCount,
2436 VkDisplayModeProperties2KHR* pProperties)
2437{
2438 auto vkEnc = HostConnection::get()->vkEncoder();
2439 VkResult vkGetDisplayModeProperties2KHR_VkResult_return = (VkResult)0;
2440 vkGetDisplayModeProperties2KHR_VkResult_return = vkEnc->vkGetDisplayModeProperties2KHR(physicalDevice, display, pPropertyCount, pProperties);
2441 return vkGetDisplayModeProperties2KHR_VkResult_return;
2442}
2443static VkResult entry_vkGetDisplayPlaneCapabilities2KHR(
2444 VkPhysicalDevice physicalDevice,
2445 const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo,
2446 VkDisplayPlaneCapabilities2KHR* pCapabilities)
2447{
2448 auto vkEnc = HostConnection::get()->vkEncoder();
2449 VkResult vkGetDisplayPlaneCapabilities2KHR_VkResult_return = (VkResult)0;
2450 vkGetDisplayPlaneCapabilities2KHR_VkResult_return = vkEnc->vkGetDisplayPlaneCapabilities2KHR(physicalDevice, pDisplayPlaneInfo, pCapabilities);
2451 return vkGetDisplayPlaneCapabilities2KHR_VkResult_return;
2452}
2453#endif
2454#ifdef VK_KHR_dedicated_allocation
2455#endif
2456#ifdef VK_KHR_storage_buffer_storage_class
2457#endif
2458#ifdef VK_KHR_relaxed_block_layout
2459#endif
2460#ifdef VK_KHR_get_memory_requirements2
2461static void entry_vkGetImageMemoryRequirements2KHR(
2462 VkDevice device,
2463 const VkImageMemoryRequirementsInfo2* pInfo,
2464 VkMemoryRequirements2* pMemoryRequirements)
2465{
2466 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang4af5f322019-02-14 08:10:28 -08002467 auto resources = ResourceTracker::get();
2468 resources->on_vkGetImageMemoryRequirements2KHR(vkEnc, device, pInfo, pMemoryRequirements);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002469}
2470static void entry_vkGetBufferMemoryRequirements2KHR(
2471 VkDevice device,
2472 const VkBufferMemoryRequirementsInfo2* pInfo,
2473 VkMemoryRequirements2* pMemoryRequirements)
2474{
2475 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang4af5f322019-02-14 08:10:28 -08002476 auto resources = ResourceTracker::get();
2477 resources->on_vkGetBufferMemoryRequirements2KHR(vkEnc, device, pInfo, pMemoryRequirements);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002478}
2479static void entry_vkGetImageSparseMemoryRequirements2KHR(
2480 VkDevice device,
2481 const VkImageSparseMemoryRequirementsInfo2* pInfo,
2482 uint32_t* pSparseMemoryRequirementCount,
2483 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements)
2484{
2485 auto vkEnc = HostConnection::get()->vkEncoder();
2486 vkEnc->vkGetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements);
2487}
2488#endif
2489#ifdef VK_KHR_image_format_list
2490#endif
2491#ifdef VK_KHR_sampler_ycbcr_conversion
2492static VkResult entry_vkCreateSamplerYcbcrConversionKHR(
2493 VkDevice device,
2494 const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
2495 const VkAllocationCallbacks* pAllocator,
2496 VkSamplerYcbcrConversion* pYcbcrConversion)
2497{
2498 auto vkEnc = HostConnection::get()->vkEncoder();
2499 VkResult vkCreateSamplerYcbcrConversionKHR_VkResult_return = (VkResult)0;
2500 vkCreateSamplerYcbcrConversionKHR_VkResult_return = vkEnc->vkCreateSamplerYcbcrConversionKHR(device, pCreateInfo, pAllocator, pYcbcrConversion);
2501 return vkCreateSamplerYcbcrConversionKHR_VkResult_return;
2502}
2503static void entry_vkDestroySamplerYcbcrConversionKHR(
2504 VkDevice device,
2505 VkSamplerYcbcrConversion ycbcrConversion,
2506 const VkAllocationCallbacks* pAllocator)
2507{
2508 auto vkEnc = HostConnection::get()->vkEncoder();
2509 vkEnc->vkDestroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator);
2510}
2511#endif
2512#ifdef VK_KHR_bind_memory2
2513static VkResult entry_vkBindBufferMemory2KHR(
2514 VkDevice device,
2515 uint32_t bindInfoCount,
2516 const VkBindBufferMemoryInfo* pBindInfos)
2517{
2518 auto vkEnc = HostConnection::get()->vkEncoder();
2519 VkResult vkBindBufferMemory2KHR_VkResult_return = (VkResult)0;
Lingfeng Yang4af5f322019-02-14 08:10:28 -08002520 auto resources = ResourceTracker::get();
2521 vkBindBufferMemory2KHR_VkResult_return = resources->on_vkBindBufferMemory2KHR(vkEnc, VK_SUCCESS, device, bindInfoCount, pBindInfos);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002522 return vkBindBufferMemory2KHR_VkResult_return;
2523}
2524static VkResult entry_vkBindImageMemory2KHR(
2525 VkDevice device,
2526 uint32_t bindInfoCount,
2527 const VkBindImageMemoryInfo* pBindInfos)
2528{
2529 auto vkEnc = HostConnection::get()->vkEncoder();
2530 VkResult vkBindImageMemory2KHR_VkResult_return = (VkResult)0;
Lingfeng Yang4af5f322019-02-14 08:10:28 -08002531 auto resources = ResourceTracker::get();
2532 vkBindImageMemory2KHR_VkResult_return = resources->on_vkBindImageMemory2KHR(vkEnc, VK_SUCCESS, device, bindInfoCount, pBindInfos);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002533 return vkBindImageMemory2KHR_VkResult_return;
2534}
2535#endif
2536#ifdef VK_KHR_maintenance3
2537static void entry_vkGetDescriptorSetLayoutSupportKHR(
2538 VkDevice device,
2539 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
2540 VkDescriptorSetLayoutSupport* pSupport)
2541{
2542 auto vkEnc = HostConnection::get()->vkEncoder();
2543 vkEnc->vkGetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport);
2544}
2545#endif
2546#ifdef VK_KHR_draw_indirect_count
2547static void entry_vkCmdDrawIndirectCountKHR(
2548 VkCommandBuffer commandBuffer,
2549 VkBuffer buffer,
2550 VkDeviceSize offset,
2551 VkBuffer countBuffer,
2552 VkDeviceSize countBufferOffset,
2553 uint32_t maxDrawCount,
2554 uint32_t stride)
2555{
2556 auto vkEnc = HostConnection::get()->vkEncoder();
2557 vkEnc->vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
2558}
2559static void entry_vkCmdDrawIndexedIndirectCountKHR(
2560 VkCommandBuffer commandBuffer,
2561 VkBuffer buffer,
2562 VkDeviceSize offset,
2563 VkBuffer countBuffer,
2564 VkDeviceSize countBufferOffset,
2565 uint32_t maxDrawCount,
2566 uint32_t stride)
2567{
2568 auto vkEnc = HostConnection::get()->vkEncoder();
2569 vkEnc->vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
2570}
2571#endif
2572#ifdef VK_KHR_8bit_storage
2573#endif
Lingfeng Yang808a6312018-11-13 21:06:15 -08002574#ifdef VK_ANDROID_native_buffer
2575static VkResult entry_vkGetSwapchainGrallocUsageANDROID(
2576 VkDevice device,
2577 VkFormat format,
2578 VkImageUsageFlags imageUsage,
2579 int* grallocUsage)
2580{
2581 auto vkEnc = HostConnection::get()->vkEncoder();
2582 VkResult vkGetSwapchainGrallocUsageANDROID_VkResult_return = (VkResult)0;
2583 vkGetSwapchainGrallocUsageANDROID_VkResult_return = vkEnc->vkGetSwapchainGrallocUsageANDROID(device, format, imageUsage, grallocUsage);
2584 return vkGetSwapchainGrallocUsageANDROID_VkResult_return;
2585}
2586static VkResult entry_vkAcquireImageANDROID(
2587 VkDevice device,
2588 VkImage image,
2589 int nativeFenceFd,
2590 VkSemaphore semaphore,
2591 VkFence fence)
2592{
2593 auto vkEnc = HostConnection::get()->vkEncoder();
2594 VkResult vkAcquireImageANDROID_VkResult_return = (VkResult)0;
2595 vkAcquireImageANDROID_VkResult_return = vkEnc->vkAcquireImageANDROID(device, image, nativeFenceFd, semaphore, fence);
2596 return vkAcquireImageANDROID_VkResult_return;
2597}
2598static VkResult entry_vkQueueSignalReleaseImageANDROID(
2599 VkQueue queue,
2600 uint32_t waitSemaphoreCount,
2601 const VkSemaphore* pWaitSemaphores,
2602 VkImage image,
2603 int* pNativeFenceFd)
2604{
2605 auto vkEnc = HostConnection::get()->vkEncoder();
2606 VkResult vkQueueSignalReleaseImageANDROID_VkResult_return = (VkResult)0;
2607 vkQueueSignalReleaseImageANDROID_VkResult_return = vkEnc->vkQueueSignalReleaseImageANDROID(queue, waitSemaphoreCount, pWaitSemaphores, image, pNativeFenceFd);
2608 return vkQueueSignalReleaseImageANDROID_VkResult_return;
2609}
2610#endif
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002611#ifdef VK_EXT_debug_report
2612static VkResult entry_vkCreateDebugReportCallbackEXT(
2613 VkInstance instance,
2614 const VkDebugReportCallbackCreateInfoEXT* pCreateInfo,
2615 const VkAllocationCallbacks* pAllocator,
2616 VkDebugReportCallbackEXT* pCallback)
2617{
2618 auto vkEnc = HostConnection::get()->vkEncoder();
2619 VkResult vkCreateDebugReportCallbackEXT_VkResult_return = (VkResult)0;
2620 vkCreateDebugReportCallbackEXT_VkResult_return = vkEnc->vkCreateDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback);
2621 return vkCreateDebugReportCallbackEXT_VkResult_return;
2622}
2623static void entry_vkDestroyDebugReportCallbackEXT(
2624 VkInstance instance,
2625 VkDebugReportCallbackEXT callback,
2626 const VkAllocationCallbacks* pAllocator)
2627{
2628 auto vkEnc = HostConnection::get()->vkEncoder();
2629 vkEnc->vkDestroyDebugReportCallbackEXT(instance, callback, pAllocator);
2630}
2631static void entry_vkDebugReportMessageEXT(
2632 VkInstance instance,
2633 VkDebugReportFlagsEXT flags,
2634 VkDebugReportObjectTypeEXT objectType,
2635 uint64_t object,
2636 size_t location,
2637 int32_t messageCode,
2638 const char* pLayerPrefix,
2639 const char* pMessage)
2640{
2641 auto vkEnc = HostConnection::get()->vkEncoder();
2642 vkEnc->vkDebugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage);
2643}
2644#endif
2645#ifdef VK_NV_glsl_shader
2646#endif
2647#ifdef VK_EXT_depth_range_unrestricted
2648#endif
2649#ifdef VK_IMG_filter_cubic
2650#endif
2651#ifdef VK_AMD_rasterization_order
2652#endif
2653#ifdef VK_AMD_shader_trinary_minmax
2654#endif
2655#ifdef VK_AMD_shader_explicit_vertex_parameter
2656#endif
2657#ifdef VK_EXT_debug_marker
2658static VkResult entry_vkDebugMarkerSetObjectTagEXT(
2659 VkDevice device,
2660 const VkDebugMarkerObjectTagInfoEXT* pTagInfo)
2661{
2662 auto vkEnc = HostConnection::get()->vkEncoder();
2663 VkResult vkDebugMarkerSetObjectTagEXT_VkResult_return = (VkResult)0;
2664 vkDebugMarkerSetObjectTagEXT_VkResult_return = vkEnc->vkDebugMarkerSetObjectTagEXT(device, pTagInfo);
2665 return vkDebugMarkerSetObjectTagEXT_VkResult_return;
2666}
2667static VkResult entry_vkDebugMarkerSetObjectNameEXT(
2668 VkDevice device,
2669 const VkDebugMarkerObjectNameInfoEXT* pNameInfo)
2670{
2671 auto vkEnc = HostConnection::get()->vkEncoder();
2672 VkResult vkDebugMarkerSetObjectNameEXT_VkResult_return = (VkResult)0;
2673 vkDebugMarkerSetObjectNameEXT_VkResult_return = vkEnc->vkDebugMarkerSetObjectNameEXT(device, pNameInfo);
2674 return vkDebugMarkerSetObjectNameEXT_VkResult_return;
2675}
2676static void entry_vkCmdDebugMarkerBeginEXT(
2677 VkCommandBuffer commandBuffer,
2678 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo)
2679{
2680 auto vkEnc = HostConnection::get()->vkEncoder();
2681 vkEnc->vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo);
2682}
2683static void entry_vkCmdDebugMarkerEndEXT(
2684 VkCommandBuffer commandBuffer)
2685{
2686 auto vkEnc = HostConnection::get()->vkEncoder();
2687 vkEnc->vkCmdDebugMarkerEndEXT(commandBuffer);
2688}
2689static void entry_vkCmdDebugMarkerInsertEXT(
2690 VkCommandBuffer commandBuffer,
2691 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo)
2692{
2693 auto vkEnc = HostConnection::get()->vkEncoder();
2694 vkEnc->vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo);
2695}
2696#endif
2697#ifdef VK_AMD_gcn_shader
2698#endif
2699#ifdef VK_NV_dedicated_allocation
2700#endif
2701#ifdef VK_AMD_draw_indirect_count
2702static void entry_vkCmdDrawIndirectCountAMD(
2703 VkCommandBuffer commandBuffer,
2704 VkBuffer buffer,
2705 VkDeviceSize offset,
2706 VkBuffer countBuffer,
2707 VkDeviceSize countBufferOffset,
2708 uint32_t maxDrawCount,
2709 uint32_t stride)
2710{
2711 auto vkEnc = HostConnection::get()->vkEncoder();
2712 vkEnc->vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
2713}
2714static void entry_vkCmdDrawIndexedIndirectCountAMD(
2715 VkCommandBuffer commandBuffer,
2716 VkBuffer buffer,
2717 VkDeviceSize offset,
2718 VkBuffer countBuffer,
2719 VkDeviceSize countBufferOffset,
2720 uint32_t maxDrawCount,
2721 uint32_t stride)
2722{
2723 auto vkEnc = HostConnection::get()->vkEncoder();
2724 vkEnc->vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
2725}
2726#endif
2727#ifdef VK_AMD_negative_viewport_height
2728#endif
2729#ifdef VK_AMD_gpu_shader_half_float
2730#endif
2731#ifdef VK_AMD_shader_ballot
2732#endif
2733#ifdef VK_AMD_texture_gather_bias_lod
2734#endif
2735#ifdef VK_AMD_shader_info
2736static VkResult entry_vkGetShaderInfoAMD(
2737 VkDevice device,
2738 VkPipeline pipeline,
2739 VkShaderStageFlagBits shaderStage,
2740 VkShaderInfoTypeAMD infoType,
2741 size_t* pInfoSize,
2742 void* pInfo)
2743{
2744 auto vkEnc = HostConnection::get()->vkEncoder();
2745 VkResult vkGetShaderInfoAMD_VkResult_return = (VkResult)0;
2746 vkGetShaderInfoAMD_VkResult_return = vkEnc->vkGetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo);
2747 return vkGetShaderInfoAMD_VkResult_return;
2748}
2749#endif
2750#ifdef VK_AMD_shader_image_load_store_lod
2751#endif
2752#ifdef VK_IMG_format_pvrtc
2753#endif
2754#ifdef VK_NV_external_memory_capabilities
2755static VkResult entry_vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
2756 VkPhysicalDevice physicalDevice,
2757 VkFormat format,
2758 VkImageType type,
2759 VkImageTiling tiling,
2760 VkImageUsageFlags usage,
2761 VkImageCreateFlags flags,
2762 VkExternalMemoryHandleTypeFlagsNV externalHandleType,
2763 VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties)
2764{
2765 auto vkEnc = HostConnection::get()->vkEncoder();
2766 VkResult vkGetPhysicalDeviceExternalImageFormatPropertiesNV_VkResult_return = (VkResult)0;
2767 vkGetPhysicalDeviceExternalImageFormatPropertiesNV_VkResult_return = vkEnc->vkGetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties);
2768 return vkGetPhysicalDeviceExternalImageFormatPropertiesNV_VkResult_return;
2769}
2770#endif
2771#ifdef VK_NV_external_memory
2772#endif
2773#ifdef VK_NV_external_memory_win32
2774static VkResult entry_vkGetMemoryWin32HandleNV(
2775 VkDevice device,
2776 VkDeviceMemory memory,
2777 VkExternalMemoryHandleTypeFlagsNV handleType,
2778 HANDLE* pHandle)
2779{
2780 auto vkEnc = HostConnection::get()->vkEncoder();
2781 VkResult vkGetMemoryWin32HandleNV_VkResult_return = (VkResult)0;
2782 vkGetMemoryWin32HandleNV_VkResult_return = vkEnc->vkGetMemoryWin32HandleNV(device, memory, handleType, pHandle);
2783 return vkGetMemoryWin32HandleNV_VkResult_return;
2784}
2785#endif
2786#ifdef VK_NV_win32_keyed_mutex
2787#endif
2788#ifdef VK_EXT_validation_flags
2789#endif
2790#ifdef VK_NN_vi_surface
2791static VkResult entry_vkCreateViSurfaceNN(
2792 VkInstance instance,
2793 const VkViSurfaceCreateInfoNN* pCreateInfo,
2794 const VkAllocationCallbacks* pAllocator,
2795 VkSurfaceKHR* pSurface)
2796{
2797 auto vkEnc = HostConnection::get()->vkEncoder();
2798 VkResult vkCreateViSurfaceNN_VkResult_return = (VkResult)0;
2799 vkCreateViSurfaceNN_VkResult_return = vkEnc->vkCreateViSurfaceNN(instance, pCreateInfo, pAllocator, pSurface);
2800 return vkCreateViSurfaceNN_VkResult_return;
2801}
2802#endif
2803#ifdef VK_EXT_shader_subgroup_ballot
2804#endif
2805#ifdef VK_EXT_shader_subgroup_vote
2806#endif
2807#ifdef VK_EXT_conditional_rendering
2808static void entry_vkCmdBeginConditionalRenderingEXT(
2809 VkCommandBuffer commandBuffer,
2810 const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin)
2811{
2812 auto vkEnc = HostConnection::get()->vkEncoder();
2813 vkEnc->vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin);
2814}
2815static void entry_vkCmdEndConditionalRenderingEXT(
2816 VkCommandBuffer commandBuffer)
2817{
2818 auto vkEnc = HostConnection::get()->vkEncoder();
2819 vkEnc->vkCmdEndConditionalRenderingEXT(commandBuffer);
2820}
2821#endif
2822#ifdef VK_NVX_device_generated_commands
2823static void entry_vkCmdProcessCommandsNVX(
2824 VkCommandBuffer commandBuffer,
2825 const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo)
2826{
2827 auto vkEnc = HostConnection::get()->vkEncoder();
2828 vkEnc->vkCmdProcessCommandsNVX(commandBuffer, pProcessCommandsInfo);
2829}
2830static void entry_vkCmdReserveSpaceForCommandsNVX(
2831 VkCommandBuffer commandBuffer,
2832 const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo)
2833{
2834 auto vkEnc = HostConnection::get()->vkEncoder();
2835 vkEnc->vkCmdReserveSpaceForCommandsNVX(commandBuffer, pReserveSpaceInfo);
2836}
2837static VkResult entry_vkCreateIndirectCommandsLayoutNVX(
2838 VkDevice device,
2839 const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo,
2840 const VkAllocationCallbacks* pAllocator,
2841 VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout)
2842{
2843 auto vkEnc = HostConnection::get()->vkEncoder();
2844 VkResult vkCreateIndirectCommandsLayoutNVX_VkResult_return = (VkResult)0;
2845 vkCreateIndirectCommandsLayoutNVX_VkResult_return = vkEnc->vkCreateIndirectCommandsLayoutNVX(device, pCreateInfo, pAllocator, pIndirectCommandsLayout);
2846 return vkCreateIndirectCommandsLayoutNVX_VkResult_return;
2847}
2848static void entry_vkDestroyIndirectCommandsLayoutNVX(
2849 VkDevice device,
2850 VkIndirectCommandsLayoutNVX indirectCommandsLayout,
2851 const VkAllocationCallbacks* pAllocator)
2852{
2853 auto vkEnc = HostConnection::get()->vkEncoder();
2854 vkEnc->vkDestroyIndirectCommandsLayoutNVX(device, indirectCommandsLayout, pAllocator);
2855}
2856static VkResult entry_vkCreateObjectTableNVX(
2857 VkDevice device,
2858 const VkObjectTableCreateInfoNVX* pCreateInfo,
2859 const VkAllocationCallbacks* pAllocator,
2860 VkObjectTableNVX* pObjectTable)
2861{
2862 auto vkEnc = HostConnection::get()->vkEncoder();
2863 VkResult vkCreateObjectTableNVX_VkResult_return = (VkResult)0;
2864 vkCreateObjectTableNVX_VkResult_return = vkEnc->vkCreateObjectTableNVX(device, pCreateInfo, pAllocator, pObjectTable);
2865 return vkCreateObjectTableNVX_VkResult_return;
2866}
2867static void entry_vkDestroyObjectTableNVX(
2868 VkDevice device,
2869 VkObjectTableNVX objectTable,
2870 const VkAllocationCallbacks* pAllocator)
2871{
2872 auto vkEnc = HostConnection::get()->vkEncoder();
2873 vkEnc->vkDestroyObjectTableNVX(device, objectTable, pAllocator);
2874}
2875static VkResult entry_vkRegisterObjectsNVX(
2876 VkDevice device,
2877 VkObjectTableNVX objectTable,
2878 uint32_t objectCount,
2879 const VkObjectTableEntryNVX* const* ppObjectTableEntries,
2880 const uint32_t* pObjectIndices)
2881{
2882 auto vkEnc = HostConnection::get()->vkEncoder();
2883 VkResult vkRegisterObjectsNVX_VkResult_return = (VkResult)0;
2884 vkRegisterObjectsNVX_VkResult_return = vkEnc->vkRegisterObjectsNVX(device, objectTable, objectCount, ppObjectTableEntries, pObjectIndices);
2885 return vkRegisterObjectsNVX_VkResult_return;
2886}
2887static VkResult entry_vkUnregisterObjectsNVX(
2888 VkDevice device,
2889 VkObjectTableNVX objectTable,
2890 uint32_t objectCount,
2891 const VkObjectEntryTypeNVX* pObjectEntryTypes,
2892 const uint32_t* pObjectIndices)
2893{
2894 auto vkEnc = HostConnection::get()->vkEncoder();
2895 VkResult vkUnregisterObjectsNVX_VkResult_return = (VkResult)0;
2896 vkUnregisterObjectsNVX_VkResult_return = vkEnc->vkUnregisterObjectsNVX(device, objectTable, objectCount, pObjectEntryTypes, pObjectIndices);
2897 return vkUnregisterObjectsNVX_VkResult_return;
2898}
2899static void entry_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX(
2900 VkPhysicalDevice physicalDevice,
2901 VkDeviceGeneratedCommandsFeaturesNVX* pFeatures,
2902 VkDeviceGeneratedCommandsLimitsNVX* pLimits)
2903{
2904 auto vkEnc = HostConnection::get()->vkEncoder();
2905 vkEnc->vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX(physicalDevice, pFeatures, pLimits);
2906}
2907#endif
2908#ifdef VK_NV_clip_space_w_scaling
2909static void entry_vkCmdSetViewportWScalingNV(
2910 VkCommandBuffer commandBuffer,
2911 uint32_t firstViewport,
2912 uint32_t viewportCount,
2913 const VkViewportWScalingNV* pViewportWScalings)
2914{
2915 auto vkEnc = HostConnection::get()->vkEncoder();
2916 vkEnc->vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings);
2917}
2918#endif
2919#ifdef VK_EXT_direct_mode_display
2920static VkResult entry_vkReleaseDisplayEXT(
2921 VkPhysicalDevice physicalDevice,
2922 VkDisplayKHR display)
2923{
2924 auto vkEnc = HostConnection::get()->vkEncoder();
2925 VkResult vkReleaseDisplayEXT_VkResult_return = (VkResult)0;
2926 vkReleaseDisplayEXT_VkResult_return = vkEnc->vkReleaseDisplayEXT(physicalDevice, display);
2927 return vkReleaseDisplayEXT_VkResult_return;
2928}
2929#endif
2930#ifdef VK_EXT_acquire_xlib_display
2931static VkResult entry_vkAcquireXlibDisplayEXT(
2932 VkPhysicalDevice physicalDevice,
2933 Display* dpy,
2934 VkDisplayKHR display)
2935{
2936 auto vkEnc = HostConnection::get()->vkEncoder();
2937 VkResult vkAcquireXlibDisplayEXT_VkResult_return = (VkResult)0;
2938 vkAcquireXlibDisplayEXT_VkResult_return = vkEnc->vkAcquireXlibDisplayEXT(physicalDevice, dpy, display);
2939 return vkAcquireXlibDisplayEXT_VkResult_return;
2940}
2941static VkResult entry_vkGetRandROutputDisplayEXT(
2942 VkPhysicalDevice physicalDevice,
2943 Display* dpy,
2944 RROutput rrOutput,
2945 VkDisplayKHR* pDisplay)
2946{
2947 auto vkEnc = HostConnection::get()->vkEncoder();
2948 VkResult vkGetRandROutputDisplayEXT_VkResult_return = (VkResult)0;
2949 vkGetRandROutputDisplayEXT_VkResult_return = vkEnc->vkGetRandROutputDisplayEXT(physicalDevice, dpy, rrOutput, pDisplay);
2950 return vkGetRandROutputDisplayEXT_VkResult_return;
2951}
2952#endif
2953#ifdef VK_EXT_display_surface_counter
2954static VkResult entry_vkGetPhysicalDeviceSurfaceCapabilities2EXT(
2955 VkPhysicalDevice physicalDevice,
2956 VkSurfaceKHR surface,
2957 VkSurfaceCapabilities2EXT* pSurfaceCapabilities)
2958{
2959 auto vkEnc = HostConnection::get()->vkEncoder();
2960 VkResult vkGetPhysicalDeviceSurfaceCapabilities2EXT_VkResult_return = (VkResult)0;
2961 vkGetPhysicalDeviceSurfaceCapabilities2EXT_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities);
2962 return vkGetPhysicalDeviceSurfaceCapabilities2EXT_VkResult_return;
2963}
2964#endif
2965#ifdef VK_EXT_display_control
2966static VkResult entry_vkDisplayPowerControlEXT(
2967 VkDevice device,
2968 VkDisplayKHR display,
2969 const VkDisplayPowerInfoEXT* pDisplayPowerInfo)
2970{
2971 auto vkEnc = HostConnection::get()->vkEncoder();
2972 VkResult vkDisplayPowerControlEXT_VkResult_return = (VkResult)0;
2973 vkDisplayPowerControlEXT_VkResult_return = vkEnc->vkDisplayPowerControlEXT(device, display, pDisplayPowerInfo);
2974 return vkDisplayPowerControlEXT_VkResult_return;
2975}
2976static VkResult entry_vkRegisterDeviceEventEXT(
2977 VkDevice device,
2978 const VkDeviceEventInfoEXT* pDeviceEventInfo,
2979 const VkAllocationCallbacks* pAllocator,
2980 VkFence* pFence)
2981{
2982 auto vkEnc = HostConnection::get()->vkEncoder();
2983 VkResult vkRegisterDeviceEventEXT_VkResult_return = (VkResult)0;
2984 vkRegisterDeviceEventEXT_VkResult_return = vkEnc->vkRegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence);
2985 return vkRegisterDeviceEventEXT_VkResult_return;
2986}
2987static VkResult entry_vkRegisterDisplayEventEXT(
2988 VkDevice device,
2989 VkDisplayKHR display,
2990 const VkDisplayEventInfoEXT* pDisplayEventInfo,
2991 const VkAllocationCallbacks* pAllocator,
2992 VkFence* pFence)
2993{
2994 auto vkEnc = HostConnection::get()->vkEncoder();
2995 VkResult vkRegisterDisplayEventEXT_VkResult_return = (VkResult)0;
2996 vkRegisterDisplayEventEXT_VkResult_return = vkEnc->vkRegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence);
2997 return vkRegisterDisplayEventEXT_VkResult_return;
2998}
2999static VkResult entry_vkGetSwapchainCounterEXT(
3000 VkDevice device,
3001 VkSwapchainKHR swapchain,
3002 VkSurfaceCounterFlagBitsEXT counter,
3003 uint64_t* pCounterValue)
3004{
3005 auto vkEnc = HostConnection::get()->vkEncoder();
3006 VkResult vkGetSwapchainCounterEXT_VkResult_return = (VkResult)0;
3007 vkGetSwapchainCounterEXT_VkResult_return = vkEnc->vkGetSwapchainCounterEXT(device, swapchain, counter, pCounterValue);
3008 return vkGetSwapchainCounterEXT_VkResult_return;
3009}
3010#endif
3011#ifdef VK_GOOGLE_display_timing
3012static VkResult entry_vkGetRefreshCycleDurationGOOGLE(
3013 VkDevice device,
3014 VkSwapchainKHR swapchain,
3015 VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties)
3016{
3017 auto vkEnc = HostConnection::get()->vkEncoder();
3018 VkResult vkGetRefreshCycleDurationGOOGLE_VkResult_return = (VkResult)0;
3019 vkGetRefreshCycleDurationGOOGLE_VkResult_return = vkEnc->vkGetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties);
3020 return vkGetRefreshCycleDurationGOOGLE_VkResult_return;
3021}
3022static VkResult entry_vkGetPastPresentationTimingGOOGLE(
3023 VkDevice device,
3024 VkSwapchainKHR swapchain,
3025 uint32_t* pPresentationTimingCount,
3026 VkPastPresentationTimingGOOGLE* pPresentationTimings)
3027{
3028 auto vkEnc = HostConnection::get()->vkEncoder();
3029 VkResult vkGetPastPresentationTimingGOOGLE_VkResult_return = (VkResult)0;
3030 vkGetPastPresentationTimingGOOGLE_VkResult_return = vkEnc->vkGetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings);
3031 return vkGetPastPresentationTimingGOOGLE_VkResult_return;
3032}
3033#endif
3034#ifdef VK_NV_sample_mask_override_coverage
3035#endif
3036#ifdef VK_NV_geometry_shader_passthrough
3037#endif
3038#ifdef VK_NV_viewport_array2
3039#endif
3040#ifdef VK_NVX_multiview_per_view_attributes
3041#endif
3042#ifdef VK_NV_viewport_swizzle
3043#endif
3044#ifdef VK_EXT_discard_rectangles
3045static void entry_vkCmdSetDiscardRectangleEXT(
3046 VkCommandBuffer commandBuffer,
3047 uint32_t firstDiscardRectangle,
3048 uint32_t discardRectangleCount,
3049 const VkRect2D* pDiscardRectangles)
3050{
3051 auto vkEnc = HostConnection::get()->vkEncoder();
3052 vkEnc->vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles);
3053}
3054#endif
3055#ifdef VK_EXT_conservative_rasterization
3056#endif
3057#ifdef VK_EXT_swapchain_colorspace
3058#endif
3059#ifdef VK_EXT_hdr_metadata
3060static void entry_vkSetHdrMetadataEXT(
3061 VkDevice device,
3062 uint32_t swapchainCount,
3063 const VkSwapchainKHR* pSwapchains,
3064 const VkHdrMetadataEXT* pMetadata)
3065{
3066 auto vkEnc = HostConnection::get()->vkEncoder();
3067 vkEnc->vkSetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata);
3068}
3069#endif
3070#ifdef VK_MVK_ios_surface
3071static VkResult entry_vkCreateIOSSurfaceMVK(
3072 VkInstance instance,
3073 const VkIOSSurfaceCreateInfoMVK* pCreateInfo,
3074 const VkAllocationCallbacks* pAllocator,
3075 VkSurfaceKHR* pSurface)
3076{
3077 auto vkEnc = HostConnection::get()->vkEncoder();
3078 VkResult vkCreateIOSSurfaceMVK_VkResult_return = (VkResult)0;
3079 vkCreateIOSSurfaceMVK_VkResult_return = vkEnc->vkCreateIOSSurfaceMVK(instance, pCreateInfo, pAllocator, pSurface);
3080 return vkCreateIOSSurfaceMVK_VkResult_return;
3081}
3082#endif
3083#ifdef VK_MVK_macos_surface
3084static VkResult entry_vkCreateMacOSSurfaceMVK(
3085 VkInstance instance,
3086 const VkMacOSSurfaceCreateInfoMVK* pCreateInfo,
3087 const VkAllocationCallbacks* pAllocator,
3088 VkSurfaceKHR* pSurface)
3089{
3090 auto vkEnc = HostConnection::get()->vkEncoder();
3091 VkResult vkCreateMacOSSurfaceMVK_VkResult_return = (VkResult)0;
3092 vkCreateMacOSSurfaceMVK_VkResult_return = vkEnc->vkCreateMacOSSurfaceMVK(instance, pCreateInfo, pAllocator, pSurface);
3093 return vkCreateMacOSSurfaceMVK_VkResult_return;
3094}
3095#endif
3096#ifdef VK_EXT_external_memory_dma_buf
3097#endif
3098#ifdef VK_EXT_queue_family_foreign
3099#endif
3100#ifdef VK_EXT_debug_utils
3101static VkResult entry_vkSetDebugUtilsObjectNameEXT(
3102 VkDevice device,
3103 const VkDebugUtilsObjectNameInfoEXT* pNameInfo)
3104{
3105 auto vkEnc = HostConnection::get()->vkEncoder();
3106 VkResult vkSetDebugUtilsObjectNameEXT_VkResult_return = (VkResult)0;
3107 vkSetDebugUtilsObjectNameEXT_VkResult_return = vkEnc->vkSetDebugUtilsObjectNameEXT(device, pNameInfo);
3108 return vkSetDebugUtilsObjectNameEXT_VkResult_return;
3109}
3110static VkResult entry_vkSetDebugUtilsObjectTagEXT(
3111 VkDevice device,
3112 const VkDebugUtilsObjectTagInfoEXT* pTagInfo)
3113{
3114 auto vkEnc = HostConnection::get()->vkEncoder();
3115 VkResult vkSetDebugUtilsObjectTagEXT_VkResult_return = (VkResult)0;
3116 vkSetDebugUtilsObjectTagEXT_VkResult_return = vkEnc->vkSetDebugUtilsObjectTagEXT(device, pTagInfo);
3117 return vkSetDebugUtilsObjectTagEXT_VkResult_return;
3118}
3119static void entry_vkQueueBeginDebugUtilsLabelEXT(
3120 VkQueue queue,
3121 const VkDebugUtilsLabelEXT* pLabelInfo)
3122{
3123 auto vkEnc = HostConnection::get()->vkEncoder();
3124 vkEnc->vkQueueBeginDebugUtilsLabelEXT(queue, pLabelInfo);
3125}
3126static void entry_vkQueueEndDebugUtilsLabelEXT(
3127 VkQueue queue)
3128{
3129 auto vkEnc = HostConnection::get()->vkEncoder();
3130 vkEnc->vkQueueEndDebugUtilsLabelEXT(queue);
3131}
3132static void entry_vkQueueInsertDebugUtilsLabelEXT(
3133 VkQueue queue,
3134 const VkDebugUtilsLabelEXT* pLabelInfo)
3135{
3136 auto vkEnc = HostConnection::get()->vkEncoder();
3137 vkEnc->vkQueueInsertDebugUtilsLabelEXT(queue, pLabelInfo);
3138}
3139static void entry_vkCmdBeginDebugUtilsLabelEXT(
3140 VkCommandBuffer commandBuffer,
3141 const VkDebugUtilsLabelEXT* pLabelInfo)
3142{
3143 auto vkEnc = HostConnection::get()->vkEncoder();
3144 vkEnc->vkCmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo);
3145}
3146static void entry_vkCmdEndDebugUtilsLabelEXT(
3147 VkCommandBuffer commandBuffer)
3148{
3149 auto vkEnc = HostConnection::get()->vkEncoder();
3150 vkEnc->vkCmdEndDebugUtilsLabelEXT(commandBuffer);
3151}
3152static void entry_vkCmdInsertDebugUtilsLabelEXT(
3153 VkCommandBuffer commandBuffer,
3154 const VkDebugUtilsLabelEXT* pLabelInfo)
3155{
3156 auto vkEnc = HostConnection::get()->vkEncoder();
3157 vkEnc->vkCmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo);
3158}
3159static VkResult entry_vkCreateDebugUtilsMessengerEXT(
3160 VkInstance instance,
3161 const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo,
3162 const VkAllocationCallbacks* pAllocator,
3163 VkDebugUtilsMessengerEXT* pMessenger)
3164{
3165 auto vkEnc = HostConnection::get()->vkEncoder();
3166 VkResult vkCreateDebugUtilsMessengerEXT_VkResult_return = (VkResult)0;
3167 vkCreateDebugUtilsMessengerEXT_VkResult_return = vkEnc->vkCreateDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, pMessenger);
3168 return vkCreateDebugUtilsMessengerEXT_VkResult_return;
3169}
3170static void entry_vkDestroyDebugUtilsMessengerEXT(
3171 VkInstance instance,
3172 VkDebugUtilsMessengerEXT messenger,
3173 const VkAllocationCallbacks* pAllocator)
3174{
3175 auto vkEnc = HostConnection::get()->vkEncoder();
3176 vkEnc->vkDestroyDebugUtilsMessengerEXT(instance, messenger, pAllocator);
3177}
3178static void entry_vkSubmitDebugUtilsMessageEXT(
3179 VkInstance instance,
3180 VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
3181 VkDebugUtilsMessageTypeFlagsEXT messageTypes,
3182 const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData)
3183{
3184 auto vkEnc = HostConnection::get()->vkEncoder();
3185 vkEnc->vkSubmitDebugUtilsMessageEXT(instance, messageSeverity, messageTypes, pCallbackData);
3186}
3187#endif
3188#ifdef VK_ANDROID_external_memory_android_hardware_buffer
3189static VkResult entry_vkGetAndroidHardwareBufferPropertiesANDROID(
3190 VkDevice device,
3191 const AHardwareBuffer* buffer,
3192 VkAndroidHardwareBufferPropertiesANDROID* pProperties)
3193{
3194 auto vkEnc = HostConnection::get()->vkEncoder();
3195 VkResult vkGetAndroidHardwareBufferPropertiesANDROID_VkResult_return = (VkResult)0;
3196 vkGetAndroidHardwareBufferPropertiesANDROID_VkResult_return = vkEnc->vkGetAndroidHardwareBufferPropertiesANDROID(device, buffer, pProperties);
3197 return vkGetAndroidHardwareBufferPropertiesANDROID_VkResult_return;
3198}
3199static VkResult entry_vkGetMemoryAndroidHardwareBufferANDROID(
3200 VkDevice device,
3201 const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo,
3202 AHardwareBuffer** pBuffer)
3203{
3204 auto vkEnc = HostConnection::get()->vkEncoder();
3205 VkResult vkGetMemoryAndroidHardwareBufferANDROID_VkResult_return = (VkResult)0;
3206 vkGetMemoryAndroidHardwareBufferANDROID_VkResult_return = vkEnc->vkGetMemoryAndroidHardwareBufferANDROID(device, pInfo, pBuffer);
3207 return vkGetMemoryAndroidHardwareBufferANDROID_VkResult_return;
3208}
3209#endif
3210#ifdef VK_EXT_sampler_filter_minmax
3211#endif
3212#ifdef VK_AMD_gpu_shader_int16
3213#endif
3214#ifdef VK_AMD_mixed_attachment_samples
3215#endif
3216#ifdef VK_AMD_shader_fragment_mask
3217#endif
3218#ifdef VK_EXT_shader_stencil_export
3219#endif
3220#ifdef VK_EXT_sample_locations
3221static void entry_vkCmdSetSampleLocationsEXT(
3222 VkCommandBuffer commandBuffer,
3223 const VkSampleLocationsInfoEXT* pSampleLocationsInfo)
3224{
3225 auto vkEnc = HostConnection::get()->vkEncoder();
3226 vkEnc->vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo);
3227}
3228static void entry_vkGetPhysicalDeviceMultisamplePropertiesEXT(
3229 VkPhysicalDevice physicalDevice,
3230 VkSampleCountFlagBits samples,
3231 VkMultisamplePropertiesEXT* pMultisampleProperties)
3232{
3233 auto vkEnc = HostConnection::get()->vkEncoder();
3234 vkEnc->vkGetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties);
3235}
3236#endif
3237#ifdef VK_EXT_blend_operation_advanced
3238#endif
3239#ifdef VK_NV_fragment_coverage_to_color
3240#endif
3241#ifdef VK_NV_framebuffer_mixed_samples
3242#endif
3243#ifdef VK_NV_fill_rectangle
3244#endif
3245#ifdef VK_EXT_post_depth_coverage
3246#endif
3247#ifdef VK_EXT_validation_cache
3248static VkResult entry_vkCreateValidationCacheEXT(
3249 VkDevice device,
3250 const VkValidationCacheCreateInfoEXT* pCreateInfo,
3251 const VkAllocationCallbacks* pAllocator,
3252 VkValidationCacheEXT* pValidationCache)
3253{
3254 auto vkEnc = HostConnection::get()->vkEncoder();
3255 VkResult vkCreateValidationCacheEXT_VkResult_return = (VkResult)0;
3256 vkCreateValidationCacheEXT_VkResult_return = vkEnc->vkCreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache);
3257 return vkCreateValidationCacheEXT_VkResult_return;
3258}
3259static void entry_vkDestroyValidationCacheEXT(
3260 VkDevice device,
3261 VkValidationCacheEXT validationCache,
3262 const VkAllocationCallbacks* pAllocator)
3263{
3264 auto vkEnc = HostConnection::get()->vkEncoder();
3265 vkEnc->vkDestroyValidationCacheEXT(device, validationCache, pAllocator);
3266}
3267static VkResult entry_vkMergeValidationCachesEXT(
3268 VkDevice device,
3269 VkValidationCacheEXT dstCache,
3270 uint32_t srcCacheCount,
3271 const VkValidationCacheEXT* pSrcCaches)
3272{
3273 auto vkEnc = HostConnection::get()->vkEncoder();
3274 VkResult vkMergeValidationCachesEXT_VkResult_return = (VkResult)0;
3275 vkMergeValidationCachesEXT_VkResult_return = vkEnc->vkMergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches);
3276 return vkMergeValidationCachesEXT_VkResult_return;
3277}
3278static VkResult entry_vkGetValidationCacheDataEXT(
3279 VkDevice device,
3280 VkValidationCacheEXT validationCache,
3281 size_t* pDataSize,
3282 void* pData)
3283{
3284 auto vkEnc = HostConnection::get()->vkEncoder();
3285 VkResult vkGetValidationCacheDataEXT_VkResult_return = (VkResult)0;
3286 vkGetValidationCacheDataEXT_VkResult_return = vkEnc->vkGetValidationCacheDataEXT(device, validationCache, pDataSize, pData);
3287 return vkGetValidationCacheDataEXT_VkResult_return;
3288}
3289#endif
3290#ifdef VK_EXT_descriptor_indexing
3291#endif
3292#ifdef VK_EXT_shader_viewport_index_layer
3293#endif
3294#ifdef VK_EXT_global_priority
3295#endif
3296#ifdef VK_EXT_external_memory_host
3297static VkResult entry_vkGetMemoryHostPointerPropertiesEXT(
3298 VkDevice device,
3299 VkExternalMemoryHandleTypeFlagBits handleType,
3300 const void* pHostPointer,
3301 VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties)
3302{
3303 auto vkEnc = HostConnection::get()->vkEncoder();
3304 VkResult vkGetMemoryHostPointerPropertiesEXT_VkResult_return = (VkResult)0;
3305 vkGetMemoryHostPointerPropertiesEXT_VkResult_return = vkEnc->vkGetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties);
3306 return vkGetMemoryHostPointerPropertiesEXT_VkResult_return;
3307}
3308#endif
3309#ifdef VK_AMD_buffer_marker
3310static void entry_vkCmdWriteBufferMarkerAMD(
3311 VkCommandBuffer commandBuffer,
3312 VkPipelineStageFlagBits pipelineStage,
3313 VkBuffer dstBuffer,
3314 VkDeviceSize dstOffset,
3315 uint32_t marker)
3316{
3317 auto vkEnc = HostConnection::get()->vkEncoder();
3318 vkEnc->vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker);
3319}
3320#endif
3321#ifdef VK_AMD_shader_core_properties
3322#endif
3323#ifdef VK_EXT_vertex_attribute_divisor
3324#endif
3325#ifdef VK_NV_shader_subgroup_partitioned
3326#endif
3327#ifdef VK_NV_device_diagnostic_checkpoints
3328static void entry_vkCmdSetCheckpointNV(
3329 VkCommandBuffer commandBuffer,
3330 const void* pCheckpointMarker)
3331{
3332 auto vkEnc = HostConnection::get()->vkEncoder();
3333 vkEnc->vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker);
3334}
3335static void entry_vkGetQueueCheckpointDataNV(
3336 VkQueue queue,
3337 uint32_t* pCheckpointDataCount,
3338 VkCheckpointDataNV* pCheckpointData)
3339{
3340 auto vkEnc = HostConnection::get()->vkEncoder();
3341 vkEnc->vkGetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData);
3342}
3343#endif
Lingfeng Yang5c63afd2018-12-22 01:21:14 -08003344#ifdef VK_GOOGLE_address_space
3345static VkResult entry_vkMapMemoryIntoAddressSpaceGOOGLE(
3346 VkDevice device,
3347 VkDeviceMemory memory,
3348 uint64_t* pAddress)
3349{
3350 auto vkEnc = HostConnection::get()->vkEncoder();
3351 VkResult vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return = (VkResult)0;
3352 vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return = vkEnc->vkMapMemoryIntoAddressSpaceGOOGLE(device, memory, pAddress);
3353 return vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return;
3354}
3355#endif
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003356void* goldfish_vulkan_get_proc_address(const char* name){
3357#ifdef VK_VERSION_1_0
3358 if (!strcmp(name, "vkCreateInstance"))
3359 {
3360 return (void*)entry_vkCreateInstance;
3361 }
3362 if (!strcmp(name, "vkDestroyInstance"))
3363 {
3364 return (void*)entry_vkDestroyInstance;
3365 }
3366 if (!strcmp(name, "vkEnumeratePhysicalDevices"))
3367 {
3368 return (void*)entry_vkEnumeratePhysicalDevices;
3369 }
3370 if (!strcmp(name, "vkGetPhysicalDeviceFeatures"))
3371 {
3372 return (void*)entry_vkGetPhysicalDeviceFeatures;
3373 }
3374 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties"))
3375 {
3376 return (void*)entry_vkGetPhysicalDeviceFormatProperties;
3377 }
3378 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties"))
3379 {
3380 return (void*)entry_vkGetPhysicalDeviceImageFormatProperties;
3381 }
3382 if (!strcmp(name, "vkGetPhysicalDeviceProperties"))
3383 {
3384 return (void*)entry_vkGetPhysicalDeviceProperties;
3385 }
3386 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties"))
3387 {
3388 return (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties;
3389 }
3390 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties"))
3391 {
3392 return (void*)entry_vkGetPhysicalDeviceMemoryProperties;
3393 }
3394 if (!strcmp(name, "vkGetInstanceProcAddr"))
3395 {
3396 return (void*)entry_vkGetInstanceProcAddr;
3397 }
3398 if (!strcmp(name, "vkGetDeviceProcAddr"))
3399 {
3400 return (void*)entry_vkGetDeviceProcAddr;
3401 }
3402 if (!strcmp(name, "vkCreateDevice"))
3403 {
3404 return (void*)entry_vkCreateDevice;
3405 }
3406 if (!strcmp(name, "vkDestroyDevice"))
3407 {
3408 return (void*)entry_vkDestroyDevice;
3409 }
3410 if (!strcmp(name, "vkEnumerateInstanceExtensionProperties"))
3411 {
3412 return (void*)entry_vkEnumerateInstanceExtensionProperties;
3413 }
3414 if (!strcmp(name, "vkEnumerateDeviceExtensionProperties"))
3415 {
3416 return (void*)entry_vkEnumerateDeviceExtensionProperties;
3417 }
3418 if (!strcmp(name, "vkEnumerateInstanceLayerProperties"))
3419 {
3420 return (void*)entry_vkEnumerateInstanceLayerProperties;
3421 }
3422 if (!strcmp(name, "vkEnumerateDeviceLayerProperties"))
3423 {
3424 return (void*)entry_vkEnumerateDeviceLayerProperties;
3425 }
3426 if (!strcmp(name, "vkGetDeviceQueue"))
3427 {
3428 return (void*)entry_vkGetDeviceQueue;
3429 }
3430 if (!strcmp(name, "vkQueueSubmit"))
3431 {
3432 return (void*)entry_vkQueueSubmit;
3433 }
3434 if (!strcmp(name, "vkQueueWaitIdle"))
3435 {
3436 return (void*)entry_vkQueueWaitIdle;
3437 }
3438 if (!strcmp(name, "vkDeviceWaitIdle"))
3439 {
3440 return (void*)entry_vkDeviceWaitIdle;
3441 }
3442 if (!strcmp(name, "vkAllocateMemory"))
3443 {
3444 return (void*)entry_vkAllocateMemory;
3445 }
3446 if (!strcmp(name, "vkFreeMemory"))
3447 {
3448 return (void*)entry_vkFreeMemory;
3449 }
3450 if (!strcmp(name, "vkMapMemory"))
3451 {
3452 return (void*)entry_vkMapMemory;
3453 }
3454 if (!strcmp(name, "vkUnmapMemory"))
3455 {
3456 return (void*)entry_vkUnmapMemory;
3457 }
3458 if (!strcmp(name, "vkFlushMappedMemoryRanges"))
3459 {
3460 return (void*)entry_vkFlushMappedMemoryRanges;
3461 }
3462 if (!strcmp(name, "vkInvalidateMappedMemoryRanges"))
3463 {
3464 return (void*)entry_vkInvalidateMappedMemoryRanges;
3465 }
3466 if (!strcmp(name, "vkGetDeviceMemoryCommitment"))
3467 {
3468 return (void*)entry_vkGetDeviceMemoryCommitment;
3469 }
3470 if (!strcmp(name, "vkBindBufferMemory"))
3471 {
3472 return (void*)entry_vkBindBufferMemory;
3473 }
3474 if (!strcmp(name, "vkBindImageMemory"))
3475 {
3476 return (void*)entry_vkBindImageMemory;
3477 }
3478 if (!strcmp(name, "vkGetBufferMemoryRequirements"))
3479 {
3480 return (void*)entry_vkGetBufferMemoryRequirements;
3481 }
3482 if (!strcmp(name, "vkGetImageMemoryRequirements"))
3483 {
3484 return (void*)entry_vkGetImageMemoryRequirements;
3485 }
3486 if (!strcmp(name, "vkGetImageSparseMemoryRequirements"))
3487 {
3488 return (void*)entry_vkGetImageSparseMemoryRequirements;
3489 }
3490 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties"))
3491 {
3492 return (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties;
3493 }
3494 if (!strcmp(name, "vkQueueBindSparse"))
3495 {
3496 return (void*)entry_vkQueueBindSparse;
3497 }
3498 if (!strcmp(name, "vkCreateFence"))
3499 {
3500 return (void*)entry_vkCreateFence;
3501 }
3502 if (!strcmp(name, "vkDestroyFence"))
3503 {
3504 return (void*)entry_vkDestroyFence;
3505 }
3506 if (!strcmp(name, "vkResetFences"))
3507 {
3508 return (void*)entry_vkResetFences;
3509 }
3510 if (!strcmp(name, "vkGetFenceStatus"))
3511 {
3512 return (void*)entry_vkGetFenceStatus;
3513 }
3514 if (!strcmp(name, "vkWaitForFences"))
3515 {
3516 return (void*)entry_vkWaitForFences;
3517 }
3518 if (!strcmp(name, "vkCreateSemaphore"))
3519 {
3520 return (void*)entry_vkCreateSemaphore;
3521 }
3522 if (!strcmp(name, "vkDestroySemaphore"))
3523 {
3524 return (void*)entry_vkDestroySemaphore;
3525 }
3526 if (!strcmp(name, "vkCreateEvent"))
3527 {
3528 return (void*)entry_vkCreateEvent;
3529 }
3530 if (!strcmp(name, "vkDestroyEvent"))
3531 {
3532 return (void*)entry_vkDestroyEvent;
3533 }
3534 if (!strcmp(name, "vkGetEventStatus"))
3535 {
3536 return (void*)entry_vkGetEventStatus;
3537 }
3538 if (!strcmp(name, "vkSetEvent"))
3539 {
3540 return (void*)entry_vkSetEvent;
3541 }
3542 if (!strcmp(name, "vkResetEvent"))
3543 {
3544 return (void*)entry_vkResetEvent;
3545 }
3546 if (!strcmp(name, "vkCreateQueryPool"))
3547 {
3548 return (void*)entry_vkCreateQueryPool;
3549 }
3550 if (!strcmp(name, "vkDestroyQueryPool"))
3551 {
3552 return (void*)entry_vkDestroyQueryPool;
3553 }
3554 if (!strcmp(name, "vkGetQueryPoolResults"))
3555 {
3556 return (void*)entry_vkGetQueryPoolResults;
3557 }
3558 if (!strcmp(name, "vkCreateBuffer"))
3559 {
3560 return (void*)entry_vkCreateBuffer;
3561 }
3562 if (!strcmp(name, "vkDestroyBuffer"))
3563 {
3564 return (void*)entry_vkDestroyBuffer;
3565 }
3566 if (!strcmp(name, "vkCreateBufferView"))
3567 {
3568 return (void*)entry_vkCreateBufferView;
3569 }
3570 if (!strcmp(name, "vkDestroyBufferView"))
3571 {
3572 return (void*)entry_vkDestroyBufferView;
3573 }
3574 if (!strcmp(name, "vkCreateImage"))
3575 {
3576 return (void*)entry_vkCreateImage;
3577 }
3578 if (!strcmp(name, "vkDestroyImage"))
3579 {
3580 return (void*)entry_vkDestroyImage;
3581 }
3582 if (!strcmp(name, "vkGetImageSubresourceLayout"))
3583 {
3584 return (void*)entry_vkGetImageSubresourceLayout;
3585 }
3586 if (!strcmp(name, "vkCreateImageView"))
3587 {
3588 return (void*)entry_vkCreateImageView;
3589 }
3590 if (!strcmp(name, "vkDestroyImageView"))
3591 {
3592 return (void*)entry_vkDestroyImageView;
3593 }
3594 if (!strcmp(name, "vkCreateShaderModule"))
3595 {
3596 return (void*)entry_vkCreateShaderModule;
3597 }
3598 if (!strcmp(name, "vkDestroyShaderModule"))
3599 {
3600 return (void*)entry_vkDestroyShaderModule;
3601 }
3602 if (!strcmp(name, "vkCreatePipelineCache"))
3603 {
3604 return (void*)entry_vkCreatePipelineCache;
3605 }
3606 if (!strcmp(name, "vkDestroyPipelineCache"))
3607 {
3608 return (void*)entry_vkDestroyPipelineCache;
3609 }
3610 if (!strcmp(name, "vkGetPipelineCacheData"))
3611 {
3612 return (void*)entry_vkGetPipelineCacheData;
3613 }
3614 if (!strcmp(name, "vkMergePipelineCaches"))
3615 {
3616 return (void*)entry_vkMergePipelineCaches;
3617 }
3618 if (!strcmp(name, "vkCreateGraphicsPipelines"))
3619 {
3620 return (void*)entry_vkCreateGraphicsPipelines;
3621 }
3622 if (!strcmp(name, "vkCreateComputePipelines"))
3623 {
3624 return (void*)entry_vkCreateComputePipelines;
3625 }
3626 if (!strcmp(name, "vkDestroyPipeline"))
3627 {
3628 return (void*)entry_vkDestroyPipeline;
3629 }
3630 if (!strcmp(name, "vkCreatePipelineLayout"))
3631 {
3632 return (void*)entry_vkCreatePipelineLayout;
3633 }
3634 if (!strcmp(name, "vkDestroyPipelineLayout"))
3635 {
3636 return (void*)entry_vkDestroyPipelineLayout;
3637 }
3638 if (!strcmp(name, "vkCreateSampler"))
3639 {
3640 return (void*)entry_vkCreateSampler;
3641 }
3642 if (!strcmp(name, "vkDestroySampler"))
3643 {
3644 return (void*)entry_vkDestroySampler;
3645 }
3646 if (!strcmp(name, "vkCreateDescriptorSetLayout"))
3647 {
3648 return (void*)entry_vkCreateDescriptorSetLayout;
3649 }
3650 if (!strcmp(name, "vkDestroyDescriptorSetLayout"))
3651 {
3652 return (void*)entry_vkDestroyDescriptorSetLayout;
3653 }
3654 if (!strcmp(name, "vkCreateDescriptorPool"))
3655 {
3656 return (void*)entry_vkCreateDescriptorPool;
3657 }
3658 if (!strcmp(name, "vkDestroyDescriptorPool"))
3659 {
3660 return (void*)entry_vkDestroyDescriptorPool;
3661 }
3662 if (!strcmp(name, "vkResetDescriptorPool"))
3663 {
3664 return (void*)entry_vkResetDescriptorPool;
3665 }
3666 if (!strcmp(name, "vkAllocateDescriptorSets"))
3667 {
3668 return (void*)entry_vkAllocateDescriptorSets;
3669 }
3670 if (!strcmp(name, "vkFreeDescriptorSets"))
3671 {
3672 return (void*)entry_vkFreeDescriptorSets;
3673 }
3674 if (!strcmp(name, "vkUpdateDescriptorSets"))
3675 {
3676 return (void*)entry_vkUpdateDescriptorSets;
3677 }
3678 if (!strcmp(name, "vkCreateFramebuffer"))
3679 {
3680 return (void*)entry_vkCreateFramebuffer;
3681 }
3682 if (!strcmp(name, "vkDestroyFramebuffer"))
3683 {
3684 return (void*)entry_vkDestroyFramebuffer;
3685 }
3686 if (!strcmp(name, "vkCreateRenderPass"))
3687 {
3688 return (void*)entry_vkCreateRenderPass;
3689 }
3690 if (!strcmp(name, "vkDestroyRenderPass"))
3691 {
3692 return (void*)entry_vkDestroyRenderPass;
3693 }
3694 if (!strcmp(name, "vkGetRenderAreaGranularity"))
3695 {
3696 return (void*)entry_vkGetRenderAreaGranularity;
3697 }
3698 if (!strcmp(name, "vkCreateCommandPool"))
3699 {
3700 return (void*)entry_vkCreateCommandPool;
3701 }
3702 if (!strcmp(name, "vkDestroyCommandPool"))
3703 {
3704 return (void*)entry_vkDestroyCommandPool;
3705 }
3706 if (!strcmp(name, "vkResetCommandPool"))
3707 {
3708 return (void*)entry_vkResetCommandPool;
3709 }
3710 if (!strcmp(name, "vkAllocateCommandBuffers"))
3711 {
3712 return (void*)entry_vkAllocateCommandBuffers;
3713 }
3714 if (!strcmp(name, "vkFreeCommandBuffers"))
3715 {
3716 return (void*)entry_vkFreeCommandBuffers;
3717 }
3718 if (!strcmp(name, "vkBeginCommandBuffer"))
3719 {
3720 return (void*)entry_vkBeginCommandBuffer;
3721 }
3722 if (!strcmp(name, "vkEndCommandBuffer"))
3723 {
3724 return (void*)entry_vkEndCommandBuffer;
3725 }
3726 if (!strcmp(name, "vkResetCommandBuffer"))
3727 {
3728 return (void*)entry_vkResetCommandBuffer;
3729 }
3730 if (!strcmp(name, "vkCmdBindPipeline"))
3731 {
3732 return (void*)entry_vkCmdBindPipeline;
3733 }
3734 if (!strcmp(name, "vkCmdSetViewport"))
3735 {
3736 return (void*)entry_vkCmdSetViewport;
3737 }
3738 if (!strcmp(name, "vkCmdSetScissor"))
3739 {
3740 return (void*)entry_vkCmdSetScissor;
3741 }
3742 if (!strcmp(name, "vkCmdSetLineWidth"))
3743 {
3744 return (void*)entry_vkCmdSetLineWidth;
3745 }
3746 if (!strcmp(name, "vkCmdSetDepthBias"))
3747 {
3748 return (void*)entry_vkCmdSetDepthBias;
3749 }
3750 if (!strcmp(name, "vkCmdSetBlendConstants"))
3751 {
3752 return (void*)entry_vkCmdSetBlendConstants;
3753 }
3754 if (!strcmp(name, "vkCmdSetDepthBounds"))
3755 {
3756 return (void*)entry_vkCmdSetDepthBounds;
3757 }
3758 if (!strcmp(name, "vkCmdSetStencilCompareMask"))
3759 {
3760 return (void*)entry_vkCmdSetStencilCompareMask;
3761 }
3762 if (!strcmp(name, "vkCmdSetStencilWriteMask"))
3763 {
3764 return (void*)entry_vkCmdSetStencilWriteMask;
3765 }
3766 if (!strcmp(name, "vkCmdSetStencilReference"))
3767 {
3768 return (void*)entry_vkCmdSetStencilReference;
3769 }
3770 if (!strcmp(name, "vkCmdBindDescriptorSets"))
3771 {
3772 return (void*)entry_vkCmdBindDescriptorSets;
3773 }
3774 if (!strcmp(name, "vkCmdBindIndexBuffer"))
3775 {
3776 return (void*)entry_vkCmdBindIndexBuffer;
3777 }
3778 if (!strcmp(name, "vkCmdBindVertexBuffers"))
3779 {
3780 return (void*)entry_vkCmdBindVertexBuffers;
3781 }
3782 if (!strcmp(name, "vkCmdDraw"))
3783 {
3784 return (void*)entry_vkCmdDraw;
3785 }
3786 if (!strcmp(name, "vkCmdDrawIndexed"))
3787 {
3788 return (void*)entry_vkCmdDrawIndexed;
3789 }
3790 if (!strcmp(name, "vkCmdDrawIndirect"))
3791 {
3792 return (void*)entry_vkCmdDrawIndirect;
3793 }
3794 if (!strcmp(name, "vkCmdDrawIndexedIndirect"))
3795 {
3796 return (void*)entry_vkCmdDrawIndexedIndirect;
3797 }
3798 if (!strcmp(name, "vkCmdDispatch"))
3799 {
3800 return (void*)entry_vkCmdDispatch;
3801 }
3802 if (!strcmp(name, "vkCmdDispatchIndirect"))
3803 {
3804 return (void*)entry_vkCmdDispatchIndirect;
3805 }
3806 if (!strcmp(name, "vkCmdCopyBuffer"))
3807 {
3808 return (void*)entry_vkCmdCopyBuffer;
3809 }
3810 if (!strcmp(name, "vkCmdCopyImage"))
3811 {
3812 return (void*)entry_vkCmdCopyImage;
3813 }
3814 if (!strcmp(name, "vkCmdBlitImage"))
3815 {
3816 return (void*)entry_vkCmdBlitImage;
3817 }
3818 if (!strcmp(name, "vkCmdCopyBufferToImage"))
3819 {
3820 return (void*)entry_vkCmdCopyBufferToImage;
3821 }
3822 if (!strcmp(name, "vkCmdCopyImageToBuffer"))
3823 {
3824 return (void*)entry_vkCmdCopyImageToBuffer;
3825 }
3826 if (!strcmp(name, "vkCmdUpdateBuffer"))
3827 {
3828 return (void*)entry_vkCmdUpdateBuffer;
3829 }
3830 if (!strcmp(name, "vkCmdFillBuffer"))
3831 {
3832 return (void*)entry_vkCmdFillBuffer;
3833 }
3834 if (!strcmp(name, "vkCmdClearColorImage"))
3835 {
3836 return (void*)entry_vkCmdClearColorImage;
3837 }
3838 if (!strcmp(name, "vkCmdClearDepthStencilImage"))
3839 {
3840 return (void*)entry_vkCmdClearDepthStencilImage;
3841 }
3842 if (!strcmp(name, "vkCmdClearAttachments"))
3843 {
3844 return (void*)entry_vkCmdClearAttachments;
3845 }
3846 if (!strcmp(name, "vkCmdResolveImage"))
3847 {
3848 return (void*)entry_vkCmdResolveImage;
3849 }
3850 if (!strcmp(name, "vkCmdSetEvent"))
3851 {
3852 return (void*)entry_vkCmdSetEvent;
3853 }
3854 if (!strcmp(name, "vkCmdResetEvent"))
3855 {
3856 return (void*)entry_vkCmdResetEvent;
3857 }
3858 if (!strcmp(name, "vkCmdWaitEvents"))
3859 {
3860 return (void*)entry_vkCmdWaitEvents;
3861 }
3862 if (!strcmp(name, "vkCmdPipelineBarrier"))
3863 {
3864 return (void*)entry_vkCmdPipelineBarrier;
3865 }
3866 if (!strcmp(name, "vkCmdBeginQuery"))
3867 {
3868 return (void*)entry_vkCmdBeginQuery;
3869 }
3870 if (!strcmp(name, "vkCmdEndQuery"))
3871 {
3872 return (void*)entry_vkCmdEndQuery;
3873 }
3874 if (!strcmp(name, "vkCmdResetQueryPool"))
3875 {
3876 return (void*)entry_vkCmdResetQueryPool;
3877 }
3878 if (!strcmp(name, "vkCmdWriteTimestamp"))
3879 {
3880 return (void*)entry_vkCmdWriteTimestamp;
3881 }
3882 if (!strcmp(name, "vkCmdCopyQueryPoolResults"))
3883 {
3884 return (void*)entry_vkCmdCopyQueryPoolResults;
3885 }
3886 if (!strcmp(name, "vkCmdPushConstants"))
3887 {
3888 return (void*)entry_vkCmdPushConstants;
3889 }
3890 if (!strcmp(name, "vkCmdBeginRenderPass"))
3891 {
3892 return (void*)entry_vkCmdBeginRenderPass;
3893 }
3894 if (!strcmp(name, "vkCmdNextSubpass"))
3895 {
3896 return (void*)entry_vkCmdNextSubpass;
3897 }
3898 if (!strcmp(name, "vkCmdEndRenderPass"))
3899 {
3900 return (void*)entry_vkCmdEndRenderPass;
3901 }
3902 if (!strcmp(name, "vkCmdExecuteCommands"))
3903 {
3904 return (void*)entry_vkCmdExecuteCommands;
3905 }
3906#endif
3907#ifdef VK_VERSION_1_1
3908 if (!strcmp(name, "vkEnumerateInstanceVersion"))
3909 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08003910 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003911 }
3912 if (!strcmp(name, "vkBindBufferMemory2"))
3913 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08003914 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003915 }
3916 if (!strcmp(name, "vkBindImageMemory2"))
3917 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08003918 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003919 }
3920 if (!strcmp(name, "vkGetDeviceGroupPeerMemoryFeatures"))
3921 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08003922 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003923 }
3924 if (!strcmp(name, "vkCmdSetDeviceMask"))
3925 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08003926 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003927 }
3928 if (!strcmp(name, "vkCmdDispatchBase"))
3929 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08003930 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003931 }
3932 if (!strcmp(name, "vkEnumeratePhysicalDeviceGroups"))
3933 {
Lingfeng Yang113689e2018-11-11 16:48:50 -08003934 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003935 }
3936 if (!strcmp(name, "vkGetImageMemoryRequirements2"))
3937 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08003938 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003939 }
3940 if (!strcmp(name, "vkGetBufferMemoryRequirements2"))
3941 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08003942 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003943 }
3944 if (!strcmp(name, "vkGetImageSparseMemoryRequirements2"))
3945 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08003946 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003947 }
3948 if (!strcmp(name, "vkGetPhysicalDeviceFeatures2"))
3949 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08003950 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003951 }
3952 if (!strcmp(name, "vkGetPhysicalDeviceProperties2"))
3953 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08003954 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003955 }
3956 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties2"))
3957 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08003958 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003959 }
3960 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties2"))
3961 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08003962 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003963 }
3964 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties2"))
3965 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08003966 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003967 }
3968 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties2"))
3969 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08003970 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003971 }
3972 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties2"))
3973 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08003974 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003975 }
3976 if (!strcmp(name, "vkTrimCommandPool"))
3977 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08003978 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003979 }
3980 if (!strcmp(name, "vkGetDeviceQueue2"))
3981 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08003982 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003983 }
3984 if (!strcmp(name, "vkCreateSamplerYcbcrConversion"))
3985 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08003986 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003987 }
3988 if (!strcmp(name, "vkDestroySamplerYcbcrConversion"))
3989 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08003990 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003991 }
3992 if (!strcmp(name, "vkCreateDescriptorUpdateTemplate"))
3993 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08003994 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003995 }
3996 if (!strcmp(name, "vkDestroyDescriptorUpdateTemplate"))
3997 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08003998 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003999 }
4000 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplate"))
4001 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004002 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004003 }
4004 if (!strcmp(name, "vkGetPhysicalDeviceExternalBufferProperties"))
4005 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004006 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004007 }
4008 if (!strcmp(name, "vkGetPhysicalDeviceExternalFenceProperties"))
4009 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004010 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004011 }
4012 if (!strcmp(name, "vkGetPhysicalDeviceExternalSemaphoreProperties"))
4013 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004014 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004015 }
4016 if (!strcmp(name, "vkGetDescriptorSetLayoutSupport"))
4017 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004018 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004019 }
4020#endif
4021#ifdef VK_KHR_surface
4022 if (!strcmp(name, "vkDestroySurfaceKHR"))
4023 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004024 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004025 }
4026 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceSupportKHR"))
4027 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004028 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004029 }
4030 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR"))
4031 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004032 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004033 }
4034 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceFormatsKHR"))
4035 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004036 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004037 }
4038 if (!strcmp(name, "vkGetPhysicalDeviceSurfacePresentModesKHR"))
4039 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004040 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004041 }
4042#endif
4043#ifdef VK_KHR_swapchain
4044 if (!strcmp(name, "vkCreateSwapchainKHR"))
4045 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004046 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004047 }
4048 if (!strcmp(name, "vkDestroySwapchainKHR"))
4049 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004050 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004051 }
4052 if (!strcmp(name, "vkGetSwapchainImagesKHR"))
4053 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004054 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004055 }
4056 if (!strcmp(name, "vkAcquireNextImageKHR"))
4057 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004058 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004059 }
4060 if (!strcmp(name, "vkQueuePresentKHR"))
4061 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004062 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004063 }
4064 if (!strcmp(name, "vkGetDeviceGroupPresentCapabilitiesKHR"))
4065 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004066 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004067 }
4068 if (!strcmp(name, "vkGetDeviceGroupSurfacePresentModesKHR"))
4069 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004070 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004071 }
4072 if (!strcmp(name, "vkGetPhysicalDevicePresentRectanglesKHR"))
4073 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004074 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004075 }
4076 if (!strcmp(name, "vkAcquireNextImage2KHR"))
4077 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004078 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004079 }
4080#endif
4081#ifdef VK_KHR_display
4082 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPropertiesKHR"))
4083 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004084 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004085 }
4086 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR"))
4087 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004088 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004089 }
4090 if (!strcmp(name, "vkGetDisplayPlaneSupportedDisplaysKHR"))
4091 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004092 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004093 }
4094 if (!strcmp(name, "vkGetDisplayModePropertiesKHR"))
4095 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004096 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004097 }
4098 if (!strcmp(name, "vkCreateDisplayModeKHR"))
4099 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004100 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004101 }
4102 if (!strcmp(name, "vkGetDisplayPlaneCapabilitiesKHR"))
4103 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004104 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004105 }
4106 if (!strcmp(name, "vkCreateDisplayPlaneSurfaceKHR"))
4107 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004108 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004109 }
4110#endif
4111#ifdef VK_KHR_display_swapchain
4112 if (!strcmp(name, "vkCreateSharedSwapchainsKHR"))
4113 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004114 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004115 }
4116#endif
4117#ifdef VK_KHR_xlib_surface
4118 if (!strcmp(name, "vkCreateXlibSurfaceKHR"))
4119 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004120 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004121 }
4122 if (!strcmp(name, "vkGetPhysicalDeviceXlibPresentationSupportKHR"))
4123 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004124 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004125 }
4126#endif
4127#ifdef VK_KHR_xcb_surface
4128 if (!strcmp(name, "vkCreateXcbSurfaceKHR"))
4129 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004130 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004131 }
4132 if (!strcmp(name, "vkGetPhysicalDeviceXcbPresentationSupportKHR"))
4133 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004134 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004135 }
4136#endif
4137#ifdef VK_KHR_wayland_surface
4138 if (!strcmp(name, "vkCreateWaylandSurfaceKHR"))
4139 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004140 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004141 }
4142 if (!strcmp(name, "vkGetPhysicalDeviceWaylandPresentationSupportKHR"))
4143 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004144 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004145 }
4146#endif
4147#ifdef VK_KHR_mir_surface
4148 if (!strcmp(name, "vkCreateMirSurfaceKHR"))
4149 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004150 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004151 }
4152 if (!strcmp(name, "vkGetPhysicalDeviceMirPresentationSupportKHR"))
4153 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004154 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004155 }
4156#endif
4157#ifdef VK_KHR_android_surface
4158 if (!strcmp(name, "vkCreateAndroidSurfaceKHR"))
4159 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004160 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004161 }
4162#endif
4163#ifdef VK_KHR_win32_surface
4164 if (!strcmp(name, "vkCreateWin32SurfaceKHR"))
4165 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004166 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004167 }
4168 if (!strcmp(name, "vkGetPhysicalDeviceWin32PresentationSupportKHR"))
4169 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004170 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004171 }
4172#endif
4173#ifdef VK_KHR_get_physical_device_properties2
4174 if (!strcmp(name, "vkGetPhysicalDeviceFeatures2KHR"))
4175 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004176 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004177 }
4178 if (!strcmp(name, "vkGetPhysicalDeviceProperties2KHR"))
4179 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004180 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004181 }
4182 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties2KHR"))
4183 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004184 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004185 }
4186 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties2KHR"))
4187 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004188 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004189 }
4190 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties2KHR"))
4191 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004192 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004193 }
4194 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties2KHR"))
4195 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004196 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004197 }
4198 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR"))
4199 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004200 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004201 }
4202#endif
4203#ifdef VK_KHR_device_group
4204 if (!strcmp(name, "vkGetDeviceGroupPeerMemoryFeaturesKHR"))
4205 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004206 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004207 }
4208 if (!strcmp(name, "vkCmdSetDeviceMaskKHR"))
4209 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004210 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004211 }
4212 if (!strcmp(name, "vkCmdDispatchBaseKHR"))
4213 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004214 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004215 }
4216#endif
4217#ifdef VK_KHR_maintenance1
4218 if (!strcmp(name, "vkTrimCommandPoolKHR"))
4219 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004220 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004221 }
4222#endif
4223#ifdef VK_KHR_device_group_creation
4224 if (!strcmp(name, "vkEnumeratePhysicalDeviceGroupsKHR"))
4225 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004226 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004227 }
4228#endif
4229#ifdef VK_KHR_external_memory_capabilities
4230 if (!strcmp(name, "vkGetPhysicalDeviceExternalBufferPropertiesKHR"))
4231 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004232 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004233 }
4234#endif
4235#ifdef VK_KHR_external_memory_win32
4236 if (!strcmp(name, "vkGetMemoryWin32HandleKHR"))
4237 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004238 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004239 }
4240 if (!strcmp(name, "vkGetMemoryWin32HandlePropertiesKHR"))
4241 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004242 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004243 }
4244#endif
4245#ifdef VK_KHR_external_memory_fd
4246 if (!strcmp(name, "vkGetMemoryFdKHR"))
4247 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004248 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004249 }
4250 if (!strcmp(name, "vkGetMemoryFdPropertiesKHR"))
4251 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004252 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004253 }
4254#endif
4255#ifdef VK_KHR_external_semaphore_capabilities
4256 if (!strcmp(name, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR"))
4257 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004258 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004259 }
4260#endif
4261#ifdef VK_KHR_external_semaphore_win32
4262 if (!strcmp(name, "vkImportSemaphoreWin32HandleKHR"))
4263 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004264 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004265 }
4266 if (!strcmp(name, "vkGetSemaphoreWin32HandleKHR"))
4267 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004268 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004269 }
4270#endif
4271#ifdef VK_KHR_external_semaphore_fd
4272 if (!strcmp(name, "vkImportSemaphoreFdKHR"))
4273 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004274 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004275 }
4276 if (!strcmp(name, "vkGetSemaphoreFdKHR"))
4277 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004278 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004279 }
4280#endif
4281#ifdef VK_KHR_push_descriptor
4282 if (!strcmp(name, "vkCmdPushDescriptorSetKHR"))
4283 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004284 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004285 }
4286 if (!strcmp(name, "vkCmdPushDescriptorSetWithTemplateKHR"))
4287 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004288 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004289 }
4290#endif
4291#ifdef VK_KHR_descriptor_update_template
4292 if (!strcmp(name, "vkCreateDescriptorUpdateTemplateKHR"))
4293 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004294 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004295 }
4296 if (!strcmp(name, "vkDestroyDescriptorUpdateTemplateKHR"))
4297 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004298 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004299 }
4300 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplateKHR"))
4301 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004302 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004303 }
4304#endif
4305#ifdef VK_KHR_create_renderpass2
4306 if (!strcmp(name, "vkCreateRenderPass2KHR"))
4307 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004308 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004309 }
4310 if (!strcmp(name, "vkCmdBeginRenderPass2KHR"))
4311 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004312 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004313 }
4314 if (!strcmp(name, "vkCmdNextSubpass2KHR"))
4315 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004316 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004317 }
4318 if (!strcmp(name, "vkCmdEndRenderPass2KHR"))
4319 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004320 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004321 }
4322#endif
4323#ifdef VK_KHR_shared_presentable_image
4324 if (!strcmp(name, "vkGetSwapchainStatusKHR"))
4325 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004326 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004327 }
4328#endif
4329#ifdef VK_KHR_external_fence_capabilities
4330 if (!strcmp(name, "vkGetPhysicalDeviceExternalFencePropertiesKHR"))
4331 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004332 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004333 }
4334#endif
4335#ifdef VK_KHR_external_fence_win32
4336 if (!strcmp(name, "vkImportFenceWin32HandleKHR"))
4337 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004338 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004339 }
4340 if (!strcmp(name, "vkGetFenceWin32HandleKHR"))
4341 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004342 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004343 }
4344#endif
4345#ifdef VK_KHR_external_fence_fd
4346 if (!strcmp(name, "vkImportFenceFdKHR"))
4347 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004348 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004349 }
4350 if (!strcmp(name, "vkGetFenceFdKHR"))
4351 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004352 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004353 }
4354#endif
4355#ifdef VK_KHR_get_surface_capabilities2
4356 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2KHR"))
4357 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004358 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004359 }
4360 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceFormats2KHR"))
4361 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004362 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004363 }
4364#endif
4365#ifdef VK_KHR_get_display_properties2
4366 if (!strcmp(name, "vkGetPhysicalDeviceDisplayProperties2KHR"))
4367 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004368 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004369 }
4370 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR"))
4371 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004372 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004373 }
4374 if (!strcmp(name, "vkGetDisplayModeProperties2KHR"))
4375 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004376 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004377 }
4378 if (!strcmp(name, "vkGetDisplayPlaneCapabilities2KHR"))
4379 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004380 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004381 }
4382#endif
4383#ifdef VK_KHR_get_memory_requirements2
4384 if (!strcmp(name, "vkGetImageMemoryRequirements2KHR"))
4385 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004386 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004387 }
4388 if (!strcmp(name, "vkGetBufferMemoryRequirements2KHR"))
4389 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004390 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004391 }
4392 if (!strcmp(name, "vkGetImageSparseMemoryRequirements2KHR"))
4393 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004394 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004395 }
4396#endif
4397#ifdef VK_KHR_sampler_ycbcr_conversion
4398 if (!strcmp(name, "vkCreateSamplerYcbcrConversionKHR"))
4399 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004400 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004401 }
4402 if (!strcmp(name, "vkDestroySamplerYcbcrConversionKHR"))
4403 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004404 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004405 }
4406#endif
4407#ifdef VK_KHR_bind_memory2
4408 if (!strcmp(name, "vkBindBufferMemory2KHR"))
4409 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004410 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004411 }
4412 if (!strcmp(name, "vkBindImageMemory2KHR"))
4413 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004414 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004415 }
4416#endif
4417#ifdef VK_KHR_maintenance3
4418 if (!strcmp(name, "vkGetDescriptorSetLayoutSupportKHR"))
4419 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004420 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004421 }
4422#endif
4423#ifdef VK_KHR_draw_indirect_count
4424 if (!strcmp(name, "vkCmdDrawIndirectCountKHR"))
4425 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004426 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004427 }
4428 if (!strcmp(name, "vkCmdDrawIndexedIndirectCountKHR"))
4429 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004430 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004431 }
4432#endif
Lingfeng Yang808a6312018-11-13 21:06:15 -08004433#ifdef VK_ANDROID_native_buffer
4434 if (!strcmp(name, "vkGetSwapchainGrallocUsageANDROID"))
4435 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004436 return nullptr;
Lingfeng Yang808a6312018-11-13 21:06:15 -08004437 }
4438 if (!strcmp(name, "vkAcquireImageANDROID"))
4439 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004440 return nullptr;
Lingfeng Yang808a6312018-11-13 21:06:15 -08004441 }
4442 if (!strcmp(name, "vkQueueSignalReleaseImageANDROID"))
4443 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004444 return nullptr;
Lingfeng Yang808a6312018-11-13 21:06:15 -08004445 }
4446#endif
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004447#ifdef VK_EXT_debug_report
4448 if (!strcmp(name, "vkCreateDebugReportCallbackEXT"))
4449 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004450 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004451 }
4452 if (!strcmp(name, "vkDestroyDebugReportCallbackEXT"))
4453 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004454 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004455 }
4456 if (!strcmp(name, "vkDebugReportMessageEXT"))
4457 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004458 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004459 }
4460#endif
4461#ifdef VK_EXT_debug_marker
4462 if (!strcmp(name, "vkDebugMarkerSetObjectTagEXT"))
4463 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004464 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004465 }
4466 if (!strcmp(name, "vkDebugMarkerSetObjectNameEXT"))
4467 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004468 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004469 }
4470 if (!strcmp(name, "vkCmdDebugMarkerBeginEXT"))
4471 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004472 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004473 }
4474 if (!strcmp(name, "vkCmdDebugMarkerEndEXT"))
4475 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004476 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004477 }
4478 if (!strcmp(name, "vkCmdDebugMarkerInsertEXT"))
4479 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004480 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004481 }
4482#endif
4483#ifdef VK_AMD_draw_indirect_count
4484 if (!strcmp(name, "vkCmdDrawIndirectCountAMD"))
4485 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004486 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004487 }
4488 if (!strcmp(name, "vkCmdDrawIndexedIndirectCountAMD"))
4489 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004490 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004491 }
4492#endif
4493#ifdef VK_AMD_shader_info
4494 if (!strcmp(name, "vkGetShaderInfoAMD"))
4495 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004496 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004497 }
4498#endif
4499#ifdef VK_NV_external_memory_capabilities
4500 if (!strcmp(name, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV"))
4501 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004502 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004503 }
4504#endif
4505#ifdef VK_NV_external_memory_win32
4506 if (!strcmp(name, "vkGetMemoryWin32HandleNV"))
4507 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004508 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004509 }
4510#endif
4511#ifdef VK_NN_vi_surface
4512 if (!strcmp(name, "vkCreateViSurfaceNN"))
4513 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004514 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004515 }
4516#endif
4517#ifdef VK_EXT_conditional_rendering
4518 if (!strcmp(name, "vkCmdBeginConditionalRenderingEXT"))
4519 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004520 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004521 }
4522 if (!strcmp(name, "vkCmdEndConditionalRenderingEXT"))
4523 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004524 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004525 }
4526#endif
4527#ifdef VK_NVX_device_generated_commands
4528 if (!strcmp(name, "vkCmdProcessCommandsNVX"))
4529 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004530 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004531 }
4532 if (!strcmp(name, "vkCmdReserveSpaceForCommandsNVX"))
4533 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004534 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004535 }
4536 if (!strcmp(name, "vkCreateIndirectCommandsLayoutNVX"))
4537 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004538 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004539 }
4540 if (!strcmp(name, "vkDestroyIndirectCommandsLayoutNVX"))
4541 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004542 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004543 }
4544 if (!strcmp(name, "vkCreateObjectTableNVX"))
4545 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004546 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004547 }
4548 if (!strcmp(name, "vkDestroyObjectTableNVX"))
4549 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004550 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004551 }
4552 if (!strcmp(name, "vkRegisterObjectsNVX"))
4553 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004554 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004555 }
4556 if (!strcmp(name, "vkUnregisterObjectsNVX"))
4557 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004558 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004559 }
4560 if (!strcmp(name, "vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX"))
4561 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004562 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004563 }
4564#endif
4565#ifdef VK_NV_clip_space_w_scaling
4566 if (!strcmp(name, "vkCmdSetViewportWScalingNV"))
4567 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004568 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004569 }
4570#endif
4571#ifdef VK_EXT_direct_mode_display
4572 if (!strcmp(name, "vkReleaseDisplayEXT"))
4573 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004574 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004575 }
4576#endif
4577#ifdef VK_EXT_acquire_xlib_display
4578 if (!strcmp(name, "vkAcquireXlibDisplayEXT"))
4579 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004580 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004581 }
4582 if (!strcmp(name, "vkGetRandROutputDisplayEXT"))
4583 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004584 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004585 }
4586#endif
4587#ifdef VK_EXT_display_surface_counter
4588 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2EXT"))
4589 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004590 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004591 }
4592#endif
4593#ifdef VK_EXT_display_control
4594 if (!strcmp(name, "vkDisplayPowerControlEXT"))
4595 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004596 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004597 }
4598 if (!strcmp(name, "vkRegisterDeviceEventEXT"))
4599 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004600 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004601 }
4602 if (!strcmp(name, "vkRegisterDisplayEventEXT"))
4603 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004604 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004605 }
4606 if (!strcmp(name, "vkGetSwapchainCounterEXT"))
4607 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004608 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004609 }
4610#endif
4611#ifdef VK_GOOGLE_display_timing
4612 if (!strcmp(name, "vkGetRefreshCycleDurationGOOGLE"))
4613 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004614 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004615 }
4616 if (!strcmp(name, "vkGetPastPresentationTimingGOOGLE"))
4617 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004618 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004619 }
4620#endif
4621#ifdef VK_EXT_discard_rectangles
4622 if (!strcmp(name, "vkCmdSetDiscardRectangleEXT"))
4623 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004624 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004625 }
4626#endif
4627#ifdef VK_EXT_hdr_metadata
4628 if (!strcmp(name, "vkSetHdrMetadataEXT"))
4629 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004630 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004631 }
4632#endif
4633#ifdef VK_MVK_ios_surface
4634 if (!strcmp(name, "vkCreateIOSSurfaceMVK"))
4635 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004636 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004637 }
4638#endif
4639#ifdef VK_MVK_macos_surface
4640 if (!strcmp(name, "vkCreateMacOSSurfaceMVK"))
4641 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004642 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004643 }
4644#endif
4645#ifdef VK_EXT_debug_utils
4646 if (!strcmp(name, "vkSetDebugUtilsObjectNameEXT"))
4647 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004648 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004649 }
4650 if (!strcmp(name, "vkSetDebugUtilsObjectTagEXT"))
4651 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004652 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004653 }
4654 if (!strcmp(name, "vkQueueBeginDebugUtilsLabelEXT"))
4655 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004656 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004657 }
4658 if (!strcmp(name, "vkQueueEndDebugUtilsLabelEXT"))
4659 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004660 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004661 }
4662 if (!strcmp(name, "vkQueueInsertDebugUtilsLabelEXT"))
4663 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004664 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004665 }
4666 if (!strcmp(name, "vkCmdBeginDebugUtilsLabelEXT"))
4667 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004668 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004669 }
4670 if (!strcmp(name, "vkCmdEndDebugUtilsLabelEXT"))
4671 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004672 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004673 }
4674 if (!strcmp(name, "vkCmdInsertDebugUtilsLabelEXT"))
4675 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004676 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004677 }
4678 if (!strcmp(name, "vkCreateDebugUtilsMessengerEXT"))
4679 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004680 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004681 }
4682 if (!strcmp(name, "vkDestroyDebugUtilsMessengerEXT"))
4683 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004684 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004685 }
4686 if (!strcmp(name, "vkSubmitDebugUtilsMessageEXT"))
4687 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004688 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004689 }
4690#endif
4691#ifdef VK_ANDROID_external_memory_android_hardware_buffer
4692 if (!strcmp(name, "vkGetAndroidHardwareBufferPropertiesANDROID"))
4693 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004694 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004695 }
4696 if (!strcmp(name, "vkGetMemoryAndroidHardwareBufferANDROID"))
4697 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004698 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004699 }
4700#endif
4701#ifdef VK_EXT_sample_locations
4702 if (!strcmp(name, "vkCmdSetSampleLocationsEXT"))
4703 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004704 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004705 }
4706 if (!strcmp(name, "vkGetPhysicalDeviceMultisamplePropertiesEXT"))
4707 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004708 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004709 }
4710#endif
4711#ifdef VK_EXT_validation_cache
4712 if (!strcmp(name, "vkCreateValidationCacheEXT"))
4713 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004714 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004715 }
4716 if (!strcmp(name, "vkDestroyValidationCacheEXT"))
4717 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004718 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004719 }
4720 if (!strcmp(name, "vkMergeValidationCachesEXT"))
4721 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004722 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004723 }
4724 if (!strcmp(name, "vkGetValidationCacheDataEXT"))
4725 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004726 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004727 }
4728#endif
4729#ifdef VK_EXT_external_memory_host
4730 if (!strcmp(name, "vkGetMemoryHostPointerPropertiesEXT"))
4731 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004732 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004733 }
4734#endif
4735#ifdef VK_AMD_buffer_marker
4736 if (!strcmp(name, "vkCmdWriteBufferMarkerAMD"))
4737 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004738 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004739 }
4740#endif
4741#ifdef VK_NV_device_diagnostic_checkpoints
4742 if (!strcmp(name, "vkCmdSetCheckpointNV"))
4743 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004744 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004745 }
4746 if (!strcmp(name, "vkGetQueueCheckpointDataNV"))
4747 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004748 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004749 }
4750#endif
Lingfeng Yang5c63afd2018-12-22 01:21:14 -08004751#ifdef VK_GOOGLE_address_space
4752 if (!strcmp(name, "vkMapMemoryIntoAddressSpaceGOOGLE"))
4753 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004754 return nullptr;
4755 }
4756#endif
4757 return nullptr;
4758}
4759void* goldfish_vulkan_get_instance_proc_address(VkInstance instance, const char* name){
4760 auto resources = ResourceTracker::get();
4761 bool has1_1OrHigher = resources->getApiVersionFromInstance(instance) >= VK_API_VERSION_1_1;
4762#ifdef VK_VERSION_1_0
4763 if (!strcmp(name, "vkCreateInstance"))
4764 {
4765 return (void*)entry_vkCreateInstance;
4766 }
4767 if (!strcmp(name, "vkDestroyInstance"))
4768 {
4769 return (void*)entry_vkDestroyInstance;
4770 }
4771 if (!strcmp(name, "vkEnumeratePhysicalDevices"))
4772 {
4773 return (void*)entry_vkEnumeratePhysicalDevices;
4774 }
4775 if (!strcmp(name, "vkGetPhysicalDeviceFeatures"))
4776 {
4777 return (void*)entry_vkGetPhysicalDeviceFeatures;
4778 }
4779 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties"))
4780 {
4781 return (void*)entry_vkGetPhysicalDeviceFormatProperties;
4782 }
4783 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties"))
4784 {
4785 return (void*)entry_vkGetPhysicalDeviceImageFormatProperties;
4786 }
4787 if (!strcmp(name, "vkGetPhysicalDeviceProperties"))
4788 {
4789 return (void*)entry_vkGetPhysicalDeviceProperties;
4790 }
4791 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties"))
4792 {
4793 return (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties;
4794 }
4795 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties"))
4796 {
4797 return (void*)entry_vkGetPhysicalDeviceMemoryProperties;
4798 }
4799 if (!strcmp(name, "vkGetInstanceProcAddr"))
4800 {
4801 return (void*)entry_vkGetInstanceProcAddr;
4802 }
4803 if (!strcmp(name, "vkGetDeviceProcAddr"))
4804 {
4805 return (void*)entry_vkGetDeviceProcAddr;
4806 }
4807 if (!strcmp(name, "vkCreateDevice"))
4808 {
4809 return (void*)entry_vkCreateDevice;
4810 }
4811 if (!strcmp(name, "vkDestroyDevice"))
4812 {
4813 return (void*)entry_vkDestroyDevice;
4814 }
4815 if (!strcmp(name, "vkEnumerateInstanceExtensionProperties"))
4816 {
4817 return (void*)entry_vkEnumerateInstanceExtensionProperties;
4818 }
4819 if (!strcmp(name, "vkEnumerateDeviceExtensionProperties"))
4820 {
4821 return (void*)entry_vkEnumerateDeviceExtensionProperties;
4822 }
4823 if (!strcmp(name, "vkEnumerateInstanceLayerProperties"))
4824 {
4825 return (void*)entry_vkEnumerateInstanceLayerProperties;
4826 }
4827 if (!strcmp(name, "vkEnumerateDeviceLayerProperties"))
4828 {
4829 return (void*)entry_vkEnumerateDeviceLayerProperties;
4830 }
4831 if (!strcmp(name, "vkGetDeviceQueue"))
4832 {
4833 return (void*)entry_vkGetDeviceQueue;
4834 }
4835 if (!strcmp(name, "vkQueueSubmit"))
4836 {
4837 return (void*)entry_vkQueueSubmit;
4838 }
4839 if (!strcmp(name, "vkQueueWaitIdle"))
4840 {
4841 return (void*)entry_vkQueueWaitIdle;
4842 }
4843 if (!strcmp(name, "vkDeviceWaitIdle"))
4844 {
4845 return (void*)entry_vkDeviceWaitIdle;
4846 }
4847 if (!strcmp(name, "vkAllocateMemory"))
4848 {
4849 return (void*)entry_vkAllocateMemory;
4850 }
4851 if (!strcmp(name, "vkFreeMemory"))
4852 {
4853 return (void*)entry_vkFreeMemory;
4854 }
4855 if (!strcmp(name, "vkMapMemory"))
4856 {
4857 return (void*)entry_vkMapMemory;
4858 }
4859 if (!strcmp(name, "vkUnmapMemory"))
4860 {
4861 return (void*)entry_vkUnmapMemory;
4862 }
4863 if (!strcmp(name, "vkFlushMappedMemoryRanges"))
4864 {
4865 return (void*)entry_vkFlushMappedMemoryRanges;
4866 }
4867 if (!strcmp(name, "vkInvalidateMappedMemoryRanges"))
4868 {
4869 return (void*)entry_vkInvalidateMappedMemoryRanges;
4870 }
4871 if (!strcmp(name, "vkGetDeviceMemoryCommitment"))
4872 {
4873 return (void*)entry_vkGetDeviceMemoryCommitment;
4874 }
4875 if (!strcmp(name, "vkBindBufferMemory"))
4876 {
4877 return (void*)entry_vkBindBufferMemory;
4878 }
4879 if (!strcmp(name, "vkBindImageMemory"))
4880 {
4881 return (void*)entry_vkBindImageMemory;
4882 }
4883 if (!strcmp(name, "vkGetBufferMemoryRequirements"))
4884 {
4885 return (void*)entry_vkGetBufferMemoryRequirements;
4886 }
4887 if (!strcmp(name, "vkGetImageMemoryRequirements"))
4888 {
4889 return (void*)entry_vkGetImageMemoryRequirements;
4890 }
4891 if (!strcmp(name, "vkGetImageSparseMemoryRequirements"))
4892 {
4893 return (void*)entry_vkGetImageSparseMemoryRequirements;
4894 }
4895 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties"))
4896 {
4897 return (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties;
4898 }
4899 if (!strcmp(name, "vkQueueBindSparse"))
4900 {
4901 return (void*)entry_vkQueueBindSparse;
4902 }
4903 if (!strcmp(name, "vkCreateFence"))
4904 {
4905 return (void*)entry_vkCreateFence;
4906 }
4907 if (!strcmp(name, "vkDestroyFence"))
4908 {
4909 return (void*)entry_vkDestroyFence;
4910 }
4911 if (!strcmp(name, "vkResetFences"))
4912 {
4913 return (void*)entry_vkResetFences;
4914 }
4915 if (!strcmp(name, "vkGetFenceStatus"))
4916 {
4917 return (void*)entry_vkGetFenceStatus;
4918 }
4919 if (!strcmp(name, "vkWaitForFences"))
4920 {
4921 return (void*)entry_vkWaitForFences;
4922 }
4923 if (!strcmp(name, "vkCreateSemaphore"))
4924 {
4925 return (void*)entry_vkCreateSemaphore;
4926 }
4927 if (!strcmp(name, "vkDestroySemaphore"))
4928 {
4929 return (void*)entry_vkDestroySemaphore;
4930 }
4931 if (!strcmp(name, "vkCreateEvent"))
4932 {
4933 return (void*)entry_vkCreateEvent;
4934 }
4935 if (!strcmp(name, "vkDestroyEvent"))
4936 {
4937 return (void*)entry_vkDestroyEvent;
4938 }
4939 if (!strcmp(name, "vkGetEventStatus"))
4940 {
4941 return (void*)entry_vkGetEventStatus;
4942 }
4943 if (!strcmp(name, "vkSetEvent"))
4944 {
4945 return (void*)entry_vkSetEvent;
4946 }
4947 if (!strcmp(name, "vkResetEvent"))
4948 {
4949 return (void*)entry_vkResetEvent;
4950 }
4951 if (!strcmp(name, "vkCreateQueryPool"))
4952 {
4953 return (void*)entry_vkCreateQueryPool;
4954 }
4955 if (!strcmp(name, "vkDestroyQueryPool"))
4956 {
4957 return (void*)entry_vkDestroyQueryPool;
4958 }
4959 if (!strcmp(name, "vkGetQueryPoolResults"))
4960 {
4961 return (void*)entry_vkGetQueryPoolResults;
4962 }
4963 if (!strcmp(name, "vkCreateBuffer"))
4964 {
4965 return (void*)entry_vkCreateBuffer;
4966 }
4967 if (!strcmp(name, "vkDestroyBuffer"))
4968 {
4969 return (void*)entry_vkDestroyBuffer;
4970 }
4971 if (!strcmp(name, "vkCreateBufferView"))
4972 {
4973 return (void*)entry_vkCreateBufferView;
4974 }
4975 if (!strcmp(name, "vkDestroyBufferView"))
4976 {
4977 return (void*)entry_vkDestroyBufferView;
4978 }
4979 if (!strcmp(name, "vkCreateImage"))
4980 {
4981 return (void*)entry_vkCreateImage;
4982 }
4983 if (!strcmp(name, "vkDestroyImage"))
4984 {
4985 return (void*)entry_vkDestroyImage;
4986 }
4987 if (!strcmp(name, "vkGetImageSubresourceLayout"))
4988 {
4989 return (void*)entry_vkGetImageSubresourceLayout;
4990 }
4991 if (!strcmp(name, "vkCreateImageView"))
4992 {
4993 return (void*)entry_vkCreateImageView;
4994 }
4995 if (!strcmp(name, "vkDestroyImageView"))
4996 {
4997 return (void*)entry_vkDestroyImageView;
4998 }
4999 if (!strcmp(name, "vkCreateShaderModule"))
5000 {
5001 return (void*)entry_vkCreateShaderModule;
5002 }
5003 if (!strcmp(name, "vkDestroyShaderModule"))
5004 {
5005 return (void*)entry_vkDestroyShaderModule;
5006 }
5007 if (!strcmp(name, "vkCreatePipelineCache"))
5008 {
5009 return (void*)entry_vkCreatePipelineCache;
5010 }
5011 if (!strcmp(name, "vkDestroyPipelineCache"))
5012 {
5013 return (void*)entry_vkDestroyPipelineCache;
5014 }
5015 if (!strcmp(name, "vkGetPipelineCacheData"))
5016 {
5017 return (void*)entry_vkGetPipelineCacheData;
5018 }
5019 if (!strcmp(name, "vkMergePipelineCaches"))
5020 {
5021 return (void*)entry_vkMergePipelineCaches;
5022 }
5023 if (!strcmp(name, "vkCreateGraphicsPipelines"))
5024 {
5025 return (void*)entry_vkCreateGraphicsPipelines;
5026 }
5027 if (!strcmp(name, "vkCreateComputePipelines"))
5028 {
5029 return (void*)entry_vkCreateComputePipelines;
5030 }
5031 if (!strcmp(name, "vkDestroyPipeline"))
5032 {
5033 return (void*)entry_vkDestroyPipeline;
5034 }
5035 if (!strcmp(name, "vkCreatePipelineLayout"))
5036 {
5037 return (void*)entry_vkCreatePipelineLayout;
5038 }
5039 if (!strcmp(name, "vkDestroyPipelineLayout"))
5040 {
5041 return (void*)entry_vkDestroyPipelineLayout;
5042 }
5043 if (!strcmp(name, "vkCreateSampler"))
5044 {
5045 return (void*)entry_vkCreateSampler;
5046 }
5047 if (!strcmp(name, "vkDestroySampler"))
5048 {
5049 return (void*)entry_vkDestroySampler;
5050 }
5051 if (!strcmp(name, "vkCreateDescriptorSetLayout"))
5052 {
5053 return (void*)entry_vkCreateDescriptorSetLayout;
5054 }
5055 if (!strcmp(name, "vkDestroyDescriptorSetLayout"))
5056 {
5057 return (void*)entry_vkDestroyDescriptorSetLayout;
5058 }
5059 if (!strcmp(name, "vkCreateDescriptorPool"))
5060 {
5061 return (void*)entry_vkCreateDescriptorPool;
5062 }
5063 if (!strcmp(name, "vkDestroyDescriptorPool"))
5064 {
5065 return (void*)entry_vkDestroyDescriptorPool;
5066 }
5067 if (!strcmp(name, "vkResetDescriptorPool"))
5068 {
5069 return (void*)entry_vkResetDescriptorPool;
5070 }
5071 if (!strcmp(name, "vkAllocateDescriptorSets"))
5072 {
5073 return (void*)entry_vkAllocateDescriptorSets;
5074 }
5075 if (!strcmp(name, "vkFreeDescriptorSets"))
5076 {
5077 return (void*)entry_vkFreeDescriptorSets;
5078 }
5079 if (!strcmp(name, "vkUpdateDescriptorSets"))
5080 {
5081 return (void*)entry_vkUpdateDescriptorSets;
5082 }
5083 if (!strcmp(name, "vkCreateFramebuffer"))
5084 {
5085 return (void*)entry_vkCreateFramebuffer;
5086 }
5087 if (!strcmp(name, "vkDestroyFramebuffer"))
5088 {
5089 return (void*)entry_vkDestroyFramebuffer;
5090 }
5091 if (!strcmp(name, "vkCreateRenderPass"))
5092 {
5093 return (void*)entry_vkCreateRenderPass;
5094 }
5095 if (!strcmp(name, "vkDestroyRenderPass"))
5096 {
5097 return (void*)entry_vkDestroyRenderPass;
5098 }
5099 if (!strcmp(name, "vkGetRenderAreaGranularity"))
5100 {
5101 return (void*)entry_vkGetRenderAreaGranularity;
5102 }
5103 if (!strcmp(name, "vkCreateCommandPool"))
5104 {
5105 return (void*)entry_vkCreateCommandPool;
5106 }
5107 if (!strcmp(name, "vkDestroyCommandPool"))
5108 {
5109 return (void*)entry_vkDestroyCommandPool;
5110 }
5111 if (!strcmp(name, "vkResetCommandPool"))
5112 {
5113 return (void*)entry_vkResetCommandPool;
5114 }
5115 if (!strcmp(name, "vkAllocateCommandBuffers"))
5116 {
5117 return (void*)entry_vkAllocateCommandBuffers;
5118 }
5119 if (!strcmp(name, "vkFreeCommandBuffers"))
5120 {
5121 return (void*)entry_vkFreeCommandBuffers;
5122 }
5123 if (!strcmp(name, "vkBeginCommandBuffer"))
5124 {
5125 return (void*)entry_vkBeginCommandBuffer;
5126 }
5127 if (!strcmp(name, "vkEndCommandBuffer"))
5128 {
5129 return (void*)entry_vkEndCommandBuffer;
5130 }
5131 if (!strcmp(name, "vkResetCommandBuffer"))
5132 {
5133 return (void*)entry_vkResetCommandBuffer;
5134 }
5135 if (!strcmp(name, "vkCmdBindPipeline"))
5136 {
5137 return (void*)entry_vkCmdBindPipeline;
5138 }
5139 if (!strcmp(name, "vkCmdSetViewport"))
5140 {
5141 return (void*)entry_vkCmdSetViewport;
5142 }
5143 if (!strcmp(name, "vkCmdSetScissor"))
5144 {
5145 return (void*)entry_vkCmdSetScissor;
5146 }
5147 if (!strcmp(name, "vkCmdSetLineWidth"))
5148 {
5149 return (void*)entry_vkCmdSetLineWidth;
5150 }
5151 if (!strcmp(name, "vkCmdSetDepthBias"))
5152 {
5153 return (void*)entry_vkCmdSetDepthBias;
5154 }
5155 if (!strcmp(name, "vkCmdSetBlendConstants"))
5156 {
5157 return (void*)entry_vkCmdSetBlendConstants;
5158 }
5159 if (!strcmp(name, "vkCmdSetDepthBounds"))
5160 {
5161 return (void*)entry_vkCmdSetDepthBounds;
5162 }
5163 if (!strcmp(name, "vkCmdSetStencilCompareMask"))
5164 {
5165 return (void*)entry_vkCmdSetStencilCompareMask;
5166 }
5167 if (!strcmp(name, "vkCmdSetStencilWriteMask"))
5168 {
5169 return (void*)entry_vkCmdSetStencilWriteMask;
5170 }
5171 if (!strcmp(name, "vkCmdSetStencilReference"))
5172 {
5173 return (void*)entry_vkCmdSetStencilReference;
5174 }
5175 if (!strcmp(name, "vkCmdBindDescriptorSets"))
5176 {
5177 return (void*)entry_vkCmdBindDescriptorSets;
5178 }
5179 if (!strcmp(name, "vkCmdBindIndexBuffer"))
5180 {
5181 return (void*)entry_vkCmdBindIndexBuffer;
5182 }
5183 if (!strcmp(name, "vkCmdBindVertexBuffers"))
5184 {
5185 return (void*)entry_vkCmdBindVertexBuffers;
5186 }
5187 if (!strcmp(name, "vkCmdDraw"))
5188 {
5189 return (void*)entry_vkCmdDraw;
5190 }
5191 if (!strcmp(name, "vkCmdDrawIndexed"))
5192 {
5193 return (void*)entry_vkCmdDrawIndexed;
5194 }
5195 if (!strcmp(name, "vkCmdDrawIndirect"))
5196 {
5197 return (void*)entry_vkCmdDrawIndirect;
5198 }
5199 if (!strcmp(name, "vkCmdDrawIndexedIndirect"))
5200 {
5201 return (void*)entry_vkCmdDrawIndexedIndirect;
5202 }
5203 if (!strcmp(name, "vkCmdDispatch"))
5204 {
5205 return (void*)entry_vkCmdDispatch;
5206 }
5207 if (!strcmp(name, "vkCmdDispatchIndirect"))
5208 {
5209 return (void*)entry_vkCmdDispatchIndirect;
5210 }
5211 if (!strcmp(name, "vkCmdCopyBuffer"))
5212 {
5213 return (void*)entry_vkCmdCopyBuffer;
5214 }
5215 if (!strcmp(name, "vkCmdCopyImage"))
5216 {
5217 return (void*)entry_vkCmdCopyImage;
5218 }
5219 if (!strcmp(name, "vkCmdBlitImage"))
5220 {
5221 return (void*)entry_vkCmdBlitImage;
5222 }
5223 if (!strcmp(name, "vkCmdCopyBufferToImage"))
5224 {
5225 return (void*)entry_vkCmdCopyBufferToImage;
5226 }
5227 if (!strcmp(name, "vkCmdCopyImageToBuffer"))
5228 {
5229 return (void*)entry_vkCmdCopyImageToBuffer;
5230 }
5231 if (!strcmp(name, "vkCmdUpdateBuffer"))
5232 {
5233 return (void*)entry_vkCmdUpdateBuffer;
5234 }
5235 if (!strcmp(name, "vkCmdFillBuffer"))
5236 {
5237 return (void*)entry_vkCmdFillBuffer;
5238 }
5239 if (!strcmp(name, "vkCmdClearColorImage"))
5240 {
5241 return (void*)entry_vkCmdClearColorImage;
5242 }
5243 if (!strcmp(name, "vkCmdClearDepthStencilImage"))
5244 {
5245 return (void*)entry_vkCmdClearDepthStencilImage;
5246 }
5247 if (!strcmp(name, "vkCmdClearAttachments"))
5248 {
5249 return (void*)entry_vkCmdClearAttachments;
5250 }
5251 if (!strcmp(name, "vkCmdResolveImage"))
5252 {
5253 return (void*)entry_vkCmdResolveImage;
5254 }
5255 if (!strcmp(name, "vkCmdSetEvent"))
5256 {
5257 return (void*)entry_vkCmdSetEvent;
5258 }
5259 if (!strcmp(name, "vkCmdResetEvent"))
5260 {
5261 return (void*)entry_vkCmdResetEvent;
5262 }
5263 if (!strcmp(name, "vkCmdWaitEvents"))
5264 {
5265 return (void*)entry_vkCmdWaitEvents;
5266 }
5267 if (!strcmp(name, "vkCmdPipelineBarrier"))
5268 {
5269 return (void*)entry_vkCmdPipelineBarrier;
5270 }
5271 if (!strcmp(name, "vkCmdBeginQuery"))
5272 {
5273 return (void*)entry_vkCmdBeginQuery;
5274 }
5275 if (!strcmp(name, "vkCmdEndQuery"))
5276 {
5277 return (void*)entry_vkCmdEndQuery;
5278 }
5279 if (!strcmp(name, "vkCmdResetQueryPool"))
5280 {
5281 return (void*)entry_vkCmdResetQueryPool;
5282 }
5283 if (!strcmp(name, "vkCmdWriteTimestamp"))
5284 {
5285 return (void*)entry_vkCmdWriteTimestamp;
5286 }
5287 if (!strcmp(name, "vkCmdCopyQueryPoolResults"))
5288 {
5289 return (void*)entry_vkCmdCopyQueryPoolResults;
5290 }
5291 if (!strcmp(name, "vkCmdPushConstants"))
5292 {
5293 return (void*)entry_vkCmdPushConstants;
5294 }
5295 if (!strcmp(name, "vkCmdBeginRenderPass"))
5296 {
5297 return (void*)entry_vkCmdBeginRenderPass;
5298 }
5299 if (!strcmp(name, "vkCmdNextSubpass"))
5300 {
5301 return (void*)entry_vkCmdNextSubpass;
5302 }
5303 if (!strcmp(name, "vkCmdEndRenderPass"))
5304 {
5305 return (void*)entry_vkCmdEndRenderPass;
5306 }
5307 if (!strcmp(name, "vkCmdExecuteCommands"))
5308 {
5309 return (void*)entry_vkCmdExecuteCommands;
5310 }
5311#endif
5312#ifdef VK_VERSION_1_1
5313 if (!strcmp(name, "vkEnumerateInstanceVersion"))
5314 {
5315 return has1_1OrHigher ? (void*)entry_vkEnumerateInstanceVersion : nullptr;
5316 }
5317 if (!strcmp(name, "vkBindBufferMemory2"))
5318 {
5319 return has1_1OrHigher ? (void*)entry_vkBindBufferMemory2 : nullptr;
5320 }
5321 if (!strcmp(name, "vkBindImageMemory2"))
5322 {
5323 return has1_1OrHigher ? (void*)entry_vkBindImageMemory2 : nullptr;
5324 }
5325 if (!strcmp(name, "vkGetDeviceGroupPeerMemoryFeatures"))
5326 {
5327 return has1_1OrHigher ? (void*)entry_vkGetDeviceGroupPeerMemoryFeatures : nullptr;
5328 }
5329 if (!strcmp(name, "vkCmdSetDeviceMask"))
5330 {
5331 return has1_1OrHigher ? (void*)entry_vkCmdSetDeviceMask : nullptr;
5332 }
5333 if (!strcmp(name, "vkCmdDispatchBase"))
5334 {
5335 return has1_1OrHigher ? (void*)entry_vkCmdDispatchBase : nullptr;
5336 }
5337 if (!strcmp(name, "vkEnumeratePhysicalDeviceGroups"))
5338 {
5339 return nullptr;
5340 }
5341 if (!strcmp(name, "vkGetImageMemoryRequirements2"))
5342 {
5343 return has1_1OrHigher ? (void*)entry_vkGetImageMemoryRequirements2 : nullptr;
5344 }
5345 if (!strcmp(name, "vkGetBufferMemoryRequirements2"))
5346 {
5347 return has1_1OrHigher ? (void*)entry_vkGetBufferMemoryRequirements2 : nullptr;
5348 }
5349 if (!strcmp(name, "vkGetImageSparseMemoryRequirements2"))
5350 {
5351 return has1_1OrHigher ? (void*)entry_vkGetImageSparseMemoryRequirements2 : nullptr;
5352 }
5353 if (!strcmp(name, "vkGetPhysicalDeviceFeatures2"))
5354 {
5355 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceFeatures2 : nullptr;
5356 }
5357 if (!strcmp(name, "vkGetPhysicalDeviceProperties2"))
5358 {
5359 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceProperties2 : nullptr;
5360 }
5361 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties2"))
5362 {
5363 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceFormatProperties2 : nullptr;
5364 }
5365 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties2"))
5366 {
5367 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceImageFormatProperties2 : nullptr;
5368 }
5369 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties2"))
5370 {
5371 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties2 : nullptr;
5372 }
5373 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties2"))
5374 {
5375 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceMemoryProperties2 : nullptr;
5376 }
5377 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties2"))
5378 {
5379 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties2 : nullptr;
5380 }
5381 if (!strcmp(name, "vkTrimCommandPool"))
5382 {
5383 return has1_1OrHigher ? (void*)entry_vkTrimCommandPool : nullptr;
5384 }
5385 if (!strcmp(name, "vkGetDeviceQueue2"))
5386 {
5387 return has1_1OrHigher ? (void*)entry_vkGetDeviceQueue2 : nullptr;
5388 }
5389 if (!strcmp(name, "vkCreateSamplerYcbcrConversion"))
5390 {
5391 return has1_1OrHigher ? (void*)entry_vkCreateSamplerYcbcrConversion : nullptr;
5392 }
5393 if (!strcmp(name, "vkDestroySamplerYcbcrConversion"))
5394 {
5395 return has1_1OrHigher ? (void*)entry_vkDestroySamplerYcbcrConversion : nullptr;
5396 }
5397 if (!strcmp(name, "vkCreateDescriptorUpdateTemplate"))
5398 {
5399 return has1_1OrHigher ? (void*)entry_vkCreateDescriptorUpdateTemplate : nullptr;
5400 }
5401 if (!strcmp(name, "vkDestroyDescriptorUpdateTemplate"))
5402 {
5403 return has1_1OrHigher ? (void*)entry_vkDestroyDescriptorUpdateTemplate : nullptr;
5404 }
5405 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplate"))
5406 {
5407 return has1_1OrHigher ? (void*)entry_vkUpdateDescriptorSetWithTemplate : nullptr;
5408 }
5409 if (!strcmp(name, "vkGetPhysicalDeviceExternalBufferProperties"))
5410 {
5411 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceExternalBufferProperties : nullptr;
5412 }
5413 if (!strcmp(name, "vkGetPhysicalDeviceExternalFenceProperties"))
5414 {
5415 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceExternalFenceProperties : nullptr;
5416 }
5417 if (!strcmp(name, "vkGetPhysicalDeviceExternalSemaphoreProperties"))
5418 {
5419 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceExternalSemaphoreProperties : nullptr;
5420 }
5421 if (!strcmp(name, "vkGetDescriptorSetLayoutSupport"))
5422 {
5423 return has1_1OrHigher ? (void*)entry_vkGetDescriptorSetLayoutSupport : nullptr;
5424 }
5425#endif
5426#ifdef VK_KHR_surface
5427 if (!strcmp(name, "vkDestroySurfaceKHR"))
5428 {
5429 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_surface");
5430 return hasExt ? (void*)entry_vkDestroySurfaceKHR : nullptr;
5431 }
5432 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceSupportKHR"))
5433 {
5434 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_surface");
5435 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceSupportKHR : nullptr;
5436 }
5437 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR"))
5438 {
5439 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_surface");
5440 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceCapabilitiesKHR : nullptr;
5441 }
5442 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceFormatsKHR"))
5443 {
5444 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_surface");
5445 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceFormatsKHR : nullptr;
5446 }
5447 if (!strcmp(name, "vkGetPhysicalDeviceSurfacePresentModesKHR"))
5448 {
5449 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_surface");
5450 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfacePresentModesKHR : nullptr;
5451 }
5452#endif
5453#ifdef VK_KHR_swapchain
5454 if (!strcmp(name, "vkCreateSwapchainKHR"))
5455 {
5456 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5457 return hasExt ? (void*)entry_vkCreateSwapchainKHR : nullptr;
5458 }
5459 if (!strcmp(name, "vkDestroySwapchainKHR"))
5460 {
5461 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5462 return hasExt ? (void*)entry_vkDestroySwapchainKHR : nullptr;
5463 }
5464 if (!strcmp(name, "vkGetSwapchainImagesKHR"))
5465 {
5466 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5467 return hasExt ? (void*)entry_vkGetSwapchainImagesKHR : nullptr;
5468 }
5469 if (!strcmp(name, "vkAcquireNextImageKHR"))
5470 {
5471 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5472 return hasExt ? (void*)entry_vkAcquireNextImageKHR : nullptr;
5473 }
5474 if (!strcmp(name, "vkQueuePresentKHR"))
5475 {
5476 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5477 return hasExt ? (void*)entry_vkQueuePresentKHR : nullptr;
5478 }
5479 if (!strcmp(name, "vkGetDeviceGroupPresentCapabilitiesKHR"))
5480 {
5481 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5482 return hasExt ? (void*)entry_vkGetDeviceGroupPresentCapabilitiesKHR : nullptr;
5483 }
5484 if (!strcmp(name, "vkGetDeviceGroupSurfacePresentModesKHR"))
5485 {
5486 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5487 return hasExt ? (void*)entry_vkGetDeviceGroupSurfacePresentModesKHR : nullptr;
5488 }
5489 if (!strcmp(name, "vkGetPhysicalDevicePresentRectanglesKHR"))
5490 {
5491 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5492 return hasExt ? (void*)entry_vkGetPhysicalDevicePresentRectanglesKHR : nullptr;
5493 }
5494 if (!strcmp(name, "vkAcquireNextImage2KHR"))
5495 {
5496 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5497 return hasExt ? (void*)entry_vkAcquireNextImage2KHR : nullptr;
5498 }
5499#endif
5500#ifdef VK_KHR_display
5501 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPropertiesKHR"))
5502 {
5503 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
5504 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayPropertiesKHR : nullptr;
5505 }
5506 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR"))
5507 {
5508 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
5509 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayPlanePropertiesKHR : nullptr;
5510 }
5511 if (!strcmp(name, "vkGetDisplayPlaneSupportedDisplaysKHR"))
5512 {
5513 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
5514 return hasExt ? (void*)entry_vkGetDisplayPlaneSupportedDisplaysKHR : nullptr;
5515 }
5516 if (!strcmp(name, "vkGetDisplayModePropertiesKHR"))
5517 {
5518 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
5519 return hasExt ? (void*)entry_vkGetDisplayModePropertiesKHR : nullptr;
5520 }
5521 if (!strcmp(name, "vkCreateDisplayModeKHR"))
5522 {
5523 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
5524 return hasExt ? (void*)entry_vkCreateDisplayModeKHR : nullptr;
5525 }
5526 if (!strcmp(name, "vkGetDisplayPlaneCapabilitiesKHR"))
5527 {
5528 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
5529 return hasExt ? (void*)entry_vkGetDisplayPlaneCapabilitiesKHR : nullptr;
5530 }
5531 if (!strcmp(name, "vkCreateDisplayPlaneSurfaceKHR"))
5532 {
5533 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
5534 return hasExt ? (void*)entry_vkCreateDisplayPlaneSurfaceKHR : nullptr;
5535 }
5536#endif
5537#ifdef VK_KHR_display_swapchain
5538 if (!strcmp(name, "vkCreateSharedSwapchainsKHR"))
5539 {
5540 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display_swapchain");
5541 return hasExt ? (void*)entry_vkCreateSharedSwapchainsKHR : nullptr;
5542 }
5543#endif
5544#ifdef VK_KHR_xlib_surface
5545 if (!strcmp(name, "vkCreateXlibSurfaceKHR"))
5546 {
5547 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_xlib_surface");
5548 return hasExt ? (void*)entry_vkCreateXlibSurfaceKHR : nullptr;
5549 }
5550 if (!strcmp(name, "vkGetPhysicalDeviceXlibPresentationSupportKHR"))
5551 {
5552 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_xlib_surface");
5553 return hasExt ? (void*)entry_vkGetPhysicalDeviceXlibPresentationSupportKHR : nullptr;
5554 }
5555#endif
5556#ifdef VK_KHR_xcb_surface
5557 if (!strcmp(name, "vkCreateXcbSurfaceKHR"))
5558 {
5559 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_xcb_surface");
5560 return hasExt ? (void*)entry_vkCreateXcbSurfaceKHR : nullptr;
5561 }
5562 if (!strcmp(name, "vkGetPhysicalDeviceXcbPresentationSupportKHR"))
5563 {
5564 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_xcb_surface");
5565 return hasExt ? (void*)entry_vkGetPhysicalDeviceXcbPresentationSupportKHR : nullptr;
5566 }
5567#endif
5568#ifdef VK_KHR_wayland_surface
5569 if (!strcmp(name, "vkCreateWaylandSurfaceKHR"))
5570 {
5571 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_wayland_surface");
5572 return hasExt ? (void*)entry_vkCreateWaylandSurfaceKHR : nullptr;
5573 }
5574 if (!strcmp(name, "vkGetPhysicalDeviceWaylandPresentationSupportKHR"))
5575 {
5576 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_wayland_surface");
5577 return hasExt ? (void*)entry_vkGetPhysicalDeviceWaylandPresentationSupportKHR : nullptr;
5578 }
5579#endif
5580#ifdef VK_KHR_mir_surface
5581 if (!strcmp(name, "vkCreateMirSurfaceKHR"))
5582 {
5583 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_mir_surface");
5584 return hasExt ? (void*)entry_vkCreateMirSurfaceKHR : nullptr;
5585 }
5586 if (!strcmp(name, "vkGetPhysicalDeviceMirPresentationSupportKHR"))
5587 {
5588 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_mir_surface");
5589 return hasExt ? (void*)entry_vkGetPhysicalDeviceMirPresentationSupportKHR : nullptr;
5590 }
5591#endif
5592#ifdef VK_KHR_android_surface
5593 if (!strcmp(name, "vkCreateAndroidSurfaceKHR"))
5594 {
5595 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_android_surface");
5596 return hasExt ? (void*)entry_vkCreateAndroidSurfaceKHR : nullptr;
5597 }
5598#endif
5599#ifdef VK_KHR_win32_surface
5600 if (!strcmp(name, "vkCreateWin32SurfaceKHR"))
5601 {
5602 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_win32_surface");
5603 return hasExt ? (void*)entry_vkCreateWin32SurfaceKHR : nullptr;
5604 }
5605 if (!strcmp(name, "vkGetPhysicalDeviceWin32PresentationSupportKHR"))
5606 {
5607 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_win32_surface");
5608 return hasExt ? (void*)entry_vkGetPhysicalDeviceWin32PresentationSupportKHR : nullptr;
5609 }
5610#endif
5611#ifdef VK_KHR_get_physical_device_properties2
5612 if (!strcmp(name, "vkGetPhysicalDeviceFeatures2KHR"))
5613 {
5614 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
5615 return hasExt ? (void*)entry_vkGetPhysicalDeviceFeatures2KHR : nullptr;
5616 }
5617 if (!strcmp(name, "vkGetPhysicalDeviceProperties2KHR"))
5618 {
5619 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
5620 return hasExt ? (void*)entry_vkGetPhysicalDeviceProperties2KHR : nullptr;
5621 }
5622 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties2KHR"))
5623 {
5624 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
5625 return hasExt ? (void*)entry_vkGetPhysicalDeviceFormatProperties2KHR : nullptr;
5626 }
5627 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties2KHR"))
5628 {
5629 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
5630 return hasExt ? (void*)entry_vkGetPhysicalDeviceImageFormatProperties2KHR : nullptr;
5631 }
5632 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties2KHR"))
5633 {
5634 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
5635 return hasExt ? (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties2KHR : nullptr;
5636 }
5637 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties2KHR"))
5638 {
5639 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
5640 return hasExt ? (void*)entry_vkGetPhysicalDeviceMemoryProperties2KHR : nullptr;
5641 }
5642 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR"))
5643 {
5644 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
5645 return hasExt ? (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties2KHR : nullptr;
5646 }
5647#endif
5648#ifdef VK_KHR_device_group
5649 if (!strcmp(name, "vkGetDeviceGroupPeerMemoryFeaturesKHR"))
5650 {
5651 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_device_group");
5652 return hasExt ? (void*)entry_vkGetDeviceGroupPeerMemoryFeaturesKHR : nullptr;
5653 }
5654 if (!strcmp(name, "vkCmdSetDeviceMaskKHR"))
5655 {
5656 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_device_group");
5657 return hasExt ? (void*)entry_vkCmdSetDeviceMaskKHR : nullptr;
5658 }
5659 if (!strcmp(name, "vkCmdDispatchBaseKHR"))
5660 {
5661 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_device_group");
5662 return hasExt ? (void*)entry_vkCmdDispatchBaseKHR : nullptr;
5663 }
5664#endif
5665#ifdef VK_KHR_maintenance1
5666 if (!strcmp(name, "vkTrimCommandPoolKHR"))
5667 {
5668 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_maintenance1");
5669 return hasExt ? (void*)entry_vkTrimCommandPoolKHR : nullptr;
5670 }
5671#endif
5672#ifdef VK_KHR_device_group_creation
5673 if (!strcmp(name, "vkEnumeratePhysicalDeviceGroupsKHR"))
5674 {
5675 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_device_group_creation");
5676 return hasExt ? (void*)entry_vkEnumeratePhysicalDeviceGroupsKHR : nullptr;
5677 }
5678#endif
5679#ifdef VK_KHR_external_memory_capabilities
5680 if (!strcmp(name, "vkGetPhysicalDeviceExternalBufferPropertiesKHR"))
5681 {
5682 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_memory_capabilities");
5683 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalBufferPropertiesKHR : nullptr;
5684 }
5685#endif
5686#ifdef VK_KHR_external_memory_win32
5687 if (!strcmp(name, "vkGetMemoryWin32HandleKHR"))
5688 {
5689 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_memory_win32");
5690 return hasExt ? (void*)entry_vkGetMemoryWin32HandleKHR : nullptr;
5691 }
5692 if (!strcmp(name, "vkGetMemoryWin32HandlePropertiesKHR"))
5693 {
5694 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_memory_win32");
5695 return hasExt ? (void*)entry_vkGetMemoryWin32HandlePropertiesKHR : nullptr;
5696 }
5697#endif
5698#ifdef VK_KHR_external_memory_fd
5699 if (!strcmp(name, "vkGetMemoryFdKHR"))
5700 {
5701 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_memory_fd");
5702 return hasExt ? (void*)entry_vkGetMemoryFdKHR : nullptr;
5703 }
5704 if (!strcmp(name, "vkGetMemoryFdPropertiesKHR"))
5705 {
5706 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_memory_fd");
5707 return hasExt ? (void*)entry_vkGetMemoryFdPropertiesKHR : nullptr;
5708 }
5709#endif
5710#ifdef VK_KHR_external_semaphore_capabilities
5711 if (!strcmp(name, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR"))
5712 {
5713 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_semaphore_capabilities");
5714 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR : nullptr;
5715 }
5716#endif
5717#ifdef VK_KHR_external_semaphore_win32
5718 if (!strcmp(name, "vkImportSemaphoreWin32HandleKHR"))
5719 {
5720 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_semaphore_win32");
5721 return hasExt ? (void*)entry_vkImportSemaphoreWin32HandleKHR : nullptr;
5722 }
5723 if (!strcmp(name, "vkGetSemaphoreWin32HandleKHR"))
5724 {
5725 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_semaphore_win32");
5726 return hasExt ? (void*)entry_vkGetSemaphoreWin32HandleKHR : nullptr;
5727 }
5728#endif
5729#ifdef VK_KHR_external_semaphore_fd
5730 if (!strcmp(name, "vkImportSemaphoreFdKHR"))
5731 {
5732 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_semaphore_fd");
5733 return hasExt ? (void*)entry_vkImportSemaphoreFdKHR : nullptr;
5734 }
5735 if (!strcmp(name, "vkGetSemaphoreFdKHR"))
5736 {
5737 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_semaphore_fd");
5738 return hasExt ? (void*)entry_vkGetSemaphoreFdKHR : nullptr;
5739 }
5740#endif
5741#ifdef VK_KHR_push_descriptor
5742 if (!strcmp(name, "vkCmdPushDescriptorSetKHR"))
5743 {
5744 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_push_descriptor");
5745 return hasExt ? (void*)entry_vkCmdPushDescriptorSetKHR : nullptr;
5746 }
5747 if (!strcmp(name, "vkCmdPushDescriptorSetWithTemplateKHR"))
5748 {
5749 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_push_descriptor");
5750 return hasExt ? (void*)entry_vkCmdPushDescriptorSetWithTemplateKHR : nullptr;
5751 }
5752#endif
5753#ifdef VK_KHR_descriptor_update_template
5754 if (!strcmp(name, "vkCreateDescriptorUpdateTemplateKHR"))
5755 {
5756 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_descriptor_update_template");
5757 return hasExt ? (void*)entry_vkCreateDescriptorUpdateTemplateKHR : nullptr;
5758 }
5759 if (!strcmp(name, "vkDestroyDescriptorUpdateTemplateKHR"))
5760 {
5761 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_descriptor_update_template");
5762 return hasExt ? (void*)entry_vkDestroyDescriptorUpdateTemplateKHR : nullptr;
5763 }
5764 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplateKHR"))
5765 {
5766 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_descriptor_update_template");
5767 return hasExt ? (void*)entry_vkUpdateDescriptorSetWithTemplateKHR : nullptr;
5768 }
5769#endif
5770#ifdef VK_KHR_create_renderpass2
5771 if (!strcmp(name, "vkCreateRenderPass2KHR"))
5772 {
5773 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_create_renderpass2");
5774 return hasExt ? (void*)entry_vkCreateRenderPass2KHR : nullptr;
5775 }
5776 if (!strcmp(name, "vkCmdBeginRenderPass2KHR"))
5777 {
5778 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_create_renderpass2");
5779 return hasExt ? (void*)entry_vkCmdBeginRenderPass2KHR : nullptr;
5780 }
5781 if (!strcmp(name, "vkCmdNextSubpass2KHR"))
5782 {
5783 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_create_renderpass2");
5784 return hasExt ? (void*)entry_vkCmdNextSubpass2KHR : nullptr;
5785 }
5786 if (!strcmp(name, "vkCmdEndRenderPass2KHR"))
5787 {
5788 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_create_renderpass2");
5789 return hasExt ? (void*)entry_vkCmdEndRenderPass2KHR : nullptr;
5790 }
5791#endif
5792#ifdef VK_KHR_shared_presentable_image
5793 if (!strcmp(name, "vkGetSwapchainStatusKHR"))
5794 {
5795 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_shared_presentable_image");
5796 return hasExt ? (void*)entry_vkGetSwapchainStatusKHR : nullptr;
5797 }
5798#endif
5799#ifdef VK_KHR_external_fence_capabilities
5800 if (!strcmp(name, "vkGetPhysicalDeviceExternalFencePropertiesKHR"))
5801 {
5802 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_fence_capabilities");
5803 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalFencePropertiesKHR : nullptr;
5804 }
5805#endif
5806#ifdef VK_KHR_external_fence_win32
5807 if (!strcmp(name, "vkImportFenceWin32HandleKHR"))
5808 {
5809 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_fence_win32");
5810 return hasExt ? (void*)entry_vkImportFenceWin32HandleKHR : nullptr;
5811 }
5812 if (!strcmp(name, "vkGetFenceWin32HandleKHR"))
5813 {
5814 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_fence_win32");
5815 return hasExt ? (void*)entry_vkGetFenceWin32HandleKHR : nullptr;
5816 }
5817#endif
5818#ifdef VK_KHR_external_fence_fd
5819 if (!strcmp(name, "vkImportFenceFdKHR"))
5820 {
5821 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_fence_fd");
5822 return hasExt ? (void*)entry_vkImportFenceFdKHR : nullptr;
5823 }
5824 if (!strcmp(name, "vkGetFenceFdKHR"))
5825 {
5826 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_fence_fd");
5827 return hasExt ? (void*)entry_vkGetFenceFdKHR : nullptr;
5828 }
5829#endif
5830#ifdef VK_KHR_get_surface_capabilities2
5831 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2KHR"))
5832 {
5833 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_surface_capabilities2");
5834 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceCapabilities2KHR : nullptr;
5835 }
5836 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceFormats2KHR"))
5837 {
5838 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_surface_capabilities2");
5839 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceFormats2KHR : nullptr;
5840 }
5841#endif
5842#ifdef VK_KHR_get_display_properties2
5843 if (!strcmp(name, "vkGetPhysicalDeviceDisplayProperties2KHR"))
5844 {
5845 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_display_properties2");
5846 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayProperties2KHR : nullptr;
5847 }
5848 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR"))
5849 {
5850 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_display_properties2");
5851 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayPlaneProperties2KHR : nullptr;
5852 }
5853 if (!strcmp(name, "vkGetDisplayModeProperties2KHR"))
5854 {
5855 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_display_properties2");
5856 return hasExt ? (void*)entry_vkGetDisplayModeProperties2KHR : nullptr;
5857 }
5858 if (!strcmp(name, "vkGetDisplayPlaneCapabilities2KHR"))
5859 {
5860 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_display_properties2");
5861 return hasExt ? (void*)entry_vkGetDisplayPlaneCapabilities2KHR : nullptr;
5862 }
5863#endif
5864#ifdef VK_KHR_get_memory_requirements2
5865 if (!strcmp(name, "vkGetImageMemoryRequirements2KHR"))
5866 {
5867 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_memory_requirements2");
5868 return hasExt ? (void*)entry_vkGetImageMemoryRequirements2KHR : nullptr;
5869 }
5870 if (!strcmp(name, "vkGetBufferMemoryRequirements2KHR"))
5871 {
5872 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_memory_requirements2");
5873 return hasExt ? (void*)entry_vkGetBufferMemoryRequirements2KHR : nullptr;
5874 }
5875 if (!strcmp(name, "vkGetImageSparseMemoryRequirements2KHR"))
5876 {
5877 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_memory_requirements2");
5878 return hasExt ? (void*)entry_vkGetImageSparseMemoryRequirements2KHR : nullptr;
5879 }
5880#endif
5881#ifdef VK_KHR_sampler_ycbcr_conversion
5882 if (!strcmp(name, "vkCreateSamplerYcbcrConversionKHR"))
5883 {
5884 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_sampler_ycbcr_conversion");
5885 return hasExt ? (void*)entry_vkCreateSamplerYcbcrConversionKHR : nullptr;
5886 }
5887 if (!strcmp(name, "vkDestroySamplerYcbcrConversionKHR"))
5888 {
5889 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_sampler_ycbcr_conversion");
5890 return hasExt ? (void*)entry_vkDestroySamplerYcbcrConversionKHR : nullptr;
5891 }
5892#endif
5893#ifdef VK_KHR_bind_memory2
5894 if (!strcmp(name, "vkBindBufferMemory2KHR"))
5895 {
5896 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_bind_memory2");
5897 return hasExt ? (void*)entry_vkBindBufferMemory2KHR : nullptr;
5898 }
5899 if (!strcmp(name, "vkBindImageMemory2KHR"))
5900 {
5901 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_bind_memory2");
5902 return hasExt ? (void*)entry_vkBindImageMemory2KHR : nullptr;
5903 }
5904#endif
5905#ifdef VK_KHR_maintenance3
5906 if (!strcmp(name, "vkGetDescriptorSetLayoutSupportKHR"))
5907 {
5908 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_maintenance3");
5909 return hasExt ? (void*)entry_vkGetDescriptorSetLayoutSupportKHR : nullptr;
5910 }
5911#endif
5912#ifdef VK_KHR_draw_indirect_count
5913 if (!strcmp(name, "vkCmdDrawIndirectCountKHR"))
5914 {
5915 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_draw_indirect_count");
5916 return hasExt ? (void*)entry_vkCmdDrawIndirectCountKHR : nullptr;
5917 }
5918 if (!strcmp(name, "vkCmdDrawIndexedIndirectCountKHR"))
5919 {
5920 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_draw_indirect_count");
5921 return hasExt ? (void*)entry_vkCmdDrawIndexedIndirectCountKHR : nullptr;
5922 }
5923#endif
5924#ifdef VK_ANDROID_native_buffer
5925 if (!strcmp(name, "vkGetSwapchainGrallocUsageANDROID"))
5926 {
5927 bool hasExt = resources->hasInstanceExtension(instance, "VK_ANDROID_native_buffer");
5928 return hasExt ? (void*)entry_vkGetSwapchainGrallocUsageANDROID : nullptr;
5929 }
5930 if (!strcmp(name, "vkAcquireImageANDROID"))
5931 {
5932 bool hasExt = resources->hasInstanceExtension(instance, "VK_ANDROID_native_buffer");
5933 return hasExt ? (void*)entry_vkAcquireImageANDROID : nullptr;
5934 }
5935 if (!strcmp(name, "vkQueueSignalReleaseImageANDROID"))
5936 {
5937 bool hasExt = resources->hasInstanceExtension(instance, "VK_ANDROID_native_buffer");
5938 return hasExt ? (void*)entry_vkQueueSignalReleaseImageANDROID : nullptr;
5939 }
5940#endif
5941#ifdef VK_EXT_debug_report
5942 if (!strcmp(name, "vkCreateDebugReportCallbackEXT"))
5943 {
5944 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_report");
5945 return hasExt ? (void*)entry_vkCreateDebugReportCallbackEXT : nullptr;
5946 }
5947 if (!strcmp(name, "vkDestroyDebugReportCallbackEXT"))
5948 {
5949 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_report");
5950 return hasExt ? (void*)entry_vkDestroyDebugReportCallbackEXT : nullptr;
5951 }
5952 if (!strcmp(name, "vkDebugReportMessageEXT"))
5953 {
5954 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_report");
5955 return hasExt ? (void*)entry_vkDebugReportMessageEXT : nullptr;
5956 }
5957#endif
5958#ifdef VK_EXT_debug_marker
5959 if (!strcmp(name, "vkDebugMarkerSetObjectTagEXT"))
5960 {
5961 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_marker");
5962 return hasExt ? (void*)entry_vkDebugMarkerSetObjectTagEXT : nullptr;
5963 }
5964 if (!strcmp(name, "vkDebugMarkerSetObjectNameEXT"))
5965 {
5966 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_marker");
5967 return hasExt ? (void*)entry_vkDebugMarkerSetObjectNameEXT : nullptr;
5968 }
5969 if (!strcmp(name, "vkCmdDebugMarkerBeginEXT"))
5970 {
5971 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_marker");
5972 return hasExt ? (void*)entry_vkCmdDebugMarkerBeginEXT : nullptr;
5973 }
5974 if (!strcmp(name, "vkCmdDebugMarkerEndEXT"))
5975 {
5976 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_marker");
5977 return hasExt ? (void*)entry_vkCmdDebugMarkerEndEXT : nullptr;
5978 }
5979 if (!strcmp(name, "vkCmdDebugMarkerInsertEXT"))
5980 {
5981 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_marker");
5982 return hasExt ? (void*)entry_vkCmdDebugMarkerInsertEXT : nullptr;
5983 }
5984#endif
5985#ifdef VK_AMD_draw_indirect_count
5986 if (!strcmp(name, "vkCmdDrawIndirectCountAMD"))
5987 {
5988 bool hasExt = resources->hasInstanceExtension(instance, "VK_AMD_draw_indirect_count");
5989 return hasExt ? (void*)entry_vkCmdDrawIndirectCountAMD : nullptr;
5990 }
5991 if (!strcmp(name, "vkCmdDrawIndexedIndirectCountAMD"))
5992 {
5993 bool hasExt = resources->hasInstanceExtension(instance, "VK_AMD_draw_indirect_count");
5994 return hasExt ? (void*)entry_vkCmdDrawIndexedIndirectCountAMD : nullptr;
5995 }
5996#endif
5997#ifdef VK_AMD_shader_info
5998 if (!strcmp(name, "vkGetShaderInfoAMD"))
5999 {
6000 bool hasExt = resources->hasInstanceExtension(instance, "VK_AMD_shader_info");
6001 return hasExt ? (void*)entry_vkGetShaderInfoAMD : nullptr;
6002 }
6003#endif
6004#ifdef VK_NV_external_memory_capabilities
6005 if (!strcmp(name, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV"))
6006 {
6007 bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_external_memory_capabilities");
6008 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalImageFormatPropertiesNV : nullptr;
6009 }
6010#endif
6011#ifdef VK_NV_external_memory_win32
6012 if (!strcmp(name, "vkGetMemoryWin32HandleNV"))
6013 {
6014 bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_external_memory_win32");
6015 return hasExt ? (void*)entry_vkGetMemoryWin32HandleNV : nullptr;
6016 }
6017#endif
6018#ifdef VK_NN_vi_surface
6019 if (!strcmp(name, "vkCreateViSurfaceNN"))
6020 {
6021 bool hasExt = resources->hasInstanceExtension(instance, "VK_NN_vi_surface");
6022 return hasExt ? (void*)entry_vkCreateViSurfaceNN : nullptr;
6023 }
6024#endif
6025#ifdef VK_EXT_conditional_rendering
6026 if (!strcmp(name, "vkCmdBeginConditionalRenderingEXT"))
6027 {
6028 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_conditional_rendering");
6029 return hasExt ? (void*)entry_vkCmdBeginConditionalRenderingEXT : nullptr;
6030 }
6031 if (!strcmp(name, "vkCmdEndConditionalRenderingEXT"))
6032 {
6033 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_conditional_rendering");
6034 return hasExt ? (void*)entry_vkCmdEndConditionalRenderingEXT : nullptr;
6035 }
6036#endif
6037#ifdef VK_NVX_device_generated_commands
6038 if (!strcmp(name, "vkCmdProcessCommandsNVX"))
6039 {
6040 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6041 return hasExt ? (void*)entry_vkCmdProcessCommandsNVX : nullptr;
6042 }
6043 if (!strcmp(name, "vkCmdReserveSpaceForCommandsNVX"))
6044 {
6045 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6046 return hasExt ? (void*)entry_vkCmdReserveSpaceForCommandsNVX : nullptr;
6047 }
6048 if (!strcmp(name, "vkCreateIndirectCommandsLayoutNVX"))
6049 {
6050 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6051 return hasExt ? (void*)entry_vkCreateIndirectCommandsLayoutNVX : nullptr;
6052 }
6053 if (!strcmp(name, "vkDestroyIndirectCommandsLayoutNVX"))
6054 {
6055 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6056 return hasExt ? (void*)entry_vkDestroyIndirectCommandsLayoutNVX : nullptr;
6057 }
6058 if (!strcmp(name, "vkCreateObjectTableNVX"))
6059 {
6060 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6061 return hasExt ? (void*)entry_vkCreateObjectTableNVX : nullptr;
6062 }
6063 if (!strcmp(name, "vkDestroyObjectTableNVX"))
6064 {
6065 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6066 return hasExt ? (void*)entry_vkDestroyObjectTableNVX : nullptr;
6067 }
6068 if (!strcmp(name, "vkRegisterObjectsNVX"))
6069 {
6070 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6071 return hasExt ? (void*)entry_vkRegisterObjectsNVX : nullptr;
6072 }
6073 if (!strcmp(name, "vkUnregisterObjectsNVX"))
6074 {
6075 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6076 return hasExt ? (void*)entry_vkUnregisterObjectsNVX : nullptr;
6077 }
6078 if (!strcmp(name, "vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX"))
6079 {
6080 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6081 return hasExt ? (void*)entry_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX : nullptr;
6082 }
6083#endif
6084#ifdef VK_NV_clip_space_w_scaling
6085 if (!strcmp(name, "vkCmdSetViewportWScalingNV"))
6086 {
6087 bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_clip_space_w_scaling");
6088 return hasExt ? (void*)entry_vkCmdSetViewportWScalingNV : nullptr;
6089 }
6090#endif
6091#ifdef VK_EXT_direct_mode_display
6092 if (!strcmp(name, "vkReleaseDisplayEXT"))
6093 {
6094 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_direct_mode_display");
6095 return hasExt ? (void*)entry_vkReleaseDisplayEXT : nullptr;
6096 }
6097#endif
6098#ifdef VK_EXT_acquire_xlib_display
6099 if (!strcmp(name, "vkAcquireXlibDisplayEXT"))
6100 {
6101 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_acquire_xlib_display");
6102 return hasExt ? (void*)entry_vkAcquireXlibDisplayEXT : nullptr;
6103 }
6104 if (!strcmp(name, "vkGetRandROutputDisplayEXT"))
6105 {
6106 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_acquire_xlib_display");
6107 return hasExt ? (void*)entry_vkGetRandROutputDisplayEXT : nullptr;
6108 }
6109#endif
6110#ifdef VK_EXT_display_surface_counter
6111 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2EXT"))
6112 {
6113 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_display_surface_counter");
6114 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceCapabilities2EXT : nullptr;
6115 }
6116#endif
6117#ifdef VK_EXT_display_control
6118 if (!strcmp(name, "vkDisplayPowerControlEXT"))
6119 {
6120 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_display_control");
6121 return hasExt ? (void*)entry_vkDisplayPowerControlEXT : nullptr;
6122 }
6123 if (!strcmp(name, "vkRegisterDeviceEventEXT"))
6124 {
6125 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_display_control");
6126 return hasExt ? (void*)entry_vkRegisterDeviceEventEXT : nullptr;
6127 }
6128 if (!strcmp(name, "vkRegisterDisplayEventEXT"))
6129 {
6130 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_display_control");
6131 return hasExt ? (void*)entry_vkRegisterDisplayEventEXT : nullptr;
6132 }
6133 if (!strcmp(name, "vkGetSwapchainCounterEXT"))
6134 {
6135 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_display_control");
6136 return hasExt ? (void*)entry_vkGetSwapchainCounterEXT : nullptr;
6137 }
6138#endif
6139#ifdef VK_GOOGLE_display_timing
6140 if (!strcmp(name, "vkGetRefreshCycleDurationGOOGLE"))
6141 {
6142 bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_display_timing");
6143 return hasExt ? (void*)entry_vkGetRefreshCycleDurationGOOGLE : nullptr;
6144 }
6145 if (!strcmp(name, "vkGetPastPresentationTimingGOOGLE"))
6146 {
6147 bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_display_timing");
6148 return hasExt ? (void*)entry_vkGetPastPresentationTimingGOOGLE : nullptr;
6149 }
6150#endif
6151#ifdef VK_EXT_discard_rectangles
6152 if (!strcmp(name, "vkCmdSetDiscardRectangleEXT"))
6153 {
6154 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_discard_rectangles");
6155 return hasExt ? (void*)entry_vkCmdSetDiscardRectangleEXT : nullptr;
6156 }
6157#endif
6158#ifdef VK_EXT_hdr_metadata
6159 if (!strcmp(name, "vkSetHdrMetadataEXT"))
6160 {
6161 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_hdr_metadata");
6162 return hasExt ? (void*)entry_vkSetHdrMetadataEXT : nullptr;
6163 }
6164#endif
6165#ifdef VK_MVK_ios_surface
6166 if (!strcmp(name, "vkCreateIOSSurfaceMVK"))
6167 {
6168 bool hasExt = resources->hasInstanceExtension(instance, "VK_MVK_ios_surface");
6169 return hasExt ? (void*)entry_vkCreateIOSSurfaceMVK : nullptr;
6170 }
6171#endif
6172#ifdef VK_MVK_macos_surface
6173 if (!strcmp(name, "vkCreateMacOSSurfaceMVK"))
6174 {
6175 bool hasExt = resources->hasInstanceExtension(instance, "VK_MVK_macos_surface");
6176 return hasExt ? (void*)entry_vkCreateMacOSSurfaceMVK : nullptr;
6177 }
6178#endif
6179#ifdef VK_EXT_debug_utils
6180 if (!strcmp(name, "vkSetDebugUtilsObjectNameEXT"))
6181 {
6182 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6183 return hasExt ? (void*)entry_vkSetDebugUtilsObjectNameEXT : nullptr;
6184 }
6185 if (!strcmp(name, "vkSetDebugUtilsObjectTagEXT"))
6186 {
6187 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6188 return hasExt ? (void*)entry_vkSetDebugUtilsObjectTagEXT : nullptr;
6189 }
6190 if (!strcmp(name, "vkQueueBeginDebugUtilsLabelEXT"))
6191 {
6192 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6193 return hasExt ? (void*)entry_vkQueueBeginDebugUtilsLabelEXT : nullptr;
6194 }
6195 if (!strcmp(name, "vkQueueEndDebugUtilsLabelEXT"))
6196 {
6197 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6198 return hasExt ? (void*)entry_vkQueueEndDebugUtilsLabelEXT : nullptr;
6199 }
6200 if (!strcmp(name, "vkQueueInsertDebugUtilsLabelEXT"))
6201 {
6202 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6203 return hasExt ? (void*)entry_vkQueueInsertDebugUtilsLabelEXT : nullptr;
6204 }
6205 if (!strcmp(name, "vkCmdBeginDebugUtilsLabelEXT"))
6206 {
6207 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6208 return hasExt ? (void*)entry_vkCmdBeginDebugUtilsLabelEXT : nullptr;
6209 }
6210 if (!strcmp(name, "vkCmdEndDebugUtilsLabelEXT"))
6211 {
6212 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6213 return hasExt ? (void*)entry_vkCmdEndDebugUtilsLabelEXT : nullptr;
6214 }
6215 if (!strcmp(name, "vkCmdInsertDebugUtilsLabelEXT"))
6216 {
6217 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6218 return hasExt ? (void*)entry_vkCmdInsertDebugUtilsLabelEXT : nullptr;
6219 }
6220 if (!strcmp(name, "vkCreateDebugUtilsMessengerEXT"))
6221 {
6222 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6223 return hasExt ? (void*)entry_vkCreateDebugUtilsMessengerEXT : nullptr;
6224 }
6225 if (!strcmp(name, "vkDestroyDebugUtilsMessengerEXT"))
6226 {
6227 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6228 return hasExt ? (void*)entry_vkDestroyDebugUtilsMessengerEXT : nullptr;
6229 }
6230 if (!strcmp(name, "vkSubmitDebugUtilsMessageEXT"))
6231 {
6232 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6233 return hasExt ? (void*)entry_vkSubmitDebugUtilsMessageEXT : nullptr;
6234 }
6235#endif
6236#ifdef VK_ANDROID_external_memory_android_hardware_buffer
6237 if (!strcmp(name, "vkGetAndroidHardwareBufferPropertiesANDROID"))
6238 {
6239 bool hasExt = resources->hasInstanceExtension(instance, "VK_ANDROID_external_memory_android_hardware_buffer");
6240 return hasExt ? (void*)entry_vkGetAndroidHardwareBufferPropertiesANDROID : nullptr;
6241 }
6242 if (!strcmp(name, "vkGetMemoryAndroidHardwareBufferANDROID"))
6243 {
6244 bool hasExt = resources->hasInstanceExtension(instance, "VK_ANDROID_external_memory_android_hardware_buffer");
6245 return hasExt ? (void*)entry_vkGetMemoryAndroidHardwareBufferANDROID : nullptr;
6246 }
6247#endif
6248#ifdef VK_EXT_sample_locations
6249 if (!strcmp(name, "vkCmdSetSampleLocationsEXT"))
6250 {
6251 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_sample_locations");
6252 return hasExt ? (void*)entry_vkCmdSetSampleLocationsEXT : nullptr;
6253 }
6254 if (!strcmp(name, "vkGetPhysicalDeviceMultisamplePropertiesEXT"))
6255 {
6256 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_sample_locations");
6257 return hasExt ? (void*)entry_vkGetPhysicalDeviceMultisamplePropertiesEXT : nullptr;
6258 }
6259#endif
6260#ifdef VK_EXT_validation_cache
6261 if (!strcmp(name, "vkCreateValidationCacheEXT"))
6262 {
6263 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_validation_cache");
6264 return hasExt ? (void*)entry_vkCreateValidationCacheEXT : nullptr;
6265 }
6266 if (!strcmp(name, "vkDestroyValidationCacheEXT"))
6267 {
6268 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_validation_cache");
6269 return hasExt ? (void*)entry_vkDestroyValidationCacheEXT : nullptr;
6270 }
6271 if (!strcmp(name, "vkMergeValidationCachesEXT"))
6272 {
6273 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_validation_cache");
6274 return hasExt ? (void*)entry_vkMergeValidationCachesEXT : nullptr;
6275 }
6276 if (!strcmp(name, "vkGetValidationCacheDataEXT"))
6277 {
6278 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_validation_cache");
6279 return hasExt ? (void*)entry_vkGetValidationCacheDataEXT : nullptr;
6280 }
6281#endif
6282#ifdef VK_EXT_external_memory_host
6283 if (!strcmp(name, "vkGetMemoryHostPointerPropertiesEXT"))
6284 {
6285 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_external_memory_host");
6286 return hasExt ? (void*)entry_vkGetMemoryHostPointerPropertiesEXT : nullptr;
6287 }
6288#endif
6289#ifdef VK_AMD_buffer_marker
6290 if (!strcmp(name, "vkCmdWriteBufferMarkerAMD"))
6291 {
6292 bool hasExt = resources->hasInstanceExtension(instance, "VK_AMD_buffer_marker");
6293 return hasExt ? (void*)entry_vkCmdWriteBufferMarkerAMD : nullptr;
6294 }
6295#endif
6296#ifdef VK_NV_device_diagnostic_checkpoints
6297 if (!strcmp(name, "vkCmdSetCheckpointNV"))
6298 {
6299 bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_device_diagnostic_checkpoints");
6300 return hasExt ? (void*)entry_vkCmdSetCheckpointNV : nullptr;
6301 }
6302 if (!strcmp(name, "vkGetQueueCheckpointDataNV"))
6303 {
6304 bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_device_diagnostic_checkpoints");
6305 return hasExt ? (void*)entry_vkGetQueueCheckpointDataNV : nullptr;
6306 }
6307#endif
6308#ifdef VK_GOOGLE_address_space
6309 if (!strcmp(name, "vkMapMemoryIntoAddressSpaceGOOGLE"))
6310 {
6311 bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_address_space");
6312 return hasExt ? (void*)entry_vkMapMemoryIntoAddressSpaceGOOGLE : nullptr;
6313 }
6314#endif
6315 return nullptr;
6316}
6317void* goldfish_vulkan_get_device_proc_address(VkDevice device, const char* name){
6318 auto resources = ResourceTracker::get();
6319 bool has1_1OrHigher = resources->getApiVersionFromDevice(device) >= VK_API_VERSION_1_1;
6320#ifdef VK_VERSION_1_0
6321 if (!strcmp(name, "vkCreateInstance"))
6322 {
6323 return (void*)entry_vkCreateInstance;
6324 }
6325 if (!strcmp(name, "vkDestroyInstance"))
6326 {
6327 return (void*)entry_vkDestroyInstance;
6328 }
6329 if (!strcmp(name, "vkEnumeratePhysicalDevices"))
6330 {
6331 return (void*)entry_vkEnumeratePhysicalDevices;
6332 }
6333 if (!strcmp(name, "vkGetPhysicalDeviceFeatures"))
6334 {
6335 return (void*)entry_vkGetPhysicalDeviceFeatures;
6336 }
6337 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties"))
6338 {
6339 return (void*)entry_vkGetPhysicalDeviceFormatProperties;
6340 }
6341 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties"))
6342 {
6343 return (void*)entry_vkGetPhysicalDeviceImageFormatProperties;
6344 }
6345 if (!strcmp(name, "vkGetPhysicalDeviceProperties"))
6346 {
6347 return (void*)entry_vkGetPhysicalDeviceProperties;
6348 }
6349 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties"))
6350 {
6351 return (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties;
6352 }
6353 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties"))
6354 {
6355 return (void*)entry_vkGetPhysicalDeviceMemoryProperties;
6356 }
6357 if (!strcmp(name, "vkGetInstanceProcAddr"))
6358 {
6359 return (void*)entry_vkGetInstanceProcAddr;
6360 }
6361 if (!strcmp(name, "vkGetDeviceProcAddr"))
6362 {
6363 return (void*)entry_vkGetDeviceProcAddr;
6364 }
6365 if (!strcmp(name, "vkCreateDevice"))
6366 {
6367 return (void*)entry_vkCreateDevice;
6368 }
6369 if (!strcmp(name, "vkDestroyDevice"))
6370 {
6371 return (void*)entry_vkDestroyDevice;
6372 }
6373 if (!strcmp(name, "vkEnumerateInstanceExtensionProperties"))
6374 {
6375 return (void*)entry_vkEnumerateInstanceExtensionProperties;
6376 }
6377 if (!strcmp(name, "vkEnumerateDeviceExtensionProperties"))
6378 {
6379 return (void*)entry_vkEnumerateDeviceExtensionProperties;
6380 }
6381 if (!strcmp(name, "vkEnumerateInstanceLayerProperties"))
6382 {
6383 return (void*)entry_vkEnumerateInstanceLayerProperties;
6384 }
6385 if (!strcmp(name, "vkEnumerateDeviceLayerProperties"))
6386 {
6387 return (void*)entry_vkEnumerateDeviceLayerProperties;
6388 }
6389 if (!strcmp(name, "vkGetDeviceQueue"))
6390 {
6391 return (void*)entry_vkGetDeviceQueue;
6392 }
6393 if (!strcmp(name, "vkQueueSubmit"))
6394 {
6395 return (void*)entry_vkQueueSubmit;
6396 }
6397 if (!strcmp(name, "vkQueueWaitIdle"))
6398 {
6399 return (void*)entry_vkQueueWaitIdle;
6400 }
6401 if (!strcmp(name, "vkDeviceWaitIdle"))
6402 {
6403 return (void*)entry_vkDeviceWaitIdle;
6404 }
6405 if (!strcmp(name, "vkAllocateMemory"))
6406 {
6407 return (void*)entry_vkAllocateMemory;
6408 }
6409 if (!strcmp(name, "vkFreeMemory"))
6410 {
6411 return (void*)entry_vkFreeMemory;
6412 }
6413 if (!strcmp(name, "vkMapMemory"))
6414 {
6415 return (void*)entry_vkMapMemory;
6416 }
6417 if (!strcmp(name, "vkUnmapMemory"))
6418 {
6419 return (void*)entry_vkUnmapMemory;
6420 }
6421 if (!strcmp(name, "vkFlushMappedMemoryRanges"))
6422 {
6423 return (void*)entry_vkFlushMappedMemoryRanges;
6424 }
6425 if (!strcmp(name, "vkInvalidateMappedMemoryRanges"))
6426 {
6427 return (void*)entry_vkInvalidateMappedMemoryRanges;
6428 }
6429 if (!strcmp(name, "vkGetDeviceMemoryCommitment"))
6430 {
6431 return (void*)entry_vkGetDeviceMemoryCommitment;
6432 }
6433 if (!strcmp(name, "vkBindBufferMemory"))
6434 {
6435 return (void*)entry_vkBindBufferMemory;
6436 }
6437 if (!strcmp(name, "vkBindImageMemory"))
6438 {
6439 return (void*)entry_vkBindImageMemory;
6440 }
6441 if (!strcmp(name, "vkGetBufferMemoryRequirements"))
6442 {
6443 return (void*)entry_vkGetBufferMemoryRequirements;
6444 }
6445 if (!strcmp(name, "vkGetImageMemoryRequirements"))
6446 {
6447 return (void*)entry_vkGetImageMemoryRequirements;
6448 }
6449 if (!strcmp(name, "vkGetImageSparseMemoryRequirements"))
6450 {
6451 return (void*)entry_vkGetImageSparseMemoryRequirements;
6452 }
6453 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties"))
6454 {
6455 return (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties;
6456 }
6457 if (!strcmp(name, "vkQueueBindSparse"))
6458 {
6459 return (void*)entry_vkQueueBindSparse;
6460 }
6461 if (!strcmp(name, "vkCreateFence"))
6462 {
6463 return (void*)entry_vkCreateFence;
6464 }
6465 if (!strcmp(name, "vkDestroyFence"))
6466 {
6467 return (void*)entry_vkDestroyFence;
6468 }
6469 if (!strcmp(name, "vkResetFences"))
6470 {
6471 return (void*)entry_vkResetFences;
6472 }
6473 if (!strcmp(name, "vkGetFenceStatus"))
6474 {
6475 return (void*)entry_vkGetFenceStatus;
6476 }
6477 if (!strcmp(name, "vkWaitForFences"))
6478 {
6479 return (void*)entry_vkWaitForFences;
6480 }
6481 if (!strcmp(name, "vkCreateSemaphore"))
6482 {
6483 return (void*)entry_vkCreateSemaphore;
6484 }
6485 if (!strcmp(name, "vkDestroySemaphore"))
6486 {
6487 return (void*)entry_vkDestroySemaphore;
6488 }
6489 if (!strcmp(name, "vkCreateEvent"))
6490 {
6491 return (void*)entry_vkCreateEvent;
6492 }
6493 if (!strcmp(name, "vkDestroyEvent"))
6494 {
6495 return (void*)entry_vkDestroyEvent;
6496 }
6497 if (!strcmp(name, "vkGetEventStatus"))
6498 {
6499 return (void*)entry_vkGetEventStatus;
6500 }
6501 if (!strcmp(name, "vkSetEvent"))
6502 {
6503 return (void*)entry_vkSetEvent;
6504 }
6505 if (!strcmp(name, "vkResetEvent"))
6506 {
6507 return (void*)entry_vkResetEvent;
6508 }
6509 if (!strcmp(name, "vkCreateQueryPool"))
6510 {
6511 return (void*)entry_vkCreateQueryPool;
6512 }
6513 if (!strcmp(name, "vkDestroyQueryPool"))
6514 {
6515 return (void*)entry_vkDestroyQueryPool;
6516 }
6517 if (!strcmp(name, "vkGetQueryPoolResults"))
6518 {
6519 return (void*)entry_vkGetQueryPoolResults;
6520 }
6521 if (!strcmp(name, "vkCreateBuffer"))
6522 {
6523 return (void*)entry_vkCreateBuffer;
6524 }
6525 if (!strcmp(name, "vkDestroyBuffer"))
6526 {
6527 return (void*)entry_vkDestroyBuffer;
6528 }
6529 if (!strcmp(name, "vkCreateBufferView"))
6530 {
6531 return (void*)entry_vkCreateBufferView;
6532 }
6533 if (!strcmp(name, "vkDestroyBufferView"))
6534 {
6535 return (void*)entry_vkDestroyBufferView;
6536 }
6537 if (!strcmp(name, "vkCreateImage"))
6538 {
6539 return (void*)entry_vkCreateImage;
6540 }
6541 if (!strcmp(name, "vkDestroyImage"))
6542 {
6543 return (void*)entry_vkDestroyImage;
6544 }
6545 if (!strcmp(name, "vkGetImageSubresourceLayout"))
6546 {
6547 return (void*)entry_vkGetImageSubresourceLayout;
6548 }
6549 if (!strcmp(name, "vkCreateImageView"))
6550 {
6551 return (void*)entry_vkCreateImageView;
6552 }
6553 if (!strcmp(name, "vkDestroyImageView"))
6554 {
6555 return (void*)entry_vkDestroyImageView;
6556 }
6557 if (!strcmp(name, "vkCreateShaderModule"))
6558 {
6559 return (void*)entry_vkCreateShaderModule;
6560 }
6561 if (!strcmp(name, "vkDestroyShaderModule"))
6562 {
6563 return (void*)entry_vkDestroyShaderModule;
6564 }
6565 if (!strcmp(name, "vkCreatePipelineCache"))
6566 {
6567 return (void*)entry_vkCreatePipelineCache;
6568 }
6569 if (!strcmp(name, "vkDestroyPipelineCache"))
6570 {
6571 return (void*)entry_vkDestroyPipelineCache;
6572 }
6573 if (!strcmp(name, "vkGetPipelineCacheData"))
6574 {
6575 return (void*)entry_vkGetPipelineCacheData;
6576 }
6577 if (!strcmp(name, "vkMergePipelineCaches"))
6578 {
6579 return (void*)entry_vkMergePipelineCaches;
6580 }
6581 if (!strcmp(name, "vkCreateGraphicsPipelines"))
6582 {
6583 return (void*)entry_vkCreateGraphicsPipelines;
6584 }
6585 if (!strcmp(name, "vkCreateComputePipelines"))
6586 {
6587 return (void*)entry_vkCreateComputePipelines;
6588 }
6589 if (!strcmp(name, "vkDestroyPipeline"))
6590 {
6591 return (void*)entry_vkDestroyPipeline;
6592 }
6593 if (!strcmp(name, "vkCreatePipelineLayout"))
6594 {
6595 return (void*)entry_vkCreatePipelineLayout;
6596 }
6597 if (!strcmp(name, "vkDestroyPipelineLayout"))
6598 {
6599 return (void*)entry_vkDestroyPipelineLayout;
6600 }
6601 if (!strcmp(name, "vkCreateSampler"))
6602 {
6603 return (void*)entry_vkCreateSampler;
6604 }
6605 if (!strcmp(name, "vkDestroySampler"))
6606 {
6607 return (void*)entry_vkDestroySampler;
6608 }
6609 if (!strcmp(name, "vkCreateDescriptorSetLayout"))
6610 {
6611 return (void*)entry_vkCreateDescriptorSetLayout;
6612 }
6613 if (!strcmp(name, "vkDestroyDescriptorSetLayout"))
6614 {
6615 return (void*)entry_vkDestroyDescriptorSetLayout;
6616 }
6617 if (!strcmp(name, "vkCreateDescriptorPool"))
6618 {
6619 return (void*)entry_vkCreateDescriptorPool;
6620 }
6621 if (!strcmp(name, "vkDestroyDescriptorPool"))
6622 {
6623 return (void*)entry_vkDestroyDescriptorPool;
6624 }
6625 if (!strcmp(name, "vkResetDescriptorPool"))
6626 {
6627 return (void*)entry_vkResetDescriptorPool;
6628 }
6629 if (!strcmp(name, "vkAllocateDescriptorSets"))
6630 {
6631 return (void*)entry_vkAllocateDescriptorSets;
6632 }
6633 if (!strcmp(name, "vkFreeDescriptorSets"))
6634 {
6635 return (void*)entry_vkFreeDescriptorSets;
6636 }
6637 if (!strcmp(name, "vkUpdateDescriptorSets"))
6638 {
6639 return (void*)entry_vkUpdateDescriptorSets;
6640 }
6641 if (!strcmp(name, "vkCreateFramebuffer"))
6642 {
6643 return (void*)entry_vkCreateFramebuffer;
6644 }
6645 if (!strcmp(name, "vkDestroyFramebuffer"))
6646 {
6647 return (void*)entry_vkDestroyFramebuffer;
6648 }
6649 if (!strcmp(name, "vkCreateRenderPass"))
6650 {
6651 return (void*)entry_vkCreateRenderPass;
6652 }
6653 if (!strcmp(name, "vkDestroyRenderPass"))
6654 {
6655 return (void*)entry_vkDestroyRenderPass;
6656 }
6657 if (!strcmp(name, "vkGetRenderAreaGranularity"))
6658 {
6659 return (void*)entry_vkGetRenderAreaGranularity;
6660 }
6661 if (!strcmp(name, "vkCreateCommandPool"))
6662 {
6663 return (void*)entry_vkCreateCommandPool;
6664 }
6665 if (!strcmp(name, "vkDestroyCommandPool"))
6666 {
6667 return (void*)entry_vkDestroyCommandPool;
6668 }
6669 if (!strcmp(name, "vkResetCommandPool"))
6670 {
6671 return (void*)entry_vkResetCommandPool;
6672 }
6673 if (!strcmp(name, "vkAllocateCommandBuffers"))
6674 {
6675 return (void*)entry_vkAllocateCommandBuffers;
6676 }
6677 if (!strcmp(name, "vkFreeCommandBuffers"))
6678 {
6679 return (void*)entry_vkFreeCommandBuffers;
6680 }
6681 if (!strcmp(name, "vkBeginCommandBuffer"))
6682 {
6683 return (void*)entry_vkBeginCommandBuffer;
6684 }
6685 if (!strcmp(name, "vkEndCommandBuffer"))
6686 {
6687 return (void*)entry_vkEndCommandBuffer;
6688 }
6689 if (!strcmp(name, "vkResetCommandBuffer"))
6690 {
6691 return (void*)entry_vkResetCommandBuffer;
6692 }
6693 if (!strcmp(name, "vkCmdBindPipeline"))
6694 {
6695 return (void*)entry_vkCmdBindPipeline;
6696 }
6697 if (!strcmp(name, "vkCmdSetViewport"))
6698 {
6699 return (void*)entry_vkCmdSetViewport;
6700 }
6701 if (!strcmp(name, "vkCmdSetScissor"))
6702 {
6703 return (void*)entry_vkCmdSetScissor;
6704 }
6705 if (!strcmp(name, "vkCmdSetLineWidth"))
6706 {
6707 return (void*)entry_vkCmdSetLineWidth;
6708 }
6709 if (!strcmp(name, "vkCmdSetDepthBias"))
6710 {
6711 return (void*)entry_vkCmdSetDepthBias;
6712 }
6713 if (!strcmp(name, "vkCmdSetBlendConstants"))
6714 {
6715 return (void*)entry_vkCmdSetBlendConstants;
6716 }
6717 if (!strcmp(name, "vkCmdSetDepthBounds"))
6718 {
6719 return (void*)entry_vkCmdSetDepthBounds;
6720 }
6721 if (!strcmp(name, "vkCmdSetStencilCompareMask"))
6722 {
6723 return (void*)entry_vkCmdSetStencilCompareMask;
6724 }
6725 if (!strcmp(name, "vkCmdSetStencilWriteMask"))
6726 {
6727 return (void*)entry_vkCmdSetStencilWriteMask;
6728 }
6729 if (!strcmp(name, "vkCmdSetStencilReference"))
6730 {
6731 return (void*)entry_vkCmdSetStencilReference;
6732 }
6733 if (!strcmp(name, "vkCmdBindDescriptorSets"))
6734 {
6735 return (void*)entry_vkCmdBindDescriptorSets;
6736 }
6737 if (!strcmp(name, "vkCmdBindIndexBuffer"))
6738 {
6739 return (void*)entry_vkCmdBindIndexBuffer;
6740 }
6741 if (!strcmp(name, "vkCmdBindVertexBuffers"))
6742 {
6743 return (void*)entry_vkCmdBindVertexBuffers;
6744 }
6745 if (!strcmp(name, "vkCmdDraw"))
6746 {
6747 return (void*)entry_vkCmdDraw;
6748 }
6749 if (!strcmp(name, "vkCmdDrawIndexed"))
6750 {
6751 return (void*)entry_vkCmdDrawIndexed;
6752 }
6753 if (!strcmp(name, "vkCmdDrawIndirect"))
6754 {
6755 return (void*)entry_vkCmdDrawIndirect;
6756 }
6757 if (!strcmp(name, "vkCmdDrawIndexedIndirect"))
6758 {
6759 return (void*)entry_vkCmdDrawIndexedIndirect;
6760 }
6761 if (!strcmp(name, "vkCmdDispatch"))
6762 {
6763 return (void*)entry_vkCmdDispatch;
6764 }
6765 if (!strcmp(name, "vkCmdDispatchIndirect"))
6766 {
6767 return (void*)entry_vkCmdDispatchIndirect;
6768 }
6769 if (!strcmp(name, "vkCmdCopyBuffer"))
6770 {
6771 return (void*)entry_vkCmdCopyBuffer;
6772 }
6773 if (!strcmp(name, "vkCmdCopyImage"))
6774 {
6775 return (void*)entry_vkCmdCopyImage;
6776 }
6777 if (!strcmp(name, "vkCmdBlitImage"))
6778 {
6779 return (void*)entry_vkCmdBlitImage;
6780 }
6781 if (!strcmp(name, "vkCmdCopyBufferToImage"))
6782 {
6783 return (void*)entry_vkCmdCopyBufferToImage;
6784 }
6785 if (!strcmp(name, "vkCmdCopyImageToBuffer"))
6786 {
6787 return (void*)entry_vkCmdCopyImageToBuffer;
6788 }
6789 if (!strcmp(name, "vkCmdUpdateBuffer"))
6790 {
6791 return (void*)entry_vkCmdUpdateBuffer;
6792 }
6793 if (!strcmp(name, "vkCmdFillBuffer"))
6794 {
6795 return (void*)entry_vkCmdFillBuffer;
6796 }
6797 if (!strcmp(name, "vkCmdClearColorImage"))
6798 {
6799 return (void*)entry_vkCmdClearColorImage;
6800 }
6801 if (!strcmp(name, "vkCmdClearDepthStencilImage"))
6802 {
6803 return (void*)entry_vkCmdClearDepthStencilImage;
6804 }
6805 if (!strcmp(name, "vkCmdClearAttachments"))
6806 {
6807 return (void*)entry_vkCmdClearAttachments;
6808 }
6809 if (!strcmp(name, "vkCmdResolveImage"))
6810 {
6811 return (void*)entry_vkCmdResolveImage;
6812 }
6813 if (!strcmp(name, "vkCmdSetEvent"))
6814 {
6815 return (void*)entry_vkCmdSetEvent;
6816 }
6817 if (!strcmp(name, "vkCmdResetEvent"))
6818 {
6819 return (void*)entry_vkCmdResetEvent;
6820 }
6821 if (!strcmp(name, "vkCmdWaitEvents"))
6822 {
6823 return (void*)entry_vkCmdWaitEvents;
6824 }
6825 if (!strcmp(name, "vkCmdPipelineBarrier"))
6826 {
6827 return (void*)entry_vkCmdPipelineBarrier;
6828 }
6829 if (!strcmp(name, "vkCmdBeginQuery"))
6830 {
6831 return (void*)entry_vkCmdBeginQuery;
6832 }
6833 if (!strcmp(name, "vkCmdEndQuery"))
6834 {
6835 return (void*)entry_vkCmdEndQuery;
6836 }
6837 if (!strcmp(name, "vkCmdResetQueryPool"))
6838 {
6839 return (void*)entry_vkCmdResetQueryPool;
6840 }
6841 if (!strcmp(name, "vkCmdWriteTimestamp"))
6842 {
6843 return (void*)entry_vkCmdWriteTimestamp;
6844 }
6845 if (!strcmp(name, "vkCmdCopyQueryPoolResults"))
6846 {
6847 return (void*)entry_vkCmdCopyQueryPoolResults;
6848 }
6849 if (!strcmp(name, "vkCmdPushConstants"))
6850 {
6851 return (void*)entry_vkCmdPushConstants;
6852 }
6853 if (!strcmp(name, "vkCmdBeginRenderPass"))
6854 {
6855 return (void*)entry_vkCmdBeginRenderPass;
6856 }
6857 if (!strcmp(name, "vkCmdNextSubpass"))
6858 {
6859 return (void*)entry_vkCmdNextSubpass;
6860 }
6861 if (!strcmp(name, "vkCmdEndRenderPass"))
6862 {
6863 return (void*)entry_vkCmdEndRenderPass;
6864 }
6865 if (!strcmp(name, "vkCmdExecuteCommands"))
6866 {
6867 return (void*)entry_vkCmdExecuteCommands;
6868 }
6869#endif
6870#ifdef VK_VERSION_1_1
6871 if (!strcmp(name, "vkEnumerateInstanceVersion"))
6872 {
6873 return has1_1OrHigher ? (void*)entry_vkEnumerateInstanceVersion : nullptr;
6874 }
6875 if (!strcmp(name, "vkBindBufferMemory2"))
6876 {
6877 return has1_1OrHigher ? (void*)entry_vkBindBufferMemory2 : nullptr;
6878 }
6879 if (!strcmp(name, "vkBindImageMemory2"))
6880 {
6881 return has1_1OrHigher ? (void*)entry_vkBindImageMemory2 : nullptr;
6882 }
6883 if (!strcmp(name, "vkGetDeviceGroupPeerMemoryFeatures"))
6884 {
6885 return has1_1OrHigher ? (void*)entry_vkGetDeviceGroupPeerMemoryFeatures : nullptr;
6886 }
6887 if (!strcmp(name, "vkCmdSetDeviceMask"))
6888 {
6889 return has1_1OrHigher ? (void*)entry_vkCmdSetDeviceMask : nullptr;
6890 }
6891 if (!strcmp(name, "vkCmdDispatchBase"))
6892 {
6893 return has1_1OrHigher ? (void*)entry_vkCmdDispatchBase : nullptr;
6894 }
6895 if (!strcmp(name, "vkEnumeratePhysicalDeviceGroups"))
6896 {
6897 return nullptr;
6898 }
6899 if (!strcmp(name, "vkGetImageMemoryRequirements2"))
6900 {
6901 return has1_1OrHigher ? (void*)entry_vkGetImageMemoryRequirements2 : nullptr;
6902 }
6903 if (!strcmp(name, "vkGetBufferMemoryRequirements2"))
6904 {
6905 return has1_1OrHigher ? (void*)entry_vkGetBufferMemoryRequirements2 : nullptr;
6906 }
6907 if (!strcmp(name, "vkGetImageSparseMemoryRequirements2"))
6908 {
6909 return has1_1OrHigher ? (void*)entry_vkGetImageSparseMemoryRequirements2 : nullptr;
6910 }
6911 if (!strcmp(name, "vkGetPhysicalDeviceFeatures2"))
6912 {
6913 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceFeatures2 : nullptr;
6914 }
6915 if (!strcmp(name, "vkGetPhysicalDeviceProperties2"))
6916 {
6917 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceProperties2 : nullptr;
6918 }
6919 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties2"))
6920 {
6921 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceFormatProperties2 : nullptr;
6922 }
6923 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties2"))
6924 {
6925 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceImageFormatProperties2 : nullptr;
6926 }
6927 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties2"))
6928 {
6929 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties2 : nullptr;
6930 }
6931 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties2"))
6932 {
6933 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceMemoryProperties2 : nullptr;
6934 }
6935 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties2"))
6936 {
6937 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties2 : nullptr;
6938 }
6939 if (!strcmp(name, "vkTrimCommandPool"))
6940 {
6941 return has1_1OrHigher ? (void*)entry_vkTrimCommandPool : nullptr;
6942 }
6943 if (!strcmp(name, "vkGetDeviceQueue2"))
6944 {
6945 return has1_1OrHigher ? (void*)entry_vkGetDeviceQueue2 : nullptr;
6946 }
6947 if (!strcmp(name, "vkCreateSamplerYcbcrConversion"))
6948 {
6949 return has1_1OrHigher ? (void*)entry_vkCreateSamplerYcbcrConversion : nullptr;
6950 }
6951 if (!strcmp(name, "vkDestroySamplerYcbcrConversion"))
6952 {
6953 return has1_1OrHigher ? (void*)entry_vkDestroySamplerYcbcrConversion : nullptr;
6954 }
6955 if (!strcmp(name, "vkCreateDescriptorUpdateTemplate"))
6956 {
6957 return has1_1OrHigher ? (void*)entry_vkCreateDescriptorUpdateTemplate : nullptr;
6958 }
6959 if (!strcmp(name, "vkDestroyDescriptorUpdateTemplate"))
6960 {
6961 return has1_1OrHigher ? (void*)entry_vkDestroyDescriptorUpdateTemplate : nullptr;
6962 }
6963 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplate"))
6964 {
6965 return has1_1OrHigher ? (void*)entry_vkUpdateDescriptorSetWithTemplate : nullptr;
6966 }
6967 if (!strcmp(name, "vkGetPhysicalDeviceExternalBufferProperties"))
6968 {
6969 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceExternalBufferProperties : nullptr;
6970 }
6971 if (!strcmp(name, "vkGetPhysicalDeviceExternalFenceProperties"))
6972 {
6973 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceExternalFenceProperties : nullptr;
6974 }
6975 if (!strcmp(name, "vkGetPhysicalDeviceExternalSemaphoreProperties"))
6976 {
6977 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceExternalSemaphoreProperties : nullptr;
6978 }
6979 if (!strcmp(name, "vkGetDescriptorSetLayoutSupport"))
6980 {
6981 return has1_1OrHigher ? (void*)entry_vkGetDescriptorSetLayoutSupport : nullptr;
6982 }
6983#endif
6984#ifdef VK_KHR_surface
6985 if (!strcmp(name, "vkDestroySurfaceKHR"))
6986 {
6987 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_surface");
6988 return hasExt ? (void*)entry_vkDestroySurfaceKHR : nullptr;
6989 }
6990 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceSupportKHR"))
6991 {
6992 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_surface");
6993 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceSupportKHR : nullptr;
6994 }
6995 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR"))
6996 {
6997 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_surface");
6998 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceCapabilitiesKHR : nullptr;
6999 }
7000 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceFormatsKHR"))
7001 {
7002 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_surface");
7003 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceFormatsKHR : nullptr;
7004 }
7005 if (!strcmp(name, "vkGetPhysicalDeviceSurfacePresentModesKHR"))
7006 {
7007 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_surface");
7008 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfacePresentModesKHR : nullptr;
7009 }
7010#endif
7011#ifdef VK_KHR_swapchain
7012 if (!strcmp(name, "vkCreateSwapchainKHR"))
7013 {
7014 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7015 return hasExt ? (void*)entry_vkCreateSwapchainKHR : nullptr;
7016 }
7017 if (!strcmp(name, "vkDestroySwapchainKHR"))
7018 {
7019 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7020 return hasExt ? (void*)entry_vkDestroySwapchainKHR : nullptr;
7021 }
7022 if (!strcmp(name, "vkGetSwapchainImagesKHR"))
7023 {
7024 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7025 return hasExt ? (void*)entry_vkGetSwapchainImagesKHR : nullptr;
7026 }
7027 if (!strcmp(name, "vkAcquireNextImageKHR"))
7028 {
7029 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7030 return hasExt ? (void*)entry_vkAcquireNextImageKHR : nullptr;
7031 }
7032 if (!strcmp(name, "vkQueuePresentKHR"))
7033 {
7034 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7035 return hasExt ? (void*)entry_vkQueuePresentKHR : nullptr;
7036 }
7037 if (!strcmp(name, "vkGetDeviceGroupPresentCapabilitiesKHR"))
7038 {
7039 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7040 return hasExt ? (void*)entry_vkGetDeviceGroupPresentCapabilitiesKHR : nullptr;
7041 }
7042 if (!strcmp(name, "vkGetDeviceGroupSurfacePresentModesKHR"))
7043 {
7044 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7045 return hasExt ? (void*)entry_vkGetDeviceGroupSurfacePresentModesKHR : nullptr;
7046 }
7047 if (!strcmp(name, "vkGetPhysicalDevicePresentRectanglesKHR"))
7048 {
7049 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7050 return hasExt ? (void*)entry_vkGetPhysicalDevicePresentRectanglesKHR : nullptr;
7051 }
7052 if (!strcmp(name, "vkAcquireNextImage2KHR"))
7053 {
7054 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7055 return hasExt ? (void*)entry_vkAcquireNextImage2KHR : nullptr;
7056 }
7057#endif
7058#ifdef VK_KHR_display
7059 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPropertiesKHR"))
7060 {
7061 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
7062 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayPropertiesKHR : nullptr;
7063 }
7064 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR"))
7065 {
7066 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
7067 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayPlanePropertiesKHR : nullptr;
7068 }
7069 if (!strcmp(name, "vkGetDisplayPlaneSupportedDisplaysKHR"))
7070 {
7071 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
7072 return hasExt ? (void*)entry_vkGetDisplayPlaneSupportedDisplaysKHR : nullptr;
7073 }
7074 if (!strcmp(name, "vkGetDisplayModePropertiesKHR"))
7075 {
7076 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
7077 return hasExt ? (void*)entry_vkGetDisplayModePropertiesKHR : nullptr;
7078 }
7079 if (!strcmp(name, "vkCreateDisplayModeKHR"))
7080 {
7081 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
7082 return hasExt ? (void*)entry_vkCreateDisplayModeKHR : nullptr;
7083 }
7084 if (!strcmp(name, "vkGetDisplayPlaneCapabilitiesKHR"))
7085 {
7086 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
7087 return hasExt ? (void*)entry_vkGetDisplayPlaneCapabilitiesKHR : nullptr;
7088 }
7089 if (!strcmp(name, "vkCreateDisplayPlaneSurfaceKHR"))
7090 {
7091 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
7092 return hasExt ? (void*)entry_vkCreateDisplayPlaneSurfaceKHR : nullptr;
7093 }
7094#endif
7095#ifdef VK_KHR_display_swapchain
7096 if (!strcmp(name, "vkCreateSharedSwapchainsKHR"))
7097 {
7098 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display_swapchain");
7099 return hasExt ? (void*)entry_vkCreateSharedSwapchainsKHR : nullptr;
7100 }
7101#endif
7102#ifdef VK_KHR_xlib_surface
7103 if (!strcmp(name, "vkCreateXlibSurfaceKHR"))
7104 {
7105 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_xlib_surface");
7106 return hasExt ? (void*)entry_vkCreateXlibSurfaceKHR : nullptr;
7107 }
7108 if (!strcmp(name, "vkGetPhysicalDeviceXlibPresentationSupportKHR"))
7109 {
7110 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_xlib_surface");
7111 return hasExt ? (void*)entry_vkGetPhysicalDeviceXlibPresentationSupportKHR : nullptr;
7112 }
7113#endif
7114#ifdef VK_KHR_xcb_surface
7115 if (!strcmp(name, "vkCreateXcbSurfaceKHR"))
7116 {
7117 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_xcb_surface");
7118 return hasExt ? (void*)entry_vkCreateXcbSurfaceKHR : nullptr;
7119 }
7120 if (!strcmp(name, "vkGetPhysicalDeviceXcbPresentationSupportKHR"))
7121 {
7122 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_xcb_surface");
7123 return hasExt ? (void*)entry_vkGetPhysicalDeviceXcbPresentationSupportKHR : nullptr;
7124 }
7125#endif
7126#ifdef VK_KHR_wayland_surface
7127 if (!strcmp(name, "vkCreateWaylandSurfaceKHR"))
7128 {
7129 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_wayland_surface");
7130 return hasExt ? (void*)entry_vkCreateWaylandSurfaceKHR : nullptr;
7131 }
7132 if (!strcmp(name, "vkGetPhysicalDeviceWaylandPresentationSupportKHR"))
7133 {
7134 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_wayland_surface");
7135 return hasExt ? (void*)entry_vkGetPhysicalDeviceWaylandPresentationSupportKHR : nullptr;
7136 }
7137#endif
7138#ifdef VK_KHR_mir_surface
7139 if (!strcmp(name, "vkCreateMirSurfaceKHR"))
7140 {
7141 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_mir_surface");
7142 return hasExt ? (void*)entry_vkCreateMirSurfaceKHR : nullptr;
7143 }
7144 if (!strcmp(name, "vkGetPhysicalDeviceMirPresentationSupportKHR"))
7145 {
7146 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_mir_surface");
7147 return hasExt ? (void*)entry_vkGetPhysicalDeviceMirPresentationSupportKHR : nullptr;
7148 }
7149#endif
7150#ifdef VK_KHR_android_surface
7151 if (!strcmp(name, "vkCreateAndroidSurfaceKHR"))
7152 {
7153 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_android_surface");
7154 return hasExt ? (void*)entry_vkCreateAndroidSurfaceKHR : nullptr;
7155 }
7156#endif
7157#ifdef VK_KHR_win32_surface
7158 if (!strcmp(name, "vkCreateWin32SurfaceKHR"))
7159 {
7160 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_win32_surface");
7161 return hasExt ? (void*)entry_vkCreateWin32SurfaceKHR : nullptr;
7162 }
7163 if (!strcmp(name, "vkGetPhysicalDeviceWin32PresentationSupportKHR"))
7164 {
7165 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_win32_surface");
7166 return hasExt ? (void*)entry_vkGetPhysicalDeviceWin32PresentationSupportKHR : nullptr;
7167 }
7168#endif
7169#ifdef VK_KHR_get_physical_device_properties2
7170 if (!strcmp(name, "vkGetPhysicalDeviceFeatures2KHR"))
7171 {
7172 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
7173 return hasExt ? (void*)entry_vkGetPhysicalDeviceFeatures2KHR : nullptr;
7174 }
7175 if (!strcmp(name, "vkGetPhysicalDeviceProperties2KHR"))
7176 {
7177 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
7178 return hasExt ? (void*)entry_vkGetPhysicalDeviceProperties2KHR : nullptr;
7179 }
7180 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties2KHR"))
7181 {
7182 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
7183 return hasExt ? (void*)entry_vkGetPhysicalDeviceFormatProperties2KHR : nullptr;
7184 }
7185 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties2KHR"))
7186 {
7187 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
7188 return hasExt ? (void*)entry_vkGetPhysicalDeviceImageFormatProperties2KHR : nullptr;
7189 }
7190 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties2KHR"))
7191 {
7192 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
7193 return hasExt ? (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties2KHR : nullptr;
7194 }
7195 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties2KHR"))
7196 {
7197 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
7198 return hasExt ? (void*)entry_vkGetPhysicalDeviceMemoryProperties2KHR : nullptr;
7199 }
7200 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR"))
7201 {
7202 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
7203 return hasExt ? (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties2KHR : nullptr;
7204 }
7205#endif
7206#ifdef VK_KHR_device_group
7207 if (!strcmp(name, "vkGetDeviceGroupPeerMemoryFeaturesKHR"))
7208 {
7209 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_device_group");
7210 return hasExt ? (void*)entry_vkGetDeviceGroupPeerMemoryFeaturesKHR : nullptr;
7211 }
7212 if (!strcmp(name, "vkCmdSetDeviceMaskKHR"))
7213 {
7214 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_device_group");
7215 return hasExt ? (void*)entry_vkCmdSetDeviceMaskKHR : nullptr;
7216 }
7217 if (!strcmp(name, "vkCmdDispatchBaseKHR"))
7218 {
7219 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_device_group");
7220 return hasExt ? (void*)entry_vkCmdDispatchBaseKHR : nullptr;
7221 }
7222#endif
7223#ifdef VK_KHR_maintenance1
7224 if (!strcmp(name, "vkTrimCommandPoolKHR"))
7225 {
7226 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_maintenance1");
7227 return hasExt ? (void*)entry_vkTrimCommandPoolKHR : nullptr;
7228 }
7229#endif
7230#ifdef VK_KHR_device_group_creation
7231 if (!strcmp(name, "vkEnumeratePhysicalDeviceGroupsKHR"))
7232 {
7233 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_device_group_creation");
7234 return hasExt ? (void*)entry_vkEnumeratePhysicalDeviceGroupsKHR : nullptr;
7235 }
7236#endif
7237#ifdef VK_KHR_external_memory_capabilities
7238 if (!strcmp(name, "vkGetPhysicalDeviceExternalBufferPropertiesKHR"))
7239 {
7240 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_memory_capabilities");
7241 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalBufferPropertiesKHR : nullptr;
7242 }
7243#endif
7244#ifdef VK_KHR_external_memory_win32
7245 if (!strcmp(name, "vkGetMemoryWin32HandleKHR"))
7246 {
7247 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_memory_win32");
7248 return hasExt ? (void*)entry_vkGetMemoryWin32HandleKHR : nullptr;
7249 }
7250 if (!strcmp(name, "vkGetMemoryWin32HandlePropertiesKHR"))
7251 {
7252 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_memory_win32");
7253 return hasExt ? (void*)entry_vkGetMemoryWin32HandlePropertiesKHR : nullptr;
7254 }
7255#endif
7256#ifdef VK_KHR_external_memory_fd
7257 if (!strcmp(name, "vkGetMemoryFdKHR"))
7258 {
7259 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_memory_fd");
7260 return hasExt ? (void*)entry_vkGetMemoryFdKHR : nullptr;
7261 }
7262 if (!strcmp(name, "vkGetMemoryFdPropertiesKHR"))
7263 {
7264 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_memory_fd");
7265 return hasExt ? (void*)entry_vkGetMemoryFdPropertiesKHR : nullptr;
7266 }
7267#endif
7268#ifdef VK_KHR_external_semaphore_capabilities
7269 if (!strcmp(name, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR"))
7270 {
7271 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_semaphore_capabilities");
7272 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR : nullptr;
7273 }
7274#endif
7275#ifdef VK_KHR_external_semaphore_win32
7276 if (!strcmp(name, "vkImportSemaphoreWin32HandleKHR"))
7277 {
7278 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_semaphore_win32");
7279 return hasExt ? (void*)entry_vkImportSemaphoreWin32HandleKHR : nullptr;
7280 }
7281 if (!strcmp(name, "vkGetSemaphoreWin32HandleKHR"))
7282 {
7283 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_semaphore_win32");
7284 return hasExt ? (void*)entry_vkGetSemaphoreWin32HandleKHR : nullptr;
7285 }
7286#endif
7287#ifdef VK_KHR_external_semaphore_fd
7288 if (!strcmp(name, "vkImportSemaphoreFdKHR"))
7289 {
7290 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_semaphore_fd");
7291 return hasExt ? (void*)entry_vkImportSemaphoreFdKHR : nullptr;
7292 }
7293 if (!strcmp(name, "vkGetSemaphoreFdKHR"))
7294 {
7295 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_semaphore_fd");
7296 return hasExt ? (void*)entry_vkGetSemaphoreFdKHR : nullptr;
7297 }
7298#endif
7299#ifdef VK_KHR_push_descriptor
7300 if (!strcmp(name, "vkCmdPushDescriptorSetKHR"))
7301 {
7302 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_push_descriptor");
7303 return hasExt ? (void*)entry_vkCmdPushDescriptorSetKHR : nullptr;
7304 }
7305 if (!strcmp(name, "vkCmdPushDescriptorSetWithTemplateKHR"))
7306 {
7307 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_push_descriptor");
7308 return hasExt ? (void*)entry_vkCmdPushDescriptorSetWithTemplateKHR : nullptr;
7309 }
7310#endif
7311#ifdef VK_KHR_descriptor_update_template
7312 if (!strcmp(name, "vkCreateDescriptorUpdateTemplateKHR"))
7313 {
7314 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_descriptor_update_template");
7315 return hasExt ? (void*)entry_vkCreateDescriptorUpdateTemplateKHR : nullptr;
7316 }
7317 if (!strcmp(name, "vkDestroyDescriptorUpdateTemplateKHR"))
7318 {
7319 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_descriptor_update_template");
7320 return hasExt ? (void*)entry_vkDestroyDescriptorUpdateTemplateKHR : nullptr;
7321 }
7322 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplateKHR"))
7323 {
7324 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_descriptor_update_template");
7325 return hasExt ? (void*)entry_vkUpdateDescriptorSetWithTemplateKHR : nullptr;
7326 }
7327#endif
7328#ifdef VK_KHR_create_renderpass2
7329 if (!strcmp(name, "vkCreateRenderPass2KHR"))
7330 {
7331 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_create_renderpass2");
7332 return hasExt ? (void*)entry_vkCreateRenderPass2KHR : nullptr;
7333 }
7334 if (!strcmp(name, "vkCmdBeginRenderPass2KHR"))
7335 {
7336 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_create_renderpass2");
7337 return hasExt ? (void*)entry_vkCmdBeginRenderPass2KHR : nullptr;
7338 }
7339 if (!strcmp(name, "vkCmdNextSubpass2KHR"))
7340 {
7341 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_create_renderpass2");
7342 return hasExt ? (void*)entry_vkCmdNextSubpass2KHR : nullptr;
7343 }
7344 if (!strcmp(name, "vkCmdEndRenderPass2KHR"))
7345 {
7346 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_create_renderpass2");
7347 return hasExt ? (void*)entry_vkCmdEndRenderPass2KHR : nullptr;
7348 }
7349#endif
7350#ifdef VK_KHR_shared_presentable_image
7351 if (!strcmp(name, "vkGetSwapchainStatusKHR"))
7352 {
7353 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_shared_presentable_image");
7354 return hasExt ? (void*)entry_vkGetSwapchainStatusKHR : nullptr;
7355 }
7356#endif
7357#ifdef VK_KHR_external_fence_capabilities
7358 if (!strcmp(name, "vkGetPhysicalDeviceExternalFencePropertiesKHR"))
7359 {
7360 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_fence_capabilities");
7361 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalFencePropertiesKHR : nullptr;
7362 }
7363#endif
7364#ifdef VK_KHR_external_fence_win32
7365 if (!strcmp(name, "vkImportFenceWin32HandleKHR"))
7366 {
7367 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_fence_win32");
7368 return hasExt ? (void*)entry_vkImportFenceWin32HandleKHR : nullptr;
7369 }
7370 if (!strcmp(name, "vkGetFenceWin32HandleKHR"))
7371 {
7372 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_fence_win32");
7373 return hasExt ? (void*)entry_vkGetFenceWin32HandleKHR : nullptr;
7374 }
7375#endif
7376#ifdef VK_KHR_external_fence_fd
7377 if (!strcmp(name, "vkImportFenceFdKHR"))
7378 {
7379 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_fence_fd");
7380 return hasExt ? (void*)entry_vkImportFenceFdKHR : nullptr;
7381 }
7382 if (!strcmp(name, "vkGetFenceFdKHR"))
7383 {
7384 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_fence_fd");
7385 return hasExt ? (void*)entry_vkGetFenceFdKHR : nullptr;
7386 }
7387#endif
7388#ifdef VK_KHR_get_surface_capabilities2
7389 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2KHR"))
7390 {
7391 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_surface_capabilities2");
7392 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceCapabilities2KHR : nullptr;
7393 }
7394 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceFormats2KHR"))
7395 {
7396 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_surface_capabilities2");
7397 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceFormats2KHR : nullptr;
7398 }
7399#endif
7400#ifdef VK_KHR_get_display_properties2
7401 if (!strcmp(name, "vkGetPhysicalDeviceDisplayProperties2KHR"))
7402 {
7403 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_display_properties2");
7404 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayProperties2KHR : nullptr;
7405 }
7406 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR"))
7407 {
7408 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_display_properties2");
7409 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayPlaneProperties2KHR : nullptr;
7410 }
7411 if (!strcmp(name, "vkGetDisplayModeProperties2KHR"))
7412 {
7413 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_display_properties2");
7414 return hasExt ? (void*)entry_vkGetDisplayModeProperties2KHR : nullptr;
7415 }
7416 if (!strcmp(name, "vkGetDisplayPlaneCapabilities2KHR"))
7417 {
7418 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_display_properties2");
7419 return hasExt ? (void*)entry_vkGetDisplayPlaneCapabilities2KHR : nullptr;
7420 }
7421#endif
7422#ifdef VK_KHR_get_memory_requirements2
7423 if (!strcmp(name, "vkGetImageMemoryRequirements2KHR"))
7424 {
7425 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_memory_requirements2");
7426 return hasExt ? (void*)entry_vkGetImageMemoryRequirements2KHR : nullptr;
7427 }
7428 if (!strcmp(name, "vkGetBufferMemoryRequirements2KHR"))
7429 {
7430 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_memory_requirements2");
7431 return hasExt ? (void*)entry_vkGetBufferMemoryRequirements2KHR : nullptr;
7432 }
7433 if (!strcmp(name, "vkGetImageSparseMemoryRequirements2KHR"))
7434 {
7435 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_memory_requirements2");
7436 return hasExt ? (void*)entry_vkGetImageSparseMemoryRequirements2KHR : nullptr;
7437 }
7438#endif
7439#ifdef VK_KHR_sampler_ycbcr_conversion
7440 if (!strcmp(name, "vkCreateSamplerYcbcrConversionKHR"))
7441 {
7442 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_sampler_ycbcr_conversion");
7443 return hasExt ? (void*)entry_vkCreateSamplerYcbcrConversionKHR : nullptr;
7444 }
7445 if (!strcmp(name, "vkDestroySamplerYcbcrConversionKHR"))
7446 {
7447 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_sampler_ycbcr_conversion");
7448 return hasExt ? (void*)entry_vkDestroySamplerYcbcrConversionKHR : nullptr;
7449 }
7450#endif
7451#ifdef VK_KHR_bind_memory2
7452 if (!strcmp(name, "vkBindBufferMemory2KHR"))
7453 {
7454 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_bind_memory2");
7455 return hasExt ? (void*)entry_vkBindBufferMemory2KHR : nullptr;
7456 }
7457 if (!strcmp(name, "vkBindImageMemory2KHR"))
7458 {
7459 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_bind_memory2");
7460 return hasExt ? (void*)entry_vkBindImageMemory2KHR : nullptr;
7461 }
7462#endif
7463#ifdef VK_KHR_maintenance3
7464 if (!strcmp(name, "vkGetDescriptorSetLayoutSupportKHR"))
7465 {
7466 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_maintenance3");
7467 return hasExt ? (void*)entry_vkGetDescriptorSetLayoutSupportKHR : nullptr;
7468 }
7469#endif
7470#ifdef VK_KHR_draw_indirect_count
7471 if (!strcmp(name, "vkCmdDrawIndirectCountKHR"))
7472 {
7473 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_draw_indirect_count");
7474 return hasExt ? (void*)entry_vkCmdDrawIndirectCountKHR : nullptr;
7475 }
7476 if (!strcmp(name, "vkCmdDrawIndexedIndirectCountKHR"))
7477 {
7478 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_draw_indirect_count");
7479 return hasExt ? (void*)entry_vkCmdDrawIndexedIndirectCountKHR : nullptr;
7480 }
7481#endif
7482#ifdef VK_ANDROID_native_buffer
7483 if (!strcmp(name, "vkGetSwapchainGrallocUsageANDROID"))
7484 {
7485 bool hasExt = resources->hasDeviceExtension(device, "VK_ANDROID_native_buffer");
7486 return hasExt ? (void*)entry_vkGetSwapchainGrallocUsageANDROID : nullptr;
7487 }
7488 if (!strcmp(name, "vkAcquireImageANDROID"))
7489 {
7490 bool hasExt = resources->hasDeviceExtension(device, "VK_ANDROID_native_buffer");
7491 return hasExt ? (void*)entry_vkAcquireImageANDROID : nullptr;
7492 }
7493 if (!strcmp(name, "vkQueueSignalReleaseImageANDROID"))
7494 {
7495 bool hasExt = resources->hasDeviceExtension(device, "VK_ANDROID_native_buffer");
7496 return hasExt ? (void*)entry_vkQueueSignalReleaseImageANDROID : nullptr;
7497 }
7498#endif
7499#ifdef VK_EXT_debug_report
7500 if (!strcmp(name, "vkCreateDebugReportCallbackEXT"))
7501 {
7502 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_report");
7503 return hasExt ? (void*)entry_vkCreateDebugReportCallbackEXT : nullptr;
7504 }
7505 if (!strcmp(name, "vkDestroyDebugReportCallbackEXT"))
7506 {
7507 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_report");
7508 return hasExt ? (void*)entry_vkDestroyDebugReportCallbackEXT : nullptr;
7509 }
7510 if (!strcmp(name, "vkDebugReportMessageEXT"))
7511 {
7512 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_report");
7513 return hasExt ? (void*)entry_vkDebugReportMessageEXT : nullptr;
7514 }
7515#endif
7516#ifdef VK_EXT_debug_marker
7517 if (!strcmp(name, "vkDebugMarkerSetObjectTagEXT"))
7518 {
7519 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_marker");
7520 return hasExt ? (void*)entry_vkDebugMarkerSetObjectTagEXT : nullptr;
7521 }
7522 if (!strcmp(name, "vkDebugMarkerSetObjectNameEXT"))
7523 {
7524 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_marker");
7525 return hasExt ? (void*)entry_vkDebugMarkerSetObjectNameEXT : nullptr;
7526 }
7527 if (!strcmp(name, "vkCmdDebugMarkerBeginEXT"))
7528 {
7529 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_marker");
7530 return hasExt ? (void*)entry_vkCmdDebugMarkerBeginEXT : nullptr;
7531 }
7532 if (!strcmp(name, "vkCmdDebugMarkerEndEXT"))
7533 {
7534 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_marker");
7535 return hasExt ? (void*)entry_vkCmdDebugMarkerEndEXT : nullptr;
7536 }
7537 if (!strcmp(name, "vkCmdDebugMarkerInsertEXT"))
7538 {
7539 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_marker");
7540 return hasExt ? (void*)entry_vkCmdDebugMarkerInsertEXT : nullptr;
7541 }
7542#endif
7543#ifdef VK_AMD_draw_indirect_count
7544 if (!strcmp(name, "vkCmdDrawIndirectCountAMD"))
7545 {
7546 bool hasExt = resources->hasDeviceExtension(device, "VK_AMD_draw_indirect_count");
7547 return hasExt ? (void*)entry_vkCmdDrawIndirectCountAMD : nullptr;
7548 }
7549 if (!strcmp(name, "vkCmdDrawIndexedIndirectCountAMD"))
7550 {
7551 bool hasExt = resources->hasDeviceExtension(device, "VK_AMD_draw_indirect_count");
7552 return hasExt ? (void*)entry_vkCmdDrawIndexedIndirectCountAMD : nullptr;
7553 }
7554#endif
7555#ifdef VK_AMD_shader_info
7556 if (!strcmp(name, "vkGetShaderInfoAMD"))
7557 {
7558 bool hasExt = resources->hasDeviceExtension(device, "VK_AMD_shader_info");
7559 return hasExt ? (void*)entry_vkGetShaderInfoAMD : nullptr;
7560 }
7561#endif
7562#ifdef VK_NV_external_memory_capabilities
7563 if (!strcmp(name, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV"))
7564 {
7565 bool hasExt = resources->hasDeviceExtension(device, "VK_NV_external_memory_capabilities");
7566 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalImageFormatPropertiesNV : nullptr;
7567 }
7568#endif
7569#ifdef VK_NV_external_memory_win32
7570 if (!strcmp(name, "vkGetMemoryWin32HandleNV"))
7571 {
7572 bool hasExt = resources->hasDeviceExtension(device, "VK_NV_external_memory_win32");
7573 return hasExt ? (void*)entry_vkGetMemoryWin32HandleNV : nullptr;
7574 }
7575#endif
7576#ifdef VK_NN_vi_surface
7577 if (!strcmp(name, "vkCreateViSurfaceNN"))
7578 {
7579 bool hasExt = resources->hasDeviceExtension(device, "VK_NN_vi_surface");
7580 return hasExt ? (void*)entry_vkCreateViSurfaceNN : nullptr;
7581 }
7582#endif
7583#ifdef VK_EXT_conditional_rendering
7584 if (!strcmp(name, "vkCmdBeginConditionalRenderingEXT"))
7585 {
7586 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_conditional_rendering");
7587 return hasExt ? (void*)entry_vkCmdBeginConditionalRenderingEXT : nullptr;
7588 }
7589 if (!strcmp(name, "vkCmdEndConditionalRenderingEXT"))
7590 {
7591 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_conditional_rendering");
7592 return hasExt ? (void*)entry_vkCmdEndConditionalRenderingEXT : nullptr;
7593 }
7594#endif
7595#ifdef VK_NVX_device_generated_commands
7596 if (!strcmp(name, "vkCmdProcessCommandsNVX"))
7597 {
7598 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
7599 return hasExt ? (void*)entry_vkCmdProcessCommandsNVX : nullptr;
7600 }
7601 if (!strcmp(name, "vkCmdReserveSpaceForCommandsNVX"))
7602 {
7603 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
7604 return hasExt ? (void*)entry_vkCmdReserveSpaceForCommandsNVX : nullptr;
7605 }
7606 if (!strcmp(name, "vkCreateIndirectCommandsLayoutNVX"))
7607 {
7608 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
7609 return hasExt ? (void*)entry_vkCreateIndirectCommandsLayoutNVX : nullptr;
7610 }
7611 if (!strcmp(name, "vkDestroyIndirectCommandsLayoutNVX"))
7612 {
7613 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
7614 return hasExt ? (void*)entry_vkDestroyIndirectCommandsLayoutNVX : nullptr;
7615 }
7616 if (!strcmp(name, "vkCreateObjectTableNVX"))
7617 {
7618 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
7619 return hasExt ? (void*)entry_vkCreateObjectTableNVX : nullptr;
7620 }
7621 if (!strcmp(name, "vkDestroyObjectTableNVX"))
7622 {
7623 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
7624 return hasExt ? (void*)entry_vkDestroyObjectTableNVX : nullptr;
7625 }
7626 if (!strcmp(name, "vkRegisterObjectsNVX"))
7627 {
7628 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
7629 return hasExt ? (void*)entry_vkRegisterObjectsNVX : nullptr;
7630 }
7631 if (!strcmp(name, "vkUnregisterObjectsNVX"))
7632 {
7633 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
7634 return hasExt ? (void*)entry_vkUnregisterObjectsNVX : nullptr;
7635 }
7636 if (!strcmp(name, "vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX"))
7637 {
7638 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
7639 return hasExt ? (void*)entry_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX : nullptr;
7640 }
7641#endif
7642#ifdef VK_NV_clip_space_w_scaling
7643 if (!strcmp(name, "vkCmdSetViewportWScalingNV"))
7644 {
7645 bool hasExt = resources->hasDeviceExtension(device, "VK_NV_clip_space_w_scaling");
7646 return hasExt ? (void*)entry_vkCmdSetViewportWScalingNV : nullptr;
7647 }
7648#endif
7649#ifdef VK_EXT_direct_mode_display
7650 if (!strcmp(name, "vkReleaseDisplayEXT"))
7651 {
7652 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_direct_mode_display");
7653 return hasExt ? (void*)entry_vkReleaseDisplayEXT : nullptr;
7654 }
7655#endif
7656#ifdef VK_EXT_acquire_xlib_display
7657 if (!strcmp(name, "vkAcquireXlibDisplayEXT"))
7658 {
7659 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_acquire_xlib_display");
7660 return hasExt ? (void*)entry_vkAcquireXlibDisplayEXT : nullptr;
7661 }
7662 if (!strcmp(name, "vkGetRandROutputDisplayEXT"))
7663 {
7664 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_acquire_xlib_display");
7665 return hasExt ? (void*)entry_vkGetRandROutputDisplayEXT : nullptr;
7666 }
7667#endif
7668#ifdef VK_EXT_display_surface_counter
7669 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2EXT"))
7670 {
7671 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_display_surface_counter");
7672 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceCapabilities2EXT : nullptr;
7673 }
7674#endif
7675#ifdef VK_EXT_display_control
7676 if (!strcmp(name, "vkDisplayPowerControlEXT"))
7677 {
7678 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_display_control");
7679 return hasExt ? (void*)entry_vkDisplayPowerControlEXT : nullptr;
7680 }
7681 if (!strcmp(name, "vkRegisterDeviceEventEXT"))
7682 {
7683 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_display_control");
7684 return hasExt ? (void*)entry_vkRegisterDeviceEventEXT : nullptr;
7685 }
7686 if (!strcmp(name, "vkRegisterDisplayEventEXT"))
7687 {
7688 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_display_control");
7689 return hasExt ? (void*)entry_vkRegisterDisplayEventEXT : nullptr;
7690 }
7691 if (!strcmp(name, "vkGetSwapchainCounterEXT"))
7692 {
7693 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_display_control");
7694 return hasExt ? (void*)entry_vkGetSwapchainCounterEXT : nullptr;
7695 }
7696#endif
7697#ifdef VK_GOOGLE_display_timing
7698 if (!strcmp(name, "vkGetRefreshCycleDurationGOOGLE"))
7699 {
7700 bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_display_timing");
7701 return hasExt ? (void*)entry_vkGetRefreshCycleDurationGOOGLE : nullptr;
7702 }
7703 if (!strcmp(name, "vkGetPastPresentationTimingGOOGLE"))
7704 {
7705 bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_display_timing");
7706 return hasExt ? (void*)entry_vkGetPastPresentationTimingGOOGLE : nullptr;
7707 }
7708#endif
7709#ifdef VK_EXT_discard_rectangles
7710 if (!strcmp(name, "vkCmdSetDiscardRectangleEXT"))
7711 {
7712 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_discard_rectangles");
7713 return hasExt ? (void*)entry_vkCmdSetDiscardRectangleEXT : nullptr;
7714 }
7715#endif
7716#ifdef VK_EXT_hdr_metadata
7717 if (!strcmp(name, "vkSetHdrMetadataEXT"))
7718 {
7719 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_hdr_metadata");
7720 return hasExt ? (void*)entry_vkSetHdrMetadataEXT : nullptr;
7721 }
7722#endif
7723#ifdef VK_MVK_ios_surface
7724 if (!strcmp(name, "vkCreateIOSSurfaceMVK"))
7725 {
7726 bool hasExt = resources->hasDeviceExtension(device, "VK_MVK_ios_surface");
7727 return hasExt ? (void*)entry_vkCreateIOSSurfaceMVK : nullptr;
7728 }
7729#endif
7730#ifdef VK_MVK_macos_surface
7731 if (!strcmp(name, "vkCreateMacOSSurfaceMVK"))
7732 {
7733 bool hasExt = resources->hasDeviceExtension(device, "VK_MVK_macos_surface");
7734 return hasExt ? (void*)entry_vkCreateMacOSSurfaceMVK : nullptr;
7735 }
7736#endif
7737#ifdef VK_EXT_debug_utils
7738 if (!strcmp(name, "vkSetDebugUtilsObjectNameEXT"))
7739 {
7740 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
7741 return hasExt ? (void*)entry_vkSetDebugUtilsObjectNameEXT : nullptr;
7742 }
7743 if (!strcmp(name, "vkSetDebugUtilsObjectTagEXT"))
7744 {
7745 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
7746 return hasExt ? (void*)entry_vkSetDebugUtilsObjectTagEXT : nullptr;
7747 }
7748 if (!strcmp(name, "vkQueueBeginDebugUtilsLabelEXT"))
7749 {
7750 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
7751 return hasExt ? (void*)entry_vkQueueBeginDebugUtilsLabelEXT : nullptr;
7752 }
7753 if (!strcmp(name, "vkQueueEndDebugUtilsLabelEXT"))
7754 {
7755 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
7756 return hasExt ? (void*)entry_vkQueueEndDebugUtilsLabelEXT : nullptr;
7757 }
7758 if (!strcmp(name, "vkQueueInsertDebugUtilsLabelEXT"))
7759 {
7760 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
7761 return hasExt ? (void*)entry_vkQueueInsertDebugUtilsLabelEXT : nullptr;
7762 }
7763 if (!strcmp(name, "vkCmdBeginDebugUtilsLabelEXT"))
7764 {
7765 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
7766 return hasExt ? (void*)entry_vkCmdBeginDebugUtilsLabelEXT : nullptr;
7767 }
7768 if (!strcmp(name, "vkCmdEndDebugUtilsLabelEXT"))
7769 {
7770 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
7771 return hasExt ? (void*)entry_vkCmdEndDebugUtilsLabelEXT : nullptr;
7772 }
7773 if (!strcmp(name, "vkCmdInsertDebugUtilsLabelEXT"))
7774 {
7775 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
7776 return hasExt ? (void*)entry_vkCmdInsertDebugUtilsLabelEXT : nullptr;
7777 }
7778 if (!strcmp(name, "vkCreateDebugUtilsMessengerEXT"))
7779 {
7780 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
7781 return hasExt ? (void*)entry_vkCreateDebugUtilsMessengerEXT : nullptr;
7782 }
7783 if (!strcmp(name, "vkDestroyDebugUtilsMessengerEXT"))
7784 {
7785 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
7786 return hasExt ? (void*)entry_vkDestroyDebugUtilsMessengerEXT : nullptr;
7787 }
7788 if (!strcmp(name, "vkSubmitDebugUtilsMessageEXT"))
7789 {
7790 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
7791 return hasExt ? (void*)entry_vkSubmitDebugUtilsMessageEXT : nullptr;
7792 }
7793#endif
7794#ifdef VK_ANDROID_external_memory_android_hardware_buffer
7795 if (!strcmp(name, "vkGetAndroidHardwareBufferPropertiesANDROID"))
7796 {
7797 bool hasExt = resources->hasDeviceExtension(device, "VK_ANDROID_external_memory_android_hardware_buffer");
7798 return hasExt ? (void*)entry_vkGetAndroidHardwareBufferPropertiesANDROID : nullptr;
7799 }
7800 if (!strcmp(name, "vkGetMemoryAndroidHardwareBufferANDROID"))
7801 {
7802 bool hasExt = resources->hasDeviceExtension(device, "VK_ANDROID_external_memory_android_hardware_buffer");
7803 return hasExt ? (void*)entry_vkGetMemoryAndroidHardwareBufferANDROID : nullptr;
7804 }
7805#endif
7806#ifdef VK_EXT_sample_locations
7807 if (!strcmp(name, "vkCmdSetSampleLocationsEXT"))
7808 {
7809 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_sample_locations");
7810 return hasExt ? (void*)entry_vkCmdSetSampleLocationsEXT : nullptr;
7811 }
7812 if (!strcmp(name, "vkGetPhysicalDeviceMultisamplePropertiesEXT"))
7813 {
7814 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_sample_locations");
7815 return hasExt ? (void*)entry_vkGetPhysicalDeviceMultisamplePropertiesEXT : nullptr;
7816 }
7817#endif
7818#ifdef VK_EXT_validation_cache
7819 if (!strcmp(name, "vkCreateValidationCacheEXT"))
7820 {
7821 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_validation_cache");
7822 return hasExt ? (void*)entry_vkCreateValidationCacheEXT : nullptr;
7823 }
7824 if (!strcmp(name, "vkDestroyValidationCacheEXT"))
7825 {
7826 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_validation_cache");
7827 return hasExt ? (void*)entry_vkDestroyValidationCacheEXT : nullptr;
7828 }
7829 if (!strcmp(name, "vkMergeValidationCachesEXT"))
7830 {
7831 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_validation_cache");
7832 return hasExt ? (void*)entry_vkMergeValidationCachesEXT : nullptr;
7833 }
7834 if (!strcmp(name, "vkGetValidationCacheDataEXT"))
7835 {
7836 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_validation_cache");
7837 return hasExt ? (void*)entry_vkGetValidationCacheDataEXT : nullptr;
7838 }
7839#endif
7840#ifdef VK_EXT_external_memory_host
7841 if (!strcmp(name, "vkGetMemoryHostPointerPropertiesEXT"))
7842 {
7843 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_external_memory_host");
7844 return hasExt ? (void*)entry_vkGetMemoryHostPointerPropertiesEXT : nullptr;
7845 }
7846#endif
7847#ifdef VK_AMD_buffer_marker
7848 if (!strcmp(name, "vkCmdWriteBufferMarkerAMD"))
7849 {
7850 bool hasExt = resources->hasDeviceExtension(device, "VK_AMD_buffer_marker");
7851 return hasExt ? (void*)entry_vkCmdWriteBufferMarkerAMD : nullptr;
7852 }
7853#endif
7854#ifdef VK_NV_device_diagnostic_checkpoints
7855 if (!strcmp(name, "vkCmdSetCheckpointNV"))
7856 {
7857 bool hasExt = resources->hasDeviceExtension(device, "VK_NV_device_diagnostic_checkpoints");
7858 return hasExt ? (void*)entry_vkCmdSetCheckpointNV : nullptr;
7859 }
7860 if (!strcmp(name, "vkGetQueueCheckpointDataNV"))
7861 {
7862 bool hasExt = resources->hasDeviceExtension(device, "VK_NV_device_diagnostic_checkpoints");
7863 return hasExt ? (void*)entry_vkGetQueueCheckpointDataNV : nullptr;
7864 }
7865#endif
7866#ifdef VK_GOOGLE_address_space
7867 if (!strcmp(name, "vkMapMemoryIntoAddressSpaceGOOGLE"))
7868 {
7869 bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_address_space");
7870 return hasExt ? (void*)entry_vkMapMemoryIntoAddressSpaceGOOGLE : nullptr;
Lingfeng Yang5c63afd2018-12-22 01:21:14 -08007871 }
7872#endif
Lingfeng Yang0b81df22018-11-05 21:40:30 -08007873 return nullptr;
7874}
7875
7876} // namespace goldfish_vk