blob: 1c74ac899181c066ccecbdc70a28c8bbeb310b9e [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;
1658 vkGetPhysicalDeviceImageFormatProperties2_VkResult_return = vkEnc->vkGetPhysicalDeviceImageFormatProperties2(physicalDevice, pImageFormatInfo, pImageFormatProperties);
1659 return vkGetPhysicalDeviceImageFormatProperties2_VkResult_return;
1660}
1661static void entry_vkGetPhysicalDeviceQueueFamilyProperties2(
1662 VkPhysicalDevice physicalDevice,
1663 uint32_t* pQueueFamilyPropertyCount,
1664 VkQueueFamilyProperties2* pQueueFamilyProperties)
1665{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001666 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceQueueFamilyProperties2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001667 auto vkEnc = HostConnection::get()->vkEncoder();
1668 vkEnc->vkGetPhysicalDeviceQueueFamilyProperties2(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties);
1669}
1670static void entry_vkGetPhysicalDeviceMemoryProperties2(
1671 VkPhysicalDevice physicalDevice,
1672 VkPhysicalDeviceMemoryProperties2* pMemoryProperties)
1673{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001674 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMemoryProperties2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001675 auto vkEnc = HostConnection::get()->vkEncoder();
1676 vkEnc->vkGetPhysicalDeviceMemoryProperties2(physicalDevice, pMemoryProperties);
1677}
1678static void entry_vkGetPhysicalDeviceSparseImageFormatProperties2(
1679 VkPhysicalDevice physicalDevice,
1680 const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
1681 uint32_t* pPropertyCount,
1682 VkSparseImageFormatProperties2* pProperties)
1683{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001684 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSparseImageFormatProperties2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001685 auto vkEnc = HostConnection::get()->vkEncoder();
1686 vkEnc->vkGetPhysicalDeviceSparseImageFormatProperties2(physicalDevice, pFormatInfo, pPropertyCount, pProperties);
1687}
1688static void entry_vkTrimCommandPool(
1689 VkDevice device,
1690 VkCommandPool commandPool,
1691 VkCommandPoolTrimFlags flags)
1692{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001693 AEMU_SCOPED_TRACE("vkTrimCommandPool");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001694 auto vkEnc = HostConnection::get()->vkEncoder();
1695 vkEnc->vkTrimCommandPool(device, commandPool, flags);
1696}
1697static void entry_vkGetDeviceQueue2(
1698 VkDevice device,
1699 const VkDeviceQueueInfo2* pQueueInfo,
1700 VkQueue* pQueue)
1701{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001702 AEMU_SCOPED_TRACE("vkGetDeviceQueue2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001703 auto vkEnc = HostConnection::get()->vkEncoder();
1704 vkEnc->vkGetDeviceQueue2(device, pQueueInfo, pQueue);
1705}
1706static VkResult entry_vkCreateSamplerYcbcrConversion(
1707 VkDevice device,
1708 const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
1709 const VkAllocationCallbacks* pAllocator,
1710 VkSamplerYcbcrConversion* pYcbcrConversion)
1711{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001712 AEMU_SCOPED_TRACE("vkCreateSamplerYcbcrConversion");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001713 auto vkEnc = HostConnection::get()->vkEncoder();
1714 VkResult vkCreateSamplerYcbcrConversion_VkResult_return = (VkResult)0;
Lingfeng Yang5c701122019-03-05 08:34:46 -08001715 auto resources = ResourceTracker::get();
1716 vkCreateSamplerYcbcrConversion_VkResult_return = resources->on_vkCreateSamplerYcbcrConversion(vkEnc, VK_SUCCESS, device, pCreateInfo, pAllocator, pYcbcrConversion);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001717 return vkCreateSamplerYcbcrConversion_VkResult_return;
1718}
1719static void entry_vkDestroySamplerYcbcrConversion(
1720 VkDevice device,
1721 VkSamplerYcbcrConversion ycbcrConversion,
1722 const VkAllocationCallbacks* pAllocator)
1723{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001724 AEMU_SCOPED_TRACE("vkDestroySamplerYcbcrConversion");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001725 auto vkEnc = HostConnection::get()->vkEncoder();
1726 vkEnc->vkDestroySamplerYcbcrConversion(device, ycbcrConversion, pAllocator);
1727}
1728static VkResult entry_vkCreateDescriptorUpdateTemplate(
1729 VkDevice device,
1730 const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
1731 const VkAllocationCallbacks* pAllocator,
1732 VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate)
1733{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001734 AEMU_SCOPED_TRACE("vkCreateDescriptorUpdateTemplate");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001735 auto vkEnc = HostConnection::get()->vkEncoder();
1736 VkResult vkCreateDescriptorUpdateTemplate_VkResult_return = (VkResult)0;
1737 vkCreateDescriptorUpdateTemplate_VkResult_return = vkEnc->vkCreateDescriptorUpdateTemplate(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate);
1738 return vkCreateDescriptorUpdateTemplate_VkResult_return;
1739}
1740static void entry_vkDestroyDescriptorUpdateTemplate(
1741 VkDevice device,
1742 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
1743 const VkAllocationCallbacks* pAllocator)
1744{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001745 AEMU_SCOPED_TRACE("vkDestroyDescriptorUpdateTemplate");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001746 auto vkEnc = HostConnection::get()->vkEncoder();
1747 vkEnc->vkDestroyDescriptorUpdateTemplate(device, descriptorUpdateTemplate, pAllocator);
1748}
1749static void entry_vkUpdateDescriptorSetWithTemplate(
1750 VkDevice device,
1751 VkDescriptorSet descriptorSet,
1752 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
1753 const void* pData)
1754{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001755 AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplate");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001756 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang05d5ea32019-03-23 00:12:39 -07001757 auto resources = ResourceTracker::get();
1758 resources->on_vkUpdateDescriptorSetWithTemplate(vkEnc, device, descriptorSet, descriptorUpdateTemplate, pData);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001759}
1760static void entry_vkGetPhysicalDeviceExternalBufferProperties(
1761 VkPhysicalDevice physicalDevice,
1762 const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
1763 VkExternalBufferProperties* pExternalBufferProperties)
1764{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001765 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalBufferProperties");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001766 auto vkEnc = HostConnection::get()->vkEncoder();
1767 vkEnc->vkGetPhysicalDeviceExternalBufferProperties(physicalDevice, pExternalBufferInfo, pExternalBufferProperties);
1768}
1769static void entry_vkGetPhysicalDeviceExternalFenceProperties(
1770 VkPhysicalDevice physicalDevice,
1771 const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
1772 VkExternalFenceProperties* pExternalFenceProperties)
1773{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001774 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalFenceProperties");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001775 auto vkEnc = HostConnection::get()->vkEncoder();
1776 vkEnc->vkGetPhysicalDeviceExternalFenceProperties(physicalDevice, pExternalFenceInfo, pExternalFenceProperties);
1777}
1778static void entry_vkGetPhysicalDeviceExternalSemaphoreProperties(
1779 VkPhysicalDevice physicalDevice,
1780 const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
1781 VkExternalSemaphoreProperties* pExternalSemaphoreProperties)
1782{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001783 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalSemaphoreProperties");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001784 auto vkEnc = HostConnection::get()->vkEncoder();
1785 vkEnc->vkGetPhysicalDeviceExternalSemaphoreProperties(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties);
1786}
1787static void entry_vkGetDescriptorSetLayoutSupport(
1788 VkDevice device,
1789 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
1790 VkDescriptorSetLayoutSupport* pSupport)
1791{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001792 AEMU_SCOPED_TRACE("vkGetDescriptorSetLayoutSupport");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001793 auto vkEnc = HostConnection::get()->vkEncoder();
1794 vkEnc->vkGetDescriptorSetLayoutSupport(device, pCreateInfo, pSupport);
1795}
1796#endif
1797#ifdef VK_KHR_surface
1798static void entry_vkDestroySurfaceKHR(
1799 VkInstance instance,
1800 VkSurfaceKHR surface,
1801 const VkAllocationCallbacks* pAllocator)
1802{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001803 AEMU_SCOPED_TRACE("vkDestroySurfaceKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001804 auto vkEnc = HostConnection::get()->vkEncoder();
1805 vkEnc->vkDestroySurfaceKHR(instance, surface, pAllocator);
1806}
1807static VkResult entry_vkGetPhysicalDeviceSurfaceSupportKHR(
1808 VkPhysicalDevice physicalDevice,
1809 uint32_t queueFamilyIndex,
1810 VkSurfaceKHR surface,
1811 VkBool32* pSupported)
1812{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001813 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceSupportKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001814 auto vkEnc = HostConnection::get()->vkEncoder();
1815 VkResult vkGetPhysicalDeviceSurfaceSupportKHR_VkResult_return = (VkResult)0;
1816 vkGetPhysicalDeviceSurfaceSupportKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceSupportKHR(physicalDevice, queueFamilyIndex, surface, pSupported);
1817 return vkGetPhysicalDeviceSurfaceSupportKHR_VkResult_return;
1818}
1819static VkResult entry_vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
1820 VkPhysicalDevice physicalDevice,
1821 VkSurfaceKHR surface,
1822 VkSurfaceCapabilitiesKHR* pSurfaceCapabilities)
1823{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001824 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceCapabilitiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001825 auto vkEnc = HostConnection::get()->vkEncoder();
1826 VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR_VkResult_return = (VkResult)0;
1827 vkGetPhysicalDeviceSurfaceCapabilitiesKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceCapabilitiesKHR(physicalDevice, surface, pSurfaceCapabilities);
1828 return vkGetPhysicalDeviceSurfaceCapabilitiesKHR_VkResult_return;
1829}
1830static VkResult entry_vkGetPhysicalDeviceSurfaceFormatsKHR(
1831 VkPhysicalDevice physicalDevice,
1832 VkSurfaceKHR surface,
1833 uint32_t* pSurfaceFormatCount,
1834 VkSurfaceFormatKHR* pSurfaceFormats)
1835{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001836 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceFormatsKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001837 auto vkEnc = HostConnection::get()->vkEncoder();
1838 VkResult vkGetPhysicalDeviceSurfaceFormatsKHR_VkResult_return = (VkResult)0;
1839 vkGetPhysicalDeviceSurfaceFormatsKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceFormatsKHR(physicalDevice, surface, pSurfaceFormatCount, pSurfaceFormats);
1840 return vkGetPhysicalDeviceSurfaceFormatsKHR_VkResult_return;
1841}
1842static VkResult entry_vkGetPhysicalDeviceSurfacePresentModesKHR(
1843 VkPhysicalDevice physicalDevice,
1844 VkSurfaceKHR surface,
1845 uint32_t* pPresentModeCount,
1846 VkPresentModeKHR* pPresentModes)
1847{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001848 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfacePresentModesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001849 auto vkEnc = HostConnection::get()->vkEncoder();
1850 VkResult vkGetPhysicalDeviceSurfacePresentModesKHR_VkResult_return = (VkResult)0;
1851 vkGetPhysicalDeviceSurfacePresentModesKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfacePresentModesKHR(physicalDevice, surface, pPresentModeCount, pPresentModes);
1852 return vkGetPhysicalDeviceSurfacePresentModesKHR_VkResult_return;
1853}
1854#endif
1855#ifdef VK_KHR_swapchain
1856static VkResult entry_vkCreateSwapchainKHR(
1857 VkDevice device,
1858 const VkSwapchainCreateInfoKHR* pCreateInfo,
1859 const VkAllocationCallbacks* pAllocator,
1860 VkSwapchainKHR* pSwapchain)
1861{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001862 AEMU_SCOPED_TRACE("vkCreateSwapchainKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001863 auto vkEnc = HostConnection::get()->vkEncoder();
1864 VkResult vkCreateSwapchainKHR_VkResult_return = (VkResult)0;
1865 vkCreateSwapchainKHR_VkResult_return = vkEnc->vkCreateSwapchainKHR(device, pCreateInfo, pAllocator, pSwapchain);
1866 return vkCreateSwapchainKHR_VkResult_return;
1867}
1868static void entry_vkDestroySwapchainKHR(
1869 VkDevice device,
1870 VkSwapchainKHR swapchain,
1871 const VkAllocationCallbacks* pAllocator)
1872{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001873 AEMU_SCOPED_TRACE("vkDestroySwapchainKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001874 auto vkEnc = HostConnection::get()->vkEncoder();
1875 vkEnc->vkDestroySwapchainKHR(device, swapchain, pAllocator);
1876}
1877static VkResult entry_vkGetSwapchainImagesKHR(
1878 VkDevice device,
1879 VkSwapchainKHR swapchain,
1880 uint32_t* pSwapchainImageCount,
1881 VkImage* pSwapchainImages)
1882{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001883 AEMU_SCOPED_TRACE("vkGetSwapchainImagesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001884 auto vkEnc = HostConnection::get()->vkEncoder();
1885 VkResult vkGetSwapchainImagesKHR_VkResult_return = (VkResult)0;
1886 vkGetSwapchainImagesKHR_VkResult_return = vkEnc->vkGetSwapchainImagesKHR(device, swapchain, pSwapchainImageCount, pSwapchainImages);
1887 return vkGetSwapchainImagesKHR_VkResult_return;
1888}
1889static VkResult entry_vkAcquireNextImageKHR(
1890 VkDevice device,
1891 VkSwapchainKHR swapchain,
1892 uint64_t timeout,
1893 VkSemaphore semaphore,
1894 VkFence fence,
1895 uint32_t* pImageIndex)
1896{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001897 AEMU_SCOPED_TRACE("vkAcquireNextImageKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001898 auto vkEnc = HostConnection::get()->vkEncoder();
1899 VkResult vkAcquireNextImageKHR_VkResult_return = (VkResult)0;
1900 vkAcquireNextImageKHR_VkResult_return = vkEnc->vkAcquireNextImageKHR(device, swapchain, timeout, semaphore, fence, pImageIndex);
1901 return vkAcquireNextImageKHR_VkResult_return;
1902}
1903static VkResult entry_vkQueuePresentKHR(
1904 VkQueue queue,
1905 const VkPresentInfoKHR* pPresentInfo)
1906{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001907 AEMU_SCOPED_TRACE("vkQueuePresentKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001908 auto vkEnc = HostConnection::get()->vkEncoder();
1909 VkResult vkQueuePresentKHR_VkResult_return = (VkResult)0;
1910 vkQueuePresentKHR_VkResult_return = vkEnc->vkQueuePresentKHR(queue, pPresentInfo);
1911 return vkQueuePresentKHR_VkResult_return;
1912}
1913static VkResult entry_vkGetDeviceGroupPresentCapabilitiesKHR(
1914 VkDevice device,
1915 VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities)
1916{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001917 AEMU_SCOPED_TRACE("vkGetDeviceGroupPresentCapabilitiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001918 auto vkEnc = HostConnection::get()->vkEncoder();
1919 VkResult vkGetDeviceGroupPresentCapabilitiesKHR_VkResult_return = (VkResult)0;
1920 vkGetDeviceGroupPresentCapabilitiesKHR_VkResult_return = vkEnc->vkGetDeviceGroupPresentCapabilitiesKHR(device, pDeviceGroupPresentCapabilities);
1921 return vkGetDeviceGroupPresentCapabilitiesKHR_VkResult_return;
1922}
1923static VkResult entry_vkGetDeviceGroupSurfacePresentModesKHR(
1924 VkDevice device,
1925 VkSurfaceKHR surface,
1926 VkDeviceGroupPresentModeFlagsKHR* pModes)
1927{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001928 AEMU_SCOPED_TRACE("vkGetDeviceGroupSurfacePresentModesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001929 auto vkEnc = HostConnection::get()->vkEncoder();
1930 VkResult vkGetDeviceGroupSurfacePresentModesKHR_VkResult_return = (VkResult)0;
1931 vkGetDeviceGroupSurfacePresentModesKHR_VkResult_return = vkEnc->vkGetDeviceGroupSurfacePresentModesKHR(device, surface, pModes);
1932 return vkGetDeviceGroupSurfacePresentModesKHR_VkResult_return;
1933}
1934static VkResult entry_vkGetPhysicalDevicePresentRectanglesKHR(
1935 VkPhysicalDevice physicalDevice,
1936 VkSurfaceKHR surface,
1937 uint32_t* pRectCount,
1938 VkRect2D* pRects)
1939{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001940 AEMU_SCOPED_TRACE("vkGetPhysicalDevicePresentRectanglesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001941 auto vkEnc = HostConnection::get()->vkEncoder();
1942 VkResult vkGetPhysicalDevicePresentRectanglesKHR_VkResult_return = (VkResult)0;
1943 vkGetPhysicalDevicePresentRectanglesKHR_VkResult_return = vkEnc->vkGetPhysicalDevicePresentRectanglesKHR(physicalDevice, surface, pRectCount, pRects);
1944 return vkGetPhysicalDevicePresentRectanglesKHR_VkResult_return;
1945}
1946static VkResult entry_vkAcquireNextImage2KHR(
1947 VkDevice device,
1948 const VkAcquireNextImageInfoKHR* pAcquireInfo,
1949 uint32_t* pImageIndex)
1950{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001951 AEMU_SCOPED_TRACE("vkAcquireNextImage2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001952 auto vkEnc = HostConnection::get()->vkEncoder();
1953 VkResult vkAcquireNextImage2KHR_VkResult_return = (VkResult)0;
1954 vkAcquireNextImage2KHR_VkResult_return = vkEnc->vkAcquireNextImage2KHR(device, pAcquireInfo, pImageIndex);
1955 return vkAcquireNextImage2KHR_VkResult_return;
1956}
1957#endif
1958#ifdef VK_KHR_display
1959static VkResult entry_vkGetPhysicalDeviceDisplayPropertiesKHR(
1960 VkPhysicalDevice physicalDevice,
1961 uint32_t* pPropertyCount,
1962 VkDisplayPropertiesKHR* pProperties)
1963{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001964 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayPropertiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001965 auto vkEnc = HostConnection::get()->vkEncoder();
1966 VkResult vkGetPhysicalDeviceDisplayPropertiesKHR_VkResult_return = (VkResult)0;
1967 vkGetPhysicalDeviceDisplayPropertiesKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceDisplayPropertiesKHR(physicalDevice, pPropertyCount, pProperties);
1968 return vkGetPhysicalDeviceDisplayPropertiesKHR_VkResult_return;
1969}
1970static VkResult entry_vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
1971 VkPhysicalDevice physicalDevice,
1972 uint32_t* pPropertyCount,
1973 VkDisplayPlanePropertiesKHR* pProperties)
1974{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001975 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayPlanePropertiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001976 auto vkEnc = HostConnection::get()->vkEncoder();
1977 VkResult vkGetPhysicalDeviceDisplayPlanePropertiesKHR_VkResult_return = (VkResult)0;
1978 vkGetPhysicalDeviceDisplayPlanePropertiesKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceDisplayPlanePropertiesKHR(physicalDevice, pPropertyCount, pProperties);
1979 return vkGetPhysicalDeviceDisplayPlanePropertiesKHR_VkResult_return;
1980}
1981static VkResult entry_vkGetDisplayPlaneSupportedDisplaysKHR(
1982 VkPhysicalDevice physicalDevice,
1983 uint32_t planeIndex,
1984 uint32_t* pDisplayCount,
1985 VkDisplayKHR* pDisplays)
1986{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001987 AEMU_SCOPED_TRACE("vkGetDisplayPlaneSupportedDisplaysKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001988 auto vkEnc = HostConnection::get()->vkEncoder();
1989 VkResult vkGetDisplayPlaneSupportedDisplaysKHR_VkResult_return = (VkResult)0;
1990 vkGetDisplayPlaneSupportedDisplaysKHR_VkResult_return = vkEnc->vkGetDisplayPlaneSupportedDisplaysKHR(physicalDevice, planeIndex, pDisplayCount, pDisplays);
1991 return vkGetDisplayPlaneSupportedDisplaysKHR_VkResult_return;
1992}
1993static VkResult entry_vkGetDisplayModePropertiesKHR(
1994 VkPhysicalDevice physicalDevice,
1995 VkDisplayKHR display,
1996 uint32_t* pPropertyCount,
1997 VkDisplayModePropertiesKHR* pProperties)
1998{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001999 AEMU_SCOPED_TRACE("vkGetDisplayModePropertiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002000 auto vkEnc = HostConnection::get()->vkEncoder();
2001 VkResult vkGetDisplayModePropertiesKHR_VkResult_return = (VkResult)0;
2002 vkGetDisplayModePropertiesKHR_VkResult_return = vkEnc->vkGetDisplayModePropertiesKHR(physicalDevice, display, pPropertyCount, pProperties);
2003 return vkGetDisplayModePropertiesKHR_VkResult_return;
2004}
2005static VkResult entry_vkCreateDisplayModeKHR(
2006 VkPhysicalDevice physicalDevice,
2007 VkDisplayKHR display,
2008 const VkDisplayModeCreateInfoKHR* pCreateInfo,
2009 const VkAllocationCallbacks* pAllocator,
2010 VkDisplayModeKHR* pMode)
2011{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002012 AEMU_SCOPED_TRACE("vkCreateDisplayModeKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002013 auto vkEnc = HostConnection::get()->vkEncoder();
2014 VkResult vkCreateDisplayModeKHR_VkResult_return = (VkResult)0;
2015 vkCreateDisplayModeKHR_VkResult_return = vkEnc->vkCreateDisplayModeKHR(physicalDevice, display, pCreateInfo, pAllocator, pMode);
2016 return vkCreateDisplayModeKHR_VkResult_return;
2017}
2018static VkResult entry_vkGetDisplayPlaneCapabilitiesKHR(
2019 VkPhysicalDevice physicalDevice,
2020 VkDisplayModeKHR mode,
2021 uint32_t planeIndex,
2022 VkDisplayPlaneCapabilitiesKHR* pCapabilities)
2023{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002024 AEMU_SCOPED_TRACE("vkGetDisplayPlaneCapabilitiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002025 auto vkEnc = HostConnection::get()->vkEncoder();
2026 VkResult vkGetDisplayPlaneCapabilitiesKHR_VkResult_return = (VkResult)0;
2027 vkGetDisplayPlaneCapabilitiesKHR_VkResult_return = vkEnc->vkGetDisplayPlaneCapabilitiesKHR(physicalDevice, mode, planeIndex, pCapabilities);
2028 return vkGetDisplayPlaneCapabilitiesKHR_VkResult_return;
2029}
2030static VkResult entry_vkCreateDisplayPlaneSurfaceKHR(
2031 VkInstance instance,
2032 const VkDisplaySurfaceCreateInfoKHR* pCreateInfo,
2033 const VkAllocationCallbacks* pAllocator,
2034 VkSurfaceKHR* pSurface)
2035{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002036 AEMU_SCOPED_TRACE("vkCreateDisplayPlaneSurfaceKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002037 auto vkEnc = HostConnection::get()->vkEncoder();
2038 VkResult vkCreateDisplayPlaneSurfaceKHR_VkResult_return = (VkResult)0;
2039 vkCreateDisplayPlaneSurfaceKHR_VkResult_return = vkEnc->vkCreateDisplayPlaneSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
2040 return vkCreateDisplayPlaneSurfaceKHR_VkResult_return;
2041}
2042#endif
2043#ifdef VK_KHR_display_swapchain
2044static VkResult entry_vkCreateSharedSwapchainsKHR(
2045 VkDevice device,
2046 uint32_t swapchainCount,
2047 const VkSwapchainCreateInfoKHR* pCreateInfos,
2048 const VkAllocationCallbacks* pAllocator,
2049 VkSwapchainKHR* pSwapchains)
2050{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002051 AEMU_SCOPED_TRACE("vkCreateSharedSwapchainsKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002052 auto vkEnc = HostConnection::get()->vkEncoder();
2053 VkResult vkCreateSharedSwapchainsKHR_VkResult_return = (VkResult)0;
2054 vkCreateSharedSwapchainsKHR_VkResult_return = vkEnc->vkCreateSharedSwapchainsKHR(device, swapchainCount, pCreateInfos, pAllocator, pSwapchains);
2055 return vkCreateSharedSwapchainsKHR_VkResult_return;
2056}
2057#endif
2058#ifdef VK_KHR_xlib_surface
2059static VkResult entry_vkCreateXlibSurfaceKHR(
2060 VkInstance instance,
2061 const VkXlibSurfaceCreateInfoKHR* pCreateInfo,
2062 const VkAllocationCallbacks* pAllocator,
2063 VkSurfaceKHR* pSurface)
2064{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002065 AEMU_SCOPED_TRACE("vkCreateXlibSurfaceKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002066 auto vkEnc = HostConnection::get()->vkEncoder();
2067 VkResult vkCreateXlibSurfaceKHR_VkResult_return = (VkResult)0;
2068 vkCreateXlibSurfaceKHR_VkResult_return = vkEnc->vkCreateXlibSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
2069 return vkCreateXlibSurfaceKHR_VkResult_return;
2070}
2071static VkBool32 entry_vkGetPhysicalDeviceXlibPresentationSupportKHR(
2072 VkPhysicalDevice physicalDevice,
2073 uint32_t queueFamilyIndex,
2074 Display* dpy,
2075 VisualID visualID)
2076{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002077 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceXlibPresentationSupportKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002078 auto vkEnc = HostConnection::get()->vkEncoder();
2079 VkBool32 vkGetPhysicalDeviceXlibPresentationSupportKHR_VkBool32_return = (VkBool32)0;
2080 vkGetPhysicalDeviceXlibPresentationSupportKHR_VkBool32_return = vkEnc->vkGetPhysicalDeviceXlibPresentationSupportKHR(physicalDevice, queueFamilyIndex, dpy, visualID);
2081 return vkGetPhysicalDeviceXlibPresentationSupportKHR_VkBool32_return;
2082}
2083#endif
2084#ifdef VK_KHR_xcb_surface
2085static VkResult entry_vkCreateXcbSurfaceKHR(
2086 VkInstance instance,
2087 const VkXcbSurfaceCreateInfoKHR* pCreateInfo,
2088 const VkAllocationCallbacks* pAllocator,
2089 VkSurfaceKHR* pSurface)
2090{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002091 AEMU_SCOPED_TRACE("vkCreateXcbSurfaceKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002092 auto vkEnc = HostConnection::get()->vkEncoder();
2093 VkResult vkCreateXcbSurfaceKHR_VkResult_return = (VkResult)0;
2094 vkCreateXcbSurfaceKHR_VkResult_return = vkEnc->vkCreateXcbSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
2095 return vkCreateXcbSurfaceKHR_VkResult_return;
2096}
2097static VkBool32 entry_vkGetPhysicalDeviceXcbPresentationSupportKHR(
2098 VkPhysicalDevice physicalDevice,
2099 uint32_t queueFamilyIndex,
2100 xcb_connection_t* connection,
2101 xcb_visualid_t visual_id)
2102{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002103 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceXcbPresentationSupportKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002104 auto vkEnc = HostConnection::get()->vkEncoder();
2105 VkBool32 vkGetPhysicalDeviceXcbPresentationSupportKHR_VkBool32_return = (VkBool32)0;
2106 vkGetPhysicalDeviceXcbPresentationSupportKHR_VkBool32_return = vkEnc->vkGetPhysicalDeviceXcbPresentationSupportKHR(physicalDevice, queueFamilyIndex, connection, visual_id);
2107 return vkGetPhysicalDeviceXcbPresentationSupportKHR_VkBool32_return;
2108}
2109#endif
2110#ifdef VK_KHR_wayland_surface
2111static VkResult entry_vkCreateWaylandSurfaceKHR(
2112 VkInstance instance,
2113 const VkWaylandSurfaceCreateInfoKHR* pCreateInfo,
2114 const VkAllocationCallbacks* pAllocator,
2115 VkSurfaceKHR* pSurface)
2116{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002117 AEMU_SCOPED_TRACE("vkCreateWaylandSurfaceKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002118 auto vkEnc = HostConnection::get()->vkEncoder();
2119 VkResult vkCreateWaylandSurfaceKHR_VkResult_return = (VkResult)0;
2120 vkCreateWaylandSurfaceKHR_VkResult_return = vkEnc->vkCreateWaylandSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
2121 return vkCreateWaylandSurfaceKHR_VkResult_return;
2122}
2123static VkBool32 entry_vkGetPhysicalDeviceWaylandPresentationSupportKHR(
2124 VkPhysicalDevice physicalDevice,
2125 uint32_t queueFamilyIndex,
2126 wl_display* display)
2127{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002128 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceWaylandPresentationSupportKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002129 auto vkEnc = HostConnection::get()->vkEncoder();
2130 VkBool32 vkGetPhysicalDeviceWaylandPresentationSupportKHR_VkBool32_return = (VkBool32)0;
2131 vkGetPhysicalDeviceWaylandPresentationSupportKHR_VkBool32_return = vkEnc->vkGetPhysicalDeviceWaylandPresentationSupportKHR(physicalDevice, queueFamilyIndex, display);
2132 return vkGetPhysicalDeviceWaylandPresentationSupportKHR_VkBool32_return;
2133}
2134#endif
2135#ifdef VK_KHR_mir_surface
2136static VkResult entry_vkCreateMirSurfaceKHR(
2137 VkInstance instance,
2138 const VkMirSurfaceCreateInfoKHR* pCreateInfo,
2139 const VkAllocationCallbacks* pAllocator,
2140 VkSurfaceKHR* pSurface)
2141{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002142 AEMU_SCOPED_TRACE("vkCreateMirSurfaceKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002143 auto vkEnc = HostConnection::get()->vkEncoder();
2144 VkResult vkCreateMirSurfaceKHR_VkResult_return = (VkResult)0;
2145 vkCreateMirSurfaceKHR_VkResult_return = vkEnc->vkCreateMirSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
2146 return vkCreateMirSurfaceKHR_VkResult_return;
2147}
2148static VkBool32 entry_vkGetPhysicalDeviceMirPresentationSupportKHR(
2149 VkPhysicalDevice physicalDevice,
2150 uint32_t queueFamilyIndex,
2151 MirConnection* connection)
2152{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002153 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMirPresentationSupportKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002154 auto vkEnc = HostConnection::get()->vkEncoder();
2155 VkBool32 vkGetPhysicalDeviceMirPresentationSupportKHR_VkBool32_return = (VkBool32)0;
2156 vkGetPhysicalDeviceMirPresentationSupportKHR_VkBool32_return = vkEnc->vkGetPhysicalDeviceMirPresentationSupportKHR(physicalDevice, queueFamilyIndex, connection);
2157 return vkGetPhysicalDeviceMirPresentationSupportKHR_VkBool32_return;
2158}
2159#endif
2160#ifdef VK_KHR_android_surface
2161static VkResult entry_vkCreateAndroidSurfaceKHR(
2162 VkInstance instance,
2163 const VkAndroidSurfaceCreateInfoKHR* pCreateInfo,
2164 const VkAllocationCallbacks* pAllocator,
2165 VkSurfaceKHR* pSurface)
2166{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002167 AEMU_SCOPED_TRACE("vkCreateAndroidSurfaceKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002168 auto vkEnc = HostConnection::get()->vkEncoder();
2169 VkResult vkCreateAndroidSurfaceKHR_VkResult_return = (VkResult)0;
2170 vkCreateAndroidSurfaceKHR_VkResult_return = vkEnc->vkCreateAndroidSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
2171 return vkCreateAndroidSurfaceKHR_VkResult_return;
2172}
2173#endif
2174#ifdef VK_KHR_win32_surface
2175static VkResult entry_vkCreateWin32SurfaceKHR(
2176 VkInstance instance,
2177 const VkWin32SurfaceCreateInfoKHR* pCreateInfo,
2178 const VkAllocationCallbacks* pAllocator,
2179 VkSurfaceKHR* pSurface)
2180{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002181 AEMU_SCOPED_TRACE("vkCreateWin32SurfaceKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002182 auto vkEnc = HostConnection::get()->vkEncoder();
2183 VkResult vkCreateWin32SurfaceKHR_VkResult_return = (VkResult)0;
2184 vkCreateWin32SurfaceKHR_VkResult_return = vkEnc->vkCreateWin32SurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
2185 return vkCreateWin32SurfaceKHR_VkResult_return;
2186}
2187static VkBool32 entry_vkGetPhysicalDeviceWin32PresentationSupportKHR(
2188 VkPhysicalDevice physicalDevice,
2189 uint32_t queueFamilyIndex)
2190{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002191 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceWin32PresentationSupportKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002192 auto vkEnc = HostConnection::get()->vkEncoder();
2193 VkBool32 vkGetPhysicalDeviceWin32PresentationSupportKHR_VkBool32_return = (VkBool32)0;
2194 vkGetPhysicalDeviceWin32PresentationSupportKHR_VkBool32_return = vkEnc->vkGetPhysicalDeviceWin32PresentationSupportKHR(physicalDevice, queueFamilyIndex);
2195 return vkGetPhysicalDeviceWin32PresentationSupportKHR_VkBool32_return;
2196}
2197#endif
2198#ifdef VK_KHR_sampler_mirror_clamp_to_edge
2199#endif
2200#ifdef VK_KHR_multiview
2201#endif
2202#ifdef VK_KHR_get_physical_device_properties2
2203static void entry_vkGetPhysicalDeviceFeatures2KHR(
2204 VkPhysicalDevice physicalDevice,
2205 VkPhysicalDeviceFeatures2* pFeatures)
2206{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002207 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFeatures2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002208 auto vkEnc = HostConnection::get()->vkEncoder();
2209 vkEnc->vkGetPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures);
2210}
2211static void entry_vkGetPhysicalDeviceProperties2KHR(
2212 VkPhysicalDevice physicalDevice,
2213 VkPhysicalDeviceProperties2* pProperties)
2214{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002215 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002216 auto vkEnc = HostConnection::get()->vkEncoder();
2217 vkEnc->vkGetPhysicalDeviceProperties2KHR(physicalDevice, pProperties);
2218}
2219static void entry_vkGetPhysicalDeviceFormatProperties2KHR(
2220 VkPhysicalDevice physicalDevice,
2221 VkFormat format,
2222 VkFormatProperties2* pFormatProperties)
2223{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002224 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFormatProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002225 auto vkEnc = HostConnection::get()->vkEncoder();
2226 vkEnc->vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice, format, pFormatProperties);
2227}
2228static VkResult entry_vkGetPhysicalDeviceImageFormatProperties2KHR(
2229 VkPhysicalDevice physicalDevice,
2230 const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
2231 VkImageFormatProperties2* pImageFormatProperties)
2232{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002233 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceImageFormatProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002234 auto vkEnc = HostConnection::get()->vkEncoder();
2235 VkResult vkGetPhysicalDeviceImageFormatProperties2KHR_VkResult_return = (VkResult)0;
2236 vkGetPhysicalDeviceImageFormatProperties2KHR_VkResult_return = vkEnc->vkGetPhysicalDeviceImageFormatProperties2KHR(physicalDevice, pImageFormatInfo, pImageFormatProperties);
2237 return vkGetPhysicalDeviceImageFormatProperties2KHR_VkResult_return;
2238}
2239static void entry_vkGetPhysicalDeviceQueueFamilyProperties2KHR(
2240 VkPhysicalDevice physicalDevice,
2241 uint32_t* pQueueFamilyPropertyCount,
2242 VkQueueFamilyProperties2* pQueueFamilyProperties)
2243{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002244 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceQueueFamilyProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002245 auto vkEnc = HostConnection::get()->vkEncoder();
2246 vkEnc->vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties);
2247}
2248static void entry_vkGetPhysicalDeviceMemoryProperties2KHR(
2249 VkPhysicalDevice physicalDevice,
2250 VkPhysicalDeviceMemoryProperties2* pMemoryProperties)
2251{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002252 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMemoryProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002253 auto vkEnc = HostConnection::get()->vkEncoder();
2254 vkEnc->vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice, pMemoryProperties);
2255}
2256static void entry_vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
2257 VkPhysicalDevice physicalDevice,
2258 const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
2259 uint32_t* pPropertyCount,
2260 VkSparseImageFormatProperties2* pProperties)
2261{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002262 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSparseImageFormatProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002263 auto vkEnc = HostConnection::get()->vkEncoder();
2264 vkEnc->vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties);
2265}
2266#endif
2267#ifdef VK_KHR_device_group
2268static void entry_vkGetDeviceGroupPeerMemoryFeaturesKHR(
2269 VkDevice device,
2270 uint32_t heapIndex,
2271 uint32_t localDeviceIndex,
2272 uint32_t remoteDeviceIndex,
2273 VkPeerMemoryFeatureFlags* pPeerMemoryFeatures)
2274{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002275 AEMU_SCOPED_TRACE("vkGetDeviceGroupPeerMemoryFeaturesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002276 auto vkEnc = HostConnection::get()->vkEncoder();
2277 vkEnc->vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures);
2278}
2279static void entry_vkCmdSetDeviceMaskKHR(
2280 VkCommandBuffer commandBuffer,
2281 uint32_t deviceMask)
2282{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002283 AEMU_SCOPED_TRACE("vkCmdSetDeviceMaskKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002284 auto vkEnc = HostConnection::get()->vkEncoder();
2285 vkEnc->vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask);
2286}
2287static void entry_vkCmdDispatchBaseKHR(
2288 VkCommandBuffer commandBuffer,
2289 uint32_t baseGroupX,
2290 uint32_t baseGroupY,
2291 uint32_t baseGroupZ,
2292 uint32_t groupCountX,
2293 uint32_t groupCountY,
2294 uint32_t groupCountZ)
2295{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002296 AEMU_SCOPED_TRACE("vkCmdDispatchBaseKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002297 auto vkEnc = HostConnection::get()->vkEncoder();
2298 vkEnc->vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ);
2299}
2300#endif
2301#ifdef VK_KHR_shader_draw_parameters
2302#endif
2303#ifdef VK_KHR_maintenance1
2304static void entry_vkTrimCommandPoolKHR(
2305 VkDevice device,
2306 VkCommandPool commandPool,
2307 VkCommandPoolTrimFlags flags)
2308{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002309 AEMU_SCOPED_TRACE("vkTrimCommandPoolKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002310 auto vkEnc = HostConnection::get()->vkEncoder();
2311 vkEnc->vkTrimCommandPoolKHR(device, commandPool, flags);
2312}
2313#endif
2314#ifdef VK_KHR_device_group_creation
2315static VkResult entry_vkEnumeratePhysicalDeviceGroupsKHR(
2316 VkInstance instance,
2317 uint32_t* pPhysicalDeviceGroupCount,
2318 VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties)
2319{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002320 AEMU_SCOPED_TRACE("vkEnumeratePhysicalDeviceGroupsKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002321 auto vkEnc = HostConnection::get()->vkEncoder();
2322 VkResult vkEnumeratePhysicalDeviceGroupsKHR_VkResult_return = (VkResult)0;
2323 vkEnumeratePhysicalDeviceGroupsKHR_VkResult_return = vkEnc->vkEnumeratePhysicalDeviceGroupsKHR(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties);
2324 return vkEnumeratePhysicalDeviceGroupsKHR_VkResult_return;
2325}
2326#endif
2327#ifdef VK_KHR_external_memory_capabilities
2328static void entry_vkGetPhysicalDeviceExternalBufferPropertiesKHR(
2329 VkPhysicalDevice physicalDevice,
2330 const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
2331 VkExternalBufferProperties* pExternalBufferProperties)
2332{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002333 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalBufferPropertiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002334 auto vkEnc = HostConnection::get()->vkEncoder();
2335 vkEnc->vkGetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties);
2336}
2337#endif
2338#ifdef VK_KHR_external_memory
2339#endif
2340#ifdef VK_KHR_external_memory_win32
2341static VkResult entry_vkGetMemoryWin32HandleKHR(
2342 VkDevice device,
2343 const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo,
2344 HANDLE* pHandle)
2345{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002346 AEMU_SCOPED_TRACE("vkGetMemoryWin32HandleKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002347 auto vkEnc = HostConnection::get()->vkEncoder();
2348 VkResult vkGetMemoryWin32HandleKHR_VkResult_return = (VkResult)0;
2349 vkGetMemoryWin32HandleKHR_VkResult_return = vkEnc->vkGetMemoryWin32HandleKHR(device, pGetWin32HandleInfo, pHandle);
2350 return vkGetMemoryWin32HandleKHR_VkResult_return;
2351}
2352static VkResult entry_vkGetMemoryWin32HandlePropertiesKHR(
2353 VkDevice device,
2354 VkExternalMemoryHandleTypeFlagBits handleType,
2355 HANDLE handle,
2356 VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties)
2357{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002358 AEMU_SCOPED_TRACE("vkGetMemoryWin32HandlePropertiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002359 auto vkEnc = HostConnection::get()->vkEncoder();
2360 VkResult vkGetMemoryWin32HandlePropertiesKHR_VkResult_return = (VkResult)0;
2361 vkGetMemoryWin32HandlePropertiesKHR_VkResult_return = vkEnc->vkGetMemoryWin32HandlePropertiesKHR(device, handleType, handle, pMemoryWin32HandleProperties);
2362 return vkGetMemoryWin32HandlePropertiesKHR_VkResult_return;
2363}
2364#endif
2365#ifdef VK_KHR_external_memory_fd
2366static VkResult entry_vkGetMemoryFdKHR(
2367 VkDevice device,
2368 const VkMemoryGetFdInfoKHR* pGetFdInfo,
2369 int* pFd)
2370{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002371 AEMU_SCOPED_TRACE("vkGetMemoryFdKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002372 auto vkEnc = HostConnection::get()->vkEncoder();
2373 VkResult vkGetMemoryFdKHR_VkResult_return = (VkResult)0;
2374 vkGetMemoryFdKHR_VkResult_return = vkEnc->vkGetMemoryFdKHR(device, pGetFdInfo, pFd);
2375 return vkGetMemoryFdKHR_VkResult_return;
2376}
2377static VkResult entry_vkGetMemoryFdPropertiesKHR(
2378 VkDevice device,
2379 VkExternalMemoryHandleTypeFlagBits handleType,
2380 int fd,
2381 VkMemoryFdPropertiesKHR* pMemoryFdProperties)
2382{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002383 AEMU_SCOPED_TRACE("vkGetMemoryFdPropertiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002384 auto vkEnc = HostConnection::get()->vkEncoder();
2385 VkResult vkGetMemoryFdPropertiesKHR_VkResult_return = (VkResult)0;
2386 vkGetMemoryFdPropertiesKHR_VkResult_return = vkEnc->vkGetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties);
2387 return vkGetMemoryFdPropertiesKHR_VkResult_return;
2388}
2389#endif
2390#ifdef VK_KHR_win32_keyed_mutex
2391#endif
2392#ifdef VK_KHR_external_semaphore_capabilities
2393static void entry_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
2394 VkPhysicalDevice physicalDevice,
2395 const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
2396 VkExternalSemaphoreProperties* pExternalSemaphoreProperties)
2397{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002398 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalSemaphorePropertiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002399 auto vkEnc = HostConnection::get()->vkEncoder();
2400 vkEnc->vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties);
2401}
2402#endif
2403#ifdef VK_KHR_external_semaphore
2404#endif
2405#ifdef VK_KHR_external_semaphore_win32
2406static VkResult entry_vkImportSemaphoreWin32HandleKHR(
2407 VkDevice device,
2408 const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo)
2409{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002410 AEMU_SCOPED_TRACE("vkImportSemaphoreWin32HandleKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002411 auto vkEnc = HostConnection::get()->vkEncoder();
2412 VkResult vkImportSemaphoreWin32HandleKHR_VkResult_return = (VkResult)0;
2413 vkImportSemaphoreWin32HandleKHR_VkResult_return = vkEnc->vkImportSemaphoreWin32HandleKHR(device, pImportSemaphoreWin32HandleInfo);
2414 return vkImportSemaphoreWin32HandleKHR_VkResult_return;
2415}
2416static VkResult entry_vkGetSemaphoreWin32HandleKHR(
2417 VkDevice device,
2418 const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo,
2419 HANDLE* pHandle)
2420{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002421 AEMU_SCOPED_TRACE("vkGetSemaphoreWin32HandleKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002422 auto vkEnc = HostConnection::get()->vkEncoder();
2423 VkResult vkGetSemaphoreWin32HandleKHR_VkResult_return = (VkResult)0;
2424 vkGetSemaphoreWin32HandleKHR_VkResult_return = vkEnc->vkGetSemaphoreWin32HandleKHR(device, pGetWin32HandleInfo, pHandle);
2425 return vkGetSemaphoreWin32HandleKHR_VkResult_return;
2426}
2427#endif
2428#ifdef VK_KHR_external_semaphore_fd
2429static VkResult entry_vkImportSemaphoreFdKHR(
2430 VkDevice device,
2431 const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo)
2432{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002433 AEMU_SCOPED_TRACE("vkImportSemaphoreFdKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002434 auto vkEnc = HostConnection::get()->vkEncoder();
2435 VkResult vkImportSemaphoreFdKHR_VkResult_return = (VkResult)0;
Yahan Zhoua499e442019-02-26 16:35:01 -08002436 auto resources = ResourceTracker::get();
2437 vkImportSemaphoreFdKHR_VkResult_return = resources->on_vkImportSemaphoreFdKHR(vkEnc, VK_SUCCESS, device, pImportSemaphoreFdInfo);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002438 return vkImportSemaphoreFdKHR_VkResult_return;
2439}
2440static VkResult entry_vkGetSemaphoreFdKHR(
2441 VkDevice device,
2442 const VkSemaphoreGetFdInfoKHR* pGetFdInfo,
2443 int* pFd)
2444{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002445 AEMU_SCOPED_TRACE("vkGetSemaphoreFdKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002446 auto vkEnc = HostConnection::get()->vkEncoder();
2447 VkResult vkGetSemaphoreFdKHR_VkResult_return = (VkResult)0;
Yahan Zhoua499e442019-02-26 16:35:01 -08002448 auto resources = ResourceTracker::get();
2449 vkGetSemaphoreFdKHR_VkResult_return = resources->on_vkGetSemaphoreFdKHR(vkEnc, VK_SUCCESS, device, pGetFdInfo, pFd);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002450 return vkGetSemaphoreFdKHR_VkResult_return;
2451}
2452#endif
2453#ifdef VK_KHR_push_descriptor
2454static void entry_vkCmdPushDescriptorSetKHR(
2455 VkCommandBuffer commandBuffer,
2456 VkPipelineBindPoint pipelineBindPoint,
2457 VkPipelineLayout layout,
2458 uint32_t set,
2459 uint32_t descriptorWriteCount,
2460 const VkWriteDescriptorSet* pDescriptorWrites)
2461{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002462 AEMU_SCOPED_TRACE("vkCmdPushDescriptorSetKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002463 auto vkEnc = HostConnection::get()->vkEncoder();
2464 vkEnc->vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites);
2465}
2466static void entry_vkCmdPushDescriptorSetWithTemplateKHR(
2467 VkCommandBuffer commandBuffer,
2468 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
2469 VkPipelineLayout layout,
2470 uint32_t set,
2471 const void* pData)
2472{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002473 AEMU_SCOPED_TRACE("vkCmdPushDescriptorSetWithTemplateKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002474 auto vkEnc = HostConnection::get()->vkEncoder();
2475 vkEnc->vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData);
2476}
2477#endif
2478#ifdef VK_KHR_16bit_storage
2479#endif
2480#ifdef VK_KHR_incremental_present
2481#endif
2482#ifdef VK_KHR_descriptor_update_template
2483static VkResult entry_vkCreateDescriptorUpdateTemplateKHR(
2484 VkDevice device,
2485 const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
2486 const VkAllocationCallbacks* pAllocator,
2487 VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate)
2488{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002489 AEMU_SCOPED_TRACE("vkCreateDescriptorUpdateTemplateKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002490 auto vkEnc = HostConnection::get()->vkEncoder();
2491 VkResult vkCreateDescriptorUpdateTemplateKHR_VkResult_return = (VkResult)0;
2492 vkCreateDescriptorUpdateTemplateKHR_VkResult_return = vkEnc->vkCreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate);
2493 return vkCreateDescriptorUpdateTemplateKHR_VkResult_return;
2494}
2495static void entry_vkDestroyDescriptorUpdateTemplateKHR(
2496 VkDevice device,
2497 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
2498 const VkAllocationCallbacks* pAllocator)
2499{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002500 AEMU_SCOPED_TRACE("vkDestroyDescriptorUpdateTemplateKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002501 auto vkEnc = HostConnection::get()->vkEncoder();
2502 vkEnc->vkDestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator);
2503}
2504static void entry_vkUpdateDescriptorSetWithTemplateKHR(
2505 VkDevice device,
2506 VkDescriptorSet descriptorSet,
2507 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
2508 const void* pData)
2509{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002510 AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplateKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002511 auto vkEnc = HostConnection::get()->vkEncoder();
2512 vkEnc->vkUpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData);
2513}
2514#endif
2515#ifdef VK_KHR_create_renderpass2
2516static VkResult entry_vkCreateRenderPass2KHR(
2517 VkDevice device,
2518 const VkRenderPassCreateInfo2KHR* pCreateInfo,
2519 const VkAllocationCallbacks* pAllocator,
2520 VkRenderPass* pRenderPass)
2521{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002522 AEMU_SCOPED_TRACE("vkCreateRenderPass2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002523 auto vkEnc = HostConnection::get()->vkEncoder();
2524 VkResult vkCreateRenderPass2KHR_VkResult_return = (VkResult)0;
2525 vkCreateRenderPass2KHR_VkResult_return = vkEnc->vkCreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass);
2526 return vkCreateRenderPass2KHR_VkResult_return;
2527}
2528static void entry_vkCmdBeginRenderPass2KHR(
2529 VkCommandBuffer commandBuffer,
2530 const VkRenderPassBeginInfo* pRenderPassBegin,
2531 const VkSubpassBeginInfoKHR* pSubpassBeginInfo)
2532{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002533 AEMU_SCOPED_TRACE("vkCmdBeginRenderPass2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002534 auto vkEnc = HostConnection::get()->vkEncoder();
2535 vkEnc->vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo);
2536}
2537static void entry_vkCmdNextSubpass2KHR(
2538 VkCommandBuffer commandBuffer,
2539 const VkSubpassBeginInfoKHR* pSubpassBeginInfo,
2540 const VkSubpassEndInfoKHR* pSubpassEndInfo)
2541{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002542 AEMU_SCOPED_TRACE("vkCmdNextSubpass2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002543 auto vkEnc = HostConnection::get()->vkEncoder();
2544 vkEnc->vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo);
2545}
2546static void entry_vkCmdEndRenderPass2KHR(
2547 VkCommandBuffer commandBuffer,
2548 const VkSubpassEndInfoKHR* pSubpassEndInfo)
2549{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002550 AEMU_SCOPED_TRACE("vkCmdEndRenderPass2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002551 auto vkEnc = HostConnection::get()->vkEncoder();
2552 vkEnc->vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo);
2553}
2554#endif
2555#ifdef VK_KHR_shared_presentable_image
2556static VkResult entry_vkGetSwapchainStatusKHR(
2557 VkDevice device,
2558 VkSwapchainKHR swapchain)
2559{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002560 AEMU_SCOPED_TRACE("vkGetSwapchainStatusKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002561 auto vkEnc = HostConnection::get()->vkEncoder();
2562 VkResult vkGetSwapchainStatusKHR_VkResult_return = (VkResult)0;
2563 vkGetSwapchainStatusKHR_VkResult_return = vkEnc->vkGetSwapchainStatusKHR(device, swapchain);
2564 return vkGetSwapchainStatusKHR_VkResult_return;
2565}
2566#endif
2567#ifdef VK_KHR_external_fence_capabilities
2568static void entry_vkGetPhysicalDeviceExternalFencePropertiesKHR(
2569 VkPhysicalDevice physicalDevice,
2570 const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
2571 VkExternalFenceProperties* pExternalFenceProperties)
2572{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002573 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalFencePropertiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002574 auto vkEnc = HostConnection::get()->vkEncoder();
2575 vkEnc->vkGetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice, pExternalFenceInfo, pExternalFenceProperties);
2576}
2577#endif
2578#ifdef VK_KHR_external_fence
2579#endif
2580#ifdef VK_KHR_external_fence_win32
2581static VkResult entry_vkImportFenceWin32HandleKHR(
2582 VkDevice device,
2583 const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo)
2584{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002585 AEMU_SCOPED_TRACE("vkImportFenceWin32HandleKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002586 auto vkEnc = HostConnection::get()->vkEncoder();
2587 VkResult vkImportFenceWin32HandleKHR_VkResult_return = (VkResult)0;
2588 vkImportFenceWin32HandleKHR_VkResult_return = vkEnc->vkImportFenceWin32HandleKHR(device, pImportFenceWin32HandleInfo);
2589 return vkImportFenceWin32HandleKHR_VkResult_return;
2590}
2591static VkResult entry_vkGetFenceWin32HandleKHR(
2592 VkDevice device,
2593 const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo,
2594 HANDLE* pHandle)
2595{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002596 AEMU_SCOPED_TRACE("vkGetFenceWin32HandleKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002597 auto vkEnc = HostConnection::get()->vkEncoder();
2598 VkResult vkGetFenceWin32HandleKHR_VkResult_return = (VkResult)0;
2599 vkGetFenceWin32HandleKHR_VkResult_return = vkEnc->vkGetFenceWin32HandleKHR(device, pGetWin32HandleInfo, pHandle);
2600 return vkGetFenceWin32HandleKHR_VkResult_return;
2601}
2602#endif
2603#ifdef VK_KHR_external_fence_fd
2604static VkResult entry_vkImportFenceFdKHR(
2605 VkDevice device,
2606 const VkImportFenceFdInfoKHR* pImportFenceFdInfo)
2607{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002608 AEMU_SCOPED_TRACE("vkImportFenceFdKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002609 auto vkEnc = HostConnection::get()->vkEncoder();
2610 VkResult vkImportFenceFdKHR_VkResult_return = (VkResult)0;
2611 vkImportFenceFdKHR_VkResult_return = vkEnc->vkImportFenceFdKHR(device, pImportFenceFdInfo);
2612 return vkImportFenceFdKHR_VkResult_return;
2613}
2614static VkResult entry_vkGetFenceFdKHR(
2615 VkDevice device,
2616 const VkFenceGetFdInfoKHR* pGetFdInfo,
2617 int* pFd)
2618{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002619 AEMU_SCOPED_TRACE("vkGetFenceFdKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002620 auto vkEnc = HostConnection::get()->vkEncoder();
2621 VkResult vkGetFenceFdKHR_VkResult_return = (VkResult)0;
2622 vkGetFenceFdKHR_VkResult_return = vkEnc->vkGetFenceFdKHR(device, pGetFdInfo, pFd);
2623 return vkGetFenceFdKHR_VkResult_return;
2624}
2625#endif
2626#ifdef VK_KHR_maintenance2
2627#endif
2628#ifdef VK_KHR_get_surface_capabilities2
2629static VkResult entry_vkGetPhysicalDeviceSurfaceCapabilities2KHR(
2630 VkPhysicalDevice physicalDevice,
2631 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
2632 VkSurfaceCapabilities2KHR* pSurfaceCapabilities)
2633{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002634 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceCapabilities2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002635 auto vkEnc = HostConnection::get()->vkEncoder();
2636 VkResult vkGetPhysicalDeviceSurfaceCapabilities2KHR_VkResult_return = (VkResult)0;
2637 vkGetPhysicalDeviceSurfaceCapabilities2KHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, pSurfaceInfo, pSurfaceCapabilities);
2638 return vkGetPhysicalDeviceSurfaceCapabilities2KHR_VkResult_return;
2639}
2640static VkResult entry_vkGetPhysicalDeviceSurfaceFormats2KHR(
2641 VkPhysicalDevice physicalDevice,
2642 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
2643 uint32_t* pSurfaceFormatCount,
2644 VkSurfaceFormat2KHR* pSurfaceFormats)
2645{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002646 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceFormats2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002647 auto vkEnc = HostConnection::get()->vkEncoder();
2648 VkResult vkGetPhysicalDeviceSurfaceFormats2KHR_VkResult_return = (VkResult)0;
2649 vkGetPhysicalDeviceSurfaceFormats2KHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceFormats2KHR(physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats);
2650 return vkGetPhysicalDeviceSurfaceFormats2KHR_VkResult_return;
2651}
2652#endif
2653#ifdef VK_KHR_variable_pointers
2654#endif
2655#ifdef VK_KHR_get_display_properties2
2656static VkResult entry_vkGetPhysicalDeviceDisplayProperties2KHR(
2657 VkPhysicalDevice physicalDevice,
2658 uint32_t* pPropertyCount,
2659 VkDisplayProperties2KHR* pProperties)
2660{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002661 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002662 auto vkEnc = HostConnection::get()->vkEncoder();
2663 VkResult vkGetPhysicalDeviceDisplayProperties2KHR_VkResult_return = (VkResult)0;
2664 vkGetPhysicalDeviceDisplayProperties2KHR_VkResult_return = vkEnc->vkGetPhysicalDeviceDisplayProperties2KHR(physicalDevice, pPropertyCount, pProperties);
2665 return vkGetPhysicalDeviceDisplayProperties2KHR_VkResult_return;
2666}
2667static VkResult entry_vkGetPhysicalDeviceDisplayPlaneProperties2KHR(
2668 VkPhysicalDevice physicalDevice,
2669 uint32_t* pPropertyCount,
2670 VkDisplayPlaneProperties2KHR* pProperties)
2671{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002672 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayPlaneProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002673 auto vkEnc = HostConnection::get()->vkEncoder();
2674 VkResult vkGetPhysicalDeviceDisplayPlaneProperties2KHR_VkResult_return = (VkResult)0;
2675 vkGetPhysicalDeviceDisplayPlaneProperties2KHR_VkResult_return = vkEnc->vkGetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice, pPropertyCount, pProperties);
2676 return vkGetPhysicalDeviceDisplayPlaneProperties2KHR_VkResult_return;
2677}
2678static VkResult entry_vkGetDisplayModeProperties2KHR(
2679 VkPhysicalDevice physicalDevice,
2680 VkDisplayKHR display,
2681 uint32_t* pPropertyCount,
2682 VkDisplayModeProperties2KHR* pProperties)
2683{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002684 AEMU_SCOPED_TRACE("vkGetDisplayModeProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002685 auto vkEnc = HostConnection::get()->vkEncoder();
2686 VkResult vkGetDisplayModeProperties2KHR_VkResult_return = (VkResult)0;
2687 vkGetDisplayModeProperties2KHR_VkResult_return = vkEnc->vkGetDisplayModeProperties2KHR(physicalDevice, display, pPropertyCount, pProperties);
2688 return vkGetDisplayModeProperties2KHR_VkResult_return;
2689}
2690static VkResult entry_vkGetDisplayPlaneCapabilities2KHR(
2691 VkPhysicalDevice physicalDevice,
2692 const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo,
2693 VkDisplayPlaneCapabilities2KHR* pCapabilities)
2694{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002695 AEMU_SCOPED_TRACE("vkGetDisplayPlaneCapabilities2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002696 auto vkEnc = HostConnection::get()->vkEncoder();
2697 VkResult vkGetDisplayPlaneCapabilities2KHR_VkResult_return = (VkResult)0;
2698 vkGetDisplayPlaneCapabilities2KHR_VkResult_return = vkEnc->vkGetDisplayPlaneCapabilities2KHR(physicalDevice, pDisplayPlaneInfo, pCapabilities);
2699 return vkGetDisplayPlaneCapabilities2KHR_VkResult_return;
2700}
2701#endif
2702#ifdef VK_KHR_dedicated_allocation
2703#endif
2704#ifdef VK_KHR_storage_buffer_storage_class
2705#endif
2706#ifdef VK_KHR_relaxed_block_layout
2707#endif
2708#ifdef VK_KHR_get_memory_requirements2
2709static void entry_vkGetImageMemoryRequirements2KHR(
2710 VkDevice device,
2711 const VkImageMemoryRequirementsInfo2* pInfo,
2712 VkMemoryRequirements2* pMemoryRequirements)
2713{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002714 AEMU_SCOPED_TRACE("vkGetImageMemoryRequirements2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002715 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang4af5f322019-02-14 08:10:28 -08002716 auto resources = ResourceTracker::get();
2717 resources->on_vkGetImageMemoryRequirements2KHR(vkEnc, device, pInfo, pMemoryRequirements);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002718}
2719static void entry_vkGetBufferMemoryRequirements2KHR(
2720 VkDevice device,
2721 const VkBufferMemoryRequirementsInfo2* pInfo,
2722 VkMemoryRequirements2* pMemoryRequirements)
2723{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002724 AEMU_SCOPED_TRACE("vkGetBufferMemoryRequirements2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002725 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang4af5f322019-02-14 08:10:28 -08002726 auto resources = ResourceTracker::get();
2727 resources->on_vkGetBufferMemoryRequirements2KHR(vkEnc, device, pInfo, pMemoryRequirements);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002728}
2729static void entry_vkGetImageSparseMemoryRequirements2KHR(
2730 VkDevice device,
2731 const VkImageSparseMemoryRequirementsInfo2* pInfo,
2732 uint32_t* pSparseMemoryRequirementCount,
2733 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements)
2734{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002735 AEMU_SCOPED_TRACE("vkGetImageSparseMemoryRequirements2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002736 auto vkEnc = HostConnection::get()->vkEncoder();
2737 vkEnc->vkGetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements);
2738}
2739#endif
2740#ifdef VK_KHR_image_format_list
2741#endif
2742#ifdef VK_KHR_sampler_ycbcr_conversion
2743static VkResult entry_vkCreateSamplerYcbcrConversionKHR(
2744 VkDevice device,
2745 const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
2746 const VkAllocationCallbacks* pAllocator,
2747 VkSamplerYcbcrConversion* pYcbcrConversion)
2748{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002749 AEMU_SCOPED_TRACE("vkCreateSamplerYcbcrConversionKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002750 auto vkEnc = HostConnection::get()->vkEncoder();
2751 VkResult vkCreateSamplerYcbcrConversionKHR_VkResult_return = (VkResult)0;
Lingfeng Yang5c701122019-03-05 08:34:46 -08002752 auto resources = ResourceTracker::get();
2753 vkCreateSamplerYcbcrConversionKHR_VkResult_return = resources->on_vkCreateSamplerYcbcrConversionKHR(vkEnc, VK_SUCCESS, device, pCreateInfo, pAllocator, pYcbcrConversion);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002754 return vkCreateSamplerYcbcrConversionKHR_VkResult_return;
2755}
2756static void entry_vkDestroySamplerYcbcrConversionKHR(
2757 VkDevice device,
2758 VkSamplerYcbcrConversion ycbcrConversion,
2759 const VkAllocationCallbacks* pAllocator)
2760{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002761 AEMU_SCOPED_TRACE("vkDestroySamplerYcbcrConversionKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002762 auto vkEnc = HostConnection::get()->vkEncoder();
2763 vkEnc->vkDestroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator);
2764}
2765#endif
2766#ifdef VK_KHR_bind_memory2
2767static VkResult entry_vkBindBufferMemory2KHR(
2768 VkDevice device,
2769 uint32_t bindInfoCount,
2770 const VkBindBufferMemoryInfo* pBindInfos)
2771{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002772 AEMU_SCOPED_TRACE("vkBindBufferMemory2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002773 auto vkEnc = HostConnection::get()->vkEncoder();
2774 VkResult vkBindBufferMemory2KHR_VkResult_return = (VkResult)0;
Lingfeng Yang4af5f322019-02-14 08:10:28 -08002775 auto resources = ResourceTracker::get();
2776 vkBindBufferMemory2KHR_VkResult_return = resources->on_vkBindBufferMemory2KHR(vkEnc, VK_SUCCESS, device, bindInfoCount, pBindInfos);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002777 return vkBindBufferMemory2KHR_VkResult_return;
2778}
2779static VkResult entry_vkBindImageMemory2KHR(
2780 VkDevice device,
2781 uint32_t bindInfoCount,
2782 const VkBindImageMemoryInfo* pBindInfos)
2783{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002784 AEMU_SCOPED_TRACE("vkBindImageMemory2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002785 auto vkEnc = HostConnection::get()->vkEncoder();
2786 VkResult vkBindImageMemory2KHR_VkResult_return = (VkResult)0;
Lingfeng Yang4af5f322019-02-14 08:10:28 -08002787 auto resources = ResourceTracker::get();
2788 vkBindImageMemory2KHR_VkResult_return = resources->on_vkBindImageMemory2KHR(vkEnc, VK_SUCCESS, device, bindInfoCount, pBindInfos);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002789 return vkBindImageMemory2KHR_VkResult_return;
2790}
2791#endif
2792#ifdef VK_KHR_maintenance3
2793static void entry_vkGetDescriptorSetLayoutSupportKHR(
2794 VkDevice device,
2795 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
2796 VkDescriptorSetLayoutSupport* pSupport)
2797{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002798 AEMU_SCOPED_TRACE("vkGetDescriptorSetLayoutSupportKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002799 auto vkEnc = HostConnection::get()->vkEncoder();
2800 vkEnc->vkGetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport);
2801}
2802#endif
2803#ifdef VK_KHR_draw_indirect_count
2804static void entry_vkCmdDrawIndirectCountKHR(
2805 VkCommandBuffer commandBuffer,
2806 VkBuffer buffer,
2807 VkDeviceSize offset,
2808 VkBuffer countBuffer,
2809 VkDeviceSize countBufferOffset,
2810 uint32_t maxDrawCount,
2811 uint32_t stride)
2812{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002813 AEMU_SCOPED_TRACE("vkCmdDrawIndirectCountKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002814 auto vkEnc = HostConnection::get()->vkEncoder();
2815 vkEnc->vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
2816}
2817static void entry_vkCmdDrawIndexedIndirectCountKHR(
2818 VkCommandBuffer commandBuffer,
2819 VkBuffer buffer,
2820 VkDeviceSize offset,
2821 VkBuffer countBuffer,
2822 VkDeviceSize countBufferOffset,
2823 uint32_t maxDrawCount,
2824 uint32_t stride)
2825{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002826 AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirectCountKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002827 auto vkEnc = HostConnection::get()->vkEncoder();
2828 vkEnc->vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
2829}
2830#endif
2831#ifdef VK_KHR_8bit_storage
2832#endif
Lingfeng Yang808a6312018-11-13 21:06:15 -08002833#ifdef VK_ANDROID_native_buffer
2834static VkResult entry_vkGetSwapchainGrallocUsageANDROID(
2835 VkDevice device,
2836 VkFormat format,
2837 VkImageUsageFlags imageUsage,
2838 int* grallocUsage)
2839{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002840 AEMU_SCOPED_TRACE("vkGetSwapchainGrallocUsageANDROID");
Lingfeng Yang808a6312018-11-13 21:06:15 -08002841 auto vkEnc = HostConnection::get()->vkEncoder();
2842 VkResult vkGetSwapchainGrallocUsageANDROID_VkResult_return = (VkResult)0;
2843 vkGetSwapchainGrallocUsageANDROID_VkResult_return = vkEnc->vkGetSwapchainGrallocUsageANDROID(device, format, imageUsage, grallocUsage);
2844 return vkGetSwapchainGrallocUsageANDROID_VkResult_return;
2845}
2846static VkResult entry_vkAcquireImageANDROID(
2847 VkDevice device,
2848 VkImage image,
2849 int nativeFenceFd,
2850 VkSemaphore semaphore,
2851 VkFence fence)
2852{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002853 AEMU_SCOPED_TRACE("vkAcquireImageANDROID");
Lingfeng Yang808a6312018-11-13 21:06:15 -08002854 auto vkEnc = HostConnection::get()->vkEncoder();
2855 VkResult vkAcquireImageANDROID_VkResult_return = (VkResult)0;
2856 vkAcquireImageANDROID_VkResult_return = vkEnc->vkAcquireImageANDROID(device, image, nativeFenceFd, semaphore, fence);
2857 return vkAcquireImageANDROID_VkResult_return;
2858}
2859static VkResult entry_vkQueueSignalReleaseImageANDROID(
2860 VkQueue queue,
2861 uint32_t waitSemaphoreCount,
2862 const VkSemaphore* pWaitSemaphores,
2863 VkImage image,
2864 int* pNativeFenceFd)
2865{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002866 AEMU_SCOPED_TRACE("vkQueueSignalReleaseImageANDROID");
Lingfeng Yang808a6312018-11-13 21:06:15 -08002867 auto vkEnc = HostConnection::get()->vkEncoder();
2868 VkResult vkQueueSignalReleaseImageANDROID_VkResult_return = (VkResult)0;
2869 vkQueueSignalReleaseImageANDROID_VkResult_return = vkEnc->vkQueueSignalReleaseImageANDROID(queue, waitSemaphoreCount, pWaitSemaphores, image, pNativeFenceFd);
2870 return vkQueueSignalReleaseImageANDROID_VkResult_return;
2871}
2872#endif
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002873#ifdef VK_EXT_debug_report
2874static VkResult entry_vkCreateDebugReportCallbackEXT(
2875 VkInstance instance,
2876 const VkDebugReportCallbackCreateInfoEXT* pCreateInfo,
2877 const VkAllocationCallbacks* pAllocator,
2878 VkDebugReportCallbackEXT* pCallback)
2879{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002880 AEMU_SCOPED_TRACE("vkCreateDebugReportCallbackEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002881 auto vkEnc = HostConnection::get()->vkEncoder();
2882 VkResult vkCreateDebugReportCallbackEXT_VkResult_return = (VkResult)0;
2883 vkCreateDebugReportCallbackEXT_VkResult_return = vkEnc->vkCreateDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback);
2884 return vkCreateDebugReportCallbackEXT_VkResult_return;
2885}
2886static void entry_vkDestroyDebugReportCallbackEXT(
2887 VkInstance instance,
2888 VkDebugReportCallbackEXT callback,
2889 const VkAllocationCallbacks* pAllocator)
2890{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002891 AEMU_SCOPED_TRACE("vkDestroyDebugReportCallbackEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002892 auto vkEnc = HostConnection::get()->vkEncoder();
2893 vkEnc->vkDestroyDebugReportCallbackEXT(instance, callback, pAllocator);
2894}
2895static void entry_vkDebugReportMessageEXT(
2896 VkInstance instance,
2897 VkDebugReportFlagsEXT flags,
2898 VkDebugReportObjectTypeEXT objectType,
2899 uint64_t object,
2900 size_t location,
2901 int32_t messageCode,
2902 const char* pLayerPrefix,
2903 const char* pMessage)
2904{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002905 AEMU_SCOPED_TRACE("vkDebugReportMessageEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002906 auto vkEnc = HostConnection::get()->vkEncoder();
2907 vkEnc->vkDebugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage);
2908}
2909#endif
2910#ifdef VK_NV_glsl_shader
2911#endif
2912#ifdef VK_EXT_depth_range_unrestricted
2913#endif
2914#ifdef VK_IMG_filter_cubic
2915#endif
2916#ifdef VK_AMD_rasterization_order
2917#endif
2918#ifdef VK_AMD_shader_trinary_minmax
2919#endif
2920#ifdef VK_AMD_shader_explicit_vertex_parameter
2921#endif
2922#ifdef VK_EXT_debug_marker
2923static VkResult entry_vkDebugMarkerSetObjectTagEXT(
2924 VkDevice device,
2925 const VkDebugMarkerObjectTagInfoEXT* pTagInfo)
2926{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002927 AEMU_SCOPED_TRACE("vkDebugMarkerSetObjectTagEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002928 auto vkEnc = HostConnection::get()->vkEncoder();
2929 VkResult vkDebugMarkerSetObjectTagEXT_VkResult_return = (VkResult)0;
2930 vkDebugMarkerSetObjectTagEXT_VkResult_return = vkEnc->vkDebugMarkerSetObjectTagEXT(device, pTagInfo);
2931 return vkDebugMarkerSetObjectTagEXT_VkResult_return;
2932}
2933static VkResult entry_vkDebugMarkerSetObjectNameEXT(
2934 VkDevice device,
2935 const VkDebugMarkerObjectNameInfoEXT* pNameInfo)
2936{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002937 AEMU_SCOPED_TRACE("vkDebugMarkerSetObjectNameEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002938 auto vkEnc = HostConnection::get()->vkEncoder();
2939 VkResult vkDebugMarkerSetObjectNameEXT_VkResult_return = (VkResult)0;
2940 vkDebugMarkerSetObjectNameEXT_VkResult_return = vkEnc->vkDebugMarkerSetObjectNameEXT(device, pNameInfo);
2941 return vkDebugMarkerSetObjectNameEXT_VkResult_return;
2942}
2943static void entry_vkCmdDebugMarkerBeginEXT(
2944 VkCommandBuffer commandBuffer,
2945 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo)
2946{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002947 AEMU_SCOPED_TRACE("vkCmdDebugMarkerBeginEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002948 auto vkEnc = HostConnection::get()->vkEncoder();
2949 vkEnc->vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo);
2950}
2951static void entry_vkCmdDebugMarkerEndEXT(
2952 VkCommandBuffer commandBuffer)
2953{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002954 AEMU_SCOPED_TRACE("vkCmdDebugMarkerEndEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002955 auto vkEnc = HostConnection::get()->vkEncoder();
2956 vkEnc->vkCmdDebugMarkerEndEXT(commandBuffer);
2957}
2958static void entry_vkCmdDebugMarkerInsertEXT(
2959 VkCommandBuffer commandBuffer,
2960 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo)
2961{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002962 AEMU_SCOPED_TRACE("vkCmdDebugMarkerInsertEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002963 auto vkEnc = HostConnection::get()->vkEncoder();
2964 vkEnc->vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo);
2965}
2966#endif
2967#ifdef VK_AMD_gcn_shader
2968#endif
2969#ifdef VK_NV_dedicated_allocation
2970#endif
2971#ifdef VK_AMD_draw_indirect_count
2972static void entry_vkCmdDrawIndirectCountAMD(
2973 VkCommandBuffer commandBuffer,
2974 VkBuffer buffer,
2975 VkDeviceSize offset,
2976 VkBuffer countBuffer,
2977 VkDeviceSize countBufferOffset,
2978 uint32_t maxDrawCount,
2979 uint32_t stride)
2980{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002981 AEMU_SCOPED_TRACE("vkCmdDrawIndirectCountAMD");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002982 auto vkEnc = HostConnection::get()->vkEncoder();
2983 vkEnc->vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
2984}
2985static void entry_vkCmdDrawIndexedIndirectCountAMD(
2986 VkCommandBuffer commandBuffer,
2987 VkBuffer buffer,
2988 VkDeviceSize offset,
2989 VkBuffer countBuffer,
2990 VkDeviceSize countBufferOffset,
2991 uint32_t maxDrawCount,
2992 uint32_t stride)
2993{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002994 AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirectCountAMD");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002995 auto vkEnc = HostConnection::get()->vkEncoder();
2996 vkEnc->vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
2997}
2998#endif
2999#ifdef VK_AMD_negative_viewport_height
3000#endif
3001#ifdef VK_AMD_gpu_shader_half_float
3002#endif
3003#ifdef VK_AMD_shader_ballot
3004#endif
3005#ifdef VK_AMD_texture_gather_bias_lod
3006#endif
3007#ifdef VK_AMD_shader_info
3008static VkResult entry_vkGetShaderInfoAMD(
3009 VkDevice device,
3010 VkPipeline pipeline,
3011 VkShaderStageFlagBits shaderStage,
3012 VkShaderInfoTypeAMD infoType,
3013 size_t* pInfoSize,
3014 void* pInfo)
3015{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003016 AEMU_SCOPED_TRACE("vkGetShaderInfoAMD");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003017 auto vkEnc = HostConnection::get()->vkEncoder();
3018 VkResult vkGetShaderInfoAMD_VkResult_return = (VkResult)0;
3019 vkGetShaderInfoAMD_VkResult_return = vkEnc->vkGetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo);
3020 return vkGetShaderInfoAMD_VkResult_return;
3021}
3022#endif
3023#ifdef VK_AMD_shader_image_load_store_lod
3024#endif
3025#ifdef VK_IMG_format_pvrtc
3026#endif
3027#ifdef VK_NV_external_memory_capabilities
3028static VkResult entry_vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
3029 VkPhysicalDevice physicalDevice,
3030 VkFormat format,
3031 VkImageType type,
3032 VkImageTiling tiling,
3033 VkImageUsageFlags usage,
3034 VkImageCreateFlags flags,
3035 VkExternalMemoryHandleTypeFlagsNV externalHandleType,
3036 VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties)
3037{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003038 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalImageFormatPropertiesNV");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003039 auto vkEnc = HostConnection::get()->vkEncoder();
3040 VkResult vkGetPhysicalDeviceExternalImageFormatPropertiesNV_VkResult_return = (VkResult)0;
3041 vkGetPhysicalDeviceExternalImageFormatPropertiesNV_VkResult_return = vkEnc->vkGetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties);
3042 return vkGetPhysicalDeviceExternalImageFormatPropertiesNV_VkResult_return;
3043}
3044#endif
3045#ifdef VK_NV_external_memory
3046#endif
3047#ifdef VK_NV_external_memory_win32
3048static VkResult entry_vkGetMemoryWin32HandleNV(
3049 VkDevice device,
3050 VkDeviceMemory memory,
3051 VkExternalMemoryHandleTypeFlagsNV handleType,
3052 HANDLE* pHandle)
3053{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003054 AEMU_SCOPED_TRACE("vkGetMemoryWin32HandleNV");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003055 auto vkEnc = HostConnection::get()->vkEncoder();
3056 VkResult vkGetMemoryWin32HandleNV_VkResult_return = (VkResult)0;
3057 vkGetMemoryWin32HandleNV_VkResult_return = vkEnc->vkGetMemoryWin32HandleNV(device, memory, handleType, pHandle);
3058 return vkGetMemoryWin32HandleNV_VkResult_return;
3059}
3060#endif
3061#ifdef VK_NV_win32_keyed_mutex
3062#endif
3063#ifdef VK_EXT_validation_flags
3064#endif
3065#ifdef VK_NN_vi_surface
3066static VkResult entry_vkCreateViSurfaceNN(
3067 VkInstance instance,
3068 const VkViSurfaceCreateInfoNN* pCreateInfo,
3069 const VkAllocationCallbacks* pAllocator,
3070 VkSurfaceKHR* pSurface)
3071{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003072 AEMU_SCOPED_TRACE("vkCreateViSurfaceNN");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003073 auto vkEnc = HostConnection::get()->vkEncoder();
3074 VkResult vkCreateViSurfaceNN_VkResult_return = (VkResult)0;
3075 vkCreateViSurfaceNN_VkResult_return = vkEnc->vkCreateViSurfaceNN(instance, pCreateInfo, pAllocator, pSurface);
3076 return vkCreateViSurfaceNN_VkResult_return;
3077}
3078#endif
3079#ifdef VK_EXT_shader_subgroup_ballot
3080#endif
3081#ifdef VK_EXT_shader_subgroup_vote
3082#endif
3083#ifdef VK_EXT_conditional_rendering
3084static void entry_vkCmdBeginConditionalRenderingEXT(
3085 VkCommandBuffer commandBuffer,
3086 const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin)
3087{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003088 AEMU_SCOPED_TRACE("vkCmdBeginConditionalRenderingEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003089 auto vkEnc = HostConnection::get()->vkEncoder();
3090 vkEnc->vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin);
3091}
3092static void entry_vkCmdEndConditionalRenderingEXT(
3093 VkCommandBuffer commandBuffer)
3094{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003095 AEMU_SCOPED_TRACE("vkCmdEndConditionalRenderingEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003096 auto vkEnc = HostConnection::get()->vkEncoder();
3097 vkEnc->vkCmdEndConditionalRenderingEXT(commandBuffer);
3098}
3099#endif
3100#ifdef VK_NVX_device_generated_commands
3101static void entry_vkCmdProcessCommandsNVX(
3102 VkCommandBuffer commandBuffer,
3103 const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo)
3104{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003105 AEMU_SCOPED_TRACE("vkCmdProcessCommandsNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003106 auto vkEnc = HostConnection::get()->vkEncoder();
3107 vkEnc->vkCmdProcessCommandsNVX(commandBuffer, pProcessCommandsInfo);
3108}
3109static void entry_vkCmdReserveSpaceForCommandsNVX(
3110 VkCommandBuffer commandBuffer,
3111 const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo)
3112{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003113 AEMU_SCOPED_TRACE("vkCmdReserveSpaceForCommandsNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003114 auto vkEnc = HostConnection::get()->vkEncoder();
3115 vkEnc->vkCmdReserveSpaceForCommandsNVX(commandBuffer, pReserveSpaceInfo);
3116}
3117static VkResult entry_vkCreateIndirectCommandsLayoutNVX(
3118 VkDevice device,
3119 const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo,
3120 const VkAllocationCallbacks* pAllocator,
3121 VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout)
3122{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003123 AEMU_SCOPED_TRACE("vkCreateIndirectCommandsLayoutNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003124 auto vkEnc = HostConnection::get()->vkEncoder();
3125 VkResult vkCreateIndirectCommandsLayoutNVX_VkResult_return = (VkResult)0;
3126 vkCreateIndirectCommandsLayoutNVX_VkResult_return = vkEnc->vkCreateIndirectCommandsLayoutNVX(device, pCreateInfo, pAllocator, pIndirectCommandsLayout);
3127 return vkCreateIndirectCommandsLayoutNVX_VkResult_return;
3128}
3129static void entry_vkDestroyIndirectCommandsLayoutNVX(
3130 VkDevice device,
3131 VkIndirectCommandsLayoutNVX indirectCommandsLayout,
3132 const VkAllocationCallbacks* pAllocator)
3133{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003134 AEMU_SCOPED_TRACE("vkDestroyIndirectCommandsLayoutNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003135 auto vkEnc = HostConnection::get()->vkEncoder();
3136 vkEnc->vkDestroyIndirectCommandsLayoutNVX(device, indirectCommandsLayout, pAllocator);
3137}
3138static VkResult entry_vkCreateObjectTableNVX(
3139 VkDevice device,
3140 const VkObjectTableCreateInfoNVX* pCreateInfo,
3141 const VkAllocationCallbacks* pAllocator,
3142 VkObjectTableNVX* pObjectTable)
3143{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003144 AEMU_SCOPED_TRACE("vkCreateObjectTableNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003145 auto vkEnc = HostConnection::get()->vkEncoder();
3146 VkResult vkCreateObjectTableNVX_VkResult_return = (VkResult)0;
3147 vkCreateObjectTableNVX_VkResult_return = vkEnc->vkCreateObjectTableNVX(device, pCreateInfo, pAllocator, pObjectTable);
3148 return vkCreateObjectTableNVX_VkResult_return;
3149}
3150static void entry_vkDestroyObjectTableNVX(
3151 VkDevice device,
3152 VkObjectTableNVX objectTable,
3153 const VkAllocationCallbacks* pAllocator)
3154{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003155 AEMU_SCOPED_TRACE("vkDestroyObjectTableNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003156 auto vkEnc = HostConnection::get()->vkEncoder();
3157 vkEnc->vkDestroyObjectTableNVX(device, objectTable, pAllocator);
3158}
3159static VkResult entry_vkRegisterObjectsNVX(
3160 VkDevice device,
3161 VkObjectTableNVX objectTable,
3162 uint32_t objectCount,
3163 const VkObjectTableEntryNVX* const* ppObjectTableEntries,
3164 const uint32_t* pObjectIndices)
3165{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003166 AEMU_SCOPED_TRACE("vkRegisterObjectsNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003167 auto vkEnc = HostConnection::get()->vkEncoder();
3168 VkResult vkRegisterObjectsNVX_VkResult_return = (VkResult)0;
3169 vkRegisterObjectsNVX_VkResult_return = vkEnc->vkRegisterObjectsNVX(device, objectTable, objectCount, ppObjectTableEntries, pObjectIndices);
3170 return vkRegisterObjectsNVX_VkResult_return;
3171}
3172static VkResult entry_vkUnregisterObjectsNVX(
3173 VkDevice device,
3174 VkObjectTableNVX objectTable,
3175 uint32_t objectCount,
3176 const VkObjectEntryTypeNVX* pObjectEntryTypes,
3177 const uint32_t* pObjectIndices)
3178{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003179 AEMU_SCOPED_TRACE("vkUnregisterObjectsNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003180 auto vkEnc = HostConnection::get()->vkEncoder();
3181 VkResult vkUnregisterObjectsNVX_VkResult_return = (VkResult)0;
3182 vkUnregisterObjectsNVX_VkResult_return = vkEnc->vkUnregisterObjectsNVX(device, objectTable, objectCount, pObjectEntryTypes, pObjectIndices);
3183 return vkUnregisterObjectsNVX_VkResult_return;
3184}
3185static void entry_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX(
3186 VkPhysicalDevice physicalDevice,
3187 VkDeviceGeneratedCommandsFeaturesNVX* pFeatures,
3188 VkDeviceGeneratedCommandsLimitsNVX* pLimits)
3189{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003190 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003191 auto vkEnc = HostConnection::get()->vkEncoder();
3192 vkEnc->vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX(physicalDevice, pFeatures, pLimits);
3193}
3194#endif
3195#ifdef VK_NV_clip_space_w_scaling
3196static void entry_vkCmdSetViewportWScalingNV(
3197 VkCommandBuffer commandBuffer,
3198 uint32_t firstViewport,
3199 uint32_t viewportCount,
3200 const VkViewportWScalingNV* pViewportWScalings)
3201{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003202 AEMU_SCOPED_TRACE("vkCmdSetViewportWScalingNV");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003203 auto vkEnc = HostConnection::get()->vkEncoder();
3204 vkEnc->vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings);
3205}
3206#endif
3207#ifdef VK_EXT_direct_mode_display
3208static VkResult entry_vkReleaseDisplayEXT(
3209 VkPhysicalDevice physicalDevice,
3210 VkDisplayKHR display)
3211{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003212 AEMU_SCOPED_TRACE("vkReleaseDisplayEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003213 auto vkEnc = HostConnection::get()->vkEncoder();
3214 VkResult vkReleaseDisplayEXT_VkResult_return = (VkResult)0;
3215 vkReleaseDisplayEXT_VkResult_return = vkEnc->vkReleaseDisplayEXT(physicalDevice, display);
3216 return vkReleaseDisplayEXT_VkResult_return;
3217}
3218#endif
3219#ifdef VK_EXT_acquire_xlib_display
3220static VkResult entry_vkAcquireXlibDisplayEXT(
3221 VkPhysicalDevice physicalDevice,
3222 Display* dpy,
3223 VkDisplayKHR display)
3224{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003225 AEMU_SCOPED_TRACE("vkAcquireXlibDisplayEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003226 auto vkEnc = HostConnection::get()->vkEncoder();
3227 VkResult vkAcquireXlibDisplayEXT_VkResult_return = (VkResult)0;
3228 vkAcquireXlibDisplayEXT_VkResult_return = vkEnc->vkAcquireXlibDisplayEXT(physicalDevice, dpy, display);
3229 return vkAcquireXlibDisplayEXT_VkResult_return;
3230}
3231static VkResult entry_vkGetRandROutputDisplayEXT(
3232 VkPhysicalDevice physicalDevice,
3233 Display* dpy,
3234 RROutput rrOutput,
3235 VkDisplayKHR* pDisplay)
3236{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003237 AEMU_SCOPED_TRACE("vkGetRandROutputDisplayEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003238 auto vkEnc = HostConnection::get()->vkEncoder();
3239 VkResult vkGetRandROutputDisplayEXT_VkResult_return = (VkResult)0;
3240 vkGetRandROutputDisplayEXT_VkResult_return = vkEnc->vkGetRandROutputDisplayEXT(physicalDevice, dpy, rrOutput, pDisplay);
3241 return vkGetRandROutputDisplayEXT_VkResult_return;
3242}
3243#endif
3244#ifdef VK_EXT_display_surface_counter
3245static VkResult entry_vkGetPhysicalDeviceSurfaceCapabilities2EXT(
3246 VkPhysicalDevice physicalDevice,
3247 VkSurfaceKHR surface,
3248 VkSurfaceCapabilities2EXT* pSurfaceCapabilities)
3249{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003250 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceCapabilities2EXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003251 auto vkEnc = HostConnection::get()->vkEncoder();
3252 VkResult vkGetPhysicalDeviceSurfaceCapabilities2EXT_VkResult_return = (VkResult)0;
3253 vkGetPhysicalDeviceSurfaceCapabilities2EXT_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities);
3254 return vkGetPhysicalDeviceSurfaceCapabilities2EXT_VkResult_return;
3255}
3256#endif
3257#ifdef VK_EXT_display_control
3258static VkResult entry_vkDisplayPowerControlEXT(
3259 VkDevice device,
3260 VkDisplayKHR display,
3261 const VkDisplayPowerInfoEXT* pDisplayPowerInfo)
3262{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003263 AEMU_SCOPED_TRACE("vkDisplayPowerControlEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003264 auto vkEnc = HostConnection::get()->vkEncoder();
3265 VkResult vkDisplayPowerControlEXT_VkResult_return = (VkResult)0;
3266 vkDisplayPowerControlEXT_VkResult_return = vkEnc->vkDisplayPowerControlEXT(device, display, pDisplayPowerInfo);
3267 return vkDisplayPowerControlEXT_VkResult_return;
3268}
3269static VkResult entry_vkRegisterDeviceEventEXT(
3270 VkDevice device,
3271 const VkDeviceEventInfoEXT* pDeviceEventInfo,
3272 const VkAllocationCallbacks* pAllocator,
3273 VkFence* pFence)
3274{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003275 AEMU_SCOPED_TRACE("vkRegisterDeviceEventEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003276 auto vkEnc = HostConnection::get()->vkEncoder();
3277 VkResult vkRegisterDeviceEventEXT_VkResult_return = (VkResult)0;
3278 vkRegisterDeviceEventEXT_VkResult_return = vkEnc->vkRegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence);
3279 return vkRegisterDeviceEventEXT_VkResult_return;
3280}
3281static VkResult entry_vkRegisterDisplayEventEXT(
3282 VkDevice device,
3283 VkDisplayKHR display,
3284 const VkDisplayEventInfoEXT* pDisplayEventInfo,
3285 const VkAllocationCallbacks* pAllocator,
3286 VkFence* pFence)
3287{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003288 AEMU_SCOPED_TRACE("vkRegisterDisplayEventEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003289 auto vkEnc = HostConnection::get()->vkEncoder();
3290 VkResult vkRegisterDisplayEventEXT_VkResult_return = (VkResult)0;
3291 vkRegisterDisplayEventEXT_VkResult_return = vkEnc->vkRegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence);
3292 return vkRegisterDisplayEventEXT_VkResult_return;
3293}
3294static VkResult entry_vkGetSwapchainCounterEXT(
3295 VkDevice device,
3296 VkSwapchainKHR swapchain,
3297 VkSurfaceCounterFlagBitsEXT counter,
3298 uint64_t* pCounterValue)
3299{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003300 AEMU_SCOPED_TRACE("vkGetSwapchainCounterEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003301 auto vkEnc = HostConnection::get()->vkEncoder();
3302 VkResult vkGetSwapchainCounterEXT_VkResult_return = (VkResult)0;
3303 vkGetSwapchainCounterEXT_VkResult_return = vkEnc->vkGetSwapchainCounterEXT(device, swapchain, counter, pCounterValue);
3304 return vkGetSwapchainCounterEXT_VkResult_return;
3305}
3306#endif
3307#ifdef VK_GOOGLE_display_timing
3308static VkResult entry_vkGetRefreshCycleDurationGOOGLE(
3309 VkDevice device,
3310 VkSwapchainKHR swapchain,
3311 VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties)
3312{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003313 AEMU_SCOPED_TRACE("vkGetRefreshCycleDurationGOOGLE");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003314 auto vkEnc = HostConnection::get()->vkEncoder();
3315 VkResult vkGetRefreshCycleDurationGOOGLE_VkResult_return = (VkResult)0;
3316 vkGetRefreshCycleDurationGOOGLE_VkResult_return = vkEnc->vkGetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties);
3317 return vkGetRefreshCycleDurationGOOGLE_VkResult_return;
3318}
3319static VkResult entry_vkGetPastPresentationTimingGOOGLE(
3320 VkDevice device,
3321 VkSwapchainKHR swapchain,
3322 uint32_t* pPresentationTimingCount,
3323 VkPastPresentationTimingGOOGLE* pPresentationTimings)
3324{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003325 AEMU_SCOPED_TRACE("vkGetPastPresentationTimingGOOGLE");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003326 auto vkEnc = HostConnection::get()->vkEncoder();
3327 VkResult vkGetPastPresentationTimingGOOGLE_VkResult_return = (VkResult)0;
3328 vkGetPastPresentationTimingGOOGLE_VkResult_return = vkEnc->vkGetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings);
3329 return vkGetPastPresentationTimingGOOGLE_VkResult_return;
3330}
3331#endif
3332#ifdef VK_NV_sample_mask_override_coverage
3333#endif
3334#ifdef VK_NV_geometry_shader_passthrough
3335#endif
3336#ifdef VK_NV_viewport_array2
3337#endif
3338#ifdef VK_NVX_multiview_per_view_attributes
3339#endif
3340#ifdef VK_NV_viewport_swizzle
3341#endif
3342#ifdef VK_EXT_discard_rectangles
3343static void entry_vkCmdSetDiscardRectangleEXT(
3344 VkCommandBuffer commandBuffer,
3345 uint32_t firstDiscardRectangle,
3346 uint32_t discardRectangleCount,
3347 const VkRect2D* pDiscardRectangles)
3348{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003349 AEMU_SCOPED_TRACE("vkCmdSetDiscardRectangleEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003350 auto vkEnc = HostConnection::get()->vkEncoder();
3351 vkEnc->vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles);
3352}
3353#endif
3354#ifdef VK_EXT_conservative_rasterization
3355#endif
3356#ifdef VK_EXT_swapchain_colorspace
3357#endif
3358#ifdef VK_EXT_hdr_metadata
3359static void entry_vkSetHdrMetadataEXT(
3360 VkDevice device,
3361 uint32_t swapchainCount,
3362 const VkSwapchainKHR* pSwapchains,
3363 const VkHdrMetadataEXT* pMetadata)
3364{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003365 AEMU_SCOPED_TRACE("vkSetHdrMetadataEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003366 auto vkEnc = HostConnection::get()->vkEncoder();
3367 vkEnc->vkSetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata);
3368}
3369#endif
3370#ifdef VK_MVK_ios_surface
3371static VkResult entry_vkCreateIOSSurfaceMVK(
3372 VkInstance instance,
3373 const VkIOSSurfaceCreateInfoMVK* pCreateInfo,
3374 const VkAllocationCallbacks* pAllocator,
3375 VkSurfaceKHR* pSurface)
3376{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003377 AEMU_SCOPED_TRACE("vkCreateIOSSurfaceMVK");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003378 auto vkEnc = HostConnection::get()->vkEncoder();
3379 VkResult vkCreateIOSSurfaceMVK_VkResult_return = (VkResult)0;
3380 vkCreateIOSSurfaceMVK_VkResult_return = vkEnc->vkCreateIOSSurfaceMVK(instance, pCreateInfo, pAllocator, pSurface);
3381 return vkCreateIOSSurfaceMVK_VkResult_return;
3382}
3383#endif
3384#ifdef VK_MVK_macos_surface
3385static VkResult entry_vkCreateMacOSSurfaceMVK(
3386 VkInstance instance,
3387 const VkMacOSSurfaceCreateInfoMVK* pCreateInfo,
3388 const VkAllocationCallbacks* pAllocator,
3389 VkSurfaceKHR* pSurface)
3390{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003391 AEMU_SCOPED_TRACE("vkCreateMacOSSurfaceMVK");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003392 auto vkEnc = HostConnection::get()->vkEncoder();
3393 VkResult vkCreateMacOSSurfaceMVK_VkResult_return = (VkResult)0;
3394 vkCreateMacOSSurfaceMVK_VkResult_return = vkEnc->vkCreateMacOSSurfaceMVK(instance, pCreateInfo, pAllocator, pSurface);
3395 return vkCreateMacOSSurfaceMVK_VkResult_return;
3396}
3397#endif
3398#ifdef VK_EXT_external_memory_dma_buf
3399#endif
3400#ifdef VK_EXT_queue_family_foreign
3401#endif
3402#ifdef VK_EXT_debug_utils
3403static VkResult entry_vkSetDebugUtilsObjectNameEXT(
3404 VkDevice device,
3405 const VkDebugUtilsObjectNameInfoEXT* pNameInfo)
3406{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003407 AEMU_SCOPED_TRACE("vkSetDebugUtilsObjectNameEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003408 auto vkEnc = HostConnection::get()->vkEncoder();
3409 VkResult vkSetDebugUtilsObjectNameEXT_VkResult_return = (VkResult)0;
3410 vkSetDebugUtilsObjectNameEXT_VkResult_return = vkEnc->vkSetDebugUtilsObjectNameEXT(device, pNameInfo);
3411 return vkSetDebugUtilsObjectNameEXT_VkResult_return;
3412}
3413static VkResult entry_vkSetDebugUtilsObjectTagEXT(
3414 VkDevice device,
3415 const VkDebugUtilsObjectTagInfoEXT* pTagInfo)
3416{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003417 AEMU_SCOPED_TRACE("vkSetDebugUtilsObjectTagEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003418 auto vkEnc = HostConnection::get()->vkEncoder();
3419 VkResult vkSetDebugUtilsObjectTagEXT_VkResult_return = (VkResult)0;
3420 vkSetDebugUtilsObjectTagEXT_VkResult_return = vkEnc->vkSetDebugUtilsObjectTagEXT(device, pTagInfo);
3421 return vkSetDebugUtilsObjectTagEXT_VkResult_return;
3422}
3423static void entry_vkQueueBeginDebugUtilsLabelEXT(
3424 VkQueue queue,
3425 const VkDebugUtilsLabelEXT* pLabelInfo)
3426{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003427 AEMU_SCOPED_TRACE("vkQueueBeginDebugUtilsLabelEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003428 auto vkEnc = HostConnection::get()->vkEncoder();
3429 vkEnc->vkQueueBeginDebugUtilsLabelEXT(queue, pLabelInfo);
3430}
3431static void entry_vkQueueEndDebugUtilsLabelEXT(
3432 VkQueue queue)
3433{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003434 AEMU_SCOPED_TRACE("vkQueueEndDebugUtilsLabelEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003435 auto vkEnc = HostConnection::get()->vkEncoder();
3436 vkEnc->vkQueueEndDebugUtilsLabelEXT(queue);
3437}
3438static void entry_vkQueueInsertDebugUtilsLabelEXT(
3439 VkQueue queue,
3440 const VkDebugUtilsLabelEXT* pLabelInfo)
3441{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003442 AEMU_SCOPED_TRACE("vkQueueInsertDebugUtilsLabelEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003443 auto vkEnc = HostConnection::get()->vkEncoder();
3444 vkEnc->vkQueueInsertDebugUtilsLabelEXT(queue, pLabelInfo);
3445}
3446static void entry_vkCmdBeginDebugUtilsLabelEXT(
3447 VkCommandBuffer commandBuffer,
3448 const VkDebugUtilsLabelEXT* pLabelInfo)
3449{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003450 AEMU_SCOPED_TRACE("vkCmdBeginDebugUtilsLabelEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003451 auto vkEnc = HostConnection::get()->vkEncoder();
3452 vkEnc->vkCmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo);
3453}
3454static void entry_vkCmdEndDebugUtilsLabelEXT(
3455 VkCommandBuffer commandBuffer)
3456{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003457 AEMU_SCOPED_TRACE("vkCmdEndDebugUtilsLabelEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003458 auto vkEnc = HostConnection::get()->vkEncoder();
3459 vkEnc->vkCmdEndDebugUtilsLabelEXT(commandBuffer);
3460}
3461static void entry_vkCmdInsertDebugUtilsLabelEXT(
3462 VkCommandBuffer commandBuffer,
3463 const VkDebugUtilsLabelEXT* pLabelInfo)
3464{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003465 AEMU_SCOPED_TRACE("vkCmdInsertDebugUtilsLabelEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003466 auto vkEnc = HostConnection::get()->vkEncoder();
3467 vkEnc->vkCmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo);
3468}
3469static VkResult entry_vkCreateDebugUtilsMessengerEXT(
3470 VkInstance instance,
3471 const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo,
3472 const VkAllocationCallbacks* pAllocator,
3473 VkDebugUtilsMessengerEXT* pMessenger)
3474{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003475 AEMU_SCOPED_TRACE("vkCreateDebugUtilsMessengerEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003476 auto vkEnc = HostConnection::get()->vkEncoder();
3477 VkResult vkCreateDebugUtilsMessengerEXT_VkResult_return = (VkResult)0;
3478 vkCreateDebugUtilsMessengerEXT_VkResult_return = vkEnc->vkCreateDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, pMessenger);
3479 return vkCreateDebugUtilsMessengerEXT_VkResult_return;
3480}
3481static void entry_vkDestroyDebugUtilsMessengerEXT(
3482 VkInstance instance,
3483 VkDebugUtilsMessengerEXT messenger,
3484 const VkAllocationCallbacks* pAllocator)
3485{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003486 AEMU_SCOPED_TRACE("vkDestroyDebugUtilsMessengerEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003487 auto vkEnc = HostConnection::get()->vkEncoder();
3488 vkEnc->vkDestroyDebugUtilsMessengerEXT(instance, messenger, pAllocator);
3489}
3490static void entry_vkSubmitDebugUtilsMessageEXT(
3491 VkInstance instance,
3492 VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
3493 VkDebugUtilsMessageTypeFlagsEXT messageTypes,
3494 const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData)
3495{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003496 AEMU_SCOPED_TRACE("vkSubmitDebugUtilsMessageEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003497 auto vkEnc = HostConnection::get()->vkEncoder();
3498 vkEnc->vkSubmitDebugUtilsMessageEXT(instance, messageSeverity, messageTypes, pCallbackData);
3499}
3500#endif
3501#ifdef VK_ANDROID_external_memory_android_hardware_buffer
3502static VkResult entry_vkGetAndroidHardwareBufferPropertiesANDROID(
3503 VkDevice device,
3504 const AHardwareBuffer* buffer,
3505 VkAndroidHardwareBufferPropertiesANDROID* pProperties)
3506{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003507 AEMU_SCOPED_TRACE("vkGetAndroidHardwareBufferPropertiesANDROID");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003508 auto vkEnc = HostConnection::get()->vkEncoder();
3509 VkResult vkGetAndroidHardwareBufferPropertiesANDROID_VkResult_return = (VkResult)0;
Lingfeng Yang4f3f91f2019-02-28 11:37:21 -08003510 auto resources = ResourceTracker::get();
3511 vkGetAndroidHardwareBufferPropertiesANDROID_VkResult_return = resources->on_vkGetAndroidHardwareBufferPropertiesANDROID(vkEnc, VK_SUCCESS, device, buffer, pProperties);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003512 return vkGetAndroidHardwareBufferPropertiesANDROID_VkResult_return;
3513}
3514static VkResult entry_vkGetMemoryAndroidHardwareBufferANDROID(
3515 VkDevice device,
3516 const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo,
3517 AHardwareBuffer** pBuffer)
3518{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003519 AEMU_SCOPED_TRACE("vkGetMemoryAndroidHardwareBufferANDROID");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003520 auto vkEnc = HostConnection::get()->vkEncoder();
3521 VkResult vkGetMemoryAndroidHardwareBufferANDROID_VkResult_return = (VkResult)0;
Lingfeng Yang4f3f91f2019-02-28 11:37:21 -08003522 auto resources = ResourceTracker::get();
3523 vkGetMemoryAndroidHardwareBufferANDROID_VkResult_return = resources->on_vkGetMemoryAndroidHardwareBufferANDROID(vkEnc, VK_SUCCESS, device, pInfo, pBuffer);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003524 return vkGetMemoryAndroidHardwareBufferANDROID_VkResult_return;
3525}
3526#endif
3527#ifdef VK_EXT_sampler_filter_minmax
3528#endif
3529#ifdef VK_AMD_gpu_shader_int16
3530#endif
3531#ifdef VK_AMD_mixed_attachment_samples
3532#endif
3533#ifdef VK_AMD_shader_fragment_mask
3534#endif
3535#ifdef VK_EXT_shader_stencil_export
3536#endif
3537#ifdef VK_EXT_sample_locations
3538static void entry_vkCmdSetSampleLocationsEXT(
3539 VkCommandBuffer commandBuffer,
3540 const VkSampleLocationsInfoEXT* pSampleLocationsInfo)
3541{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003542 AEMU_SCOPED_TRACE("vkCmdSetSampleLocationsEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003543 auto vkEnc = HostConnection::get()->vkEncoder();
3544 vkEnc->vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo);
3545}
3546static void entry_vkGetPhysicalDeviceMultisamplePropertiesEXT(
3547 VkPhysicalDevice physicalDevice,
3548 VkSampleCountFlagBits samples,
3549 VkMultisamplePropertiesEXT* pMultisampleProperties)
3550{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003551 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMultisamplePropertiesEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003552 auto vkEnc = HostConnection::get()->vkEncoder();
3553 vkEnc->vkGetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties);
3554}
3555#endif
3556#ifdef VK_EXT_blend_operation_advanced
3557#endif
3558#ifdef VK_NV_fragment_coverage_to_color
3559#endif
3560#ifdef VK_NV_framebuffer_mixed_samples
3561#endif
3562#ifdef VK_NV_fill_rectangle
3563#endif
3564#ifdef VK_EXT_post_depth_coverage
3565#endif
3566#ifdef VK_EXT_validation_cache
3567static VkResult entry_vkCreateValidationCacheEXT(
3568 VkDevice device,
3569 const VkValidationCacheCreateInfoEXT* pCreateInfo,
3570 const VkAllocationCallbacks* pAllocator,
3571 VkValidationCacheEXT* pValidationCache)
3572{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003573 AEMU_SCOPED_TRACE("vkCreateValidationCacheEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003574 auto vkEnc = HostConnection::get()->vkEncoder();
3575 VkResult vkCreateValidationCacheEXT_VkResult_return = (VkResult)0;
3576 vkCreateValidationCacheEXT_VkResult_return = vkEnc->vkCreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache);
3577 return vkCreateValidationCacheEXT_VkResult_return;
3578}
3579static void entry_vkDestroyValidationCacheEXT(
3580 VkDevice device,
3581 VkValidationCacheEXT validationCache,
3582 const VkAllocationCallbacks* pAllocator)
3583{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003584 AEMU_SCOPED_TRACE("vkDestroyValidationCacheEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003585 auto vkEnc = HostConnection::get()->vkEncoder();
3586 vkEnc->vkDestroyValidationCacheEXT(device, validationCache, pAllocator);
3587}
3588static VkResult entry_vkMergeValidationCachesEXT(
3589 VkDevice device,
3590 VkValidationCacheEXT dstCache,
3591 uint32_t srcCacheCount,
3592 const VkValidationCacheEXT* pSrcCaches)
3593{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003594 AEMU_SCOPED_TRACE("vkMergeValidationCachesEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003595 auto vkEnc = HostConnection::get()->vkEncoder();
3596 VkResult vkMergeValidationCachesEXT_VkResult_return = (VkResult)0;
3597 vkMergeValidationCachesEXT_VkResult_return = vkEnc->vkMergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches);
3598 return vkMergeValidationCachesEXT_VkResult_return;
3599}
3600static VkResult entry_vkGetValidationCacheDataEXT(
3601 VkDevice device,
3602 VkValidationCacheEXT validationCache,
3603 size_t* pDataSize,
3604 void* pData)
3605{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003606 AEMU_SCOPED_TRACE("vkGetValidationCacheDataEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003607 auto vkEnc = HostConnection::get()->vkEncoder();
3608 VkResult vkGetValidationCacheDataEXT_VkResult_return = (VkResult)0;
3609 vkGetValidationCacheDataEXT_VkResult_return = vkEnc->vkGetValidationCacheDataEXT(device, validationCache, pDataSize, pData);
3610 return vkGetValidationCacheDataEXT_VkResult_return;
3611}
3612#endif
3613#ifdef VK_EXT_descriptor_indexing
3614#endif
3615#ifdef VK_EXT_shader_viewport_index_layer
3616#endif
3617#ifdef VK_EXT_global_priority
3618#endif
3619#ifdef VK_EXT_external_memory_host
3620static VkResult entry_vkGetMemoryHostPointerPropertiesEXT(
3621 VkDevice device,
3622 VkExternalMemoryHandleTypeFlagBits handleType,
3623 const void* pHostPointer,
3624 VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties)
3625{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003626 AEMU_SCOPED_TRACE("vkGetMemoryHostPointerPropertiesEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003627 auto vkEnc = HostConnection::get()->vkEncoder();
3628 VkResult vkGetMemoryHostPointerPropertiesEXT_VkResult_return = (VkResult)0;
3629 vkGetMemoryHostPointerPropertiesEXT_VkResult_return = vkEnc->vkGetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties);
3630 return vkGetMemoryHostPointerPropertiesEXT_VkResult_return;
3631}
3632#endif
3633#ifdef VK_AMD_buffer_marker
3634static void entry_vkCmdWriteBufferMarkerAMD(
3635 VkCommandBuffer commandBuffer,
3636 VkPipelineStageFlagBits pipelineStage,
3637 VkBuffer dstBuffer,
3638 VkDeviceSize dstOffset,
3639 uint32_t marker)
3640{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003641 AEMU_SCOPED_TRACE("vkCmdWriteBufferMarkerAMD");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003642 auto vkEnc = HostConnection::get()->vkEncoder();
3643 vkEnc->vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker);
3644}
3645#endif
3646#ifdef VK_AMD_shader_core_properties
3647#endif
3648#ifdef VK_EXT_vertex_attribute_divisor
3649#endif
3650#ifdef VK_NV_shader_subgroup_partitioned
3651#endif
3652#ifdef VK_NV_device_diagnostic_checkpoints
3653static void entry_vkCmdSetCheckpointNV(
3654 VkCommandBuffer commandBuffer,
3655 const void* pCheckpointMarker)
3656{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003657 AEMU_SCOPED_TRACE("vkCmdSetCheckpointNV");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003658 auto vkEnc = HostConnection::get()->vkEncoder();
3659 vkEnc->vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker);
3660}
3661static void entry_vkGetQueueCheckpointDataNV(
3662 VkQueue queue,
3663 uint32_t* pCheckpointDataCount,
3664 VkCheckpointDataNV* pCheckpointData)
3665{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003666 AEMU_SCOPED_TRACE("vkGetQueueCheckpointDataNV");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003667 auto vkEnc = HostConnection::get()->vkEncoder();
3668 vkEnc->vkGetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData);
3669}
3670#endif
Lingfeng Yang5c63afd2018-12-22 01:21:14 -08003671#ifdef VK_GOOGLE_address_space
3672static VkResult entry_vkMapMemoryIntoAddressSpaceGOOGLE(
3673 VkDevice device,
3674 VkDeviceMemory memory,
3675 uint64_t* pAddress)
3676{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003677 AEMU_SCOPED_TRACE("vkMapMemoryIntoAddressSpaceGOOGLE");
Lingfeng Yang5c63afd2018-12-22 01:21:14 -08003678 auto vkEnc = HostConnection::get()->vkEncoder();
3679 VkResult vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return = (VkResult)0;
3680 vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return = vkEnc->vkMapMemoryIntoAddressSpaceGOOGLE(device, memory, pAddress);
3681 return vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return;
3682}
3683#endif
Lingfeng Yangae7e1b32019-02-19 14:07:39 -08003684#ifdef VK_GOOGLE_color_buffer
3685static VkResult entry_vkRegisterImageColorBufferGOOGLE(
3686 VkDevice device,
3687 VkImage image,
3688 uint32_t colorBuffer)
3689{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003690 AEMU_SCOPED_TRACE("vkRegisterImageColorBufferGOOGLE");
Lingfeng Yangae7e1b32019-02-19 14:07:39 -08003691 auto vkEnc = HostConnection::get()->vkEncoder();
3692 VkResult vkRegisterImageColorBufferGOOGLE_VkResult_return = (VkResult)0;
3693 vkRegisterImageColorBufferGOOGLE_VkResult_return = vkEnc->vkRegisterImageColorBufferGOOGLE(device, image, colorBuffer);
3694 return vkRegisterImageColorBufferGOOGLE_VkResult_return;
3695}
3696static VkResult entry_vkRegisterBufferColorBufferGOOGLE(
3697 VkDevice device,
3698 VkBuffer buffer,
3699 uint32_t colorBuffer)
3700{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003701 AEMU_SCOPED_TRACE("vkRegisterBufferColorBufferGOOGLE");
Lingfeng Yangae7e1b32019-02-19 14:07:39 -08003702 auto vkEnc = HostConnection::get()->vkEncoder();
3703 VkResult vkRegisterBufferColorBufferGOOGLE_VkResult_return = (VkResult)0;
3704 vkRegisterBufferColorBufferGOOGLE_VkResult_return = vkEnc->vkRegisterBufferColorBufferGOOGLE(device, buffer, colorBuffer);
3705 return vkRegisterBufferColorBufferGOOGLE_VkResult_return;
3706}
3707#endif
Lingfeng Yang05d5ea32019-03-23 00:12:39 -07003708#ifdef VK_GOOGLE_sized_descriptor_update_template
3709static void entry_vkUpdateDescriptorSetWithTemplateSizedGOOGLE(
3710 VkDevice device,
3711 VkDescriptorSet descriptorSet,
3712 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
3713 uint32_t imageInfoCount,
3714 uint32_t bufferInfoCount,
3715 uint32_t bufferViewCount,
3716 const uint32_t* pImageInfoEntryIndices,
3717 const uint32_t* pBufferInfoEntryIndices,
3718 const uint32_t* pBufferViewEntryIndices,
3719 const VkDescriptorImageInfo* pImageInfos,
3720 const VkDescriptorBufferInfo* pBufferInfos,
3721 const VkBufferView* pBufferViews)
3722{
3723 AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplateSizedGOOGLE");
3724 auto vkEnc = HostConnection::get()->vkEncoder();
3725 vkEnc->vkUpdateDescriptorSetWithTemplateSizedGOOGLE(device, descriptorSet, descriptorUpdateTemplate, imageInfoCount, bufferInfoCount, bufferViewCount, pImageInfoEntryIndices, pBufferInfoEntryIndices, pBufferViewEntryIndices, pImageInfos, pBufferInfos, pBufferViews);
3726}
3727#endif
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003728void* goldfish_vulkan_get_proc_address(const char* name){
3729#ifdef VK_VERSION_1_0
3730 if (!strcmp(name, "vkCreateInstance"))
3731 {
3732 return (void*)entry_vkCreateInstance;
3733 }
3734 if (!strcmp(name, "vkDestroyInstance"))
3735 {
3736 return (void*)entry_vkDestroyInstance;
3737 }
3738 if (!strcmp(name, "vkEnumeratePhysicalDevices"))
3739 {
3740 return (void*)entry_vkEnumeratePhysicalDevices;
3741 }
3742 if (!strcmp(name, "vkGetPhysicalDeviceFeatures"))
3743 {
3744 return (void*)entry_vkGetPhysicalDeviceFeatures;
3745 }
3746 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties"))
3747 {
3748 return (void*)entry_vkGetPhysicalDeviceFormatProperties;
3749 }
3750 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties"))
3751 {
3752 return (void*)entry_vkGetPhysicalDeviceImageFormatProperties;
3753 }
3754 if (!strcmp(name, "vkGetPhysicalDeviceProperties"))
3755 {
3756 return (void*)entry_vkGetPhysicalDeviceProperties;
3757 }
3758 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties"))
3759 {
3760 return (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties;
3761 }
3762 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties"))
3763 {
3764 return (void*)entry_vkGetPhysicalDeviceMemoryProperties;
3765 }
3766 if (!strcmp(name, "vkGetInstanceProcAddr"))
3767 {
3768 return (void*)entry_vkGetInstanceProcAddr;
3769 }
3770 if (!strcmp(name, "vkGetDeviceProcAddr"))
3771 {
3772 return (void*)entry_vkGetDeviceProcAddr;
3773 }
3774 if (!strcmp(name, "vkCreateDevice"))
3775 {
3776 return (void*)entry_vkCreateDevice;
3777 }
3778 if (!strcmp(name, "vkDestroyDevice"))
3779 {
3780 return (void*)entry_vkDestroyDevice;
3781 }
3782 if (!strcmp(name, "vkEnumerateInstanceExtensionProperties"))
3783 {
3784 return (void*)entry_vkEnumerateInstanceExtensionProperties;
3785 }
3786 if (!strcmp(name, "vkEnumerateDeviceExtensionProperties"))
3787 {
3788 return (void*)entry_vkEnumerateDeviceExtensionProperties;
3789 }
3790 if (!strcmp(name, "vkEnumerateInstanceLayerProperties"))
3791 {
3792 return (void*)entry_vkEnumerateInstanceLayerProperties;
3793 }
3794 if (!strcmp(name, "vkEnumerateDeviceLayerProperties"))
3795 {
3796 return (void*)entry_vkEnumerateDeviceLayerProperties;
3797 }
3798 if (!strcmp(name, "vkGetDeviceQueue"))
3799 {
3800 return (void*)entry_vkGetDeviceQueue;
3801 }
3802 if (!strcmp(name, "vkQueueSubmit"))
3803 {
3804 return (void*)entry_vkQueueSubmit;
3805 }
3806 if (!strcmp(name, "vkQueueWaitIdle"))
3807 {
3808 return (void*)entry_vkQueueWaitIdle;
3809 }
3810 if (!strcmp(name, "vkDeviceWaitIdle"))
3811 {
3812 return (void*)entry_vkDeviceWaitIdle;
3813 }
3814 if (!strcmp(name, "vkAllocateMemory"))
3815 {
3816 return (void*)entry_vkAllocateMemory;
3817 }
3818 if (!strcmp(name, "vkFreeMemory"))
3819 {
3820 return (void*)entry_vkFreeMemory;
3821 }
3822 if (!strcmp(name, "vkMapMemory"))
3823 {
3824 return (void*)entry_vkMapMemory;
3825 }
3826 if (!strcmp(name, "vkUnmapMemory"))
3827 {
3828 return (void*)entry_vkUnmapMemory;
3829 }
3830 if (!strcmp(name, "vkFlushMappedMemoryRanges"))
3831 {
3832 return (void*)entry_vkFlushMappedMemoryRanges;
3833 }
3834 if (!strcmp(name, "vkInvalidateMappedMemoryRanges"))
3835 {
3836 return (void*)entry_vkInvalidateMappedMemoryRanges;
3837 }
3838 if (!strcmp(name, "vkGetDeviceMemoryCommitment"))
3839 {
3840 return (void*)entry_vkGetDeviceMemoryCommitment;
3841 }
3842 if (!strcmp(name, "vkBindBufferMemory"))
3843 {
3844 return (void*)entry_vkBindBufferMemory;
3845 }
3846 if (!strcmp(name, "vkBindImageMemory"))
3847 {
3848 return (void*)entry_vkBindImageMemory;
3849 }
3850 if (!strcmp(name, "vkGetBufferMemoryRequirements"))
3851 {
3852 return (void*)entry_vkGetBufferMemoryRequirements;
3853 }
3854 if (!strcmp(name, "vkGetImageMemoryRequirements"))
3855 {
3856 return (void*)entry_vkGetImageMemoryRequirements;
3857 }
3858 if (!strcmp(name, "vkGetImageSparseMemoryRequirements"))
3859 {
3860 return (void*)entry_vkGetImageSparseMemoryRequirements;
3861 }
3862 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties"))
3863 {
3864 return (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties;
3865 }
3866 if (!strcmp(name, "vkQueueBindSparse"))
3867 {
3868 return (void*)entry_vkQueueBindSparse;
3869 }
3870 if (!strcmp(name, "vkCreateFence"))
3871 {
3872 return (void*)entry_vkCreateFence;
3873 }
3874 if (!strcmp(name, "vkDestroyFence"))
3875 {
3876 return (void*)entry_vkDestroyFence;
3877 }
3878 if (!strcmp(name, "vkResetFences"))
3879 {
3880 return (void*)entry_vkResetFences;
3881 }
3882 if (!strcmp(name, "vkGetFenceStatus"))
3883 {
3884 return (void*)entry_vkGetFenceStatus;
3885 }
3886 if (!strcmp(name, "vkWaitForFences"))
3887 {
3888 return (void*)entry_vkWaitForFences;
3889 }
3890 if (!strcmp(name, "vkCreateSemaphore"))
3891 {
3892 return (void*)entry_vkCreateSemaphore;
3893 }
3894 if (!strcmp(name, "vkDestroySemaphore"))
3895 {
3896 return (void*)entry_vkDestroySemaphore;
3897 }
3898 if (!strcmp(name, "vkCreateEvent"))
3899 {
3900 return (void*)entry_vkCreateEvent;
3901 }
3902 if (!strcmp(name, "vkDestroyEvent"))
3903 {
3904 return (void*)entry_vkDestroyEvent;
3905 }
3906 if (!strcmp(name, "vkGetEventStatus"))
3907 {
3908 return (void*)entry_vkGetEventStatus;
3909 }
3910 if (!strcmp(name, "vkSetEvent"))
3911 {
3912 return (void*)entry_vkSetEvent;
3913 }
3914 if (!strcmp(name, "vkResetEvent"))
3915 {
3916 return (void*)entry_vkResetEvent;
3917 }
3918 if (!strcmp(name, "vkCreateQueryPool"))
3919 {
3920 return (void*)entry_vkCreateQueryPool;
3921 }
3922 if (!strcmp(name, "vkDestroyQueryPool"))
3923 {
3924 return (void*)entry_vkDestroyQueryPool;
3925 }
3926 if (!strcmp(name, "vkGetQueryPoolResults"))
3927 {
3928 return (void*)entry_vkGetQueryPoolResults;
3929 }
3930 if (!strcmp(name, "vkCreateBuffer"))
3931 {
3932 return (void*)entry_vkCreateBuffer;
3933 }
3934 if (!strcmp(name, "vkDestroyBuffer"))
3935 {
3936 return (void*)entry_vkDestroyBuffer;
3937 }
3938 if (!strcmp(name, "vkCreateBufferView"))
3939 {
3940 return (void*)entry_vkCreateBufferView;
3941 }
3942 if (!strcmp(name, "vkDestroyBufferView"))
3943 {
3944 return (void*)entry_vkDestroyBufferView;
3945 }
3946 if (!strcmp(name, "vkCreateImage"))
3947 {
3948 return (void*)entry_vkCreateImage;
3949 }
3950 if (!strcmp(name, "vkDestroyImage"))
3951 {
3952 return (void*)entry_vkDestroyImage;
3953 }
3954 if (!strcmp(name, "vkGetImageSubresourceLayout"))
3955 {
3956 return (void*)entry_vkGetImageSubresourceLayout;
3957 }
3958 if (!strcmp(name, "vkCreateImageView"))
3959 {
3960 return (void*)entry_vkCreateImageView;
3961 }
3962 if (!strcmp(name, "vkDestroyImageView"))
3963 {
3964 return (void*)entry_vkDestroyImageView;
3965 }
3966 if (!strcmp(name, "vkCreateShaderModule"))
3967 {
3968 return (void*)entry_vkCreateShaderModule;
3969 }
3970 if (!strcmp(name, "vkDestroyShaderModule"))
3971 {
3972 return (void*)entry_vkDestroyShaderModule;
3973 }
3974 if (!strcmp(name, "vkCreatePipelineCache"))
3975 {
3976 return (void*)entry_vkCreatePipelineCache;
3977 }
3978 if (!strcmp(name, "vkDestroyPipelineCache"))
3979 {
3980 return (void*)entry_vkDestroyPipelineCache;
3981 }
3982 if (!strcmp(name, "vkGetPipelineCacheData"))
3983 {
3984 return (void*)entry_vkGetPipelineCacheData;
3985 }
3986 if (!strcmp(name, "vkMergePipelineCaches"))
3987 {
3988 return (void*)entry_vkMergePipelineCaches;
3989 }
3990 if (!strcmp(name, "vkCreateGraphicsPipelines"))
3991 {
3992 return (void*)entry_vkCreateGraphicsPipelines;
3993 }
3994 if (!strcmp(name, "vkCreateComputePipelines"))
3995 {
3996 return (void*)entry_vkCreateComputePipelines;
3997 }
3998 if (!strcmp(name, "vkDestroyPipeline"))
3999 {
4000 return (void*)entry_vkDestroyPipeline;
4001 }
4002 if (!strcmp(name, "vkCreatePipelineLayout"))
4003 {
4004 return (void*)entry_vkCreatePipelineLayout;
4005 }
4006 if (!strcmp(name, "vkDestroyPipelineLayout"))
4007 {
4008 return (void*)entry_vkDestroyPipelineLayout;
4009 }
4010 if (!strcmp(name, "vkCreateSampler"))
4011 {
4012 return (void*)entry_vkCreateSampler;
4013 }
4014 if (!strcmp(name, "vkDestroySampler"))
4015 {
4016 return (void*)entry_vkDestroySampler;
4017 }
4018 if (!strcmp(name, "vkCreateDescriptorSetLayout"))
4019 {
4020 return (void*)entry_vkCreateDescriptorSetLayout;
4021 }
4022 if (!strcmp(name, "vkDestroyDescriptorSetLayout"))
4023 {
4024 return (void*)entry_vkDestroyDescriptorSetLayout;
4025 }
4026 if (!strcmp(name, "vkCreateDescriptorPool"))
4027 {
4028 return (void*)entry_vkCreateDescriptorPool;
4029 }
4030 if (!strcmp(name, "vkDestroyDescriptorPool"))
4031 {
4032 return (void*)entry_vkDestroyDescriptorPool;
4033 }
4034 if (!strcmp(name, "vkResetDescriptorPool"))
4035 {
4036 return (void*)entry_vkResetDescriptorPool;
4037 }
4038 if (!strcmp(name, "vkAllocateDescriptorSets"))
4039 {
4040 return (void*)entry_vkAllocateDescriptorSets;
4041 }
4042 if (!strcmp(name, "vkFreeDescriptorSets"))
4043 {
4044 return (void*)entry_vkFreeDescriptorSets;
4045 }
4046 if (!strcmp(name, "vkUpdateDescriptorSets"))
4047 {
4048 return (void*)entry_vkUpdateDescriptorSets;
4049 }
4050 if (!strcmp(name, "vkCreateFramebuffer"))
4051 {
4052 return (void*)entry_vkCreateFramebuffer;
4053 }
4054 if (!strcmp(name, "vkDestroyFramebuffer"))
4055 {
4056 return (void*)entry_vkDestroyFramebuffer;
4057 }
4058 if (!strcmp(name, "vkCreateRenderPass"))
4059 {
4060 return (void*)entry_vkCreateRenderPass;
4061 }
4062 if (!strcmp(name, "vkDestroyRenderPass"))
4063 {
4064 return (void*)entry_vkDestroyRenderPass;
4065 }
4066 if (!strcmp(name, "vkGetRenderAreaGranularity"))
4067 {
4068 return (void*)entry_vkGetRenderAreaGranularity;
4069 }
4070 if (!strcmp(name, "vkCreateCommandPool"))
4071 {
4072 return (void*)entry_vkCreateCommandPool;
4073 }
4074 if (!strcmp(name, "vkDestroyCommandPool"))
4075 {
4076 return (void*)entry_vkDestroyCommandPool;
4077 }
4078 if (!strcmp(name, "vkResetCommandPool"))
4079 {
4080 return (void*)entry_vkResetCommandPool;
4081 }
4082 if (!strcmp(name, "vkAllocateCommandBuffers"))
4083 {
4084 return (void*)entry_vkAllocateCommandBuffers;
4085 }
4086 if (!strcmp(name, "vkFreeCommandBuffers"))
4087 {
4088 return (void*)entry_vkFreeCommandBuffers;
4089 }
4090 if (!strcmp(name, "vkBeginCommandBuffer"))
4091 {
4092 return (void*)entry_vkBeginCommandBuffer;
4093 }
4094 if (!strcmp(name, "vkEndCommandBuffer"))
4095 {
4096 return (void*)entry_vkEndCommandBuffer;
4097 }
4098 if (!strcmp(name, "vkResetCommandBuffer"))
4099 {
4100 return (void*)entry_vkResetCommandBuffer;
4101 }
4102 if (!strcmp(name, "vkCmdBindPipeline"))
4103 {
4104 return (void*)entry_vkCmdBindPipeline;
4105 }
4106 if (!strcmp(name, "vkCmdSetViewport"))
4107 {
4108 return (void*)entry_vkCmdSetViewport;
4109 }
4110 if (!strcmp(name, "vkCmdSetScissor"))
4111 {
4112 return (void*)entry_vkCmdSetScissor;
4113 }
4114 if (!strcmp(name, "vkCmdSetLineWidth"))
4115 {
4116 return (void*)entry_vkCmdSetLineWidth;
4117 }
4118 if (!strcmp(name, "vkCmdSetDepthBias"))
4119 {
4120 return (void*)entry_vkCmdSetDepthBias;
4121 }
4122 if (!strcmp(name, "vkCmdSetBlendConstants"))
4123 {
4124 return (void*)entry_vkCmdSetBlendConstants;
4125 }
4126 if (!strcmp(name, "vkCmdSetDepthBounds"))
4127 {
4128 return (void*)entry_vkCmdSetDepthBounds;
4129 }
4130 if (!strcmp(name, "vkCmdSetStencilCompareMask"))
4131 {
4132 return (void*)entry_vkCmdSetStencilCompareMask;
4133 }
4134 if (!strcmp(name, "vkCmdSetStencilWriteMask"))
4135 {
4136 return (void*)entry_vkCmdSetStencilWriteMask;
4137 }
4138 if (!strcmp(name, "vkCmdSetStencilReference"))
4139 {
4140 return (void*)entry_vkCmdSetStencilReference;
4141 }
4142 if (!strcmp(name, "vkCmdBindDescriptorSets"))
4143 {
4144 return (void*)entry_vkCmdBindDescriptorSets;
4145 }
4146 if (!strcmp(name, "vkCmdBindIndexBuffer"))
4147 {
4148 return (void*)entry_vkCmdBindIndexBuffer;
4149 }
4150 if (!strcmp(name, "vkCmdBindVertexBuffers"))
4151 {
4152 return (void*)entry_vkCmdBindVertexBuffers;
4153 }
4154 if (!strcmp(name, "vkCmdDraw"))
4155 {
4156 return (void*)entry_vkCmdDraw;
4157 }
4158 if (!strcmp(name, "vkCmdDrawIndexed"))
4159 {
4160 return (void*)entry_vkCmdDrawIndexed;
4161 }
4162 if (!strcmp(name, "vkCmdDrawIndirect"))
4163 {
4164 return (void*)entry_vkCmdDrawIndirect;
4165 }
4166 if (!strcmp(name, "vkCmdDrawIndexedIndirect"))
4167 {
4168 return (void*)entry_vkCmdDrawIndexedIndirect;
4169 }
4170 if (!strcmp(name, "vkCmdDispatch"))
4171 {
4172 return (void*)entry_vkCmdDispatch;
4173 }
4174 if (!strcmp(name, "vkCmdDispatchIndirect"))
4175 {
4176 return (void*)entry_vkCmdDispatchIndirect;
4177 }
4178 if (!strcmp(name, "vkCmdCopyBuffer"))
4179 {
4180 return (void*)entry_vkCmdCopyBuffer;
4181 }
4182 if (!strcmp(name, "vkCmdCopyImage"))
4183 {
4184 return (void*)entry_vkCmdCopyImage;
4185 }
4186 if (!strcmp(name, "vkCmdBlitImage"))
4187 {
4188 return (void*)entry_vkCmdBlitImage;
4189 }
4190 if (!strcmp(name, "vkCmdCopyBufferToImage"))
4191 {
4192 return (void*)entry_vkCmdCopyBufferToImage;
4193 }
4194 if (!strcmp(name, "vkCmdCopyImageToBuffer"))
4195 {
4196 return (void*)entry_vkCmdCopyImageToBuffer;
4197 }
4198 if (!strcmp(name, "vkCmdUpdateBuffer"))
4199 {
4200 return (void*)entry_vkCmdUpdateBuffer;
4201 }
4202 if (!strcmp(name, "vkCmdFillBuffer"))
4203 {
4204 return (void*)entry_vkCmdFillBuffer;
4205 }
4206 if (!strcmp(name, "vkCmdClearColorImage"))
4207 {
4208 return (void*)entry_vkCmdClearColorImage;
4209 }
4210 if (!strcmp(name, "vkCmdClearDepthStencilImage"))
4211 {
4212 return (void*)entry_vkCmdClearDepthStencilImage;
4213 }
4214 if (!strcmp(name, "vkCmdClearAttachments"))
4215 {
4216 return (void*)entry_vkCmdClearAttachments;
4217 }
4218 if (!strcmp(name, "vkCmdResolveImage"))
4219 {
4220 return (void*)entry_vkCmdResolveImage;
4221 }
4222 if (!strcmp(name, "vkCmdSetEvent"))
4223 {
4224 return (void*)entry_vkCmdSetEvent;
4225 }
4226 if (!strcmp(name, "vkCmdResetEvent"))
4227 {
4228 return (void*)entry_vkCmdResetEvent;
4229 }
4230 if (!strcmp(name, "vkCmdWaitEvents"))
4231 {
4232 return (void*)entry_vkCmdWaitEvents;
4233 }
4234 if (!strcmp(name, "vkCmdPipelineBarrier"))
4235 {
4236 return (void*)entry_vkCmdPipelineBarrier;
4237 }
4238 if (!strcmp(name, "vkCmdBeginQuery"))
4239 {
4240 return (void*)entry_vkCmdBeginQuery;
4241 }
4242 if (!strcmp(name, "vkCmdEndQuery"))
4243 {
4244 return (void*)entry_vkCmdEndQuery;
4245 }
4246 if (!strcmp(name, "vkCmdResetQueryPool"))
4247 {
4248 return (void*)entry_vkCmdResetQueryPool;
4249 }
4250 if (!strcmp(name, "vkCmdWriteTimestamp"))
4251 {
4252 return (void*)entry_vkCmdWriteTimestamp;
4253 }
4254 if (!strcmp(name, "vkCmdCopyQueryPoolResults"))
4255 {
4256 return (void*)entry_vkCmdCopyQueryPoolResults;
4257 }
4258 if (!strcmp(name, "vkCmdPushConstants"))
4259 {
4260 return (void*)entry_vkCmdPushConstants;
4261 }
4262 if (!strcmp(name, "vkCmdBeginRenderPass"))
4263 {
4264 return (void*)entry_vkCmdBeginRenderPass;
4265 }
4266 if (!strcmp(name, "vkCmdNextSubpass"))
4267 {
4268 return (void*)entry_vkCmdNextSubpass;
4269 }
4270 if (!strcmp(name, "vkCmdEndRenderPass"))
4271 {
4272 return (void*)entry_vkCmdEndRenderPass;
4273 }
4274 if (!strcmp(name, "vkCmdExecuteCommands"))
4275 {
4276 return (void*)entry_vkCmdExecuteCommands;
4277 }
4278#endif
4279#ifdef VK_VERSION_1_1
4280 if (!strcmp(name, "vkEnumerateInstanceVersion"))
4281 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004282 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004283 }
4284 if (!strcmp(name, "vkBindBufferMemory2"))
4285 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004286 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004287 }
4288 if (!strcmp(name, "vkBindImageMemory2"))
4289 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004290 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004291 }
4292 if (!strcmp(name, "vkGetDeviceGroupPeerMemoryFeatures"))
4293 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004294 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004295 }
4296 if (!strcmp(name, "vkCmdSetDeviceMask"))
4297 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004298 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004299 }
4300 if (!strcmp(name, "vkCmdDispatchBase"))
4301 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004302 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004303 }
4304 if (!strcmp(name, "vkEnumeratePhysicalDeviceGroups"))
4305 {
Lingfeng Yang113689e2018-11-11 16:48:50 -08004306 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004307 }
4308 if (!strcmp(name, "vkGetImageMemoryRequirements2"))
4309 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004310 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004311 }
4312 if (!strcmp(name, "vkGetBufferMemoryRequirements2"))
4313 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004314 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004315 }
4316 if (!strcmp(name, "vkGetImageSparseMemoryRequirements2"))
4317 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004318 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004319 }
4320 if (!strcmp(name, "vkGetPhysicalDeviceFeatures2"))
4321 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004322 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004323 }
4324 if (!strcmp(name, "vkGetPhysicalDeviceProperties2"))
4325 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004326 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004327 }
4328 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties2"))
4329 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004330 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004331 }
4332 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties2"))
4333 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004334 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004335 }
4336 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties2"))
4337 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004338 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004339 }
4340 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties2"))
4341 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004342 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004343 }
4344 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties2"))
4345 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004346 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004347 }
4348 if (!strcmp(name, "vkTrimCommandPool"))
4349 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004350 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004351 }
4352 if (!strcmp(name, "vkGetDeviceQueue2"))
4353 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004354 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004355 }
4356 if (!strcmp(name, "vkCreateSamplerYcbcrConversion"))
4357 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004358 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004359 }
4360 if (!strcmp(name, "vkDestroySamplerYcbcrConversion"))
4361 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004362 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004363 }
4364 if (!strcmp(name, "vkCreateDescriptorUpdateTemplate"))
4365 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004366 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004367 }
4368 if (!strcmp(name, "vkDestroyDescriptorUpdateTemplate"))
4369 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004370 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004371 }
4372 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplate"))
4373 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004374 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004375 }
4376 if (!strcmp(name, "vkGetPhysicalDeviceExternalBufferProperties"))
4377 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004378 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004379 }
4380 if (!strcmp(name, "vkGetPhysicalDeviceExternalFenceProperties"))
4381 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004382 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004383 }
4384 if (!strcmp(name, "vkGetPhysicalDeviceExternalSemaphoreProperties"))
4385 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004386 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004387 }
4388 if (!strcmp(name, "vkGetDescriptorSetLayoutSupport"))
4389 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004390 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004391 }
4392#endif
4393#ifdef VK_KHR_surface
4394 if (!strcmp(name, "vkDestroySurfaceKHR"))
4395 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004396 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004397 }
4398 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceSupportKHR"))
4399 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004400 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004401 }
4402 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR"))
4403 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004404 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004405 }
4406 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceFormatsKHR"))
4407 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004408 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004409 }
4410 if (!strcmp(name, "vkGetPhysicalDeviceSurfacePresentModesKHR"))
4411 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004412 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004413 }
4414#endif
4415#ifdef VK_KHR_swapchain
4416 if (!strcmp(name, "vkCreateSwapchainKHR"))
4417 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004418 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004419 }
4420 if (!strcmp(name, "vkDestroySwapchainKHR"))
4421 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004422 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004423 }
4424 if (!strcmp(name, "vkGetSwapchainImagesKHR"))
4425 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004426 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004427 }
4428 if (!strcmp(name, "vkAcquireNextImageKHR"))
4429 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004430 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004431 }
4432 if (!strcmp(name, "vkQueuePresentKHR"))
4433 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004434 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004435 }
4436 if (!strcmp(name, "vkGetDeviceGroupPresentCapabilitiesKHR"))
4437 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004438 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004439 }
4440 if (!strcmp(name, "vkGetDeviceGroupSurfacePresentModesKHR"))
4441 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004442 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004443 }
4444 if (!strcmp(name, "vkGetPhysicalDevicePresentRectanglesKHR"))
4445 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004446 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004447 }
4448 if (!strcmp(name, "vkAcquireNextImage2KHR"))
4449 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004450 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004451 }
4452#endif
4453#ifdef VK_KHR_display
4454 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPropertiesKHR"))
4455 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004456 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004457 }
4458 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR"))
4459 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004460 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004461 }
4462 if (!strcmp(name, "vkGetDisplayPlaneSupportedDisplaysKHR"))
4463 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004464 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004465 }
4466 if (!strcmp(name, "vkGetDisplayModePropertiesKHR"))
4467 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004468 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004469 }
4470 if (!strcmp(name, "vkCreateDisplayModeKHR"))
4471 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004472 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004473 }
4474 if (!strcmp(name, "vkGetDisplayPlaneCapabilitiesKHR"))
4475 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004476 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004477 }
4478 if (!strcmp(name, "vkCreateDisplayPlaneSurfaceKHR"))
4479 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004480 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004481 }
4482#endif
4483#ifdef VK_KHR_display_swapchain
4484 if (!strcmp(name, "vkCreateSharedSwapchainsKHR"))
4485 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004486 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004487 }
4488#endif
4489#ifdef VK_KHR_xlib_surface
4490 if (!strcmp(name, "vkCreateXlibSurfaceKHR"))
4491 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004492 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004493 }
4494 if (!strcmp(name, "vkGetPhysicalDeviceXlibPresentationSupportKHR"))
4495 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004496 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004497 }
4498#endif
4499#ifdef VK_KHR_xcb_surface
4500 if (!strcmp(name, "vkCreateXcbSurfaceKHR"))
4501 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004502 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004503 }
4504 if (!strcmp(name, "vkGetPhysicalDeviceXcbPresentationSupportKHR"))
4505 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004506 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004507 }
4508#endif
4509#ifdef VK_KHR_wayland_surface
4510 if (!strcmp(name, "vkCreateWaylandSurfaceKHR"))
4511 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004512 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004513 }
4514 if (!strcmp(name, "vkGetPhysicalDeviceWaylandPresentationSupportKHR"))
4515 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004516 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004517 }
4518#endif
4519#ifdef VK_KHR_mir_surface
4520 if (!strcmp(name, "vkCreateMirSurfaceKHR"))
4521 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004522 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004523 }
4524 if (!strcmp(name, "vkGetPhysicalDeviceMirPresentationSupportKHR"))
4525 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004526 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004527 }
4528#endif
4529#ifdef VK_KHR_android_surface
4530 if (!strcmp(name, "vkCreateAndroidSurfaceKHR"))
4531 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004532 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004533 }
4534#endif
4535#ifdef VK_KHR_win32_surface
4536 if (!strcmp(name, "vkCreateWin32SurfaceKHR"))
4537 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004538 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004539 }
4540 if (!strcmp(name, "vkGetPhysicalDeviceWin32PresentationSupportKHR"))
4541 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004542 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004543 }
4544#endif
4545#ifdef VK_KHR_get_physical_device_properties2
4546 if (!strcmp(name, "vkGetPhysicalDeviceFeatures2KHR"))
4547 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004548 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004549 }
4550 if (!strcmp(name, "vkGetPhysicalDeviceProperties2KHR"))
4551 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004552 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004553 }
4554 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties2KHR"))
4555 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004556 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004557 }
4558 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties2KHR"))
4559 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004560 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004561 }
4562 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties2KHR"))
4563 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004564 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004565 }
4566 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties2KHR"))
4567 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004568 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004569 }
4570 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR"))
4571 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004572 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004573 }
4574#endif
4575#ifdef VK_KHR_device_group
4576 if (!strcmp(name, "vkGetDeviceGroupPeerMemoryFeaturesKHR"))
4577 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004578 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004579 }
4580 if (!strcmp(name, "vkCmdSetDeviceMaskKHR"))
4581 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004582 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004583 }
4584 if (!strcmp(name, "vkCmdDispatchBaseKHR"))
4585 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004586 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004587 }
4588#endif
4589#ifdef VK_KHR_maintenance1
4590 if (!strcmp(name, "vkTrimCommandPoolKHR"))
4591 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004592 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004593 }
4594#endif
4595#ifdef VK_KHR_device_group_creation
4596 if (!strcmp(name, "vkEnumeratePhysicalDeviceGroupsKHR"))
4597 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004598 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004599 }
4600#endif
4601#ifdef VK_KHR_external_memory_capabilities
4602 if (!strcmp(name, "vkGetPhysicalDeviceExternalBufferPropertiesKHR"))
4603 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004604 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004605 }
4606#endif
4607#ifdef VK_KHR_external_memory_win32
4608 if (!strcmp(name, "vkGetMemoryWin32HandleKHR"))
4609 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004610 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004611 }
4612 if (!strcmp(name, "vkGetMemoryWin32HandlePropertiesKHR"))
4613 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004614 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004615 }
4616#endif
4617#ifdef VK_KHR_external_memory_fd
4618 if (!strcmp(name, "vkGetMemoryFdKHR"))
4619 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004620 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004621 }
4622 if (!strcmp(name, "vkGetMemoryFdPropertiesKHR"))
4623 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004624 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004625 }
4626#endif
4627#ifdef VK_KHR_external_semaphore_capabilities
4628 if (!strcmp(name, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR"))
4629 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004630 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004631 }
4632#endif
4633#ifdef VK_KHR_external_semaphore_win32
4634 if (!strcmp(name, "vkImportSemaphoreWin32HandleKHR"))
4635 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004636 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004637 }
4638 if (!strcmp(name, "vkGetSemaphoreWin32HandleKHR"))
4639 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004640 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004641 }
4642#endif
4643#ifdef VK_KHR_external_semaphore_fd
4644 if (!strcmp(name, "vkImportSemaphoreFdKHR"))
4645 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004646 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004647 }
4648 if (!strcmp(name, "vkGetSemaphoreFdKHR"))
4649 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004650 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004651 }
4652#endif
4653#ifdef VK_KHR_push_descriptor
4654 if (!strcmp(name, "vkCmdPushDescriptorSetKHR"))
4655 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004656 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004657 }
4658 if (!strcmp(name, "vkCmdPushDescriptorSetWithTemplateKHR"))
4659 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004660 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004661 }
4662#endif
4663#ifdef VK_KHR_descriptor_update_template
4664 if (!strcmp(name, "vkCreateDescriptorUpdateTemplateKHR"))
4665 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004666 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004667 }
4668 if (!strcmp(name, "vkDestroyDescriptorUpdateTemplateKHR"))
4669 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004670 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004671 }
4672 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplateKHR"))
4673 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004674 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004675 }
4676#endif
4677#ifdef VK_KHR_create_renderpass2
4678 if (!strcmp(name, "vkCreateRenderPass2KHR"))
4679 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004680 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004681 }
4682 if (!strcmp(name, "vkCmdBeginRenderPass2KHR"))
4683 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004684 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004685 }
4686 if (!strcmp(name, "vkCmdNextSubpass2KHR"))
4687 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004688 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004689 }
4690 if (!strcmp(name, "vkCmdEndRenderPass2KHR"))
4691 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004692 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004693 }
4694#endif
4695#ifdef VK_KHR_shared_presentable_image
4696 if (!strcmp(name, "vkGetSwapchainStatusKHR"))
4697 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004698 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004699 }
4700#endif
4701#ifdef VK_KHR_external_fence_capabilities
4702 if (!strcmp(name, "vkGetPhysicalDeviceExternalFencePropertiesKHR"))
4703 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004704 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004705 }
4706#endif
4707#ifdef VK_KHR_external_fence_win32
4708 if (!strcmp(name, "vkImportFenceWin32HandleKHR"))
4709 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004710 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004711 }
4712 if (!strcmp(name, "vkGetFenceWin32HandleKHR"))
4713 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004714 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004715 }
4716#endif
4717#ifdef VK_KHR_external_fence_fd
4718 if (!strcmp(name, "vkImportFenceFdKHR"))
4719 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004720 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004721 }
4722 if (!strcmp(name, "vkGetFenceFdKHR"))
4723 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004724 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004725 }
4726#endif
4727#ifdef VK_KHR_get_surface_capabilities2
4728 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2KHR"))
4729 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004730 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004731 }
4732 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceFormats2KHR"))
4733 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004734 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004735 }
4736#endif
4737#ifdef VK_KHR_get_display_properties2
4738 if (!strcmp(name, "vkGetPhysicalDeviceDisplayProperties2KHR"))
4739 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004740 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004741 }
4742 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR"))
4743 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004744 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004745 }
4746 if (!strcmp(name, "vkGetDisplayModeProperties2KHR"))
4747 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004748 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004749 }
4750 if (!strcmp(name, "vkGetDisplayPlaneCapabilities2KHR"))
4751 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004752 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004753 }
4754#endif
4755#ifdef VK_KHR_get_memory_requirements2
4756 if (!strcmp(name, "vkGetImageMemoryRequirements2KHR"))
4757 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004758 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004759 }
4760 if (!strcmp(name, "vkGetBufferMemoryRequirements2KHR"))
4761 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004762 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004763 }
4764 if (!strcmp(name, "vkGetImageSparseMemoryRequirements2KHR"))
4765 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004766 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004767 }
4768#endif
4769#ifdef VK_KHR_sampler_ycbcr_conversion
4770 if (!strcmp(name, "vkCreateSamplerYcbcrConversionKHR"))
4771 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004772 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004773 }
4774 if (!strcmp(name, "vkDestroySamplerYcbcrConversionKHR"))
4775 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004776 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004777 }
4778#endif
4779#ifdef VK_KHR_bind_memory2
4780 if (!strcmp(name, "vkBindBufferMemory2KHR"))
4781 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004782 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004783 }
4784 if (!strcmp(name, "vkBindImageMemory2KHR"))
4785 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004786 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004787 }
4788#endif
4789#ifdef VK_KHR_maintenance3
4790 if (!strcmp(name, "vkGetDescriptorSetLayoutSupportKHR"))
4791 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004792 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004793 }
4794#endif
4795#ifdef VK_KHR_draw_indirect_count
4796 if (!strcmp(name, "vkCmdDrawIndirectCountKHR"))
4797 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004798 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004799 }
4800 if (!strcmp(name, "vkCmdDrawIndexedIndirectCountKHR"))
4801 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004802 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004803 }
4804#endif
Lingfeng Yang808a6312018-11-13 21:06:15 -08004805#ifdef VK_ANDROID_native_buffer
4806 if (!strcmp(name, "vkGetSwapchainGrallocUsageANDROID"))
4807 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004808 return nullptr;
Lingfeng Yang808a6312018-11-13 21:06:15 -08004809 }
4810 if (!strcmp(name, "vkAcquireImageANDROID"))
4811 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004812 return nullptr;
Lingfeng Yang808a6312018-11-13 21:06:15 -08004813 }
4814 if (!strcmp(name, "vkQueueSignalReleaseImageANDROID"))
4815 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004816 return nullptr;
Lingfeng Yang808a6312018-11-13 21:06:15 -08004817 }
4818#endif
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004819#ifdef VK_EXT_debug_report
4820 if (!strcmp(name, "vkCreateDebugReportCallbackEXT"))
4821 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004822 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004823 }
4824 if (!strcmp(name, "vkDestroyDebugReportCallbackEXT"))
4825 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004826 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004827 }
4828 if (!strcmp(name, "vkDebugReportMessageEXT"))
4829 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004830 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004831 }
4832#endif
4833#ifdef VK_EXT_debug_marker
4834 if (!strcmp(name, "vkDebugMarkerSetObjectTagEXT"))
4835 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004836 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004837 }
4838 if (!strcmp(name, "vkDebugMarkerSetObjectNameEXT"))
4839 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004840 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004841 }
4842 if (!strcmp(name, "vkCmdDebugMarkerBeginEXT"))
4843 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004844 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004845 }
4846 if (!strcmp(name, "vkCmdDebugMarkerEndEXT"))
4847 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004848 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004849 }
4850 if (!strcmp(name, "vkCmdDebugMarkerInsertEXT"))
4851 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004852 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004853 }
4854#endif
4855#ifdef VK_AMD_draw_indirect_count
4856 if (!strcmp(name, "vkCmdDrawIndirectCountAMD"))
4857 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004858 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004859 }
4860 if (!strcmp(name, "vkCmdDrawIndexedIndirectCountAMD"))
4861 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004862 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004863 }
4864#endif
4865#ifdef VK_AMD_shader_info
4866 if (!strcmp(name, "vkGetShaderInfoAMD"))
4867 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004868 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004869 }
4870#endif
4871#ifdef VK_NV_external_memory_capabilities
4872 if (!strcmp(name, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV"))
4873 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004874 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004875 }
4876#endif
4877#ifdef VK_NV_external_memory_win32
4878 if (!strcmp(name, "vkGetMemoryWin32HandleNV"))
4879 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004880 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004881 }
4882#endif
4883#ifdef VK_NN_vi_surface
4884 if (!strcmp(name, "vkCreateViSurfaceNN"))
4885 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004886 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004887 }
4888#endif
4889#ifdef VK_EXT_conditional_rendering
4890 if (!strcmp(name, "vkCmdBeginConditionalRenderingEXT"))
4891 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004892 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004893 }
4894 if (!strcmp(name, "vkCmdEndConditionalRenderingEXT"))
4895 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004896 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004897 }
4898#endif
4899#ifdef VK_NVX_device_generated_commands
4900 if (!strcmp(name, "vkCmdProcessCommandsNVX"))
4901 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004902 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004903 }
4904 if (!strcmp(name, "vkCmdReserveSpaceForCommandsNVX"))
4905 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004906 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004907 }
4908 if (!strcmp(name, "vkCreateIndirectCommandsLayoutNVX"))
4909 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004910 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004911 }
4912 if (!strcmp(name, "vkDestroyIndirectCommandsLayoutNVX"))
4913 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004914 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004915 }
4916 if (!strcmp(name, "vkCreateObjectTableNVX"))
4917 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004918 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004919 }
4920 if (!strcmp(name, "vkDestroyObjectTableNVX"))
4921 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004922 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004923 }
4924 if (!strcmp(name, "vkRegisterObjectsNVX"))
4925 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004926 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004927 }
4928 if (!strcmp(name, "vkUnregisterObjectsNVX"))
4929 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004930 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004931 }
4932 if (!strcmp(name, "vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX"))
4933 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004934 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004935 }
4936#endif
4937#ifdef VK_NV_clip_space_w_scaling
4938 if (!strcmp(name, "vkCmdSetViewportWScalingNV"))
4939 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004940 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004941 }
4942#endif
4943#ifdef VK_EXT_direct_mode_display
4944 if (!strcmp(name, "vkReleaseDisplayEXT"))
4945 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004946 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004947 }
4948#endif
4949#ifdef VK_EXT_acquire_xlib_display
4950 if (!strcmp(name, "vkAcquireXlibDisplayEXT"))
4951 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004952 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004953 }
4954 if (!strcmp(name, "vkGetRandROutputDisplayEXT"))
4955 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004956 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004957 }
4958#endif
4959#ifdef VK_EXT_display_surface_counter
4960 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2EXT"))
4961 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004962 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004963 }
4964#endif
4965#ifdef VK_EXT_display_control
4966 if (!strcmp(name, "vkDisplayPowerControlEXT"))
4967 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004968 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004969 }
4970 if (!strcmp(name, "vkRegisterDeviceEventEXT"))
4971 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004972 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004973 }
4974 if (!strcmp(name, "vkRegisterDisplayEventEXT"))
4975 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004976 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004977 }
4978 if (!strcmp(name, "vkGetSwapchainCounterEXT"))
4979 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004980 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004981 }
4982#endif
4983#ifdef VK_GOOGLE_display_timing
4984 if (!strcmp(name, "vkGetRefreshCycleDurationGOOGLE"))
4985 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004986 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004987 }
4988 if (!strcmp(name, "vkGetPastPresentationTimingGOOGLE"))
4989 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004990 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004991 }
4992#endif
4993#ifdef VK_EXT_discard_rectangles
4994 if (!strcmp(name, "vkCmdSetDiscardRectangleEXT"))
4995 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004996 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004997 }
4998#endif
4999#ifdef VK_EXT_hdr_metadata
5000 if (!strcmp(name, "vkSetHdrMetadataEXT"))
5001 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005002 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005003 }
5004#endif
5005#ifdef VK_MVK_ios_surface
5006 if (!strcmp(name, "vkCreateIOSSurfaceMVK"))
5007 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005008 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005009 }
5010#endif
5011#ifdef VK_MVK_macos_surface
5012 if (!strcmp(name, "vkCreateMacOSSurfaceMVK"))
5013 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005014 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005015 }
5016#endif
5017#ifdef VK_EXT_debug_utils
5018 if (!strcmp(name, "vkSetDebugUtilsObjectNameEXT"))
5019 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005020 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005021 }
5022 if (!strcmp(name, "vkSetDebugUtilsObjectTagEXT"))
5023 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005024 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005025 }
5026 if (!strcmp(name, "vkQueueBeginDebugUtilsLabelEXT"))
5027 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005028 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005029 }
5030 if (!strcmp(name, "vkQueueEndDebugUtilsLabelEXT"))
5031 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005032 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005033 }
5034 if (!strcmp(name, "vkQueueInsertDebugUtilsLabelEXT"))
5035 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005036 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005037 }
5038 if (!strcmp(name, "vkCmdBeginDebugUtilsLabelEXT"))
5039 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005040 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005041 }
5042 if (!strcmp(name, "vkCmdEndDebugUtilsLabelEXT"))
5043 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005044 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005045 }
5046 if (!strcmp(name, "vkCmdInsertDebugUtilsLabelEXT"))
5047 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005048 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005049 }
5050 if (!strcmp(name, "vkCreateDebugUtilsMessengerEXT"))
5051 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005052 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005053 }
5054 if (!strcmp(name, "vkDestroyDebugUtilsMessengerEXT"))
5055 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005056 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005057 }
5058 if (!strcmp(name, "vkSubmitDebugUtilsMessageEXT"))
5059 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005060 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005061 }
5062#endif
5063#ifdef VK_ANDROID_external_memory_android_hardware_buffer
5064 if (!strcmp(name, "vkGetAndroidHardwareBufferPropertiesANDROID"))
5065 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005066 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005067 }
5068 if (!strcmp(name, "vkGetMemoryAndroidHardwareBufferANDROID"))
5069 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005070 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005071 }
5072#endif
5073#ifdef VK_EXT_sample_locations
5074 if (!strcmp(name, "vkCmdSetSampleLocationsEXT"))
5075 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005076 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005077 }
5078 if (!strcmp(name, "vkGetPhysicalDeviceMultisamplePropertiesEXT"))
5079 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005080 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005081 }
5082#endif
5083#ifdef VK_EXT_validation_cache
5084 if (!strcmp(name, "vkCreateValidationCacheEXT"))
5085 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005086 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005087 }
5088 if (!strcmp(name, "vkDestroyValidationCacheEXT"))
5089 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005090 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005091 }
5092 if (!strcmp(name, "vkMergeValidationCachesEXT"))
5093 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005094 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005095 }
5096 if (!strcmp(name, "vkGetValidationCacheDataEXT"))
5097 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005098 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005099 }
5100#endif
5101#ifdef VK_EXT_external_memory_host
5102 if (!strcmp(name, "vkGetMemoryHostPointerPropertiesEXT"))
5103 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005104 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005105 }
5106#endif
5107#ifdef VK_AMD_buffer_marker
5108 if (!strcmp(name, "vkCmdWriteBufferMarkerAMD"))
5109 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005110 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005111 }
5112#endif
5113#ifdef VK_NV_device_diagnostic_checkpoints
5114 if (!strcmp(name, "vkCmdSetCheckpointNV"))
5115 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005116 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005117 }
5118 if (!strcmp(name, "vkGetQueueCheckpointDataNV"))
5119 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005120 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005121 }
5122#endif
Lingfeng Yang5c63afd2018-12-22 01:21:14 -08005123#ifdef VK_GOOGLE_address_space
5124 if (!strcmp(name, "vkMapMemoryIntoAddressSpaceGOOGLE"))
5125 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005126 return nullptr;
5127 }
5128#endif
Lingfeng Yangae7e1b32019-02-19 14:07:39 -08005129#ifdef VK_GOOGLE_color_buffer
5130 if (!strcmp(name, "vkRegisterImageColorBufferGOOGLE"))
5131 {
5132 return nullptr;
5133 }
5134 if (!strcmp(name, "vkRegisterBufferColorBufferGOOGLE"))
5135 {
5136 return nullptr;
5137 }
5138#endif
Lingfeng Yang05d5ea32019-03-23 00:12:39 -07005139#ifdef VK_GOOGLE_sized_descriptor_update_template
5140 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplateSizedGOOGLE"))
5141 {
5142 return nullptr;
5143 }
5144#endif
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005145 return nullptr;
5146}
5147void* goldfish_vulkan_get_instance_proc_address(VkInstance instance, const char* name){
5148 auto resources = ResourceTracker::get();
5149 bool has1_1OrHigher = resources->getApiVersionFromInstance(instance) >= VK_API_VERSION_1_1;
5150#ifdef VK_VERSION_1_0
5151 if (!strcmp(name, "vkCreateInstance"))
5152 {
5153 return (void*)entry_vkCreateInstance;
5154 }
5155 if (!strcmp(name, "vkDestroyInstance"))
5156 {
5157 return (void*)entry_vkDestroyInstance;
5158 }
5159 if (!strcmp(name, "vkEnumeratePhysicalDevices"))
5160 {
5161 return (void*)entry_vkEnumeratePhysicalDevices;
5162 }
5163 if (!strcmp(name, "vkGetPhysicalDeviceFeatures"))
5164 {
5165 return (void*)entry_vkGetPhysicalDeviceFeatures;
5166 }
5167 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties"))
5168 {
5169 return (void*)entry_vkGetPhysicalDeviceFormatProperties;
5170 }
5171 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties"))
5172 {
5173 return (void*)entry_vkGetPhysicalDeviceImageFormatProperties;
5174 }
5175 if (!strcmp(name, "vkGetPhysicalDeviceProperties"))
5176 {
5177 return (void*)entry_vkGetPhysicalDeviceProperties;
5178 }
5179 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties"))
5180 {
5181 return (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties;
5182 }
5183 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties"))
5184 {
5185 return (void*)entry_vkGetPhysicalDeviceMemoryProperties;
5186 }
5187 if (!strcmp(name, "vkGetInstanceProcAddr"))
5188 {
5189 return (void*)entry_vkGetInstanceProcAddr;
5190 }
5191 if (!strcmp(name, "vkGetDeviceProcAddr"))
5192 {
5193 return (void*)entry_vkGetDeviceProcAddr;
5194 }
5195 if (!strcmp(name, "vkCreateDevice"))
5196 {
5197 return (void*)entry_vkCreateDevice;
5198 }
5199 if (!strcmp(name, "vkDestroyDevice"))
5200 {
5201 return (void*)entry_vkDestroyDevice;
5202 }
5203 if (!strcmp(name, "vkEnumerateInstanceExtensionProperties"))
5204 {
5205 return (void*)entry_vkEnumerateInstanceExtensionProperties;
5206 }
5207 if (!strcmp(name, "vkEnumerateDeviceExtensionProperties"))
5208 {
5209 return (void*)entry_vkEnumerateDeviceExtensionProperties;
5210 }
5211 if (!strcmp(name, "vkEnumerateInstanceLayerProperties"))
5212 {
5213 return (void*)entry_vkEnumerateInstanceLayerProperties;
5214 }
5215 if (!strcmp(name, "vkEnumerateDeviceLayerProperties"))
5216 {
5217 return (void*)entry_vkEnumerateDeviceLayerProperties;
5218 }
5219 if (!strcmp(name, "vkGetDeviceQueue"))
5220 {
5221 return (void*)entry_vkGetDeviceQueue;
5222 }
5223 if (!strcmp(name, "vkQueueSubmit"))
5224 {
5225 return (void*)entry_vkQueueSubmit;
5226 }
5227 if (!strcmp(name, "vkQueueWaitIdle"))
5228 {
5229 return (void*)entry_vkQueueWaitIdle;
5230 }
5231 if (!strcmp(name, "vkDeviceWaitIdle"))
5232 {
5233 return (void*)entry_vkDeviceWaitIdle;
5234 }
5235 if (!strcmp(name, "vkAllocateMemory"))
5236 {
5237 return (void*)entry_vkAllocateMemory;
5238 }
5239 if (!strcmp(name, "vkFreeMemory"))
5240 {
5241 return (void*)entry_vkFreeMemory;
5242 }
5243 if (!strcmp(name, "vkMapMemory"))
5244 {
5245 return (void*)entry_vkMapMemory;
5246 }
5247 if (!strcmp(name, "vkUnmapMemory"))
5248 {
5249 return (void*)entry_vkUnmapMemory;
5250 }
5251 if (!strcmp(name, "vkFlushMappedMemoryRanges"))
5252 {
5253 return (void*)entry_vkFlushMappedMemoryRanges;
5254 }
5255 if (!strcmp(name, "vkInvalidateMappedMemoryRanges"))
5256 {
5257 return (void*)entry_vkInvalidateMappedMemoryRanges;
5258 }
5259 if (!strcmp(name, "vkGetDeviceMemoryCommitment"))
5260 {
5261 return (void*)entry_vkGetDeviceMemoryCommitment;
5262 }
5263 if (!strcmp(name, "vkBindBufferMemory"))
5264 {
5265 return (void*)entry_vkBindBufferMemory;
5266 }
5267 if (!strcmp(name, "vkBindImageMemory"))
5268 {
5269 return (void*)entry_vkBindImageMemory;
5270 }
5271 if (!strcmp(name, "vkGetBufferMemoryRequirements"))
5272 {
5273 return (void*)entry_vkGetBufferMemoryRequirements;
5274 }
5275 if (!strcmp(name, "vkGetImageMemoryRequirements"))
5276 {
5277 return (void*)entry_vkGetImageMemoryRequirements;
5278 }
5279 if (!strcmp(name, "vkGetImageSparseMemoryRequirements"))
5280 {
5281 return (void*)entry_vkGetImageSparseMemoryRequirements;
5282 }
5283 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties"))
5284 {
5285 return (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties;
5286 }
5287 if (!strcmp(name, "vkQueueBindSparse"))
5288 {
5289 return (void*)entry_vkQueueBindSparse;
5290 }
5291 if (!strcmp(name, "vkCreateFence"))
5292 {
5293 return (void*)entry_vkCreateFence;
5294 }
5295 if (!strcmp(name, "vkDestroyFence"))
5296 {
5297 return (void*)entry_vkDestroyFence;
5298 }
5299 if (!strcmp(name, "vkResetFences"))
5300 {
5301 return (void*)entry_vkResetFences;
5302 }
5303 if (!strcmp(name, "vkGetFenceStatus"))
5304 {
5305 return (void*)entry_vkGetFenceStatus;
5306 }
5307 if (!strcmp(name, "vkWaitForFences"))
5308 {
5309 return (void*)entry_vkWaitForFences;
5310 }
5311 if (!strcmp(name, "vkCreateSemaphore"))
5312 {
5313 return (void*)entry_vkCreateSemaphore;
5314 }
5315 if (!strcmp(name, "vkDestroySemaphore"))
5316 {
5317 return (void*)entry_vkDestroySemaphore;
5318 }
5319 if (!strcmp(name, "vkCreateEvent"))
5320 {
5321 return (void*)entry_vkCreateEvent;
5322 }
5323 if (!strcmp(name, "vkDestroyEvent"))
5324 {
5325 return (void*)entry_vkDestroyEvent;
5326 }
5327 if (!strcmp(name, "vkGetEventStatus"))
5328 {
5329 return (void*)entry_vkGetEventStatus;
5330 }
5331 if (!strcmp(name, "vkSetEvent"))
5332 {
5333 return (void*)entry_vkSetEvent;
5334 }
5335 if (!strcmp(name, "vkResetEvent"))
5336 {
5337 return (void*)entry_vkResetEvent;
5338 }
5339 if (!strcmp(name, "vkCreateQueryPool"))
5340 {
5341 return (void*)entry_vkCreateQueryPool;
5342 }
5343 if (!strcmp(name, "vkDestroyQueryPool"))
5344 {
5345 return (void*)entry_vkDestroyQueryPool;
5346 }
5347 if (!strcmp(name, "vkGetQueryPoolResults"))
5348 {
5349 return (void*)entry_vkGetQueryPoolResults;
5350 }
5351 if (!strcmp(name, "vkCreateBuffer"))
5352 {
5353 return (void*)entry_vkCreateBuffer;
5354 }
5355 if (!strcmp(name, "vkDestroyBuffer"))
5356 {
5357 return (void*)entry_vkDestroyBuffer;
5358 }
5359 if (!strcmp(name, "vkCreateBufferView"))
5360 {
5361 return (void*)entry_vkCreateBufferView;
5362 }
5363 if (!strcmp(name, "vkDestroyBufferView"))
5364 {
5365 return (void*)entry_vkDestroyBufferView;
5366 }
5367 if (!strcmp(name, "vkCreateImage"))
5368 {
5369 return (void*)entry_vkCreateImage;
5370 }
5371 if (!strcmp(name, "vkDestroyImage"))
5372 {
5373 return (void*)entry_vkDestroyImage;
5374 }
5375 if (!strcmp(name, "vkGetImageSubresourceLayout"))
5376 {
5377 return (void*)entry_vkGetImageSubresourceLayout;
5378 }
5379 if (!strcmp(name, "vkCreateImageView"))
5380 {
5381 return (void*)entry_vkCreateImageView;
5382 }
5383 if (!strcmp(name, "vkDestroyImageView"))
5384 {
5385 return (void*)entry_vkDestroyImageView;
5386 }
5387 if (!strcmp(name, "vkCreateShaderModule"))
5388 {
5389 return (void*)entry_vkCreateShaderModule;
5390 }
5391 if (!strcmp(name, "vkDestroyShaderModule"))
5392 {
5393 return (void*)entry_vkDestroyShaderModule;
5394 }
5395 if (!strcmp(name, "vkCreatePipelineCache"))
5396 {
5397 return (void*)entry_vkCreatePipelineCache;
5398 }
5399 if (!strcmp(name, "vkDestroyPipelineCache"))
5400 {
5401 return (void*)entry_vkDestroyPipelineCache;
5402 }
5403 if (!strcmp(name, "vkGetPipelineCacheData"))
5404 {
5405 return (void*)entry_vkGetPipelineCacheData;
5406 }
5407 if (!strcmp(name, "vkMergePipelineCaches"))
5408 {
5409 return (void*)entry_vkMergePipelineCaches;
5410 }
5411 if (!strcmp(name, "vkCreateGraphicsPipelines"))
5412 {
5413 return (void*)entry_vkCreateGraphicsPipelines;
5414 }
5415 if (!strcmp(name, "vkCreateComputePipelines"))
5416 {
5417 return (void*)entry_vkCreateComputePipelines;
5418 }
5419 if (!strcmp(name, "vkDestroyPipeline"))
5420 {
5421 return (void*)entry_vkDestroyPipeline;
5422 }
5423 if (!strcmp(name, "vkCreatePipelineLayout"))
5424 {
5425 return (void*)entry_vkCreatePipelineLayout;
5426 }
5427 if (!strcmp(name, "vkDestroyPipelineLayout"))
5428 {
5429 return (void*)entry_vkDestroyPipelineLayout;
5430 }
5431 if (!strcmp(name, "vkCreateSampler"))
5432 {
5433 return (void*)entry_vkCreateSampler;
5434 }
5435 if (!strcmp(name, "vkDestroySampler"))
5436 {
5437 return (void*)entry_vkDestroySampler;
5438 }
5439 if (!strcmp(name, "vkCreateDescriptorSetLayout"))
5440 {
5441 return (void*)entry_vkCreateDescriptorSetLayout;
5442 }
5443 if (!strcmp(name, "vkDestroyDescriptorSetLayout"))
5444 {
5445 return (void*)entry_vkDestroyDescriptorSetLayout;
5446 }
5447 if (!strcmp(name, "vkCreateDescriptorPool"))
5448 {
5449 return (void*)entry_vkCreateDescriptorPool;
5450 }
5451 if (!strcmp(name, "vkDestroyDescriptorPool"))
5452 {
5453 return (void*)entry_vkDestroyDescriptorPool;
5454 }
5455 if (!strcmp(name, "vkResetDescriptorPool"))
5456 {
5457 return (void*)entry_vkResetDescriptorPool;
5458 }
5459 if (!strcmp(name, "vkAllocateDescriptorSets"))
5460 {
5461 return (void*)entry_vkAllocateDescriptorSets;
5462 }
5463 if (!strcmp(name, "vkFreeDescriptorSets"))
5464 {
5465 return (void*)entry_vkFreeDescriptorSets;
5466 }
5467 if (!strcmp(name, "vkUpdateDescriptorSets"))
5468 {
5469 return (void*)entry_vkUpdateDescriptorSets;
5470 }
5471 if (!strcmp(name, "vkCreateFramebuffer"))
5472 {
5473 return (void*)entry_vkCreateFramebuffer;
5474 }
5475 if (!strcmp(name, "vkDestroyFramebuffer"))
5476 {
5477 return (void*)entry_vkDestroyFramebuffer;
5478 }
5479 if (!strcmp(name, "vkCreateRenderPass"))
5480 {
5481 return (void*)entry_vkCreateRenderPass;
5482 }
5483 if (!strcmp(name, "vkDestroyRenderPass"))
5484 {
5485 return (void*)entry_vkDestroyRenderPass;
5486 }
5487 if (!strcmp(name, "vkGetRenderAreaGranularity"))
5488 {
5489 return (void*)entry_vkGetRenderAreaGranularity;
5490 }
5491 if (!strcmp(name, "vkCreateCommandPool"))
5492 {
5493 return (void*)entry_vkCreateCommandPool;
5494 }
5495 if (!strcmp(name, "vkDestroyCommandPool"))
5496 {
5497 return (void*)entry_vkDestroyCommandPool;
5498 }
5499 if (!strcmp(name, "vkResetCommandPool"))
5500 {
5501 return (void*)entry_vkResetCommandPool;
5502 }
5503 if (!strcmp(name, "vkAllocateCommandBuffers"))
5504 {
5505 return (void*)entry_vkAllocateCommandBuffers;
5506 }
5507 if (!strcmp(name, "vkFreeCommandBuffers"))
5508 {
5509 return (void*)entry_vkFreeCommandBuffers;
5510 }
5511 if (!strcmp(name, "vkBeginCommandBuffer"))
5512 {
5513 return (void*)entry_vkBeginCommandBuffer;
5514 }
5515 if (!strcmp(name, "vkEndCommandBuffer"))
5516 {
5517 return (void*)entry_vkEndCommandBuffer;
5518 }
5519 if (!strcmp(name, "vkResetCommandBuffer"))
5520 {
5521 return (void*)entry_vkResetCommandBuffer;
5522 }
5523 if (!strcmp(name, "vkCmdBindPipeline"))
5524 {
5525 return (void*)entry_vkCmdBindPipeline;
5526 }
5527 if (!strcmp(name, "vkCmdSetViewport"))
5528 {
5529 return (void*)entry_vkCmdSetViewport;
5530 }
5531 if (!strcmp(name, "vkCmdSetScissor"))
5532 {
5533 return (void*)entry_vkCmdSetScissor;
5534 }
5535 if (!strcmp(name, "vkCmdSetLineWidth"))
5536 {
5537 return (void*)entry_vkCmdSetLineWidth;
5538 }
5539 if (!strcmp(name, "vkCmdSetDepthBias"))
5540 {
5541 return (void*)entry_vkCmdSetDepthBias;
5542 }
5543 if (!strcmp(name, "vkCmdSetBlendConstants"))
5544 {
5545 return (void*)entry_vkCmdSetBlendConstants;
5546 }
5547 if (!strcmp(name, "vkCmdSetDepthBounds"))
5548 {
5549 return (void*)entry_vkCmdSetDepthBounds;
5550 }
5551 if (!strcmp(name, "vkCmdSetStencilCompareMask"))
5552 {
5553 return (void*)entry_vkCmdSetStencilCompareMask;
5554 }
5555 if (!strcmp(name, "vkCmdSetStencilWriteMask"))
5556 {
5557 return (void*)entry_vkCmdSetStencilWriteMask;
5558 }
5559 if (!strcmp(name, "vkCmdSetStencilReference"))
5560 {
5561 return (void*)entry_vkCmdSetStencilReference;
5562 }
5563 if (!strcmp(name, "vkCmdBindDescriptorSets"))
5564 {
5565 return (void*)entry_vkCmdBindDescriptorSets;
5566 }
5567 if (!strcmp(name, "vkCmdBindIndexBuffer"))
5568 {
5569 return (void*)entry_vkCmdBindIndexBuffer;
5570 }
5571 if (!strcmp(name, "vkCmdBindVertexBuffers"))
5572 {
5573 return (void*)entry_vkCmdBindVertexBuffers;
5574 }
5575 if (!strcmp(name, "vkCmdDraw"))
5576 {
5577 return (void*)entry_vkCmdDraw;
5578 }
5579 if (!strcmp(name, "vkCmdDrawIndexed"))
5580 {
5581 return (void*)entry_vkCmdDrawIndexed;
5582 }
5583 if (!strcmp(name, "vkCmdDrawIndirect"))
5584 {
5585 return (void*)entry_vkCmdDrawIndirect;
5586 }
5587 if (!strcmp(name, "vkCmdDrawIndexedIndirect"))
5588 {
5589 return (void*)entry_vkCmdDrawIndexedIndirect;
5590 }
5591 if (!strcmp(name, "vkCmdDispatch"))
5592 {
5593 return (void*)entry_vkCmdDispatch;
5594 }
5595 if (!strcmp(name, "vkCmdDispatchIndirect"))
5596 {
5597 return (void*)entry_vkCmdDispatchIndirect;
5598 }
5599 if (!strcmp(name, "vkCmdCopyBuffer"))
5600 {
5601 return (void*)entry_vkCmdCopyBuffer;
5602 }
5603 if (!strcmp(name, "vkCmdCopyImage"))
5604 {
5605 return (void*)entry_vkCmdCopyImage;
5606 }
5607 if (!strcmp(name, "vkCmdBlitImage"))
5608 {
5609 return (void*)entry_vkCmdBlitImage;
5610 }
5611 if (!strcmp(name, "vkCmdCopyBufferToImage"))
5612 {
5613 return (void*)entry_vkCmdCopyBufferToImage;
5614 }
5615 if (!strcmp(name, "vkCmdCopyImageToBuffer"))
5616 {
5617 return (void*)entry_vkCmdCopyImageToBuffer;
5618 }
5619 if (!strcmp(name, "vkCmdUpdateBuffer"))
5620 {
5621 return (void*)entry_vkCmdUpdateBuffer;
5622 }
5623 if (!strcmp(name, "vkCmdFillBuffer"))
5624 {
5625 return (void*)entry_vkCmdFillBuffer;
5626 }
5627 if (!strcmp(name, "vkCmdClearColorImage"))
5628 {
5629 return (void*)entry_vkCmdClearColorImage;
5630 }
5631 if (!strcmp(name, "vkCmdClearDepthStencilImage"))
5632 {
5633 return (void*)entry_vkCmdClearDepthStencilImage;
5634 }
5635 if (!strcmp(name, "vkCmdClearAttachments"))
5636 {
5637 return (void*)entry_vkCmdClearAttachments;
5638 }
5639 if (!strcmp(name, "vkCmdResolveImage"))
5640 {
5641 return (void*)entry_vkCmdResolveImage;
5642 }
5643 if (!strcmp(name, "vkCmdSetEvent"))
5644 {
5645 return (void*)entry_vkCmdSetEvent;
5646 }
5647 if (!strcmp(name, "vkCmdResetEvent"))
5648 {
5649 return (void*)entry_vkCmdResetEvent;
5650 }
5651 if (!strcmp(name, "vkCmdWaitEvents"))
5652 {
5653 return (void*)entry_vkCmdWaitEvents;
5654 }
5655 if (!strcmp(name, "vkCmdPipelineBarrier"))
5656 {
5657 return (void*)entry_vkCmdPipelineBarrier;
5658 }
5659 if (!strcmp(name, "vkCmdBeginQuery"))
5660 {
5661 return (void*)entry_vkCmdBeginQuery;
5662 }
5663 if (!strcmp(name, "vkCmdEndQuery"))
5664 {
5665 return (void*)entry_vkCmdEndQuery;
5666 }
5667 if (!strcmp(name, "vkCmdResetQueryPool"))
5668 {
5669 return (void*)entry_vkCmdResetQueryPool;
5670 }
5671 if (!strcmp(name, "vkCmdWriteTimestamp"))
5672 {
5673 return (void*)entry_vkCmdWriteTimestamp;
5674 }
5675 if (!strcmp(name, "vkCmdCopyQueryPoolResults"))
5676 {
5677 return (void*)entry_vkCmdCopyQueryPoolResults;
5678 }
5679 if (!strcmp(name, "vkCmdPushConstants"))
5680 {
5681 return (void*)entry_vkCmdPushConstants;
5682 }
5683 if (!strcmp(name, "vkCmdBeginRenderPass"))
5684 {
5685 return (void*)entry_vkCmdBeginRenderPass;
5686 }
5687 if (!strcmp(name, "vkCmdNextSubpass"))
5688 {
5689 return (void*)entry_vkCmdNextSubpass;
5690 }
5691 if (!strcmp(name, "vkCmdEndRenderPass"))
5692 {
5693 return (void*)entry_vkCmdEndRenderPass;
5694 }
5695 if (!strcmp(name, "vkCmdExecuteCommands"))
5696 {
5697 return (void*)entry_vkCmdExecuteCommands;
5698 }
5699#endif
5700#ifdef VK_VERSION_1_1
5701 if (!strcmp(name, "vkEnumerateInstanceVersion"))
5702 {
5703 return has1_1OrHigher ? (void*)entry_vkEnumerateInstanceVersion : nullptr;
5704 }
5705 if (!strcmp(name, "vkBindBufferMemory2"))
5706 {
5707 return has1_1OrHigher ? (void*)entry_vkBindBufferMemory2 : nullptr;
5708 }
5709 if (!strcmp(name, "vkBindImageMemory2"))
5710 {
5711 return has1_1OrHigher ? (void*)entry_vkBindImageMemory2 : nullptr;
5712 }
5713 if (!strcmp(name, "vkGetDeviceGroupPeerMemoryFeatures"))
5714 {
5715 return has1_1OrHigher ? (void*)entry_vkGetDeviceGroupPeerMemoryFeatures : nullptr;
5716 }
5717 if (!strcmp(name, "vkCmdSetDeviceMask"))
5718 {
5719 return has1_1OrHigher ? (void*)entry_vkCmdSetDeviceMask : nullptr;
5720 }
5721 if (!strcmp(name, "vkCmdDispatchBase"))
5722 {
5723 return has1_1OrHigher ? (void*)entry_vkCmdDispatchBase : nullptr;
5724 }
5725 if (!strcmp(name, "vkEnumeratePhysicalDeviceGroups"))
5726 {
5727 return nullptr;
5728 }
5729 if (!strcmp(name, "vkGetImageMemoryRequirements2"))
5730 {
5731 return has1_1OrHigher ? (void*)entry_vkGetImageMemoryRequirements2 : nullptr;
5732 }
5733 if (!strcmp(name, "vkGetBufferMemoryRequirements2"))
5734 {
5735 return has1_1OrHigher ? (void*)entry_vkGetBufferMemoryRequirements2 : nullptr;
5736 }
5737 if (!strcmp(name, "vkGetImageSparseMemoryRequirements2"))
5738 {
5739 return has1_1OrHigher ? (void*)entry_vkGetImageSparseMemoryRequirements2 : nullptr;
5740 }
5741 if (!strcmp(name, "vkGetPhysicalDeviceFeatures2"))
5742 {
5743 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceFeatures2 : nullptr;
5744 }
5745 if (!strcmp(name, "vkGetPhysicalDeviceProperties2"))
5746 {
5747 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceProperties2 : nullptr;
5748 }
5749 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties2"))
5750 {
5751 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceFormatProperties2 : nullptr;
5752 }
5753 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties2"))
5754 {
5755 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceImageFormatProperties2 : nullptr;
5756 }
5757 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties2"))
5758 {
5759 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties2 : nullptr;
5760 }
5761 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties2"))
5762 {
5763 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceMemoryProperties2 : nullptr;
5764 }
5765 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties2"))
5766 {
5767 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties2 : nullptr;
5768 }
5769 if (!strcmp(name, "vkTrimCommandPool"))
5770 {
5771 return has1_1OrHigher ? (void*)entry_vkTrimCommandPool : nullptr;
5772 }
5773 if (!strcmp(name, "vkGetDeviceQueue2"))
5774 {
5775 return has1_1OrHigher ? (void*)entry_vkGetDeviceQueue2 : nullptr;
5776 }
5777 if (!strcmp(name, "vkCreateSamplerYcbcrConversion"))
5778 {
5779 return has1_1OrHigher ? (void*)entry_vkCreateSamplerYcbcrConversion : nullptr;
5780 }
5781 if (!strcmp(name, "vkDestroySamplerYcbcrConversion"))
5782 {
5783 return has1_1OrHigher ? (void*)entry_vkDestroySamplerYcbcrConversion : nullptr;
5784 }
5785 if (!strcmp(name, "vkCreateDescriptorUpdateTemplate"))
5786 {
5787 return has1_1OrHigher ? (void*)entry_vkCreateDescriptorUpdateTemplate : nullptr;
5788 }
5789 if (!strcmp(name, "vkDestroyDescriptorUpdateTemplate"))
5790 {
5791 return has1_1OrHigher ? (void*)entry_vkDestroyDescriptorUpdateTemplate : nullptr;
5792 }
5793 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplate"))
5794 {
5795 return has1_1OrHigher ? (void*)entry_vkUpdateDescriptorSetWithTemplate : nullptr;
5796 }
5797 if (!strcmp(name, "vkGetPhysicalDeviceExternalBufferProperties"))
5798 {
5799 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceExternalBufferProperties : nullptr;
5800 }
5801 if (!strcmp(name, "vkGetPhysicalDeviceExternalFenceProperties"))
5802 {
5803 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceExternalFenceProperties : nullptr;
5804 }
5805 if (!strcmp(name, "vkGetPhysicalDeviceExternalSemaphoreProperties"))
5806 {
5807 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceExternalSemaphoreProperties : nullptr;
5808 }
5809 if (!strcmp(name, "vkGetDescriptorSetLayoutSupport"))
5810 {
5811 return has1_1OrHigher ? (void*)entry_vkGetDescriptorSetLayoutSupport : nullptr;
5812 }
5813#endif
5814#ifdef VK_KHR_surface
5815 if (!strcmp(name, "vkDestroySurfaceKHR"))
5816 {
5817 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_surface");
5818 return hasExt ? (void*)entry_vkDestroySurfaceKHR : nullptr;
5819 }
5820 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceSupportKHR"))
5821 {
5822 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_surface");
5823 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceSupportKHR : nullptr;
5824 }
5825 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR"))
5826 {
5827 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_surface");
5828 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceCapabilitiesKHR : nullptr;
5829 }
5830 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceFormatsKHR"))
5831 {
5832 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_surface");
5833 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceFormatsKHR : nullptr;
5834 }
5835 if (!strcmp(name, "vkGetPhysicalDeviceSurfacePresentModesKHR"))
5836 {
5837 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_surface");
5838 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfacePresentModesKHR : nullptr;
5839 }
5840#endif
5841#ifdef VK_KHR_swapchain
5842 if (!strcmp(name, "vkCreateSwapchainKHR"))
5843 {
5844 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5845 return hasExt ? (void*)entry_vkCreateSwapchainKHR : nullptr;
5846 }
5847 if (!strcmp(name, "vkDestroySwapchainKHR"))
5848 {
5849 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5850 return hasExt ? (void*)entry_vkDestroySwapchainKHR : nullptr;
5851 }
5852 if (!strcmp(name, "vkGetSwapchainImagesKHR"))
5853 {
5854 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5855 return hasExt ? (void*)entry_vkGetSwapchainImagesKHR : nullptr;
5856 }
5857 if (!strcmp(name, "vkAcquireNextImageKHR"))
5858 {
5859 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5860 return hasExt ? (void*)entry_vkAcquireNextImageKHR : nullptr;
5861 }
5862 if (!strcmp(name, "vkQueuePresentKHR"))
5863 {
5864 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5865 return hasExt ? (void*)entry_vkQueuePresentKHR : nullptr;
5866 }
5867 if (!strcmp(name, "vkGetDeviceGroupPresentCapabilitiesKHR"))
5868 {
5869 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5870 return hasExt ? (void*)entry_vkGetDeviceGroupPresentCapabilitiesKHR : nullptr;
5871 }
5872 if (!strcmp(name, "vkGetDeviceGroupSurfacePresentModesKHR"))
5873 {
5874 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5875 return hasExt ? (void*)entry_vkGetDeviceGroupSurfacePresentModesKHR : nullptr;
5876 }
5877 if (!strcmp(name, "vkGetPhysicalDevicePresentRectanglesKHR"))
5878 {
5879 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5880 return hasExt ? (void*)entry_vkGetPhysicalDevicePresentRectanglesKHR : nullptr;
5881 }
5882 if (!strcmp(name, "vkAcquireNextImage2KHR"))
5883 {
5884 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5885 return hasExt ? (void*)entry_vkAcquireNextImage2KHR : nullptr;
5886 }
5887#endif
5888#ifdef VK_KHR_display
5889 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPropertiesKHR"))
5890 {
5891 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
5892 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayPropertiesKHR : nullptr;
5893 }
5894 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR"))
5895 {
5896 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
5897 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayPlanePropertiesKHR : nullptr;
5898 }
5899 if (!strcmp(name, "vkGetDisplayPlaneSupportedDisplaysKHR"))
5900 {
5901 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
5902 return hasExt ? (void*)entry_vkGetDisplayPlaneSupportedDisplaysKHR : nullptr;
5903 }
5904 if (!strcmp(name, "vkGetDisplayModePropertiesKHR"))
5905 {
5906 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
5907 return hasExt ? (void*)entry_vkGetDisplayModePropertiesKHR : nullptr;
5908 }
5909 if (!strcmp(name, "vkCreateDisplayModeKHR"))
5910 {
5911 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
5912 return hasExt ? (void*)entry_vkCreateDisplayModeKHR : nullptr;
5913 }
5914 if (!strcmp(name, "vkGetDisplayPlaneCapabilitiesKHR"))
5915 {
5916 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
5917 return hasExt ? (void*)entry_vkGetDisplayPlaneCapabilitiesKHR : nullptr;
5918 }
5919 if (!strcmp(name, "vkCreateDisplayPlaneSurfaceKHR"))
5920 {
5921 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
5922 return hasExt ? (void*)entry_vkCreateDisplayPlaneSurfaceKHR : nullptr;
5923 }
5924#endif
5925#ifdef VK_KHR_display_swapchain
5926 if (!strcmp(name, "vkCreateSharedSwapchainsKHR"))
5927 {
5928 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display_swapchain");
5929 return hasExt ? (void*)entry_vkCreateSharedSwapchainsKHR : nullptr;
5930 }
5931#endif
5932#ifdef VK_KHR_xlib_surface
5933 if (!strcmp(name, "vkCreateXlibSurfaceKHR"))
5934 {
5935 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_xlib_surface");
5936 return hasExt ? (void*)entry_vkCreateXlibSurfaceKHR : nullptr;
5937 }
5938 if (!strcmp(name, "vkGetPhysicalDeviceXlibPresentationSupportKHR"))
5939 {
5940 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_xlib_surface");
5941 return hasExt ? (void*)entry_vkGetPhysicalDeviceXlibPresentationSupportKHR : nullptr;
5942 }
5943#endif
5944#ifdef VK_KHR_xcb_surface
5945 if (!strcmp(name, "vkCreateXcbSurfaceKHR"))
5946 {
5947 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_xcb_surface");
5948 return hasExt ? (void*)entry_vkCreateXcbSurfaceKHR : nullptr;
5949 }
5950 if (!strcmp(name, "vkGetPhysicalDeviceXcbPresentationSupportKHR"))
5951 {
5952 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_xcb_surface");
5953 return hasExt ? (void*)entry_vkGetPhysicalDeviceXcbPresentationSupportKHR : nullptr;
5954 }
5955#endif
5956#ifdef VK_KHR_wayland_surface
5957 if (!strcmp(name, "vkCreateWaylandSurfaceKHR"))
5958 {
5959 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_wayland_surface");
5960 return hasExt ? (void*)entry_vkCreateWaylandSurfaceKHR : nullptr;
5961 }
5962 if (!strcmp(name, "vkGetPhysicalDeviceWaylandPresentationSupportKHR"))
5963 {
5964 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_wayland_surface");
5965 return hasExt ? (void*)entry_vkGetPhysicalDeviceWaylandPresentationSupportKHR : nullptr;
5966 }
5967#endif
5968#ifdef VK_KHR_mir_surface
5969 if (!strcmp(name, "vkCreateMirSurfaceKHR"))
5970 {
5971 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_mir_surface");
5972 return hasExt ? (void*)entry_vkCreateMirSurfaceKHR : nullptr;
5973 }
5974 if (!strcmp(name, "vkGetPhysicalDeviceMirPresentationSupportKHR"))
5975 {
5976 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_mir_surface");
5977 return hasExt ? (void*)entry_vkGetPhysicalDeviceMirPresentationSupportKHR : nullptr;
5978 }
5979#endif
5980#ifdef VK_KHR_android_surface
5981 if (!strcmp(name, "vkCreateAndroidSurfaceKHR"))
5982 {
5983 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_android_surface");
5984 return hasExt ? (void*)entry_vkCreateAndroidSurfaceKHR : nullptr;
5985 }
5986#endif
5987#ifdef VK_KHR_win32_surface
5988 if (!strcmp(name, "vkCreateWin32SurfaceKHR"))
5989 {
5990 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_win32_surface");
5991 return hasExt ? (void*)entry_vkCreateWin32SurfaceKHR : nullptr;
5992 }
5993 if (!strcmp(name, "vkGetPhysicalDeviceWin32PresentationSupportKHR"))
5994 {
5995 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_win32_surface");
5996 return hasExt ? (void*)entry_vkGetPhysicalDeviceWin32PresentationSupportKHR : nullptr;
5997 }
5998#endif
5999#ifdef VK_KHR_get_physical_device_properties2
6000 if (!strcmp(name, "vkGetPhysicalDeviceFeatures2KHR"))
6001 {
6002 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
6003 return hasExt ? (void*)entry_vkGetPhysicalDeviceFeatures2KHR : nullptr;
6004 }
6005 if (!strcmp(name, "vkGetPhysicalDeviceProperties2KHR"))
6006 {
6007 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
6008 return hasExt ? (void*)entry_vkGetPhysicalDeviceProperties2KHR : nullptr;
6009 }
6010 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties2KHR"))
6011 {
6012 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
6013 return hasExt ? (void*)entry_vkGetPhysicalDeviceFormatProperties2KHR : nullptr;
6014 }
6015 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties2KHR"))
6016 {
6017 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
6018 return hasExt ? (void*)entry_vkGetPhysicalDeviceImageFormatProperties2KHR : nullptr;
6019 }
6020 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties2KHR"))
6021 {
6022 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
6023 return hasExt ? (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties2KHR : nullptr;
6024 }
6025 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties2KHR"))
6026 {
6027 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
6028 return hasExt ? (void*)entry_vkGetPhysicalDeviceMemoryProperties2KHR : nullptr;
6029 }
6030 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR"))
6031 {
6032 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
6033 return hasExt ? (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties2KHR : nullptr;
6034 }
6035#endif
6036#ifdef VK_KHR_device_group
6037 if (!strcmp(name, "vkGetDeviceGroupPeerMemoryFeaturesKHR"))
6038 {
6039 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_device_group");
6040 return hasExt ? (void*)entry_vkGetDeviceGroupPeerMemoryFeaturesKHR : nullptr;
6041 }
6042 if (!strcmp(name, "vkCmdSetDeviceMaskKHR"))
6043 {
6044 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_device_group");
6045 return hasExt ? (void*)entry_vkCmdSetDeviceMaskKHR : nullptr;
6046 }
6047 if (!strcmp(name, "vkCmdDispatchBaseKHR"))
6048 {
6049 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_device_group");
6050 return hasExt ? (void*)entry_vkCmdDispatchBaseKHR : nullptr;
6051 }
6052#endif
6053#ifdef VK_KHR_maintenance1
6054 if (!strcmp(name, "vkTrimCommandPoolKHR"))
6055 {
6056 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_maintenance1");
6057 return hasExt ? (void*)entry_vkTrimCommandPoolKHR : nullptr;
6058 }
6059#endif
6060#ifdef VK_KHR_device_group_creation
6061 if (!strcmp(name, "vkEnumeratePhysicalDeviceGroupsKHR"))
6062 {
6063 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_device_group_creation");
6064 return hasExt ? (void*)entry_vkEnumeratePhysicalDeviceGroupsKHR : nullptr;
6065 }
6066#endif
6067#ifdef VK_KHR_external_memory_capabilities
6068 if (!strcmp(name, "vkGetPhysicalDeviceExternalBufferPropertiesKHR"))
6069 {
6070 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_memory_capabilities");
6071 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalBufferPropertiesKHR : nullptr;
6072 }
6073#endif
6074#ifdef VK_KHR_external_memory_win32
6075 if (!strcmp(name, "vkGetMemoryWin32HandleKHR"))
6076 {
6077 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_memory_win32");
6078 return hasExt ? (void*)entry_vkGetMemoryWin32HandleKHR : nullptr;
6079 }
6080 if (!strcmp(name, "vkGetMemoryWin32HandlePropertiesKHR"))
6081 {
6082 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_memory_win32");
6083 return hasExt ? (void*)entry_vkGetMemoryWin32HandlePropertiesKHR : nullptr;
6084 }
6085#endif
6086#ifdef VK_KHR_external_memory_fd
6087 if (!strcmp(name, "vkGetMemoryFdKHR"))
6088 {
6089 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_memory_fd");
6090 return hasExt ? (void*)entry_vkGetMemoryFdKHR : nullptr;
6091 }
6092 if (!strcmp(name, "vkGetMemoryFdPropertiesKHR"))
6093 {
6094 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_memory_fd");
6095 return hasExt ? (void*)entry_vkGetMemoryFdPropertiesKHR : nullptr;
6096 }
6097#endif
6098#ifdef VK_KHR_external_semaphore_capabilities
6099 if (!strcmp(name, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR"))
6100 {
6101 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_semaphore_capabilities");
6102 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR : nullptr;
6103 }
6104#endif
6105#ifdef VK_KHR_external_semaphore_win32
6106 if (!strcmp(name, "vkImportSemaphoreWin32HandleKHR"))
6107 {
6108 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_semaphore_win32");
6109 return hasExt ? (void*)entry_vkImportSemaphoreWin32HandleKHR : nullptr;
6110 }
6111 if (!strcmp(name, "vkGetSemaphoreWin32HandleKHR"))
6112 {
6113 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_semaphore_win32");
6114 return hasExt ? (void*)entry_vkGetSemaphoreWin32HandleKHR : nullptr;
6115 }
6116#endif
6117#ifdef VK_KHR_external_semaphore_fd
6118 if (!strcmp(name, "vkImportSemaphoreFdKHR"))
6119 {
6120 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_semaphore_fd");
6121 return hasExt ? (void*)entry_vkImportSemaphoreFdKHR : nullptr;
6122 }
6123 if (!strcmp(name, "vkGetSemaphoreFdKHR"))
6124 {
6125 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_semaphore_fd");
6126 return hasExt ? (void*)entry_vkGetSemaphoreFdKHR : nullptr;
6127 }
6128#endif
6129#ifdef VK_KHR_push_descriptor
6130 if (!strcmp(name, "vkCmdPushDescriptorSetKHR"))
6131 {
6132 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_push_descriptor");
6133 return hasExt ? (void*)entry_vkCmdPushDescriptorSetKHR : nullptr;
6134 }
6135 if (!strcmp(name, "vkCmdPushDescriptorSetWithTemplateKHR"))
6136 {
6137 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_push_descriptor");
6138 return hasExt ? (void*)entry_vkCmdPushDescriptorSetWithTemplateKHR : nullptr;
6139 }
6140#endif
6141#ifdef VK_KHR_descriptor_update_template
6142 if (!strcmp(name, "vkCreateDescriptorUpdateTemplateKHR"))
6143 {
6144 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_descriptor_update_template");
6145 return hasExt ? (void*)entry_vkCreateDescriptorUpdateTemplateKHR : nullptr;
6146 }
6147 if (!strcmp(name, "vkDestroyDescriptorUpdateTemplateKHR"))
6148 {
6149 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_descriptor_update_template");
6150 return hasExt ? (void*)entry_vkDestroyDescriptorUpdateTemplateKHR : nullptr;
6151 }
6152 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplateKHR"))
6153 {
6154 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_descriptor_update_template");
6155 return hasExt ? (void*)entry_vkUpdateDescriptorSetWithTemplateKHR : nullptr;
6156 }
6157#endif
6158#ifdef VK_KHR_create_renderpass2
6159 if (!strcmp(name, "vkCreateRenderPass2KHR"))
6160 {
6161 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_create_renderpass2");
6162 return hasExt ? (void*)entry_vkCreateRenderPass2KHR : nullptr;
6163 }
6164 if (!strcmp(name, "vkCmdBeginRenderPass2KHR"))
6165 {
6166 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_create_renderpass2");
6167 return hasExt ? (void*)entry_vkCmdBeginRenderPass2KHR : nullptr;
6168 }
6169 if (!strcmp(name, "vkCmdNextSubpass2KHR"))
6170 {
6171 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_create_renderpass2");
6172 return hasExt ? (void*)entry_vkCmdNextSubpass2KHR : nullptr;
6173 }
6174 if (!strcmp(name, "vkCmdEndRenderPass2KHR"))
6175 {
6176 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_create_renderpass2");
6177 return hasExt ? (void*)entry_vkCmdEndRenderPass2KHR : nullptr;
6178 }
6179#endif
6180#ifdef VK_KHR_shared_presentable_image
6181 if (!strcmp(name, "vkGetSwapchainStatusKHR"))
6182 {
6183 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_shared_presentable_image");
6184 return hasExt ? (void*)entry_vkGetSwapchainStatusKHR : nullptr;
6185 }
6186#endif
6187#ifdef VK_KHR_external_fence_capabilities
6188 if (!strcmp(name, "vkGetPhysicalDeviceExternalFencePropertiesKHR"))
6189 {
6190 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_fence_capabilities");
6191 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalFencePropertiesKHR : nullptr;
6192 }
6193#endif
6194#ifdef VK_KHR_external_fence_win32
6195 if (!strcmp(name, "vkImportFenceWin32HandleKHR"))
6196 {
6197 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_fence_win32");
6198 return hasExt ? (void*)entry_vkImportFenceWin32HandleKHR : nullptr;
6199 }
6200 if (!strcmp(name, "vkGetFenceWin32HandleKHR"))
6201 {
6202 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_fence_win32");
6203 return hasExt ? (void*)entry_vkGetFenceWin32HandleKHR : nullptr;
6204 }
6205#endif
6206#ifdef VK_KHR_external_fence_fd
6207 if (!strcmp(name, "vkImportFenceFdKHR"))
6208 {
6209 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_fence_fd");
6210 return hasExt ? (void*)entry_vkImportFenceFdKHR : nullptr;
6211 }
6212 if (!strcmp(name, "vkGetFenceFdKHR"))
6213 {
6214 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_fence_fd");
6215 return hasExt ? (void*)entry_vkGetFenceFdKHR : nullptr;
6216 }
6217#endif
6218#ifdef VK_KHR_get_surface_capabilities2
6219 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2KHR"))
6220 {
6221 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_surface_capabilities2");
6222 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceCapabilities2KHR : nullptr;
6223 }
6224 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceFormats2KHR"))
6225 {
6226 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_surface_capabilities2");
6227 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceFormats2KHR : nullptr;
6228 }
6229#endif
6230#ifdef VK_KHR_get_display_properties2
6231 if (!strcmp(name, "vkGetPhysicalDeviceDisplayProperties2KHR"))
6232 {
6233 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_display_properties2");
6234 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayProperties2KHR : nullptr;
6235 }
6236 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR"))
6237 {
6238 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_display_properties2");
6239 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayPlaneProperties2KHR : nullptr;
6240 }
6241 if (!strcmp(name, "vkGetDisplayModeProperties2KHR"))
6242 {
6243 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_display_properties2");
6244 return hasExt ? (void*)entry_vkGetDisplayModeProperties2KHR : nullptr;
6245 }
6246 if (!strcmp(name, "vkGetDisplayPlaneCapabilities2KHR"))
6247 {
6248 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_display_properties2");
6249 return hasExt ? (void*)entry_vkGetDisplayPlaneCapabilities2KHR : nullptr;
6250 }
6251#endif
6252#ifdef VK_KHR_get_memory_requirements2
6253 if (!strcmp(name, "vkGetImageMemoryRequirements2KHR"))
6254 {
6255 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_memory_requirements2");
6256 return hasExt ? (void*)entry_vkGetImageMemoryRequirements2KHR : nullptr;
6257 }
6258 if (!strcmp(name, "vkGetBufferMemoryRequirements2KHR"))
6259 {
6260 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_memory_requirements2");
6261 return hasExt ? (void*)entry_vkGetBufferMemoryRequirements2KHR : nullptr;
6262 }
6263 if (!strcmp(name, "vkGetImageSparseMemoryRequirements2KHR"))
6264 {
6265 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_memory_requirements2");
6266 return hasExt ? (void*)entry_vkGetImageSparseMemoryRequirements2KHR : nullptr;
6267 }
6268#endif
6269#ifdef VK_KHR_sampler_ycbcr_conversion
6270 if (!strcmp(name, "vkCreateSamplerYcbcrConversionKHR"))
6271 {
6272 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_sampler_ycbcr_conversion");
6273 return hasExt ? (void*)entry_vkCreateSamplerYcbcrConversionKHR : nullptr;
6274 }
6275 if (!strcmp(name, "vkDestroySamplerYcbcrConversionKHR"))
6276 {
6277 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_sampler_ycbcr_conversion");
6278 return hasExt ? (void*)entry_vkDestroySamplerYcbcrConversionKHR : nullptr;
6279 }
6280#endif
6281#ifdef VK_KHR_bind_memory2
6282 if (!strcmp(name, "vkBindBufferMemory2KHR"))
6283 {
6284 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_bind_memory2");
6285 return hasExt ? (void*)entry_vkBindBufferMemory2KHR : nullptr;
6286 }
6287 if (!strcmp(name, "vkBindImageMemory2KHR"))
6288 {
6289 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_bind_memory2");
6290 return hasExt ? (void*)entry_vkBindImageMemory2KHR : nullptr;
6291 }
6292#endif
6293#ifdef VK_KHR_maintenance3
6294 if (!strcmp(name, "vkGetDescriptorSetLayoutSupportKHR"))
6295 {
6296 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_maintenance3");
6297 return hasExt ? (void*)entry_vkGetDescriptorSetLayoutSupportKHR : nullptr;
6298 }
6299#endif
6300#ifdef VK_KHR_draw_indirect_count
6301 if (!strcmp(name, "vkCmdDrawIndirectCountKHR"))
6302 {
6303 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_draw_indirect_count");
6304 return hasExt ? (void*)entry_vkCmdDrawIndirectCountKHR : nullptr;
6305 }
6306 if (!strcmp(name, "vkCmdDrawIndexedIndirectCountKHR"))
6307 {
6308 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_draw_indirect_count");
6309 return hasExt ? (void*)entry_vkCmdDrawIndexedIndirectCountKHR : nullptr;
6310 }
6311#endif
6312#ifdef VK_ANDROID_native_buffer
6313 if (!strcmp(name, "vkGetSwapchainGrallocUsageANDROID"))
6314 {
6315 bool hasExt = resources->hasInstanceExtension(instance, "VK_ANDROID_native_buffer");
6316 return hasExt ? (void*)entry_vkGetSwapchainGrallocUsageANDROID : nullptr;
6317 }
6318 if (!strcmp(name, "vkAcquireImageANDROID"))
6319 {
6320 bool hasExt = resources->hasInstanceExtension(instance, "VK_ANDROID_native_buffer");
6321 return hasExt ? (void*)entry_vkAcquireImageANDROID : nullptr;
6322 }
6323 if (!strcmp(name, "vkQueueSignalReleaseImageANDROID"))
6324 {
6325 bool hasExt = resources->hasInstanceExtension(instance, "VK_ANDROID_native_buffer");
6326 return hasExt ? (void*)entry_vkQueueSignalReleaseImageANDROID : nullptr;
6327 }
6328#endif
6329#ifdef VK_EXT_debug_report
6330 if (!strcmp(name, "vkCreateDebugReportCallbackEXT"))
6331 {
6332 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_report");
6333 return hasExt ? (void*)entry_vkCreateDebugReportCallbackEXT : nullptr;
6334 }
6335 if (!strcmp(name, "vkDestroyDebugReportCallbackEXT"))
6336 {
6337 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_report");
6338 return hasExt ? (void*)entry_vkDestroyDebugReportCallbackEXT : nullptr;
6339 }
6340 if (!strcmp(name, "vkDebugReportMessageEXT"))
6341 {
6342 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_report");
6343 return hasExt ? (void*)entry_vkDebugReportMessageEXT : nullptr;
6344 }
6345#endif
6346#ifdef VK_EXT_debug_marker
6347 if (!strcmp(name, "vkDebugMarkerSetObjectTagEXT"))
6348 {
6349 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_marker");
6350 return hasExt ? (void*)entry_vkDebugMarkerSetObjectTagEXT : nullptr;
6351 }
6352 if (!strcmp(name, "vkDebugMarkerSetObjectNameEXT"))
6353 {
6354 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_marker");
6355 return hasExt ? (void*)entry_vkDebugMarkerSetObjectNameEXT : nullptr;
6356 }
6357 if (!strcmp(name, "vkCmdDebugMarkerBeginEXT"))
6358 {
6359 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_marker");
6360 return hasExt ? (void*)entry_vkCmdDebugMarkerBeginEXT : nullptr;
6361 }
6362 if (!strcmp(name, "vkCmdDebugMarkerEndEXT"))
6363 {
6364 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_marker");
6365 return hasExt ? (void*)entry_vkCmdDebugMarkerEndEXT : nullptr;
6366 }
6367 if (!strcmp(name, "vkCmdDebugMarkerInsertEXT"))
6368 {
6369 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_marker");
6370 return hasExt ? (void*)entry_vkCmdDebugMarkerInsertEXT : nullptr;
6371 }
6372#endif
6373#ifdef VK_AMD_draw_indirect_count
6374 if (!strcmp(name, "vkCmdDrawIndirectCountAMD"))
6375 {
6376 bool hasExt = resources->hasInstanceExtension(instance, "VK_AMD_draw_indirect_count");
6377 return hasExt ? (void*)entry_vkCmdDrawIndirectCountAMD : nullptr;
6378 }
6379 if (!strcmp(name, "vkCmdDrawIndexedIndirectCountAMD"))
6380 {
6381 bool hasExt = resources->hasInstanceExtension(instance, "VK_AMD_draw_indirect_count");
6382 return hasExt ? (void*)entry_vkCmdDrawIndexedIndirectCountAMD : nullptr;
6383 }
6384#endif
6385#ifdef VK_AMD_shader_info
6386 if (!strcmp(name, "vkGetShaderInfoAMD"))
6387 {
6388 bool hasExt = resources->hasInstanceExtension(instance, "VK_AMD_shader_info");
6389 return hasExt ? (void*)entry_vkGetShaderInfoAMD : nullptr;
6390 }
6391#endif
6392#ifdef VK_NV_external_memory_capabilities
6393 if (!strcmp(name, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV"))
6394 {
6395 bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_external_memory_capabilities");
6396 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalImageFormatPropertiesNV : nullptr;
6397 }
6398#endif
6399#ifdef VK_NV_external_memory_win32
6400 if (!strcmp(name, "vkGetMemoryWin32HandleNV"))
6401 {
6402 bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_external_memory_win32");
6403 return hasExt ? (void*)entry_vkGetMemoryWin32HandleNV : nullptr;
6404 }
6405#endif
6406#ifdef VK_NN_vi_surface
6407 if (!strcmp(name, "vkCreateViSurfaceNN"))
6408 {
6409 bool hasExt = resources->hasInstanceExtension(instance, "VK_NN_vi_surface");
6410 return hasExt ? (void*)entry_vkCreateViSurfaceNN : nullptr;
6411 }
6412#endif
6413#ifdef VK_EXT_conditional_rendering
6414 if (!strcmp(name, "vkCmdBeginConditionalRenderingEXT"))
6415 {
6416 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_conditional_rendering");
6417 return hasExt ? (void*)entry_vkCmdBeginConditionalRenderingEXT : nullptr;
6418 }
6419 if (!strcmp(name, "vkCmdEndConditionalRenderingEXT"))
6420 {
6421 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_conditional_rendering");
6422 return hasExt ? (void*)entry_vkCmdEndConditionalRenderingEXT : nullptr;
6423 }
6424#endif
6425#ifdef VK_NVX_device_generated_commands
6426 if (!strcmp(name, "vkCmdProcessCommandsNVX"))
6427 {
6428 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6429 return hasExt ? (void*)entry_vkCmdProcessCommandsNVX : nullptr;
6430 }
6431 if (!strcmp(name, "vkCmdReserveSpaceForCommandsNVX"))
6432 {
6433 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6434 return hasExt ? (void*)entry_vkCmdReserveSpaceForCommandsNVX : nullptr;
6435 }
6436 if (!strcmp(name, "vkCreateIndirectCommandsLayoutNVX"))
6437 {
6438 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6439 return hasExt ? (void*)entry_vkCreateIndirectCommandsLayoutNVX : nullptr;
6440 }
6441 if (!strcmp(name, "vkDestroyIndirectCommandsLayoutNVX"))
6442 {
6443 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6444 return hasExt ? (void*)entry_vkDestroyIndirectCommandsLayoutNVX : nullptr;
6445 }
6446 if (!strcmp(name, "vkCreateObjectTableNVX"))
6447 {
6448 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6449 return hasExt ? (void*)entry_vkCreateObjectTableNVX : nullptr;
6450 }
6451 if (!strcmp(name, "vkDestroyObjectTableNVX"))
6452 {
6453 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6454 return hasExt ? (void*)entry_vkDestroyObjectTableNVX : nullptr;
6455 }
6456 if (!strcmp(name, "vkRegisterObjectsNVX"))
6457 {
6458 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6459 return hasExt ? (void*)entry_vkRegisterObjectsNVX : nullptr;
6460 }
6461 if (!strcmp(name, "vkUnregisterObjectsNVX"))
6462 {
6463 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6464 return hasExt ? (void*)entry_vkUnregisterObjectsNVX : nullptr;
6465 }
6466 if (!strcmp(name, "vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX"))
6467 {
6468 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6469 return hasExt ? (void*)entry_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX : nullptr;
6470 }
6471#endif
6472#ifdef VK_NV_clip_space_w_scaling
6473 if (!strcmp(name, "vkCmdSetViewportWScalingNV"))
6474 {
6475 bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_clip_space_w_scaling");
6476 return hasExt ? (void*)entry_vkCmdSetViewportWScalingNV : nullptr;
6477 }
6478#endif
6479#ifdef VK_EXT_direct_mode_display
6480 if (!strcmp(name, "vkReleaseDisplayEXT"))
6481 {
6482 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_direct_mode_display");
6483 return hasExt ? (void*)entry_vkReleaseDisplayEXT : nullptr;
6484 }
6485#endif
6486#ifdef VK_EXT_acquire_xlib_display
6487 if (!strcmp(name, "vkAcquireXlibDisplayEXT"))
6488 {
6489 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_acquire_xlib_display");
6490 return hasExt ? (void*)entry_vkAcquireXlibDisplayEXT : nullptr;
6491 }
6492 if (!strcmp(name, "vkGetRandROutputDisplayEXT"))
6493 {
6494 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_acquire_xlib_display");
6495 return hasExt ? (void*)entry_vkGetRandROutputDisplayEXT : nullptr;
6496 }
6497#endif
6498#ifdef VK_EXT_display_surface_counter
6499 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2EXT"))
6500 {
6501 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_display_surface_counter");
6502 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceCapabilities2EXT : nullptr;
6503 }
6504#endif
6505#ifdef VK_EXT_display_control
6506 if (!strcmp(name, "vkDisplayPowerControlEXT"))
6507 {
6508 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_display_control");
6509 return hasExt ? (void*)entry_vkDisplayPowerControlEXT : nullptr;
6510 }
6511 if (!strcmp(name, "vkRegisterDeviceEventEXT"))
6512 {
6513 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_display_control");
6514 return hasExt ? (void*)entry_vkRegisterDeviceEventEXT : nullptr;
6515 }
6516 if (!strcmp(name, "vkRegisterDisplayEventEXT"))
6517 {
6518 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_display_control");
6519 return hasExt ? (void*)entry_vkRegisterDisplayEventEXT : nullptr;
6520 }
6521 if (!strcmp(name, "vkGetSwapchainCounterEXT"))
6522 {
6523 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_display_control");
6524 return hasExt ? (void*)entry_vkGetSwapchainCounterEXT : nullptr;
6525 }
6526#endif
6527#ifdef VK_GOOGLE_display_timing
6528 if (!strcmp(name, "vkGetRefreshCycleDurationGOOGLE"))
6529 {
6530 bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_display_timing");
6531 return hasExt ? (void*)entry_vkGetRefreshCycleDurationGOOGLE : nullptr;
6532 }
6533 if (!strcmp(name, "vkGetPastPresentationTimingGOOGLE"))
6534 {
6535 bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_display_timing");
6536 return hasExt ? (void*)entry_vkGetPastPresentationTimingGOOGLE : nullptr;
6537 }
6538#endif
6539#ifdef VK_EXT_discard_rectangles
6540 if (!strcmp(name, "vkCmdSetDiscardRectangleEXT"))
6541 {
6542 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_discard_rectangles");
6543 return hasExt ? (void*)entry_vkCmdSetDiscardRectangleEXT : nullptr;
6544 }
6545#endif
6546#ifdef VK_EXT_hdr_metadata
6547 if (!strcmp(name, "vkSetHdrMetadataEXT"))
6548 {
6549 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_hdr_metadata");
6550 return hasExt ? (void*)entry_vkSetHdrMetadataEXT : nullptr;
6551 }
6552#endif
6553#ifdef VK_MVK_ios_surface
6554 if (!strcmp(name, "vkCreateIOSSurfaceMVK"))
6555 {
6556 bool hasExt = resources->hasInstanceExtension(instance, "VK_MVK_ios_surface");
6557 return hasExt ? (void*)entry_vkCreateIOSSurfaceMVK : nullptr;
6558 }
6559#endif
6560#ifdef VK_MVK_macos_surface
6561 if (!strcmp(name, "vkCreateMacOSSurfaceMVK"))
6562 {
6563 bool hasExt = resources->hasInstanceExtension(instance, "VK_MVK_macos_surface");
6564 return hasExt ? (void*)entry_vkCreateMacOSSurfaceMVK : nullptr;
6565 }
6566#endif
6567#ifdef VK_EXT_debug_utils
6568 if (!strcmp(name, "vkSetDebugUtilsObjectNameEXT"))
6569 {
6570 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6571 return hasExt ? (void*)entry_vkSetDebugUtilsObjectNameEXT : nullptr;
6572 }
6573 if (!strcmp(name, "vkSetDebugUtilsObjectTagEXT"))
6574 {
6575 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6576 return hasExt ? (void*)entry_vkSetDebugUtilsObjectTagEXT : nullptr;
6577 }
6578 if (!strcmp(name, "vkQueueBeginDebugUtilsLabelEXT"))
6579 {
6580 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6581 return hasExt ? (void*)entry_vkQueueBeginDebugUtilsLabelEXT : nullptr;
6582 }
6583 if (!strcmp(name, "vkQueueEndDebugUtilsLabelEXT"))
6584 {
6585 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6586 return hasExt ? (void*)entry_vkQueueEndDebugUtilsLabelEXT : nullptr;
6587 }
6588 if (!strcmp(name, "vkQueueInsertDebugUtilsLabelEXT"))
6589 {
6590 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6591 return hasExt ? (void*)entry_vkQueueInsertDebugUtilsLabelEXT : nullptr;
6592 }
6593 if (!strcmp(name, "vkCmdBeginDebugUtilsLabelEXT"))
6594 {
6595 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6596 return hasExt ? (void*)entry_vkCmdBeginDebugUtilsLabelEXT : nullptr;
6597 }
6598 if (!strcmp(name, "vkCmdEndDebugUtilsLabelEXT"))
6599 {
6600 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6601 return hasExt ? (void*)entry_vkCmdEndDebugUtilsLabelEXT : nullptr;
6602 }
6603 if (!strcmp(name, "vkCmdInsertDebugUtilsLabelEXT"))
6604 {
6605 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6606 return hasExt ? (void*)entry_vkCmdInsertDebugUtilsLabelEXT : nullptr;
6607 }
6608 if (!strcmp(name, "vkCreateDebugUtilsMessengerEXT"))
6609 {
6610 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6611 return hasExt ? (void*)entry_vkCreateDebugUtilsMessengerEXT : nullptr;
6612 }
6613 if (!strcmp(name, "vkDestroyDebugUtilsMessengerEXT"))
6614 {
6615 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6616 return hasExt ? (void*)entry_vkDestroyDebugUtilsMessengerEXT : nullptr;
6617 }
6618 if (!strcmp(name, "vkSubmitDebugUtilsMessageEXT"))
6619 {
6620 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6621 return hasExt ? (void*)entry_vkSubmitDebugUtilsMessageEXT : nullptr;
6622 }
6623#endif
6624#ifdef VK_ANDROID_external_memory_android_hardware_buffer
6625 if (!strcmp(name, "vkGetAndroidHardwareBufferPropertiesANDROID"))
6626 {
6627 bool hasExt = resources->hasInstanceExtension(instance, "VK_ANDROID_external_memory_android_hardware_buffer");
6628 return hasExt ? (void*)entry_vkGetAndroidHardwareBufferPropertiesANDROID : nullptr;
6629 }
6630 if (!strcmp(name, "vkGetMemoryAndroidHardwareBufferANDROID"))
6631 {
6632 bool hasExt = resources->hasInstanceExtension(instance, "VK_ANDROID_external_memory_android_hardware_buffer");
6633 return hasExt ? (void*)entry_vkGetMemoryAndroidHardwareBufferANDROID : nullptr;
6634 }
6635#endif
6636#ifdef VK_EXT_sample_locations
6637 if (!strcmp(name, "vkCmdSetSampleLocationsEXT"))
6638 {
6639 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_sample_locations");
6640 return hasExt ? (void*)entry_vkCmdSetSampleLocationsEXT : nullptr;
6641 }
6642 if (!strcmp(name, "vkGetPhysicalDeviceMultisamplePropertiesEXT"))
6643 {
6644 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_sample_locations");
6645 return hasExt ? (void*)entry_vkGetPhysicalDeviceMultisamplePropertiesEXT : nullptr;
6646 }
6647#endif
6648#ifdef VK_EXT_validation_cache
6649 if (!strcmp(name, "vkCreateValidationCacheEXT"))
6650 {
6651 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_validation_cache");
6652 return hasExt ? (void*)entry_vkCreateValidationCacheEXT : nullptr;
6653 }
6654 if (!strcmp(name, "vkDestroyValidationCacheEXT"))
6655 {
6656 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_validation_cache");
6657 return hasExt ? (void*)entry_vkDestroyValidationCacheEXT : nullptr;
6658 }
6659 if (!strcmp(name, "vkMergeValidationCachesEXT"))
6660 {
6661 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_validation_cache");
6662 return hasExt ? (void*)entry_vkMergeValidationCachesEXT : nullptr;
6663 }
6664 if (!strcmp(name, "vkGetValidationCacheDataEXT"))
6665 {
6666 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_validation_cache");
6667 return hasExt ? (void*)entry_vkGetValidationCacheDataEXT : nullptr;
6668 }
6669#endif
6670#ifdef VK_EXT_external_memory_host
6671 if (!strcmp(name, "vkGetMemoryHostPointerPropertiesEXT"))
6672 {
6673 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_external_memory_host");
6674 return hasExt ? (void*)entry_vkGetMemoryHostPointerPropertiesEXT : nullptr;
6675 }
6676#endif
6677#ifdef VK_AMD_buffer_marker
6678 if (!strcmp(name, "vkCmdWriteBufferMarkerAMD"))
6679 {
6680 bool hasExt = resources->hasInstanceExtension(instance, "VK_AMD_buffer_marker");
6681 return hasExt ? (void*)entry_vkCmdWriteBufferMarkerAMD : nullptr;
6682 }
6683#endif
6684#ifdef VK_NV_device_diagnostic_checkpoints
6685 if (!strcmp(name, "vkCmdSetCheckpointNV"))
6686 {
6687 bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_device_diagnostic_checkpoints");
6688 return hasExt ? (void*)entry_vkCmdSetCheckpointNV : nullptr;
6689 }
6690 if (!strcmp(name, "vkGetQueueCheckpointDataNV"))
6691 {
6692 bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_device_diagnostic_checkpoints");
6693 return hasExt ? (void*)entry_vkGetQueueCheckpointDataNV : nullptr;
6694 }
6695#endif
6696#ifdef VK_GOOGLE_address_space
6697 if (!strcmp(name, "vkMapMemoryIntoAddressSpaceGOOGLE"))
6698 {
6699 bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_address_space");
6700 return hasExt ? (void*)entry_vkMapMemoryIntoAddressSpaceGOOGLE : nullptr;
6701 }
6702#endif
Lingfeng Yangae7e1b32019-02-19 14:07:39 -08006703#ifdef VK_GOOGLE_color_buffer
6704 if (!strcmp(name, "vkRegisterImageColorBufferGOOGLE"))
6705 {
6706 bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_color_buffer");
6707 return hasExt ? (void*)entry_vkRegisterImageColorBufferGOOGLE : nullptr;
6708 }
6709 if (!strcmp(name, "vkRegisterBufferColorBufferGOOGLE"))
6710 {
6711 bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_color_buffer");
6712 return hasExt ? (void*)entry_vkRegisterBufferColorBufferGOOGLE : nullptr;
6713 }
6714#endif
Lingfeng Yang05d5ea32019-03-23 00:12:39 -07006715#ifdef VK_GOOGLE_sized_descriptor_update_template
6716 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplateSizedGOOGLE"))
6717 {
6718 bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_sized_descriptor_update_template");
6719 return hasExt ? (void*)entry_vkUpdateDescriptorSetWithTemplateSizedGOOGLE : nullptr;
6720 }
6721#endif
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08006722 return nullptr;
6723}
6724void* goldfish_vulkan_get_device_proc_address(VkDevice device, const char* name){
6725 auto resources = ResourceTracker::get();
6726 bool has1_1OrHigher = resources->getApiVersionFromDevice(device) >= VK_API_VERSION_1_1;
6727#ifdef VK_VERSION_1_0
6728 if (!strcmp(name, "vkCreateInstance"))
6729 {
6730 return (void*)entry_vkCreateInstance;
6731 }
6732 if (!strcmp(name, "vkDestroyInstance"))
6733 {
6734 return (void*)entry_vkDestroyInstance;
6735 }
6736 if (!strcmp(name, "vkEnumeratePhysicalDevices"))
6737 {
6738 return (void*)entry_vkEnumeratePhysicalDevices;
6739 }
6740 if (!strcmp(name, "vkGetPhysicalDeviceFeatures"))
6741 {
6742 return (void*)entry_vkGetPhysicalDeviceFeatures;
6743 }
6744 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties"))
6745 {
6746 return (void*)entry_vkGetPhysicalDeviceFormatProperties;
6747 }
6748 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties"))
6749 {
6750 return (void*)entry_vkGetPhysicalDeviceImageFormatProperties;
6751 }
6752 if (!strcmp(name, "vkGetPhysicalDeviceProperties"))
6753 {
6754 return (void*)entry_vkGetPhysicalDeviceProperties;
6755 }
6756 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties"))
6757 {
6758 return (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties;
6759 }
6760 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties"))
6761 {
6762 return (void*)entry_vkGetPhysicalDeviceMemoryProperties;
6763 }
6764 if (!strcmp(name, "vkGetInstanceProcAddr"))
6765 {
6766 return (void*)entry_vkGetInstanceProcAddr;
6767 }
6768 if (!strcmp(name, "vkGetDeviceProcAddr"))
6769 {
6770 return (void*)entry_vkGetDeviceProcAddr;
6771 }
6772 if (!strcmp(name, "vkCreateDevice"))
6773 {
6774 return (void*)entry_vkCreateDevice;
6775 }
6776 if (!strcmp(name, "vkDestroyDevice"))
6777 {
6778 return (void*)entry_vkDestroyDevice;
6779 }
6780 if (!strcmp(name, "vkEnumerateInstanceExtensionProperties"))
6781 {
6782 return (void*)entry_vkEnumerateInstanceExtensionProperties;
6783 }
6784 if (!strcmp(name, "vkEnumerateDeviceExtensionProperties"))
6785 {
6786 return (void*)entry_vkEnumerateDeviceExtensionProperties;
6787 }
6788 if (!strcmp(name, "vkEnumerateInstanceLayerProperties"))
6789 {
6790 return (void*)entry_vkEnumerateInstanceLayerProperties;
6791 }
6792 if (!strcmp(name, "vkEnumerateDeviceLayerProperties"))
6793 {
6794 return (void*)entry_vkEnumerateDeviceLayerProperties;
6795 }
6796 if (!strcmp(name, "vkGetDeviceQueue"))
6797 {
6798 return (void*)entry_vkGetDeviceQueue;
6799 }
6800 if (!strcmp(name, "vkQueueSubmit"))
6801 {
6802 return (void*)entry_vkQueueSubmit;
6803 }
6804 if (!strcmp(name, "vkQueueWaitIdle"))
6805 {
6806 return (void*)entry_vkQueueWaitIdle;
6807 }
6808 if (!strcmp(name, "vkDeviceWaitIdle"))
6809 {
6810 return (void*)entry_vkDeviceWaitIdle;
6811 }
6812 if (!strcmp(name, "vkAllocateMemory"))
6813 {
6814 return (void*)entry_vkAllocateMemory;
6815 }
6816 if (!strcmp(name, "vkFreeMemory"))
6817 {
6818 return (void*)entry_vkFreeMemory;
6819 }
6820 if (!strcmp(name, "vkMapMemory"))
6821 {
6822 return (void*)entry_vkMapMemory;
6823 }
6824 if (!strcmp(name, "vkUnmapMemory"))
6825 {
6826 return (void*)entry_vkUnmapMemory;
6827 }
6828 if (!strcmp(name, "vkFlushMappedMemoryRanges"))
6829 {
6830 return (void*)entry_vkFlushMappedMemoryRanges;
6831 }
6832 if (!strcmp(name, "vkInvalidateMappedMemoryRanges"))
6833 {
6834 return (void*)entry_vkInvalidateMappedMemoryRanges;
6835 }
6836 if (!strcmp(name, "vkGetDeviceMemoryCommitment"))
6837 {
6838 return (void*)entry_vkGetDeviceMemoryCommitment;
6839 }
6840 if (!strcmp(name, "vkBindBufferMemory"))
6841 {
6842 return (void*)entry_vkBindBufferMemory;
6843 }
6844 if (!strcmp(name, "vkBindImageMemory"))
6845 {
6846 return (void*)entry_vkBindImageMemory;
6847 }
6848 if (!strcmp(name, "vkGetBufferMemoryRequirements"))
6849 {
6850 return (void*)entry_vkGetBufferMemoryRequirements;
6851 }
6852 if (!strcmp(name, "vkGetImageMemoryRequirements"))
6853 {
6854 return (void*)entry_vkGetImageMemoryRequirements;
6855 }
6856 if (!strcmp(name, "vkGetImageSparseMemoryRequirements"))
6857 {
6858 return (void*)entry_vkGetImageSparseMemoryRequirements;
6859 }
6860 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties"))
6861 {
6862 return (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties;
6863 }
6864 if (!strcmp(name, "vkQueueBindSparse"))
6865 {
6866 return (void*)entry_vkQueueBindSparse;
6867 }
6868 if (!strcmp(name, "vkCreateFence"))
6869 {
6870 return (void*)entry_vkCreateFence;
6871 }
6872 if (!strcmp(name, "vkDestroyFence"))
6873 {
6874 return (void*)entry_vkDestroyFence;
6875 }
6876 if (!strcmp(name, "vkResetFences"))
6877 {
6878 return (void*)entry_vkResetFences;
6879 }
6880 if (!strcmp(name, "vkGetFenceStatus"))
6881 {
6882 return (void*)entry_vkGetFenceStatus;
6883 }
6884 if (!strcmp(name, "vkWaitForFences"))
6885 {
6886 return (void*)entry_vkWaitForFences;
6887 }
6888 if (!strcmp(name, "vkCreateSemaphore"))
6889 {
6890 return (void*)entry_vkCreateSemaphore;
6891 }
6892 if (!strcmp(name, "vkDestroySemaphore"))
6893 {
6894 return (void*)entry_vkDestroySemaphore;
6895 }
6896 if (!strcmp(name, "vkCreateEvent"))
6897 {
6898 return (void*)entry_vkCreateEvent;
6899 }
6900 if (!strcmp(name, "vkDestroyEvent"))
6901 {
6902 return (void*)entry_vkDestroyEvent;
6903 }
6904 if (!strcmp(name, "vkGetEventStatus"))
6905 {
6906 return (void*)entry_vkGetEventStatus;
6907 }
6908 if (!strcmp(name, "vkSetEvent"))
6909 {
6910 return (void*)entry_vkSetEvent;
6911 }
6912 if (!strcmp(name, "vkResetEvent"))
6913 {
6914 return (void*)entry_vkResetEvent;
6915 }
6916 if (!strcmp(name, "vkCreateQueryPool"))
6917 {
6918 return (void*)entry_vkCreateQueryPool;
6919 }
6920 if (!strcmp(name, "vkDestroyQueryPool"))
6921 {
6922 return (void*)entry_vkDestroyQueryPool;
6923 }
6924 if (!strcmp(name, "vkGetQueryPoolResults"))
6925 {
6926 return (void*)entry_vkGetQueryPoolResults;
6927 }
6928 if (!strcmp(name, "vkCreateBuffer"))
6929 {
6930 return (void*)entry_vkCreateBuffer;
6931 }
6932 if (!strcmp(name, "vkDestroyBuffer"))
6933 {
6934 return (void*)entry_vkDestroyBuffer;
6935 }
6936 if (!strcmp(name, "vkCreateBufferView"))
6937 {
6938 return (void*)entry_vkCreateBufferView;
6939 }
6940 if (!strcmp(name, "vkDestroyBufferView"))
6941 {
6942 return (void*)entry_vkDestroyBufferView;
6943 }
6944 if (!strcmp(name, "vkCreateImage"))
6945 {
6946 return (void*)entry_vkCreateImage;
6947 }
6948 if (!strcmp(name, "vkDestroyImage"))
6949 {
6950 return (void*)entry_vkDestroyImage;
6951 }
6952 if (!strcmp(name, "vkGetImageSubresourceLayout"))
6953 {
6954 return (void*)entry_vkGetImageSubresourceLayout;
6955 }
6956 if (!strcmp(name, "vkCreateImageView"))
6957 {
6958 return (void*)entry_vkCreateImageView;
6959 }
6960 if (!strcmp(name, "vkDestroyImageView"))
6961 {
6962 return (void*)entry_vkDestroyImageView;
6963 }
6964 if (!strcmp(name, "vkCreateShaderModule"))
6965 {
6966 return (void*)entry_vkCreateShaderModule;
6967 }
6968 if (!strcmp(name, "vkDestroyShaderModule"))
6969 {
6970 return (void*)entry_vkDestroyShaderModule;
6971 }
6972 if (!strcmp(name, "vkCreatePipelineCache"))
6973 {
6974 return (void*)entry_vkCreatePipelineCache;
6975 }
6976 if (!strcmp(name, "vkDestroyPipelineCache"))
6977 {
6978 return (void*)entry_vkDestroyPipelineCache;
6979 }
6980 if (!strcmp(name, "vkGetPipelineCacheData"))
6981 {
6982 return (void*)entry_vkGetPipelineCacheData;
6983 }
6984 if (!strcmp(name, "vkMergePipelineCaches"))
6985 {
6986 return (void*)entry_vkMergePipelineCaches;
6987 }
6988 if (!strcmp(name, "vkCreateGraphicsPipelines"))
6989 {
6990 return (void*)entry_vkCreateGraphicsPipelines;
6991 }
6992 if (!strcmp(name, "vkCreateComputePipelines"))
6993 {
6994 return (void*)entry_vkCreateComputePipelines;
6995 }
6996 if (!strcmp(name, "vkDestroyPipeline"))
6997 {
6998 return (void*)entry_vkDestroyPipeline;
6999 }
7000 if (!strcmp(name, "vkCreatePipelineLayout"))
7001 {
7002 return (void*)entry_vkCreatePipelineLayout;
7003 }
7004 if (!strcmp(name, "vkDestroyPipelineLayout"))
7005 {
7006 return (void*)entry_vkDestroyPipelineLayout;
7007 }
7008 if (!strcmp(name, "vkCreateSampler"))
7009 {
7010 return (void*)entry_vkCreateSampler;
7011 }
7012 if (!strcmp(name, "vkDestroySampler"))
7013 {
7014 return (void*)entry_vkDestroySampler;
7015 }
7016 if (!strcmp(name, "vkCreateDescriptorSetLayout"))
7017 {
7018 return (void*)entry_vkCreateDescriptorSetLayout;
7019 }
7020 if (!strcmp(name, "vkDestroyDescriptorSetLayout"))
7021 {
7022 return (void*)entry_vkDestroyDescriptorSetLayout;
7023 }
7024 if (!strcmp(name, "vkCreateDescriptorPool"))
7025 {
7026 return (void*)entry_vkCreateDescriptorPool;
7027 }
7028 if (!strcmp(name, "vkDestroyDescriptorPool"))
7029 {
7030 return (void*)entry_vkDestroyDescriptorPool;
7031 }
7032 if (!strcmp(name, "vkResetDescriptorPool"))
7033 {
7034 return (void*)entry_vkResetDescriptorPool;
7035 }
7036 if (!strcmp(name, "vkAllocateDescriptorSets"))
7037 {
7038 return (void*)entry_vkAllocateDescriptorSets;
7039 }
7040 if (!strcmp(name, "vkFreeDescriptorSets"))
7041 {
7042 return (void*)entry_vkFreeDescriptorSets;
7043 }
7044 if (!strcmp(name, "vkUpdateDescriptorSets"))
7045 {
7046 return (void*)entry_vkUpdateDescriptorSets;
7047 }
7048 if (!strcmp(name, "vkCreateFramebuffer"))
7049 {
7050 return (void*)entry_vkCreateFramebuffer;
7051 }
7052 if (!strcmp(name, "vkDestroyFramebuffer"))
7053 {
7054 return (void*)entry_vkDestroyFramebuffer;
7055 }
7056 if (!strcmp(name, "vkCreateRenderPass"))
7057 {
7058 return (void*)entry_vkCreateRenderPass;
7059 }
7060 if (!strcmp(name, "vkDestroyRenderPass"))
7061 {
7062 return (void*)entry_vkDestroyRenderPass;
7063 }
7064 if (!strcmp(name, "vkGetRenderAreaGranularity"))
7065 {
7066 return (void*)entry_vkGetRenderAreaGranularity;
7067 }
7068 if (!strcmp(name, "vkCreateCommandPool"))
7069 {
7070 return (void*)entry_vkCreateCommandPool;
7071 }
7072 if (!strcmp(name, "vkDestroyCommandPool"))
7073 {
7074 return (void*)entry_vkDestroyCommandPool;
7075 }
7076 if (!strcmp(name, "vkResetCommandPool"))
7077 {
7078 return (void*)entry_vkResetCommandPool;
7079 }
7080 if (!strcmp(name, "vkAllocateCommandBuffers"))
7081 {
7082 return (void*)entry_vkAllocateCommandBuffers;
7083 }
7084 if (!strcmp(name, "vkFreeCommandBuffers"))
7085 {
7086 return (void*)entry_vkFreeCommandBuffers;
7087 }
7088 if (!strcmp(name, "vkBeginCommandBuffer"))
7089 {
7090 return (void*)entry_vkBeginCommandBuffer;
7091 }
7092 if (!strcmp(name, "vkEndCommandBuffer"))
7093 {
7094 return (void*)entry_vkEndCommandBuffer;
7095 }
7096 if (!strcmp(name, "vkResetCommandBuffer"))
7097 {
7098 return (void*)entry_vkResetCommandBuffer;
7099 }
7100 if (!strcmp(name, "vkCmdBindPipeline"))
7101 {
7102 return (void*)entry_vkCmdBindPipeline;
7103 }
7104 if (!strcmp(name, "vkCmdSetViewport"))
7105 {
7106 return (void*)entry_vkCmdSetViewport;
7107 }
7108 if (!strcmp(name, "vkCmdSetScissor"))
7109 {
7110 return (void*)entry_vkCmdSetScissor;
7111 }
7112 if (!strcmp(name, "vkCmdSetLineWidth"))
7113 {
7114 return (void*)entry_vkCmdSetLineWidth;
7115 }
7116 if (!strcmp(name, "vkCmdSetDepthBias"))
7117 {
7118 return (void*)entry_vkCmdSetDepthBias;
7119 }
7120 if (!strcmp(name, "vkCmdSetBlendConstants"))
7121 {
7122 return (void*)entry_vkCmdSetBlendConstants;
7123 }
7124 if (!strcmp(name, "vkCmdSetDepthBounds"))
7125 {
7126 return (void*)entry_vkCmdSetDepthBounds;
7127 }
7128 if (!strcmp(name, "vkCmdSetStencilCompareMask"))
7129 {
7130 return (void*)entry_vkCmdSetStencilCompareMask;
7131 }
7132 if (!strcmp(name, "vkCmdSetStencilWriteMask"))
7133 {
7134 return (void*)entry_vkCmdSetStencilWriteMask;
7135 }
7136 if (!strcmp(name, "vkCmdSetStencilReference"))
7137 {
7138 return (void*)entry_vkCmdSetStencilReference;
7139 }
7140 if (!strcmp(name, "vkCmdBindDescriptorSets"))
7141 {
7142 return (void*)entry_vkCmdBindDescriptorSets;
7143 }
7144 if (!strcmp(name, "vkCmdBindIndexBuffer"))
7145 {
7146 return (void*)entry_vkCmdBindIndexBuffer;
7147 }
7148 if (!strcmp(name, "vkCmdBindVertexBuffers"))
7149 {
7150 return (void*)entry_vkCmdBindVertexBuffers;
7151 }
7152 if (!strcmp(name, "vkCmdDraw"))
7153 {
7154 return (void*)entry_vkCmdDraw;
7155 }
7156 if (!strcmp(name, "vkCmdDrawIndexed"))
7157 {
7158 return (void*)entry_vkCmdDrawIndexed;
7159 }
7160 if (!strcmp(name, "vkCmdDrawIndirect"))
7161 {
7162 return (void*)entry_vkCmdDrawIndirect;
7163 }
7164 if (!strcmp(name, "vkCmdDrawIndexedIndirect"))
7165 {
7166 return (void*)entry_vkCmdDrawIndexedIndirect;
7167 }
7168 if (!strcmp(name, "vkCmdDispatch"))
7169 {
7170 return (void*)entry_vkCmdDispatch;
7171 }
7172 if (!strcmp(name, "vkCmdDispatchIndirect"))
7173 {
7174 return (void*)entry_vkCmdDispatchIndirect;
7175 }
7176 if (!strcmp(name, "vkCmdCopyBuffer"))
7177 {
7178 return (void*)entry_vkCmdCopyBuffer;
7179 }
7180 if (!strcmp(name, "vkCmdCopyImage"))
7181 {
7182 return (void*)entry_vkCmdCopyImage;
7183 }
7184 if (!strcmp(name, "vkCmdBlitImage"))
7185 {
7186 return (void*)entry_vkCmdBlitImage;
7187 }
7188 if (!strcmp(name, "vkCmdCopyBufferToImage"))
7189 {
7190 return (void*)entry_vkCmdCopyBufferToImage;
7191 }
7192 if (!strcmp(name, "vkCmdCopyImageToBuffer"))
7193 {
7194 return (void*)entry_vkCmdCopyImageToBuffer;
7195 }
7196 if (!strcmp(name, "vkCmdUpdateBuffer"))
7197 {
7198 return (void*)entry_vkCmdUpdateBuffer;
7199 }
7200 if (!strcmp(name, "vkCmdFillBuffer"))
7201 {
7202 return (void*)entry_vkCmdFillBuffer;
7203 }
7204 if (!strcmp(name, "vkCmdClearColorImage"))
7205 {
7206 return (void*)entry_vkCmdClearColorImage;
7207 }
7208 if (!strcmp(name, "vkCmdClearDepthStencilImage"))
7209 {
7210 return (void*)entry_vkCmdClearDepthStencilImage;
7211 }
7212 if (!strcmp(name, "vkCmdClearAttachments"))
7213 {
7214 return (void*)entry_vkCmdClearAttachments;
7215 }
7216 if (!strcmp(name, "vkCmdResolveImage"))
7217 {
7218 return (void*)entry_vkCmdResolveImage;
7219 }
7220 if (!strcmp(name, "vkCmdSetEvent"))
7221 {
7222 return (void*)entry_vkCmdSetEvent;
7223 }
7224 if (!strcmp(name, "vkCmdResetEvent"))
7225 {
7226 return (void*)entry_vkCmdResetEvent;
7227 }
7228 if (!strcmp(name, "vkCmdWaitEvents"))
7229 {
7230 return (void*)entry_vkCmdWaitEvents;
7231 }
7232 if (!strcmp(name, "vkCmdPipelineBarrier"))
7233 {
7234 return (void*)entry_vkCmdPipelineBarrier;
7235 }
7236 if (!strcmp(name, "vkCmdBeginQuery"))
7237 {
7238 return (void*)entry_vkCmdBeginQuery;
7239 }
7240 if (!strcmp(name, "vkCmdEndQuery"))
7241 {
7242 return (void*)entry_vkCmdEndQuery;
7243 }
7244 if (!strcmp(name, "vkCmdResetQueryPool"))
7245 {
7246 return (void*)entry_vkCmdResetQueryPool;
7247 }
7248 if (!strcmp(name, "vkCmdWriteTimestamp"))
7249 {
7250 return (void*)entry_vkCmdWriteTimestamp;
7251 }
7252 if (!strcmp(name, "vkCmdCopyQueryPoolResults"))
7253 {
7254 return (void*)entry_vkCmdCopyQueryPoolResults;
7255 }
7256 if (!strcmp(name, "vkCmdPushConstants"))
7257 {
7258 return (void*)entry_vkCmdPushConstants;
7259 }
7260 if (!strcmp(name, "vkCmdBeginRenderPass"))
7261 {
7262 return (void*)entry_vkCmdBeginRenderPass;
7263 }
7264 if (!strcmp(name, "vkCmdNextSubpass"))
7265 {
7266 return (void*)entry_vkCmdNextSubpass;
7267 }
7268 if (!strcmp(name, "vkCmdEndRenderPass"))
7269 {
7270 return (void*)entry_vkCmdEndRenderPass;
7271 }
7272 if (!strcmp(name, "vkCmdExecuteCommands"))
7273 {
7274 return (void*)entry_vkCmdExecuteCommands;
7275 }
7276#endif
7277#ifdef VK_VERSION_1_1
7278 if (!strcmp(name, "vkEnumerateInstanceVersion"))
7279 {
7280 return has1_1OrHigher ? (void*)entry_vkEnumerateInstanceVersion : nullptr;
7281 }
7282 if (!strcmp(name, "vkBindBufferMemory2"))
7283 {
7284 return has1_1OrHigher ? (void*)entry_vkBindBufferMemory2 : nullptr;
7285 }
7286 if (!strcmp(name, "vkBindImageMemory2"))
7287 {
7288 return has1_1OrHigher ? (void*)entry_vkBindImageMemory2 : nullptr;
7289 }
7290 if (!strcmp(name, "vkGetDeviceGroupPeerMemoryFeatures"))
7291 {
7292 return has1_1OrHigher ? (void*)entry_vkGetDeviceGroupPeerMemoryFeatures : nullptr;
7293 }
7294 if (!strcmp(name, "vkCmdSetDeviceMask"))
7295 {
7296 return has1_1OrHigher ? (void*)entry_vkCmdSetDeviceMask : nullptr;
7297 }
7298 if (!strcmp(name, "vkCmdDispatchBase"))
7299 {
7300 return has1_1OrHigher ? (void*)entry_vkCmdDispatchBase : nullptr;
7301 }
7302 if (!strcmp(name, "vkEnumeratePhysicalDeviceGroups"))
7303 {
7304 return nullptr;
7305 }
7306 if (!strcmp(name, "vkGetImageMemoryRequirements2"))
7307 {
7308 return has1_1OrHigher ? (void*)entry_vkGetImageMemoryRequirements2 : nullptr;
7309 }
7310 if (!strcmp(name, "vkGetBufferMemoryRequirements2"))
7311 {
7312 return has1_1OrHigher ? (void*)entry_vkGetBufferMemoryRequirements2 : nullptr;
7313 }
7314 if (!strcmp(name, "vkGetImageSparseMemoryRequirements2"))
7315 {
7316 return has1_1OrHigher ? (void*)entry_vkGetImageSparseMemoryRequirements2 : nullptr;
7317 }
7318 if (!strcmp(name, "vkGetPhysicalDeviceFeatures2"))
7319 {
7320 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceFeatures2 : nullptr;
7321 }
7322 if (!strcmp(name, "vkGetPhysicalDeviceProperties2"))
7323 {
7324 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceProperties2 : nullptr;
7325 }
7326 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties2"))
7327 {
7328 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceFormatProperties2 : nullptr;
7329 }
7330 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties2"))
7331 {
7332 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceImageFormatProperties2 : nullptr;
7333 }
7334 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties2"))
7335 {
7336 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties2 : nullptr;
7337 }
7338 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties2"))
7339 {
7340 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceMemoryProperties2 : nullptr;
7341 }
7342 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties2"))
7343 {
7344 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties2 : nullptr;
7345 }
7346 if (!strcmp(name, "vkTrimCommandPool"))
7347 {
7348 return has1_1OrHigher ? (void*)entry_vkTrimCommandPool : nullptr;
7349 }
7350 if (!strcmp(name, "vkGetDeviceQueue2"))
7351 {
7352 return has1_1OrHigher ? (void*)entry_vkGetDeviceQueue2 : nullptr;
7353 }
7354 if (!strcmp(name, "vkCreateSamplerYcbcrConversion"))
7355 {
7356 return has1_1OrHigher ? (void*)entry_vkCreateSamplerYcbcrConversion : nullptr;
7357 }
7358 if (!strcmp(name, "vkDestroySamplerYcbcrConversion"))
7359 {
7360 return has1_1OrHigher ? (void*)entry_vkDestroySamplerYcbcrConversion : nullptr;
7361 }
7362 if (!strcmp(name, "vkCreateDescriptorUpdateTemplate"))
7363 {
7364 return has1_1OrHigher ? (void*)entry_vkCreateDescriptorUpdateTemplate : nullptr;
7365 }
7366 if (!strcmp(name, "vkDestroyDescriptorUpdateTemplate"))
7367 {
7368 return has1_1OrHigher ? (void*)entry_vkDestroyDescriptorUpdateTemplate : nullptr;
7369 }
7370 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplate"))
7371 {
7372 return has1_1OrHigher ? (void*)entry_vkUpdateDescriptorSetWithTemplate : nullptr;
7373 }
7374 if (!strcmp(name, "vkGetPhysicalDeviceExternalBufferProperties"))
7375 {
7376 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceExternalBufferProperties : nullptr;
7377 }
7378 if (!strcmp(name, "vkGetPhysicalDeviceExternalFenceProperties"))
7379 {
7380 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceExternalFenceProperties : nullptr;
7381 }
7382 if (!strcmp(name, "vkGetPhysicalDeviceExternalSemaphoreProperties"))
7383 {
7384 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceExternalSemaphoreProperties : nullptr;
7385 }
7386 if (!strcmp(name, "vkGetDescriptorSetLayoutSupport"))
7387 {
7388 return has1_1OrHigher ? (void*)entry_vkGetDescriptorSetLayoutSupport : nullptr;
7389 }
7390#endif
7391#ifdef VK_KHR_surface
7392 if (!strcmp(name, "vkDestroySurfaceKHR"))
7393 {
7394 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_surface");
7395 return hasExt ? (void*)entry_vkDestroySurfaceKHR : nullptr;
7396 }
7397 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceSupportKHR"))
7398 {
7399 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_surface");
7400 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceSupportKHR : nullptr;
7401 }
7402 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR"))
7403 {
7404 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_surface");
7405 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceCapabilitiesKHR : nullptr;
7406 }
7407 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceFormatsKHR"))
7408 {
7409 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_surface");
7410 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceFormatsKHR : nullptr;
7411 }
7412 if (!strcmp(name, "vkGetPhysicalDeviceSurfacePresentModesKHR"))
7413 {
7414 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_surface");
7415 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfacePresentModesKHR : nullptr;
7416 }
7417#endif
7418#ifdef VK_KHR_swapchain
7419 if (!strcmp(name, "vkCreateSwapchainKHR"))
7420 {
7421 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7422 return hasExt ? (void*)entry_vkCreateSwapchainKHR : nullptr;
7423 }
7424 if (!strcmp(name, "vkDestroySwapchainKHR"))
7425 {
7426 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7427 return hasExt ? (void*)entry_vkDestroySwapchainKHR : nullptr;
7428 }
7429 if (!strcmp(name, "vkGetSwapchainImagesKHR"))
7430 {
7431 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7432 return hasExt ? (void*)entry_vkGetSwapchainImagesKHR : nullptr;
7433 }
7434 if (!strcmp(name, "vkAcquireNextImageKHR"))
7435 {
7436 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7437 return hasExt ? (void*)entry_vkAcquireNextImageKHR : nullptr;
7438 }
7439 if (!strcmp(name, "vkQueuePresentKHR"))
7440 {
7441 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7442 return hasExt ? (void*)entry_vkQueuePresentKHR : nullptr;
7443 }
7444 if (!strcmp(name, "vkGetDeviceGroupPresentCapabilitiesKHR"))
7445 {
7446 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7447 return hasExt ? (void*)entry_vkGetDeviceGroupPresentCapabilitiesKHR : nullptr;
7448 }
7449 if (!strcmp(name, "vkGetDeviceGroupSurfacePresentModesKHR"))
7450 {
7451 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7452 return hasExt ? (void*)entry_vkGetDeviceGroupSurfacePresentModesKHR : nullptr;
7453 }
7454 if (!strcmp(name, "vkGetPhysicalDevicePresentRectanglesKHR"))
7455 {
7456 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7457 return hasExt ? (void*)entry_vkGetPhysicalDevicePresentRectanglesKHR : nullptr;
7458 }
7459 if (!strcmp(name, "vkAcquireNextImage2KHR"))
7460 {
7461 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7462 return hasExt ? (void*)entry_vkAcquireNextImage2KHR : nullptr;
7463 }
7464#endif
7465#ifdef VK_KHR_display
7466 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPropertiesKHR"))
7467 {
7468 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
7469 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayPropertiesKHR : nullptr;
7470 }
7471 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR"))
7472 {
7473 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
7474 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayPlanePropertiesKHR : nullptr;
7475 }
7476 if (!strcmp(name, "vkGetDisplayPlaneSupportedDisplaysKHR"))
7477 {
7478 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
7479 return hasExt ? (void*)entry_vkGetDisplayPlaneSupportedDisplaysKHR : nullptr;
7480 }
7481 if (!strcmp(name, "vkGetDisplayModePropertiesKHR"))
7482 {
7483 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
7484 return hasExt ? (void*)entry_vkGetDisplayModePropertiesKHR : nullptr;
7485 }
7486 if (!strcmp(name, "vkCreateDisplayModeKHR"))
7487 {
7488 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
7489 return hasExt ? (void*)entry_vkCreateDisplayModeKHR : nullptr;
7490 }
7491 if (!strcmp(name, "vkGetDisplayPlaneCapabilitiesKHR"))
7492 {
7493 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
7494 return hasExt ? (void*)entry_vkGetDisplayPlaneCapabilitiesKHR : nullptr;
7495 }
7496 if (!strcmp(name, "vkCreateDisplayPlaneSurfaceKHR"))
7497 {
7498 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
7499 return hasExt ? (void*)entry_vkCreateDisplayPlaneSurfaceKHR : nullptr;
7500 }
7501#endif
7502#ifdef VK_KHR_display_swapchain
7503 if (!strcmp(name, "vkCreateSharedSwapchainsKHR"))
7504 {
7505 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display_swapchain");
7506 return hasExt ? (void*)entry_vkCreateSharedSwapchainsKHR : nullptr;
7507 }
7508#endif
7509#ifdef VK_KHR_xlib_surface
7510 if (!strcmp(name, "vkCreateXlibSurfaceKHR"))
7511 {
7512 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_xlib_surface");
7513 return hasExt ? (void*)entry_vkCreateXlibSurfaceKHR : nullptr;
7514 }
7515 if (!strcmp(name, "vkGetPhysicalDeviceXlibPresentationSupportKHR"))
7516 {
7517 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_xlib_surface");
7518 return hasExt ? (void*)entry_vkGetPhysicalDeviceXlibPresentationSupportKHR : nullptr;
7519 }
7520#endif
7521#ifdef VK_KHR_xcb_surface
7522 if (!strcmp(name, "vkCreateXcbSurfaceKHR"))
7523 {
7524 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_xcb_surface");
7525 return hasExt ? (void*)entry_vkCreateXcbSurfaceKHR : nullptr;
7526 }
7527 if (!strcmp(name, "vkGetPhysicalDeviceXcbPresentationSupportKHR"))
7528 {
7529 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_xcb_surface");
7530 return hasExt ? (void*)entry_vkGetPhysicalDeviceXcbPresentationSupportKHR : nullptr;
7531 }
7532#endif
7533#ifdef VK_KHR_wayland_surface
7534 if (!strcmp(name, "vkCreateWaylandSurfaceKHR"))
7535 {
7536 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_wayland_surface");
7537 return hasExt ? (void*)entry_vkCreateWaylandSurfaceKHR : nullptr;
7538 }
7539 if (!strcmp(name, "vkGetPhysicalDeviceWaylandPresentationSupportKHR"))
7540 {
7541 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_wayland_surface");
7542 return hasExt ? (void*)entry_vkGetPhysicalDeviceWaylandPresentationSupportKHR : nullptr;
7543 }
7544#endif
7545#ifdef VK_KHR_mir_surface
7546 if (!strcmp(name, "vkCreateMirSurfaceKHR"))
7547 {
7548 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_mir_surface");
7549 return hasExt ? (void*)entry_vkCreateMirSurfaceKHR : nullptr;
7550 }
7551 if (!strcmp(name, "vkGetPhysicalDeviceMirPresentationSupportKHR"))
7552 {
7553 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_mir_surface");
7554 return hasExt ? (void*)entry_vkGetPhysicalDeviceMirPresentationSupportKHR : nullptr;
7555 }
7556#endif
7557#ifdef VK_KHR_android_surface
7558 if (!strcmp(name, "vkCreateAndroidSurfaceKHR"))
7559 {
7560 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_android_surface");
7561 return hasExt ? (void*)entry_vkCreateAndroidSurfaceKHR : nullptr;
7562 }
7563#endif
7564#ifdef VK_KHR_win32_surface
7565 if (!strcmp(name, "vkCreateWin32SurfaceKHR"))
7566 {
7567 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_win32_surface");
7568 return hasExt ? (void*)entry_vkCreateWin32SurfaceKHR : nullptr;
7569 }
7570 if (!strcmp(name, "vkGetPhysicalDeviceWin32PresentationSupportKHR"))
7571 {
7572 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_win32_surface");
7573 return hasExt ? (void*)entry_vkGetPhysicalDeviceWin32PresentationSupportKHR : nullptr;
7574 }
7575#endif
7576#ifdef VK_KHR_get_physical_device_properties2
7577 if (!strcmp(name, "vkGetPhysicalDeviceFeatures2KHR"))
7578 {
7579 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
7580 return hasExt ? (void*)entry_vkGetPhysicalDeviceFeatures2KHR : nullptr;
7581 }
7582 if (!strcmp(name, "vkGetPhysicalDeviceProperties2KHR"))
7583 {
7584 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
7585 return hasExt ? (void*)entry_vkGetPhysicalDeviceProperties2KHR : nullptr;
7586 }
7587 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties2KHR"))
7588 {
7589 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
7590 return hasExt ? (void*)entry_vkGetPhysicalDeviceFormatProperties2KHR : nullptr;
7591 }
7592 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties2KHR"))
7593 {
7594 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
7595 return hasExt ? (void*)entry_vkGetPhysicalDeviceImageFormatProperties2KHR : nullptr;
7596 }
7597 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties2KHR"))
7598 {
7599 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
7600 return hasExt ? (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties2KHR : nullptr;
7601 }
7602 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties2KHR"))
7603 {
7604 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
7605 return hasExt ? (void*)entry_vkGetPhysicalDeviceMemoryProperties2KHR : nullptr;
7606 }
7607 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR"))
7608 {
7609 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
7610 return hasExt ? (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties2KHR : nullptr;
7611 }
7612#endif
7613#ifdef VK_KHR_device_group
7614 if (!strcmp(name, "vkGetDeviceGroupPeerMemoryFeaturesKHR"))
7615 {
7616 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_device_group");
7617 return hasExt ? (void*)entry_vkGetDeviceGroupPeerMemoryFeaturesKHR : nullptr;
7618 }
7619 if (!strcmp(name, "vkCmdSetDeviceMaskKHR"))
7620 {
7621 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_device_group");
7622 return hasExt ? (void*)entry_vkCmdSetDeviceMaskKHR : nullptr;
7623 }
7624 if (!strcmp(name, "vkCmdDispatchBaseKHR"))
7625 {
7626 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_device_group");
7627 return hasExt ? (void*)entry_vkCmdDispatchBaseKHR : nullptr;
7628 }
7629#endif
7630#ifdef VK_KHR_maintenance1
7631 if (!strcmp(name, "vkTrimCommandPoolKHR"))
7632 {
7633 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_maintenance1");
7634 return hasExt ? (void*)entry_vkTrimCommandPoolKHR : nullptr;
7635 }
7636#endif
7637#ifdef VK_KHR_device_group_creation
7638 if (!strcmp(name, "vkEnumeratePhysicalDeviceGroupsKHR"))
7639 {
7640 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_device_group_creation");
7641 return hasExt ? (void*)entry_vkEnumeratePhysicalDeviceGroupsKHR : nullptr;
7642 }
7643#endif
7644#ifdef VK_KHR_external_memory_capabilities
7645 if (!strcmp(name, "vkGetPhysicalDeviceExternalBufferPropertiesKHR"))
7646 {
7647 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_memory_capabilities");
7648 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalBufferPropertiesKHR : nullptr;
7649 }
7650#endif
7651#ifdef VK_KHR_external_memory_win32
7652 if (!strcmp(name, "vkGetMemoryWin32HandleKHR"))
7653 {
7654 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_memory_win32");
7655 return hasExt ? (void*)entry_vkGetMemoryWin32HandleKHR : nullptr;
7656 }
7657 if (!strcmp(name, "vkGetMemoryWin32HandlePropertiesKHR"))
7658 {
7659 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_memory_win32");
7660 return hasExt ? (void*)entry_vkGetMemoryWin32HandlePropertiesKHR : nullptr;
7661 }
7662#endif
7663#ifdef VK_KHR_external_memory_fd
7664 if (!strcmp(name, "vkGetMemoryFdKHR"))
7665 {
7666 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_memory_fd");
7667 return hasExt ? (void*)entry_vkGetMemoryFdKHR : nullptr;
7668 }
7669 if (!strcmp(name, "vkGetMemoryFdPropertiesKHR"))
7670 {
7671 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_memory_fd");
7672 return hasExt ? (void*)entry_vkGetMemoryFdPropertiesKHR : nullptr;
7673 }
7674#endif
7675#ifdef VK_KHR_external_semaphore_capabilities
7676 if (!strcmp(name, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR"))
7677 {
7678 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_semaphore_capabilities");
7679 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR : nullptr;
7680 }
7681#endif
7682#ifdef VK_KHR_external_semaphore_win32
7683 if (!strcmp(name, "vkImportSemaphoreWin32HandleKHR"))
7684 {
7685 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_semaphore_win32");
7686 return hasExt ? (void*)entry_vkImportSemaphoreWin32HandleKHR : nullptr;
7687 }
7688 if (!strcmp(name, "vkGetSemaphoreWin32HandleKHR"))
7689 {
7690 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_semaphore_win32");
7691 return hasExt ? (void*)entry_vkGetSemaphoreWin32HandleKHR : nullptr;
7692 }
7693#endif
7694#ifdef VK_KHR_external_semaphore_fd
7695 if (!strcmp(name, "vkImportSemaphoreFdKHR"))
7696 {
7697 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_semaphore_fd");
7698 return hasExt ? (void*)entry_vkImportSemaphoreFdKHR : nullptr;
7699 }
7700 if (!strcmp(name, "vkGetSemaphoreFdKHR"))
7701 {
7702 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_semaphore_fd");
7703 return hasExt ? (void*)entry_vkGetSemaphoreFdKHR : nullptr;
7704 }
7705#endif
7706#ifdef VK_KHR_push_descriptor
7707 if (!strcmp(name, "vkCmdPushDescriptorSetKHR"))
7708 {
7709 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_push_descriptor");
7710 return hasExt ? (void*)entry_vkCmdPushDescriptorSetKHR : nullptr;
7711 }
7712 if (!strcmp(name, "vkCmdPushDescriptorSetWithTemplateKHR"))
7713 {
7714 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_push_descriptor");
7715 return hasExt ? (void*)entry_vkCmdPushDescriptorSetWithTemplateKHR : nullptr;
7716 }
7717#endif
7718#ifdef VK_KHR_descriptor_update_template
7719 if (!strcmp(name, "vkCreateDescriptorUpdateTemplateKHR"))
7720 {
7721 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_descriptor_update_template");
7722 return hasExt ? (void*)entry_vkCreateDescriptorUpdateTemplateKHR : nullptr;
7723 }
7724 if (!strcmp(name, "vkDestroyDescriptorUpdateTemplateKHR"))
7725 {
7726 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_descriptor_update_template");
7727 return hasExt ? (void*)entry_vkDestroyDescriptorUpdateTemplateKHR : nullptr;
7728 }
7729 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplateKHR"))
7730 {
7731 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_descriptor_update_template");
7732 return hasExt ? (void*)entry_vkUpdateDescriptorSetWithTemplateKHR : nullptr;
7733 }
7734#endif
7735#ifdef VK_KHR_create_renderpass2
7736 if (!strcmp(name, "vkCreateRenderPass2KHR"))
7737 {
7738 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_create_renderpass2");
7739 return hasExt ? (void*)entry_vkCreateRenderPass2KHR : nullptr;
7740 }
7741 if (!strcmp(name, "vkCmdBeginRenderPass2KHR"))
7742 {
7743 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_create_renderpass2");
7744 return hasExt ? (void*)entry_vkCmdBeginRenderPass2KHR : nullptr;
7745 }
7746 if (!strcmp(name, "vkCmdNextSubpass2KHR"))
7747 {
7748 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_create_renderpass2");
7749 return hasExt ? (void*)entry_vkCmdNextSubpass2KHR : nullptr;
7750 }
7751 if (!strcmp(name, "vkCmdEndRenderPass2KHR"))
7752 {
7753 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_create_renderpass2");
7754 return hasExt ? (void*)entry_vkCmdEndRenderPass2KHR : nullptr;
7755 }
7756#endif
7757#ifdef VK_KHR_shared_presentable_image
7758 if (!strcmp(name, "vkGetSwapchainStatusKHR"))
7759 {
7760 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_shared_presentable_image");
7761 return hasExt ? (void*)entry_vkGetSwapchainStatusKHR : nullptr;
7762 }
7763#endif
7764#ifdef VK_KHR_external_fence_capabilities
7765 if (!strcmp(name, "vkGetPhysicalDeviceExternalFencePropertiesKHR"))
7766 {
7767 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_fence_capabilities");
7768 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalFencePropertiesKHR : nullptr;
7769 }
7770#endif
7771#ifdef VK_KHR_external_fence_win32
7772 if (!strcmp(name, "vkImportFenceWin32HandleKHR"))
7773 {
7774 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_fence_win32");
7775 return hasExt ? (void*)entry_vkImportFenceWin32HandleKHR : nullptr;
7776 }
7777 if (!strcmp(name, "vkGetFenceWin32HandleKHR"))
7778 {
7779 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_fence_win32");
7780 return hasExt ? (void*)entry_vkGetFenceWin32HandleKHR : nullptr;
7781 }
7782#endif
7783#ifdef VK_KHR_external_fence_fd
7784 if (!strcmp(name, "vkImportFenceFdKHR"))
7785 {
7786 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_fence_fd");
7787 return hasExt ? (void*)entry_vkImportFenceFdKHR : nullptr;
7788 }
7789 if (!strcmp(name, "vkGetFenceFdKHR"))
7790 {
7791 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_fence_fd");
7792 return hasExt ? (void*)entry_vkGetFenceFdKHR : nullptr;
7793 }
7794#endif
7795#ifdef VK_KHR_get_surface_capabilities2
7796 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2KHR"))
7797 {
7798 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_surface_capabilities2");
7799 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceCapabilities2KHR : nullptr;
7800 }
7801 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceFormats2KHR"))
7802 {
7803 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_surface_capabilities2");
7804 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceFormats2KHR : nullptr;
7805 }
7806#endif
7807#ifdef VK_KHR_get_display_properties2
7808 if (!strcmp(name, "vkGetPhysicalDeviceDisplayProperties2KHR"))
7809 {
7810 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_display_properties2");
7811 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayProperties2KHR : nullptr;
7812 }
7813 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR"))
7814 {
7815 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_display_properties2");
7816 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayPlaneProperties2KHR : nullptr;
7817 }
7818 if (!strcmp(name, "vkGetDisplayModeProperties2KHR"))
7819 {
7820 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_display_properties2");
7821 return hasExt ? (void*)entry_vkGetDisplayModeProperties2KHR : nullptr;
7822 }
7823 if (!strcmp(name, "vkGetDisplayPlaneCapabilities2KHR"))
7824 {
7825 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_display_properties2");
7826 return hasExt ? (void*)entry_vkGetDisplayPlaneCapabilities2KHR : nullptr;
7827 }
7828#endif
7829#ifdef VK_KHR_get_memory_requirements2
7830 if (!strcmp(name, "vkGetImageMemoryRequirements2KHR"))
7831 {
7832 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_memory_requirements2");
7833 return hasExt ? (void*)entry_vkGetImageMemoryRequirements2KHR : nullptr;
7834 }
7835 if (!strcmp(name, "vkGetBufferMemoryRequirements2KHR"))
7836 {
7837 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_memory_requirements2");
7838 return hasExt ? (void*)entry_vkGetBufferMemoryRequirements2KHR : nullptr;
7839 }
7840 if (!strcmp(name, "vkGetImageSparseMemoryRequirements2KHR"))
7841 {
7842 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_memory_requirements2");
7843 return hasExt ? (void*)entry_vkGetImageSparseMemoryRequirements2KHR : nullptr;
7844 }
7845#endif
7846#ifdef VK_KHR_sampler_ycbcr_conversion
7847 if (!strcmp(name, "vkCreateSamplerYcbcrConversionKHR"))
7848 {
7849 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_sampler_ycbcr_conversion");
7850 return hasExt ? (void*)entry_vkCreateSamplerYcbcrConversionKHR : nullptr;
7851 }
7852 if (!strcmp(name, "vkDestroySamplerYcbcrConversionKHR"))
7853 {
7854 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_sampler_ycbcr_conversion");
7855 return hasExt ? (void*)entry_vkDestroySamplerYcbcrConversionKHR : nullptr;
7856 }
7857#endif
7858#ifdef VK_KHR_bind_memory2
7859 if (!strcmp(name, "vkBindBufferMemory2KHR"))
7860 {
7861 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_bind_memory2");
7862 return hasExt ? (void*)entry_vkBindBufferMemory2KHR : nullptr;
7863 }
7864 if (!strcmp(name, "vkBindImageMemory2KHR"))
7865 {
7866 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_bind_memory2");
7867 return hasExt ? (void*)entry_vkBindImageMemory2KHR : nullptr;
7868 }
7869#endif
7870#ifdef VK_KHR_maintenance3
7871 if (!strcmp(name, "vkGetDescriptorSetLayoutSupportKHR"))
7872 {
7873 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_maintenance3");
7874 return hasExt ? (void*)entry_vkGetDescriptorSetLayoutSupportKHR : nullptr;
7875 }
7876#endif
7877#ifdef VK_KHR_draw_indirect_count
7878 if (!strcmp(name, "vkCmdDrawIndirectCountKHR"))
7879 {
7880 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_draw_indirect_count");
7881 return hasExt ? (void*)entry_vkCmdDrawIndirectCountKHR : nullptr;
7882 }
7883 if (!strcmp(name, "vkCmdDrawIndexedIndirectCountKHR"))
7884 {
7885 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_draw_indirect_count");
7886 return hasExt ? (void*)entry_vkCmdDrawIndexedIndirectCountKHR : nullptr;
7887 }
7888#endif
7889#ifdef VK_ANDROID_native_buffer
7890 if (!strcmp(name, "vkGetSwapchainGrallocUsageANDROID"))
7891 {
7892 bool hasExt = resources->hasDeviceExtension(device, "VK_ANDROID_native_buffer");
7893 return hasExt ? (void*)entry_vkGetSwapchainGrallocUsageANDROID : nullptr;
7894 }
7895 if (!strcmp(name, "vkAcquireImageANDROID"))
7896 {
7897 bool hasExt = resources->hasDeviceExtension(device, "VK_ANDROID_native_buffer");
7898 return hasExt ? (void*)entry_vkAcquireImageANDROID : nullptr;
7899 }
7900 if (!strcmp(name, "vkQueueSignalReleaseImageANDROID"))
7901 {
7902 bool hasExt = resources->hasDeviceExtension(device, "VK_ANDROID_native_buffer");
7903 return hasExt ? (void*)entry_vkQueueSignalReleaseImageANDROID : nullptr;
7904 }
7905#endif
7906#ifdef VK_EXT_debug_report
7907 if (!strcmp(name, "vkCreateDebugReportCallbackEXT"))
7908 {
7909 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_report");
7910 return hasExt ? (void*)entry_vkCreateDebugReportCallbackEXT : nullptr;
7911 }
7912 if (!strcmp(name, "vkDestroyDebugReportCallbackEXT"))
7913 {
7914 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_report");
7915 return hasExt ? (void*)entry_vkDestroyDebugReportCallbackEXT : nullptr;
7916 }
7917 if (!strcmp(name, "vkDebugReportMessageEXT"))
7918 {
7919 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_report");
7920 return hasExt ? (void*)entry_vkDebugReportMessageEXT : nullptr;
7921 }
7922#endif
7923#ifdef VK_EXT_debug_marker
7924 if (!strcmp(name, "vkDebugMarkerSetObjectTagEXT"))
7925 {
7926 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_marker");
7927 return hasExt ? (void*)entry_vkDebugMarkerSetObjectTagEXT : nullptr;
7928 }
7929 if (!strcmp(name, "vkDebugMarkerSetObjectNameEXT"))
7930 {
7931 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_marker");
7932 return hasExt ? (void*)entry_vkDebugMarkerSetObjectNameEXT : nullptr;
7933 }
7934 if (!strcmp(name, "vkCmdDebugMarkerBeginEXT"))
7935 {
7936 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_marker");
7937 return hasExt ? (void*)entry_vkCmdDebugMarkerBeginEXT : nullptr;
7938 }
7939 if (!strcmp(name, "vkCmdDebugMarkerEndEXT"))
7940 {
7941 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_marker");
7942 return hasExt ? (void*)entry_vkCmdDebugMarkerEndEXT : nullptr;
7943 }
7944 if (!strcmp(name, "vkCmdDebugMarkerInsertEXT"))
7945 {
7946 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_marker");
7947 return hasExt ? (void*)entry_vkCmdDebugMarkerInsertEXT : nullptr;
7948 }
7949#endif
7950#ifdef VK_AMD_draw_indirect_count
7951 if (!strcmp(name, "vkCmdDrawIndirectCountAMD"))
7952 {
7953 bool hasExt = resources->hasDeviceExtension(device, "VK_AMD_draw_indirect_count");
7954 return hasExt ? (void*)entry_vkCmdDrawIndirectCountAMD : nullptr;
7955 }
7956 if (!strcmp(name, "vkCmdDrawIndexedIndirectCountAMD"))
7957 {
7958 bool hasExt = resources->hasDeviceExtension(device, "VK_AMD_draw_indirect_count");
7959 return hasExt ? (void*)entry_vkCmdDrawIndexedIndirectCountAMD : nullptr;
7960 }
7961#endif
7962#ifdef VK_AMD_shader_info
7963 if (!strcmp(name, "vkGetShaderInfoAMD"))
7964 {
7965 bool hasExt = resources->hasDeviceExtension(device, "VK_AMD_shader_info");
7966 return hasExt ? (void*)entry_vkGetShaderInfoAMD : nullptr;
7967 }
7968#endif
7969#ifdef VK_NV_external_memory_capabilities
7970 if (!strcmp(name, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV"))
7971 {
7972 bool hasExt = resources->hasDeviceExtension(device, "VK_NV_external_memory_capabilities");
7973 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalImageFormatPropertiesNV : nullptr;
7974 }
7975#endif
7976#ifdef VK_NV_external_memory_win32
7977 if (!strcmp(name, "vkGetMemoryWin32HandleNV"))
7978 {
7979 bool hasExt = resources->hasDeviceExtension(device, "VK_NV_external_memory_win32");
7980 return hasExt ? (void*)entry_vkGetMemoryWin32HandleNV : nullptr;
7981 }
7982#endif
7983#ifdef VK_NN_vi_surface
7984 if (!strcmp(name, "vkCreateViSurfaceNN"))
7985 {
7986 bool hasExt = resources->hasDeviceExtension(device, "VK_NN_vi_surface");
7987 return hasExt ? (void*)entry_vkCreateViSurfaceNN : nullptr;
7988 }
7989#endif
7990#ifdef VK_EXT_conditional_rendering
7991 if (!strcmp(name, "vkCmdBeginConditionalRenderingEXT"))
7992 {
7993 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_conditional_rendering");
7994 return hasExt ? (void*)entry_vkCmdBeginConditionalRenderingEXT : nullptr;
7995 }
7996 if (!strcmp(name, "vkCmdEndConditionalRenderingEXT"))
7997 {
7998 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_conditional_rendering");
7999 return hasExt ? (void*)entry_vkCmdEndConditionalRenderingEXT : nullptr;
8000 }
8001#endif
8002#ifdef VK_NVX_device_generated_commands
8003 if (!strcmp(name, "vkCmdProcessCommandsNVX"))
8004 {
8005 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
8006 return hasExt ? (void*)entry_vkCmdProcessCommandsNVX : nullptr;
8007 }
8008 if (!strcmp(name, "vkCmdReserveSpaceForCommandsNVX"))
8009 {
8010 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
8011 return hasExt ? (void*)entry_vkCmdReserveSpaceForCommandsNVX : nullptr;
8012 }
8013 if (!strcmp(name, "vkCreateIndirectCommandsLayoutNVX"))
8014 {
8015 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
8016 return hasExt ? (void*)entry_vkCreateIndirectCommandsLayoutNVX : nullptr;
8017 }
8018 if (!strcmp(name, "vkDestroyIndirectCommandsLayoutNVX"))
8019 {
8020 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
8021 return hasExt ? (void*)entry_vkDestroyIndirectCommandsLayoutNVX : nullptr;
8022 }
8023 if (!strcmp(name, "vkCreateObjectTableNVX"))
8024 {
8025 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
8026 return hasExt ? (void*)entry_vkCreateObjectTableNVX : nullptr;
8027 }
8028 if (!strcmp(name, "vkDestroyObjectTableNVX"))
8029 {
8030 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
8031 return hasExt ? (void*)entry_vkDestroyObjectTableNVX : nullptr;
8032 }
8033 if (!strcmp(name, "vkRegisterObjectsNVX"))
8034 {
8035 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
8036 return hasExt ? (void*)entry_vkRegisterObjectsNVX : nullptr;
8037 }
8038 if (!strcmp(name, "vkUnregisterObjectsNVX"))
8039 {
8040 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
8041 return hasExt ? (void*)entry_vkUnregisterObjectsNVX : nullptr;
8042 }
8043 if (!strcmp(name, "vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX"))
8044 {
8045 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
8046 return hasExt ? (void*)entry_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX : nullptr;
8047 }
8048#endif
8049#ifdef VK_NV_clip_space_w_scaling
8050 if (!strcmp(name, "vkCmdSetViewportWScalingNV"))
8051 {
8052 bool hasExt = resources->hasDeviceExtension(device, "VK_NV_clip_space_w_scaling");
8053 return hasExt ? (void*)entry_vkCmdSetViewportWScalingNV : nullptr;
8054 }
8055#endif
8056#ifdef VK_EXT_direct_mode_display
8057 if (!strcmp(name, "vkReleaseDisplayEXT"))
8058 {
8059 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_direct_mode_display");
8060 return hasExt ? (void*)entry_vkReleaseDisplayEXT : nullptr;
8061 }
8062#endif
8063#ifdef VK_EXT_acquire_xlib_display
8064 if (!strcmp(name, "vkAcquireXlibDisplayEXT"))
8065 {
8066 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_acquire_xlib_display");
8067 return hasExt ? (void*)entry_vkAcquireXlibDisplayEXT : nullptr;
8068 }
8069 if (!strcmp(name, "vkGetRandROutputDisplayEXT"))
8070 {
8071 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_acquire_xlib_display");
8072 return hasExt ? (void*)entry_vkGetRandROutputDisplayEXT : nullptr;
8073 }
8074#endif
8075#ifdef VK_EXT_display_surface_counter
8076 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2EXT"))
8077 {
8078 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_display_surface_counter");
8079 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceCapabilities2EXT : nullptr;
8080 }
8081#endif
8082#ifdef VK_EXT_display_control
8083 if (!strcmp(name, "vkDisplayPowerControlEXT"))
8084 {
8085 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_display_control");
8086 return hasExt ? (void*)entry_vkDisplayPowerControlEXT : nullptr;
8087 }
8088 if (!strcmp(name, "vkRegisterDeviceEventEXT"))
8089 {
8090 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_display_control");
8091 return hasExt ? (void*)entry_vkRegisterDeviceEventEXT : nullptr;
8092 }
8093 if (!strcmp(name, "vkRegisterDisplayEventEXT"))
8094 {
8095 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_display_control");
8096 return hasExt ? (void*)entry_vkRegisterDisplayEventEXT : nullptr;
8097 }
8098 if (!strcmp(name, "vkGetSwapchainCounterEXT"))
8099 {
8100 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_display_control");
8101 return hasExt ? (void*)entry_vkGetSwapchainCounterEXT : nullptr;
8102 }
8103#endif
8104#ifdef VK_GOOGLE_display_timing
8105 if (!strcmp(name, "vkGetRefreshCycleDurationGOOGLE"))
8106 {
8107 bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_display_timing");
8108 return hasExt ? (void*)entry_vkGetRefreshCycleDurationGOOGLE : nullptr;
8109 }
8110 if (!strcmp(name, "vkGetPastPresentationTimingGOOGLE"))
8111 {
8112 bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_display_timing");
8113 return hasExt ? (void*)entry_vkGetPastPresentationTimingGOOGLE : nullptr;
8114 }
8115#endif
8116#ifdef VK_EXT_discard_rectangles
8117 if (!strcmp(name, "vkCmdSetDiscardRectangleEXT"))
8118 {
8119 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_discard_rectangles");
8120 return hasExt ? (void*)entry_vkCmdSetDiscardRectangleEXT : nullptr;
8121 }
8122#endif
8123#ifdef VK_EXT_hdr_metadata
8124 if (!strcmp(name, "vkSetHdrMetadataEXT"))
8125 {
8126 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_hdr_metadata");
8127 return hasExt ? (void*)entry_vkSetHdrMetadataEXT : nullptr;
8128 }
8129#endif
8130#ifdef VK_MVK_ios_surface
8131 if (!strcmp(name, "vkCreateIOSSurfaceMVK"))
8132 {
8133 bool hasExt = resources->hasDeviceExtension(device, "VK_MVK_ios_surface");
8134 return hasExt ? (void*)entry_vkCreateIOSSurfaceMVK : nullptr;
8135 }
8136#endif
8137#ifdef VK_MVK_macos_surface
8138 if (!strcmp(name, "vkCreateMacOSSurfaceMVK"))
8139 {
8140 bool hasExt = resources->hasDeviceExtension(device, "VK_MVK_macos_surface");
8141 return hasExt ? (void*)entry_vkCreateMacOSSurfaceMVK : nullptr;
8142 }
8143#endif
8144#ifdef VK_EXT_debug_utils
8145 if (!strcmp(name, "vkSetDebugUtilsObjectNameEXT"))
8146 {
8147 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8148 return hasExt ? (void*)entry_vkSetDebugUtilsObjectNameEXT : nullptr;
8149 }
8150 if (!strcmp(name, "vkSetDebugUtilsObjectTagEXT"))
8151 {
8152 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8153 return hasExt ? (void*)entry_vkSetDebugUtilsObjectTagEXT : nullptr;
8154 }
8155 if (!strcmp(name, "vkQueueBeginDebugUtilsLabelEXT"))
8156 {
8157 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8158 return hasExt ? (void*)entry_vkQueueBeginDebugUtilsLabelEXT : nullptr;
8159 }
8160 if (!strcmp(name, "vkQueueEndDebugUtilsLabelEXT"))
8161 {
8162 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8163 return hasExt ? (void*)entry_vkQueueEndDebugUtilsLabelEXT : nullptr;
8164 }
8165 if (!strcmp(name, "vkQueueInsertDebugUtilsLabelEXT"))
8166 {
8167 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8168 return hasExt ? (void*)entry_vkQueueInsertDebugUtilsLabelEXT : nullptr;
8169 }
8170 if (!strcmp(name, "vkCmdBeginDebugUtilsLabelEXT"))
8171 {
8172 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8173 return hasExt ? (void*)entry_vkCmdBeginDebugUtilsLabelEXT : nullptr;
8174 }
8175 if (!strcmp(name, "vkCmdEndDebugUtilsLabelEXT"))
8176 {
8177 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8178 return hasExt ? (void*)entry_vkCmdEndDebugUtilsLabelEXT : nullptr;
8179 }
8180 if (!strcmp(name, "vkCmdInsertDebugUtilsLabelEXT"))
8181 {
8182 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8183 return hasExt ? (void*)entry_vkCmdInsertDebugUtilsLabelEXT : nullptr;
8184 }
8185 if (!strcmp(name, "vkCreateDebugUtilsMessengerEXT"))
8186 {
8187 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8188 return hasExt ? (void*)entry_vkCreateDebugUtilsMessengerEXT : nullptr;
8189 }
8190 if (!strcmp(name, "vkDestroyDebugUtilsMessengerEXT"))
8191 {
8192 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8193 return hasExt ? (void*)entry_vkDestroyDebugUtilsMessengerEXT : nullptr;
8194 }
8195 if (!strcmp(name, "vkSubmitDebugUtilsMessageEXT"))
8196 {
8197 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8198 return hasExt ? (void*)entry_vkSubmitDebugUtilsMessageEXT : nullptr;
8199 }
8200#endif
8201#ifdef VK_ANDROID_external_memory_android_hardware_buffer
8202 if (!strcmp(name, "vkGetAndroidHardwareBufferPropertiesANDROID"))
8203 {
8204 bool hasExt = resources->hasDeviceExtension(device, "VK_ANDROID_external_memory_android_hardware_buffer");
8205 return hasExt ? (void*)entry_vkGetAndroidHardwareBufferPropertiesANDROID : nullptr;
8206 }
8207 if (!strcmp(name, "vkGetMemoryAndroidHardwareBufferANDROID"))
8208 {
8209 bool hasExt = resources->hasDeviceExtension(device, "VK_ANDROID_external_memory_android_hardware_buffer");
8210 return hasExt ? (void*)entry_vkGetMemoryAndroidHardwareBufferANDROID : nullptr;
8211 }
8212#endif
8213#ifdef VK_EXT_sample_locations
8214 if (!strcmp(name, "vkCmdSetSampleLocationsEXT"))
8215 {
8216 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_sample_locations");
8217 return hasExt ? (void*)entry_vkCmdSetSampleLocationsEXT : nullptr;
8218 }
8219 if (!strcmp(name, "vkGetPhysicalDeviceMultisamplePropertiesEXT"))
8220 {
8221 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_sample_locations");
8222 return hasExt ? (void*)entry_vkGetPhysicalDeviceMultisamplePropertiesEXT : nullptr;
8223 }
8224#endif
8225#ifdef VK_EXT_validation_cache
8226 if (!strcmp(name, "vkCreateValidationCacheEXT"))
8227 {
8228 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_validation_cache");
8229 return hasExt ? (void*)entry_vkCreateValidationCacheEXT : nullptr;
8230 }
8231 if (!strcmp(name, "vkDestroyValidationCacheEXT"))
8232 {
8233 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_validation_cache");
8234 return hasExt ? (void*)entry_vkDestroyValidationCacheEXT : nullptr;
8235 }
8236 if (!strcmp(name, "vkMergeValidationCachesEXT"))
8237 {
8238 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_validation_cache");
8239 return hasExt ? (void*)entry_vkMergeValidationCachesEXT : nullptr;
8240 }
8241 if (!strcmp(name, "vkGetValidationCacheDataEXT"))
8242 {
8243 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_validation_cache");
8244 return hasExt ? (void*)entry_vkGetValidationCacheDataEXT : nullptr;
8245 }
8246#endif
8247#ifdef VK_EXT_external_memory_host
8248 if (!strcmp(name, "vkGetMemoryHostPointerPropertiesEXT"))
8249 {
8250 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_external_memory_host");
8251 return hasExt ? (void*)entry_vkGetMemoryHostPointerPropertiesEXT : nullptr;
8252 }
8253#endif
8254#ifdef VK_AMD_buffer_marker
8255 if (!strcmp(name, "vkCmdWriteBufferMarkerAMD"))
8256 {
8257 bool hasExt = resources->hasDeviceExtension(device, "VK_AMD_buffer_marker");
8258 return hasExt ? (void*)entry_vkCmdWriteBufferMarkerAMD : nullptr;
8259 }
8260#endif
8261#ifdef VK_NV_device_diagnostic_checkpoints
8262 if (!strcmp(name, "vkCmdSetCheckpointNV"))
8263 {
8264 bool hasExt = resources->hasDeviceExtension(device, "VK_NV_device_diagnostic_checkpoints");
8265 return hasExt ? (void*)entry_vkCmdSetCheckpointNV : nullptr;
8266 }
8267 if (!strcmp(name, "vkGetQueueCheckpointDataNV"))
8268 {
8269 bool hasExt = resources->hasDeviceExtension(device, "VK_NV_device_diagnostic_checkpoints");
8270 return hasExt ? (void*)entry_vkGetQueueCheckpointDataNV : nullptr;
8271 }
8272#endif
8273#ifdef VK_GOOGLE_address_space
8274 if (!strcmp(name, "vkMapMemoryIntoAddressSpaceGOOGLE"))
8275 {
8276 bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_address_space");
8277 return hasExt ? (void*)entry_vkMapMemoryIntoAddressSpaceGOOGLE : nullptr;
Lingfeng Yang5c63afd2018-12-22 01:21:14 -08008278 }
8279#endif
Lingfeng Yangae7e1b32019-02-19 14:07:39 -08008280#ifdef VK_GOOGLE_color_buffer
8281 if (!strcmp(name, "vkRegisterImageColorBufferGOOGLE"))
8282 {
8283 bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_color_buffer");
8284 return hasExt ? (void*)entry_vkRegisterImageColorBufferGOOGLE : nullptr;
8285 }
8286 if (!strcmp(name, "vkRegisterBufferColorBufferGOOGLE"))
8287 {
8288 bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_color_buffer");
8289 return hasExt ? (void*)entry_vkRegisterBufferColorBufferGOOGLE : nullptr;
8290 }
8291#endif
Lingfeng Yang05d5ea32019-03-23 00:12:39 -07008292#ifdef VK_GOOGLE_sized_descriptor_update_template
8293 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplateSizedGOOGLE"))
8294 {
8295 bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_sized_descriptor_update_template");
8296 return hasExt ? (void*)entry_vkUpdateDescriptorSetWithTemplateSizedGOOGLE : nullptr;
8297 }
8298#endif
Lingfeng Yang0b81df22018-11-05 21:40:30 -08008299 return nullptr;
8300}
8301
8302} // namespace goldfish_vk