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