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