blob: 3ce65a12fe897433fe9b26c71f9fbb4c8f77f257 [file] [log] [blame]
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001// Copyright (C) 2018 The Android Open Source Project
2// Copyright (C) 2018 Google Inc.
3//
4// Licensed under the Apache License, Version 2.0 (the "License");
5// you may not use this file except in compliance with the License.
6// You may obtain a copy of the License at
7//
8// http://www.apache.org/licenses/LICENSE-2.0
9//
10// Unless required by applicable law or agreed to in writing, software
11// distributed under the License is distributed on an "AS IS" BASIS,
12// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13// See the License for the specific language governing permissions and
14// limitations under the License.
15
16// Autogenerated module func_table
17// (impl) generated by android/android-emugl/host/libs/libOpenglRender/vulkan-registry/xml/genvk.py -registry android/android-emugl/host/libs/libOpenglRender/vulkan-registry/xml/vk.xml cereal -o android/android-emugl/host/libs/libOpenglRender/vulkan/cereal
18// Please do not modify directly;
19// re-run android/scripts/generate-vulkan-sources.sh,
20// or directly from Python by defining:
21// VULKAN_REGISTRY_XML_DIR : Directory containing genvk.py and vk.xml
22// CEREAL_OUTPUT_DIR: Where to put the generated sources.
23// python3 $VULKAN_REGISTRY_XML_DIR/genvk.py -registry $VULKAN_REGISTRY_XML_DIR/vk.xml cereal -o $CEREAL_OUTPUT_DIR
24
25#include "func_table.h"
26
27
28#include "VkEncoder.h"
29#include "HostConnection.h"
Lingfeng Yange9979522018-12-25 14:44:52 -080030#include "ResourceTracker.h"
Lingfeng Yang0b81df22018-11-05 21:40:30 -080031
Lingfeng Yang808a6312018-11-13 21:06:15 -080032#include "goldfish_vk_private_defs.h"
33
Lingfeng Yang0b81df22018-11-05 21:40:30 -080034// Stuff we are not going to use but if included,
35// will cause compile errors. These are Android Vulkan
36// required extensions, but the approach will be to
37// implement them completely on the guest side.
38#undef VK_KHR_android_surface
39#undef VK_ANDROID_external_memory_android_hardware_buffer
40
41
42namespace goldfish_vk {
43
44#ifdef VK_VERSION_1_0
45static VkResult entry_vkCreateInstance(
46 const VkInstanceCreateInfo* pCreateInfo,
47 const VkAllocationCallbacks* pAllocator,
48 VkInstance* pInstance)
49{
Lingfeng Yang42ac1792019-02-22 20:13:44 -080050 AEMU_SCOPED_TRACE("vkCreateInstance");
Lingfeng Yang0b81df22018-11-05 21:40:30 -080051 auto vkEnc = HostConnection::get()->vkEncoder();
52 VkResult vkCreateInstance_VkResult_return = (VkResult)0;
53 vkCreateInstance_VkResult_return = vkEnc->vkCreateInstance(pCreateInfo, pAllocator, pInstance);
54 return vkCreateInstance_VkResult_return;
55}
56static void entry_vkDestroyInstance(
57 VkInstance instance,
58 const VkAllocationCallbacks* pAllocator)
59{
Lingfeng Yang42ac1792019-02-22 20:13:44 -080060 AEMU_SCOPED_TRACE("vkDestroyInstance");
Lingfeng Yang0b81df22018-11-05 21:40:30 -080061 auto vkEnc = HostConnection::get()->vkEncoder();
62 vkEnc->vkDestroyInstance(instance, pAllocator);
63}
64static VkResult entry_vkEnumeratePhysicalDevices(
65 VkInstance instance,
66 uint32_t* pPhysicalDeviceCount,
67 VkPhysicalDevice* pPhysicalDevices)
68{
Lingfeng Yang42ac1792019-02-22 20:13:44 -080069 AEMU_SCOPED_TRACE("vkEnumeratePhysicalDevices");
Lingfeng Yang0b81df22018-11-05 21:40:30 -080070 auto vkEnc = HostConnection::get()->vkEncoder();
71 VkResult vkEnumeratePhysicalDevices_VkResult_return = (VkResult)0;
Lingfeng Yangb64ca452019-02-14 22:04:28 -080072 auto resources = ResourceTracker::get();
73 vkEnumeratePhysicalDevices_VkResult_return = resources->on_vkEnumeratePhysicalDevices(vkEnc, VK_SUCCESS, instance, pPhysicalDeviceCount, pPhysicalDevices);
Lingfeng Yang0b81df22018-11-05 21:40:30 -080074 return vkEnumeratePhysicalDevices_VkResult_return;
75}
76static void entry_vkGetPhysicalDeviceFeatures(
77 VkPhysicalDevice physicalDevice,
78 VkPhysicalDeviceFeatures* pFeatures)
79{
Lingfeng Yang42ac1792019-02-22 20:13:44 -080080 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFeatures");
Lingfeng Yang0b81df22018-11-05 21:40:30 -080081 auto vkEnc = HostConnection::get()->vkEncoder();
82 vkEnc->vkGetPhysicalDeviceFeatures(physicalDevice, pFeatures);
83}
84static void entry_vkGetPhysicalDeviceFormatProperties(
85 VkPhysicalDevice physicalDevice,
86 VkFormat format,
87 VkFormatProperties* pFormatProperties)
88{
Lingfeng Yang42ac1792019-02-22 20:13:44 -080089 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFormatProperties");
Lingfeng Yang0b81df22018-11-05 21:40:30 -080090 auto vkEnc = HostConnection::get()->vkEncoder();
91 vkEnc->vkGetPhysicalDeviceFormatProperties(physicalDevice, format, pFormatProperties);
92}
93static VkResult entry_vkGetPhysicalDeviceImageFormatProperties(
94 VkPhysicalDevice physicalDevice,
95 VkFormat format,
96 VkImageType type,
97 VkImageTiling tiling,
98 VkImageUsageFlags usage,
99 VkImageCreateFlags flags,
100 VkImageFormatProperties* pImageFormatProperties)
101{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800102 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceImageFormatProperties");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800103 auto vkEnc = HostConnection::get()->vkEncoder();
104 VkResult vkGetPhysicalDeviceImageFormatProperties_VkResult_return = (VkResult)0;
105 vkGetPhysicalDeviceImageFormatProperties_VkResult_return = vkEnc->vkGetPhysicalDeviceImageFormatProperties(physicalDevice, format, type, tiling, usage, flags, pImageFormatProperties);
106 return vkGetPhysicalDeviceImageFormatProperties_VkResult_return;
107}
108static void entry_vkGetPhysicalDeviceProperties(
109 VkPhysicalDevice physicalDevice,
110 VkPhysicalDeviceProperties* pProperties)
111{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800112 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceProperties");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800113 auto vkEnc = HostConnection::get()->vkEncoder();
114 vkEnc->vkGetPhysicalDeviceProperties(physicalDevice, pProperties);
115}
116static void entry_vkGetPhysicalDeviceQueueFamilyProperties(
117 VkPhysicalDevice physicalDevice,
118 uint32_t* pQueueFamilyPropertyCount,
119 VkQueueFamilyProperties* pQueueFamilyProperties)
120{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800121 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceQueueFamilyProperties");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800122 auto vkEnc = HostConnection::get()->vkEncoder();
123 vkEnc->vkGetPhysicalDeviceQueueFamilyProperties(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties);
124}
125static void entry_vkGetPhysicalDeviceMemoryProperties(
126 VkPhysicalDevice physicalDevice,
127 VkPhysicalDeviceMemoryProperties* pMemoryProperties)
128{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800129 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMemoryProperties");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800130 auto vkEnc = HostConnection::get()->vkEncoder();
131 vkEnc->vkGetPhysicalDeviceMemoryProperties(physicalDevice, pMemoryProperties);
132}
133static PFN_vkVoidFunction entry_vkGetInstanceProcAddr(
134 VkInstance instance,
135 const char* pName)
136{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800137 AEMU_SCOPED_TRACE("vkGetInstanceProcAddr");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800138 auto vkEnc = HostConnection::get()->vkEncoder();
139 PFN_vkVoidFunction vkGetInstanceProcAddr_PFN_vkVoidFunction_return = (PFN_vkVoidFunction)0;
140 vkGetInstanceProcAddr_PFN_vkVoidFunction_return = vkEnc->vkGetInstanceProcAddr(instance, pName);
141 return vkGetInstanceProcAddr_PFN_vkVoidFunction_return;
142}
143static PFN_vkVoidFunction entry_vkGetDeviceProcAddr(
144 VkDevice device,
145 const char* pName)
146{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800147 AEMU_SCOPED_TRACE("vkGetDeviceProcAddr");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800148 auto vkEnc = HostConnection::get()->vkEncoder();
149 PFN_vkVoidFunction vkGetDeviceProcAddr_PFN_vkVoidFunction_return = (PFN_vkVoidFunction)0;
150 vkGetDeviceProcAddr_PFN_vkVoidFunction_return = vkEnc->vkGetDeviceProcAddr(device, pName);
151 return vkGetDeviceProcAddr_PFN_vkVoidFunction_return;
152}
153static VkResult entry_vkCreateDevice(
154 VkPhysicalDevice physicalDevice,
155 const VkDeviceCreateInfo* pCreateInfo,
156 const VkAllocationCallbacks* pAllocator,
157 VkDevice* pDevice)
158{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800159 AEMU_SCOPED_TRACE("vkCreateDevice");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800160 auto vkEnc = HostConnection::get()->vkEncoder();
161 VkResult vkCreateDevice_VkResult_return = (VkResult)0;
162 vkCreateDevice_VkResult_return = vkEnc->vkCreateDevice(physicalDevice, pCreateInfo, pAllocator, pDevice);
163 return vkCreateDevice_VkResult_return;
164}
165static void entry_vkDestroyDevice(
166 VkDevice device,
167 const VkAllocationCallbacks* pAllocator)
168{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800169 AEMU_SCOPED_TRACE("vkDestroyDevice");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800170 auto vkEnc = HostConnection::get()->vkEncoder();
171 vkEnc->vkDestroyDevice(device, pAllocator);
172}
173static VkResult entry_vkEnumerateInstanceExtensionProperties(
174 const char* pLayerName,
175 uint32_t* pPropertyCount,
176 VkExtensionProperties* pProperties)
177{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800178 AEMU_SCOPED_TRACE("vkEnumerateInstanceExtensionProperties");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800179 auto vkEnc = HostConnection::get()->vkEncoder();
180 VkResult vkEnumerateInstanceExtensionProperties_VkResult_return = (VkResult)0;
Lingfeng Yang154a33c2019-01-29 19:06:23 -0800181 auto resources = ResourceTracker::get();
182 vkEnumerateInstanceExtensionProperties_VkResult_return = resources->on_vkEnumerateInstanceExtensionProperties(vkEnc, VK_SUCCESS, pLayerName, pPropertyCount, pProperties);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800183 return vkEnumerateInstanceExtensionProperties_VkResult_return;
184}
185static VkResult entry_vkEnumerateDeviceExtensionProperties(
186 VkPhysicalDevice physicalDevice,
187 const char* pLayerName,
188 uint32_t* pPropertyCount,
189 VkExtensionProperties* pProperties)
190{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800191 AEMU_SCOPED_TRACE("vkEnumerateDeviceExtensionProperties");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800192 auto vkEnc = HostConnection::get()->vkEncoder();
193 VkResult vkEnumerateDeviceExtensionProperties_VkResult_return = (VkResult)0;
Lingfeng Yang154a33c2019-01-29 19:06:23 -0800194 auto resources = ResourceTracker::get();
195 vkEnumerateDeviceExtensionProperties_VkResult_return = resources->on_vkEnumerateDeviceExtensionProperties(vkEnc, VK_SUCCESS, physicalDevice, pLayerName, pPropertyCount, pProperties);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800196 return vkEnumerateDeviceExtensionProperties_VkResult_return;
197}
198static VkResult entry_vkEnumerateInstanceLayerProperties(
199 uint32_t* pPropertyCount,
200 VkLayerProperties* pProperties)
201{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800202 AEMU_SCOPED_TRACE("vkEnumerateInstanceLayerProperties");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800203 auto vkEnc = HostConnection::get()->vkEncoder();
204 VkResult vkEnumerateInstanceLayerProperties_VkResult_return = (VkResult)0;
205 vkEnumerateInstanceLayerProperties_VkResult_return = vkEnc->vkEnumerateInstanceLayerProperties(pPropertyCount, pProperties);
206 return vkEnumerateInstanceLayerProperties_VkResult_return;
207}
208static VkResult entry_vkEnumerateDeviceLayerProperties(
209 VkPhysicalDevice physicalDevice,
210 uint32_t* pPropertyCount,
211 VkLayerProperties* pProperties)
212{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800213 AEMU_SCOPED_TRACE("vkEnumerateDeviceLayerProperties");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800214 auto vkEnc = HostConnection::get()->vkEncoder();
215 VkResult vkEnumerateDeviceLayerProperties_VkResult_return = (VkResult)0;
216 vkEnumerateDeviceLayerProperties_VkResult_return = vkEnc->vkEnumerateDeviceLayerProperties(physicalDevice, pPropertyCount, pProperties);
217 return vkEnumerateDeviceLayerProperties_VkResult_return;
218}
219static void entry_vkGetDeviceQueue(
220 VkDevice device,
221 uint32_t queueFamilyIndex,
222 uint32_t queueIndex,
223 VkQueue* pQueue)
224{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800225 AEMU_SCOPED_TRACE("vkGetDeviceQueue");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800226 auto vkEnc = HostConnection::get()->vkEncoder();
227 vkEnc->vkGetDeviceQueue(device, queueFamilyIndex, queueIndex, pQueue);
228}
229static VkResult entry_vkQueueSubmit(
230 VkQueue queue,
231 uint32_t submitCount,
232 const VkSubmitInfo* pSubmits,
233 VkFence fence)
234{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800235 AEMU_SCOPED_TRACE("vkQueueSubmit");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800236 auto vkEnc = HostConnection::get()->vkEncoder();
237 VkResult vkQueueSubmit_VkResult_return = (VkResult)0;
David Reveman24710222019-02-25 02:21:42 -0500238 auto resources = ResourceTracker::get();
239 vkQueueSubmit_VkResult_return = resources->on_vkQueueSubmit(vkEnc, VK_SUCCESS, queue, submitCount, pSubmits, fence);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800240 return vkQueueSubmit_VkResult_return;
241}
242static VkResult entry_vkQueueWaitIdle(
243 VkQueue queue)
244{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800245 AEMU_SCOPED_TRACE("vkQueueWaitIdle");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800246 auto vkEnc = HostConnection::get()->vkEncoder();
247 VkResult vkQueueWaitIdle_VkResult_return = (VkResult)0;
248 vkQueueWaitIdle_VkResult_return = vkEnc->vkQueueWaitIdle(queue);
249 return vkQueueWaitIdle_VkResult_return;
250}
251static VkResult entry_vkDeviceWaitIdle(
252 VkDevice device)
253{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800254 AEMU_SCOPED_TRACE("vkDeviceWaitIdle");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800255 auto vkEnc = HostConnection::get()->vkEncoder();
256 VkResult vkDeviceWaitIdle_VkResult_return = (VkResult)0;
257 vkDeviceWaitIdle_VkResult_return = vkEnc->vkDeviceWaitIdle(device);
258 return vkDeviceWaitIdle_VkResult_return;
259}
260static VkResult entry_vkAllocateMemory(
261 VkDevice device,
262 const VkMemoryAllocateInfo* pAllocateInfo,
263 const VkAllocationCallbacks* pAllocator,
264 VkDeviceMemory* pMemory)
265{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800266 AEMU_SCOPED_TRACE("vkAllocateMemory");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800267 auto vkEnc = HostConnection::get()->vkEncoder();
268 VkResult vkAllocateMemory_VkResult_return = (VkResult)0;
Lingfeng Yange9979522018-12-25 14:44:52 -0800269 auto resources = ResourceTracker::get();
270 vkAllocateMemory_VkResult_return = resources->on_vkAllocateMemory(vkEnc, VK_SUCCESS, device, pAllocateInfo, pAllocator, pMemory);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800271 return vkAllocateMemory_VkResult_return;
272}
273static void entry_vkFreeMemory(
274 VkDevice device,
275 VkDeviceMemory memory,
276 const VkAllocationCallbacks* pAllocator)
277{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800278 AEMU_SCOPED_TRACE("vkFreeMemory");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800279 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yange9979522018-12-25 14:44:52 -0800280 auto resources = ResourceTracker::get();
281 resources->on_vkFreeMemory(vkEnc, device, memory, pAllocator);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800282}
283static VkResult entry_vkMapMemory(
284 VkDevice device,
285 VkDeviceMemory memory,
286 VkDeviceSize offset,
287 VkDeviceSize size,
288 VkMemoryMapFlags flags,
289 void** ppData)
290{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800291 AEMU_SCOPED_TRACE("vkMapMemory");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800292 auto vkEnc = HostConnection::get()->vkEncoder();
293 VkResult vkMapMemory_VkResult_return = (VkResult)0;
294 vkMapMemory_VkResult_return = vkEnc->vkMapMemory(device, memory, offset, size, flags, ppData);
295 return vkMapMemory_VkResult_return;
296}
297static void entry_vkUnmapMemory(
298 VkDevice device,
299 VkDeviceMemory memory)
300{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800301 AEMU_SCOPED_TRACE("vkUnmapMemory");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800302 auto vkEnc = HostConnection::get()->vkEncoder();
303 vkEnc->vkUnmapMemory(device, memory);
304}
305static VkResult entry_vkFlushMappedMemoryRanges(
306 VkDevice device,
307 uint32_t memoryRangeCount,
308 const VkMappedMemoryRange* pMemoryRanges)
309{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800310 AEMU_SCOPED_TRACE("vkFlushMappedMemoryRanges");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800311 auto vkEnc = HostConnection::get()->vkEncoder();
312 VkResult vkFlushMappedMemoryRanges_VkResult_return = (VkResult)0;
313 vkFlushMappedMemoryRanges_VkResult_return = vkEnc->vkFlushMappedMemoryRanges(device, memoryRangeCount, pMemoryRanges);
314 return vkFlushMappedMemoryRanges_VkResult_return;
315}
316static VkResult entry_vkInvalidateMappedMemoryRanges(
317 VkDevice device,
318 uint32_t memoryRangeCount,
319 const VkMappedMemoryRange* pMemoryRanges)
320{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800321 AEMU_SCOPED_TRACE("vkInvalidateMappedMemoryRanges");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800322 auto vkEnc = HostConnection::get()->vkEncoder();
323 VkResult vkInvalidateMappedMemoryRanges_VkResult_return = (VkResult)0;
324 vkInvalidateMappedMemoryRanges_VkResult_return = vkEnc->vkInvalidateMappedMemoryRanges(device, memoryRangeCount, pMemoryRanges);
325 return vkInvalidateMappedMemoryRanges_VkResult_return;
326}
327static void entry_vkGetDeviceMemoryCommitment(
328 VkDevice device,
329 VkDeviceMemory memory,
330 VkDeviceSize* pCommittedMemoryInBytes)
331{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800332 AEMU_SCOPED_TRACE("vkGetDeviceMemoryCommitment");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800333 auto vkEnc = HostConnection::get()->vkEncoder();
334 vkEnc->vkGetDeviceMemoryCommitment(device, memory, pCommittedMemoryInBytes);
335}
336static VkResult entry_vkBindBufferMemory(
337 VkDevice device,
338 VkBuffer buffer,
339 VkDeviceMemory memory,
340 VkDeviceSize memoryOffset)
341{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800342 AEMU_SCOPED_TRACE("vkBindBufferMemory");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800343 auto vkEnc = HostConnection::get()->vkEncoder();
344 VkResult vkBindBufferMemory_VkResult_return = (VkResult)0;
Lingfeng Yang4af5f322019-02-14 08:10:28 -0800345 auto resources = ResourceTracker::get();
346 vkBindBufferMemory_VkResult_return = resources->on_vkBindBufferMemory(vkEnc, VK_SUCCESS, device, buffer, memory, memoryOffset);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800347 return vkBindBufferMemory_VkResult_return;
348}
349static VkResult entry_vkBindImageMemory(
350 VkDevice device,
351 VkImage image,
352 VkDeviceMemory memory,
353 VkDeviceSize memoryOffset)
354{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800355 AEMU_SCOPED_TRACE("vkBindImageMemory");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800356 auto vkEnc = HostConnection::get()->vkEncoder();
357 VkResult vkBindImageMemory_VkResult_return = (VkResult)0;
Lingfeng Yang4af5f322019-02-14 08:10:28 -0800358 auto resources = ResourceTracker::get();
359 vkBindImageMemory_VkResult_return = resources->on_vkBindImageMemory(vkEnc, VK_SUCCESS, device, image, memory, memoryOffset);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800360 return vkBindImageMemory_VkResult_return;
361}
362static void entry_vkGetBufferMemoryRequirements(
363 VkDevice device,
364 VkBuffer buffer,
365 VkMemoryRequirements* pMemoryRequirements)
366{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800367 AEMU_SCOPED_TRACE("vkGetBufferMemoryRequirements");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800368 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang4af5f322019-02-14 08:10:28 -0800369 auto resources = ResourceTracker::get();
370 resources->on_vkGetBufferMemoryRequirements(vkEnc, device, buffer, pMemoryRequirements);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800371}
372static void entry_vkGetImageMemoryRequirements(
373 VkDevice device,
374 VkImage image,
375 VkMemoryRequirements* pMemoryRequirements)
376{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800377 AEMU_SCOPED_TRACE("vkGetImageMemoryRequirements");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800378 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang4af5f322019-02-14 08:10:28 -0800379 auto resources = ResourceTracker::get();
380 resources->on_vkGetImageMemoryRequirements(vkEnc, device, image, pMemoryRequirements);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800381}
382static void entry_vkGetImageSparseMemoryRequirements(
383 VkDevice device,
384 VkImage image,
385 uint32_t* pSparseMemoryRequirementCount,
386 VkSparseImageMemoryRequirements* pSparseMemoryRequirements)
387{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800388 AEMU_SCOPED_TRACE("vkGetImageSparseMemoryRequirements");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800389 auto vkEnc = HostConnection::get()->vkEncoder();
390 vkEnc->vkGetImageSparseMemoryRequirements(device, image, pSparseMemoryRequirementCount, pSparseMemoryRequirements);
391}
392static void entry_vkGetPhysicalDeviceSparseImageFormatProperties(
393 VkPhysicalDevice physicalDevice,
394 VkFormat format,
395 VkImageType type,
396 VkSampleCountFlagBits samples,
397 VkImageUsageFlags usage,
398 VkImageTiling tiling,
399 uint32_t* pPropertyCount,
400 VkSparseImageFormatProperties* pProperties)
401{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800402 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSparseImageFormatProperties");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800403 auto vkEnc = HostConnection::get()->vkEncoder();
404 vkEnc->vkGetPhysicalDeviceSparseImageFormatProperties(physicalDevice, format, type, samples, usage, tiling, pPropertyCount, pProperties);
405}
406static VkResult entry_vkQueueBindSparse(
407 VkQueue queue,
408 uint32_t bindInfoCount,
409 const VkBindSparseInfo* pBindInfo,
410 VkFence fence)
411{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800412 AEMU_SCOPED_TRACE("vkQueueBindSparse");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800413 auto vkEnc = HostConnection::get()->vkEncoder();
414 VkResult vkQueueBindSparse_VkResult_return = (VkResult)0;
415 vkQueueBindSparse_VkResult_return = vkEnc->vkQueueBindSparse(queue, bindInfoCount, pBindInfo, fence);
416 return vkQueueBindSparse_VkResult_return;
417}
418static VkResult entry_vkCreateFence(
419 VkDevice device,
420 const VkFenceCreateInfo* pCreateInfo,
421 const VkAllocationCallbacks* pAllocator,
422 VkFence* pFence)
423{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800424 AEMU_SCOPED_TRACE("vkCreateFence");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800425 auto vkEnc = HostConnection::get()->vkEncoder();
426 VkResult vkCreateFence_VkResult_return = (VkResult)0;
427 vkCreateFence_VkResult_return = vkEnc->vkCreateFence(device, pCreateInfo, pAllocator, pFence);
428 return vkCreateFence_VkResult_return;
429}
430static void entry_vkDestroyFence(
431 VkDevice device,
432 VkFence fence,
433 const VkAllocationCallbacks* pAllocator)
434{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800435 AEMU_SCOPED_TRACE("vkDestroyFence");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800436 auto vkEnc = HostConnection::get()->vkEncoder();
437 vkEnc->vkDestroyFence(device, fence, pAllocator);
438}
439static VkResult entry_vkResetFences(
440 VkDevice device,
441 uint32_t fenceCount,
442 const VkFence* pFences)
443{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800444 AEMU_SCOPED_TRACE("vkResetFences");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800445 auto vkEnc = HostConnection::get()->vkEncoder();
446 VkResult vkResetFences_VkResult_return = (VkResult)0;
447 vkResetFences_VkResult_return = vkEnc->vkResetFences(device, fenceCount, pFences);
448 return vkResetFences_VkResult_return;
449}
450static VkResult entry_vkGetFenceStatus(
451 VkDevice device,
452 VkFence fence)
453{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800454 AEMU_SCOPED_TRACE("vkGetFenceStatus");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800455 auto vkEnc = HostConnection::get()->vkEncoder();
456 VkResult vkGetFenceStatus_VkResult_return = (VkResult)0;
457 vkGetFenceStatus_VkResult_return = vkEnc->vkGetFenceStatus(device, fence);
458 return vkGetFenceStatus_VkResult_return;
459}
460static VkResult entry_vkWaitForFences(
461 VkDevice device,
462 uint32_t fenceCount,
463 const VkFence* pFences,
464 VkBool32 waitAll,
465 uint64_t timeout)
466{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800467 AEMU_SCOPED_TRACE("vkWaitForFences");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800468 auto vkEnc = HostConnection::get()->vkEncoder();
469 VkResult vkWaitForFences_VkResult_return = (VkResult)0;
470 vkWaitForFences_VkResult_return = vkEnc->vkWaitForFences(device, fenceCount, pFences, waitAll, timeout);
471 return vkWaitForFences_VkResult_return;
472}
473static VkResult entry_vkCreateSemaphore(
474 VkDevice device,
475 const VkSemaphoreCreateInfo* pCreateInfo,
476 const VkAllocationCallbacks* pAllocator,
477 VkSemaphore* pSemaphore)
478{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800479 AEMU_SCOPED_TRACE("vkCreateSemaphore");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800480 auto vkEnc = HostConnection::get()->vkEncoder();
481 VkResult vkCreateSemaphore_VkResult_return = (VkResult)0;
David Reveman32b110e2019-02-21 13:20:54 -0500482 auto resources = ResourceTracker::get();
483 vkCreateSemaphore_VkResult_return = resources->on_vkCreateSemaphore(vkEnc, VK_SUCCESS, device, pCreateInfo, pAllocator, pSemaphore);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800484 return vkCreateSemaphore_VkResult_return;
485}
486static void entry_vkDestroySemaphore(
487 VkDevice device,
488 VkSemaphore semaphore,
489 const VkAllocationCallbacks* pAllocator)
490{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800491 AEMU_SCOPED_TRACE("vkDestroySemaphore");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800492 auto vkEnc = HostConnection::get()->vkEncoder();
David Reveman32b110e2019-02-21 13:20:54 -0500493 auto resources = ResourceTracker::get();
494 resources->on_vkDestroySemaphore(vkEnc, device, semaphore, pAllocator);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800495}
496static VkResult entry_vkCreateEvent(
497 VkDevice device,
498 const VkEventCreateInfo* pCreateInfo,
499 const VkAllocationCallbacks* pAllocator,
500 VkEvent* pEvent)
501{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800502 AEMU_SCOPED_TRACE("vkCreateEvent");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800503 auto vkEnc = HostConnection::get()->vkEncoder();
504 VkResult vkCreateEvent_VkResult_return = (VkResult)0;
505 vkCreateEvent_VkResult_return = vkEnc->vkCreateEvent(device, pCreateInfo, pAllocator, pEvent);
506 return vkCreateEvent_VkResult_return;
507}
508static void entry_vkDestroyEvent(
509 VkDevice device,
510 VkEvent event,
511 const VkAllocationCallbacks* pAllocator)
512{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800513 AEMU_SCOPED_TRACE("vkDestroyEvent");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800514 auto vkEnc = HostConnection::get()->vkEncoder();
515 vkEnc->vkDestroyEvent(device, event, pAllocator);
516}
517static VkResult entry_vkGetEventStatus(
518 VkDevice device,
519 VkEvent event)
520{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800521 AEMU_SCOPED_TRACE("vkGetEventStatus");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800522 auto vkEnc = HostConnection::get()->vkEncoder();
523 VkResult vkGetEventStatus_VkResult_return = (VkResult)0;
524 vkGetEventStatus_VkResult_return = vkEnc->vkGetEventStatus(device, event);
525 return vkGetEventStatus_VkResult_return;
526}
527static VkResult entry_vkSetEvent(
528 VkDevice device,
529 VkEvent event)
530{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800531 AEMU_SCOPED_TRACE("vkSetEvent");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800532 auto vkEnc = HostConnection::get()->vkEncoder();
533 VkResult vkSetEvent_VkResult_return = (VkResult)0;
534 vkSetEvent_VkResult_return = vkEnc->vkSetEvent(device, event);
535 return vkSetEvent_VkResult_return;
536}
537static VkResult entry_vkResetEvent(
538 VkDevice device,
539 VkEvent event)
540{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800541 AEMU_SCOPED_TRACE("vkResetEvent");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800542 auto vkEnc = HostConnection::get()->vkEncoder();
543 VkResult vkResetEvent_VkResult_return = (VkResult)0;
544 vkResetEvent_VkResult_return = vkEnc->vkResetEvent(device, event);
545 return vkResetEvent_VkResult_return;
546}
547static VkResult entry_vkCreateQueryPool(
548 VkDevice device,
549 const VkQueryPoolCreateInfo* pCreateInfo,
550 const VkAllocationCallbacks* pAllocator,
551 VkQueryPool* pQueryPool)
552{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800553 AEMU_SCOPED_TRACE("vkCreateQueryPool");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800554 auto vkEnc = HostConnection::get()->vkEncoder();
555 VkResult vkCreateQueryPool_VkResult_return = (VkResult)0;
556 vkCreateQueryPool_VkResult_return = vkEnc->vkCreateQueryPool(device, pCreateInfo, pAllocator, pQueryPool);
557 return vkCreateQueryPool_VkResult_return;
558}
559static void entry_vkDestroyQueryPool(
560 VkDevice device,
561 VkQueryPool queryPool,
562 const VkAllocationCallbacks* pAllocator)
563{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800564 AEMU_SCOPED_TRACE("vkDestroyQueryPool");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800565 auto vkEnc = HostConnection::get()->vkEncoder();
566 vkEnc->vkDestroyQueryPool(device, queryPool, pAllocator);
567}
568static VkResult entry_vkGetQueryPoolResults(
569 VkDevice device,
570 VkQueryPool queryPool,
571 uint32_t firstQuery,
572 uint32_t queryCount,
573 size_t dataSize,
574 void* pData,
575 VkDeviceSize stride,
576 VkQueryResultFlags flags)
577{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800578 AEMU_SCOPED_TRACE("vkGetQueryPoolResults");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800579 auto vkEnc = HostConnection::get()->vkEncoder();
580 VkResult vkGetQueryPoolResults_VkResult_return = (VkResult)0;
581 vkGetQueryPoolResults_VkResult_return = vkEnc->vkGetQueryPoolResults(device, queryPool, firstQuery, queryCount, dataSize, pData, stride, flags);
582 return vkGetQueryPoolResults_VkResult_return;
583}
584static VkResult entry_vkCreateBuffer(
585 VkDevice device,
586 const VkBufferCreateInfo* pCreateInfo,
587 const VkAllocationCallbacks* pAllocator,
588 VkBuffer* pBuffer)
589{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800590 AEMU_SCOPED_TRACE("vkCreateBuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800591 auto vkEnc = HostConnection::get()->vkEncoder();
592 VkResult vkCreateBuffer_VkResult_return = (VkResult)0;
Lingfeng Yang4af5f322019-02-14 08:10:28 -0800593 auto resources = ResourceTracker::get();
594 vkCreateBuffer_VkResult_return = resources->on_vkCreateBuffer(vkEnc, VK_SUCCESS, device, pCreateInfo, pAllocator, pBuffer);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800595 return vkCreateBuffer_VkResult_return;
596}
597static void entry_vkDestroyBuffer(
598 VkDevice device,
599 VkBuffer buffer,
600 const VkAllocationCallbacks* pAllocator)
601{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800602 AEMU_SCOPED_TRACE("vkDestroyBuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800603 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang4af5f322019-02-14 08:10:28 -0800604 auto resources = ResourceTracker::get();
605 resources->on_vkDestroyBuffer(vkEnc, device, buffer, pAllocator);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800606}
607static VkResult entry_vkCreateBufferView(
608 VkDevice device,
609 const VkBufferViewCreateInfo* pCreateInfo,
610 const VkAllocationCallbacks* pAllocator,
611 VkBufferView* pView)
612{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800613 AEMU_SCOPED_TRACE("vkCreateBufferView");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800614 auto vkEnc = HostConnection::get()->vkEncoder();
615 VkResult vkCreateBufferView_VkResult_return = (VkResult)0;
616 vkCreateBufferView_VkResult_return = vkEnc->vkCreateBufferView(device, pCreateInfo, pAllocator, pView);
617 return vkCreateBufferView_VkResult_return;
618}
619static void entry_vkDestroyBufferView(
620 VkDevice device,
621 VkBufferView bufferView,
622 const VkAllocationCallbacks* pAllocator)
623{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800624 AEMU_SCOPED_TRACE("vkDestroyBufferView");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800625 auto vkEnc = HostConnection::get()->vkEncoder();
626 vkEnc->vkDestroyBufferView(device, bufferView, pAllocator);
627}
628static VkResult entry_vkCreateImage(
629 VkDevice device,
630 const VkImageCreateInfo* pCreateInfo,
631 const VkAllocationCallbacks* pAllocator,
632 VkImage* pImage)
633{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800634 AEMU_SCOPED_TRACE("vkCreateImage");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800635 auto vkEnc = HostConnection::get()->vkEncoder();
636 VkResult vkCreateImage_VkResult_return = (VkResult)0;
Lingfeng Yang4af5f322019-02-14 08:10:28 -0800637 auto resources = ResourceTracker::get();
638 vkCreateImage_VkResult_return = resources->on_vkCreateImage(vkEnc, VK_SUCCESS, device, pCreateInfo, pAllocator, pImage);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800639 return vkCreateImage_VkResult_return;
640}
641static void entry_vkDestroyImage(
642 VkDevice device,
643 VkImage image,
644 const VkAllocationCallbacks* pAllocator)
645{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800646 AEMU_SCOPED_TRACE("vkDestroyImage");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800647 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang4af5f322019-02-14 08:10:28 -0800648 auto resources = ResourceTracker::get();
649 resources->on_vkDestroyImage(vkEnc, device, image, pAllocator);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800650}
651static void entry_vkGetImageSubresourceLayout(
652 VkDevice device,
653 VkImage image,
654 const VkImageSubresource* pSubresource,
655 VkSubresourceLayout* pLayout)
656{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800657 AEMU_SCOPED_TRACE("vkGetImageSubresourceLayout");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800658 auto vkEnc = HostConnection::get()->vkEncoder();
659 vkEnc->vkGetImageSubresourceLayout(device, image, pSubresource, pLayout);
660}
661static VkResult entry_vkCreateImageView(
662 VkDevice device,
663 const VkImageViewCreateInfo* pCreateInfo,
664 const VkAllocationCallbacks* pAllocator,
665 VkImageView* pView)
666{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800667 AEMU_SCOPED_TRACE("vkCreateImageView");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800668 auto vkEnc = HostConnection::get()->vkEncoder();
669 VkResult vkCreateImageView_VkResult_return = (VkResult)0;
670 vkCreateImageView_VkResult_return = vkEnc->vkCreateImageView(device, pCreateInfo, pAllocator, pView);
671 return vkCreateImageView_VkResult_return;
672}
673static void entry_vkDestroyImageView(
674 VkDevice device,
675 VkImageView imageView,
676 const VkAllocationCallbacks* pAllocator)
677{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800678 AEMU_SCOPED_TRACE("vkDestroyImageView");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800679 auto vkEnc = HostConnection::get()->vkEncoder();
680 vkEnc->vkDestroyImageView(device, imageView, pAllocator);
681}
682static VkResult entry_vkCreateShaderModule(
683 VkDevice device,
684 const VkShaderModuleCreateInfo* pCreateInfo,
685 const VkAllocationCallbacks* pAllocator,
686 VkShaderModule* pShaderModule)
687{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800688 AEMU_SCOPED_TRACE("vkCreateShaderModule");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800689 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}
694static void entry_vkDestroyShaderModule(
695 VkDevice device,
696 VkShaderModule shaderModule,
697 const VkAllocationCallbacks* pAllocator)
698{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800699 AEMU_SCOPED_TRACE("vkDestroyShaderModule");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800700 auto vkEnc = HostConnection::get()->vkEncoder();
701 vkEnc->vkDestroyShaderModule(device, shaderModule, pAllocator);
702}
703static VkResult entry_vkCreatePipelineCache(
704 VkDevice device,
705 const VkPipelineCacheCreateInfo* pCreateInfo,
706 const VkAllocationCallbacks* pAllocator,
707 VkPipelineCache* pPipelineCache)
708{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800709 AEMU_SCOPED_TRACE("vkCreatePipelineCache");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800710 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}
715static void entry_vkDestroyPipelineCache(
716 VkDevice device,
717 VkPipelineCache pipelineCache,
718 const VkAllocationCallbacks* pAllocator)
719{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800720 AEMU_SCOPED_TRACE("vkDestroyPipelineCache");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800721 auto vkEnc = HostConnection::get()->vkEncoder();
722 vkEnc->vkDestroyPipelineCache(device, pipelineCache, pAllocator);
723}
724static VkResult entry_vkGetPipelineCacheData(
725 VkDevice device,
726 VkPipelineCache pipelineCache,
727 size_t* pDataSize,
728 void* pData)
729{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800730 AEMU_SCOPED_TRACE("vkGetPipelineCacheData");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800731 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}
736static VkResult entry_vkMergePipelineCaches(
737 VkDevice device,
738 VkPipelineCache dstCache,
739 uint32_t srcCacheCount,
740 const VkPipelineCache* pSrcCaches)
741{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800742 AEMU_SCOPED_TRACE("vkMergePipelineCaches");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800743 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}
748static 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{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800756 AEMU_SCOPED_TRACE("vkCreateGraphicsPipelines");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800757 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}
762static 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{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800770 AEMU_SCOPED_TRACE("vkCreateComputePipelines");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800771 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}
776static void entry_vkDestroyPipeline(
777 VkDevice device,
778 VkPipeline pipeline,
779 const VkAllocationCallbacks* pAllocator)
780{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800781 AEMU_SCOPED_TRACE("vkDestroyPipeline");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800782 auto vkEnc = HostConnection::get()->vkEncoder();
783 vkEnc->vkDestroyPipeline(device, pipeline, pAllocator);
784}
785static VkResult entry_vkCreatePipelineLayout(
786 VkDevice device,
787 const VkPipelineLayoutCreateInfo* pCreateInfo,
788 const VkAllocationCallbacks* pAllocator,
789 VkPipelineLayout* pPipelineLayout)
790{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800791 AEMU_SCOPED_TRACE("vkCreatePipelineLayout");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800792 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}
797static void entry_vkDestroyPipelineLayout(
798 VkDevice device,
799 VkPipelineLayout pipelineLayout,
800 const VkAllocationCallbacks* pAllocator)
801{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800802 AEMU_SCOPED_TRACE("vkDestroyPipelineLayout");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800803 auto vkEnc = HostConnection::get()->vkEncoder();
804 vkEnc->vkDestroyPipelineLayout(device, pipelineLayout, pAllocator);
805}
806static VkResult entry_vkCreateSampler(
807 VkDevice device,
808 const VkSamplerCreateInfo* pCreateInfo,
809 const VkAllocationCallbacks* pAllocator,
810 VkSampler* pSampler)
811{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800812 AEMU_SCOPED_TRACE("vkCreateSampler");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800813 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}
818static void entry_vkDestroySampler(
819 VkDevice device,
820 VkSampler sampler,
821 const VkAllocationCallbacks* pAllocator)
822{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800823 AEMU_SCOPED_TRACE("vkDestroySampler");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800824 auto vkEnc = HostConnection::get()->vkEncoder();
825 vkEnc->vkDestroySampler(device, sampler, pAllocator);
826}
827static VkResult entry_vkCreateDescriptorSetLayout(
828 VkDevice device,
829 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
830 const VkAllocationCallbacks* pAllocator,
831 VkDescriptorSetLayout* pSetLayout)
832{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800833 AEMU_SCOPED_TRACE("vkCreateDescriptorSetLayout");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800834 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}
839static void entry_vkDestroyDescriptorSetLayout(
840 VkDevice device,
841 VkDescriptorSetLayout descriptorSetLayout,
842 const VkAllocationCallbacks* pAllocator)
843{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800844 AEMU_SCOPED_TRACE("vkDestroyDescriptorSetLayout");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800845 auto vkEnc = HostConnection::get()->vkEncoder();
846 vkEnc->vkDestroyDescriptorSetLayout(device, descriptorSetLayout, pAllocator);
847}
848static VkResult entry_vkCreateDescriptorPool(
849 VkDevice device,
850 const VkDescriptorPoolCreateInfo* pCreateInfo,
851 const VkAllocationCallbacks* pAllocator,
852 VkDescriptorPool* pDescriptorPool)
853{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800854 AEMU_SCOPED_TRACE("vkCreateDescriptorPool");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800855 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}
860static void entry_vkDestroyDescriptorPool(
861 VkDevice device,
862 VkDescriptorPool descriptorPool,
863 const VkAllocationCallbacks* pAllocator)
864{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800865 AEMU_SCOPED_TRACE("vkDestroyDescriptorPool");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800866 auto vkEnc = HostConnection::get()->vkEncoder();
867 vkEnc->vkDestroyDescriptorPool(device, descriptorPool, pAllocator);
868}
869static VkResult entry_vkResetDescriptorPool(
870 VkDevice device,
871 VkDescriptorPool descriptorPool,
872 VkDescriptorPoolResetFlags flags)
873{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800874 AEMU_SCOPED_TRACE("vkResetDescriptorPool");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800875 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}
880static VkResult entry_vkAllocateDescriptorSets(
881 VkDevice device,
882 const VkDescriptorSetAllocateInfo* pAllocateInfo,
883 VkDescriptorSet* pDescriptorSets)
884{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800885 AEMU_SCOPED_TRACE("vkAllocateDescriptorSets");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800886 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}
891static VkResult entry_vkFreeDescriptorSets(
892 VkDevice device,
893 VkDescriptorPool descriptorPool,
894 uint32_t descriptorSetCount,
895 const VkDescriptorSet* pDescriptorSets)
896{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800897 AEMU_SCOPED_TRACE("vkFreeDescriptorSets");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800898 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}
903static void entry_vkUpdateDescriptorSets(
904 VkDevice device,
905 uint32_t descriptorWriteCount,
906 const VkWriteDescriptorSet* pDescriptorWrites,
907 uint32_t descriptorCopyCount,
908 const VkCopyDescriptorSet* pDescriptorCopies)
909{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800910 AEMU_SCOPED_TRACE("vkUpdateDescriptorSets");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800911 auto vkEnc = HostConnection::get()->vkEncoder();
912 vkEnc->vkUpdateDescriptorSets(device, descriptorWriteCount, pDescriptorWrites, descriptorCopyCount, pDescriptorCopies);
913}
914static VkResult entry_vkCreateFramebuffer(
915 VkDevice device,
916 const VkFramebufferCreateInfo* pCreateInfo,
917 const VkAllocationCallbacks* pAllocator,
918 VkFramebuffer* pFramebuffer)
919{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800920 AEMU_SCOPED_TRACE("vkCreateFramebuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800921 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}
926static void entry_vkDestroyFramebuffer(
927 VkDevice device,
928 VkFramebuffer framebuffer,
929 const VkAllocationCallbacks* pAllocator)
930{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800931 AEMU_SCOPED_TRACE("vkDestroyFramebuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800932 auto vkEnc = HostConnection::get()->vkEncoder();
933 vkEnc->vkDestroyFramebuffer(device, framebuffer, pAllocator);
934}
935static VkResult entry_vkCreateRenderPass(
936 VkDevice device,
937 const VkRenderPassCreateInfo* pCreateInfo,
938 const VkAllocationCallbacks* pAllocator,
939 VkRenderPass* pRenderPass)
940{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800941 AEMU_SCOPED_TRACE("vkCreateRenderPass");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800942 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}
947static void entry_vkDestroyRenderPass(
948 VkDevice device,
949 VkRenderPass renderPass,
950 const VkAllocationCallbacks* pAllocator)
951{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800952 AEMU_SCOPED_TRACE("vkDestroyRenderPass");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800953 auto vkEnc = HostConnection::get()->vkEncoder();
954 vkEnc->vkDestroyRenderPass(device, renderPass, pAllocator);
955}
956static void entry_vkGetRenderAreaGranularity(
957 VkDevice device,
958 VkRenderPass renderPass,
959 VkExtent2D* pGranularity)
960{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800961 AEMU_SCOPED_TRACE("vkGetRenderAreaGranularity");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800962 auto vkEnc = HostConnection::get()->vkEncoder();
963 vkEnc->vkGetRenderAreaGranularity(device, renderPass, pGranularity);
964}
965static VkResult entry_vkCreateCommandPool(
966 VkDevice device,
967 const VkCommandPoolCreateInfo* pCreateInfo,
968 const VkAllocationCallbacks* pAllocator,
969 VkCommandPool* pCommandPool)
970{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800971 AEMU_SCOPED_TRACE("vkCreateCommandPool");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800972 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}
977static void entry_vkDestroyCommandPool(
978 VkDevice device,
979 VkCommandPool commandPool,
980 const VkAllocationCallbacks* pAllocator)
981{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800982 AEMU_SCOPED_TRACE("vkDestroyCommandPool");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800983 auto vkEnc = HostConnection::get()->vkEncoder();
984 vkEnc->vkDestroyCommandPool(device, commandPool, pAllocator);
985}
986static VkResult entry_vkResetCommandPool(
987 VkDevice device,
988 VkCommandPool commandPool,
989 VkCommandPoolResetFlags flags)
990{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800991 AEMU_SCOPED_TRACE("vkResetCommandPool");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800992 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}
997static VkResult entry_vkAllocateCommandBuffers(
998 VkDevice device,
999 const VkCommandBufferAllocateInfo* pAllocateInfo,
1000 VkCommandBuffer* pCommandBuffers)
1001{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001002 AEMU_SCOPED_TRACE("vkAllocateCommandBuffers");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001003 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}
1008static void entry_vkFreeCommandBuffers(
1009 VkDevice device,
1010 VkCommandPool commandPool,
1011 uint32_t commandBufferCount,
1012 const VkCommandBuffer* pCommandBuffers)
1013{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001014 AEMU_SCOPED_TRACE("vkFreeCommandBuffers");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001015 auto vkEnc = HostConnection::get()->vkEncoder();
1016 vkEnc->vkFreeCommandBuffers(device, commandPool, commandBufferCount, pCommandBuffers);
1017}
1018static VkResult entry_vkBeginCommandBuffer(
1019 VkCommandBuffer commandBuffer,
1020 const VkCommandBufferBeginInfo* pBeginInfo)
1021{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001022 AEMU_SCOPED_TRACE("vkBeginCommandBuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001023 auto vkEnc = HostConnection::get()->vkEncoder();
1024 VkResult vkBeginCommandBuffer_VkResult_return = (VkResult)0;
1025 vkBeginCommandBuffer_VkResult_return = vkEnc->vkBeginCommandBuffer(commandBuffer, pBeginInfo);
1026 return vkBeginCommandBuffer_VkResult_return;
1027}
1028static VkResult entry_vkEndCommandBuffer(
1029 VkCommandBuffer commandBuffer)
1030{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001031 AEMU_SCOPED_TRACE("vkEndCommandBuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001032 auto vkEnc = HostConnection::get()->vkEncoder();
1033 VkResult vkEndCommandBuffer_VkResult_return = (VkResult)0;
1034 vkEndCommandBuffer_VkResult_return = vkEnc->vkEndCommandBuffer(commandBuffer);
1035 return vkEndCommandBuffer_VkResult_return;
1036}
1037static VkResult entry_vkResetCommandBuffer(
1038 VkCommandBuffer commandBuffer,
1039 VkCommandBufferResetFlags flags)
1040{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001041 AEMU_SCOPED_TRACE("vkResetCommandBuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001042 auto vkEnc = HostConnection::get()->vkEncoder();
1043 VkResult vkResetCommandBuffer_VkResult_return = (VkResult)0;
1044 vkResetCommandBuffer_VkResult_return = vkEnc->vkResetCommandBuffer(commandBuffer, flags);
1045 return vkResetCommandBuffer_VkResult_return;
1046}
1047static void entry_vkCmdBindPipeline(
1048 VkCommandBuffer commandBuffer,
1049 VkPipelineBindPoint pipelineBindPoint,
1050 VkPipeline pipeline)
1051{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001052 AEMU_SCOPED_TRACE("vkCmdBindPipeline");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001053 auto vkEnc = HostConnection::get()->vkEncoder();
1054 vkEnc->vkCmdBindPipeline(commandBuffer, pipelineBindPoint, pipeline);
1055}
1056static void entry_vkCmdSetViewport(
1057 VkCommandBuffer commandBuffer,
1058 uint32_t firstViewport,
1059 uint32_t viewportCount,
1060 const VkViewport* pViewports)
1061{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001062 AEMU_SCOPED_TRACE("vkCmdSetViewport");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001063 auto vkEnc = HostConnection::get()->vkEncoder();
1064 vkEnc->vkCmdSetViewport(commandBuffer, firstViewport, viewportCount, pViewports);
1065}
1066static void entry_vkCmdSetScissor(
1067 VkCommandBuffer commandBuffer,
1068 uint32_t firstScissor,
1069 uint32_t scissorCount,
1070 const VkRect2D* pScissors)
1071{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001072 AEMU_SCOPED_TRACE("vkCmdSetScissor");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001073 auto vkEnc = HostConnection::get()->vkEncoder();
1074 vkEnc->vkCmdSetScissor(commandBuffer, firstScissor, scissorCount, pScissors);
1075}
1076static void entry_vkCmdSetLineWidth(
1077 VkCommandBuffer commandBuffer,
1078 float lineWidth)
1079{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001080 AEMU_SCOPED_TRACE("vkCmdSetLineWidth");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001081 auto vkEnc = HostConnection::get()->vkEncoder();
1082 vkEnc->vkCmdSetLineWidth(commandBuffer, lineWidth);
1083}
1084static void entry_vkCmdSetDepthBias(
1085 VkCommandBuffer commandBuffer,
1086 float depthBiasConstantFactor,
1087 float depthBiasClamp,
1088 float depthBiasSlopeFactor)
1089{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001090 AEMU_SCOPED_TRACE("vkCmdSetDepthBias");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001091 auto vkEnc = HostConnection::get()->vkEncoder();
1092 vkEnc->vkCmdSetDepthBias(commandBuffer, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor);
1093}
1094static void entry_vkCmdSetBlendConstants(
1095 VkCommandBuffer commandBuffer,
1096 const float blendConstants)
1097{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001098 AEMU_SCOPED_TRACE("vkCmdSetBlendConstants");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001099 auto vkEnc = HostConnection::get()->vkEncoder();
1100 vkEnc->vkCmdSetBlendConstants(commandBuffer, blendConstants);
1101}
1102static void entry_vkCmdSetDepthBounds(
1103 VkCommandBuffer commandBuffer,
1104 float minDepthBounds,
1105 float maxDepthBounds)
1106{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001107 AEMU_SCOPED_TRACE("vkCmdSetDepthBounds");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001108 auto vkEnc = HostConnection::get()->vkEncoder();
1109 vkEnc->vkCmdSetDepthBounds(commandBuffer, minDepthBounds, maxDepthBounds);
1110}
1111static void entry_vkCmdSetStencilCompareMask(
1112 VkCommandBuffer commandBuffer,
1113 VkStencilFaceFlags faceMask,
1114 uint32_t compareMask)
1115{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001116 AEMU_SCOPED_TRACE("vkCmdSetStencilCompareMask");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001117 auto vkEnc = HostConnection::get()->vkEncoder();
1118 vkEnc->vkCmdSetStencilCompareMask(commandBuffer, faceMask, compareMask);
1119}
1120static void entry_vkCmdSetStencilWriteMask(
1121 VkCommandBuffer commandBuffer,
1122 VkStencilFaceFlags faceMask,
1123 uint32_t writeMask)
1124{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001125 AEMU_SCOPED_TRACE("vkCmdSetStencilWriteMask");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001126 auto vkEnc = HostConnection::get()->vkEncoder();
1127 vkEnc->vkCmdSetStencilWriteMask(commandBuffer, faceMask, writeMask);
1128}
1129static void entry_vkCmdSetStencilReference(
1130 VkCommandBuffer commandBuffer,
1131 VkStencilFaceFlags faceMask,
1132 uint32_t reference)
1133{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001134 AEMU_SCOPED_TRACE("vkCmdSetStencilReference");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001135 auto vkEnc = HostConnection::get()->vkEncoder();
1136 vkEnc->vkCmdSetStencilReference(commandBuffer, faceMask, reference);
1137}
1138static void entry_vkCmdBindDescriptorSets(
1139 VkCommandBuffer commandBuffer,
1140 VkPipelineBindPoint pipelineBindPoint,
1141 VkPipelineLayout layout,
1142 uint32_t firstSet,
1143 uint32_t descriptorSetCount,
1144 const VkDescriptorSet* pDescriptorSets,
1145 uint32_t dynamicOffsetCount,
1146 const uint32_t* pDynamicOffsets)
1147{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001148 AEMU_SCOPED_TRACE("vkCmdBindDescriptorSets");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001149 auto vkEnc = HostConnection::get()->vkEncoder();
1150 vkEnc->vkCmdBindDescriptorSets(commandBuffer, pipelineBindPoint, layout, firstSet, descriptorSetCount, pDescriptorSets, dynamicOffsetCount, pDynamicOffsets);
1151}
1152static void entry_vkCmdBindIndexBuffer(
1153 VkCommandBuffer commandBuffer,
1154 VkBuffer buffer,
1155 VkDeviceSize offset,
1156 VkIndexType indexType)
1157{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001158 AEMU_SCOPED_TRACE("vkCmdBindIndexBuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001159 auto vkEnc = HostConnection::get()->vkEncoder();
1160 vkEnc->vkCmdBindIndexBuffer(commandBuffer, buffer, offset, indexType);
1161}
1162static void entry_vkCmdBindVertexBuffers(
1163 VkCommandBuffer commandBuffer,
1164 uint32_t firstBinding,
1165 uint32_t bindingCount,
1166 const VkBuffer* pBuffers,
1167 const VkDeviceSize* pOffsets)
1168{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001169 AEMU_SCOPED_TRACE("vkCmdBindVertexBuffers");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001170 auto vkEnc = HostConnection::get()->vkEncoder();
1171 vkEnc->vkCmdBindVertexBuffers(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets);
1172}
1173static void entry_vkCmdDraw(
1174 VkCommandBuffer commandBuffer,
1175 uint32_t vertexCount,
1176 uint32_t instanceCount,
1177 uint32_t firstVertex,
1178 uint32_t firstInstance)
1179{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001180 AEMU_SCOPED_TRACE("vkCmdDraw");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001181 auto vkEnc = HostConnection::get()->vkEncoder();
1182 vkEnc->vkCmdDraw(commandBuffer, vertexCount, instanceCount, firstVertex, firstInstance);
1183}
1184static void entry_vkCmdDrawIndexed(
1185 VkCommandBuffer commandBuffer,
1186 uint32_t indexCount,
1187 uint32_t instanceCount,
1188 uint32_t firstIndex,
1189 int32_t vertexOffset,
1190 uint32_t firstInstance)
1191{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001192 AEMU_SCOPED_TRACE("vkCmdDrawIndexed");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001193 auto vkEnc = HostConnection::get()->vkEncoder();
1194 vkEnc->vkCmdDrawIndexed(commandBuffer, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance);
1195}
1196static void entry_vkCmdDrawIndirect(
1197 VkCommandBuffer commandBuffer,
1198 VkBuffer buffer,
1199 VkDeviceSize offset,
1200 uint32_t drawCount,
1201 uint32_t stride)
1202{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001203 AEMU_SCOPED_TRACE("vkCmdDrawIndirect");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001204 auto vkEnc = HostConnection::get()->vkEncoder();
1205 vkEnc->vkCmdDrawIndirect(commandBuffer, buffer, offset, drawCount, stride);
1206}
1207static void entry_vkCmdDrawIndexedIndirect(
1208 VkCommandBuffer commandBuffer,
1209 VkBuffer buffer,
1210 VkDeviceSize offset,
1211 uint32_t drawCount,
1212 uint32_t stride)
1213{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001214 AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirect");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001215 auto vkEnc = HostConnection::get()->vkEncoder();
1216 vkEnc->vkCmdDrawIndexedIndirect(commandBuffer, buffer, offset, drawCount, stride);
1217}
1218static void entry_vkCmdDispatch(
1219 VkCommandBuffer commandBuffer,
1220 uint32_t groupCountX,
1221 uint32_t groupCountY,
1222 uint32_t groupCountZ)
1223{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001224 AEMU_SCOPED_TRACE("vkCmdDispatch");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001225 auto vkEnc = HostConnection::get()->vkEncoder();
1226 vkEnc->vkCmdDispatch(commandBuffer, groupCountX, groupCountY, groupCountZ);
1227}
1228static void entry_vkCmdDispatchIndirect(
1229 VkCommandBuffer commandBuffer,
1230 VkBuffer buffer,
1231 VkDeviceSize offset)
1232{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001233 AEMU_SCOPED_TRACE("vkCmdDispatchIndirect");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001234 auto vkEnc = HostConnection::get()->vkEncoder();
1235 vkEnc->vkCmdDispatchIndirect(commandBuffer, buffer, offset);
1236}
1237static void entry_vkCmdCopyBuffer(
1238 VkCommandBuffer commandBuffer,
1239 VkBuffer srcBuffer,
1240 VkBuffer dstBuffer,
1241 uint32_t regionCount,
1242 const VkBufferCopy* pRegions)
1243{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001244 AEMU_SCOPED_TRACE("vkCmdCopyBuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001245 auto vkEnc = HostConnection::get()->vkEncoder();
1246 vkEnc->vkCmdCopyBuffer(commandBuffer, srcBuffer, dstBuffer, regionCount, pRegions);
1247}
1248static void entry_vkCmdCopyImage(
1249 VkCommandBuffer commandBuffer,
1250 VkImage srcImage,
1251 VkImageLayout srcImageLayout,
1252 VkImage dstImage,
1253 VkImageLayout dstImageLayout,
1254 uint32_t regionCount,
1255 const VkImageCopy* pRegions)
1256{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001257 AEMU_SCOPED_TRACE("vkCmdCopyImage");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001258 auto vkEnc = HostConnection::get()->vkEncoder();
1259 vkEnc->vkCmdCopyImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions);
1260}
1261static void entry_vkCmdBlitImage(
1262 VkCommandBuffer commandBuffer,
1263 VkImage srcImage,
1264 VkImageLayout srcImageLayout,
1265 VkImage dstImage,
1266 VkImageLayout dstImageLayout,
1267 uint32_t regionCount,
1268 const VkImageBlit* pRegions,
1269 VkFilter filter)
1270{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001271 AEMU_SCOPED_TRACE("vkCmdBlitImage");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001272 auto vkEnc = HostConnection::get()->vkEncoder();
1273 vkEnc->vkCmdBlitImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions, filter);
1274}
1275static void entry_vkCmdCopyBufferToImage(
1276 VkCommandBuffer commandBuffer,
1277 VkBuffer srcBuffer,
1278 VkImage dstImage,
1279 VkImageLayout dstImageLayout,
1280 uint32_t regionCount,
1281 const VkBufferImageCopy* pRegions)
1282{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001283 AEMU_SCOPED_TRACE("vkCmdCopyBufferToImage");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001284 auto vkEnc = HostConnection::get()->vkEncoder();
1285 vkEnc->vkCmdCopyBufferToImage(commandBuffer, srcBuffer, dstImage, dstImageLayout, regionCount, pRegions);
1286}
1287static void entry_vkCmdCopyImageToBuffer(
1288 VkCommandBuffer commandBuffer,
1289 VkImage srcImage,
1290 VkImageLayout srcImageLayout,
1291 VkBuffer dstBuffer,
1292 uint32_t regionCount,
1293 const VkBufferImageCopy* pRegions)
1294{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001295 AEMU_SCOPED_TRACE("vkCmdCopyImageToBuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001296 auto vkEnc = HostConnection::get()->vkEncoder();
1297 vkEnc->vkCmdCopyImageToBuffer(commandBuffer, srcImage, srcImageLayout, dstBuffer, regionCount, pRegions);
1298}
1299static void entry_vkCmdUpdateBuffer(
1300 VkCommandBuffer commandBuffer,
1301 VkBuffer dstBuffer,
1302 VkDeviceSize dstOffset,
1303 VkDeviceSize dataSize,
1304 const void* pData)
1305{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001306 AEMU_SCOPED_TRACE("vkCmdUpdateBuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001307 auto vkEnc = HostConnection::get()->vkEncoder();
1308 vkEnc->vkCmdUpdateBuffer(commandBuffer, dstBuffer, dstOffset, dataSize, pData);
1309}
1310static void entry_vkCmdFillBuffer(
1311 VkCommandBuffer commandBuffer,
1312 VkBuffer dstBuffer,
1313 VkDeviceSize dstOffset,
1314 VkDeviceSize size,
1315 uint32_t data)
1316{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001317 AEMU_SCOPED_TRACE("vkCmdFillBuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001318 auto vkEnc = HostConnection::get()->vkEncoder();
1319 vkEnc->vkCmdFillBuffer(commandBuffer, dstBuffer, dstOffset, size, data);
1320}
1321static void entry_vkCmdClearColorImage(
1322 VkCommandBuffer commandBuffer,
1323 VkImage image,
1324 VkImageLayout imageLayout,
1325 const VkClearColorValue* pColor,
1326 uint32_t rangeCount,
1327 const VkImageSubresourceRange* pRanges)
1328{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001329 AEMU_SCOPED_TRACE("vkCmdClearColorImage");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001330 auto vkEnc = HostConnection::get()->vkEncoder();
1331 vkEnc->vkCmdClearColorImage(commandBuffer, image, imageLayout, pColor, rangeCount, pRanges);
1332}
1333static void entry_vkCmdClearDepthStencilImage(
1334 VkCommandBuffer commandBuffer,
1335 VkImage image,
1336 VkImageLayout imageLayout,
1337 const VkClearDepthStencilValue* pDepthStencil,
1338 uint32_t rangeCount,
1339 const VkImageSubresourceRange* pRanges)
1340{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001341 AEMU_SCOPED_TRACE("vkCmdClearDepthStencilImage");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001342 auto vkEnc = HostConnection::get()->vkEncoder();
1343 vkEnc->vkCmdClearDepthStencilImage(commandBuffer, image, imageLayout, pDepthStencil, rangeCount, pRanges);
1344}
1345static void entry_vkCmdClearAttachments(
1346 VkCommandBuffer commandBuffer,
1347 uint32_t attachmentCount,
1348 const VkClearAttachment* pAttachments,
1349 uint32_t rectCount,
1350 const VkClearRect* pRects)
1351{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001352 AEMU_SCOPED_TRACE("vkCmdClearAttachments");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001353 auto vkEnc = HostConnection::get()->vkEncoder();
1354 vkEnc->vkCmdClearAttachments(commandBuffer, attachmentCount, pAttachments, rectCount, pRects);
1355}
1356static void entry_vkCmdResolveImage(
1357 VkCommandBuffer commandBuffer,
1358 VkImage srcImage,
1359 VkImageLayout srcImageLayout,
1360 VkImage dstImage,
1361 VkImageLayout dstImageLayout,
1362 uint32_t regionCount,
1363 const VkImageResolve* pRegions)
1364{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001365 AEMU_SCOPED_TRACE("vkCmdResolveImage");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001366 auto vkEnc = HostConnection::get()->vkEncoder();
1367 vkEnc->vkCmdResolveImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions);
1368}
1369static void entry_vkCmdSetEvent(
1370 VkCommandBuffer commandBuffer,
1371 VkEvent event,
1372 VkPipelineStageFlags stageMask)
1373{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001374 AEMU_SCOPED_TRACE("vkCmdSetEvent");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001375 auto vkEnc = HostConnection::get()->vkEncoder();
1376 vkEnc->vkCmdSetEvent(commandBuffer, event, stageMask);
1377}
1378static void entry_vkCmdResetEvent(
1379 VkCommandBuffer commandBuffer,
1380 VkEvent event,
1381 VkPipelineStageFlags stageMask)
1382{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001383 AEMU_SCOPED_TRACE("vkCmdResetEvent");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001384 auto vkEnc = HostConnection::get()->vkEncoder();
1385 vkEnc->vkCmdResetEvent(commandBuffer, event, stageMask);
1386}
1387static void entry_vkCmdWaitEvents(
1388 VkCommandBuffer commandBuffer,
1389 uint32_t eventCount,
1390 const VkEvent* pEvents,
1391 VkPipelineStageFlags srcStageMask,
1392 VkPipelineStageFlags dstStageMask,
1393 uint32_t memoryBarrierCount,
1394 const VkMemoryBarrier* pMemoryBarriers,
1395 uint32_t bufferMemoryBarrierCount,
1396 const VkBufferMemoryBarrier* pBufferMemoryBarriers,
1397 uint32_t imageMemoryBarrierCount,
1398 const VkImageMemoryBarrier* pImageMemoryBarriers)
1399{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001400 AEMU_SCOPED_TRACE("vkCmdWaitEvents");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001401 auto vkEnc = HostConnection::get()->vkEncoder();
1402 vkEnc->vkCmdWaitEvents(commandBuffer, eventCount, pEvents, srcStageMask, dstStageMask, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers);
1403}
1404static void entry_vkCmdPipelineBarrier(
1405 VkCommandBuffer commandBuffer,
1406 VkPipelineStageFlags srcStageMask,
1407 VkPipelineStageFlags dstStageMask,
1408 VkDependencyFlags dependencyFlags,
1409 uint32_t memoryBarrierCount,
1410 const VkMemoryBarrier* pMemoryBarriers,
1411 uint32_t bufferMemoryBarrierCount,
1412 const VkBufferMemoryBarrier* pBufferMemoryBarriers,
1413 uint32_t imageMemoryBarrierCount,
1414 const VkImageMemoryBarrier* pImageMemoryBarriers)
1415{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001416 AEMU_SCOPED_TRACE("vkCmdPipelineBarrier");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001417 auto vkEnc = HostConnection::get()->vkEncoder();
1418 vkEnc->vkCmdPipelineBarrier(commandBuffer, srcStageMask, dstStageMask, dependencyFlags, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers);
1419}
1420static void entry_vkCmdBeginQuery(
1421 VkCommandBuffer commandBuffer,
1422 VkQueryPool queryPool,
1423 uint32_t query,
1424 VkQueryControlFlags flags)
1425{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001426 AEMU_SCOPED_TRACE("vkCmdBeginQuery");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001427 auto vkEnc = HostConnection::get()->vkEncoder();
1428 vkEnc->vkCmdBeginQuery(commandBuffer, queryPool, query, flags);
1429}
1430static void entry_vkCmdEndQuery(
1431 VkCommandBuffer commandBuffer,
1432 VkQueryPool queryPool,
1433 uint32_t query)
1434{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001435 AEMU_SCOPED_TRACE("vkCmdEndQuery");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001436 auto vkEnc = HostConnection::get()->vkEncoder();
1437 vkEnc->vkCmdEndQuery(commandBuffer, queryPool, query);
1438}
1439static void entry_vkCmdResetQueryPool(
1440 VkCommandBuffer commandBuffer,
1441 VkQueryPool queryPool,
1442 uint32_t firstQuery,
1443 uint32_t queryCount)
1444{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001445 AEMU_SCOPED_TRACE("vkCmdResetQueryPool");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001446 auto vkEnc = HostConnection::get()->vkEncoder();
1447 vkEnc->vkCmdResetQueryPool(commandBuffer, queryPool, firstQuery, queryCount);
1448}
1449static void entry_vkCmdWriteTimestamp(
1450 VkCommandBuffer commandBuffer,
1451 VkPipelineStageFlagBits pipelineStage,
1452 VkQueryPool queryPool,
1453 uint32_t query)
1454{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001455 AEMU_SCOPED_TRACE("vkCmdWriteTimestamp");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001456 auto vkEnc = HostConnection::get()->vkEncoder();
1457 vkEnc->vkCmdWriteTimestamp(commandBuffer, pipelineStage, queryPool, query);
1458}
1459static void entry_vkCmdCopyQueryPoolResults(
1460 VkCommandBuffer commandBuffer,
1461 VkQueryPool queryPool,
1462 uint32_t firstQuery,
1463 uint32_t queryCount,
1464 VkBuffer dstBuffer,
1465 VkDeviceSize dstOffset,
1466 VkDeviceSize stride,
1467 VkQueryResultFlags flags)
1468{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001469 AEMU_SCOPED_TRACE("vkCmdCopyQueryPoolResults");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001470 auto vkEnc = HostConnection::get()->vkEncoder();
1471 vkEnc->vkCmdCopyQueryPoolResults(commandBuffer, queryPool, firstQuery, queryCount, dstBuffer, dstOffset, stride, flags);
1472}
1473static void entry_vkCmdPushConstants(
1474 VkCommandBuffer commandBuffer,
1475 VkPipelineLayout layout,
1476 VkShaderStageFlags stageFlags,
1477 uint32_t offset,
1478 uint32_t size,
1479 const void* pValues)
1480{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001481 AEMU_SCOPED_TRACE("vkCmdPushConstants");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001482 auto vkEnc = HostConnection::get()->vkEncoder();
1483 vkEnc->vkCmdPushConstants(commandBuffer, layout, stageFlags, offset, size, pValues);
1484}
1485static void entry_vkCmdBeginRenderPass(
1486 VkCommandBuffer commandBuffer,
1487 const VkRenderPassBeginInfo* pRenderPassBegin,
1488 VkSubpassContents contents)
1489{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001490 AEMU_SCOPED_TRACE("vkCmdBeginRenderPass");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001491 auto vkEnc = HostConnection::get()->vkEncoder();
1492 vkEnc->vkCmdBeginRenderPass(commandBuffer, pRenderPassBegin, contents);
1493}
1494static void entry_vkCmdNextSubpass(
1495 VkCommandBuffer commandBuffer,
1496 VkSubpassContents contents)
1497{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001498 AEMU_SCOPED_TRACE("vkCmdNextSubpass");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001499 auto vkEnc = HostConnection::get()->vkEncoder();
1500 vkEnc->vkCmdNextSubpass(commandBuffer, contents);
1501}
1502static void entry_vkCmdEndRenderPass(
1503 VkCommandBuffer commandBuffer)
1504{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001505 AEMU_SCOPED_TRACE("vkCmdEndRenderPass");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001506 auto vkEnc = HostConnection::get()->vkEncoder();
1507 vkEnc->vkCmdEndRenderPass(commandBuffer);
1508}
1509static void entry_vkCmdExecuteCommands(
1510 VkCommandBuffer commandBuffer,
1511 uint32_t commandBufferCount,
1512 const VkCommandBuffer* pCommandBuffers)
1513{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001514 AEMU_SCOPED_TRACE("vkCmdExecuteCommands");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001515 auto vkEnc = HostConnection::get()->vkEncoder();
1516 vkEnc->vkCmdExecuteCommands(commandBuffer, commandBufferCount, pCommandBuffers);
1517}
1518#endif
1519#ifdef VK_VERSION_1_1
1520static VkResult entry_vkEnumerateInstanceVersion(
1521 uint32_t* pApiVersion)
1522{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001523 AEMU_SCOPED_TRACE("vkEnumerateInstanceVersion");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001524 auto vkEnc = HostConnection::get()->vkEncoder();
1525 VkResult vkEnumerateInstanceVersion_VkResult_return = (VkResult)0;
1526 vkEnumerateInstanceVersion_VkResult_return = vkEnc->vkEnumerateInstanceVersion(pApiVersion);
1527 return vkEnumerateInstanceVersion_VkResult_return;
1528}
1529static VkResult entry_vkBindBufferMemory2(
1530 VkDevice device,
1531 uint32_t bindInfoCount,
1532 const VkBindBufferMemoryInfo* pBindInfos)
1533{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001534 AEMU_SCOPED_TRACE("vkBindBufferMemory2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001535 auto vkEnc = HostConnection::get()->vkEncoder();
1536 VkResult vkBindBufferMemory2_VkResult_return = (VkResult)0;
Lingfeng Yang4af5f322019-02-14 08:10:28 -08001537 auto resources = ResourceTracker::get();
1538 vkBindBufferMemory2_VkResult_return = resources->on_vkBindBufferMemory2(vkEnc, VK_SUCCESS, device, bindInfoCount, pBindInfos);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001539 return vkBindBufferMemory2_VkResult_return;
1540}
1541static VkResult entry_vkBindImageMemory2(
1542 VkDevice device,
1543 uint32_t bindInfoCount,
1544 const VkBindImageMemoryInfo* pBindInfos)
1545{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001546 AEMU_SCOPED_TRACE("vkBindImageMemory2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001547 auto vkEnc = HostConnection::get()->vkEncoder();
1548 VkResult vkBindImageMemory2_VkResult_return = (VkResult)0;
Lingfeng Yang4af5f322019-02-14 08:10:28 -08001549 auto resources = ResourceTracker::get();
1550 vkBindImageMemory2_VkResult_return = resources->on_vkBindImageMemory2(vkEnc, VK_SUCCESS, device, bindInfoCount, pBindInfos);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001551 return vkBindImageMemory2_VkResult_return;
1552}
1553static void entry_vkGetDeviceGroupPeerMemoryFeatures(
1554 VkDevice device,
1555 uint32_t heapIndex,
1556 uint32_t localDeviceIndex,
1557 uint32_t remoteDeviceIndex,
1558 VkPeerMemoryFeatureFlags* pPeerMemoryFeatures)
1559{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001560 AEMU_SCOPED_TRACE("vkGetDeviceGroupPeerMemoryFeatures");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001561 auto vkEnc = HostConnection::get()->vkEncoder();
1562 vkEnc->vkGetDeviceGroupPeerMemoryFeatures(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures);
1563}
1564static void entry_vkCmdSetDeviceMask(
1565 VkCommandBuffer commandBuffer,
1566 uint32_t deviceMask)
1567{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001568 AEMU_SCOPED_TRACE("vkCmdSetDeviceMask");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001569 auto vkEnc = HostConnection::get()->vkEncoder();
1570 vkEnc->vkCmdSetDeviceMask(commandBuffer, deviceMask);
1571}
1572static void entry_vkCmdDispatchBase(
1573 VkCommandBuffer commandBuffer,
1574 uint32_t baseGroupX,
1575 uint32_t baseGroupY,
1576 uint32_t baseGroupZ,
1577 uint32_t groupCountX,
1578 uint32_t groupCountY,
1579 uint32_t groupCountZ)
1580{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001581 AEMU_SCOPED_TRACE("vkCmdDispatchBase");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001582 auto vkEnc = HostConnection::get()->vkEncoder();
1583 vkEnc->vkCmdDispatchBase(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ);
1584}
1585static VkResult entry_vkEnumeratePhysicalDeviceGroups(
1586 VkInstance instance,
1587 uint32_t* pPhysicalDeviceGroupCount,
1588 VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties)
1589{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001590 AEMU_SCOPED_TRACE("vkEnumeratePhysicalDeviceGroups");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001591 auto vkEnc = HostConnection::get()->vkEncoder();
1592 VkResult vkEnumeratePhysicalDeviceGroups_VkResult_return = (VkResult)0;
1593 vkEnumeratePhysicalDeviceGroups_VkResult_return = vkEnc->vkEnumeratePhysicalDeviceGroups(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties);
1594 return vkEnumeratePhysicalDeviceGroups_VkResult_return;
1595}
1596static void entry_vkGetImageMemoryRequirements2(
1597 VkDevice device,
1598 const VkImageMemoryRequirementsInfo2* pInfo,
1599 VkMemoryRequirements2* pMemoryRequirements)
1600{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001601 AEMU_SCOPED_TRACE("vkGetImageMemoryRequirements2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001602 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang4af5f322019-02-14 08:10:28 -08001603 auto resources = ResourceTracker::get();
1604 resources->on_vkGetImageMemoryRequirements2(vkEnc, device, pInfo, pMemoryRequirements);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001605}
1606static void entry_vkGetBufferMemoryRequirements2(
1607 VkDevice device,
1608 const VkBufferMemoryRequirementsInfo2* pInfo,
1609 VkMemoryRequirements2* pMemoryRequirements)
1610{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001611 AEMU_SCOPED_TRACE("vkGetBufferMemoryRequirements2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001612 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang4af5f322019-02-14 08:10:28 -08001613 auto resources = ResourceTracker::get();
1614 resources->on_vkGetBufferMemoryRequirements2(vkEnc, device, pInfo, pMemoryRequirements);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001615}
1616static void entry_vkGetImageSparseMemoryRequirements2(
1617 VkDevice device,
1618 const VkImageSparseMemoryRequirementsInfo2* pInfo,
1619 uint32_t* pSparseMemoryRequirementCount,
1620 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements)
1621{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001622 AEMU_SCOPED_TRACE("vkGetImageSparseMemoryRequirements2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001623 auto vkEnc = HostConnection::get()->vkEncoder();
1624 vkEnc->vkGetImageSparseMemoryRequirements2(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements);
1625}
1626static void entry_vkGetPhysicalDeviceFeatures2(
1627 VkPhysicalDevice physicalDevice,
1628 VkPhysicalDeviceFeatures2* pFeatures)
1629{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001630 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFeatures2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001631 auto vkEnc = HostConnection::get()->vkEncoder();
1632 vkEnc->vkGetPhysicalDeviceFeatures2(physicalDevice, pFeatures);
1633}
1634static void entry_vkGetPhysicalDeviceProperties2(
1635 VkPhysicalDevice physicalDevice,
1636 VkPhysicalDeviceProperties2* pProperties)
1637{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001638 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceProperties2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001639 auto vkEnc = HostConnection::get()->vkEncoder();
1640 vkEnc->vkGetPhysicalDeviceProperties2(physicalDevice, pProperties);
1641}
1642static void entry_vkGetPhysicalDeviceFormatProperties2(
1643 VkPhysicalDevice physicalDevice,
1644 VkFormat format,
1645 VkFormatProperties2* pFormatProperties)
1646{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001647 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFormatProperties2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001648 auto vkEnc = HostConnection::get()->vkEncoder();
1649 vkEnc->vkGetPhysicalDeviceFormatProperties2(physicalDevice, format, pFormatProperties);
1650}
1651static VkResult entry_vkGetPhysicalDeviceImageFormatProperties2(
1652 VkPhysicalDevice physicalDevice,
1653 const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
1654 VkImageFormatProperties2* pImageFormatProperties)
1655{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001656 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceImageFormatProperties2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001657 auto vkEnc = HostConnection::get()->vkEncoder();
1658 VkResult vkGetPhysicalDeviceImageFormatProperties2_VkResult_return = (VkResult)0;
1659 vkGetPhysicalDeviceImageFormatProperties2_VkResult_return = vkEnc->vkGetPhysicalDeviceImageFormatProperties2(physicalDevice, pImageFormatInfo, pImageFormatProperties);
1660 return vkGetPhysicalDeviceImageFormatProperties2_VkResult_return;
1661}
1662static void entry_vkGetPhysicalDeviceQueueFamilyProperties2(
1663 VkPhysicalDevice physicalDevice,
1664 uint32_t* pQueueFamilyPropertyCount,
1665 VkQueueFamilyProperties2* pQueueFamilyProperties)
1666{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001667 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceQueueFamilyProperties2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001668 auto vkEnc = HostConnection::get()->vkEncoder();
1669 vkEnc->vkGetPhysicalDeviceQueueFamilyProperties2(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties);
1670}
1671static void entry_vkGetPhysicalDeviceMemoryProperties2(
1672 VkPhysicalDevice physicalDevice,
1673 VkPhysicalDeviceMemoryProperties2* pMemoryProperties)
1674{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001675 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMemoryProperties2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001676 auto vkEnc = HostConnection::get()->vkEncoder();
1677 vkEnc->vkGetPhysicalDeviceMemoryProperties2(physicalDevice, pMemoryProperties);
1678}
1679static void entry_vkGetPhysicalDeviceSparseImageFormatProperties2(
1680 VkPhysicalDevice physicalDevice,
1681 const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
1682 uint32_t* pPropertyCount,
1683 VkSparseImageFormatProperties2* pProperties)
1684{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001685 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSparseImageFormatProperties2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001686 auto vkEnc = HostConnection::get()->vkEncoder();
1687 vkEnc->vkGetPhysicalDeviceSparseImageFormatProperties2(physicalDevice, pFormatInfo, pPropertyCount, pProperties);
1688}
1689static void entry_vkTrimCommandPool(
1690 VkDevice device,
1691 VkCommandPool commandPool,
1692 VkCommandPoolTrimFlags flags)
1693{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001694 AEMU_SCOPED_TRACE("vkTrimCommandPool");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001695 auto vkEnc = HostConnection::get()->vkEncoder();
1696 vkEnc->vkTrimCommandPool(device, commandPool, flags);
1697}
1698static void entry_vkGetDeviceQueue2(
1699 VkDevice device,
1700 const VkDeviceQueueInfo2* pQueueInfo,
1701 VkQueue* pQueue)
1702{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001703 AEMU_SCOPED_TRACE("vkGetDeviceQueue2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001704 auto vkEnc = HostConnection::get()->vkEncoder();
1705 vkEnc->vkGetDeviceQueue2(device, pQueueInfo, pQueue);
1706}
1707static VkResult entry_vkCreateSamplerYcbcrConversion(
1708 VkDevice device,
1709 const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
1710 const VkAllocationCallbacks* pAllocator,
1711 VkSamplerYcbcrConversion* pYcbcrConversion)
1712{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001713 AEMU_SCOPED_TRACE("vkCreateSamplerYcbcrConversion");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001714 auto vkEnc = HostConnection::get()->vkEncoder();
1715 VkResult vkCreateSamplerYcbcrConversion_VkResult_return = (VkResult)0;
1716 vkCreateSamplerYcbcrConversion_VkResult_return = vkEnc->vkCreateSamplerYcbcrConversion(device, pCreateInfo, pAllocator, pYcbcrConversion);
1717 return vkCreateSamplerYcbcrConversion_VkResult_return;
1718}
1719static void entry_vkDestroySamplerYcbcrConversion(
1720 VkDevice device,
1721 VkSamplerYcbcrConversion ycbcrConversion,
1722 const VkAllocationCallbacks* pAllocator)
1723{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001724 AEMU_SCOPED_TRACE("vkDestroySamplerYcbcrConversion");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001725 auto vkEnc = HostConnection::get()->vkEncoder();
1726 vkEnc->vkDestroySamplerYcbcrConversion(device, ycbcrConversion, pAllocator);
1727}
1728static VkResult entry_vkCreateDescriptorUpdateTemplate(
1729 VkDevice device,
1730 const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
1731 const VkAllocationCallbacks* pAllocator,
1732 VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate)
1733{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001734 AEMU_SCOPED_TRACE("vkCreateDescriptorUpdateTemplate");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001735 auto vkEnc = HostConnection::get()->vkEncoder();
1736 VkResult vkCreateDescriptorUpdateTemplate_VkResult_return = (VkResult)0;
1737 vkCreateDescriptorUpdateTemplate_VkResult_return = vkEnc->vkCreateDescriptorUpdateTemplate(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate);
1738 return vkCreateDescriptorUpdateTemplate_VkResult_return;
1739}
1740static void entry_vkDestroyDescriptorUpdateTemplate(
1741 VkDevice device,
1742 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
1743 const VkAllocationCallbacks* pAllocator)
1744{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001745 AEMU_SCOPED_TRACE("vkDestroyDescriptorUpdateTemplate");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001746 auto vkEnc = HostConnection::get()->vkEncoder();
1747 vkEnc->vkDestroyDescriptorUpdateTemplate(device, descriptorUpdateTemplate, pAllocator);
1748}
1749static void entry_vkUpdateDescriptorSetWithTemplate(
1750 VkDevice device,
1751 VkDescriptorSet descriptorSet,
1752 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
1753 const void* pData)
1754{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001755 AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplate");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001756 auto vkEnc = HostConnection::get()->vkEncoder();
1757 vkEnc->vkUpdateDescriptorSetWithTemplate(device, descriptorSet, descriptorUpdateTemplate, pData);
1758}
1759static void entry_vkGetPhysicalDeviceExternalBufferProperties(
1760 VkPhysicalDevice physicalDevice,
1761 const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
1762 VkExternalBufferProperties* pExternalBufferProperties)
1763{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001764 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalBufferProperties");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001765 auto vkEnc = HostConnection::get()->vkEncoder();
1766 vkEnc->vkGetPhysicalDeviceExternalBufferProperties(physicalDevice, pExternalBufferInfo, pExternalBufferProperties);
1767}
1768static void entry_vkGetPhysicalDeviceExternalFenceProperties(
1769 VkPhysicalDevice physicalDevice,
1770 const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
1771 VkExternalFenceProperties* pExternalFenceProperties)
1772{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001773 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalFenceProperties");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001774 auto vkEnc = HostConnection::get()->vkEncoder();
1775 vkEnc->vkGetPhysicalDeviceExternalFenceProperties(physicalDevice, pExternalFenceInfo, pExternalFenceProperties);
1776}
1777static void entry_vkGetPhysicalDeviceExternalSemaphoreProperties(
1778 VkPhysicalDevice physicalDevice,
1779 const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
1780 VkExternalSemaphoreProperties* pExternalSemaphoreProperties)
1781{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001782 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalSemaphoreProperties");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001783 auto vkEnc = HostConnection::get()->vkEncoder();
1784 vkEnc->vkGetPhysicalDeviceExternalSemaphoreProperties(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties);
1785}
1786static void entry_vkGetDescriptorSetLayoutSupport(
1787 VkDevice device,
1788 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
1789 VkDescriptorSetLayoutSupport* pSupport)
1790{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001791 AEMU_SCOPED_TRACE("vkGetDescriptorSetLayoutSupport");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001792 auto vkEnc = HostConnection::get()->vkEncoder();
1793 vkEnc->vkGetDescriptorSetLayoutSupport(device, pCreateInfo, pSupport);
1794}
1795#endif
1796#ifdef VK_KHR_surface
1797static void entry_vkDestroySurfaceKHR(
1798 VkInstance instance,
1799 VkSurfaceKHR surface,
1800 const VkAllocationCallbacks* pAllocator)
1801{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001802 AEMU_SCOPED_TRACE("vkDestroySurfaceKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001803 auto vkEnc = HostConnection::get()->vkEncoder();
1804 vkEnc->vkDestroySurfaceKHR(instance, surface, pAllocator);
1805}
1806static VkResult entry_vkGetPhysicalDeviceSurfaceSupportKHR(
1807 VkPhysicalDevice physicalDevice,
1808 uint32_t queueFamilyIndex,
1809 VkSurfaceKHR surface,
1810 VkBool32* pSupported)
1811{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001812 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceSupportKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001813 auto vkEnc = HostConnection::get()->vkEncoder();
1814 VkResult vkGetPhysicalDeviceSurfaceSupportKHR_VkResult_return = (VkResult)0;
1815 vkGetPhysicalDeviceSurfaceSupportKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceSupportKHR(physicalDevice, queueFamilyIndex, surface, pSupported);
1816 return vkGetPhysicalDeviceSurfaceSupportKHR_VkResult_return;
1817}
1818static VkResult entry_vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
1819 VkPhysicalDevice physicalDevice,
1820 VkSurfaceKHR surface,
1821 VkSurfaceCapabilitiesKHR* pSurfaceCapabilities)
1822{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001823 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceCapabilitiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001824 auto vkEnc = HostConnection::get()->vkEncoder();
1825 VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR_VkResult_return = (VkResult)0;
1826 vkGetPhysicalDeviceSurfaceCapabilitiesKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceCapabilitiesKHR(physicalDevice, surface, pSurfaceCapabilities);
1827 return vkGetPhysicalDeviceSurfaceCapabilitiesKHR_VkResult_return;
1828}
1829static VkResult entry_vkGetPhysicalDeviceSurfaceFormatsKHR(
1830 VkPhysicalDevice physicalDevice,
1831 VkSurfaceKHR surface,
1832 uint32_t* pSurfaceFormatCount,
1833 VkSurfaceFormatKHR* pSurfaceFormats)
1834{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001835 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceFormatsKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001836 auto vkEnc = HostConnection::get()->vkEncoder();
1837 VkResult vkGetPhysicalDeviceSurfaceFormatsKHR_VkResult_return = (VkResult)0;
1838 vkGetPhysicalDeviceSurfaceFormatsKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceFormatsKHR(physicalDevice, surface, pSurfaceFormatCount, pSurfaceFormats);
1839 return vkGetPhysicalDeviceSurfaceFormatsKHR_VkResult_return;
1840}
1841static VkResult entry_vkGetPhysicalDeviceSurfacePresentModesKHR(
1842 VkPhysicalDevice physicalDevice,
1843 VkSurfaceKHR surface,
1844 uint32_t* pPresentModeCount,
1845 VkPresentModeKHR* pPresentModes)
1846{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001847 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfacePresentModesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001848 auto vkEnc = HostConnection::get()->vkEncoder();
1849 VkResult vkGetPhysicalDeviceSurfacePresentModesKHR_VkResult_return = (VkResult)0;
1850 vkGetPhysicalDeviceSurfacePresentModesKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfacePresentModesKHR(physicalDevice, surface, pPresentModeCount, pPresentModes);
1851 return vkGetPhysicalDeviceSurfacePresentModesKHR_VkResult_return;
1852}
1853#endif
1854#ifdef VK_KHR_swapchain
1855static VkResult entry_vkCreateSwapchainKHR(
1856 VkDevice device,
1857 const VkSwapchainCreateInfoKHR* pCreateInfo,
1858 const VkAllocationCallbacks* pAllocator,
1859 VkSwapchainKHR* pSwapchain)
1860{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001861 AEMU_SCOPED_TRACE("vkCreateSwapchainKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001862 auto vkEnc = HostConnection::get()->vkEncoder();
1863 VkResult vkCreateSwapchainKHR_VkResult_return = (VkResult)0;
1864 vkCreateSwapchainKHR_VkResult_return = vkEnc->vkCreateSwapchainKHR(device, pCreateInfo, pAllocator, pSwapchain);
1865 return vkCreateSwapchainKHR_VkResult_return;
1866}
1867static void entry_vkDestroySwapchainKHR(
1868 VkDevice device,
1869 VkSwapchainKHR swapchain,
1870 const VkAllocationCallbacks* pAllocator)
1871{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001872 AEMU_SCOPED_TRACE("vkDestroySwapchainKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001873 auto vkEnc = HostConnection::get()->vkEncoder();
1874 vkEnc->vkDestroySwapchainKHR(device, swapchain, pAllocator);
1875}
1876static VkResult entry_vkGetSwapchainImagesKHR(
1877 VkDevice device,
1878 VkSwapchainKHR swapchain,
1879 uint32_t* pSwapchainImageCount,
1880 VkImage* pSwapchainImages)
1881{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001882 AEMU_SCOPED_TRACE("vkGetSwapchainImagesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001883 auto vkEnc = HostConnection::get()->vkEncoder();
1884 VkResult vkGetSwapchainImagesKHR_VkResult_return = (VkResult)0;
1885 vkGetSwapchainImagesKHR_VkResult_return = vkEnc->vkGetSwapchainImagesKHR(device, swapchain, pSwapchainImageCount, pSwapchainImages);
1886 return vkGetSwapchainImagesKHR_VkResult_return;
1887}
1888static VkResult entry_vkAcquireNextImageKHR(
1889 VkDevice device,
1890 VkSwapchainKHR swapchain,
1891 uint64_t timeout,
1892 VkSemaphore semaphore,
1893 VkFence fence,
1894 uint32_t* pImageIndex)
1895{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001896 AEMU_SCOPED_TRACE("vkAcquireNextImageKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001897 auto vkEnc = HostConnection::get()->vkEncoder();
1898 VkResult vkAcquireNextImageKHR_VkResult_return = (VkResult)0;
1899 vkAcquireNextImageKHR_VkResult_return = vkEnc->vkAcquireNextImageKHR(device, swapchain, timeout, semaphore, fence, pImageIndex);
1900 return vkAcquireNextImageKHR_VkResult_return;
1901}
1902static VkResult entry_vkQueuePresentKHR(
1903 VkQueue queue,
1904 const VkPresentInfoKHR* pPresentInfo)
1905{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001906 AEMU_SCOPED_TRACE("vkQueuePresentKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001907 auto vkEnc = HostConnection::get()->vkEncoder();
1908 VkResult vkQueuePresentKHR_VkResult_return = (VkResult)0;
1909 vkQueuePresentKHR_VkResult_return = vkEnc->vkQueuePresentKHR(queue, pPresentInfo);
1910 return vkQueuePresentKHR_VkResult_return;
1911}
1912static VkResult entry_vkGetDeviceGroupPresentCapabilitiesKHR(
1913 VkDevice device,
1914 VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities)
1915{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001916 AEMU_SCOPED_TRACE("vkGetDeviceGroupPresentCapabilitiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001917 auto vkEnc = HostConnection::get()->vkEncoder();
1918 VkResult vkGetDeviceGroupPresentCapabilitiesKHR_VkResult_return = (VkResult)0;
1919 vkGetDeviceGroupPresentCapabilitiesKHR_VkResult_return = vkEnc->vkGetDeviceGroupPresentCapabilitiesKHR(device, pDeviceGroupPresentCapabilities);
1920 return vkGetDeviceGroupPresentCapabilitiesKHR_VkResult_return;
1921}
1922static VkResult entry_vkGetDeviceGroupSurfacePresentModesKHR(
1923 VkDevice device,
1924 VkSurfaceKHR surface,
1925 VkDeviceGroupPresentModeFlagsKHR* pModes)
1926{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001927 AEMU_SCOPED_TRACE("vkGetDeviceGroupSurfacePresentModesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001928 auto vkEnc = HostConnection::get()->vkEncoder();
1929 VkResult vkGetDeviceGroupSurfacePresentModesKHR_VkResult_return = (VkResult)0;
1930 vkGetDeviceGroupSurfacePresentModesKHR_VkResult_return = vkEnc->vkGetDeviceGroupSurfacePresentModesKHR(device, surface, pModes);
1931 return vkGetDeviceGroupSurfacePresentModesKHR_VkResult_return;
1932}
1933static VkResult entry_vkGetPhysicalDevicePresentRectanglesKHR(
1934 VkPhysicalDevice physicalDevice,
1935 VkSurfaceKHR surface,
1936 uint32_t* pRectCount,
1937 VkRect2D* pRects)
1938{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001939 AEMU_SCOPED_TRACE("vkGetPhysicalDevicePresentRectanglesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001940 auto vkEnc = HostConnection::get()->vkEncoder();
1941 VkResult vkGetPhysicalDevicePresentRectanglesKHR_VkResult_return = (VkResult)0;
1942 vkGetPhysicalDevicePresentRectanglesKHR_VkResult_return = vkEnc->vkGetPhysicalDevicePresentRectanglesKHR(physicalDevice, surface, pRectCount, pRects);
1943 return vkGetPhysicalDevicePresentRectanglesKHR_VkResult_return;
1944}
1945static VkResult entry_vkAcquireNextImage2KHR(
1946 VkDevice device,
1947 const VkAcquireNextImageInfoKHR* pAcquireInfo,
1948 uint32_t* pImageIndex)
1949{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001950 AEMU_SCOPED_TRACE("vkAcquireNextImage2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001951 auto vkEnc = HostConnection::get()->vkEncoder();
1952 VkResult vkAcquireNextImage2KHR_VkResult_return = (VkResult)0;
1953 vkAcquireNextImage2KHR_VkResult_return = vkEnc->vkAcquireNextImage2KHR(device, pAcquireInfo, pImageIndex);
1954 return vkAcquireNextImage2KHR_VkResult_return;
1955}
1956#endif
1957#ifdef VK_KHR_display
1958static VkResult entry_vkGetPhysicalDeviceDisplayPropertiesKHR(
1959 VkPhysicalDevice physicalDevice,
1960 uint32_t* pPropertyCount,
1961 VkDisplayPropertiesKHR* pProperties)
1962{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001963 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayPropertiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001964 auto vkEnc = HostConnection::get()->vkEncoder();
1965 VkResult vkGetPhysicalDeviceDisplayPropertiesKHR_VkResult_return = (VkResult)0;
1966 vkGetPhysicalDeviceDisplayPropertiesKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceDisplayPropertiesKHR(physicalDevice, pPropertyCount, pProperties);
1967 return vkGetPhysicalDeviceDisplayPropertiesKHR_VkResult_return;
1968}
1969static VkResult entry_vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
1970 VkPhysicalDevice physicalDevice,
1971 uint32_t* pPropertyCount,
1972 VkDisplayPlanePropertiesKHR* pProperties)
1973{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001974 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayPlanePropertiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001975 auto vkEnc = HostConnection::get()->vkEncoder();
1976 VkResult vkGetPhysicalDeviceDisplayPlanePropertiesKHR_VkResult_return = (VkResult)0;
1977 vkGetPhysicalDeviceDisplayPlanePropertiesKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceDisplayPlanePropertiesKHR(physicalDevice, pPropertyCount, pProperties);
1978 return vkGetPhysicalDeviceDisplayPlanePropertiesKHR_VkResult_return;
1979}
1980static VkResult entry_vkGetDisplayPlaneSupportedDisplaysKHR(
1981 VkPhysicalDevice physicalDevice,
1982 uint32_t planeIndex,
1983 uint32_t* pDisplayCount,
1984 VkDisplayKHR* pDisplays)
1985{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001986 AEMU_SCOPED_TRACE("vkGetDisplayPlaneSupportedDisplaysKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001987 auto vkEnc = HostConnection::get()->vkEncoder();
1988 VkResult vkGetDisplayPlaneSupportedDisplaysKHR_VkResult_return = (VkResult)0;
1989 vkGetDisplayPlaneSupportedDisplaysKHR_VkResult_return = vkEnc->vkGetDisplayPlaneSupportedDisplaysKHR(physicalDevice, planeIndex, pDisplayCount, pDisplays);
1990 return vkGetDisplayPlaneSupportedDisplaysKHR_VkResult_return;
1991}
1992static VkResult entry_vkGetDisplayModePropertiesKHR(
1993 VkPhysicalDevice physicalDevice,
1994 VkDisplayKHR display,
1995 uint32_t* pPropertyCount,
1996 VkDisplayModePropertiesKHR* pProperties)
1997{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001998 AEMU_SCOPED_TRACE("vkGetDisplayModePropertiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001999 auto vkEnc = HostConnection::get()->vkEncoder();
2000 VkResult vkGetDisplayModePropertiesKHR_VkResult_return = (VkResult)0;
2001 vkGetDisplayModePropertiesKHR_VkResult_return = vkEnc->vkGetDisplayModePropertiesKHR(physicalDevice, display, pPropertyCount, pProperties);
2002 return vkGetDisplayModePropertiesKHR_VkResult_return;
2003}
2004static VkResult entry_vkCreateDisplayModeKHR(
2005 VkPhysicalDevice physicalDevice,
2006 VkDisplayKHR display,
2007 const VkDisplayModeCreateInfoKHR* pCreateInfo,
2008 const VkAllocationCallbacks* pAllocator,
2009 VkDisplayModeKHR* pMode)
2010{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002011 AEMU_SCOPED_TRACE("vkCreateDisplayModeKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002012 auto vkEnc = HostConnection::get()->vkEncoder();
2013 VkResult vkCreateDisplayModeKHR_VkResult_return = (VkResult)0;
2014 vkCreateDisplayModeKHR_VkResult_return = vkEnc->vkCreateDisplayModeKHR(physicalDevice, display, pCreateInfo, pAllocator, pMode);
2015 return vkCreateDisplayModeKHR_VkResult_return;
2016}
2017static VkResult entry_vkGetDisplayPlaneCapabilitiesKHR(
2018 VkPhysicalDevice physicalDevice,
2019 VkDisplayModeKHR mode,
2020 uint32_t planeIndex,
2021 VkDisplayPlaneCapabilitiesKHR* pCapabilities)
2022{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002023 AEMU_SCOPED_TRACE("vkGetDisplayPlaneCapabilitiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002024 auto vkEnc = HostConnection::get()->vkEncoder();
2025 VkResult vkGetDisplayPlaneCapabilitiesKHR_VkResult_return = (VkResult)0;
2026 vkGetDisplayPlaneCapabilitiesKHR_VkResult_return = vkEnc->vkGetDisplayPlaneCapabilitiesKHR(physicalDevice, mode, planeIndex, pCapabilities);
2027 return vkGetDisplayPlaneCapabilitiesKHR_VkResult_return;
2028}
2029static VkResult entry_vkCreateDisplayPlaneSurfaceKHR(
2030 VkInstance instance,
2031 const VkDisplaySurfaceCreateInfoKHR* pCreateInfo,
2032 const VkAllocationCallbacks* pAllocator,
2033 VkSurfaceKHR* pSurface)
2034{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002035 AEMU_SCOPED_TRACE("vkCreateDisplayPlaneSurfaceKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002036 auto vkEnc = HostConnection::get()->vkEncoder();
2037 VkResult vkCreateDisplayPlaneSurfaceKHR_VkResult_return = (VkResult)0;
2038 vkCreateDisplayPlaneSurfaceKHR_VkResult_return = vkEnc->vkCreateDisplayPlaneSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
2039 return vkCreateDisplayPlaneSurfaceKHR_VkResult_return;
2040}
2041#endif
2042#ifdef VK_KHR_display_swapchain
2043static VkResult entry_vkCreateSharedSwapchainsKHR(
2044 VkDevice device,
2045 uint32_t swapchainCount,
2046 const VkSwapchainCreateInfoKHR* pCreateInfos,
2047 const VkAllocationCallbacks* pAllocator,
2048 VkSwapchainKHR* pSwapchains)
2049{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002050 AEMU_SCOPED_TRACE("vkCreateSharedSwapchainsKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002051 auto vkEnc = HostConnection::get()->vkEncoder();
2052 VkResult vkCreateSharedSwapchainsKHR_VkResult_return = (VkResult)0;
2053 vkCreateSharedSwapchainsKHR_VkResult_return = vkEnc->vkCreateSharedSwapchainsKHR(device, swapchainCount, pCreateInfos, pAllocator, pSwapchains);
2054 return vkCreateSharedSwapchainsKHR_VkResult_return;
2055}
2056#endif
2057#ifdef VK_KHR_xlib_surface
2058static VkResult entry_vkCreateXlibSurfaceKHR(
2059 VkInstance instance,
2060 const VkXlibSurfaceCreateInfoKHR* pCreateInfo,
2061 const VkAllocationCallbacks* pAllocator,
2062 VkSurfaceKHR* pSurface)
2063{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002064 AEMU_SCOPED_TRACE("vkCreateXlibSurfaceKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002065 auto vkEnc = HostConnection::get()->vkEncoder();
2066 VkResult vkCreateXlibSurfaceKHR_VkResult_return = (VkResult)0;
2067 vkCreateXlibSurfaceKHR_VkResult_return = vkEnc->vkCreateXlibSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
2068 return vkCreateXlibSurfaceKHR_VkResult_return;
2069}
2070static VkBool32 entry_vkGetPhysicalDeviceXlibPresentationSupportKHR(
2071 VkPhysicalDevice physicalDevice,
2072 uint32_t queueFamilyIndex,
2073 Display* dpy,
2074 VisualID visualID)
2075{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002076 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceXlibPresentationSupportKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002077 auto vkEnc = HostConnection::get()->vkEncoder();
2078 VkBool32 vkGetPhysicalDeviceXlibPresentationSupportKHR_VkBool32_return = (VkBool32)0;
2079 vkGetPhysicalDeviceXlibPresentationSupportKHR_VkBool32_return = vkEnc->vkGetPhysicalDeviceXlibPresentationSupportKHR(physicalDevice, queueFamilyIndex, dpy, visualID);
2080 return vkGetPhysicalDeviceXlibPresentationSupportKHR_VkBool32_return;
2081}
2082#endif
2083#ifdef VK_KHR_xcb_surface
2084static VkResult entry_vkCreateXcbSurfaceKHR(
2085 VkInstance instance,
2086 const VkXcbSurfaceCreateInfoKHR* pCreateInfo,
2087 const VkAllocationCallbacks* pAllocator,
2088 VkSurfaceKHR* pSurface)
2089{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002090 AEMU_SCOPED_TRACE("vkCreateXcbSurfaceKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002091 auto vkEnc = HostConnection::get()->vkEncoder();
2092 VkResult vkCreateXcbSurfaceKHR_VkResult_return = (VkResult)0;
2093 vkCreateXcbSurfaceKHR_VkResult_return = vkEnc->vkCreateXcbSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
2094 return vkCreateXcbSurfaceKHR_VkResult_return;
2095}
2096static VkBool32 entry_vkGetPhysicalDeviceXcbPresentationSupportKHR(
2097 VkPhysicalDevice physicalDevice,
2098 uint32_t queueFamilyIndex,
2099 xcb_connection_t* connection,
2100 xcb_visualid_t visual_id)
2101{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002102 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceXcbPresentationSupportKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002103 auto vkEnc = HostConnection::get()->vkEncoder();
2104 VkBool32 vkGetPhysicalDeviceXcbPresentationSupportKHR_VkBool32_return = (VkBool32)0;
2105 vkGetPhysicalDeviceXcbPresentationSupportKHR_VkBool32_return = vkEnc->vkGetPhysicalDeviceXcbPresentationSupportKHR(physicalDevice, queueFamilyIndex, connection, visual_id);
2106 return vkGetPhysicalDeviceXcbPresentationSupportKHR_VkBool32_return;
2107}
2108#endif
2109#ifdef VK_KHR_wayland_surface
2110static VkResult entry_vkCreateWaylandSurfaceKHR(
2111 VkInstance instance,
2112 const VkWaylandSurfaceCreateInfoKHR* pCreateInfo,
2113 const VkAllocationCallbacks* pAllocator,
2114 VkSurfaceKHR* pSurface)
2115{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002116 AEMU_SCOPED_TRACE("vkCreateWaylandSurfaceKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002117 auto vkEnc = HostConnection::get()->vkEncoder();
2118 VkResult vkCreateWaylandSurfaceKHR_VkResult_return = (VkResult)0;
2119 vkCreateWaylandSurfaceKHR_VkResult_return = vkEnc->vkCreateWaylandSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
2120 return vkCreateWaylandSurfaceKHR_VkResult_return;
2121}
2122static VkBool32 entry_vkGetPhysicalDeviceWaylandPresentationSupportKHR(
2123 VkPhysicalDevice physicalDevice,
2124 uint32_t queueFamilyIndex,
2125 wl_display* display)
2126{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002127 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceWaylandPresentationSupportKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002128 auto vkEnc = HostConnection::get()->vkEncoder();
2129 VkBool32 vkGetPhysicalDeviceWaylandPresentationSupportKHR_VkBool32_return = (VkBool32)0;
2130 vkGetPhysicalDeviceWaylandPresentationSupportKHR_VkBool32_return = vkEnc->vkGetPhysicalDeviceWaylandPresentationSupportKHR(physicalDevice, queueFamilyIndex, display);
2131 return vkGetPhysicalDeviceWaylandPresentationSupportKHR_VkBool32_return;
2132}
2133#endif
2134#ifdef VK_KHR_mir_surface
2135static VkResult entry_vkCreateMirSurfaceKHR(
2136 VkInstance instance,
2137 const VkMirSurfaceCreateInfoKHR* pCreateInfo,
2138 const VkAllocationCallbacks* pAllocator,
2139 VkSurfaceKHR* pSurface)
2140{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002141 AEMU_SCOPED_TRACE("vkCreateMirSurfaceKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002142 auto vkEnc = HostConnection::get()->vkEncoder();
2143 VkResult vkCreateMirSurfaceKHR_VkResult_return = (VkResult)0;
2144 vkCreateMirSurfaceKHR_VkResult_return = vkEnc->vkCreateMirSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
2145 return vkCreateMirSurfaceKHR_VkResult_return;
2146}
2147static VkBool32 entry_vkGetPhysicalDeviceMirPresentationSupportKHR(
2148 VkPhysicalDevice physicalDevice,
2149 uint32_t queueFamilyIndex,
2150 MirConnection* connection)
2151{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002152 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMirPresentationSupportKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002153 auto vkEnc = HostConnection::get()->vkEncoder();
2154 VkBool32 vkGetPhysicalDeviceMirPresentationSupportKHR_VkBool32_return = (VkBool32)0;
2155 vkGetPhysicalDeviceMirPresentationSupportKHR_VkBool32_return = vkEnc->vkGetPhysicalDeviceMirPresentationSupportKHR(physicalDevice, queueFamilyIndex, connection);
2156 return vkGetPhysicalDeviceMirPresentationSupportKHR_VkBool32_return;
2157}
2158#endif
2159#ifdef VK_KHR_android_surface
2160static VkResult entry_vkCreateAndroidSurfaceKHR(
2161 VkInstance instance,
2162 const VkAndroidSurfaceCreateInfoKHR* pCreateInfo,
2163 const VkAllocationCallbacks* pAllocator,
2164 VkSurfaceKHR* pSurface)
2165{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002166 AEMU_SCOPED_TRACE("vkCreateAndroidSurfaceKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002167 auto vkEnc = HostConnection::get()->vkEncoder();
2168 VkResult vkCreateAndroidSurfaceKHR_VkResult_return = (VkResult)0;
2169 vkCreateAndroidSurfaceKHR_VkResult_return = vkEnc->vkCreateAndroidSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
2170 return vkCreateAndroidSurfaceKHR_VkResult_return;
2171}
2172#endif
2173#ifdef VK_KHR_win32_surface
2174static VkResult entry_vkCreateWin32SurfaceKHR(
2175 VkInstance instance,
2176 const VkWin32SurfaceCreateInfoKHR* pCreateInfo,
2177 const VkAllocationCallbacks* pAllocator,
2178 VkSurfaceKHR* pSurface)
2179{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002180 AEMU_SCOPED_TRACE("vkCreateWin32SurfaceKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002181 auto vkEnc = HostConnection::get()->vkEncoder();
2182 VkResult vkCreateWin32SurfaceKHR_VkResult_return = (VkResult)0;
2183 vkCreateWin32SurfaceKHR_VkResult_return = vkEnc->vkCreateWin32SurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
2184 return vkCreateWin32SurfaceKHR_VkResult_return;
2185}
2186static VkBool32 entry_vkGetPhysicalDeviceWin32PresentationSupportKHR(
2187 VkPhysicalDevice physicalDevice,
2188 uint32_t queueFamilyIndex)
2189{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002190 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceWin32PresentationSupportKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002191 auto vkEnc = HostConnection::get()->vkEncoder();
2192 VkBool32 vkGetPhysicalDeviceWin32PresentationSupportKHR_VkBool32_return = (VkBool32)0;
2193 vkGetPhysicalDeviceWin32PresentationSupportKHR_VkBool32_return = vkEnc->vkGetPhysicalDeviceWin32PresentationSupportKHR(physicalDevice, queueFamilyIndex);
2194 return vkGetPhysicalDeviceWin32PresentationSupportKHR_VkBool32_return;
2195}
2196#endif
2197#ifdef VK_KHR_sampler_mirror_clamp_to_edge
2198#endif
2199#ifdef VK_KHR_multiview
2200#endif
2201#ifdef VK_KHR_get_physical_device_properties2
2202static void entry_vkGetPhysicalDeviceFeatures2KHR(
2203 VkPhysicalDevice physicalDevice,
2204 VkPhysicalDeviceFeatures2* pFeatures)
2205{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002206 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFeatures2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002207 auto vkEnc = HostConnection::get()->vkEncoder();
2208 vkEnc->vkGetPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures);
2209}
2210static void entry_vkGetPhysicalDeviceProperties2KHR(
2211 VkPhysicalDevice physicalDevice,
2212 VkPhysicalDeviceProperties2* pProperties)
2213{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002214 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002215 auto vkEnc = HostConnection::get()->vkEncoder();
2216 vkEnc->vkGetPhysicalDeviceProperties2KHR(physicalDevice, pProperties);
2217}
2218static void entry_vkGetPhysicalDeviceFormatProperties2KHR(
2219 VkPhysicalDevice physicalDevice,
2220 VkFormat format,
2221 VkFormatProperties2* pFormatProperties)
2222{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002223 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFormatProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002224 auto vkEnc = HostConnection::get()->vkEncoder();
2225 vkEnc->vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice, format, pFormatProperties);
2226}
2227static VkResult entry_vkGetPhysicalDeviceImageFormatProperties2KHR(
2228 VkPhysicalDevice physicalDevice,
2229 const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
2230 VkImageFormatProperties2* pImageFormatProperties)
2231{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002232 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceImageFormatProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002233 auto vkEnc = HostConnection::get()->vkEncoder();
2234 VkResult vkGetPhysicalDeviceImageFormatProperties2KHR_VkResult_return = (VkResult)0;
2235 vkGetPhysicalDeviceImageFormatProperties2KHR_VkResult_return = vkEnc->vkGetPhysicalDeviceImageFormatProperties2KHR(physicalDevice, pImageFormatInfo, pImageFormatProperties);
2236 return vkGetPhysicalDeviceImageFormatProperties2KHR_VkResult_return;
2237}
2238static void entry_vkGetPhysicalDeviceQueueFamilyProperties2KHR(
2239 VkPhysicalDevice physicalDevice,
2240 uint32_t* pQueueFamilyPropertyCount,
2241 VkQueueFamilyProperties2* pQueueFamilyProperties)
2242{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002243 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceQueueFamilyProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002244 auto vkEnc = HostConnection::get()->vkEncoder();
2245 vkEnc->vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties);
2246}
2247static void entry_vkGetPhysicalDeviceMemoryProperties2KHR(
2248 VkPhysicalDevice physicalDevice,
2249 VkPhysicalDeviceMemoryProperties2* pMemoryProperties)
2250{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002251 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMemoryProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002252 auto vkEnc = HostConnection::get()->vkEncoder();
2253 vkEnc->vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice, pMemoryProperties);
2254}
2255static void entry_vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
2256 VkPhysicalDevice physicalDevice,
2257 const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
2258 uint32_t* pPropertyCount,
2259 VkSparseImageFormatProperties2* pProperties)
2260{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002261 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSparseImageFormatProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002262 auto vkEnc = HostConnection::get()->vkEncoder();
2263 vkEnc->vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties);
2264}
2265#endif
2266#ifdef VK_KHR_device_group
2267static void entry_vkGetDeviceGroupPeerMemoryFeaturesKHR(
2268 VkDevice device,
2269 uint32_t heapIndex,
2270 uint32_t localDeviceIndex,
2271 uint32_t remoteDeviceIndex,
2272 VkPeerMemoryFeatureFlags* pPeerMemoryFeatures)
2273{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002274 AEMU_SCOPED_TRACE("vkGetDeviceGroupPeerMemoryFeaturesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002275 auto vkEnc = HostConnection::get()->vkEncoder();
2276 vkEnc->vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures);
2277}
2278static void entry_vkCmdSetDeviceMaskKHR(
2279 VkCommandBuffer commandBuffer,
2280 uint32_t deviceMask)
2281{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002282 AEMU_SCOPED_TRACE("vkCmdSetDeviceMaskKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002283 auto vkEnc = HostConnection::get()->vkEncoder();
2284 vkEnc->vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask);
2285}
2286static void entry_vkCmdDispatchBaseKHR(
2287 VkCommandBuffer commandBuffer,
2288 uint32_t baseGroupX,
2289 uint32_t baseGroupY,
2290 uint32_t baseGroupZ,
2291 uint32_t groupCountX,
2292 uint32_t groupCountY,
2293 uint32_t groupCountZ)
2294{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002295 AEMU_SCOPED_TRACE("vkCmdDispatchBaseKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002296 auto vkEnc = HostConnection::get()->vkEncoder();
2297 vkEnc->vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ);
2298}
2299#endif
2300#ifdef VK_KHR_shader_draw_parameters
2301#endif
2302#ifdef VK_KHR_maintenance1
2303static void entry_vkTrimCommandPoolKHR(
2304 VkDevice device,
2305 VkCommandPool commandPool,
2306 VkCommandPoolTrimFlags flags)
2307{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002308 AEMU_SCOPED_TRACE("vkTrimCommandPoolKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002309 auto vkEnc = HostConnection::get()->vkEncoder();
2310 vkEnc->vkTrimCommandPoolKHR(device, commandPool, flags);
2311}
2312#endif
2313#ifdef VK_KHR_device_group_creation
2314static VkResult entry_vkEnumeratePhysicalDeviceGroupsKHR(
2315 VkInstance instance,
2316 uint32_t* pPhysicalDeviceGroupCount,
2317 VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties)
2318{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002319 AEMU_SCOPED_TRACE("vkEnumeratePhysicalDeviceGroupsKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002320 auto vkEnc = HostConnection::get()->vkEncoder();
2321 VkResult vkEnumeratePhysicalDeviceGroupsKHR_VkResult_return = (VkResult)0;
2322 vkEnumeratePhysicalDeviceGroupsKHR_VkResult_return = vkEnc->vkEnumeratePhysicalDeviceGroupsKHR(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties);
2323 return vkEnumeratePhysicalDeviceGroupsKHR_VkResult_return;
2324}
2325#endif
2326#ifdef VK_KHR_external_memory_capabilities
2327static void entry_vkGetPhysicalDeviceExternalBufferPropertiesKHR(
2328 VkPhysicalDevice physicalDevice,
2329 const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
2330 VkExternalBufferProperties* pExternalBufferProperties)
2331{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002332 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalBufferPropertiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002333 auto vkEnc = HostConnection::get()->vkEncoder();
2334 vkEnc->vkGetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties);
2335}
2336#endif
2337#ifdef VK_KHR_external_memory
2338#endif
2339#ifdef VK_KHR_external_memory_win32
2340static VkResult entry_vkGetMemoryWin32HandleKHR(
2341 VkDevice device,
2342 const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo,
2343 HANDLE* pHandle)
2344{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002345 AEMU_SCOPED_TRACE("vkGetMemoryWin32HandleKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002346 auto vkEnc = HostConnection::get()->vkEncoder();
2347 VkResult vkGetMemoryWin32HandleKHR_VkResult_return = (VkResult)0;
2348 vkGetMemoryWin32HandleKHR_VkResult_return = vkEnc->vkGetMemoryWin32HandleKHR(device, pGetWin32HandleInfo, pHandle);
2349 return vkGetMemoryWin32HandleKHR_VkResult_return;
2350}
2351static VkResult entry_vkGetMemoryWin32HandlePropertiesKHR(
2352 VkDevice device,
2353 VkExternalMemoryHandleTypeFlagBits handleType,
2354 HANDLE handle,
2355 VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties)
2356{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002357 AEMU_SCOPED_TRACE("vkGetMemoryWin32HandlePropertiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002358 auto vkEnc = HostConnection::get()->vkEncoder();
2359 VkResult vkGetMemoryWin32HandlePropertiesKHR_VkResult_return = (VkResult)0;
2360 vkGetMemoryWin32HandlePropertiesKHR_VkResult_return = vkEnc->vkGetMemoryWin32HandlePropertiesKHR(device, handleType, handle, pMemoryWin32HandleProperties);
2361 return vkGetMemoryWin32HandlePropertiesKHR_VkResult_return;
2362}
2363#endif
2364#ifdef VK_KHR_external_memory_fd
2365static VkResult entry_vkGetMemoryFdKHR(
2366 VkDevice device,
2367 const VkMemoryGetFdInfoKHR* pGetFdInfo,
2368 int* pFd)
2369{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002370 AEMU_SCOPED_TRACE("vkGetMemoryFdKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002371 auto vkEnc = HostConnection::get()->vkEncoder();
2372 VkResult vkGetMemoryFdKHR_VkResult_return = (VkResult)0;
2373 vkGetMemoryFdKHR_VkResult_return = vkEnc->vkGetMemoryFdKHR(device, pGetFdInfo, pFd);
2374 return vkGetMemoryFdKHR_VkResult_return;
2375}
2376static VkResult entry_vkGetMemoryFdPropertiesKHR(
2377 VkDevice device,
2378 VkExternalMemoryHandleTypeFlagBits handleType,
2379 int fd,
2380 VkMemoryFdPropertiesKHR* pMemoryFdProperties)
2381{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002382 AEMU_SCOPED_TRACE("vkGetMemoryFdPropertiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002383 auto vkEnc = HostConnection::get()->vkEncoder();
2384 VkResult vkGetMemoryFdPropertiesKHR_VkResult_return = (VkResult)0;
2385 vkGetMemoryFdPropertiesKHR_VkResult_return = vkEnc->vkGetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties);
2386 return vkGetMemoryFdPropertiesKHR_VkResult_return;
2387}
2388#endif
2389#ifdef VK_KHR_win32_keyed_mutex
2390#endif
2391#ifdef VK_KHR_external_semaphore_capabilities
2392static void entry_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
2393 VkPhysicalDevice physicalDevice,
2394 const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
2395 VkExternalSemaphoreProperties* pExternalSemaphoreProperties)
2396{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002397 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalSemaphorePropertiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002398 auto vkEnc = HostConnection::get()->vkEncoder();
2399 vkEnc->vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties);
2400}
2401#endif
2402#ifdef VK_KHR_external_semaphore
2403#endif
2404#ifdef VK_KHR_external_semaphore_win32
2405static VkResult entry_vkImportSemaphoreWin32HandleKHR(
2406 VkDevice device,
2407 const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo)
2408{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002409 AEMU_SCOPED_TRACE("vkImportSemaphoreWin32HandleKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002410 auto vkEnc = HostConnection::get()->vkEncoder();
2411 VkResult vkImportSemaphoreWin32HandleKHR_VkResult_return = (VkResult)0;
2412 vkImportSemaphoreWin32HandleKHR_VkResult_return = vkEnc->vkImportSemaphoreWin32HandleKHR(device, pImportSemaphoreWin32HandleInfo);
2413 return vkImportSemaphoreWin32HandleKHR_VkResult_return;
2414}
2415static VkResult entry_vkGetSemaphoreWin32HandleKHR(
2416 VkDevice device,
2417 const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo,
2418 HANDLE* pHandle)
2419{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002420 AEMU_SCOPED_TRACE("vkGetSemaphoreWin32HandleKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002421 auto vkEnc = HostConnection::get()->vkEncoder();
2422 VkResult vkGetSemaphoreWin32HandleKHR_VkResult_return = (VkResult)0;
2423 vkGetSemaphoreWin32HandleKHR_VkResult_return = vkEnc->vkGetSemaphoreWin32HandleKHR(device, pGetWin32HandleInfo, pHandle);
2424 return vkGetSemaphoreWin32HandleKHR_VkResult_return;
2425}
2426#endif
2427#ifdef VK_KHR_external_semaphore_fd
2428static VkResult entry_vkImportSemaphoreFdKHR(
2429 VkDevice device,
2430 const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo)
2431{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002432 AEMU_SCOPED_TRACE("vkImportSemaphoreFdKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002433 auto vkEnc = HostConnection::get()->vkEncoder();
2434 VkResult vkImportSemaphoreFdKHR_VkResult_return = (VkResult)0;
2435 vkImportSemaphoreFdKHR_VkResult_return = vkEnc->vkImportSemaphoreFdKHR(device, pImportSemaphoreFdInfo);
2436 return vkImportSemaphoreFdKHR_VkResult_return;
2437}
2438static VkResult entry_vkGetSemaphoreFdKHR(
2439 VkDevice device,
2440 const VkSemaphoreGetFdInfoKHR* pGetFdInfo,
2441 int* pFd)
2442{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002443 AEMU_SCOPED_TRACE("vkGetSemaphoreFdKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002444 auto vkEnc = HostConnection::get()->vkEncoder();
2445 VkResult vkGetSemaphoreFdKHR_VkResult_return = (VkResult)0;
2446 vkGetSemaphoreFdKHR_VkResult_return = vkEnc->vkGetSemaphoreFdKHR(device, pGetFdInfo, pFd);
2447 return vkGetSemaphoreFdKHR_VkResult_return;
2448}
2449#endif
2450#ifdef VK_KHR_push_descriptor
2451static void entry_vkCmdPushDescriptorSetKHR(
2452 VkCommandBuffer commandBuffer,
2453 VkPipelineBindPoint pipelineBindPoint,
2454 VkPipelineLayout layout,
2455 uint32_t set,
2456 uint32_t descriptorWriteCount,
2457 const VkWriteDescriptorSet* pDescriptorWrites)
2458{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002459 AEMU_SCOPED_TRACE("vkCmdPushDescriptorSetKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002460 auto vkEnc = HostConnection::get()->vkEncoder();
2461 vkEnc->vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites);
2462}
2463static void entry_vkCmdPushDescriptorSetWithTemplateKHR(
2464 VkCommandBuffer commandBuffer,
2465 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
2466 VkPipelineLayout layout,
2467 uint32_t set,
2468 const void* pData)
2469{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002470 AEMU_SCOPED_TRACE("vkCmdPushDescriptorSetWithTemplateKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002471 auto vkEnc = HostConnection::get()->vkEncoder();
2472 vkEnc->vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData);
2473}
2474#endif
2475#ifdef VK_KHR_16bit_storage
2476#endif
2477#ifdef VK_KHR_incremental_present
2478#endif
2479#ifdef VK_KHR_descriptor_update_template
2480static VkResult entry_vkCreateDescriptorUpdateTemplateKHR(
2481 VkDevice device,
2482 const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
2483 const VkAllocationCallbacks* pAllocator,
2484 VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate)
2485{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002486 AEMU_SCOPED_TRACE("vkCreateDescriptorUpdateTemplateKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002487 auto vkEnc = HostConnection::get()->vkEncoder();
2488 VkResult vkCreateDescriptorUpdateTemplateKHR_VkResult_return = (VkResult)0;
2489 vkCreateDescriptorUpdateTemplateKHR_VkResult_return = vkEnc->vkCreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate);
2490 return vkCreateDescriptorUpdateTemplateKHR_VkResult_return;
2491}
2492static void entry_vkDestroyDescriptorUpdateTemplateKHR(
2493 VkDevice device,
2494 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
2495 const VkAllocationCallbacks* pAllocator)
2496{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002497 AEMU_SCOPED_TRACE("vkDestroyDescriptorUpdateTemplateKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002498 auto vkEnc = HostConnection::get()->vkEncoder();
2499 vkEnc->vkDestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator);
2500}
2501static void entry_vkUpdateDescriptorSetWithTemplateKHR(
2502 VkDevice device,
2503 VkDescriptorSet descriptorSet,
2504 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
2505 const void* pData)
2506{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002507 AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplateKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002508 auto vkEnc = HostConnection::get()->vkEncoder();
2509 vkEnc->vkUpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData);
2510}
2511#endif
2512#ifdef VK_KHR_create_renderpass2
2513static VkResult entry_vkCreateRenderPass2KHR(
2514 VkDevice device,
2515 const VkRenderPassCreateInfo2KHR* pCreateInfo,
2516 const VkAllocationCallbacks* pAllocator,
2517 VkRenderPass* pRenderPass)
2518{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002519 AEMU_SCOPED_TRACE("vkCreateRenderPass2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002520 auto vkEnc = HostConnection::get()->vkEncoder();
2521 VkResult vkCreateRenderPass2KHR_VkResult_return = (VkResult)0;
2522 vkCreateRenderPass2KHR_VkResult_return = vkEnc->vkCreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass);
2523 return vkCreateRenderPass2KHR_VkResult_return;
2524}
2525static void entry_vkCmdBeginRenderPass2KHR(
2526 VkCommandBuffer commandBuffer,
2527 const VkRenderPassBeginInfo* pRenderPassBegin,
2528 const VkSubpassBeginInfoKHR* pSubpassBeginInfo)
2529{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002530 AEMU_SCOPED_TRACE("vkCmdBeginRenderPass2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002531 auto vkEnc = HostConnection::get()->vkEncoder();
2532 vkEnc->vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo);
2533}
2534static void entry_vkCmdNextSubpass2KHR(
2535 VkCommandBuffer commandBuffer,
2536 const VkSubpassBeginInfoKHR* pSubpassBeginInfo,
2537 const VkSubpassEndInfoKHR* pSubpassEndInfo)
2538{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002539 AEMU_SCOPED_TRACE("vkCmdNextSubpass2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002540 auto vkEnc = HostConnection::get()->vkEncoder();
2541 vkEnc->vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo);
2542}
2543static void entry_vkCmdEndRenderPass2KHR(
2544 VkCommandBuffer commandBuffer,
2545 const VkSubpassEndInfoKHR* pSubpassEndInfo)
2546{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002547 AEMU_SCOPED_TRACE("vkCmdEndRenderPass2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002548 auto vkEnc = HostConnection::get()->vkEncoder();
2549 vkEnc->vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo);
2550}
2551#endif
2552#ifdef VK_KHR_shared_presentable_image
2553static VkResult entry_vkGetSwapchainStatusKHR(
2554 VkDevice device,
2555 VkSwapchainKHR swapchain)
2556{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002557 AEMU_SCOPED_TRACE("vkGetSwapchainStatusKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002558 auto vkEnc = HostConnection::get()->vkEncoder();
2559 VkResult vkGetSwapchainStatusKHR_VkResult_return = (VkResult)0;
2560 vkGetSwapchainStatusKHR_VkResult_return = vkEnc->vkGetSwapchainStatusKHR(device, swapchain);
2561 return vkGetSwapchainStatusKHR_VkResult_return;
2562}
2563#endif
2564#ifdef VK_KHR_external_fence_capabilities
2565static void entry_vkGetPhysicalDeviceExternalFencePropertiesKHR(
2566 VkPhysicalDevice physicalDevice,
2567 const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
2568 VkExternalFenceProperties* pExternalFenceProperties)
2569{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002570 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalFencePropertiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002571 auto vkEnc = HostConnection::get()->vkEncoder();
2572 vkEnc->vkGetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice, pExternalFenceInfo, pExternalFenceProperties);
2573}
2574#endif
2575#ifdef VK_KHR_external_fence
2576#endif
2577#ifdef VK_KHR_external_fence_win32
2578static VkResult entry_vkImportFenceWin32HandleKHR(
2579 VkDevice device,
2580 const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo)
2581{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002582 AEMU_SCOPED_TRACE("vkImportFenceWin32HandleKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002583 auto vkEnc = HostConnection::get()->vkEncoder();
2584 VkResult vkImportFenceWin32HandleKHR_VkResult_return = (VkResult)0;
2585 vkImportFenceWin32HandleKHR_VkResult_return = vkEnc->vkImportFenceWin32HandleKHR(device, pImportFenceWin32HandleInfo);
2586 return vkImportFenceWin32HandleKHR_VkResult_return;
2587}
2588static VkResult entry_vkGetFenceWin32HandleKHR(
2589 VkDevice device,
2590 const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo,
2591 HANDLE* pHandle)
2592{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002593 AEMU_SCOPED_TRACE("vkGetFenceWin32HandleKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002594 auto vkEnc = HostConnection::get()->vkEncoder();
2595 VkResult vkGetFenceWin32HandleKHR_VkResult_return = (VkResult)0;
2596 vkGetFenceWin32HandleKHR_VkResult_return = vkEnc->vkGetFenceWin32HandleKHR(device, pGetWin32HandleInfo, pHandle);
2597 return vkGetFenceWin32HandleKHR_VkResult_return;
2598}
2599#endif
2600#ifdef VK_KHR_external_fence_fd
2601static VkResult entry_vkImportFenceFdKHR(
2602 VkDevice device,
2603 const VkImportFenceFdInfoKHR* pImportFenceFdInfo)
2604{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002605 AEMU_SCOPED_TRACE("vkImportFenceFdKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002606 auto vkEnc = HostConnection::get()->vkEncoder();
2607 VkResult vkImportFenceFdKHR_VkResult_return = (VkResult)0;
2608 vkImportFenceFdKHR_VkResult_return = vkEnc->vkImportFenceFdKHR(device, pImportFenceFdInfo);
2609 return vkImportFenceFdKHR_VkResult_return;
2610}
2611static VkResult entry_vkGetFenceFdKHR(
2612 VkDevice device,
2613 const VkFenceGetFdInfoKHR* pGetFdInfo,
2614 int* pFd)
2615{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002616 AEMU_SCOPED_TRACE("vkGetFenceFdKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002617 auto vkEnc = HostConnection::get()->vkEncoder();
2618 VkResult vkGetFenceFdKHR_VkResult_return = (VkResult)0;
2619 vkGetFenceFdKHR_VkResult_return = vkEnc->vkGetFenceFdKHR(device, pGetFdInfo, pFd);
2620 return vkGetFenceFdKHR_VkResult_return;
2621}
2622#endif
2623#ifdef VK_KHR_maintenance2
2624#endif
2625#ifdef VK_KHR_get_surface_capabilities2
2626static VkResult entry_vkGetPhysicalDeviceSurfaceCapabilities2KHR(
2627 VkPhysicalDevice physicalDevice,
2628 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
2629 VkSurfaceCapabilities2KHR* pSurfaceCapabilities)
2630{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002631 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceCapabilities2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002632 auto vkEnc = HostConnection::get()->vkEncoder();
2633 VkResult vkGetPhysicalDeviceSurfaceCapabilities2KHR_VkResult_return = (VkResult)0;
2634 vkGetPhysicalDeviceSurfaceCapabilities2KHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, pSurfaceInfo, pSurfaceCapabilities);
2635 return vkGetPhysicalDeviceSurfaceCapabilities2KHR_VkResult_return;
2636}
2637static VkResult entry_vkGetPhysicalDeviceSurfaceFormats2KHR(
2638 VkPhysicalDevice physicalDevice,
2639 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
2640 uint32_t* pSurfaceFormatCount,
2641 VkSurfaceFormat2KHR* pSurfaceFormats)
2642{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002643 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceFormats2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002644 auto vkEnc = HostConnection::get()->vkEncoder();
2645 VkResult vkGetPhysicalDeviceSurfaceFormats2KHR_VkResult_return = (VkResult)0;
2646 vkGetPhysicalDeviceSurfaceFormats2KHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceFormats2KHR(physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats);
2647 return vkGetPhysicalDeviceSurfaceFormats2KHR_VkResult_return;
2648}
2649#endif
2650#ifdef VK_KHR_variable_pointers
2651#endif
2652#ifdef VK_KHR_get_display_properties2
2653static VkResult entry_vkGetPhysicalDeviceDisplayProperties2KHR(
2654 VkPhysicalDevice physicalDevice,
2655 uint32_t* pPropertyCount,
2656 VkDisplayProperties2KHR* pProperties)
2657{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002658 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002659 auto vkEnc = HostConnection::get()->vkEncoder();
2660 VkResult vkGetPhysicalDeviceDisplayProperties2KHR_VkResult_return = (VkResult)0;
2661 vkGetPhysicalDeviceDisplayProperties2KHR_VkResult_return = vkEnc->vkGetPhysicalDeviceDisplayProperties2KHR(physicalDevice, pPropertyCount, pProperties);
2662 return vkGetPhysicalDeviceDisplayProperties2KHR_VkResult_return;
2663}
2664static VkResult entry_vkGetPhysicalDeviceDisplayPlaneProperties2KHR(
2665 VkPhysicalDevice physicalDevice,
2666 uint32_t* pPropertyCount,
2667 VkDisplayPlaneProperties2KHR* pProperties)
2668{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002669 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayPlaneProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002670 auto vkEnc = HostConnection::get()->vkEncoder();
2671 VkResult vkGetPhysicalDeviceDisplayPlaneProperties2KHR_VkResult_return = (VkResult)0;
2672 vkGetPhysicalDeviceDisplayPlaneProperties2KHR_VkResult_return = vkEnc->vkGetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice, pPropertyCount, pProperties);
2673 return vkGetPhysicalDeviceDisplayPlaneProperties2KHR_VkResult_return;
2674}
2675static VkResult entry_vkGetDisplayModeProperties2KHR(
2676 VkPhysicalDevice physicalDevice,
2677 VkDisplayKHR display,
2678 uint32_t* pPropertyCount,
2679 VkDisplayModeProperties2KHR* pProperties)
2680{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002681 AEMU_SCOPED_TRACE("vkGetDisplayModeProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002682 auto vkEnc = HostConnection::get()->vkEncoder();
2683 VkResult vkGetDisplayModeProperties2KHR_VkResult_return = (VkResult)0;
2684 vkGetDisplayModeProperties2KHR_VkResult_return = vkEnc->vkGetDisplayModeProperties2KHR(physicalDevice, display, pPropertyCount, pProperties);
2685 return vkGetDisplayModeProperties2KHR_VkResult_return;
2686}
2687static VkResult entry_vkGetDisplayPlaneCapabilities2KHR(
2688 VkPhysicalDevice physicalDevice,
2689 const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo,
2690 VkDisplayPlaneCapabilities2KHR* pCapabilities)
2691{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002692 AEMU_SCOPED_TRACE("vkGetDisplayPlaneCapabilities2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002693 auto vkEnc = HostConnection::get()->vkEncoder();
2694 VkResult vkGetDisplayPlaneCapabilities2KHR_VkResult_return = (VkResult)0;
2695 vkGetDisplayPlaneCapabilities2KHR_VkResult_return = vkEnc->vkGetDisplayPlaneCapabilities2KHR(physicalDevice, pDisplayPlaneInfo, pCapabilities);
2696 return vkGetDisplayPlaneCapabilities2KHR_VkResult_return;
2697}
2698#endif
2699#ifdef VK_KHR_dedicated_allocation
2700#endif
2701#ifdef VK_KHR_storage_buffer_storage_class
2702#endif
2703#ifdef VK_KHR_relaxed_block_layout
2704#endif
2705#ifdef VK_KHR_get_memory_requirements2
2706static void entry_vkGetImageMemoryRequirements2KHR(
2707 VkDevice device,
2708 const VkImageMemoryRequirementsInfo2* pInfo,
2709 VkMemoryRequirements2* pMemoryRequirements)
2710{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002711 AEMU_SCOPED_TRACE("vkGetImageMemoryRequirements2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002712 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang4af5f322019-02-14 08:10:28 -08002713 auto resources = ResourceTracker::get();
2714 resources->on_vkGetImageMemoryRequirements2KHR(vkEnc, device, pInfo, pMemoryRequirements);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002715}
2716static void entry_vkGetBufferMemoryRequirements2KHR(
2717 VkDevice device,
2718 const VkBufferMemoryRequirementsInfo2* pInfo,
2719 VkMemoryRequirements2* pMemoryRequirements)
2720{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002721 AEMU_SCOPED_TRACE("vkGetBufferMemoryRequirements2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002722 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang4af5f322019-02-14 08:10:28 -08002723 auto resources = ResourceTracker::get();
2724 resources->on_vkGetBufferMemoryRequirements2KHR(vkEnc, device, pInfo, pMemoryRequirements);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002725}
2726static void entry_vkGetImageSparseMemoryRequirements2KHR(
2727 VkDevice device,
2728 const VkImageSparseMemoryRequirementsInfo2* pInfo,
2729 uint32_t* pSparseMemoryRequirementCount,
2730 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements)
2731{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002732 AEMU_SCOPED_TRACE("vkGetImageSparseMemoryRequirements2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002733 auto vkEnc = HostConnection::get()->vkEncoder();
2734 vkEnc->vkGetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements);
2735}
2736#endif
2737#ifdef VK_KHR_image_format_list
2738#endif
2739#ifdef VK_KHR_sampler_ycbcr_conversion
2740static VkResult entry_vkCreateSamplerYcbcrConversionKHR(
2741 VkDevice device,
2742 const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
2743 const VkAllocationCallbacks* pAllocator,
2744 VkSamplerYcbcrConversion* pYcbcrConversion)
2745{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002746 AEMU_SCOPED_TRACE("vkCreateSamplerYcbcrConversionKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002747 auto vkEnc = HostConnection::get()->vkEncoder();
2748 VkResult vkCreateSamplerYcbcrConversionKHR_VkResult_return = (VkResult)0;
2749 vkCreateSamplerYcbcrConversionKHR_VkResult_return = vkEnc->vkCreateSamplerYcbcrConversionKHR(device, pCreateInfo, pAllocator, pYcbcrConversion);
2750 return vkCreateSamplerYcbcrConversionKHR_VkResult_return;
2751}
2752static void entry_vkDestroySamplerYcbcrConversionKHR(
2753 VkDevice device,
2754 VkSamplerYcbcrConversion ycbcrConversion,
2755 const VkAllocationCallbacks* pAllocator)
2756{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002757 AEMU_SCOPED_TRACE("vkDestroySamplerYcbcrConversionKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002758 auto vkEnc = HostConnection::get()->vkEncoder();
2759 vkEnc->vkDestroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator);
2760}
2761#endif
2762#ifdef VK_KHR_bind_memory2
2763static VkResult entry_vkBindBufferMemory2KHR(
2764 VkDevice device,
2765 uint32_t bindInfoCount,
2766 const VkBindBufferMemoryInfo* pBindInfos)
2767{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002768 AEMU_SCOPED_TRACE("vkBindBufferMemory2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002769 auto vkEnc = HostConnection::get()->vkEncoder();
2770 VkResult vkBindBufferMemory2KHR_VkResult_return = (VkResult)0;
Lingfeng Yang4af5f322019-02-14 08:10:28 -08002771 auto resources = ResourceTracker::get();
2772 vkBindBufferMemory2KHR_VkResult_return = resources->on_vkBindBufferMemory2KHR(vkEnc, VK_SUCCESS, device, bindInfoCount, pBindInfos);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002773 return vkBindBufferMemory2KHR_VkResult_return;
2774}
2775static VkResult entry_vkBindImageMemory2KHR(
2776 VkDevice device,
2777 uint32_t bindInfoCount,
2778 const VkBindImageMemoryInfo* pBindInfos)
2779{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002780 AEMU_SCOPED_TRACE("vkBindImageMemory2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002781 auto vkEnc = HostConnection::get()->vkEncoder();
2782 VkResult vkBindImageMemory2KHR_VkResult_return = (VkResult)0;
Lingfeng Yang4af5f322019-02-14 08:10:28 -08002783 auto resources = ResourceTracker::get();
2784 vkBindImageMemory2KHR_VkResult_return = resources->on_vkBindImageMemory2KHR(vkEnc, VK_SUCCESS, device, bindInfoCount, pBindInfos);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002785 return vkBindImageMemory2KHR_VkResult_return;
2786}
2787#endif
2788#ifdef VK_KHR_maintenance3
2789static void entry_vkGetDescriptorSetLayoutSupportKHR(
2790 VkDevice device,
2791 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
2792 VkDescriptorSetLayoutSupport* pSupport)
2793{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002794 AEMU_SCOPED_TRACE("vkGetDescriptorSetLayoutSupportKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002795 auto vkEnc = HostConnection::get()->vkEncoder();
2796 vkEnc->vkGetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport);
2797}
2798#endif
2799#ifdef VK_KHR_draw_indirect_count
2800static void entry_vkCmdDrawIndirectCountKHR(
2801 VkCommandBuffer commandBuffer,
2802 VkBuffer buffer,
2803 VkDeviceSize offset,
2804 VkBuffer countBuffer,
2805 VkDeviceSize countBufferOffset,
2806 uint32_t maxDrawCount,
2807 uint32_t stride)
2808{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002809 AEMU_SCOPED_TRACE("vkCmdDrawIndirectCountKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002810 auto vkEnc = HostConnection::get()->vkEncoder();
2811 vkEnc->vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
2812}
2813static void entry_vkCmdDrawIndexedIndirectCountKHR(
2814 VkCommandBuffer commandBuffer,
2815 VkBuffer buffer,
2816 VkDeviceSize offset,
2817 VkBuffer countBuffer,
2818 VkDeviceSize countBufferOffset,
2819 uint32_t maxDrawCount,
2820 uint32_t stride)
2821{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002822 AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirectCountKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002823 auto vkEnc = HostConnection::get()->vkEncoder();
2824 vkEnc->vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
2825}
2826#endif
2827#ifdef VK_KHR_8bit_storage
2828#endif
Lingfeng Yang808a6312018-11-13 21:06:15 -08002829#ifdef VK_ANDROID_native_buffer
2830static VkResult entry_vkGetSwapchainGrallocUsageANDROID(
2831 VkDevice device,
2832 VkFormat format,
2833 VkImageUsageFlags imageUsage,
2834 int* grallocUsage)
2835{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002836 AEMU_SCOPED_TRACE("vkGetSwapchainGrallocUsageANDROID");
Lingfeng Yang808a6312018-11-13 21:06:15 -08002837 auto vkEnc = HostConnection::get()->vkEncoder();
2838 VkResult vkGetSwapchainGrallocUsageANDROID_VkResult_return = (VkResult)0;
2839 vkGetSwapchainGrallocUsageANDROID_VkResult_return = vkEnc->vkGetSwapchainGrallocUsageANDROID(device, format, imageUsage, grallocUsage);
2840 return vkGetSwapchainGrallocUsageANDROID_VkResult_return;
2841}
2842static VkResult entry_vkAcquireImageANDROID(
2843 VkDevice device,
2844 VkImage image,
2845 int nativeFenceFd,
2846 VkSemaphore semaphore,
2847 VkFence fence)
2848{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002849 AEMU_SCOPED_TRACE("vkAcquireImageANDROID");
Lingfeng Yang808a6312018-11-13 21:06:15 -08002850 auto vkEnc = HostConnection::get()->vkEncoder();
2851 VkResult vkAcquireImageANDROID_VkResult_return = (VkResult)0;
2852 vkAcquireImageANDROID_VkResult_return = vkEnc->vkAcquireImageANDROID(device, image, nativeFenceFd, semaphore, fence);
2853 return vkAcquireImageANDROID_VkResult_return;
2854}
2855static VkResult entry_vkQueueSignalReleaseImageANDROID(
2856 VkQueue queue,
2857 uint32_t waitSemaphoreCount,
2858 const VkSemaphore* pWaitSemaphores,
2859 VkImage image,
2860 int* pNativeFenceFd)
2861{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002862 AEMU_SCOPED_TRACE("vkQueueSignalReleaseImageANDROID");
Lingfeng Yang808a6312018-11-13 21:06:15 -08002863 auto vkEnc = HostConnection::get()->vkEncoder();
2864 VkResult vkQueueSignalReleaseImageANDROID_VkResult_return = (VkResult)0;
2865 vkQueueSignalReleaseImageANDROID_VkResult_return = vkEnc->vkQueueSignalReleaseImageANDROID(queue, waitSemaphoreCount, pWaitSemaphores, image, pNativeFenceFd);
2866 return vkQueueSignalReleaseImageANDROID_VkResult_return;
2867}
2868#endif
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002869#ifdef VK_EXT_debug_report
2870static VkResult entry_vkCreateDebugReportCallbackEXT(
2871 VkInstance instance,
2872 const VkDebugReportCallbackCreateInfoEXT* pCreateInfo,
2873 const VkAllocationCallbacks* pAllocator,
2874 VkDebugReportCallbackEXT* pCallback)
2875{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002876 AEMU_SCOPED_TRACE("vkCreateDebugReportCallbackEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002877 auto vkEnc = HostConnection::get()->vkEncoder();
2878 VkResult vkCreateDebugReportCallbackEXT_VkResult_return = (VkResult)0;
2879 vkCreateDebugReportCallbackEXT_VkResult_return = vkEnc->vkCreateDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback);
2880 return vkCreateDebugReportCallbackEXT_VkResult_return;
2881}
2882static void entry_vkDestroyDebugReportCallbackEXT(
2883 VkInstance instance,
2884 VkDebugReportCallbackEXT callback,
2885 const VkAllocationCallbacks* pAllocator)
2886{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002887 AEMU_SCOPED_TRACE("vkDestroyDebugReportCallbackEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002888 auto vkEnc = HostConnection::get()->vkEncoder();
2889 vkEnc->vkDestroyDebugReportCallbackEXT(instance, callback, pAllocator);
2890}
2891static void entry_vkDebugReportMessageEXT(
2892 VkInstance instance,
2893 VkDebugReportFlagsEXT flags,
2894 VkDebugReportObjectTypeEXT objectType,
2895 uint64_t object,
2896 size_t location,
2897 int32_t messageCode,
2898 const char* pLayerPrefix,
2899 const char* pMessage)
2900{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002901 AEMU_SCOPED_TRACE("vkDebugReportMessageEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002902 auto vkEnc = HostConnection::get()->vkEncoder();
2903 vkEnc->vkDebugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage);
2904}
2905#endif
2906#ifdef VK_NV_glsl_shader
2907#endif
2908#ifdef VK_EXT_depth_range_unrestricted
2909#endif
2910#ifdef VK_IMG_filter_cubic
2911#endif
2912#ifdef VK_AMD_rasterization_order
2913#endif
2914#ifdef VK_AMD_shader_trinary_minmax
2915#endif
2916#ifdef VK_AMD_shader_explicit_vertex_parameter
2917#endif
2918#ifdef VK_EXT_debug_marker
2919static VkResult entry_vkDebugMarkerSetObjectTagEXT(
2920 VkDevice device,
2921 const VkDebugMarkerObjectTagInfoEXT* pTagInfo)
2922{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002923 AEMU_SCOPED_TRACE("vkDebugMarkerSetObjectTagEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002924 auto vkEnc = HostConnection::get()->vkEncoder();
2925 VkResult vkDebugMarkerSetObjectTagEXT_VkResult_return = (VkResult)0;
2926 vkDebugMarkerSetObjectTagEXT_VkResult_return = vkEnc->vkDebugMarkerSetObjectTagEXT(device, pTagInfo);
2927 return vkDebugMarkerSetObjectTagEXT_VkResult_return;
2928}
2929static VkResult entry_vkDebugMarkerSetObjectNameEXT(
2930 VkDevice device,
2931 const VkDebugMarkerObjectNameInfoEXT* pNameInfo)
2932{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002933 AEMU_SCOPED_TRACE("vkDebugMarkerSetObjectNameEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002934 auto vkEnc = HostConnection::get()->vkEncoder();
2935 VkResult vkDebugMarkerSetObjectNameEXT_VkResult_return = (VkResult)0;
2936 vkDebugMarkerSetObjectNameEXT_VkResult_return = vkEnc->vkDebugMarkerSetObjectNameEXT(device, pNameInfo);
2937 return vkDebugMarkerSetObjectNameEXT_VkResult_return;
2938}
2939static void entry_vkCmdDebugMarkerBeginEXT(
2940 VkCommandBuffer commandBuffer,
2941 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo)
2942{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002943 AEMU_SCOPED_TRACE("vkCmdDebugMarkerBeginEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002944 auto vkEnc = HostConnection::get()->vkEncoder();
2945 vkEnc->vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo);
2946}
2947static void entry_vkCmdDebugMarkerEndEXT(
2948 VkCommandBuffer commandBuffer)
2949{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002950 AEMU_SCOPED_TRACE("vkCmdDebugMarkerEndEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002951 auto vkEnc = HostConnection::get()->vkEncoder();
2952 vkEnc->vkCmdDebugMarkerEndEXT(commandBuffer);
2953}
2954static void entry_vkCmdDebugMarkerInsertEXT(
2955 VkCommandBuffer commandBuffer,
2956 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo)
2957{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002958 AEMU_SCOPED_TRACE("vkCmdDebugMarkerInsertEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002959 auto vkEnc = HostConnection::get()->vkEncoder();
2960 vkEnc->vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo);
2961}
2962#endif
2963#ifdef VK_AMD_gcn_shader
2964#endif
2965#ifdef VK_NV_dedicated_allocation
2966#endif
2967#ifdef VK_AMD_draw_indirect_count
2968static void entry_vkCmdDrawIndirectCountAMD(
2969 VkCommandBuffer commandBuffer,
2970 VkBuffer buffer,
2971 VkDeviceSize offset,
2972 VkBuffer countBuffer,
2973 VkDeviceSize countBufferOffset,
2974 uint32_t maxDrawCount,
2975 uint32_t stride)
2976{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002977 AEMU_SCOPED_TRACE("vkCmdDrawIndirectCountAMD");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002978 auto vkEnc = HostConnection::get()->vkEncoder();
2979 vkEnc->vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
2980}
2981static void entry_vkCmdDrawIndexedIndirectCountAMD(
2982 VkCommandBuffer commandBuffer,
2983 VkBuffer buffer,
2984 VkDeviceSize offset,
2985 VkBuffer countBuffer,
2986 VkDeviceSize countBufferOffset,
2987 uint32_t maxDrawCount,
2988 uint32_t stride)
2989{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002990 AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirectCountAMD");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002991 auto vkEnc = HostConnection::get()->vkEncoder();
2992 vkEnc->vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
2993}
2994#endif
2995#ifdef VK_AMD_negative_viewport_height
2996#endif
2997#ifdef VK_AMD_gpu_shader_half_float
2998#endif
2999#ifdef VK_AMD_shader_ballot
3000#endif
3001#ifdef VK_AMD_texture_gather_bias_lod
3002#endif
3003#ifdef VK_AMD_shader_info
3004static VkResult entry_vkGetShaderInfoAMD(
3005 VkDevice device,
3006 VkPipeline pipeline,
3007 VkShaderStageFlagBits shaderStage,
3008 VkShaderInfoTypeAMD infoType,
3009 size_t* pInfoSize,
3010 void* pInfo)
3011{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003012 AEMU_SCOPED_TRACE("vkGetShaderInfoAMD");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003013 auto vkEnc = HostConnection::get()->vkEncoder();
3014 VkResult vkGetShaderInfoAMD_VkResult_return = (VkResult)0;
3015 vkGetShaderInfoAMD_VkResult_return = vkEnc->vkGetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo);
3016 return vkGetShaderInfoAMD_VkResult_return;
3017}
3018#endif
3019#ifdef VK_AMD_shader_image_load_store_lod
3020#endif
3021#ifdef VK_IMG_format_pvrtc
3022#endif
3023#ifdef VK_NV_external_memory_capabilities
3024static VkResult entry_vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
3025 VkPhysicalDevice physicalDevice,
3026 VkFormat format,
3027 VkImageType type,
3028 VkImageTiling tiling,
3029 VkImageUsageFlags usage,
3030 VkImageCreateFlags flags,
3031 VkExternalMemoryHandleTypeFlagsNV externalHandleType,
3032 VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties)
3033{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003034 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalImageFormatPropertiesNV");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003035 auto vkEnc = HostConnection::get()->vkEncoder();
3036 VkResult vkGetPhysicalDeviceExternalImageFormatPropertiesNV_VkResult_return = (VkResult)0;
3037 vkGetPhysicalDeviceExternalImageFormatPropertiesNV_VkResult_return = vkEnc->vkGetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties);
3038 return vkGetPhysicalDeviceExternalImageFormatPropertiesNV_VkResult_return;
3039}
3040#endif
3041#ifdef VK_NV_external_memory
3042#endif
3043#ifdef VK_NV_external_memory_win32
3044static VkResult entry_vkGetMemoryWin32HandleNV(
3045 VkDevice device,
3046 VkDeviceMemory memory,
3047 VkExternalMemoryHandleTypeFlagsNV handleType,
3048 HANDLE* pHandle)
3049{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003050 AEMU_SCOPED_TRACE("vkGetMemoryWin32HandleNV");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003051 auto vkEnc = HostConnection::get()->vkEncoder();
3052 VkResult vkGetMemoryWin32HandleNV_VkResult_return = (VkResult)0;
3053 vkGetMemoryWin32HandleNV_VkResult_return = vkEnc->vkGetMemoryWin32HandleNV(device, memory, handleType, pHandle);
3054 return vkGetMemoryWin32HandleNV_VkResult_return;
3055}
3056#endif
3057#ifdef VK_NV_win32_keyed_mutex
3058#endif
3059#ifdef VK_EXT_validation_flags
3060#endif
3061#ifdef VK_NN_vi_surface
3062static VkResult entry_vkCreateViSurfaceNN(
3063 VkInstance instance,
3064 const VkViSurfaceCreateInfoNN* pCreateInfo,
3065 const VkAllocationCallbacks* pAllocator,
3066 VkSurfaceKHR* pSurface)
3067{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003068 AEMU_SCOPED_TRACE("vkCreateViSurfaceNN");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003069 auto vkEnc = HostConnection::get()->vkEncoder();
3070 VkResult vkCreateViSurfaceNN_VkResult_return = (VkResult)0;
3071 vkCreateViSurfaceNN_VkResult_return = vkEnc->vkCreateViSurfaceNN(instance, pCreateInfo, pAllocator, pSurface);
3072 return vkCreateViSurfaceNN_VkResult_return;
3073}
3074#endif
3075#ifdef VK_EXT_shader_subgroup_ballot
3076#endif
3077#ifdef VK_EXT_shader_subgroup_vote
3078#endif
3079#ifdef VK_EXT_conditional_rendering
3080static void entry_vkCmdBeginConditionalRenderingEXT(
3081 VkCommandBuffer commandBuffer,
3082 const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin)
3083{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003084 AEMU_SCOPED_TRACE("vkCmdBeginConditionalRenderingEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003085 auto vkEnc = HostConnection::get()->vkEncoder();
3086 vkEnc->vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin);
3087}
3088static void entry_vkCmdEndConditionalRenderingEXT(
3089 VkCommandBuffer commandBuffer)
3090{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003091 AEMU_SCOPED_TRACE("vkCmdEndConditionalRenderingEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003092 auto vkEnc = HostConnection::get()->vkEncoder();
3093 vkEnc->vkCmdEndConditionalRenderingEXT(commandBuffer);
3094}
3095#endif
3096#ifdef VK_NVX_device_generated_commands
3097static void entry_vkCmdProcessCommandsNVX(
3098 VkCommandBuffer commandBuffer,
3099 const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo)
3100{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003101 AEMU_SCOPED_TRACE("vkCmdProcessCommandsNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003102 auto vkEnc = HostConnection::get()->vkEncoder();
3103 vkEnc->vkCmdProcessCommandsNVX(commandBuffer, pProcessCommandsInfo);
3104}
3105static void entry_vkCmdReserveSpaceForCommandsNVX(
3106 VkCommandBuffer commandBuffer,
3107 const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo)
3108{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003109 AEMU_SCOPED_TRACE("vkCmdReserveSpaceForCommandsNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003110 auto vkEnc = HostConnection::get()->vkEncoder();
3111 vkEnc->vkCmdReserveSpaceForCommandsNVX(commandBuffer, pReserveSpaceInfo);
3112}
3113static VkResult entry_vkCreateIndirectCommandsLayoutNVX(
3114 VkDevice device,
3115 const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo,
3116 const VkAllocationCallbacks* pAllocator,
3117 VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout)
3118{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003119 AEMU_SCOPED_TRACE("vkCreateIndirectCommandsLayoutNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003120 auto vkEnc = HostConnection::get()->vkEncoder();
3121 VkResult vkCreateIndirectCommandsLayoutNVX_VkResult_return = (VkResult)0;
3122 vkCreateIndirectCommandsLayoutNVX_VkResult_return = vkEnc->vkCreateIndirectCommandsLayoutNVX(device, pCreateInfo, pAllocator, pIndirectCommandsLayout);
3123 return vkCreateIndirectCommandsLayoutNVX_VkResult_return;
3124}
3125static void entry_vkDestroyIndirectCommandsLayoutNVX(
3126 VkDevice device,
3127 VkIndirectCommandsLayoutNVX indirectCommandsLayout,
3128 const VkAllocationCallbacks* pAllocator)
3129{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003130 AEMU_SCOPED_TRACE("vkDestroyIndirectCommandsLayoutNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003131 auto vkEnc = HostConnection::get()->vkEncoder();
3132 vkEnc->vkDestroyIndirectCommandsLayoutNVX(device, indirectCommandsLayout, pAllocator);
3133}
3134static VkResult entry_vkCreateObjectTableNVX(
3135 VkDevice device,
3136 const VkObjectTableCreateInfoNVX* pCreateInfo,
3137 const VkAllocationCallbacks* pAllocator,
3138 VkObjectTableNVX* pObjectTable)
3139{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003140 AEMU_SCOPED_TRACE("vkCreateObjectTableNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003141 auto vkEnc = HostConnection::get()->vkEncoder();
3142 VkResult vkCreateObjectTableNVX_VkResult_return = (VkResult)0;
3143 vkCreateObjectTableNVX_VkResult_return = vkEnc->vkCreateObjectTableNVX(device, pCreateInfo, pAllocator, pObjectTable);
3144 return vkCreateObjectTableNVX_VkResult_return;
3145}
3146static void entry_vkDestroyObjectTableNVX(
3147 VkDevice device,
3148 VkObjectTableNVX objectTable,
3149 const VkAllocationCallbacks* pAllocator)
3150{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003151 AEMU_SCOPED_TRACE("vkDestroyObjectTableNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003152 auto vkEnc = HostConnection::get()->vkEncoder();
3153 vkEnc->vkDestroyObjectTableNVX(device, objectTable, pAllocator);
3154}
3155static VkResult entry_vkRegisterObjectsNVX(
3156 VkDevice device,
3157 VkObjectTableNVX objectTable,
3158 uint32_t objectCount,
3159 const VkObjectTableEntryNVX* const* ppObjectTableEntries,
3160 const uint32_t* pObjectIndices)
3161{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003162 AEMU_SCOPED_TRACE("vkRegisterObjectsNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003163 auto vkEnc = HostConnection::get()->vkEncoder();
3164 VkResult vkRegisterObjectsNVX_VkResult_return = (VkResult)0;
3165 vkRegisterObjectsNVX_VkResult_return = vkEnc->vkRegisterObjectsNVX(device, objectTable, objectCount, ppObjectTableEntries, pObjectIndices);
3166 return vkRegisterObjectsNVX_VkResult_return;
3167}
3168static VkResult entry_vkUnregisterObjectsNVX(
3169 VkDevice device,
3170 VkObjectTableNVX objectTable,
3171 uint32_t objectCount,
3172 const VkObjectEntryTypeNVX* pObjectEntryTypes,
3173 const uint32_t* pObjectIndices)
3174{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003175 AEMU_SCOPED_TRACE("vkUnregisterObjectsNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003176 auto vkEnc = HostConnection::get()->vkEncoder();
3177 VkResult vkUnregisterObjectsNVX_VkResult_return = (VkResult)0;
3178 vkUnregisterObjectsNVX_VkResult_return = vkEnc->vkUnregisterObjectsNVX(device, objectTable, objectCount, pObjectEntryTypes, pObjectIndices);
3179 return vkUnregisterObjectsNVX_VkResult_return;
3180}
3181static void entry_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX(
3182 VkPhysicalDevice physicalDevice,
3183 VkDeviceGeneratedCommandsFeaturesNVX* pFeatures,
3184 VkDeviceGeneratedCommandsLimitsNVX* pLimits)
3185{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003186 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003187 auto vkEnc = HostConnection::get()->vkEncoder();
3188 vkEnc->vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX(physicalDevice, pFeatures, pLimits);
3189}
3190#endif
3191#ifdef VK_NV_clip_space_w_scaling
3192static void entry_vkCmdSetViewportWScalingNV(
3193 VkCommandBuffer commandBuffer,
3194 uint32_t firstViewport,
3195 uint32_t viewportCount,
3196 const VkViewportWScalingNV* pViewportWScalings)
3197{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003198 AEMU_SCOPED_TRACE("vkCmdSetViewportWScalingNV");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003199 auto vkEnc = HostConnection::get()->vkEncoder();
3200 vkEnc->vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings);
3201}
3202#endif
3203#ifdef VK_EXT_direct_mode_display
3204static VkResult entry_vkReleaseDisplayEXT(
3205 VkPhysicalDevice physicalDevice,
3206 VkDisplayKHR display)
3207{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003208 AEMU_SCOPED_TRACE("vkReleaseDisplayEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003209 auto vkEnc = HostConnection::get()->vkEncoder();
3210 VkResult vkReleaseDisplayEXT_VkResult_return = (VkResult)0;
3211 vkReleaseDisplayEXT_VkResult_return = vkEnc->vkReleaseDisplayEXT(physicalDevice, display);
3212 return vkReleaseDisplayEXT_VkResult_return;
3213}
3214#endif
3215#ifdef VK_EXT_acquire_xlib_display
3216static VkResult entry_vkAcquireXlibDisplayEXT(
3217 VkPhysicalDevice physicalDevice,
3218 Display* dpy,
3219 VkDisplayKHR display)
3220{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003221 AEMU_SCOPED_TRACE("vkAcquireXlibDisplayEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003222 auto vkEnc = HostConnection::get()->vkEncoder();
3223 VkResult vkAcquireXlibDisplayEXT_VkResult_return = (VkResult)0;
3224 vkAcquireXlibDisplayEXT_VkResult_return = vkEnc->vkAcquireXlibDisplayEXT(physicalDevice, dpy, display);
3225 return vkAcquireXlibDisplayEXT_VkResult_return;
3226}
3227static VkResult entry_vkGetRandROutputDisplayEXT(
3228 VkPhysicalDevice physicalDevice,
3229 Display* dpy,
3230 RROutput rrOutput,
3231 VkDisplayKHR* pDisplay)
3232{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003233 AEMU_SCOPED_TRACE("vkGetRandROutputDisplayEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003234 auto vkEnc = HostConnection::get()->vkEncoder();
3235 VkResult vkGetRandROutputDisplayEXT_VkResult_return = (VkResult)0;
3236 vkGetRandROutputDisplayEXT_VkResult_return = vkEnc->vkGetRandROutputDisplayEXT(physicalDevice, dpy, rrOutput, pDisplay);
3237 return vkGetRandROutputDisplayEXT_VkResult_return;
3238}
3239#endif
3240#ifdef VK_EXT_display_surface_counter
3241static VkResult entry_vkGetPhysicalDeviceSurfaceCapabilities2EXT(
3242 VkPhysicalDevice physicalDevice,
3243 VkSurfaceKHR surface,
3244 VkSurfaceCapabilities2EXT* pSurfaceCapabilities)
3245{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003246 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceCapabilities2EXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003247 auto vkEnc = HostConnection::get()->vkEncoder();
3248 VkResult vkGetPhysicalDeviceSurfaceCapabilities2EXT_VkResult_return = (VkResult)0;
3249 vkGetPhysicalDeviceSurfaceCapabilities2EXT_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities);
3250 return vkGetPhysicalDeviceSurfaceCapabilities2EXT_VkResult_return;
3251}
3252#endif
3253#ifdef VK_EXT_display_control
3254static VkResult entry_vkDisplayPowerControlEXT(
3255 VkDevice device,
3256 VkDisplayKHR display,
3257 const VkDisplayPowerInfoEXT* pDisplayPowerInfo)
3258{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003259 AEMU_SCOPED_TRACE("vkDisplayPowerControlEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003260 auto vkEnc = HostConnection::get()->vkEncoder();
3261 VkResult vkDisplayPowerControlEXT_VkResult_return = (VkResult)0;
3262 vkDisplayPowerControlEXT_VkResult_return = vkEnc->vkDisplayPowerControlEXT(device, display, pDisplayPowerInfo);
3263 return vkDisplayPowerControlEXT_VkResult_return;
3264}
3265static VkResult entry_vkRegisterDeviceEventEXT(
3266 VkDevice device,
3267 const VkDeviceEventInfoEXT* pDeviceEventInfo,
3268 const VkAllocationCallbacks* pAllocator,
3269 VkFence* pFence)
3270{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003271 AEMU_SCOPED_TRACE("vkRegisterDeviceEventEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003272 auto vkEnc = HostConnection::get()->vkEncoder();
3273 VkResult vkRegisterDeviceEventEXT_VkResult_return = (VkResult)0;
3274 vkRegisterDeviceEventEXT_VkResult_return = vkEnc->vkRegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence);
3275 return vkRegisterDeviceEventEXT_VkResult_return;
3276}
3277static VkResult entry_vkRegisterDisplayEventEXT(
3278 VkDevice device,
3279 VkDisplayKHR display,
3280 const VkDisplayEventInfoEXT* pDisplayEventInfo,
3281 const VkAllocationCallbacks* pAllocator,
3282 VkFence* pFence)
3283{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003284 AEMU_SCOPED_TRACE("vkRegisterDisplayEventEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003285 auto vkEnc = HostConnection::get()->vkEncoder();
3286 VkResult vkRegisterDisplayEventEXT_VkResult_return = (VkResult)0;
3287 vkRegisterDisplayEventEXT_VkResult_return = vkEnc->vkRegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence);
3288 return vkRegisterDisplayEventEXT_VkResult_return;
3289}
3290static VkResult entry_vkGetSwapchainCounterEXT(
3291 VkDevice device,
3292 VkSwapchainKHR swapchain,
3293 VkSurfaceCounterFlagBitsEXT counter,
3294 uint64_t* pCounterValue)
3295{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003296 AEMU_SCOPED_TRACE("vkGetSwapchainCounterEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003297 auto vkEnc = HostConnection::get()->vkEncoder();
3298 VkResult vkGetSwapchainCounterEXT_VkResult_return = (VkResult)0;
3299 vkGetSwapchainCounterEXT_VkResult_return = vkEnc->vkGetSwapchainCounterEXT(device, swapchain, counter, pCounterValue);
3300 return vkGetSwapchainCounterEXT_VkResult_return;
3301}
3302#endif
3303#ifdef VK_GOOGLE_display_timing
3304static VkResult entry_vkGetRefreshCycleDurationGOOGLE(
3305 VkDevice device,
3306 VkSwapchainKHR swapchain,
3307 VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties)
3308{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003309 AEMU_SCOPED_TRACE("vkGetRefreshCycleDurationGOOGLE");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003310 auto vkEnc = HostConnection::get()->vkEncoder();
3311 VkResult vkGetRefreshCycleDurationGOOGLE_VkResult_return = (VkResult)0;
3312 vkGetRefreshCycleDurationGOOGLE_VkResult_return = vkEnc->vkGetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties);
3313 return vkGetRefreshCycleDurationGOOGLE_VkResult_return;
3314}
3315static VkResult entry_vkGetPastPresentationTimingGOOGLE(
3316 VkDevice device,
3317 VkSwapchainKHR swapchain,
3318 uint32_t* pPresentationTimingCount,
3319 VkPastPresentationTimingGOOGLE* pPresentationTimings)
3320{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003321 AEMU_SCOPED_TRACE("vkGetPastPresentationTimingGOOGLE");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003322 auto vkEnc = HostConnection::get()->vkEncoder();
3323 VkResult vkGetPastPresentationTimingGOOGLE_VkResult_return = (VkResult)0;
3324 vkGetPastPresentationTimingGOOGLE_VkResult_return = vkEnc->vkGetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings);
3325 return vkGetPastPresentationTimingGOOGLE_VkResult_return;
3326}
3327#endif
3328#ifdef VK_NV_sample_mask_override_coverage
3329#endif
3330#ifdef VK_NV_geometry_shader_passthrough
3331#endif
3332#ifdef VK_NV_viewport_array2
3333#endif
3334#ifdef VK_NVX_multiview_per_view_attributes
3335#endif
3336#ifdef VK_NV_viewport_swizzle
3337#endif
3338#ifdef VK_EXT_discard_rectangles
3339static void entry_vkCmdSetDiscardRectangleEXT(
3340 VkCommandBuffer commandBuffer,
3341 uint32_t firstDiscardRectangle,
3342 uint32_t discardRectangleCount,
3343 const VkRect2D* pDiscardRectangles)
3344{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003345 AEMU_SCOPED_TRACE("vkCmdSetDiscardRectangleEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003346 auto vkEnc = HostConnection::get()->vkEncoder();
3347 vkEnc->vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles);
3348}
3349#endif
3350#ifdef VK_EXT_conservative_rasterization
3351#endif
3352#ifdef VK_EXT_swapchain_colorspace
3353#endif
3354#ifdef VK_EXT_hdr_metadata
3355static void entry_vkSetHdrMetadataEXT(
3356 VkDevice device,
3357 uint32_t swapchainCount,
3358 const VkSwapchainKHR* pSwapchains,
3359 const VkHdrMetadataEXT* pMetadata)
3360{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003361 AEMU_SCOPED_TRACE("vkSetHdrMetadataEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003362 auto vkEnc = HostConnection::get()->vkEncoder();
3363 vkEnc->vkSetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata);
3364}
3365#endif
3366#ifdef VK_MVK_ios_surface
3367static VkResult entry_vkCreateIOSSurfaceMVK(
3368 VkInstance instance,
3369 const VkIOSSurfaceCreateInfoMVK* pCreateInfo,
3370 const VkAllocationCallbacks* pAllocator,
3371 VkSurfaceKHR* pSurface)
3372{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003373 AEMU_SCOPED_TRACE("vkCreateIOSSurfaceMVK");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003374 auto vkEnc = HostConnection::get()->vkEncoder();
3375 VkResult vkCreateIOSSurfaceMVK_VkResult_return = (VkResult)0;
3376 vkCreateIOSSurfaceMVK_VkResult_return = vkEnc->vkCreateIOSSurfaceMVK(instance, pCreateInfo, pAllocator, pSurface);
3377 return vkCreateIOSSurfaceMVK_VkResult_return;
3378}
3379#endif
3380#ifdef VK_MVK_macos_surface
3381static VkResult entry_vkCreateMacOSSurfaceMVK(
3382 VkInstance instance,
3383 const VkMacOSSurfaceCreateInfoMVK* pCreateInfo,
3384 const VkAllocationCallbacks* pAllocator,
3385 VkSurfaceKHR* pSurface)
3386{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003387 AEMU_SCOPED_TRACE("vkCreateMacOSSurfaceMVK");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003388 auto vkEnc = HostConnection::get()->vkEncoder();
3389 VkResult vkCreateMacOSSurfaceMVK_VkResult_return = (VkResult)0;
3390 vkCreateMacOSSurfaceMVK_VkResult_return = vkEnc->vkCreateMacOSSurfaceMVK(instance, pCreateInfo, pAllocator, pSurface);
3391 return vkCreateMacOSSurfaceMVK_VkResult_return;
3392}
3393#endif
3394#ifdef VK_EXT_external_memory_dma_buf
3395#endif
3396#ifdef VK_EXT_queue_family_foreign
3397#endif
3398#ifdef VK_EXT_debug_utils
3399static VkResult entry_vkSetDebugUtilsObjectNameEXT(
3400 VkDevice device,
3401 const VkDebugUtilsObjectNameInfoEXT* pNameInfo)
3402{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003403 AEMU_SCOPED_TRACE("vkSetDebugUtilsObjectNameEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003404 auto vkEnc = HostConnection::get()->vkEncoder();
3405 VkResult vkSetDebugUtilsObjectNameEXT_VkResult_return = (VkResult)0;
3406 vkSetDebugUtilsObjectNameEXT_VkResult_return = vkEnc->vkSetDebugUtilsObjectNameEXT(device, pNameInfo);
3407 return vkSetDebugUtilsObjectNameEXT_VkResult_return;
3408}
3409static VkResult entry_vkSetDebugUtilsObjectTagEXT(
3410 VkDevice device,
3411 const VkDebugUtilsObjectTagInfoEXT* pTagInfo)
3412{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003413 AEMU_SCOPED_TRACE("vkSetDebugUtilsObjectTagEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003414 auto vkEnc = HostConnection::get()->vkEncoder();
3415 VkResult vkSetDebugUtilsObjectTagEXT_VkResult_return = (VkResult)0;
3416 vkSetDebugUtilsObjectTagEXT_VkResult_return = vkEnc->vkSetDebugUtilsObjectTagEXT(device, pTagInfo);
3417 return vkSetDebugUtilsObjectTagEXT_VkResult_return;
3418}
3419static void entry_vkQueueBeginDebugUtilsLabelEXT(
3420 VkQueue queue,
3421 const VkDebugUtilsLabelEXT* pLabelInfo)
3422{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003423 AEMU_SCOPED_TRACE("vkQueueBeginDebugUtilsLabelEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003424 auto vkEnc = HostConnection::get()->vkEncoder();
3425 vkEnc->vkQueueBeginDebugUtilsLabelEXT(queue, pLabelInfo);
3426}
3427static void entry_vkQueueEndDebugUtilsLabelEXT(
3428 VkQueue queue)
3429{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003430 AEMU_SCOPED_TRACE("vkQueueEndDebugUtilsLabelEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003431 auto vkEnc = HostConnection::get()->vkEncoder();
3432 vkEnc->vkQueueEndDebugUtilsLabelEXT(queue);
3433}
3434static void entry_vkQueueInsertDebugUtilsLabelEXT(
3435 VkQueue queue,
3436 const VkDebugUtilsLabelEXT* pLabelInfo)
3437{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003438 AEMU_SCOPED_TRACE("vkQueueInsertDebugUtilsLabelEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003439 auto vkEnc = HostConnection::get()->vkEncoder();
3440 vkEnc->vkQueueInsertDebugUtilsLabelEXT(queue, pLabelInfo);
3441}
3442static void entry_vkCmdBeginDebugUtilsLabelEXT(
3443 VkCommandBuffer commandBuffer,
3444 const VkDebugUtilsLabelEXT* pLabelInfo)
3445{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003446 AEMU_SCOPED_TRACE("vkCmdBeginDebugUtilsLabelEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003447 auto vkEnc = HostConnection::get()->vkEncoder();
3448 vkEnc->vkCmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo);
3449}
3450static void entry_vkCmdEndDebugUtilsLabelEXT(
3451 VkCommandBuffer commandBuffer)
3452{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003453 AEMU_SCOPED_TRACE("vkCmdEndDebugUtilsLabelEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003454 auto vkEnc = HostConnection::get()->vkEncoder();
3455 vkEnc->vkCmdEndDebugUtilsLabelEXT(commandBuffer);
3456}
3457static void entry_vkCmdInsertDebugUtilsLabelEXT(
3458 VkCommandBuffer commandBuffer,
3459 const VkDebugUtilsLabelEXT* pLabelInfo)
3460{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003461 AEMU_SCOPED_TRACE("vkCmdInsertDebugUtilsLabelEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003462 auto vkEnc = HostConnection::get()->vkEncoder();
3463 vkEnc->vkCmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo);
3464}
3465static VkResult entry_vkCreateDebugUtilsMessengerEXT(
3466 VkInstance instance,
3467 const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo,
3468 const VkAllocationCallbacks* pAllocator,
3469 VkDebugUtilsMessengerEXT* pMessenger)
3470{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003471 AEMU_SCOPED_TRACE("vkCreateDebugUtilsMessengerEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003472 auto vkEnc = HostConnection::get()->vkEncoder();
3473 VkResult vkCreateDebugUtilsMessengerEXT_VkResult_return = (VkResult)0;
3474 vkCreateDebugUtilsMessengerEXT_VkResult_return = vkEnc->vkCreateDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, pMessenger);
3475 return vkCreateDebugUtilsMessengerEXT_VkResult_return;
3476}
3477static void entry_vkDestroyDebugUtilsMessengerEXT(
3478 VkInstance instance,
3479 VkDebugUtilsMessengerEXT messenger,
3480 const VkAllocationCallbacks* pAllocator)
3481{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003482 AEMU_SCOPED_TRACE("vkDestroyDebugUtilsMessengerEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003483 auto vkEnc = HostConnection::get()->vkEncoder();
3484 vkEnc->vkDestroyDebugUtilsMessengerEXT(instance, messenger, pAllocator);
3485}
3486static void entry_vkSubmitDebugUtilsMessageEXT(
3487 VkInstance instance,
3488 VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
3489 VkDebugUtilsMessageTypeFlagsEXT messageTypes,
3490 const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData)
3491{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003492 AEMU_SCOPED_TRACE("vkSubmitDebugUtilsMessageEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003493 auto vkEnc = HostConnection::get()->vkEncoder();
3494 vkEnc->vkSubmitDebugUtilsMessageEXT(instance, messageSeverity, messageTypes, pCallbackData);
3495}
3496#endif
3497#ifdef VK_ANDROID_external_memory_android_hardware_buffer
3498static VkResult entry_vkGetAndroidHardwareBufferPropertiesANDROID(
3499 VkDevice device,
3500 const AHardwareBuffer* buffer,
3501 VkAndroidHardwareBufferPropertiesANDROID* pProperties)
3502{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003503 AEMU_SCOPED_TRACE("vkGetAndroidHardwareBufferPropertiesANDROID");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003504 auto vkEnc = HostConnection::get()->vkEncoder();
3505 VkResult vkGetAndroidHardwareBufferPropertiesANDROID_VkResult_return = (VkResult)0;
3506 vkGetAndroidHardwareBufferPropertiesANDROID_VkResult_return = vkEnc->vkGetAndroidHardwareBufferPropertiesANDROID(device, buffer, pProperties);
3507 return vkGetAndroidHardwareBufferPropertiesANDROID_VkResult_return;
3508}
3509static VkResult entry_vkGetMemoryAndroidHardwareBufferANDROID(
3510 VkDevice device,
3511 const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo,
3512 AHardwareBuffer** pBuffer)
3513{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003514 AEMU_SCOPED_TRACE("vkGetMemoryAndroidHardwareBufferANDROID");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003515 auto vkEnc = HostConnection::get()->vkEncoder();
3516 VkResult vkGetMemoryAndroidHardwareBufferANDROID_VkResult_return = (VkResult)0;
3517 vkGetMemoryAndroidHardwareBufferANDROID_VkResult_return = vkEnc->vkGetMemoryAndroidHardwareBufferANDROID(device, pInfo, pBuffer);
3518 return vkGetMemoryAndroidHardwareBufferANDROID_VkResult_return;
3519}
3520#endif
3521#ifdef VK_EXT_sampler_filter_minmax
3522#endif
3523#ifdef VK_AMD_gpu_shader_int16
3524#endif
3525#ifdef VK_AMD_mixed_attachment_samples
3526#endif
3527#ifdef VK_AMD_shader_fragment_mask
3528#endif
3529#ifdef VK_EXT_shader_stencil_export
3530#endif
3531#ifdef VK_EXT_sample_locations
3532static void entry_vkCmdSetSampleLocationsEXT(
3533 VkCommandBuffer commandBuffer,
3534 const VkSampleLocationsInfoEXT* pSampleLocationsInfo)
3535{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003536 AEMU_SCOPED_TRACE("vkCmdSetSampleLocationsEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003537 auto vkEnc = HostConnection::get()->vkEncoder();
3538 vkEnc->vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo);
3539}
3540static void entry_vkGetPhysicalDeviceMultisamplePropertiesEXT(
3541 VkPhysicalDevice physicalDevice,
3542 VkSampleCountFlagBits samples,
3543 VkMultisamplePropertiesEXT* pMultisampleProperties)
3544{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003545 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMultisamplePropertiesEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003546 auto vkEnc = HostConnection::get()->vkEncoder();
3547 vkEnc->vkGetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties);
3548}
3549#endif
3550#ifdef VK_EXT_blend_operation_advanced
3551#endif
3552#ifdef VK_NV_fragment_coverage_to_color
3553#endif
3554#ifdef VK_NV_framebuffer_mixed_samples
3555#endif
3556#ifdef VK_NV_fill_rectangle
3557#endif
3558#ifdef VK_EXT_post_depth_coverage
3559#endif
3560#ifdef VK_EXT_validation_cache
3561static VkResult entry_vkCreateValidationCacheEXT(
3562 VkDevice device,
3563 const VkValidationCacheCreateInfoEXT* pCreateInfo,
3564 const VkAllocationCallbacks* pAllocator,
3565 VkValidationCacheEXT* pValidationCache)
3566{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003567 AEMU_SCOPED_TRACE("vkCreateValidationCacheEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003568 auto vkEnc = HostConnection::get()->vkEncoder();
3569 VkResult vkCreateValidationCacheEXT_VkResult_return = (VkResult)0;
3570 vkCreateValidationCacheEXT_VkResult_return = vkEnc->vkCreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache);
3571 return vkCreateValidationCacheEXT_VkResult_return;
3572}
3573static void entry_vkDestroyValidationCacheEXT(
3574 VkDevice device,
3575 VkValidationCacheEXT validationCache,
3576 const VkAllocationCallbacks* pAllocator)
3577{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003578 AEMU_SCOPED_TRACE("vkDestroyValidationCacheEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003579 auto vkEnc = HostConnection::get()->vkEncoder();
3580 vkEnc->vkDestroyValidationCacheEXT(device, validationCache, pAllocator);
3581}
3582static VkResult entry_vkMergeValidationCachesEXT(
3583 VkDevice device,
3584 VkValidationCacheEXT dstCache,
3585 uint32_t srcCacheCount,
3586 const VkValidationCacheEXT* pSrcCaches)
3587{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003588 AEMU_SCOPED_TRACE("vkMergeValidationCachesEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003589 auto vkEnc = HostConnection::get()->vkEncoder();
3590 VkResult vkMergeValidationCachesEXT_VkResult_return = (VkResult)0;
3591 vkMergeValidationCachesEXT_VkResult_return = vkEnc->vkMergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches);
3592 return vkMergeValidationCachesEXT_VkResult_return;
3593}
3594static VkResult entry_vkGetValidationCacheDataEXT(
3595 VkDevice device,
3596 VkValidationCacheEXT validationCache,
3597 size_t* pDataSize,
3598 void* pData)
3599{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003600 AEMU_SCOPED_TRACE("vkGetValidationCacheDataEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003601 auto vkEnc = HostConnection::get()->vkEncoder();
3602 VkResult vkGetValidationCacheDataEXT_VkResult_return = (VkResult)0;
3603 vkGetValidationCacheDataEXT_VkResult_return = vkEnc->vkGetValidationCacheDataEXT(device, validationCache, pDataSize, pData);
3604 return vkGetValidationCacheDataEXT_VkResult_return;
3605}
3606#endif
3607#ifdef VK_EXT_descriptor_indexing
3608#endif
3609#ifdef VK_EXT_shader_viewport_index_layer
3610#endif
3611#ifdef VK_EXT_global_priority
3612#endif
3613#ifdef VK_EXT_external_memory_host
3614static VkResult entry_vkGetMemoryHostPointerPropertiesEXT(
3615 VkDevice device,
3616 VkExternalMemoryHandleTypeFlagBits handleType,
3617 const void* pHostPointer,
3618 VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties)
3619{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003620 AEMU_SCOPED_TRACE("vkGetMemoryHostPointerPropertiesEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003621 auto vkEnc = HostConnection::get()->vkEncoder();
3622 VkResult vkGetMemoryHostPointerPropertiesEXT_VkResult_return = (VkResult)0;
3623 vkGetMemoryHostPointerPropertiesEXT_VkResult_return = vkEnc->vkGetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties);
3624 return vkGetMemoryHostPointerPropertiesEXT_VkResult_return;
3625}
3626#endif
3627#ifdef VK_AMD_buffer_marker
3628static void entry_vkCmdWriteBufferMarkerAMD(
3629 VkCommandBuffer commandBuffer,
3630 VkPipelineStageFlagBits pipelineStage,
3631 VkBuffer dstBuffer,
3632 VkDeviceSize dstOffset,
3633 uint32_t marker)
3634{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003635 AEMU_SCOPED_TRACE("vkCmdWriteBufferMarkerAMD");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003636 auto vkEnc = HostConnection::get()->vkEncoder();
3637 vkEnc->vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker);
3638}
3639#endif
3640#ifdef VK_AMD_shader_core_properties
3641#endif
3642#ifdef VK_EXT_vertex_attribute_divisor
3643#endif
3644#ifdef VK_NV_shader_subgroup_partitioned
3645#endif
3646#ifdef VK_NV_device_diagnostic_checkpoints
3647static void entry_vkCmdSetCheckpointNV(
3648 VkCommandBuffer commandBuffer,
3649 const void* pCheckpointMarker)
3650{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003651 AEMU_SCOPED_TRACE("vkCmdSetCheckpointNV");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003652 auto vkEnc = HostConnection::get()->vkEncoder();
3653 vkEnc->vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker);
3654}
3655static void entry_vkGetQueueCheckpointDataNV(
3656 VkQueue queue,
3657 uint32_t* pCheckpointDataCount,
3658 VkCheckpointDataNV* pCheckpointData)
3659{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003660 AEMU_SCOPED_TRACE("vkGetQueueCheckpointDataNV");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003661 auto vkEnc = HostConnection::get()->vkEncoder();
3662 vkEnc->vkGetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData);
3663}
3664#endif
Lingfeng Yang5c63afd2018-12-22 01:21:14 -08003665#ifdef VK_GOOGLE_address_space
3666static VkResult entry_vkMapMemoryIntoAddressSpaceGOOGLE(
3667 VkDevice device,
3668 VkDeviceMemory memory,
3669 uint64_t* pAddress)
3670{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003671 AEMU_SCOPED_TRACE("vkMapMemoryIntoAddressSpaceGOOGLE");
Lingfeng Yang5c63afd2018-12-22 01:21:14 -08003672 auto vkEnc = HostConnection::get()->vkEncoder();
3673 VkResult vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return = (VkResult)0;
3674 vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return = vkEnc->vkMapMemoryIntoAddressSpaceGOOGLE(device, memory, pAddress);
3675 return vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return;
3676}
3677#endif
Lingfeng Yangae7e1b32019-02-19 14:07:39 -08003678#ifdef VK_GOOGLE_color_buffer
3679static VkResult entry_vkRegisterImageColorBufferGOOGLE(
3680 VkDevice device,
3681 VkImage image,
3682 uint32_t colorBuffer)
3683{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003684 AEMU_SCOPED_TRACE("vkRegisterImageColorBufferGOOGLE");
Lingfeng Yangae7e1b32019-02-19 14:07:39 -08003685 auto vkEnc = HostConnection::get()->vkEncoder();
3686 VkResult vkRegisterImageColorBufferGOOGLE_VkResult_return = (VkResult)0;
3687 vkRegisterImageColorBufferGOOGLE_VkResult_return = vkEnc->vkRegisterImageColorBufferGOOGLE(device, image, colorBuffer);
3688 return vkRegisterImageColorBufferGOOGLE_VkResult_return;
3689}
3690static VkResult entry_vkRegisterBufferColorBufferGOOGLE(
3691 VkDevice device,
3692 VkBuffer buffer,
3693 uint32_t colorBuffer)
3694{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003695 AEMU_SCOPED_TRACE("vkRegisterBufferColorBufferGOOGLE");
Lingfeng Yangae7e1b32019-02-19 14:07:39 -08003696 auto vkEnc = HostConnection::get()->vkEncoder();
3697 VkResult vkRegisterBufferColorBufferGOOGLE_VkResult_return = (VkResult)0;
3698 vkRegisterBufferColorBufferGOOGLE_VkResult_return = vkEnc->vkRegisterBufferColorBufferGOOGLE(device, buffer, colorBuffer);
3699 return vkRegisterBufferColorBufferGOOGLE_VkResult_return;
3700}
3701#endif
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003702void* goldfish_vulkan_get_proc_address(const char* name){
3703#ifdef VK_VERSION_1_0
3704 if (!strcmp(name, "vkCreateInstance"))
3705 {
3706 return (void*)entry_vkCreateInstance;
3707 }
3708 if (!strcmp(name, "vkDestroyInstance"))
3709 {
3710 return (void*)entry_vkDestroyInstance;
3711 }
3712 if (!strcmp(name, "vkEnumeratePhysicalDevices"))
3713 {
3714 return (void*)entry_vkEnumeratePhysicalDevices;
3715 }
3716 if (!strcmp(name, "vkGetPhysicalDeviceFeatures"))
3717 {
3718 return (void*)entry_vkGetPhysicalDeviceFeatures;
3719 }
3720 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties"))
3721 {
3722 return (void*)entry_vkGetPhysicalDeviceFormatProperties;
3723 }
3724 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties"))
3725 {
3726 return (void*)entry_vkGetPhysicalDeviceImageFormatProperties;
3727 }
3728 if (!strcmp(name, "vkGetPhysicalDeviceProperties"))
3729 {
3730 return (void*)entry_vkGetPhysicalDeviceProperties;
3731 }
3732 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties"))
3733 {
3734 return (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties;
3735 }
3736 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties"))
3737 {
3738 return (void*)entry_vkGetPhysicalDeviceMemoryProperties;
3739 }
3740 if (!strcmp(name, "vkGetInstanceProcAddr"))
3741 {
3742 return (void*)entry_vkGetInstanceProcAddr;
3743 }
3744 if (!strcmp(name, "vkGetDeviceProcAddr"))
3745 {
3746 return (void*)entry_vkGetDeviceProcAddr;
3747 }
3748 if (!strcmp(name, "vkCreateDevice"))
3749 {
3750 return (void*)entry_vkCreateDevice;
3751 }
3752 if (!strcmp(name, "vkDestroyDevice"))
3753 {
3754 return (void*)entry_vkDestroyDevice;
3755 }
3756 if (!strcmp(name, "vkEnumerateInstanceExtensionProperties"))
3757 {
3758 return (void*)entry_vkEnumerateInstanceExtensionProperties;
3759 }
3760 if (!strcmp(name, "vkEnumerateDeviceExtensionProperties"))
3761 {
3762 return (void*)entry_vkEnumerateDeviceExtensionProperties;
3763 }
3764 if (!strcmp(name, "vkEnumerateInstanceLayerProperties"))
3765 {
3766 return (void*)entry_vkEnumerateInstanceLayerProperties;
3767 }
3768 if (!strcmp(name, "vkEnumerateDeviceLayerProperties"))
3769 {
3770 return (void*)entry_vkEnumerateDeviceLayerProperties;
3771 }
3772 if (!strcmp(name, "vkGetDeviceQueue"))
3773 {
3774 return (void*)entry_vkGetDeviceQueue;
3775 }
3776 if (!strcmp(name, "vkQueueSubmit"))
3777 {
3778 return (void*)entry_vkQueueSubmit;
3779 }
3780 if (!strcmp(name, "vkQueueWaitIdle"))
3781 {
3782 return (void*)entry_vkQueueWaitIdle;
3783 }
3784 if (!strcmp(name, "vkDeviceWaitIdle"))
3785 {
3786 return (void*)entry_vkDeviceWaitIdle;
3787 }
3788 if (!strcmp(name, "vkAllocateMemory"))
3789 {
3790 return (void*)entry_vkAllocateMemory;
3791 }
3792 if (!strcmp(name, "vkFreeMemory"))
3793 {
3794 return (void*)entry_vkFreeMemory;
3795 }
3796 if (!strcmp(name, "vkMapMemory"))
3797 {
3798 return (void*)entry_vkMapMemory;
3799 }
3800 if (!strcmp(name, "vkUnmapMemory"))
3801 {
3802 return (void*)entry_vkUnmapMemory;
3803 }
3804 if (!strcmp(name, "vkFlushMappedMemoryRanges"))
3805 {
3806 return (void*)entry_vkFlushMappedMemoryRanges;
3807 }
3808 if (!strcmp(name, "vkInvalidateMappedMemoryRanges"))
3809 {
3810 return (void*)entry_vkInvalidateMappedMemoryRanges;
3811 }
3812 if (!strcmp(name, "vkGetDeviceMemoryCommitment"))
3813 {
3814 return (void*)entry_vkGetDeviceMemoryCommitment;
3815 }
3816 if (!strcmp(name, "vkBindBufferMemory"))
3817 {
3818 return (void*)entry_vkBindBufferMemory;
3819 }
3820 if (!strcmp(name, "vkBindImageMemory"))
3821 {
3822 return (void*)entry_vkBindImageMemory;
3823 }
3824 if (!strcmp(name, "vkGetBufferMemoryRequirements"))
3825 {
3826 return (void*)entry_vkGetBufferMemoryRequirements;
3827 }
3828 if (!strcmp(name, "vkGetImageMemoryRequirements"))
3829 {
3830 return (void*)entry_vkGetImageMemoryRequirements;
3831 }
3832 if (!strcmp(name, "vkGetImageSparseMemoryRequirements"))
3833 {
3834 return (void*)entry_vkGetImageSparseMemoryRequirements;
3835 }
3836 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties"))
3837 {
3838 return (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties;
3839 }
3840 if (!strcmp(name, "vkQueueBindSparse"))
3841 {
3842 return (void*)entry_vkQueueBindSparse;
3843 }
3844 if (!strcmp(name, "vkCreateFence"))
3845 {
3846 return (void*)entry_vkCreateFence;
3847 }
3848 if (!strcmp(name, "vkDestroyFence"))
3849 {
3850 return (void*)entry_vkDestroyFence;
3851 }
3852 if (!strcmp(name, "vkResetFences"))
3853 {
3854 return (void*)entry_vkResetFences;
3855 }
3856 if (!strcmp(name, "vkGetFenceStatus"))
3857 {
3858 return (void*)entry_vkGetFenceStatus;
3859 }
3860 if (!strcmp(name, "vkWaitForFences"))
3861 {
3862 return (void*)entry_vkWaitForFences;
3863 }
3864 if (!strcmp(name, "vkCreateSemaphore"))
3865 {
3866 return (void*)entry_vkCreateSemaphore;
3867 }
3868 if (!strcmp(name, "vkDestroySemaphore"))
3869 {
3870 return (void*)entry_vkDestroySemaphore;
3871 }
3872 if (!strcmp(name, "vkCreateEvent"))
3873 {
3874 return (void*)entry_vkCreateEvent;
3875 }
3876 if (!strcmp(name, "vkDestroyEvent"))
3877 {
3878 return (void*)entry_vkDestroyEvent;
3879 }
3880 if (!strcmp(name, "vkGetEventStatus"))
3881 {
3882 return (void*)entry_vkGetEventStatus;
3883 }
3884 if (!strcmp(name, "vkSetEvent"))
3885 {
3886 return (void*)entry_vkSetEvent;
3887 }
3888 if (!strcmp(name, "vkResetEvent"))
3889 {
3890 return (void*)entry_vkResetEvent;
3891 }
3892 if (!strcmp(name, "vkCreateQueryPool"))
3893 {
3894 return (void*)entry_vkCreateQueryPool;
3895 }
3896 if (!strcmp(name, "vkDestroyQueryPool"))
3897 {
3898 return (void*)entry_vkDestroyQueryPool;
3899 }
3900 if (!strcmp(name, "vkGetQueryPoolResults"))
3901 {
3902 return (void*)entry_vkGetQueryPoolResults;
3903 }
3904 if (!strcmp(name, "vkCreateBuffer"))
3905 {
3906 return (void*)entry_vkCreateBuffer;
3907 }
3908 if (!strcmp(name, "vkDestroyBuffer"))
3909 {
3910 return (void*)entry_vkDestroyBuffer;
3911 }
3912 if (!strcmp(name, "vkCreateBufferView"))
3913 {
3914 return (void*)entry_vkCreateBufferView;
3915 }
3916 if (!strcmp(name, "vkDestroyBufferView"))
3917 {
3918 return (void*)entry_vkDestroyBufferView;
3919 }
3920 if (!strcmp(name, "vkCreateImage"))
3921 {
3922 return (void*)entry_vkCreateImage;
3923 }
3924 if (!strcmp(name, "vkDestroyImage"))
3925 {
3926 return (void*)entry_vkDestroyImage;
3927 }
3928 if (!strcmp(name, "vkGetImageSubresourceLayout"))
3929 {
3930 return (void*)entry_vkGetImageSubresourceLayout;
3931 }
3932 if (!strcmp(name, "vkCreateImageView"))
3933 {
3934 return (void*)entry_vkCreateImageView;
3935 }
3936 if (!strcmp(name, "vkDestroyImageView"))
3937 {
3938 return (void*)entry_vkDestroyImageView;
3939 }
3940 if (!strcmp(name, "vkCreateShaderModule"))
3941 {
3942 return (void*)entry_vkCreateShaderModule;
3943 }
3944 if (!strcmp(name, "vkDestroyShaderModule"))
3945 {
3946 return (void*)entry_vkDestroyShaderModule;
3947 }
3948 if (!strcmp(name, "vkCreatePipelineCache"))
3949 {
3950 return (void*)entry_vkCreatePipelineCache;
3951 }
3952 if (!strcmp(name, "vkDestroyPipelineCache"))
3953 {
3954 return (void*)entry_vkDestroyPipelineCache;
3955 }
3956 if (!strcmp(name, "vkGetPipelineCacheData"))
3957 {
3958 return (void*)entry_vkGetPipelineCacheData;
3959 }
3960 if (!strcmp(name, "vkMergePipelineCaches"))
3961 {
3962 return (void*)entry_vkMergePipelineCaches;
3963 }
3964 if (!strcmp(name, "vkCreateGraphicsPipelines"))
3965 {
3966 return (void*)entry_vkCreateGraphicsPipelines;
3967 }
3968 if (!strcmp(name, "vkCreateComputePipelines"))
3969 {
3970 return (void*)entry_vkCreateComputePipelines;
3971 }
3972 if (!strcmp(name, "vkDestroyPipeline"))
3973 {
3974 return (void*)entry_vkDestroyPipeline;
3975 }
3976 if (!strcmp(name, "vkCreatePipelineLayout"))
3977 {
3978 return (void*)entry_vkCreatePipelineLayout;
3979 }
3980 if (!strcmp(name, "vkDestroyPipelineLayout"))
3981 {
3982 return (void*)entry_vkDestroyPipelineLayout;
3983 }
3984 if (!strcmp(name, "vkCreateSampler"))
3985 {
3986 return (void*)entry_vkCreateSampler;
3987 }
3988 if (!strcmp(name, "vkDestroySampler"))
3989 {
3990 return (void*)entry_vkDestroySampler;
3991 }
3992 if (!strcmp(name, "vkCreateDescriptorSetLayout"))
3993 {
3994 return (void*)entry_vkCreateDescriptorSetLayout;
3995 }
3996 if (!strcmp(name, "vkDestroyDescriptorSetLayout"))
3997 {
3998 return (void*)entry_vkDestroyDescriptorSetLayout;
3999 }
4000 if (!strcmp(name, "vkCreateDescriptorPool"))
4001 {
4002 return (void*)entry_vkCreateDescriptorPool;
4003 }
4004 if (!strcmp(name, "vkDestroyDescriptorPool"))
4005 {
4006 return (void*)entry_vkDestroyDescriptorPool;
4007 }
4008 if (!strcmp(name, "vkResetDescriptorPool"))
4009 {
4010 return (void*)entry_vkResetDescriptorPool;
4011 }
4012 if (!strcmp(name, "vkAllocateDescriptorSets"))
4013 {
4014 return (void*)entry_vkAllocateDescriptorSets;
4015 }
4016 if (!strcmp(name, "vkFreeDescriptorSets"))
4017 {
4018 return (void*)entry_vkFreeDescriptorSets;
4019 }
4020 if (!strcmp(name, "vkUpdateDescriptorSets"))
4021 {
4022 return (void*)entry_vkUpdateDescriptorSets;
4023 }
4024 if (!strcmp(name, "vkCreateFramebuffer"))
4025 {
4026 return (void*)entry_vkCreateFramebuffer;
4027 }
4028 if (!strcmp(name, "vkDestroyFramebuffer"))
4029 {
4030 return (void*)entry_vkDestroyFramebuffer;
4031 }
4032 if (!strcmp(name, "vkCreateRenderPass"))
4033 {
4034 return (void*)entry_vkCreateRenderPass;
4035 }
4036 if (!strcmp(name, "vkDestroyRenderPass"))
4037 {
4038 return (void*)entry_vkDestroyRenderPass;
4039 }
4040 if (!strcmp(name, "vkGetRenderAreaGranularity"))
4041 {
4042 return (void*)entry_vkGetRenderAreaGranularity;
4043 }
4044 if (!strcmp(name, "vkCreateCommandPool"))
4045 {
4046 return (void*)entry_vkCreateCommandPool;
4047 }
4048 if (!strcmp(name, "vkDestroyCommandPool"))
4049 {
4050 return (void*)entry_vkDestroyCommandPool;
4051 }
4052 if (!strcmp(name, "vkResetCommandPool"))
4053 {
4054 return (void*)entry_vkResetCommandPool;
4055 }
4056 if (!strcmp(name, "vkAllocateCommandBuffers"))
4057 {
4058 return (void*)entry_vkAllocateCommandBuffers;
4059 }
4060 if (!strcmp(name, "vkFreeCommandBuffers"))
4061 {
4062 return (void*)entry_vkFreeCommandBuffers;
4063 }
4064 if (!strcmp(name, "vkBeginCommandBuffer"))
4065 {
4066 return (void*)entry_vkBeginCommandBuffer;
4067 }
4068 if (!strcmp(name, "vkEndCommandBuffer"))
4069 {
4070 return (void*)entry_vkEndCommandBuffer;
4071 }
4072 if (!strcmp(name, "vkResetCommandBuffer"))
4073 {
4074 return (void*)entry_vkResetCommandBuffer;
4075 }
4076 if (!strcmp(name, "vkCmdBindPipeline"))
4077 {
4078 return (void*)entry_vkCmdBindPipeline;
4079 }
4080 if (!strcmp(name, "vkCmdSetViewport"))
4081 {
4082 return (void*)entry_vkCmdSetViewport;
4083 }
4084 if (!strcmp(name, "vkCmdSetScissor"))
4085 {
4086 return (void*)entry_vkCmdSetScissor;
4087 }
4088 if (!strcmp(name, "vkCmdSetLineWidth"))
4089 {
4090 return (void*)entry_vkCmdSetLineWidth;
4091 }
4092 if (!strcmp(name, "vkCmdSetDepthBias"))
4093 {
4094 return (void*)entry_vkCmdSetDepthBias;
4095 }
4096 if (!strcmp(name, "vkCmdSetBlendConstants"))
4097 {
4098 return (void*)entry_vkCmdSetBlendConstants;
4099 }
4100 if (!strcmp(name, "vkCmdSetDepthBounds"))
4101 {
4102 return (void*)entry_vkCmdSetDepthBounds;
4103 }
4104 if (!strcmp(name, "vkCmdSetStencilCompareMask"))
4105 {
4106 return (void*)entry_vkCmdSetStencilCompareMask;
4107 }
4108 if (!strcmp(name, "vkCmdSetStencilWriteMask"))
4109 {
4110 return (void*)entry_vkCmdSetStencilWriteMask;
4111 }
4112 if (!strcmp(name, "vkCmdSetStencilReference"))
4113 {
4114 return (void*)entry_vkCmdSetStencilReference;
4115 }
4116 if (!strcmp(name, "vkCmdBindDescriptorSets"))
4117 {
4118 return (void*)entry_vkCmdBindDescriptorSets;
4119 }
4120 if (!strcmp(name, "vkCmdBindIndexBuffer"))
4121 {
4122 return (void*)entry_vkCmdBindIndexBuffer;
4123 }
4124 if (!strcmp(name, "vkCmdBindVertexBuffers"))
4125 {
4126 return (void*)entry_vkCmdBindVertexBuffers;
4127 }
4128 if (!strcmp(name, "vkCmdDraw"))
4129 {
4130 return (void*)entry_vkCmdDraw;
4131 }
4132 if (!strcmp(name, "vkCmdDrawIndexed"))
4133 {
4134 return (void*)entry_vkCmdDrawIndexed;
4135 }
4136 if (!strcmp(name, "vkCmdDrawIndirect"))
4137 {
4138 return (void*)entry_vkCmdDrawIndirect;
4139 }
4140 if (!strcmp(name, "vkCmdDrawIndexedIndirect"))
4141 {
4142 return (void*)entry_vkCmdDrawIndexedIndirect;
4143 }
4144 if (!strcmp(name, "vkCmdDispatch"))
4145 {
4146 return (void*)entry_vkCmdDispatch;
4147 }
4148 if (!strcmp(name, "vkCmdDispatchIndirect"))
4149 {
4150 return (void*)entry_vkCmdDispatchIndirect;
4151 }
4152 if (!strcmp(name, "vkCmdCopyBuffer"))
4153 {
4154 return (void*)entry_vkCmdCopyBuffer;
4155 }
4156 if (!strcmp(name, "vkCmdCopyImage"))
4157 {
4158 return (void*)entry_vkCmdCopyImage;
4159 }
4160 if (!strcmp(name, "vkCmdBlitImage"))
4161 {
4162 return (void*)entry_vkCmdBlitImage;
4163 }
4164 if (!strcmp(name, "vkCmdCopyBufferToImage"))
4165 {
4166 return (void*)entry_vkCmdCopyBufferToImage;
4167 }
4168 if (!strcmp(name, "vkCmdCopyImageToBuffer"))
4169 {
4170 return (void*)entry_vkCmdCopyImageToBuffer;
4171 }
4172 if (!strcmp(name, "vkCmdUpdateBuffer"))
4173 {
4174 return (void*)entry_vkCmdUpdateBuffer;
4175 }
4176 if (!strcmp(name, "vkCmdFillBuffer"))
4177 {
4178 return (void*)entry_vkCmdFillBuffer;
4179 }
4180 if (!strcmp(name, "vkCmdClearColorImage"))
4181 {
4182 return (void*)entry_vkCmdClearColorImage;
4183 }
4184 if (!strcmp(name, "vkCmdClearDepthStencilImage"))
4185 {
4186 return (void*)entry_vkCmdClearDepthStencilImage;
4187 }
4188 if (!strcmp(name, "vkCmdClearAttachments"))
4189 {
4190 return (void*)entry_vkCmdClearAttachments;
4191 }
4192 if (!strcmp(name, "vkCmdResolveImage"))
4193 {
4194 return (void*)entry_vkCmdResolveImage;
4195 }
4196 if (!strcmp(name, "vkCmdSetEvent"))
4197 {
4198 return (void*)entry_vkCmdSetEvent;
4199 }
4200 if (!strcmp(name, "vkCmdResetEvent"))
4201 {
4202 return (void*)entry_vkCmdResetEvent;
4203 }
4204 if (!strcmp(name, "vkCmdWaitEvents"))
4205 {
4206 return (void*)entry_vkCmdWaitEvents;
4207 }
4208 if (!strcmp(name, "vkCmdPipelineBarrier"))
4209 {
4210 return (void*)entry_vkCmdPipelineBarrier;
4211 }
4212 if (!strcmp(name, "vkCmdBeginQuery"))
4213 {
4214 return (void*)entry_vkCmdBeginQuery;
4215 }
4216 if (!strcmp(name, "vkCmdEndQuery"))
4217 {
4218 return (void*)entry_vkCmdEndQuery;
4219 }
4220 if (!strcmp(name, "vkCmdResetQueryPool"))
4221 {
4222 return (void*)entry_vkCmdResetQueryPool;
4223 }
4224 if (!strcmp(name, "vkCmdWriteTimestamp"))
4225 {
4226 return (void*)entry_vkCmdWriteTimestamp;
4227 }
4228 if (!strcmp(name, "vkCmdCopyQueryPoolResults"))
4229 {
4230 return (void*)entry_vkCmdCopyQueryPoolResults;
4231 }
4232 if (!strcmp(name, "vkCmdPushConstants"))
4233 {
4234 return (void*)entry_vkCmdPushConstants;
4235 }
4236 if (!strcmp(name, "vkCmdBeginRenderPass"))
4237 {
4238 return (void*)entry_vkCmdBeginRenderPass;
4239 }
4240 if (!strcmp(name, "vkCmdNextSubpass"))
4241 {
4242 return (void*)entry_vkCmdNextSubpass;
4243 }
4244 if (!strcmp(name, "vkCmdEndRenderPass"))
4245 {
4246 return (void*)entry_vkCmdEndRenderPass;
4247 }
4248 if (!strcmp(name, "vkCmdExecuteCommands"))
4249 {
4250 return (void*)entry_vkCmdExecuteCommands;
4251 }
4252#endif
4253#ifdef VK_VERSION_1_1
4254 if (!strcmp(name, "vkEnumerateInstanceVersion"))
4255 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004256 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004257 }
4258 if (!strcmp(name, "vkBindBufferMemory2"))
4259 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004260 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004261 }
4262 if (!strcmp(name, "vkBindImageMemory2"))
4263 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004264 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004265 }
4266 if (!strcmp(name, "vkGetDeviceGroupPeerMemoryFeatures"))
4267 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004268 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004269 }
4270 if (!strcmp(name, "vkCmdSetDeviceMask"))
4271 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004272 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004273 }
4274 if (!strcmp(name, "vkCmdDispatchBase"))
4275 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004276 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004277 }
4278 if (!strcmp(name, "vkEnumeratePhysicalDeviceGroups"))
4279 {
Lingfeng Yang113689e2018-11-11 16:48:50 -08004280 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004281 }
4282 if (!strcmp(name, "vkGetImageMemoryRequirements2"))
4283 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004284 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004285 }
4286 if (!strcmp(name, "vkGetBufferMemoryRequirements2"))
4287 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004288 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004289 }
4290 if (!strcmp(name, "vkGetImageSparseMemoryRequirements2"))
4291 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004292 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004293 }
4294 if (!strcmp(name, "vkGetPhysicalDeviceFeatures2"))
4295 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004296 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004297 }
4298 if (!strcmp(name, "vkGetPhysicalDeviceProperties2"))
4299 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004300 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004301 }
4302 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties2"))
4303 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004304 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004305 }
4306 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties2"))
4307 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004308 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004309 }
4310 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties2"))
4311 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004312 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004313 }
4314 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties2"))
4315 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004316 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004317 }
4318 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties2"))
4319 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004320 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004321 }
4322 if (!strcmp(name, "vkTrimCommandPool"))
4323 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004324 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004325 }
4326 if (!strcmp(name, "vkGetDeviceQueue2"))
4327 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004328 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004329 }
4330 if (!strcmp(name, "vkCreateSamplerYcbcrConversion"))
4331 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004332 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004333 }
4334 if (!strcmp(name, "vkDestroySamplerYcbcrConversion"))
4335 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004336 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004337 }
4338 if (!strcmp(name, "vkCreateDescriptorUpdateTemplate"))
4339 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004340 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004341 }
4342 if (!strcmp(name, "vkDestroyDescriptorUpdateTemplate"))
4343 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004344 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004345 }
4346 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplate"))
4347 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004348 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004349 }
4350 if (!strcmp(name, "vkGetPhysicalDeviceExternalBufferProperties"))
4351 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004352 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004353 }
4354 if (!strcmp(name, "vkGetPhysicalDeviceExternalFenceProperties"))
4355 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004356 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004357 }
4358 if (!strcmp(name, "vkGetPhysicalDeviceExternalSemaphoreProperties"))
4359 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004360 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004361 }
4362 if (!strcmp(name, "vkGetDescriptorSetLayoutSupport"))
4363 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004364 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004365 }
4366#endif
4367#ifdef VK_KHR_surface
4368 if (!strcmp(name, "vkDestroySurfaceKHR"))
4369 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004370 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004371 }
4372 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceSupportKHR"))
4373 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004374 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004375 }
4376 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR"))
4377 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004378 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004379 }
4380 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceFormatsKHR"))
4381 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004382 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004383 }
4384 if (!strcmp(name, "vkGetPhysicalDeviceSurfacePresentModesKHR"))
4385 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004386 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004387 }
4388#endif
4389#ifdef VK_KHR_swapchain
4390 if (!strcmp(name, "vkCreateSwapchainKHR"))
4391 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004392 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004393 }
4394 if (!strcmp(name, "vkDestroySwapchainKHR"))
4395 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004396 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004397 }
4398 if (!strcmp(name, "vkGetSwapchainImagesKHR"))
4399 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004400 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004401 }
4402 if (!strcmp(name, "vkAcquireNextImageKHR"))
4403 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004404 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004405 }
4406 if (!strcmp(name, "vkQueuePresentKHR"))
4407 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004408 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004409 }
4410 if (!strcmp(name, "vkGetDeviceGroupPresentCapabilitiesKHR"))
4411 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004412 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004413 }
4414 if (!strcmp(name, "vkGetDeviceGroupSurfacePresentModesKHR"))
4415 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004416 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004417 }
4418 if (!strcmp(name, "vkGetPhysicalDevicePresentRectanglesKHR"))
4419 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004420 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004421 }
4422 if (!strcmp(name, "vkAcquireNextImage2KHR"))
4423 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004424 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004425 }
4426#endif
4427#ifdef VK_KHR_display
4428 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPropertiesKHR"))
4429 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004430 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004431 }
4432 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR"))
4433 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004434 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004435 }
4436 if (!strcmp(name, "vkGetDisplayPlaneSupportedDisplaysKHR"))
4437 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004438 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004439 }
4440 if (!strcmp(name, "vkGetDisplayModePropertiesKHR"))
4441 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004442 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004443 }
4444 if (!strcmp(name, "vkCreateDisplayModeKHR"))
4445 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004446 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004447 }
4448 if (!strcmp(name, "vkGetDisplayPlaneCapabilitiesKHR"))
4449 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004450 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004451 }
4452 if (!strcmp(name, "vkCreateDisplayPlaneSurfaceKHR"))
4453 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004454 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004455 }
4456#endif
4457#ifdef VK_KHR_display_swapchain
4458 if (!strcmp(name, "vkCreateSharedSwapchainsKHR"))
4459 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004460 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004461 }
4462#endif
4463#ifdef VK_KHR_xlib_surface
4464 if (!strcmp(name, "vkCreateXlibSurfaceKHR"))
4465 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004466 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004467 }
4468 if (!strcmp(name, "vkGetPhysicalDeviceXlibPresentationSupportKHR"))
4469 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004470 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004471 }
4472#endif
4473#ifdef VK_KHR_xcb_surface
4474 if (!strcmp(name, "vkCreateXcbSurfaceKHR"))
4475 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004476 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004477 }
4478 if (!strcmp(name, "vkGetPhysicalDeviceXcbPresentationSupportKHR"))
4479 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004480 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004481 }
4482#endif
4483#ifdef VK_KHR_wayland_surface
4484 if (!strcmp(name, "vkCreateWaylandSurfaceKHR"))
4485 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004486 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004487 }
4488 if (!strcmp(name, "vkGetPhysicalDeviceWaylandPresentationSupportKHR"))
4489 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004490 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004491 }
4492#endif
4493#ifdef VK_KHR_mir_surface
4494 if (!strcmp(name, "vkCreateMirSurfaceKHR"))
4495 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004496 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004497 }
4498 if (!strcmp(name, "vkGetPhysicalDeviceMirPresentationSupportKHR"))
4499 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004500 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004501 }
4502#endif
4503#ifdef VK_KHR_android_surface
4504 if (!strcmp(name, "vkCreateAndroidSurfaceKHR"))
4505 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004506 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004507 }
4508#endif
4509#ifdef VK_KHR_win32_surface
4510 if (!strcmp(name, "vkCreateWin32SurfaceKHR"))
4511 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004512 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004513 }
4514 if (!strcmp(name, "vkGetPhysicalDeviceWin32PresentationSupportKHR"))
4515 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004516 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004517 }
4518#endif
4519#ifdef VK_KHR_get_physical_device_properties2
4520 if (!strcmp(name, "vkGetPhysicalDeviceFeatures2KHR"))
4521 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004522 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004523 }
4524 if (!strcmp(name, "vkGetPhysicalDeviceProperties2KHR"))
4525 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004526 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004527 }
4528 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties2KHR"))
4529 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004530 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004531 }
4532 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties2KHR"))
4533 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004534 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004535 }
4536 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties2KHR"))
4537 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004538 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004539 }
4540 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties2KHR"))
4541 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004542 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004543 }
4544 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR"))
4545 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004546 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004547 }
4548#endif
4549#ifdef VK_KHR_device_group
4550 if (!strcmp(name, "vkGetDeviceGroupPeerMemoryFeaturesKHR"))
4551 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004552 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004553 }
4554 if (!strcmp(name, "vkCmdSetDeviceMaskKHR"))
4555 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004556 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004557 }
4558 if (!strcmp(name, "vkCmdDispatchBaseKHR"))
4559 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004560 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004561 }
4562#endif
4563#ifdef VK_KHR_maintenance1
4564 if (!strcmp(name, "vkTrimCommandPoolKHR"))
4565 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004566 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004567 }
4568#endif
4569#ifdef VK_KHR_device_group_creation
4570 if (!strcmp(name, "vkEnumeratePhysicalDeviceGroupsKHR"))
4571 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004572 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004573 }
4574#endif
4575#ifdef VK_KHR_external_memory_capabilities
4576 if (!strcmp(name, "vkGetPhysicalDeviceExternalBufferPropertiesKHR"))
4577 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004578 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004579 }
4580#endif
4581#ifdef VK_KHR_external_memory_win32
4582 if (!strcmp(name, "vkGetMemoryWin32HandleKHR"))
4583 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004584 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004585 }
4586 if (!strcmp(name, "vkGetMemoryWin32HandlePropertiesKHR"))
4587 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004588 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004589 }
4590#endif
4591#ifdef VK_KHR_external_memory_fd
4592 if (!strcmp(name, "vkGetMemoryFdKHR"))
4593 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004594 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004595 }
4596 if (!strcmp(name, "vkGetMemoryFdPropertiesKHR"))
4597 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004598 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004599 }
4600#endif
4601#ifdef VK_KHR_external_semaphore_capabilities
4602 if (!strcmp(name, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR"))
4603 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004604 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004605 }
4606#endif
4607#ifdef VK_KHR_external_semaphore_win32
4608 if (!strcmp(name, "vkImportSemaphoreWin32HandleKHR"))
4609 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004610 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004611 }
4612 if (!strcmp(name, "vkGetSemaphoreWin32HandleKHR"))
4613 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004614 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004615 }
4616#endif
4617#ifdef VK_KHR_external_semaphore_fd
4618 if (!strcmp(name, "vkImportSemaphoreFdKHR"))
4619 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004620 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004621 }
4622 if (!strcmp(name, "vkGetSemaphoreFdKHR"))
4623 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004624 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004625 }
4626#endif
4627#ifdef VK_KHR_push_descriptor
4628 if (!strcmp(name, "vkCmdPushDescriptorSetKHR"))
4629 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004630 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004631 }
4632 if (!strcmp(name, "vkCmdPushDescriptorSetWithTemplateKHR"))
4633 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004634 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004635 }
4636#endif
4637#ifdef VK_KHR_descriptor_update_template
4638 if (!strcmp(name, "vkCreateDescriptorUpdateTemplateKHR"))
4639 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004640 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004641 }
4642 if (!strcmp(name, "vkDestroyDescriptorUpdateTemplateKHR"))
4643 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004644 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004645 }
4646 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplateKHR"))
4647 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004648 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004649 }
4650#endif
4651#ifdef VK_KHR_create_renderpass2
4652 if (!strcmp(name, "vkCreateRenderPass2KHR"))
4653 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004654 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004655 }
4656 if (!strcmp(name, "vkCmdBeginRenderPass2KHR"))
4657 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004658 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004659 }
4660 if (!strcmp(name, "vkCmdNextSubpass2KHR"))
4661 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004662 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004663 }
4664 if (!strcmp(name, "vkCmdEndRenderPass2KHR"))
4665 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004666 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004667 }
4668#endif
4669#ifdef VK_KHR_shared_presentable_image
4670 if (!strcmp(name, "vkGetSwapchainStatusKHR"))
4671 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004672 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004673 }
4674#endif
4675#ifdef VK_KHR_external_fence_capabilities
4676 if (!strcmp(name, "vkGetPhysicalDeviceExternalFencePropertiesKHR"))
4677 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004678 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004679 }
4680#endif
4681#ifdef VK_KHR_external_fence_win32
4682 if (!strcmp(name, "vkImportFenceWin32HandleKHR"))
4683 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004684 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004685 }
4686 if (!strcmp(name, "vkGetFenceWin32HandleKHR"))
4687 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004688 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004689 }
4690#endif
4691#ifdef VK_KHR_external_fence_fd
4692 if (!strcmp(name, "vkImportFenceFdKHR"))
4693 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004694 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004695 }
4696 if (!strcmp(name, "vkGetFenceFdKHR"))
4697 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004698 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004699 }
4700#endif
4701#ifdef VK_KHR_get_surface_capabilities2
4702 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2KHR"))
4703 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004704 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004705 }
4706 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceFormats2KHR"))
4707 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004708 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004709 }
4710#endif
4711#ifdef VK_KHR_get_display_properties2
4712 if (!strcmp(name, "vkGetPhysicalDeviceDisplayProperties2KHR"))
4713 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004714 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004715 }
4716 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR"))
4717 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004718 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004719 }
4720 if (!strcmp(name, "vkGetDisplayModeProperties2KHR"))
4721 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004722 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004723 }
4724 if (!strcmp(name, "vkGetDisplayPlaneCapabilities2KHR"))
4725 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004726 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004727 }
4728#endif
4729#ifdef VK_KHR_get_memory_requirements2
4730 if (!strcmp(name, "vkGetImageMemoryRequirements2KHR"))
4731 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004732 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004733 }
4734 if (!strcmp(name, "vkGetBufferMemoryRequirements2KHR"))
4735 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004736 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004737 }
4738 if (!strcmp(name, "vkGetImageSparseMemoryRequirements2KHR"))
4739 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004740 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004741 }
4742#endif
4743#ifdef VK_KHR_sampler_ycbcr_conversion
4744 if (!strcmp(name, "vkCreateSamplerYcbcrConversionKHR"))
4745 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004746 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004747 }
4748 if (!strcmp(name, "vkDestroySamplerYcbcrConversionKHR"))
4749 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004750 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004751 }
4752#endif
4753#ifdef VK_KHR_bind_memory2
4754 if (!strcmp(name, "vkBindBufferMemory2KHR"))
4755 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004756 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004757 }
4758 if (!strcmp(name, "vkBindImageMemory2KHR"))
4759 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004760 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004761 }
4762#endif
4763#ifdef VK_KHR_maintenance3
4764 if (!strcmp(name, "vkGetDescriptorSetLayoutSupportKHR"))
4765 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004766 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004767 }
4768#endif
4769#ifdef VK_KHR_draw_indirect_count
4770 if (!strcmp(name, "vkCmdDrawIndirectCountKHR"))
4771 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004772 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004773 }
4774 if (!strcmp(name, "vkCmdDrawIndexedIndirectCountKHR"))
4775 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004776 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004777 }
4778#endif
Lingfeng Yang808a6312018-11-13 21:06:15 -08004779#ifdef VK_ANDROID_native_buffer
4780 if (!strcmp(name, "vkGetSwapchainGrallocUsageANDROID"))
4781 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004782 return nullptr;
Lingfeng Yang808a6312018-11-13 21:06:15 -08004783 }
4784 if (!strcmp(name, "vkAcquireImageANDROID"))
4785 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004786 return nullptr;
Lingfeng Yang808a6312018-11-13 21:06:15 -08004787 }
4788 if (!strcmp(name, "vkQueueSignalReleaseImageANDROID"))
4789 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004790 return nullptr;
Lingfeng Yang808a6312018-11-13 21:06:15 -08004791 }
4792#endif
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004793#ifdef VK_EXT_debug_report
4794 if (!strcmp(name, "vkCreateDebugReportCallbackEXT"))
4795 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004796 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004797 }
4798 if (!strcmp(name, "vkDestroyDebugReportCallbackEXT"))
4799 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004800 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004801 }
4802 if (!strcmp(name, "vkDebugReportMessageEXT"))
4803 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004804 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004805 }
4806#endif
4807#ifdef VK_EXT_debug_marker
4808 if (!strcmp(name, "vkDebugMarkerSetObjectTagEXT"))
4809 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004810 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004811 }
4812 if (!strcmp(name, "vkDebugMarkerSetObjectNameEXT"))
4813 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004814 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004815 }
4816 if (!strcmp(name, "vkCmdDebugMarkerBeginEXT"))
4817 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004818 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004819 }
4820 if (!strcmp(name, "vkCmdDebugMarkerEndEXT"))
4821 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004822 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004823 }
4824 if (!strcmp(name, "vkCmdDebugMarkerInsertEXT"))
4825 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004826 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004827 }
4828#endif
4829#ifdef VK_AMD_draw_indirect_count
4830 if (!strcmp(name, "vkCmdDrawIndirectCountAMD"))
4831 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004832 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004833 }
4834 if (!strcmp(name, "vkCmdDrawIndexedIndirectCountAMD"))
4835 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004836 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004837 }
4838#endif
4839#ifdef VK_AMD_shader_info
4840 if (!strcmp(name, "vkGetShaderInfoAMD"))
4841 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004842 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004843 }
4844#endif
4845#ifdef VK_NV_external_memory_capabilities
4846 if (!strcmp(name, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV"))
4847 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004848 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004849 }
4850#endif
4851#ifdef VK_NV_external_memory_win32
4852 if (!strcmp(name, "vkGetMemoryWin32HandleNV"))
4853 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004854 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004855 }
4856#endif
4857#ifdef VK_NN_vi_surface
4858 if (!strcmp(name, "vkCreateViSurfaceNN"))
4859 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004860 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004861 }
4862#endif
4863#ifdef VK_EXT_conditional_rendering
4864 if (!strcmp(name, "vkCmdBeginConditionalRenderingEXT"))
4865 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004866 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004867 }
4868 if (!strcmp(name, "vkCmdEndConditionalRenderingEXT"))
4869 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004870 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004871 }
4872#endif
4873#ifdef VK_NVX_device_generated_commands
4874 if (!strcmp(name, "vkCmdProcessCommandsNVX"))
4875 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004876 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004877 }
4878 if (!strcmp(name, "vkCmdReserveSpaceForCommandsNVX"))
4879 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004880 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004881 }
4882 if (!strcmp(name, "vkCreateIndirectCommandsLayoutNVX"))
4883 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004884 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004885 }
4886 if (!strcmp(name, "vkDestroyIndirectCommandsLayoutNVX"))
4887 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004888 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004889 }
4890 if (!strcmp(name, "vkCreateObjectTableNVX"))
4891 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004892 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004893 }
4894 if (!strcmp(name, "vkDestroyObjectTableNVX"))
4895 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004896 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004897 }
4898 if (!strcmp(name, "vkRegisterObjectsNVX"))
4899 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004900 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004901 }
4902 if (!strcmp(name, "vkUnregisterObjectsNVX"))
4903 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004904 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004905 }
4906 if (!strcmp(name, "vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX"))
4907 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004908 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004909 }
4910#endif
4911#ifdef VK_NV_clip_space_w_scaling
4912 if (!strcmp(name, "vkCmdSetViewportWScalingNV"))
4913 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004914 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004915 }
4916#endif
4917#ifdef VK_EXT_direct_mode_display
4918 if (!strcmp(name, "vkReleaseDisplayEXT"))
4919 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004920 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004921 }
4922#endif
4923#ifdef VK_EXT_acquire_xlib_display
4924 if (!strcmp(name, "vkAcquireXlibDisplayEXT"))
4925 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004926 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004927 }
4928 if (!strcmp(name, "vkGetRandROutputDisplayEXT"))
4929 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004930 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004931 }
4932#endif
4933#ifdef VK_EXT_display_surface_counter
4934 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2EXT"))
4935 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004936 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004937 }
4938#endif
4939#ifdef VK_EXT_display_control
4940 if (!strcmp(name, "vkDisplayPowerControlEXT"))
4941 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004942 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004943 }
4944 if (!strcmp(name, "vkRegisterDeviceEventEXT"))
4945 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004946 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004947 }
4948 if (!strcmp(name, "vkRegisterDisplayEventEXT"))
4949 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004950 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004951 }
4952 if (!strcmp(name, "vkGetSwapchainCounterEXT"))
4953 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004954 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004955 }
4956#endif
4957#ifdef VK_GOOGLE_display_timing
4958 if (!strcmp(name, "vkGetRefreshCycleDurationGOOGLE"))
4959 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004960 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004961 }
4962 if (!strcmp(name, "vkGetPastPresentationTimingGOOGLE"))
4963 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004964 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004965 }
4966#endif
4967#ifdef VK_EXT_discard_rectangles
4968 if (!strcmp(name, "vkCmdSetDiscardRectangleEXT"))
4969 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004970 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004971 }
4972#endif
4973#ifdef VK_EXT_hdr_metadata
4974 if (!strcmp(name, "vkSetHdrMetadataEXT"))
4975 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004976 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004977 }
4978#endif
4979#ifdef VK_MVK_ios_surface
4980 if (!strcmp(name, "vkCreateIOSSurfaceMVK"))
4981 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004982 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004983 }
4984#endif
4985#ifdef VK_MVK_macos_surface
4986 if (!strcmp(name, "vkCreateMacOSSurfaceMVK"))
4987 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004988 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004989 }
4990#endif
4991#ifdef VK_EXT_debug_utils
4992 if (!strcmp(name, "vkSetDebugUtilsObjectNameEXT"))
4993 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004994 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004995 }
4996 if (!strcmp(name, "vkSetDebugUtilsObjectTagEXT"))
4997 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004998 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004999 }
5000 if (!strcmp(name, "vkQueueBeginDebugUtilsLabelEXT"))
5001 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005002 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005003 }
5004 if (!strcmp(name, "vkQueueEndDebugUtilsLabelEXT"))
5005 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005006 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005007 }
5008 if (!strcmp(name, "vkQueueInsertDebugUtilsLabelEXT"))
5009 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005010 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005011 }
5012 if (!strcmp(name, "vkCmdBeginDebugUtilsLabelEXT"))
5013 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005014 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005015 }
5016 if (!strcmp(name, "vkCmdEndDebugUtilsLabelEXT"))
5017 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005018 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005019 }
5020 if (!strcmp(name, "vkCmdInsertDebugUtilsLabelEXT"))
5021 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005022 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005023 }
5024 if (!strcmp(name, "vkCreateDebugUtilsMessengerEXT"))
5025 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005026 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005027 }
5028 if (!strcmp(name, "vkDestroyDebugUtilsMessengerEXT"))
5029 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005030 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005031 }
5032 if (!strcmp(name, "vkSubmitDebugUtilsMessageEXT"))
5033 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005034 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005035 }
5036#endif
5037#ifdef VK_ANDROID_external_memory_android_hardware_buffer
5038 if (!strcmp(name, "vkGetAndroidHardwareBufferPropertiesANDROID"))
5039 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005040 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005041 }
5042 if (!strcmp(name, "vkGetMemoryAndroidHardwareBufferANDROID"))
5043 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005044 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005045 }
5046#endif
5047#ifdef VK_EXT_sample_locations
5048 if (!strcmp(name, "vkCmdSetSampleLocationsEXT"))
5049 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005050 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005051 }
5052 if (!strcmp(name, "vkGetPhysicalDeviceMultisamplePropertiesEXT"))
5053 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005054 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005055 }
5056#endif
5057#ifdef VK_EXT_validation_cache
5058 if (!strcmp(name, "vkCreateValidationCacheEXT"))
5059 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005060 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005061 }
5062 if (!strcmp(name, "vkDestroyValidationCacheEXT"))
5063 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005064 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005065 }
5066 if (!strcmp(name, "vkMergeValidationCachesEXT"))
5067 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005068 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005069 }
5070 if (!strcmp(name, "vkGetValidationCacheDataEXT"))
5071 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005072 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005073 }
5074#endif
5075#ifdef VK_EXT_external_memory_host
5076 if (!strcmp(name, "vkGetMemoryHostPointerPropertiesEXT"))
5077 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005078 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005079 }
5080#endif
5081#ifdef VK_AMD_buffer_marker
5082 if (!strcmp(name, "vkCmdWriteBufferMarkerAMD"))
5083 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005084 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005085 }
5086#endif
5087#ifdef VK_NV_device_diagnostic_checkpoints
5088 if (!strcmp(name, "vkCmdSetCheckpointNV"))
5089 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005090 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005091 }
5092 if (!strcmp(name, "vkGetQueueCheckpointDataNV"))
5093 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005094 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005095 }
5096#endif
Lingfeng Yang5c63afd2018-12-22 01:21:14 -08005097#ifdef VK_GOOGLE_address_space
5098 if (!strcmp(name, "vkMapMemoryIntoAddressSpaceGOOGLE"))
5099 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005100 return nullptr;
5101 }
5102#endif
Lingfeng Yangae7e1b32019-02-19 14:07:39 -08005103#ifdef VK_GOOGLE_color_buffer
5104 if (!strcmp(name, "vkRegisterImageColorBufferGOOGLE"))
5105 {
5106 return nullptr;
5107 }
5108 if (!strcmp(name, "vkRegisterBufferColorBufferGOOGLE"))
5109 {
5110 return nullptr;
5111 }
5112#endif
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005113 return nullptr;
5114}
5115void* goldfish_vulkan_get_instance_proc_address(VkInstance instance, const char* name){
5116 auto resources = ResourceTracker::get();
5117 bool has1_1OrHigher = resources->getApiVersionFromInstance(instance) >= VK_API_VERSION_1_1;
5118#ifdef VK_VERSION_1_0
5119 if (!strcmp(name, "vkCreateInstance"))
5120 {
5121 return (void*)entry_vkCreateInstance;
5122 }
5123 if (!strcmp(name, "vkDestroyInstance"))
5124 {
5125 return (void*)entry_vkDestroyInstance;
5126 }
5127 if (!strcmp(name, "vkEnumeratePhysicalDevices"))
5128 {
5129 return (void*)entry_vkEnumeratePhysicalDevices;
5130 }
5131 if (!strcmp(name, "vkGetPhysicalDeviceFeatures"))
5132 {
5133 return (void*)entry_vkGetPhysicalDeviceFeatures;
5134 }
5135 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties"))
5136 {
5137 return (void*)entry_vkGetPhysicalDeviceFormatProperties;
5138 }
5139 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties"))
5140 {
5141 return (void*)entry_vkGetPhysicalDeviceImageFormatProperties;
5142 }
5143 if (!strcmp(name, "vkGetPhysicalDeviceProperties"))
5144 {
5145 return (void*)entry_vkGetPhysicalDeviceProperties;
5146 }
5147 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties"))
5148 {
5149 return (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties;
5150 }
5151 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties"))
5152 {
5153 return (void*)entry_vkGetPhysicalDeviceMemoryProperties;
5154 }
5155 if (!strcmp(name, "vkGetInstanceProcAddr"))
5156 {
5157 return (void*)entry_vkGetInstanceProcAddr;
5158 }
5159 if (!strcmp(name, "vkGetDeviceProcAddr"))
5160 {
5161 return (void*)entry_vkGetDeviceProcAddr;
5162 }
5163 if (!strcmp(name, "vkCreateDevice"))
5164 {
5165 return (void*)entry_vkCreateDevice;
5166 }
5167 if (!strcmp(name, "vkDestroyDevice"))
5168 {
5169 return (void*)entry_vkDestroyDevice;
5170 }
5171 if (!strcmp(name, "vkEnumerateInstanceExtensionProperties"))
5172 {
5173 return (void*)entry_vkEnumerateInstanceExtensionProperties;
5174 }
5175 if (!strcmp(name, "vkEnumerateDeviceExtensionProperties"))
5176 {
5177 return (void*)entry_vkEnumerateDeviceExtensionProperties;
5178 }
5179 if (!strcmp(name, "vkEnumerateInstanceLayerProperties"))
5180 {
5181 return (void*)entry_vkEnumerateInstanceLayerProperties;
5182 }
5183 if (!strcmp(name, "vkEnumerateDeviceLayerProperties"))
5184 {
5185 return (void*)entry_vkEnumerateDeviceLayerProperties;
5186 }
5187 if (!strcmp(name, "vkGetDeviceQueue"))
5188 {
5189 return (void*)entry_vkGetDeviceQueue;
5190 }
5191 if (!strcmp(name, "vkQueueSubmit"))
5192 {
5193 return (void*)entry_vkQueueSubmit;
5194 }
5195 if (!strcmp(name, "vkQueueWaitIdle"))
5196 {
5197 return (void*)entry_vkQueueWaitIdle;
5198 }
5199 if (!strcmp(name, "vkDeviceWaitIdle"))
5200 {
5201 return (void*)entry_vkDeviceWaitIdle;
5202 }
5203 if (!strcmp(name, "vkAllocateMemory"))
5204 {
5205 return (void*)entry_vkAllocateMemory;
5206 }
5207 if (!strcmp(name, "vkFreeMemory"))
5208 {
5209 return (void*)entry_vkFreeMemory;
5210 }
5211 if (!strcmp(name, "vkMapMemory"))
5212 {
5213 return (void*)entry_vkMapMemory;
5214 }
5215 if (!strcmp(name, "vkUnmapMemory"))
5216 {
5217 return (void*)entry_vkUnmapMemory;
5218 }
5219 if (!strcmp(name, "vkFlushMappedMemoryRanges"))
5220 {
5221 return (void*)entry_vkFlushMappedMemoryRanges;
5222 }
5223 if (!strcmp(name, "vkInvalidateMappedMemoryRanges"))
5224 {
5225 return (void*)entry_vkInvalidateMappedMemoryRanges;
5226 }
5227 if (!strcmp(name, "vkGetDeviceMemoryCommitment"))
5228 {
5229 return (void*)entry_vkGetDeviceMemoryCommitment;
5230 }
5231 if (!strcmp(name, "vkBindBufferMemory"))
5232 {
5233 return (void*)entry_vkBindBufferMemory;
5234 }
5235 if (!strcmp(name, "vkBindImageMemory"))
5236 {
5237 return (void*)entry_vkBindImageMemory;
5238 }
5239 if (!strcmp(name, "vkGetBufferMemoryRequirements"))
5240 {
5241 return (void*)entry_vkGetBufferMemoryRequirements;
5242 }
5243 if (!strcmp(name, "vkGetImageMemoryRequirements"))
5244 {
5245 return (void*)entry_vkGetImageMemoryRequirements;
5246 }
5247 if (!strcmp(name, "vkGetImageSparseMemoryRequirements"))
5248 {
5249 return (void*)entry_vkGetImageSparseMemoryRequirements;
5250 }
5251 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties"))
5252 {
5253 return (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties;
5254 }
5255 if (!strcmp(name, "vkQueueBindSparse"))
5256 {
5257 return (void*)entry_vkQueueBindSparse;
5258 }
5259 if (!strcmp(name, "vkCreateFence"))
5260 {
5261 return (void*)entry_vkCreateFence;
5262 }
5263 if (!strcmp(name, "vkDestroyFence"))
5264 {
5265 return (void*)entry_vkDestroyFence;
5266 }
5267 if (!strcmp(name, "vkResetFences"))
5268 {
5269 return (void*)entry_vkResetFences;
5270 }
5271 if (!strcmp(name, "vkGetFenceStatus"))
5272 {
5273 return (void*)entry_vkGetFenceStatus;
5274 }
5275 if (!strcmp(name, "vkWaitForFences"))
5276 {
5277 return (void*)entry_vkWaitForFences;
5278 }
5279 if (!strcmp(name, "vkCreateSemaphore"))
5280 {
5281 return (void*)entry_vkCreateSemaphore;
5282 }
5283 if (!strcmp(name, "vkDestroySemaphore"))
5284 {
5285 return (void*)entry_vkDestroySemaphore;
5286 }
5287 if (!strcmp(name, "vkCreateEvent"))
5288 {
5289 return (void*)entry_vkCreateEvent;
5290 }
5291 if (!strcmp(name, "vkDestroyEvent"))
5292 {
5293 return (void*)entry_vkDestroyEvent;
5294 }
5295 if (!strcmp(name, "vkGetEventStatus"))
5296 {
5297 return (void*)entry_vkGetEventStatus;
5298 }
5299 if (!strcmp(name, "vkSetEvent"))
5300 {
5301 return (void*)entry_vkSetEvent;
5302 }
5303 if (!strcmp(name, "vkResetEvent"))
5304 {
5305 return (void*)entry_vkResetEvent;
5306 }
5307 if (!strcmp(name, "vkCreateQueryPool"))
5308 {
5309 return (void*)entry_vkCreateQueryPool;
5310 }
5311 if (!strcmp(name, "vkDestroyQueryPool"))
5312 {
5313 return (void*)entry_vkDestroyQueryPool;
5314 }
5315 if (!strcmp(name, "vkGetQueryPoolResults"))
5316 {
5317 return (void*)entry_vkGetQueryPoolResults;
5318 }
5319 if (!strcmp(name, "vkCreateBuffer"))
5320 {
5321 return (void*)entry_vkCreateBuffer;
5322 }
5323 if (!strcmp(name, "vkDestroyBuffer"))
5324 {
5325 return (void*)entry_vkDestroyBuffer;
5326 }
5327 if (!strcmp(name, "vkCreateBufferView"))
5328 {
5329 return (void*)entry_vkCreateBufferView;
5330 }
5331 if (!strcmp(name, "vkDestroyBufferView"))
5332 {
5333 return (void*)entry_vkDestroyBufferView;
5334 }
5335 if (!strcmp(name, "vkCreateImage"))
5336 {
5337 return (void*)entry_vkCreateImage;
5338 }
5339 if (!strcmp(name, "vkDestroyImage"))
5340 {
5341 return (void*)entry_vkDestroyImage;
5342 }
5343 if (!strcmp(name, "vkGetImageSubresourceLayout"))
5344 {
5345 return (void*)entry_vkGetImageSubresourceLayout;
5346 }
5347 if (!strcmp(name, "vkCreateImageView"))
5348 {
5349 return (void*)entry_vkCreateImageView;
5350 }
5351 if (!strcmp(name, "vkDestroyImageView"))
5352 {
5353 return (void*)entry_vkDestroyImageView;
5354 }
5355 if (!strcmp(name, "vkCreateShaderModule"))
5356 {
5357 return (void*)entry_vkCreateShaderModule;
5358 }
5359 if (!strcmp(name, "vkDestroyShaderModule"))
5360 {
5361 return (void*)entry_vkDestroyShaderModule;
5362 }
5363 if (!strcmp(name, "vkCreatePipelineCache"))
5364 {
5365 return (void*)entry_vkCreatePipelineCache;
5366 }
5367 if (!strcmp(name, "vkDestroyPipelineCache"))
5368 {
5369 return (void*)entry_vkDestroyPipelineCache;
5370 }
5371 if (!strcmp(name, "vkGetPipelineCacheData"))
5372 {
5373 return (void*)entry_vkGetPipelineCacheData;
5374 }
5375 if (!strcmp(name, "vkMergePipelineCaches"))
5376 {
5377 return (void*)entry_vkMergePipelineCaches;
5378 }
5379 if (!strcmp(name, "vkCreateGraphicsPipelines"))
5380 {
5381 return (void*)entry_vkCreateGraphicsPipelines;
5382 }
5383 if (!strcmp(name, "vkCreateComputePipelines"))
5384 {
5385 return (void*)entry_vkCreateComputePipelines;
5386 }
5387 if (!strcmp(name, "vkDestroyPipeline"))
5388 {
5389 return (void*)entry_vkDestroyPipeline;
5390 }
5391 if (!strcmp(name, "vkCreatePipelineLayout"))
5392 {
5393 return (void*)entry_vkCreatePipelineLayout;
5394 }
5395 if (!strcmp(name, "vkDestroyPipelineLayout"))
5396 {
5397 return (void*)entry_vkDestroyPipelineLayout;
5398 }
5399 if (!strcmp(name, "vkCreateSampler"))
5400 {
5401 return (void*)entry_vkCreateSampler;
5402 }
5403 if (!strcmp(name, "vkDestroySampler"))
5404 {
5405 return (void*)entry_vkDestroySampler;
5406 }
5407 if (!strcmp(name, "vkCreateDescriptorSetLayout"))
5408 {
5409 return (void*)entry_vkCreateDescriptorSetLayout;
5410 }
5411 if (!strcmp(name, "vkDestroyDescriptorSetLayout"))
5412 {
5413 return (void*)entry_vkDestroyDescriptorSetLayout;
5414 }
5415 if (!strcmp(name, "vkCreateDescriptorPool"))
5416 {
5417 return (void*)entry_vkCreateDescriptorPool;
5418 }
5419 if (!strcmp(name, "vkDestroyDescriptorPool"))
5420 {
5421 return (void*)entry_vkDestroyDescriptorPool;
5422 }
5423 if (!strcmp(name, "vkResetDescriptorPool"))
5424 {
5425 return (void*)entry_vkResetDescriptorPool;
5426 }
5427 if (!strcmp(name, "vkAllocateDescriptorSets"))
5428 {
5429 return (void*)entry_vkAllocateDescriptorSets;
5430 }
5431 if (!strcmp(name, "vkFreeDescriptorSets"))
5432 {
5433 return (void*)entry_vkFreeDescriptorSets;
5434 }
5435 if (!strcmp(name, "vkUpdateDescriptorSets"))
5436 {
5437 return (void*)entry_vkUpdateDescriptorSets;
5438 }
5439 if (!strcmp(name, "vkCreateFramebuffer"))
5440 {
5441 return (void*)entry_vkCreateFramebuffer;
5442 }
5443 if (!strcmp(name, "vkDestroyFramebuffer"))
5444 {
5445 return (void*)entry_vkDestroyFramebuffer;
5446 }
5447 if (!strcmp(name, "vkCreateRenderPass"))
5448 {
5449 return (void*)entry_vkCreateRenderPass;
5450 }
5451 if (!strcmp(name, "vkDestroyRenderPass"))
5452 {
5453 return (void*)entry_vkDestroyRenderPass;
5454 }
5455 if (!strcmp(name, "vkGetRenderAreaGranularity"))
5456 {
5457 return (void*)entry_vkGetRenderAreaGranularity;
5458 }
5459 if (!strcmp(name, "vkCreateCommandPool"))
5460 {
5461 return (void*)entry_vkCreateCommandPool;
5462 }
5463 if (!strcmp(name, "vkDestroyCommandPool"))
5464 {
5465 return (void*)entry_vkDestroyCommandPool;
5466 }
5467 if (!strcmp(name, "vkResetCommandPool"))
5468 {
5469 return (void*)entry_vkResetCommandPool;
5470 }
5471 if (!strcmp(name, "vkAllocateCommandBuffers"))
5472 {
5473 return (void*)entry_vkAllocateCommandBuffers;
5474 }
5475 if (!strcmp(name, "vkFreeCommandBuffers"))
5476 {
5477 return (void*)entry_vkFreeCommandBuffers;
5478 }
5479 if (!strcmp(name, "vkBeginCommandBuffer"))
5480 {
5481 return (void*)entry_vkBeginCommandBuffer;
5482 }
5483 if (!strcmp(name, "vkEndCommandBuffer"))
5484 {
5485 return (void*)entry_vkEndCommandBuffer;
5486 }
5487 if (!strcmp(name, "vkResetCommandBuffer"))
5488 {
5489 return (void*)entry_vkResetCommandBuffer;
5490 }
5491 if (!strcmp(name, "vkCmdBindPipeline"))
5492 {
5493 return (void*)entry_vkCmdBindPipeline;
5494 }
5495 if (!strcmp(name, "vkCmdSetViewport"))
5496 {
5497 return (void*)entry_vkCmdSetViewport;
5498 }
5499 if (!strcmp(name, "vkCmdSetScissor"))
5500 {
5501 return (void*)entry_vkCmdSetScissor;
5502 }
5503 if (!strcmp(name, "vkCmdSetLineWidth"))
5504 {
5505 return (void*)entry_vkCmdSetLineWidth;
5506 }
5507 if (!strcmp(name, "vkCmdSetDepthBias"))
5508 {
5509 return (void*)entry_vkCmdSetDepthBias;
5510 }
5511 if (!strcmp(name, "vkCmdSetBlendConstants"))
5512 {
5513 return (void*)entry_vkCmdSetBlendConstants;
5514 }
5515 if (!strcmp(name, "vkCmdSetDepthBounds"))
5516 {
5517 return (void*)entry_vkCmdSetDepthBounds;
5518 }
5519 if (!strcmp(name, "vkCmdSetStencilCompareMask"))
5520 {
5521 return (void*)entry_vkCmdSetStencilCompareMask;
5522 }
5523 if (!strcmp(name, "vkCmdSetStencilWriteMask"))
5524 {
5525 return (void*)entry_vkCmdSetStencilWriteMask;
5526 }
5527 if (!strcmp(name, "vkCmdSetStencilReference"))
5528 {
5529 return (void*)entry_vkCmdSetStencilReference;
5530 }
5531 if (!strcmp(name, "vkCmdBindDescriptorSets"))
5532 {
5533 return (void*)entry_vkCmdBindDescriptorSets;
5534 }
5535 if (!strcmp(name, "vkCmdBindIndexBuffer"))
5536 {
5537 return (void*)entry_vkCmdBindIndexBuffer;
5538 }
5539 if (!strcmp(name, "vkCmdBindVertexBuffers"))
5540 {
5541 return (void*)entry_vkCmdBindVertexBuffers;
5542 }
5543 if (!strcmp(name, "vkCmdDraw"))
5544 {
5545 return (void*)entry_vkCmdDraw;
5546 }
5547 if (!strcmp(name, "vkCmdDrawIndexed"))
5548 {
5549 return (void*)entry_vkCmdDrawIndexed;
5550 }
5551 if (!strcmp(name, "vkCmdDrawIndirect"))
5552 {
5553 return (void*)entry_vkCmdDrawIndirect;
5554 }
5555 if (!strcmp(name, "vkCmdDrawIndexedIndirect"))
5556 {
5557 return (void*)entry_vkCmdDrawIndexedIndirect;
5558 }
5559 if (!strcmp(name, "vkCmdDispatch"))
5560 {
5561 return (void*)entry_vkCmdDispatch;
5562 }
5563 if (!strcmp(name, "vkCmdDispatchIndirect"))
5564 {
5565 return (void*)entry_vkCmdDispatchIndirect;
5566 }
5567 if (!strcmp(name, "vkCmdCopyBuffer"))
5568 {
5569 return (void*)entry_vkCmdCopyBuffer;
5570 }
5571 if (!strcmp(name, "vkCmdCopyImage"))
5572 {
5573 return (void*)entry_vkCmdCopyImage;
5574 }
5575 if (!strcmp(name, "vkCmdBlitImage"))
5576 {
5577 return (void*)entry_vkCmdBlitImage;
5578 }
5579 if (!strcmp(name, "vkCmdCopyBufferToImage"))
5580 {
5581 return (void*)entry_vkCmdCopyBufferToImage;
5582 }
5583 if (!strcmp(name, "vkCmdCopyImageToBuffer"))
5584 {
5585 return (void*)entry_vkCmdCopyImageToBuffer;
5586 }
5587 if (!strcmp(name, "vkCmdUpdateBuffer"))
5588 {
5589 return (void*)entry_vkCmdUpdateBuffer;
5590 }
5591 if (!strcmp(name, "vkCmdFillBuffer"))
5592 {
5593 return (void*)entry_vkCmdFillBuffer;
5594 }
5595 if (!strcmp(name, "vkCmdClearColorImage"))
5596 {
5597 return (void*)entry_vkCmdClearColorImage;
5598 }
5599 if (!strcmp(name, "vkCmdClearDepthStencilImage"))
5600 {
5601 return (void*)entry_vkCmdClearDepthStencilImage;
5602 }
5603 if (!strcmp(name, "vkCmdClearAttachments"))
5604 {
5605 return (void*)entry_vkCmdClearAttachments;
5606 }
5607 if (!strcmp(name, "vkCmdResolveImage"))
5608 {
5609 return (void*)entry_vkCmdResolveImage;
5610 }
5611 if (!strcmp(name, "vkCmdSetEvent"))
5612 {
5613 return (void*)entry_vkCmdSetEvent;
5614 }
5615 if (!strcmp(name, "vkCmdResetEvent"))
5616 {
5617 return (void*)entry_vkCmdResetEvent;
5618 }
5619 if (!strcmp(name, "vkCmdWaitEvents"))
5620 {
5621 return (void*)entry_vkCmdWaitEvents;
5622 }
5623 if (!strcmp(name, "vkCmdPipelineBarrier"))
5624 {
5625 return (void*)entry_vkCmdPipelineBarrier;
5626 }
5627 if (!strcmp(name, "vkCmdBeginQuery"))
5628 {
5629 return (void*)entry_vkCmdBeginQuery;
5630 }
5631 if (!strcmp(name, "vkCmdEndQuery"))
5632 {
5633 return (void*)entry_vkCmdEndQuery;
5634 }
5635 if (!strcmp(name, "vkCmdResetQueryPool"))
5636 {
5637 return (void*)entry_vkCmdResetQueryPool;
5638 }
5639 if (!strcmp(name, "vkCmdWriteTimestamp"))
5640 {
5641 return (void*)entry_vkCmdWriteTimestamp;
5642 }
5643 if (!strcmp(name, "vkCmdCopyQueryPoolResults"))
5644 {
5645 return (void*)entry_vkCmdCopyQueryPoolResults;
5646 }
5647 if (!strcmp(name, "vkCmdPushConstants"))
5648 {
5649 return (void*)entry_vkCmdPushConstants;
5650 }
5651 if (!strcmp(name, "vkCmdBeginRenderPass"))
5652 {
5653 return (void*)entry_vkCmdBeginRenderPass;
5654 }
5655 if (!strcmp(name, "vkCmdNextSubpass"))
5656 {
5657 return (void*)entry_vkCmdNextSubpass;
5658 }
5659 if (!strcmp(name, "vkCmdEndRenderPass"))
5660 {
5661 return (void*)entry_vkCmdEndRenderPass;
5662 }
5663 if (!strcmp(name, "vkCmdExecuteCommands"))
5664 {
5665 return (void*)entry_vkCmdExecuteCommands;
5666 }
5667#endif
5668#ifdef VK_VERSION_1_1
5669 if (!strcmp(name, "vkEnumerateInstanceVersion"))
5670 {
5671 return has1_1OrHigher ? (void*)entry_vkEnumerateInstanceVersion : nullptr;
5672 }
5673 if (!strcmp(name, "vkBindBufferMemory2"))
5674 {
5675 return has1_1OrHigher ? (void*)entry_vkBindBufferMemory2 : nullptr;
5676 }
5677 if (!strcmp(name, "vkBindImageMemory2"))
5678 {
5679 return has1_1OrHigher ? (void*)entry_vkBindImageMemory2 : nullptr;
5680 }
5681 if (!strcmp(name, "vkGetDeviceGroupPeerMemoryFeatures"))
5682 {
5683 return has1_1OrHigher ? (void*)entry_vkGetDeviceGroupPeerMemoryFeatures : nullptr;
5684 }
5685 if (!strcmp(name, "vkCmdSetDeviceMask"))
5686 {
5687 return has1_1OrHigher ? (void*)entry_vkCmdSetDeviceMask : nullptr;
5688 }
5689 if (!strcmp(name, "vkCmdDispatchBase"))
5690 {
5691 return has1_1OrHigher ? (void*)entry_vkCmdDispatchBase : nullptr;
5692 }
5693 if (!strcmp(name, "vkEnumeratePhysicalDeviceGroups"))
5694 {
5695 return nullptr;
5696 }
5697 if (!strcmp(name, "vkGetImageMemoryRequirements2"))
5698 {
5699 return has1_1OrHigher ? (void*)entry_vkGetImageMemoryRequirements2 : nullptr;
5700 }
5701 if (!strcmp(name, "vkGetBufferMemoryRequirements2"))
5702 {
5703 return has1_1OrHigher ? (void*)entry_vkGetBufferMemoryRequirements2 : nullptr;
5704 }
5705 if (!strcmp(name, "vkGetImageSparseMemoryRequirements2"))
5706 {
5707 return has1_1OrHigher ? (void*)entry_vkGetImageSparseMemoryRequirements2 : nullptr;
5708 }
5709 if (!strcmp(name, "vkGetPhysicalDeviceFeatures2"))
5710 {
5711 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceFeatures2 : nullptr;
5712 }
5713 if (!strcmp(name, "vkGetPhysicalDeviceProperties2"))
5714 {
5715 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceProperties2 : nullptr;
5716 }
5717 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties2"))
5718 {
5719 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceFormatProperties2 : nullptr;
5720 }
5721 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties2"))
5722 {
5723 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceImageFormatProperties2 : nullptr;
5724 }
5725 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties2"))
5726 {
5727 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties2 : nullptr;
5728 }
5729 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties2"))
5730 {
5731 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceMemoryProperties2 : nullptr;
5732 }
5733 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties2"))
5734 {
5735 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties2 : nullptr;
5736 }
5737 if (!strcmp(name, "vkTrimCommandPool"))
5738 {
5739 return has1_1OrHigher ? (void*)entry_vkTrimCommandPool : nullptr;
5740 }
5741 if (!strcmp(name, "vkGetDeviceQueue2"))
5742 {
5743 return has1_1OrHigher ? (void*)entry_vkGetDeviceQueue2 : nullptr;
5744 }
5745 if (!strcmp(name, "vkCreateSamplerYcbcrConversion"))
5746 {
5747 return has1_1OrHigher ? (void*)entry_vkCreateSamplerYcbcrConversion : nullptr;
5748 }
5749 if (!strcmp(name, "vkDestroySamplerYcbcrConversion"))
5750 {
5751 return has1_1OrHigher ? (void*)entry_vkDestroySamplerYcbcrConversion : nullptr;
5752 }
5753 if (!strcmp(name, "vkCreateDescriptorUpdateTemplate"))
5754 {
5755 return has1_1OrHigher ? (void*)entry_vkCreateDescriptorUpdateTemplate : nullptr;
5756 }
5757 if (!strcmp(name, "vkDestroyDescriptorUpdateTemplate"))
5758 {
5759 return has1_1OrHigher ? (void*)entry_vkDestroyDescriptorUpdateTemplate : nullptr;
5760 }
5761 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplate"))
5762 {
5763 return has1_1OrHigher ? (void*)entry_vkUpdateDescriptorSetWithTemplate : nullptr;
5764 }
5765 if (!strcmp(name, "vkGetPhysicalDeviceExternalBufferProperties"))
5766 {
5767 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceExternalBufferProperties : nullptr;
5768 }
5769 if (!strcmp(name, "vkGetPhysicalDeviceExternalFenceProperties"))
5770 {
5771 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceExternalFenceProperties : nullptr;
5772 }
5773 if (!strcmp(name, "vkGetPhysicalDeviceExternalSemaphoreProperties"))
5774 {
5775 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceExternalSemaphoreProperties : nullptr;
5776 }
5777 if (!strcmp(name, "vkGetDescriptorSetLayoutSupport"))
5778 {
5779 return has1_1OrHigher ? (void*)entry_vkGetDescriptorSetLayoutSupport : nullptr;
5780 }
5781#endif
5782#ifdef VK_KHR_surface
5783 if (!strcmp(name, "vkDestroySurfaceKHR"))
5784 {
5785 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_surface");
5786 return hasExt ? (void*)entry_vkDestroySurfaceKHR : nullptr;
5787 }
5788 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceSupportKHR"))
5789 {
5790 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_surface");
5791 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceSupportKHR : nullptr;
5792 }
5793 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR"))
5794 {
5795 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_surface");
5796 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceCapabilitiesKHR : nullptr;
5797 }
5798 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceFormatsKHR"))
5799 {
5800 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_surface");
5801 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceFormatsKHR : nullptr;
5802 }
5803 if (!strcmp(name, "vkGetPhysicalDeviceSurfacePresentModesKHR"))
5804 {
5805 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_surface");
5806 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfacePresentModesKHR : nullptr;
5807 }
5808#endif
5809#ifdef VK_KHR_swapchain
5810 if (!strcmp(name, "vkCreateSwapchainKHR"))
5811 {
5812 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5813 return hasExt ? (void*)entry_vkCreateSwapchainKHR : nullptr;
5814 }
5815 if (!strcmp(name, "vkDestroySwapchainKHR"))
5816 {
5817 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5818 return hasExt ? (void*)entry_vkDestroySwapchainKHR : nullptr;
5819 }
5820 if (!strcmp(name, "vkGetSwapchainImagesKHR"))
5821 {
5822 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5823 return hasExt ? (void*)entry_vkGetSwapchainImagesKHR : nullptr;
5824 }
5825 if (!strcmp(name, "vkAcquireNextImageKHR"))
5826 {
5827 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5828 return hasExt ? (void*)entry_vkAcquireNextImageKHR : nullptr;
5829 }
5830 if (!strcmp(name, "vkQueuePresentKHR"))
5831 {
5832 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5833 return hasExt ? (void*)entry_vkQueuePresentKHR : nullptr;
5834 }
5835 if (!strcmp(name, "vkGetDeviceGroupPresentCapabilitiesKHR"))
5836 {
5837 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5838 return hasExt ? (void*)entry_vkGetDeviceGroupPresentCapabilitiesKHR : nullptr;
5839 }
5840 if (!strcmp(name, "vkGetDeviceGroupSurfacePresentModesKHR"))
5841 {
5842 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5843 return hasExt ? (void*)entry_vkGetDeviceGroupSurfacePresentModesKHR : nullptr;
5844 }
5845 if (!strcmp(name, "vkGetPhysicalDevicePresentRectanglesKHR"))
5846 {
5847 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5848 return hasExt ? (void*)entry_vkGetPhysicalDevicePresentRectanglesKHR : nullptr;
5849 }
5850 if (!strcmp(name, "vkAcquireNextImage2KHR"))
5851 {
5852 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5853 return hasExt ? (void*)entry_vkAcquireNextImage2KHR : nullptr;
5854 }
5855#endif
5856#ifdef VK_KHR_display
5857 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPropertiesKHR"))
5858 {
5859 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
5860 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayPropertiesKHR : nullptr;
5861 }
5862 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR"))
5863 {
5864 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
5865 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayPlanePropertiesKHR : nullptr;
5866 }
5867 if (!strcmp(name, "vkGetDisplayPlaneSupportedDisplaysKHR"))
5868 {
5869 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
5870 return hasExt ? (void*)entry_vkGetDisplayPlaneSupportedDisplaysKHR : nullptr;
5871 }
5872 if (!strcmp(name, "vkGetDisplayModePropertiesKHR"))
5873 {
5874 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
5875 return hasExt ? (void*)entry_vkGetDisplayModePropertiesKHR : nullptr;
5876 }
5877 if (!strcmp(name, "vkCreateDisplayModeKHR"))
5878 {
5879 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
5880 return hasExt ? (void*)entry_vkCreateDisplayModeKHR : nullptr;
5881 }
5882 if (!strcmp(name, "vkGetDisplayPlaneCapabilitiesKHR"))
5883 {
5884 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
5885 return hasExt ? (void*)entry_vkGetDisplayPlaneCapabilitiesKHR : nullptr;
5886 }
5887 if (!strcmp(name, "vkCreateDisplayPlaneSurfaceKHR"))
5888 {
5889 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
5890 return hasExt ? (void*)entry_vkCreateDisplayPlaneSurfaceKHR : nullptr;
5891 }
5892#endif
5893#ifdef VK_KHR_display_swapchain
5894 if (!strcmp(name, "vkCreateSharedSwapchainsKHR"))
5895 {
5896 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display_swapchain");
5897 return hasExt ? (void*)entry_vkCreateSharedSwapchainsKHR : nullptr;
5898 }
5899#endif
5900#ifdef VK_KHR_xlib_surface
5901 if (!strcmp(name, "vkCreateXlibSurfaceKHR"))
5902 {
5903 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_xlib_surface");
5904 return hasExt ? (void*)entry_vkCreateXlibSurfaceKHR : nullptr;
5905 }
5906 if (!strcmp(name, "vkGetPhysicalDeviceXlibPresentationSupportKHR"))
5907 {
5908 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_xlib_surface");
5909 return hasExt ? (void*)entry_vkGetPhysicalDeviceXlibPresentationSupportKHR : nullptr;
5910 }
5911#endif
5912#ifdef VK_KHR_xcb_surface
5913 if (!strcmp(name, "vkCreateXcbSurfaceKHR"))
5914 {
5915 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_xcb_surface");
5916 return hasExt ? (void*)entry_vkCreateXcbSurfaceKHR : nullptr;
5917 }
5918 if (!strcmp(name, "vkGetPhysicalDeviceXcbPresentationSupportKHR"))
5919 {
5920 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_xcb_surface");
5921 return hasExt ? (void*)entry_vkGetPhysicalDeviceXcbPresentationSupportKHR : nullptr;
5922 }
5923#endif
5924#ifdef VK_KHR_wayland_surface
5925 if (!strcmp(name, "vkCreateWaylandSurfaceKHR"))
5926 {
5927 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_wayland_surface");
5928 return hasExt ? (void*)entry_vkCreateWaylandSurfaceKHR : nullptr;
5929 }
5930 if (!strcmp(name, "vkGetPhysicalDeviceWaylandPresentationSupportKHR"))
5931 {
5932 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_wayland_surface");
5933 return hasExt ? (void*)entry_vkGetPhysicalDeviceWaylandPresentationSupportKHR : nullptr;
5934 }
5935#endif
5936#ifdef VK_KHR_mir_surface
5937 if (!strcmp(name, "vkCreateMirSurfaceKHR"))
5938 {
5939 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_mir_surface");
5940 return hasExt ? (void*)entry_vkCreateMirSurfaceKHR : nullptr;
5941 }
5942 if (!strcmp(name, "vkGetPhysicalDeviceMirPresentationSupportKHR"))
5943 {
5944 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_mir_surface");
5945 return hasExt ? (void*)entry_vkGetPhysicalDeviceMirPresentationSupportKHR : nullptr;
5946 }
5947#endif
5948#ifdef VK_KHR_android_surface
5949 if (!strcmp(name, "vkCreateAndroidSurfaceKHR"))
5950 {
5951 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_android_surface");
5952 return hasExt ? (void*)entry_vkCreateAndroidSurfaceKHR : nullptr;
5953 }
5954#endif
5955#ifdef VK_KHR_win32_surface
5956 if (!strcmp(name, "vkCreateWin32SurfaceKHR"))
5957 {
5958 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_win32_surface");
5959 return hasExt ? (void*)entry_vkCreateWin32SurfaceKHR : nullptr;
5960 }
5961 if (!strcmp(name, "vkGetPhysicalDeviceWin32PresentationSupportKHR"))
5962 {
5963 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_win32_surface");
5964 return hasExt ? (void*)entry_vkGetPhysicalDeviceWin32PresentationSupportKHR : nullptr;
5965 }
5966#endif
5967#ifdef VK_KHR_get_physical_device_properties2
5968 if (!strcmp(name, "vkGetPhysicalDeviceFeatures2KHR"))
5969 {
5970 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
5971 return hasExt ? (void*)entry_vkGetPhysicalDeviceFeatures2KHR : nullptr;
5972 }
5973 if (!strcmp(name, "vkGetPhysicalDeviceProperties2KHR"))
5974 {
5975 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
5976 return hasExt ? (void*)entry_vkGetPhysicalDeviceProperties2KHR : nullptr;
5977 }
5978 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties2KHR"))
5979 {
5980 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
5981 return hasExt ? (void*)entry_vkGetPhysicalDeviceFormatProperties2KHR : nullptr;
5982 }
5983 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties2KHR"))
5984 {
5985 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
5986 return hasExt ? (void*)entry_vkGetPhysicalDeviceImageFormatProperties2KHR : nullptr;
5987 }
5988 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties2KHR"))
5989 {
5990 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
5991 return hasExt ? (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties2KHR : nullptr;
5992 }
5993 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties2KHR"))
5994 {
5995 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
5996 return hasExt ? (void*)entry_vkGetPhysicalDeviceMemoryProperties2KHR : nullptr;
5997 }
5998 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR"))
5999 {
6000 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
6001 return hasExt ? (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties2KHR : nullptr;
6002 }
6003#endif
6004#ifdef VK_KHR_device_group
6005 if (!strcmp(name, "vkGetDeviceGroupPeerMemoryFeaturesKHR"))
6006 {
6007 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_device_group");
6008 return hasExt ? (void*)entry_vkGetDeviceGroupPeerMemoryFeaturesKHR : nullptr;
6009 }
6010 if (!strcmp(name, "vkCmdSetDeviceMaskKHR"))
6011 {
6012 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_device_group");
6013 return hasExt ? (void*)entry_vkCmdSetDeviceMaskKHR : nullptr;
6014 }
6015 if (!strcmp(name, "vkCmdDispatchBaseKHR"))
6016 {
6017 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_device_group");
6018 return hasExt ? (void*)entry_vkCmdDispatchBaseKHR : nullptr;
6019 }
6020#endif
6021#ifdef VK_KHR_maintenance1
6022 if (!strcmp(name, "vkTrimCommandPoolKHR"))
6023 {
6024 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_maintenance1");
6025 return hasExt ? (void*)entry_vkTrimCommandPoolKHR : nullptr;
6026 }
6027#endif
6028#ifdef VK_KHR_device_group_creation
6029 if (!strcmp(name, "vkEnumeratePhysicalDeviceGroupsKHR"))
6030 {
6031 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_device_group_creation");
6032 return hasExt ? (void*)entry_vkEnumeratePhysicalDeviceGroupsKHR : nullptr;
6033 }
6034#endif
6035#ifdef VK_KHR_external_memory_capabilities
6036 if (!strcmp(name, "vkGetPhysicalDeviceExternalBufferPropertiesKHR"))
6037 {
6038 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_memory_capabilities");
6039 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalBufferPropertiesKHR : nullptr;
6040 }
6041#endif
6042#ifdef VK_KHR_external_memory_win32
6043 if (!strcmp(name, "vkGetMemoryWin32HandleKHR"))
6044 {
6045 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_memory_win32");
6046 return hasExt ? (void*)entry_vkGetMemoryWin32HandleKHR : nullptr;
6047 }
6048 if (!strcmp(name, "vkGetMemoryWin32HandlePropertiesKHR"))
6049 {
6050 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_memory_win32");
6051 return hasExt ? (void*)entry_vkGetMemoryWin32HandlePropertiesKHR : nullptr;
6052 }
6053#endif
6054#ifdef VK_KHR_external_memory_fd
6055 if (!strcmp(name, "vkGetMemoryFdKHR"))
6056 {
6057 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_memory_fd");
6058 return hasExt ? (void*)entry_vkGetMemoryFdKHR : nullptr;
6059 }
6060 if (!strcmp(name, "vkGetMemoryFdPropertiesKHR"))
6061 {
6062 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_memory_fd");
6063 return hasExt ? (void*)entry_vkGetMemoryFdPropertiesKHR : nullptr;
6064 }
6065#endif
6066#ifdef VK_KHR_external_semaphore_capabilities
6067 if (!strcmp(name, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR"))
6068 {
6069 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_semaphore_capabilities");
6070 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR : nullptr;
6071 }
6072#endif
6073#ifdef VK_KHR_external_semaphore_win32
6074 if (!strcmp(name, "vkImportSemaphoreWin32HandleKHR"))
6075 {
6076 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_semaphore_win32");
6077 return hasExt ? (void*)entry_vkImportSemaphoreWin32HandleKHR : nullptr;
6078 }
6079 if (!strcmp(name, "vkGetSemaphoreWin32HandleKHR"))
6080 {
6081 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_semaphore_win32");
6082 return hasExt ? (void*)entry_vkGetSemaphoreWin32HandleKHR : nullptr;
6083 }
6084#endif
6085#ifdef VK_KHR_external_semaphore_fd
6086 if (!strcmp(name, "vkImportSemaphoreFdKHR"))
6087 {
6088 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_semaphore_fd");
6089 return hasExt ? (void*)entry_vkImportSemaphoreFdKHR : nullptr;
6090 }
6091 if (!strcmp(name, "vkGetSemaphoreFdKHR"))
6092 {
6093 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_semaphore_fd");
6094 return hasExt ? (void*)entry_vkGetSemaphoreFdKHR : nullptr;
6095 }
6096#endif
6097#ifdef VK_KHR_push_descriptor
6098 if (!strcmp(name, "vkCmdPushDescriptorSetKHR"))
6099 {
6100 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_push_descriptor");
6101 return hasExt ? (void*)entry_vkCmdPushDescriptorSetKHR : nullptr;
6102 }
6103 if (!strcmp(name, "vkCmdPushDescriptorSetWithTemplateKHR"))
6104 {
6105 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_push_descriptor");
6106 return hasExt ? (void*)entry_vkCmdPushDescriptorSetWithTemplateKHR : nullptr;
6107 }
6108#endif
6109#ifdef VK_KHR_descriptor_update_template
6110 if (!strcmp(name, "vkCreateDescriptorUpdateTemplateKHR"))
6111 {
6112 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_descriptor_update_template");
6113 return hasExt ? (void*)entry_vkCreateDescriptorUpdateTemplateKHR : nullptr;
6114 }
6115 if (!strcmp(name, "vkDestroyDescriptorUpdateTemplateKHR"))
6116 {
6117 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_descriptor_update_template");
6118 return hasExt ? (void*)entry_vkDestroyDescriptorUpdateTemplateKHR : nullptr;
6119 }
6120 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplateKHR"))
6121 {
6122 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_descriptor_update_template");
6123 return hasExt ? (void*)entry_vkUpdateDescriptorSetWithTemplateKHR : nullptr;
6124 }
6125#endif
6126#ifdef VK_KHR_create_renderpass2
6127 if (!strcmp(name, "vkCreateRenderPass2KHR"))
6128 {
6129 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_create_renderpass2");
6130 return hasExt ? (void*)entry_vkCreateRenderPass2KHR : nullptr;
6131 }
6132 if (!strcmp(name, "vkCmdBeginRenderPass2KHR"))
6133 {
6134 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_create_renderpass2");
6135 return hasExt ? (void*)entry_vkCmdBeginRenderPass2KHR : nullptr;
6136 }
6137 if (!strcmp(name, "vkCmdNextSubpass2KHR"))
6138 {
6139 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_create_renderpass2");
6140 return hasExt ? (void*)entry_vkCmdNextSubpass2KHR : nullptr;
6141 }
6142 if (!strcmp(name, "vkCmdEndRenderPass2KHR"))
6143 {
6144 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_create_renderpass2");
6145 return hasExt ? (void*)entry_vkCmdEndRenderPass2KHR : nullptr;
6146 }
6147#endif
6148#ifdef VK_KHR_shared_presentable_image
6149 if (!strcmp(name, "vkGetSwapchainStatusKHR"))
6150 {
6151 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_shared_presentable_image");
6152 return hasExt ? (void*)entry_vkGetSwapchainStatusKHR : nullptr;
6153 }
6154#endif
6155#ifdef VK_KHR_external_fence_capabilities
6156 if (!strcmp(name, "vkGetPhysicalDeviceExternalFencePropertiesKHR"))
6157 {
6158 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_fence_capabilities");
6159 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalFencePropertiesKHR : nullptr;
6160 }
6161#endif
6162#ifdef VK_KHR_external_fence_win32
6163 if (!strcmp(name, "vkImportFenceWin32HandleKHR"))
6164 {
6165 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_fence_win32");
6166 return hasExt ? (void*)entry_vkImportFenceWin32HandleKHR : nullptr;
6167 }
6168 if (!strcmp(name, "vkGetFenceWin32HandleKHR"))
6169 {
6170 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_fence_win32");
6171 return hasExt ? (void*)entry_vkGetFenceWin32HandleKHR : nullptr;
6172 }
6173#endif
6174#ifdef VK_KHR_external_fence_fd
6175 if (!strcmp(name, "vkImportFenceFdKHR"))
6176 {
6177 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_fence_fd");
6178 return hasExt ? (void*)entry_vkImportFenceFdKHR : nullptr;
6179 }
6180 if (!strcmp(name, "vkGetFenceFdKHR"))
6181 {
6182 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_fence_fd");
6183 return hasExt ? (void*)entry_vkGetFenceFdKHR : nullptr;
6184 }
6185#endif
6186#ifdef VK_KHR_get_surface_capabilities2
6187 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2KHR"))
6188 {
6189 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_surface_capabilities2");
6190 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceCapabilities2KHR : nullptr;
6191 }
6192 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceFormats2KHR"))
6193 {
6194 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_surface_capabilities2");
6195 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceFormats2KHR : nullptr;
6196 }
6197#endif
6198#ifdef VK_KHR_get_display_properties2
6199 if (!strcmp(name, "vkGetPhysicalDeviceDisplayProperties2KHR"))
6200 {
6201 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_display_properties2");
6202 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayProperties2KHR : nullptr;
6203 }
6204 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR"))
6205 {
6206 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_display_properties2");
6207 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayPlaneProperties2KHR : nullptr;
6208 }
6209 if (!strcmp(name, "vkGetDisplayModeProperties2KHR"))
6210 {
6211 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_display_properties2");
6212 return hasExt ? (void*)entry_vkGetDisplayModeProperties2KHR : nullptr;
6213 }
6214 if (!strcmp(name, "vkGetDisplayPlaneCapabilities2KHR"))
6215 {
6216 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_display_properties2");
6217 return hasExt ? (void*)entry_vkGetDisplayPlaneCapabilities2KHR : nullptr;
6218 }
6219#endif
6220#ifdef VK_KHR_get_memory_requirements2
6221 if (!strcmp(name, "vkGetImageMemoryRequirements2KHR"))
6222 {
6223 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_memory_requirements2");
6224 return hasExt ? (void*)entry_vkGetImageMemoryRequirements2KHR : nullptr;
6225 }
6226 if (!strcmp(name, "vkGetBufferMemoryRequirements2KHR"))
6227 {
6228 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_memory_requirements2");
6229 return hasExt ? (void*)entry_vkGetBufferMemoryRequirements2KHR : nullptr;
6230 }
6231 if (!strcmp(name, "vkGetImageSparseMemoryRequirements2KHR"))
6232 {
6233 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_memory_requirements2");
6234 return hasExt ? (void*)entry_vkGetImageSparseMemoryRequirements2KHR : nullptr;
6235 }
6236#endif
6237#ifdef VK_KHR_sampler_ycbcr_conversion
6238 if (!strcmp(name, "vkCreateSamplerYcbcrConversionKHR"))
6239 {
6240 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_sampler_ycbcr_conversion");
6241 return hasExt ? (void*)entry_vkCreateSamplerYcbcrConversionKHR : nullptr;
6242 }
6243 if (!strcmp(name, "vkDestroySamplerYcbcrConversionKHR"))
6244 {
6245 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_sampler_ycbcr_conversion");
6246 return hasExt ? (void*)entry_vkDestroySamplerYcbcrConversionKHR : nullptr;
6247 }
6248#endif
6249#ifdef VK_KHR_bind_memory2
6250 if (!strcmp(name, "vkBindBufferMemory2KHR"))
6251 {
6252 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_bind_memory2");
6253 return hasExt ? (void*)entry_vkBindBufferMemory2KHR : nullptr;
6254 }
6255 if (!strcmp(name, "vkBindImageMemory2KHR"))
6256 {
6257 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_bind_memory2");
6258 return hasExt ? (void*)entry_vkBindImageMemory2KHR : nullptr;
6259 }
6260#endif
6261#ifdef VK_KHR_maintenance3
6262 if (!strcmp(name, "vkGetDescriptorSetLayoutSupportKHR"))
6263 {
6264 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_maintenance3");
6265 return hasExt ? (void*)entry_vkGetDescriptorSetLayoutSupportKHR : nullptr;
6266 }
6267#endif
6268#ifdef VK_KHR_draw_indirect_count
6269 if (!strcmp(name, "vkCmdDrawIndirectCountKHR"))
6270 {
6271 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_draw_indirect_count");
6272 return hasExt ? (void*)entry_vkCmdDrawIndirectCountKHR : nullptr;
6273 }
6274 if (!strcmp(name, "vkCmdDrawIndexedIndirectCountKHR"))
6275 {
6276 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_draw_indirect_count");
6277 return hasExt ? (void*)entry_vkCmdDrawIndexedIndirectCountKHR : nullptr;
6278 }
6279#endif
6280#ifdef VK_ANDROID_native_buffer
6281 if (!strcmp(name, "vkGetSwapchainGrallocUsageANDROID"))
6282 {
6283 bool hasExt = resources->hasInstanceExtension(instance, "VK_ANDROID_native_buffer");
6284 return hasExt ? (void*)entry_vkGetSwapchainGrallocUsageANDROID : nullptr;
6285 }
6286 if (!strcmp(name, "vkAcquireImageANDROID"))
6287 {
6288 bool hasExt = resources->hasInstanceExtension(instance, "VK_ANDROID_native_buffer");
6289 return hasExt ? (void*)entry_vkAcquireImageANDROID : nullptr;
6290 }
6291 if (!strcmp(name, "vkQueueSignalReleaseImageANDROID"))
6292 {
6293 bool hasExt = resources->hasInstanceExtension(instance, "VK_ANDROID_native_buffer");
6294 return hasExt ? (void*)entry_vkQueueSignalReleaseImageANDROID : nullptr;
6295 }
6296#endif
6297#ifdef VK_EXT_debug_report
6298 if (!strcmp(name, "vkCreateDebugReportCallbackEXT"))
6299 {
6300 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_report");
6301 return hasExt ? (void*)entry_vkCreateDebugReportCallbackEXT : nullptr;
6302 }
6303 if (!strcmp(name, "vkDestroyDebugReportCallbackEXT"))
6304 {
6305 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_report");
6306 return hasExt ? (void*)entry_vkDestroyDebugReportCallbackEXT : nullptr;
6307 }
6308 if (!strcmp(name, "vkDebugReportMessageEXT"))
6309 {
6310 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_report");
6311 return hasExt ? (void*)entry_vkDebugReportMessageEXT : nullptr;
6312 }
6313#endif
6314#ifdef VK_EXT_debug_marker
6315 if (!strcmp(name, "vkDebugMarkerSetObjectTagEXT"))
6316 {
6317 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_marker");
6318 return hasExt ? (void*)entry_vkDebugMarkerSetObjectTagEXT : nullptr;
6319 }
6320 if (!strcmp(name, "vkDebugMarkerSetObjectNameEXT"))
6321 {
6322 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_marker");
6323 return hasExt ? (void*)entry_vkDebugMarkerSetObjectNameEXT : nullptr;
6324 }
6325 if (!strcmp(name, "vkCmdDebugMarkerBeginEXT"))
6326 {
6327 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_marker");
6328 return hasExt ? (void*)entry_vkCmdDebugMarkerBeginEXT : nullptr;
6329 }
6330 if (!strcmp(name, "vkCmdDebugMarkerEndEXT"))
6331 {
6332 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_marker");
6333 return hasExt ? (void*)entry_vkCmdDebugMarkerEndEXT : nullptr;
6334 }
6335 if (!strcmp(name, "vkCmdDebugMarkerInsertEXT"))
6336 {
6337 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_marker");
6338 return hasExt ? (void*)entry_vkCmdDebugMarkerInsertEXT : nullptr;
6339 }
6340#endif
6341#ifdef VK_AMD_draw_indirect_count
6342 if (!strcmp(name, "vkCmdDrawIndirectCountAMD"))
6343 {
6344 bool hasExt = resources->hasInstanceExtension(instance, "VK_AMD_draw_indirect_count");
6345 return hasExt ? (void*)entry_vkCmdDrawIndirectCountAMD : nullptr;
6346 }
6347 if (!strcmp(name, "vkCmdDrawIndexedIndirectCountAMD"))
6348 {
6349 bool hasExt = resources->hasInstanceExtension(instance, "VK_AMD_draw_indirect_count");
6350 return hasExt ? (void*)entry_vkCmdDrawIndexedIndirectCountAMD : nullptr;
6351 }
6352#endif
6353#ifdef VK_AMD_shader_info
6354 if (!strcmp(name, "vkGetShaderInfoAMD"))
6355 {
6356 bool hasExt = resources->hasInstanceExtension(instance, "VK_AMD_shader_info");
6357 return hasExt ? (void*)entry_vkGetShaderInfoAMD : nullptr;
6358 }
6359#endif
6360#ifdef VK_NV_external_memory_capabilities
6361 if (!strcmp(name, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV"))
6362 {
6363 bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_external_memory_capabilities");
6364 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalImageFormatPropertiesNV : nullptr;
6365 }
6366#endif
6367#ifdef VK_NV_external_memory_win32
6368 if (!strcmp(name, "vkGetMemoryWin32HandleNV"))
6369 {
6370 bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_external_memory_win32");
6371 return hasExt ? (void*)entry_vkGetMemoryWin32HandleNV : nullptr;
6372 }
6373#endif
6374#ifdef VK_NN_vi_surface
6375 if (!strcmp(name, "vkCreateViSurfaceNN"))
6376 {
6377 bool hasExt = resources->hasInstanceExtension(instance, "VK_NN_vi_surface");
6378 return hasExt ? (void*)entry_vkCreateViSurfaceNN : nullptr;
6379 }
6380#endif
6381#ifdef VK_EXT_conditional_rendering
6382 if (!strcmp(name, "vkCmdBeginConditionalRenderingEXT"))
6383 {
6384 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_conditional_rendering");
6385 return hasExt ? (void*)entry_vkCmdBeginConditionalRenderingEXT : nullptr;
6386 }
6387 if (!strcmp(name, "vkCmdEndConditionalRenderingEXT"))
6388 {
6389 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_conditional_rendering");
6390 return hasExt ? (void*)entry_vkCmdEndConditionalRenderingEXT : nullptr;
6391 }
6392#endif
6393#ifdef VK_NVX_device_generated_commands
6394 if (!strcmp(name, "vkCmdProcessCommandsNVX"))
6395 {
6396 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6397 return hasExt ? (void*)entry_vkCmdProcessCommandsNVX : nullptr;
6398 }
6399 if (!strcmp(name, "vkCmdReserveSpaceForCommandsNVX"))
6400 {
6401 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6402 return hasExt ? (void*)entry_vkCmdReserveSpaceForCommandsNVX : nullptr;
6403 }
6404 if (!strcmp(name, "vkCreateIndirectCommandsLayoutNVX"))
6405 {
6406 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6407 return hasExt ? (void*)entry_vkCreateIndirectCommandsLayoutNVX : nullptr;
6408 }
6409 if (!strcmp(name, "vkDestroyIndirectCommandsLayoutNVX"))
6410 {
6411 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6412 return hasExt ? (void*)entry_vkDestroyIndirectCommandsLayoutNVX : nullptr;
6413 }
6414 if (!strcmp(name, "vkCreateObjectTableNVX"))
6415 {
6416 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6417 return hasExt ? (void*)entry_vkCreateObjectTableNVX : nullptr;
6418 }
6419 if (!strcmp(name, "vkDestroyObjectTableNVX"))
6420 {
6421 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6422 return hasExt ? (void*)entry_vkDestroyObjectTableNVX : nullptr;
6423 }
6424 if (!strcmp(name, "vkRegisterObjectsNVX"))
6425 {
6426 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6427 return hasExt ? (void*)entry_vkRegisterObjectsNVX : nullptr;
6428 }
6429 if (!strcmp(name, "vkUnregisterObjectsNVX"))
6430 {
6431 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6432 return hasExt ? (void*)entry_vkUnregisterObjectsNVX : nullptr;
6433 }
6434 if (!strcmp(name, "vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX"))
6435 {
6436 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6437 return hasExt ? (void*)entry_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX : nullptr;
6438 }
6439#endif
6440#ifdef VK_NV_clip_space_w_scaling
6441 if (!strcmp(name, "vkCmdSetViewportWScalingNV"))
6442 {
6443 bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_clip_space_w_scaling");
6444 return hasExt ? (void*)entry_vkCmdSetViewportWScalingNV : nullptr;
6445 }
6446#endif
6447#ifdef VK_EXT_direct_mode_display
6448 if (!strcmp(name, "vkReleaseDisplayEXT"))
6449 {
6450 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_direct_mode_display");
6451 return hasExt ? (void*)entry_vkReleaseDisplayEXT : nullptr;
6452 }
6453#endif
6454#ifdef VK_EXT_acquire_xlib_display
6455 if (!strcmp(name, "vkAcquireXlibDisplayEXT"))
6456 {
6457 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_acquire_xlib_display");
6458 return hasExt ? (void*)entry_vkAcquireXlibDisplayEXT : nullptr;
6459 }
6460 if (!strcmp(name, "vkGetRandROutputDisplayEXT"))
6461 {
6462 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_acquire_xlib_display");
6463 return hasExt ? (void*)entry_vkGetRandROutputDisplayEXT : nullptr;
6464 }
6465#endif
6466#ifdef VK_EXT_display_surface_counter
6467 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2EXT"))
6468 {
6469 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_display_surface_counter");
6470 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceCapabilities2EXT : nullptr;
6471 }
6472#endif
6473#ifdef VK_EXT_display_control
6474 if (!strcmp(name, "vkDisplayPowerControlEXT"))
6475 {
6476 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_display_control");
6477 return hasExt ? (void*)entry_vkDisplayPowerControlEXT : nullptr;
6478 }
6479 if (!strcmp(name, "vkRegisterDeviceEventEXT"))
6480 {
6481 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_display_control");
6482 return hasExt ? (void*)entry_vkRegisterDeviceEventEXT : nullptr;
6483 }
6484 if (!strcmp(name, "vkRegisterDisplayEventEXT"))
6485 {
6486 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_display_control");
6487 return hasExt ? (void*)entry_vkRegisterDisplayEventEXT : nullptr;
6488 }
6489 if (!strcmp(name, "vkGetSwapchainCounterEXT"))
6490 {
6491 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_display_control");
6492 return hasExt ? (void*)entry_vkGetSwapchainCounterEXT : nullptr;
6493 }
6494#endif
6495#ifdef VK_GOOGLE_display_timing
6496 if (!strcmp(name, "vkGetRefreshCycleDurationGOOGLE"))
6497 {
6498 bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_display_timing");
6499 return hasExt ? (void*)entry_vkGetRefreshCycleDurationGOOGLE : nullptr;
6500 }
6501 if (!strcmp(name, "vkGetPastPresentationTimingGOOGLE"))
6502 {
6503 bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_display_timing");
6504 return hasExt ? (void*)entry_vkGetPastPresentationTimingGOOGLE : nullptr;
6505 }
6506#endif
6507#ifdef VK_EXT_discard_rectangles
6508 if (!strcmp(name, "vkCmdSetDiscardRectangleEXT"))
6509 {
6510 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_discard_rectangles");
6511 return hasExt ? (void*)entry_vkCmdSetDiscardRectangleEXT : nullptr;
6512 }
6513#endif
6514#ifdef VK_EXT_hdr_metadata
6515 if (!strcmp(name, "vkSetHdrMetadataEXT"))
6516 {
6517 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_hdr_metadata");
6518 return hasExt ? (void*)entry_vkSetHdrMetadataEXT : nullptr;
6519 }
6520#endif
6521#ifdef VK_MVK_ios_surface
6522 if (!strcmp(name, "vkCreateIOSSurfaceMVK"))
6523 {
6524 bool hasExt = resources->hasInstanceExtension(instance, "VK_MVK_ios_surface");
6525 return hasExt ? (void*)entry_vkCreateIOSSurfaceMVK : nullptr;
6526 }
6527#endif
6528#ifdef VK_MVK_macos_surface
6529 if (!strcmp(name, "vkCreateMacOSSurfaceMVK"))
6530 {
6531 bool hasExt = resources->hasInstanceExtension(instance, "VK_MVK_macos_surface");
6532 return hasExt ? (void*)entry_vkCreateMacOSSurfaceMVK : nullptr;
6533 }
6534#endif
6535#ifdef VK_EXT_debug_utils
6536 if (!strcmp(name, "vkSetDebugUtilsObjectNameEXT"))
6537 {
6538 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6539 return hasExt ? (void*)entry_vkSetDebugUtilsObjectNameEXT : nullptr;
6540 }
6541 if (!strcmp(name, "vkSetDebugUtilsObjectTagEXT"))
6542 {
6543 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6544 return hasExt ? (void*)entry_vkSetDebugUtilsObjectTagEXT : nullptr;
6545 }
6546 if (!strcmp(name, "vkQueueBeginDebugUtilsLabelEXT"))
6547 {
6548 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6549 return hasExt ? (void*)entry_vkQueueBeginDebugUtilsLabelEXT : nullptr;
6550 }
6551 if (!strcmp(name, "vkQueueEndDebugUtilsLabelEXT"))
6552 {
6553 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6554 return hasExt ? (void*)entry_vkQueueEndDebugUtilsLabelEXT : nullptr;
6555 }
6556 if (!strcmp(name, "vkQueueInsertDebugUtilsLabelEXT"))
6557 {
6558 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6559 return hasExt ? (void*)entry_vkQueueInsertDebugUtilsLabelEXT : nullptr;
6560 }
6561 if (!strcmp(name, "vkCmdBeginDebugUtilsLabelEXT"))
6562 {
6563 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6564 return hasExt ? (void*)entry_vkCmdBeginDebugUtilsLabelEXT : nullptr;
6565 }
6566 if (!strcmp(name, "vkCmdEndDebugUtilsLabelEXT"))
6567 {
6568 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6569 return hasExt ? (void*)entry_vkCmdEndDebugUtilsLabelEXT : nullptr;
6570 }
6571 if (!strcmp(name, "vkCmdInsertDebugUtilsLabelEXT"))
6572 {
6573 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6574 return hasExt ? (void*)entry_vkCmdInsertDebugUtilsLabelEXT : nullptr;
6575 }
6576 if (!strcmp(name, "vkCreateDebugUtilsMessengerEXT"))
6577 {
6578 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6579 return hasExt ? (void*)entry_vkCreateDebugUtilsMessengerEXT : nullptr;
6580 }
6581 if (!strcmp(name, "vkDestroyDebugUtilsMessengerEXT"))
6582 {
6583 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6584 return hasExt ? (void*)entry_vkDestroyDebugUtilsMessengerEXT : nullptr;
6585 }
6586 if (!strcmp(name, "vkSubmitDebugUtilsMessageEXT"))
6587 {
6588 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6589 return hasExt ? (void*)entry_vkSubmitDebugUtilsMessageEXT : nullptr;
6590 }
6591#endif
6592#ifdef VK_ANDROID_external_memory_android_hardware_buffer
6593 if (!strcmp(name, "vkGetAndroidHardwareBufferPropertiesANDROID"))
6594 {
6595 bool hasExt = resources->hasInstanceExtension(instance, "VK_ANDROID_external_memory_android_hardware_buffer");
6596 return hasExt ? (void*)entry_vkGetAndroidHardwareBufferPropertiesANDROID : nullptr;
6597 }
6598 if (!strcmp(name, "vkGetMemoryAndroidHardwareBufferANDROID"))
6599 {
6600 bool hasExt = resources->hasInstanceExtension(instance, "VK_ANDROID_external_memory_android_hardware_buffer");
6601 return hasExt ? (void*)entry_vkGetMemoryAndroidHardwareBufferANDROID : nullptr;
6602 }
6603#endif
6604#ifdef VK_EXT_sample_locations
6605 if (!strcmp(name, "vkCmdSetSampleLocationsEXT"))
6606 {
6607 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_sample_locations");
6608 return hasExt ? (void*)entry_vkCmdSetSampleLocationsEXT : nullptr;
6609 }
6610 if (!strcmp(name, "vkGetPhysicalDeviceMultisamplePropertiesEXT"))
6611 {
6612 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_sample_locations");
6613 return hasExt ? (void*)entry_vkGetPhysicalDeviceMultisamplePropertiesEXT : nullptr;
6614 }
6615#endif
6616#ifdef VK_EXT_validation_cache
6617 if (!strcmp(name, "vkCreateValidationCacheEXT"))
6618 {
6619 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_validation_cache");
6620 return hasExt ? (void*)entry_vkCreateValidationCacheEXT : nullptr;
6621 }
6622 if (!strcmp(name, "vkDestroyValidationCacheEXT"))
6623 {
6624 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_validation_cache");
6625 return hasExt ? (void*)entry_vkDestroyValidationCacheEXT : nullptr;
6626 }
6627 if (!strcmp(name, "vkMergeValidationCachesEXT"))
6628 {
6629 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_validation_cache");
6630 return hasExt ? (void*)entry_vkMergeValidationCachesEXT : nullptr;
6631 }
6632 if (!strcmp(name, "vkGetValidationCacheDataEXT"))
6633 {
6634 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_validation_cache");
6635 return hasExt ? (void*)entry_vkGetValidationCacheDataEXT : nullptr;
6636 }
6637#endif
6638#ifdef VK_EXT_external_memory_host
6639 if (!strcmp(name, "vkGetMemoryHostPointerPropertiesEXT"))
6640 {
6641 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_external_memory_host");
6642 return hasExt ? (void*)entry_vkGetMemoryHostPointerPropertiesEXT : nullptr;
6643 }
6644#endif
6645#ifdef VK_AMD_buffer_marker
6646 if (!strcmp(name, "vkCmdWriteBufferMarkerAMD"))
6647 {
6648 bool hasExt = resources->hasInstanceExtension(instance, "VK_AMD_buffer_marker");
6649 return hasExt ? (void*)entry_vkCmdWriteBufferMarkerAMD : nullptr;
6650 }
6651#endif
6652#ifdef VK_NV_device_diagnostic_checkpoints
6653 if (!strcmp(name, "vkCmdSetCheckpointNV"))
6654 {
6655 bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_device_diagnostic_checkpoints");
6656 return hasExt ? (void*)entry_vkCmdSetCheckpointNV : nullptr;
6657 }
6658 if (!strcmp(name, "vkGetQueueCheckpointDataNV"))
6659 {
6660 bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_device_diagnostic_checkpoints");
6661 return hasExt ? (void*)entry_vkGetQueueCheckpointDataNV : nullptr;
6662 }
6663#endif
6664#ifdef VK_GOOGLE_address_space
6665 if (!strcmp(name, "vkMapMemoryIntoAddressSpaceGOOGLE"))
6666 {
6667 bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_address_space");
6668 return hasExt ? (void*)entry_vkMapMemoryIntoAddressSpaceGOOGLE : nullptr;
6669 }
6670#endif
Lingfeng Yangae7e1b32019-02-19 14:07:39 -08006671#ifdef VK_GOOGLE_color_buffer
6672 if (!strcmp(name, "vkRegisterImageColorBufferGOOGLE"))
6673 {
6674 bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_color_buffer");
6675 return hasExt ? (void*)entry_vkRegisterImageColorBufferGOOGLE : nullptr;
6676 }
6677 if (!strcmp(name, "vkRegisterBufferColorBufferGOOGLE"))
6678 {
6679 bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_color_buffer");
6680 return hasExt ? (void*)entry_vkRegisterBufferColorBufferGOOGLE : nullptr;
6681 }
6682#endif
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08006683 return nullptr;
6684}
6685void* goldfish_vulkan_get_device_proc_address(VkDevice device, const char* name){
6686 auto resources = ResourceTracker::get();
6687 bool has1_1OrHigher = resources->getApiVersionFromDevice(device) >= VK_API_VERSION_1_1;
6688#ifdef VK_VERSION_1_0
6689 if (!strcmp(name, "vkCreateInstance"))
6690 {
6691 return (void*)entry_vkCreateInstance;
6692 }
6693 if (!strcmp(name, "vkDestroyInstance"))
6694 {
6695 return (void*)entry_vkDestroyInstance;
6696 }
6697 if (!strcmp(name, "vkEnumeratePhysicalDevices"))
6698 {
6699 return (void*)entry_vkEnumeratePhysicalDevices;
6700 }
6701 if (!strcmp(name, "vkGetPhysicalDeviceFeatures"))
6702 {
6703 return (void*)entry_vkGetPhysicalDeviceFeatures;
6704 }
6705 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties"))
6706 {
6707 return (void*)entry_vkGetPhysicalDeviceFormatProperties;
6708 }
6709 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties"))
6710 {
6711 return (void*)entry_vkGetPhysicalDeviceImageFormatProperties;
6712 }
6713 if (!strcmp(name, "vkGetPhysicalDeviceProperties"))
6714 {
6715 return (void*)entry_vkGetPhysicalDeviceProperties;
6716 }
6717 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties"))
6718 {
6719 return (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties;
6720 }
6721 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties"))
6722 {
6723 return (void*)entry_vkGetPhysicalDeviceMemoryProperties;
6724 }
6725 if (!strcmp(name, "vkGetInstanceProcAddr"))
6726 {
6727 return (void*)entry_vkGetInstanceProcAddr;
6728 }
6729 if (!strcmp(name, "vkGetDeviceProcAddr"))
6730 {
6731 return (void*)entry_vkGetDeviceProcAddr;
6732 }
6733 if (!strcmp(name, "vkCreateDevice"))
6734 {
6735 return (void*)entry_vkCreateDevice;
6736 }
6737 if (!strcmp(name, "vkDestroyDevice"))
6738 {
6739 return (void*)entry_vkDestroyDevice;
6740 }
6741 if (!strcmp(name, "vkEnumerateInstanceExtensionProperties"))
6742 {
6743 return (void*)entry_vkEnumerateInstanceExtensionProperties;
6744 }
6745 if (!strcmp(name, "vkEnumerateDeviceExtensionProperties"))
6746 {
6747 return (void*)entry_vkEnumerateDeviceExtensionProperties;
6748 }
6749 if (!strcmp(name, "vkEnumerateInstanceLayerProperties"))
6750 {
6751 return (void*)entry_vkEnumerateInstanceLayerProperties;
6752 }
6753 if (!strcmp(name, "vkEnumerateDeviceLayerProperties"))
6754 {
6755 return (void*)entry_vkEnumerateDeviceLayerProperties;
6756 }
6757 if (!strcmp(name, "vkGetDeviceQueue"))
6758 {
6759 return (void*)entry_vkGetDeviceQueue;
6760 }
6761 if (!strcmp(name, "vkQueueSubmit"))
6762 {
6763 return (void*)entry_vkQueueSubmit;
6764 }
6765 if (!strcmp(name, "vkQueueWaitIdle"))
6766 {
6767 return (void*)entry_vkQueueWaitIdle;
6768 }
6769 if (!strcmp(name, "vkDeviceWaitIdle"))
6770 {
6771 return (void*)entry_vkDeviceWaitIdle;
6772 }
6773 if (!strcmp(name, "vkAllocateMemory"))
6774 {
6775 return (void*)entry_vkAllocateMemory;
6776 }
6777 if (!strcmp(name, "vkFreeMemory"))
6778 {
6779 return (void*)entry_vkFreeMemory;
6780 }
6781 if (!strcmp(name, "vkMapMemory"))
6782 {
6783 return (void*)entry_vkMapMemory;
6784 }
6785 if (!strcmp(name, "vkUnmapMemory"))
6786 {
6787 return (void*)entry_vkUnmapMemory;
6788 }
6789 if (!strcmp(name, "vkFlushMappedMemoryRanges"))
6790 {
6791 return (void*)entry_vkFlushMappedMemoryRanges;
6792 }
6793 if (!strcmp(name, "vkInvalidateMappedMemoryRanges"))
6794 {
6795 return (void*)entry_vkInvalidateMappedMemoryRanges;
6796 }
6797 if (!strcmp(name, "vkGetDeviceMemoryCommitment"))
6798 {
6799 return (void*)entry_vkGetDeviceMemoryCommitment;
6800 }
6801 if (!strcmp(name, "vkBindBufferMemory"))
6802 {
6803 return (void*)entry_vkBindBufferMemory;
6804 }
6805 if (!strcmp(name, "vkBindImageMemory"))
6806 {
6807 return (void*)entry_vkBindImageMemory;
6808 }
6809 if (!strcmp(name, "vkGetBufferMemoryRequirements"))
6810 {
6811 return (void*)entry_vkGetBufferMemoryRequirements;
6812 }
6813 if (!strcmp(name, "vkGetImageMemoryRequirements"))
6814 {
6815 return (void*)entry_vkGetImageMemoryRequirements;
6816 }
6817 if (!strcmp(name, "vkGetImageSparseMemoryRequirements"))
6818 {
6819 return (void*)entry_vkGetImageSparseMemoryRequirements;
6820 }
6821 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties"))
6822 {
6823 return (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties;
6824 }
6825 if (!strcmp(name, "vkQueueBindSparse"))
6826 {
6827 return (void*)entry_vkQueueBindSparse;
6828 }
6829 if (!strcmp(name, "vkCreateFence"))
6830 {
6831 return (void*)entry_vkCreateFence;
6832 }
6833 if (!strcmp(name, "vkDestroyFence"))
6834 {
6835 return (void*)entry_vkDestroyFence;
6836 }
6837 if (!strcmp(name, "vkResetFences"))
6838 {
6839 return (void*)entry_vkResetFences;
6840 }
6841 if (!strcmp(name, "vkGetFenceStatus"))
6842 {
6843 return (void*)entry_vkGetFenceStatus;
6844 }
6845 if (!strcmp(name, "vkWaitForFences"))
6846 {
6847 return (void*)entry_vkWaitForFences;
6848 }
6849 if (!strcmp(name, "vkCreateSemaphore"))
6850 {
6851 return (void*)entry_vkCreateSemaphore;
6852 }
6853 if (!strcmp(name, "vkDestroySemaphore"))
6854 {
6855 return (void*)entry_vkDestroySemaphore;
6856 }
6857 if (!strcmp(name, "vkCreateEvent"))
6858 {
6859 return (void*)entry_vkCreateEvent;
6860 }
6861 if (!strcmp(name, "vkDestroyEvent"))
6862 {
6863 return (void*)entry_vkDestroyEvent;
6864 }
6865 if (!strcmp(name, "vkGetEventStatus"))
6866 {
6867 return (void*)entry_vkGetEventStatus;
6868 }
6869 if (!strcmp(name, "vkSetEvent"))
6870 {
6871 return (void*)entry_vkSetEvent;
6872 }
6873 if (!strcmp(name, "vkResetEvent"))
6874 {
6875 return (void*)entry_vkResetEvent;
6876 }
6877 if (!strcmp(name, "vkCreateQueryPool"))
6878 {
6879 return (void*)entry_vkCreateQueryPool;
6880 }
6881 if (!strcmp(name, "vkDestroyQueryPool"))
6882 {
6883 return (void*)entry_vkDestroyQueryPool;
6884 }
6885 if (!strcmp(name, "vkGetQueryPoolResults"))
6886 {
6887 return (void*)entry_vkGetQueryPoolResults;
6888 }
6889 if (!strcmp(name, "vkCreateBuffer"))
6890 {
6891 return (void*)entry_vkCreateBuffer;
6892 }
6893 if (!strcmp(name, "vkDestroyBuffer"))
6894 {
6895 return (void*)entry_vkDestroyBuffer;
6896 }
6897 if (!strcmp(name, "vkCreateBufferView"))
6898 {
6899 return (void*)entry_vkCreateBufferView;
6900 }
6901 if (!strcmp(name, "vkDestroyBufferView"))
6902 {
6903 return (void*)entry_vkDestroyBufferView;
6904 }
6905 if (!strcmp(name, "vkCreateImage"))
6906 {
6907 return (void*)entry_vkCreateImage;
6908 }
6909 if (!strcmp(name, "vkDestroyImage"))
6910 {
6911 return (void*)entry_vkDestroyImage;
6912 }
6913 if (!strcmp(name, "vkGetImageSubresourceLayout"))
6914 {
6915 return (void*)entry_vkGetImageSubresourceLayout;
6916 }
6917 if (!strcmp(name, "vkCreateImageView"))
6918 {
6919 return (void*)entry_vkCreateImageView;
6920 }
6921 if (!strcmp(name, "vkDestroyImageView"))
6922 {
6923 return (void*)entry_vkDestroyImageView;
6924 }
6925 if (!strcmp(name, "vkCreateShaderModule"))
6926 {
6927 return (void*)entry_vkCreateShaderModule;
6928 }
6929 if (!strcmp(name, "vkDestroyShaderModule"))
6930 {
6931 return (void*)entry_vkDestroyShaderModule;
6932 }
6933 if (!strcmp(name, "vkCreatePipelineCache"))
6934 {
6935 return (void*)entry_vkCreatePipelineCache;
6936 }
6937 if (!strcmp(name, "vkDestroyPipelineCache"))
6938 {
6939 return (void*)entry_vkDestroyPipelineCache;
6940 }
6941 if (!strcmp(name, "vkGetPipelineCacheData"))
6942 {
6943 return (void*)entry_vkGetPipelineCacheData;
6944 }
6945 if (!strcmp(name, "vkMergePipelineCaches"))
6946 {
6947 return (void*)entry_vkMergePipelineCaches;
6948 }
6949 if (!strcmp(name, "vkCreateGraphicsPipelines"))
6950 {
6951 return (void*)entry_vkCreateGraphicsPipelines;
6952 }
6953 if (!strcmp(name, "vkCreateComputePipelines"))
6954 {
6955 return (void*)entry_vkCreateComputePipelines;
6956 }
6957 if (!strcmp(name, "vkDestroyPipeline"))
6958 {
6959 return (void*)entry_vkDestroyPipeline;
6960 }
6961 if (!strcmp(name, "vkCreatePipelineLayout"))
6962 {
6963 return (void*)entry_vkCreatePipelineLayout;
6964 }
6965 if (!strcmp(name, "vkDestroyPipelineLayout"))
6966 {
6967 return (void*)entry_vkDestroyPipelineLayout;
6968 }
6969 if (!strcmp(name, "vkCreateSampler"))
6970 {
6971 return (void*)entry_vkCreateSampler;
6972 }
6973 if (!strcmp(name, "vkDestroySampler"))
6974 {
6975 return (void*)entry_vkDestroySampler;
6976 }
6977 if (!strcmp(name, "vkCreateDescriptorSetLayout"))
6978 {
6979 return (void*)entry_vkCreateDescriptorSetLayout;
6980 }
6981 if (!strcmp(name, "vkDestroyDescriptorSetLayout"))
6982 {
6983 return (void*)entry_vkDestroyDescriptorSetLayout;
6984 }
6985 if (!strcmp(name, "vkCreateDescriptorPool"))
6986 {
6987 return (void*)entry_vkCreateDescriptorPool;
6988 }
6989 if (!strcmp(name, "vkDestroyDescriptorPool"))
6990 {
6991 return (void*)entry_vkDestroyDescriptorPool;
6992 }
6993 if (!strcmp(name, "vkResetDescriptorPool"))
6994 {
6995 return (void*)entry_vkResetDescriptorPool;
6996 }
6997 if (!strcmp(name, "vkAllocateDescriptorSets"))
6998 {
6999 return (void*)entry_vkAllocateDescriptorSets;
7000 }
7001 if (!strcmp(name, "vkFreeDescriptorSets"))
7002 {
7003 return (void*)entry_vkFreeDescriptorSets;
7004 }
7005 if (!strcmp(name, "vkUpdateDescriptorSets"))
7006 {
7007 return (void*)entry_vkUpdateDescriptorSets;
7008 }
7009 if (!strcmp(name, "vkCreateFramebuffer"))
7010 {
7011 return (void*)entry_vkCreateFramebuffer;
7012 }
7013 if (!strcmp(name, "vkDestroyFramebuffer"))
7014 {
7015 return (void*)entry_vkDestroyFramebuffer;
7016 }
7017 if (!strcmp(name, "vkCreateRenderPass"))
7018 {
7019 return (void*)entry_vkCreateRenderPass;
7020 }
7021 if (!strcmp(name, "vkDestroyRenderPass"))
7022 {
7023 return (void*)entry_vkDestroyRenderPass;
7024 }
7025 if (!strcmp(name, "vkGetRenderAreaGranularity"))
7026 {
7027 return (void*)entry_vkGetRenderAreaGranularity;
7028 }
7029 if (!strcmp(name, "vkCreateCommandPool"))
7030 {
7031 return (void*)entry_vkCreateCommandPool;
7032 }
7033 if (!strcmp(name, "vkDestroyCommandPool"))
7034 {
7035 return (void*)entry_vkDestroyCommandPool;
7036 }
7037 if (!strcmp(name, "vkResetCommandPool"))
7038 {
7039 return (void*)entry_vkResetCommandPool;
7040 }
7041 if (!strcmp(name, "vkAllocateCommandBuffers"))
7042 {
7043 return (void*)entry_vkAllocateCommandBuffers;
7044 }
7045 if (!strcmp(name, "vkFreeCommandBuffers"))
7046 {
7047 return (void*)entry_vkFreeCommandBuffers;
7048 }
7049 if (!strcmp(name, "vkBeginCommandBuffer"))
7050 {
7051 return (void*)entry_vkBeginCommandBuffer;
7052 }
7053 if (!strcmp(name, "vkEndCommandBuffer"))
7054 {
7055 return (void*)entry_vkEndCommandBuffer;
7056 }
7057 if (!strcmp(name, "vkResetCommandBuffer"))
7058 {
7059 return (void*)entry_vkResetCommandBuffer;
7060 }
7061 if (!strcmp(name, "vkCmdBindPipeline"))
7062 {
7063 return (void*)entry_vkCmdBindPipeline;
7064 }
7065 if (!strcmp(name, "vkCmdSetViewport"))
7066 {
7067 return (void*)entry_vkCmdSetViewport;
7068 }
7069 if (!strcmp(name, "vkCmdSetScissor"))
7070 {
7071 return (void*)entry_vkCmdSetScissor;
7072 }
7073 if (!strcmp(name, "vkCmdSetLineWidth"))
7074 {
7075 return (void*)entry_vkCmdSetLineWidth;
7076 }
7077 if (!strcmp(name, "vkCmdSetDepthBias"))
7078 {
7079 return (void*)entry_vkCmdSetDepthBias;
7080 }
7081 if (!strcmp(name, "vkCmdSetBlendConstants"))
7082 {
7083 return (void*)entry_vkCmdSetBlendConstants;
7084 }
7085 if (!strcmp(name, "vkCmdSetDepthBounds"))
7086 {
7087 return (void*)entry_vkCmdSetDepthBounds;
7088 }
7089 if (!strcmp(name, "vkCmdSetStencilCompareMask"))
7090 {
7091 return (void*)entry_vkCmdSetStencilCompareMask;
7092 }
7093 if (!strcmp(name, "vkCmdSetStencilWriteMask"))
7094 {
7095 return (void*)entry_vkCmdSetStencilWriteMask;
7096 }
7097 if (!strcmp(name, "vkCmdSetStencilReference"))
7098 {
7099 return (void*)entry_vkCmdSetStencilReference;
7100 }
7101 if (!strcmp(name, "vkCmdBindDescriptorSets"))
7102 {
7103 return (void*)entry_vkCmdBindDescriptorSets;
7104 }
7105 if (!strcmp(name, "vkCmdBindIndexBuffer"))
7106 {
7107 return (void*)entry_vkCmdBindIndexBuffer;
7108 }
7109 if (!strcmp(name, "vkCmdBindVertexBuffers"))
7110 {
7111 return (void*)entry_vkCmdBindVertexBuffers;
7112 }
7113 if (!strcmp(name, "vkCmdDraw"))
7114 {
7115 return (void*)entry_vkCmdDraw;
7116 }
7117 if (!strcmp(name, "vkCmdDrawIndexed"))
7118 {
7119 return (void*)entry_vkCmdDrawIndexed;
7120 }
7121 if (!strcmp(name, "vkCmdDrawIndirect"))
7122 {
7123 return (void*)entry_vkCmdDrawIndirect;
7124 }
7125 if (!strcmp(name, "vkCmdDrawIndexedIndirect"))
7126 {
7127 return (void*)entry_vkCmdDrawIndexedIndirect;
7128 }
7129 if (!strcmp(name, "vkCmdDispatch"))
7130 {
7131 return (void*)entry_vkCmdDispatch;
7132 }
7133 if (!strcmp(name, "vkCmdDispatchIndirect"))
7134 {
7135 return (void*)entry_vkCmdDispatchIndirect;
7136 }
7137 if (!strcmp(name, "vkCmdCopyBuffer"))
7138 {
7139 return (void*)entry_vkCmdCopyBuffer;
7140 }
7141 if (!strcmp(name, "vkCmdCopyImage"))
7142 {
7143 return (void*)entry_vkCmdCopyImage;
7144 }
7145 if (!strcmp(name, "vkCmdBlitImage"))
7146 {
7147 return (void*)entry_vkCmdBlitImage;
7148 }
7149 if (!strcmp(name, "vkCmdCopyBufferToImage"))
7150 {
7151 return (void*)entry_vkCmdCopyBufferToImage;
7152 }
7153 if (!strcmp(name, "vkCmdCopyImageToBuffer"))
7154 {
7155 return (void*)entry_vkCmdCopyImageToBuffer;
7156 }
7157 if (!strcmp(name, "vkCmdUpdateBuffer"))
7158 {
7159 return (void*)entry_vkCmdUpdateBuffer;
7160 }
7161 if (!strcmp(name, "vkCmdFillBuffer"))
7162 {
7163 return (void*)entry_vkCmdFillBuffer;
7164 }
7165 if (!strcmp(name, "vkCmdClearColorImage"))
7166 {
7167 return (void*)entry_vkCmdClearColorImage;
7168 }
7169 if (!strcmp(name, "vkCmdClearDepthStencilImage"))
7170 {
7171 return (void*)entry_vkCmdClearDepthStencilImage;
7172 }
7173 if (!strcmp(name, "vkCmdClearAttachments"))
7174 {
7175 return (void*)entry_vkCmdClearAttachments;
7176 }
7177 if (!strcmp(name, "vkCmdResolveImage"))
7178 {
7179 return (void*)entry_vkCmdResolveImage;
7180 }
7181 if (!strcmp(name, "vkCmdSetEvent"))
7182 {
7183 return (void*)entry_vkCmdSetEvent;
7184 }
7185 if (!strcmp(name, "vkCmdResetEvent"))
7186 {
7187 return (void*)entry_vkCmdResetEvent;
7188 }
7189 if (!strcmp(name, "vkCmdWaitEvents"))
7190 {
7191 return (void*)entry_vkCmdWaitEvents;
7192 }
7193 if (!strcmp(name, "vkCmdPipelineBarrier"))
7194 {
7195 return (void*)entry_vkCmdPipelineBarrier;
7196 }
7197 if (!strcmp(name, "vkCmdBeginQuery"))
7198 {
7199 return (void*)entry_vkCmdBeginQuery;
7200 }
7201 if (!strcmp(name, "vkCmdEndQuery"))
7202 {
7203 return (void*)entry_vkCmdEndQuery;
7204 }
7205 if (!strcmp(name, "vkCmdResetQueryPool"))
7206 {
7207 return (void*)entry_vkCmdResetQueryPool;
7208 }
7209 if (!strcmp(name, "vkCmdWriteTimestamp"))
7210 {
7211 return (void*)entry_vkCmdWriteTimestamp;
7212 }
7213 if (!strcmp(name, "vkCmdCopyQueryPoolResults"))
7214 {
7215 return (void*)entry_vkCmdCopyQueryPoolResults;
7216 }
7217 if (!strcmp(name, "vkCmdPushConstants"))
7218 {
7219 return (void*)entry_vkCmdPushConstants;
7220 }
7221 if (!strcmp(name, "vkCmdBeginRenderPass"))
7222 {
7223 return (void*)entry_vkCmdBeginRenderPass;
7224 }
7225 if (!strcmp(name, "vkCmdNextSubpass"))
7226 {
7227 return (void*)entry_vkCmdNextSubpass;
7228 }
7229 if (!strcmp(name, "vkCmdEndRenderPass"))
7230 {
7231 return (void*)entry_vkCmdEndRenderPass;
7232 }
7233 if (!strcmp(name, "vkCmdExecuteCommands"))
7234 {
7235 return (void*)entry_vkCmdExecuteCommands;
7236 }
7237#endif
7238#ifdef VK_VERSION_1_1
7239 if (!strcmp(name, "vkEnumerateInstanceVersion"))
7240 {
7241 return has1_1OrHigher ? (void*)entry_vkEnumerateInstanceVersion : nullptr;
7242 }
7243 if (!strcmp(name, "vkBindBufferMemory2"))
7244 {
7245 return has1_1OrHigher ? (void*)entry_vkBindBufferMemory2 : nullptr;
7246 }
7247 if (!strcmp(name, "vkBindImageMemory2"))
7248 {
7249 return has1_1OrHigher ? (void*)entry_vkBindImageMemory2 : nullptr;
7250 }
7251 if (!strcmp(name, "vkGetDeviceGroupPeerMemoryFeatures"))
7252 {
7253 return has1_1OrHigher ? (void*)entry_vkGetDeviceGroupPeerMemoryFeatures : nullptr;
7254 }
7255 if (!strcmp(name, "vkCmdSetDeviceMask"))
7256 {
7257 return has1_1OrHigher ? (void*)entry_vkCmdSetDeviceMask : nullptr;
7258 }
7259 if (!strcmp(name, "vkCmdDispatchBase"))
7260 {
7261 return has1_1OrHigher ? (void*)entry_vkCmdDispatchBase : nullptr;
7262 }
7263 if (!strcmp(name, "vkEnumeratePhysicalDeviceGroups"))
7264 {
7265 return nullptr;
7266 }
7267 if (!strcmp(name, "vkGetImageMemoryRequirements2"))
7268 {
7269 return has1_1OrHigher ? (void*)entry_vkGetImageMemoryRequirements2 : nullptr;
7270 }
7271 if (!strcmp(name, "vkGetBufferMemoryRequirements2"))
7272 {
7273 return has1_1OrHigher ? (void*)entry_vkGetBufferMemoryRequirements2 : nullptr;
7274 }
7275 if (!strcmp(name, "vkGetImageSparseMemoryRequirements2"))
7276 {
7277 return has1_1OrHigher ? (void*)entry_vkGetImageSparseMemoryRequirements2 : nullptr;
7278 }
7279 if (!strcmp(name, "vkGetPhysicalDeviceFeatures2"))
7280 {
7281 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceFeatures2 : nullptr;
7282 }
7283 if (!strcmp(name, "vkGetPhysicalDeviceProperties2"))
7284 {
7285 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceProperties2 : nullptr;
7286 }
7287 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties2"))
7288 {
7289 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceFormatProperties2 : nullptr;
7290 }
7291 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties2"))
7292 {
7293 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceImageFormatProperties2 : nullptr;
7294 }
7295 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties2"))
7296 {
7297 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties2 : nullptr;
7298 }
7299 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties2"))
7300 {
7301 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceMemoryProperties2 : nullptr;
7302 }
7303 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties2"))
7304 {
7305 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties2 : nullptr;
7306 }
7307 if (!strcmp(name, "vkTrimCommandPool"))
7308 {
7309 return has1_1OrHigher ? (void*)entry_vkTrimCommandPool : nullptr;
7310 }
7311 if (!strcmp(name, "vkGetDeviceQueue2"))
7312 {
7313 return has1_1OrHigher ? (void*)entry_vkGetDeviceQueue2 : nullptr;
7314 }
7315 if (!strcmp(name, "vkCreateSamplerYcbcrConversion"))
7316 {
7317 return has1_1OrHigher ? (void*)entry_vkCreateSamplerYcbcrConversion : nullptr;
7318 }
7319 if (!strcmp(name, "vkDestroySamplerYcbcrConversion"))
7320 {
7321 return has1_1OrHigher ? (void*)entry_vkDestroySamplerYcbcrConversion : nullptr;
7322 }
7323 if (!strcmp(name, "vkCreateDescriptorUpdateTemplate"))
7324 {
7325 return has1_1OrHigher ? (void*)entry_vkCreateDescriptorUpdateTemplate : nullptr;
7326 }
7327 if (!strcmp(name, "vkDestroyDescriptorUpdateTemplate"))
7328 {
7329 return has1_1OrHigher ? (void*)entry_vkDestroyDescriptorUpdateTemplate : nullptr;
7330 }
7331 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplate"))
7332 {
7333 return has1_1OrHigher ? (void*)entry_vkUpdateDescriptorSetWithTemplate : nullptr;
7334 }
7335 if (!strcmp(name, "vkGetPhysicalDeviceExternalBufferProperties"))
7336 {
7337 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceExternalBufferProperties : nullptr;
7338 }
7339 if (!strcmp(name, "vkGetPhysicalDeviceExternalFenceProperties"))
7340 {
7341 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceExternalFenceProperties : nullptr;
7342 }
7343 if (!strcmp(name, "vkGetPhysicalDeviceExternalSemaphoreProperties"))
7344 {
7345 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceExternalSemaphoreProperties : nullptr;
7346 }
7347 if (!strcmp(name, "vkGetDescriptorSetLayoutSupport"))
7348 {
7349 return has1_1OrHigher ? (void*)entry_vkGetDescriptorSetLayoutSupport : nullptr;
7350 }
7351#endif
7352#ifdef VK_KHR_surface
7353 if (!strcmp(name, "vkDestroySurfaceKHR"))
7354 {
7355 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_surface");
7356 return hasExt ? (void*)entry_vkDestroySurfaceKHR : nullptr;
7357 }
7358 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceSupportKHR"))
7359 {
7360 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_surface");
7361 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceSupportKHR : nullptr;
7362 }
7363 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR"))
7364 {
7365 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_surface");
7366 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceCapabilitiesKHR : nullptr;
7367 }
7368 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceFormatsKHR"))
7369 {
7370 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_surface");
7371 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceFormatsKHR : nullptr;
7372 }
7373 if (!strcmp(name, "vkGetPhysicalDeviceSurfacePresentModesKHR"))
7374 {
7375 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_surface");
7376 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfacePresentModesKHR : nullptr;
7377 }
7378#endif
7379#ifdef VK_KHR_swapchain
7380 if (!strcmp(name, "vkCreateSwapchainKHR"))
7381 {
7382 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7383 return hasExt ? (void*)entry_vkCreateSwapchainKHR : nullptr;
7384 }
7385 if (!strcmp(name, "vkDestroySwapchainKHR"))
7386 {
7387 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7388 return hasExt ? (void*)entry_vkDestroySwapchainKHR : nullptr;
7389 }
7390 if (!strcmp(name, "vkGetSwapchainImagesKHR"))
7391 {
7392 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7393 return hasExt ? (void*)entry_vkGetSwapchainImagesKHR : nullptr;
7394 }
7395 if (!strcmp(name, "vkAcquireNextImageKHR"))
7396 {
7397 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7398 return hasExt ? (void*)entry_vkAcquireNextImageKHR : nullptr;
7399 }
7400 if (!strcmp(name, "vkQueuePresentKHR"))
7401 {
7402 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7403 return hasExt ? (void*)entry_vkQueuePresentKHR : nullptr;
7404 }
7405 if (!strcmp(name, "vkGetDeviceGroupPresentCapabilitiesKHR"))
7406 {
7407 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7408 return hasExt ? (void*)entry_vkGetDeviceGroupPresentCapabilitiesKHR : nullptr;
7409 }
7410 if (!strcmp(name, "vkGetDeviceGroupSurfacePresentModesKHR"))
7411 {
7412 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7413 return hasExt ? (void*)entry_vkGetDeviceGroupSurfacePresentModesKHR : nullptr;
7414 }
7415 if (!strcmp(name, "vkGetPhysicalDevicePresentRectanglesKHR"))
7416 {
7417 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7418 return hasExt ? (void*)entry_vkGetPhysicalDevicePresentRectanglesKHR : nullptr;
7419 }
7420 if (!strcmp(name, "vkAcquireNextImage2KHR"))
7421 {
7422 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7423 return hasExt ? (void*)entry_vkAcquireNextImage2KHR : nullptr;
7424 }
7425#endif
7426#ifdef VK_KHR_display
7427 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPropertiesKHR"))
7428 {
7429 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
7430 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayPropertiesKHR : nullptr;
7431 }
7432 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR"))
7433 {
7434 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
7435 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayPlanePropertiesKHR : nullptr;
7436 }
7437 if (!strcmp(name, "vkGetDisplayPlaneSupportedDisplaysKHR"))
7438 {
7439 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
7440 return hasExt ? (void*)entry_vkGetDisplayPlaneSupportedDisplaysKHR : nullptr;
7441 }
7442 if (!strcmp(name, "vkGetDisplayModePropertiesKHR"))
7443 {
7444 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
7445 return hasExt ? (void*)entry_vkGetDisplayModePropertiesKHR : nullptr;
7446 }
7447 if (!strcmp(name, "vkCreateDisplayModeKHR"))
7448 {
7449 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
7450 return hasExt ? (void*)entry_vkCreateDisplayModeKHR : nullptr;
7451 }
7452 if (!strcmp(name, "vkGetDisplayPlaneCapabilitiesKHR"))
7453 {
7454 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
7455 return hasExt ? (void*)entry_vkGetDisplayPlaneCapabilitiesKHR : nullptr;
7456 }
7457 if (!strcmp(name, "vkCreateDisplayPlaneSurfaceKHR"))
7458 {
7459 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
7460 return hasExt ? (void*)entry_vkCreateDisplayPlaneSurfaceKHR : nullptr;
7461 }
7462#endif
7463#ifdef VK_KHR_display_swapchain
7464 if (!strcmp(name, "vkCreateSharedSwapchainsKHR"))
7465 {
7466 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display_swapchain");
7467 return hasExt ? (void*)entry_vkCreateSharedSwapchainsKHR : nullptr;
7468 }
7469#endif
7470#ifdef VK_KHR_xlib_surface
7471 if (!strcmp(name, "vkCreateXlibSurfaceKHR"))
7472 {
7473 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_xlib_surface");
7474 return hasExt ? (void*)entry_vkCreateXlibSurfaceKHR : nullptr;
7475 }
7476 if (!strcmp(name, "vkGetPhysicalDeviceXlibPresentationSupportKHR"))
7477 {
7478 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_xlib_surface");
7479 return hasExt ? (void*)entry_vkGetPhysicalDeviceXlibPresentationSupportKHR : nullptr;
7480 }
7481#endif
7482#ifdef VK_KHR_xcb_surface
7483 if (!strcmp(name, "vkCreateXcbSurfaceKHR"))
7484 {
7485 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_xcb_surface");
7486 return hasExt ? (void*)entry_vkCreateXcbSurfaceKHR : nullptr;
7487 }
7488 if (!strcmp(name, "vkGetPhysicalDeviceXcbPresentationSupportKHR"))
7489 {
7490 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_xcb_surface");
7491 return hasExt ? (void*)entry_vkGetPhysicalDeviceXcbPresentationSupportKHR : nullptr;
7492 }
7493#endif
7494#ifdef VK_KHR_wayland_surface
7495 if (!strcmp(name, "vkCreateWaylandSurfaceKHR"))
7496 {
7497 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_wayland_surface");
7498 return hasExt ? (void*)entry_vkCreateWaylandSurfaceKHR : nullptr;
7499 }
7500 if (!strcmp(name, "vkGetPhysicalDeviceWaylandPresentationSupportKHR"))
7501 {
7502 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_wayland_surface");
7503 return hasExt ? (void*)entry_vkGetPhysicalDeviceWaylandPresentationSupportKHR : nullptr;
7504 }
7505#endif
7506#ifdef VK_KHR_mir_surface
7507 if (!strcmp(name, "vkCreateMirSurfaceKHR"))
7508 {
7509 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_mir_surface");
7510 return hasExt ? (void*)entry_vkCreateMirSurfaceKHR : nullptr;
7511 }
7512 if (!strcmp(name, "vkGetPhysicalDeviceMirPresentationSupportKHR"))
7513 {
7514 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_mir_surface");
7515 return hasExt ? (void*)entry_vkGetPhysicalDeviceMirPresentationSupportKHR : nullptr;
7516 }
7517#endif
7518#ifdef VK_KHR_android_surface
7519 if (!strcmp(name, "vkCreateAndroidSurfaceKHR"))
7520 {
7521 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_android_surface");
7522 return hasExt ? (void*)entry_vkCreateAndroidSurfaceKHR : nullptr;
7523 }
7524#endif
7525#ifdef VK_KHR_win32_surface
7526 if (!strcmp(name, "vkCreateWin32SurfaceKHR"))
7527 {
7528 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_win32_surface");
7529 return hasExt ? (void*)entry_vkCreateWin32SurfaceKHR : nullptr;
7530 }
7531 if (!strcmp(name, "vkGetPhysicalDeviceWin32PresentationSupportKHR"))
7532 {
7533 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_win32_surface");
7534 return hasExt ? (void*)entry_vkGetPhysicalDeviceWin32PresentationSupportKHR : nullptr;
7535 }
7536#endif
7537#ifdef VK_KHR_get_physical_device_properties2
7538 if (!strcmp(name, "vkGetPhysicalDeviceFeatures2KHR"))
7539 {
7540 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
7541 return hasExt ? (void*)entry_vkGetPhysicalDeviceFeatures2KHR : nullptr;
7542 }
7543 if (!strcmp(name, "vkGetPhysicalDeviceProperties2KHR"))
7544 {
7545 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
7546 return hasExt ? (void*)entry_vkGetPhysicalDeviceProperties2KHR : nullptr;
7547 }
7548 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties2KHR"))
7549 {
7550 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
7551 return hasExt ? (void*)entry_vkGetPhysicalDeviceFormatProperties2KHR : nullptr;
7552 }
7553 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties2KHR"))
7554 {
7555 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
7556 return hasExt ? (void*)entry_vkGetPhysicalDeviceImageFormatProperties2KHR : nullptr;
7557 }
7558 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties2KHR"))
7559 {
7560 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
7561 return hasExt ? (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties2KHR : nullptr;
7562 }
7563 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties2KHR"))
7564 {
7565 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
7566 return hasExt ? (void*)entry_vkGetPhysicalDeviceMemoryProperties2KHR : nullptr;
7567 }
7568 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR"))
7569 {
7570 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
7571 return hasExt ? (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties2KHR : nullptr;
7572 }
7573#endif
7574#ifdef VK_KHR_device_group
7575 if (!strcmp(name, "vkGetDeviceGroupPeerMemoryFeaturesKHR"))
7576 {
7577 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_device_group");
7578 return hasExt ? (void*)entry_vkGetDeviceGroupPeerMemoryFeaturesKHR : nullptr;
7579 }
7580 if (!strcmp(name, "vkCmdSetDeviceMaskKHR"))
7581 {
7582 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_device_group");
7583 return hasExt ? (void*)entry_vkCmdSetDeviceMaskKHR : nullptr;
7584 }
7585 if (!strcmp(name, "vkCmdDispatchBaseKHR"))
7586 {
7587 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_device_group");
7588 return hasExt ? (void*)entry_vkCmdDispatchBaseKHR : nullptr;
7589 }
7590#endif
7591#ifdef VK_KHR_maintenance1
7592 if (!strcmp(name, "vkTrimCommandPoolKHR"))
7593 {
7594 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_maintenance1");
7595 return hasExt ? (void*)entry_vkTrimCommandPoolKHR : nullptr;
7596 }
7597#endif
7598#ifdef VK_KHR_device_group_creation
7599 if (!strcmp(name, "vkEnumeratePhysicalDeviceGroupsKHR"))
7600 {
7601 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_device_group_creation");
7602 return hasExt ? (void*)entry_vkEnumeratePhysicalDeviceGroupsKHR : nullptr;
7603 }
7604#endif
7605#ifdef VK_KHR_external_memory_capabilities
7606 if (!strcmp(name, "vkGetPhysicalDeviceExternalBufferPropertiesKHR"))
7607 {
7608 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_memory_capabilities");
7609 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalBufferPropertiesKHR : nullptr;
7610 }
7611#endif
7612#ifdef VK_KHR_external_memory_win32
7613 if (!strcmp(name, "vkGetMemoryWin32HandleKHR"))
7614 {
7615 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_memory_win32");
7616 return hasExt ? (void*)entry_vkGetMemoryWin32HandleKHR : nullptr;
7617 }
7618 if (!strcmp(name, "vkGetMemoryWin32HandlePropertiesKHR"))
7619 {
7620 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_memory_win32");
7621 return hasExt ? (void*)entry_vkGetMemoryWin32HandlePropertiesKHR : nullptr;
7622 }
7623#endif
7624#ifdef VK_KHR_external_memory_fd
7625 if (!strcmp(name, "vkGetMemoryFdKHR"))
7626 {
7627 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_memory_fd");
7628 return hasExt ? (void*)entry_vkGetMemoryFdKHR : nullptr;
7629 }
7630 if (!strcmp(name, "vkGetMemoryFdPropertiesKHR"))
7631 {
7632 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_memory_fd");
7633 return hasExt ? (void*)entry_vkGetMemoryFdPropertiesKHR : nullptr;
7634 }
7635#endif
7636#ifdef VK_KHR_external_semaphore_capabilities
7637 if (!strcmp(name, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR"))
7638 {
7639 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_semaphore_capabilities");
7640 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR : nullptr;
7641 }
7642#endif
7643#ifdef VK_KHR_external_semaphore_win32
7644 if (!strcmp(name, "vkImportSemaphoreWin32HandleKHR"))
7645 {
7646 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_semaphore_win32");
7647 return hasExt ? (void*)entry_vkImportSemaphoreWin32HandleKHR : nullptr;
7648 }
7649 if (!strcmp(name, "vkGetSemaphoreWin32HandleKHR"))
7650 {
7651 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_semaphore_win32");
7652 return hasExt ? (void*)entry_vkGetSemaphoreWin32HandleKHR : nullptr;
7653 }
7654#endif
7655#ifdef VK_KHR_external_semaphore_fd
7656 if (!strcmp(name, "vkImportSemaphoreFdKHR"))
7657 {
7658 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_semaphore_fd");
7659 return hasExt ? (void*)entry_vkImportSemaphoreFdKHR : nullptr;
7660 }
7661 if (!strcmp(name, "vkGetSemaphoreFdKHR"))
7662 {
7663 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_semaphore_fd");
7664 return hasExt ? (void*)entry_vkGetSemaphoreFdKHR : nullptr;
7665 }
7666#endif
7667#ifdef VK_KHR_push_descriptor
7668 if (!strcmp(name, "vkCmdPushDescriptorSetKHR"))
7669 {
7670 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_push_descriptor");
7671 return hasExt ? (void*)entry_vkCmdPushDescriptorSetKHR : nullptr;
7672 }
7673 if (!strcmp(name, "vkCmdPushDescriptorSetWithTemplateKHR"))
7674 {
7675 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_push_descriptor");
7676 return hasExt ? (void*)entry_vkCmdPushDescriptorSetWithTemplateKHR : nullptr;
7677 }
7678#endif
7679#ifdef VK_KHR_descriptor_update_template
7680 if (!strcmp(name, "vkCreateDescriptorUpdateTemplateKHR"))
7681 {
7682 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_descriptor_update_template");
7683 return hasExt ? (void*)entry_vkCreateDescriptorUpdateTemplateKHR : nullptr;
7684 }
7685 if (!strcmp(name, "vkDestroyDescriptorUpdateTemplateKHR"))
7686 {
7687 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_descriptor_update_template");
7688 return hasExt ? (void*)entry_vkDestroyDescriptorUpdateTemplateKHR : nullptr;
7689 }
7690 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplateKHR"))
7691 {
7692 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_descriptor_update_template");
7693 return hasExt ? (void*)entry_vkUpdateDescriptorSetWithTemplateKHR : nullptr;
7694 }
7695#endif
7696#ifdef VK_KHR_create_renderpass2
7697 if (!strcmp(name, "vkCreateRenderPass2KHR"))
7698 {
7699 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_create_renderpass2");
7700 return hasExt ? (void*)entry_vkCreateRenderPass2KHR : nullptr;
7701 }
7702 if (!strcmp(name, "vkCmdBeginRenderPass2KHR"))
7703 {
7704 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_create_renderpass2");
7705 return hasExt ? (void*)entry_vkCmdBeginRenderPass2KHR : nullptr;
7706 }
7707 if (!strcmp(name, "vkCmdNextSubpass2KHR"))
7708 {
7709 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_create_renderpass2");
7710 return hasExt ? (void*)entry_vkCmdNextSubpass2KHR : nullptr;
7711 }
7712 if (!strcmp(name, "vkCmdEndRenderPass2KHR"))
7713 {
7714 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_create_renderpass2");
7715 return hasExt ? (void*)entry_vkCmdEndRenderPass2KHR : nullptr;
7716 }
7717#endif
7718#ifdef VK_KHR_shared_presentable_image
7719 if (!strcmp(name, "vkGetSwapchainStatusKHR"))
7720 {
7721 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_shared_presentable_image");
7722 return hasExt ? (void*)entry_vkGetSwapchainStatusKHR : nullptr;
7723 }
7724#endif
7725#ifdef VK_KHR_external_fence_capabilities
7726 if (!strcmp(name, "vkGetPhysicalDeviceExternalFencePropertiesKHR"))
7727 {
7728 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_fence_capabilities");
7729 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalFencePropertiesKHR : nullptr;
7730 }
7731#endif
7732#ifdef VK_KHR_external_fence_win32
7733 if (!strcmp(name, "vkImportFenceWin32HandleKHR"))
7734 {
7735 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_fence_win32");
7736 return hasExt ? (void*)entry_vkImportFenceWin32HandleKHR : nullptr;
7737 }
7738 if (!strcmp(name, "vkGetFenceWin32HandleKHR"))
7739 {
7740 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_fence_win32");
7741 return hasExt ? (void*)entry_vkGetFenceWin32HandleKHR : nullptr;
7742 }
7743#endif
7744#ifdef VK_KHR_external_fence_fd
7745 if (!strcmp(name, "vkImportFenceFdKHR"))
7746 {
7747 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_fence_fd");
7748 return hasExt ? (void*)entry_vkImportFenceFdKHR : nullptr;
7749 }
7750 if (!strcmp(name, "vkGetFenceFdKHR"))
7751 {
7752 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_fence_fd");
7753 return hasExt ? (void*)entry_vkGetFenceFdKHR : nullptr;
7754 }
7755#endif
7756#ifdef VK_KHR_get_surface_capabilities2
7757 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2KHR"))
7758 {
7759 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_surface_capabilities2");
7760 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceCapabilities2KHR : nullptr;
7761 }
7762 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceFormats2KHR"))
7763 {
7764 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_surface_capabilities2");
7765 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceFormats2KHR : nullptr;
7766 }
7767#endif
7768#ifdef VK_KHR_get_display_properties2
7769 if (!strcmp(name, "vkGetPhysicalDeviceDisplayProperties2KHR"))
7770 {
7771 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_display_properties2");
7772 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayProperties2KHR : nullptr;
7773 }
7774 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR"))
7775 {
7776 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_display_properties2");
7777 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayPlaneProperties2KHR : nullptr;
7778 }
7779 if (!strcmp(name, "vkGetDisplayModeProperties2KHR"))
7780 {
7781 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_display_properties2");
7782 return hasExt ? (void*)entry_vkGetDisplayModeProperties2KHR : nullptr;
7783 }
7784 if (!strcmp(name, "vkGetDisplayPlaneCapabilities2KHR"))
7785 {
7786 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_display_properties2");
7787 return hasExt ? (void*)entry_vkGetDisplayPlaneCapabilities2KHR : nullptr;
7788 }
7789#endif
7790#ifdef VK_KHR_get_memory_requirements2
7791 if (!strcmp(name, "vkGetImageMemoryRequirements2KHR"))
7792 {
7793 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_memory_requirements2");
7794 return hasExt ? (void*)entry_vkGetImageMemoryRequirements2KHR : nullptr;
7795 }
7796 if (!strcmp(name, "vkGetBufferMemoryRequirements2KHR"))
7797 {
7798 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_memory_requirements2");
7799 return hasExt ? (void*)entry_vkGetBufferMemoryRequirements2KHR : nullptr;
7800 }
7801 if (!strcmp(name, "vkGetImageSparseMemoryRequirements2KHR"))
7802 {
7803 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_memory_requirements2");
7804 return hasExt ? (void*)entry_vkGetImageSparseMemoryRequirements2KHR : nullptr;
7805 }
7806#endif
7807#ifdef VK_KHR_sampler_ycbcr_conversion
7808 if (!strcmp(name, "vkCreateSamplerYcbcrConversionKHR"))
7809 {
7810 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_sampler_ycbcr_conversion");
7811 return hasExt ? (void*)entry_vkCreateSamplerYcbcrConversionKHR : nullptr;
7812 }
7813 if (!strcmp(name, "vkDestroySamplerYcbcrConversionKHR"))
7814 {
7815 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_sampler_ycbcr_conversion");
7816 return hasExt ? (void*)entry_vkDestroySamplerYcbcrConversionKHR : nullptr;
7817 }
7818#endif
7819#ifdef VK_KHR_bind_memory2
7820 if (!strcmp(name, "vkBindBufferMemory2KHR"))
7821 {
7822 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_bind_memory2");
7823 return hasExt ? (void*)entry_vkBindBufferMemory2KHR : nullptr;
7824 }
7825 if (!strcmp(name, "vkBindImageMemory2KHR"))
7826 {
7827 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_bind_memory2");
7828 return hasExt ? (void*)entry_vkBindImageMemory2KHR : nullptr;
7829 }
7830#endif
7831#ifdef VK_KHR_maintenance3
7832 if (!strcmp(name, "vkGetDescriptorSetLayoutSupportKHR"))
7833 {
7834 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_maintenance3");
7835 return hasExt ? (void*)entry_vkGetDescriptorSetLayoutSupportKHR : nullptr;
7836 }
7837#endif
7838#ifdef VK_KHR_draw_indirect_count
7839 if (!strcmp(name, "vkCmdDrawIndirectCountKHR"))
7840 {
7841 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_draw_indirect_count");
7842 return hasExt ? (void*)entry_vkCmdDrawIndirectCountKHR : nullptr;
7843 }
7844 if (!strcmp(name, "vkCmdDrawIndexedIndirectCountKHR"))
7845 {
7846 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_draw_indirect_count");
7847 return hasExt ? (void*)entry_vkCmdDrawIndexedIndirectCountKHR : nullptr;
7848 }
7849#endif
7850#ifdef VK_ANDROID_native_buffer
7851 if (!strcmp(name, "vkGetSwapchainGrallocUsageANDROID"))
7852 {
7853 bool hasExt = resources->hasDeviceExtension(device, "VK_ANDROID_native_buffer");
7854 return hasExt ? (void*)entry_vkGetSwapchainGrallocUsageANDROID : nullptr;
7855 }
7856 if (!strcmp(name, "vkAcquireImageANDROID"))
7857 {
7858 bool hasExt = resources->hasDeviceExtension(device, "VK_ANDROID_native_buffer");
7859 return hasExt ? (void*)entry_vkAcquireImageANDROID : nullptr;
7860 }
7861 if (!strcmp(name, "vkQueueSignalReleaseImageANDROID"))
7862 {
7863 bool hasExt = resources->hasDeviceExtension(device, "VK_ANDROID_native_buffer");
7864 return hasExt ? (void*)entry_vkQueueSignalReleaseImageANDROID : nullptr;
7865 }
7866#endif
7867#ifdef VK_EXT_debug_report
7868 if (!strcmp(name, "vkCreateDebugReportCallbackEXT"))
7869 {
7870 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_report");
7871 return hasExt ? (void*)entry_vkCreateDebugReportCallbackEXT : nullptr;
7872 }
7873 if (!strcmp(name, "vkDestroyDebugReportCallbackEXT"))
7874 {
7875 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_report");
7876 return hasExt ? (void*)entry_vkDestroyDebugReportCallbackEXT : nullptr;
7877 }
7878 if (!strcmp(name, "vkDebugReportMessageEXT"))
7879 {
7880 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_report");
7881 return hasExt ? (void*)entry_vkDebugReportMessageEXT : nullptr;
7882 }
7883#endif
7884#ifdef VK_EXT_debug_marker
7885 if (!strcmp(name, "vkDebugMarkerSetObjectTagEXT"))
7886 {
7887 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_marker");
7888 return hasExt ? (void*)entry_vkDebugMarkerSetObjectTagEXT : nullptr;
7889 }
7890 if (!strcmp(name, "vkDebugMarkerSetObjectNameEXT"))
7891 {
7892 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_marker");
7893 return hasExt ? (void*)entry_vkDebugMarkerSetObjectNameEXT : nullptr;
7894 }
7895 if (!strcmp(name, "vkCmdDebugMarkerBeginEXT"))
7896 {
7897 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_marker");
7898 return hasExt ? (void*)entry_vkCmdDebugMarkerBeginEXT : nullptr;
7899 }
7900 if (!strcmp(name, "vkCmdDebugMarkerEndEXT"))
7901 {
7902 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_marker");
7903 return hasExt ? (void*)entry_vkCmdDebugMarkerEndEXT : nullptr;
7904 }
7905 if (!strcmp(name, "vkCmdDebugMarkerInsertEXT"))
7906 {
7907 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_marker");
7908 return hasExt ? (void*)entry_vkCmdDebugMarkerInsertEXT : nullptr;
7909 }
7910#endif
7911#ifdef VK_AMD_draw_indirect_count
7912 if (!strcmp(name, "vkCmdDrawIndirectCountAMD"))
7913 {
7914 bool hasExt = resources->hasDeviceExtension(device, "VK_AMD_draw_indirect_count");
7915 return hasExt ? (void*)entry_vkCmdDrawIndirectCountAMD : nullptr;
7916 }
7917 if (!strcmp(name, "vkCmdDrawIndexedIndirectCountAMD"))
7918 {
7919 bool hasExt = resources->hasDeviceExtension(device, "VK_AMD_draw_indirect_count");
7920 return hasExt ? (void*)entry_vkCmdDrawIndexedIndirectCountAMD : nullptr;
7921 }
7922#endif
7923#ifdef VK_AMD_shader_info
7924 if (!strcmp(name, "vkGetShaderInfoAMD"))
7925 {
7926 bool hasExt = resources->hasDeviceExtension(device, "VK_AMD_shader_info");
7927 return hasExt ? (void*)entry_vkGetShaderInfoAMD : nullptr;
7928 }
7929#endif
7930#ifdef VK_NV_external_memory_capabilities
7931 if (!strcmp(name, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV"))
7932 {
7933 bool hasExt = resources->hasDeviceExtension(device, "VK_NV_external_memory_capabilities");
7934 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalImageFormatPropertiesNV : nullptr;
7935 }
7936#endif
7937#ifdef VK_NV_external_memory_win32
7938 if (!strcmp(name, "vkGetMemoryWin32HandleNV"))
7939 {
7940 bool hasExt = resources->hasDeviceExtension(device, "VK_NV_external_memory_win32");
7941 return hasExt ? (void*)entry_vkGetMemoryWin32HandleNV : nullptr;
7942 }
7943#endif
7944#ifdef VK_NN_vi_surface
7945 if (!strcmp(name, "vkCreateViSurfaceNN"))
7946 {
7947 bool hasExt = resources->hasDeviceExtension(device, "VK_NN_vi_surface");
7948 return hasExt ? (void*)entry_vkCreateViSurfaceNN : nullptr;
7949 }
7950#endif
7951#ifdef VK_EXT_conditional_rendering
7952 if (!strcmp(name, "vkCmdBeginConditionalRenderingEXT"))
7953 {
7954 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_conditional_rendering");
7955 return hasExt ? (void*)entry_vkCmdBeginConditionalRenderingEXT : nullptr;
7956 }
7957 if (!strcmp(name, "vkCmdEndConditionalRenderingEXT"))
7958 {
7959 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_conditional_rendering");
7960 return hasExt ? (void*)entry_vkCmdEndConditionalRenderingEXT : nullptr;
7961 }
7962#endif
7963#ifdef VK_NVX_device_generated_commands
7964 if (!strcmp(name, "vkCmdProcessCommandsNVX"))
7965 {
7966 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
7967 return hasExt ? (void*)entry_vkCmdProcessCommandsNVX : nullptr;
7968 }
7969 if (!strcmp(name, "vkCmdReserveSpaceForCommandsNVX"))
7970 {
7971 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
7972 return hasExt ? (void*)entry_vkCmdReserveSpaceForCommandsNVX : nullptr;
7973 }
7974 if (!strcmp(name, "vkCreateIndirectCommandsLayoutNVX"))
7975 {
7976 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
7977 return hasExt ? (void*)entry_vkCreateIndirectCommandsLayoutNVX : nullptr;
7978 }
7979 if (!strcmp(name, "vkDestroyIndirectCommandsLayoutNVX"))
7980 {
7981 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
7982 return hasExt ? (void*)entry_vkDestroyIndirectCommandsLayoutNVX : nullptr;
7983 }
7984 if (!strcmp(name, "vkCreateObjectTableNVX"))
7985 {
7986 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
7987 return hasExt ? (void*)entry_vkCreateObjectTableNVX : nullptr;
7988 }
7989 if (!strcmp(name, "vkDestroyObjectTableNVX"))
7990 {
7991 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
7992 return hasExt ? (void*)entry_vkDestroyObjectTableNVX : nullptr;
7993 }
7994 if (!strcmp(name, "vkRegisterObjectsNVX"))
7995 {
7996 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
7997 return hasExt ? (void*)entry_vkRegisterObjectsNVX : nullptr;
7998 }
7999 if (!strcmp(name, "vkUnregisterObjectsNVX"))
8000 {
8001 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
8002 return hasExt ? (void*)entry_vkUnregisterObjectsNVX : nullptr;
8003 }
8004 if (!strcmp(name, "vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX"))
8005 {
8006 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
8007 return hasExt ? (void*)entry_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX : nullptr;
8008 }
8009#endif
8010#ifdef VK_NV_clip_space_w_scaling
8011 if (!strcmp(name, "vkCmdSetViewportWScalingNV"))
8012 {
8013 bool hasExt = resources->hasDeviceExtension(device, "VK_NV_clip_space_w_scaling");
8014 return hasExt ? (void*)entry_vkCmdSetViewportWScalingNV : nullptr;
8015 }
8016#endif
8017#ifdef VK_EXT_direct_mode_display
8018 if (!strcmp(name, "vkReleaseDisplayEXT"))
8019 {
8020 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_direct_mode_display");
8021 return hasExt ? (void*)entry_vkReleaseDisplayEXT : nullptr;
8022 }
8023#endif
8024#ifdef VK_EXT_acquire_xlib_display
8025 if (!strcmp(name, "vkAcquireXlibDisplayEXT"))
8026 {
8027 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_acquire_xlib_display");
8028 return hasExt ? (void*)entry_vkAcquireXlibDisplayEXT : nullptr;
8029 }
8030 if (!strcmp(name, "vkGetRandROutputDisplayEXT"))
8031 {
8032 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_acquire_xlib_display");
8033 return hasExt ? (void*)entry_vkGetRandROutputDisplayEXT : nullptr;
8034 }
8035#endif
8036#ifdef VK_EXT_display_surface_counter
8037 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2EXT"))
8038 {
8039 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_display_surface_counter");
8040 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceCapabilities2EXT : nullptr;
8041 }
8042#endif
8043#ifdef VK_EXT_display_control
8044 if (!strcmp(name, "vkDisplayPowerControlEXT"))
8045 {
8046 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_display_control");
8047 return hasExt ? (void*)entry_vkDisplayPowerControlEXT : nullptr;
8048 }
8049 if (!strcmp(name, "vkRegisterDeviceEventEXT"))
8050 {
8051 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_display_control");
8052 return hasExt ? (void*)entry_vkRegisterDeviceEventEXT : nullptr;
8053 }
8054 if (!strcmp(name, "vkRegisterDisplayEventEXT"))
8055 {
8056 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_display_control");
8057 return hasExt ? (void*)entry_vkRegisterDisplayEventEXT : nullptr;
8058 }
8059 if (!strcmp(name, "vkGetSwapchainCounterEXT"))
8060 {
8061 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_display_control");
8062 return hasExt ? (void*)entry_vkGetSwapchainCounterEXT : nullptr;
8063 }
8064#endif
8065#ifdef VK_GOOGLE_display_timing
8066 if (!strcmp(name, "vkGetRefreshCycleDurationGOOGLE"))
8067 {
8068 bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_display_timing");
8069 return hasExt ? (void*)entry_vkGetRefreshCycleDurationGOOGLE : nullptr;
8070 }
8071 if (!strcmp(name, "vkGetPastPresentationTimingGOOGLE"))
8072 {
8073 bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_display_timing");
8074 return hasExt ? (void*)entry_vkGetPastPresentationTimingGOOGLE : nullptr;
8075 }
8076#endif
8077#ifdef VK_EXT_discard_rectangles
8078 if (!strcmp(name, "vkCmdSetDiscardRectangleEXT"))
8079 {
8080 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_discard_rectangles");
8081 return hasExt ? (void*)entry_vkCmdSetDiscardRectangleEXT : nullptr;
8082 }
8083#endif
8084#ifdef VK_EXT_hdr_metadata
8085 if (!strcmp(name, "vkSetHdrMetadataEXT"))
8086 {
8087 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_hdr_metadata");
8088 return hasExt ? (void*)entry_vkSetHdrMetadataEXT : nullptr;
8089 }
8090#endif
8091#ifdef VK_MVK_ios_surface
8092 if (!strcmp(name, "vkCreateIOSSurfaceMVK"))
8093 {
8094 bool hasExt = resources->hasDeviceExtension(device, "VK_MVK_ios_surface");
8095 return hasExt ? (void*)entry_vkCreateIOSSurfaceMVK : nullptr;
8096 }
8097#endif
8098#ifdef VK_MVK_macos_surface
8099 if (!strcmp(name, "vkCreateMacOSSurfaceMVK"))
8100 {
8101 bool hasExt = resources->hasDeviceExtension(device, "VK_MVK_macos_surface");
8102 return hasExt ? (void*)entry_vkCreateMacOSSurfaceMVK : nullptr;
8103 }
8104#endif
8105#ifdef VK_EXT_debug_utils
8106 if (!strcmp(name, "vkSetDebugUtilsObjectNameEXT"))
8107 {
8108 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8109 return hasExt ? (void*)entry_vkSetDebugUtilsObjectNameEXT : nullptr;
8110 }
8111 if (!strcmp(name, "vkSetDebugUtilsObjectTagEXT"))
8112 {
8113 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8114 return hasExt ? (void*)entry_vkSetDebugUtilsObjectTagEXT : nullptr;
8115 }
8116 if (!strcmp(name, "vkQueueBeginDebugUtilsLabelEXT"))
8117 {
8118 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8119 return hasExt ? (void*)entry_vkQueueBeginDebugUtilsLabelEXT : nullptr;
8120 }
8121 if (!strcmp(name, "vkQueueEndDebugUtilsLabelEXT"))
8122 {
8123 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8124 return hasExt ? (void*)entry_vkQueueEndDebugUtilsLabelEXT : nullptr;
8125 }
8126 if (!strcmp(name, "vkQueueInsertDebugUtilsLabelEXT"))
8127 {
8128 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8129 return hasExt ? (void*)entry_vkQueueInsertDebugUtilsLabelEXT : nullptr;
8130 }
8131 if (!strcmp(name, "vkCmdBeginDebugUtilsLabelEXT"))
8132 {
8133 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8134 return hasExt ? (void*)entry_vkCmdBeginDebugUtilsLabelEXT : nullptr;
8135 }
8136 if (!strcmp(name, "vkCmdEndDebugUtilsLabelEXT"))
8137 {
8138 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8139 return hasExt ? (void*)entry_vkCmdEndDebugUtilsLabelEXT : nullptr;
8140 }
8141 if (!strcmp(name, "vkCmdInsertDebugUtilsLabelEXT"))
8142 {
8143 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8144 return hasExt ? (void*)entry_vkCmdInsertDebugUtilsLabelEXT : nullptr;
8145 }
8146 if (!strcmp(name, "vkCreateDebugUtilsMessengerEXT"))
8147 {
8148 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8149 return hasExt ? (void*)entry_vkCreateDebugUtilsMessengerEXT : nullptr;
8150 }
8151 if (!strcmp(name, "vkDestroyDebugUtilsMessengerEXT"))
8152 {
8153 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8154 return hasExt ? (void*)entry_vkDestroyDebugUtilsMessengerEXT : nullptr;
8155 }
8156 if (!strcmp(name, "vkSubmitDebugUtilsMessageEXT"))
8157 {
8158 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8159 return hasExt ? (void*)entry_vkSubmitDebugUtilsMessageEXT : nullptr;
8160 }
8161#endif
8162#ifdef VK_ANDROID_external_memory_android_hardware_buffer
8163 if (!strcmp(name, "vkGetAndroidHardwareBufferPropertiesANDROID"))
8164 {
8165 bool hasExt = resources->hasDeviceExtension(device, "VK_ANDROID_external_memory_android_hardware_buffer");
8166 return hasExt ? (void*)entry_vkGetAndroidHardwareBufferPropertiesANDROID : nullptr;
8167 }
8168 if (!strcmp(name, "vkGetMemoryAndroidHardwareBufferANDROID"))
8169 {
8170 bool hasExt = resources->hasDeviceExtension(device, "VK_ANDROID_external_memory_android_hardware_buffer");
8171 return hasExt ? (void*)entry_vkGetMemoryAndroidHardwareBufferANDROID : nullptr;
8172 }
8173#endif
8174#ifdef VK_EXT_sample_locations
8175 if (!strcmp(name, "vkCmdSetSampleLocationsEXT"))
8176 {
8177 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_sample_locations");
8178 return hasExt ? (void*)entry_vkCmdSetSampleLocationsEXT : nullptr;
8179 }
8180 if (!strcmp(name, "vkGetPhysicalDeviceMultisamplePropertiesEXT"))
8181 {
8182 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_sample_locations");
8183 return hasExt ? (void*)entry_vkGetPhysicalDeviceMultisamplePropertiesEXT : nullptr;
8184 }
8185#endif
8186#ifdef VK_EXT_validation_cache
8187 if (!strcmp(name, "vkCreateValidationCacheEXT"))
8188 {
8189 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_validation_cache");
8190 return hasExt ? (void*)entry_vkCreateValidationCacheEXT : nullptr;
8191 }
8192 if (!strcmp(name, "vkDestroyValidationCacheEXT"))
8193 {
8194 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_validation_cache");
8195 return hasExt ? (void*)entry_vkDestroyValidationCacheEXT : nullptr;
8196 }
8197 if (!strcmp(name, "vkMergeValidationCachesEXT"))
8198 {
8199 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_validation_cache");
8200 return hasExt ? (void*)entry_vkMergeValidationCachesEXT : nullptr;
8201 }
8202 if (!strcmp(name, "vkGetValidationCacheDataEXT"))
8203 {
8204 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_validation_cache");
8205 return hasExt ? (void*)entry_vkGetValidationCacheDataEXT : nullptr;
8206 }
8207#endif
8208#ifdef VK_EXT_external_memory_host
8209 if (!strcmp(name, "vkGetMemoryHostPointerPropertiesEXT"))
8210 {
8211 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_external_memory_host");
8212 return hasExt ? (void*)entry_vkGetMemoryHostPointerPropertiesEXT : nullptr;
8213 }
8214#endif
8215#ifdef VK_AMD_buffer_marker
8216 if (!strcmp(name, "vkCmdWriteBufferMarkerAMD"))
8217 {
8218 bool hasExt = resources->hasDeviceExtension(device, "VK_AMD_buffer_marker");
8219 return hasExt ? (void*)entry_vkCmdWriteBufferMarkerAMD : nullptr;
8220 }
8221#endif
8222#ifdef VK_NV_device_diagnostic_checkpoints
8223 if (!strcmp(name, "vkCmdSetCheckpointNV"))
8224 {
8225 bool hasExt = resources->hasDeviceExtension(device, "VK_NV_device_diagnostic_checkpoints");
8226 return hasExt ? (void*)entry_vkCmdSetCheckpointNV : nullptr;
8227 }
8228 if (!strcmp(name, "vkGetQueueCheckpointDataNV"))
8229 {
8230 bool hasExt = resources->hasDeviceExtension(device, "VK_NV_device_diagnostic_checkpoints");
8231 return hasExt ? (void*)entry_vkGetQueueCheckpointDataNV : nullptr;
8232 }
8233#endif
8234#ifdef VK_GOOGLE_address_space
8235 if (!strcmp(name, "vkMapMemoryIntoAddressSpaceGOOGLE"))
8236 {
8237 bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_address_space");
8238 return hasExt ? (void*)entry_vkMapMemoryIntoAddressSpaceGOOGLE : nullptr;
Lingfeng Yang5c63afd2018-12-22 01:21:14 -08008239 }
8240#endif
Lingfeng Yangae7e1b32019-02-19 14:07:39 -08008241#ifdef VK_GOOGLE_color_buffer
8242 if (!strcmp(name, "vkRegisterImageColorBufferGOOGLE"))
8243 {
8244 bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_color_buffer");
8245 return hasExt ? (void*)entry_vkRegisterImageColorBufferGOOGLE : nullptr;
8246 }
8247 if (!strcmp(name, "vkRegisterBufferColorBufferGOOGLE"))
8248 {
8249 bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_color_buffer");
8250 return hasExt ? (void*)entry_vkRegisterBufferColorBufferGOOGLE : nullptr;
8251 }
8252#endif
Lingfeng Yang0b81df22018-11-05 21:40:30 -08008253 return nullptr;
8254}
8255
8256} // namespace goldfish_vk