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