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