blob: 3248d766045132d63d6ebbb1e1a70f76797e0c1a [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
Lingfeng Yang0b81df22018-11-05 21:40:30 -080039
40
41namespace goldfish_vk {
42
43#ifdef VK_VERSION_1_0
44static VkResult entry_vkCreateInstance(
45 const VkInstanceCreateInfo* pCreateInfo,
46 const VkAllocationCallbacks* pAllocator,
47 VkInstance* pInstance)
48{
Lingfeng Yang42ac1792019-02-22 20:13:44 -080049 AEMU_SCOPED_TRACE("vkCreateInstance");
Lingfeng Yang0b81df22018-11-05 21:40:30 -080050 auto vkEnc = HostConnection::get()->vkEncoder();
51 VkResult vkCreateInstance_VkResult_return = (VkResult)0;
52 vkCreateInstance_VkResult_return = vkEnc->vkCreateInstance(pCreateInfo, pAllocator, pInstance);
53 return vkCreateInstance_VkResult_return;
54}
55static void entry_vkDestroyInstance(
56 VkInstance instance,
57 const VkAllocationCallbacks* pAllocator)
58{
Lingfeng Yang42ac1792019-02-22 20:13:44 -080059 AEMU_SCOPED_TRACE("vkDestroyInstance");
Lingfeng Yang0b81df22018-11-05 21:40:30 -080060 auto vkEnc = HostConnection::get()->vkEncoder();
61 vkEnc->vkDestroyInstance(instance, pAllocator);
62}
63static VkResult entry_vkEnumeratePhysicalDevices(
64 VkInstance instance,
65 uint32_t* pPhysicalDeviceCount,
66 VkPhysicalDevice* pPhysicalDevices)
67{
Lingfeng Yang42ac1792019-02-22 20:13:44 -080068 AEMU_SCOPED_TRACE("vkEnumeratePhysicalDevices");
Lingfeng Yang0b81df22018-11-05 21:40:30 -080069 auto vkEnc = HostConnection::get()->vkEncoder();
70 VkResult vkEnumeratePhysicalDevices_VkResult_return = (VkResult)0;
Lingfeng Yangb64ca452019-02-14 22:04:28 -080071 auto resources = ResourceTracker::get();
72 vkEnumeratePhysicalDevices_VkResult_return = resources->on_vkEnumeratePhysicalDevices(vkEnc, VK_SUCCESS, instance, pPhysicalDeviceCount, pPhysicalDevices);
Lingfeng Yang0b81df22018-11-05 21:40:30 -080073 return vkEnumeratePhysicalDevices_VkResult_return;
74}
75static void entry_vkGetPhysicalDeviceFeatures(
76 VkPhysicalDevice physicalDevice,
77 VkPhysicalDeviceFeatures* pFeatures)
78{
Lingfeng Yang42ac1792019-02-22 20:13:44 -080079 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFeatures");
Lingfeng Yang0b81df22018-11-05 21:40:30 -080080 auto vkEnc = HostConnection::get()->vkEncoder();
81 vkEnc->vkGetPhysicalDeviceFeatures(physicalDevice, pFeatures);
82}
83static void entry_vkGetPhysicalDeviceFormatProperties(
84 VkPhysicalDevice physicalDevice,
85 VkFormat format,
86 VkFormatProperties* pFormatProperties)
87{
Lingfeng Yang42ac1792019-02-22 20:13:44 -080088 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFormatProperties");
Lingfeng Yang0b81df22018-11-05 21:40:30 -080089 auto vkEnc = HostConnection::get()->vkEncoder();
90 vkEnc->vkGetPhysicalDeviceFormatProperties(physicalDevice, format, pFormatProperties);
91}
92static VkResult entry_vkGetPhysicalDeviceImageFormatProperties(
93 VkPhysicalDevice physicalDevice,
94 VkFormat format,
95 VkImageType type,
96 VkImageTiling tiling,
97 VkImageUsageFlags usage,
98 VkImageCreateFlags flags,
99 VkImageFormatProperties* pImageFormatProperties)
100{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800101 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceImageFormatProperties");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800102 auto vkEnc = HostConnection::get()->vkEncoder();
103 VkResult vkGetPhysicalDeviceImageFormatProperties_VkResult_return = (VkResult)0;
104 vkGetPhysicalDeviceImageFormatProperties_VkResult_return = vkEnc->vkGetPhysicalDeviceImageFormatProperties(physicalDevice, format, type, tiling, usage, flags, pImageFormatProperties);
105 return vkGetPhysicalDeviceImageFormatProperties_VkResult_return;
106}
107static void entry_vkGetPhysicalDeviceProperties(
108 VkPhysicalDevice physicalDevice,
109 VkPhysicalDeviceProperties* pProperties)
110{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800111 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceProperties");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800112 auto vkEnc = HostConnection::get()->vkEncoder();
113 vkEnc->vkGetPhysicalDeviceProperties(physicalDevice, pProperties);
114}
115static void entry_vkGetPhysicalDeviceQueueFamilyProperties(
116 VkPhysicalDevice physicalDevice,
117 uint32_t* pQueueFamilyPropertyCount,
118 VkQueueFamilyProperties* pQueueFamilyProperties)
119{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800120 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceQueueFamilyProperties");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800121 auto vkEnc = HostConnection::get()->vkEncoder();
122 vkEnc->vkGetPhysicalDeviceQueueFamilyProperties(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties);
123}
124static void entry_vkGetPhysicalDeviceMemoryProperties(
125 VkPhysicalDevice physicalDevice,
126 VkPhysicalDeviceMemoryProperties* pMemoryProperties)
127{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800128 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMemoryProperties");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800129 auto vkEnc = HostConnection::get()->vkEncoder();
130 vkEnc->vkGetPhysicalDeviceMemoryProperties(physicalDevice, pMemoryProperties);
131}
132static PFN_vkVoidFunction entry_vkGetInstanceProcAddr(
133 VkInstance instance,
134 const char* pName)
135{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800136 AEMU_SCOPED_TRACE("vkGetInstanceProcAddr");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800137 auto vkEnc = HostConnection::get()->vkEncoder();
138 PFN_vkVoidFunction vkGetInstanceProcAddr_PFN_vkVoidFunction_return = (PFN_vkVoidFunction)0;
139 vkGetInstanceProcAddr_PFN_vkVoidFunction_return = vkEnc->vkGetInstanceProcAddr(instance, pName);
140 return vkGetInstanceProcAddr_PFN_vkVoidFunction_return;
141}
142static PFN_vkVoidFunction entry_vkGetDeviceProcAddr(
143 VkDevice device,
144 const char* pName)
145{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800146 AEMU_SCOPED_TRACE("vkGetDeviceProcAddr");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800147 auto vkEnc = HostConnection::get()->vkEncoder();
148 PFN_vkVoidFunction vkGetDeviceProcAddr_PFN_vkVoidFunction_return = (PFN_vkVoidFunction)0;
149 vkGetDeviceProcAddr_PFN_vkVoidFunction_return = vkEnc->vkGetDeviceProcAddr(device, pName);
150 return vkGetDeviceProcAddr_PFN_vkVoidFunction_return;
151}
152static VkResult entry_vkCreateDevice(
153 VkPhysicalDevice physicalDevice,
154 const VkDeviceCreateInfo* pCreateInfo,
155 const VkAllocationCallbacks* pAllocator,
156 VkDevice* pDevice)
157{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800158 AEMU_SCOPED_TRACE("vkCreateDevice");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800159 auto vkEnc = HostConnection::get()->vkEncoder();
160 VkResult vkCreateDevice_VkResult_return = (VkResult)0;
161 vkCreateDevice_VkResult_return = vkEnc->vkCreateDevice(physicalDevice, pCreateInfo, pAllocator, pDevice);
162 return vkCreateDevice_VkResult_return;
163}
164static void entry_vkDestroyDevice(
165 VkDevice device,
166 const VkAllocationCallbacks* pAllocator)
167{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800168 AEMU_SCOPED_TRACE("vkDestroyDevice");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800169 auto vkEnc = HostConnection::get()->vkEncoder();
170 vkEnc->vkDestroyDevice(device, pAllocator);
171}
172static VkResult entry_vkEnumerateInstanceExtensionProperties(
173 const char* pLayerName,
174 uint32_t* pPropertyCount,
175 VkExtensionProperties* pProperties)
176{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800177 AEMU_SCOPED_TRACE("vkEnumerateInstanceExtensionProperties");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800178 auto vkEnc = HostConnection::get()->vkEncoder();
179 VkResult vkEnumerateInstanceExtensionProperties_VkResult_return = (VkResult)0;
Lingfeng Yang154a33c2019-01-29 19:06:23 -0800180 auto resources = ResourceTracker::get();
181 vkEnumerateInstanceExtensionProperties_VkResult_return = resources->on_vkEnumerateInstanceExtensionProperties(vkEnc, VK_SUCCESS, pLayerName, pPropertyCount, pProperties);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800182 return vkEnumerateInstanceExtensionProperties_VkResult_return;
183}
184static VkResult entry_vkEnumerateDeviceExtensionProperties(
185 VkPhysicalDevice physicalDevice,
186 const char* pLayerName,
187 uint32_t* pPropertyCount,
188 VkExtensionProperties* pProperties)
189{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800190 AEMU_SCOPED_TRACE("vkEnumerateDeviceExtensionProperties");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800191 auto vkEnc = HostConnection::get()->vkEncoder();
192 VkResult vkEnumerateDeviceExtensionProperties_VkResult_return = (VkResult)0;
Lingfeng Yang154a33c2019-01-29 19:06:23 -0800193 auto resources = ResourceTracker::get();
194 vkEnumerateDeviceExtensionProperties_VkResult_return = resources->on_vkEnumerateDeviceExtensionProperties(vkEnc, VK_SUCCESS, physicalDevice, pLayerName, pPropertyCount, pProperties);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800195 return vkEnumerateDeviceExtensionProperties_VkResult_return;
196}
197static VkResult entry_vkEnumerateInstanceLayerProperties(
198 uint32_t* pPropertyCount,
199 VkLayerProperties* pProperties)
200{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800201 AEMU_SCOPED_TRACE("vkEnumerateInstanceLayerProperties");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800202 auto vkEnc = HostConnection::get()->vkEncoder();
203 VkResult vkEnumerateInstanceLayerProperties_VkResult_return = (VkResult)0;
204 vkEnumerateInstanceLayerProperties_VkResult_return = vkEnc->vkEnumerateInstanceLayerProperties(pPropertyCount, pProperties);
205 return vkEnumerateInstanceLayerProperties_VkResult_return;
206}
207static VkResult entry_vkEnumerateDeviceLayerProperties(
208 VkPhysicalDevice physicalDevice,
209 uint32_t* pPropertyCount,
210 VkLayerProperties* pProperties)
211{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800212 AEMU_SCOPED_TRACE("vkEnumerateDeviceLayerProperties");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800213 auto vkEnc = HostConnection::get()->vkEncoder();
214 VkResult vkEnumerateDeviceLayerProperties_VkResult_return = (VkResult)0;
215 vkEnumerateDeviceLayerProperties_VkResult_return = vkEnc->vkEnumerateDeviceLayerProperties(physicalDevice, pPropertyCount, pProperties);
216 return vkEnumerateDeviceLayerProperties_VkResult_return;
217}
218static void entry_vkGetDeviceQueue(
219 VkDevice device,
220 uint32_t queueFamilyIndex,
221 uint32_t queueIndex,
222 VkQueue* pQueue)
223{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800224 AEMU_SCOPED_TRACE("vkGetDeviceQueue");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800225 auto vkEnc = HostConnection::get()->vkEncoder();
226 vkEnc->vkGetDeviceQueue(device, queueFamilyIndex, queueIndex, pQueue);
227}
228static VkResult entry_vkQueueSubmit(
229 VkQueue queue,
230 uint32_t submitCount,
231 const VkSubmitInfo* pSubmits,
232 VkFence fence)
233{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800234 AEMU_SCOPED_TRACE("vkQueueSubmit");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800235 auto vkEnc = HostConnection::get()->vkEncoder();
236 VkResult vkQueueSubmit_VkResult_return = (VkResult)0;
David Reveman24710222019-02-25 02:21:42 -0500237 auto resources = ResourceTracker::get();
238 vkQueueSubmit_VkResult_return = resources->on_vkQueueSubmit(vkEnc, VK_SUCCESS, queue, submitCount, pSubmits, fence);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800239 return vkQueueSubmit_VkResult_return;
240}
241static VkResult entry_vkQueueWaitIdle(
242 VkQueue queue)
243{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800244 AEMU_SCOPED_TRACE("vkQueueWaitIdle");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800245 auto vkEnc = HostConnection::get()->vkEncoder();
246 VkResult vkQueueWaitIdle_VkResult_return = (VkResult)0;
247 vkQueueWaitIdle_VkResult_return = vkEnc->vkQueueWaitIdle(queue);
248 return vkQueueWaitIdle_VkResult_return;
249}
250static VkResult entry_vkDeviceWaitIdle(
251 VkDevice device)
252{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800253 AEMU_SCOPED_TRACE("vkDeviceWaitIdle");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800254 auto vkEnc = HostConnection::get()->vkEncoder();
255 VkResult vkDeviceWaitIdle_VkResult_return = (VkResult)0;
256 vkDeviceWaitIdle_VkResult_return = vkEnc->vkDeviceWaitIdle(device);
257 return vkDeviceWaitIdle_VkResult_return;
258}
259static VkResult entry_vkAllocateMemory(
260 VkDevice device,
261 const VkMemoryAllocateInfo* pAllocateInfo,
262 const VkAllocationCallbacks* pAllocator,
263 VkDeviceMemory* pMemory)
264{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800265 AEMU_SCOPED_TRACE("vkAllocateMemory");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800266 auto vkEnc = HostConnection::get()->vkEncoder();
267 VkResult vkAllocateMemory_VkResult_return = (VkResult)0;
Lingfeng Yange9979522018-12-25 14:44:52 -0800268 auto resources = ResourceTracker::get();
269 vkAllocateMemory_VkResult_return = resources->on_vkAllocateMemory(vkEnc, VK_SUCCESS, device, pAllocateInfo, pAllocator, pMemory);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800270 return vkAllocateMemory_VkResult_return;
271}
272static void entry_vkFreeMemory(
273 VkDevice device,
274 VkDeviceMemory memory,
275 const VkAllocationCallbacks* pAllocator)
276{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800277 AEMU_SCOPED_TRACE("vkFreeMemory");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800278 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yange9979522018-12-25 14:44:52 -0800279 auto resources = ResourceTracker::get();
280 resources->on_vkFreeMemory(vkEnc, device, memory, pAllocator);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800281}
282static VkResult entry_vkMapMemory(
283 VkDevice device,
284 VkDeviceMemory memory,
285 VkDeviceSize offset,
286 VkDeviceSize size,
287 VkMemoryMapFlags flags,
288 void** ppData)
289{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800290 AEMU_SCOPED_TRACE("vkMapMemory");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800291 auto vkEnc = HostConnection::get()->vkEncoder();
292 VkResult vkMapMemory_VkResult_return = (VkResult)0;
293 vkMapMemory_VkResult_return = vkEnc->vkMapMemory(device, memory, offset, size, flags, ppData);
294 return vkMapMemory_VkResult_return;
295}
296static void entry_vkUnmapMemory(
297 VkDevice device,
298 VkDeviceMemory memory)
299{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800300 AEMU_SCOPED_TRACE("vkUnmapMemory");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800301 auto vkEnc = HostConnection::get()->vkEncoder();
302 vkEnc->vkUnmapMemory(device, memory);
303}
304static VkResult entry_vkFlushMappedMemoryRanges(
305 VkDevice device,
306 uint32_t memoryRangeCount,
307 const VkMappedMemoryRange* pMemoryRanges)
308{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800309 AEMU_SCOPED_TRACE("vkFlushMappedMemoryRanges");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800310 auto vkEnc = HostConnection::get()->vkEncoder();
311 VkResult vkFlushMappedMemoryRanges_VkResult_return = (VkResult)0;
312 vkFlushMappedMemoryRanges_VkResult_return = vkEnc->vkFlushMappedMemoryRanges(device, memoryRangeCount, pMemoryRanges);
313 return vkFlushMappedMemoryRanges_VkResult_return;
314}
315static VkResult entry_vkInvalidateMappedMemoryRanges(
316 VkDevice device,
317 uint32_t memoryRangeCount,
318 const VkMappedMemoryRange* pMemoryRanges)
319{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800320 AEMU_SCOPED_TRACE("vkInvalidateMappedMemoryRanges");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800321 auto vkEnc = HostConnection::get()->vkEncoder();
322 VkResult vkInvalidateMappedMemoryRanges_VkResult_return = (VkResult)0;
323 vkInvalidateMappedMemoryRanges_VkResult_return = vkEnc->vkInvalidateMappedMemoryRanges(device, memoryRangeCount, pMemoryRanges);
324 return vkInvalidateMappedMemoryRanges_VkResult_return;
325}
326static void entry_vkGetDeviceMemoryCommitment(
327 VkDevice device,
328 VkDeviceMemory memory,
329 VkDeviceSize* pCommittedMemoryInBytes)
330{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800331 AEMU_SCOPED_TRACE("vkGetDeviceMemoryCommitment");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800332 auto vkEnc = HostConnection::get()->vkEncoder();
333 vkEnc->vkGetDeviceMemoryCommitment(device, memory, pCommittedMemoryInBytes);
334}
335static VkResult entry_vkBindBufferMemory(
336 VkDevice device,
337 VkBuffer buffer,
338 VkDeviceMemory memory,
339 VkDeviceSize memoryOffset)
340{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800341 AEMU_SCOPED_TRACE("vkBindBufferMemory");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800342 auto vkEnc = HostConnection::get()->vkEncoder();
343 VkResult vkBindBufferMemory_VkResult_return = (VkResult)0;
Lingfeng Yang4af5f322019-02-14 08:10:28 -0800344 auto resources = ResourceTracker::get();
345 vkBindBufferMemory_VkResult_return = resources->on_vkBindBufferMemory(vkEnc, VK_SUCCESS, device, buffer, memory, memoryOffset);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800346 return vkBindBufferMemory_VkResult_return;
347}
348static VkResult entry_vkBindImageMemory(
349 VkDevice device,
350 VkImage image,
351 VkDeviceMemory memory,
352 VkDeviceSize memoryOffset)
353{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800354 AEMU_SCOPED_TRACE("vkBindImageMemory");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800355 auto vkEnc = HostConnection::get()->vkEncoder();
356 VkResult vkBindImageMemory_VkResult_return = (VkResult)0;
Lingfeng Yang4af5f322019-02-14 08:10:28 -0800357 auto resources = ResourceTracker::get();
358 vkBindImageMemory_VkResult_return = resources->on_vkBindImageMemory(vkEnc, VK_SUCCESS, device, image, memory, memoryOffset);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800359 return vkBindImageMemory_VkResult_return;
360}
361static void entry_vkGetBufferMemoryRequirements(
362 VkDevice device,
363 VkBuffer buffer,
364 VkMemoryRequirements* pMemoryRequirements)
365{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800366 AEMU_SCOPED_TRACE("vkGetBufferMemoryRequirements");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800367 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang4af5f322019-02-14 08:10:28 -0800368 auto resources = ResourceTracker::get();
369 resources->on_vkGetBufferMemoryRequirements(vkEnc, device, buffer, pMemoryRequirements);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800370}
371static void entry_vkGetImageMemoryRequirements(
372 VkDevice device,
373 VkImage image,
374 VkMemoryRequirements* pMemoryRequirements)
375{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800376 AEMU_SCOPED_TRACE("vkGetImageMemoryRequirements");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800377 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang4af5f322019-02-14 08:10:28 -0800378 auto resources = ResourceTracker::get();
379 resources->on_vkGetImageMemoryRequirements(vkEnc, device, image, pMemoryRequirements);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800380}
381static void entry_vkGetImageSparseMemoryRequirements(
382 VkDevice device,
383 VkImage image,
384 uint32_t* pSparseMemoryRequirementCount,
385 VkSparseImageMemoryRequirements* pSparseMemoryRequirements)
386{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800387 AEMU_SCOPED_TRACE("vkGetImageSparseMemoryRequirements");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800388 auto vkEnc = HostConnection::get()->vkEncoder();
389 vkEnc->vkGetImageSparseMemoryRequirements(device, image, pSparseMemoryRequirementCount, pSparseMemoryRequirements);
390}
391static void entry_vkGetPhysicalDeviceSparseImageFormatProperties(
392 VkPhysicalDevice physicalDevice,
393 VkFormat format,
394 VkImageType type,
395 VkSampleCountFlagBits samples,
396 VkImageUsageFlags usage,
397 VkImageTiling tiling,
398 uint32_t* pPropertyCount,
399 VkSparseImageFormatProperties* pProperties)
400{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800401 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSparseImageFormatProperties");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800402 auto vkEnc = HostConnection::get()->vkEncoder();
403 vkEnc->vkGetPhysicalDeviceSparseImageFormatProperties(physicalDevice, format, type, samples, usage, tiling, pPropertyCount, pProperties);
404}
405static VkResult entry_vkQueueBindSparse(
406 VkQueue queue,
407 uint32_t bindInfoCount,
408 const VkBindSparseInfo* pBindInfo,
409 VkFence fence)
410{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800411 AEMU_SCOPED_TRACE("vkQueueBindSparse");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800412 auto vkEnc = HostConnection::get()->vkEncoder();
413 VkResult vkQueueBindSparse_VkResult_return = (VkResult)0;
414 vkQueueBindSparse_VkResult_return = vkEnc->vkQueueBindSparse(queue, bindInfoCount, pBindInfo, fence);
415 return vkQueueBindSparse_VkResult_return;
416}
417static VkResult entry_vkCreateFence(
418 VkDevice device,
419 const VkFenceCreateInfo* pCreateInfo,
420 const VkAllocationCallbacks* pAllocator,
421 VkFence* pFence)
422{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800423 AEMU_SCOPED_TRACE("vkCreateFence");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800424 auto vkEnc = HostConnection::get()->vkEncoder();
425 VkResult vkCreateFence_VkResult_return = (VkResult)0;
426 vkCreateFence_VkResult_return = vkEnc->vkCreateFence(device, pCreateInfo, pAllocator, pFence);
427 return vkCreateFence_VkResult_return;
428}
429static void entry_vkDestroyFence(
430 VkDevice device,
431 VkFence fence,
432 const VkAllocationCallbacks* pAllocator)
433{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800434 AEMU_SCOPED_TRACE("vkDestroyFence");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800435 auto vkEnc = HostConnection::get()->vkEncoder();
436 vkEnc->vkDestroyFence(device, fence, pAllocator);
437}
438static VkResult entry_vkResetFences(
439 VkDevice device,
440 uint32_t fenceCount,
441 const VkFence* pFences)
442{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800443 AEMU_SCOPED_TRACE("vkResetFences");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800444 auto vkEnc = HostConnection::get()->vkEncoder();
445 VkResult vkResetFences_VkResult_return = (VkResult)0;
446 vkResetFences_VkResult_return = vkEnc->vkResetFences(device, fenceCount, pFences);
447 return vkResetFences_VkResult_return;
448}
449static VkResult entry_vkGetFenceStatus(
450 VkDevice device,
451 VkFence fence)
452{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800453 AEMU_SCOPED_TRACE("vkGetFenceStatus");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800454 auto vkEnc = HostConnection::get()->vkEncoder();
455 VkResult vkGetFenceStatus_VkResult_return = (VkResult)0;
456 vkGetFenceStatus_VkResult_return = vkEnc->vkGetFenceStatus(device, fence);
457 return vkGetFenceStatus_VkResult_return;
458}
459static VkResult entry_vkWaitForFences(
460 VkDevice device,
461 uint32_t fenceCount,
462 const VkFence* pFences,
463 VkBool32 waitAll,
464 uint64_t timeout)
465{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800466 AEMU_SCOPED_TRACE("vkWaitForFences");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800467 auto vkEnc = HostConnection::get()->vkEncoder();
468 VkResult vkWaitForFences_VkResult_return = (VkResult)0;
469 vkWaitForFences_VkResult_return = vkEnc->vkWaitForFences(device, fenceCount, pFences, waitAll, timeout);
470 return vkWaitForFences_VkResult_return;
471}
472static VkResult entry_vkCreateSemaphore(
473 VkDevice device,
474 const VkSemaphoreCreateInfo* pCreateInfo,
475 const VkAllocationCallbacks* pAllocator,
476 VkSemaphore* pSemaphore)
477{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800478 AEMU_SCOPED_TRACE("vkCreateSemaphore");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800479 auto vkEnc = HostConnection::get()->vkEncoder();
480 VkResult vkCreateSemaphore_VkResult_return = (VkResult)0;
David Reveman32b110e2019-02-21 13:20:54 -0500481 auto resources = ResourceTracker::get();
482 vkCreateSemaphore_VkResult_return = resources->on_vkCreateSemaphore(vkEnc, VK_SUCCESS, device, pCreateInfo, pAllocator, pSemaphore);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800483 return vkCreateSemaphore_VkResult_return;
484}
485static void entry_vkDestroySemaphore(
486 VkDevice device,
487 VkSemaphore semaphore,
488 const VkAllocationCallbacks* pAllocator)
489{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800490 AEMU_SCOPED_TRACE("vkDestroySemaphore");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800491 auto vkEnc = HostConnection::get()->vkEncoder();
David Reveman32b110e2019-02-21 13:20:54 -0500492 auto resources = ResourceTracker::get();
493 resources->on_vkDestroySemaphore(vkEnc, device, semaphore, pAllocator);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800494}
495static VkResult entry_vkCreateEvent(
496 VkDevice device,
497 const VkEventCreateInfo* pCreateInfo,
498 const VkAllocationCallbacks* pAllocator,
499 VkEvent* pEvent)
500{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800501 AEMU_SCOPED_TRACE("vkCreateEvent");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800502 auto vkEnc = HostConnection::get()->vkEncoder();
503 VkResult vkCreateEvent_VkResult_return = (VkResult)0;
504 vkCreateEvent_VkResult_return = vkEnc->vkCreateEvent(device, pCreateInfo, pAllocator, pEvent);
505 return vkCreateEvent_VkResult_return;
506}
507static void entry_vkDestroyEvent(
508 VkDevice device,
509 VkEvent event,
510 const VkAllocationCallbacks* pAllocator)
511{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800512 AEMU_SCOPED_TRACE("vkDestroyEvent");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800513 auto vkEnc = HostConnection::get()->vkEncoder();
514 vkEnc->vkDestroyEvent(device, event, pAllocator);
515}
516static VkResult entry_vkGetEventStatus(
517 VkDevice device,
518 VkEvent event)
519{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800520 AEMU_SCOPED_TRACE("vkGetEventStatus");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800521 auto vkEnc = HostConnection::get()->vkEncoder();
522 VkResult vkGetEventStatus_VkResult_return = (VkResult)0;
523 vkGetEventStatus_VkResult_return = vkEnc->vkGetEventStatus(device, event);
524 return vkGetEventStatus_VkResult_return;
525}
526static VkResult entry_vkSetEvent(
527 VkDevice device,
528 VkEvent event)
529{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800530 AEMU_SCOPED_TRACE("vkSetEvent");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800531 auto vkEnc = HostConnection::get()->vkEncoder();
532 VkResult vkSetEvent_VkResult_return = (VkResult)0;
533 vkSetEvent_VkResult_return = vkEnc->vkSetEvent(device, event);
534 return vkSetEvent_VkResult_return;
535}
536static VkResult entry_vkResetEvent(
537 VkDevice device,
538 VkEvent event)
539{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800540 AEMU_SCOPED_TRACE("vkResetEvent");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800541 auto vkEnc = HostConnection::get()->vkEncoder();
542 VkResult vkResetEvent_VkResult_return = (VkResult)0;
543 vkResetEvent_VkResult_return = vkEnc->vkResetEvent(device, event);
544 return vkResetEvent_VkResult_return;
545}
546static VkResult entry_vkCreateQueryPool(
547 VkDevice device,
548 const VkQueryPoolCreateInfo* pCreateInfo,
549 const VkAllocationCallbacks* pAllocator,
550 VkQueryPool* pQueryPool)
551{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800552 AEMU_SCOPED_TRACE("vkCreateQueryPool");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800553 auto vkEnc = HostConnection::get()->vkEncoder();
554 VkResult vkCreateQueryPool_VkResult_return = (VkResult)0;
555 vkCreateQueryPool_VkResult_return = vkEnc->vkCreateQueryPool(device, pCreateInfo, pAllocator, pQueryPool);
556 return vkCreateQueryPool_VkResult_return;
557}
558static void entry_vkDestroyQueryPool(
559 VkDevice device,
560 VkQueryPool queryPool,
561 const VkAllocationCallbacks* pAllocator)
562{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800563 AEMU_SCOPED_TRACE("vkDestroyQueryPool");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800564 auto vkEnc = HostConnection::get()->vkEncoder();
565 vkEnc->vkDestroyQueryPool(device, queryPool, pAllocator);
566}
567static VkResult entry_vkGetQueryPoolResults(
568 VkDevice device,
569 VkQueryPool queryPool,
570 uint32_t firstQuery,
571 uint32_t queryCount,
572 size_t dataSize,
573 void* pData,
574 VkDeviceSize stride,
575 VkQueryResultFlags flags)
576{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800577 AEMU_SCOPED_TRACE("vkGetQueryPoolResults");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800578 auto vkEnc = HostConnection::get()->vkEncoder();
579 VkResult vkGetQueryPoolResults_VkResult_return = (VkResult)0;
580 vkGetQueryPoolResults_VkResult_return = vkEnc->vkGetQueryPoolResults(device, queryPool, firstQuery, queryCount, dataSize, pData, stride, flags);
581 return vkGetQueryPoolResults_VkResult_return;
582}
583static VkResult entry_vkCreateBuffer(
584 VkDevice device,
585 const VkBufferCreateInfo* pCreateInfo,
586 const VkAllocationCallbacks* pAllocator,
587 VkBuffer* pBuffer)
588{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800589 AEMU_SCOPED_TRACE("vkCreateBuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800590 auto vkEnc = HostConnection::get()->vkEncoder();
591 VkResult vkCreateBuffer_VkResult_return = (VkResult)0;
Lingfeng Yang4af5f322019-02-14 08:10:28 -0800592 auto resources = ResourceTracker::get();
593 vkCreateBuffer_VkResult_return = resources->on_vkCreateBuffer(vkEnc, VK_SUCCESS, device, pCreateInfo, pAllocator, pBuffer);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800594 return vkCreateBuffer_VkResult_return;
595}
596static void entry_vkDestroyBuffer(
597 VkDevice device,
598 VkBuffer buffer,
599 const VkAllocationCallbacks* pAllocator)
600{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800601 AEMU_SCOPED_TRACE("vkDestroyBuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800602 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang4af5f322019-02-14 08:10:28 -0800603 auto resources = ResourceTracker::get();
604 resources->on_vkDestroyBuffer(vkEnc, device, buffer, pAllocator);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800605}
606static VkResult entry_vkCreateBufferView(
607 VkDevice device,
608 const VkBufferViewCreateInfo* pCreateInfo,
609 const VkAllocationCallbacks* pAllocator,
610 VkBufferView* pView)
611{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800612 AEMU_SCOPED_TRACE("vkCreateBufferView");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800613 auto vkEnc = HostConnection::get()->vkEncoder();
614 VkResult vkCreateBufferView_VkResult_return = (VkResult)0;
615 vkCreateBufferView_VkResult_return = vkEnc->vkCreateBufferView(device, pCreateInfo, pAllocator, pView);
616 return vkCreateBufferView_VkResult_return;
617}
618static void entry_vkDestroyBufferView(
619 VkDevice device,
620 VkBufferView bufferView,
621 const VkAllocationCallbacks* pAllocator)
622{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800623 AEMU_SCOPED_TRACE("vkDestroyBufferView");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800624 auto vkEnc = HostConnection::get()->vkEncoder();
625 vkEnc->vkDestroyBufferView(device, bufferView, pAllocator);
626}
627static VkResult entry_vkCreateImage(
628 VkDevice device,
629 const VkImageCreateInfo* pCreateInfo,
630 const VkAllocationCallbacks* pAllocator,
631 VkImage* pImage)
632{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800633 AEMU_SCOPED_TRACE("vkCreateImage");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800634 auto vkEnc = HostConnection::get()->vkEncoder();
635 VkResult vkCreateImage_VkResult_return = (VkResult)0;
Lingfeng Yang4af5f322019-02-14 08:10:28 -0800636 auto resources = ResourceTracker::get();
637 vkCreateImage_VkResult_return = resources->on_vkCreateImage(vkEnc, VK_SUCCESS, device, pCreateInfo, pAllocator, pImage);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800638 return vkCreateImage_VkResult_return;
639}
640static void entry_vkDestroyImage(
641 VkDevice device,
642 VkImage image,
643 const VkAllocationCallbacks* pAllocator)
644{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800645 AEMU_SCOPED_TRACE("vkDestroyImage");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800646 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang4af5f322019-02-14 08:10:28 -0800647 auto resources = ResourceTracker::get();
648 resources->on_vkDestroyImage(vkEnc, device, image, pAllocator);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800649}
650static void entry_vkGetImageSubresourceLayout(
651 VkDevice device,
652 VkImage image,
653 const VkImageSubresource* pSubresource,
654 VkSubresourceLayout* pLayout)
655{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800656 AEMU_SCOPED_TRACE("vkGetImageSubresourceLayout");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800657 auto vkEnc = HostConnection::get()->vkEncoder();
658 vkEnc->vkGetImageSubresourceLayout(device, image, pSubresource, pLayout);
659}
660static VkResult entry_vkCreateImageView(
661 VkDevice device,
662 const VkImageViewCreateInfo* pCreateInfo,
663 const VkAllocationCallbacks* pAllocator,
664 VkImageView* pView)
665{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800666 AEMU_SCOPED_TRACE("vkCreateImageView");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800667 auto vkEnc = HostConnection::get()->vkEncoder();
668 VkResult vkCreateImageView_VkResult_return = (VkResult)0;
669 vkCreateImageView_VkResult_return = vkEnc->vkCreateImageView(device, pCreateInfo, pAllocator, pView);
670 return vkCreateImageView_VkResult_return;
671}
672static void entry_vkDestroyImageView(
673 VkDevice device,
674 VkImageView imageView,
675 const VkAllocationCallbacks* pAllocator)
676{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800677 AEMU_SCOPED_TRACE("vkDestroyImageView");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800678 auto vkEnc = HostConnection::get()->vkEncoder();
679 vkEnc->vkDestroyImageView(device, imageView, pAllocator);
680}
681static VkResult entry_vkCreateShaderModule(
682 VkDevice device,
683 const VkShaderModuleCreateInfo* pCreateInfo,
684 const VkAllocationCallbacks* pAllocator,
685 VkShaderModule* pShaderModule)
686{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800687 AEMU_SCOPED_TRACE("vkCreateShaderModule");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800688 auto vkEnc = HostConnection::get()->vkEncoder();
689 VkResult vkCreateShaderModule_VkResult_return = (VkResult)0;
690 vkCreateShaderModule_VkResult_return = vkEnc->vkCreateShaderModule(device, pCreateInfo, pAllocator, pShaderModule);
691 return vkCreateShaderModule_VkResult_return;
692}
693static void entry_vkDestroyShaderModule(
694 VkDevice device,
695 VkShaderModule shaderModule,
696 const VkAllocationCallbacks* pAllocator)
697{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800698 AEMU_SCOPED_TRACE("vkDestroyShaderModule");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800699 auto vkEnc = HostConnection::get()->vkEncoder();
700 vkEnc->vkDestroyShaderModule(device, shaderModule, pAllocator);
701}
702static VkResult entry_vkCreatePipelineCache(
703 VkDevice device,
704 const VkPipelineCacheCreateInfo* pCreateInfo,
705 const VkAllocationCallbacks* pAllocator,
706 VkPipelineCache* pPipelineCache)
707{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800708 AEMU_SCOPED_TRACE("vkCreatePipelineCache");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800709 auto vkEnc = HostConnection::get()->vkEncoder();
710 VkResult vkCreatePipelineCache_VkResult_return = (VkResult)0;
711 vkCreatePipelineCache_VkResult_return = vkEnc->vkCreatePipelineCache(device, pCreateInfo, pAllocator, pPipelineCache);
712 return vkCreatePipelineCache_VkResult_return;
713}
714static void entry_vkDestroyPipelineCache(
715 VkDevice device,
716 VkPipelineCache pipelineCache,
717 const VkAllocationCallbacks* pAllocator)
718{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800719 AEMU_SCOPED_TRACE("vkDestroyPipelineCache");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800720 auto vkEnc = HostConnection::get()->vkEncoder();
721 vkEnc->vkDestroyPipelineCache(device, pipelineCache, pAllocator);
722}
723static VkResult entry_vkGetPipelineCacheData(
724 VkDevice device,
725 VkPipelineCache pipelineCache,
726 size_t* pDataSize,
727 void* pData)
728{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800729 AEMU_SCOPED_TRACE("vkGetPipelineCacheData");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800730 auto vkEnc = HostConnection::get()->vkEncoder();
731 VkResult vkGetPipelineCacheData_VkResult_return = (VkResult)0;
732 vkGetPipelineCacheData_VkResult_return = vkEnc->vkGetPipelineCacheData(device, pipelineCache, pDataSize, pData);
733 return vkGetPipelineCacheData_VkResult_return;
734}
735static VkResult entry_vkMergePipelineCaches(
736 VkDevice device,
737 VkPipelineCache dstCache,
738 uint32_t srcCacheCount,
739 const VkPipelineCache* pSrcCaches)
740{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800741 AEMU_SCOPED_TRACE("vkMergePipelineCaches");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800742 auto vkEnc = HostConnection::get()->vkEncoder();
743 VkResult vkMergePipelineCaches_VkResult_return = (VkResult)0;
744 vkMergePipelineCaches_VkResult_return = vkEnc->vkMergePipelineCaches(device, dstCache, srcCacheCount, pSrcCaches);
745 return vkMergePipelineCaches_VkResult_return;
746}
747static VkResult entry_vkCreateGraphicsPipelines(
748 VkDevice device,
749 VkPipelineCache pipelineCache,
750 uint32_t createInfoCount,
751 const VkGraphicsPipelineCreateInfo* pCreateInfos,
752 const VkAllocationCallbacks* pAllocator,
753 VkPipeline* pPipelines)
754{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800755 AEMU_SCOPED_TRACE("vkCreateGraphicsPipelines");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800756 auto vkEnc = HostConnection::get()->vkEncoder();
757 VkResult vkCreateGraphicsPipelines_VkResult_return = (VkResult)0;
758 vkCreateGraphicsPipelines_VkResult_return = vkEnc->vkCreateGraphicsPipelines(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines);
759 return vkCreateGraphicsPipelines_VkResult_return;
760}
761static VkResult entry_vkCreateComputePipelines(
762 VkDevice device,
763 VkPipelineCache pipelineCache,
764 uint32_t createInfoCount,
765 const VkComputePipelineCreateInfo* pCreateInfos,
766 const VkAllocationCallbacks* pAllocator,
767 VkPipeline* pPipelines)
768{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800769 AEMU_SCOPED_TRACE("vkCreateComputePipelines");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800770 auto vkEnc = HostConnection::get()->vkEncoder();
771 VkResult vkCreateComputePipelines_VkResult_return = (VkResult)0;
772 vkCreateComputePipelines_VkResult_return = vkEnc->vkCreateComputePipelines(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines);
773 return vkCreateComputePipelines_VkResult_return;
774}
775static void entry_vkDestroyPipeline(
776 VkDevice device,
777 VkPipeline pipeline,
778 const VkAllocationCallbacks* pAllocator)
779{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800780 AEMU_SCOPED_TRACE("vkDestroyPipeline");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800781 auto vkEnc = HostConnection::get()->vkEncoder();
782 vkEnc->vkDestroyPipeline(device, pipeline, pAllocator);
783}
784static VkResult entry_vkCreatePipelineLayout(
785 VkDevice device,
786 const VkPipelineLayoutCreateInfo* pCreateInfo,
787 const VkAllocationCallbacks* pAllocator,
788 VkPipelineLayout* pPipelineLayout)
789{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800790 AEMU_SCOPED_TRACE("vkCreatePipelineLayout");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800791 auto vkEnc = HostConnection::get()->vkEncoder();
792 VkResult vkCreatePipelineLayout_VkResult_return = (VkResult)0;
793 vkCreatePipelineLayout_VkResult_return = vkEnc->vkCreatePipelineLayout(device, pCreateInfo, pAllocator, pPipelineLayout);
794 return vkCreatePipelineLayout_VkResult_return;
795}
796static void entry_vkDestroyPipelineLayout(
797 VkDevice device,
798 VkPipelineLayout pipelineLayout,
799 const VkAllocationCallbacks* pAllocator)
800{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800801 AEMU_SCOPED_TRACE("vkDestroyPipelineLayout");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800802 auto vkEnc = HostConnection::get()->vkEncoder();
803 vkEnc->vkDestroyPipelineLayout(device, pipelineLayout, pAllocator);
804}
805static VkResult entry_vkCreateSampler(
806 VkDevice device,
807 const VkSamplerCreateInfo* pCreateInfo,
808 const VkAllocationCallbacks* pAllocator,
809 VkSampler* pSampler)
810{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800811 AEMU_SCOPED_TRACE("vkCreateSampler");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800812 auto vkEnc = HostConnection::get()->vkEncoder();
813 VkResult vkCreateSampler_VkResult_return = (VkResult)0;
814 vkCreateSampler_VkResult_return = vkEnc->vkCreateSampler(device, pCreateInfo, pAllocator, pSampler);
815 return vkCreateSampler_VkResult_return;
816}
817static void entry_vkDestroySampler(
818 VkDevice device,
819 VkSampler sampler,
820 const VkAllocationCallbacks* pAllocator)
821{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800822 AEMU_SCOPED_TRACE("vkDestroySampler");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800823 auto vkEnc = HostConnection::get()->vkEncoder();
824 vkEnc->vkDestroySampler(device, sampler, pAllocator);
825}
826static VkResult entry_vkCreateDescriptorSetLayout(
827 VkDevice device,
828 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
829 const VkAllocationCallbacks* pAllocator,
830 VkDescriptorSetLayout* pSetLayout)
831{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800832 AEMU_SCOPED_TRACE("vkCreateDescriptorSetLayout");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800833 auto vkEnc = HostConnection::get()->vkEncoder();
834 VkResult vkCreateDescriptorSetLayout_VkResult_return = (VkResult)0;
835 vkCreateDescriptorSetLayout_VkResult_return = vkEnc->vkCreateDescriptorSetLayout(device, pCreateInfo, pAllocator, pSetLayout);
836 return vkCreateDescriptorSetLayout_VkResult_return;
837}
838static void entry_vkDestroyDescriptorSetLayout(
839 VkDevice device,
840 VkDescriptorSetLayout descriptorSetLayout,
841 const VkAllocationCallbacks* pAllocator)
842{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800843 AEMU_SCOPED_TRACE("vkDestroyDescriptorSetLayout");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800844 auto vkEnc = HostConnection::get()->vkEncoder();
845 vkEnc->vkDestroyDescriptorSetLayout(device, descriptorSetLayout, pAllocator);
846}
847static VkResult entry_vkCreateDescriptorPool(
848 VkDevice device,
849 const VkDescriptorPoolCreateInfo* pCreateInfo,
850 const VkAllocationCallbacks* pAllocator,
851 VkDescriptorPool* pDescriptorPool)
852{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800853 AEMU_SCOPED_TRACE("vkCreateDescriptorPool");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800854 auto vkEnc = HostConnection::get()->vkEncoder();
855 VkResult vkCreateDescriptorPool_VkResult_return = (VkResult)0;
856 vkCreateDescriptorPool_VkResult_return = vkEnc->vkCreateDescriptorPool(device, pCreateInfo, pAllocator, pDescriptorPool);
857 return vkCreateDescriptorPool_VkResult_return;
858}
859static void entry_vkDestroyDescriptorPool(
860 VkDevice device,
861 VkDescriptorPool descriptorPool,
862 const VkAllocationCallbacks* pAllocator)
863{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800864 AEMU_SCOPED_TRACE("vkDestroyDescriptorPool");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800865 auto vkEnc = HostConnection::get()->vkEncoder();
866 vkEnc->vkDestroyDescriptorPool(device, descriptorPool, pAllocator);
867}
868static VkResult entry_vkResetDescriptorPool(
869 VkDevice device,
870 VkDescriptorPool descriptorPool,
871 VkDescriptorPoolResetFlags flags)
872{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800873 AEMU_SCOPED_TRACE("vkResetDescriptorPool");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800874 auto vkEnc = HostConnection::get()->vkEncoder();
875 VkResult vkResetDescriptorPool_VkResult_return = (VkResult)0;
876 vkResetDescriptorPool_VkResult_return = vkEnc->vkResetDescriptorPool(device, descriptorPool, flags);
877 return vkResetDescriptorPool_VkResult_return;
878}
879static VkResult entry_vkAllocateDescriptorSets(
880 VkDevice device,
881 const VkDescriptorSetAllocateInfo* pAllocateInfo,
882 VkDescriptorSet* pDescriptorSets)
883{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800884 AEMU_SCOPED_TRACE("vkAllocateDescriptorSets");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800885 auto vkEnc = HostConnection::get()->vkEncoder();
886 VkResult vkAllocateDescriptorSets_VkResult_return = (VkResult)0;
887 vkAllocateDescriptorSets_VkResult_return = vkEnc->vkAllocateDescriptorSets(device, pAllocateInfo, pDescriptorSets);
888 return vkAllocateDescriptorSets_VkResult_return;
889}
890static VkResult entry_vkFreeDescriptorSets(
891 VkDevice device,
892 VkDescriptorPool descriptorPool,
893 uint32_t descriptorSetCount,
894 const VkDescriptorSet* pDescriptorSets)
895{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800896 AEMU_SCOPED_TRACE("vkFreeDescriptorSets");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800897 auto vkEnc = HostConnection::get()->vkEncoder();
898 VkResult vkFreeDescriptorSets_VkResult_return = (VkResult)0;
899 vkFreeDescriptorSets_VkResult_return = vkEnc->vkFreeDescriptorSets(device, descriptorPool, descriptorSetCount, pDescriptorSets);
900 return vkFreeDescriptorSets_VkResult_return;
901}
902static void entry_vkUpdateDescriptorSets(
903 VkDevice device,
904 uint32_t descriptorWriteCount,
905 const VkWriteDescriptorSet* pDescriptorWrites,
906 uint32_t descriptorCopyCount,
907 const VkCopyDescriptorSet* pDescriptorCopies)
908{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800909 AEMU_SCOPED_TRACE("vkUpdateDescriptorSets");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800910 auto vkEnc = HostConnection::get()->vkEncoder();
911 vkEnc->vkUpdateDescriptorSets(device, descriptorWriteCount, pDescriptorWrites, descriptorCopyCount, pDescriptorCopies);
912}
913static VkResult entry_vkCreateFramebuffer(
914 VkDevice device,
915 const VkFramebufferCreateInfo* pCreateInfo,
916 const VkAllocationCallbacks* pAllocator,
917 VkFramebuffer* pFramebuffer)
918{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800919 AEMU_SCOPED_TRACE("vkCreateFramebuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800920 auto vkEnc = HostConnection::get()->vkEncoder();
921 VkResult vkCreateFramebuffer_VkResult_return = (VkResult)0;
922 vkCreateFramebuffer_VkResult_return = vkEnc->vkCreateFramebuffer(device, pCreateInfo, pAllocator, pFramebuffer);
923 return vkCreateFramebuffer_VkResult_return;
924}
925static void entry_vkDestroyFramebuffer(
926 VkDevice device,
927 VkFramebuffer framebuffer,
928 const VkAllocationCallbacks* pAllocator)
929{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800930 AEMU_SCOPED_TRACE("vkDestroyFramebuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800931 auto vkEnc = HostConnection::get()->vkEncoder();
932 vkEnc->vkDestroyFramebuffer(device, framebuffer, pAllocator);
933}
934static VkResult entry_vkCreateRenderPass(
935 VkDevice device,
936 const VkRenderPassCreateInfo* pCreateInfo,
937 const VkAllocationCallbacks* pAllocator,
938 VkRenderPass* pRenderPass)
939{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800940 AEMU_SCOPED_TRACE("vkCreateRenderPass");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800941 auto vkEnc = HostConnection::get()->vkEncoder();
942 VkResult vkCreateRenderPass_VkResult_return = (VkResult)0;
943 vkCreateRenderPass_VkResult_return = vkEnc->vkCreateRenderPass(device, pCreateInfo, pAllocator, pRenderPass);
944 return vkCreateRenderPass_VkResult_return;
945}
946static void entry_vkDestroyRenderPass(
947 VkDevice device,
948 VkRenderPass renderPass,
949 const VkAllocationCallbacks* pAllocator)
950{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800951 AEMU_SCOPED_TRACE("vkDestroyRenderPass");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800952 auto vkEnc = HostConnection::get()->vkEncoder();
953 vkEnc->vkDestroyRenderPass(device, renderPass, pAllocator);
954}
955static void entry_vkGetRenderAreaGranularity(
956 VkDevice device,
957 VkRenderPass renderPass,
958 VkExtent2D* pGranularity)
959{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800960 AEMU_SCOPED_TRACE("vkGetRenderAreaGranularity");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800961 auto vkEnc = HostConnection::get()->vkEncoder();
962 vkEnc->vkGetRenderAreaGranularity(device, renderPass, pGranularity);
963}
964static VkResult entry_vkCreateCommandPool(
965 VkDevice device,
966 const VkCommandPoolCreateInfo* pCreateInfo,
967 const VkAllocationCallbacks* pAllocator,
968 VkCommandPool* pCommandPool)
969{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800970 AEMU_SCOPED_TRACE("vkCreateCommandPool");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800971 auto vkEnc = HostConnection::get()->vkEncoder();
972 VkResult vkCreateCommandPool_VkResult_return = (VkResult)0;
973 vkCreateCommandPool_VkResult_return = vkEnc->vkCreateCommandPool(device, pCreateInfo, pAllocator, pCommandPool);
974 return vkCreateCommandPool_VkResult_return;
975}
976static void entry_vkDestroyCommandPool(
977 VkDevice device,
978 VkCommandPool commandPool,
979 const VkAllocationCallbacks* pAllocator)
980{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800981 AEMU_SCOPED_TRACE("vkDestroyCommandPool");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800982 auto vkEnc = HostConnection::get()->vkEncoder();
983 vkEnc->vkDestroyCommandPool(device, commandPool, pAllocator);
984}
985static VkResult entry_vkResetCommandPool(
986 VkDevice device,
987 VkCommandPool commandPool,
988 VkCommandPoolResetFlags flags)
989{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800990 AEMU_SCOPED_TRACE("vkResetCommandPool");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800991 auto vkEnc = HostConnection::get()->vkEncoder();
992 VkResult vkResetCommandPool_VkResult_return = (VkResult)0;
993 vkResetCommandPool_VkResult_return = vkEnc->vkResetCommandPool(device, commandPool, flags);
994 return vkResetCommandPool_VkResult_return;
995}
996static VkResult entry_vkAllocateCommandBuffers(
997 VkDevice device,
998 const VkCommandBufferAllocateInfo* pAllocateInfo,
999 VkCommandBuffer* pCommandBuffers)
1000{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001001 AEMU_SCOPED_TRACE("vkAllocateCommandBuffers");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001002 auto vkEnc = HostConnection::get()->vkEncoder();
1003 VkResult vkAllocateCommandBuffers_VkResult_return = (VkResult)0;
1004 vkAllocateCommandBuffers_VkResult_return = vkEnc->vkAllocateCommandBuffers(device, pAllocateInfo, pCommandBuffers);
1005 return vkAllocateCommandBuffers_VkResult_return;
1006}
1007static void entry_vkFreeCommandBuffers(
1008 VkDevice device,
1009 VkCommandPool commandPool,
1010 uint32_t commandBufferCount,
1011 const VkCommandBuffer* pCommandBuffers)
1012{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001013 AEMU_SCOPED_TRACE("vkFreeCommandBuffers");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001014 auto vkEnc = HostConnection::get()->vkEncoder();
1015 vkEnc->vkFreeCommandBuffers(device, commandPool, commandBufferCount, pCommandBuffers);
1016}
1017static VkResult entry_vkBeginCommandBuffer(
1018 VkCommandBuffer commandBuffer,
1019 const VkCommandBufferBeginInfo* pBeginInfo)
1020{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001021 AEMU_SCOPED_TRACE("vkBeginCommandBuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001022 auto vkEnc = HostConnection::get()->vkEncoder();
1023 VkResult vkBeginCommandBuffer_VkResult_return = (VkResult)0;
1024 vkBeginCommandBuffer_VkResult_return = vkEnc->vkBeginCommandBuffer(commandBuffer, pBeginInfo);
1025 return vkBeginCommandBuffer_VkResult_return;
1026}
1027static VkResult entry_vkEndCommandBuffer(
1028 VkCommandBuffer commandBuffer)
1029{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001030 AEMU_SCOPED_TRACE("vkEndCommandBuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001031 auto vkEnc = HostConnection::get()->vkEncoder();
1032 VkResult vkEndCommandBuffer_VkResult_return = (VkResult)0;
1033 vkEndCommandBuffer_VkResult_return = vkEnc->vkEndCommandBuffer(commandBuffer);
1034 return vkEndCommandBuffer_VkResult_return;
1035}
1036static VkResult entry_vkResetCommandBuffer(
1037 VkCommandBuffer commandBuffer,
1038 VkCommandBufferResetFlags flags)
1039{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001040 AEMU_SCOPED_TRACE("vkResetCommandBuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001041 auto vkEnc = HostConnection::get()->vkEncoder();
1042 VkResult vkResetCommandBuffer_VkResult_return = (VkResult)0;
1043 vkResetCommandBuffer_VkResult_return = vkEnc->vkResetCommandBuffer(commandBuffer, flags);
1044 return vkResetCommandBuffer_VkResult_return;
1045}
1046static void entry_vkCmdBindPipeline(
1047 VkCommandBuffer commandBuffer,
1048 VkPipelineBindPoint pipelineBindPoint,
1049 VkPipeline pipeline)
1050{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001051 AEMU_SCOPED_TRACE("vkCmdBindPipeline");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001052 auto vkEnc = HostConnection::get()->vkEncoder();
1053 vkEnc->vkCmdBindPipeline(commandBuffer, pipelineBindPoint, pipeline);
1054}
1055static void entry_vkCmdSetViewport(
1056 VkCommandBuffer commandBuffer,
1057 uint32_t firstViewport,
1058 uint32_t viewportCount,
1059 const VkViewport* pViewports)
1060{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001061 AEMU_SCOPED_TRACE("vkCmdSetViewport");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001062 auto vkEnc = HostConnection::get()->vkEncoder();
1063 vkEnc->vkCmdSetViewport(commandBuffer, firstViewport, viewportCount, pViewports);
1064}
1065static void entry_vkCmdSetScissor(
1066 VkCommandBuffer commandBuffer,
1067 uint32_t firstScissor,
1068 uint32_t scissorCount,
1069 const VkRect2D* pScissors)
1070{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001071 AEMU_SCOPED_TRACE("vkCmdSetScissor");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001072 auto vkEnc = HostConnection::get()->vkEncoder();
1073 vkEnc->vkCmdSetScissor(commandBuffer, firstScissor, scissorCount, pScissors);
1074}
1075static void entry_vkCmdSetLineWidth(
1076 VkCommandBuffer commandBuffer,
1077 float lineWidth)
1078{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001079 AEMU_SCOPED_TRACE("vkCmdSetLineWidth");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001080 auto vkEnc = HostConnection::get()->vkEncoder();
1081 vkEnc->vkCmdSetLineWidth(commandBuffer, lineWidth);
1082}
1083static void entry_vkCmdSetDepthBias(
1084 VkCommandBuffer commandBuffer,
1085 float depthBiasConstantFactor,
1086 float depthBiasClamp,
1087 float depthBiasSlopeFactor)
1088{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001089 AEMU_SCOPED_TRACE("vkCmdSetDepthBias");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001090 auto vkEnc = HostConnection::get()->vkEncoder();
1091 vkEnc->vkCmdSetDepthBias(commandBuffer, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor);
1092}
1093static void entry_vkCmdSetBlendConstants(
1094 VkCommandBuffer commandBuffer,
1095 const float blendConstants)
1096{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001097 AEMU_SCOPED_TRACE("vkCmdSetBlendConstants");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001098 auto vkEnc = HostConnection::get()->vkEncoder();
1099 vkEnc->vkCmdSetBlendConstants(commandBuffer, blendConstants);
1100}
1101static void entry_vkCmdSetDepthBounds(
1102 VkCommandBuffer commandBuffer,
1103 float minDepthBounds,
1104 float maxDepthBounds)
1105{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001106 AEMU_SCOPED_TRACE("vkCmdSetDepthBounds");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001107 auto vkEnc = HostConnection::get()->vkEncoder();
1108 vkEnc->vkCmdSetDepthBounds(commandBuffer, minDepthBounds, maxDepthBounds);
1109}
1110static void entry_vkCmdSetStencilCompareMask(
1111 VkCommandBuffer commandBuffer,
1112 VkStencilFaceFlags faceMask,
1113 uint32_t compareMask)
1114{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001115 AEMU_SCOPED_TRACE("vkCmdSetStencilCompareMask");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001116 auto vkEnc = HostConnection::get()->vkEncoder();
1117 vkEnc->vkCmdSetStencilCompareMask(commandBuffer, faceMask, compareMask);
1118}
1119static void entry_vkCmdSetStencilWriteMask(
1120 VkCommandBuffer commandBuffer,
1121 VkStencilFaceFlags faceMask,
1122 uint32_t writeMask)
1123{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001124 AEMU_SCOPED_TRACE("vkCmdSetStencilWriteMask");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001125 auto vkEnc = HostConnection::get()->vkEncoder();
1126 vkEnc->vkCmdSetStencilWriteMask(commandBuffer, faceMask, writeMask);
1127}
1128static void entry_vkCmdSetStencilReference(
1129 VkCommandBuffer commandBuffer,
1130 VkStencilFaceFlags faceMask,
1131 uint32_t reference)
1132{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001133 AEMU_SCOPED_TRACE("vkCmdSetStencilReference");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001134 auto vkEnc = HostConnection::get()->vkEncoder();
1135 vkEnc->vkCmdSetStencilReference(commandBuffer, faceMask, reference);
1136}
1137static void entry_vkCmdBindDescriptorSets(
1138 VkCommandBuffer commandBuffer,
1139 VkPipelineBindPoint pipelineBindPoint,
1140 VkPipelineLayout layout,
1141 uint32_t firstSet,
1142 uint32_t descriptorSetCount,
1143 const VkDescriptorSet* pDescriptorSets,
1144 uint32_t dynamicOffsetCount,
1145 const uint32_t* pDynamicOffsets)
1146{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001147 AEMU_SCOPED_TRACE("vkCmdBindDescriptorSets");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001148 auto vkEnc = HostConnection::get()->vkEncoder();
1149 vkEnc->vkCmdBindDescriptorSets(commandBuffer, pipelineBindPoint, layout, firstSet, descriptorSetCount, pDescriptorSets, dynamicOffsetCount, pDynamicOffsets);
1150}
1151static void entry_vkCmdBindIndexBuffer(
1152 VkCommandBuffer commandBuffer,
1153 VkBuffer buffer,
1154 VkDeviceSize offset,
1155 VkIndexType indexType)
1156{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001157 AEMU_SCOPED_TRACE("vkCmdBindIndexBuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001158 auto vkEnc = HostConnection::get()->vkEncoder();
1159 vkEnc->vkCmdBindIndexBuffer(commandBuffer, buffer, offset, indexType);
1160}
1161static void entry_vkCmdBindVertexBuffers(
1162 VkCommandBuffer commandBuffer,
1163 uint32_t firstBinding,
1164 uint32_t bindingCount,
1165 const VkBuffer* pBuffers,
1166 const VkDeviceSize* pOffsets)
1167{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001168 AEMU_SCOPED_TRACE("vkCmdBindVertexBuffers");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001169 auto vkEnc = HostConnection::get()->vkEncoder();
1170 vkEnc->vkCmdBindVertexBuffers(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets);
1171}
1172static void entry_vkCmdDraw(
1173 VkCommandBuffer commandBuffer,
1174 uint32_t vertexCount,
1175 uint32_t instanceCount,
1176 uint32_t firstVertex,
1177 uint32_t firstInstance)
1178{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001179 AEMU_SCOPED_TRACE("vkCmdDraw");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001180 auto vkEnc = HostConnection::get()->vkEncoder();
1181 vkEnc->vkCmdDraw(commandBuffer, vertexCount, instanceCount, firstVertex, firstInstance);
1182}
1183static void entry_vkCmdDrawIndexed(
1184 VkCommandBuffer commandBuffer,
1185 uint32_t indexCount,
1186 uint32_t instanceCount,
1187 uint32_t firstIndex,
1188 int32_t vertexOffset,
1189 uint32_t firstInstance)
1190{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001191 AEMU_SCOPED_TRACE("vkCmdDrawIndexed");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001192 auto vkEnc = HostConnection::get()->vkEncoder();
1193 vkEnc->vkCmdDrawIndexed(commandBuffer, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance);
1194}
1195static void entry_vkCmdDrawIndirect(
1196 VkCommandBuffer commandBuffer,
1197 VkBuffer buffer,
1198 VkDeviceSize offset,
1199 uint32_t drawCount,
1200 uint32_t stride)
1201{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001202 AEMU_SCOPED_TRACE("vkCmdDrawIndirect");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001203 auto vkEnc = HostConnection::get()->vkEncoder();
1204 vkEnc->vkCmdDrawIndirect(commandBuffer, buffer, offset, drawCount, stride);
1205}
1206static void entry_vkCmdDrawIndexedIndirect(
1207 VkCommandBuffer commandBuffer,
1208 VkBuffer buffer,
1209 VkDeviceSize offset,
1210 uint32_t drawCount,
1211 uint32_t stride)
1212{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001213 AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirect");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001214 auto vkEnc = HostConnection::get()->vkEncoder();
1215 vkEnc->vkCmdDrawIndexedIndirect(commandBuffer, buffer, offset, drawCount, stride);
1216}
1217static void entry_vkCmdDispatch(
1218 VkCommandBuffer commandBuffer,
1219 uint32_t groupCountX,
1220 uint32_t groupCountY,
1221 uint32_t groupCountZ)
1222{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001223 AEMU_SCOPED_TRACE("vkCmdDispatch");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001224 auto vkEnc = HostConnection::get()->vkEncoder();
1225 vkEnc->vkCmdDispatch(commandBuffer, groupCountX, groupCountY, groupCountZ);
1226}
1227static void entry_vkCmdDispatchIndirect(
1228 VkCommandBuffer commandBuffer,
1229 VkBuffer buffer,
1230 VkDeviceSize offset)
1231{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001232 AEMU_SCOPED_TRACE("vkCmdDispatchIndirect");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001233 auto vkEnc = HostConnection::get()->vkEncoder();
1234 vkEnc->vkCmdDispatchIndirect(commandBuffer, buffer, offset);
1235}
1236static void entry_vkCmdCopyBuffer(
1237 VkCommandBuffer commandBuffer,
1238 VkBuffer srcBuffer,
1239 VkBuffer dstBuffer,
1240 uint32_t regionCount,
1241 const VkBufferCopy* pRegions)
1242{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001243 AEMU_SCOPED_TRACE("vkCmdCopyBuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001244 auto vkEnc = HostConnection::get()->vkEncoder();
1245 vkEnc->vkCmdCopyBuffer(commandBuffer, srcBuffer, dstBuffer, regionCount, pRegions);
1246}
1247static void entry_vkCmdCopyImage(
1248 VkCommandBuffer commandBuffer,
1249 VkImage srcImage,
1250 VkImageLayout srcImageLayout,
1251 VkImage dstImage,
1252 VkImageLayout dstImageLayout,
1253 uint32_t regionCount,
1254 const VkImageCopy* pRegions)
1255{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001256 AEMU_SCOPED_TRACE("vkCmdCopyImage");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001257 auto vkEnc = HostConnection::get()->vkEncoder();
1258 vkEnc->vkCmdCopyImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions);
1259}
1260static void entry_vkCmdBlitImage(
1261 VkCommandBuffer commandBuffer,
1262 VkImage srcImage,
1263 VkImageLayout srcImageLayout,
1264 VkImage dstImage,
1265 VkImageLayout dstImageLayout,
1266 uint32_t regionCount,
1267 const VkImageBlit* pRegions,
1268 VkFilter filter)
1269{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001270 AEMU_SCOPED_TRACE("vkCmdBlitImage");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001271 auto vkEnc = HostConnection::get()->vkEncoder();
1272 vkEnc->vkCmdBlitImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions, filter);
1273}
1274static void entry_vkCmdCopyBufferToImage(
1275 VkCommandBuffer commandBuffer,
1276 VkBuffer srcBuffer,
1277 VkImage dstImage,
1278 VkImageLayout dstImageLayout,
1279 uint32_t regionCount,
1280 const VkBufferImageCopy* pRegions)
1281{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001282 AEMU_SCOPED_TRACE("vkCmdCopyBufferToImage");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001283 auto vkEnc = HostConnection::get()->vkEncoder();
1284 vkEnc->vkCmdCopyBufferToImage(commandBuffer, srcBuffer, dstImage, dstImageLayout, regionCount, pRegions);
1285}
1286static void entry_vkCmdCopyImageToBuffer(
1287 VkCommandBuffer commandBuffer,
1288 VkImage srcImage,
1289 VkImageLayout srcImageLayout,
1290 VkBuffer dstBuffer,
1291 uint32_t regionCount,
1292 const VkBufferImageCopy* pRegions)
1293{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001294 AEMU_SCOPED_TRACE("vkCmdCopyImageToBuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001295 auto vkEnc = HostConnection::get()->vkEncoder();
1296 vkEnc->vkCmdCopyImageToBuffer(commandBuffer, srcImage, srcImageLayout, dstBuffer, regionCount, pRegions);
1297}
1298static void entry_vkCmdUpdateBuffer(
1299 VkCommandBuffer commandBuffer,
1300 VkBuffer dstBuffer,
1301 VkDeviceSize dstOffset,
1302 VkDeviceSize dataSize,
1303 const void* pData)
1304{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001305 AEMU_SCOPED_TRACE("vkCmdUpdateBuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001306 auto vkEnc = HostConnection::get()->vkEncoder();
1307 vkEnc->vkCmdUpdateBuffer(commandBuffer, dstBuffer, dstOffset, dataSize, pData);
1308}
1309static void entry_vkCmdFillBuffer(
1310 VkCommandBuffer commandBuffer,
1311 VkBuffer dstBuffer,
1312 VkDeviceSize dstOffset,
1313 VkDeviceSize size,
1314 uint32_t data)
1315{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001316 AEMU_SCOPED_TRACE("vkCmdFillBuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001317 auto vkEnc = HostConnection::get()->vkEncoder();
1318 vkEnc->vkCmdFillBuffer(commandBuffer, dstBuffer, dstOffset, size, data);
1319}
1320static void entry_vkCmdClearColorImage(
1321 VkCommandBuffer commandBuffer,
1322 VkImage image,
1323 VkImageLayout imageLayout,
1324 const VkClearColorValue* pColor,
1325 uint32_t rangeCount,
1326 const VkImageSubresourceRange* pRanges)
1327{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001328 AEMU_SCOPED_TRACE("vkCmdClearColorImage");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001329 auto vkEnc = HostConnection::get()->vkEncoder();
1330 vkEnc->vkCmdClearColorImage(commandBuffer, image, imageLayout, pColor, rangeCount, pRanges);
1331}
1332static void entry_vkCmdClearDepthStencilImage(
1333 VkCommandBuffer commandBuffer,
1334 VkImage image,
1335 VkImageLayout imageLayout,
1336 const VkClearDepthStencilValue* pDepthStencil,
1337 uint32_t rangeCount,
1338 const VkImageSubresourceRange* pRanges)
1339{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001340 AEMU_SCOPED_TRACE("vkCmdClearDepthStencilImage");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001341 auto vkEnc = HostConnection::get()->vkEncoder();
1342 vkEnc->vkCmdClearDepthStencilImage(commandBuffer, image, imageLayout, pDepthStencil, rangeCount, pRanges);
1343}
1344static void entry_vkCmdClearAttachments(
1345 VkCommandBuffer commandBuffer,
1346 uint32_t attachmentCount,
1347 const VkClearAttachment* pAttachments,
1348 uint32_t rectCount,
1349 const VkClearRect* pRects)
1350{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001351 AEMU_SCOPED_TRACE("vkCmdClearAttachments");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001352 auto vkEnc = HostConnection::get()->vkEncoder();
1353 vkEnc->vkCmdClearAttachments(commandBuffer, attachmentCount, pAttachments, rectCount, pRects);
1354}
1355static void entry_vkCmdResolveImage(
1356 VkCommandBuffer commandBuffer,
1357 VkImage srcImage,
1358 VkImageLayout srcImageLayout,
1359 VkImage dstImage,
1360 VkImageLayout dstImageLayout,
1361 uint32_t regionCount,
1362 const VkImageResolve* pRegions)
1363{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001364 AEMU_SCOPED_TRACE("vkCmdResolveImage");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001365 auto vkEnc = HostConnection::get()->vkEncoder();
1366 vkEnc->vkCmdResolveImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions);
1367}
1368static void entry_vkCmdSetEvent(
1369 VkCommandBuffer commandBuffer,
1370 VkEvent event,
1371 VkPipelineStageFlags stageMask)
1372{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001373 AEMU_SCOPED_TRACE("vkCmdSetEvent");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001374 auto vkEnc = HostConnection::get()->vkEncoder();
1375 vkEnc->vkCmdSetEvent(commandBuffer, event, stageMask);
1376}
1377static void entry_vkCmdResetEvent(
1378 VkCommandBuffer commandBuffer,
1379 VkEvent event,
1380 VkPipelineStageFlags stageMask)
1381{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001382 AEMU_SCOPED_TRACE("vkCmdResetEvent");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001383 auto vkEnc = HostConnection::get()->vkEncoder();
1384 vkEnc->vkCmdResetEvent(commandBuffer, event, stageMask);
1385}
1386static void entry_vkCmdWaitEvents(
1387 VkCommandBuffer commandBuffer,
1388 uint32_t eventCount,
1389 const VkEvent* pEvents,
1390 VkPipelineStageFlags srcStageMask,
1391 VkPipelineStageFlags dstStageMask,
1392 uint32_t memoryBarrierCount,
1393 const VkMemoryBarrier* pMemoryBarriers,
1394 uint32_t bufferMemoryBarrierCount,
1395 const VkBufferMemoryBarrier* pBufferMemoryBarriers,
1396 uint32_t imageMemoryBarrierCount,
1397 const VkImageMemoryBarrier* pImageMemoryBarriers)
1398{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001399 AEMU_SCOPED_TRACE("vkCmdWaitEvents");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001400 auto vkEnc = HostConnection::get()->vkEncoder();
1401 vkEnc->vkCmdWaitEvents(commandBuffer, eventCount, pEvents, srcStageMask, dstStageMask, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers);
1402}
1403static void entry_vkCmdPipelineBarrier(
1404 VkCommandBuffer commandBuffer,
1405 VkPipelineStageFlags srcStageMask,
1406 VkPipelineStageFlags dstStageMask,
1407 VkDependencyFlags dependencyFlags,
1408 uint32_t memoryBarrierCount,
1409 const VkMemoryBarrier* pMemoryBarriers,
1410 uint32_t bufferMemoryBarrierCount,
1411 const VkBufferMemoryBarrier* pBufferMemoryBarriers,
1412 uint32_t imageMemoryBarrierCount,
1413 const VkImageMemoryBarrier* pImageMemoryBarriers)
1414{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001415 AEMU_SCOPED_TRACE("vkCmdPipelineBarrier");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001416 auto vkEnc = HostConnection::get()->vkEncoder();
1417 vkEnc->vkCmdPipelineBarrier(commandBuffer, srcStageMask, dstStageMask, dependencyFlags, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers);
1418}
1419static void entry_vkCmdBeginQuery(
1420 VkCommandBuffer commandBuffer,
1421 VkQueryPool queryPool,
1422 uint32_t query,
1423 VkQueryControlFlags flags)
1424{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001425 AEMU_SCOPED_TRACE("vkCmdBeginQuery");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001426 auto vkEnc = HostConnection::get()->vkEncoder();
1427 vkEnc->vkCmdBeginQuery(commandBuffer, queryPool, query, flags);
1428}
1429static void entry_vkCmdEndQuery(
1430 VkCommandBuffer commandBuffer,
1431 VkQueryPool queryPool,
1432 uint32_t query)
1433{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001434 AEMU_SCOPED_TRACE("vkCmdEndQuery");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001435 auto vkEnc = HostConnection::get()->vkEncoder();
1436 vkEnc->vkCmdEndQuery(commandBuffer, queryPool, query);
1437}
1438static void entry_vkCmdResetQueryPool(
1439 VkCommandBuffer commandBuffer,
1440 VkQueryPool queryPool,
1441 uint32_t firstQuery,
1442 uint32_t queryCount)
1443{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001444 AEMU_SCOPED_TRACE("vkCmdResetQueryPool");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001445 auto vkEnc = HostConnection::get()->vkEncoder();
1446 vkEnc->vkCmdResetQueryPool(commandBuffer, queryPool, firstQuery, queryCount);
1447}
1448static void entry_vkCmdWriteTimestamp(
1449 VkCommandBuffer commandBuffer,
1450 VkPipelineStageFlagBits pipelineStage,
1451 VkQueryPool queryPool,
1452 uint32_t query)
1453{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001454 AEMU_SCOPED_TRACE("vkCmdWriteTimestamp");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001455 auto vkEnc = HostConnection::get()->vkEncoder();
1456 vkEnc->vkCmdWriteTimestamp(commandBuffer, pipelineStage, queryPool, query);
1457}
1458static void entry_vkCmdCopyQueryPoolResults(
1459 VkCommandBuffer commandBuffer,
1460 VkQueryPool queryPool,
1461 uint32_t firstQuery,
1462 uint32_t queryCount,
1463 VkBuffer dstBuffer,
1464 VkDeviceSize dstOffset,
1465 VkDeviceSize stride,
1466 VkQueryResultFlags flags)
1467{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001468 AEMU_SCOPED_TRACE("vkCmdCopyQueryPoolResults");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001469 auto vkEnc = HostConnection::get()->vkEncoder();
1470 vkEnc->vkCmdCopyQueryPoolResults(commandBuffer, queryPool, firstQuery, queryCount, dstBuffer, dstOffset, stride, flags);
1471}
1472static void entry_vkCmdPushConstants(
1473 VkCommandBuffer commandBuffer,
1474 VkPipelineLayout layout,
1475 VkShaderStageFlags stageFlags,
1476 uint32_t offset,
1477 uint32_t size,
1478 const void* pValues)
1479{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001480 AEMU_SCOPED_TRACE("vkCmdPushConstants");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001481 auto vkEnc = HostConnection::get()->vkEncoder();
1482 vkEnc->vkCmdPushConstants(commandBuffer, layout, stageFlags, offset, size, pValues);
1483}
1484static void entry_vkCmdBeginRenderPass(
1485 VkCommandBuffer commandBuffer,
1486 const VkRenderPassBeginInfo* pRenderPassBegin,
1487 VkSubpassContents contents)
1488{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001489 AEMU_SCOPED_TRACE("vkCmdBeginRenderPass");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001490 auto vkEnc = HostConnection::get()->vkEncoder();
1491 vkEnc->vkCmdBeginRenderPass(commandBuffer, pRenderPassBegin, contents);
1492}
1493static void entry_vkCmdNextSubpass(
1494 VkCommandBuffer commandBuffer,
1495 VkSubpassContents contents)
1496{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001497 AEMU_SCOPED_TRACE("vkCmdNextSubpass");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001498 auto vkEnc = HostConnection::get()->vkEncoder();
1499 vkEnc->vkCmdNextSubpass(commandBuffer, contents);
1500}
1501static void entry_vkCmdEndRenderPass(
1502 VkCommandBuffer commandBuffer)
1503{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001504 AEMU_SCOPED_TRACE("vkCmdEndRenderPass");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001505 auto vkEnc = HostConnection::get()->vkEncoder();
1506 vkEnc->vkCmdEndRenderPass(commandBuffer);
1507}
1508static void entry_vkCmdExecuteCommands(
1509 VkCommandBuffer commandBuffer,
1510 uint32_t commandBufferCount,
1511 const VkCommandBuffer* pCommandBuffers)
1512{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001513 AEMU_SCOPED_TRACE("vkCmdExecuteCommands");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001514 auto vkEnc = HostConnection::get()->vkEncoder();
1515 vkEnc->vkCmdExecuteCommands(commandBuffer, commandBufferCount, pCommandBuffers);
1516}
1517#endif
1518#ifdef VK_VERSION_1_1
1519static VkResult entry_vkEnumerateInstanceVersion(
1520 uint32_t* pApiVersion)
1521{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001522 AEMU_SCOPED_TRACE("vkEnumerateInstanceVersion");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001523 auto vkEnc = HostConnection::get()->vkEncoder();
1524 VkResult vkEnumerateInstanceVersion_VkResult_return = (VkResult)0;
1525 vkEnumerateInstanceVersion_VkResult_return = vkEnc->vkEnumerateInstanceVersion(pApiVersion);
1526 return vkEnumerateInstanceVersion_VkResult_return;
1527}
1528static VkResult entry_vkBindBufferMemory2(
1529 VkDevice device,
1530 uint32_t bindInfoCount,
1531 const VkBindBufferMemoryInfo* pBindInfos)
1532{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001533 AEMU_SCOPED_TRACE("vkBindBufferMemory2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001534 auto vkEnc = HostConnection::get()->vkEncoder();
1535 VkResult vkBindBufferMemory2_VkResult_return = (VkResult)0;
Lingfeng Yang4af5f322019-02-14 08:10:28 -08001536 auto resources = ResourceTracker::get();
1537 vkBindBufferMemory2_VkResult_return = resources->on_vkBindBufferMemory2(vkEnc, VK_SUCCESS, device, bindInfoCount, pBindInfos);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001538 return vkBindBufferMemory2_VkResult_return;
1539}
1540static VkResult entry_vkBindImageMemory2(
1541 VkDevice device,
1542 uint32_t bindInfoCount,
1543 const VkBindImageMemoryInfo* pBindInfos)
1544{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001545 AEMU_SCOPED_TRACE("vkBindImageMemory2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001546 auto vkEnc = HostConnection::get()->vkEncoder();
1547 VkResult vkBindImageMemory2_VkResult_return = (VkResult)0;
Lingfeng Yang4af5f322019-02-14 08:10:28 -08001548 auto resources = ResourceTracker::get();
1549 vkBindImageMemory2_VkResult_return = resources->on_vkBindImageMemory2(vkEnc, VK_SUCCESS, device, bindInfoCount, pBindInfos);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001550 return vkBindImageMemory2_VkResult_return;
1551}
1552static void entry_vkGetDeviceGroupPeerMemoryFeatures(
1553 VkDevice device,
1554 uint32_t heapIndex,
1555 uint32_t localDeviceIndex,
1556 uint32_t remoteDeviceIndex,
1557 VkPeerMemoryFeatureFlags* pPeerMemoryFeatures)
1558{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001559 AEMU_SCOPED_TRACE("vkGetDeviceGroupPeerMemoryFeatures");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001560 auto vkEnc = HostConnection::get()->vkEncoder();
1561 vkEnc->vkGetDeviceGroupPeerMemoryFeatures(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures);
1562}
1563static void entry_vkCmdSetDeviceMask(
1564 VkCommandBuffer commandBuffer,
1565 uint32_t deviceMask)
1566{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001567 AEMU_SCOPED_TRACE("vkCmdSetDeviceMask");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001568 auto vkEnc = HostConnection::get()->vkEncoder();
1569 vkEnc->vkCmdSetDeviceMask(commandBuffer, deviceMask);
1570}
1571static void entry_vkCmdDispatchBase(
1572 VkCommandBuffer commandBuffer,
1573 uint32_t baseGroupX,
1574 uint32_t baseGroupY,
1575 uint32_t baseGroupZ,
1576 uint32_t groupCountX,
1577 uint32_t groupCountY,
1578 uint32_t groupCountZ)
1579{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001580 AEMU_SCOPED_TRACE("vkCmdDispatchBase");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001581 auto vkEnc = HostConnection::get()->vkEncoder();
1582 vkEnc->vkCmdDispatchBase(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ);
1583}
1584static VkResult entry_vkEnumeratePhysicalDeviceGroups(
1585 VkInstance instance,
1586 uint32_t* pPhysicalDeviceGroupCount,
1587 VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties)
1588{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001589 AEMU_SCOPED_TRACE("vkEnumeratePhysicalDeviceGroups");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001590 auto vkEnc = HostConnection::get()->vkEncoder();
1591 VkResult vkEnumeratePhysicalDeviceGroups_VkResult_return = (VkResult)0;
1592 vkEnumeratePhysicalDeviceGroups_VkResult_return = vkEnc->vkEnumeratePhysicalDeviceGroups(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties);
1593 return vkEnumeratePhysicalDeviceGroups_VkResult_return;
1594}
1595static void entry_vkGetImageMemoryRequirements2(
1596 VkDevice device,
1597 const VkImageMemoryRequirementsInfo2* pInfo,
1598 VkMemoryRequirements2* pMemoryRequirements)
1599{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001600 AEMU_SCOPED_TRACE("vkGetImageMemoryRequirements2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001601 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang4af5f322019-02-14 08:10:28 -08001602 auto resources = ResourceTracker::get();
1603 resources->on_vkGetImageMemoryRequirements2(vkEnc, device, pInfo, pMemoryRequirements);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001604}
1605static void entry_vkGetBufferMemoryRequirements2(
1606 VkDevice device,
1607 const VkBufferMemoryRequirementsInfo2* pInfo,
1608 VkMemoryRequirements2* pMemoryRequirements)
1609{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001610 AEMU_SCOPED_TRACE("vkGetBufferMemoryRequirements2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001611 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang4af5f322019-02-14 08:10:28 -08001612 auto resources = ResourceTracker::get();
1613 resources->on_vkGetBufferMemoryRequirements2(vkEnc, device, pInfo, pMemoryRequirements);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001614}
1615static void entry_vkGetImageSparseMemoryRequirements2(
1616 VkDevice device,
1617 const VkImageSparseMemoryRequirementsInfo2* pInfo,
1618 uint32_t* pSparseMemoryRequirementCount,
1619 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements)
1620{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001621 AEMU_SCOPED_TRACE("vkGetImageSparseMemoryRequirements2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001622 auto vkEnc = HostConnection::get()->vkEncoder();
1623 vkEnc->vkGetImageSparseMemoryRequirements2(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements);
1624}
1625static void entry_vkGetPhysicalDeviceFeatures2(
1626 VkPhysicalDevice physicalDevice,
1627 VkPhysicalDeviceFeatures2* pFeatures)
1628{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001629 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFeatures2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001630 auto vkEnc = HostConnection::get()->vkEncoder();
1631 vkEnc->vkGetPhysicalDeviceFeatures2(physicalDevice, pFeatures);
1632}
1633static void entry_vkGetPhysicalDeviceProperties2(
1634 VkPhysicalDevice physicalDevice,
1635 VkPhysicalDeviceProperties2* pProperties)
1636{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001637 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceProperties2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001638 auto vkEnc = HostConnection::get()->vkEncoder();
1639 vkEnc->vkGetPhysicalDeviceProperties2(physicalDevice, pProperties);
1640}
1641static void entry_vkGetPhysicalDeviceFormatProperties2(
1642 VkPhysicalDevice physicalDevice,
1643 VkFormat format,
1644 VkFormatProperties2* pFormatProperties)
1645{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001646 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFormatProperties2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001647 auto vkEnc = HostConnection::get()->vkEncoder();
1648 vkEnc->vkGetPhysicalDeviceFormatProperties2(physicalDevice, format, pFormatProperties);
1649}
1650static VkResult entry_vkGetPhysicalDeviceImageFormatProperties2(
1651 VkPhysicalDevice physicalDevice,
1652 const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
1653 VkImageFormatProperties2* pImageFormatProperties)
1654{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001655 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceImageFormatProperties2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001656 auto vkEnc = HostConnection::get()->vkEncoder();
1657 VkResult vkGetPhysicalDeviceImageFormatProperties2_VkResult_return = (VkResult)0;
Lingfeng Yange517d1e2019-03-25 18:02:49 -07001658 auto resources = ResourceTracker::get();
1659 vkGetPhysicalDeviceImageFormatProperties2_VkResult_return = resources->on_vkGetPhysicalDeviceImageFormatProperties2(vkEnc, VK_SUCCESS, physicalDevice, pImageFormatInfo, pImageFormatProperties);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001660 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;
Lingfeng Yang5c701122019-03-05 08:34:46 -08001716 auto resources = ResourceTracker::get();
1717 vkCreateSamplerYcbcrConversion_VkResult_return = resources->on_vkCreateSamplerYcbcrConversion(vkEnc, VK_SUCCESS, device, pCreateInfo, pAllocator, pYcbcrConversion);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001718 return vkCreateSamplerYcbcrConversion_VkResult_return;
1719}
1720static void entry_vkDestroySamplerYcbcrConversion(
1721 VkDevice device,
1722 VkSamplerYcbcrConversion ycbcrConversion,
1723 const VkAllocationCallbacks* pAllocator)
1724{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001725 AEMU_SCOPED_TRACE("vkDestroySamplerYcbcrConversion");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001726 auto vkEnc = HostConnection::get()->vkEncoder();
1727 vkEnc->vkDestroySamplerYcbcrConversion(device, ycbcrConversion, pAllocator);
1728}
1729static VkResult entry_vkCreateDescriptorUpdateTemplate(
1730 VkDevice device,
1731 const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
1732 const VkAllocationCallbacks* pAllocator,
1733 VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate)
1734{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001735 AEMU_SCOPED_TRACE("vkCreateDescriptorUpdateTemplate");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001736 auto vkEnc = HostConnection::get()->vkEncoder();
1737 VkResult vkCreateDescriptorUpdateTemplate_VkResult_return = (VkResult)0;
1738 vkCreateDescriptorUpdateTemplate_VkResult_return = vkEnc->vkCreateDescriptorUpdateTemplate(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate);
1739 return vkCreateDescriptorUpdateTemplate_VkResult_return;
1740}
1741static void entry_vkDestroyDescriptorUpdateTemplate(
1742 VkDevice device,
1743 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
1744 const VkAllocationCallbacks* pAllocator)
1745{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001746 AEMU_SCOPED_TRACE("vkDestroyDescriptorUpdateTemplate");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001747 auto vkEnc = HostConnection::get()->vkEncoder();
1748 vkEnc->vkDestroyDescriptorUpdateTemplate(device, descriptorUpdateTemplate, pAllocator);
1749}
1750static void entry_vkUpdateDescriptorSetWithTemplate(
1751 VkDevice device,
1752 VkDescriptorSet descriptorSet,
1753 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
1754 const void* pData)
1755{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001756 AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplate");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001757 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang05d5ea32019-03-23 00:12:39 -07001758 auto resources = ResourceTracker::get();
1759 resources->on_vkUpdateDescriptorSetWithTemplate(vkEnc, device, descriptorSet, descriptorUpdateTemplate, pData);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001760}
1761static void entry_vkGetPhysicalDeviceExternalBufferProperties(
1762 VkPhysicalDevice physicalDevice,
1763 const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
1764 VkExternalBufferProperties* pExternalBufferProperties)
1765{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001766 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalBufferProperties");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001767 auto vkEnc = HostConnection::get()->vkEncoder();
1768 vkEnc->vkGetPhysicalDeviceExternalBufferProperties(physicalDevice, pExternalBufferInfo, pExternalBufferProperties);
1769}
1770static void entry_vkGetPhysicalDeviceExternalFenceProperties(
1771 VkPhysicalDevice physicalDevice,
1772 const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
1773 VkExternalFenceProperties* pExternalFenceProperties)
1774{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001775 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalFenceProperties");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001776 auto vkEnc = HostConnection::get()->vkEncoder();
1777 vkEnc->vkGetPhysicalDeviceExternalFenceProperties(physicalDevice, pExternalFenceInfo, pExternalFenceProperties);
1778}
1779static void entry_vkGetPhysicalDeviceExternalSemaphoreProperties(
1780 VkPhysicalDevice physicalDevice,
1781 const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
1782 VkExternalSemaphoreProperties* pExternalSemaphoreProperties)
1783{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001784 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalSemaphoreProperties");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001785 auto vkEnc = HostConnection::get()->vkEncoder();
1786 vkEnc->vkGetPhysicalDeviceExternalSemaphoreProperties(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties);
1787}
1788static void entry_vkGetDescriptorSetLayoutSupport(
1789 VkDevice device,
1790 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
1791 VkDescriptorSetLayoutSupport* pSupport)
1792{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001793 AEMU_SCOPED_TRACE("vkGetDescriptorSetLayoutSupport");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001794 auto vkEnc = HostConnection::get()->vkEncoder();
1795 vkEnc->vkGetDescriptorSetLayoutSupport(device, pCreateInfo, pSupport);
1796}
1797#endif
1798#ifdef VK_KHR_surface
1799static void entry_vkDestroySurfaceKHR(
1800 VkInstance instance,
1801 VkSurfaceKHR surface,
1802 const VkAllocationCallbacks* pAllocator)
1803{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001804 AEMU_SCOPED_TRACE("vkDestroySurfaceKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001805 auto vkEnc = HostConnection::get()->vkEncoder();
1806 vkEnc->vkDestroySurfaceKHR(instance, surface, pAllocator);
1807}
1808static VkResult entry_vkGetPhysicalDeviceSurfaceSupportKHR(
1809 VkPhysicalDevice physicalDevice,
1810 uint32_t queueFamilyIndex,
1811 VkSurfaceKHR surface,
1812 VkBool32* pSupported)
1813{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001814 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceSupportKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001815 auto vkEnc = HostConnection::get()->vkEncoder();
1816 VkResult vkGetPhysicalDeviceSurfaceSupportKHR_VkResult_return = (VkResult)0;
1817 vkGetPhysicalDeviceSurfaceSupportKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceSupportKHR(physicalDevice, queueFamilyIndex, surface, pSupported);
1818 return vkGetPhysicalDeviceSurfaceSupportKHR_VkResult_return;
1819}
1820static VkResult entry_vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
1821 VkPhysicalDevice physicalDevice,
1822 VkSurfaceKHR surface,
1823 VkSurfaceCapabilitiesKHR* pSurfaceCapabilities)
1824{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001825 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceCapabilitiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001826 auto vkEnc = HostConnection::get()->vkEncoder();
1827 VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR_VkResult_return = (VkResult)0;
1828 vkGetPhysicalDeviceSurfaceCapabilitiesKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceCapabilitiesKHR(physicalDevice, surface, pSurfaceCapabilities);
1829 return vkGetPhysicalDeviceSurfaceCapabilitiesKHR_VkResult_return;
1830}
1831static VkResult entry_vkGetPhysicalDeviceSurfaceFormatsKHR(
1832 VkPhysicalDevice physicalDevice,
1833 VkSurfaceKHR surface,
1834 uint32_t* pSurfaceFormatCount,
1835 VkSurfaceFormatKHR* pSurfaceFormats)
1836{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001837 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceFormatsKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001838 auto vkEnc = HostConnection::get()->vkEncoder();
1839 VkResult vkGetPhysicalDeviceSurfaceFormatsKHR_VkResult_return = (VkResult)0;
1840 vkGetPhysicalDeviceSurfaceFormatsKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceFormatsKHR(physicalDevice, surface, pSurfaceFormatCount, pSurfaceFormats);
1841 return vkGetPhysicalDeviceSurfaceFormatsKHR_VkResult_return;
1842}
1843static VkResult entry_vkGetPhysicalDeviceSurfacePresentModesKHR(
1844 VkPhysicalDevice physicalDevice,
1845 VkSurfaceKHR surface,
1846 uint32_t* pPresentModeCount,
1847 VkPresentModeKHR* pPresentModes)
1848{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001849 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfacePresentModesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001850 auto vkEnc = HostConnection::get()->vkEncoder();
1851 VkResult vkGetPhysicalDeviceSurfacePresentModesKHR_VkResult_return = (VkResult)0;
1852 vkGetPhysicalDeviceSurfacePresentModesKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfacePresentModesKHR(physicalDevice, surface, pPresentModeCount, pPresentModes);
1853 return vkGetPhysicalDeviceSurfacePresentModesKHR_VkResult_return;
1854}
1855#endif
1856#ifdef VK_KHR_swapchain
1857static VkResult entry_vkCreateSwapchainKHR(
1858 VkDevice device,
1859 const VkSwapchainCreateInfoKHR* pCreateInfo,
1860 const VkAllocationCallbacks* pAllocator,
1861 VkSwapchainKHR* pSwapchain)
1862{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001863 AEMU_SCOPED_TRACE("vkCreateSwapchainKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001864 auto vkEnc = HostConnection::get()->vkEncoder();
1865 VkResult vkCreateSwapchainKHR_VkResult_return = (VkResult)0;
1866 vkCreateSwapchainKHR_VkResult_return = vkEnc->vkCreateSwapchainKHR(device, pCreateInfo, pAllocator, pSwapchain);
1867 return vkCreateSwapchainKHR_VkResult_return;
1868}
1869static void entry_vkDestroySwapchainKHR(
1870 VkDevice device,
1871 VkSwapchainKHR swapchain,
1872 const VkAllocationCallbacks* pAllocator)
1873{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001874 AEMU_SCOPED_TRACE("vkDestroySwapchainKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001875 auto vkEnc = HostConnection::get()->vkEncoder();
1876 vkEnc->vkDestroySwapchainKHR(device, swapchain, pAllocator);
1877}
1878static VkResult entry_vkGetSwapchainImagesKHR(
1879 VkDevice device,
1880 VkSwapchainKHR swapchain,
1881 uint32_t* pSwapchainImageCount,
1882 VkImage* pSwapchainImages)
1883{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001884 AEMU_SCOPED_TRACE("vkGetSwapchainImagesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001885 auto vkEnc = HostConnection::get()->vkEncoder();
1886 VkResult vkGetSwapchainImagesKHR_VkResult_return = (VkResult)0;
1887 vkGetSwapchainImagesKHR_VkResult_return = vkEnc->vkGetSwapchainImagesKHR(device, swapchain, pSwapchainImageCount, pSwapchainImages);
1888 return vkGetSwapchainImagesKHR_VkResult_return;
1889}
1890static VkResult entry_vkAcquireNextImageKHR(
1891 VkDevice device,
1892 VkSwapchainKHR swapchain,
1893 uint64_t timeout,
1894 VkSemaphore semaphore,
1895 VkFence fence,
1896 uint32_t* pImageIndex)
1897{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001898 AEMU_SCOPED_TRACE("vkAcquireNextImageKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001899 auto vkEnc = HostConnection::get()->vkEncoder();
1900 VkResult vkAcquireNextImageKHR_VkResult_return = (VkResult)0;
1901 vkAcquireNextImageKHR_VkResult_return = vkEnc->vkAcquireNextImageKHR(device, swapchain, timeout, semaphore, fence, pImageIndex);
1902 return vkAcquireNextImageKHR_VkResult_return;
1903}
1904static VkResult entry_vkQueuePresentKHR(
1905 VkQueue queue,
1906 const VkPresentInfoKHR* pPresentInfo)
1907{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001908 AEMU_SCOPED_TRACE("vkQueuePresentKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001909 auto vkEnc = HostConnection::get()->vkEncoder();
1910 VkResult vkQueuePresentKHR_VkResult_return = (VkResult)0;
1911 vkQueuePresentKHR_VkResult_return = vkEnc->vkQueuePresentKHR(queue, pPresentInfo);
1912 return vkQueuePresentKHR_VkResult_return;
1913}
1914static VkResult entry_vkGetDeviceGroupPresentCapabilitiesKHR(
1915 VkDevice device,
1916 VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities)
1917{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001918 AEMU_SCOPED_TRACE("vkGetDeviceGroupPresentCapabilitiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001919 auto vkEnc = HostConnection::get()->vkEncoder();
1920 VkResult vkGetDeviceGroupPresentCapabilitiesKHR_VkResult_return = (VkResult)0;
1921 vkGetDeviceGroupPresentCapabilitiesKHR_VkResult_return = vkEnc->vkGetDeviceGroupPresentCapabilitiesKHR(device, pDeviceGroupPresentCapabilities);
1922 return vkGetDeviceGroupPresentCapabilitiesKHR_VkResult_return;
1923}
1924static VkResult entry_vkGetDeviceGroupSurfacePresentModesKHR(
1925 VkDevice device,
1926 VkSurfaceKHR surface,
1927 VkDeviceGroupPresentModeFlagsKHR* pModes)
1928{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001929 AEMU_SCOPED_TRACE("vkGetDeviceGroupSurfacePresentModesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001930 auto vkEnc = HostConnection::get()->vkEncoder();
1931 VkResult vkGetDeviceGroupSurfacePresentModesKHR_VkResult_return = (VkResult)0;
1932 vkGetDeviceGroupSurfacePresentModesKHR_VkResult_return = vkEnc->vkGetDeviceGroupSurfacePresentModesKHR(device, surface, pModes);
1933 return vkGetDeviceGroupSurfacePresentModesKHR_VkResult_return;
1934}
1935static VkResult entry_vkGetPhysicalDevicePresentRectanglesKHR(
1936 VkPhysicalDevice physicalDevice,
1937 VkSurfaceKHR surface,
1938 uint32_t* pRectCount,
1939 VkRect2D* pRects)
1940{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001941 AEMU_SCOPED_TRACE("vkGetPhysicalDevicePresentRectanglesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001942 auto vkEnc = HostConnection::get()->vkEncoder();
1943 VkResult vkGetPhysicalDevicePresentRectanglesKHR_VkResult_return = (VkResult)0;
1944 vkGetPhysicalDevicePresentRectanglesKHR_VkResult_return = vkEnc->vkGetPhysicalDevicePresentRectanglesKHR(physicalDevice, surface, pRectCount, pRects);
1945 return vkGetPhysicalDevicePresentRectanglesKHR_VkResult_return;
1946}
1947static VkResult entry_vkAcquireNextImage2KHR(
1948 VkDevice device,
1949 const VkAcquireNextImageInfoKHR* pAcquireInfo,
1950 uint32_t* pImageIndex)
1951{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001952 AEMU_SCOPED_TRACE("vkAcquireNextImage2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001953 auto vkEnc = HostConnection::get()->vkEncoder();
1954 VkResult vkAcquireNextImage2KHR_VkResult_return = (VkResult)0;
1955 vkAcquireNextImage2KHR_VkResult_return = vkEnc->vkAcquireNextImage2KHR(device, pAcquireInfo, pImageIndex);
1956 return vkAcquireNextImage2KHR_VkResult_return;
1957}
1958#endif
1959#ifdef VK_KHR_display
1960static VkResult entry_vkGetPhysicalDeviceDisplayPropertiesKHR(
1961 VkPhysicalDevice physicalDevice,
1962 uint32_t* pPropertyCount,
1963 VkDisplayPropertiesKHR* pProperties)
1964{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001965 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayPropertiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001966 auto vkEnc = HostConnection::get()->vkEncoder();
1967 VkResult vkGetPhysicalDeviceDisplayPropertiesKHR_VkResult_return = (VkResult)0;
1968 vkGetPhysicalDeviceDisplayPropertiesKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceDisplayPropertiesKHR(physicalDevice, pPropertyCount, pProperties);
1969 return vkGetPhysicalDeviceDisplayPropertiesKHR_VkResult_return;
1970}
1971static VkResult entry_vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
1972 VkPhysicalDevice physicalDevice,
1973 uint32_t* pPropertyCount,
1974 VkDisplayPlanePropertiesKHR* pProperties)
1975{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001976 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayPlanePropertiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001977 auto vkEnc = HostConnection::get()->vkEncoder();
1978 VkResult vkGetPhysicalDeviceDisplayPlanePropertiesKHR_VkResult_return = (VkResult)0;
1979 vkGetPhysicalDeviceDisplayPlanePropertiesKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceDisplayPlanePropertiesKHR(physicalDevice, pPropertyCount, pProperties);
1980 return vkGetPhysicalDeviceDisplayPlanePropertiesKHR_VkResult_return;
1981}
1982static VkResult entry_vkGetDisplayPlaneSupportedDisplaysKHR(
1983 VkPhysicalDevice physicalDevice,
1984 uint32_t planeIndex,
1985 uint32_t* pDisplayCount,
1986 VkDisplayKHR* pDisplays)
1987{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001988 AEMU_SCOPED_TRACE("vkGetDisplayPlaneSupportedDisplaysKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001989 auto vkEnc = HostConnection::get()->vkEncoder();
1990 VkResult vkGetDisplayPlaneSupportedDisplaysKHR_VkResult_return = (VkResult)0;
1991 vkGetDisplayPlaneSupportedDisplaysKHR_VkResult_return = vkEnc->vkGetDisplayPlaneSupportedDisplaysKHR(physicalDevice, planeIndex, pDisplayCount, pDisplays);
1992 return vkGetDisplayPlaneSupportedDisplaysKHR_VkResult_return;
1993}
1994static VkResult entry_vkGetDisplayModePropertiesKHR(
1995 VkPhysicalDevice physicalDevice,
1996 VkDisplayKHR display,
1997 uint32_t* pPropertyCount,
1998 VkDisplayModePropertiesKHR* pProperties)
1999{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002000 AEMU_SCOPED_TRACE("vkGetDisplayModePropertiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002001 auto vkEnc = HostConnection::get()->vkEncoder();
2002 VkResult vkGetDisplayModePropertiesKHR_VkResult_return = (VkResult)0;
2003 vkGetDisplayModePropertiesKHR_VkResult_return = vkEnc->vkGetDisplayModePropertiesKHR(physicalDevice, display, pPropertyCount, pProperties);
2004 return vkGetDisplayModePropertiesKHR_VkResult_return;
2005}
2006static VkResult entry_vkCreateDisplayModeKHR(
2007 VkPhysicalDevice physicalDevice,
2008 VkDisplayKHR display,
2009 const VkDisplayModeCreateInfoKHR* pCreateInfo,
2010 const VkAllocationCallbacks* pAllocator,
2011 VkDisplayModeKHR* pMode)
2012{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002013 AEMU_SCOPED_TRACE("vkCreateDisplayModeKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002014 auto vkEnc = HostConnection::get()->vkEncoder();
2015 VkResult vkCreateDisplayModeKHR_VkResult_return = (VkResult)0;
2016 vkCreateDisplayModeKHR_VkResult_return = vkEnc->vkCreateDisplayModeKHR(physicalDevice, display, pCreateInfo, pAllocator, pMode);
2017 return vkCreateDisplayModeKHR_VkResult_return;
2018}
2019static VkResult entry_vkGetDisplayPlaneCapabilitiesKHR(
2020 VkPhysicalDevice physicalDevice,
2021 VkDisplayModeKHR mode,
2022 uint32_t planeIndex,
2023 VkDisplayPlaneCapabilitiesKHR* pCapabilities)
2024{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002025 AEMU_SCOPED_TRACE("vkGetDisplayPlaneCapabilitiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002026 auto vkEnc = HostConnection::get()->vkEncoder();
2027 VkResult vkGetDisplayPlaneCapabilitiesKHR_VkResult_return = (VkResult)0;
2028 vkGetDisplayPlaneCapabilitiesKHR_VkResult_return = vkEnc->vkGetDisplayPlaneCapabilitiesKHR(physicalDevice, mode, planeIndex, pCapabilities);
2029 return vkGetDisplayPlaneCapabilitiesKHR_VkResult_return;
2030}
2031static VkResult entry_vkCreateDisplayPlaneSurfaceKHR(
2032 VkInstance instance,
2033 const VkDisplaySurfaceCreateInfoKHR* pCreateInfo,
2034 const VkAllocationCallbacks* pAllocator,
2035 VkSurfaceKHR* pSurface)
2036{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002037 AEMU_SCOPED_TRACE("vkCreateDisplayPlaneSurfaceKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002038 auto vkEnc = HostConnection::get()->vkEncoder();
2039 VkResult vkCreateDisplayPlaneSurfaceKHR_VkResult_return = (VkResult)0;
2040 vkCreateDisplayPlaneSurfaceKHR_VkResult_return = vkEnc->vkCreateDisplayPlaneSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
2041 return vkCreateDisplayPlaneSurfaceKHR_VkResult_return;
2042}
2043#endif
2044#ifdef VK_KHR_display_swapchain
2045static VkResult entry_vkCreateSharedSwapchainsKHR(
2046 VkDevice device,
2047 uint32_t swapchainCount,
2048 const VkSwapchainCreateInfoKHR* pCreateInfos,
2049 const VkAllocationCallbacks* pAllocator,
2050 VkSwapchainKHR* pSwapchains)
2051{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002052 AEMU_SCOPED_TRACE("vkCreateSharedSwapchainsKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002053 auto vkEnc = HostConnection::get()->vkEncoder();
2054 VkResult vkCreateSharedSwapchainsKHR_VkResult_return = (VkResult)0;
2055 vkCreateSharedSwapchainsKHR_VkResult_return = vkEnc->vkCreateSharedSwapchainsKHR(device, swapchainCount, pCreateInfos, pAllocator, pSwapchains);
2056 return vkCreateSharedSwapchainsKHR_VkResult_return;
2057}
2058#endif
2059#ifdef VK_KHR_xlib_surface
2060static VkResult entry_vkCreateXlibSurfaceKHR(
2061 VkInstance instance,
2062 const VkXlibSurfaceCreateInfoKHR* pCreateInfo,
2063 const VkAllocationCallbacks* pAllocator,
2064 VkSurfaceKHR* pSurface)
2065{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002066 AEMU_SCOPED_TRACE("vkCreateXlibSurfaceKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002067 auto vkEnc = HostConnection::get()->vkEncoder();
2068 VkResult vkCreateXlibSurfaceKHR_VkResult_return = (VkResult)0;
2069 vkCreateXlibSurfaceKHR_VkResult_return = vkEnc->vkCreateXlibSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
2070 return vkCreateXlibSurfaceKHR_VkResult_return;
2071}
2072static VkBool32 entry_vkGetPhysicalDeviceXlibPresentationSupportKHR(
2073 VkPhysicalDevice physicalDevice,
2074 uint32_t queueFamilyIndex,
2075 Display* dpy,
2076 VisualID visualID)
2077{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002078 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceXlibPresentationSupportKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002079 auto vkEnc = HostConnection::get()->vkEncoder();
2080 VkBool32 vkGetPhysicalDeviceXlibPresentationSupportKHR_VkBool32_return = (VkBool32)0;
2081 vkGetPhysicalDeviceXlibPresentationSupportKHR_VkBool32_return = vkEnc->vkGetPhysicalDeviceXlibPresentationSupportKHR(physicalDevice, queueFamilyIndex, dpy, visualID);
2082 return vkGetPhysicalDeviceXlibPresentationSupportKHR_VkBool32_return;
2083}
2084#endif
2085#ifdef VK_KHR_xcb_surface
2086static VkResult entry_vkCreateXcbSurfaceKHR(
2087 VkInstance instance,
2088 const VkXcbSurfaceCreateInfoKHR* pCreateInfo,
2089 const VkAllocationCallbacks* pAllocator,
2090 VkSurfaceKHR* pSurface)
2091{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002092 AEMU_SCOPED_TRACE("vkCreateXcbSurfaceKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002093 auto vkEnc = HostConnection::get()->vkEncoder();
2094 VkResult vkCreateXcbSurfaceKHR_VkResult_return = (VkResult)0;
2095 vkCreateXcbSurfaceKHR_VkResult_return = vkEnc->vkCreateXcbSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
2096 return vkCreateXcbSurfaceKHR_VkResult_return;
2097}
2098static VkBool32 entry_vkGetPhysicalDeviceXcbPresentationSupportKHR(
2099 VkPhysicalDevice physicalDevice,
2100 uint32_t queueFamilyIndex,
2101 xcb_connection_t* connection,
2102 xcb_visualid_t visual_id)
2103{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002104 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceXcbPresentationSupportKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002105 auto vkEnc = HostConnection::get()->vkEncoder();
2106 VkBool32 vkGetPhysicalDeviceXcbPresentationSupportKHR_VkBool32_return = (VkBool32)0;
2107 vkGetPhysicalDeviceXcbPresentationSupportKHR_VkBool32_return = vkEnc->vkGetPhysicalDeviceXcbPresentationSupportKHR(physicalDevice, queueFamilyIndex, connection, visual_id);
2108 return vkGetPhysicalDeviceXcbPresentationSupportKHR_VkBool32_return;
2109}
2110#endif
2111#ifdef VK_KHR_wayland_surface
2112static VkResult entry_vkCreateWaylandSurfaceKHR(
2113 VkInstance instance,
2114 const VkWaylandSurfaceCreateInfoKHR* pCreateInfo,
2115 const VkAllocationCallbacks* pAllocator,
2116 VkSurfaceKHR* pSurface)
2117{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002118 AEMU_SCOPED_TRACE("vkCreateWaylandSurfaceKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002119 auto vkEnc = HostConnection::get()->vkEncoder();
2120 VkResult vkCreateWaylandSurfaceKHR_VkResult_return = (VkResult)0;
2121 vkCreateWaylandSurfaceKHR_VkResult_return = vkEnc->vkCreateWaylandSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
2122 return vkCreateWaylandSurfaceKHR_VkResult_return;
2123}
2124static VkBool32 entry_vkGetPhysicalDeviceWaylandPresentationSupportKHR(
2125 VkPhysicalDevice physicalDevice,
2126 uint32_t queueFamilyIndex,
2127 wl_display* display)
2128{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002129 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceWaylandPresentationSupportKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002130 auto vkEnc = HostConnection::get()->vkEncoder();
2131 VkBool32 vkGetPhysicalDeviceWaylandPresentationSupportKHR_VkBool32_return = (VkBool32)0;
2132 vkGetPhysicalDeviceWaylandPresentationSupportKHR_VkBool32_return = vkEnc->vkGetPhysicalDeviceWaylandPresentationSupportKHR(physicalDevice, queueFamilyIndex, display);
2133 return vkGetPhysicalDeviceWaylandPresentationSupportKHR_VkBool32_return;
2134}
2135#endif
2136#ifdef VK_KHR_mir_surface
2137static VkResult entry_vkCreateMirSurfaceKHR(
2138 VkInstance instance,
2139 const VkMirSurfaceCreateInfoKHR* pCreateInfo,
2140 const VkAllocationCallbacks* pAllocator,
2141 VkSurfaceKHR* pSurface)
2142{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002143 AEMU_SCOPED_TRACE("vkCreateMirSurfaceKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002144 auto vkEnc = HostConnection::get()->vkEncoder();
2145 VkResult vkCreateMirSurfaceKHR_VkResult_return = (VkResult)0;
2146 vkCreateMirSurfaceKHR_VkResult_return = vkEnc->vkCreateMirSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
2147 return vkCreateMirSurfaceKHR_VkResult_return;
2148}
2149static VkBool32 entry_vkGetPhysicalDeviceMirPresentationSupportKHR(
2150 VkPhysicalDevice physicalDevice,
2151 uint32_t queueFamilyIndex,
2152 MirConnection* connection)
2153{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002154 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMirPresentationSupportKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002155 auto vkEnc = HostConnection::get()->vkEncoder();
2156 VkBool32 vkGetPhysicalDeviceMirPresentationSupportKHR_VkBool32_return = (VkBool32)0;
2157 vkGetPhysicalDeviceMirPresentationSupportKHR_VkBool32_return = vkEnc->vkGetPhysicalDeviceMirPresentationSupportKHR(physicalDevice, queueFamilyIndex, connection);
2158 return vkGetPhysicalDeviceMirPresentationSupportKHR_VkBool32_return;
2159}
2160#endif
2161#ifdef VK_KHR_android_surface
2162static VkResult entry_vkCreateAndroidSurfaceKHR(
2163 VkInstance instance,
2164 const VkAndroidSurfaceCreateInfoKHR* pCreateInfo,
2165 const VkAllocationCallbacks* pAllocator,
2166 VkSurfaceKHR* pSurface)
2167{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002168 AEMU_SCOPED_TRACE("vkCreateAndroidSurfaceKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002169 auto vkEnc = HostConnection::get()->vkEncoder();
2170 VkResult vkCreateAndroidSurfaceKHR_VkResult_return = (VkResult)0;
2171 vkCreateAndroidSurfaceKHR_VkResult_return = vkEnc->vkCreateAndroidSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
2172 return vkCreateAndroidSurfaceKHR_VkResult_return;
2173}
2174#endif
2175#ifdef VK_KHR_win32_surface
2176static VkResult entry_vkCreateWin32SurfaceKHR(
2177 VkInstance instance,
2178 const VkWin32SurfaceCreateInfoKHR* pCreateInfo,
2179 const VkAllocationCallbacks* pAllocator,
2180 VkSurfaceKHR* pSurface)
2181{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002182 AEMU_SCOPED_TRACE("vkCreateWin32SurfaceKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002183 auto vkEnc = HostConnection::get()->vkEncoder();
2184 VkResult vkCreateWin32SurfaceKHR_VkResult_return = (VkResult)0;
2185 vkCreateWin32SurfaceKHR_VkResult_return = vkEnc->vkCreateWin32SurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
2186 return vkCreateWin32SurfaceKHR_VkResult_return;
2187}
2188static VkBool32 entry_vkGetPhysicalDeviceWin32PresentationSupportKHR(
2189 VkPhysicalDevice physicalDevice,
2190 uint32_t queueFamilyIndex)
2191{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002192 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceWin32PresentationSupportKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002193 auto vkEnc = HostConnection::get()->vkEncoder();
2194 VkBool32 vkGetPhysicalDeviceWin32PresentationSupportKHR_VkBool32_return = (VkBool32)0;
2195 vkGetPhysicalDeviceWin32PresentationSupportKHR_VkBool32_return = vkEnc->vkGetPhysicalDeviceWin32PresentationSupportKHR(physicalDevice, queueFamilyIndex);
2196 return vkGetPhysicalDeviceWin32PresentationSupportKHR_VkBool32_return;
2197}
2198#endif
2199#ifdef VK_KHR_sampler_mirror_clamp_to_edge
2200#endif
2201#ifdef VK_KHR_multiview
2202#endif
2203#ifdef VK_KHR_get_physical_device_properties2
2204static void entry_vkGetPhysicalDeviceFeatures2KHR(
2205 VkPhysicalDevice physicalDevice,
2206 VkPhysicalDeviceFeatures2* pFeatures)
2207{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002208 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFeatures2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002209 auto vkEnc = HostConnection::get()->vkEncoder();
2210 vkEnc->vkGetPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures);
2211}
2212static void entry_vkGetPhysicalDeviceProperties2KHR(
2213 VkPhysicalDevice physicalDevice,
2214 VkPhysicalDeviceProperties2* pProperties)
2215{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002216 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002217 auto vkEnc = HostConnection::get()->vkEncoder();
2218 vkEnc->vkGetPhysicalDeviceProperties2KHR(physicalDevice, pProperties);
2219}
2220static void entry_vkGetPhysicalDeviceFormatProperties2KHR(
2221 VkPhysicalDevice physicalDevice,
2222 VkFormat format,
2223 VkFormatProperties2* pFormatProperties)
2224{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002225 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFormatProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002226 auto vkEnc = HostConnection::get()->vkEncoder();
2227 vkEnc->vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice, format, pFormatProperties);
2228}
2229static VkResult entry_vkGetPhysicalDeviceImageFormatProperties2KHR(
2230 VkPhysicalDevice physicalDevice,
2231 const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
2232 VkImageFormatProperties2* pImageFormatProperties)
2233{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002234 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceImageFormatProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002235 auto vkEnc = HostConnection::get()->vkEncoder();
2236 VkResult vkGetPhysicalDeviceImageFormatProperties2KHR_VkResult_return = (VkResult)0;
Lingfeng Yange517d1e2019-03-25 18:02:49 -07002237 auto resources = ResourceTracker::get();
2238 vkGetPhysicalDeviceImageFormatProperties2KHR_VkResult_return = resources->on_vkGetPhysicalDeviceImageFormatProperties2KHR(vkEnc, VK_SUCCESS, physicalDevice, pImageFormatInfo, pImageFormatProperties);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002239 return vkGetPhysicalDeviceImageFormatProperties2KHR_VkResult_return;
2240}
2241static void entry_vkGetPhysicalDeviceQueueFamilyProperties2KHR(
2242 VkPhysicalDevice physicalDevice,
2243 uint32_t* pQueueFamilyPropertyCount,
2244 VkQueueFamilyProperties2* pQueueFamilyProperties)
2245{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002246 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceQueueFamilyProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002247 auto vkEnc = HostConnection::get()->vkEncoder();
2248 vkEnc->vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties);
2249}
2250static void entry_vkGetPhysicalDeviceMemoryProperties2KHR(
2251 VkPhysicalDevice physicalDevice,
2252 VkPhysicalDeviceMemoryProperties2* pMemoryProperties)
2253{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002254 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMemoryProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002255 auto vkEnc = HostConnection::get()->vkEncoder();
2256 vkEnc->vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice, pMemoryProperties);
2257}
2258static void entry_vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
2259 VkPhysicalDevice physicalDevice,
2260 const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
2261 uint32_t* pPropertyCount,
2262 VkSparseImageFormatProperties2* pProperties)
2263{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002264 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSparseImageFormatProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002265 auto vkEnc = HostConnection::get()->vkEncoder();
2266 vkEnc->vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties);
2267}
2268#endif
2269#ifdef VK_KHR_device_group
2270static void entry_vkGetDeviceGroupPeerMemoryFeaturesKHR(
2271 VkDevice device,
2272 uint32_t heapIndex,
2273 uint32_t localDeviceIndex,
2274 uint32_t remoteDeviceIndex,
2275 VkPeerMemoryFeatureFlags* pPeerMemoryFeatures)
2276{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002277 AEMU_SCOPED_TRACE("vkGetDeviceGroupPeerMemoryFeaturesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002278 auto vkEnc = HostConnection::get()->vkEncoder();
2279 vkEnc->vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures);
2280}
2281static void entry_vkCmdSetDeviceMaskKHR(
2282 VkCommandBuffer commandBuffer,
2283 uint32_t deviceMask)
2284{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002285 AEMU_SCOPED_TRACE("vkCmdSetDeviceMaskKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002286 auto vkEnc = HostConnection::get()->vkEncoder();
2287 vkEnc->vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask);
2288}
2289static void entry_vkCmdDispatchBaseKHR(
2290 VkCommandBuffer commandBuffer,
2291 uint32_t baseGroupX,
2292 uint32_t baseGroupY,
2293 uint32_t baseGroupZ,
2294 uint32_t groupCountX,
2295 uint32_t groupCountY,
2296 uint32_t groupCountZ)
2297{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002298 AEMU_SCOPED_TRACE("vkCmdDispatchBaseKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002299 auto vkEnc = HostConnection::get()->vkEncoder();
2300 vkEnc->vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ);
2301}
2302#endif
2303#ifdef VK_KHR_shader_draw_parameters
2304#endif
2305#ifdef VK_KHR_maintenance1
2306static void entry_vkTrimCommandPoolKHR(
2307 VkDevice device,
2308 VkCommandPool commandPool,
2309 VkCommandPoolTrimFlags flags)
2310{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002311 AEMU_SCOPED_TRACE("vkTrimCommandPoolKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002312 auto vkEnc = HostConnection::get()->vkEncoder();
2313 vkEnc->vkTrimCommandPoolKHR(device, commandPool, flags);
2314}
2315#endif
2316#ifdef VK_KHR_device_group_creation
2317static VkResult entry_vkEnumeratePhysicalDeviceGroupsKHR(
2318 VkInstance instance,
2319 uint32_t* pPhysicalDeviceGroupCount,
2320 VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties)
2321{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002322 AEMU_SCOPED_TRACE("vkEnumeratePhysicalDeviceGroupsKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002323 auto vkEnc = HostConnection::get()->vkEncoder();
2324 VkResult vkEnumeratePhysicalDeviceGroupsKHR_VkResult_return = (VkResult)0;
2325 vkEnumeratePhysicalDeviceGroupsKHR_VkResult_return = vkEnc->vkEnumeratePhysicalDeviceGroupsKHR(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties);
2326 return vkEnumeratePhysicalDeviceGroupsKHR_VkResult_return;
2327}
2328#endif
2329#ifdef VK_KHR_external_memory_capabilities
2330static void entry_vkGetPhysicalDeviceExternalBufferPropertiesKHR(
2331 VkPhysicalDevice physicalDevice,
2332 const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
2333 VkExternalBufferProperties* pExternalBufferProperties)
2334{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002335 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalBufferPropertiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002336 auto vkEnc = HostConnection::get()->vkEncoder();
2337 vkEnc->vkGetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties);
2338}
2339#endif
2340#ifdef VK_KHR_external_memory
2341#endif
2342#ifdef VK_KHR_external_memory_win32
2343static VkResult entry_vkGetMemoryWin32HandleKHR(
2344 VkDevice device,
2345 const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo,
2346 HANDLE* pHandle)
2347{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002348 AEMU_SCOPED_TRACE("vkGetMemoryWin32HandleKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002349 auto vkEnc = HostConnection::get()->vkEncoder();
2350 VkResult vkGetMemoryWin32HandleKHR_VkResult_return = (VkResult)0;
2351 vkGetMemoryWin32HandleKHR_VkResult_return = vkEnc->vkGetMemoryWin32HandleKHR(device, pGetWin32HandleInfo, pHandle);
2352 return vkGetMemoryWin32HandleKHR_VkResult_return;
2353}
2354static VkResult entry_vkGetMemoryWin32HandlePropertiesKHR(
2355 VkDevice device,
2356 VkExternalMemoryHandleTypeFlagBits handleType,
2357 HANDLE handle,
2358 VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties)
2359{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002360 AEMU_SCOPED_TRACE("vkGetMemoryWin32HandlePropertiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002361 auto vkEnc = HostConnection::get()->vkEncoder();
2362 VkResult vkGetMemoryWin32HandlePropertiesKHR_VkResult_return = (VkResult)0;
2363 vkGetMemoryWin32HandlePropertiesKHR_VkResult_return = vkEnc->vkGetMemoryWin32HandlePropertiesKHR(device, handleType, handle, pMemoryWin32HandleProperties);
2364 return vkGetMemoryWin32HandlePropertiesKHR_VkResult_return;
2365}
2366#endif
2367#ifdef VK_KHR_external_memory_fd
2368static VkResult entry_vkGetMemoryFdKHR(
2369 VkDevice device,
2370 const VkMemoryGetFdInfoKHR* pGetFdInfo,
2371 int* pFd)
2372{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002373 AEMU_SCOPED_TRACE("vkGetMemoryFdKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002374 auto vkEnc = HostConnection::get()->vkEncoder();
2375 VkResult vkGetMemoryFdKHR_VkResult_return = (VkResult)0;
2376 vkGetMemoryFdKHR_VkResult_return = vkEnc->vkGetMemoryFdKHR(device, pGetFdInfo, pFd);
2377 return vkGetMemoryFdKHR_VkResult_return;
2378}
2379static VkResult entry_vkGetMemoryFdPropertiesKHR(
2380 VkDevice device,
2381 VkExternalMemoryHandleTypeFlagBits handleType,
2382 int fd,
2383 VkMemoryFdPropertiesKHR* pMemoryFdProperties)
2384{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002385 AEMU_SCOPED_TRACE("vkGetMemoryFdPropertiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002386 auto vkEnc = HostConnection::get()->vkEncoder();
2387 VkResult vkGetMemoryFdPropertiesKHR_VkResult_return = (VkResult)0;
2388 vkGetMemoryFdPropertiesKHR_VkResult_return = vkEnc->vkGetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties);
2389 return vkGetMemoryFdPropertiesKHR_VkResult_return;
2390}
2391#endif
2392#ifdef VK_KHR_win32_keyed_mutex
2393#endif
2394#ifdef VK_KHR_external_semaphore_capabilities
2395static void entry_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
2396 VkPhysicalDevice physicalDevice,
2397 const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
2398 VkExternalSemaphoreProperties* pExternalSemaphoreProperties)
2399{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002400 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalSemaphorePropertiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002401 auto vkEnc = HostConnection::get()->vkEncoder();
2402 vkEnc->vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties);
2403}
2404#endif
2405#ifdef VK_KHR_external_semaphore
2406#endif
2407#ifdef VK_KHR_external_semaphore_win32
2408static VkResult entry_vkImportSemaphoreWin32HandleKHR(
2409 VkDevice device,
2410 const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo)
2411{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002412 AEMU_SCOPED_TRACE("vkImportSemaphoreWin32HandleKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002413 auto vkEnc = HostConnection::get()->vkEncoder();
2414 VkResult vkImportSemaphoreWin32HandleKHR_VkResult_return = (VkResult)0;
2415 vkImportSemaphoreWin32HandleKHR_VkResult_return = vkEnc->vkImportSemaphoreWin32HandleKHR(device, pImportSemaphoreWin32HandleInfo);
2416 return vkImportSemaphoreWin32HandleKHR_VkResult_return;
2417}
2418static VkResult entry_vkGetSemaphoreWin32HandleKHR(
2419 VkDevice device,
2420 const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo,
2421 HANDLE* pHandle)
2422{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002423 AEMU_SCOPED_TRACE("vkGetSemaphoreWin32HandleKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002424 auto vkEnc = HostConnection::get()->vkEncoder();
2425 VkResult vkGetSemaphoreWin32HandleKHR_VkResult_return = (VkResult)0;
2426 vkGetSemaphoreWin32HandleKHR_VkResult_return = vkEnc->vkGetSemaphoreWin32HandleKHR(device, pGetWin32HandleInfo, pHandle);
2427 return vkGetSemaphoreWin32HandleKHR_VkResult_return;
2428}
2429#endif
2430#ifdef VK_KHR_external_semaphore_fd
2431static VkResult entry_vkImportSemaphoreFdKHR(
2432 VkDevice device,
2433 const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo)
2434{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002435 AEMU_SCOPED_TRACE("vkImportSemaphoreFdKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002436 auto vkEnc = HostConnection::get()->vkEncoder();
2437 VkResult vkImportSemaphoreFdKHR_VkResult_return = (VkResult)0;
Yahan Zhoua499e442019-02-26 16:35:01 -08002438 auto resources = ResourceTracker::get();
2439 vkImportSemaphoreFdKHR_VkResult_return = resources->on_vkImportSemaphoreFdKHR(vkEnc, VK_SUCCESS, device, pImportSemaphoreFdInfo);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002440 return vkImportSemaphoreFdKHR_VkResult_return;
2441}
2442static VkResult entry_vkGetSemaphoreFdKHR(
2443 VkDevice device,
2444 const VkSemaphoreGetFdInfoKHR* pGetFdInfo,
2445 int* pFd)
2446{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002447 AEMU_SCOPED_TRACE("vkGetSemaphoreFdKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002448 auto vkEnc = HostConnection::get()->vkEncoder();
2449 VkResult vkGetSemaphoreFdKHR_VkResult_return = (VkResult)0;
Yahan Zhoua499e442019-02-26 16:35:01 -08002450 auto resources = ResourceTracker::get();
2451 vkGetSemaphoreFdKHR_VkResult_return = resources->on_vkGetSemaphoreFdKHR(vkEnc, VK_SUCCESS, device, pGetFdInfo, pFd);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002452 return vkGetSemaphoreFdKHR_VkResult_return;
2453}
2454#endif
2455#ifdef VK_KHR_push_descriptor
2456static void entry_vkCmdPushDescriptorSetKHR(
2457 VkCommandBuffer commandBuffer,
2458 VkPipelineBindPoint pipelineBindPoint,
2459 VkPipelineLayout layout,
2460 uint32_t set,
2461 uint32_t descriptorWriteCount,
2462 const VkWriteDescriptorSet* pDescriptorWrites)
2463{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002464 AEMU_SCOPED_TRACE("vkCmdPushDescriptorSetKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002465 auto vkEnc = HostConnection::get()->vkEncoder();
2466 vkEnc->vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites);
2467}
2468static void entry_vkCmdPushDescriptorSetWithTemplateKHR(
2469 VkCommandBuffer commandBuffer,
2470 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
2471 VkPipelineLayout layout,
2472 uint32_t set,
2473 const void* pData)
2474{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002475 AEMU_SCOPED_TRACE("vkCmdPushDescriptorSetWithTemplateKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002476 auto vkEnc = HostConnection::get()->vkEncoder();
2477 vkEnc->vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData);
2478}
2479#endif
2480#ifdef VK_KHR_16bit_storage
2481#endif
2482#ifdef VK_KHR_incremental_present
2483#endif
2484#ifdef VK_KHR_descriptor_update_template
2485static VkResult entry_vkCreateDescriptorUpdateTemplateKHR(
2486 VkDevice device,
2487 const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
2488 const VkAllocationCallbacks* pAllocator,
2489 VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate)
2490{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002491 AEMU_SCOPED_TRACE("vkCreateDescriptorUpdateTemplateKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002492 auto vkEnc = HostConnection::get()->vkEncoder();
2493 VkResult vkCreateDescriptorUpdateTemplateKHR_VkResult_return = (VkResult)0;
2494 vkCreateDescriptorUpdateTemplateKHR_VkResult_return = vkEnc->vkCreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate);
2495 return vkCreateDescriptorUpdateTemplateKHR_VkResult_return;
2496}
2497static void entry_vkDestroyDescriptorUpdateTemplateKHR(
2498 VkDevice device,
2499 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
2500 const VkAllocationCallbacks* pAllocator)
2501{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002502 AEMU_SCOPED_TRACE("vkDestroyDescriptorUpdateTemplateKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002503 auto vkEnc = HostConnection::get()->vkEncoder();
2504 vkEnc->vkDestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator);
2505}
2506static void entry_vkUpdateDescriptorSetWithTemplateKHR(
2507 VkDevice device,
2508 VkDescriptorSet descriptorSet,
2509 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
2510 const void* pData)
2511{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002512 AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplateKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002513 auto vkEnc = HostConnection::get()->vkEncoder();
2514 vkEnc->vkUpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData);
2515}
2516#endif
2517#ifdef VK_KHR_create_renderpass2
2518static VkResult entry_vkCreateRenderPass2KHR(
2519 VkDevice device,
2520 const VkRenderPassCreateInfo2KHR* pCreateInfo,
2521 const VkAllocationCallbacks* pAllocator,
2522 VkRenderPass* pRenderPass)
2523{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002524 AEMU_SCOPED_TRACE("vkCreateRenderPass2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002525 auto vkEnc = HostConnection::get()->vkEncoder();
2526 VkResult vkCreateRenderPass2KHR_VkResult_return = (VkResult)0;
2527 vkCreateRenderPass2KHR_VkResult_return = vkEnc->vkCreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass);
2528 return vkCreateRenderPass2KHR_VkResult_return;
2529}
2530static void entry_vkCmdBeginRenderPass2KHR(
2531 VkCommandBuffer commandBuffer,
2532 const VkRenderPassBeginInfo* pRenderPassBegin,
2533 const VkSubpassBeginInfoKHR* pSubpassBeginInfo)
2534{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002535 AEMU_SCOPED_TRACE("vkCmdBeginRenderPass2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002536 auto vkEnc = HostConnection::get()->vkEncoder();
2537 vkEnc->vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo);
2538}
2539static void entry_vkCmdNextSubpass2KHR(
2540 VkCommandBuffer commandBuffer,
2541 const VkSubpassBeginInfoKHR* pSubpassBeginInfo,
2542 const VkSubpassEndInfoKHR* pSubpassEndInfo)
2543{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002544 AEMU_SCOPED_TRACE("vkCmdNextSubpass2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002545 auto vkEnc = HostConnection::get()->vkEncoder();
2546 vkEnc->vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo);
2547}
2548static void entry_vkCmdEndRenderPass2KHR(
2549 VkCommandBuffer commandBuffer,
2550 const VkSubpassEndInfoKHR* pSubpassEndInfo)
2551{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002552 AEMU_SCOPED_TRACE("vkCmdEndRenderPass2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002553 auto vkEnc = HostConnection::get()->vkEncoder();
2554 vkEnc->vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo);
2555}
2556#endif
2557#ifdef VK_KHR_shared_presentable_image
2558static VkResult entry_vkGetSwapchainStatusKHR(
2559 VkDevice device,
2560 VkSwapchainKHR swapchain)
2561{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002562 AEMU_SCOPED_TRACE("vkGetSwapchainStatusKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002563 auto vkEnc = HostConnection::get()->vkEncoder();
2564 VkResult vkGetSwapchainStatusKHR_VkResult_return = (VkResult)0;
2565 vkGetSwapchainStatusKHR_VkResult_return = vkEnc->vkGetSwapchainStatusKHR(device, swapchain);
2566 return vkGetSwapchainStatusKHR_VkResult_return;
2567}
2568#endif
2569#ifdef VK_KHR_external_fence_capabilities
2570static void entry_vkGetPhysicalDeviceExternalFencePropertiesKHR(
2571 VkPhysicalDevice physicalDevice,
2572 const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
2573 VkExternalFenceProperties* pExternalFenceProperties)
2574{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002575 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalFencePropertiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002576 auto vkEnc = HostConnection::get()->vkEncoder();
2577 vkEnc->vkGetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice, pExternalFenceInfo, pExternalFenceProperties);
2578}
2579#endif
2580#ifdef VK_KHR_external_fence
2581#endif
2582#ifdef VK_KHR_external_fence_win32
2583static VkResult entry_vkImportFenceWin32HandleKHR(
2584 VkDevice device,
2585 const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo)
2586{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002587 AEMU_SCOPED_TRACE("vkImportFenceWin32HandleKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002588 auto vkEnc = HostConnection::get()->vkEncoder();
2589 VkResult vkImportFenceWin32HandleKHR_VkResult_return = (VkResult)0;
2590 vkImportFenceWin32HandleKHR_VkResult_return = vkEnc->vkImportFenceWin32HandleKHR(device, pImportFenceWin32HandleInfo);
2591 return vkImportFenceWin32HandleKHR_VkResult_return;
2592}
2593static VkResult entry_vkGetFenceWin32HandleKHR(
2594 VkDevice device,
2595 const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo,
2596 HANDLE* pHandle)
2597{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002598 AEMU_SCOPED_TRACE("vkGetFenceWin32HandleKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002599 auto vkEnc = HostConnection::get()->vkEncoder();
2600 VkResult vkGetFenceWin32HandleKHR_VkResult_return = (VkResult)0;
2601 vkGetFenceWin32HandleKHR_VkResult_return = vkEnc->vkGetFenceWin32HandleKHR(device, pGetWin32HandleInfo, pHandle);
2602 return vkGetFenceWin32HandleKHR_VkResult_return;
2603}
2604#endif
2605#ifdef VK_KHR_external_fence_fd
2606static VkResult entry_vkImportFenceFdKHR(
2607 VkDevice device,
2608 const VkImportFenceFdInfoKHR* pImportFenceFdInfo)
2609{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002610 AEMU_SCOPED_TRACE("vkImportFenceFdKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002611 auto vkEnc = HostConnection::get()->vkEncoder();
2612 VkResult vkImportFenceFdKHR_VkResult_return = (VkResult)0;
2613 vkImportFenceFdKHR_VkResult_return = vkEnc->vkImportFenceFdKHR(device, pImportFenceFdInfo);
2614 return vkImportFenceFdKHR_VkResult_return;
2615}
2616static VkResult entry_vkGetFenceFdKHR(
2617 VkDevice device,
2618 const VkFenceGetFdInfoKHR* pGetFdInfo,
2619 int* pFd)
2620{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002621 AEMU_SCOPED_TRACE("vkGetFenceFdKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002622 auto vkEnc = HostConnection::get()->vkEncoder();
2623 VkResult vkGetFenceFdKHR_VkResult_return = (VkResult)0;
2624 vkGetFenceFdKHR_VkResult_return = vkEnc->vkGetFenceFdKHR(device, pGetFdInfo, pFd);
2625 return vkGetFenceFdKHR_VkResult_return;
2626}
2627#endif
2628#ifdef VK_KHR_maintenance2
2629#endif
2630#ifdef VK_KHR_get_surface_capabilities2
2631static VkResult entry_vkGetPhysicalDeviceSurfaceCapabilities2KHR(
2632 VkPhysicalDevice physicalDevice,
2633 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
2634 VkSurfaceCapabilities2KHR* pSurfaceCapabilities)
2635{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002636 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceCapabilities2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002637 auto vkEnc = HostConnection::get()->vkEncoder();
2638 VkResult vkGetPhysicalDeviceSurfaceCapabilities2KHR_VkResult_return = (VkResult)0;
2639 vkGetPhysicalDeviceSurfaceCapabilities2KHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, pSurfaceInfo, pSurfaceCapabilities);
2640 return vkGetPhysicalDeviceSurfaceCapabilities2KHR_VkResult_return;
2641}
2642static VkResult entry_vkGetPhysicalDeviceSurfaceFormats2KHR(
2643 VkPhysicalDevice physicalDevice,
2644 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
2645 uint32_t* pSurfaceFormatCount,
2646 VkSurfaceFormat2KHR* pSurfaceFormats)
2647{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002648 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceFormats2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002649 auto vkEnc = HostConnection::get()->vkEncoder();
2650 VkResult vkGetPhysicalDeviceSurfaceFormats2KHR_VkResult_return = (VkResult)0;
2651 vkGetPhysicalDeviceSurfaceFormats2KHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceFormats2KHR(physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats);
2652 return vkGetPhysicalDeviceSurfaceFormats2KHR_VkResult_return;
2653}
2654#endif
2655#ifdef VK_KHR_variable_pointers
2656#endif
2657#ifdef VK_KHR_get_display_properties2
2658static VkResult entry_vkGetPhysicalDeviceDisplayProperties2KHR(
2659 VkPhysicalDevice physicalDevice,
2660 uint32_t* pPropertyCount,
2661 VkDisplayProperties2KHR* pProperties)
2662{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002663 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002664 auto vkEnc = HostConnection::get()->vkEncoder();
2665 VkResult vkGetPhysicalDeviceDisplayProperties2KHR_VkResult_return = (VkResult)0;
2666 vkGetPhysicalDeviceDisplayProperties2KHR_VkResult_return = vkEnc->vkGetPhysicalDeviceDisplayProperties2KHR(physicalDevice, pPropertyCount, pProperties);
2667 return vkGetPhysicalDeviceDisplayProperties2KHR_VkResult_return;
2668}
2669static VkResult entry_vkGetPhysicalDeviceDisplayPlaneProperties2KHR(
2670 VkPhysicalDevice physicalDevice,
2671 uint32_t* pPropertyCount,
2672 VkDisplayPlaneProperties2KHR* pProperties)
2673{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002674 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayPlaneProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002675 auto vkEnc = HostConnection::get()->vkEncoder();
2676 VkResult vkGetPhysicalDeviceDisplayPlaneProperties2KHR_VkResult_return = (VkResult)0;
2677 vkGetPhysicalDeviceDisplayPlaneProperties2KHR_VkResult_return = vkEnc->vkGetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice, pPropertyCount, pProperties);
2678 return vkGetPhysicalDeviceDisplayPlaneProperties2KHR_VkResult_return;
2679}
2680static VkResult entry_vkGetDisplayModeProperties2KHR(
2681 VkPhysicalDevice physicalDevice,
2682 VkDisplayKHR display,
2683 uint32_t* pPropertyCount,
2684 VkDisplayModeProperties2KHR* pProperties)
2685{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002686 AEMU_SCOPED_TRACE("vkGetDisplayModeProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002687 auto vkEnc = HostConnection::get()->vkEncoder();
2688 VkResult vkGetDisplayModeProperties2KHR_VkResult_return = (VkResult)0;
2689 vkGetDisplayModeProperties2KHR_VkResult_return = vkEnc->vkGetDisplayModeProperties2KHR(physicalDevice, display, pPropertyCount, pProperties);
2690 return vkGetDisplayModeProperties2KHR_VkResult_return;
2691}
2692static VkResult entry_vkGetDisplayPlaneCapabilities2KHR(
2693 VkPhysicalDevice physicalDevice,
2694 const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo,
2695 VkDisplayPlaneCapabilities2KHR* pCapabilities)
2696{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002697 AEMU_SCOPED_TRACE("vkGetDisplayPlaneCapabilities2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002698 auto vkEnc = HostConnection::get()->vkEncoder();
2699 VkResult vkGetDisplayPlaneCapabilities2KHR_VkResult_return = (VkResult)0;
2700 vkGetDisplayPlaneCapabilities2KHR_VkResult_return = vkEnc->vkGetDisplayPlaneCapabilities2KHR(physicalDevice, pDisplayPlaneInfo, pCapabilities);
2701 return vkGetDisplayPlaneCapabilities2KHR_VkResult_return;
2702}
2703#endif
2704#ifdef VK_KHR_dedicated_allocation
2705#endif
2706#ifdef VK_KHR_storage_buffer_storage_class
2707#endif
2708#ifdef VK_KHR_relaxed_block_layout
2709#endif
2710#ifdef VK_KHR_get_memory_requirements2
2711static void entry_vkGetImageMemoryRequirements2KHR(
2712 VkDevice device,
2713 const VkImageMemoryRequirementsInfo2* pInfo,
2714 VkMemoryRequirements2* pMemoryRequirements)
2715{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002716 AEMU_SCOPED_TRACE("vkGetImageMemoryRequirements2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002717 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang4af5f322019-02-14 08:10:28 -08002718 auto resources = ResourceTracker::get();
2719 resources->on_vkGetImageMemoryRequirements2KHR(vkEnc, device, pInfo, pMemoryRequirements);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002720}
2721static void entry_vkGetBufferMemoryRequirements2KHR(
2722 VkDevice device,
2723 const VkBufferMemoryRequirementsInfo2* pInfo,
2724 VkMemoryRequirements2* pMemoryRequirements)
2725{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002726 AEMU_SCOPED_TRACE("vkGetBufferMemoryRequirements2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002727 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang4af5f322019-02-14 08:10:28 -08002728 auto resources = ResourceTracker::get();
2729 resources->on_vkGetBufferMemoryRequirements2KHR(vkEnc, device, pInfo, pMemoryRequirements);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002730}
2731static void entry_vkGetImageSparseMemoryRequirements2KHR(
2732 VkDevice device,
2733 const VkImageSparseMemoryRequirementsInfo2* pInfo,
2734 uint32_t* pSparseMemoryRequirementCount,
2735 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements)
2736{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002737 AEMU_SCOPED_TRACE("vkGetImageSparseMemoryRequirements2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002738 auto vkEnc = HostConnection::get()->vkEncoder();
2739 vkEnc->vkGetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements);
2740}
2741#endif
2742#ifdef VK_KHR_image_format_list
2743#endif
2744#ifdef VK_KHR_sampler_ycbcr_conversion
2745static VkResult entry_vkCreateSamplerYcbcrConversionKHR(
2746 VkDevice device,
2747 const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
2748 const VkAllocationCallbacks* pAllocator,
2749 VkSamplerYcbcrConversion* pYcbcrConversion)
2750{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002751 AEMU_SCOPED_TRACE("vkCreateSamplerYcbcrConversionKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002752 auto vkEnc = HostConnection::get()->vkEncoder();
2753 VkResult vkCreateSamplerYcbcrConversionKHR_VkResult_return = (VkResult)0;
Lingfeng Yang5c701122019-03-05 08:34:46 -08002754 auto resources = ResourceTracker::get();
2755 vkCreateSamplerYcbcrConversionKHR_VkResult_return = resources->on_vkCreateSamplerYcbcrConversionKHR(vkEnc, VK_SUCCESS, device, pCreateInfo, pAllocator, pYcbcrConversion);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002756 return vkCreateSamplerYcbcrConversionKHR_VkResult_return;
2757}
2758static void entry_vkDestroySamplerYcbcrConversionKHR(
2759 VkDevice device,
2760 VkSamplerYcbcrConversion ycbcrConversion,
2761 const VkAllocationCallbacks* pAllocator)
2762{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002763 AEMU_SCOPED_TRACE("vkDestroySamplerYcbcrConversionKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002764 auto vkEnc = HostConnection::get()->vkEncoder();
2765 vkEnc->vkDestroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator);
2766}
2767#endif
2768#ifdef VK_KHR_bind_memory2
2769static VkResult entry_vkBindBufferMemory2KHR(
2770 VkDevice device,
2771 uint32_t bindInfoCount,
2772 const VkBindBufferMemoryInfo* pBindInfos)
2773{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002774 AEMU_SCOPED_TRACE("vkBindBufferMemory2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002775 auto vkEnc = HostConnection::get()->vkEncoder();
2776 VkResult vkBindBufferMemory2KHR_VkResult_return = (VkResult)0;
Lingfeng Yang4af5f322019-02-14 08:10:28 -08002777 auto resources = ResourceTracker::get();
2778 vkBindBufferMemory2KHR_VkResult_return = resources->on_vkBindBufferMemory2KHR(vkEnc, VK_SUCCESS, device, bindInfoCount, pBindInfos);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002779 return vkBindBufferMemory2KHR_VkResult_return;
2780}
2781static VkResult entry_vkBindImageMemory2KHR(
2782 VkDevice device,
2783 uint32_t bindInfoCount,
2784 const VkBindImageMemoryInfo* pBindInfos)
2785{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002786 AEMU_SCOPED_TRACE("vkBindImageMemory2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002787 auto vkEnc = HostConnection::get()->vkEncoder();
2788 VkResult vkBindImageMemory2KHR_VkResult_return = (VkResult)0;
Lingfeng Yang4af5f322019-02-14 08:10:28 -08002789 auto resources = ResourceTracker::get();
2790 vkBindImageMemory2KHR_VkResult_return = resources->on_vkBindImageMemory2KHR(vkEnc, VK_SUCCESS, device, bindInfoCount, pBindInfos);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002791 return vkBindImageMemory2KHR_VkResult_return;
2792}
2793#endif
2794#ifdef VK_KHR_maintenance3
2795static void entry_vkGetDescriptorSetLayoutSupportKHR(
2796 VkDevice device,
2797 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
2798 VkDescriptorSetLayoutSupport* pSupport)
2799{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002800 AEMU_SCOPED_TRACE("vkGetDescriptorSetLayoutSupportKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002801 auto vkEnc = HostConnection::get()->vkEncoder();
2802 vkEnc->vkGetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport);
2803}
2804#endif
2805#ifdef VK_KHR_draw_indirect_count
2806static void entry_vkCmdDrawIndirectCountKHR(
2807 VkCommandBuffer commandBuffer,
2808 VkBuffer buffer,
2809 VkDeviceSize offset,
2810 VkBuffer countBuffer,
2811 VkDeviceSize countBufferOffset,
2812 uint32_t maxDrawCount,
2813 uint32_t stride)
2814{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002815 AEMU_SCOPED_TRACE("vkCmdDrawIndirectCountKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002816 auto vkEnc = HostConnection::get()->vkEncoder();
2817 vkEnc->vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
2818}
2819static void entry_vkCmdDrawIndexedIndirectCountKHR(
2820 VkCommandBuffer commandBuffer,
2821 VkBuffer buffer,
2822 VkDeviceSize offset,
2823 VkBuffer countBuffer,
2824 VkDeviceSize countBufferOffset,
2825 uint32_t maxDrawCount,
2826 uint32_t stride)
2827{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002828 AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirectCountKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002829 auto vkEnc = HostConnection::get()->vkEncoder();
2830 vkEnc->vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
2831}
2832#endif
2833#ifdef VK_KHR_8bit_storage
2834#endif
Lingfeng Yang808a6312018-11-13 21:06:15 -08002835#ifdef VK_ANDROID_native_buffer
2836static VkResult entry_vkGetSwapchainGrallocUsageANDROID(
2837 VkDevice device,
2838 VkFormat format,
2839 VkImageUsageFlags imageUsage,
2840 int* grallocUsage)
2841{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002842 AEMU_SCOPED_TRACE("vkGetSwapchainGrallocUsageANDROID");
Lingfeng Yang808a6312018-11-13 21:06:15 -08002843 auto vkEnc = HostConnection::get()->vkEncoder();
2844 VkResult vkGetSwapchainGrallocUsageANDROID_VkResult_return = (VkResult)0;
2845 vkGetSwapchainGrallocUsageANDROID_VkResult_return = vkEnc->vkGetSwapchainGrallocUsageANDROID(device, format, imageUsage, grallocUsage);
2846 return vkGetSwapchainGrallocUsageANDROID_VkResult_return;
2847}
2848static VkResult entry_vkAcquireImageANDROID(
2849 VkDevice device,
2850 VkImage image,
2851 int nativeFenceFd,
2852 VkSemaphore semaphore,
2853 VkFence fence)
2854{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002855 AEMU_SCOPED_TRACE("vkAcquireImageANDROID");
Lingfeng Yang808a6312018-11-13 21:06:15 -08002856 auto vkEnc = HostConnection::get()->vkEncoder();
2857 VkResult vkAcquireImageANDROID_VkResult_return = (VkResult)0;
2858 vkAcquireImageANDROID_VkResult_return = vkEnc->vkAcquireImageANDROID(device, image, nativeFenceFd, semaphore, fence);
2859 return vkAcquireImageANDROID_VkResult_return;
2860}
2861static VkResult entry_vkQueueSignalReleaseImageANDROID(
2862 VkQueue queue,
2863 uint32_t waitSemaphoreCount,
2864 const VkSemaphore* pWaitSemaphores,
2865 VkImage image,
2866 int* pNativeFenceFd)
2867{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002868 AEMU_SCOPED_TRACE("vkQueueSignalReleaseImageANDROID");
Lingfeng Yang808a6312018-11-13 21:06:15 -08002869 auto vkEnc = HostConnection::get()->vkEncoder();
2870 VkResult vkQueueSignalReleaseImageANDROID_VkResult_return = (VkResult)0;
2871 vkQueueSignalReleaseImageANDROID_VkResult_return = vkEnc->vkQueueSignalReleaseImageANDROID(queue, waitSemaphoreCount, pWaitSemaphores, image, pNativeFenceFd);
2872 return vkQueueSignalReleaseImageANDROID_VkResult_return;
2873}
2874#endif
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002875#ifdef VK_EXT_debug_report
2876static VkResult entry_vkCreateDebugReportCallbackEXT(
2877 VkInstance instance,
2878 const VkDebugReportCallbackCreateInfoEXT* pCreateInfo,
2879 const VkAllocationCallbacks* pAllocator,
2880 VkDebugReportCallbackEXT* pCallback)
2881{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002882 AEMU_SCOPED_TRACE("vkCreateDebugReportCallbackEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002883 auto vkEnc = HostConnection::get()->vkEncoder();
2884 VkResult vkCreateDebugReportCallbackEXT_VkResult_return = (VkResult)0;
2885 vkCreateDebugReportCallbackEXT_VkResult_return = vkEnc->vkCreateDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback);
2886 return vkCreateDebugReportCallbackEXT_VkResult_return;
2887}
2888static void entry_vkDestroyDebugReportCallbackEXT(
2889 VkInstance instance,
2890 VkDebugReportCallbackEXT callback,
2891 const VkAllocationCallbacks* pAllocator)
2892{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002893 AEMU_SCOPED_TRACE("vkDestroyDebugReportCallbackEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002894 auto vkEnc = HostConnection::get()->vkEncoder();
2895 vkEnc->vkDestroyDebugReportCallbackEXT(instance, callback, pAllocator);
2896}
2897static void entry_vkDebugReportMessageEXT(
2898 VkInstance instance,
2899 VkDebugReportFlagsEXT flags,
2900 VkDebugReportObjectTypeEXT objectType,
2901 uint64_t object,
2902 size_t location,
2903 int32_t messageCode,
2904 const char* pLayerPrefix,
2905 const char* pMessage)
2906{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002907 AEMU_SCOPED_TRACE("vkDebugReportMessageEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002908 auto vkEnc = HostConnection::get()->vkEncoder();
2909 vkEnc->vkDebugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage);
2910}
2911#endif
2912#ifdef VK_NV_glsl_shader
2913#endif
2914#ifdef VK_EXT_depth_range_unrestricted
2915#endif
2916#ifdef VK_IMG_filter_cubic
2917#endif
2918#ifdef VK_AMD_rasterization_order
2919#endif
2920#ifdef VK_AMD_shader_trinary_minmax
2921#endif
2922#ifdef VK_AMD_shader_explicit_vertex_parameter
2923#endif
2924#ifdef VK_EXT_debug_marker
2925static VkResult entry_vkDebugMarkerSetObjectTagEXT(
2926 VkDevice device,
2927 const VkDebugMarkerObjectTagInfoEXT* pTagInfo)
2928{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002929 AEMU_SCOPED_TRACE("vkDebugMarkerSetObjectTagEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002930 auto vkEnc = HostConnection::get()->vkEncoder();
2931 VkResult vkDebugMarkerSetObjectTagEXT_VkResult_return = (VkResult)0;
2932 vkDebugMarkerSetObjectTagEXT_VkResult_return = vkEnc->vkDebugMarkerSetObjectTagEXT(device, pTagInfo);
2933 return vkDebugMarkerSetObjectTagEXT_VkResult_return;
2934}
2935static VkResult entry_vkDebugMarkerSetObjectNameEXT(
2936 VkDevice device,
2937 const VkDebugMarkerObjectNameInfoEXT* pNameInfo)
2938{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002939 AEMU_SCOPED_TRACE("vkDebugMarkerSetObjectNameEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002940 auto vkEnc = HostConnection::get()->vkEncoder();
2941 VkResult vkDebugMarkerSetObjectNameEXT_VkResult_return = (VkResult)0;
2942 vkDebugMarkerSetObjectNameEXT_VkResult_return = vkEnc->vkDebugMarkerSetObjectNameEXT(device, pNameInfo);
2943 return vkDebugMarkerSetObjectNameEXT_VkResult_return;
2944}
2945static void entry_vkCmdDebugMarkerBeginEXT(
2946 VkCommandBuffer commandBuffer,
2947 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo)
2948{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002949 AEMU_SCOPED_TRACE("vkCmdDebugMarkerBeginEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002950 auto vkEnc = HostConnection::get()->vkEncoder();
2951 vkEnc->vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo);
2952}
2953static void entry_vkCmdDebugMarkerEndEXT(
2954 VkCommandBuffer commandBuffer)
2955{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002956 AEMU_SCOPED_TRACE("vkCmdDebugMarkerEndEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002957 auto vkEnc = HostConnection::get()->vkEncoder();
2958 vkEnc->vkCmdDebugMarkerEndEXT(commandBuffer);
2959}
2960static void entry_vkCmdDebugMarkerInsertEXT(
2961 VkCommandBuffer commandBuffer,
2962 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo)
2963{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002964 AEMU_SCOPED_TRACE("vkCmdDebugMarkerInsertEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002965 auto vkEnc = HostConnection::get()->vkEncoder();
2966 vkEnc->vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo);
2967}
2968#endif
2969#ifdef VK_AMD_gcn_shader
2970#endif
2971#ifdef VK_NV_dedicated_allocation
2972#endif
2973#ifdef VK_AMD_draw_indirect_count
2974static void entry_vkCmdDrawIndirectCountAMD(
2975 VkCommandBuffer commandBuffer,
2976 VkBuffer buffer,
2977 VkDeviceSize offset,
2978 VkBuffer countBuffer,
2979 VkDeviceSize countBufferOffset,
2980 uint32_t maxDrawCount,
2981 uint32_t stride)
2982{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002983 AEMU_SCOPED_TRACE("vkCmdDrawIndirectCountAMD");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002984 auto vkEnc = HostConnection::get()->vkEncoder();
2985 vkEnc->vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
2986}
2987static void entry_vkCmdDrawIndexedIndirectCountAMD(
2988 VkCommandBuffer commandBuffer,
2989 VkBuffer buffer,
2990 VkDeviceSize offset,
2991 VkBuffer countBuffer,
2992 VkDeviceSize countBufferOffset,
2993 uint32_t maxDrawCount,
2994 uint32_t stride)
2995{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002996 AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirectCountAMD");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002997 auto vkEnc = HostConnection::get()->vkEncoder();
2998 vkEnc->vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
2999}
3000#endif
3001#ifdef VK_AMD_negative_viewport_height
3002#endif
3003#ifdef VK_AMD_gpu_shader_half_float
3004#endif
3005#ifdef VK_AMD_shader_ballot
3006#endif
3007#ifdef VK_AMD_texture_gather_bias_lod
3008#endif
3009#ifdef VK_AMD_shader_info
3010static VkResult entry_vkGetShaderInfoAMD(
3011 VkDevice device,
3012 VkPipeline pipeline,
3013 VkShaderStageFlagBits shaderStage,
3014 VkShaderInfoTypeAMD infoType,
3015 size_t* pInfoSize,
3016 void* pInfo)
3017{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003018 AEMU_SCOPED_TRACE("vkGetShaderInfoAMD");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003019 auto vkEnc = HostConnection::get()->vkEncoder();
3020 VkResult vkGetShaderInfoAMD_VkResult_return = (VkResult)0;
3021 vkGetShaderInfoAMD_VkResult_return = vkEnc->vkGetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo);
3022 return vkGetShaderInfoAMD_VkResult_return;
3023}
3024#endif
3025#ifdef VK_AMD_shader_image_load_store_lod
3026#endif
3027#ifdef VK_IMG_format_pvrtc
3028#endif
3029#ifdef VK_NV_external_memory_capabilities
3030static VkResult entry_vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
3031 VkPhysicalDevice physicalDevice,
3032 VkFormat format,
3033 VkImageType type,
3034 VkImageTiling tiling,
3035 VkImageUsageFlags usage,
3036 VkImageCreateFlags flags,
3037 VkExternalMemoryHandleTypeFlagsNV externalHandleType,
3038 VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties)
3039{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003040 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalImageFormatPropertiesNV");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003041 auto vkEnc = HostConnection::get()->vkEncoder();
3042 VkResult vkGetPhysicalDeviceExternalImageFormatPropertiesNV_VkResult_return = (VkResult)0;
3043 vkGetPhysicalDeviceExternalImageFormatPropertiesNV_VkResult_return = vkEnc->vkGetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties);
3044 return vkGetPhysicalDeviceExternalImageFormatPropertiesNV_VkResult_return;
3045}
3046#endif
3047#ifdef VK_NV_external_memory
3048#endif
3049#ifdef VK_NV_external_memory_win32
3050static VkResult entry_vkGetMemoryWin32HandleNV(
3051 VkDevice device,
3052 VkDeviceMemory memory,
3053 VkExternalMemoryHandleTypeFlagsNV handleType,
3054 HANDLE* pHandle)
3055{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003056 AEMU_SCOPED_TRACE("vkGetMemoryWin32HandleNV");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003057 auto vkEnc = HostConnection::get()->vkEncoder();
3058 VkResult vkGetMemoryWin32HandleNV_VkResult_return = (VkResult)0;
3059 vkGetMemoryWin32HandleNV_VkResult_return = vkEnc->vkGetMemoryWin32HandleNV(device, memory, handleType, pHandle);
3060 return vkGetMemoryWin32HandleNV_VkResult_return;
3061}
3062#endif
3063#ifdef VK_NV_win32_keyed_mutex
3064#endif
3065#ifdef VK_EXT_validation_flags
3066#endif
3067#ifdef VK_NN_vi_surface
3068static VkResult entry_vkCreateViSurfaceNN(
3069 VkInstance instance,
3070 const VkViSurfaceCreateInfoNN* pCreateInfo,
3071 const VkAllocationCallbacks* pAllocator,
3072 VkSurfaceKHR* pSurface)
3073{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003074 AEMU_SCOPED_TRACE("vkCreateViSurfaceNN");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003075 auto vkEnc = HostConnection::get()->vkEncoder();
3076 VkResult vkCreateViSurfaceNN_VkResult_return = (VkResult)0;
3077 vkCreateViSurfaceNN_VkResult_return = vkEnc->vkCreateViSurfaceNN(instance, pCreateInfo, pAllocator, pSurface);
3078 return vkCreateViSurfaceNN_VkResult_return;
3079}
3080#endif
3081#ifdef VK_EXT_shader_subgroup_ballot
3082#endif
3083#ifdef VK_EXT_shader_subgroup_vote
3084#endif
3085#ifdef VK_EXT_conditional_rendering
3086static void entry_vkCmdBeginConditionalRenderingEXT(
3087 VkCommandBuffer commandBuffer,
3088 const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin)
3089{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003090 AEMU_SCOPED_TRACE("vkCmdBeginConditionalRenderingEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003091 auto vkEnc = HostConnection::get()->vkEncoder();
3092 vkEnc->vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin);
3093}
3094static void entry_vkCmdEndConditionalRenderingEXT(
3095 VkCommandBuffer commandBuffer)
3096{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003097 AEMU_SCOPED_TRACE("vkCmdEndConditionalRenderingEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003098 auto vkEnc = HostConnection::get()->vkEncoder();
3099 vkEnc->vkCmdEndConditionalRenderingEXT(commandBuffer);
3100}
3101#endif
3102#ifdef VK_NVX_device_generated_commands
3103static void entry_vkCmdProcessCommandsNVX(
3104 VkCommandBuffer commandBuffer,
3105 const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo)
3106{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003107 AEMU_SCOPED_TRACE("vkCmdProcessCommandsNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003108 auto vkEnc = HostConnection::get()->vkEncoder();
3109 vkEnc->vkCmdProcessCommandsNVX(commandBuffer, pProcessCommandsInfo);
3110}
3111static void entry_vkCmdReserveSpaceForCommandsNVX(
3112 VkCommandBuffer commandBuffer,
3113 const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo)
3114{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003115 AEMU_SCOPED_TRACE("vkCmdReserveSpaceForCommandsNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003116 auto vkEnc = HostConnection::get()->vkEncoder();
3117 vkEnc->vkCmdReserveSpaceForCommandsNVX(commandBuffer, pReserveSpaceInfo);
3118}
3119static VkResult entry_vkCreateIndirectCommandsLayoutNVX(
3120 VkDevice device,
3121 const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo,
3122 const VkAllocationCallbacks* pAllocator,
3123 VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout)
3124{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003125 AEMU_SCOPED_TRACE("vkCreateIndirectCommandsLayoutNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003126 auto vkEnc = HostConnection::get()->vkEncoder();
3127 VkResult vkCreateIndirectCommandsLayoutNVX_VkResult_return = (VkResult)0;
3128 vkCreateIndirectCommandsLayoutNVX_VkResult_return = vkEnc->vkCreateIndirectCommandsLayoutNVX(device, pCreateInfo, pAllocator, pIndirectCommandsLayout);
3129 return vkCreateIndirectCommandsLayoutNVX_VkResult_return;
3130}
3131static void entry_vkDestroyIndirectCommandsLayoutNVX(
3132 VkDevice device,
3133 VkIndirectCommandsLayoutNVX indirectCommandsLayout,
3134 const VkAllocationCallbacks* pAllocator)
3135{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003136 AEMU_SCOPED_TRACE("vkDestroyIndirectCommandsLayoutNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003137 auto vkEnc = HostConnection::get()->vkEncoder();
3138 vkEnc->vkDestroyIndirectCommandsLayoutNVX(device, indirectCommandsLayout, pAllocator);
3139}
3140static VkResult entry_vkCreateObjectTableNVX(
3141 VkDevice device,
3142 const VkObjectTableCreateInfoNVX* pCreateInfo,
3143 const VkAllocationCallbacks* pAllocator,
3144 VkObjectTableNVX* pObjectTable)
3145{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003146 AEMU_SCOPED_TRACE("vkCreateObjectTableNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003147 auto vkEnc = HostConnection::get()->vkEncoder();
3148 VkResult vkCreateObjectTableNVX_VkResult_return = (VkResult)0;
3149 vkCreateObjectTableNVX_VkResult_return = vkEnc->vkCreateObjectTableNVX(device, pCreateInfo, pAllocator, pObjectTable);
3150 return vkCreateObjectTableNVX_VkResult_return;
3151}
3152static void entry_vkDestroyObjectTableNVX(
3153 VkDevice device,
3154 VkObjectTableNVX objectTable,
3155 const VkAllocationCallbacks* pAllocator)
3156{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003157 AEMU_SCOPED_TRACE("vkDestroyObjectTableNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003158 auto vkEnc = HostConnection::get()->vkEncoder();
3159 vkEnc->vkDestroyObjectTableNVX(device, objectTable, pAllocator);
3160}
3161static VkResult entry_vkRegisterObjectsNVX(
3162 VkDevice device,
3163 VkObjectTableNVX objectTable,
3164 uint32_t objectCount,
3165 const VkObjectTableEntryNVX* const* ppObjectTableEntries,
3166 const uint32_t* pObjectIndices)
3167{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003168 AEMU_SCOPED_TRACE("vkRegisterObjectsNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003169 auto vkEnc = HostConnection::get()->vkEncoder();
3170 VkResult vkRegisterObjectsNVX_VkResult_return = (VkResult)0;
3171 vkRegisterObjectsNVX_VkResult_return = vkEnc->vkRegisterObjectsNVX(device, objectTable, objectCount, ppObjectTableEntries, pObjectIndices);
3172 return vkRegisterObjectsNVX_VkResult_return;
3173}
3174static VkResult entry_vkUnregisterObjectsNVX(
3175 VkDevice device,
3176 VkObjectTableNVX objectTable,
3177 uint32_t objectCount,
3178 const VkObjectEntryTypeNVX* pObjectEntryTypes,
3179 const uint32_t* pObjectIndices)
3180{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003181 AEMU_SCOPED_TRACE("vkUnregisterObjectsNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003182 auto vkEnc = HostConnection::get()->vkEncoder();
3183 VkResult vkUnregisterObjectsNVX_VkResult_return = (VkResult)0;
3184 vkUnregisterObjectsNVX_VkResult_return = vkEnc->vkUnregisterObjectsNVX(device, objectTable, objectCount, pObjectEntryTypes, pObjectIndices);
3185 return vkUnregisterObjectsNVX_VkResult_return;
3186}
3187static void entry_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX(
3188 VkPhysicalDevice physicalDevice,
3189 VkDeviceGeneratedCommandsFeaturesNVX* pFeatures,
3190 VkDeviceGeneratedCommandsLimitsNVX* pLimits)
3191{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003192 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003193 auto vkEnc = HostConnection::get()->vkEncoder();
3194 vkEnc->vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX(physicalDevice, pFeatures, pLimits);
3195}
3196#endif
3197#ifdef VK_NV_clip_space_w_scaling
3198static void entry_vkCmdSetViewportWScalingNV(
3199 VkCommandBuffer commandBuffer,
3200 uint32_t firstViewport,
3201 uint32_t viewportCount,
3202 const VkViewportWScalingNV* pViewportWScalings)
3203{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003204 AEMU_SCOPED_TRACE("vkCmdSetViewportWScalingNV");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003205 auto vkEnc = HostConnection::get()->vkEncoder();
3206 vkEnc->vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings);
3207}
3208#endif
3209#ifdef VK_EXT_direct_mode_display
3210static VkResult entry_vkReleaseDisplayEXT(
3211 VkPhysicalDevice physicalDevice,
3212 VkDisplayKHR display)
3213{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003214 AEMU_SCOPED_TRACE("vkReleaseDisplayEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003215 auto vkEnc = HostConnection::get()->vkEncoder();
3216 VkResult vkReleaseDisplayEXT_VkResult_return = (VkResult)0;
3217 vkReleaseDisplayEXT_VkResult_return = vkEnc->vkReleaseDisplayEXT(physicalDevice, display);
3218 return vkReleaseDisplayEXT_VkResult_return;
3219}
3220#endif
3221#ifdef VK_EXT_acquire_xlib_display
3222static VkResult entry_vkAcquireXlibDisplayEXT(
3223 VkPhysicalDevice physicalDevice,
3224 Display* dpy,
3225 VkDisplayKHR display)
3226{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003227 AEMU_SCOPED_TRACE("vkAcquireXlibDisplayEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003228 auto vkEnc = HostConnection::get()->vkEncoder();
3229 VkResult vkAcquireXlibDisplayEXT_VkResult_return = (VkResult)0;
3230 vkAcquireXlibDisplayEXT_VkResult_return = vkEnc->vkAcquireXlibDisplayEXT(physicalDevice, dpy, display);
3231 return vkAcquireXlibDisplayEXT_VkResult_return;
3232}
3233static VkResult entry_vkGetRandROutputDisplayEXT(
3234 VkPhysicalDevice physicalDevice,
3235 Display* dpy,
3236 RROutput rrOutput,
3237 VkDisplayKHR* pDisplay)
3238{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003239 AEMU_SCOPED_TRACE("vkGetRandROutputDisplayEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003240 auto vkEnc = HostConnection::get()->vkEncoder();
3241 VkResult vkGetRandROutputDisplayEXT_VkResult_return = (VkResult)0;
3242 vkGetRandROutputDisplayEXT_VkResult_return = vkEnc->vkGetRandROutputDisplayEXT(physicalDevice, dpy, rrOutput, pDisplay);
3243 return vkGetRandROutputDisplayEXT_VkResult_return;
3244}
3245#endif
3246#ifdef VK_EXT_display_surface_counter
3247static VkResult entry_vkGetPhysicalDeviceSurfaceCapabilities2EXT(
3248 VkPhysicalDevice physicalDevice,
3249 VkSurfaceKHR surface,
3250 VkSurfaceCapabilities2EXT* pSurfaceCapabilities)
3251{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003252 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceCapabilities2EXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003253 auto vkEnc = HostConnection::get()->vkEncoder();
3254 VkResult vkGetPhysicalDeviceSurfaceCapabilities2EXT_VkResult_return = (VkResult)0;
3255 vkGetPhysicalDeviceSurfaceCapabilities2EXT_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities);
3256 return vkGetPhysicalDeviceSurfaceCapabilities2EXT_VkResult_return;
3257}
3258#endif
3259#ifdef VK_EXT_display_control
3260static VkResult entry_vkDisplayPowerControlEXT(
3261 VkDevice device,
3262 VkDisplayKHR display,
3263 const VkDisplayPowerInfoEXT* pDisplayPowerInfo)
3264{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003265 AEMU_SCOPED_TRACE("vkDisplayPowerControlEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003266 auto vkEnc = HostConnection::get()->vkEncoder();
3267 VkResult vkDisplayPowerControlEXT_VkResult_return = (VkResult)0;
3268 vkDisplayPowerControlEXT_VkResult_return = vkEnc->vkDisplayPowerControlEXT(device, display, pDisplayPowerInfo);
3269 return vkDisplayPowerControlEXT_VkResult_return;
3270}
3271static VkResult entry_vkRegisterDeviceEventEXT(
3272 VkDevice device,
3273 const VkDeviceEventInfoEXT* pDeviceEventInfo,
3274 const VkAllocationCallbacks* pAllocator,
3275 VkFence* pFence)
3276{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003277 AEMU_SCOPED_TRACE("vkRegisterDeviceEventEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003278 auto vkEnc = HostConnection::get()->vkEncoder();
3279 VkResult vkRegisterDeviceEventEXT_VkResult_return = (VkResult)0;
3280 vkRegisterDeviceEventEXT_VkResult_return = vkEnc->vkRegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence);
3281 return vkRegisterDeviceEventEXT_VkResult_return;
3282}
3283static VkResult entry_vkRegisterDisplayEventEXT(
3284 VkDevice device,
3285 VkDisplayKHR display,
3286 const VkDisplayEventInfoEXT* pDisplayEventInfo,
3287 const VkAllocationCallbacks* pAllocator,
3288 VkFence* pFence)
3289{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003290 AEMU_SCOPED_TRACE("vkRegisterDisplayEventEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003291 auto vkEnc = HostConnection::get()->vkEncoder();
3292 VkResult vkRegisterDisplayEventEXT_VkResult_return = (VkResult)0;
3293 vkRegisterDisplayEventEXT_VkResult_return = vkEnc->vkRegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence);
3294 return vkRegisterDisplayEventEXT_VkResult_return;
3295}
3296static VkResult entry_vkGetSwapchainCounterEXT(
3297 VkDevice device,
3298 VkSwapchainKHR swapchain,
3299 VkSurfaceCounterFlagBitsEXT counter,
3300 uint64_t* pCounterValue)
3301{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003302 AEMU_SCOPED_TRACE("vkGetSwapchainCounterEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003303 auto vkEnc = HostConnection::get()->vkEncoder();
3304 VkResult vkGetSwapchainCounterEXT_VkResult_return = (VkResult)0;
3305 vkGetSwapchainCounterEXT_VkResult_return = vkEnc->vkGetSwapchainCounterEXT(device, swapchain, counter, pCounterValue);
3306 return vkGetSwapchainCounterEXT_VkResult_return;
3307}
3308#endif
3309#ifdef VK_GOOGLE_display_timing
3310static VkResult entry_vkGetRefreshCycleDurationGOOGLE(
3311 VkDevice device,
3312 VkSwapchainKHR swapchain,
3313 VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties)
3314{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003315 AEMU_SCOPED_TRACE("vkGetRefreshCycleDurationGOOGLE");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003316 auto vkEnc = HostConnection::get()->vkEncoder();
3317 VkResult vkGetRefreshCycleDurationGOOGLE_VkResult_return = (VkResult)0;
3318 vkGetRefreshCycleDurationGOOGLE_VkResult_return = vkEnc->vkGetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties);
3319 return vkGetRefreshCycleDurationGOOGLE_VkResult_return;
3320}
3321static VkResult entry_vkGetPastPresentationTimingGOOGLE(
3322 VkDevice device,
3323 VkSwapchainKHR swapchain,
3324 uint32_t* pPresentationTimingCount,
3325 VkPastPresentationTimingGOOGLE* pPresentationTimings)
3326{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003327 AEMU_SCOPED_TRACE("vkGetPastPresentationTimingGOOGLE");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003328 auto vkEnc = HostConnection::get()->vkEncoder();
3329 VkResult vkGetPastPresentationTimingGOOGLE_VkResult_return = (VkResult)0;
3330 vkGetPastPresentationTimingGOOGLE_VkResult_return = vkEnc->vkGetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings);
3331 return vkGetPastPresentationTimingGOOGLE_VkResult_return;
3332}
3333#endif
3334#ifdef VK_NV_sample_mask_override_coverage
3335#endif
3336#ifdef VK_NV_geometry_shader_passthrough
3337#endif
3338#ifdef VK_NV_viewport_array2
3339#endif
3340#ifdef VK_NVX_multiview_per_view_attributes
3341#endif
3342#ifdef VK_NV_viewport_swizzle
3343#endif
3344#ifdef VK_EXT_discard_rectangles
3345static void entry_vkCmdSetDiscardRectangleEXT(
3346 VkCommandBuffer commandBuffer,
3347 uint32_t firstDiscardRectangle,
3348 uint32_t discardRectangleCount,
3349 const VkRect2D* pDiscardRectangles)
3350{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003351 AEMU_SCOPED_TRACE("vkCmdSetDiscardRectangleEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003352 auto vkEnc = HostConnection::get()->vkEncoder();
3353 vkEnc->vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles);
3354}
3355#endif
3356#ifdef VK_EXT_conservative_rasterization
3357#endif
3358#ifdef VK_EXT_swapchain_colorspace
3359#endif
3360#ifdef VK_EXT_hdr_metadata
3361static void entry_vkSetHdrMetadataEXT(
3362 VkDevice device,
3363 uint32_t swapchainCount,
3364 const VkSwapchainKHR* pSwapchains,
3365 const VkHdrMetadataEXT* pMetadata)
3366{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003367 AEMU_SCOPED_TRACE("vkSetHdrMetadataEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003368 auto vkEnc = HostConnection::get()->vkEncoder();
3369 vkEnc->vkSetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata);
3370}
3371#endif
3372#ifdef VK_MVK_ios_surface
3373static VkResult entry_vkCreateIOSSurfaceMVK(
3374 VkInstance instance,
3375 const VkIOSSurfaceCreateInfoMVK* pCreateInfo,
3376 const VkAllocationCallbacks* pAllocator,
3377 VkSurfaceKHR* pSurface)
3378{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003379 AEMU_SCOPED_TRACE("vkCreateIOSSurfaceMVK");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003380 auto vkEnc = HostConnection::get()->vkEncoder();
3381 VkResult vkCreateIOSSurfaceMVK_VkResult_return = (VkResult)0;
3382 vkCreateIOSSurfaceMVK_VkResult_return = vkEnc->vkCreateIOSSurfaceMVK(instance, pCreateInfo, pAllocator, pSurface);
3383 return vkCreateIOSSurfaceMVK_VkResult_return;
3384}
3385#endif
3386#ifdef VK_MVK_macos_surface
3387static VkResult entry_vkCreateMacOSSurfaceMVK(
3388 VkInstance instance,
3389 const VkMacOSSurfaceCreateInfoMVK* pCreateInfo,
3390 const VkAllocationCallbacks* pAllocator,
3391 VkSurfaceKHR* pSurface)
3392{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003393 AEMU_SCOPED_TRACE("vkCreateMacOSSurfaceMVK");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003394 auto vkEnc = HostConnection::get()->vkEncoder();
3395 VkResult vkCreateMacOSSurfaceMVK_VkResult_return = (VkResult)0;
3396 vkCreateMacOSSurfaceMVK_VkResult_return = vkEnc->vkCreateMacOSSurfaceMVK(instance, pCreateInfo, pAllocator, pSurface);
3397 return vkCreateMacOSSurfaceMVK_VkResult_return;
3398}
3399#endif
3400#ifdef VK_EXT_external_memory_dma_buf
3401#endif
3402#ifdef VK_EXT_queue_family_foreign
3403#endif
3404#ifdef VK_EXT_debug_utils
3405static VkResult entry_vkSetDebugUtilsObjectNameEXT(
3406 VkDevice device,
3407 const VkDebugUtilsObjectNameInfoEXT* pNameInfo)
3408{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003409 AEMU_SCOPED_TRACE("vkSetDebugUtilsObjectNameEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003410 auto vkEnc = HostConnection::get()->vkEncoder();
3411 VkResult vkSetDebugUtilsObjectNameEXT_VkResult_return = (VkResult)0;
3412 vkSetDebugUtilsObjectNameEXT_VkResult_return = vkEnc->vkSetDebugUtilsObjectNameEXT(device, pNameInfo);
3413 return vkSetDebugUtilsObjectNameEXT_VkResult_return;
3414}
3415static VkResult entry_vkSetDebugUtilsObjectTagEXT(
3416 VkDevice device,
3417 const VkDebugUtilsObjectTagInfoEXT* pTagInfo)
3418{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003419 AEMU_SCOPED_TRACE("vkSetDebugUtilsObjectTagEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003420 auto vkEnc = HostConnection::get()->vkEncoder();
3421 VkResult vkSetDebugUtilsObjectTagEXT_VkResult_return = (VkResult)0;
3422 vkSetDebugUtilsObjectTagEXT_VkResult_return = vkEnc->vkSetDebugUtilsObjectTagEXT(device, pTagInfo);
3423 return vkSetDebugUtilsObjectTagEXT_VkResult_return;
3424}
3425static void entry_vkQueueBeginDebugUtilsLabelEXT(
3426 VkQueue queue,
3427 const VkDebugUtilsLabelEXT* pLabelInfo)
3428{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003429 AEMU_SCOPED_TRACE("vkQueueBeginDebugUtilsLabelEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003430 auto vkEnc = HostConnection::get()->vkEncoder();
3431 vkEnc->vkQueueBeginDebugUtilsLabelEXT(queue, pLabelInfo);
3432}
3433static void entry_vkQueueEndDebugUtilsLabelEXT(
3434 VkQueue queue)
3435{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003436 AEMU_SCOPED_TRACE("vkQueueEndDebugUtilsLabelEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003437 auto vkEnc = HostConnection::get()->vkEncoder();
3438 vkEnc->vkQueueEndDebugUtilsLabelEXT(queue);
3439}
3440static void entry_vkQueueInsertDebugUtilsLabelEXT(
3441 VkQueue queue,
3442 const VkDebugUtilsLabelEXT* pLabelInfo)
3443{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003444 AEMU_SCOPED_TRACE("vkQueueInsertDebugUtilsLabelEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003445 auto vkEnc = HostConnection::get()->vkEncoder();
3446 vkEnc->vkQueueInsertDebugUtilsLabelEXT(queue, pLabelInfo);
3447}
3448static void entry_vkCmdBeginDebugUtilsLabelEXT(
3449 VkCommandBuffer commandBuffer,
3450 const VkDebugUtilsLabelEXT* pLabelInfo)
3451{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003452 AEMU_SCOPED_TRACE("vkCmdBeginDebugUtilsLabelEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003453 auto vkEnc = HostConnection::get()->vkEncoder();
3454 vkEnc->vkCmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo);
3455}
3456static void entry_vkCmdEndDebugUtilsLabelEXT(
3457 VkCommandBuffer commandBuffer)
3458{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003459 AEMU_SCOPED_TRACE("vkCmdEndDebugUtilsLabelEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003460 auto vkEnc = HostConnection::get()->vkEncoder();
3461 vkEnc->vkCmdEndDebugUtilsLabelEXT(commandBuffer);
3462}
3463static void entry_vkCmdInsertDebugUtilsLabelEXT(
3464 VkCommandBuffer commandBuffer,
3465 const VkDebugUtilsLabelEXT* pLabelInfo)
3466{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003467 AEMU_SCOPED_TRACE("vkCmdInsertDebugUtilsLabelEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003468 auto vkEnc = HostConnection::get()->vkEncoder();
3469 vkEnc->vkCmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo);
3470}
3471static VkResult entry_vkCreateDebugUtilsMessengerEXT(
3472 VkInstance instance,
3473 const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo,
3474 const VkAllocationCallbacks* pAllocator,
3475 VkDebugUtilsMessengerEXT* pMessenger)
3476{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003477 AEMU_SCOPED_TRACE("vkCreateDebugUtilsMessengerEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003478 auto vkEnc = HostConnection::get()->vkEncoder();
3479 VkResult vkCreateDebugUtilsMessengerEXT_VkResult_return = (VkResult)0;
3480 vkCreateDebugUtilsMessengerEXT_VkResult_return = vkEnc->vkCreateDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, pMessenger);
3481 return vkCreateDebugUtilsMessengerEXT_VkResult_return;
3482}
3483static void entry_vkDestroyDebugUtilsMessengerEXT(
3484 VkInstance instance,
3485 VkDebugUtilsMessengerEXT messenger,
3486 const VkAllocationCallbacks* pAllocator)
3487{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003488 AEMU_SCOPED_TRACE("vkDestroyDebugUtilsMessengerEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003489 auto vkEnc = HostConnection::get()->vkEncoder();
3490 vkEnc->vkDestroyDebugUtilsMessengerEXT(instance, messenger, pAllocator);
3491}
3492static void entry_vkSubmitDebugUtilsMessageEXT(
3493 VkInstance instance,
3494 VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
3495 VkDebugUtilsMessageTypeFlagsEXT messageTypes,
3496 const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData)
3497{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003498 AEMU_SCOPED_TRACE("vkSubmitDebugUtilsMessageEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003499 auto vkEnc = HostConnection::get()->vkEncoder();
3500 vkEnc->vkSubmitDebugUtilsMessageEXT(instance, messageSeverity, messageTypes, pCallbackData);
3501}
3502#endif
3503#ifdef VK_ANDROID_external_memory_android_hardware_buffer
3504static VkResult entry_vkGetAndroidHardwareBufferPropertiesANDROID(
3505 VkDevice device,
3506 const AHardwareBuffer* buffer,
3507 VkAndroidHardwareBufferPropertiesANDROID* pProperties)
3508{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003509 AEMU_SCOPED_TRACE("vkGetAndroidHardwareBufferPropertiesANDROID");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003510 auto vkEnc = HostConnection::get()->vkEncoder();
3511 VkResult vkGetAndroidHardwareBufferPropertiesANDROID_VkResult_return = (VkResult)0;
Lingfeng Yang4f3f91f2019-02-28 11:37:21 -08003512 auto resources = ResourceTracker::get();
3513 vkGetAndroidHardwareBufferPropertiesANDROID_VkResult_return = resources->on_vkGetAndroidHardwareBufferPropertiesANDROID(vkEnc, VK_SUCCESS, device, buffer, pProperties);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003514 return vkGetAndroidHardwareBufferPropertiesANDROID_VkResult_return;
3515}
3516static VkResult entry_vkGetMemoryAndroidHardwareBufferANDROID(
3517 VkDevice device,
3518 const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo,
3519 AHardwareBuffer** pBuffer)
3520{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003521 AEMU_SCOPED_TRACE("vkGetMemoryAndroidHardwareBufferANDROID");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003522 auto vkEnc = HostConnection::get()->vkEncoder();
3523 VkResult vkGetMemoryAndroidHardwareBufferANDROID_VkResult_return = (VkResult)0;
Lingfeng Yang4f3f91f2019-02-28 11:37:21 -08003524 auto resources = ResourceTracker::get();
3525 vkGetMemoryAndroidHardwareBufferANDROID_VkResult_return = resources->on_vkGetMemoryAndroidHardwareBufferANDROID(vkEnc, VK_SUCCESS, device, pInfo, pBuffer);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003526 return vkGetMemoryAndroidHardwareBufferANDROID_VkResult_return;
3527}
3528#endif
3529#ifdef VK_EXT_sampler_filter_minmax
3530#endif
3531#ifdef VK_AMD_gpu_shader_int16
3532#endif
3533#ifdef VK_AMD_mixed_attachment_samples
3534#endif
3535#ifdef VK_AMD_shader_fragment_mask
3536#endif
3537#ifdef VK_EXT_shader_stencil_export
3538#endif
3539#ifdef VK_EXT_sample_locations
3540static void entry_vkCmdSetSampleLocationsEXT(
3541 VkCommandBuffer commandBuffer,
3542 const VkSampleLocationsInfoEXT* pSampleLocationsInfo)
3543{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003544 AEMU_SCOPED_TRACE("vkCmdSetSampleLocationsEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003545 auto vkEnc = HostConnection::get()->vkEncoder();
3546 vkEnc->vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo);
3547}
3548static void entry_vkGetPhysicalDeviceMultisamplePropertiesEXT(
3549 VkPhysicalDevice physicalDevice,
3550 VkSampleCountFlagBits samples,
3551 VkMultisamplePropertiesEXT* pMultisampleProperties)
3552{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003553 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMultisamplePropertiesEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003554 auto vkEnc = HostConnection::get()->vkEncoder();
3555 vkEnc->vkGetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties);
3556}
3557#endif
3558#ifdef VK_EXT_blend_operation_advanced
3559#endif
3560#ifdef VK_NV_fragment_coverage_to_color
3561#endif
3562#ifdef VK_NV_framebuffer_mixed_samples
3563#endif
3564#ifdef VK_NV_fill_rectangle
3565#endif
3566#ifdef VK_EXT_post_depth_coverage
3567#endif
3568#ifdef VK_EXT_validation_cache
3569static VkResult entry_vkCreateValidationCacheEXT(
3570 VkDevice device,
3571 const VkValidationCacheCreateInfoEXT* pCreateInfo,
3572 const VkAllocationCallbacks* pAllocator,
3573 VkValidationCacheEXT* pValidationCache)
3574{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003575 AEMU_SCOPED_TRACE("vkCreateValidationCacheEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003576 auto vkEnc = HostConnection::get()->vkEncoder();
3577 VkResult vkCreateValidationCacheEXT_VkResult_return = (VkResult)0;
3578 vkCreateValidationCacheEXT_VkResult_return = vkEnc->vkCreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache);
3579 return vkCreateValidationCacheEXT_VkResult_return;
3580}
3581static void entry_vkDestroyValidationCacheEXT(
3582 VkDevice device,
3583 VkValidationCacheEXT validationCache,
3584 const VkAllocationCallbacks* pAllocator)
3585{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003586 AEMU_SCOPED_TRACE("vkDestroyValidationCacheEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003587 auto vkEnc = HostConnection::get()->vkEncoder();
3588 vkEnc->vkDestroyValidationCacheEXT(device, validationCache, pAllocator);
3589}
3590static VkResult entry_vkMergeValidationCachesEXT(
3591 VkDevice device,
3592 VkValidationCacheEXT dstCache,
3593 uint32_t srcCacheCount,
3594 const VkValidationCacheEXT* pSrcCaches)
3595{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003596 AEMU_SCOPED_TRACE("vkMergeValidationCachesEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003597 auto vkEnc = HostConnection::get()->vkEncoder();
3598 VkResult vkMergeValidationCachesEXT_VkResult_return = (VkResult)0;
3599 vkMergeValidationCachesEXT_VkResult_return = vkEnc->vkMergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches);
3600 return vkMergeValidationCachesEXT_VkResult_return;
3601}
3602static VkResult entry_vkGetValidationCacheDataEXT(
3603 VkDevice device,
3604 VkValidationCacheEXT validationCache,
3605 size_t* pDataSize,
3606 void* pData)
3607{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003608 AEMU_SCOPED_TRACE("vkGetValidationCacheDataEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003609 auto vkEnc = HostConnection::get()->vkEncoder();
3610 VkResult vkGetValidationCacheDataEXT_VkResult_return = (VkResult)0;
3611 vkGetValidationCacheDataEXT_VkResult_return = vkEnc->vkGetValidationCacheDataEXT(device, validationCache, pDataSize, pData);
3612 return vkGetValidationCacheDataEXT_VkResult_return;
3613}
3614#endif
3615#ifdef VK_EXT_descriptor_indexing
3616#endif
3617#ifdef VK_EXT_shader_viewport_index_layer
3618#endif
3619#ifdef VK_EXT_global_priority
3620#endif
3621#ifdef VK_EXT_external_memory_host
3622static VkResult entry_vkGetMemoryHostPointerPropertiesEXT(
3623 VkDevice device,
3624 VkExternalMemoryHandleTypeFlagBits handleType,
3625 const void* pHostPointer,
3626 VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties)
3627{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003628 AEMU_SCOPED_TRACE("vkGetMemoryHostPointerPropertiesEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003629 auto vkEnc = HostConnection::get()->vkEncoder();
3630 VkResult vkGetMemoryHostPointerPropertiesEXT_VkResult_return = (VkResult)0;
3631 vkGetMemoryHostPointerPropertiesEXT_VkResult_return = vkEnc->vkGetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties);
3632 return vkGetMemoryHostPointerPropertiesEXT_VkResult_return;
3633}
3634#endif
3635#ifdef VK_AMD_buffer_marker
3636static void entry_vkCmdWriteBufferMarkerAMD(
3637 VkCommandBuffer commandBuffer,
3638 VkPipelineStageFlagBits pipelineStage,
3639 VkBuffer dstBuffer,
3640 VkDeviceSize dstOffset,
3641 uint32_t marker)
3642{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003643 AEMU_SCOPED_TRACE("vkCmdWriteBufferMarkerAMD");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003644 auto vkEnc = HostConnection::get()->vkEncoder();
3645 vkEnc->vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker);
3646}
3647#endif
3648#ifdef VK_AMD_shader_core_properties
3649#endif
3650#ifdef VK_EXT_vertex_attribute_divisor
3651#endif
3652#ifdef VK_NV_shader_subgroup_partitioned
3653#endif
3654#ifdef VK_NV_device_diagnostic_checkpoints
3655static void entry_vkCmdSetCheckpointNV(
3656 VkCommandBuffer commandBuffer,
3657 const void* pCheckpointMarker)
3658{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003659 AEMU_SCOPED_TRACE("vkCmdSetCheckpointNV");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003660 auto vkEnc = HostConnection::get()->vkEncoder();
3661 vkEnc->vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker);
3662}
3663static void entry_vkGetQueueCheckpointDataNV(
3664 VkQueue queue,
3665 uint32_t* pCheckpointDataCount,
3666 VkCheckpointDataNV* pCheckpointData)
3667{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003668 AEMU_SCOPED_TRACE("vkGetQueueCheckpointDataNV");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003669 auto vkEnc = HostConnection::get()->vkEncoder();
3670 vkEnc->vkGetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData);
3671}
3672#endif
Lingfeng Yang5c63afd2018-12-22 01:21:14 -08003673#ifdef VK_GOOGLE_address_space
3674static VkResult entry_vkMapMemoryIntoAddressSpaceGOOGLE(
3675 VkDevice device,
3676 VkDeviceMemory memory,
3677 uint64_t* pAddress)
3678{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003679 AEMU_SCOPED_TRACE("vkMapMemoryIntoAddressSpaceGOOGLE");
Lingfeng Yang5c63afd2018-12-22 01:21:14 -08003680 auto vkEnc = HostConnection::get()->vkEncoder();
3681 VkResult vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return = (VkResult)0;
3682 vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return = vkEnc->vkMapMemoryIntoAddressSpaceGOOGLE(device, memory, pAddress);
3683 return vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return;
3684}
3685#endif
Lingfeng Yangae7e1b32019-02-19 14:07:39 -08003686#ifdef VK_GOOGLE_color_buffer
3687static VkResult entry_vkRegisterImageColorBufferGOOGLE(
3688 VkDevice device,
3689 VkImage image,
3690 uint32_t colorBuffer)
3691{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003692 AEMU_SCOPED_TRACE("vkRegisterImageColorBufferGOOGLE");
Lingfeng Yangae7e1b32019-02-19 14:07:39 -08003693 auto vkEnc = HostConnection::get()->vkEncoder();
3694 VkResult vkRegisterImageColorBufferGOOGLE_VkResult_return = (VkResult)0;
3695 vkRegisterImageColorBufferGOOGLE_VkResult_return = vkEnc->vkRegisterImageColorBufferGOOGLE(device, image, colorBuffer);
3696 return vkRegisterImageColorBufferGOOGLE_VkResult_return;
3697}
3698static VkResult entry_vkRegisterBufferColorBufferGOOGLE(
3699 VkDevice device,
3700 VkBuffer buffer,
3701 uint32_t colorBuffer)
3702{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003703 AEMU_SCOPED_TRACE("vkRegisterBufferColorBufferGOOGLE");
Lingfeng Yangae7e1b32019-02-19 14:07:39 -08003704 auto vkEnc = HostConnection::get()->vkEncoder();
3705 VkResult vkRegisterBufferColorBufferGOOGLE_VkResult_return = (VkResult)0;
3706 vkRegisterBufferColorBufferGOOGLE_VkResult_return = vkEnc->vkRegisterBufferColorBufferGOOGLE(device, buffer, colorBuffer);
3707 return vkRegisterBufferColorBufferGOOGLE_VkResult_return;
3708}
3709#endif
Lingfeng Yang05d5ea32019-03-23 00:12:39 -07003710#ifdef VK_GOOGLE_sized_descriptor_update_template
3711static void entry_vkUpdateDescriptorSetWithTemplateSizedGOOGLE(
3712 VkDevice device,
3713 VkDescriptorSet descriptorSet,
3714 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
3715 uint32_t imageInfoCount,
3716 uint32_t bufferInfoCount,
3717 uint32_t bufferViewCount,
3718 const uint32_t* pImageInfoEntryIndices,
3719 const uint32_t* pBufferInfoEntryIndices,
3720 const uint32_t* pBufferViewEntryIndices,
3721 const VkDescriptorImageInfo* pImageInfos,
3722 const VkDescriptorBufferInfo* pBufferInfos,
3723 const VkBufferView* pBufferViews)
3724{
3725 AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplateSizedGOOGLE");
3726 auto vkEnc = HostConnection::get()->vkEncoder();
3727 vkEnc->vkUpdateDescriptorSetWithTemplateSizedGOOGLE(device, descriptorSet, descriptorUpdateTemplate, imageInfoCount, bufferInfoCount, bufferViewCount, pImageInfoEntryIndices, pBufferInfoEntryIndices, pBufferViewEntryIndices, pImageInfos, pBufferInfos, pBufferViews);
3728}
3729#endif
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003730void* goldfish_vulkan_get_proc_address(const char* name){
3731#ifdef VK_VERSION_1_0
3732 if (!strcmp(name, "vkCreateInstance"))
3733 {
3734 return (void*)entry_vkCreateInstance;
3735 }
3736 if (!strcmp(name, "vkDestroyInstance"))
3737 {
3738 return (void*)entry_vkDestroyInstance;
3739 }
3740 if (!strcmp(name, "vkEnumeratePhysicalDevices"))
3741 {
3742 return (void*)entry_vkEnumeratePhysicalDevices;
3743 }
3744 if (!strcmp(name, "vkGetPhysicalDeviceFeatures"))
3745 {
3746 return (void*)entry_vkGetPhysicalDeviceFeatures;
3747 }
3748 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties"))
3749 {
3750 return (void*)entry_vkGetPhysicalDeviceFormatProperties;
3751 }
3752 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties"))
3753 {
3754 return (void*)entry_vkGetPhysicalDeviceImageFormatProperties;
3755 }
3756 if (!strcmp(name, "vkGetPhysicalDeviceProperties"))
3757 {
3758 return (void*)entry_vkGetPhysicalDeviceProperties;
3759 }
3760 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties"))
3761 {
3762 return (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties;
3763 }
3764 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties"))
3765 {
3766 return (void*)entry_vkGetPhysicalDeviceMemoryProperties;
3767 }
3768 if (!strcmp(name, "vkGetInstanceProcAddr"))
3769 {
3770 return (void*)entry_vkGetInstanceProcAddr;
3771 }
3772 if (!strcmp(name, "vkGetDeviceProcAddr"))
3773 {
3774 return (void*)entry_vkGetDeviceProcAddr;
3775 }
3776 if (!strcmp(name, "vkCreateDevice"))
3777 {
3778 return (void*)entry_vkCreateDevice;
3779 }
3780 if (!strcmp(name, "vkDestroyDevice"))
3781 {
3782 return (void*)entry_vkDestroyDevice;
3783 }
3784 if (!strcmp(name, "vkEnumerateInstanceExtensionProperties"))
3785 {
3786 return (void*)entry_vkEnumerateInstanceExtensionProperties;
3787 }
3788 if (!strcmp(name, "vkEnumerateDeviceExtensionProperties"))
3789 {
3790 return (void*)entry_vkEnumerateDeviceExtensionProperties;
3791 }
3792 if (!strcmp(name, "vkEnumerateInstanceLayerProperties"))
3793 {
3794 return (void*)entry_vkEnumerateInstanceLayerProperties;
3795 }
3796 if (!strcmp(name, "vkEnumerateDeviceLayerProperties"))
3797 {
3798 return (void*)entry_vkEnumerateDeviceLayerProperties;
3799 }
3800 if (!strcmp(name, "vkGetDeviceQueue"))
3801 {
3802 return (void*)entry_vkGetDeviceQueue;
3803 }
3804 if (!strcmp(name, "vkQueueSubmit"))
3805 {
3806 return (void*)entry_vkQueueSubmit;
3807 }
3808 if (!strcmp(name, "vkQueueWaitIdle"))
3809 {
3810 return (void*)entry_vkQueueWaitIdle;
3811 }
3812 if (!strcmp(name, "vkDeviceWaitIdle"))
3813 {
3814 return (void*)entry_vkDeviceWaitIdle;
3815 }
3816 if (!strcmp(name, "vkAllocateMemory"))
3817 {
3818 return (void*)entry_vkAllocateMemory;
3819 }
3820 if (!strcmp(name, "vkFreeMemory"))
3821 {
3822 return (void*)entry_vkFreeMemory;
3823 }
3824 if (!strcmp(name, "vkMapMemory"))
3825 {
3826 return (void*)entry_vkMapMemory;
3827 }
3828 if (!strcmp(name, "vkUnmapMemory"))
3829 {
3830 return (void*)entry_vkUnmapMemory;
3831 }
3832 if (!strcmp(name, "vkFlushMappedMemoryRanges"))
3833 {
3834 return (void*)entry_vkFlushMappedMemoryRanges;
3835 }
3836 if (!strcmp(name, "vkInvalidateMappedMemoryRanges"))
3837 {
3838 return (void*)entry_vkInvalidateMappedMemoryRanges;
3839 }
3840 if (!strcmp(name, "vkGetDeviceMemoryCommitment"))
3841 {
3842 return (void*)entry_vkGetDeviceMemoryCommitment;
3843 }
3844 if (!strcmp(name, "vkBindBufferMemory"))
3845 {
3846 return (void*)entry_vkBindBufferMemory;
3847 }
3848 if (!strcmp(name, "vkBindImageMemory"))
3849 {
3850 return (void*)entry_vkBindImageMemory;
3851 }
3852 if (!strcmp(name, "vkGetBufferMemoryRequirements"))
3853 {
3854 return (void*)entry_vkGetBufferMemoryRequirements;
3855 }
3856 if (!strcmp(name, "vkGetImageMemoryRequirements"))
3857 {
3858 return (void*)entry_vkGetImageMemoryRequirements;
3859 }
3860 if (!strcmp(name, "vkGetImageSparseMemoryRequirements"))
3861 {
3862 return (void*)entry_vkGetImageSparseMemoryRequirements;
3863 }
3864 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties"))
3865 {
3866 return (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties;
3867 }
3868 if (!strcmp(name, "vkQueueBindSparse"))
3869 {
3870 return (void*)entry_vkQueueBindSparse;
3871 }
3872 if (!strcmp(name, "vkCreateFence"))
3873 {
3874 return (void*)entry_vkCreateFence;
3875 }
3876 if (!strcmp(name, "vkDestroyFence"))
3877 {
3878 return (void*)entry_vkDestroyFence;
3879 }
3880 if (!strcmp(name, "vkResetFences"))
3881 {
3882 return (void*)entry_vkResetFences;
3883 }
3884 if (!strcmp(name, "vkGetFenceStatus"))
3885 {
3886 return (void*)entry_vkGetFenceStatus;
3887 }
3888 if (!strcmp(name, "vkWaitForFences"))
3889 {
3890 return (void*)entry_vkWaitForFences;
3891 }
3892 if (!strcmp(name, "vkCreateSemaphore"))
3893 {
3894 return (void*)entry_vkCreateSemaphore;
3895 }
3896 if (!strcmp(name, "vkDestroySemaphore"))
3897 {
3898 return (void*)entry_vkDestroySemaphore;
3899 }
3900 if (!strcmp(name, "vkCreateEvent"))
3901 {
3902 return (void*)entry_vkCreateEvent;
3903 }
3904 if (!strcmp(name, "vkDestroyEvent"))
3905 {
3906 return (void*)entry_vkDestroyEvent;
3907 }
3908 if (!strcmp(name, "vkGetEventStatus"))
3909 {
3910 return (void*)entry_vkGetEventStatus;
3911 }
3912 if (!strcmp(name, "vkSetEvent"))
3913 {
3914 return (void*)entry_vkSetEvent;
3915 }
3916 if (!strcmp(name, "vkResetEvent"))
3917 {
3918 return (void*)entry_vkResetEvent;
3919 }
3920 if (!strcmp(name, "vkCreateQueryPool"))
3921 {
3922 return (void*)entry_vkCreateQueryPool;
3923 }
3924 if (!strcmp(name, "vkDestroyQueryPool"))
3925 {
3926 return (void*)entry_vkDestroyQueryPool;
3927 }
3928 if (!strcmp(name, "vkGetQueryPoolResults"))
3929 {
3930 return (void*)entry_vkGetQueryPoolResults;
3931 }
3932 if (!strcmp(name, "vkCreateBuffer"))
3933 {
3934 return (void*)entry_vkCreateBuffer;
3935 }
3936 if (!strcmp(name, "vkDestroyBuffer"))
3937 {
3938 return (void*)entry_vkDestroyBuffer;
3939 }
3940 if (!strcmp(name, "vkCreateBufferView"))
3941 {
3942 return (void*)entry_vkCreateBufferView;
3943 }
3944 if (!strcmp(name, "vkDestroyBufferView"))
3945 {
3946 return (void*)entry_vkDestroyBufferView;
3947 }
3948 if (!strcmp(name, "vkCreateImage"))
3949 {
3950 return (void*)entry_vkCreateImage;
3951 }
3952 if (!strcmp(name, "vkDestroyImage"))
3953 {
3954 return (void*)entry_vkDestroyImage;
3955 }
3956 if (!strcmp(name, "vkGetImageSubresourceLayout"))
3957 {
3958 return (void*)entry_vkGetImageSubresourceLayout;
3959 }
3960 if (!strcmp(name, "vkCreateImageView"))
3961 {
3962 return (void*)entry_vkCreateImageView;
3963 }
3964 if (!strcmp(name, "vkDestroyImageView"))
3965 {
3966 return (void*)entry_vkDestroyImageView;
3967 }
3968 if (!strcmp(name, "vkCreateShaderModule"))
3969 {
3970 return (void*)entry_vkCreateShaderModule;
3971 }
3972 if (!strcmp(name, "vkDestroyShaderModule"))
3973 {
3974 return (void*)entry_vkDestroyShaderModule;
3975 }
3976 if (!strcmp(name, "vkCreatePipelineCache"))
3977 {
3978 return (void*)entry_vkCreatePipelineCache;
3979 }
3980 if (!strcmp(name, "vkDestroyPipelineCache"))
3981 {
3982 return (void*)entry_vkDestroyPipelineCache;
3983 }
3984 if (!strcmp(name, "vkGetPipelineCacheData"))
3985 {
3986 return (void*)entry_vkGetPipelineCacheData;
3987 }
3988 if (!strcmp(name, "vkMergePipelineCaches"))
3989 {
3990 return (void*)entry_vkMergePipelineCaches;
3991 }
3992 if (!strcmp(name, "vkCreateGraphicsPipelines"))
3993 {
3994 return (void*)entry_vkCreateGraphicsPipelines;
3995 }
3996 if (!strcmp(name, "vkCreateComputePipelines"))
3997 {
3998 return (void*)entry_vkCreateComputePipelines;
3999 }
4000 if (!strcmp(name, "vkDestroyPipeline"))
4001 {
4002 return (void*)entry_vkDestroyPipeline;
4003 }
4004 if (!strcmp(name, "vkCreatePipelineLayout"))
4005 {
4006 return (void*)entry_vkCreatePipelineLayout;
4007 }
4008 if (!strcmp(name, "vkDestroyPipelineLayout"))
4009 {
4010 return (void*)entry_vkDestroyPipelineLayout;
4011 }
4012 if (!strcmp(name, "vkCreateSampler"))
4013 {
4014 return (void*)entry_vkCreateSampler;
4015 }
4016 if (!strcmp(name, "vkDestroySampler"))
4017 {
4018 return (void*)entry_vkDestroySampler;
4019 }
4020 if (!strcmp(name, "vkCreateDescriptorSetLayout"))
4021 {
4022 return (void*)entry_vkCreateDescriptorSetLayout;
4023 }
4024 if (!strcmp(name, "vkDestroyDescriptorSetLayout"))
4025 {
4026 return (void*)entry_vkDestroyDescriptorSetLayout;
4027 }
4028 if (!strcmp(name, "vkCreateDescriptorPool"))
4029 {
4030 return (void*)entry_vkCreateDescriptorPool;
4031 }
4032 if (!strcmp(name, "vkDestroyDescriptorPool"))
4033 {
4034 return (void*)entry_vkDestroyDescriptorPool;
4035 }
4036 if (!strcmp(name, "vkResetDescriptorPool"))
4037 {
4038 return (void*)entry_vkResetDescriptorPool;
4039 }
4040 if (!strcmp(name, "vkAllocateDescriptorSets"))
4041 {
4042 return (void*)entry_vkAllocateDescriptorSets;
4043 }
4044 if (!strcmp(name, "vkFreeDescriptorSets"))
4045 {
4046 return (void*)entry_vkFreeDescriptorSets;
4047 }
4048 if (!strcmp(name, "vkUpdateDescriptorSets"))
4049 {
4050 return (void*)entry_vkUpdateDescriptorSets;
4051 }
4052 if (!strcmp(name, "vkCreateFramebuffer"))
4053 {
4054 return (void*)entry_vkCreateFramebuffer;
4055 }
4056 if (!strcmp(name, "vkDestroyFramebuffer"))
4057 {
4058 return (void*)entry_vkDestroyFramebuffer;
4059 }
4060 if (!strcmp(name, "vkCreateRenderPass"))
4061 {
4062 return (void*)entry_vkCreateRenderPass;
4063 }
4064 if (!strcmp(name, "vkDestroyRenderPass"))
4065 {
4066 return (void*)entry_vkDestroyRenderPass;
4067 }
4068 if (!strcmp(name, "vkGetRenderAreaGranularity"))
4069 {
4070 return (void*)entry_vkGetRenderAreaGranularity;
4071 }
4072 if (!strcmp(name, "vkCreateCommandPool"))
4073 {
4074 return (void*)entry_vkCreateCommandPool;
4075 }
4076 if (!strcmp(name, "vkDestroyCommandPool"))
4077 {
4078 return (void*)entry_vkDestroyCommandPool;
4079 }
4080 if (!strcmp(name, "vkResetCommandPool"))
4081 {
4082 return (void*)entry_vkResetCommandPool;
4083 }
4084 if (!strcmp(name, "vkAllocateCommandBuffers"))
4085 {
4086 return (void*)entry_vkAllocateCommandBuffers;
4087 }
4088 if (!strcmp(name, "vkFreeCommandBuffers"))
4089 {
4090 return (void*)entry_vkFreeCommandBuffers;
4091 }
4092 if (!strcmp(name, "vkBeginCommandBuffer"))
4093 {
4094 return (void*)entry_vkBeginCommandBuffer;
4095 }
4096 if (!strcmp(name, "vkEndCommandBuffer"))
4097 {
4098 return (void*)entry_vkEndCommandBuffer;
4099 }
4100 if (!strcmp(name, "vkResetCommandBuffer"))
4101 {
4102 return (void*)entry_vkResetCommandBuffer;
4103 }
4104 if (!strcmp(name, "vkCmdBindPipeline"))
4105 {
4106 return (void*)entry_vkCmdBindPipeline;
4107 }
4108 if (!strcmp(name, "vkCmdSetViewport"))
4109 {
4110 return (void*)entry_vkCmdSetViewport;
4111 }
4112 if (!strcmp(name, "vkCmdSetScissor"))
4113 {
4114 return (void*)entry_vkCmdSetScissor;
4115 }
4116 if (!strcmp(name, "vkCmdSetLineWidth"))
4117 {
4118 return (void*)entry_vkCmdSetLineWidth;
4119 }
4120 if (!strcmp(name, "vkCmdSetDepthBias"))
4121 {
4122 return (void*)entry_vkCmdSetDepthBias;
4123 }
4124 if (!strcmp(name, "vkCmdSetBlendConstants"))
4125 {
4126 return (void*)entry_vkCmdSetBlendConstants;
4127 }
4128 if (!strcmp(name, "vkCmdSetDepthBounds"))
4129 {
4130 return (void*)entry_vkCmdSetDepthBounds;
4131 }
4132 if (!strcmp(name, "vkCmdSetStencilCompareMask"))
4133 {
4134 return (void*)entry_vkCmdSetStencilCompareMask;
4135 }
4136 if (!strcmp(name, "vkCmdSetStencilWriteMask"))
4137 {
4138 return (void*)entry_vkCmdSetStencilWriteMask;
4139 }
4140 if (!strcmp(name, "vkCmdSetStencilReference"))
4141 {
4142 return (void*)entry_vkCmdSetStencilReference;
4143 }
4144 if (!strcmp(name, "vkCmdBindDescriptorSets"))
4145 {
4146 return (void*)entry_vkCmdBindDescriptorSets;
4147 }
4148 if (!strcmp(name, "vkCmdBindIndexBuffer"))
4149 {
4150 return (void*)entry_vkCmdBindIndexBuffer;
4151 }
4152 if (!strcmp(name, "vkCmdBindVertexBuffers"))
4153 {
4154 return (void*)entry_vkCmdBindVertexBuffers;
4155 }
4156 if (!strcmp(name, "vkCmdDraw"))
4157 {
4158 return (void*)entry_vkCmdDraw;
4159 }
4160 if (!strcmp(name, "vkCmdDrawIndexed"))
4161 {
4162 return (void*)entry_vkCmdDrawIndexed;
4163 }
4164 if (!strcmp(name, "vkCmdDrawIndirect"))
4165 {
4166 return (void*)entry_vkCmdDrawIndirect;
4167 }
4168 if (!strcmp(name, "vkCmdDrawIndexedIndirect"))
4169 {
4170 return (void*)entry_vkCmdDrawIndexedIndirect;
4171 }
4172 if (!strcmp(name, "vkCmdDispatch"))
4173 {
4174 return (void*)entry_vkCmdDispatch;
4175 }
4176 if (!strcmp(name, "vkCmdDispatchIndirect"))
4177 {
4178 return (void*)entry_vkCmdDispatchIndirect;
4179 }
4180 if (!strcmp(name, "vkCmdCopyBuffer"))
4181 {
4182 return (void*)entry_vkCmdCopyBuffer;
4183 }
4184 if (!strcmp(name, "vkCmdCopyImage"))
4185 {
4186 return (void*)entry_vkCmdCopyImage;
4187 }
4188 if (!strcmp(name, "vkCmdBlitImage"))
4189 {
4190 return (void*)entry_vkCmdBlitImage;
4191 }
4192 if (!strcmp(name, "vkCmdCopyBufferToImage"))
4193 {
4194 return (void*)entry_vkCmdCopyBufferToImage;
4195 }
4196 if (!strcmp(name, "vkCmdCopyImageToBuffer"))
4197 {
4198 return (void*)entry_vkCmdCopyImageToBuffer;
4199 }
4200 if (!strcmp(name, "vkCmdUpdateBuffer"))
4201 {
4202 return (void*)entry_vkCmdUpdateBuffer;
4203 }
4204 if (!strcmp(name, "vkCmdFillBuffer"))
4205 {
4206 return (void*)entry_vkCmdFillBuffer;
4207 }
4208 if (!strcmp(name, "vkCmdClearColorImage"))
4209 {
4210 return (void*)entry_vkCmdClearColorImage;
4211 }
4212 if (!strcmp(name, "vkCmdClearDepthStencilImage"))
4213 {
4214 return (void*)entry_vkCmdClearDepthStencilImage;
4215 }
4216 if (!strcmp(name, "vkCmdClearAttachments"))
4217 {
4218 return (void*)entry_vkCmdClearAttachments;
4219 }
4220 if (!strcmp(name, "vkCmdResolveImage"))
4221 {
4222 return (void*)entry_vkCmdResolveImage;
4223 }
4224 if (!strcmp(name, "vkCmdSetEvent"))
4225 {
4226 return (void*)entry_vkCmdSetEvent;
4227 }
4228 if (!strcmp(name, "vkCmdResetEvent"))
4229 {
4230 return (void*)entry_vkCmdResetEvent;
4231 }
4232 if (!strcmp(name, "vkCmdWaitEvents"))
4233 {
4234 return (void*)entry_vkCmdWaitEvents;
4235 }
4236 if (!strcmp(name, "vkCmdPipelineBarrier"))
4237 {
4238 return (void*)entry_vkCmdPipelineBarrier;
4239 }
4240 if (!strcmp(name, "vkCmdBeginQuery"))
4241 {
4242 return (void*)entry_vkCmdBeginQuery;
4243 }
4244 if (!strcmp(name, "vkCmdEndQuery"))
4245 {
4246 return (void*)entry_vkCmdEndQuery;
4247 }
4248 if (!strcmp(name, "vkCmdResetQueryPool"))
4249 {
4250 return (void*)entry_vkCmdResetQueryPool;
4251 }
4252 if (!strcmp(name, "vkCmdWriteTimestamp"))
4253 {
4254 return (void*)entry_vkCmdWriteTimestamp;
4255 }
4256 if (!strcmp(name, "vkCmdCopyQueryPoolResults"))
4257 {
4258 return (void*)entry_vkCmdCopyQueryPoolResults;
4259 }
4260 if (!strcmp(name, "vkCmdPushConstants"))
4261 {
4262 return (void*)entry_vkCmdPushConstants;
4263 }
4264 if (!strcmp(name, "vkCmdBeginRenderPass"))
4265 {
4266 return (void*)entry_vkCmdBeginRenderPass;
4267 }
4268 if (!strcmp(name, "vkCmdNextSubpass"))
4269 {
4270 return (void*)entry_vkCmdNextSubpass;
4271 }
4272 if (!strcmp(name, "vkCmdEndRenderPass"))
4273 {
4274 return (void*)entry_vkCmdEndRenderPass;
4275 }
4276 if (!strcmp(name, "vkCmdExecuteCommands"))
4277 {
4278 return (void*)entry_vkCmdExecuteCommands;
4279 }
4280#endif
4281#ifdef VK_VERSION_1_1
4282 if (!strcmp(name, "vkEnumerateInstanceVersion"))
4283 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004284 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004285 }
4286 if (!strcmp(name, "vkBindBufferMemory2"))
4287 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004288 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004289 }
4290 if (!strcmp(name, "vkBindImageMemory2"))
4291 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004292 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004293 }
4294 if (!strcmp(name, "vkGetDeviceGroupPeerMemoryFeatures"))
4295 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004296 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004297 }
4298 if (!strcmp(name, "vkCmdSetDeviceMask"))
4299 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004300 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004301 }
4302 if (!strcmp(name, "vkCmdDispatchBase"))
4303 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004304 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004305 }
4306 if (!strcmp(name, "vkEnumeratePhysicalDeviceGroups"))
4307 {
Lingfeng Yang113689e2018-11-11 16:48:50 -08004308 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004309 }
4310 if (!strcmp(name, "vkGetImageMemoryRequirements2"))
4311 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004312 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004313 }
4314 if (!strcmp(name, "vkGetBufferMemoryRequirements2"))
4315 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004316 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004317 }
4318 if (!strcmp(name, "vkGetImageSparseMemoryRequirements2"))
4319 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004320 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004321 }
4322 if (!strcmp(name, "vkGetPhysicalDeviceFeatures2"))
4323 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004324 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004325 }
4326 if (!strcmp(name, "vkGetPhysicalDeviceProperties2"))
4327 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004328 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004329 }
4330 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties2"))
4331 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004332 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004333 }
4334 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties2"))
4335 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004336 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004337 }
4338 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties2"))
4339 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004340 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004341 }
4342 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties2"))
4343 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004344 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004345 }
4346 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties2"))
4347 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004348 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004349 }
4350 if (!strcmp(name, "vkTrimCommandPool"))
4351 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004352 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004353 }
4354 if (!strcmp(name, "vkGetDeviceQueue2"))
4355 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004356 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004357 }
4358 if (!strcmp(name, "vkCreateSamplerYcbcrConversion"))
4359 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004360 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004361 }
4362 if (!strcmp(name, "vkDestroySamplerYcbcrConversion"))
4363 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004364 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004365 }
4366 if (!strcmp(name, "vkCreateDescriptorUpdateTemplate"))
4367 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004368 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004369 }
4370 if (!strcmp(name, "vkDestroyDescriptorUpdateTemplate"))
4371 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004372 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004373 }
4374 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplate"))
4375 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004376 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004377 }
4378 if (!strcmp(name, "vkGetPhysicalDeviceExternalBufferProperties"))
4379 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004380 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004381 }
4382 if (!strcmp(name, "vkGetPhysicalDeviceExternalFenceProperties"))
4383 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004384 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004385 }
4386 if (!strcmp(name, "vkGetPhysicalDeviceExternalSemaphoreProperties"))
4387 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004388 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004389 }
4390 if (!strcmp(name, "vkGetDescriptorSetLayoutSupport"))
4391 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004392 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004393 }
4394#endif
4395#ifdef VK_KHR_surface
4396 if (!strcmp(name, "vkDestroySurfaceKHR"))
4397 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004398 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004399 }
4400 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceSupportKHR"))
4401 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004402 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004403 }
4404 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR"))
4405 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004406 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004407 }
4408 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceFormatsKHR"))
4409 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004410 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004411 }
4412 if (!strcmp(name, "vkGetPhysicalDeviceSurfacePresentModesKHR"))
4413 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004414 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004415 }
4416#endif
4417#ifdef VK_KHR_swapchain
4418 if (!strcmp(name, "vkCreateSwapchainKHR"))
4419 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004420 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004421 }
4422 if (!strcmp(name, "vkDestroySwapchainKHR"))
4423 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004424 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004425 }
4426 if (!strcmp(name, "vkGetSwapchainImagesKHR"))
4427 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004428 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004429 }
4430 if (!strcmp(name, "vkAcquireNextImageKHR"))
4431 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004432 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004433 }
4434 if (!strcmp(name, "vkQueuePresentKHR"))
4435 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004436 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004437 }
4438 if (!strcmp(name, "vkGetDeviceGroupPresentCapabilitiesKHR"))
4439 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004440 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004441 }
4442 if (!strcmp(name, "vkGetDeviceGroupSurfacePresentModesKHR"))
4443 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004444 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004445 }
4446 if (!strcmp(name, "vkGetPhysicalDevicePresentRectanglesKHR"))
4447 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004448 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004449 }
4450 if (!strcmp(name, "vkAcquireNextImage2KHR"))
4451 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004452 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004453 }
4454#endif
4455#ifdef VK_KHR_display
4456 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPropertiesKHR"))
4457 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004458 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004459 }
4460 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR"))
4461 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004462 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004463 }
4464 if (!strcmp(name, "vkGetDisplayPlaneSupportedDisplaysKHR"))
4465 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004466 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004467 }
4468 if (!strcmp(name, "vkGetDisplayModePropertiesKHR"))
4469 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004470 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004471 }
4472 if (!strcmp(name, "vkCreateDisplayModeKHR"))
4473 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004474 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004475 }
4476 if (!strcmp(name, "vkGetDisplayPlaneCapabilitiesKHR"))
4477 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004478 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004479 }
4480 if (!strcmp(name, "vkCreateDisplayPlaneSurfaceKHR"))
4481 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004482 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004483 }
4484#endif
4485#ifdef VK_KHR_display_swapchain
4486 if (!strcmp(name, "vkCreateSharedSwapchainsKHR"))
4487 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004488 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004489 }
4490#endif
4491#ifdef VK_KHR_xlib_surface
4492 if (!strcmp(name, "vkCreateXlibSurfaceKHR"))
4493 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004494 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004495 }
4496 if (!strcmp(name, "vkGetPhysicalDeviceXlibPresentationSupportKHR"))
4497 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004498 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004499 }
4500#endif
4501#ifdef VK_KHR_xcb_surface
4502 if (!strcmp(name, "vkCreateXcbSurfaceKHR"))
4503 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004504 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004505 }
4506 if (!strcmp(name, "vkGetPhysicalDeviceXcbPresentationSupportKHR"))
4507 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004508 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004509 }
4510#endif
4511#ifdef VK_KHR_wayland_surface
4512 if (!strcmp(name, "vkCreateWaylandSurfaceKHR"))
4513 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004514 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004515 }
4516 if (!strcmp(name, "vkGetPhysicalDeviceWaylandPresentationSupportKHR"))
4517 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004518 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004519 }
4520#endif
4521#ifdef VK_KHR_mir_surface
4522 if (!strcmp(name, "vkCreateMirSurfaceKHR"))
4523 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004524 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004525 }
4526 if (!strcmp(name, "vkGetPhysicalDeviceMirPresentationSupportKHR"))
4527 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004528 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004529 }
4530#endif
4531#ifdef VK_KHR_android_surface
4532 if (!strcmp(name, "vkCreateAndroidSurfaceKHR"))
4533 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004534 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004535 }
4536#endif
4537#ifdef VK_KHR_win32_surface
4538 if (!strcmp(name, "vkCreateWin32SurfaceKHR"))
4539 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004540 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004541 }
4542 if (!strcmp(name, "vkGetPhysicalDeviceWin32PresentationSupportKHR"))
4543 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004544 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004545 }
4546#endif
4547#ifdef VK_KHR_get_physical_device_properties2
4548 if (!strcmp(name, "vkGetPhysicalDeviceFeatures2KHR"))
4549 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004550 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004551 }
4552 if (!strcmp(name, "vkGetPhysicalDeviceProperties2KHR"))
4553 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004554 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004555 }
4556 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties2KHR"))
4557 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004558 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004559 }
4560 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties2KHR"))
4561 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004562 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004563 }
4564 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties2KHR"))
4565 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004566 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004567 }
4568 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties2KHR"))
4569 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004570 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004571 }
4572 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR"))
4573 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004574 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004575 }
4576#endif
4577#ifdef VK_KHR_device_group
4578 if (!strcmp(name, "vkGetDeviceGroupPeerMemoryFeaturesKHR"))
4579 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004580 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004581 }
4582 if (!strcmp(name, "vkCmdSetDeviceMaskKHR"))
4583 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004584 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004585 }
4586 if (!strcmp(name, "vkCmdDispatchBaseKHR"))
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_maintenance1
4592 if (!strcmp(name, "vkTrimCommandPoolKHR"))
4593 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004594 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004595 }
4596#endif
4597#ifdef VK_KHR_device_group_creation
4598 if (!strcmp(name, "vkEnumeratePhysicalDeviceGroupsKHR"))
4599 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004600 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004601 }
4602#endif
4603#ifdef VK_KHR_external_memory_capabilities
4604 if (!strcmp(name, "vkGetPhysicalDeviceExternalBufferPropertiesKHR"))
4605 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004606 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004607 }
4608#endif
4609#ifdef VK_KHR_external_memory_win32
4610 if (!strcmp(name, "vkGetMemoryWin32HandleKHR"))
4611 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004612 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004613 }
4614 if (!strcmp(name, "vkGetMemoryWin32HandlePropertiesKHR"))
4615 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004616 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004617 }
4618#endif
4619#ifdef VK_KHR_external_memory_fd
4620 if (!strcmp(name, "vkGetMemoryFdKHR"))
4621 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004622 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004623 }
4624 if (!strcmp(name, "vkGetMemoryFdPropertiesKHR"))
4625 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004626 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004627 }
4628#endif
4629#ifdef VK_KHR_external_semaphore_capabilities
4630 if (!strcmp(name, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR"))
4631 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004632 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004633 }
4634#endif
4635#ifdef VK_KHR_external_semaphore_win32
4636 if (!strcmp(name, "vkImportSemaphoreWin32HandleKHR"))
4637 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004638 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004639 }
4640 if (!strcmp(name, "vkGetSemaphoreWin32HandleKHR"))
4641 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004642 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004643 }
4644#endif
4645#ifdef VK_KHR_external_semaphore_fd
4646 if (!strcmp(name, "vkImportSemaphoreFdKHR"))
4647 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004648 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004649 }
4650 if (!strcmp(name, "vkGetSemaphoreFdKHR"))
4651 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004652 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004653 }
4654#endif
4655#ifdef VK_KHR_push_descriptor
4656 if (!strcmp(name, "vkCmdPushDescriptorSetKHR"))
4657 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004658 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004659 }
4660 if (!strcmp(name, "vkCmdPushDescriptorSetWithTemplateKHR"))
4661 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004662 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004663 }
4664#endif
4665#ifdef VK_KHR_descriptor_update_template
4666 if (!strcmp(name, "vkCreateDescriptorUpdateTemplateKHR"))
4667 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004668 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004669 }
4670 if (!strcmp(name, "vkDestroyDescriptorUpdateTemplateKHR"))
4671 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004672 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004673 }
4674 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplateKHR"))
4675 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004676 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004677 }
4678#endif
4679#ifdef VK_KHR_create_renderpass2
4680 if (!strcmp(name, "vkCreateRenderPass2KHR"))
4681 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004682 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004683 }
4684 if (!strcmp(name, "vkCmdBeginRenderPass2KHR"))
4685 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004686 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004687 }
4688 if (!strcmp(name, "vkCmdNextSubpass2KHR"))
4689 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004690 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004691 }
4692 if (!strcmp(name, "vkCmdEndRenderPass2KHR"))
4693 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004694 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004695 }
4696#endif
4697#ifdef VK_KHR_shared_presentable_image
4698 if (!strcmp(name, "vkGetSwapchainStatusKHR"))
4699 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004700 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004701 }
4702#endif
4703#ifdef VK_KHR_external_fence_capabilities
4704 if (!strcmp(name, "vkGetPhysicalDeviceExternalFencePropertiesKHR"))
4705 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004706 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004707 }
4708#endif
4709#ifdef VK_KHR_external_fence_win32
4710 if (!strcmp(name, "vkImportFenceWin32HandleKHR"))
4711 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004712 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004713 }
4714 if (!strcmp(name, "vkGetFenceWin32HandleKHR"))
4715 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004716 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004717 }
4718#endif
4719#ifdef VK_KHR_external_fence_fd
4720 if (!strcmp(name, "vkImportFenceFdKHR"))
4721 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004722 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004723 }
4724 if (!strcmp(name, "vkGetFenceFdKHR"))
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_surface_capabilities2
4730 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2KHR"))
4731 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004732 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004733 }
4734 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceFormats2KHR"))
4735 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004736 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004737 }
4738#endif
4739#ifdef VK_KHR_get_display_properties2
4740 if (!strcmp(name, "vkGetPhysicalDeviceDisplayProperties2KHR"))
4741 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004742 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004743 }
4744 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR"))
4745 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004746 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004747 }
4748 if (!strcmp(name, "vkGetDisplayModeProperties2KHR"))
4749 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004750 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004751 }
4752 if (!strcmp(name, "vkGetDisplayPlaneCapabilities2KHR"))
4753 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004754 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004755 }
4756#endif
4757#ifdef VK_KHR_get_memory_requirements2
4758 if (!strcmp(name, "vkGetImageMemoryRequirements2KHR"))
4759 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004760 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004761 }
4762 if (!strcmp(name, "vkGetBufferMemoryRequirements2KHR"))
4763 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004764 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004765 }
4766 if (!strcmp(name, "vkGetImageSparseMemoryRequirements2KHR"))
4767 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004768 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004769 }
4770#endif
4771#ifdef VK_KHR_sampler_ycbcr_conversion
4772 if (!strcmp(name, "vkCreateSamplerYcbcrConversionKHR"))
4773 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004774 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004775 }
4776 if (!strcmp(name, "vkDestroySamplerYcbcrConversionKHR"))
4777 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004778 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004779 }
4780#endif
4781#ifdef VK_KHR_bind_memory2
4782 if (!strcmp(name, "vkBindBufferMemory2KHR"))
4783 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004784 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004785 }
4786 if (!strcmp(name, "vkBindImageMemory2KHR"))
4787 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004788 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004789 }
4790#endif
4791#ifdef VK_KHR_maintenance3
4792 if (!strcmp(name, "vkGetDescriptorSetLayoutSupportKHR"))
4793 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004794 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004795 }
4796#endif
4797#ifdef VK_KHR_draw_indirect_count
4798 if (!strcmp(name, "vkCmdDrawIndirectCountKHR"))
4799 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004800 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004801 }
4802 if (!strcmp(name, "vkCmdDrawIndexedIndirectCountKHR"))
4803 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004804 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004805 }
4806#endif
Lingfeng Yang808a6312018-11-13 21:06:15 -08004807#ifdef VK_ANDROID_native_buffer
4808 if (!strcmp(name, "vkGetSwapchainGrallocUsageANDROID"))
4809 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004810 return nullptr;
Lingfeng Yang808a6312018-11-13 21:06:15 -08004811 }
4812 if (!strcmp(name, "vkAcquireImageANDROID"))
4813 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004814 return nullptr;
Lingfeng Yang808a6312018-11-13 21:06:15 -08004815 }
4816 if (!strcmp(name, "vkQueueSignalReleaseImageANDROID"))
4817 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004818 return nullptr;
Lingfeng Yang808a6312018-11-13 21:06:15 -08004819 }
4820#endif
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004821#ifdef VK_EXT_debug_report
4822 if (!strcmp(name, "vkCreateDebugReportCallbackEXT"))
4823 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004824 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004825 }
4826 if (!strcmp(name, "vkDestroyDebugReportCallbackEXT"))
4827 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004828 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004829 }
4830 if (!strcmp(name, "vkDebugReportMessageEXT"))
4831 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004832 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004833 }
4834#endif
4835#ifdef VK_EXT_debug_marker
4836 if (!strcmp(name, "vkDebugMarkerSetObjectTagEXT"))
4837 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004838 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004839 }
4840 if (!strcmp(name, "vkDebugMarkerSetObjectNameEXT"))
4841 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004842 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004843 }
4844 if (!strcmp(name, "vkCmdDebugMarkerBeginEXT"))
4845 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004846 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004847 }
4848 if (!strcmp(name, "vkCmdDebugMarkerEndEXT"))
4849 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004850 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004851 }
4852 if (!strcmp(name, "vkCmdDebugMarkerInsertEXT"))
4853 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004854 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004855 }
4856#endif
4857#ifdef VK_AMD_draw_indirect_count
4858 if (!strcmp(name, "vkCmdDrawIndirectCountAMD"))
4859 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004860 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004861 }
4862 if (!strcmp(name, "vkCmdDrawIndexedIndirectCountAMD"))
4863 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004864 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004865 }
4866#endif
4867#ifdef VK_AMD_shader_info
4868 if (!strcmp(name, "vkGetShaderInfoAMD"))
4869 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004870 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004871 }
4872#endif
4873#ifdef VK_NV_external_memory_capabilities
4874 if (!strcmp(name, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV"))
4875 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004876 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004877 }
4878#endif
4879#ifdef VK_NV_external_memory_win32
4880 if (!strcmp(name, "vkGetMemoryWin32HandleNV"))
4881 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004882 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004883 }
4884#endif
4885#ifdef VK_NN_vi_surface
4886 if (!strcmp(name, "vkCreateViSurfaceNN"))
4887 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004888 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004889 }
4890#endif
4891#ifdef VK_EXT_conditional_rendering
4892 if (!strcmp(name, "vkCmdBeginConditionalRenderingEXT"))
4893 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004894 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004895 }
4896 if (!strcmp(name, "vkCmdEndConditionalRenderingEXT"))
4897 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004898 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004899 }
4900#endif
4901#ifdef VK_NVX_device_generated_commands
4902 if (!strcmp(name, "vkCmdProcessCommandsNVX"))
4903 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004904 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004905 }
4906 if (!strcmp(name, "vkCmdReserveSpaceForCommandsNVX"))
4907 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004908 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004909 }
4910 if (!strcmp(name, "vkCreateIndirectCommandsLayoutNVX"))
4911 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004912 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004913 }
4914 if (!strcmp(name, "vkDestroyIndirectCommandsLayoutNVX"))
4915 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004916 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004917 }
4918 if (!strcmp(name, "vkCreateObjectTableNVX"))
4919 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004920 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004921 }
4922 if (!strcmp(name, "vkDestroyObjectTableNVX"))
4923 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004924 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004925 }
4926 if (!strcmp(name, "vkRegisterObjectsNVX"))
4927 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004928 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004929 }
4930 if (!strcmp(name, "vkUnregisterObjectsNVX"))
4931 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004932 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004933 }
4934 if (!strcmp(name, "vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX"))
4935 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004936 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004937 }
4938#endif
4939#ifdef VK_NV_clip_space_w_scaling
4940 if (!strcmp(name, "vkCmdSetViewportWScalingNV"))
4941 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004942 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004943 }
4944#endif
4945#ifdef VK_EXT_direct_mode_display
4946 if (!strcmp(name, "vkReleaseDisplayEXT"))
4947 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004948 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004949 }
4950#endif
4951#ifdef VK_EXT_acquire_xlib_display
4952 if (!strcmp(name, "vkAcquireXlibDisplayEXT"))
4953 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004954 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004955 }
4956 if (!strcmp(name, "vkGetRandROutputDisplayEXT"))
4957 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004958 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004959 }
4960#endif
4961#ifdef VK_EXT_display_surface_counter
4962 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2EXT"))
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_display_control
4968 if (!strcmp(name, "vkDisplayPowerControlEXT"))
4969 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004970 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004971 }
4972 if (!strcmp(name, "vkRegisterDeviceEventEXT"))
4973 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004974 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004975 }
4976 if (!strcmp(name, "vkRegisterDisplayEventEXT"))
4977 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004978 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004979 }
4980 if (!strcmp(name, "vkGetSwapchainCounterEXT"))
4981 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004982 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004983 }
4984#endif
4985#ifdef VK_GOOGLE_display_timing
4986 if (!strcmp(name, "vkGetRefreshCycleDurationGOOGLE"))
4987 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004988 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004989 }
4990 if (!strcmp(name, "vkGetPastPresentationTimingGOOGLE"))
4991 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004992 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004993 }
4994#endif
4995#ifdef VK_EXT_discard_rectangles
4996 if (!strcmp(name, "vkCmdSetDiscardRectangleEXT"))
4997 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004998 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004999 }
5000#endif
5001#ifdef VK_EXT_hdr_metadata
5002 if (!strcmp(name, "vkSetHdrMetadataEXT"))
5003 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005004 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005005 }
5006#endif
5007#ifdef VK_MVK_ios_surface
5008 if (!strcmp(name, "vkCreateIOSSurfaceMVK"))
5009 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005010 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005011 }
5012#endif
5013#ifdef VK_MVK_macos_surface
5014 if (!strcmp(name, "vkCreateMacOSSurfaceMVK"))
5015 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005016 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005017 }
5018#endif
5019#ifdef VK_EXT_debug_utils
5020 if (!strcmp(name, "vkSetDebugUtilsObjectNameEXT"))
5021 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005022 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005023 }
5024 if (!strcmp(name, "vkSetDebugUtilsObjectTagEXT"))
5025 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005026 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005027 }
5028 if (!strcmp(name, "vkQueueBeginDebugUtilsLabelEXT"))
5029 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005030 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005031 }
5032 if (!strcmp(name, "vkQueueEndDebugUtilsLabelEXT"))
5033 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005034 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005035 }
5036 if (!strcmp(name, "vkQueueInsertDebugUtilsLabelEXT"))
5037 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005038 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005039 }
5040 if (!strcmp(name, "vkCmdBeginDebugUtilsLabelEXT"))
5041 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005042 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005043 }
5044 if (!strcmp(name, "vkCmdEndDebugUtilsLabelEXT"))
5045 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005046 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005047 }
5048 if (!strcmp(name, "vkCmdInsertDebugUtilsLabelEXT"))
5049 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005050 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005051 }
5052 if (!strcmp(name, "vkCreateDebugUtilsMessengerEXT"))
5053 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005054 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005055 }
5056 if (!strcmp(name, "vkDestroyDebugUtilsMessengerEXT"))
5057 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005058 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005059 }
5060 if (!strcmp(name, "vkSubmitDebugUtilsMessageEXT"))
5061 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005062 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005063 }
5064#endif
5065#ifdef VK_ANDROID_external_memory_android_hardware_buffer
5066 if (!strcmp(name, "vkGetAndroidHardwareBufferPropertiesANDROID"))
5067 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005068 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005069 }
5070 if (!strcmp(name, "vkGetMemoryAndroidHardwareBufferANDROID"))
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_sample_locations
5076 if (!strcmp(name, "vkCmdSetSampleLocationsEXT"))
5077 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005078 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005079 }
5080 if (!strcmp(name, "vkGetPhysicalDeviceMultisamplePropertiesEXT"))
5081 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005082 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005083 }
5084#endif
5085#ifdef VK_EXT_validation_cache
5086 if (!strcmp(name, "vkCreateValidationCacheEXT"))
5087 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005088 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005089 }
5090 if (!strcmp(name, "vkDestroyValidationCacheEXT"))
5091 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005092 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005093 }
5094 if (!strcmp(name, "vkMergeValidationCachesEXT"))
5095 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005096 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005097 }
5098 if (!strcmp(name, "vkGetValidationCacheDataEXT"))
5099 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005100 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005101 }
5102#endif
5103#ifdef VK_EXT_external_memory_host
5104 if (!strcmp(name, "vkGetMemoryHostPointerPropertiesEXT"))
5105 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005106 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005107 }
5108#endif
5109#ifdef VK_AMD_buffer_marker
5110 if (!strcmp(name, "vkCmdWriteBufferMarkerAMD"))
5111 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005112 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005113 }
5114#endif
5115#ifdef VK_NV_device_diagnostic_checkpoints
5116 if (!strcmp(name, "vkCmdSetCheckpointNV"))
5117 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005118 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005119 }
5120 if (!strcmp(name, "vkGetQueueCheckpointDataNV"))
5121 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005122 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005123 }
5124#endif
Lingfeng Yang5c63afd2018-12-22 01:21:14 -08005125#ifdef VK_GOOGLE_address_space
5126 if (!strcmp(name, "vkMapMemoryIntoAddressSpaceGOOGLE"))
5127 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005128 return nullptr;
5129 }
5130#endif
Lingfeng Yangae7e1b32019-02-19 14:07:39 -08005131#ifdef VK_GOOGLE_color_buffer
5132 if (!strcmp(name, "vkRegisterImageColorBufferGOOGLE"))
5133 {
5134 return nullptr;
5135 }
5136 if (!strcmp(name, "vkRegisterBufferColorBufferGOOGLE"))
5137 {
5138 return nullptr;
5139 }
5140#endif
Lingfeng Yang05d5ea32019-03-23 00:12:39 -07005141#ifdef VK_GOOGLE_sized_descriptor_update_template
5142 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplateSizedGOOGLE"))
5143 {
5144 return nullptr;
5145 }
5146#endif
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005147 return nullptr;
5148}
5149void* goldfish_vulkan_get_instance_proc_address(VkInstance instance, const char* name){
5150 auto resources = ResourceTracker::get();
5151 bool has1_1OrHigher = resources->getApiVersionFromInstance(instance) >= VK_API_VERSION_1_1;
5152#ifdef VK_VERSION_1_0
5153 if (!strcmp(name, "vkCreateInstance"))
5154 {
5155 return (void*)entry_vkCreateInstance;
5156 }
5157 if (!strcmp(name, "vkDestroyInstance"))
5158 {
5159 return (void*)entry_vkDestroyInstance;
5160 }
5161 if (!strcmp(name, "vkEnumeratePhysicalDevices"))
5162 {
5163 return (void*)entry_vkEnumeratePhysicalDevices;
5164 }
5165 if (!strcmp(name, "vkGetPhysicalDeviceFeatures"))
5166 {
5167 return (void*)entry_vkGetPhysicalDeviceFeatures;
5168 }
5169 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties"))
5170 {
5171 return (void*)entry_vkGetPhysicalDeviceFormatProperties;
5172 }
5173 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties"))
5174 {
5175 return (void*)entry_vkGetPhysicalDeviceImageFormatProperties;
5176 }
5177 if (!strcmp(name, "vkGetPhysicalDeviceProperties"))
5178 {
5179 return (void*)entry_vkGetPhysicalDeviceProperties;
5180 }
5181 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties"))
5182 {
5183 return (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties;
5184 }
5185 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties"))
5186 {
5187 return (void*)entry_vkGetPhysicalDeviceMemoryProperties;
5188 }
5189 if (!strcmp(name, "vkGetInstanceProcAddr"))
5190 {
5191 return (void*)entry_vkGetInstanceProcAddr;
5192 }
5193 if (!strcmp(name, "vkGetDeviceProcAddr"))
5194 {
5195 return (void*)entry_vkGetDeviceProcAddr;
5196 }
5197 if (!strcmp(name, "vkCreateDevice"))
5198 {
5199 return (void*)entry_vkCreateDevice;
5200 }
5201 if (!strcmp(name, "vkDestroyDevice"))
5202 {
5203 return (void*)entry_vkDestroyDevice;
5204 }
5205 if (!strcmp(name, "vkEnumerateInstanceExtensionProperties"))
5206 {
5207 return (void*)entry_vkEnumerateInstanceExtensionProperties;
5208 }
5209 if (!strcmp(name, "vkEnumerateDeviceExtensionProperties"))
5210 {
5211 return (void*)entry_vkEnumerateDeviceExtensionProperties;
5212 }
5213 if (!strcmp(name, "vkEnumerateInstanceLayerProperties"))
5214 {
5215 return (void*)entry_vkEnumerateInstanceLayerProperties;
5216 }
5217 if (!strcmp(name, "vkEnumerateDeviceLayerProperties"))
5218 {
5219 return (void*)entry_vkEnumerateDeviceLayerProperties;
5220 }
5221 if (!strcmp(name, "vkGetDeviceQueue"))
5222 {
5223 return (void*)entry_vkGetDeviceQueue;
5224 }
5225 if (!strcmp(name, "vkQueueSubmit"))
5226 {
5227 return (void*)entry_vkQueueSubmit;
5228 }
5229 if (!strcmp(name, "vkQueueWaitIdle"))
5230 {
5231 return (void*)entry_vkQueueWaitIdle;
5232 }
5233 if (!strcmp(name, "vkDeviceWaitIdle"))
5234 {
5235 return (void*)entry_vkDeviceWaitIdle;
5236 }
5237 if (!strcmp(name, "vkAllocateMemory"))
5238 {
5239 return (void*)entry_vkAllocateMemory;
5240 }
5241 if (!strcmp(name, "vkFreeMemory"))
5242 {
5243 return (void*)entry_vkFreeMemory;
5244 }
5245 if (!strcmp(name, "vkMapMemory"))
5246 {
5247 return (void*)entry_vkMapMemory;
5248 }
5249 if (!strcmp(name, "vkUnmapMemory"))
5250 {
5251 return (void*)entry_vkUnmapMemory;
5252 }
5253 if (!strcmp(name, "vkFlushMappedMemoryRanges"))
5254 {
5255 return (void*)entry_vkFlushMappedMemoryRanges;
5256 }
5257 if (!strcmp(name, "vkInvalidateMappedMemoryRanges"))
5258 {
5259 return (void*)entry_vkInvalidateMappedMemoryRanges;
5260 }
5261 if (!strcmp(name, "vkGetDeviceMemoryCommitment"))
5262 {
5263 return (void*)entry_vkGetDeviceMemoryCommitment;
5264 }
5265 if (!strcmp(name, "vkBindBufferMemory"))
5266 {
5267 return (void*)entry_vkBindBufferMemory;
5268 }
5269 if (!strcmp(name, "vkBindImageMemory"))
5270 {
5271 return (void*)entry_vkBindImageMemory;
5272 }
5273 if (!strcmp(name, "vkGetBufferMemoryRequirements"))
5274 {
5275 return (void*)entry_vkGetBufferMemoryRequirements;
5276 }
5277 if (!strcmp(name, "vkGetImageMemoryRequirements"))
5278 {
5279 return (void*)entry_vkGetImageMemoryRequirements;
5280 }
5281 if (!strcmp(name, "vkGetImageSparseMemoryRequirements"))
5282 {
5283 return (void*)entry_vkGetImageSparseMemoryRequirements;
5284 }
5285 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties"))
5286 {
5287 return (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties;
5288 }
5289 if (!strcmp(name, "vkQueueBindSparse"))
5290 {
5291 return (void*)entry_vkQueueBindSparse;
5292 }
5293 if (!strcmp(name, "vkCreateFence"))
5294 {
5295 return (void*)entry_vkCreateFence;
5296 }
5297 if (!strcmp(name, "vkDestroyFence"))
5298 {
5299 return (void*)entry_vkDestroyFence;
5300 }
5301 if (!strcmp(name, "vkResetFences"))
5302 {
5303 return (void*)entry_vkResetFences;
5304 }
5305 if (!strcmp(name, "vkGetFenceStatus"))
5306 {
5307 return (void*)entry_vkGetFenceStatus;
5308 }
5309 if (!strcmp(name, "vkWaitForFences"))
5310 {
5311 return (void*)entry_vkWaitForFences;
5312 }
5313 if (!strcmp(name, "vkCreateSemaphore"))
5314 {
5315 return (void*)entry_vkCreateSemaphore;
5316 }
5317 if (!strcmp(name, "vkDestroySemaphore"))
5318 {
5319 return (void*)entry_vkDestroySemaphore;
5320 }
5321 if (!strcmp(name, "vkCreateEvent"))
5322 {
5323 return (void*)entry_vkCreateEvent;
5324 }
5325 if (!strcmp(name, "vkDestroyEvent"))
5326 {
5327 return (void*)entry_vkDestroyEvent;
5328 }
5329 if (!strcmp(name, "vkGetEventStatus"))
5330 {
5331 return (void*)entry_vkGetEventStatus;
5332 }
5333 if (!strcmp(name, "vkSetEvent"))
5334 {
5335 return (void*)entry_vkSetEvent;
5336 }
5337 if (!strcmp(name, "vkResetEvent"))
5338 {
5339 return (void*)entry_vkResetEvent;
5340 }
5341 if (!strcmp(name, "vkCreateQueryPool"))
5342 {
5343 return (void*)entry_vkCreateQueryPool;
5344 }
5345 if (!strcmp(name, "vkDestroyQueryPool"))
5346 {
5347 return (void*)entry_vkDestroyQueryPool;
5348 }
5349 if (!strcmp(name, "vkGetQueryPoolResults"))
5350 {
5351 return (void*)entry_vkGetQueryPoolResults;
5352 }
5353 if (!strcmp(name, "vkCreateBuffer"))
5354 {
5355 return (void*)entry_vkCreateBuffer;
5356 }
5357 if (!strcmp(name, "vkDestroyBuffer"))
5358 {
5359 return (void*)entry_vkDestroyBuffer;
5360 }
5361 if (!strcmp(name, "vkCreateBufferView"))
5362 {
5363 return (void*)entry_vkCreateBufferView;
5364 }
5365 if (!strcmp(name, "vkDestroyBufferView"))
5366 {
5367 return (void*)entry_vkDestroyBufferView;
5368 }
5369 if (!strcmp(name, "vkCreateImage"))
5370 {
5371 return (void*)entry_vkCreateImage;
5372 }
5373 if (!strcmp(name, "vkDestroyImage"))
5374 {
5375 return (void*)entry_vkDestroyImage;
5376 }
5377 if (!strcmp(name, "vkGetImageSubresourceLayout"))
5378 {
5379 return (void*)entry_vkGetImageSubresourceLayout;
5380 }
5381 if (!strcmp(name, "vkCreateImageView"))
5382 {
5383 return (void*)entry_vkCreateImageView;
5384 }
5385 if (!strcmp(name, "vkDestroyImageView"))
5386 {
5387 return (void*)entry_vkDestroyImageView;
5388 }
5389 if (!strcmp(name, "vkCreateShaderModule"))
5390 {
5391 return (void*)entry_vkCreateShaderModule;
5392 }
5393 if (!strcmp(name, "vkDestroyShaderModule"))
5394 {
5395 return (void*)entry_vkDestroyShaderModule;
5396 }
5397 if (!strcmp(name, "vkCreatePipelineCache"))
5398 {
5399 return (void*)entry_vkCreatePipelineCache;
5400 }
5401 if (!strcmp(name, "vkDestroyPipelineCache"))
5402 {
5403 return (void*)entry_vkDestroyPipelineCache;
5404 }
5405 if (!strcmp(name, "vkGetPipelineCacheData"))
5406 {
5407 return (void*)entry_vkGetPipelineCacheData;
5408 }
5409 if (!strcmp(name, "vkMergePipelineCaches"))
5410 {
5411 return (void*)entry_vkMergePipelineCaches;
5412 }
5413 if (!strcmp(name, "vkCreateGraphicsPipelines"))
5414 {
5415 return (void*)entry_vkCreateGraphicsPipelines;
5416 }
5417 if (!strcmp(name, "vkCreateComputePipelines"))
5418 {
5419 return (void*)entry_vkCreateComputePipelines;
5420 }
5421 if (!strcmp(name, "vkDestroyPipeline"))
5422 {
5423 return (void*)entry_vkDestroyPipeline;
5424 }
5425 if (!strcmp(name, "vkCreatePipelineLayout"))
5426 {
5427 return (void*)entry_vkCreatePipelineLayout;
5428 }
5429 if (!strcmp(name, "vkDestroyPipelineLayout"))
5430 {
5431 return (void*)entry_vkDestroyPipelineLayout;
5432 }
5433 if (!strcmp(name, "vkCreateSampler"))
5434 {
5435 return (void*)entry_vkCreateSampler;
5436 }
5437 if (!strcmp(name, "vkDestroySampler"))
5438 {
5439 return (void*)entry_vkDestroySampler;
5440 }
5441 if (!strcmp(name, "vkCreateDescriptorSetLayout"))
5442 {
5443 return (void*)entry_vkCreateDescriptorSetLayout;
5444 }
5445 if (!strcmp(name, "vkDestroyDescriptorSetLayout"))
5446 {
5447 return (void*)entry_vkDestroyDescriptorSetLayout;
5448 }
5449 if (!strcmp(name, "vkCreateDescriptorPool"))
5450 {
5451 return (void*)entry_vkCreateDescriptorPool;
5452 }
5453 if (!strcmp(name, "vkDestroyDescriptorPool"))
5454 {
5455 return (void*)entry_vkDestroyDescriptorPool;
5456 }
5457 if (!strcmp(name, "vkResetDescriptorPool"))
5458 {
5459 return (void*)entry_vkResetDescriptorPool;
5460 }
5461 if (!strcmp(name, "vkAllocateDescriptorSets"))
5462 {
5463 return (void*)entry_vkAllocateDescriptorSets;
5464 }
5465 if (!strcmp(name, "vkFreeDescriptorSets"))
5466 {
5467 return (void*)entry_vkFreeDescriptorSets;
5468 }
5469 if (!strcmp(name, "vkUpdateDescriptorSets"))
5470 {
5471 return (void*)entry_vkUpdateDescriptorSets;
5472 }
5473 if (!strcmp(name, "vkCreateFramebuffer"))
5474 {
5475 return (void*)entry_vkCreateFramebuffer;
5476 }
5477 if (!strcmp(name, "vkDestroyFramebuffer"))
5478 {
5479 return (void*)entry_vkDestroyFramebuffer;
5480 }
5481 if (!strcmp(name, "vkCreateRenderPass"))
5482 {
5483 return (void*)entry_vkCreateRenderPass;
5484 }
5485 if (!strcmp(name, "vkDestroyRenderPass"))
5486 {
5487 return (void*)entry_vkDestroyRenderPass;
5488 }
5489 if (!strcmp(name, "vkGetRenderAreaGranularity"))
5490 {
5491 return (void*)entry_vkGetRenderAreaGranularity;
5492 }
5493 if (!strcmp(name, "vkCreateCommandPool"))
5494 {
5495 return (void*)entry_vkCreateCommandPool;
5496 }
5497 if (!strcmp(name, "vkDestroyCommandPool"))
5498 {
5499 return (void*)entry_vkDestroyCommandPool;
5500 }
5501 if (!strcmp(name, "vkResetCommandPool"))
5502 {
5503 return (void*)entry_vkResetCommandPool;
5504 }
5505 if (!strcmp(name, "vkAllocateCommandBuffers"))
5506 {
5507 return (void*)entry_vkAllocateCommandBuffers;
5508 }
5509 if (!strcmp(name, "vkFreeCommandBuffers"))
5510 {
5511 return (void*)entry_vkFreeCommandBuffers;
5512 }
5513 if (!strcmp(name, "vkBeginCommandBuffer"))
5514 {
5515 return (void*)entry_vkBeginCommandBuffer;
5516 }
5517 if (!strcmp(name, "vkEndCommandBuffer"))
5518 {
5519 return (void*)entry_vkEndCommandBuffer;
5520 }
5521 if (!strcmp(name, "vkResetCommandBuffer"))
5522 {
5523 return (void*)entry_vkResetCommandBuffer;
5524 }
5525 if (!strcmp(name, "vkCmdBindPipeline"))
5526 {
5527 return (void*)entry_vkCmdBindPipeline;
5528 }
5529 if (!strcmp(name, "vkCmdSetViewport"))
5530 {
5531 return (void*)entry_vkCmdSetViewport;
5532 }
5533 if (!strcmp(name, "vkCmdSetScissor"))
5534 {
5535 return (void*)entry_vkCmdSetScissor;
5536 }
5537 if (!strcmp(name, "vkCmdSetLineWidth"))
5538 {
5539 return (void*)entry_vkCmdSetLineWidth;
5540 }
5541 if (!strcmp(name, "vkCmdSetDepthBias"))
5542 {
5543 return (void*)entry_vkCmdSetDepthBias;
5544 }
5545 if (!strcmp(name, "vkCmdSetBlendConstants"))
5546 {
5547 return (void*)entry_vkCmdSetBlendConstants;
5548 }
5549 if (!strcmp(name, "vkCmdSetDepthBounds"))
5550 {
5551 return (void*)entry_vkCmdSetDepthBounds;
5552 }
5553 if (!strcmp(name, "vkCmdSetStencilCompareMask"))
5554 {
5555 return (void*)entry_vkCmdSetStencilCompareMask;
5556 }
5557 if (!strcmp(name, "vkCmdSetStencilWriteMask"))
5558 {
5559 return (void*)entry_vkCmdSetStencilWriteMask;
5560 }
5561 if (!strcmp(name, "vkCmdSetStencilReference"))
5562 {
5563 return (void*)entry_vkCmdSetStencilReference;
5564 }
5565 if (!strcmp(name, "vkCmdBindDescriptorSets"))
5566 {
5567 return (void*)entry_vkCmdBindDescriptorSets;
5568 }
5569 if (!strcmp(name, "vkCmdBindIndexBuffer"))
5570 {
5571 return (void*)entry_vkCmdBindIndexBuffer;
5572 }
5573 if (!strcmp(name, "vkCmdBindVertexBuffers"))
5574 {
5575 return (void*)entry_vkCmdBindVertexBuffers;
5576 }
5577 if (!strcmp(name, "vkCmdDraw"))
5578 {
5579 return (void*)entry_vkCmdDraw;
5580 }
5581 if (!strcmp(name, "vkCmdDrawIndexed"))
5582 {
5583 return (void*)entry_vkCmdDrawIndexed;
5584 }
5585 if (!strcmp(name, "vkCmdDrawIndirect"))
5586 {
5587 return (void*)entry_vkCmdDrawIndirect;
5588 }
5589 if (!strcmp(name, "vkCmdDrawIndexedIndirect"))
5590 {
5591 return (void*)entry_vkCmdDrawIndexedIndirect;
5592 }
5593 if (!strcmp(name, "vkCmdDispatch"))
5594 {
5595 return (void*)entry_vkCmdDispatch;
5596 }
5597 if (!strcmp(name, "vkCmdDispatchIndirect"))
5598 {
5599 return (void*)entry_vkCmdDispatchIndirect;
5600 }
5601 if (!strcmp(name, "vkCmdCopyBuffer"))
5602 {
5603 return (void*)entry_vkCmdCopyBuffer;
5604 }
5605 if (!strcmp(name, "vkCmdCopyImage"))
5606 {
5607 return (void*)entry_vkCmdCopyImage;
5608 }
5609 if (!strcmp(name, "vkCmdBlitImage"))
5610 {
5611 return (void*)entry_vkCmdBlitImage;
5612 }
5613 if (!strcmp(name, "vkCmdCopyBufferToImage"))
5614 {
5615 return (void*)entry_vkCmdCopyBufferToImage;
5616 }
5617 if (!strcmp(name, "vkCmdCopyImageToBuffer"))
5618 {
5619 return (void*)entry_vkCmdCopyImageToBuffer;
5620 }
5621 if (!strcmp(name, "vkCmdUpdateBuffer"))
5622 {
5623 return (void*)entry_vkCmdUpdateBuffer;
5624 }
5625 if (!strcmp(name, "vkCmdFillBuffer"))
5626 {
5627 return (void*)entry_vkCmdFillBuffer;
5628 }
5629 if (!strcmp(name, "vkCmdClearColorImage"))
5630 {
5631 return (void*)entry_vkCmdClearColorImage;
5632 }
5633 if (!strcmp(name, "vkCmdClearDepthStencilImage"))
5634 {
5635 return (void*)entry_vkCmdClearDepthStencilImage;
5636 }
5637 if (!strcmp(name, "vkCmdClearAttachments"))
5638 {
5639 return (void*)entry_vkCmdClearAttachments;
5640 }
5641 if (!strcmp(name, "vkCmdResolveImage"))
5642 {
5643 return (void*)entry_vkCmdResolveImage;
5644 }
5645 if (!strcmp(name, "vkCmdSetEvent"))
5646 {
5647 return (void*)entry_vkCmdSetEvent;
5648 }
5649 if (!strcmp(name, "vkCmdResetEvent"))
5650 {
5651 return (void*)entry_vkCmdResetEvent;
5652 }
5653 if (!strcmp(name, "vkCmdWaitEvents"))
5654 {
5655 return (void*)entry_vkCmdWaitEvents;
5656 }
5657 if (!strcmp(name, "vkCmdPipelineBarrier"))
5658 {
5659 return (void*)entry_vkCmdPipelineBarrier;
5660 }
5661 if (!strcmp(name, "vkCmdBeginQuery"))
5662 {
5663 return (void*)entry_vkCmdBeginQuery;
5664 }
5665 if (!strcmp(name, "vkCmdEndQuery"))
5666 {
5667 return (void*)entry_vkCmdEndQuery;
5668 }
5669 if (!strcmp(name, "vkCmdResetQueryPool"))
5670 {
5671 return (void*)entry_vkCmdResetQueryPool;
5672 }
5673 if (!strcmp(name, "vkCmdWriteTimestamp"))
5674 {
5675 return (void*)entry_vkCmdWriteTimestamp;
5676 }
5677 if (!strcmp(name, "vkCmdCopyQueryPoolResults"))
5678 {
5679 return (void*)entry_vkCmdCopyQueryPoolResults;
5680 }
5681 if (!strcmp(name, "vkCmdPushConstants"))
5682 {
5683 return (void*)entry_vkCmdPushConstants;
5684 }
5685 if (!strcmp(name, "vkCmdBeginRenderPass"))
5686 {
5687 return (void*)entry_vkCmdBeginRenderPass;
5688 }
5689 if (!strcmp(name, "vkCmdNextSubpass"))
5690 {
5691 return (void*)entry_vkCmdNextSubpass;
5692 }
5693 if (!strcmp(name, "vkCmdEndRenderPass"))
5694 {
5695 return (void*)entry_vkCmdEndRenderPass;
5696 }
5697 if (!strcmp(name, "vkCmdExecuteCommands"))
5698 {
5699 return (void*)entry_vkCmdExecuteCommands;
5700 }
5701#endif
5702#ifdef VK_VERSION_1_1
5703 if (!strcmp(name, "vkEnumerateInstanceVersion"))
5704 {
5705 return has1_1OrHigher ? (void*)entry_vkEnumerateInstanceVersion : nullptr;
5706 }
5707 if (!strcmp(name, "vkBindBufferMemory2"))
5708 {
5709 return has1_1OrHigher ? (void*)entry_vkBindBufferMemory2 : nullptr;
5710 }
5711 if (!strcmp(name, "vkBindImageMemory2"))
5712 {
5713 return has1_1OrHigher ? (void*)entry_vkBindImageMemory2 : nullptr;
5714 }
5715 if (!strcmp(name, "vkGetDeviceGroupPeerMemoryFeatures"))
5716 {
5717 return has1_1OrHigher ? (void*)entry_vkGetDeviceGroupPeerMemoryFeatures : nullptr;
5718 }
5719 if (!strcmp(name, "vkCmdSetDeviceMask"))
5720 {
5721 return has1_1OrHigher ? (void*)entry_vkCmdSetDeviceMask : nullptr;
5722 }
5723 if (!strcmp(name, "vkCmdDispatchBase"))
5724 {
5725 return has1_1OrHigher ? (void*)entry_vkCmdDispatchBase : nullptr;
5726 }
5727 if (!strcmp(name, "vkEnumeratePhysicalDeviceGroups"))
5728 {
5729 return nullptr;
5730 }
5731 if (!strcmp(name, "vkGetImageMemoryRequirements2"))
5732 {
5733 return has1_1OrHigher ? (void*)entry_vkGetImageMemoryRequirements2 : nullptr;
5734 }
5735 if (!strcmp(name, "vkGetBufferMemoryRequirements2"))
5736 {
5737 return has1_1OrHigher ? (void*)entry_vkGetBufferMemoryRequirements2 : nullptr;
5738 }
5739 if (!strcmp(name, "vkGetImageSparseMemoryRequirements2"))
5740 {
5741 return has1_1OrHigher ? (void*)entry_vkGetImageSparseMemoryRequirements2 : nullptr;
5742 }
5743 if (!strcmp(name, "vkGetPhysicalDeviceFeatures2"))
5744 {
5745 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceFeatures2 : nullptr;
5746 }
5747 if (!strcmp(name, "vkGetPhysicalDeviceProperties2"))
5748 {
5749 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceProperties2 : nullptr;
5750 }
5751 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties2"))
5752 {
5753 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceFormatProperties2 : nullptr;
5754 }
5755 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties2"))
5756 {
5757 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceImageFormatProperties2 : nullptr;
5758 }
5759 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties2"))
5760 {
5761 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties2 : nullptr;
5762 }
5763 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties2"))
5764 {
5765 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceMemoryProperties2 : nullptr;
5766 }
5767 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties2"))
5768 {
5769 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties2 : nullptr;
5770 }
5771 if (!strcmp(name, "vkTrimCommandPool"))
5772 {
5773 return has1_1OrHigher ? (void*)entry_vkTrimCommandPool : nullptr;
5774 }
5775 if (!strcmp(name, "vkGetDeviceQueue2"))
5776 {
5777 return has1_1OrHigher ? (void*)entry_vkGetDeviceQueue2 : nullptr;
5778 }
5779 if (!strcmp(name, "vkCreateSamplerYcbcrConversion"))
5780 {
5781 return has1_1OrHigher ? (void*)entry_vkCreateSamplerYcbcrConversion : nullptr;
5782 }
5783 if (!strcmp(name, "vkDestroySamplerYcbcrConversion"))
5784 {
5785 return has1_1OrHigher ? (void*)entry_vkDestroySamplerYcbcrConversion : nullptr;
5786 }
5787 if (!strcmp(name, "vkCreateDescriptorUpdateTemplate"))
5788 {
5789 return has1_1OrHigher ? (void*)entry_vkCreateDescriptorUpdateTemplate : nullptr;
5790 }
5791 if (!strcmp(name, "vkDestroyDescriptorUpdateTemplate"))
5792 {
5793 return has1_1OrHigher ? (void*)entry_vkDestroyDescriptorUpdateTemplate : nullptr;
5794 }
5795 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplate"))
5796 {
5797 return has1_1OrHigher ? (void*)entry_vkUpdateDescriptorSetWithTemplate : nullptr;
5798 }
5799 if (!strcmp(name, "vkGetPhysicalDeviceExternalBufferProperties"))
5800 {
5801 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceExternalBufferProperties : nullptr;
5802 }
5803 if (!strcmp(name, "vkGetPhysicalDeviceExternalFenceProperties"))
5804 {
5805 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceExternalFenceProperties : nullptr;
5806 }
5807 if (!strcmp(name, "vkGetPhysicalDeviceExternalSemaphoreProperties"))
5808 {
5809 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceExternalSemaphoreProperties : nullptr;
5810 }
5811 if (!strcmp(name, "vkGetDescriptorSetLayoutSupport"))
5812 {
5813 return has1_1OrHigher ? (void*)entry_vkGetDescriptorSetLayoutSupport : nullptr;
5814 }
5815#endif
5816#ifdef VK_KHR_surface
5817 if (!strcmp(name, "vkDestroySurfaceKHR"))
5818 {
5819 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_surface");
5820 return hasExt ? (void*)entry_vkDestroySurfaceKHR : nullptr;
5821 }
5822 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceSupportKHR"))
5823 {
5824 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_surface");
5825 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceSupportKHR : nullptr;
5826 }
5827 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR"))
5828 {
5829 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_surface");
5830 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceCapabilitiesKHR : nullptr;
5831 }
5832 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceFormatsKHR"))
5833 {
5834 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_surface");
5835 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceFormatsKHR : nullptr;
5836 }
5837 if (!strcmp(name, "vkGetPhysicalDeviceSurfacePresentModesKHR"))
5838 {
5839 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_surface");
5840 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfacePresentModesKHR : nullptr;
5841 }
5842#endif
5843#ifdef VK_KHR_swapchain
5844 if (!strcmp(name, "vkCreateSwapchainKHR"))
5845 {
5846 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5847 return hasExt ? (void*)entry_vkCreateSwapchainKHR : nullptr;
5848 }
5849 if (!strcmp(name, "vkDestroySwapchainKHR"))
5850 {
5851 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5852 return hasExt ? (void*)entry_vkDestroySwapchainKHR : nullptr;
5853 }
5854 if (!strcmp(name, "vkGetSwapchainImagesKHR"))
5855 {
5856 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5857 return hasExt ? (void*)entry_vkGetSwapchainImagesKHR : nullptr;
5858 }
5859 if (!strcmp(name, "vkAcquireNextImageKHR"))
5860 {
5861 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5862 return hasExt ? (void*)entry_vkAcquireNextImageKHR : nullptr;
5863 }
5864 if (!strcmp(name, "vkQueuePresentKHR"))
5865 {
5866 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5867 return hasExt ? (void*)entry_vkQueuePresentKHR : nullptr;
5868 }
5869 if (!strcmp(name, "vkGetDeviceGroupPresentCapabilitiesKHR"))
5870 {
5871 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5872 return hasExt ? (void*)entry_vkGetDeviceGroupPresentCapabilitiesKHR : nullptr;
5873 }
5874 if (!strcmp(name, "vkGetDeviceGroupSurfacePresentModesKHR"))
5875 {
5876 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5877 return hasExt ? (void*)entry_vkGetDeviceGroupSurfacePresentModesKHR : nullptr;
5878 }
5879 if (!strcmp(name, "vkGetPhysicalDevicePresentRectanglesKHR"))
5880 {
5881 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5882 return hasExt ? (void*)entry_vkGetPhysicalDevicePresentRectanglesKHR : nullptr;
5883 }
5884 if (!strcmp(name, "vkAcquireNextImage2KHR"))
5885 {
5886 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5887 return hasExt ? (void*)entry_vkAcquireNextImage2KHR : nullptr;
5888 }
5889#endif
5890#ifdef VK_KHR_display
5891 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPropertiesKHR"))
5892 {
5893 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
5894 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayPropertiesKHR : nullptr;
5895 }
5896 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR"))
5897 {
5898 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
5899 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayPlanePropertiesKHR : nullptr;
5900 }
5901 if (!strcmp(name, "vkGetDisplayPlaneSupportedDisplaysKHR"))
5902 {
5903 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
5904 return hasExt ? (void*)entry_vkGetDisplayPlaneSupportedDisplaysKHR : nullptr;
5905 }
5906 if (!strcmp(name, "vkGetDisplayModePropertiesKHR"))
5907 {
5908 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
5909 return hasExt ? (void*)entry_vkGetDisplayModePropertiesKHR : nullptr;
5910 }
5911 if (!strcmp(name, "vkCreateDisplayModeKHR"))
5912 {
5913 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
5914 return hasExt ? (void*)entry_vkCreateDisplayModeKHR : nullptr;
5915 }
5916 if (!strcmp(name, "vkGetDisplayPlaneCapabilitiesKHR"))
5917 {
5918 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
5919 return hasExt ? (void*)entry_vkGetDisplayPlaneCapabilitiesKHR : nullptr;
5920 }
5921 if (!strcmp(name, "vkCreateDisplayPlaneSurfaceKHR"))
5922 {
5923 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
5924 return hasExt ? (void*)entry_vkCreateDisplayPlaneSurfaceKHR : nullptr;
5925 }
5926#endif
5927#ifdef VK_KHR_display_swapchain
5928 if (!strcmp(name, "vkCreateSharedSwapchainsKHR"))
5929 {
5930 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display_swapchain");
5931 return hasExt ? (void*)entry_vkCreateSharedSwapchainsKHR : nullptr;
5932 }
5933#endif
5934#ifdef VK_KHR_xlib_surface
5935 if (!strcmp(name, "vkCreateXlibSurfaceKHR"))
5936 {
5937 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_xlib_surface");
5938 return hasExt ? (void*)entry_vkCreateXlibSurfaceKHR : nullptr;
5939 }
5940 if (!strcmp(name, "vkGetPhysicalDeviceXlibPresentationSupportKHR"))
5941 {
5942 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_xlib_surface");
5943 return hasExt ? (void*)entry_vkGetPhysicalDeviceXlibPresentationSupportKHR : nullptr;
5944 }
5945#endif
5946#ifdef VK_KHR_xcb_surface
5947 if (!strcmp(name, "vkCreateXcbSurfaceKHR"))
5948 {
5949 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_xcb_surface");
5950 return hasExt ? (void*)entry_vkCreateXcbSurfaceKHR : nullptr;
5951 }
5952 if (!strcmp(name, "vkGetPhysicalDeviceXcbPresentationSupportKHR"))
5953 {
5954 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_xcb_surface");
5955 return hasExt ? (void*)entry_vkGetPhysicalDeviceXcbPresentationSupportKHR : nullptr;
5956 }
5957#endif
5958#ifdef VK_KHR_wayland_surface
5959 if (!strcmp(name, "vkCreateWaylandSurfaceKHR"))
5960 {
5961 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_wayland_surface");
5962 return hasExt ? (void*)entry_vkCreateWaylandSurfaceKHR : nullptr;
5963 }
5964 if (!strcmp(name, "vkGetPhysicalDeviceWaylandPresentationSupportKHR"))
5965 {
5966 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_wayland_surface");
5967 return hasExt ? (void*)entry_vkGetPhysicalDeviceWaylandPresentationSupportKHR : nullptr;
5968 }
5969#endif
5970#ifdef VK_KHR_mir_surface
5971 if (!strcmp(name, "vkCreateMirSurfaceKHR"))
5972 {
5973 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_mir_surface");
5974 return hasExt ? (void*)entry_vkCreateMirSurfaceKHR : nullptr;
5975 }
5976 if (!strcmp(name, "vkGetPhysicalDeviceMirPresentationSupportKHR"))
5977 {
5978 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_mir_surface");
5979 return hasExt ? (void*)entry_vkGetPhysicalDeviceMirPresentationSupportKHR : nullptr;
5980 }
5981#endif
5982#ifdef VK_KHR_android_surface
5983 if (!strcmp(name, "vkCreateAndroidSurfaceKHR"))
5984 {
5985 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_android_surface");
5986 return hasExt ? (void*)entry_vkCreateAndroidSurfaceKHR : nullptr;
5987 }
5988#endif
5989#ifdef VK_KHR_win32_surface
5990 if (!strcmp(name, "vkCreateWin32SurfaceKHR"))
5991 {
5992 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_win32_surface");
5993 return hasExt ? (void*)entry_vkCreateWin32SurfaceKHR : nullptr;
5994 }
5995 if (!strcmp(name, "vkGetPhysicalDeviceWin32PresentationSupportKHR"))
5996 {
5997 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_win32_surface");
5998 return hasExt ? (void*)entry_vkGetPhysicalDeviceWin32PresentationSupportKHR : nullptr;
5999 }
6000#endif
6001#ifdef VK_KHR_get_physical_device_properties2
6002 if (!strcmp(name, "vkGetPhysicalDeviceFeatures2KHR"))
6003 {
6004 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
6005 return hasExt ? (void*)entry_vkGetPhysicalDeviceFeatures2KHR : nullptr;
6006 }
6007 if (!strcmp(name, "vkGetPhysicalDeviceProperties2KHR"))
6008 {
6009 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
6010 return hasExt ? (void*)entry_vkGetPhysicalDeviceProperties2KHR : nullptr;
6011 }
6012 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties2KHR"))
6013 {
6014 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
6015 return hasExt ? (void*)entry_vkGetPhysicalDeviceFormatProperties2KHR : nullptr;
6016 }
6017 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties2KHR"))
6018 {
6019 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
6020 return hasExt ? (void*)entry_vkGetPhysicalDeviceImageFormatProperties2KHR : nullptr;
6021 }
6022 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties2KHR"))
6023 {
6024 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
6025 return hasExt ? (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties2KHR : nullptr;
6026 }
6027 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties2KHR"))
6028 {
6029 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
6030 return hasExt ? (void*)entry_vkGetPhysicalDeviceMemoryProperties2KHR : nullptr;
6031 }
6032 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR"))
6033 {
6034 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
6035 return hasExt ? (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties2KHR : nullptr;
6036 }
6037#endif
6038#ifdef VK_KHR_device_group
6039 if (!strcmp(name, "vkGetDeviceGroupPeerMemoryFeaturesKHR"))
6040 {
6041 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_device_group");
6042 return hasExt ? (void*)entry_vkGetDeviceGroupPeerMemoryFeaturesKHR : nullptr;
6043 }
6044 if (!strcmp(name, "vkCmdSetDeviceMaskKHR"))
6045 {
6046 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_device_group");
6047 return hasExt ? (void*)entry_vkCmdSetDeviceMaskKHR : nullptr;
6048 }
6049 if (!strcmp(name, "vkCmdDispatchBaseKHR"))
6050 {
6051 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_device_group");
6052 return hasExt ? (void*)entry_vkCmdDispatchBaseKHR : nullptr;
6053 }
6054#endif
6055#ifdef VK_KHR_maintenance1
6056 if (!strcmp(name, "vkTrimCommandPoolKHR"))
6057 {
6058 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_maintenance1");
6059 return hasExt ? (void*)entry_vkTrimCommandPoolKHR : nullptr;
6060 }
6061#endif
6062#ifdef VK_KHR_device_group_creation
6063 if (!strcmp(name, "vkEnumeratePhysicalDeviceGroupsKHR"))
6064 {
6065 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_device_group_creation");
6066 return hasExt ? (void*)entry_vkEnumeratePhysicalDeviceGroupsKHR : nullptr;
6067 }
6068#endif
6069#ifdef VK_KHR_external_memory_capabilities
6070 if (!strcmp(name, "vkGetPhysicalDeviceExternalBufferPropertiesKHR"))
6071 {
6072 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_memory_capabilities");
6073 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalBufferPropertiesKHR : nullptr;
6074 }
6075#endif
6076#ifdef VK_KHR_external_memory_win32
6077 if (!strcmp(name, "vkGetMemoryWin32HandleKHR"))
6078 {
6079 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_memory_win32");
6080 return hasExt ? (void*)entry_vkGetMemoryWin32HandleKHR : nullptr;
6081 }
6082 if (!strcmp(name, "vkGetMemoryWin32HandlePropertiesKHR"))
6083 {
6084 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_memory_win32");
6085 return hasExt ? (void*)entry_vkGetMemoryWin32HandlePropertiesKHR : nullptr;
6086 }
6087#endif
6088#ifdef VK_KHR_external_memory_fd
6089 if (!strcmp(name, "vkGetMemoryFdKHR"))
6090 {
6091 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_memory_fd");
6092 return hasExt ? (void*)entry_vkGetMemoryFdKHR : nullptr;
6093 }
6094 if (!strcmp(name, "vkGetMemoryFdPropertiesKHR"))
6095 {
6096 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_memory_fd");
6097 return hasExt ? (void*)entry_vkGetMemoryFdPropertiesKHR : nullptr;
6098 }
6099#endif
6100#ifdef VK_KHR_external_semaphore_capabilities
6101 if (!strcmp(name, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR"))
6102 {
6103 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_semaphore_capabilities");
6104 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR : nullptr;
6105 }
6106#endif
6107#ifdef VK_KHR_external_semaphore_win32
6108 if (!strcmp(name, "vkImportSemaphoreWin32HandleKHR"))
6109 {
6110 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_semaphore_win32");
6111 return hasExt ? (void*)entry_vkImportSemaphoreWin32HandleKHR : nullptr;
6112 }
6113 if (!strcmp(name, "vkGetSemaphoreWin32HandleKHR"))
6114 {
6115 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_semaphore_win32");
6116 return hasExt ? (void*)entry_vkGetSemaphoreWin32HandleKHR : nullptr;
6117 }
6118#endif
6119#ifdef VK_KHR_external_semaphore_fd
6120 if (!strcmp(name, "vkImportSemaphoreFdKHR"))
6121 {
6122 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_semaphore_fd");
6123 return hasExt ? (void*)entry_vkImportSemaphoreFdKHR : nullptr;
6124 }
6125 if (!strcmp(name, "vkGetSemaphoreFdKHR"))
6126 {
6127 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_semaphore_fd");
6128 return hasExt ? (void*)entry_vkGetSemaphoreFdKHR : nullptr;
6129 }
6130#endif
6131#ifdef VK_KHR_push_descriptor
6132 if (!strcmp(name, "vkCmdPushDescriptorSetKHR"))
6133 {
6134 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_push_descriptor");
6135 return hasExt ? (void*)entry_vkCmdPushDescriptorSetKHR : nullptr;
6136 }
6137 if (!strcmp(name, "vkCmdPushDescriptorSetWithTemplateKHR"))
6138 {
6139 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_push_descriptor");
6140 return hasExt ? (void*)entry_vkCmdPushDescriptorSetWithTemplateKHR : nullptr;
6141 }
6142#endif
6143#ifdef VK_KHR_descriptor_update_template
6144 if (!strcmp(name, "vkCreateDescriptorUpdateTemplateKHR"))
6145 {
6146 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_descriptor_update_template");
6147 return hasExt ? (void*)entry_vkCreateDescriptorUpdateTemplateKHR : nullptr;
6148 }
6149 if (!strcmp(name, "vkDestroyDescriptorUpdateTemplateKHR"))
6150 {
6151 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_descriptor_update_template");
6152 return hasExt ? (void*)entry_vkDestroyDescriptorUpdateTemplateKHR : nullptr;
6153 }
6154 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplateKHR"))
6155 {
6156 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_descriptor_update_template");
6157 return hasExt ? (void*)entry_vkUpdateDescriptorSetWithTemplateKHR : nullptr;
6158 }
6159#endif
6160#ifdef VK_KHR_create_renderpass2
6161 if (!strcmp(name, "vkCreateRenderPass2KHR"))
6162 {
6163 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_create_renderpass2");
6164 return hasExt ? (void*)entry_vkCreateRenderPass2KHR : nullptr;
6165 }
6166 if (!strcmp(name, "vkCmdBeginRenderPass2KHR"))
6167 {
6168 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_create_renderpass2");
6169 return hasExt ? (void*)entry_vkCmdBeginRenderPass2KHR : nullptr;
6170 }
6171 if (!strcmp(name, "vkCmdNextSubpass2KHR"))
6172 {
6173 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_create_renderpass2");
6174 return hasExt ? (void*)entry_vkCmdNextSubpass2KHR : nullptr;
6175 }
6176 if (!strcmp(name, "vkCmdEndRenderPass2KHR"))
6177 {
6178 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_create_renderpass2");
6179 return hasExt ? (void*)entry_vkCmdEndRenderPass2KHR : nullptr;
6180 }
6181#endif
6182#ifdef VK_KHR_shared_presentable_image
6183 if (!strcmp(name, "vkGetSwapchainStatusKHR"))
6184 {
6185 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_shared_presentable_image");
6186 return hasExt ? (void*)entry_vkGetSwapchainStatusKHR : nullptr;
6187 }
6188#endif
6189#ifdef VK_KHR_external_fence_capabilities
6190 if (!strcmp(name, "vkGetPhysicalDeviceExternalFencePropertiesKHR"))
6191 {
6192 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_fence_capabilities");
6193 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalFencePropertiesKHR : nullptr;
6194 }
6195#endif
6196#ifdef VK_KHR_external_fence_win32
6197 if (!strcmp(name, "vkImportFenceWin32HandleKHR"))
6198 {
6199 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_fence_win32");
6200 return hasExt ? (void*)entry_vkImportFenceWin32HandleKHR : nullptr;
6201 }
6202 if (!strcmp(name, "vkGetFenceWin32HandleKHR"))
6203 {
6204 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_fence_win32");
6205 return hasExt ? (void*)entry_vkGetFenceWin32HandleKHR : nullptr;
6206 }
6207#endif
6208#ifdef VK_KHR_external_fence_fd
6209 if (!strcmp(name, "vkImportFenceFdKHR"))
6210 {
6211 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_fence_fd");
6212 return hasExt ? (void*)entry_vkImportFenceFdKHR : nullptr;
6213 }
6214 if (!strcmp(name, "vkGetFenceFdKHR"))
6215 {
6216 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_fence_fd");
6217 return hasExt ? (void*)entry_vkGetFenceFdKHR : nullptr;
6218 }
6219#endif
6220#ifdef VK_KHR_get_surface_capabilities2
6221 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2KHR"))
6222 {
6223 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_surface_capabilities2");
6224 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceCapabilities2KHR : nullptr;
6225 }
6226 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceFormats2KHR"))
6227 {
6228 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_surface_capabilities2");
6229 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceFormats2KHR : nullptr;
6230 }
6231#endif
6232#ifdef VK_KHR_get_display_properties2
6233 if (!strcmp(name, "vkGetPhysicalDeviceDisplayProperties2KHR"))
6234 {
6235 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_display_properties2");
6236 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayProperties2KHR : nullptr;
6237 }
6238 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR"))
6239 {
6240 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_display_properties2");
6241 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayPlaneProperties2KHR : nullptr;
6242 }
6243 if (!strcmp(name, "vkGetDisplayModeProperties2KHR"))
6244 {
6245 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_display_properties2");
6246 return hasExt ? (void*)entry_vkGetDisplayModeProperties2KHR : nullptr;
6247 }
6248 if (!strcmp(name, "vkGetDisplayPlaneCapabilities2KHR"))
6249 {
6250 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_display_properties2");
6251 return hasExt ? (void*)entry_vkGetDisplayPlaneCapabilities2KHR : nullptr;
6252 }
6253#endif
6254#ifdef VK_KHR_get_memory_requirements2
6255 if (!strcmp(name, "vkGetImageMemoryRequirements2KHR"))
6256 {
6257 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_memory_requirements2");
6258 return hasExt ? (void*)entry_vkGetImageMemoryRequirements2KHR : nullptr;
6259 }
6260 if (!strcmp(name, "vkGetBufferMemoryRequirements2KHR"))
6261 {
6262 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_memory_requirements2");
6263 return hasExt ? (void*)entry_vkGetBufferMemoryRequirements2KHR : nullptr;
6264 }
6265 if (!strcmp(name, "vkGetImageSparseMemoryRequirements2KHR"))
6266 {
6267 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_memory_requirements2");
6268 return hasExt ? (void*)entry_vkGetImageSparseMemoryRequirements2KHR : nullptr;
6269 }
6270#endif
6271#ifdef VK_KHR_sampler_ycbcr_conversion
6272 if (!strcmp(name, "vkCreateSamplerYcbcrConversionKHR"))
6273 {
6274 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_sampler_ycbcr_conversion");
6275 return hasExt ? (void*)entry_vkCreateSamplerYcbcrConversionKHR : nullptr;
6276 }
6277 if (!strcmp(name, "vkDestroySamplerYcbcrConversionKHR"))
6278 {
6279 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_sampler_ycbcr_conversion");
6280 return hasExt ? (void*)entry_vkDestroySamplerYcbcrConversionKHR : nullptr;
6281 }
6282#endif
6283#ifdef VK_KHR_bind_memory2
6284 if (!strcmp(name, "vkBindBufferMemory2KHR"))
6285 {
6286 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_bind_memory2");
6287 return hasExt ? (void*)entry_vkBindBufferMemory2KHR : nullptr;
6288 }
6289 if (!strcmp(name, "vkBindImageMemory2KHR"))
6290 {
6291 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_bind_memory2");
6292 return hasExt ? (void*)entry_vkBindImageMemory2KHR : nullptr;
6293 }
6294#endif
6295#ifdef VK_KHR_maintenance3
6296 if (!strcmp(name, "vkGetDescriptorSetLayoutSupportKHR"))
6297 {
6298 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_maintenance3");
6299 return hasExt ? (void*)entry_vkGetDescriptorSetLayoutSupportKHR : nullptr;
6300 }
6301#endif
6302#ifdef VK_KHR_draw_indirect_count
6303 if (!strcmp(name, "vkCmdDrawIndirectCountKHR"))
6304 {
6305 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_draw_indirect_count");
6306 return hasExt ? (void*)entry_vkCmdDrawIndirectCountKHR : nullptr;
6307 }
6308 if (!strcmp(name, "vkCmdDrawIndexedIndirectCountKHR"))
6309 {
6310 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_draw_indirect_count");
6311 return hasExt ? (void*)entry_vkCmdDrawIndexedIndirectCountKHR : nullptr;
6312 }
6313#endif
6314#ifdef VK_ANDROID_native_buffer
6315 if (!strcmp(name, "vkGetSwapchainGrallocUsageANDROID"))
6316 {
6317 bool hasExt = resources->hasInstanceExtension(instance, "VK_ANDROID_native_buffer");
6318 return hasExt ? (void*)entry_vkGetSwapchainGrallocUsageANDROID : nullptr;
6319 }
6320 if (!strcmp(name, "vkAcquireImageANDROID"))
6321 {
6322 bool hasExt = resources->hasInstanceExtension(instance, "VK_ANDROID_native_buffer");
6323 return hasExt ? (void*)entry_vkAcquireImageANDROID : nullptr;
6324 }
6325 if (!strcmp(name, "vkQueueSignalReleaseImageANDROID"))
6326 {
6327 bool hasExt = resources->hasInstanceExtension(instance, "VK_ANDROID_native_buffer");
6328 return hasExt ? (void*)entry_vkQueueSignalReleaseImageANDROID : nullptr;
6329 }
6330#endif
6331#ifdef VK_EXT_debug_report
6332 if (!strcmp(name, "vkCreateDebugReportCallbackEXT"))
6333 {
6334 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_report");
6335 return hasExt ? (void*)entry_vkCreateDebugReportCallbackEXT : nullptr;
6336 }
6337 if (!strcmp(name, "vkDestroyDebugReportCallbackEXT"))
6338 {
6339 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_report");
6340 return hasExt ? (void*)entry_vkDestroyDebugReportCallbackEXT : nullptr;
6341 }
6342 if (!strcmp(name, "vkDebugReportMessageEXT"))
6343 {
6344 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_report");
6345 return hasExt ? (void*)entry_vkDebugReportMessageEXT : nullptr;
6346 }
6347#endif
6348#ifdef VK_EXT_debug_marker
6349 if (!strcmp(name, "vkDebugMarkerSetObjectTagEXT"))
6350 {
6351 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_marker");
6352 return hasExt ? (void*)entry_vkDebugMarkerSetObjectTagEXT : nullptr;
6353 }
6354 if (!strcmp(name, "vkDebugMarkerSetObjectNameEXT"))
6355 {
6356 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_marker");
6357 return hasExt ? (void*)entry_vkDebugMarkerSetObjectNameEXT : nullptr;
6358 }
6359 if (!strcmp(name, "vkCmdDebugMarkerBeginEXT"))
6360 {
6361 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_marker");
6362 return hasExt ? (void*)entry_vkCmdDebugMarkerBeginEXT : nullptr;
6363 }
6364 if (!strcmp(name, "vkCmdDebugMarkerEndEXT"))
6365 {
6366 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_marker");
6367 return hasExt ? (void*)entry_vkCmdDebugMarkerEndEXT : nullptr;
6368 }
6369 if (!strcmp(name, "vkCmdDebugMarkerInsertEXT"))
6370 {
6371 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_marker");
6372 return hasExt ? (void*)entry_vkCmdDebugMarkerInsertEXT : nullptr;
6373 }
6374#endif
6375#ifdef VK_AMD_draw_indirect_count
6376 if (!strcmp(name, "vkCmdDrawIndirectCountAMD"))
6377 {
6378 bool hasExt = resources->hasInstanceExtension(instance, "VK_AMD_draw_indirect_count");
6379 return hasExt ? (void*)entry_vkCmdDrawIndirectCountAMD : nullptr;
6380 }
6381 if (!strcmp(name, "vkCmdDrawIndexedIndirectCountAMD"))
6382 {
6383 bool hasExt = resources->hasInstanceExtension(instance, "VK_AMD_draw_indirect_count");
6384 return hasExt ? (void*)entry_vkCmdDrawIndexedIndirectCountAMD : nullptr;
6385 }
6386#endif
6387#ifdef VK_AMD_shader_info
6388 if (!strcmp(name, "vkGetShaderInfoAMD"))
6389 {
6390 bool hasExt = resources->hasInstanceExtension(instance, "VK_AMD_shader_info");
6391 return hasExt ? (void*)entry_vkGetShaderInfoAMD : nullptr;
6392 }
6393#endif
6394#ifdef VK_NV_external_memory_capabilities
6395 if (!strcmp(name, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV"))
6396 {
6397 bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_external_memory_capabilities");
6398 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalImageFormatPropertiesNV : nullptr;
6399 }
6400#endif
6401#ifdef VK_NV_external_memory_win32
6402 if (!strcmp(name, "vkGetMemoryWin32HandleNV"))
6403 {
6404 bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_external_memory_win32");
6405 return hasExt ? (void*)entry_vkGetMemoryWin32HandleNV : nullptr;
6406 }
6407#endif
6408#ifdef VK_NN_vi_surface
6409 if (!strcmp(name, "vkCreateViSurfaceNN"))
6410 {
6411 bool hasExt = resources->hasInstanceExtension(instance, "VK_NN_vi_surface");
6412 return hasExt ? (void*)entry_vkCreateViSurfaceNN : nullptr;
6413 }
6414#endif
6415#ifdef VK_EXT_conditional_rendering
6416 if (!strcmp(name, "vkCmdBeginConditionalRenderingEXT"))
6417 {
6418 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_conditional_rendering");
6419 return hasExt ? (void*)entry_vkCmdBeginConditionalRenderingEXT : nullptr;
6420 }
6421 if (!strcmp(name, "vkCmdEndConditionalRenderingEXT"))
6422 {
6423 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_conditional_rendering");
6424 return hasExt ? (void*)entry_vkCmdEndConditionalRenderingEXT : nullptr;
6425 }
6426#endif
6427#ifdef VK_NVX_device_generated_commands
6428 if (!strcmp(name, "vkCmdProcessCommandsNVX"))
6429 {
6430 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6431 return hasExt ? (void*)entry_vkCmdProcessCommandsNVX : nullptr;
6432 }
6433 if (!strcmp(name, "vkCmdReserveSpaceForCommandsNVX"))
6434 {
6435 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6436 return hasExt ? (void*)entry_vkCmdReserveSpaceForCommandsNVX : nullptr;
6437 }
6438 if (!strcmp(name, "vkCreateIndirectCommandsLayoutNVX"))
6439 {
6440 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6441 return hasExt ? (void*)entry_vkCreateIndirectCommandsLayoutNVX : nullptr;
6442 }
6443 if (!strcmp(name, "vkDestroyIndirectCommandsLayoutNVX"))
6444 {
6445 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6446 return hasExt ? (void*)entry_vkDestroyIndirectCommandsLayoutNVX : nullptr;
6447 }
6448 if (!strcmp(name, "vkCreateObjectTableNVX"))
6449 {
6450 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6451 return hasExt ? (void*)entry_vkCreateObjectTableNVX : nullptr;
6452 }
6453 if (!strcmp(name, "vkDestroyObjectTableNVX"))
6454 {
6455 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6456 return hasExt ? (void*)entry_vkDestroyObjectTableNVX : nullptr;
6457 }
6458 if (!strcmp(name, "vkRegisterObjectsNVX"))
6459 {
6460 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6461 return hasExt ? (void*)entry_vkRegisterObjectsNVX : nullptr;
6462 }
6463 if (!strcmp(name, "vkUnregisterObjectsNVX"))
6464 {
6465 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6466 return hasExt ? (void*)entry_vkUnregisterObjectsNVX : nullptr;
6467 }
6468 if (!strcmp(name, "vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX"))
6469 {
6470 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6471 return hasExt ? (void*)entry_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX : nullptr;
6472 }
6473#endif
6474#ifdef VK_NV_clip_space_w_scaling
6475 if (!strcmp(name, "vkCmdSetViewportWScalingNV"))
6476 {
6477 bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_clip_space_w_scaling");
6478 return hasExt ? (void*)entry_vkCmdSetViewportWScalingNV : nullptr;
6479 }
6480#endif
6481#ifdef VK_EXT_direct_mode_display
6482 if (!strcmp(name, "vkReleaseDisplayEXT"))
6483 {
6484 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_direct_mode_display");
6485 return hasExt ? (void*)entry_vkReleaseDisplayEXT : nullptr;
6486 }
6487#endif
6488#ifdef VK_EXT_acquire_xlib_display
6489 if (!strcmp(name, "vkAcquireXlibDisplayEXT"))
6490 {
6491 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_acquire_xlib_display");
6492 return hasExt ? (void*)entry_vkAcquireXlibDisplayEXT : nullptr;
6493 }
6494 if (!strcmp(name, "vkGetRandROutputDisplayEXT"))
6495 {
6496 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_acquire_xlib_display");
6497 return hasExt ? (void*)entry_vkGetRandROutputDisplayEXT : nullptr;
6498 }
6499#endif
6500#ifdef VK_EXT_display_surface_counter
6501 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2EXT"))
6502 {
6503 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_display_surface_counter");
6504 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceCapabilities2EXT : nullptr;
6505 }
6506#endif
6507#ifdef VK_EXT_display_control
6508 if (!strcmp(name, "vkDisplayPowerControlEXT"))
6509 {
6510 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_display_control");
6511 return hasExt ? (void*)entry_vkDisplayPowerControlEXT : nullptr;
6512 }
6513 if (!strcmp(name, "vkRegisterDeviceEventEXT"))
6514 {
6515 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_display_control");
6516 return hasExt ? (void*)entry_vkRegisterDeviceEventEXT : nullptr;
6517 }
6518 if (!strcmp(name, "vkRegisterDisplayEventEXT"))
6519 {
6520 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_display_control");
6521 return hasExt ? (void*)entry_vkRegisterDisplayEventEXT : nullptr;
6522 }
6523 if (!strcmp(name, "vkGetSwapchainCounterEXT"))
6524 {
6525 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_display_control");
6526 return hasExt ? (void*)entry_vkGetSwapchainCounterEXT : nullptr;
6527 }
6528#endif
6529#ifdef VK_GOOGLE_display_timing
6530 if (!strcmp(name, "vkGetRefreshCycleDurationGOOGLE"))
6531 {
6532 bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_display_timing");
6533 return hasExt ? (void*)entry_vkGetRefreshCycleDurationGOOGLE : nullptr;
6534 }
6535 if (!strcmp(name, "vkGetPastPresentationTimingGOOGLE"))
6536 {
6537 bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_display_timing");
6538 return hasExt ? (void*)entry_vkGetPastPresentationTimingGOOGLE : nullptr;
6539 }
6540#endif
6541#ifdef VK_EXT_discard_rectangles
6542 if (!strcmp(name, "vkCmdSetDiscardRectangleEXT"))
6543 {
6544 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_discard_rectangles");
6545 return hasExt ? (void*)entry_vkCmdSetDiscardRectangleEXT : nullptr;
6546 }
6547#endif
6548#ifdef VK_EXT_hdr_metadata
6549 if (!strcmp(name, "vkSetHdrMetadataEXT"))
6550 {
6551 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_hdr_metadata");
6552 return hasExt ? (void*)entry_vkSetHdrMetadataEXT : nullptr;
6553 }
6554#endif
6555#ifdef VK_MVK_ios_surface
6556 if (!strcmp(name, "vkCreateIOSSurfaceMVK"))
6557 {
6558 bool hasExt = resources->hasInstanceExtension(instance, "VK_MVK_ios_surface");
6559 return hasExt ? (void*)entry_vkCreateIOSSurfaceMVK : nullptr;
6560 }
6561#endif
6562#ifdef VK_MVK_macos_surface
6563 if (!strcmp(name, "vkCreateMacOSSurfaceMVK"))
6564 {
6565 bool hasExt = resources->hasInstanceExtension(instance, "VK_MVK_macos_surface");
6566 return hasExt ? (void*)entry_vkCreateMacOSSurfaceMVK : nullptr;
6567 }
6568#endif
6569#ifdef VK_EXT_debug_utils
6570 if (!strcmp(name, "vkSetDebugUtilsObjectNameEXT"))
6571 {
6572 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6573 return hasExt ? (void*)entry_vkSetDebugUtilsObjectNameEXT : nullptr;
6574 }
6575 if (!strcmp(name, "vkSetDebugUtilsObjectTagEXT"))
6576 {
6577 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6578 return hasExt ? (void*)entry_vkSetDebugUtilsObjectTagEXT : nullptr;
6579 }
6580 if (!strcmp(name, "vkQueueBeginDebugUtilsLabelEXT"))
6581 {
6582 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6583 return hasExt ? (void*)entry_vkQueueBeginDebugUtilsLabelEXT : nullptr;
6584 }
6585 if (!strcmp(name, "vkQueueEndDebugUtilsLabelEXT"))
6586 {
6587 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6588 return hasExt ? (void*)entry_vkQueueEndDebugUtilsLabelEXT : nullptr;
6589 }
6590 if (!strcmp(name, "vkQueueInsertDebugUtilsLabelEXT"))
6591 {
6592 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6593 return hasExt ? (void*)entry_vkQueueInsertDebugUtilsLabelEXT : nullptr;
6594 }
6595 if (!strcmp(name, "vkCmdBeginDebugUtilsLabelEXT"))
6596 {
6597 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6598 return hasExt ? (void*)entry_vkCmdBeginDebugUtilsLabelEXT : nullptr;
6599 }
6600 if (!strcmp(name, "vkCmdEndDebugUtilsLabelEXT"))
6601 {
6602 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6603 return hasExt ? (void*)entry_vkCmdEndDebugUtilsLabelEXT : nullptr;
6604 }
6605 if (!strcmp(name, "vkCmdInsertDebugUtilsLabelEXT"))
6606 {
6607 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6608 return hasExt ? (void*)entry_vkCmdInsertDebugUtilsLabelEXT : nullptr;
6609 }
6610 if (!strcmp(name, "vkCreateDebugUtilsMessengerEXT"))
6611 {
6612 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6613 return hasExt ? (void*)entry_vkCreateDebugUtilsMessengerEXT : nullptr;
6614 }
6615 if (!strcmp(name, "vkDestroyDebugUtilsMessengerEXT"))
6616 {
6617 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6618 return hasExt ? (void*)entry_vkDestroyDebugUtilsMessengerEXT : nullptr;
6619 }
6620 if (!strcmp(name, "vkSubmitDebugUtilsMessageEXT"))
6621 {
6622 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6623 return hasExt ? (void*)entry_vkSubmitDebugUtilsMessageEXT : nullptr;
6624 }
6625#endif
6626#ifdef VK_ANDROID_external_memory_android_hardware_buffer
6627 if (!strcmp(name, "vkGetAndroidHardwareBufferPropertiesANDROID"))
6628 {
6629 bool hasExt = resources->hasInstanceExtension(instance, "VK_ANDROID_external_memory_android_hardware_buffer");
6630 return hasExt ? (void*)entry_vkGetAndroidHardwareBufferPropertiesANDROID : nullptr;
6631 }
6632 if (!strcmp(name, "vkGetMemoryAndroidHardwareBufferANDROID"))
6633 {
6634 bool hasExt = resources->hasInstanceExtension(instance, "VK_ANDROID_external_memory_android_hardware_buffer");
6635 return hasExt ? (void*)entry_vkGetMemoryAndroidHardwareBufferANDROID : nullptr;
6636 }
6637#endif
6638#ifdef VK_EXT_sample_locations
6639 if (!strcmp(name, "vkCmdSetSampleLocationsEXT"))
6640 {
6641 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_sample_locations");
6642 return hasExt ? (void*)entry_vkCmdSetSampleLocationsEXT : nullptr;
6643 }
6644 if (!strcmp(name, "vkGetPhysicalDeviceMultisamplePropertiesEXT"))
6645 {
6646 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_sample_locations");
6647 return hasExt ? (void*)entry_vkGetPhysicalDeviceMultisamplePropertiesEXT : nullptr;
6648 }
6649#endif
6650#ifdef VK_EXT_validation_cache
6651 if (!strcmp(name, "vkCreateValidationCacheEXT"))
6652 {
6653 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_validation_cache");
6654 return hasExt ? (void*)entry_vkCreateValidationCacheEXT : nullptr;
6655 }
6656 if (!strcmp(name, "vkDestroyValidationCacheEXT"))
6657 {
6658 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_validation_cache");
6659 return hasExt ? (void*)entry_vkDestroyValidationCacheEXT : nullptr;
6660 }
6661 if (!strcmp(name, "vkMergeValidationCachesEXT"))
6662 {
6663 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_validation_cache");
6664 return hasExt ? (void*)entry_vkMergeValidationCachesEXT : nullptr;
6665 }
6666 if (!strcmp(name, "vkGetValidationCacheDataEXT"))
6667 {
6668 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_validation_cache");
6669 return hasExt ? (void*)entry_vkGetValidationCacheDataEXT : nullptr;
6670 }
6671#endif
6672#ifdef VK_EXT_external_memory_host
6673 if (!strcmp(name, "vkGetMemoryHostPointerPropertiesEXT"))
6674 {
6675 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_external_memory_host");
6676 return hasExt ? (void*)entry_vkGetMemoryHostPointerPropertiesEXT : nullptr;
6677 }
6678#endif
6679#ifdef VK_AMD_buffer_marker
6680 if (!strcmp(name, "vkCmdWriteBufferMarkerAMD"))
6681 {
6682 bool hasExt = resources->hasInstanceExtension(instance, "VK_AMD_buffer_marker");
6683 return hasExt ? (void*)entry_vkCmdWriteBufferMarkerAMD : nullptr;
6684 }
6685#endif
6686#ifdef VK_NV_device_diagnostic_checkpoints
6687 if (!strcmp(name, "vkCmdSetCheckpointNV"))
6688 {
6689 bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_device_diagnostic_checkpoints");
6690 return hasExt ? (void*)entry_vkCmdSetCheckpointNV : nullptr;
6691 }
6692 if (!strcmp(name, "vkGetQueueCheckpointDataNV"))
6693 {
6694 bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_device_diagnostic_checkpoints");
6695 return hasExt ? (void*)entry_vkGetQueueCheckpointDataNV : nullptr;
6696 }
6697#endif
6698#ifdef VK_GOOGLE_address_space
6699 if (!strcmp(name, "vkMapMemoryIntoAddressSpaceGOOGLE"))
6700 {
6701 bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_address_space");
6702 return hasExt ? (void*)entry_vkMapMemoryIntoAddressSpaceGOOGLE : nullptr;
6703 }
6704#endif
Lingfeng Yangae7e1b32019-02-19 14:07:39 -08006705#ifdef VK_GOOGLE_color_buffer
6706 if (!strcmp(name, "vkRegisterImageColorBufferGOOGLE"))
6707 {
6708 bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_color_buffer");
6709 return hasExt ? (void*)entry_vkRegisterImageColorBufferGOOGLE : nullptr;
6710 }
6711 if (!strcmp(name, "vkRegisterBufferColorBufferGOOGLE"))
6712 {
6713 bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_color_buffer");
6714 return hasExt ? (void*)entry_vkRegisterBufferColorBufferGOOGLE : nullptr;
6715 }
6716#endif
Lingfeng Yang05d5ea32019-03-23 00:12:39 -07006717#ifdef VK_GOOGLE_sized_descriptor_update_template
6718 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplateSizedGOOGLE"))
6719 {
6720 bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_sized_descriptor_update_template");
6721 return hasExt ? (void*)entry_vkUpdateDescriptorSetWithTemplateSizedGOOGLE : nullptr;
6722 }
6723#endif
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08006724 return nullptr;
6725}
6726void* goldfish_vulkan_get_device_proc_address(VkDevice device, const char* name){
6727 auto resources = ResourceTracker::get();
6728 bool has1_1OrHigher = resources->getApiVersionFromDevice(device) >= VK_API_VERSION_1_1;
6729#ifdef VK_VERSION_1_0
6730 if (!strcmp(name, "vkCreateInstance"))
6731 {
6732 return (void*)entry_vkCreateInstance;
6733 }
6734 if (!strcmp(name, "vkDestroyInstance"))
6735 {
6736 return (void*)entry_vkDestroyInstance;
6737 }
6738 if (!strcmp(name, "vkEnumeratePhysicalDevices"))
6739 {
6740 return (void*)entry_vkEnumeratePhysicalDevices;
6741 }
6742 if (!strcmp(name, "vkGetPhysicalDeviceFeatures"))
6743 {
6744 return (void*)entry_vkGetPhysicalDeviceFeatures;
6745 }
6746 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties"))
6747 {
6748 return (void*)entry_vkGetPhysicalDeviceFormatProperties;
6749 }
6750 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties"))
6751 {
6752 return (void*)entry_vkGetPhysicalDeviceImageFormatProperties;
6753 }
6754 if (!strcmp(name, "vkGetPhysicalDeviceProperties"))
6755 {
6756 return (void*)entry_vkGetPhysicalDeviceProperties;
6757 }
6758 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties"))
6759 {
6760 return (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties;
6761 }
6762 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties"))
6763 {
6764 return (void*)entry_vkGetPhysicalDeviceMemoryProperties;
6765 }
6766 if (!strcmp(name, "vkGetInstanceProcAddr"))
6767 {
6768 return (void*)entry_vkGetInstanceProcAddr;
6769 }
6770 if (!strcmp(name, "vkGetDeviceProcAddr"))
6771 {
6772 return (void*)entry_vkGetDeviceProcAddr;
6773 }
6774 if (!strcmp(name, "vkCreateDevice"))
6775 {
6776 return (void*)entry_vkCreateDevice;
6777 }
6778 if (!strcmp(name, "vkDestroyDevice"))
6779 {
6780 return (void*)entry_vkDestroyDevice;
6781 }
6782 if (!strcmp(name, "vkEnumerateInstanceExtensionProperties"))
6783 {
6784 return (void*)entry_vkEnumerateInstanceExtensionProperties;
6785 }
6786 if (!strcmp(name, "vkEnumerateDeviceExtensionProperties"))
6787 {
6788 return (void*)entry_vkEnumerateDeviceExtensionProperties;
6789 }
6790 if (!strcmp(name, "vkEnumerateInstanceLayerProperties"))
6791 {
6792 return (void*)entry_vkEnumerateInstanceLayerProperties;
6793 }
6794 if (!strcmp(name, "vkEnumerateDeviceLayerProperties"))
6795 {
6796 return (void*)entry_vkEnumerateDeviceLayerProperties;
6797 }
6798 if (!strcmp(name, "vkGetDeviceQueue"))
6799 {
6800 return (void*)entry_vkGetDeviceQueue;
6801 }
6802 if (!strcmp(name, "vkQueueSubmit"))
6803 {
6804 return (void*)entry_vkQueueSubmit;
6805 }
6806 if (!strcmp(name, "vkQueueWaitIdle"))
6807 {
6808 return (void*)entry_vkQueueWaitIdle;
6809 }
6810 if (!strcmp(name, "vkDeviceWaitIdle"))
6811 {
6812 return (void*)entry_vkDeviceWaitIdle;
6813 }
6814 if (!strcmp(name, "vkAllocateMemory"))
6815 {
6816 return (void*)entry_vkAllocateMemory;
6817 }
6818 if (!strcmp(name, "vkFreeMemory"))
6819 {
6820 return (void*)entry_vkFreeMemory;
6821 }
6822 if (!strcmp(name, "vkMapMemory"))
6823 {
6824 return (void*)entry_vkMapMemory;
6825 }
6826 if (!strcmp(name, "vkUnmapMemory"))
6827 {
6828 return (void*)entry_vkUnmapMemory;
6829 }
6830 if (!strcmp(name, "vkFlushMappedMemoryRanges"))
6831 {
6832 return (void*)entry_vkFlushMappedMemoryRanges;
6833 }
6834 if (!strcmp(name, "vkInvalidateMappedMemoryRanges"))
6835 {
6836 return (void*)entry_vkInvalidateMappedMemoryRanges;
6837 }
6838 if (!strcmp(name, "vkGetDeviceMemoryCommitment"))
6839 {
6840 return (void*)entry_vkGetDeviceMemoryCommitment;
6841 }
6842 if (!strcmp(name, "vkBindBufferMemory"))
6843 {
6844 return (void*)entry_vkBindBufferMemory;
6845 }
6846 if (!strcmp(name, "vkBindImageMemory"))
6847 {
6848 return (void*)entry_vkBindImageMemory;
6849 }
6850 if (!strcmp(name, "vkGetBufferMemoryRequirements"))
6851 {
6852 return (void*)entry_vkGetBufferMemoryRequirements;
6853 }
6854 if (!strcmp(name, "vkGetImageMemoryRequirements"))
6855 {
6856 return (void*)entry_vkGetImageMemoryRequirements;
6857 }
6858 if (!strcmp(name, "vkGetImageSparseMemoryRequirements"))
6859 {
6860 return (void*)entry_vkGetImageSparseMemoryRequirements;
6861 }
6862 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties"))
6863 {
6864 return (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties;
6865 }
6866 if (!strcmp(name, "vkQueueBindSparse"))
6867 {
6868 return (void*)entry_vkQueueBindSparse;
6869 }
6870 if (!strcmp(name, "vkCreateFence"))
6871 {
6872 return (void*)entry_vkCreateFence;
6873 }
6874 if (!strcmp(name, "vkDestroyFence"))
6875 {
6876 return (void*)entry_vkDestroyFence;
6877 }
6878 if (!strcmp(name, "vkResetFences"))
6879 {
6880 return (void*)entry_vkResetFences;
6881 }
6882 if (!strcmp(name, "vkGetFenceStatus"))
6883 {
6884 return (void*)entry_vkGetFenceStatus;
6885 }
6886 if (!strcmp(name, "vkWaitForFences"))
6887 {
6888 return (void*)entry_vkWaitForFences;
6889 }
6890 if (!strcmp(name, "vkCreateSemaphore"))
6891 {
6892 return (void*)entry_vkCreateSemaphore;
6893 }
6894 if (!strcmp(name, "vkDestroySemaphore"))
6895 {
6896 return (void*)entry_vkDestroySemaphore;
6897 }
6898 if (!strcmp(name, "vkCreateEvent"))
6899 {
6900 return (void*)entry_vkCreateEvent;
6901 }
6902 if (!strcmp(name, "vkDestroyEvent"))
6903 {
6904 return (void*)entry_vkDestroyEvent;
6905 }
6906 if (!strcmp(name, "vkGetEventStatus"))
6907 {
6908 return (void*)entry_vkGetEventStatus;
6909 }
6910 if (!strcmp(name, "vkSetEvent"))
6911 {
6912 return (void*)entry_vkSetEvent;
6913 }
6914 if (!strcmp(name, "vkResetEvent"))
6915 {
6916 return (void*)entry_vkResetEvent;
6917 }
6918 if (!strcmp(name, "vkCreateQueryPool"))
6919 {
6920 return (void*)entry_vkCreateQueryPool;
6921 }
6922 if (!strcmp(name, "vkDestroyQueryPool"))
6923 {
6924 return (void*)entry_vkDestroyQueryPool;
6925 }
6926 if (!strcmp(name, "vkGetQueryPoolResults"))
6927 {
6928 return (void*)entry_vkGetQueryPoolResults;
6929 }
6930 if (!strcmp(name, "vkCreateBuffer"))
6931 {
6932 return (void*)entry_vkCreateBuffer;
6933 }
6934 if (!strcmp(name, "vkDestroyBuffer"))
6935 {
6936 return (void*)entry_vkDestroyBuffer;
6937 }
6938 if (!strcmp(name, "vkCreateBufferView"))
6939 {
6940 return (void*)entry_vkCreateBufferView;
6941 }
6942 if (!strcmp(name, "vkDestroyBufferView"))
6943 {
6944 return (void*)entry_vkDestroyBufferView;
6945 }
6946 if (!strcmp(name, "vkCreateImage"))
6947 {
6948 return (void*)entry_vkCreateImage;
6949 }
6950 if (!strcmp(name, "vkDestroyImage"))
6951 {
6952 return (void*)entry_vkDestroyImage;
6953 }
6954 if (!strcmp(name, "vkGetImageSubresourceLayout"))
6955 {
6956 return (void*)entry_vkGetImageSubresourceLayout;
6957 }
6958 if (!strcmp(name, "vkCreateImageView"))
6959 {
6960 return (void*)entry_vkCreateImageView;
6961 }
6962 if (!strcmp(name, "vkDestroyImageView"))
6963 {
6964 return (void*)entry_vkDestroyImageView;
6965 }
6966 if (!strcmp(name, "vkCreateShaderModule"))
6967 {
6968 return (void*)entry_vkCreateShaderModule;
6969 }
6970 if (!strcmp(name, "vkDestroyShaderModule"))
6971 {
6972 return (void*)entry_vkDestroyShaderModule;
6973 }
6974 if (!strcmp(name, "vkCreatePipelineCache"))
6975 {
6976 return (void*)entry_vkCreatePipelineCache;
6977 }
6978 if (!strcmp(name, "vkDestroyPipelineCache"))
6979 {
6980 return (void*)entry_vkDestroyPipelineCache;
6981 }
6982 if (!strcmp(name, "vkGetPipelineCacheData"))
6983 {
6984 return (void*)entry_vkGetPipelineCacheData;
6985 }
6986 if (!strcmp(name, "vkMergePipelineCaches"))
6987 {
6988 return (void*)entry_vkMergePipelineCaches;
6989 }
6990 if (!strcmp(name, "vkCreateGraphicsPipelines"))
6991 {
6992 return (void*)entry_vkCreateGraphicsPipelines;
6993 }
6994 if (!strcmp(name, "vkCreateComputePipelines"))
6995 {
6996 return (void*)entry_vkCreateComputePipelines;
6997 }
6998 if (!strcmp(name, "vkDestroyPipeline"))
6999 {
7000 return (void*)entry_vkDestroyPipeline;
7001 }
7002 if (!strcmp(name, "vkCreatePipelineLayout"))
7003 {
7004 return (void*)entry_vkCreatePipelineLayout;
7005 }
7006 if (!strcmp(name, "vkDestroyPipelineLayout"))
7007 {
7008 return (void*)entry_vkDestroyPipelineLayout;
7009 }
7010 if (!strcmp(name, "vkCreateSampler"))
7011 {
7012 return (void*)entry_vkCreateSampler;
7013 }
7014 if (!strcmp(name, "vkDestroySampler"))
7015 {
7016 return (void*)entry_vkDestroySampler;
7017 }
7018 if (!strcmp(name, "vkCreateDescriptorSetLayout"))
7019 {
7020 return (void*)entry_vkCreateDescriptorSetLayout;
7021 }
7022 if (!strcmp(name, "vkDestroyDescriptorSetLayout"))
7023 {
7024 return (void*)entry_vkDestroyDescriptorSetLayout;
7025 }
7026 if (!strcmp(name, "vkCreateDescriptorPool"))
7027 {
7028 return (void*)entry_vkCreateDescriptorPool;
7029 }
7030 if (!strcmp(name, "vkDestroyDescriptorPool"))
7031 {
7032 return (void*)entry_vkDestroyDescriptorPool;
7033 }
7034 if (!strcmp(name, "vkResetDescriptorPool"))
7035 {
7036 return (void*)entry_vkResetDescriptorPool;
7037 }
7038 if (!strcmp(name, "vkAllocateDescriptorSets"))
7039 {
7040 return (void*)entry_vkAllocateDescriptorSets;
7041 }
7042 if (!strcmp(name, "vkFreeDescriptorSets"))
7043 {
7044 return (void*)entry_vkFreeDescriptorSets;
7045 }
7046 if (!strcmp(name, "vkUpdateDescriptorSets"))
7047 {
7048 return (void*)entry_vkUpdateDescriptorSets;
7049 }
7050 if (!strcmp(name, "vkCreateFramebuffer"))
7051 {
7052 return (void*)entry_vkCreateFramebuffer;
7053 }
7054 if (!strcmp(name, "vkDestroyFramebuffer"))
7055 {
7056 return (void*)entry_vkDestroyFramebuffer;
7057 }
7058 if (!strcmp(name, "vkCreateRenderPass"))
7059 {
7060 return (void*)entry_vkCreateRenderPass;
7061 }
7062 if (!strcmp(name, "vkDestroyRenderPass"))
7063 {
7064 return (void*)entry_vkDestroyRenderPass;
7065 }
7066 if (!strcmp(name, "vkGetRenderAreaGranularity"))
7067 {
7068 return (void*)entry_vkGetRenderAreaGranularity;
7069 }
7070 if (!strcmp(name, "vkCreateCommandPool"))
7071 {
7072 return (void*)entry_vkCreateCommandPool;
7073 }
7074 if (!strcmp(name, "vkDestroyCommandPool"))
7075 {
7076 return (void*)entry_vkDestroyCommandPool;
7077 }
7078 if (!strcmp(name, "vkResetCommandPool"))
7079 {
7080 return (void*)entry_vkResetCommandPool;
7081 }
7082 if (!strcmp(name, "vkAllocateCommandBuffers"))
7083 {
7084 return (void*)entry_vkAllocateCommandBuffers;
7085 }
7086 if (!strcmp(name, "vkFreeCommandBuffers"))
7087 {
7088 return (void*)entry_vkFreeCommandBuffers;
7089 }
7090 if (!strcmp(name, "vkBeginCommandBuffer"))
7091 {
7092 return (void*)entry_vkBeginCommandBuffer;
7093 }
7094 if (!strcmp(name, "vkEndCommandBuffer"))
7095 {
7096 return (void*)entry_vkEndCommandBuffer;
7097 }
7098 if (!strcmp(name, "vkResetCommandBuffer"))
7099 {
7100 return (void*)entry_vkResetCommandBuffer;
7101 }
7102 if (!strcmp(name, "vkCmdBindPipeline"))
7103 {
7104 return (void*)entry_vkCmdBindPipeline;
7105 }
7106 if (!strcmp(name, "vkCmdSetViewport"))
7107 {
7108 return (void*)entry_vkCmdSetViewport;
7109 }
7110 if (!strcmp(name, "vkCmdSetScissor"))
7111 {
7112 return (void*)entry_vkCmdSetScissor;
7113 }
7114 if (!strcmp(name, "vkCmdSetLineWidth"))
7115 {
7116 return (void*)entry_vkCmdSetLineWidth;
7117 }
7118 if (!strcmp(name, "vkCmdSetDepthBias"))
7119 {
7120 return (void*)entry_vkCmdSetDepthBias;
7121 }
7122 if (!strcmp(name, "vkCmdSetBlendConstants"))
7123 {
7124 return (void*)entry_vkCmdSetBlendConstants;
7125 }
7126 if (!strcmp(name, "vkCmdSetDepthBounds"))
7127 {
7128 return (void*)entry_vkCmdSetDepthBounds;
7129 }
7130 if (!strcmp(name, "vkCmdSetStencilCompareMask"))
7131 {
7132 return (void*)entry_vkCmdSetStencilCompareMask;
7133 }
7134 if (!strcmp(name, "vkCmdSetStencilWriteMask"))
7135 {
7136 return (void*)entry_vkCmdSetStencilWriteMask;
7137 }
7138 if (!strcmp(name, "vkCmdSetStencilReference"))
7139 {
7140 return (void*)entry_vkCmdSetStencilReference;
7141 }
7142 if (!strcmp(name, "vkCmdBindDescriptorSets"))
7143 {
7144 return (void*)entry_vkCmdBindDescriptorSets;
7145 }
7146 if (!strcmp(name, "vkCmdBindIndexBuffer"))
7147 {
7148 return (void*)entry_vkCmdBindIndexBuffer;
7149 }
7150 if (!strcmp(name, "vkCmdBindVertexBuffers"))
7151 {
7152 return (void*)entry_vkCmdBindVertexBuffers;
7153 }
7154 if (!strcmp(name, "vkCmdDraw"))
7155 {
7156 return (void*)entry_vkCmdDraw;
7157 }
7158 if (!strcmp(name, "vkCmdDrawIndexed"))
7159 {
7160 return (void*)entry_vkCmdDrawIndexed;
7161 }
7162 if (!strcmp(name, "vkCmdDrawIndirect"))
7163 {
7164 return (void*)entry_vkCmdDrawIndirect;
7165 }
7166 if (!strcmp(name, "vkCmdDrawIndexedIndirect"))
7167 {
7168 return (void*)entry_vkCmdDrawIndexedIndirect;
7169 }
7170 if (!strcmp(name, "vkCmdDispatch"))
7171 {
7172 return (void*)entry_vkCmdDispatch;
7173 }
7174 if (!strcmp(name, "vkCmdDispatchIndirect"))
7175 {
7176 return (void*)entry_vkCmdDispatchIndirect;
7177 }
7178 if (!strcmp(name, "vkCmdCopyBuffer"))
7179 {
7180 return (void*)entry_vkCmdCopyBuffer;
7181 }
7182 if (!strcmp(name, "vkCmdCopyImage"))
7183 {
7184 return (void*)entry_vkCmdCopyImage;
7185 }
7186 if (!strcmp(name, "vkCmdBlitImage"))
7187 {
7188 return (void*)entry_vkCmdBlitImage;
7189 }
7190 if (!strcmp(name, "vkCmdCopyBufferToImage"))
7191 {
7192 return (void*)entry_vkCmdCopyBufferToImage;
7193 }
7194 if (!strcmp(name, "vkCmdCopyImageToBuffer"))
7195 {
7196 return (void*)entry_vkCmdCopyImageToBuffer;
7197 }
7198 if (!strcmp(name, "vkCmdUpdateBuffer"))
7199 {
7200 return (void*)entry_vkCmdUpdateBuffer;
7201 }
7202 if (!strcmp(name, "vkCmdFillBuffer"))
7203 {
7204 return (void*)entry_vkCmdFillBuffer;
7205 }
7206 if (!strcmp(name, "vkCmdClearColorImage"))
7207 {
7208 return (void*)entry_vkCmdClearColorImage;
7209 }
7210 if (!strcmp(name, "vkCmdClearDepthStencilImage"))
7211 {
7212 return (void*)entry_vkCmdClearDepthStencilImage;
7213 }
7214 if (!strcmp(name, "vkCmdClearAttachments"))
7215 {
7216 return (void*)entry_vkCmdClearAttachments;
7217 }
7218 if (!strcmp(name, "vkCmdResolveImage"))
7219 {
7220 return (void*)entry_vkCmdResolveImage;
7221 }
7222 if (!strcmp(name, "vkCmdSetEvent"))
7223 {
7224 return (void*)entry_vkCmdSetEvent;
7225 }
7226 if (!strcmp(name, "vkCmdResetEvent"))
7227 {
7228 return (void*)entry_vkCmdResetEvent;
7229 }
7230 if (!strcmp(name, "vkCmdWaitEvents"))
7231 {
7232 return (void*)entry_vkCmdWaitEvents;
7233 }
7234 if (!strcmp(name, "vkCmdPipelineBarrier"))
7235 {
7236 return (void*)entry_vkCmdPipelineBarrier;
7237 }
7238 if (!strcmp(name, "vkCmdBeginQuery"))
7239 {
7240 return (void*)entry_vkCmdBeginQuery;
7241 }
7242 if (!strcmp(name, "vkCmdEndQuery"))
7243 {
7244 return (void*)entry_vkCmdEndQuery;
7245 }
7246 if (!strcmp(name, "vkCmdResetQueryPool"))
7247 {
7248 return (void*)entry_vkCmdResetQueryPool;
7249 }
7250 if (!strcmp(name, "vkCmdWriteTimestamp"))
7251 {
7252 return (void*)entry_vkCmdWriteTimestamp;
7253 }
7254 if (!strcmp(name, "vkCmdCopyQueryPoolResults"))
7255 {
7256 return (void*)entry_vkCmdCopyQueryPoolResults;
7257 }
7258 if (!strcmp(name, "vkCmdPushConstants"))
7259 {
7260 return (void*)entry_vkCmdPushConstants;
7261 }
7262 if (!strcmp(name, "vkCmdBeginRenderPass"))
7263 {
7264 return (void*)entry_vkCmdBeginRenderPass;
7265 }
7266 if (!strcmp(name, "vkCmdNextSubpass"))
7267 {
7268 return (void*)entry_vkCmdNextSubpass;
7269 }
7270 if (!strcmp(name, "vkCmdEndRenderPass"))
7271 {
7272 return (void*)entry_vkCmdEndRenderPass;
7273 }
7274 if (!strcmp(name, "vkCmdExecuteCommands"))
7275 {
7276 return (void*)entry_vkCmdExecuteCommands;
7277 }
7278#endif
7279#ifdef VK_VERSION_1_1
7280 if (!strcmp(name, "vkEnumerateInstanceVersion"))
7281 {
7282 return has1_1OrHigher ? (void*)entry_vkEnumerateInstanceVersion : nullptr;
7283 }
7284 if (!strcmp(name, "vkBindBufferMemory2"))
7285 {
7286 return has1_1OrHigher ? (void*)entry_vkBindBufferMemory2 : nullptr;
7287 }
7288 if (!strcmp(name, "vkBindImageMemory2"))
7289 {
7290 return has1_1OrHigher ? (void*)entry_vkBindImageMemory2 : nullptr;
7291 }
7292 if (!strcmp(name, "vkGetDeviceGroupPeerMemoryFeatures"))
7293 {
7294 return has1_1OrHigher ? (void*)entry_vkGetDeviceGroupPeerMemoryFeatures : nullptr;
7295 }
7296 if (!strcmp(name, "vkCmdSetDeviceMask"))
7297 {
7298 return has1_1OrHigher ? (void*)entry_vkCmdSetDeviceMask : nullptr;
7299 }
7300 if (!strcmp(name, "vkCmdDispatchBase"))
7301 {
7302 return has1_1OrHigher ? (void*)entry_vkCmdDispatchBase : nullptr;
7303 }
7304 if (!strcmp(name, "vkEnumeratePhysicalDeviceGroups"))
7305 {
7306 return nullptr;
7307 }
7308 if (!strcmp(name, "vkGetImageMemoryRequirements2"))
7309 {
7310 return has1_1OrHigher ? (void*)entry_vkGetImageMemoryRequirements2 : nullptr;
7311 }
7312 if (!strcmp(name, "vkGetBufferMemoryRequirements2"))
7313 {
7314 return has1_1OrHigher ? (void*)entry_vkGetBufferMemoryRequirements2 : nullptr;
7315 }
7316 if (!strcmp(name, "vkGetImageSparseMemoryRequirements2"))
7317 {
7318 return has1_1OrHigher ? (void*)entry_vkGetImageSparseMemoryRequirements2 : nullptr;
7319 }
7320 if (!strcmp(name, "vkGetPhysicalDeviceFeatures2"))
7321 {
7322 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceFeatures2 : nullptr;
7323 }
7324 if (!strcmp(name, "vkGetPhysicalDeviceProperties2"))
7325 {
7326 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceProperties2 : nullptr;
7327 }
7328 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties2"))
7329 {
7330 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceFormatProperties2 : nullptr;
7331 }
7332 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties2"))
7333 {
7334 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceImageFormatProperties2 : nullptr;
7335 }
7336 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties2"))
7337 {
7338 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties2 : nullptr;
7339 }
7340 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties2"))
7341 {
7342 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceMemoryProperties2 : nullptr;
7343 }
7344 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties2"))
7345 {
7346 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties2 : nullptr;
7347 }
7348 if (!strcmp(name, "vkTrimCommandPool"))
7349 {
7350 return has1_1OrHigher ? (void*)entry_vkTrimCommandPool : nullptr;
7351 }
7352 if (!strcmp(name, "vkGetDeviceQueue2"))
7353 {
7354 return has1_1OrHigher ? (void*)entry_vkGetDeviceQueue2 : nullptr;
7355 }
7356 if (!strcmp(name, "vkCreateSamplerYcbcrConversion"))
7357 {
7358 return has1_1OrHigher ? (void*)entry_vkCreateSamplerYcbcrConversion : nullptr;
7359 }
7360 if (!strcmp(name, "vkDestroySamplerYcbcrConversion"))
7361 {
7362 return has1_1OrHigher ? (void*)entry_vkDestroySamplerYcbcrConversion : nullptr;
7363 }
7364 if (!strcmp(name, "vkCreateDescriptorUpdateTemplate"))
7365 {
7366 return has1_1OrHigher ? (void*)entry_vkCreateDescriptorUpdateTemplate : nullptr;
7367 }
7368 if (!strcmp(name, "vkDestroyDescriptorUpdateTemplate"))
7369 {
7370 return has1_1OrHigher ? (void*)entry_vkDestroyDescriptorUpdateTemplate : nullptr;
7371 }
7372 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplate"))
7373 {
7374 return has1_1OrHigher ? (void*)entry_vkUpdateDescriptorSetWithTemplate : nullptr;
7375 }
7376 if (!strcmp(name, "vkGetPhysicalDeviceExternalBufferProperties"))
7377 {
7378 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceExternalBufferProperties : nullptr;
7379 }
7380 if (!strcmp(name, "vkGetPhysicalDeviceExternalFenceProperties"))
7381 {
7382 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceExternalFenceProperties : nullptr;
7383 }
7384 if (!strcmp(name, "vkGetPhysicalDeviceExternalSemaphoreProperties"))
7385 {
7386 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceExternalSemaphoreProperties : nullptr;
7387 }
7388 if (!strcmp(name, "vkGetDescriptorSetLayoutSupport"))
7389 {
7390 return has1_1OrHigher ? (void*)entry_vkGetDescriptorSetLayoutSupport : nullptr;
7391 }
7392#endif
7393#ifdef VK_KHR_surface
7394 if (!strcmp(name, "vkDestroySurfaceKHR"))
7395 {
7396 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_surface");
7397 return hasExt ? (void*)entry_vkDestroySurfaceKHR : nullptr;
7398 }
7399 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceSupportKHR"))
7400 {
7401 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_surface");
7402 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceSupportKHR : nullptr;
7403 }
7404 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR"))
7405 {
7406 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_surface");
7407 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceCapabilitiesKHR : nullptr;
7408 }
7409 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceFormatsKHR"))
7410 {
7411 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_surface");
7412 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceFormatsKHR : nullptr;
7413 }
7414 if (!strcmp(name, "vkGetPhysicalDeviceSurfacePresentModesKHR"))
7415 {
7416 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_surface");
7417 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfacePresentModesKHR : nullptr;
7418 }
7419#endif
7420#ifdef VK_KHR_swapchain
7421 if (!strcmp(name, "vkCreateSwapchainKHR"))
7422 {
7423 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7424 return hasExt ? (void*)entry_vkCreateSwapchainKHR : nullptr;
7425 }
7426 if (!strcmp(name, "vkDestroySwapchainKHR"))
7427 {
7428 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7429 return hasExt ? (void*)entry_vkDestroySwapchainKHR : nullptr;
7430 }
7431 if (!strcmp(name, "vkGetSwapchainImagesKHR"))
7432 {
7433 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7434 return hasExt ? (void*)entry_vkGetSwapchainImagesKHR : nullptr;
7435 }
7436 if (!strcmp(name, "vkAcquireNextImageKHR"))
7437 {
7438 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7439 return hasExt ? (void*)entry_vkAcquireNextImageKHR : nullptr;
7440 }
7441 if (!strcmp(name, "vkQueuePresentKHR"))
7442 {
7443 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7444 return hasExt ? (void*)entry_vkQueuePresentKHR : nullptr;
7445 }
7446 if (!strcmp(name, "vkGetDeviceGroupPresentCapabilitiesKHR"))
7447 {
7448 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7449 return hasExt ? (void*)entry_vkGetDeviceGroupPresentCapabilitiesKHR : nullptr;
7450 }
7451 if (!strcmp(name, "vkGetDeviceGroupSurfacePresentModesKHR"))
7452 {
7453 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7454 return hasExt ? (void*)entry_vkGetDeviceGroupSurfacePresentModesKHR : nullptr;
7455 }
7456 if (!strcmp(name, "vkGetPhysicalDevicePresentRectanglesKHR"))
7457 {
7458 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7459 return hasExt ? (void*)entry_vkGetPhysicalDevicePresentRectanglesKHR : nullptr;
7460 }
7461 if (!strcmp(name, "vkAcquireNextImage2KHR"))
7462 {
7463 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7464 return hasExt ? (void*)entry_vkAcquireNextImage2KHR : nullptr;
7465 }
7466#endif
7467#ifdef VK_KHR_display
7468 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPropertiesKHR"))
7469 {
7470 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
7471 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayPropertiesKHR : nullptr;
7472 }
7473 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR"))
7474 {
7475 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
7476 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayPlanePropertiesKHR : nullptr;
7477 }
7478 if (!strcmp(name, "vkGetDisplayPlaneSupportedDisplaysKHR"))
7479 {
7480 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
7481 return hasExt ? (void*)entry_vkGetDisplayPlaneSupportedDisplaysKHR : nullptr;
7482 }
7483 if (!strcmp(name, "vkGetDisplayModePropertiesKHR"))
7484 {
7485 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
7486 return hasExt ? (void*)entry_vkGetDisplayModePropertiesKHR : nullptr;
7487 }
7488 if (!strcmp(name, "vkCreateDisplayModeKHR"))
7489 {
7490 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
7491 return hasExt ? (void*)entry_vkCreateDisplayModeKHR : nullptr;
7492 }
7493 if (!strcmp(name, "vkGetDisplayPlaneCapabilitiesKHR"))
7494 {
7495 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
7496 return hasExt ? (void*)entry_vkGetDisplayPlaneCapabilitiesKHR : nullptr;
7497 }
7498 if (!strcmp(name, "vkCreateDisplayPlaneSurfaceKHR"))
7499 {
7500 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
7501 return hasExt ? (void*)entry_vkCreateDisplayPlaneSurfaceKHR : nullptr;
7502 }
7503#endif
7504#ifdef VK_KHR_display_swapchain
7505 if (!strcmp(name, "vkCreateSharedSwapchainsKHR"))
7506 {
7507 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display_swapchain");
7508 return hasExt ? (void*)entry_vkCreateSharedSwapchainsKHR : nullptr;
7509 }
7510#endif
7511#ifdef VK_KHR_xlib_surface
7512 if (!strcmp(name, "vkCreateXlibSurfaceKHR"))
7513 {
7514 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_xlib_surface");
7515 return hasExt ? (void*)entry_vkCreateXlibSurfaceKHR : nullptr;
7516 }
7517 if (!strcmp(name, "vkGetPhysicalDeviceXlibPresentationSupportKHR"))
7518 {
7519 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_xlib_surface");
7520 return hasExt ? (void*)entry_vkGetPhysicalDeviceXlibPresentationSupportKHR : nullptr;
7521 }
7522#endif
7523#ifdef VK_KHR_xcb_surface
7524 if (!strcmp(name, "vkCreateXcbSurfaceKHR"))
7525 {
7526 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_xcb_surface");
7527 return hasExt ? (void*)entry_vkCreateXcbSurfaceKHR : nullptr;
7528 }
7529 if (!strcmp(name, "vkGetPhysicalDeviceXcbPresentationSupportKHR"))
7530 {
7531 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_xcb_surface");
7532 return hasExt ? (void*)entry_vkGetPhysicalDeviceXcbPresentationSupportKHR : nullptr;
7533 }
7534#endif
7535#ifdef VK_KHR_wayland_surface
7536 if (!strcmp(name, "vkCreateWaylandSurfaceKHR"))
7537 {
7538 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_wayland_surface");
7539 return hasExt ? (void*)entry_vkCreateWaylandSurfaceKHR : nullptr;
7540 }
7541 if (!strcmp(name, "vkGetPhysicalDeviceWaylandPresentationSupportKHR"))
7542 {
7543 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_wayland_surface");
7544 return hasExt ? (void*)entry_vkGetPhysicalDeviceWaylandPresentationSupportKHR : nullptr;
7545 }
7546#endif
7547#ifdef VK_KHR_mir_surface
7548 if (!strcmp(name, "vkCreateMirSurfaceKHR"))
7549 {
7550 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_mir_surface");
7551 return hasExt ? (void*)entry_vkCreateMirSurfaceKHR : nullptr;
7552 }
7553 if (!strcmp(name, "vkGetPhysicalDeviceMirPresentationSupportKHR"))
7554 {
7555 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_mir_surface");
7556 return hasExt ? (void*)entry_vkGetPhysicalDeviceMirPresentationSupportKHR : nullptr;
7557 }
7558#endif
7559#ifdef VK_KHR_android_surface
7560 if (!strcmp(name, "vkCreateAndroidSurfaceKHR"))
7561 {
7562 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_android_surface");
7563 return hasExt ? (void*)entry_vkCreateAndroidSurfaceKHR : nullptr;
7564 }
7565#endif
7566#ifdef VK_KHR_win32_surface
7567 if (!strcmp(name, "vkCreateWin32SurfaceKHR"))
7568 {
7569 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_win32_surface");
7570 return hasExt ? (void*)entry_vkCreateWin32SurfaceKHR : nullptr;
7571 }
7572 if (!strcmp(name, "vkGetPhysicalDeviceWin32PresentationSupportKHR"))
7573 {
7574 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_win32_surface");
7575 return hasExt ? (void*)entry_vkGetPhysicalDeviceWin32PresentationSupportKHR : nullptr;
7576 }
7577#endif
7578#ifdef VK_KHR_get_physical_device_properties2
7579 if (!strcmp(name, "vkGetPhysicalDeviceFeatures2KHR"))
7580 {
7581 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
7582 return hasExt ? (void*)entry_vkGetPhysicalDeviceFeatures2KHR : nullptr;
7583 }
7584 if (!strcmp(name, "vkGetPhysicalDeviceProperties2KHR"))
7585 {
7586 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
7587 return hasExt ? (void*)entry_vkGetPhysicalDeviceProperties2KHR : nullptr;
7588 }
7589 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties2KHR"))
7590 {
7591 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
7592 return hasExt ? (void*)entry_vkGetPhysicalDeviceFormatProperties2KHR : nullptr;
7593 }
7594 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties2KHR"))
7595 {
7596 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
7597 return hasExt ? (void*)entry_vkGetPhysicalDeviceImageFormatProperties2KHR : nullptr;
7598 }
7599 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties2KHR"))
7600 {
7601 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
7602 return hasExt ? (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties2KHR : nullptr;
7603 }
7604 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties2KHR"))
7605 {
7606 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
7607 return hasExt ? (void*)entry_vkGetPhysicalDeviceMemoryProperties2KHR : nullptr;
7608 }
7609 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR"))
7610 {
7611 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
7612 return hasExt ? (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties2KHR : nullptr;
7613 }
7614#endif
7615#ifdef VK_KHR_device_group
7616 if (!strcmp(name, "vkGetDeviceGroupPeerMemoryFeaturesKHR"))
7617 {
7618 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_device_group");
7619 return hasExt ? (void*)entry_vkGetDeviceGroupPeerMemoryFeaturesKHR : nullptr;
7620 }
7621 if (!strcmp(name, "vkCmdSetDeviceMaskKHR"))
7622 {
7623 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_device_group");
7624 return hasExt ? (void*)entry_vkCmdSetDeviceMaskKHR : nullptr;
7625 }
7626 if (!strcmp(name, "vkCmdDispatchBaseKHR"))
7627 {
7628 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_device_group");
7629 return hasExt ? (void*)entry_vkCmdDispatchBaseKHR : nullptr;
7630 }
7631#endif
7632#ifdef VK_KHR_maintenance1
7633 if (!strcmp(name, "vkTrimCommandPoolKHR"))
7634 {
7635 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_maintenance1");
7636 return hasExt ? (void*)entry_vkTrimCommandPoolKHR : nullptr;
7637 }
7638#endif
7639#ifdef VK_KHR_device_group_creation
7640 if (!strcmp(name, "vkEnumeratePhysicalDeviceGroupsKHR"))
7641 {
7642 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_device_group_creation");
7643 return hasExt ? (void*)entry_vkEnumeratePhysicalDeviceGroupsKHR : nullptr;
7644 }
7645#endif
7646#ifdef VK_KHR_external_memory_capabilities
7647 if (!strcmp(name, "vkGetPhysicalDeviceExternalBufferPropertiesKHR"))
7648 {
7649 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_memory_capabilities");
7650 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalBufferPropertiesKHR : nullptr;
7651 }
7652#endif
7653#ifdef VK_KHR_external_memory_win32
7654 if (!strcmp(name, "vkGetMemoryWin32HandleKHR"))
7655 {
7656 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_memory_win32");
7657 return hasExt ? (void*)entry_vkGetMemoryWin32HandleKHR : nullptr;
7658 }
7659 if (!strcmp(name, "vkGetMemoryWin32HandlePropertiesKHR"))
7660 {
7661 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_memory_win32");
7662 return hasExt ? (void*)entry_vkGetMemoryWin32HandlePropertiesKHR : nullptr;
7663 }
7664#endif
7665#ifdef VK_KHR_external_memory_fd
7666 if (!strcmp(name, "vkGetMemoryFdKHR"))
7667 {
7668 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_memory_fd");
7669 return hasExt ? (void*)entry_vkGetMemoryFdKHR : nullptr;
7670 }
7671 if (!strcmp(name, "vkGetMemoryFdPropertiesKHR"))
7672 {
7673 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_memory_fd");
7674 return hasExt ? (void*)entry_vkGetMemoryFdPropertiesKHR : nullptr;
7675 }
7676#endif
7677#ifdef VK_KHR_external_semaphore_capabilities
7678 if (!strcmp(name, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR"))
7679 {
7680 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_semaphore_capabilities");
7681 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR : nullptr;
7682 }
7683#endif
7684#ifdef VK_KHR_external_semaphore_win32
7685 if (!strcmp(name, "vkImportSemaphoreWin32HandleKHR"))
7686 {
7687 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_semaphore_win32");
7688 return hasExt ? (void*)entry_vkImportSemaphoreWin32HandleKHR : nullptr;
7689 }
7690 if (!strcmp(name, "vkGetSemaphoreWin32HandleKHR"))
7691 {
7692 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_semaphore_win32");
7693 return hasExt ? (void*)entry_vkGetSemaphoreWin32HandleKHR : nullptr;
7694 }
7695#endif
7696#ifdef VK_KHR_external_semaphore_fd
7697 if (!strcmp(name, "vkImportSemaphoreFdKHR"))
7698 {
7699 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_semaphore_fd");
7700 return hasExt ? (void*)entry_vkImportSemaphoreFdKHR : nullptr;
7701 }
7702 if (!strcmp(name, "vkGetSemaphoreFdKHR"))
7703 {
7704 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_semaphore_fd");
7705 return hasExt ? (void*)entry_vkGetSemaphoreFdKHR : nullptr;
7706 }
7707#endif
7708#ifdef VK_KHR_push_descriptor
7709 if (!strcmp(name, "vkCmdPushDescriptorSetKHR"))
7710 {
7711 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_push_descriptor");
7712 return hasExt ? (void*)entry_vkCmdPushDescriptorSetKHR : nullptr;
7713 }
7714 if (!strcmp(name, "vkCmdPushDescriptorSetWithTemplateKHR"))
7715 {
7716 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_push_descriptor");
7717 return hasExt ? (void*)entry_vkCmdPushDescriptorSetWithTemplateKHR : nullptr;
7718 }
7719#endif
7720#ifdef VK_KHR_descriptor_update_template
7721 if (!strcmp(name, "vkCreateDescriptorUpdateTemplateKHR"))
7722 {
7723 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_descriptor_update_template");
7724 return hasExt ? (void*)entry_vkCreateDescriptorUpdateTemplateKHR : nullptr;
7725 }
7726 if (!strcmp(name, "vkDestroyDescriptorUpdateTemplateKHR"))
7727 {
7728 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_descriptor_update_template");
7729 return hasExt ? (void*)entry_vkDestroyDescriptorUpdateTemplateKHR : nullptr;
7730 }
7731 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplateKHR"))
7732 {
7733 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_descriptor_update_template");
7734 return hasExt ? (void*)entry_vkUpdateDescriptorSetWithTemplateKHR : nullptr;
7735 }
7736#endif
7737#ifdef VK_KHR_create_renderpass2
7738 if (!strcmp(name, "vkCreateRenderPass2KHR"))
7739 {
7740 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_create_renderpass2");
7741 return hasExt ? (void*)entry_vkCreateRenderPass2KHR : nullptr;
7742 }
7743 if (!strcmp(name, "vkCmdBeginRenderPass2KHR"))
7744 {
7745 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_create_renderpass2");
7746 return hasExt ? (void*)entry_vkCmdBeginRenderPass2KHR : nullptr;
7747 }
7748 if (!strcmp(name, "vkCmdNextSubpass2KHR"))
7749 {
7750 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_create_renderpass2");
7751 return hasExt ? (void*)entry_vkCmdNextSubpass2KHR : nullptr;
7752 }
7753 if (!strcmp(name, "vkCmdEndRenderPass2KHR"))
7754 {
7755 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_create_renderpass2");
7756 return hasExt ? (void*)entry_vkCmdEndRenderPass2KHR : nullptr;
7757 }
7758#endif
7759#ifdef VK_KHR_shared_presentable_image
7760 if (!strcmp(name, "vkGetSwapchainStatusKHR"))
7761 {
7762 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_shared_presentable_image");
7763 return hasExt ? (void*)entry_vkGetSwapchainStatusKHR : nullptr;
7764 }
7765#endif
7766#ifdef VK_KHR_external_fence_capabilities
7767 if (!strcmp(name, "vkGetPhysicalDeviceExternalFencePropertiesKHR"))
7768 {
7769 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_fence_capabilities");
7770 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalFencePropertiesKHR : nullptr;
7771 }
7772#endif
7773#ifdef VK_KHR_external_fence_win32
7774 if (!strcmp(name, "vkImportFenceWin32HandleKHR"))
7775 {
7776 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_fence_win32");
7777 return hasExt ? (void*)entry_vkImportFenceWin32HandleKHR : nullptr;
7778 }
7779 if (!strcmp(name, "vkGetFenceWin32HandleKHR"))
7780 {
7781 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_fence_win32");
7782 return hasExt ? (void*)entry_vkGetFenceWin32HandleKHR : nullptr;
7783 }
7784#endif
7785#ifdef VK_KHR_external_fence_fd
7786 if (!strcmp(name, "vkImportFenceFdKHR"))
7787 {
7788 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_fence_fd");
7789 return hasExt ? (void*)entry_vkImportFenceFdKHR : nullptr;
7790 }
7791 if (!strcmp(name, "vkGetFenceFdKHR"))
7792 {
7793 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_fence_fd");
7794 return hasExt ? (void*)entry_vkGetFenceFdKHR : nullptr;
7795 }
7796#endif
7797#ifdef VK_KHR_get_surface_capabilities2
7798 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2KHR"))
7799 {
7800 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_surface_capabilities2");
7801 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceCapabilities2KHR : nullptr;
7802 }
7803 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceFormats2KHR"))
7804 {
7805 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_surface_capabilities2");
7806 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceFormats2KHR : nullptr;
7807 }
7808#endif
7809#ifdef VK_KHR_get_display_properties2
7810 if (!strcmp(name, "vkGetPhysicalDeviceDisplayProperties2KHR"))
7811 {
7812 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_display_properties2");
7813 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayProperties2KHR : nullptr;
7814 }
7815 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR"))
7816 {
7817 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_display_properties2");
7818 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayPlaneProperties2KHR : nullptr;
7819 }
7820 if (!strcmp(name, "vkGetDisplayModeProperties2KHR"))
7821 {
7822 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_display_properties2");
7823 return hasExt ? (void*)entry_vkGetDisplayModeProperties2KHR : nullptr;
7824 }
7825 if (!strcmp(name, "vkGetDisplayPlaneCapabilities2KHR"))
7826 {
7827 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_display_properties2");
7828 return hasExt ? (void*)entry_vkGetDisplayPlaneCapabilities2KHR : nullptr;
7829 }
7830#endif
7831#ifdef VK_KHR_get_memory_requirements2
7832 if (!strcmp(name, "vkGetImageMemoryRequirements2KHR"))
7833 {
7834 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_memory_requirements2");
7835 return hasExt ? (void*)entry_vkGetImageMemoryRequirements2KHR : nullptr;
7836 }
7837 if (!strcmp(name, "vkGetBufferMemoryRequirements2KHR"))
7838 {
7839 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_memory_requirements2");
7840 return hasExt ? (void*)entry_vkGetBufferMemoryRequirements2KHR : nullptr;
7841 }
7842 if (!strcmp(name, "vkGetImageSparseMemoryRequirements2KHR"))
7843 {
7844 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_memory_requirements2");
7845 return hasExt ? (void*)entry_vkGetImageSparseMemoryRequirements2KHR : nullptr;
7846 }
7847#endif
7848#ifdef VK_KHR_sampler_ycbcr_conversion
7849 if (!strcmp(name, "vkCreateSamplerYcbcrConversionKHR"))
7850 {
7851 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_sampler_ycbcr_conversion");
7852 return hasExt ? (void*)entry_vkCreateSamplerYcbcrConversionKHR : nullptr;
7853 }
7854 if (!strcmp(name, "vkDestroySamplerYcbcrConversionKHR"))
7855 {
7856 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_sampler_ycbcr_conversion");
7857 return hasExt ? (void*)entry_vkDestroySamplerYcbcrConversionKHR : nullptr;
7858 }
7859#endif
7860#ifdef VK_KHR_bind_memory2
7861 if (!strcmp(name, "vkBindBufferMemory2KHR"))
7862 {
7863 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_bind_memory2");
7864 return hasExt ? (void*)entry_vkBindBufferMemory2KHR : nullptr;
7865 }
7866 if (!strcmp(name, "vkBindImageMemory2KHR"))
7867 {
7868 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_bind_memory2");
7869 return hasExt ? (void*)entry_vkBindImageMemory2KHR : nullptr;
7870 }
7871#endif
7872#ifdef VK_KHR_maintenance3
7873 if (!strcmp(name, "vkGetDescriptorSetLayoutSupportKHR"))
7874 {
7875 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_maintenance3");
7876 return hasExt ? (void*)entry_vkGetDescriptorSetLayoutSupportKHR : nullptr;
7877 }
7878#endif
7879#ifdef VK_KHR_draw_indirect_count
7880 if (!strcmp(name, "vkCmdDrawIndirectCountKHR"))
7881 {
7882 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_draw_indirect_count");
7883 return hasExt ? (void*)entry_vkCmdDrawIndirectCountKHR : nullptr;
7884 }
7885 if (!strcmp(name, "vkCmdDrawIndexedIndirectCountKHR"))
7886 {
7887 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_draw_indirect_count");
7888 return hasExt ? (void*)entry_vkCmdDrawIndexedIndirectCountKHR : nullptr;
7889 }
7890#endif
7891#ifdef VK_ANDROID_native_buffer
7892 if (!strcmp(name, "vkGetSwapchainGrallocUsageANDROID"))
7893 {
7894 bool hasExt = resources->hasDeviceExtension(device, "VK_ANDROID_native_buffer");
7895 return hasExt ? (void*)entry_vkGetSwapchainGrallocUsageANDROID : nullptr;
7896 }
7897 if (!strcmp(name, "vkAcquireImageANDROID"))
7898 {
7899 bool hasExt = resources->hasDeviceExtension(device, "VK_ANDROID_native_buffer");
7900 return hasExt ? (void*)entry_vkAcquireImageANDROID : nullptr;
7901 }
7902 if (!strcmp(name, "vkQueueSignalReleaseImageANDROID"))
7903 {
7904 bool hasExt = resources->hasDeviceExtension(device, "VK_ANDROID_native_buffer");
7905 return hasExt ? (void*)entry_vkQueueSignalReleaseImageANDROID : nullptr;
7906 }
7907#endif
7908#ifdef VK_EXT_debug_report
7909 if (!strcmp(name, "vkCreateDebugReportCallbackEXT"))
7910 {
7911 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_report");
7912 return hasExt ? (void*)entry_vkCreateDebugReportCallbackEXT : nullptr;
7913 }
7914 if (!strcmp(name, "vkDestroyDebugReportCallbackEXT"))
7915 {
7916 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_report");
7917 return hasExt ? (void*)entry_vkDestroyDebugReportCallbackEXT : nullptr;
7918 }
7919 if (!strcmp(name, "vkDebugReportMessageEXT"))
7920 {
7921 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_report");
7922 return hasExt ? (void*)entry_vkDebugReportMessageEXT : nullptr;
7923 }
7924#endif
7925#ifdef VK_EXT_debug_marker
7926 if (!strcmp(name, "vkDebugMarkerSetObjectTagEXT"))
7927 {
7928 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_marker");
7929 return hasExt ? (void*)entry_vkDebugMarkerSetObjectTagEXT : nullptr;
7930 }
7931 if (!strcmp(name, "vkDebugMarkerSetObjectNameEXT"))
7932 {
7933 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_marker");
7934 return hasExt ? (void*)entry_vkDebugMarkerSetObjectNameEXT : nullptr;
7935 }
7936 if (!strcmp(name, "vkCmdDebugMarkerBeginEXT"))
7937 {
7938 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_marker");
7939 return hasExt ? (void*)entry_vkCmdDebugMarkerBeginEXT : nullptr;
7940 }
7941 if (!strcmp(name, "vkCmdDebugMarkerEndEXT"))
7942 {
7943 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_marker");
7944 return hasExt ? (void*)entry_vkCmdDebugMarkerEndEXT : nullptr;
7945 }
7946 if (!strcmp(name, "vkCmdDebugMarkerInsertEXT"))
7947 {
7948 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_marker");
7949 return hasExt ? (void*)entry_vkCmdDebugMarkerInsertEXT : nullptr;
7950 }
7951#endif
7952#ifdef VK_AMD_draw_indirect_count
7953 if (!strcmp(name, "vkCmdDrawIndirectCountAMD"))
7954 {
7955 bool hasExt = resources->hasDeviceExtension(device, "VK_AMD_draw_indirect_count");
7956 return hasExt ? (void*)entry_vkCmdDrawIndirectCountAMD : nullptr;
7957 }
7958 if (!strcmp(name, "vkCmdDrawIndexedIndirectCountAMD"))
7959 {
7960 bool hasExt = resources->hasDeviceExtension(device, "VK_AMD_draw_indirect_count");
7961 return hasExt ? (void*)entry_vkCmdDrawIndexedIndirectCountAMD : nullptr;
7962 }
7963#endif
7964#ifdef VK_AMD_shader_info
7965 if (!strcmp(name, "vkGetShaderInfoAMD"))
7966 {
7967 bool hasExt = resources->hasDeviceExtension(device, "VK_AMD_shader_info");
7968 return hasExt ? (void*)entry_vkGetShaderInfoAMD : nullptr;
7969 }
7970#endif
7971#ifdef VK_NV_external_memory_capabilities
7972 if (!strcmp(name, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV"))
7973 {
7974 bool hasExt = resources->hasDeviceExtension(device, "VK_NV_external_memory_capabilities");
7975 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalImageFormatPropertiesNV : nullptr;
7976 }
7977#endif
7978#ifdef VK_NV_external_memory_win32
7979 if (!strcmp(name, "vkGetMemoryWin32HandleNV"))
7980 {
7981 bool hasExt = resources->hasDeviceExtension(device, "VK_NV_external_memory_win32");
7982 return hasExt ? (void*)entry_vkGetMemoryWin32HandleNV : nullptr;
7983 }
7984#endif
7985#ifdef VK_NN_vi_surface
7986 if (!strcmp(name, "vkCreateViSurfaceNN"))
7987 {
7988 bool hasExt = resources->hasDeviceExtension(device, "VK_NN_vi_surface");
7989 return hasExt ? (void*)entry_vkCreateViSurfaceNN : nullptr;
7990 }
7991#endif
7992#ifdef VK_EXT_conditional_rendering
7993 if (!strcmp(name, "vkCmdBeginConditionalRenderingEXT"))
7994 {
7995 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_conditional_rendering");
7996 return hasExt ? (void*)entry_vkCmdBeginConditionalRenderingEXT : nullptr;
7997 }
7998 if (!strcmp(name, "vkCmdEndConditionalRenderingEXT"))
7999 {
8000 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_conditional_rendering");
8001 return hasExt ? (void*)entry_vkCmdEndConditionalRenderingEXT : nullptr;
8002 }
8003#endif
8004#ifdef VK_NVX_device_generated_commands
8005 if (!strcmp(name, "vkCmdProcessCommandsNVX"))
8006 {
8007 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
8008 return hasExt ? (void*)entry_vkCmdProcessCommandsNVX : nullptr;
8009 }
8010 if (!strcmp(name, "vkCmdReserveSpaceForCommandsNVX"))
8011 {
8012 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
8013 return hasExt ? (void*)entry_vkCmdReserveSpaceForCommandsNVX : nullptr;
8014 }
8015 if (!strcmp(name, "vkCreateIndirectCommandsLayoutNVX"))
8016 {
8017 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
8018 return hasExt ? (void*)entry_vkCreateIndirectCommandsLayoutNVX : nullptr;
8019 }
8020 if (!strcmp(name, "vkDestroyIndirectCommandsLayoutNVX"))
8021 {
8022 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
8023 return hasExt ? (void*)entry_vkDestroyIndirectCommandsLayoutNVX : nullptr;
8024 }
8025 if (!strcmp(name, "vkCreateObjectTableNVX"))
8026 {
8027 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
8028 return hasExt ? (void*)entry_vkCreateObjectTableNVX : nullptr;
8029 }
8030 if (!strcmp(name, "vkDestroyObjectTableNVX"))
8031 {
8032 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
8033 return hasExt ? (void*)entry_vkDestroyObjectTableNVX : nullptr;
8034 }
8035 if (!strcmp(name, "vkRegisterObjectsNVX"))
8036 {
8037 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
8038 return hasExt ? (void*)entry_vkRegisterObjectsNVX : nullptr;
8039 }
8040 if (!strcmp(name, "vkUnregisterObjectsNVX"))
8041 {
8042 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
8043 return hasExt ? (void*)entry_vkUnregisterObjectsNVX : nullptr;
8044 }
8045 if (!strcmp(name, "vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX"))
8046 {
8047 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
8048 return hasExt ? (void*)entry_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX : nullptr;
8049 }
8050#endif
8051#ifdef VK_NV_clip_space_w_scaling
8052 if (!strcmp(name, "vkCmdSetViewportWScalingNV"))
8053 {
8054 bool hasExt = resources->hasDeviceExtension(device, "VK_NV_clip_space_w_scaling");
8055 return hasExt ? (void*)entry_vkCmdSetViewportWScalingNV : nullptr;
8056 }
8057#endif
8058#ifdef VK_EXT_direct_mode_display
8059 if (!strcmp(name, "vkReleaseDisplayEXT"))
8060 {
8061 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_direct_mode_display");
8062 return hasExt ? (void*)entry_vkReleaseDisplayEXT : nullptr;
8063 }
8064#endif
8065#ifdef VK_EXT_acquire_xlib_display
8066 if (!strcmp(name, "vkAcquireXlibDisplayEXT"))
8067 {
8068 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_acquire_xlib_display");
8069 return hasExt ? (void*)entry_vkAcquireXlibDisplayEXT : nullptr;
8070 }
8071 if (!strcmp(name, "vkGetRandROutputDisplayEXT"))
8072 {
8073 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_acquire_xlib_display");
8074 return hasExt ? (void*)entry_vkGetRandROutputDisplayEXT : nullptr;
8075 }
8076#endif
8077#ifdef VK_EXT_display_surface_counter
8078 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2EXT"))
8079 {
8080 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_display_surface_counter");
8081 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceCapabilities2EXT : nullptr;
8082 }
8083#endif
8084#ifdef VK_EXT_display_control
8085 if (!strcmp(name, "vkDisplayPowerControlEXT"))
8086 {
8087 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_display_control");
8088 return hasExt ? (void*)entry_vkDisplayPowerControlEXT : nullptr;
8089 }
8090 if (!strcmp(name, "vkRegisterDeviceEventEXT"))
8091 {
8092 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_display_control");
8093 return hasExt ? (void*)entry_vkRegisterDeviceEventEXT : nullptr;
8094 }
8095 if (!strcmp(name, "vkRegisterDisplayEventEXT"))
8096 {
8097 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_display_control");
8098 return hasExt ? (void*)entry_vkRegisterDisplayEventEXT : nullptr;
8099 }
8100 if (!strcmp(name, "vkGetSwapchainCounterEXT"))
8101 {
8102 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_display_control");
8103 return hasExt ? (void*)entry_vkGetSwapchainCounterEXT : nullptr;
8104 }
8105#endif
8106#ifdef VK_GOOGLE_display_timing
8107 if (!strcmp(name, "vkGetRefreshCycleDurationGOOGLE"))
8108 {
8109 bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_display_timing");
8110 return hasExt ? (void*)entry_vkGetRefreshCycleDurationGOOGLE : nullptr;
8111 }
8112 if (!strcmp(name, "vkGetPastPresentationTimingGOOGLE"))
8113 {
8114 bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_display_timing");
8115 return hasExt ? (void*)entry_vkGetPastPresentationTimingGOOGLE : nullptr;
8116 }
8117#endif
8118#ifdef VK_EXT_discard_rectangles
8119 if (!strcmp(name, "vkCmdSetDiscardRectangleEXT"))
8120 {
8121 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_discard_rectangles");
8122 return hasExt ? (void*)entry_vkCmdSetDiscardRectangleEXT : nullptr;
8123 }
8124#endif
8125#ifdef VK_EXT_hdr_metadata
8126 if (!strcmp(name, "vkSetHdrMetadataEXT"))
8127 {
8128 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_hdr_metadata");
8129 return hasExt ? (void*)entry_vkSetHdrMetadataEXT : nullptr;
8130 }
8131#endif
8132#ifdef VK_MVK_ios_surface
8133 if (!strcmp(name, "vkCreateIOSSurfaceMVK"))
8134 {
8135 bool hasExt = resources->hasDeviceExtension(device, "VK_MVK_ios_surface");
8136 return hasExt ? (void*)entry_vkCreateIOSSurfaceMVK : nullptr;
8137 }
8138#endif
8139#ifdef VK_MVK_macos_surface
8140 if (!strcmp(name, "vkCreateMacOSSurfaceMVK"))
8141 {
8142 bool hasExt = resources->hasDeviceExtension(device, "VK_MVK_macos_surface");
8143 return hasExt ? (void*)entry_vkCreateMacOSSurfaceMVK : nullptr;
8144 }
8145#endif
8146#ifdef VK_EXT_debug_utils
8147 if (!strcmp(name, "vkSetDebugUtilsObjectNameEXT"))
8148 {
8149 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8150 return hasExt ? (void*)entry_vkSetDebugUtilsObjectNameEXT : nullptr;
8151 }
8152 if (!strcmp(name, "vkSetDebugUtilsObjectTagEXT"))
8153 {
8154 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8155 return hasExt ? (void*)entry_vkSetDebugUtilsObjectTagEXT : nullptr;
8156 }
8157 if (!strcmp(name, "vkQueueBeginDebugUtilsLabelEXT"))
8158 {
8159 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8160 return hasExt ? (void*)entry_vkQueueBeginDebugUtilsLabelEXT : nullptr;
8161 }
8162 if (!strcmp(name, "vkQueueEndDebugUtilsLabelEXT"))
8163 {
8164 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8165 return hasExt ? (void*)entry_vkQueueEndDebugUtilsLabelEXT : nullptr;
8166 }
8167 if (!strcmp(name, "vkQueueInsertDebugUtilsLabelEXT"))
8168 {
8169 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8170 return hasExt ? (void*)entry_vkQueueInsertDebugUtilsLabelEXT : nullptr;
8171 }
8172 if (!strcmp(name, "vkCmdBeginDebugUtilsLabelEXT"))
8173 {
8174 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8175 return hasExt ? (void*)entry_vkCmdBeginDebugUtilsLabelEXT : nullptr;
8176 }
8177 if (!strcmp(name, "vkCmdEndDebugUtilsLabelEXT"))
8178 {
8179 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8180 return hasExt ? (void*)entry_vkCmdEndDebugUtilsLabelEXT : nullptr;
8181 }
8182 if (!strcmp(name, "vkCmdInsertDebugUtilsLabelEXT"))
8183 {
8184 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8185 return hasExt ? (void*)entry_vkCmdInsertDebugUtilsLabelEXT : nullptr;
8186 }
8187 if (!strcmp(name, "vkCreateDebugUtilsMessengerEXT"))
8188 {
8189 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8190 return hasExt ? (void*)entry_vkCreateDebugUtilsMessengerEXT : nullptr;
8191 }
8192 if (!strcmp(name, "vkDestroyDebugUtilsMessengerEXT"))
8193 {
8194 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8195 return hasExt ? (void*)entry_vkDestroyDebugUtilsMessengerEXT : nullptr;
8196 }
8197 if (!strcmp(name, "vkSubmitDebugUtilsMessageEXT"))
8198 {
8199 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8200 return hasExt ? (void*)entry_vkSubmitDebugUtilsMessageEXT : nullptr;
8201 }
8202#endif
8203#ifdef VK_ANDROID_external_memory_android_hardware_buffer
8204 if (!strcmp(name, "vkGetAndroidHardwareBufferPropertiesANDROID"))
8205 {
8206 bool hasExt = resources->hasDeviceExtension(device, "VK_ANDROID_external_memory_android_hardware_buffer");
8207 return hasExt ? (void*)entry_vkGetAndroidHardwareBufferPropertiesANDROID : nullptr;
8208 }
8209 if (!strcmp(name, "vkGetMemoryAndroidHardwareBufferANDROID"))
8210 {
8211 bool hasExt = resources->hasDeviceExtension(device, "VK_ANDROID_external_memory_android_hardware_buffer");
8212 return hasExt ? (void*)entry_vkGetMemoryAndroidHardwareBufferANDROID : nullptr;
8213 }
8214#endif
8215#ifdef VK_EXT_sample_locations
8216 if (!strcmp(name, "vkCmdSetSampleLocationsEXT"))
8217 {
8218 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_sample_locations");
8219 return hasExt ? (void*)entry_vkCmdSetSampleLocationsEXT : nullptr;
8220 }
8221 if (!strcmp(name, "vkGetPhysicalDeviceMultisamplePropertiesEXT"))
8222 {
8223 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_sample_locations");
8224 return hasExt ? (void*)entry_vkGetPhysicalDeviceMultisamplePropertiesEXT : nullptr;
8225 }
8226#endif
8227#ifdef VK_EXT_validation_cache
8228 if (!strcmp(name, "vkCreateValidationCacheEXT"))
8229 {
8230 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_validation_cache");
8231 return hasExt ? (void*)entry_vkCreateValidationCacheEXT : nullptr;
8232 }
8233 if (!strcmp(name, "vkDestroyValidationCacheEXT"))
8234 {
8235 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_validation_cache");
8236 return hasExt ? (void*)entry_vkDestroyValidationCacheEXT : nullptr;
8237 }
8238 if (!strcmp(name, "vkMergeValidationCachesEXT"))
8239 {
8240 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_validation_cache");
8241 return hasExt ? (void*)entry_vkMergeValidationCachesEXT : nullptr;
8242 }
8243 if (!strcmp(name, "vkGetValidationCacheDataEXT"))
8244 {
8245 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_validation_cache");
8246 return hasExt ? (void*)entry_vkGetValidationCacheDataEXT : nullptr;
8247 }
8248#endif
8249#ifdef VK_EXT_external_memory_host
8250 if (!strcmp(name, "vkGetMemoryHostPointerPropertiesEXT"))
8251 {
8252 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_external_memory_host");
8253 return hasExt ? (void*)entry_vkGetMemoryHostPointerPropertiesEXT : nullptr;
8254 }
8255#endif
8256#ifdef VK_AMD_buffer_marker
8257 if (!strcmp(name, "vkCmdWriteBufferMarkerAMD"))
8258 {
8259 bool hasExt = resources->hasDeviceExtension(device, "VK_AMD_buffer_marker");
8260 return hasExt ? (void*)entry_vkCmdWriteBufferMarkerAMD : nullptr;
8261 }
8262#endif
8263#ifdef VK_NV_device_diagnostic_checkpoints
8264 if (!strcmp(name, "vkCmdSetCheckpointNV"))
8265 {
8266 bool hasExt = resources->hasDeviceExtension(device, "VK_NV_device_diagnostic_checkpoints");
8267 return hasExt ? (void*)entry_vkCmdSetCheckpointNV : nullptr;
8268 }
8269 if (!strcmp(name, "vkGetQueueCheckpointDataNV"))
8270 {
8271 bool hasExt = resources->hasDeviceExtension(device, "VK_NV_device_diagnostic_checkpoints");
8272 return hasExt ? (void*)entry_vkGetQueueCheckpointDataNV : nullptr;
8273 }
8274#endif
8275#ifdef VK_GOOGLE_address_space
8276 if (!strcmp(name, "vkMapMemoryIntoAddressSpaceGOOGLE"))
8277 {
8278 bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_address_space");
8279 return hasExt ? (void*)entry_vkMapMemoryIntoAddressSpaceGOOGLE : nullptr;
Lingfeng Yang5c63afd2018-12-22 01:21:14 -08008280 }
8281#endif
Lingfeng Yangae7e1b32019-02-19 14:07:39 -08008282#ifdef VK_GOOGLE_color_buffer
8283 if (!strcmp(name, "vkRegisterImageColorBufferGOOGLE"))
8284 {
8285 bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_color_buffer");
8286 return hasExt ? (void*)entry_vkRegisterImageColorBufferGOOGLE : nullptr;
8287 }
8288 if (!strcmp(name, "vkRegisterBufferColorBufferGOOGLE"))
8289 {
8290 bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_color_buffer");
8291 return hasExt ? (void*)entry_vkRegisterBufferColorBufferGOOGLE : nullptr;
8292 }
8293#endif
Lingfeng Yang05d5ea32019-03-23 00:12:39 -07008294#ifdef VK_GOOGLE_sized_descriptor_update_template
8295 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplateSizedGOOGLE"))
8296 {
8297 bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_sized_descriptor_update_template");
8298 return hasExt ? (void*)entry_vkUpdateDescriptorSetWithTemplateSizedGOOGLE : nullptr;
8299 }
8300#endif
Lingfeng Yang0b81df22018-11-05 21:40:30 -08008301 return nullptr;
8302}
8303
8304} // namespace goldfish_vk