blob: 970b642ef4576eb07764c6571eaa1dfa50fd799d [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;
1715 vkCreateSamplerYcbcrConversion_VkResult_return = vkEnc->vkCreateSamplerYcbcrConversion(device, pCreateInfo, pAllocator, pYcbcrConversion);
1716 return vkCreateSamplerYcbcrConversion_VkResult_return;
1717}
1718static void entry_vkDestroySamplerYcbcrConversion(
1719 VkDevice device,
1720 VkSamplerYcbcrConversion ycbcrConversion,
1721 const VkAllocationCallbacks* pAllocator)
1722{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001723 AEMU_SCOPED_TRACE("vkDestroySamplerYcbcrConversion");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001724 auto vkEnc = HostConnection::get()->vkEncoder();
1725 vkEnc->vkDestroySamplerYcbcrConversion(device, ycbcrConversion, pAllocator);
1726}
1727static VkResult entry_vkCreateDescriptorUpdateTemplate(
1728 VkDevice device,
1729 const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
1730 const VkAllocationCallbacks* pAllocator,
1731 VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate)
1732{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001733 AEMU_SCOPED_TRACE("vkCreateDescriptorUpdateTemplate");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001734 auto vkEnc = HostConnection::get()->vkEncoder();
1735 VkResult vkCreateDescriptorUpdateTemplate_VkResult_return = (VkResult)0;
1736 vkCreateDescriptorUpdateTemplate_VkResult_return = vkEnc->vkCreateDescriptorUpdateTemplate(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate);
1737 return vkCreateDescriptorUpdateTemplate_VkResult_return;
1738}
1739static void entry_vkDestroyDescriptorUpdateTemplate(
1740 VkDevice device,
1741 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
1742 const VkAllocationCallbacks* pAllocator)
1743{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001744 AEMU_SCOPED_TRACE("vkDestroyDescriptorUpdateTemplate");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001745 auto vkEnc = HostConnection::get()->vkEncoder();
1746 vkEnc->vkDestroyDescriptorUpdateTemplate(device, descriptorUpdateTemplate, pAllocator);
1747}
1748static void entry_vkUpdateDescriptorSetWithTemplate(
1749 VkDevice device,
1750 VkDescriptorSet descriptorSet,
1751 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
1752 const void* pData)
1753{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001754 AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplate");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001755 auto vkEnc = HostConnection::get()->vkEncoder();
1756 vkEnc->vkUpdateDescriptorSetWithTemplate(device, descriptorSet, descriptorUpdateTemplate, pData);
1757}
1758static void entry_vkGetPhysicalDeviceExternalBufferProperties(
1759 VkPhysicalDevice physicalDevice,
1760 const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
1761 VkExternalBufferProperties* pExternalBufferProperties)
1762{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001763 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalBufferProperties");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001764 auto vkEnc = HostConnection::get()->vkEncoder();
1765 vkEnc->vkGetPhysicalDeviceExternalBufferProperties(physicalDevice, pExternalBufferInfo, pExternalBufferProperties);
1766}
1767static void entry_vkGetPhysicalDeviceExternalFenceProperties(
1768 VkPhysicalDevice physicalDevice,
1769 const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
1770 VkExternalFenceProperties* pExternalFenceProperties)
1771{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001772 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalFenceProperties");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001773 auto vkEnc = HostConnection::get()->vkEncoder();
1774 vkEnc->vkGetPhysicalDeviceExternalFenceProperties(physicalDevice, pExternalFenceInfo, pExternalFenceProperties);
1775}
1776static void entry_vkGetPhysicalDeviceExternalSemaphoreProperties(
1777 VkPhysicalDevice physicalDevice,
1778 const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
1779 VkExternalSemaphoreProperties* pExternalSemaphoreProperties)
1780{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001781 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalSemaphoreProperties");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001782 auto vkEnc = HostConnection::get()->vkEncoder();
1783 vkEnc->vkGetPhysicalDeviceExternalSemaphoreProperties(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties);
1784}
1785static void entry_vkGetDescriptorSetLayoutSupport(
1786 VkDevice device,
1787 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
1788 VkDescriptorSetLayoutSupport* pSupport)
1789{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001790 AEMU_SCOPED_TRACE("vkGetDescriptorSetLayoutSupport");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001791 auto vkEnc = HostConnection::get()->vkEncoder();
1792 vkEnc->vkGetDescriptorSetLayoutSupport(device, pCreateInfo, pSupport);
1793}
1794#endif
1795#ifdef VK_KHR_surface
1796static void entry_vkDestroySurfaceKHR(
1797 VkInstance instance,
1798 VkSurfaceKHR surface,
1799 const VkAllocationCallbacks* pAllocator)
1800{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001801 AEMU_SCOPED_TRACE("vkDestroySurfaceKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001802 auto vkEnc = HostConnection::get()->vkEncoder();
1803 vkEnc->vkDestroySurfaceKHR(instance, surface, pAllocator);
1804}
1805static VkResult entry_vkGetPhysicalDeviceSurfaceSupportKHR(
1806 VkPhysicalDevice physicalDevice,
1807 uint32_t queueFamilyIndex,
1808 VkSurfaceKHR surface,
1809 VkBool32* pSupported)
1810{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001811 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceSupportKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001812 auto vkEnc = HostConnection::get()->vkEncoder();
1813 VkResult vkGetPhysicalDeviceSurfaceSupportKHR_VkResult_return = (VkResult)0;
1814 vkGetPhysicalDeviceSurfaceSupportKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceSupportKHR(physicalDevice, queueFamilyIndex, surface, pSupported);
1815 return vkGetPhysicalDeviceSurfaceSupportKHR_VkResult_return;
1816}
1817static VkResult entry_vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
1818 VkPhysicalDevice physicalDevice,
1819 VkSurfaceKHR surface,
1820 VkSurfaceCapabilitiesKHR* pSurfaceCapabilities)
1821{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001822 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceCapabilitiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001823 auto vkEnc = HostConnection::get()->vkEncoder();
1824 VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR_VkResult_return = (VkResult)0;
1825 vkGetPhysicalDeviceSurfaceCapabilitiesKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceCapabilitiesKHR(physicalDevice, surface, pSurfaceCapabilities);
1826 return vkGetPhysicalDeviceSurfaceCapabilitiesKHR_VkResult_return;
1827}
1828static VkResult entry_vkGetPhysicalDeviceSurfaceFormatsKHR(
1829 VkPhysicalDevice physicalDevice,
1830 VkSurfaceKHR surface,
1831 uint32_t* pSurfaceFormatCount,
1832 VkSurfaceFormatKHR* pSurfaceFormats)
1833{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001834 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceFormatsKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001835 auto vkEnc = HostConnection::get()->vkEncoder();
1836 VkResult vkGetPhysicalDeviceSurfaceFormatsKHR_VkResult_return = (VkResult)0;
1837 vkGetPhysicalDeviceSurfaceFormatsKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceFormatsKHR(physicalDevice, surface, pSurfaceFormatCount, pSurfaceFormats);
1838 return vkGetPhysicalDeviceSurfaceFormatsKHR_VkResult_return;
1839}
1840static VkResult entry_vkGetPhysicalDeviceSurfacePresentModesKHR(
1841 VkPhysicalDevice physicalDevice,
1842 VkSurfaceKHR surface,
1843 uint32_t* pPresentModeCount,
1844 VkPresentModeKHR* pPresentModes)
1845{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001846 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfacePresentModesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001847 auto vkEnc = HostConnection::get()->vkEncoder();
1848 VkResult vkGetPhysicalDeviceSurfacePresentModesKHR_VkResult_return = (VkResult)0;
1849 vkGetPhysicalDeviceSurfacePresentModesKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfacePresentModesKHR(physicalDevice, surface, pPresentModeCount, pPresentModes);
1850 return vkGetPhysicalDeviceSurfacePresentModesKHR_VkResult_return;
1851}
1852#endif
1853#ifdef VK_KHR_swapchain
1854static VkResult entry_vkCreateSwapchainKHR(
1855 VkDevice device,
1856 const VkSwapchainCreateInfoKHR* pCreateInfo,
1857 const VkAllocationCallbacks* pAllocator,
1858 VkSwapchainKHR* pSwapchain)
1859{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001860 AEMU_SCOPED_TRACE("vkCreateSwapchainKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001861 auto vkEnc = HostConnection::get()->vkEncoder();
1862 VkResult vkCreateSwapchainKHR_VkResult_return = (VkResult)0;
1863 vkCreateSwapchainKHR_VkResult_return = vkEnc->vkCreateSwapchainKHR(device, pCreateInfo, pAllocator, pSwapchain);
1864 return vkCreateSwapchainKHR_VkResult_return;
1865}
1866static void entry_vkDestroySwapchainKHR(
1867 VkDevice device,
1868 VkSwapchainKHR swapchain,
1869 const VkAllocationCallbacks* pAllocator)
1870{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001871 AEMU_SCOPED_TRACE("vkDestroySwapchainKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001872 auto vkEnc = HostConnection::get()->vkEncoder();
1873 vkEnc->vkDestroySwapchainKHR(device, swapchain, pAllocator);
1874}
1875static VkResult entry_vkGetSwapchainImagesKHR(
1876 VkDevice device,
1877 VkSwapchainKHR swapchain,
1878 uint32_t* pSwapchainImageCount,
1879 VkImage* pSwapchainImages)
1880{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001881 AEMU_SCOPED_TRACE("vkGetSwapchainImagesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001882 auto vkEnc = HostConnection::get()->vkEncoder();
1883 VkResult vkGetSwapchainImagesKHR_VkResult_return = (VkResult)0;
1884 vkGetSwapchainImagesKHR_VkResult_return = vkEnc->vkGetSwapchainImagesKHR(device, swapchain, pSwapchainImageCount, pSwapchainImages);
1885 return vkGetSwapchainImagesKHR_VkResult_return;
1886}
1887static VkResult entry_vkAcquireNextImageKHR(
1888 VkDevice device,
1889 VkSwapchainKHR swapchain,
1890 uint64_t timeout,
1891 VkSemaphore semaphore,
1892 VkFence fence,
1893 uint32_t* pImageIndex)
1894{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001895 AEMU_SCOPED_TRACE("vkAcquireNextImageKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001896 auto vkEnc = HostConnection::get()->vkEncoder();
1897 VkResult vkAcquireNextImageKHR_VkResult_return = (VkResult)0;
1898 vkAcquireNextImageKHR_VkResult_return = vkEnc->vkAcquireNextImageKHR(device, swapchain, timeout, semaphore, fence, pImageIndex);
1899 return vkAcquireNextImageKHR_VkResult_return;
1900}
1901static VkResult entry_vkQueuePresentKHR(
1902 VkQueue queue,
1903 const VkPresentInfoKHR* pPresentInfo)
1904{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001905 AEMU_SCOPED_TRACE("vkQueuePresentKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001906 auto vkEnc = HostConnection::get()->vkEncoder();
1907 VkResult vkQueuePresentKHR_VkResult_return = (VkResult)0;
1908 vkQueuePresentKHR_VkResult_return = vkEnc->vkQueuePresentKHR(queue, pPresentInfo);
1909 return vkQueuePresentKHR_VkResult_return;
1910}
1911static VkResult entry_vkGetDeviceGroupPresentCapabilitiesKHR(
1912 VkDevice device,
1913 VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities)
1914{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001915 AEMU_SCOPED_TRACE("vkGetDeviceGroupPresentCapabilitiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001916 auto vkEnc = HostConnection::get()->vkEncoder();
1917 VkResult vkGetDeviceGroupPresentCapabilitiesKHR_VkResult_return = (VkResult)0;
1918 vkGetDeviceGroupPresentCapabilitiesKHR_VkResult_return = vkEnc->vkGetDeviceGroupPresentCapabilitiesKHR(device, pDeviceGroupPresentCapabilities);
1919 return vkGetDeviceGroupPresentCapabilitiesKHR_VkResult_return;
1920}
1921static VkResult entry_vkGetDeviceGroupSurfacePresentModesKHR(
1922 VkDevice device,
1923 VkSurfaceKHR surface,
1924 VkDeviceGroupPresentModeFlagsKHR* pModes)
1925{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001926 AEMU_SCOPED_TRACE("vkGetDeviceGroupSurfacePresentModesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001927 auto vkEnc = HostConnection::get()->vkEncoder();
1928 VkResult vkGetDeviceGroupSurfacePresentModesKHR_VkResult_return = (VkResult)0;
1929 vkGetDeviceGroupSurfacePresentModesKHR_VkResult_return = vkEnc->vkGetDeviceGroupSurfacePresentModesKHR(device, surface, pModes);
1930 return vkGetDeviceGroupSurfacePresentModesKHR_VkResult_return;
1931}
1932static VkResult entry_vkGetPhysicalDevicePresentRectanglesKHR(
1933 VkPhysicalDevice physicalDevice,
1934 VkSurfaceKHR surface,
1935 uint32_t* pRectCount,
1936 VkRect2D* pRects)
1937{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001938 AEMU_SCOPED_TRACE("vkGetPhysicalDevicePresentRectanglesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001939 auto vkEnc = HostConnection::get()->vkEncoder();
1940 VkResult vkGetPhysicalDevicePresentRectanglesKHR_VkResult_return = (VkResult)0;
1941 vkGetPhysicalDevicePresentRectanglesKHR_VkResult_return = vkEnc->vkGetPhysicalDevicePresentRectanglesKHR(physicalDevice, surface, pRectCount, pRects);
1942 return vkGetPhysicalDevicePresentRectanglesKHR_VkResult_return;
1943}
1944static VkResult entry_vkAcquireNextImage2KHR(
1945 VkDevice device,
1946 const VkAcquireNextImageInfoKHR* pAcquireInfo,
1947 uint32_t* pImageIndex)
1948{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001949 AEMU_SCOPED_TRACE("vkAcquireNextImage2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001950 auto vkEnc = HostConnection::get()->vkEncoder();
1951 VkResult vkAcquireNextImage2KHR_VkResult_return = (VkResult)0;
1952 vkAcquireNextImage2KHR_VkResult_return = vkEnc->vkAcquireNextImage2KHR(device, pAcquireInfo, pImageIndex);
1953 return vkAcquireNextImage2KHR_VkResult_return;
1954}
1955#endif
1956#ifdef VK_KHR_display
1957static VkResult entry_vkGetPhysicalDeviceDisplayPropertiesKHR(
1958 VkPhysicalDevice physicalDevice,
1959 uint32_t* pPropertyCount,
1960 VkDisplayPropertiesKHR* pProperties)
1961{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001962 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayPropertiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001963 auto vkEnc = HostConnection::get()->vkEncoder();
1964 VkResult vkGetPhysicalDeviceDisplayPropertiesKHR_VkResult_return = (VkResult)0;
1965 vkGetPhysicalDeviceDisplayPropertiesKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceDisplayPropertiesKHR(physicalDevice, pPropertyCount, pProperties);
1966 return vkGetPhysicalDeviceDisplayPropertiesKHR_VkResult_return;
1967}
1968static VkResult entry_vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
1969 VkPhysicalDevice physicalDevice,
1970 uint32_t* pPropertyCount,
1971 VkDisplayPlanePropertiesKHR* pProperties)
1972{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001973 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayPlanePropertiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001974 auto vkEnc = HostConnection::get()->vkEncoder();
1975 VkResult vkGetPhysicalDeviceDisplayPlanePropertiesKHR_VkResult_return = (VkResult)0;
1976 vkGetPhysicalDeviceDisplayPlanePropertiesKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceDisplayPlanePropertiesKHR(physicalDevice, pPropertyCount, pProperties);
1977 return vkGetPhysicalDeviceDisplayPlanePropertiesKHR_VkResult_return;
1978}
1979static VkResult entry_vkGetDisplayPlaneSupportedDisplaysKHR(
1980 VkPhysicalDevice physicalDevice,
1981 uint32_t planeIndex,
1982 uint32_t* pDisplayCount,
1983 VkDisplayKHR* pDisplays)
1984{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001985 AEMU_SCOPED_TRACE("vkGetDisplayPlaneSupportedDisplaysKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001986 auto vkEnc = HostConnection::get()->vkEncoder();
1987 VkResult vkGetDisplayPlaneSupportedDisplaysKHR_VkResult_return = (VkResult)0;
1988 vkGetDisplayPlaneSupportedDisplaysKHR_VkResult_return = vkEnc->vkGetDisplayPlaneSupportedDisplaysKHR(physicalDevice, planeIndex, pDisplayCount, pDisplays);
1989 return vkGetDisplayPlaneSupportedDisplaysKHR_VkResult_return;
1990}
1991static VkResult entry_vkGetDisplayModePropertiesKHR(
1992 VkPhysicalDevice physicalDevice,
1993 VkDisplayKHR display,
1994 uint32_t* pPropertyCount,
1995 VkDisplayModePropertiesKHR* pProperties)
1996{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001997 AEMU_SCOPED_TRACE("vkGetDisplayModePropertiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001998 auto vkEnc = HostConnection::get()->vkEncoder();
1999 VkResult vkGetDisplayModePropertiesKHR_VkResult_return = (VkResult)0;
2000 vkGetDisplayModePropertiesKHR_VkResult_return = vkEnc->vkGetDisplayModePropertiesKHR(physicalDevice, display, pPropertyCount, pProperties);
2001 return vkGetDisplayModePropertiesKHR_VkResult_return;
2002}
2003static VkResult entry_vkCreateDisplayModeKHR(
2004 VkPhysicalDevice physicalDevice,
2005 VkDisplayKHR display,
2006 const VkDisplayModeCreateInfoKHR* pCreateInfo,
2007 const VkAllocationCallbacks* pAllocator,
2008 VkDisplayModeKHR* pMode)
2009{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002010 AEMU_SCOPED_TRACE("vkCreateDisplayModeKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002011 auto vkEnc = HostConnection::get()->vkEncoder();
2012 VkResult vkCreateDisplayModeKHR_VkResult_return = (VkResult)0;
2013 vkCreateDisplayModeKHR_VkResult_return = vkEnc->vkCreateDisplayModeKHR(physicalDevice, display, pCreateInfo, pAllocator, pMode);
2014 return vkCreateDisplayModeKHR_VkResult_return;
2015}
2016static VkResult entry_vkGetDisplayPlaneCapabilitiesKHR(
2017 VkPhysicalDevice physicalDevice,
2018 VkDisplayModeKHR mode,
2019 uint32_t planeIndex,
2020 VkDisplayPlaneCapabilitiesKHR* pCapabilities)
2021{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002022 AEMU_SCOPED_TRACE("vkGetDisplayPlaneCapabilitiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002023 auto vkEnc = HostConnection::get()->vkEncoder();
2024 VkResult vkGetDisplayPlaneCapabilitiesKHR_VkResult_return = (VkResult)0;
2025 vkGetDisplayPlaneCapabilitiesKHR_VkResult_return = vkEnc->vkGetDisplayPlaneCapabilitiesKHR(physicalDevice, mode, planeIndex, pCapabilities);
2026 return vkGetDisplayPlaneCapabilitiesKHR_VkResult_return;
2027}
2028static VkResult entry_vkCreateDisplayPlaneSurfaceKHR(
2029 VkInstance instance,
2030 const VkDisplaySurfaceCreateInfoKHR* pCreateInfo,
2031 const VkAllocationCallbacks* pAllocator,
2032 VkSurfaceKHR* pSurface)
2033{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002034 AEMU_SCOPED_TRACE("vkCreateDisplayPlaneSurfaceKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002035 auto vkEnc = HostConnection::get()->vkEncoder();
2036 VkResult vkCreateDisplayPlaneSurfaceKHR_VkResult_return = (VkResult)0;
2037 vkCreateDisplayPlaneSurfaceKHR_VkResult_return = vkEnc->vkCreateDisplayPlaneSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
2038 return vkCreateDisplayPlaneSurfaceKHR_VkResult_return;
2039}
2040#endif
2041#ifdef VK_KHR_display_swapchain
2042static VkResult entry_vkCreateSharedSwapchainsKHR(
2043 VkDevice device,
2044 uint32_t swapchainCount,
2045 const VkSwapchainCreateInfoKHR* pCreateInfos,
2046 const VkAllocationCallbacks* pAllocator,
2047 VkSwapchainKHR* pSwapchains)
2048{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002049 AEMU_SCOPED_TRACE("vkCreateSharedSwapchainsKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002050 auto vkEnc = HostConnection::get()->vkEncoder();
2051 VkResult vkCreateSharedSwapchainsKHR_VkResult_return = (VkResult)0;
2052 vkCreateSharedSwapchainsKHR_VkResult_return = vkEnc->vkCreateSharedSwapchainsKHR(device, swapchainCount, pCreateInfos, pAllocator, pSwapchains);
2053 return vkCreateSharedSwapchainsKHR_VkResult_return;
2054}
2055#endif
2056#ifdef VK_KHR_xlib_surface
2057static VkResult entry_vkCreateXlibSurfaceKHR(
2058 VkInstance instance,
2059 const VkXlibSurfaceCreateInfoKHR* pCreateInfo,
2060 const VkAllocationCallbacks* pAllocator,
2061 VkSurfaceKHR* pSurface)
2062{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002063 AEMU_SCOPED_TRACE("vkCreateXlibSurfaceKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002064 auto vkEnc = HostConnection::get()->vkEncoder();
2065 VkResult vkCreateXlibSurfaceKHR_VkResult_return = (VkResult)0;
2066 vkCreateXlibSurfaceKHR_VkResult_return = vkEnc->vkCreateXlibSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
2067 return vkCreateXlibSurfaceKHR_VkResult_return;
2068}
2069static VkBool32 entry_vkGetPhysicalDeviceXlibPresentationSupportKHR(
2070 VkPhysicalDevice physicalDevice,
2071 uint32_t queueFamilyIndex,
2072 Display* dpy,
2073 VisualID visualID)
2074{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002075 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceXlibPresentationSupportKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002076 auto vkEnc = HostConnection::get()->vkEncoder();
2077 VkBool32 vkGetPhysicalDeviceXlibPresentationSupportKHR_VkBool32_return = (VkBool32)0;
2078 vkGetPhysicalDeviceXlibPresentationSupportKHR_VkBool32_return = vkEnc->vkGetPhysicalDeviceXlibPresentationSupportKHR(physicalDevice, queueFamilyIndex, dpy, visualID);
2079 return vkGetPhysicalDeviceXlibPresentationSupportKHR_VkBool32_return;
2080}
2081#endif
2082#ifdef VK_KHR_xcb_surface
2083static VkResult entry_vkCreateXcbSurfaceKHR(
2084 VkInstance instance,
2085 const VkXcbSurfaceCreateInfoKHR* pCreateInfo,
2086 const VkAllocationCallbacks* pAllocator,
2087 VkSurfaceKHR* pSurface)
2088{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002089 AEMU_SCOPED_TRACE("vkCreateXcbSurfaceKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002090 auto vkEnc = HostConnection::get()->vkEncoder();
2091 VkResult vkCreateXcbSurfaceKHR_VkResult_return = (VkResult)0;
2092 vkCreateXcbSurfaceKHR_VkResult_return = vkEnc->vkCreateXcbSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
2093 return vkCreateXcbSurfaceKHR_VkResult_return;
2094}
2095static VkBool32 entry_vkGetPhysicalDeviceXcbPresentationSupportKHR(
2096 VkPhysicalDevice physicalDevice,
2097 uint32_t queueFamilyIndex,
2098 xcb_connection_t* connection,
2099 xcb_visualid_t visual_id)
2100{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002101 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceXcbPresentationSupportKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002102 auto vkEnc = HostConnection::get()->vkEncoder();
2103 VkBool32 vkGetPhysicalDeviceXcbPresentationSupportKHR_VkBool32_return = (VkBool32)0;
2104 vkGetPhysicalDeviceXcbPresentationSupportKHR_VkBool32_return = vkEnc->vkGetPhysicalDeviceXcbPresentationSupportKHR(physicalDevice, queueFamilyIndex, connection, visual_id);
2105 return vkGetPhysicalDeviceXcbPresentationSupportKHR_VkBool32_return;
2106}
2107#endif
2108#ifdef VK_KHR_wayland_surface
2109static VkResult entry_vkCreateWaylandSurfaceKHR(
2110 VkInstance instance,
2111 const VkWaylandSurfaceCreateInfoKHR* pCreateInfo,
2112 const VkAllocationCallbacks* pAllocator,
2113 VkSurfaceKHR* pSurface)
2114{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002115 AEMU_SCOPED_TRACE("vkCreateWaylandSurfaceKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002116 auto vkEnc = HostConnection::get()->vkEncoder();
2117 VkResult vkCreateWaylandSurfaceKHR_VkResult_return = (VkResult)0;
2118 vkCreateWaylandSurfaceKHR_VkResult_return = vkEnc->vkCreateWaylandSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
2119 return vkCreateWaylandSurfaceKHR_VkResult_return;
2120}
2121static VkBool32 entry_vkGetPhysicalDeviceWaylandPresentationSupportKHR(
2122 VkPhysicalDevice physicalDevice,
2123 uint32_t queueFamilyIndex,
2124 wl_display* display)
2125{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002126 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceWaylandPresentationSupportKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002127 auto vkEnc = HostConnection::get()->vkEncoder();
2128 VkBool32 vkGetPhysicalDeviceWaylandPresentationSupportKHR_VkBool32_return = (VkBool32)0;
2129 vkGetPhysicalDeviceWaylandPresentationSupportKHR_VkBool32_return = vkEnc->vkGetPhysicalDeviceWaylandPresentationSupportKHR(physicalDevice, queueFamilyIndex, display);
2130 return vkGetPhysicalDeviceWaylandPresentationSupportKHR_VkBool32_return;
2131}
2132#endif
2133#ifdef VK_KHR_mir_surface
2134static VkResult entry_vkCreateMirSurfaceKHR(
2135 VkInstance instance,
2136 const VkMirSurfaceCreateInfoKHR* pCreateInfo,
2137 const VkAllocationCallbacks* pAllocator,
2138 VkSurfaceKHR* pSurface)
2139{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002140 AEMU_SCOPED_TRACE("vkCreateMirSurfaceKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002141 auto vkEnc = HostConnection::get()->vkEncoder();
2142 VkResult vkCreateMirSurfaceKHR_VkResult_return = (VkResult)0;
2143 vkCreateMirSurfaceKHR_VkResult_return = vkEnc->vkCreateMirSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
2144 return vkCreateMirSurfaceKHR_VkResult_return;
2145}
2146static VkBool32 entry_vkGetPhysicalDeviceMirPresentationSupportKHR(
2147 VkPhysicalDevice physicalDevice,
2148 uint32_t queueFamilyIndex,
2149 MirConnection* connection)
2150{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002151 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMirPresentationSupportKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002152 auto vkEnc = HostConnection::get()->vkEncoder();
2153 VkBool32 vkGetPhysicalDeviceMirPresentationSupportKHR_VkBool32_return = (VkBool32)0;
2154 vkGetPhysicalDeviceMirPresentationSupportKHR_VkBool32_return = vkEnc->vkGetPhysicalDeviceMirPresentationSupportKHR(physicalDevice, queueFamilyIndex, connection);
2155 return vkGetPhysicalDeviceMirPresentationSupportKHR_VkBool32_return;
2156}
2157#endif
2158#ifdef VK_KHR_android_surface
2159static VkResult entry_vkCreateAndroidSurfaceKHR(
2160 VkInstance instance,
2161 const VkAndroidSurfaceCreateInfoKHR* pCreateInfo,
2162 const VkAllocationCallbacks* pAllocator,
2163 VkSurfaceKHR* pSurface)
2164{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002165 AEMU_SCOPED_TRACE("vkCreateAndroidSurfaceKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002166 auto vkEnc = HostConnection::get()->vkEncoder();
2167 VkResult vkCreateAndroidSurfaceKHR_VkResult_return = (VkResult)0;
2168 vkCreateAndroidSurfaceKHR_VkResult_return = vkEnc->vkCreateAndroidSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
2169 return vkCreateAndroidSurfaceKHR_VkResult_return;
2170}
2171#endif
2172#ifdef VK_KHR_win32_surface
2173static VkResult entry_vkCreateWin32SurfaceKHR(
2174 VkInstance instance,
2175 const VkWin32SurfaceCreateInfoKHR* pCreateInfo,
2176 const VkAllocationCallbacks* pAllocator,
2177 VkSurfaceKHR* pSurface)
2178{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002179 AEMU_SCOPED_TRACE("vkCreateWin32SurfaceKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002180 auto vkEnc = HostConnection::get()->vkEncoder();
2181 VkResult vkCreateWin32SurfaceKHR_VkResult_return = (VkResult)0;
2182 vkCreateWin32SurfaceKHR_VkResult_return = vkEnc->vkCreateWin32SurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
2183 return vkCreateWin32SurfaceKHR_VkResult_return;
2184}
2185static VkBool32 entry_vkGetPhysicalDeviceWin32PresentationSupportKHR(
2186 VkPhysicalDevice physicalDevice,
2187 uint32_t queueFamilyIndex)
2188{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002189 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceWin32PresentationSupportKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002190 auto vkEnc = HostConnection::get()->vkEncoder();
2191 VkBool32 vkGetPhysicalDeviceWin32PresentationSupportKHR_VkBool32_return = (VkBool32)0;
2192 vkGetPhysicalDeviceWin32PresentationSupportKHR_VkBool32_return = vkEnc->vkGetPhysicalDeviceWin32PresentationSupportKHR(physicalDevice, queueFamilyIndex);
2193 return vkGetPhysicalDeviceWin32PresentationSupportKHR_VkBool32_return;
2194}
2195#endif
2196#ifdef VK_KHR_sampler_mirror_clamp_to_edge
2197#endif
2198#ifdef VK_KHR_multiview
2199#endif
2200#ifdef VK_KHR_get_physical_device_properties2
2201static void entry_vkGetPhysicalDeviceFeatures2KHR(
2202 VkPhysicalDevice physicalDevice,
2203 VkPhysicalDeviceFeatures2* pFeatures)
2204{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002205 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFeatures2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002206 auto vkEnc = HostConnection::get()->vkEncoder();
2207 vkEnc->vkGetPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures);
2208}
2209static void entry_vkGetPhysicalDeviceProperties2KHR(
2210 VkPhysicalDevice physicalDevice,
2211 VkPhysicalDeviceProperties2* pProperties)
2212{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002213 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002214 auto vkEnc = HostConnection::get()->vkEncoder();
2215 vkEnc->vkGetPhysicalDeviceProperties2KHR(physicalDevice, pProperties);
2216}
2217static void entry_vkGetPhysicalDeviceFormatProperties2KHR(
2218 VkPhysicalDevice physicalDevice,
2219 VkFormat format,
2220 VkFormatProperties2* pFormatProperties)
2221{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002222 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFormatProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002223 auto vkEnc = HostConnection::get()->vkEncoder();
2224 vkEnc->vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice, format, pFormatProperties);
2225}
2226static VkResult entry_vkGetPhysicalDeviceImageFormatProperties2KHR(
2227 VkPhysicalDevice physicalDevice,
2228 const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
2229 VkImageFormatProperties2* pImageFormatProperties)
2230{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002231 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceImageFormatProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002232 auto vkEnc = HostConnection::get()->vkEncoder();
2233 VkResult vkGetPhysicalDeviceImageFormatProperties2KHR_VkResult_return = (VkResult)0;
2234 vkGetPhysicalDeviceImageFormatProperties2KHR_VkResult_return = vkEnc->vkGetPhysicalDeviceImageFormatProperties2KHR(physicalDevice, pImageFormatInfo, pImageFormatProperties);
2235 return vkGetPhysicalDeviceImageFormatProperties2KHR_VkResult_return;
2236}
2237static void entry_vkGetPhysicalDeviceQueueFamilyProperties2KHR(
2238 VkPhysicalDevice physicalDevice,
2239 uint32_t* pQueueFamilyPropertyCount,
2240 VkQueueFamilyProperties2* pQueueFamilyProperties)
2241{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002242 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceQueueFamilyProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002243 auto vkEnc = HostConnection::get()->vkEncoder();
2244 vkEnc->vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties);
2245}
2246static void entry_vkGetPhysicalDeviceMemoryProperties2KHR(
2247 VkPhysicalDevice physicalDevice,
2248 VkPhysicalDeviceMemoryProperties2* pMemoryProperties)
2249{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002250 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMemoryProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002251 auto vkEnc = HostConnection::get()->vkEncoder();
2252 vkEnc->vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice, pMemoryProperties);
2253}
2254static void entry_vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
2255 VkPhysicalDevice physicalDevice,
2256 const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
2257 uint32_t* pPropertyCount,
2258 VkSparseImageFormatProperties2* pProperties)
2259{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002260 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSparseImageFormatProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002261 auto vkEnc = HostConnection::get()->vkEncoder();
2262 vkEnc->vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties);
2263}
2264#endif
2265#ifdef VK_KHR_device_group
2266static void entry_vkGetDeviceGroupPeerMemoryFeaturesKHR(
2267 VkDevice device,
2268 uint32_t heapIndex,
2269 uint32_t localDeviceIndex,
2270 uint32_t remoteDeviceIndex,
2271 VkPeerMemoryFeatureFlags* pPeerMemoryFeatures)
2272{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002273 AEMU_SCOPED_TRACE("vkGetDeviceGroupPeerMemoryFeaturesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002274 auto vkEnc = HostConnection::get()->vkEncoder();
2275 vkEnc->vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures);
2276}
2277static void entry_vkCmdSetDeviceMaskKHR(
2278 VkCommandBuffer commandBuffer,
2279 uint32_t deviceMask)
2280{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002281 AEMU_SCOPED_TRACE("vkCmdSetDeviceMaskKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002282 auto vkEnc = HostConnection::get()->vkEncoder();
2283 vkEnc->vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask);
2284}
2285static void entry_vkCmdDispatchBaseKHR(
2286 VkCommandBuffer commandBuffer,
2287 uint32_t baseGroupX,
2288 uint32_t baseGroupY,
2289 uint32_t baseGroupZ,
2290 uint32_t groupCountX,
2291 uint32_t groupCountY,
2292 uint32_t groupCountZ)
2293{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002294 AEMU_SCOPED_TRACE("vkCmdDispatchBaseKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002295 auto vkEnc = HostConnection::get()->vkEncoder();
2296 vkEnc->vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ);
2297}
2298#endif
2299#ifdef VK_KHR_shader_draw_parameters
2300#endif
2301#ifdef VK_KHR_maintenance1
2302static void entry_vkTrimCommandPoolKHR(
2303 VkDevice device,
2304 VkCommandPool commandPool,
2305 VkCommandPoolTrimFlags flags)
2306{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002307 AEMU_SCOPED_TRACE("vkTrimCommandPoolKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002308 auto vkEnc = HostConnection::get()->vkEncoder();
2309 vkEnc->vkTrimCommandPoolKHR(device, commandPool, flags);
2310}
2311#endif
2312#ifdef VK_KHR_device_group_creation
2313static VkResult entry_vkEnumeratePhysicalDeviceGroupsKHR(
2314 VkInstance instance,
2315 uint32_t* pPhysicalDeviceGroupCount,
2316 VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties)
2317{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002318 AEMU_SCOPED_TRACE("vkEnumeratePhysicalDeviceGroupsKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002319 auto vkEnc = HostConnection::get()->vkEncoder();
2320 VkResult vkEnumeratePhysicalDeviceGroupsKHR_VkResult_return = (VkResult)0;
2321 vkEnumeratePhysicalDeviceGroupsKHR_VkResult_return = vkEnc->vkEnumeratePhysicalDeviceGroupsKHR(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties);
2322 return vkEnumeratePhysicalDeviceGroupsKHR_VkResult_return;
2323}
2324#endif
2325#ifdef VK_KHR_external_memory_capabilities
2326static void entry_vkGetPhysicalDeviceExternalBufferPropertiesKHR(
2327 VkPhysicalDevice physicalDevice,
2328 const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
2329 VkExternalBufferProperties* pExternalBufferProperties)
2330{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002331 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalBufferPropertiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002332 auto vkEnc = HostConnection::get()->vkEncoder();
2333 vkEnc->vkGetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties);
2334}
2335#endif
2336#ifdef VK_KHR_external_memory
2337#endif
2338#ifdef VK_KHR_external_memory_win32
2339static VkResult entry_vkGetMemoryWin32HandleKHR(
2340 VkDevice device,
2341 const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo,
2342 HANDLE* pHandle)
2343{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002344 AEMU_SCOPED_TRACE("vkGetMemoryWin32HandleKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002345 auto vkEnc = HostConnection::get()->vkEncoder();
2346 VkResult vkGetMemoryWin32HandleKHR_VkResult_return = (VkResult)0;
2347 vkGetMemoryWin32HandleKHR_VkResult_return = vkEnc->vkGetMemoryWin32HandleKHR(device, pGetWin32HandleInfo, pHandle);
2348 return vkGetMemoryWin32HandleKHR_VkResult_return;
2349}
2350static VkResult entry_vkGetMemoryWin32HandlePropertiesKHR(
2351 VkDevice device,
2352 VkExternalMemoryHandleTypeFlagBits handleType,
2353 HANDLE handle,
2354 VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties)
2355{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002356 AEMU_SCOPED_TRACE("vkGetMemoryWin32HandlePropertiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002357 auto vkEnc = HostConnection::get()->vkEncoder();
2358 VkResult vkGetMemoryWin32HandlePropertiesKHR_VkResult_return = (VkResult)0;
2359 vkGetMemoryWin32HandlePropertiesKHR_VkResult_return = vkEnc->vkGetMemoryWin32HandlePropertiesKHR(device, handleType, handle, pMemoryWin32HandleProperties);
2360 return vkGetMemoryWin32HandlePropertiesKHR_VkResult_return;
2361}
2362#endif
2363#ifdef VK_KHR_external_memory_fd
2364static VkResult entry_vkGetMemoryFdKHR(
2365 VkDevice device,
2366 const VkMemoryGetFdInfoKHR* pGetFdInfo,
2367 int* pFd)
2368{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002369 AEMU_SCOPED_TRACE("vkGetMemoryFdKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002370 auto vkEnc = HostConnection::get()->vkEncoder();
2371 VkResult vkGetMemoryFdKHR_VkResult_return = (VkResult)0;
2372 vkGetMemoryFdKHR_VkResult_return = vkEnc->vkGetMemoryFdKHR(device, pGetFdInfo, pFd);
2373 return vkGetMemoryFdKHR_VkResult_return;
2374}
2375static VkResult entry_vkGetMemoryFdPropertiesKHR(
2376 VkDevice device,
2377 VkExternalMemoryHandleTypeFlagBits handleType,
2378 int fd,
2379 VkMemoryFdPropertiesKHR* pMemoryFdProperties)
2380{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002381 AEMU_SCOPED_TRACE("vkGetMemoryFdPropertiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002382 auto vkEnc = HostConnection::get()->vkEncoder();
2383 VkResult vkGetMemoryFdPropertiesKHR_VkResult_return = (VkResult)0;
2384 vkGetMemoryFdPropertiesKHR_VkResult_return = vkEnc->vkGetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties);
2385 return vkGetMemoryFdPropertiesKHR_VkResult_return;
2386}
2387#endif
2388#ifdef VK_KHR_win32_keyed_mutex
2389#endif
2390#ifdef VK_KHR_external_semaphore_capabilities
2391static void entry_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
2392 VkPhysicalDevice physicalDevice,
2393 const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
2394 VkExternalSemaphoreProperties* pExternalSemaphoreProperties)
2395{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002396 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalSemaphorePropertiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002397 auto vkEnc = HostConnection::get()->vkEncoder();
2398 vkEnc->vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties);
2399}
2400#endif
2401#ifdef VK_KHR_external_semaphore
2402#endif
2403#ifdef VK_KHR_external_semaphore_win32
2404static VkResult entry_vkImportSemaphoreWin32HandleKHR(
2405 VkDevice device,
2406 const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo)
2407{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002408 AEMU_SCOPED_TRACE("vkImportSemaphoreWin32HandleKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002409 auto vkEnc = HostConnection::get()->vkEncoder();
2410 VkResult vkImportSemaphoreWin32HandleKHR_VkResult_return = (VkResult)0;
2411 vkImportSemaphoreWin32HandleKHR_VkResult_return = vkEnc->vkImportSemaphoreWin32HandleKHR(device, pImportSemaphoreWin32HandleInfo);
2412 return vkImportSemaphoreWin32HandleKHR_VkResult_return;
2413}
2414static VkResult entry_vkGetSemaphoreWin32HandleKHR(
2415 VkDevice device,
2416 const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo,
2417 HANDLE* pHandle)
2418{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002419 AEMU_SCOPED_TRACE("vkGetSemaphoreWin32HandleKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002420 auto vkEnc = HostConnection::get()->vkEncoder();
2421 VkResult vkGetSemaphoreWin32HandleKHR_VkResult_return = (VkResult)0;
2422 vkGetSemaphoreWin32HandleKHR_VkResult_return = vkEnc->vkGetSemaphoreWin32HandleKHR(device, pGetWin32HandleInfo, pHandle);
2423 return vkGetSemaphoreWin32HandleKHR_VkResult_return;
2424}
2425#endif
2426#ifdef VK_KHR_external_semaphore_fd
2427static VkResult entry_vkImportSemaphoreFdKHR(
2428 VkDevice device,
2429 const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo)
2430{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002431 AEMU_SCOPED_TRACE("vkImportSemaphoreFdKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002432 auto vkEnc = HostConnection::get()->vkEncoder();
2433 VkResult vkImportSemaphoreFdKHR_VkResult_return = (VkResult)0;
2434 vkImportSemaphoreFdKHR_VkResult_return = vkEnc->vkImportSemaphoreFdKHR(device, pImportSemaphoreFdInfo);
2435 return vkImportSemaphoreFdKHR_VkResult_return;
2436}
2437static VkResult entry_vkGetSemaphoreFdKHR(
2438 VkDevice device,
2439 const VkSemaphoreGetFdInfoKHR* pGetFdInfo,
2440 int* pFd)
2441{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002442 AEMU_SCOPED_TRACE("vkGetSemaphoreFdKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002443 auto vkEnc = HostConnection::get()->vkEncoder();
2444 VkResult vkGetSemaphoreFdKHR_VkResult_return = (VkResult)0;
2445 vkGetSemaphoreFdKHR_VkResult_return = vkEnc->vkGetSemaphoreFdKHR(device, pGetFdInfo, pFd);
2446 return vkGetSemaphoreFdKHR_VkResult_return;
2447}
2448#endif
2449#ifdef VK_KHR_push_descriptor
2450static void entry_vkCmdPushDescriptorSetKHR(
2451 VkCommandBuffer commandBuffer,
2452 VkPipelineBindPoint pipelineBindPoint,
2453 VkPipelineLayout layout,
2454 uint32_t set,
2455 uint32_t descriptorWriteCount,
2456 const VkWriteDescriptorSet* pDescriptorWrites)
2457{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002458 AEMU_SCOPED_TRACE("vkCmdPushDescriptorSetKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002459 auto vkEnc = HostConnection::get()->vkEncoder();
2460 vkEnc->vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites);
2461}
2462static void entry_vkCmdPushDescriptorSetWithTemplateKHR(
2463 VkCommandBuffer commandBuffer,
2464 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
2465 VkPipelineLayout layout,
2466 uint32_t set,
2467 const void* pData)
2468{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002469 AEMU_SCOPED_TRACE("vkCmdPushDescriptorSetWithTemplateKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002470 auto vkEnc = HostConnection::get()->vkEncoder();
2471 vkEnc->vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData);
2472}
2473#endif
2474#ifdef VK_KHR_16bit_storage
2475#endif
2476#ifdef VK_KHR_incremental_present
2477#endif
2478#ifdef VK_KHR_descriptor_update_template
2479static VkResult entry_vkCreateDescriptorUpdateTemplateKHR(
2480 VkDevice device,
2481 const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
2482 const VkAllocationCallbacks* pAllocator,
2483 VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate)
2484{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002485 AEMU_SCOPED_TRACE("vkCreateDescriptorUpdateTemplateKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002486 auto vkEnc = HostConnection::get()->vkEncoder();
2487 VkResult vkCreateDescriptorUpdateTemplateKHR_VkResult_return = (VkResult)0;
2488 vkCreateDescriptorUpdateTemplateKHR_VkResult_return = vkEnc->vkCreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate);
2489 return vkCreateDescriptorUpdateTemplateKHR_VkResult_return;
2490}
2491static void entry_vkDestroyDescriptorUpdateTemplateKHR(
2492 VkDevice device,
2493 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
2494 const VkAllocationCallbacks* pAllocator)
2495{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002496 AEMU_SCOPED_TRACE("vkDestroyDescriptorUpdateTemplateKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002497 auto vkEnc = HostConnection::get()->vkEncoder();
2498 vkEnc->vkDestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator);
2499}
2500static void entry_vkUpdateDescriptorSetWithTemplateKHR(
2501 VkDevice device,
2502 VkDescriptorSet descriptorSet,
2503 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
2504 const void* pData)
2505{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002506 AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplateKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002507 auto vkEnc = HostConnection::get()->vkEncoder();
2508 vkEnc->vkUpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData);
2509}
2510#endif
2511#ifdef VK_KHR_create_renderpass2
2512static VkResult entry_vkCreateRenderPass2KHR(
2513 VkDevice device,
2514 const VkRenderPassCreateInfo2KHR* pCreateInfo,
2515 const VkAllocationCallbacks* pAllocator,
2516 VkRenderPass* pRenderPass)
2517{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002518 AEMU_SCOPED_TRACE("vkCreateRenderPass2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002519 auto vkEnc = HostConnection::get()->vkEncoder();
2520 VkResult vkCreateRenderPass2KHR_VkResult_return = (VkResult)0;
2521 vkCreateRenderPass2KHR_VkResult_return = vkEnc->vkCreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass);
2522 return vkCreateRenderPass2KHR_VkResult_return;
2523}
2524static void entry_vkCmdBeginRenderPass2KHR(
2525 VkCommandBuffer commandBuffer,
2526 const VkRenderPassBeginInfo* pRenderPassBegin,
2527 const VkSubpassBeginInfoKHR* pSubpassBeginInfo)
2528{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002529 AEMU_SCOPED_TRACE("vkCmdBeginRenderPass2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002530 auto vkEnc = HostConnection::get()->vkEncoder();
2531 vkEnc->vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo);
2532}
2533static void entry_vkCmdNextSubpass2KHR(
2534 VkCommandBuffer commandBuffer,
2535 const VkSubpassBeginInfoKHR* pSubpassBeginInfo,
2536 const VkSubpassEndInfoKHR* pSubpassEndInfo)
2537{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002538 AEMU_SCOPED_TRACE("vkCmdNextSubpass2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002539 auto vkEnc = HostConnection::get()->vkEncoder();
2540 vkEnc->vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo);
2541}
2542static void entry_vkCmdEndRenderPass2KHR(
2543 VkCommandBuffer commandBuffer,
2544 const VkSubpassEndInfoKHR* pSubpassEndInfo)
2545{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002546 AEMU_SCOPED_TRACE("vkCmdEndRenderPass2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002547 auto vkEnc = HostConnection::get()->vkEncoder();
2548 vkEnc->vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo);
2549}
2550#endif
2551#ifdef VK_KHR_shared_presentable_image
2552static VkResult entry_vkGetSwapchainStatusKHR(
2553 VkDevice device,
2554 VkSwapchainKHR swapchain)
2555{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002556 AEMU_SCOPED_TRACE("vkGetSwapchainStatusKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002557 auto vkEnc = HostConnection::get()->vkEncoder();
2558 VkResult vkGetSwapchainStatusKHR_VkResult_return = (VkResult)0;
2559 vkGetSwapchainStatusKHR_VkResult_return = vkEnc->vkGetSwapchainStatusKHR(device, swapchain);
2560 return vkGetSwapchainStatusKHR_VkResult_return;
2561}
2562#endif
2563#ifdef VK_KHR_external_fence_capabilities
2564static void entry_vkGetPhysicalDeviceExternalFencePropertiesKHR(
2565 VkPhysicalDevice physicalDevice,
2566 const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
2567 VkExternalFenceProperties* pExternalFenceProperties)
2568{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002569 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalFencePropertiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002570 auto vkEnc = HostConnection::get()->vkEncoder();
2571 vkEnc->vkGetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice, pExternalFenceInfo, pExternalFenceProperties);
2572}
2573#endif
2574#ifdef VK_KHR_external_fence
2575#endif
2576#ifdef VK_KHR_external_fence_win32
2577static VkResult entry_vkImportFenceWin32HandleKHR(
2578 VkDevice device,
2579 const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo)
2580{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002581 AEMU_SCOPED_TRACE("vkImportFenceWin32HandleKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002582 auto vkEnc = HostConnection::get()->vkEncoder();
2583 VkResult vkImportFenceWin32HandleKHR_VkResult_return = (VkResult)0;
2584 vkImportFenceWin32HandleKHR_VkResult_return = vkEnc->vkImportFenceWin32HandleKHR(device, pImportFenceWin32HandleInfo);
2585 return vkImportFenceWin32HandleKHR_VkResult_return;
2586}
2587static VkResult entry_vkGetFenceWin32HandleKHR(
2588 VkDevice device,
2589 const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo,
2590 HANDLE* pHandle)
2591{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002592 AEMU_SCOPED_TRACE("vkGetFenceWin32HandleKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002593 auto vkEnc = HostConnection::get()->vkEncoder();
2594 VkResult vkGetFenceWin32HandleKHR_VkResult_return = (VkResult)0;
2595 vkGetFenceWin32HandleKHR_VkResult_return = vkEnc->vkGetFenceWin32HandleKHR(device, pGetWin32HandleInfo, pHandle);
2596 return vkGetFenceWin32HandleKHR_VkResult_return;
2597}
2598#endif
2599#ifdef VK_KHR_external_fence_fd
2600static VkResult entry_vkImportFenceFdKHR(
2601 VkDevice device,
2602 const VkImportFenceFdInfoKHR* pImportFenceFdInfo)
2603{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002604 AEMU_SCOPED_TRACE("vkImportFenceFdKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002605 auto vkEnc = HostConnection::get()->vkEncoder();
2606 VkResult vkImportFenceFdKHR_VkResult_return = (VkResult)0;
2607 vkImportFenceFdKHR_VkResult_return = vkEnc->vkImportFenceFdKHR(device, pImportFenceFdInfo);
2608 return vkImportFenceFdKHR_VkResult_return;
2609}
2610static VkResult entry_vkGetFenceFdKHR(
2611 VkDevice device,
2612 const VkFenceGetFdInfoKHR* pGetFdInfo,
2613 int* pFd)
2614{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002615 AEMU_SCOPED_TRACE("vkGetFenceFdKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002616 auto vkEnc = HostConnection::get()->vkEncoder();
2617 VkResult vkGetFenceFdKHR_VkResult_return = (VkResult)0;
2618 vkGetFenceFdKHR_VkResult_return = vkEnc->vkGetFenceFdKHR(device, pGetFdInfo, pFd);
2619 return vkGetFenceFdKHR_VkResult_return;
2620}
2621#endif
2622#ifdef VK_KHR_maintenance2
2623#endif
2624#ifdef VK_KHR_get_surface_capabilities2
2625static VkResult entry_vkGetPhysicalDeviceSurfaceCapabilities2KHR(
2626 VkPhysicalDevice physicalDevice,
2627 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
2628 VkSurfaceCapabilities2KHR* pSurfaceCapabilities)
2629{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002630 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceCapabilities2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002631 auto vkEnc = HostConnection::get()->vkEncoder();
2632 VkResult vkGetPhysicalDeviceSurfaceCapabilities2KHR_VkResult_return = (VkResult)0;
2633 vkGetPhysicalDeviceSurfaceCapabilities2KHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, pSurfaceInfo, pSurfaceCapabilities);
2634 return vkGetPhysicalDeviceSurfaceCapabilities2KHR_VkResult_return;
2635}
2636static VkResult entry_vkGetPhysicalDeviceSurfaceFormats2KHR(
2637 VkPhysicalDevice physicalDevice,
2638 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
2639 uint32_t* pSurfaceFormatCount,
2640 VkSurfaceFormat2KHR* pSurfaceFormats)
2641{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002642 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceFormats2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002643 auto vkEnc = HostConnection::get()->vkEncoder();
2644 VkResult vkGetPhysicalDeviceSurfaceFormats2KHR_VkResult_return = (VkResult)0;
2645 vkGetPhysicalDeviceSurfaceFormats2KHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceFormats2KHR(physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats);
2646 return vkGetPhysicalDeviceSurfaceFormats2KHR_VkResult_return;
2647}
2648#endif
2649#ifdef VK_KHR_variable_pointers
2650#endif
2651#ifdef VK_KHR_get_display_properties2
2652static VkResult entry_vkGetPhysicalDeviceDisplayProperties2KHR(
2653 VkPhysicalDevice physicalDevice,
2654 uint32_t* pPropertyCount,
2655 VkDisplayProperties2KHR* pProperties)
2656{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002657 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002658 auto vkEnc = HostConnection::get()->vkEncoder();
2659 VkResult vkGetPhysicalDeviceDisplayProperties2KHR_VkResult_return = (VkResult)0;
2660 vkGetPhysicalDeviceDisplayProperties2KHR_VkResult_return = vkEnc->vkGetPhysicalDeviceDisplayProperties2KHR(physicalDevice, pPropertyCount, pProperties);
2661 return vkGetPhysicalDeviceDisplayProperties2KHR_VkResult_return;
2662}
2663static VkResult entry_vkGetPhysicalDeviceDisplayPlaneProperties2KHR(
2664 VkPhysicalDevice physicalDevice,
2665 uint32_t* pPropertyCount,
2666 VkDisplayPlaneProperties2KHR* pProperties)
2667{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002668 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayPlaneProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002669 auto vkEnc = HostConnection::get()->vkEncoder();
2670 VkResult vkGetPhysicalDeviceDisplayPlaneProperties2KHR_VkResult_return = (VkResult)0;
2671 vkGetPhysicalDeviceDisplayPlaneProperties2KHR_VkResult_return = vkEnc->vkGetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice, pPropertyCount, pProperties);
2672 return vkGetPhysicalDeviceDisplayPlaneProperties2KHR_VkResult_return;
2673}
2674static VkResult entry_vkGetDisplayModeProperties2KHR(
2675 VkPhysicalDevice physicalDevice,
2676 VkDisplayKHR display,
2677 uint32_t* pPropertyCount,
2678 VkDisplayModeProperties2KHR* pProperties)
2679{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002680 AEMU_SCOPED_TRACE("vkGetDisplayModeProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002681 auto vkEnc = HostConnection::get()->vkEncoder();
2682 VkResult vkGetDisplayModeProperties2KHR_VkResult_return = (VkResult)0;
2683 vkGetDisplayModeProperties2KHR_VkResult_return = vkEnc->vkGetDisplayModeProperties2KHR(physicalDevice, display, pPropertyCount, pProperties);
2684 return vkGetDisplayModeProperties2KHR_VkResult_return;
2685}
2686static VkResult entry_vkGetDisplayPlaneCapabilities2KHR(
2687 VkPhysicalDevice physicalDevice,
2688 const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo,
2689 VkDisplayPlaneCapabilities2KHR* pCapabilities)
2690{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002691 AEMU_SCOPED_TRACE("vkGetDisplayPlaneCapabilities2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002692 auto vkEnc = HostConnection::get()->vkEncoder();
2693 VkResult vkGetDisplayPlaneCapabilities2KHR_VkResult_return = (VkResult)0;
2694 vkGetDisplayPlaneCapabilities2KHR_VkResult_return = vkEnc->vkGetDisplayPlaneCapabilities2KHR(physicalDevice, pDisplayPlaneInfo, pCapabilities);
2695 return vkGetDisplayPlaneCapabilities2KHR_VkResult_return;
2696}
2697#endif
2698#ifdef VK_KHR_dedicated_allocation
2699#endif
2700#ifdef VK_KHR_storage_buffer_storage_class
2701#endif
2702#ifdef VK_KHR_relaxed_block_layout
2703#endif
2704#ifdef VK_KHR_get_memory_requirements2
2705static void entry_vkGetImageMemoryRequirements2KHR(
2706 VkDevice device,
2707 const VkImageMemoryRequirementsInfo2* pInfo,
2708 VkMemoryRequirements2* pMemoryRequirements)
2709{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002710 AEMU_SCOPED_TRACE("vkGetImageMemoryRequirements2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002711 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang4af5f322019-02-14 08:10:28 -08002712 auto resources = ResourceTracker::get();
2713 resources->on_vkGetImageMemoryRequirements2KHR(vkEnc, device, pInfo, pMemoryRequirements);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002714}
2715static void entry_vkGetBufferMemoryRequirements2KHR(
2716 VkDevice device,
2717 const VkBufferMemoryRequirementsInfo2* pInfo,
2718 VkMemoryRequirements2* pMemoryRequirements)
2719{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002720 AEMU_SCOPED_TRACE("vkGetBufferMemoryRequirements2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002721 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang4af5f322019-02-14 08:10:28 -08002722 auto resources = ResourceTracker::get();
2723 resources->on_vkGetBufferMemoryRequirements2KHR(vkEnc, device, pInfo, pMemoryRequirements);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002724}
2725static void entry_vkGetImageSparseMemoryRequirements2KHR(
2726 VkDevice device,
2727 const VkImageSparseMemoryRequirementsInfo2* pInfo,
2728 uint32_t* pSparseMemoryRequirementCount,
2729 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements)
2730{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002731 AEMU_SCOPED_TRACE("vkGetImageSparseMemoryRequirements2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002732 auto vkEnc = HostConnection::get()->vkEncoder();
2733 vkEnc->vkGetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements);
2734}
2735#endif
2736#ifdef VK_KHR_image_format_list
2737#endif
2738#ifdef VK_KHR_sampler_ycbcr_conversion
2739static VkResult entry_vkCreateSamplerYcbcrConversionKHR(
2740 VkDevice device,
2741 const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
2742 const VkAllocationCallbacks* pAllocator,
2743 VkSamplerYcbcrConversion* pYcbcrConversion)
2744{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002745 AEMU_SCOPED_TRACE("vkCreateSamplerYcbcrConversionKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002746 auto vkEnc = HostConnection::get()->vkEncoder();
2747 VkResult vkCreateSamplerYcbcrConversionKHR_VkResult_return = (VkResult)0;
2748 vkCreateSamplerYcbcrConversionKHR_VkResult_return = vkEnc->vkCreateSamplerYcbcrConversionKHR(device, pCreateInfo, pAllocator, pYcbcrConversion);
2749 return vkCreateSamplerYcbcrConversionKHR_VkResult_return;
2750}
2751static void entry_vkDestroySamplerYcbcrConversionKHR(
2752 VkDevice device,
2753 VkSamplerYcbcrConversion ycbcrConversion,
2754 const VkAllocationCallbacks* pAllocator)
2755{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002756 AEMU_SCOPED_TRACE("vkDestroySamplerYcbcrConversionKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002757 auto vkEnc = HostConnection::get()->vkEncoder();
2758 vkEnc->vkDestroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator);
2759}
2760#endif
2761#ifdef VK_KHR_bind_memory2
2762static VkResult entry_vkBindBufferMemory2KHR(
2763 VkDevice device,
2764 uint32_t bindInfoCount,
2765 const VkBindBufferMemoryInfo* pBindInfos)
2766{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002767 AEMU_SCOPED_TRACE("vkBindBufferMemory2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002768 auto vkEnc = HostConnection::get()->vkEncoder();
2769 VkResult vkBindBufferMemory2KHR_VkResult_return = (VkResult)0;
Lingfeng Yang4af5f322019-02-14 08:10:28 -08002770 auto resources = ResourceTracker::get();
2771 vkBindBufferMemory2KHR_VkResult_return = resources->on_vkBindBufferMemory2KHR(vkEnc, VK_SUCCESS, device, bindInfoCount, pBindInfos);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002772 return vkBindBufferMemory2KHR_VkResult_return;
2773}
2774static VkResult entry_vkBindImageMemory2KHR(
2775 VkDevice device,
2776 uint32_t bindInfoCount,
2777 const VkBindImageMemoryInfo* pBindInfos)
2778{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002779 AEMU_SCOPED_TRACE("vkBindImageMemory2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002780 auto vkEnc = HostConnection::get()->vkEncoder();
2781 VkResult vkBindImageMemory2KHR_VkResult_return = (VkResult)0;
Lingfeng Yang4af5f322019-02-14 08:10:28 -08002782 auto resources = ResourceTracker::get();
2783 vkBindImageMemory2KHR_VkResult_return = resources->on_vkBindImageMemory2KHR(vkEnc, VK_SUCCESS, device, bindInfoCount, pBindInfos);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002784 return vkBindImageMemory2KHR_VkResult_return;
2785}
2786#endif
2787#ifdef VK_KHR_maintenance3
2788static void entry_vkGetDescriptorSetLayoutSupportKHR(
2789 VkDevice device,
2790 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
2791 VkDescriptorSetLayoutSupport* pSupport)
2792{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002793 AEMU_SCOPED_TRACE("vkGetDescriptorSetLayoutSupportKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002794 auto vkEnc = HostConnection::get()->vkEncoder();
2795 vkEnc->vkGetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport);
2796}
2797#endif
2798#ifdef VK_KHR_draw_indirect_count
2799static void entry_vkCmdDrawIndirectCountKHR(
2800 VkCommandBuffer commandBuffer,
2801 VkBuffer buffer,
2802 VkDeviceSize offset,
2803 VkBuffer countBuffer,
2804 VkDeviceSize countBufferOffset,
2805 uint32_t maxDrawCount,
2806 uint32_t stride)
2807{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002808 AEMU_SCOPED_TRACE("vkCmdDrawIndirectCountKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002809 auto vkEnc = HostConnection::get()->vkEncoder();
2810 vkEnc->vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
2811}
2812static void entry_vkCmdDrawIndexedIndirectCountKHR(
2813 VkCommandBuffer commandBuffer,
2814 VkBuffer buffer,
2815 VkDeviceSize offset,
2816 VkBuffer countBuffer,
2817 VkDeviceSize countBufferOffset,
2818 uint32_t maxDrawCount,
2819 uint32_t stride)
2820{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002821 AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirectCountKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002822 auto vkEnc = HostConnection::get()->vkEncoder();
2823 vkEnc->vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
2824}
2825#endif
2826#ifdef VK_KHR_8bit_storage
2827#endif
Lingfeng Yang808a6312018-11-13 21:06:15 -08002828#ifdef VK_ANDROID_native_buffer
2829static VkResult entry_vkGetSwapchainGrallocUsageANDROID(
2830 VkDevice device,
2831 VkFormat format,
2832 VkImageUsageFlags imageUsage,
2833 int* grallocUsage)
2834{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002835 AEMU_SCOPED_TRACE("vkGetSwapchainGrallocUsageANDROID");
Lingfeng Yang808a6312018-11-13 21:06:15 -08002836 auto vkEnc = HostConnection::get()->vkEncoder();
2837 VkResult vkGetSwapchainGrallocUsageANDROID_VkResult_return = (VkResult)0;
2838 vkGetSwapchainGrallocUsageANDROID_VkResult_return = vkEnc->vkGetSwapchainGrallocUsageANDROID(device, format, imageUsage, grallocUsage);
2839 return vkGetSwapchainGrallocUsageANDROID_VkResult_return;
2840}
2841static VkResult entry_vkAcquireImageANDROID(
2842 VkDevice device,
2843 VkImage image,
2844 int nativeFenceFd,
2845 VkSemaphore semaphore,
2846 VkFence fence)
2847{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002848 AEMU_SCOPED_TRACE("vkAcquireImageANDROID");
Lingfeng Yang808a6312018-11-13 21:06:15 -08002849 auto vkEnc = HostConnection::get()->vkEncoder();
2850 VkResult vkAcquireImageANDROID_VkResult_return = (VkResult)0;
2851 vkAcquireImageANDROID_VkResult_return = vkEnc->vkAcquireImageANDROID(device, image, nativeFenceFd, semaphore, fence);
2852 return vkAcquireImageANDROID_VkResult_return;
2853}
2854static VkResult entry_vkQueueSignalReleaseImageANDROID(
2855 VkQueue queue,
2856 uint32_t waitSemaphoreCount,
2857 const VkSemaphore* pWaitSemaphores,
2858 VkImage image,
2859 int* pNativeFenceFd)
2860{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002861 AEMU_SCOPED_TRACE("vkQueueSignalReleaseImageANDROID");
Lingfeng Yang808a6312018-11-13 21:06:15 -08002862 auto vkEnc = HostConnection::get()->vkEncoder();
2863 VkResult vkQueueSignalReleaseImageANDROID_VkResult_return = (VkResult)0;
2864 vkQueueSignalReleaseImageANDROID_VkResult_return = vkEnc->vkQueueSignalReleaseImageANDROID(queue, waitSemaphoreCount, pWaitSemaphores, image, pNativeFenceFd);
2865 return vkQueueSignalReleaseImageANDROID_VkResult_return;
2866}
2867#endif
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002868#ifdef VK_EXT_debug_report
2869static VkResult entry_vkCreateDebugReportCallbackEXT(
2870 VkInstance instance,
2871 const VkDebugReportCallbackCreateInfoEXT* pCreateInfo,
2872 const VkAllocationCallbacks* pAllocator,
2873 VkDebugReportCallbackEXT* pCallback)
2874{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002875 AEMU_SCOPED_TRACE("vkCreateDebugReportCallbackEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002876 auto vkEnc = HostConnection::get()->vkEncoder();
2877 VkResult vkCreateDebugReportCallbackEXT_VkResult_return = (VkResult)0;
2878 vkCreateDebugReportCallbackEXT_VkResult_return = vkEnc->vkCreateDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback);
2879 return vkCreateDebugReportCallbackEXT_VkResult_return;
2880}
2881static void entry_vkDestroyDebugReportCallbackEXT(
2882 VkInstance instance,
2883 VkDebugReportCallbackEXT callback,
2884 const VkAllocationCallbacks* pAllocator)
2885{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002886 AEMU_SCOPED_TRACE("vkDestroyDebugReportCallbackEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002887 auto vkEnc = HostConnection::get()->vkEncoder();
2888 vkEnc->vkDestroyDebugReportCallbackEXT(instance, callback, pAllocator);
2889}
2890static void entry_vkDebugReportMessageEXT(
2891 VkInstance instance,
2892 VkDebugReportFlagsEXT flags,
2893 VkDebugReportObjectTypeEXT objectType,
2894 uint64_t object,
2895 size_t location,
2896 int32_t messageCode,
2897 const char* pLayerPrefix,
2898 const char* pMessage)
2899{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002900 AEMU_SCOPED_TRACE("vkDebugReportMessageEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002901 auto vkEnc = HostConnection::get()->vkEncoder();
2902 vkEnc->vkDebugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage);
2903}
2904#endif
2905#ifdef VK_NV_glsl_shader
2906#endif
2907#ifdef VK_EXT_depth_range_unrestricted
2908#endif
2909#ifdef VK_IMG_filter_cubic
2910#endif
2911#ifdef VK_AMD_rasterization_order
2912#endif
2913#ifdef VK_AMD_shader_trinary_minmax
2914#endif
2915#ifdef VK_AMD_shader_explicit_vertex_parameter
2916#endif
2917#ifdef VK_EXT_debug_marker
2918static VkResult entry_vkDebugMarkerSetObjectTagEXT(
2919 VkDevice device,
2920 const VkDebugMarkerObjectTagInfoEXT* pTagInfo)
2921{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002922 AEMU_SCOPED_TRACE("vkDebugMarkerSetObjectTagEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002923 auto vkEnc = HostConnection::get()->vkEncoder();
2924 VkResult vkDebugMarkerSetObjectTagEXT_VkResult_return = (VkResult)0;
2925 vkDebugMarkerSetObjectTagEXT_VkResult_return = vkEnc->vkDebugMarkerSetObjectTagEXT(device, pTagInfo);
2926 return vkDebugMarkerSetObjectTagEXT_VkResult_return;
2927}
2928static VkResult entry_vkDebugMarkerSetObjectNameEXT(
2929 VkDevice device,
2930 const VkDebugMarkerObjectNameInfoEXT* pNameInfo)
2931{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002932 AEMU_SCOPED_TRACE("vkDebugMarkerSetObjectNameEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002933 auto vkEnc = HostConnection::get()->vkEncoder();
2934 VkResult vkDebugMarkerSetObjectNameEXT_VkResult_return = (VkResult)0;
2935 vkDebugMarkerSetObjectNameEXT_VkResult_return = vkEnc->vkDebugMarkerSetObjectNameEXT(device, pNameInfo);
2936 return vkDebugMarkerSetObjectNameEXT_VkResult_return;
2937}
2938static void entry_vkCmdDebugMarkerBeginEXT(
2939 VkCommandBuffer commandBuffer,
2940 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo)
2941{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002942 AEMU_SCOPED_TRACE("vkCmdDebugMarkerBeginEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002943 auto vkEnc = HostConnection::get()->vkEncoder();
2944 vkEnc->vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo);
2945}
2946static void entry_vkCmdDebugMarkerEndEXT(
2947 VkCommandBuffer commandBuffer)
2948{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002949 AEMU_SCOPED_TRACE("vkCmdDebugMarkerEndEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002950 auto vkEnc = HostConnection::get()->vkEncoder();
2951 vkEnc->vkCmdDebugMarkerEndEXT(commandBuffer);
2952}
2953static void entry_vkCmdDebugMarkerInsertEXT(
2954 VkCommandBuffer commandBuffer,
2955 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo)
2956{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002957 AEMU_SCOPED_TRACE("vkCmdDebugMarkerInsertEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002958 auto vkEnc = HostConnection::get()->vkEncoder();
2959 vkEnc->vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo);
2960}
2961#endif
2962#ifdef VK_AMD_gcn_shader
2963#endif
2964#ifdef VK_NV_dedicated_allocation
2965#endif
2966#ifdef VK_AMD_draw_indirect_count
2967static void entry_vkCmdDrawIndirectCountAMD(
2968 VkCommandBuffer commandBuffer,
2969 VkBuffer buffer,
2970 VkDeviceSize offset,
2971 VkBuffer countBuffer,
2972 VkDeviceSize countBufferOffset,
2973 uint32_t maxDrawCount,
2974 uint32_t stride)
2975{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002976 AEMU_SCOPED_TRACE("vkCmdDrawIndirectCountAMD");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002977 auto vkEnc = HostConnection::get()->vkEncoder();
2978 vkEnc->vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
2979}
2980static void entry_vkCmdDrawIndexedIndirectCountAMD(
2981 VkCommandBuffer commandBuffer,
2982 VkBuffer buffer,
2983 VkDeviceSize offset,
2984 VkBuffer countBuffer,
2985 VkDeviceSize countBufferOffset,
2986 uint32_t maxDrawCount,
2987 uint32_t stride)
2988{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002989 AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirectCountAMD");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002990 auto vkEnc = HostConnection::get()->vkEncoder();
2991 vkEnc->vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
2992}
2993#endif
2994#ifdef VK_AMD_negative_viewport_height
2995#endif
2996#ifdef VK_AMD_gpu_shader_half_float
2997#endif
2998#ifdef VK_AMD_shader_ballot
2999#endif
3000#ifdef VK_AMD_texture_gather_bias_lod
3001#endif
3002#ifdef VK_AMD_shader_info
3003static VkResult entry_vkGetShaderInfoAMD(
3004 VkDevice device,
3005 VkPipeline pipeline,
3006 VkShaderStageFlagBits shaderStage,
3007 VkShaderInfoTypeAMD infoType,
3008 size_t* pInfoSize,
3009 void* pInfo)
3010{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003011 AEMU_SCOPED_TRACE("vkGetShaderInfoAMD");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003012 auto vkEnc = HostConnection::get()->vkEncoder();
3013 VkResult vkGetShaderInfoAMD_VkResult_return = (VkResult)0;
3014 vkGetShaderInfoAMD_VkResult_return = vkEnc->vkGetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo);
3015 return vkGetShaderInfoAMD_VkResult_return;
3016}
3017#endif
3018#ifdef VK_AMD_shader_image_load_store_lod
3019#endif
3020#ifdef VK_IMG_format_pvrtc
3021#endif
3022#ifdef VK_NV_external_memory_capabilities
3023static VkResult entry_vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
3024 VkPhysicalDevice physicalDevice,
3025 VkFormat format,
3026 VkImageType type,
3027 VkImageTiling tiling,
3028 VkImageUsageFlags usage,
3029 VkImageCreateFlags flags,
3030 VkExternalMemoryHandleTypeFlagsNV externalHandleType,
3031 VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties)
3032{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003033 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalImageFormatPropertiesNV");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003034 auto vkEnc = HostConnection::get()->vkEncoder();
3035 VkResult vkGetPhysicalDeviceExternalImageFormatPropertiesNV_VkResult_return = (VkResult)0;
3036 vkGetPhysicalDeviceExternalImageFormatPropertiesNV_VkResult_return = vkEnc->vkGetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties);
3037 return vkGetPhysicalDeviceExternalImageFormatPropertiesNV_VkResult_return;
3038}
3039#endif
3040#ifdef VK_NV_external_memory
3041#endif
3042#ifdef VK_NV_external_memory_win32
3043static VkResult entry_vkGetMemoryWin32HandleNV(
3044 VkDevice device,
3045 VkDeviceMemory memory,
3046 VkExternalMemoryHandleTypeFlagsNV handleType,
3047 HANDLE* pHandle)
3048{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003049 AEMU_SCOPED_TRACE("vkGetMemoryWin32HandleNV");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003050 auto vkEnc = HostConnection::get()->vkEncoder();
3051 VkResult vkGetMemoryWin32HandleNV_VkResult_return = (VkResult)0;
3052 vkGetMemoryWin32HandleNV_VkResult_return = vkEnc->vkGetMemoryWin32HandleNV(device, memory, handleType, pHandle);
3053 return vkGetMemoryWin32HandleNV_VkResult_return;
3054}
3055#endif
3056#ifdef VK_NV_win32_keyed_mutex
3057#endif
3058#ifdef VK_EXT_validation_flags
3059#endif
3060#ifdef VK_NN_vi_surface
3061static VkResult entry_vkCreateViSurfaceNN(
3062 VkInstance instance,
3063 const VkViSurfaceCreateInfoNN* pCreateInfo,
3064 const VkAllocationCallbacks* pAllocator,
3065 VkSurfaceKHR* pSurface)
3066{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003067 AEMU_SCOPED_TRACE("vkCreateViSurfaceNN");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003068 auto vkEnc = HostConnection::get()->vkEncoder();
3069 VkResult vkCreateViSurfaceNN_VkResult_return = (VkResult)0;
3070 vkCreateViSurfaceNN_VkResult_return = vkEnc->vkCreateViSurfaceNN(instance, pCreateInfo, pAllocator, pSurface);
3071 return vkCreateViSurfaceNN_VkResult_return;
3072}
3073#endif
3074#ifdef VK_EXT_shader_subgroup_ballot
3075#endif
3076#ifdef VK_EXT_shader_subgroup_vote
3077#endif
3078#ifdef VK_EXT_conditional_rendering
3079static void entry_vkCmdBeginConditionalRenderingEXT(
3080 VkCommandBuffer commandBuffer,
3081 const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin)
3082{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003083 AEMU_SCOPED_TRACE("vkCmdBeginConditionalRenderingEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003084 auto vkEnc = HostConnection::get()->vkEncoder();
3085 vkEnc->vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin);
3086}
3087static void entry_vkCmdEndConditionalRenderingEXT(
3088 VkCommandBuffer commandBuffer)
3089{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003090 AEMU_SCOPED_TRACE("vkCmdEndConditionalRenderingEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003091 auto vkEnc = HostConnection::get()->vkEncoder();
3092 vkEnc->vkCmdEndConditionalRenderingEXT(commandBuffer);
3093}
3094#endif
3095#ifdef VK_NVX_device_generated_commands
3096static void entry_vkCmdProcessCommandsNVX(
3097 VkCommandBuffer commandBuffer,
3098 const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo)
3099{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003100 AEMU_SCOPED_TRACE("vkCmdProcessCommandsNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003101 auto vkEnc = HostConnection::get()->vkEncoder();
3102 vkEnc->vkCmdProcessCommandsNVX(commandBuffer, pProcessCommandsInfo);
3103}
3104static void entry_vkCmdReserveSpaceForCommandsNVX(
3105 VkCommandBuffer commandBuffer,
3106 const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo)
3107{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003108 AEMU_SCOPED_TRACE("vkCmdReserveSpaceForCommandsNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003109 auto vkEnc = HostConnection::get()->vkEncoder();
3110 vkEnc->vkCmdReserveSpaceForCommandsNVX(commandBuffer, pReserveSpaceInfo);
3111}
3112static VkResult entry_vkCreateIndirectCommandsLayoutNVX(
3113 VkDevice device,
3114 const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo,
3115 const VkAllocationCallbacks* pAllocator,
3116 VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout)
3117{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003118 AEMU_SCOPED_TRACE("vkCreateIndirectCommandsLayoutNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003119 auto vkEnc = HostConnection::get()->vkEncoder();
3120 VkResult vkCreateIndirectCommandsLayoutNVX_VkResult_return = (VkResult)0;
3121 vkCreateIndirectCommandsLayoutNVX_VkResult_return = vkEnc->vkCreateIndirectCommandsLayoutNVX(device, pCreateInfo, pAllocator, pIndirectCommandsLayout);
3122 return vkCreateIndirectCommandsLayoutNVX_VkResult_return;
3123}
3124static void entry_vkDestroyIndirectCommandsLayoutNVX(
3125 VkDevice device,
3126 VkIndirectCommandsLayoutNVX indirectCommandsLayout,
3127 const VkAllocationCallbacks* pAllocator)
3128{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003129 AEMU_SCOPED_TRACE("vkDestroyIndirectCommandsLayoutNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003130 auto vkEnc = HostConnection::get()->vkEncoder();
3131 vkEnc->vkDestroyIndirectCommandsLayoutNVX(device, indirectCommandsLayout, pAllocator);
3132}
3133static VkResult entry_vkCreateObjectTableNVX(
3134 VkDevice device,
3135 const VkObjectTableCreateInfoNVX* pCreateInfo,
3136 const VkAllocationCallbacks* pAllocator,
3137 VkObjectTableNVX* pObjectTable)
3138{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003139 AEMU_SCOPED_TRACE("vkCreateObjectTableNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003140 auto vkEnc = HostConnection::get()->vkEncoder();
3141 VkResult vkCreateObjectTableNVX_VkResult_return = (VkResult)0;
3142 vkCreateObjectTableNVX_VkResult_return = vkEnc->vkCreateObjectTableNVX(device, pCreateInfo, pAllocator, pObjectTable);
3143 return vkCreateObjectTableNVX_VkResult_return;
3144}
3145static void entry_vkDestroyObjectTableNVX(
3146 VkDevice device,
3147 VkObjectTableNVX objectTable,
3148 const VkAllocationCallbacks* pAllocator)
3149{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003150 AEMU_SCOPED_TRACE("vkDestroyObjectTableNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003151 auto vkEnc = HostConnection::get()->vkEncoder();
3152 vkEnc->vkDestroyObjectTableNVX(device, objectTable, pAllocator);
3153}
3154static VkResult entry_vkRegisterObjectsNVX(
3155 VkDevice device,
3156 VkObjectTableNVX objectTable,
3157 uint32_t objectCount,
3158 const VkObjectTableEntryNVX* const* ppObjectTableEntries,
3159 const uint32_t* pObjectIndices)
3160{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003161 AEMU_SCOPED_TRACE("vkRegisterObjectsNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003162 auto vkEnc = HostConnection::get()->vkEncoder();
3163 VkResult vkRegisterObjectsNVX_VkResult_return = (VkResult)0;
3164 vkRegisterObjectsNVX_VkResult_return = vkEnc->vkRegisterObjectsNVX(device, objectTable, objectCount, ppObjectTableEntries, pObjectIndices);
3165 return vkRegisterObjectsNVX_VkResult_return;
3166}
3167static VkResult entry_vkUnregisterObjectsNVX(
3168 VkDevice device,
3169 VkObjectTableNVX objectTable,
3170 uint32_t objectCount,
3171 const VkObjectEntryTypeNVX* pObjectEntryTypes,
3172 const uint32_t* pObjectIndices)
3173{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003174 AEMU_SCOPED_TRACE("vkUnregisterObjectsNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003175 auto vkEnc = HostConnection::get()->vkEncoder();
3176 VkResult vkUnregisterObjectsNVX_VkResult_return = (VkResult)0;
3177 vkUnregisterObjectsNVX_VkResult_return = vkEnc->vkUnregisterObjectsNVX(device, objectTable, objectCount, pObjectEntryTypes, pObjectIndices);
3178 return vkUnregisterObjectsNVX_VkResult_return;
3179}
3180static void entry_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX(
3181 VkPhysicalDevice physicalDevice,
3182 VkDeviceGeneratedCommandsFeaturesNVX* pFeatures,
3183 VkDeviceGeneratedCommandsLimitsNVX* pLimits)
3184{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003185 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003186 auto vkEnc = HostConnection::get()->vkEncoder();
3187 vkEnc->vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX(physicalDevice, pFeatures, pLimits);
3188}
3189#endif
3190#ifdef VK_NV_clip_space_w_scaling
3191static void entry_vkCmdSetViewportWScalingNV(
3192 VkCommandBuffer commandBuffer,
3193 uint32_t firstViewport,
3194 uint32_t viewportCount,
3195 const VkViewportWScalingNV* pViewportWScalings)
3196{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003197 AEMU_SCOPED_TRACE("vkCmdSetViewportWScalingNV");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003198 auto vkEnc = HostConnection::get()->vkEncoder();
3199 vkEnc->vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings);
3200}
3201#endif
3202#ifdef VK_EXT_direct_mode_display
3203static VkResult entry_vkReleaseDisplayEXT(
3204 VkPhysicalDevice physicalDevice,
3205 VkDisplayKHR display)
3206{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003207 AEMU_SCOPED_TRACE("vkReleaseDisplayEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003208 auto vkEnc = HostConnection::get()->vkEncoder();
3209 VkResult vkReleaseDisplayEXT_VkResult_return = (VkResult)0;
3210 vkReleaseDisplayEXT_VkResult_return = vkEnc->vkReleaseDisplayEXT(physicalDevice, display);
3211 return vkReleaseDisplayEXT_VkResult_return;
3212}
3213#endif
3214#ifdef VK_EXT_acquire_xlib_display
3215static VkResult entry_vkAcquireXlibDisplayEXT(
3216 VkPhysicalDevice physicalDevice,
3217 Display* dpy,
3218 VkDisplayKHR display)
3219{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003220 AEMU_SCOPED_TRACE("vkAcquireXlibDisplayEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003221 auto vkEnc = HostConnection::get()->vkEncoder();
3222 VkResult vkAcquireXlibDisplayEXT_VkResult_return = (VkResult)0;
3223 vkAcquireXlibDisplayEXT_VkResult_return = vkEnc->vkAcquireXlibDisplayEXT(physicalDevice, dpy, display);
3224 return vkAcquireXlibDisplayEXT_VkResult_return;
3225}
3226static VkResult entry_vkGetRandROutputDisplayEXT(
3227 VkPhysicalDevice physicalDevice,
3228 Display* dpy,
3229 RROutput rrOutput,
3230 VkDisplayKHR* pDisplay)
3231{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003232 AEMU_SCOPED_TRACE("vkGetRandROutputDisplayEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003233 auto vkEnc = HostConnection::get()->vkEncoder();
3234 VkResult vkGetRandROutputDisplayEXT_VkResult_return = (VkResult)0;
3235 vkGetRandROutputDisplayEXT_VkResult_return = vkEnc->vkGetRandROutputDisplayEXT(physicalDevice, dpy, rrOutput, pDisplay);
3236 return vkGetRandROutputDisplayEXT_VkResult_return;
3237}
3238#endif
3239#ifdef VK_EXT_display_surface_counter
3240static VkResult entry_vkGetPhysicalDeviceSurfaceCapabilities2EXT(
3241 VkPhysicalDevice physicalDevice,
3242 VkSurfaceKHR surface,
3243 VkSurfaceCapabilities2EXT* pSurfaceCapabilities)
3244{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003245 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceCapabilities2EXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003246 auto vkEnc = HostConnection::get()->vkEncoder();
3247 VkResult vkGetPhysicalDeviceSurfaceCapabilities2EXT_VkResult_return = (VkResult)0;
3248 vkGetPhysicalDeviceSurfaceCapabilities2EXT_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities);
3249 return vkGetPhysicalDeviceSurfaceCapabilities2EXT_VkResult_return;
3250}
3251#endif
3252#ifdef VK_EXT_display_control
3253static VkResult entry_vkDisplayPowerControlEXT(
3254 VkDevice device,
3255 VkDisplayKHR display,
3256 const VkDisplayPowerInfoEXT* pDisplayPowerInfo)
3257{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003258 AEMU_SCOPED_TRACE("vkDisplayPowerControlEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003259 auto vkEnc = HostConnection::get()->vkEncoder();
3260 VkResult vkDisplayPowerControlEXT_VkResult_return = (VkResult)0;
3261 vkDisplayPowerControlEXT_VkResult_return = vkEnc->vkDisplayPowerControlEXT(device, display, pDisplayPowerInfo);
3262 return vkDisplayPowerControlEXT_VkResult_return;
3263}
3264static VkResult entry_vkRegisterDeviceEventEXT(
3265 VkDevice device,
3266 const VkDeviceEventInfoEXT* pDeviceEventInfo,
3267 const VkAllocationCallbacks* pAllocator,
3268 VkFence* pFence)
3269{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003270 AEMU_SCOPED_TRACE("vkRegisterDeviceEventEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003271 auto vkEnc = HostConnection::get()->vkEncoder();
3272 VkResult vkRegisterDeviceEventEXT_VkResult_return = (VkResult)0;
3273 vkRegisterDeviceEventEXT_VkResult_return = vkEnc->vkRegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence);
3274 return vkRegisterDeviceEventEXT_VkResult_return;
3275}
3276static VkResult entry_vkRegisterDisplayEventEXT(
3277 VkDevice device,
3278 VkDisplayKHR display,
3279 const VkDisplayEventInfoEXT* pDisplayEventInfo,
3280 const VkAllocationCallbacks* pAllocator,
3281 VkFence* pFence)
3282{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003283 AEMU_SCOPED_TRACE("vkRegisterDisplayEventEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003284 auto vkEnc = HostConnection::get()->vkEncoder();
3285 VkResult vkRegisterDisplayEventEXT_VkResult_return = (VkResult)0;
3286 vkRegisterDisplayEventEXT_VkResult_return = vkEnc->vkRegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence);
3287 return vkRegisterDisplayEventEXT_VkResult_return;
3288}
3289static VkResult entry_vkGetSwapchainCounterEXT(
3290 VkDevice device,
3291 VkSwapchainKHR swapchain,
3292 VkSurfaceCounterFlagBitsEXT counter,
3293 uint64_t* pCounterValue)
3294{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003295 AEMU_SCOPED_TRACE("vkGetSwapchainCounterEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003296 auto vkEnc = HostConnection::get()->vkEncoder();
3297 VkResult vkGetSwapchainCounterEXT_VkResult_return = (VkResult)0;
3298 vkGetSwapchainCounterEXT_VkResult_return = vkEnc->vkGetSwapchainCounterEXT(device, swapchain, counter, pCounterValue);
3299 return vkGetSwapchainCounterEXT_VkResult_return;
3300}
3301#endif
3302#ifdef VK_GOOGLE_display_timing
3303static VkResult entry_vkGetRefreshCycleDurationGOOGLE(
3304 VkDevice device,
3305 VkSwapchainKHR swapchain,
3306 VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties)
3307{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003308 AEMU_SCOPED_TRACE("vkGetRefreshCycleDurationGOOGLE");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003309 auto vkEnc = HostConnection::get()->vkEncoder();
3310 VkResult vkGetRefreshCycleDurationGOOGLE_VkResult_return = (VkResult)0;
3311 vkGetRefreshCycleDurationGOOGLE_VkResult_return = vkEnc->vkGetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties);
3312 return vkGetRefreshCycleDurationGOOGLE_VkResult_return;
3313}
3314static VkResult entry_vkGetPastPresentationTimingGOOGLE(
3315 VkDevice device,
3316 VkSwapchainKHR swapchain,
3317 uint32_t* pPresentationTimingCount,
3318 VkPastPresentationTimingGOOGLE* pPresentationTimings)
3319{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003320 AEMU_SCOPED_TRACE("vkGetPastPresentationTimingGOOGLE");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003321 auto vkEnc = HostConnection::get()->vkEncoder();
3322 VkResult vkGetPastPresentationTimingGOOGLE_VkResult_return = (VkResult)0;
3323 vkGetPastPresentationTimingGOOGLE_VkResult_return = vkEnc->vkGetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings);
3324 return vkGetPastPresentationTimingGOOGLE_VkResult_return;
3325}
3326#endif
3327#ifdef VK_NV_sample_mask_override_coverage
3328#endif
3329#ifdef VK_NV_geometry_shader_passthrough
3330#endif
3331#ifdef VK_NV_viewport_array2
3332#endif
3333#ifdef VK_NVX_multiview_per_view_attributes
3334#endif
3335#ifdef VK_NV_viewport_swizzle
3336#endif
3337#ifdef VK_EXT_discard_rectangles
3338static void entry_vkCmdSetDiscardRectangleEXT(
3339 VkCommandBuffer commandBuffer,
3340 uint32_t firstDiscardRectangle,
3341 uint32_t discardRectangleCount,
3342 const VkRect2D* pDiscardRectangles)
3343{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003344 AEMU_SCOPED_TRACE("vkCmdSetDiscardRectangleEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003345 auto vkEnc = HostConnection::get()->vkEncoder();
3346 vkEnc->vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles);
3347}
3348#endif
3349#ifdef VK_EXT_conservative_rasterization
3350#endif
3351#ifdef VK_EXT_swapchain_colorspace
3352#endif
3353#ifdef VK_EXT_hdr_metadata
3354static void entry_vkSetHdrMetadataEXT(
3355 VkDevice device,
3356 uint32_t swapchainCount,
3357 const VkSwapchainKHR* pSwapchains,
3358 const VkHdrMetadataEXT* pMetadata)
3359{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003360 AEMU_SCOPED_TRACE("vkSetHdrMetadataEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003361 auto vkEnc = HostConnection::get()->vkEncoder();
3362 vkEnc->vkSetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata);
3363}
3364#endif
3365#ifdef VK_MVK_ios_surface
3366static VkResult entry_vkCreateIOSSurfaceMVK(
3367 VkInstance instance,
3368 const VkIOSSurfaceCreateInfoMVK* pCreateInfo,
3369 const VkAllocationCallbacks* pAllocator,
3370 VkSurfaceKHR* pSurface)
3371{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003372 AEMU_SCOPED_TRACE("vkCreateIOSSurfaceMVK");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003373 auto vkEnc = HostConnection::get()->vkEncoder();
3374 VkResult vkCreateIOSSurfaceMVK_VkResult_return = (VkResult)0;
3375 vkCreateIOSSurfaceMVK_VkResult_return = vkEnc->vkCreateIOSSurfaceMVK(instance, pCreateInfo, pAllocator, pSurface);
3376 return vkCreateIOSSurfaceMVK_VkResult_return;
3377}
3378#endif
3379#ifdef VK_MVK_macos_surface
3380static VkResult entry_vkCreateMacOSSurfaceMVK(
3381 VkInstance instance,
3382 const VkMacOSSurfaceCreateInfoMVK* pCreateInfo,
3383 const VkAllocationCallbacks* pAllocator,
3384 VkSurfaceKHR* pSurface)
3385{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003386 AEMU_SCOPED_TRACE("vkCreateMacOSSurfaceMVK");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003387 auto vkEnc = HostConnection::get()->vkEncoder();
3388 VkResult vkCreateMacOSSurfaceMVK_VkResult_return = (VkResult)0;
3389 vkCreateMacOSSurfaceMVK_VkResult_return = vkEnc->vkCreateMacOSSurfaceMVK(instance, pCreateInfo, pAllocator, pSurface);
3390 return vkCreateMacOSSurfaceMVK_VkResult_return;
3391}
3392#endif
3393#ifdef VK_EXT_external_memory_dma_buf
3394#endif
3395#ifdef VK_EXT_queue_family_foreign
3396#endif
3397#ifdef VK_EXT_debug_utils
3398static VkResult entry_vkSetDebugUtilsObjectNameEXT(
3399 VkDevice device,
3400 const VkDebugUtilsObjectNameInfoEXT* pNameInfo)
3401{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003402 AEMU_SCOPED_TRACE("vkSetDebugUtilsObjectNameEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003403 auto vkEnc = HostConnection::get()->vkEncoder();
3404 VkResult vkSetDebugUtilsObjectNameEXT_VkResult_return = (VkResult)0;
3405 vkSetDebugUtilsObjectNameEXT_VkResult_return = vkEnc->vkSetDebugUtilsObjectNameEXT(device, pNameInfo);
3406 return vkSetDebugUtilsObjectNameEXT_VkResult_return;
3407}
3408static VkResult entry_vkSetDebugUtilsObjectTagEXT(
3409 VkDevice device,
3410 const VkDebugUtilsObjectTagInfoEXT* pTagInfo)
3411{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003412 AEMU_SCOPED_TRACE("vkSetDebugUtilsObjectTagEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003413 auto vkEnc = HostConnection::get()->vkEncoder();
3414 VkResult vkSetDebugUtilsObjectTagEXT_VkResult_return = (VkResult)0;
3415 vkSetDebugUtilsObjectTagEXT_VkResult_return = vkEnc->vkSetDebugUtilsObjectTagEXT(device, pTagInfo);
3416 return vkSetDebugUtilsObjectTagEXT_VkResult_return;
3417}
3418static void entry_vkQueueBeginDebugUtilsLabelEXT(
3419 VkQueue queue,
3420 const VkDebugUtilsLabelEXT* pLabelInfo)
3421{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003422 AEMU_SCOPED_TRACE("vkQueueBeginDebugUtilsLabelEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003423 auto vkEnc = HostConnection::get()->vkEncoder();
3424 vkEnc->vkQueueBeginDebugUtilsLabelEXT(queue, pLabelInfo);
3425}
3426static void entry_vkQueueEndDebugUtilsLabelEXT(
3427 VkQueue queue)
3428{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003429 AEMU_SCOPED_TRACE("vkQueueEndDebugUtilsLabelEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003430 auto vkEnc = HostConnection::get()->vkEncoder();
3431 vkEnc->vkQueueEndDebugUtilsLabelEXT(queue);
3432}
3433static void entry_vkQueueInsertDebugUtilsLabelEXT(
3434 VkQueue queue,
3435 const VkDebugUtilsLabelEXT* pLabelInfo)
3436{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003437 AEMU_SCOPED_TRACE("vkQueueInsertDebugUtilsLabelEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003438 auto vkEnc = HostConnection::get()->vkEncoder();
3439 vkEnc->vkQueueInsertDebugUtilsLabelEXT(queue, pLabelInfo);
3440}
3441static void entry_vkCmdBeginDebugUtilsLabelEXT(
3442 VkCommandBuffer commandBuffer,
3443 const VkDebugUtilsLabelEXT* pLabelInfo)
3444{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003445 AEMU_SCOPED_TRACE("vkCmdBeginDebugUtilsLabelEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003446 auto vkEnc = HostConnection::get()->vkEncoder();
3447 vkEnc->vkCmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo);
3448}
3449static void entry_vkCmdEndDebugUtilsLabelEXT(
3450 VkCommandBuffer commandBuffer)
3451{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003452 AEMU_SCOPED_TRACE("vkCmdEndDebugUtilsLabelEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003453 auto vkEnc = HostConnection::get()->vkEncoder();
3454 vkEnc->vkCmdEndDebugUtilsLabelEXT(commandBuffer);
3455}
3456static void entry_vkCmdInsertDebugUtilsLabelEXT(
3457 VkCommandBuffer commandBuffer,
3458 const VkDebugUtilsLabelEXT* pLabelInfo)
3459{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003460 AEMU_SCOPED_TRACE("vkCmdInsertDebugUtilsLabelEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003461 auto vkEnc = HostConnection::get()->vkEncoder();
3462 vkEnc->vkCmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo);
3463}
3464static VkResult entry_vkCreateDebugUtilsMessengerEXT(
3465 VkInstance instance,
3466 const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo,
3467 const VkAllocationCallbacks* pAllocator,
3468 VkDebugUtilsMessengerEXT* pMessenger)
3469{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003470 AEMU_SCOPED_TRACE("vkCreateDebugUtilsMessengerEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003471 auto vkEnc = HostConnection::get()->vkEncoder();
3472 VkResult vkCreateDebugUtilsMessengerEXT_VkResult_return = (VkResult)0;
3473 vkCreateDebugUtilsMessengerEXT_VkResult_return = vkEnc->vkCreateDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, pMessenger);
3474 return vkCreateDebugUtilsMessengerEXT_VkResult_return;
3475}
3476static void entry_vkDestroyDebugUtilsMessengerEXT(
3477 VkInstance instance,
3478 VkDebugUtilsMessengerEXT messenger,
3479 const VkAllocationCallbacks* pAllocator)
3480{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003481 AEMU_SCOPED_TRACE("vkDestroyDebugUtilsMessengerEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003482 auto vkEnc = HostConnection::get()->vkEncoder();
3483 vkEnc->vkDestroyDebugUtilsMessengerEXT(instance, messenger, pAllocator);
3484}
3485static void entry_vkSubmitDebugUtilsMessageEXT(
3486 VkInstance instance,
3487 VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
3488 VkDebugUtilsMessageTypeFlagsEXT messageTypes,
3489 const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData)
3490{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003491 AEMU_SCOPED_TRACE("vkSubmitDebugUtilsMessageEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003492 auto vkEnc = HostConnection::get()->vkEncoder();
3493 vkEnc->vkSubmitDebugUtilsMessageEXT(instance, messageSeverity, messageTypes, pCallbackData);
3494}
3495#endif
3496#ifdef VK_ANDROID_external_memory_android_hardware_buffer
3497static VkResult entry_vkGetAndroidHardwareBufferPropertiesANDROID(
3498 VkDevice device,
3499 const AHardwareBuffer* buffer,
3500 VkAndroidHardwareBufferPropertiesANDROID* pProperties)
3501{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003502 AEMU_SCOPED_TRACE("vkGetAndroidHardwareBufferPropertiesANDROID");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003503 auto vkEnc = HostConnection::get()->vkEncoder();
3504 VkResult vkGetAndroidHardwareBufferPropertiesANDROID_VkResult_return = (VkResult)0;
Lingfeng Yang4f3f91f2019-02-28 11:37:21 -08003505 auto resources = ResourceTracker::get();
3506 vkGetAndroidHardwareBufferPropertiesANDROID_VkResult_return = resources->on_vkGetAndroidHardwareBufferPropertiesANDROID(vkEnc, VK_SUCCESS, device, buffer, pProperties);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003507 return vkGetAndroidHardwareBufferPropertiesANDROID_VkResult_return;
3508}
3509static VkResult entry_vkGetMemoryAndroidHardwareBufferANDROID(
3510 VkDevice device,
3511 const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo,
3512 AHardwareBuffer** pBuffer)
3513{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003514 AEMU_SCOPED_TRACE("vkGetMemoryAndroidHardwareBufferANDROID");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003515 auto vkEnc = HostConnection::get()->vkEncoder();
3516 VkResult vkGetMemoryAndroidHardwareBufferANDROID_VkResult_return = (VkResult)0;
Lingfeng Yang4f3f91f2019-02-28 11:37:21 -08003517 auto resources = ResourceTracker::get();
3518 vkGetMemoryAndroidHardwareBufferANDROID_VkResult_return = resources->on_vkGetMemoryAndroidHardwareBufferANDROID(vkEnc, VK_SUCCESS, device, pInfo, pBuffer);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003519 return vkGetMemoryAndroidHardwareBufferANDROID_VkResult_return;
3520}
3521#endif
3522#ifdef VK_EXT_sampler_filter_minmax
3523#endif
3524#ifdef VK_AMD_gpu_shader_int16
3525#endif
3526#ifdef VK_AMD_mixed_attachment_samples
3527#endif
3528#ifdef VK_AMD_shader_fragment_mask
3529#endif
3530#ifdef VK_EXT_shader_stencil_export
3531#endif
3532#ifdef VK_EXT_sample_locations
3533static void entry_vkCmdSetSampleLocationsEXT(
3534 VkCommandBuffer commandBuffer,
3535 const VkSampleLocationsInfoEXT* pSampleLocationsInfo)
3536{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003537 AEMU_SCOPED_TRACE("vkCmdSetSampleLocationsEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003538 auto vkEnc = HostConnection::get()->vkEncoder();
3539 vkEnc->vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo);
3540}
3541static void entry_vkGetPhysicalDeviceMultisamplePropertiesEXT(
3542 VkPhysicalDevice physicalDevice,
3543 VkSampleCountFlagBits samples,
3544 VkMultisamplePropertiesEXT* pMultisampleProperties)
3545{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003546 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMultisamplePropertiesEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003547 auto vkEnc = HostConnection::get()->vkEncoder();
3548 vkEnc->vkGetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties);
3549}
3550#endif
3551#ifdef VK_EXT_blend_operation_advanced
3552#endif
3553#ifdef VK_NV_fragment_coverage_to_color
3554#endif
3555#ifdef VK_NV_framebuffer_mixed_samples
3556#endif
3557#ifdef VK_NV_fill_rectangle
3558#endif
3559#ifdef VK_EXT_post_depth_coverage
3560#endif
3561#ifdef VK_EXT_validation_cache
3562static VkResult entry_vkCreateValidationCacheEXT(
3563 VkDevice device,
3564 const VkValidationCacheCreateInfoEXT* pCreateInfo,
3565 const VkAllocationCallbacks* pAllocator,
3566 VkValidationCacheEXT* pValidationCache)
3567{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003568 AEMU_SCOPED_TRACE("vkCreateValidationCacheEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003569 auto vkEnc = HostConnection::get()->vkEncoder();
3570 VkResult vkCreateValidationCacheEXT_VkResult_return = (VkResult)0;
3571 vkCreateValidationCacheEXT_VkResult_return = vkEnc->vkCreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache);
3572 return vkCreateValidationCacheEXT_VkResult_return;
3573}
3574static void entry_vkDestroyValidationCacheEXT(
3575 VkDevice device,
3576 VkValidationCacheEXT validationCache,
3577 const VkAllocationCallbacks* pAllocator)
3578{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003579 AEMU_SCOPED_TRACE("vkDestroyValidationCacheEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003580 auto vkEnc = HostConnection::get()->vkEncoder();
3581 vkEnc->vkDestroyValidationCacheEXT(device, validationCache, pAllocator);
3582}
3583static VkResult entry_vkMergeValidationCachesEXT(
3584 VkDevice device,
3585 VkValidationCacheEXT dstCache,
3586 uint32_t srcCacheCount,
3587 const VkValidationCacheEXT* pSrcCaches)
3588{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003589 AEMU_SCOPED_TRACE("vkMergeValidationCachesEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003590 auto vkEnc = HostConnection::get()->vkEncoder();
3591 VkResult vkMergeValidationCachesEXT_VkResult_return = (VkResult)0;
3592 vkMergeValidationCachesEXT_VkResult_return = vkEnc->vkMergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches);
3593 return vkMergeValidationCachesEXT_VkResult_return;
3594}
3595static VkResult entry_vkGetValidationCacheDataEXT(
3596 VkDevice device,
3597 VkValidationCacheEXT validationCache,
3598 size_t* pDataSize,
3599 void* pData)
3600{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003601 AEMU_SCOPED_TRACE("vkGetValidationCacheDataEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003602 auto vkEnc = HostConnection::get()->vkEncoder();
3603 VkResult vkGetValidationCacheDataEXT_VkResult_return = (VkResult)0;
3604 vkGetValidationCacheDataEXT_VkResult_return = vkEnc->vkGetValidationCacheDataEXT(device, validationCache, pDataSize, pData);
3605 return vkGetValidationCacheDataEXT_VkResult_return;
3606}
3607#endif
3608#ifdef VK_EXT_descriptor_indexing
3609#endif
3610#ifdef VK_EXT_shader_viewport_index_layer
3611#endif
3612#ifdef VK_EXT_global_priority
3613#endif
3614#ifdef VK_EXT_external_memory_host
3615static VkResult entry_vkGetMemoryHostPointerPropertiesEXT(
3616 VkDevice device,
3617 VkExternalMemoryHandleTypeFlagBits handleType,
3618 const void* pHostPointer,
3619 VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties)
3620{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003621 AEMU_SCOPED_TRACE("vkGetMemoryHostPointerPropertiesEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003622 auto vkEnc = HostConnection::get()->vkEncoder();
3623 VkResult vkGetMemoryHostPointerPropertiesEXT_VkResult_return = (VkResult)0;
3624 vkGetMemoryHostPointerPropertiesEXT_VkResult_return = vkEnc->vkGetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties);
3625 return vkGetMemoryHostPointerPropertiesEXT_VkResult_return;
3626}
3627#endif
3628#ifdef VK_AMD_buffer_marker
3629static void entry_vkCmdWriteBufferMarkerAMD(
3630 VkCommandBuffer commandBuffer,
3631 VkPipelineStageFlagBits pipelineStage,
3632 VkBuffer dstBuffer,
3633 VkDeviceSize dstOffset,
3634 uint32_t marker)
3635{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003636 AEMU_SCOPED_TRACE("vkCmdWriteBufferMarkerAMD");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003637 auto vkEnc = HostConnection::get()->vkEncoder();
3638 vkEnc->vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker);
3639}
3640#endif
3641#ifdef VK_AMD_shader_core_properties
3642#endif
3643#ifdef VK_EXT_vertex_attribute_divisor
3644#endif
3645#ifdef VK_NV_shader_subgroup_partitioned
3646#endif
3647#ifdef VK_NV_device_diagnostic_checkpoints
3648static void entry_vkCmdSetCheckpointNV(
3649 VkCommandBuffer commandBuffer,
3650 const void* pCheckpointMarker)
3651{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003652 AEMU_SCOPED_TRACE("vkCmdSetCheckpointNV");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003653 auto vkEnc = HostConnection::get()->vkEncoder();
3654 vkEnc->vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker);
3655}
3656static void entry_vkGetQueueCheckpointDataNV(
3657 VkQueue queue,
3658 uint32_t* pCheckpointDataCount,
3659 VkCheckpointDataNV* pCheckpointData)
3660{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003661 AEMU_SCOPED_TRACE("vkGetQueueCheckpointDataNV");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003662 auto vkEnc = HostConnection::get()->vkEncoder();
3663 vkEnc->vkGetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData);
3664}
3665#endif
Lingfeng Yang5c63afd2018-12-22 01:21:14 -08003666#ifdef VK_GOOGLE_address_space
3667static VkResult entry_vkMapMemoryIntoAddressSpaceGOOGLE(
3668 VkDevice device,
3669 VkDeviceMemory memory,
3670 uint64_t* pAddress)
3671{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003672 AEMU_SCOPED_TRACE("vkMapMemoryIntoAddressSpaceGOOGLE");
Lingfeng Yang5c63afd2018-12-22 01:21:14 -08003673 auto vkEnc = HostConnection::get()->vkEncoder();
3674 VkResult vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return = (VkResult)0;
3675 vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return = vkEnc->vkMapMemoryIntoAddressSpaceGOOGLE(device, memory, pAddress);
3676 return vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return;
3677}
3678#endif
Lingfeng Yangae7e1b32019-02-19 14:07:39 -08003679#ifdef VK_GOOGLE_color_buffer
3680static VkResult entry_vkRegisterImageColorBufferGOOGLE(
3681 VkDevice device,
3682 VkImage image,
3683 uint32_t colorBuffer)
3684{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003685 AEMU_SCOPED_TRACE("vkRegisterImageColorBufferGOOGLE");
Lingfeng Yangae7e1b32019-02-19 14:07:39 -08003686 auto vkEnc = HostConnection::get()->vkEncoder();
3687 VkResult vkRegisterImageColorBufferGOOGLE_VkResult_return = (VkResult)0;
3688 vkRegisterImageColorBufferGOOGLE_VkResult_return = vkEnc->vkRegisterImageColorBufferGOOGLE(device, image, colorBuffer);
3689 return vkRegisterImageColorBufferGOOGLE_VkResult_return;
3690}
3691static VkResult entry_vkRegisterBufferColorBufferGOOGLE(
3692 VkDevice device,
3693 VkBuffer buffer,
3694 uint32_t colorBuffer)
3695{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003696 AEMU_SCOPED_TRACE("vkRegisterBufferColorBufferGOOGLE");
Lingfeng Yangae7e1b32019-02-19 14:07:39 -08003697 auto vkEnc = HostConnection::get()->vkEncoder();
3698 VkResult vkRegisterBufferColorBufferGOOGLE_VkResult_return = (VkResult)0;
3699 vkRegisterBufferColorBufferGOOGLE_VkResult_return = vkEnc->vkRegisterBufferColorBufferGOOGLE(device, buffer, colorBuffer);
3700 return vkRegisterBufferColorBufferGOOGLE_VkResult_return;
3701}
3702#endif
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003703void* goldfish_vulkan_get_proc_address(const char* name){
3704#ifdef VK_VERSION_1_0
3705 if (!strcmp(name, "vkCreateInstance"))
3706 {
3707 return (void*)entry_vkCreateInstance;
3708 }
3709 if (!strcmp(name, "vkDestroyInstance"))
3710 {
3711 return (void*)entry_vkDestroyInstance;
3712 }
3713 if (!strcmp(name, "vkEnumeratePhysicalDevices"))
3714 {
3715 return (void*)entry_vkEnumeratePhysicalDevices;
3716 }
3717 if (!strcmp(name, "vkGetPhysicalDeviceFeatures"))
3718 {
3719 return (void*)entry_vkGetPhysicalDeviceFeatures;
3720 }
3721 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties"))
3722 {
3723 return (void*)entry_vkGetPhysicalDeviceFormatProperties;
3724 }
3725 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties"))
3726 {
3727 return (void*)entry_vkGetPhysicalDeviceImageFormatProperties;
3728 }
3729 if (!strcmp(name, "vkGetPhysicalDeviceProperties"))
3730 {
3731 return (void*)entry_vkGetPhysicalDeviceProperties;
3732 }
3733 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties"))
3734 {
3735 return (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties;
3736 }
3737 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties"))
3738 {
3739 return (void*)entry_vkGetPhysicalDeviceMemoryProperties;
3740 }
3741 if (!strcmp(name, "vkGetInstanceProcAddr"))
3742 {
3743 return (void*)entry_vkGetInstanceProcAddr;
3744 }
3745 if (!strcmp(name, "vkGetDeviceProcAddr"))
3746 {
3747 return (void*)entry_vkGetDeviceProcAddr;
3748 }
3749 if (!strcmp(name, "vkCreateDevice"))
3750 {
3751 return (void*)entry_vkCreateDevice;
3752 }
3753 if (!strcmp(name, "vkDestroyDevice"))
3754 {
3755 return (void*)entry_vkDestroyDevice;
3756 }
3757 if (!strcmp(name, "vkEnumerateInstanceExtensionProperties"))
3758 {
3759 return (void*)entry_vkEnumerateInstanceExtensionProperties;
3760 }
3761 if (!strcmp(name, "vkEnumerateDeviceExtensionProperties"))
3762 {
3763 return (void*)entry_vkEnumerateDeviceExtensionProperties;
3764 }
3765 if (!strcmp(name, "vkEnumerateInstanceLayerProperties"))
3766 {
3767 return (void*)entry_vkEnumerateInstanceLayerProperties;
3768 }
3769 if (!strcmp(name, "vkEnumerateDeviceLayerProperties"))
3770 {
3771 return (void*)entry_vkEnumerateDeviceLayerProperties;
3772 }
3773 if (!strcmp(name, "vkGetDeviceQueue"))
3774 {
3775 return (void*)entry_vkGetDeviceQueue;
3776 }
3777 if (!strcmp(name, "vkQueueSubmit"))
3778 {
3779 return (void*)entry_vkQueueSubmit;
3780 }
3781 if (!strcmp(name, "vkQueueWaitIdle"))
3782 {
3783 return (void*)entry_vkQueueWaitIdle;
3784 }
3785 if (!strcmp(name, "vkDeviceWaitIdle"))
3786 {
3787 return (void*)entry_vkDeviceWaitIdle;
3788 }
3789 if (!strcmp(name, "vkAllocateMemory"))
3790 {
3791 return (void*)entry_vkAllocateMemory;
3792 }
3793 if (!strcmp(name, "vkFreeMemory"))
3794 {
3795 return (void*)entry_vkFreeMemory;
3796 }
3797 if (!strcmp(name, "vkMapMemory"))
3798 {
3799 return (void*)entry_vkMapMemory;
3800 }
3801 if (!strcmp(name, "vkUnmapMemory"))
3802 {
3803 return (void*)entry_vkUnmapMemory;
3804 }
3805 if (!strcmp(name, "vkFlushMappedMemoryRanges"))
3806 {
3807 return (void*)entry_vkFlushMappedMemoryRanges;
3808 }
3809 if (!strcmp(name, "vkInvalidateMappedMemoryRanges"))
3810 {
3811 return (void*)entry_vkInvalidateMappedMemoryRanges;
3812 }
3813 if (!strcmp(name, "vkGetDeviceMemoryCommitment"))
3814 {
3815 return (void*)entry_vkGetDeviceMemoryCommitment;
3816 }
3817 if (!strcmp(name, "vkBindBufferMemory"))
3818 {
3819 return (void*)entry_vkBindBufferMemory;
3820 }
3821 if (!strcmp(name, "vkBindImageMemory"))
3822 {
3823 return (void*)entry_vkBindImageMemory;
3824 }
3825 if (!strcmp(name, "vkGetBufferMemoryRequirements"))
3826 {
3827 return (void*)entry_vkGetBufferMemoryRequirements;
3828 }
3829 if (!strcmp(name, "vkGetImageMemoryRequirements"))
3830 {
3831 return (void*)entry_vkGetImageMemoryRequirements;
3832 }
3833 if (!strcmp(name, "vkGetImageSparseMemoryRequirements"))
3834 {
3835 return (void*)entry_vkGetImageSparseMemoryRequirements;
3836 }
3837 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties"))
3838 {
3839 return (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties;
3840 }
3841 if (!strcmp(name, "vkQueueBindSparse"))
3842 {
3843 return (void*)entry_vkQueueBindSparse;
3844 }
3845 if (!strcmp(name, "vkCreateFence"))
3846 {
3847 return (void*)entry_vkCreateFence;
3848 }
3849 if (!strcmp(name, "vkDestroyFence"))
3850 {
3851 return (void*)entry_vkDestroyFence;
3852 }
3853 if (!strcmp(name, "vkResetFences"))
3854 {
3855 return (void*)entry_vkResetFences;
3856 }
3857 if (!strcmp(name, "vkGetFenceStatus"))
3858 {
3859 return (void*)entry_vkGetFenceStatus;
3860 }
3861 if (!strcmp(name, "vkWaitForFences"))
3862 {
3863 return (void*)entry_vkWaitForFences;
3864 }
3865 if (!strcmp(name, "vkCreateSemaphore"))
3866 {
3867 return (void*)entry_vkCreateSemaphore;
3868 }
3869 if (!strcmp(name, "vkDestroySemaphore"))
3870 {
3871 return (void*)entry_vkDestroySemaphore;
3872 }
3873 if (!strcmp(name, "vkCreateEvent"))
3874 {
3875 return (void*)entry_vkCreateEvent;
3876 }
3877 if (!strcmp(name, "vkDestroyEvent"))
3878 {
3879 return (void*)entry_vkDestroyEvent;
3880 }
3881 if (!strcmp(name, "vkGetEventStatus"))
3882 {
3883 return (void*)entry_vkGetEventStatus;
3884 }
3885 if (!strcmp(name, "vkSetEvent"))
3886 {
3887 return (void*)entry_vkSetEvent;
3888 }
3889 if (!strcmp(name, "vkResetEvent"))
3890 {
3891 return (void*)entry_vkResetEvent;
3892 }
3893 if (!strcmp(name, "vkCreateQueryPool"))
3894 {
3895 return (void*)entry_vkCreateQueryPool;
3896 }
3897 if (!strcmp(name, "vkDestroyQueryPool"))
3898 {
3899 return (void*)entry_vkDestroyQueryPool;
3900 }
3901 if (!strcmp(name, "vkGetQueryPoolResults"))
3902 {
3903 return (void*)entry_vkGetQueryPoolResults;
3904 }
3905 if (!strcmp(name, "vkCreateBuffer"))
3906 {
3907 return (void*)entry_vkCreateBuffer;
3908 }
3909 if (!strcmp(name, "vkDestroyBuffer"))
3910 {
3911 return (void*)entry_vkDestroyBuffer;
3912 }
3913 if (!strcmp(name, "vkCreateBufferView"))
3914 {
3915 return (void*)entry_vkCreateBufferView;
3916 }
3917 if (!strcmp(name, "vkDestroyBufferView"))
3918 {
3919 return (void*)entry_vkDestroyBufferView;
3920 }
3921 if (!strcmp(name, "vkCreateImage"))
3922 {
3923 return (void*)entry_vkCreateImage;
3924 }
3925 if (!strcmp(name, "vkDestroyImage"))
3926 {
3927 return (void*)entry_vkDestroyImage;
3928 }
3929 if (!strcmp(name, "vkGetImageSubresourceLayout"))
3930 {
3931 return (void*)entry_vkGetImageSubresourceLayout;
3932 }
3933 if (!strcmp(name, "vkCreateImageView"))
3934 {
3935 return (void*)entry_vkCreateImageView;
3936 }
3937 if (!strcmp(name, "vkDestroyImageView"))
3938 {
3939 return (void*)entry_vkDestroyImageView;
3940 }
3941 if (!strcmp(name, "vkCreateShaderModule"))
3942 {
3943 return (void*)entry_vkCreateShaderModule;
3944 }
3945 if (!strcmp(name, "vkDestroyShaderModule"))
3946 {
3947 return (void*)entry_vkDestroyShaderModule;
3948 }
3949 if (!strcmp(name, "vkCreatePipelineCache"))
3950 {
3951 return (void*)entry_vkCreatePipelineCache;
3952 }
3953 if (!strcmp(name, "vkDestroyPipelineCache"))
3954 {
3955 return (void*)entry_vkDestroyPipelineCache;
3956 }
3957 if (!strcmp(name, "vkGetPipelineCacheData"))
3958 {
3959 return (void*)entry_vkGetPipelineCacheData;
3960 }
3961 if (!strcmp(name, "vkMergePipelineCaches"))
3962 {
3963 return (void*)entry_vkMergePipelineCaches;
3964 }
3965 if (!strcmp(name, "vkCreateGraphicsPipelines"))
3966 {
3967 return (void*)entry_vkCreateGraphicsPipelines;
3968 }
3969 if (!strcmp(name, "vkCreateComputePipelines"))
3970 {
3971 return (void*)entry_vkCreateComputePipelines;
3972 }
3973 if (!strcmp(name, "vkDestroyPipeline"))
3974 {
3975 return (void*)entry_vkDestroyPipeline;
3976 }
3977 if (!strcmp(name, "vkCreatePipelineLayout"))
3978 {
3979 return (void*)entry_vkCreatePipelineLayout;
3980 }
3981 if (!strcmp(name, "vkDestroyPipelineLayout"))
3982 {
3983 return (void*)entry_vkDestroyPipelineLayout;
3984 }
3985 if (!strcmp(name, "vkCreateSampler"))
3986 {
3987 return (void*)entry_vkCreateSampler;
3988 }
3989 if (!strcmp(name, "vkDestroySampler"))
3990 {
3991 return (void*)entry_vkDestroySampler;
3992 }
3993 if (!strcmp(name, "vkCreateDescriptorSetLayout"))
3994 {
3995 return (void*)entry_vkCreateDescriptorSetLayout;
3996 }
3997 if (!strcmp(name, "vkDestroyDescriptorSetLayout"))
3998 {
3999 return (void*)entry_vkDestroyDescriptorSetLayout;
4000 }
4001 if (!strcmp(name, "vkCreateDescriptorPool"))
4002 {
4003 return (void*)entry_vkCreateDescriptorPool;
4004 }
4005 if (!strcmp(name, "vkDestroyDescriptorPool"))
4006 {
4007 return (void*)entry_vkDestroyDescriptorPool;
4008 }
4009 if (!strcmp(name, "vkResetDescriptorPool"))
4010 {
4011 return (void*)entry_vkResetDescriptorPool;
4012 }
4013 if (!strcmp(name, "vkAllocateDescriptorSets"))
4014 {
4015 return (void*)entry_vkAllocateDescriptorSets;
4016 }
4017 if (!strcmp(name, "vkFreeDescriptorSets"))
4018 {
4019 return (void*)entry_vkFreeDescriptorSets;
4020 }
4021 if (!strcmp(name, "vkUpdateDescriptorSets"))
4022 {
4023 return (void*)entry_vkUpdateDescriptorSets;
4024 }
4025 if (!strcmp(name, "vkCreateFramebuffer"))
4026 {
4027 return (void*)entry_vkCreateFramebuffer;
4028 }
4029 if (!strcmp(name, "vkDestroyFramebuffer"))
4030 {
4031 return (void*)entry_vkDestroyFramebuffer;
4032 }
4033 if (!strcmp(name, "vkCreateRenderPass"))
4034 {
4035 return (void*)entry_vkCreateRenderPass;
4036 }
4037 if (!strcmp(name, "vkDestroyRenderPass"))
4038 {
4039 return (void*)entry_vkDestroyRenderPass;
4040 }
4041 if (!strcmp(name, "vkGetRenderAreaGranularity"))
4042 {
4043 return (void*)entry_vkGetRenderAreaGranularity;
4044 }
4045 if (!strcmp(name, "vkCreateCommandPool"))
4046 {
4047 return (void*)entry_vkCreateCommandPool;
4048 }
4049 if (!strcmp(name, "vkDestroyCommandPool"))
4050 {
4051 return (void*)entry_vkDestroyCommandPool;
4052 }
4053 if (!strcmp(name, "vkResetCommandPool"))
4054 {
4055 return (void*)entry_vkResetCommandPool;
4056 }
4057 if (!strcmp(name, "vkAllocateCommandBuffers"))
4058 {
4059 return (void*)entry_vkAllocateCommandBuffers;
4060 }
4061 if (!strcmp(name, "vkFreeCommandBuffers"))
4062 {
4063 return (void*)entry_vkFreeCommandBuffers;
4064 }
4065 if (!strcmp(name, "vkBeginCommandBuffer"))
4066 {
4067 return (void*)entry_vkBeginCommandBuffer;
4068 }
4069 if (!strcmp(name, "vkEndCommandBuffer"))
4070 {
4071 return (void*)entry_vkEndCommandBuffer;
4072 }
4073 if (!strcmp(name, "vkResetCommandBuffer"))
4074 {
4075 return (void*)entry_vkResetCommandBuffer;
4076 }
4077 if (!strcmp(name, "vkCmdBindPipeline"))
4078 {
4079 return (void*)entry_vkCmdBindPipeline;
4080 }
4081 if (!strcmp(name, "vkCmdSetViewport"))
4082 {
4083 return (void*)entry_vkCmdSetViewport;
4084 }
4085 if (!strcmp(name, "vkCmdSetScissor"))
4086 {
4087 return (void*)entry_vkCmdSetScissor;
4088 }
4089 if (!strcmp(name, "vkCmdSetLineWidth"))
4090 {
4091 return (void*)entry_vkCmdSetLineWidth;
4092 }
4093 if (!strcmp(name, "vkCmdSetDepthBias"))
4094 {
4095 return (void*)entry_vkCmdSetDepthBias;
4096 }
4097 if (!strcmp(name, "vkCmdSetBlendConstants"))
4098 {
4099 return (void*)entry_vkCmdSetBlendConstants;
4100 }
4101 if (!strcmp(name, "vkCmdSetDepthBounds"))
4102 {
4103 return (void*)entry_vkCmdSetDepthBounds;
4104 }
4105 if (!strcmp(name, "vkCmdSetStencilCompareMask"))
4106 {
4107 return (void*)entry_vkCmdSetStencilCompareMask;
4108 }
4109 if (!strcmp(name, "vkCmdSetStencilWriteMask"))
4110 {
4111 return (void*)entry_vkCmdSetStencilWriteMask;
4112 }
4113 if (!strcmp(name, "vkCmdSetStencilReference"))
4114 {
4115 return (void*)entry_vkCmdSetStencilReference;
4116 }
4117 if (!strcmp(name, "vkCmdBindDescriptorSets"))
4118 {
4119 return (void*)entry_vkCmdBindDescriptorSets;
4120 }
4121 if (!strcmp(name, "vkCmdBindIndexBuffer"))
4122 {
4123 return (void*)entry_vkCmdBindIndexBuffer;
4124 }
4125 if (!strcmp(name, "vkCmdBindVertexBuffers"))
4126 {
4127 return (void*)entry_vkCmdBindVertexBuffers;
4128 }
4129 if (!strcmp(name, "vkCmdDraw"))
4130 {
4131 return (void*)entry_vkCmdDraw;
4132 }
4133 if (!strcmp(name, "vkCmdDrawIndexed"))
4134 {
4135 return (void*)entry_vkCmdDrawIndexed;
4136 }
4137 if (!strcmp(name, "vkCmdDrawIndirect"))
4138 {
4139 return (void*)entry_vkCmdDrawIndirect;
4140 }
4141 if (!strcmp(name, "vkCmdDrawIndexedIndirect"))
4142 {
4143 return (void*)entry_vkCmdDrawIndexedIndirect;
4144 }
4145 if (!strcmp(name, "vkCmdDispatch"))
4146 {
4147 return (void*)entry_vkCmdDispatch;
4148 }
4149 if (!strcmp(name, "vkCmdDispatchIndirect"))
4150 {
4151 return (void*)entry_vkCmdDispatchIndirect;
4152 }
4153 if (!strcmp(name, "vkCmdCopyBuffer"))
4154 {
4155 return (void*)entry_vkCmdCopyBuffer;
4156 }
4157 if (!strcmp(name, "vkCmdCopyImage"))
4158 {
4159 return (void*)entry_vkCmdCopyImage;
4160 }
4161 if (!strcmp(name, "vkCmdBlitImage"))
4162 {
4163 return (void*)entry_vkCmdBlitImage;
4164 }
4165 if (!strcmp(name, "vkCmdCopyBufferToImage"))
4166 {
4167 return (void*)entry_vkCmdCopyBufferToImage;
4168 }
4169 if (!strcmp(name, "vkCmdCopyImageToBuffer"))
4170 {
4171 return (void*)entry_vkCmdCopyImageToBuffer;
4172 }
4173 if (!strcmp(name, "vkCmdUpdateBuffer"))
4174 {
4175 return (void*)entry_vkCmdUpdateBuffer;
4176 }
4177 if (!strcmp(name, "vkCmdFillBuffer"))
4178 {
4179 return (void*)entry_vkCmdFillBuffer;
4180 }
4181 if (!strcmp(name, "vkCmdClearColorImage"))
4182 {
4183 return (void*)entry_vkCmdClearColorImage;
4184 }
4185 if (!strcmp(name, "vkCmdClearDepthStencilImage"))
4186 {
4187 return (void*)entry_vkCmdClearDepthStencilImage;
4188 }
4189 if (!strcmp(name, "vkCmdClearAttachments"))
4190 {
4191 return (void*)entry_vkCmdClearAttachments;
4192 }
4193 if (!strcmp(name, "vkCmdResolveImage"))
4194 {
4195 return (void*)entry_vkCmdResolveImage;
4196 }
4197 if (!strcmp(name, "vkCmdSetEvent"))
4198 {
4199 return (void*)entry_vkCmdSetEvent;
4200 }
4201 if (!strcmp(name, "vkCmdResetEvent"))
4202 {
4203 return (void*)entry_vkCmdResetEvent;
4204 }
4205 if (!strcmp(name, "vkCmdWaitEvents"))
4206 {
4207 return (void*)entry_vkCmdWaitEvents;
4208 }
4209 if (!strcmp(name, "vkCmdPipelineBarrier"))
4210 {
4211 return (void*)entry_vkCmdPipelineBarrier;
4212 }
4213 if (!strcmp(name, "vkCmdBeginQuery"))
4214 {
4215 return (void*)entry_vkCmdBeginQuery;
4216 }
4217 if (!strcmp(name, "vkCmdEndQuery"))
4218 {
4219 return (void*)entry_vkCmdEndQuery;
4220 }
4221 if (!strcmp(name, "vkCmdResetQueryPool"))
4222 {
4223 return (void*)entry_vkCmdResetQueryPool;
4224 }
4225 if (!strcmp(name, "vkCmdWriteTimestamp"))
4226 {
4227 return (void*)entry_vkCmdWriteTimestamp;
4228 }
4229 if (!strcmp(name, "vkCmdCopyQueryPoolResults"))
4230 {
4231 return (void*)entry_vkCmdCopyQueryPoolResults;
4232 }
4233 if (!strcmp(name, "vkCmdPushConstants"))
4234 {
4235 return (void*)entry_vkCmdPushConstants;
4236 }
4237 if (!strcmp(name, "vkCmdBeginRenderPass"))
4238 {
4239 return (void*)entry_vkCmdBeginRenderPass;
4240 }
4241 if (!strcmp(name, "vkCmdNextSubpass"))
4242 {
4243 return (void*)entry_vkCmdNextSubpass;
4244 }
4245 if (!strcmp(name, "vkCmdEndRenderPass"))
4246 {
4247 return (void*)entry_vkCmdEndRenderPass;
4248 }
4249 if (!strcmp(name, "vkCmdExecuteCommands"))
4250 {
4251 return (void*)entry_vkCmdExecuteCommands;
4252 }
4253#endif
4254#ifdef VK_VERSION_1_1
4255 if (!strcmp(name, "vkEnumerateInstanceVersion"))
4256 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004257 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004258 }
4259 if (!strcmp(name, "vkBindBufferMemory2"))
4260 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004261 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004262 }
4263 if (!strcmp(name, "vkBindImageMemory2"))
4264 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004265 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004266 }
4267 if (!strcmp(name, "vkGetDeviceGroupPeerMemoryFeatures"))
4268 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004269 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004270 }
4271 if (!strcmp(name, "vkCmdSetDeviceMask"))
4272 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004273 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004274 }
4275 if (!strcmp(name, "vkCmdDispatchBase"))
4276 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004277 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004278 }
4279 if (!strcmp(name, "vkEnumeratePhysicalDeviceGroups"))
4280 {
Lingfeng Yang113689e2018-11-11 16:48:50 -08004281 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004282 }
4283 if (!strcmp(name, "vkGetImageMemoryRequirements2"))
4284 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004285 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004286 }
4287 if (!strcmp(name, "vkGetBufferMemoryRequirements2"))
4288 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004289 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004290 }
4291 if (!strcmp(name, "vkGetImageSparseMemoryRequirements2"))
4292 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004293 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004294 }
4295 if (!strcmp(name, "vkGetPhysicalDeviceFeatures2"))
4296 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004297 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004298 }
4299 if (!strcmp(name, "vkGetPhysicalDeviceProperties2"))
4300 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004301 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004302 }
4303 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties2"))
4304 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004305 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004306 }
4307 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties2"))
4308 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004309 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004310 }
4311 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties2"))
4312 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004313 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004314 }
4315 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties2"))
4316 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004317 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004318 }
4319 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties2"))
4320 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004321 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004322 }
4323 if (!strcmp(name, "vkTrimCommandPool"))
4324 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004325 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004326 }
4327 if (!strcmp(name, "vkGetDeviceQueue2"))
4328 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004329 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004330 }
4331 if (!strcmp(name, "vkCreateSamplerYcbcrConversion"))
4332 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004333 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004334 }
4335 if (!strcmp(name, "vkDestroySamplerYcbcrConversion"))
4336 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004337 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004338 }
4339 if (!strcmp(name, "vkCreateDescriptorUpdateTemplate"))
4340 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004341 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004342 }
4343 if (!strcmp(name, "vkDestroyDescriptorUpdateTemplate"))
4344 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004345 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004346 }
4347 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplate"))
4348 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004349 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004350 }
4351 if (!strcmp(name, "vkGetPhysicalDeviceExternalBufferProperties"))
4352 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004353 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004354 }
4355 if (!strcmp(name, "vkGetPhysicalDeviceExternalFenceProperties"))
4356 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004357 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004358 }
4359 if (!strcmp(name, "vkGetPhysicalDeviceExternalSemaphoreProperties"))
4360 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004361 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004362 }
4363 if (!strcmp(name, "vkGetDescriptorSetLayoutSupport"))
4364 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004365 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004366 }
4367#endif
4368#ifdef VK_KHR_surface
4369 if (!strcmp(name, "vkDestroySurfaceKHR"))
4370 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004371 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004372 }
4373 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceSupportKHR"))
4374 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004375 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004376 }
4377 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR"))
4378 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004379 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004380 }
4381 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceFormatsKHR"))
4382 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004383 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004384 }
4385 if (!strcmp(name, "vkGetPhysicalDeviceSurfacePresentModesKHR"))
4386 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004387 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004388 }
4389#endif
4390#ifdef VK_KHR_swapchain
4391 if (!strcmp(name, "vkCreateSwapchainKHR"))
4392 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004393 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004394 }
4395 if (!strcmp(name, "vkDestroySwapchainKHR"))
4396 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004397 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004398 }
4399 if (!strcmp(name, "vkGetSwapchainImagesKHR"))
4400 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004401 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004402 }
4403 if (!strcmp(name, "vkAcquireNextImageKHR"))
4404 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004405 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004406 }
4407 if (!strcmp(name, "vkQueuePresentKHR"))
4408 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004409 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004410 }
4411 if (!strcmp(name, "vkGetDeviceGroupPresentCapabilitiesKHR"))
4412 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004413 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004414 }
4415 if (!strcmp(name, "vkGetDeviceGroupSurfacePresentModesKHR"))
4416 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004417 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004418 }
4419 if (!strcmp(name, "vkGetPhysicalDevicePresentRectanglesKHR"))
4420 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004421 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004422 }
4423 if (!strcmp(name, "vkAcquireNextImage2KHR"))
4424 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004425 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004426 }
4427#endif
4428#ifdef VK_KHR_display
4429 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPropertiesKHR"))
4430 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004431 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004432 }
4433 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR"))
4434 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004435 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004436 }
4437 if (!strcmp(name, "vkGetDisplayPlaneSupportedDisplaysKHR"))
4438 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004439 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004440 }
4441 if (!strcmp(name, "vkGetDisplayModePropertiesKHR"))
4442 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004443 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004444 }
4445 if (!strcmp(name, "vkCreateDisplayModeKHR"))
4446 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004447 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004448 }
4449 if (!strcmp(name, "vkGetDisplayPlaneCapabilitiesKHR"))
4450 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004451 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004452 }
4453 if (!strcmp(name, "vkCreateDisplayPlaneSurfaceKHR"))
4454 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004455 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004456 }
4457#endif
4458#ifdef VK_KHR_display_swapchain
4459 if (!strcmp(name, "vkCreateSharedSwapchainsKHR"))
4460 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004461 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004462 }
4463#endif
4464#ifdef VK_KHR_xlib_surface
4465 if (!strcmp(name, "vkCreateXlibSurfaceKHR"))
4466 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004467 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004468 }
4469 if (!strcmp(name, "vkGetPhysicalDeviceXlibPresentationSupportKHR"))
4470 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004471 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004472 }
4473#endif
4474#ifdef VK_KHR_xcb_surface
4475 if (!strcmp(name, "vkCreateXcbSurfaceKHR"))
4476 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004477 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004478 }
4479 if (!strcmp(name, "vkGetPhysicalDeviceXcbPresentationSupportKHR"))
4480 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004481 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004482 }
4483#endif
4484#ifdef VK_KHR_wayland_surface
4485 if (!strcmp(name, "vkCreateWaylandSurfaceKHR"))
4486 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004487 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004488 }
4489 if (!strcmp(name, "vkGetPhysicalDeviceWaylandPresentationSupportKHR"))
4490 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004491 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004492 }
4493#endif
4494#ifdef VK_KHR_mir_surface
4495 if (!strcmp(name, "vkCreateMirSurfaceKHR"))
4496 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004497 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004498 }
4499 if (!strcmp(name, "vkGetPhysicalDeviceMirPresentationSupportKHR"))
4500 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004501 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004502 }
4503#endif
4504#ifdef VK_KHR_android_surface
4505 if (!strcmp(name, "vkCreateAndroidSurfaceKHR"))
4506 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004507 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004508 }
4509#endif
4510#ifdef VK_KHR_win32_surface
4511 if (!strcmp(name, "vkCreateWin32SurfaceKHR"))
4512 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004513 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004514 }
4515 if (!strcmp(name, "vkGetPhysicalDeviceWin32PresentationSupportKHR"))
4516 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004517 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004518 }
4519#endif
4520#ifdef VK_KHR_get_physical_device_properties2
4521 if (!strcmp(name, "vkGetPhysicalDeviceFeatures2KHR"))
4522 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004523 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004524 }
4525 if (!strcmp(name, "vkGetPhysicalDeviceProperties2KHR"))
4526 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004527 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004528 }
4529 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties2KHR"))
4530 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004531 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004532 }
4533 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties2KHR"))
4534 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004535 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004536 }
4537 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties2KHR"))
4538 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004539 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004540 }
4541 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties2KHR"))
4542 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004543 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004544 }
4545 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR"))
4546 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004547 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004548 }
4549#endif
4550#ifdef VK_KHR_device_group
4551 if (!strcmp(name, "vkGetDeviceGroupPeerMemoryFeaturesKHR"))
4552 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004553 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004554 }
4555 if (!strcmp(name, "vkCmdSetDeviceMaskKHR"))
4556 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004557 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004558 }
4559 if (!strcmp(name, "vkCmdDispatchBaseKHR"))
4560 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004561 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004562 }
4563#endif
4564#ifdef VK_KHR_maintenance1
4565 if (!strcmp(name, "vkTrimCommandPoolKHR"))
4566 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004567 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004568 }
4569#endif
4570#ifdef VK_KHR_device_group_creation
4571 if (!strcmp(name, "vkEnumeratePhysicalDeviceGroupsKHR"))
4572 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004573 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004574 }
4575#endif
4576#ifdef VK_KHR_external_memory_capabilities
4577 if (!strcmp(name, "vkGetPhysicalDeviceExternalBufferPropertiesKHR"))
4578 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004579 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004580 }
4581#endif
4582#ifdef VK_KHR_external_memory_win32
4583 if (!strcmp(name, "vkGetMemoryWin32HandleKHR"))
4584 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004585 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004586 }
4587 if (!strcmp(name, "vkGetMemoryWin32HandlePropertiesKHR"))
4588 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004589 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004590 }
4591#endif
4592#ifdef VK_KHR_external_memory_fd
4593 if (!strcmp(name, "vkGetMemoryFdKHR"))
4594 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004595 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004596 }
4597 if (!strcmp(name, "vkGetMemoryFdPropertiesKHR"))
4598 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004599 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004600 }
4601#endif
4602#ifdef VK_KHR_external_semaphore_capabilities
4603 if (!strcmp(name, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR"))
4604 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004605 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004606 }
4607#endif
4608#ifdef VK_KHR_external_semaphore_win32
4609 if (!strcmp(name, "vkImportSemaphoreWin32HandleKHR"))
4610 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004611 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004612 }
4613 if (!strcmp(name, "vkGetSemaphoreWin32HandleKHR"))
4614 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004615 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004616 }
4617#endif
4618#ifdef VK_KHR_external_semaphore_fd
4619 if (!strcmp(name, "vkImportSemaphoreFdKHR"))
4620 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004621 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004622 }
4623 if (!strcmp(name, "vkGetSemaphoreFdKHR"))
4624 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004625 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004626 }
4627#endif
4628#ifdef VK_KHR_push_descriptor
4629 if (!strcmp(name, "vkCmdPushDescriptorSetKHR"))
4630 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004631 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004632 }
4633 if (!strcmp(name, "vkCmdPushDescriptorSetWithTemplateKHR"))
4634 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004635 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004636 }
4637#endif
4638#ifdef VK_KHR_descriptor_update_template
4639 if (!strcmp(name, "vkCreateDescriptorUpdateTemplateKHR"))
4640 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004641 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004642 }
4643 if (!strcmp(name, "vkDestroyDescriptorUpdateTemplateKHR"))
4644 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004645 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004646 }
4647 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplateKHR"))
4648 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004649 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004650 }
4651#endif
4652#ifdef VK_KHR_create_renderpass2
4653 if (!strcmp(name, "vkCreateRenderPass2KHR"))
4654 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004655 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004656 }
4657 if (!strcmp(name, "vkCmdBeginRenderPass2KHR"))
4658 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004659 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004660 }
4661 if (!strcmp(name, "vkCmdNextSubpass2KHR"))
4662 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004663 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004664 }
4665 if (!strcmp(name, "vkCmdEndRenderPass2KHR"))
4666 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004667 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004668 }
4669#endif
4670#ifdef VK_KHR_shared_presentable_image
4671 if (!strcmp(name, "vkGetSwapchainStatusKHR"))
4672 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004673 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004674 }
4675#endif
4676#ifdef VK_KHR_external_fence_capabilities
4677 if (!strcmp(name, "vkGetPhysicalDeviceExternalFencePropertiesKHR"))
4678 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004679 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004680 }
4681#endif
4682#ifdef VK_KHR_external_fence_win32
4683 if (!strcmp(name, "vkImportFenceWin32HandleKHR"))
4684 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004685 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004686 }
4687 if (!strcmp(name, "vkGetFenceWin32HandleKHR"))
4688 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004689 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004690 }
4691#endif
4692#ifdef VK_KHR_external_fence_fd
4693 if (!strcmp(name, "vkImportFenceFdKHR"))
4694 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004695 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004696 }
4697 if (!strcmp(name, "vkGetFenceFdKHR"))
4698 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004699 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004700 }
4701#endif
4702#ifdef VK_KHR_get_surface_capabilities2
4703 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2KHR"))
4704 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004705 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004706 }
4707 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceFormats2KHR"))
4708 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004709 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004710 }
4711#endif
4712#ifdef VK_KHR_get_display_properties2
4713 if (!strcmp(name, "vkGetPhysicalDeviceDisplayProperties2KHR"))
4714 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004715 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004716 }
4717 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR"))
4718 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004719 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004720 }
4721 if (!strcmp(name, "vkGetDisplayModeProperties2KHR"))
4722 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004723 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004724 }
4725 if (!strcmp(name, "vkGetDisplayPlaneCapabilities2KHR"))
4726 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004727 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004728 }
4729#endif
4730#ifdef VK_KHR_get_memory_requirements2
4731 if (!strcmp(name, "vkGetImageMemoryRequirements2KHR"))
4732 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004733 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004734 }
4735 if (!strcmp(name, "vkGetBufferMemoryRequirements2KHR"))
4736 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004737 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004738 }
4739 if (!strcmp(name, "vkGetImageSparseMemoryRequirements2KHR"))
4740 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004741 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004742 }
4743#endif
4744#ifdef VK_KHR_sampler_ycbcr_conversion
4745 if (!strcmp(name, "vkCreateSamplerYcbcrConversionKHR"))
4746 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004747 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004748 }
4749 if (!strcmp(name, "vkDestroySamplerYcbcrConversionKHR"))
4750 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004751 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004752 }
4753#endif
4754#ifdef VK_KHR_bind_memory2
4755 if (!strcmp(name, "vkBindBufferMemory2KHR"))
4756 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004757 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004758 }
4759 if (!strcmp(name, "vkBindImageMemory2KHR"))
4760 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004761 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004762 }
4763#endif
4764#ifdef VK_KHR_maintenance3
4765 if (!strcmp(name, "vkGetDescriptorSetLayoutSupportKHR"))
4766 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004767 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004768 }
4769#endif
4770#ifdef VK_KHR_draw_indirect_count
4771 if (!strcmp(name, "vkCmdDrawIndirectCountKHR"))
4772 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004773 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004774 }
4775 if (!strcmp(name, "vkCmdDrawIndexedIndirectCountKHR"))
4776 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004777 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004778 }
4779#endif
Lingfeng Yang808a6312018-11-13 21:06:15 -08004780#ifdef VK_ANDROID_native_buffer
4781 if (!strcmp(name, "vkGetSwapchainGrallocUsageANDROID"))
4782 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004783 return nullptr;
Lingfeng Yang808a6312018-11-13 21:06:15 -08004784 }
4785 if (!strcmp(name, "vkAcquireImageANDROID"))
4786 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004787 return nullptr;
Lingfeng Yang808a6312018-11-13 21:06:15 -08004788 }
4789 if (!strcmp(name, "vkQueueSignalReleaseImageANDROID"))
4790 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004791 return nullptr;
Lingfeng Yang808a6312018-11-13 21:06:15 -08004792 }
4793#endif
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004794#ifdef VK_EXT_debug_report
4795 if (!strcmp(name, "vkCreateDebugReportCallbackEXT"))
4796 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004797 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004798 }
4799 if (!strcmp(name, "vkDestroyDebugReportCallbackEXT"))
4800 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004801 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004802 }
4803 if (!strcmp(name, "vkDebugReportMessageEXT"))
4804 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004805 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004806 }
4807#endif
4808#ifdef VK_EXT_debug_marker
4809 if (!strcmp(name, "vkDebugMarkerSetObjectTagEXT"))
4810 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004811 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004812 }
4813 if (!strcmp(name, "vkDebugMarkerSetObjectNameEXT"))
4814 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004815 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004816 }
4817 if (!strcmp(name, "vkCmdDebugMarkerBeginEXT"))
4818 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004819 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004820 }
4821 if (!strcmp(name, "vkCmdDebugMarkerEndEXT"))
4822 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004823 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004824 }
4825 if (!strcmp(name, "vkCmdDebugMarkerInsertEXT"))
4826 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004827 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004828 }
4829#endif
4830#ifdef VK_AMD_draw_indirect_count
4831 if (!strcmp(name, "vkCmdDrawIndirectCountAMD"))
4832 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004833 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004834 }
4835 if (!strcmp(name, "vkCmdDrawIndexedIndirectCountAMD"))
4836 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004837 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004838 }
4839#endif
4840#ifdef VK_AMD_shader_info
4841 if (!strcmp(name, "vkGetShaderInfoAMD"))
4842 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004843 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004844 }
4845#endif
4846#ifdef VK_NV_external_memory_capabilities
4847 if (!strcmp(name, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV"))
4848 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004849 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004850 }
4851#endif
4852#ifdef VK_NV_external_memory_win32
4853 if (!strcmp(name, "vkGetMemoryWin32HandleNV"))
4854 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004855 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004856 }
4857#endif
4858#ifdef VK_NN_vi_surface
4859 if (!strcmp(name, "vkCreateViSurfaceNN"))
4860 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004861 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004862 }
4863#endif
4864#ifdef VK_EXT_conditional_rendering
4865 if (!strcmp(name, "vkCmdBeginConditionalRenderingEXT"))
4866 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004867 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004868 }
4869 if (!strcmp(name, "vkCmdEndConditionalRenderingEXT"))
4870 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004871 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004872 }
4873#endif
4874#ifdef VK_NVX_device_generated_commands
4875 if (!strcmp(name, "vkCmdProcessCommandsNVX"))
4876 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004877 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004878 }
4879 if (!strcmp(name, "vkCmdReserveSpaceForCommandsNVX"))
4880 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004881 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004882 }
4883 if (!strcmp(name, "vkCreateIndirectCommandsLayoutNVX"))
4884 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004885 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004886 }
4887 if (!strcmp(name, "vkDestroyIndirectCommandsLayoutNVX"))
4888 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004889 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004890 }
4891 if (!strcmp(name, "vkCreateObjectTableNVX"))
4892 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004893 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004894 }
4895 if (!strcmp(name, "vkDestroyObjectTableNVX"))
4896 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004897 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004898 }
4899 if (!strcmp(name, "vkRegisterObjectsNVX"))
4900 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004901 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004902 }
4903 if (!strcmp(name, "vkUnregisterObjectsNVX"))
4904 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004905 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004906 }
4907 if (!strcmp(name, "vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX"))
4908 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004909 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004910 }
4911#endif
4912#ifdef VK_NV_clip_space_w_scaling
4913 if (!strcmp(name, "vkCmdSetViewportWScalingNV"))
4914 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004915 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004916 }
4917#endif
4918#ifdef VK_EXT_direct_mode_display
4919 if (!strcmp(name, "vkReleaseDisplayEXT"))
4920 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004921 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004922 }
4923#endif
4924#ifdef VK_EXT_acquire_xlib_display
4925 if (!strcmp(name, "vkAcquireXlibDisplayEXT"))
4926 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004927 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004928 }
4929 if (!strcmp(name, "vkGetRandROutputDisplayEXT"))
4930 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004931 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004932 }
4933#endif
4934#ifdef VK_EXT_display_surface_counter
4935 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2EXT"))
4936 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004937 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004938 }
4939#endif
4940#ifdef VK_EXT_display_control
4941 if (!strcmp(name, "vkDisplayPowerControlEXT"))
4942 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004943 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004944 }
4945 if (!strcmp(name, "vkRegisterDeviceEventEXT"))
4946 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004947 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004948 }
4949 if (!strcmp(name, "vkRegisterDisplayEventEXT"))
4950 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004951 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004952 }
4953 if (!strcmp(name, "vkGetSwapchainCounterEXT"))
4954 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004955 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004956 }
4957#endif
4958#ifdef VK_GOOGLE_display_timing
4959 if (!strcmp(name, "vkGetRefreshCycleDurationGOOGLE"))
4960 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004961 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004962 }
4963 if (!strcmp(name, "vkGetPastPresentationTimingGOOGLE"))
4964 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004965 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004966 }
4967#endif
4968#ifdef VK_EXT_discard_rectangles
4969 if (!strcmp(name, "vkCmdSetDiscardRectangleEXT"))
4970 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004971 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004972 }
4973#endif
4974#ifdef VK_EXT_hdr_metadata
4975 if (!strcmp(name, "vkSetHdrMetadataEXT"))
4976 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004977 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004978 }
4979#endif
4980#ifdef VK_MVK_ios_surface
4981 if (!strcmp(name, "vkCreateIOSSurfaceMVK"))
4982 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004983 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004984 }
4985#endif
4986#ifdef VK_MVK_macos_surface
4987 if (!strcmp(name, "vkCreateMacOSSurfaceMVK"))
4988 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004989 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004990 }
4991#endif
4992#ifdef VK_EXT_debug_utils
4993 if (!strcmp(name, "vkSetDebugUtilsObjectNameEXT"))
4994 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004995 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004996 }
4997 if (!strcmp(name, "vkSetDebugUtilsObjectTagEXT"))
4998 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004999 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005000 }
5001 if (!strcmp(name, "vkQueueBeginDebugUtilsLabelEXT"))
5002 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005003 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005004 }
5005 if (!strcmp(name, "vkQueueEndDebugUtilsLabelEXT"))
5006 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005007 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005008 }
5009 if (!strcmp(name, "vkQueueInsertDebugUtilsLabelEXT"))
5010 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005011 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005012 }
5013 if (!strcmp(name, "vkCmdBeginDebugUtilsLabelEXT"))
5014 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005015 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005016 }
5017 if (!strcmp(name, "vkCmdEndDebugUtilsLabelEXT"))
5018 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005019 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005020 }
5021 if (!strcmp(name, "vkCmdInsertDebugUtilsLabelEXT"))
5022 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005023 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005024 }
5025 if (!strcmp(name, "vkCreateDebugUtilsMessengerEXT"))
5026 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005027 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005028 }
5029 if (!strcmp(name, "vkDestroyDebugUtilsMessengerEXT"))
5030 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005031 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005032 }
5033 if (!strcmp(name, "vkSubmitDebugUtilsMessageEXT"))
5034 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005035 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005036 }
5037#endif
5038#ifdef VK_ANDROID_external_memory_android_hardware_buffer
5039 if (!strcmp(name, "vkGetAndroidHardwareBufferPropertiesANDROID"))
5040 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005041 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005042 }
5043 if (!strcmp(name, "vkGetMemoryAndroidHardwareBufferANDROID"))
5044 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005045 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005046 }
5047#endif
5048#ifdef VK_EXT_sample_locations
5049 if (!strcmp(name, "vkCmdSetSampleLocationsEXT"))
5050 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005051 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005052 }
5053 if (!strcmp(name, "vkGetPhysicalDeviceMultisamplePropertiesEXT"))
5054 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005055 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005056 }
5057#endif
5058#ifdef VK_EXT_validation_cache
5059 if (!strcmp(name, "vkCreateValidationCacheEXT"))
5060 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005061 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005062 }
5063 if (!strcmp(name, "vkDestroyValidationCacheEXT"))
5064 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005065 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005066 }
5067 if (!strcmp(name, "vkMergeValidationCachesEXT"))
5068 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005069 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005070 }
5071 if (!strcmp(name, "vkGetValidationCacheDataEXT"))
5072 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005073 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005074 }
5075#endif
5076#ifdef VK_EXT_external_memory_host
5077 if (!strcmp(name, "vkGetMemoryHostPointerPropertiesEXT"))
5078 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005079 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005080 }
5081#endif
5082#ifdef VK_AMD_buffer_marker
5083 if (!strcmp(name, "vkCmdWriteBufferMarkerAMD"))
5084 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005085 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005086 }
5087#endif
5088#ifdef VK_NV_device_diagnostic_checkpoints
5089 if (!strcmp(name, "vkCmdSetCheckpointNV"))
5090 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005091 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005092 }
5093 if (!strcmp(name, "vkGetQueueCheckpointDataNV"))
5094 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005095 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005096 }
5097#endif
Lingfeng Yang5c63afd2018-12-22 01:21:14 -08005098#ifdef VK_GOOGLE_address_space
5099 if (!strcmp(name, "vkMapMemoryIntoAddressSpaceGOOGLE"))
5100 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005101 return nullptr;
5102 }
5103#endif
Lingfeng Yangae7e1b32019-02-19 14:07:39 -08005104#ifdef VK_GOOGLE_color_buffer
5105 if (!strcmp(name, "vkRegisterImageColorBufferGOOGLE"))
5106 {
5107 return nullptr;
5108 }
5109 if (!strcmp(name, "vkRegisterBufferColorBufferGOOGLE"))
5110 {
5111 return nullptr;
5112 }
5113#endif
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005114 return nullptr;
5115}
5116void* goldfish_vulkan_get_instance_proc_address(VkInstance instance, const char* name){
5117 auto resources = ResourceTracker::get();
5118 bool has1_1OrHigher = resources->getApiVersionFromInstance(instance) >= VK_API_VERSION_1_1;
5119#ifdef VK_VERSION_1_0
5120 if (!strcmp(name, "vkCreateInstance"))
5121 {
5122 return (void*)entry_vkCreateInstance;
5123 }
5124 if (!strcmp(name, "vkDestroyInstance"))
5125 {
5126 return (void*)entry_vkDestroyInstance;
5127 }
5128 if (!strcmp(name, "vkEnumeratePhysicalDevices"))
5129 {
5130 return (void*)entry_vkEnumeratePhysicalDevices;
5131 }
5132 if (!strcmp(name, "vkGetPhysicalDeviceFeatures"))
5133 {
5134 return (void*)entry_vkGetPhysicalDeviceFeatures;
5135 }
5136 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties"))
5137 {
5138 return (void*)entry_vkGetPhysicalDeviceFormatProperties;
5139 }
5140 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties"))
5141 {
5142 return (void*)entry_vkGetPhysicalDeviceImageFormatProperties;
5143 }
5144 if (!strcmp(name, "vkGetPhysicalDeviceProperties"))
5145 {
5146 return (void*)entry_vkGetPhysicalDeviceProperties;
5147 }
5148 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties"))
5149 {
5150 return (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties;
5151 }
5152 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties"))
5153 {
5154 return (void*)entry_vkGetPhysicalDeviceMemoryProperties;
5155 }
5156 if (!strcmp(name, "vkGetInstanceProcAddr"))
5157 {
5158 return (void*)entry_vkGetInstanceProcAddr;
5159 }
5160 if (!strcmp(name, "vkGetDeviceProcAddr"))
5161 {
5162 return (void*)entry_vkGetDeviceProcAddr;
5163 }
5164 if (!strcmp(name, "vkCreateDevice"))
5165 {
5166 return (void*)entry_vkCreateDevice;
5167 }
5168 if (!strcmp(name, "vkDestroyDevice"))
5169 {
5170 return (void*)entry_vkDestroyDevice;
5171 }
5172 if (!strcmp(name, "vkEnumerateInstanceExtensionProperties"))
5173 {
5174 return (void*)entry_vkEnumerateInstanceExtensionProperties;
5175 }
5176 if (!strcmp(name, "vkEnumerateDeviceExtensionProperties"))
5177 {
5178 return (void*)entry_vkEnumerateDeviceExtensionProperties;
5179 }
5180 if (!strcmp(name, "vkEnumerateInstanceLayerProperties"))
5181 {
5182 return (void*)entry_vkEnumerateInstanceLayerProperties;
5183 }
5184 if (!strcmp(name, "vkEnumerateDeviceLayerProperties"))
5185 {
5186 return (void*)entry_vkEnumerateDeviceLayerProperties;
5187 }
5188 if (!strcmp(name, "vkGetDeviceQueue"))
5189 {
5190 return (void*)entry_vkGetDeviceQueue;
5191 }
5192 if (!strcmp(name, "vkQueueSubmit"))
5193 {
5194 return (void*)entry_vkQueueSubmit;
5195 }
5196 if (!strcmp(name, "vkQueueWaitIdle"))
5197 {
5198 return (void*)entry_vkQueueWaitIdle;
5199 }
5200 if (!strcmp(name, "vkDeviceWaitIdle"))
5201 {
5202 return (void*)entry_vkDeviceWaitIdle;
5203 }
5204 if (!strcmp(name, "vkAllocateMemory"))
5205 {
5206 return (void*)entry_vkAllocateMemory;
5207 }
5208 if (!strcmp(name, "vkFreeMemory"))
5209 {
5210 return (void*)entry_vkFreeMemory;
5211 }
5212 if (!strcmp(name, "vkMapMemory"))
5213 {
5214 return (void*)entry_vkMapMemory;
5215 }
5216 if (!strcmp(name, "vkUnmapMemory"))
5217 {
5218 return (void*)entry_vkUnmapMemory;
5219 }
5220 if (!strcmp(name, "vkFlushMappedMemoryRanges"))
5221 {
5222 return (void*)entry_vkFlushMappedMemoryRanges;
5223 }
5224 if (!strcmp(name, "vkInvalidateMappedMemoryRanges"))
5225 {
5226 return (void*)entry_vkInvalidateMappedMemoryRanges;
5227 }
5228 if (!strcmp(name, "vkGetDeviceMemoryCommitment"))
5229 {
5230 return (void*)entry_vkGetDeviceMemoryCommitment;
5231 }
5232 if (!strcmp(name, "vkBindBufferMemory"))
5233 {
5234 return (void*)entry_vkBindBufferMemory;
5235 }
5236 if (!strcmp(name, "vkBindImageMemory"))
5237 {
5238 return (void*)entry_vkBindImageMemory;
5239 }
5240 if (!strcmp(name, "vkGetBufferMemoryRequirements"))
5241 {
5242 return (void*)entry_vkGetBufferMemoryRequirements;
5243 }
5244 if (!strcmp(name, "vkGetImageMemoryRequirements"))
5245 {
5246 return (void*)entry_vkGetImageMemoryRequirements;
5247 }
5248 if (!strcmp(name, "vkGetImageSparseMemoryRequirements"))
5249 {
5250 return (void*)entry_vkGetImageSparseMemoryRequirements;
5251 }
5252 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties"))
5253 {
5254 return (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties;
5255 }
5256 if (!strcmp(name, "vkQueueBindSparse"))
5257 {
5258 return (void*)entry_vkQueueBindSparse;
5259 }
5260 if (!strcmp(name, "vkCreateFence"))
5261 {
5262 return (void*)entry_vkCreateFence;
5263 }
5264 if (!strcmp(name, "vkDestroyFence"))
5265 {
5266 return (void*)entry_vkDestroyFence;
5267 }
5268 if (!strcmp(name, "vkResetFences"))
5269 {
5270 return (void*)entry_vkResetFences;
5271 }
5272 if (!strcmp(name, "vkGetFenceStatus"))
5273 {
5274 return (void*)entry_vkGetFenceStatus;
5275 }
5276 if (!strcmp(name, "vkWaitForFences"))
5277 {
5278 return (void*)entry_vkWaitForFences;
5279 }
5280 if (!strcmp(name, "vkCreateSemaphore"))
5281 {
5282 return (void*)entry_vkCreateSemaphore;
5283 }
5284 if (!strcmp(name, "vkDestroySemaphore"))
5285 {
5286 return (void*)entry_vkDestroySemaphore;
5287 }
5288 if (!strcmp(name, "vkCreateEvent"))
5289 {
5290 return (void*)entry_vkCreateEvent;
5291 }
5292 if (!strcmp(name, "vkDestroyEvent"))
5293 {
5294 return (void*)entry_vkDestroyEvent;
5295 }
5296 if (!strcmp(name, "vkGetEventStatus"))
5297 {
5298 return (void*)entry_vkGetEventStatus;
5299 }
5300 if (!strcmp(name, "vkSetEvent"))
5301 {
5302 return (void*)entry_vkSetEvent;
5303 }
5304 if (!strcmp(name, "vkResetEvent"))
5305 {
5306 return (void*)entry_vkResetEvent;
5307 }
5308 if (!strcmp(name, "vkCreateQueryPool"))
5309 {
5310 return (void*)entry_vkCreateQueryPool;
5311 }
5312 if (!strcmp(name, "vkDestroyQueryPool"))
5313 {
5314 return (void*)entry_vkDestroyQueryPool;
5315 }
5316 if (!strcmp(name, "vkGetQueryPoolResults"))
5317 {
5318 return (void*)entry_vkGetQueryPoolResults;
5319 }
5320 if (!strcmp(name, "vkCreateBuffer"))
5321 {
5322 return (void*)entry_vkCreateBuffer;
5323 }
5324 if (!strcmp(name, "vkDestroyBuffer"))
5325 {
5326 return (void*)entry_vkDestroyBuffer;
5327 }
5328 if (!strcmp(name, "vkCreateBufferView"))
5329 {
5330 return (void*)entry_vkCreateBufferView;
5331 }
5332 if (!strcmp(name, "vkDestroyBufferView"))
5333 {
5334 return (void*)entry_vkDestroyBufferView;
5335 }
5336 if (!strcmp(name, "vkCreateImage"))
5337 {
5338 return (void*)entry_vkCreateImage;
5339 }
5340 if (!strcmp(name, "vkDestroyImage"))
5341 {
5342 return (void*)entry_vkDestroyImage;
5343 }
5344 if (!strcmp(name, "vkGetImageSubresourceLayout"))
5345 {
5346 return (void*)entry_vkGetImageSubresourceLayout;
5347 }
5348 if (!strcmp(name, "vkCreateImageView"))
5349 {
5350 return (void*)entry_vkCreateImageView;
5351 }
5352 if (!strcmp(name, "vkDestroyImageView"))
5353 {
5354 return (void*)entry_vkDestroyImageView;
5355 }
5356 if (!strcmp(name, "vkCreateShaderModule"))
5357 {
5358 return (void*)entry_vkCreateShaderModule;
5359 }
5360 if (!strcmp(name, "vkDestroyShaderModule"))
5361 {
5362 return (void*)entry_vkDestroyShaderModule;
5363 }
5364 if (!strcmp(name, "vkCreatePipelineCache"))
5365 {
5366 return (void*)entry_vkCreatePipelineCache;
5367 }
5368 if (!strcmp(name, "vkDestroyPipelineCache"))
5369 {
5370 return (void*)entry_vkDestroyPipelineCache;
5371 }
5372 if (!strcmp(name, "vkGetPipelineCacheData"))
5373 {
5374 return (void*)entry_vkGetPipelineCacheData;
5375 }
5376 if (!strcmp(name, "vkMergePipelineCaches"))
5377 {
5378 return (void*)entry_vkMergePipelineCaches;
5379 }
5380 if (!strcmp(name, "vkCreateGraphicsPipelines"))
5381 {
5382 return (void*)entry_vkCreateGraphicsPipelines;
5383 }
5384 if (!strcmp(name, "vkCreateComputePipelines"))
5385 {
5386 return (void*)entry_vkCreateComputePipelines;
5387 }
5388 if (!strcmp(name, "vkDestroyPipeline"))
5389 {
5390 return (void*)entry_vkDestroyPipeline;
5391 }
5392 if (!strcmp(name, "vkCreatePipelineLayout"))
5393 {
5394 return (void*)entry_vkCreatePipelineLayout;
5395 }
5396 if (!strcmp(name, "vkDestroyPipelineLayout"))
5397 {
5398 return (void*)entry_vkDestroyPipelineLayout;
5399 }
5400 if (!strcmp(name, "vkCreateSampler"))
5401 {
5402 return (void*)entry_vkCreateSampler;
5403 }
5404 if (!strcmp(name, "vkDestroySampler"))
5405 {
5406 return (void*)entry_vkDestroySampler;
5407 }
5408 if (!strcmp(name, "vkCreateDescriptorSetLayout"))
5409 {
5410 return (void*)entry_vkCreateDescriptorSetLayout;
5411 }
5412 if (!strcmp(name, "vkDestroyDescriptorSetLayout"))
5413 {
5414 return (void*)entry_vkDestroyDescriptorSetLayout;
5415 }
5416 if (!strcmp(name, "vkCreateDescriptorPool"))
5417 {
5418 return (void*)entry_vkCreateDescriptorPool;
5419 }
5420 if (!strcmp(name, "vkDestroyDescriptorPool"))
5421 {
5422 return (void*)entry_vkDestroyDescriptorPool;
5423 }
5424 if (!strcmp(name, "vkResetDescriptorPool"))
5425 {
5426 return (void*)entry_vkResetDescriptorPool;
5427 }
5428 if (!strcmp(name, "vkAllocateDescriptorSets"))
5429 {
5430 return (void*)entry_vkAllocateDescriptorSets;
5431 }
5432 if (!strcmp(name, "vkFreeDescriptorSets"))
5433 {
5434 return (void*)entry_vkFreeDescriptorSets;
5435 }
5436 if (!strcmp(name, "vkUpdateDescriptorSets"))
5437 {
5438 return (void*)entry_vkUpdateDescriptorSets;
5439 }
5440 if (!strcmp(name, "vkCreateFramebuffer"))
5441 {
5442 return (void*)entry_vkCreateFramebuffer;
5443 }
5444 if (!strcmp(name, "vkDestroyFramebuffer"))
5445 {
5446 return (void*)entry_vkDestroyFramebuffer;
5447 }
5448 if (!strcmp(name, "vkCreateRenderPass"))
5449 {
5450 return (void*)entry_vkCreateRenderPass;
5451 }
5452 if (!strcmp(name, "vkDestroyRenderPass"))
5453 {
5454 return (void*)entry_vkDestroyRenderPass;
5455 }
5456 if (!strcmp(name, "vkGetRenderAreaGranularity"))
5457 {
5458 return (void*)entry_vkGetRenderAreaGranularity;
5459 }
5460 if (!strcmp(name, "vkCreateCommandPool"))
5461 {
5462 return (void*)entry_vkCreateCommandPool;
5463 }
5464 if (!strcmp(name, "vkDestroyCommandPool"))
5465 {
5466 return (void*)entry_vkDestroyCommandPool;
5467 }
5468 if (!strcmp(name, "vkResetCommandPool"))
5469 {
5470 return (void*)entry_vkResetCommandPool;
5471 }
5472 if (!strcmp(name, "vkAllocateCommandBuffers"))
5473 {
5474 return (void*)entry_vkAllocateCommandBuffers;
5475 }
5476 if (!strcmp(name, "vkFreeCommandBuffers"))
5477 {
5478 return (void*)entry_vkFreeCommandBuffers;
5479 }
5480 if (!strcmp(name, "vkBeginCommandBuffer"))
5481 {
5482 return (void*)entry_vkBeginCommandBuffer;
5483 }
5484 if (!strcmp(name, "vkEndCommandBuffer"))
5485 {
5486 return (void*)entry_vkEndCommandBuffer;
5487 }
5488 if (!strcmp(name, "vkResetCommandBuffer"))
5489 {
5490 return (void*)entry_vkResetCommandBuffer;
5491 }
5492 if (!strcmp(name, "vkCmdBindPipeline"))
5493 {
5494 return (void*)entry_vkCmdBindPipeline;
5495 }
5496 if (!strcmp(name, "vkCmdSetViewport"))
5497 {
5498 return (void*)entry_vkCmdSetViewport;
5499 }
5500 if (!strcmp(name, "vkCmdSetScissor"))
5501 {
5502 return (void*)entry_vkCmdSetScissor;
5503 }
5504 if (!strcmp(name, "vkCmdSetLineWidth"))
5505 {
5506 return (void*)entry_vkCmdSetLineWidth;
5507 }
5508 if (!strcmp(name, "vkCmdSetDepthBias"))
5509 {
5510 return (void*)entry_vkCmdSetDepthBias;
5511 }
5512 if (!strcmp(name, "vkCmdSetBlendConstants"))
5513 {
5514 return (void*)entry_vkCmdSetBlendConstants;
5515 }
5516 if (!strcmp(name, "vkCmdSetDepthBounds"))
5517 {
5518 return (void*)entry_vkCmdSetDepthBounds;
5519 }
5520 if (!strcmp(name, "vkCmdSetStencilCompareMask"))
5521 {
5522 return (void*)entry_vkCmdSetStencilCompareMask;
5523 }
5524 if (!strcmp(name, "vkCmdSetStencilWriteMask"))
5525 {
5526 return (void*)entry_vkCmdSetStencilWriteMask;
5527 }
5528 if (!strcmp(name, "vkCmdSetStencilReference"))
5529 {
5530 return (void*)entry_vkCmdSetStencilReference;
5531 }
5532 if (!strcmp(name, "vkCmdBindDescriptorSets"))
5533 {
5534 return (void*)entry_vkCmdBindDescriptorSets;
5535 }
5536 if (!strcmp(name, "vkCmdBindIndexBuffer"))
5537 {
5538 return (void*)entry_vkCmdBindIndexBuffer;
5539 }
5540 if (!strcmp(name, "vkCmdBindVertexBuffers"))
5541 {
5542 return (void*)entry_vkCmdBindVertexBuffers;
5543 }
5544 if (!strcmp(name, "vkCmdDraw"))
5545 {
5546 return (void*)entry_vkCmdDraw;
5547 }
5548 if (!strcmp(name, "vkCmdDrawIndexed"))
5549 {
5550 return (void*)entry_vkCmdDrawIndexed;
5551 }
5552 if (!strcmp(name, "vkCmdDrawIndirect"))
5553 {
5554 return (void*)entry_vkCmdDrawIndirect;
5555 }
5556 if (!strcmp(name, "vkCmdDrawIndexedIndirect"))
5557 {
5558 return (void*)entry_vkCmdDrawIndexedIndirect;
5559 }
5560 if (!strcmp(name, "vkCmdDispatch"))
5561 {
5562 return (void*)entry_vkCmdDispatch;
5563 }
5564 if (!strcmp(name, "vkCmdDispatchIndirect"))
5565 {
5566 return (void*)entry_vkCmdDispatchIndirect;
5567 }
5568 if (!strcmp(name, "vkCmdCopyBuffer"))
5569 {
5570 return (void*)entry_vkCmdCopyBuffer;
5571 }
5572 if (!strcmp(name, "vkCmdCopyImage"))
5573 {
5574 return (void*)entry_vkCmdCopyImage;
5575 }
5576 if (!strcmp(name, "vkCmdBlitImage"))
5577 {
5578 return (void*)entry_vkCmdBlitImage;
5579 }
5580 if (!strcmp(name, "vkCmdCopyBufferToImage"))
5581 {
5582 return (void*)entry_vkCmdCopyBufferToImage;
5583 }
5584 if (!strcmp(name, "vkCmdCopyImageToBuffer"))
5585 {
5586 return (void*)entry_vkCmdCopyImageToBuffer;
5587 }
5588 if (!strcmp(name, "vkCmdUpdateBuffer"))
5589 {
5590 return (void*)entry_vkCmdUpdateBuffer;
5591 }
5592 if (!strcmp(name, "vkCmdFillBuffer"))
5593 {
5594 return (void*)entry_vkCmdFillBuffer;
5595 }
5596 if (!strcmp(name, "vkCmdClearColorImage"))
5597 {
5598 return (void*)entry_vkCmdClearColorImage;
5599 }
5600 if (!strcmp(name, "vkCmdClearDepthStencilImage"))
5601 {
5602 return (void*)entry_vkCmdClearDepthStencilImage;
5603 }
5604 if (!strcmp(name, "vkCmdClearAttachments"))
5605 {
5606 return (void*)entry_vkCmdClearAttachments;
5607 }
5608 if (!strcmp(name, "vkCmdResolveImage"))
5609 {
5610 return (void*)entry_vkCmdResolveImage;
5611 }
5612 if (!strcmp(name, "vkCmdSetEvent"))
5613 {
5614 return (void*)entry_vkCmdSetEvent;
5615 }
5616 if (!strcmp(name, "vkCmdResetEvent"))
5617 {
5618 return (void*)entry_vkCmdResetEvent;
5619 }
5620 if (!strcmp(name, "vkCmdWaitEvents"))
5621 {
5622 return (void*)entry_vkCmdWaitEvents;
5623 }
5624 if (!strcmp(name, "vkCmdPipelineBarrier"))
5625 {
5626 return (void*)entry_vkCmdPipelineBarrier;
5627 }
5628 if (!strcmp(name, "vkCmdBeginQuery"))
5629 {
5630 return (void*)entry_vkCmdBeginQuery;
5631 }
5632 if (!strcmp(name, "vkCmdEndQuery"))
5633 {
5634 return (void*)entry_vkCmdEndQuery;
5635 }
5636 if (!strcmp(name, "vkCmdResetQueryPool"))
5637 {
5638 return (void*)entry_vkCmdResetQueryPool;
5639 }
5640 if (!strcmp(name, "vkCmdWriteTimestamp"))
5641 {
5642 return (void*)entry_vkCmdWriteTimestamp;
5643 }
5644 if (!strcmp(name, "vkCmdCopyQueryPoolResults"))
5645 {
5646 return (void*)entry_vkCmdCopyQueryPoolResults;
5647 }
5648 if (!strcmp(name, "vkCmdPushConstants"))
5649 {
5650 return (void*)entry_vkCmdPushConstants;
5651 }
5652 if (!strcmp(name, "vkCmdBeginRenderPass"))
5653 {
5654 return (void*)entry_vkCmdBeginRenderPass;
5655 }
5656 if (!strcmp(name, "vkCmdNextSubpass"))
5657 {
5658 return (void*)entry_vkCmdNextSubpass;
5659 }
5660 if (!strcmp(name, "vkCmdEndRenderPass"))
5661 {
5662 return (void*)entry_vkCmdEndRenderPass;
5663 }
5664 if (!strcmp(name, "vkCmdExecuteCommands"))
5665 {
5666 return (void*)entry_vkCmdExecuteCommands;
5667 }
5668#endif
5669#ifdef VK_VERSION_1_1
5670 if (!strcmp(name, "vkEnumerateInstanceVersion"))
5671 {
5672 return has1_1OrHigher ? (void*)entry_vkEnumerateInstanceVersion : nullptr;
5673 }
5674 if (!strcmp(name, "vkBindBufferMemory2"))
5675 {
5676 return has1_1OrHigher ? (void*)entry_vkBindBufferMemory2 : nullptr;
5677 }
5678 if (!strcmp(name, "vkBindImageMemory2"))
5679 {
5680 return has1_1OrHigher ? (void*)entry_vkBindImageMemory2 : nullptr;
5681 }
5682 if (!strcmp(name, "vkGetDeviceGroupPeerMemoryFeatures"))
5683 {
5684 return has1_1OrHigher ? (void*)entry_vkGetDeviceGroupPeerMemoryFeatures : nullptr;
5685 }
5686 if (!strcmp(name, "vkCmdSetDeviceMask"))
5687 {
5688 return has1_1OrHigher ? (void*)entry_vkCmdSetDeviceMask : nullptr;
5689 }
5690 if (!strcmp(name, "vkCmdDispatchBase"))
5691 {
5692 return has1_1OrHigher ? (void*)entry_vkCmdDispatchBase : nullptr;
5693 }
5694 if (!strcmp(name, "vkEnumeratePhysicalDeviceGroups"))
5695 {
5696 return nullptr;
5697 }
5698 if (!strcmp(name, "vkGetImageMemoryRequirements2"))
5699 {
5700 return has1_1OrHigher ? (void*)entry_vkGetImageMemoryRequirements2 : nullptr;
5701 }
5702 if (!strcmp(name, "vkGetBufferMemoryRequirements2"))
5703 {
5704 return has1_1OrHigher ? (void*)entry_vkGetBufferMemoryRequirements2 : nullptr;
5705 }
5706 if (!strcmp(name, "vkGetImageSparseMemoryRequirements2"))
5707 {
5708 return has1_1OrHigher ? (void*)entry_vkGetImageSparseMemoryRequirements2 : nullptr;
5709 }
5710 if (!strcmp(name, "vkGetPhysicalDeviceFeatures2"))
5711 {
5712 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceFeatures2 : nullptr;
5713 }
5714 if (!strcmp(name, "vkGetPhysicalDeviceProperties2"))
5715 {
5716 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceProperties2 : nullptr;
5717 }
5718 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties2"))
5719 {
5720 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceFormatProperties2 : nullptr;
5721 }
5722 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties2"))
5723 {
5724 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceImageFormatProperties2 : nullptr;
5725 }
5726 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties2"))
5727 {
5728 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties2 : nullptr;
5729 }
5730 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties2"))
5731 {
5732 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceMemoryProperties2 : nullptr;
5733 }
5734 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties2"))
5735 {
5736 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties2 : nullptr;
5737 }
5738 if (!strcmp(name, "vkTrimCommandPool"))
5739 {
5740 return has1_1OrHigher ? (void*)entry_vkTrimCommandPool : nullptr;
5741 }
5742 if (!strcmp(name, "vkGetDeviceQueue2"))
5743 {
5744 return has1_1OrHigher ? (void*)entry_vkGetDeviceQueue2 : nullptr;
5745 }
5746 if (!strcmp(name, "vkCreateSamplerYcbcrConversion"))
5747 {
5748 return has1_1OrHigher ? (void*)entry_vkCreateSamplerYcbcrConversion : nullptr;
5749 }
5750 if (!strcmp(name, "vkDestroySamplerYcbcrConversion"))
5751 {
5752 return has1_1OrHigher ? (void*)entry_vkDestroySamplerYcbcrConversion : nullptr;
5753 }
5754 if (!strcmp(name, "vkCreateDescriptorUpdateTemplate"))
5755 {
5756 return has1_1OrHigher ? (void*)entry_vkCreateDescriptorUpdateTemplate : nullptr;
5757 }
5758 if (!strcmp(name, "vkDestroyDescriptorUpdateTemplate"))
5759 {
5760 return has1_1OrHigher ? (void*)entry_vkDestroyDescriptorUpdateTemplate : nullptr;
5761 }
5762 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplate"))
5763 {
5764 return has1_1OrHigher ? (void*)entry_vkUpdateDescriptorSetWithTemplate : nullptr;
5765 }
5766 if (!strcmp(name, "vkGetPhysicalDeviceExternalBufferProperties"))
5767 {
5768 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceExternalBufferProperties : nullptr;
5769 }
5770 if (!strcmp(name, "vkGetPhysicalDeviceExternalFenceProperties"))
5771 {
5772 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceExternalFenceProperties : nullptr;
5773 }
5774 if (!strcmp(name, "vkGetPhysicalDeviceExternalSemaphoreProperties"))
5775 {
5776 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceExternalSemaphoreProperties : nullptr;
5777 }
5778 if (!strcmp(name, "vkGetDescriptorSetLayoutSupport"))
5779 {
5780 return has1_1OrHigher ? (void*)entry_vkGetDescriptorSetLayoutSupport : nullptr;
5781 }
5782#endif
5783#ifdef VK_KHR_surface
5784 if (!strcmp(name, "vkDestroySurfaceKHR"))
5785 {
5786 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_surface");
5787 return hasExt ? (void*)entry_vkDestroySurfaceKHR : nullptr;
5788 }
5789 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceSupportKHR"))
5790 {
5791 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_surface");
5792 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceSupportKHR : nullptr;
5793 }
5794 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR"))
5795 {
5796 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_surface");
5797 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceCapabilitiesKHR : nullptr;
5798 }
5799 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceFormatsKHR"))
5800 {
5801 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_surface");
5802 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceFormatsKHR : nullptr;
5803 }
5804 if (!strcmp(name, "vkGetPhysicalDeviceSurfacePresentModesKHR"))
5805 {
5806 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_surface");
5807 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfacePresentModesKHR : nullptr;
5808 }
5809#endif
5810#ifdef VK_KHR_swapchain
5811 if (!strcmp(name, "vkCreateSwapchainKHR"))
5812 {
5813 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5814 return hasExt ? (void*)entry_vkCreateSwapchainKHR : nullptr;
5815 }
5816 if (!strcmp(name, "vkDestroySwapchainKHR"))
5817 {
5818 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5819 return hasExt ? (void*)entry_vkDestroySwapchainKHR : nullptr;
5820 }
5821 if (!strcmp(name, "vkGetSwapchainImagesKHR"))
5822 {
5823 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5824 return hasExt ? (void*)entry_vkGetSwapchainImagesKHR : nullptr;
5825 }
5826 if (!strcmp(name, "vkAcquireNextImageKHR"))
5827 {
5828 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5829 return hasExt ? (void*)entry_vkAcquireNextImageKHR : nullptr;
5830 }
5831 if (!strcmp(name, "vkQueuePresentKHR"))
5832 {
5833 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5834 return hasExt ? (void*)entry_vkQueuePresentKHR : nullptr;
5835 }
5836 if (!strcmp(name, "vkGetDeviceGroupPresentCapabilitiesKHR"))
5837 {
5838 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5839 return hasExt ? (void*)entry_vkGetDeviceGroupPresentCapabilitiesKHR : nullptr;
5840 }
5841 if (!strcmp(name, "vkGetDeviceGroupSurfacePresentModesKHR"))
5842 {
5843 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5844 return hasExt ? (void*)entry_vkGetDeviceGroupSurfacePresentModesKHR : nullptr;
5845 }
5846 if (!strcmp(name, "vkGetPhysicalDevicePresentRectanglesKHR"))
5847 {
5848 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5849 return hasExt ? (void*)entry_vkGetPhysicalDevicePresentRectanglesKHR : nullptr;
5850 }
5851 if (!strcmp(name, "vkAcquireNextImage2KHR"))
5852 {
5853 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5854 return hasExt ? (void*)entry_vkAcquireNextImage2KHR : nullptr;
5855 }
5856#endif
5857#ifdef VK_KHR_display
5858 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPropertiesKHR"))
5859 {
5860 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
5861 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayPropertiesKHR : nullptr;
5862 }
5863 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR"))
5864 {
5865 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
5866 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayPlanePropertiesKHR : nullptr;
5867 }
5868 if (!strcmp(name, "vkGetDisplayPlaneSupportedDisplaysKHR"))
5869 {
5870 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
5871 return hasExt ? (void*)entry_vkGetDisplayPlaneSupportedDisplaysKHR : nullptr;
5872 }
5873 if (!strcmp(name, "vkGetDisplayModePropertiesKHR"))
5874 {
5875 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
5876 return hasExt ? (void*)entry_vkGetDisplayModePropertiesKHR : nullptr;
5877 }
5878 if (!strcmp(name, "vkCreateDisplayModeKHR"))
5879 {
5880 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
5881 return hasExt ? (void*)entry_vkCreateDisplayModeKHR : nullptr;
5882 }
5883 if (!strcmp(name, "vkGetDisplayPlaneCapabilitiesKHR"))
5884 {
5885 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
5886 return hasExt ? (void*)entry_vkGetDisplayPlaneCapabilitiesKHR : nullptr;
5887 }
5888 if (!strcmp(name, "vkCreateDisplayPlaneSurfaceKHR"))
5889 {
5890 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
5891 return hasExt ? (void*)entry_vkCreateDisplayPlaneSurfaceKHR : nullptr;
5892 }
5893#endif
5894#ifdef VK_KHR_display_swapchain
5895 if (!strcmp(name, "vkCreateSharedSwapchainsKHR"))
5896 {
5897 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display_swapchain");
5898 return hasExt ? (void*)entry_vkCreateSharedSwapchainsKHR : nullptr;
5899 }
5900#endif
5901#ifdef VK_KHR_xlib_surface
5902 if (!strcmp(name, "vkCreateXlibSurfaceKHR"))
5903 {
5904 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_xlib_surface");
5905 return hasExt ? (void*)entry_vkCreateXlibSurfaceKHR : nullptr;
5906 }
5907 if (!strcmp(name, "vkGetPhysicalDeviceXlibPresentationSupportKHR"))
5908 {
5909 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_xlib_surface");
5910 return hasExt ? (void*)entry_vkGetPhysicalDeviceXlibPresentationSupportKHR : nullptr;
5911 }
5912#endif
5913#ifdef VK_KHR_xcb_surface
5914 if (!strcmp(name, "vkCreateXcbSurfaceKHR"))
5915 {
5916 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_xcb_surface");
5917 return hasExt ? (void*)entry_vkCreateXcbSurfaceKHR : nullptr;
5918 }
5919 if (!strcmp(name, "vkGetPhysicalDeviceXcbPresentationSupportKHR"))
5920 {
5921 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_xcb_surface");
5922 return hasExt ? (void*)entry_vkGetPhysicalDeviceXcbPresentationSupportKHR : nullptr;
5923 }
5924#endif
5925#ifdef VK_KHR_wayland_surface
5926 if (!strcmp(name, "vkCreateWaylandSurfaceKHR"))
5927 {
5928 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_wayland_surface");
5929 return hasExt ? (void*)entry_vkCreateWaylandSurfaceKHR : nullptr;
5930 }
5931 if (!strcmp(name, "vkGetPhysicalDeviceWaylandPresentationSupportKHR"))
5932 {
5933 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_wayland_surface");
5934 return hasExt ? (void*)entry_vkGetPhysicalDeviceWaylandPresentationSupportKHR : nullptr;
5935 }
5936#endif
5937#ifdef VK_KHR_mir_surface
5938 if (!strcmp(name, "vkCreateMirSurfaceKHR"))
5939 {
5940 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_mir_surface");
5941 return hasExt ? (void*)entry_vkCreateMirSurfaceKHR : nullptr;
5942 }
5943 if (!strcmp(name, "vkGetPhysicalDeviceMirPresentationSupportKHR"))
5944 {
5945 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_mir_surface");
5946 return hasExt ? (void*)entry_vkGetPhysicalDeviceMirPresentationSupportKHR : nullptr;
5947 }
5948#endif
5949#ifdef VK_KHR_android_surface
5950 if (!strcmp(name, "vkCreateAndroidSurfaceKHR"))
5951 {
5952 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_android_surface");
5953 return hasExt ? (void*)entry_vkCreateAndroidSurfaceKHR : nullptr;
5954 }
5955#endif
5956#ifdef VK_KHR_win32_surface
5957 if (!strcmp(name, "vkCreateWin32SurfaceKHR"))
5958 {
5959 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_win32_surface");
5960 return hasExt ? (void*)entry_vkCreateWin32SurfaceKHR : nullptr;
5961 }
5962 if (!strcmp(name, "vkGetPhysicalDeviceWin32PresentationSupportKHR"))
5963 {
5964 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_win32_surface");
5965 return hasExt ? (void*)entry_vkGetPhysicalDeviceWin32PresentationSupportKHR : nullptr;
5966 }
5967#endif
5968#ifdef VK_KHR_get_physical_device_properties2
5969 if (!strcmp(name, "vkGetPhysicalDeviceFeatures2KHR"))
5970 {
5971 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
5972 return hasExt ? (void*)entry_vkGetPhysicalDeviceFeatures2KHR : nullptr;
5973 }
5974 if (!strcmp(name, "vkGetPhysicalDeviceProperties2KHR"))
5975 {
5976 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
5977 return hasExt ? (void*)entry_vkGetPhysicalDeviceProperties2KHR : nullptr;
5978 }
5979 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties2KHR"))
5980 {
5981 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
5982 return hasExt ? (void*)entry_vkGetPhysicalDeviceFormatProperties2KHR : nullptr;
5983 }
5984 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties2KHR"))
5985 {
5986 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
5987 return hasExt ? (void*)entry_vkGetPhysicalDeviceImageFormatProperties2KHR : nullptr;
5988 }
5989 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties2KHR"))
5990 {
5991 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
5992 return hasExt ? (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties2KHR : nullptr;
5993 }
5994 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties2KHR"))
5995 {
5996 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
5997 return hasExt ? (void*)entry_vkGetPhysicalDeviceMemoryProperties2KHR : nullptr;
5998 }
5999 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR"))
6000 {
6001 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
6002 return hasExt ? (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties2KHR : nullptr;
6003 }
6004#endif
6005#ifdef VK_KHR_device_group
6006 if (!strcmp(name, "vkGetDeviceGroupPeerMemoryFeaturesKHR"))
6007 {
6008 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_device_group");
6009 return hasExt ? (void*)entry_vkGetDeviceGroupPeerMemoryFeaturesKHR : nullptr;
6010 }
6011 if (!strcmp(name, "vkCmdSetDeviceMaskKHR"))
6012 {
6013 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_device_group");
6014 return hasExt ? (void*)entry_vkCmdSetDeviceMaskKHR : nullptr;
6015 }
6016 if (!strcmp(name, "vkCmdDispatchBaseKHR"))
6017 {
6018 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_device_group");
6019 return hasExt ? (void*)entry_vkCmdDispatchBaseKHR : nullptr;
6020 }
6021#endif
6022#ifdef VK_KHR_maintenance1
6023 if (!strcmp(name, "vkTrimCommandPoolKHR"))
6024 {
6025 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_maintenance1");
6026 return hasExt ? (void*)entry_vkTrimCommandPoolKHR : nullptr;
6027 }
6028#endif
6029#ifdef VK_KHR_device_group_creation
6030 if (!strcmp(name, "vkEnumeratePhysicalDeviceGroupsKHR"))
6031 {
6032 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_device_group_creation");
6033 return hasExt ? (void*)entry_vkEnumeratePhysicalDeviceGroupsKHR : nullptr;
6034 }
6035#endif
6036#ifdef VK_KHR_external_memory_capabilities
6037 if (!strcmp(name, "vkGetPhysicalDeviceExternalBufferPropertiesKHR"))
6038 {
6039 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_memory_capabilities");
6040 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalBufferPropertiesKHR : nullptr;
6041 }
6042#endif
6043#ifdef VK_KHR_external_memory_win32
6044 if (!strcmp(name, "vkGetMemoryWin32HandleKHR"))
6045 {
6046 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_memory_win32");
6047 return hasExt ? (void*)entry_vkGetMemoryWin32HandleKHR : nullptr;
6048 }
6049 if (!strcmp(name, "vkGetMemoryWin32HandlePropertiesKHR"))
6050 {
6051 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_memory_win32");
6052 return hasExt ? (void*)entry_vkGetMemoryWin32HandlePropertiesKHR : nullptr;
6053 }
6054#endif
6055#ifdef VK_KHR_external_memory_fd
6056 if (!strcmp(name, "vkGetMemoryFdKHR"))
6057 {
6058 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_memory_fd");
6059 return hasExt ? (void*)entry_vkGetMemoryFdKHR : nullptr;
6060 }
6061 if (!strcmp(name, "vkGetMemoryFdPropertiesKHR"))
6062 {
6063 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_memory_fd");
6064 return hasExt ? (void*)entry_vkGetMemoryFdPropertiesKHR : nullptr;
6065 }
6066#endif
6067#ifdef VK_KHR_external_semaphore_capabilities
6068 if (!strcmp(name, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR"))
6069 {
6070 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_semaphore_capabilities");
6071 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR : nullptr;
6072 }
6073#endif
6074#ifdef VK_KHR_external_semaphore_win32
6075 if (!strcmp(name, "vkImportSemaphoreWin32HandleKHR"))
6076 {
6077 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_semaphore_win32");
6078 return hasExt ? (void*)entry_vkImportSemaphoreWin32HandleKHR : nullptr;
6079 }
6080 if (!strcmp(name, "vkGetSemaphoreWin32HandleKHR"))
6081 {
6082 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_semaphore_win32");
6083 return hasExt ? (void*)entry_vkGetSemaphoreWin32HandleKHR : nullptr;
6084 }
6085#endif
6086#ifdef VK_KHR_external_semaphore_fd
6087 if (!strcmp(name, "vkImportSemaphoreFdKHR"))
6088 {
6089 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_semaphore_fd");
6090 return hasExt ? (void*)entry_vkImportSemaphoreFdKHR : nullptr;
6091 }
6092 if (!strcmp(name, "vkGetSemaphoreFdKHR"))
6093 {
6094 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_semaphore_fd");
6095 return hasExt ? (void*)entry_vkGetSemaphoreFdKHR : nullptr;
6096 }
6097#endif
6098#ifdef VK_KHR_push_descriptor
6099 if (!strcmp(name, "vkCmdPushDescriptorSetKHR"))
6100 {
6101 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_push_descriptor");
6102 return hasExt ? (void*)entry_vkCmdPushDescriptorSetKHR : nullptr;
6103 }
6104 if (!strcmp(name, "vkCmdPushDescriptorSetWithTemplateKHR"))
6105 {
6106 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_push_descriptor");
6107 return hasExt ? (void*)entry_vkCmdPushDescriptorSetWithTemplateKHR : nullptr;
6108 }
6109#endif
6110#ifdef VK_KHR_descriptor_update_template
6111 if (!strcmp(name, "vkCreateDescriptorUpdateTemplateKHR"))
6112 {
6113 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_descriptor_update_template");
6114 return hasExt ? (void*)entry_vkCreateDescriptorUpdateTemplateKHR : nullptr;
6115 }
6116 if (!strcmp(name, "vkDestroyDescriptorUpdateTemplateKHR"))
6117 {
6118 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_descriptor_update_template");
6119 return hasExt ? (void*)entry_vkDestroyDescriptorUpdateTemplateKHR : nullptr;
6120 }
6121 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplateKHR"))
6122 {
6123 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_descriptor_update_template");
6124 return hasExt ? (void*)entry_vkUpdateDescriptorSetWithTemplateKHR : nullptr;
6125 }
6126#endif
6127#ifdef VK_KHR_create_renderpass2
6128 if (!strcmp(name, "vkCreateRenderPass2KHR"))
6129 {
6130 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_create_renderpass2");
6131 return hasExt ? (void*)entry_vkCreateRenderPass2KHR : nullptr;
6132 }
6133 if (!strcmp(name, "vkCmdBeginRenderPass2KHR"))
6134 {
6135 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_create_renderpass2");
6136 return hasExt ? (void*)entry_vkCmdBeginRenderPass2KHR : nullptr;
6137 }
6138 if (!strcmp(name, "vkCmdNextSubpass2KHR"))
6139 {
6140 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_create_renderpass2");
6141 return hasExt ? (void*)entry_vkCmdNextSubpass2KHR : nullptr;
6142 }
6143 if (!strcmp(name, "vkCmdEndRenderPass2KHR"))
6144 {
6145 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_create_renderpass2");
6146 return hasExt ? (void*)entry_vkCmdEndRenderPass2KHR : nullptr;
6147 }
6148#endif
6149#ifdef VK_KHR_shared_presentable_image
6150 if (!strcmp(name, "vkGetSwapchainStatusKHR"))
6151 {
6152 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_shared_presentable_image");
6153 return hasExt ? (void*)entry_vkGetSwapchainStatusKHR : nullptr;
6154 }
6155#endif
6156#ifdef VK_KHR_external_fence_capabilities
6157 if (!strcmp(name, "vkGetPhysicalDeviceExternalFencePropertiesKHR"))
6158 {
6159 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_fence_capabilities");
6160 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalFencePropertiesKHR : nullptr;
6161 }
6162#endif
6163#ifdef VK_KHR_external_fence_win32
6164 if (!strcmp(name, "vkImportFenceWin32HandleKHR"))
6165 {
6166 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_fence_win32");
6167 return hasExt ? (void*)entry_vkImportFenceWin32HandleKHR : nullptr;
6168 }
6169 if (!strcmp(name, "vkGetFenceWin32HandleKHR"))
6170 {
6171 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_fence_win32");
6172 return hasExt ? (void*)entry_vkGetFenceWin32HandleKHR : nullptr;
6173 }
6174#endif
6175#ifdef VK_KHR_external_fence_fd
6176 if (!strcmp(name, "vkImportFenceFdKHR"))
6177 {
6178 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_fence_fd");
6179 return hasExt ? (void*)entry_vkImportFenceFdKHR : nullptr;
6180 }
6181 if (!strcmp(name, "vkGetFenceFdKHR"))
6182 {
6183 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_fence_fd");
6184 return hasExt ? (void*)entry_vkGetFenceFdKHR : nullptr;
6185 }
6186#endif
6187#ifdef VK_KHR_get_surface_capabilities2
6188 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2KHR"))
6189 {
6190 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_surface_capabilities2");
6191 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceCapabilities2KHR : nullptr;
6192 }
6193 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceFormats2KHR"))
6194 {
6195 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_surface_capabilities2");
6196 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceFormats2KHR : nullptr;
6197 }
6198#endif
6199#ifdef VK_KHR_get_display_properties2
6200 if (!strcmp(name, "vkGetPhysicalDeviceDisplayProperties2KHR"))
6201 {
6202 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_display_properties2");
6203 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayProperties2KHR : nullptr;
6204 }
6205 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR"))
6206 {
6207 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_display_properties2");
6208 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayPlaneProperties2KHR : nullptr;
6209 }
6210 if (!strcmp(name, "vkGetDisplayModeProperties2KHR"))
6211 {
6212 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_display_properties2");
6213 return hasExt ? (void*)entry_vkGetDisplayModeProperties2KHR : nullptr;
6214 }
6215 if (!strcmp(name, "vkGetDisplayPlaneCapabilities2KHR"))
6216 {
6217 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_display_properties2");
6218 return hasExt ? (void*)entry_vkGetDisplayPlaneCapabilities2KHR : nullptr;
6219 }
6220#endif
6221#ifdef VK_KHR_get_memory_requirements2
6222 if (!strcmp(name, "vkGetImageMemoryRequirements2KHR"))
6223 {
6224 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_memory_requirements2");
6225 return hasExt ? (void*)entry_vkGetImageMemoryRequirements2KHR : nullptr;
6226 }
6227 if (!strcmp(name, "vkGetBufferMemoryRequirements2KHR"))
6228 {
6229 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_memory_requirements2");
6230 return hasExt ? (void*)entry_vkGetBufferMemoryRequirements2KHR : nullptr;
6231 }
6232 if (!strcmp(name, "vkGetImageSparseMemoryRequirements2KHR"))
6233 {
6234 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_memory_requirements2");
6235 return hasExt ? (void*)entry_vkGetImageSparseMemoryRequirements2KHR : nullptr;
6236 }
6237#endif
6238#ifdef VK_KHR_sampler_ycbcr_conversion
6239 if (!strcmp(name, "vkCreateSamplerYcbcrConversionKHR"))
6240 {
6241 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_sampler_ycbcr_conversion");
6242 return hasExt ? (void*)entry_vkCreateSamplerYcbcrConversionKHR : nullptr;
6243 }
6244 if (!strcmp(name, "vkDestroySamplerYcbcrConversionKHR"))
6245 {
6246 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_sampler_ycbcr_conversion");
6247 return hasExt ? (void*)entry_vkDestroySamplerYcbcrConversionKHR : nullptr;
6248 }
6249#endif
6250#ifdef VK_KHR_bind_memory2
6251 if (!strcmp(name, "vkBindBufferMemory2KHR"))
6252 {
6253 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_bind_memory2");
6254 return hasExt ? (void*)entry_vkBindBufferMemory2KHR : nullptr;
6255 }
6256 if (!strcmp(name, "vkBindImageMemory2KHR"))
6257 {
6258 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_bind_memory2");
6259 return hasExt ? (void*)entry_vkBindImageMemory2KHR : nullptr;
6260 }
6261#endif
6262#ifdef VK_KHR_maintenance3
6263 if (!strcmp(name, "vkGetDescriptorSetLayoutSupportKHR"))
6264 {
6265 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_maintenance3");
6266 return hasExt ? (void*)entry_vkGetDescriptorSetLayoutSupportKHR : nullptr;
6267 }
6268#endif
6269#ifdef VK_KHR_draw_indirect_count
6270 if (!strcmp(name, "vkCmdDrawIndirectCountKHR"))
6271 {
6272 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_draw_indirect_count");
6273 return hasExt ? (void*)entry_vkCmdDrawIndirectCountKHR : nullptr;
6274 }
6275 if (!strcmp(name, "vkCmdDrawIndexedIndirectCountKHR"))
6276 {
6277 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_draw_indirect_count");
6278 return hasExt ? (void*)entry_vkCmdDrawIndexedIndirectCountKHR : nullptr;
6279 }
6280#endif
6281#ifdef VK_ANDROID_native_buffer
6282 if (!strcmp(name, "vkGetSwapchainGrallocUsageANDROID"))
6283 {
6284 bool hasExt = resources->hasInstanceExtension(instance, "VK_ANDROID_native_buffer");
6285 return hasExt ? (void*)entry_vkGetSwapchainGrallocUsageANDROID : nullptr;
6286 }
6287 if (!strcmp(name, "vkAcquireImageANDROID"))
6288 {
6289 bool hasExt = resources->hasInstanceExtension(instance, "VK_ANDROID_native_buffer");
6290 return hasExt ? (void*)entry_vkAcquireImageANDROID : nullptr;
6291 }
6292 if (!strcmp(name, "vkQueueSignalReleaseImageANDROID"))
6293 {
6294 bool hasExt = resources->hasInstanceExtension(instance, "VK_ANDROID_native_buffer");
6295 return hasExt ? (void*)entry_vkQueueSignalReleaseImageANDROID : nullptr;
6296 }
6297#endif
6298#ifdef VK_EXT_debug_report
6299 if (!strcmp(name, "vkCreateDebugReportCallbackEXT"))
6300 {
6301 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_report");
6302 return hasExt ? (void*)entry_vkCreateDebugReportCallbackEXT : nullptr;
6303 }
6304 if (!strcmp(name, "vkDestroyDebugReportCallbackEXT"))
6305 {
6306 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_report");
6307 return hasExt ? (void*)entry_vkDestroyDebugReportCallbackEXT : nullptr;
6308 }
6309 if (!strcmp(name, "vkDebugReportMessageEXT"))
6310 {
6311 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_report");
6312 return hasExt ? (void*)entry_vkDebugReportMessageEXT : nullptr;
6313 }
6314#endif
6315#ifdef VK_EXT_debug_marker
6316 if (!strcmp(name, "vkDebugMarkerSetObjectTagEXT"))
6317 {
6318 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_marker");
6319 return hasExt ? (void*)entry_vkDebugMarkerSetObjectTagEXT : nullptr;
6320 }
6321 if (!strcmp(name, "vkDebugMarkerSetObjectNameEXT"))
6322 {
6323 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_marker");
6324 return hasExt ? (void*)entry_vkDebugMarkerSetObjectNameEXT : nullptr;
6325 }
6326 if (!strcmp(name, "vkCmdDebugMarkerBeginEXT"))
6327 {
6328 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_marker");
6329 return hasExt ? (void*)entry_vkCmdDebugMarkerBeginEXT : nullptr;
6330 }
6331 if (!strcmp(name, "vkCmdDebugMarkerEndEXT"))
6332 {
6333 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_marker");
6334 return hasExt ? (void*)entry_vkCmdDebugMarkerEndEXT : nullptr;
6335 }
6336 if (!strcmp(name, "vkCmdDebugMarkerInsertEXT"))
6337 {
6338 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_marker");
6339 return hasExt ? (void*)entry_vkCmdDebugMarkerInsertEXT : nullptr;
6340 }
6341#endif
6342#ifdef VK_AMD_draw_indirect_count
6343 if (!strcmp(name, "vkCmdDrawIndirectCountAMD"))
6344 {
6345 bool hasExt = resources->hasInstanceExtension(instance, "VK_AMD_draw_indirect_count");
6346 return hasExt ? (void*)entry_vkCmdDrawIndirectCountAMD : nullptr;
6347 }
6348 if (!strcmp(name, "vkCmdDrawIndexedIndirectCountAMD"))
6349 {
6350 bool hasExt = resources->hasInstanceExtension(instance, "VK_AMD_draw_indirect_count");
6351 return hasExt ? (void*)entry_vkCmdDrawIndexedIndirectCountAMD : nullptr;
6352 }
6353#endif
6354#ifdef VK_AMD_shader_info
6355 if (!strcmp(name, "vkGetShaderInfoAMD"))
6356 {
6357 bool hasExt = resources->hasInstanceExtension(instance, "VK_AMD_shader_info");
6358 return hasExt ? (void*)entry_vkGetShaderInfoAMD : nullptr;
6359 }
6360#endif
6361#ifdef VK_NV_external_memory_capabilities
6362 if (!strcmp(name, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV"))
6363 {
6364 bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_external_memory_capabilities");
6365 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalImageFormatPropertiesNV : nullptr;
6366 }
6367#endif
6368#ifdef VK_NV_external_memory_win32
6369 if (!strcmp(name, "vkGetMemoryWin32HandleNV"))
6370 {
6371 bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_external_memory_win32");
6372 return hasExt ? (void*)entry_vkGetMemoryWin32HandleNV : nullptr;
6373 }
6374#endif
6375#ifdef VK_NN_vi_surface
6376 if (!strcmp(name, "vkCreateViSurfaceNN"))
6377 {
6378 bool hasExt = resources->hasInstanceExtension(instance, "VK_NN_vi_surface");
6379 return hasExt ? (void*)entry_vkCreateViSurfaceNN : nullptr;
6380 }
6381#endif
6382#ifdef VK_EXT_conditional_rendering
6383 if (!strcmp(name, "vkCmdBeginConditionalRenderingEXT"))
6384 {
6385 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_conditional_rendering");
6386 return hasExt ? (void*)entry_vkCmdBeginConditionalRenderingEXT : nullptr;
6387 }
6388 if (!strcmp(name, "vkCmdEndConditionalRenderingEXT"))
6389 {
6390 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_conditional_rendering");
6391 return hasExt ? (void*)entry_vkCmdEndConditionalRenderingEXT : nullptr;
6392 }
6393#endif
6394#ifdef VK_NVX_device_generated_commands
6395 if (!strcmp(name, "vkCmdProcessCommandsNVX"))
6396 {
6397 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6398 return hasExt ? (void*)entry_vkCmdProcessCommandsNVX : nullptr;
6399 }
6400 if (!strcmp(name, "vkCmdReserveSpaceForCommandsNVX"))
6401 {
6402 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6403 return hasExt ? (void*)entry_vkCmdReserveSpaceForCommandsNVX : nullptr;
6404 }
6405 if (!strcmp(name, "vkCreateIndirectCommandsLayoutNVX"))
6406 {
6407 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6408 return hasExt ? (void*)entry_vkCreateIndirectCommandsLayoutNVX : nullptr;
6409 }
6410 if (!strcmp(name, "vkDestroyIndirectCommandsLayoutNVX"))
6411 {
6412 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6413 return hasExt ? (void*)entry_vkDestroyIndirectCommandsLayoutNVX : nullptr;
6414 }
6415 if (!strcmp(name, "vkCreateObjectTableNVX"))
6416 {
6417 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6418 return hasExt ? (void*)entry_vkCreateObjectTableNVX : nullptr;
6419 }
6420 if (!strcmp(name, "vkDestroyObjectTableNVX"))
6421 {
6422 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6423 return hasExt ? (void*)entry_vkDestroyObjectTableNVX : nullptr;
6424 }
6425 if (!strcmp(name, "vkRegisterObjectsNVX"))
6426 {
6427 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6428 return hasExt ? (void*)entry_vkRegisterObjectsNVX : nullptr;
6429 }
6430 if (!strcmp(name, "vkUnregisterObjectsNVX"))
6431 {
6432 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6433 return hasExt ? (void*)entry_vkUnregisterObjectsNVX : nullptr;
6434 }
6435 if (!strcmp(name, "vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX"))
6436 {
6437 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6438 return hasExt ? (void*)entry_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX : nullptr;
6439 }
6440#endif
6441#ifdef VK_NV_clip_space_w_scaling
6442 if (!strcmp(name, "vkCmdSetViewportWScalingNV"))
6443 {
6444 bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_clip_space_w_scaling");
6445 return hasExt ? (void*)entry_vkCmdSetViewportWScalingNV : nullptr;
6446 }
6447#endif
6448#ifdef VK_EXT_direct_mode_display
6449 if (!strcmp(name, "vkReleaseDisplayEXT"))
6450 {
6451 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_direct_mode_display");
6452 return hasExt ? (void*)entry_vkReleaseDisplayEXT : nullptr;
6453 }
6454#endif
6455#ifdef VK_EXT_acquire_xlib_display
6456 if (!strcmp(name, "vkAcquireXlibDisplayEXT"))
6457 {
6458 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_acquire_xlib_display");
6459 return hasExt ? (void*)entry_vkAcquireXlibDisplayEXT : nullptr;
6460 }
6461 if (!strcmp(name, "vkGetRandROutputDisplayEXT"))
6462 {
6463 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_acquire_xlib_display");
6464 return hasExt ? (void*)entry_vkGetRandROutputDisplayEXT : nullptr;
6465 }
6466#endif
6467#ifdef VK_EXT_display_surface_counter
6468 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2EXT"))
6469 {
6470 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_display_surface_counter");
6471 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceCapabilities2EXT : nullptr;
6472 }
6473#endif
6474#ifdef VK_EXT_display_control
6475 if (!strcmp(name, "vkDisplayPowerControlEXT"))
6476 {
6477 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_display_control");
6478 return hasExt ? (void*)entry_vkDisplayPowerControlEXT : nullptr;
6479 }
6480 if (!strcmp(name, "vkRegisterDeviceEventEXT"))
6481 {
6482 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_display_control");
6483 return hasExt ? (void*)entry_vkRegisterDeviceEventEXT : nullptr;
6484 }
6485 if (!strcmp(name, "vkRegisterDisplayEventEXT"))
6486 {
6487 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_display_control");
6488 return hasExt ? (void*)entry_vkRegisterDisplayEventEXT : nullptr;
6489 }
6490 if (!strcmp(name, "vkGetSwapchainCounterEXT"))
6491 {
6492 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_display_control");
6493 return hasExt ? (void*)entry_vkGetSwapchainCounterEXT : nullptr;
6494 }
6495#endif
6496#ifdef VK_GOOGLE_display_timing
6497 if (!strcmp(name, "vkGetRefreshCycleDurationGOOGLE"))
6498 {
6499 bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_display_timing");
6500 return hasExt ? (void*)entry_vkGetRefreshCycleDurationGOOGLE : nullptr;
6501 }
6502 if (!strcmp(name, "vkGetPastPresentationTimingGOOGLE"))
6503 {
6504 bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_display_timing");
6505 return hasExt ? (void*)entry_vkGetPastPresentationTimingGOOGLE : nullptr;
6506 }
6507#endif
6508#ifdef VK_EXT_discard_rectangles
6509 if (!strcmp(name, "vkCmdSetDiscardRectangleEXT"))
6510 {
6511 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_discard_rectangles");
6512 return hasExt ? (void*)entry_vkCmdSetDiscardRectangleEXT : nullptr;
6513 }
6514#endif
6515#ifdef VK_EXT_hdr_metadata
6516 if (!strcmp(name, "vkSetHdrMetadataEXT"))
6517 {
6518 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_hdr_metadata");
6519 return hasExt ? (void*)entry_vkSetHdrMetadataEXT : nullptr;
6520 }
6521#endif
6522#ifdef VK_MVK_ios_surface
6523 if (!strcmp(name, "vkCreateIOSSurfaceMVK"))
6524 {
6525 bool hasExt = resources->hasInstanceExtension(instance, "VK_MVK_ios_surface");
6526 return hasExt ? (void*)entry_vkCreateIOSSurfaceMVK : nullptr;
6527 }
6528#endif
6529#ifdef VK_MVK_macos_surface
6530 if (!strcmp(name, "vkCreateMacOSSurfaceMVK"))
6531 {
6532 bool hasExt = resources->hasInstanceExtension(instance, "VK_MVK_macos_surface");
6533 return hasExt ? (void*)entry_vkCreateMacOSSurfaceMVK : nullptr;
6534 }
6535#endif
6536#ifdef VK_EXT_debug_utils
6537 if (!strcmp(name, "vkSetDebugUtilsObjectNameEXT"))
6538 {
6539 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6540 return hasExt ? (void*)entry_vkSetDebugUtilsObjectNameEXT : nullptr;
6541 }
6542 if (!strcmp(name, "vkSetDebugUtilsObjectTagEXT"))
6543 {
6544 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6545 return hasExt ? (void*)entry_vkSetDebugUtilsObjectTagEXT : nullptr;
6546 }
6547 if (!strcmp(name, "vkQueueBeginDebugUtilsLabelEXT"))
6548 {
6549 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6550 return hasExt ? (void*)entry_vkQueueBeginDebugUtilsLabelEXT : nullptr;
6551 }
6552 if (!strcmp(name, "vkQueueEndDebugUtilsLabelEXT"))
6553 {
6554 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6555 return hasExt ? (void*)entry_vkQueueEndDebugUtilsLabelEXT : nullptr;
6556 }
6557 if (!strcmp(name, "vkQueueInsertDebugUtilsLabelEXT"))
6558 {
6559 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6560 return hasExt ? (void*)entry_vkQueueInsertDebugUtilsLabelEXT : nullptr;
6561 }
6562 if (!strcmp(name, "vkCmdBeginDebugUtilsLabelEXT"))
6563 {
6564 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6565 return hasExt ? (void*)entry_vkCmdBeginDebugUtilsLabelEXT : nullptr;
6566 }
6567 if (!strcmp(name, "vkCmdEndDebugUtilsLabelEXT"))
6568 {
6569 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6570 return hasExt ? (void*)entry_vkCmdEndDebugUtilsLabelEXT : nullptr;
6571 }
6572 if (!strcmp(name, "vkCmdInsertDebugUtilsLabelEXT"))
6573 {
6574 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6575 return hasExt ? (void*)entry_vkCmdInsertDebugUtilsLabelEXT : nullptr;
6576 }
6577 if (!strcmp(name, "vkCreateDebugUtilsMessengerEXT"))
6578 {
6579 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6580 return hasExt ? (void*)entry_vkCreateDebugUtilsMessengerEXT : nullptr;
6581 }
6582 if (!strcmp(name, "vkDestroyDebugUtilsMessengerEXT"))
6583 {
6584 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6585 return hasExt ? (void*)entry_vkDestroyDebugUtilsMessengerEXT : nullptr;
6586 }
6587 if (!strcmp(name, "vkSubmitDebugUtilsMessageEXT"))
6588 {
6589 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6590 return hasExt ? (void*)entry_vkSubmitDebugUtilsMessageEXT : nullptr;
6591 }
6592#endif
6593#ifdef VK_ANDROID_external_memory_android_hardware_buffer
6594 if (!strcmp(name, "vkGetAndroidHardwareBufferPropertiesANDROID"))
6595 {
6596 bool hasExt = resources->hasInstanceExtension(instance, "VK_ANDROID_external_memory_android_hardware_buffer");
6597 return hasExt ? (void*)entry_vkGetAndroidHardwareBufferPropertiesANDROID : nullptr;
6598 }
6599 if (!strcmp(name, "vkGetMemoryAndroidHardwareBufferANDROID"))
6600 {
6601 bool hasExt = resources->hasInstanceExtension(instance, "VK_ANDROID_external_memory_android_hardware_buffer");
6602 return hasExt ? (void*)entry_vkGetMemoryAndroidHardwareBufferANDROID : nullptr;
6603 }
6604#endif
6605#ifdef VK_EXT_sample_locations
6606 if (!strcmp(name, "vkCmdSetSampleLocationsEXT"))
6607 {
6608 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_sample_locations");
6609 return hasExt ? (void*)entry_vkCmdSetSampleLocationsEXT : nullptr;
6610 }
6611 if (!strcmp(name, "vkGetPhysicalDeviceMultisamplePropertiesEXT"))
6612 {
6613 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_sample_locations");
6614 return hasExt ? (void*)entry_vkGetPhysicalDeviceMultisamplePropertiesEXT : nullptr;
6615 }
6616#endif
6617#ifdef VK_EXT_validation_cache
6618 if (!strcmp(name, "vkCreateValidationCacheEXT"))
6619 {
6620 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_validation_cache");
6621 return hasExt ? (void*)entry_vkCreateValidationCacheEXT : nullptr;
6622 }
6623 if (!strcmp(name, "vkDestroyValidationCacheEXT"))
6624 {
6625 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_validation_cache");
6626 return hasExt ? (void*)entry_vkDestroyValidationCacheEXT : nullptr;
6627 }
6628 if (!strcmp(name, "vkMergeValidationCachesEXT"))
6629 {
6630 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_validation_cache");
6631 return hasExt ? (void*)entry_vkMergeValidationCachesEXT : nullptr;
6632 }
6633 if (!strcmp(name, "vkGetValidationCacheDataEXT"))
6634 {
6635 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_validation_cache");
6636 return hasExt ? (void*)entry_vkGetValidationCacheDataEXT : nullptr;
6637 }
6638#endif
6639#ifdef VK_EXT_external_memory_host
6640 if (!strcmp(name, "vkGetMemoryHostPointerPropertiesEXT"))
6641 {
6642 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_external_memory_host");
6643 return hasExt ? (void*)entry_vkGetMemoryHostPointerPropertiesEXT : nullptr;
6644 }
6645#endif
6646#ifdef VK_AMD_buffer_marker
6647 if (!strcmp(name, "vkCmdWriteBufferMarkerAMD"))
6648 {
6649 bool hasExt = resources->hasInstanceExtension(instance, "VK_AMD_buffer_marker");
6650 return hasExt ? (void*)entry_vkCmdWriteBufferMarkerAMD : nullptr;
6651 }
6652#endif
6653#ifdef VK_NV_device_diagnostic_checkpoints
6654 if (!strcmp(name, "vkCmdSetCheckpointNV"))
6655 {
6656 bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_device_diagnostic_checkpoints");
6657 return hasExt ? (void*)entry_vkCmdSetCheckpointNV : nullptr;
6658 }
6659 if (!strcmp(name, "vkGetQueueCheckpointDataNV"))
6660 {
6661 bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_device_diagnostic_checkpoints");
6662 return hasExt ? (void*)entry_vkGetQueueCheckpointDataNV : nullptr;
6663 }
6664#endif
6665#ifdef VK_GOOGLE_address_space
6666 if (!strcmp(name, "vkMapMemoryIntoAddressSpaceGOOGLE"))
6667 {
6668 bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_address_space");
6669 return hasExt ? (void*)entry_vkMapMemoryIntoAddressSpaceGOOGLE : nullptr;
6670 }
6671#endif
Lingfeng Yangae7e1b32019-02-19 14:07:39 -08006672#ifdef VK_GOOGLE_color_buffer
6673 if (!strcmp(name, "vkRegisterImageColorBufferGOOGLE"))
6674 {
6675 bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_color_buffer");
6676 return hasExt ? (void*)entry_vkRegisterImageColorBufferGOOGLE : nullptr;
6677 }
6678 if (!strcmp(name, "vkRegisterBufferColorBufferGOOGLE"))
6679 {
6680 bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_color_buffer");
6681 return hasExt ? (void*)entry_vkRegisterBufferColorBufferGOOGLE : nullptr;
6682 }
6683#endif
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08006684 return nullptr;
6685}
6686void* goldfish_vulkan_get_device_proc_address(VkDevice device, const char* name){
6687 auto resources = ResourceTracker::get();
6688 bool has1_1OrHigher = resources->getApiVersionFromDevice(device) >= VK_API_VERSION_1_1;
6689#ifdef VK_VERSION_1_0
6690 if (!strcmp(name, "vkCreateInstance"))
6691 {
6692 return (void*)entry_vkCreateInstance;
6693 }
6694 if (!strcmp(name, "vkDestroyInstance"))
6695 {
6696 return (void*)entry_vkDestroyInstance;
6697 }
6698 if (!strcmp(name, "vkEnumeratePhysicalDevices"))
6699 {
6700 return (void*)entry_vkEnumeratePhysicalDevices;
6701 }
6702 if (!strcmp(name, "vkGetPhysicalDeviceFeatures"))
6703 {
6704 return (void*)entry_vkGetPhysicalDeviceFeatures;
6705 }
6706 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties"))
6707 {
6708 return (void*)entry_vkGetPhysicalDeviceFormatProperties;
6709 }
6710 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties"))
6711 {
6712 return (void*)entry_vkGetPhysicalDeviceImageFormatProperties;
6713 }
6714 if (!strcmp(name, "vkGetPhysicalDeviceProperties"))
6715 {
6716 return (void*)entry_vkGetPhysicalDeviceProperties;
6717 }
6718 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties"))
6719 {
6720 return (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties;
6721 }
6722 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties"))
6723 {
6724 return (void*)entry_vkGetPhysicalDeviceMemoryProperties;
6725 }
6726 if (!strcmp(name, "vkGetInstanceProcAddr"))
6727 {
6728 return (void*)entry_vkGetInstanceProcAddr;
6729 }
6730 if (!strcmp(name, "vkGetDeviceProcAddr"))
6731 {
6732 return (void*)entry_vkGetDeviceProcAddr;
6733 }
6734 if (!strcmp(name, "vkCreateDevice"))
6735 {
6736 return (void*)entry_vkCreateDevice;
6737 }
6738 if (!strcmp(name, "vkDestroyDevice"))
6739 {
6740 return (void*)entry_vkDestroyDevice;
6741 }
6742 if (!strcmp(name, "vkEnumerateInstanceExtensionProperties"))
6743 {
6744 return (void*)entry_vkEnumerateInstanceExtensionProperties;
6745 }
6746 if (!strcmp(name, "vkEnumerateDeviceExtensionProperties"))
6747 {
6748 return (void*)entry_vkEnumerateDeviceExtensionProperties;
6749 }
6750 if (!strcmp(name, "vkEnumerateInstanceLayerProperties"))
6751 {
6752 return (void*)entry_vkEnumerateInstanceLayerProperties;
6753 }
6754 if (!strcmp(name, "vkEnumerateDeviceLayerProperties"))
6755 {
6756 return (void*)entry_vkEnumerateDeviceLayerProperties;
6757 }
6758 if (!strcmp(name, "vkGetDeviceQueue"))
6759 {
6760 return (void*)entry_vkGetDeviceQueue;
6761 }
6762 if (!strcmp(name, "vkQueueSubmit"))
6763 {
6764 return (void*)entry_vkQueueSubmit;
6765 }
6766 if (!strcmp(name, "vkQueueWaitIdle"))
6767 {
6768 return (void*)entry_vkQueueWaitIdle;
6769 }
6770 if (!strcmp(name, "vkDeviceWaitIdle"))
6771 {
6772 return (void*)entry_vkDeviceWaitIdle;
6773 }
6774 if (!strcmp(name, "vkAllocateMemory"))
6775 {
6776 return (void*)entry_vkAllocateMemory;
6777 }
6778 if (!strcmp(name, "vkFreeMemory"))
6779 {
6780 return (void*)entry_vkFreeMemory;
6781 }
6782 if (!strcmp(name, "vkMapMemory"))
6783 {
6784 return (void*)entry_vkMapMemory;
6785 }
6786 if (!strcmp(name, "vkUnmapMemory"))
6787 {
6788 return (void*)entry_vkUnmapMemory;
6789 }
6790 if (!strcmp(name, "vkFlushMappedMemoryRanges"))
6791 {
6792 return (void*)entry_vkFlushMappedMemoryRanges;
6793 }
6794 if (!strcmp(name, "vkInvalidateMappedMemoryRanges"))
6795 {
6796 return (void*)entry_vkInvalidateMappedMemoryRanges;
6797 }
6798 if (!strcmp(name, "vkGetDeviceMemoryCommitment"))
6799 {
6800 return (void*)entry_vkGetDeviceMemoryCommitment;
6801 }
6802 if (!strcmp(name, "vkBindBufferMemory"))
6803 {
6804 return (void*)entry_vkBindBufferMemory;
6805 }
6806 if (!strcmp(name, "vkBindImageMemory"))
6807 {
6808 return (void*)entry_vkBindImageMemory;
6809 }
6810 if (!strcmp(name, "vkGetBufferMemoryRequirements"))
6811 {
6812 return (void*)entry_vkGetBufferMemoryRequirements;
6813 }
6814 if (!strcmp(name, "vkGetImageMemoryRequirements"))
6815 {
6816 return (void*)entry_vkGetImageMemoryRequirements;
6817 }
6818 if (!strcmp(name, "vkGetImageSparseMemoryRequirements"))
6819 {
6820 return (void*)entry_vkGetImageSparseMemoryRequirements;
6821 }
6822 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties"))
6823 {
6824 return (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties;
6825 }
6826 if (!strcmp(name, "vkQueueBindSparse"))
6827 {
6828 return (void*)entry_vkQueueBindSparse;
6829 }
6830 if (!strcmp(name, "vkCreateFence"))
6831 {
6832 return (void*)entry_vkCreateFence;
6833 }
6834 if (!strcmp(name, "vkDestroyFence"))
6835 {
6836 return (void*)entry_vkDestroyFence;
6837 }
6838 if (!strcmp(name, "vkResetFences"))
6839 {
6840 return (void*)entry_vkResetFences;
6841 }
6842 if (!strcmp(name, "vkGetFenceStatus"))
6843 {
6844 return (void*)entry_vkGetFenceStatus;
6845 }
6846 if (!strcmp(name, "vkWaitForFences"))
6847 {
6848 return (void*)entry_vkWaitForFences;
6849 }
6850 if (!strcmp(name, "vkCreateSemaphore"))
6851 {
6852 return (void*)entry_vkCreateSemaphore;
6853 }
6854 if (!strcmp(name, "vkDestroySemaphore"))
6855 {
6856 return (void*)entry_vkDestroySemaphore;
6857 }
6858 if (!strcmp(name, "vkCreateEvent"))
6859 {
6860 return (void*)entry_vkCreateEvent;
6861 }
6862 if (!strcmp(name, "vkDestroyEvent"))
6863 {
6864 return (void*)entry_vkDestroyEvent;
6865 }
6866 if (!strcmp(name, "vkGetEventStatus"))
6867 {
6868 return (void*)entry_vkGetEventStatus;
6869 }
6870 if (!strcmp(name, "vkSetEvent"))
6871 {
6872 return (void*)entry_vkSetEvent;
6873 }
6874 if (!strcmp(name, "vkResetEvent"))
6875 {
6876 return (void*)entry_vkResetEvent;
6877 }
6878 if (!strcmp(name, "vkCreateQueryPool"))
6879 {
6880 return (void*)entry_vkCreateQueryPool;
6881 }
6882 if (!strcmp(name, "vkDestroyQueryPool"))
6883 {
6884 return (void*)entry_vkDestroyQueryPool;
6885 }
6886 if (!strcmp(name, "vkGetQueryPoolResults"))
6887 {
6888 return (void*)entry_vkGetQueryPoolResults;
6889 }
6890 if (!strcmp(name, "vkCreateBuffer"))
6891 {
6892 return (void*)entry_vkCreateBuffer;
6893 }
6894 if (!strcmp(name, "vkDestroyBuffer"))
6895 {
6896 return (void*)entry_vkDestroyBuffer;
6897 }
6898 if (!strcmp(name, "vkCreateBufferView"))
6899 {
6900 return (void*)entry_vkCreateBufferView;
6901 }
6902 if (!strcmp(name, "vkDestroyBufferView"))
6903 {
6904 return (void*)entry_vkDestroyBufferView;
6905 }
6906 if (!strcmp(name, "vkCreateImage"))
6907 {
6908 return (void*)entry_vkCreateImage;
6909 }
6910 if (!strcmp(name, "vkDestroyImage"))
6911 {
6912 return (void*)entry_vkDestroyImage;
6913 }
6914 if (!strcmp(name, "vkGetImageSubresourceLayout"))
6915 {
6916 return (void*)entry_vkGetImageSubresourceLayout;
6917 }
6918 if (!strcmp(name, "vkCreateImageView"))
6919 {
6920 return (void*)entry_vkCreateImageView;
6921 }
6922 if (!strcmp(name, "vkDestroyImageView"))
6923 {
6924 return (void*)entry_vkDestroyImageView;
6925 }
6926 if (!strcmp(name, "vkCreateShaderModule"))
6927 {
6928 return (void*)entry_vkCreateShaderModule;
6929 }
6930 if (!strcmp(name, "vkDestroyShaderModule"))
6931 {
6932 return (void*)entry_vkDestroyShaderModule;
6933 }
6934 if (!strcmp(name, "vkCreatePipelineCache"))
6935 {
6936 return (void*)entry_vkCreatePipelineCache;
6937 }
6938 if (!strcmp(name, "vkDestroyPipelineCache"))
6939 {
6940 return (void*)entry_vkDestroyPipelineCache;
6941 }
6942 if (!strcmp(name, "vkGetPipelineCacheData"))
6943 {
6944 return (void*)entry_vkGetPipelineCacheData;
6945 }
6946 if (!strcmp(name, "vkMergePipelineCaches"))
6947 {
6948 return (void*)entry_vkMergePipelineCaches;
6949 }
6950 if (!strcmp(name, "vkCreateGraphicsPipelines"))
6951 {
6952 return (void*)entry_vkCreateGraphicsPipelines;
6953 }
6954 if (!strcmp(name, "vkCreateComputePipelines"))
6955 {
6956 return (void*)entry_vkCreateComputePipelines;
6957 }
6958 if (!strcmp(name, "vkDestroyPipeline"))
6959 {
6960 return (void*)entry_vkDestroyPipeline;
6961 }
6962 if (!strcmp(name, "vkCreatePipelineLayout"))
6963 {
6964 return (void*)entry_vkCreatePipelineLayout;
6965 }
6966 if (!strcmp(name, "vkDestroyPipelineLayout"))
6967 {
6968 return (void*)entry_vkDestroyPipelineLayout;
6969 }
6970 if (!strcmp(name, "vkCreateSampler"))
6971 {
6972 return (void*)entry_vkCreateSampler;
6973 }
6974 if (!strcmp(name, "vkDestroySampler"))
6975 {
6976 return (void*)entry_vkDestroySampler;
6977 }
6978 if (!strcmp(name, "vkCreateDescriptorSetLayout"))
6979 {
6980 return (void*)entry_vkCreateDescriptorSetLayout;
6981 }
6982 if (!strcmp(name, "vkDestroyDescriptorSetLayout"))
6983 {
6984 return (void*)entry_vkDestroyDescriptorSetLayout;
6985 }
6986 if (!strcmp(name, "vkCreateDescriptorPool"))
6987 {
6988 return (void*)entry_vkCreateDescriptorPool;
6989 }
6990 if (!strcmp(name, "vkDestroyDescriptorPool"))
6991 {
6992 return (void*)entry_vkDestroyDescriptorPool;
6993 }
6994 if (!strcmp(name, "vkResetDescriptorPool"))
6995 {
6996 return (void*)entry_vkResetDescriptorPool;
6997 }
6998 if (!strcmp(name, "vkAllocateDescriptorSets"))
6999 {
7000 return (void*)entry_vkAllocateDescriptorSets;
7001 }
7002 if (!strcmp(name, "vkFreeDescriptorSets"))
7003 {
7004 return (void*)entry_vkFreeDescriptorSets;
7005 }
7006 if (!strcmp(name, "vkUpdateDescriptorSets"))
7007 {
7008 return (void*)entry_vkUpdateDescriptorSets;
7009 }
7010 if (!strcmp(name, "vkCreateFramebuffer"))
7011 {
7012 return (void*)entry_vkCreateFramebuffer;
7013 }
7014 if (!strcmp(name, "vkDestroyFramebuffer"))
7015 {
7016 return (void*)entry_vkDestroyFramebuffer;
7017 }
7018 if (!strcmp(name, "vkCreateRenderPass"))
7019 {
7020 return (void*)entry_vkCreateRenderPass;
7021 }
7022 if (!strcmp(name, "vkDestroyRenderPass"))
7023 {
7024 return (void*)entry_vkDestroyRenderPass;
7025 }
7026 if (!strcmp(name, "vkGetRenderAreaGranularity"))
7027 {
7028 return (void*)entry_vkGetRenderAreaGranularity;
7029 }
7030 if (!strcmp(name, "vkCreateCommandPool"))
7031 {
7032 return (void*)entry_vkCreateCommandPool;
7033 }
7034 if (!strcmp(name, "vkDestroyCommandPool"))
7035 {
7036 return (void*)entry_vkDestroyCommandPool;
7037 }
7038 if (!strcmp(name, "vkResetCommandPool"))
7039 {
7040 return (void*)entry_vkResetCommandPool;
7041 }
7042 if (!strcmp(name, "vkAllocateCommandBuffers"))
7043 {
7044 return (void*)entry_vkAllocateCommandBuffers;
7045 }
7046 if (!strcmp(name, "vkFreeCommandBuffers"))
7047 {
7048 return (void*)entry_vkFreeCommandBuffers;
7049 }
7050 if (!strcmp(name, "vkBeginCommandBuffer"))
7051 {
7052 return (void*)entry_vkBeginCommandBuffer;
7053 }
7054 if (!strcmp(name, "vkEndCommandBuffer"))
7055 {
7056 return (void*)entry_vkEndCommandBuffer;
7057 }
7058 if (!strcmp(name, "vkResetCommandBuffer"))
7059 {
7060 return (void*)entry_vkResetCommandBuffer;
7061 }
7062 if (!strcmp(name, "vkCmdBindPipeline"))
7063 {
7064 return (void*)entry_vkCmdBindPipeline;
7065 }
7066 if (!strcmp(name, "vkCmdSetViewport"))
7067 {
7068 return (void*)entry_vkCmdSetViewport;
7069 }
7070 if (!strcmp(name, "vkCmdSetScissor"))
7071 {
7072 return (void*)entry_vkCmdSetScissor;
7073 }
7074 if (!strcmp(name, "vkCmdSetLineWidth"))
7075 {
7076 return (void*)entry_vkCmdSetLineWidth;
7077 }
7078 if (!strcmp(name, "vkCmdSetDepthBias"))
7079 {
7080 return (void*)entry_vkCmdSetDepthBias;
7081 }
7082 if (!strcmp(name, "vkCmdSetBlendConstants"))
7083 {
7084 return (void*)entry_vkCmdSetBlendConstants;
7085 }
7086 if (!strcmp(name, "vkCmdSetDepthBounds"))
7087 {
7088 return (void*)entry_vkCmdSetDepthBounds;
7089 }
7090 if (!strcmp(name, "vkCmdSetStencilCompareMask"))
7091 {
7092 return (void*)entry_vkCmdSetStencilCompareMask;
7093 }
7094 if (!strcmp(name, "vkCmdSetStencilWriteMask"))
7095 {
7096 return (void*)entry_vkCmdSetStencilWriteMask;
7097 }
7098 if (!strcmp(name, "vkCmdSetStencilReference"))
7099 {
7100 return (void*)entry_vkCmdSetStencilReference;
7101 }
7102 if (!strcmp(name, "vkCmdBindDescriptorSets"))
7103 {
7104 return (void*)entry_vkCmdBindDescriptorSets;
7105 }
7106 if (!strcmp(name, "vkCmdBindIndexBuffer"))
7107 {
7108 return (void*)entry_vkCmdBindIndexBuffer;
7109 }
7110 if (!strcmp(name, "vkCmdBindVertexBuffers"))
7111 {
7112 return (void*)entry_vkCmdBindVertexBuffers;
7113 }
7114 if (!strcmp(name, "vkCmdDraw"))
7115 {
7116 return (void*)entry_vkCmdDraw;
7117 }
7118 if (!strcmp(name, "vkCmdDrawIndexed"))
7119 {
7120 return (void*)entry_vkCmdDrawIndexed;
7121 }
7122 if (!strcmp(name, "vkCmdDrawIndirect"))
7123 {
7124 return (void*)entry_vkCmdDrawIndirect;
7125 }
7126 if (!strcmp(name, "vkCmdDrawIndexedIndirect"))
7127 {
7128 return (void*)entry_vkCmdDrawIndexedIndirect;
7129 }
7130 if (!strcmp(name, "vkCmdDispatch"))
7131 {
7132 return (void*)entry_vkCmdDispatch;
7133 }
7134 if (!strcmp(name, "vkCmdDispatchIndirect"))
7135 {
7136 return (void*)entry_vkCmdDispatchIndirect;
7137 }
7138 if (!strcmp(name, "vkCmdCopyBuffer"))
7139 {
7140 return (void*)entry_vkCmdCopyBuffer;
7141 }
7142 if (!strcmp(name, "vkCmdCopyImage"))
7143 {
7144 return (void*)entry_vkCmdCopyImage;
7145 }
7146 if (!strcmp(name, "vkCmdBlitImage"))
7147 {
7148 return (void*)entry_vkCmdBlitImage;
7149 }
7150 if (!strcmp(name, "vkCmdCopyBufferToImage"))
7151 {
7152 return (void*)entry_vkCmdCopyBufferToImage;
7153 }
7154 if (!strcmp(name, "vkCmdCopyImageToBuffer"))
7155 {
7156 return (void*)entry_vkCmdCopyImageToBuffer;
7157 }
7158 if (!strcmp(name, "vkCmdUpdateBuffer"))
7159 {
7160 return (void*)entry_vkCmdUpdateBuffer;
7161 }
7162 if (!strcmp(name, "vkCmdFillBuffer"))
7163 {
7164 return (void*)entry_vkCmdFillBuffer;
7165 }
7166 if (!strcmp(name, "vkCmdClearColorImage"))
7167 {
7168 return (void*)entry_vkCmdClearColorImage;
7169 }
7170 if (!strcmp(name, "vkCmdClearDepthStencilImage"))
7171 {
7172 return (void*)entry_vkCmdClearDepthStencilImage;
7173 }
7174 if (!strcmp(name, "vkCmdClearAttachments"))
7175 {
7176 return (void*)entry_vkCmdClearAttachments;
7177 }
7178 if (!strcmp(name, "vkCmdResolveImage"))
7179 {
7180 return (void*)entry_vkCmdResolveImage;
7181 }
7182 if (!strcmp(name, "vkCmdSetEvent"))
7183 {
7184 return (void*)entry_vkCmdSetEvent;
7185 }
7186 if (!strcmp(name, "vkCmdResetEvent"))
7187 {
7188 return (void*)entry_vkCmdResetEvent;
7189 }
7190 if (!strcmp(name, "vkCmdWaitEvents"))
7191 {
7192 return (void*)entry_vkCmdWaitEvents;
7193 }
7194 if (!strcmp(name, "vkCmdPipelineBarrier"))
7195 {
7196 return (void*)entry_vkCmdPipelineBarrier;
7197 }
7198 if (!strcmp(name, "vkCmdBeginQuery"))
7199 {
7200 return (void*)entry_vkCmdBeginQuery;
7201 }
7202 if (!strcmp(name, "vkCmdEndQuery"))
7203 {
7204 return (void*)entry_vkCmdEndQuery;
7205 }
7206 if (!strcmp(name, "vkCmdResetQueryPool"))
7207 {
7208 return (void*)entry_vkCmdResetQueryPool;
7209 }
7210 if (!strcmp(name, "vkCmdWriteTimestamp"))
7211 {
7212 return (void*)entry_vkCmdWriteTimestamp;
7213 }
7214 if (!strcmp(name, "vkCmdCopyQueryPoolResults"))
7215 {
7216 return (void*)entry_vkCmdCopyQueryPoolResults;
7217 }
7218 if (!strcmp(name, "vkCmdPushConstants"))
7219 {
7220 return (void*)entry_vkCmdPushConstants;
7221 }
7222 if (!strcmp(name, "vkCmdBeginRenderPass"))
7223 {
7224 return (void*)entry_vkCmdBeginRenderPass;
7225 }
7226 if (!strcmp(name, "vkCmdNextSubpass"))
7227 {
7228 return (void*)entry_vkCmdNextSubpass;
7229 }
7230 if (!strcmp(name, "vkCmdEndRenderPass"))
7231 {
7232 return (void*)entry_vkCmdEndRenderPass;
7233 }
7234 if (!strcmp(name, "vkCmdExecuteCommands"))
7235 {
7236 return (void*)entry_vkCmdExecuteCommands;
7237 }
7238#endif
7239#ifdef VK_VERSION_1_1
7240 if (!strcmp(name, "vkEnumerateInstanceVersion"))
7241 {
7242 return has1_1OrHigher ? (void*)entry_vkEnumerateInstanceVersion : nullptr;
7243 }
7244 if (!strcmp(name, "vkBindBufferMemory2"))
7245 {
7246 return has1_1OrHigher ? (void*)entry_vkBindBufferMemory2 : nullptr;
7247 }
7248 if (!strcmp(name, "vkBindImageMemory2"))
7249 {
7250 return has1_1OrHigher ? (void*)entry_vkBindImageMemory2 : nullptr;
7251 }
7252 if (!strcmp(name, "vkGetDeviceGroupPeerMemoryFeatures"))
7253 {
7254 return has1_1OrHigher ? (void*)entry_vkGetDeviceGroupPeerMemoryFeatures : nullptr;
7255 }
7256 if (!strcmp(name, "vkCmdSetDeviceMask"))
7257 {
7258 return has1_1OrHigher ? (void*)entry_vkCmdSetDeviceMask : nullptr;
7259 }
7260 if (!strcmp(name, "vkCmdDispatchBase"))
7261 {
7262 return has1_1OrHigher ? (void*)entry_vkCmdDispatchBase : nullptr;
7263 }
7264 if (!strcmp(name, "vkEnumeratePhysicalDeviceGroups"))
7265 {
7266 return nullptr;
7267 }
7268 if (!strcmp(name, "vkGetImageMemoryRequirements2"))
7269 {
7270 return has1_1OrHigher ? (void*)entry_vkGetImageMemoryRequirements2 : nullptr;
7271 }
7272 if (!strcmp(name, "vkGetBufferMemoryRequirements2"))
7273 {
7274 return has1_1OrHigher ? (void*)entry_vkGetBufferMemoryRequirements2 : nullptr;
7275 }
7276 if (!strcmp(name, "vkGetImageSparseMemoryRequirements2"))
7277 {
7278 return has1_1OrHigher ? (void*)entry_vkGetImageSparseMemoryRequirements2 : nullptr;
7279 }
7280 if (!strcmp(name, "vkGetPhysicalDeviceFeatures2"))
7281 {
7282 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceFeatures2 : nullptr;
7283 }
7284 if (!strcmp(name, "vkGetPhysicalDeviceProperties2"))
7285 {
7286 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceProperties2 : nullptr;
7287 }
7288 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties2"))
7289 {
7290 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceFormatProperties2 : nullptr;
7291 }
7292 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties2"))
7293 {
7294 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceImageFormatProperties2 : nullptr;
7295 }
7296 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties2"))
7297 {
7298 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties2 : nullptr;
7299 }
7300 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties2"))
7301 {
7302 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceMemoryProperties2 : nullptr;
7303 }
7304 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties2"))
7305 {
7306 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties2 : nullptr;
7307 }
7308 if (!strcmp(name, "vkTrimCommandPool"))
7309 {
7310 return has1_1OrHigher ? (void*)entry_vkTrimCommandPool : nullptr;
7311 }
7312 if (!strcmp(name, "vkGetDeviceQueue2"))
7313 {
7314 return has1_1OrHigher ? (void*)entry_vkGetDeviceQueue2 : nullptr;
7315 }
7316 if (!strcmp(name, "vkCreateSamplerYcbcrConversion"))
7317 {
7318 return has1_1OrHigher ? (void*)entry_vkCreateSamplerYcbcrConversion : nullptr;
7319 }
7320 if (!strcmp(name, "vkDestroySamplerYcbcrConversion"))
7321 {
7322 return has1_1OrHigher ? (void*)entry_vkDestroySamplerYcbcrConversion : nullptr;
7323 }
7324 if (!strcmp(name, "vkCreateDescriptorUpdateTemplate"))
7325 {
7326 return has1_1OrHigher ? (void*)entry_vkCreateDescriptorUpdateTemplate : nullptr;
7327 }
7328 if (!strcmp(name, "vkDestroyDescriptorUpdateTemplate"))
7329 {
7330 return has1_1OrHigher ? (void*)entry_vkDestroyDescriptorUpdateTemplate : nullptr;
7331 }
7332 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplate"))
7333 {
7334 return has1_1OrHigher ? (void*)entry_vkUpdateDescriptorSetWithTemplate : nullptr;
7335 }
7336 if (!strcmp(name, "vkGetPhysicalDeviceExternalBufferProperties"))
7337 {
7338 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceExternalBufferProperties : nullptr;
7339 }
7340 if (!strcmp(name, "vkGetPhysicalDeviceExternalFenceProperties"))
7341 {
7342 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceExternalFenceProperties : nullptr;
7343 }
7344 if (!strcmp(name, "vkGetPhysicalDeviceExternalSemaphoreProperties"))
7345 {
7346 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceExternalSemaphoreProperties : nullptr;
7347 }
7348 if (!strcmp(name, "vkGetDescriptorSetLayoutSupport"))
7349 {
7350 return has1_1OrHigher ? (void*)entry_vkGetDescriptorSetLayoutSupport : nullptr;
7351 }
7352#endif
7353#ifdef VK_KHR_surface
7354 if (!strcmp(name, "vkDestroySurfaceKHR"))
7355 {
7356 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_surface");
7357 return hasExt ? (void*)entry_vkDestroySurfaceKHR : nullptr;
7358 }
7359 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceSupportKHR"))
7360 {
7361 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_surface");
7362 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceSupportKHR : nullptr;
7363 }
7364 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR"))
7365 {
7366 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_surface");
7367 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceCapabilitiesKHR : nullptr;
7368 }
7369 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceFormatsKHR"))
7370 {
7371 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_surface");
7372 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceFormatsKHR : nullptr;
7373 }
7374 if (!strcmp(name, "vkGetPhysicalDeviceSurfacePresentModesKHR"))
7375 {
7376 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_surface");
7377 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfacePresentModesKHR : nullptr;
7378 }
7379#endif
7380#ifdef VK_KHR_swapchain
7381 if (!strcmp(name, "vkCreateSwapchainKHR"))
7382 {
7383 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7384 return hasExt ? (void*)entry_vkCreateSwapchainKHR : nullptr;
7385 }
7386 if (!strcmp(name, "vkDestroySwapchainKHR"))
7387 {
7388 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7389 return hasExt ? (void*)entry_vkDestroySwapchainKHR : nullptr;
7390 }
7391 if (!strcmp(name, "vkGetSwapchainImagesKHR"))
7392 {
7393 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7394 return hasExt ? (void*)entry_vkGetSwapchainImagesKHR : nullptr;
7395 }
7396 if (!strcmp(name, "vkAcquireNextImageKHR"))
7397 {
7398 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7399 return hasExt ? (void*)entry_vkAcquireNextImageKHR : nullptr;
7400 }
7401 if (!strcmp(name, "vkQueuePresentKHR"))
7402 {
7403 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7404 return hasExt ? (void*)entry_vkQueuePresentKHR : nullptr;
7405 }
7406 if (!strcmp(name, "vkGetDeviceGroupPresentCapabilitiesKHR"))
7407 {
7408 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7409 return hasExt ? (void*)entry_vkGetDeviceGroupPresentCapabilitiesKHR : nullptr;
7410 }
7411 if (!strcmp(name, "vkGetDeviceGroupSurfacePresentModesKHR"))
7412 {
7413 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7414 return hasExt ? (void*)entry_vkGetDeviceGroupSurfacePresentModesKHR : nullptr;
7415 }
7416 if (!strcmp(name, "vkGetPhysicalDevicePresentRectanglesKHR"))
7417 {
7418 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7419 return hasExt ? (void*)entry_vkGetPhysicalDevicePresentRectanglesKHR : nullptr;
7420 }
7421 if (!strcmp(name, "vkAcquireNextImage2KHR"))
7422 {
7423 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7424 return hasExt ? (void*)entry_vkAcquireNextImage2KHR : nullptr;
7425 }
7426#endif
7427#ifdef VK_KHR_display
7428 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPropertiesKHR"))
7429 {
7430 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
7431 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayPropertiesKHR : nullptr;
7432 }
7433 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR"))
7434 {
7435 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
7436 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayPlanePropertiesKHR : nullptr;
7437 }
7438 if (!strcmp(name, "vkGetDisplayPlaneSupportedDisplaysKHR"))
7439 {
7440 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
7441 return hasExt ? (void*)entry_vkGetDisplayPlaneSupportedDisplaysKHR : nullptr;
7442 }
7443 if (!strcmp(name, "vkGetDisplayModePropertiesKHR"))
7444 {
7445 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
7446 return hasExt ? (void*)entry_vkGetDisplayModePropertiesKHR : nullptr;
7447 }
7448 if (!strcmp(name, "vkCreateDisplayModeKHR"))
7449 {
7450 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
7451 return hasExt ? (void*)entry_vkCreateDisplayModeKHR : nullptr;
7452 }
7453 if (!strcmp(name, "vkGetDisplayPlaneCapabilitiesKHR"))
7454 {
7455 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
7456 return hasExt ? (void*)entry_vkGetDisplayPlaneCapabilitiesKHR : nullptr;
7457 }
7458 if (!strcmp(name, "vkCreateDisplayPlaneSurfaceKHR"))
7459 {
7460 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
7461 return hasExt ? (void*)entry_vkCreateDisplayPlaneSurfaceKHR : nullptr;
7462 }
7463#endif
7464#ifdef VK_KHR_display_swapchain
7465 if (!strcmp(name, "vkCreateSharedSwapchainsKHR"))
7466 {
7467 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display_swapchain");
7468 return hasExt ? (void*)entry_vkCreateSharedSwapchainsKHR : nullptr;
7469 }
7470#endif
7471#ifdef VK_KHR_xlib_surface
7472 if (!strcmp(name, "vkCreateXlibSurfaceKHR"))
7473 {
7474 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_xlib_surface");
7475 return hasExt ? (void*)entry_vkCreateXlibSurfaceKHR : nullptr;
7476 }
7477 if (!strcmp(name, "vkGetPhysicalDeviceXlibPresentationSupportKHR"))
7478 {
7479 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_xlib_surface");
7480 return hasExt ? (void*)entry_vkGetPhysicalDeviceXlibPresentationSupportKHR : nullptr;
7481 }
7482#endif
7483#ifdef VK_KHR_xcb_surface
7484 if (!strcmp(name, "vkCreateXcbSurfaceKHR"))
7485 {
7486 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_xcb_surface");
7487 return hasExt ? (void*)entry_vkCreateXcbSurfaceKHR : nullptr;
7488 }
7489 if (!strcmp(name, "vkGetPhysicalDeviceXcbPresentationSupportKHR"))
7490 {
7491 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_xcb_surface");
7492 return hasExt ? (void*)entry_vkGetPhysicalDeviceXcbPresentationSupportKHR : nullptr;
7493 }
7494#endif
7495#ifdef VK_KHR_wayland_surface
7496 if (!strcmp(name, "vkCreateWaylandSurfaceKHR"))
7497 {
7498 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_wayland_surface");
7499 return hasExt ? (void*)entry_vkCreateWaylandSurfaceKHR : nullptr;
7500 }
7501 if (!strcmp(name, "vkGetPhysicalDeviceWaylandPresentationSupportKHR"))
7502 {
7503 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_wayland_surface");
7504 return hasExt ? (void*)entry_vkGetPhysicalDeviceWaylandPresentationSupportKHR : nullptr;
7505 }
7506#endif
7507#ifdef VK_KHR_mir_surface
7508 if (!strcmp(name, "vkCreateMirSurfaceKHR"))
7509 {
7510 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_mir_surface");
7511 return hasExt ? (void*)entry_vkCreateMirSurfaceKHR : nullptr;
7512 }
7513 if (!strcmp(name, "vkGetPhysicalDeviceMirPresentationSupportKHR"))
7514 {
7515 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_mir_surface");
7516 return hasExt ? (void*)entry_vkGetPhysicalDeviceMirPresentationSupportKHR : nullptr;
7517 }
7518#endif
7519#ifdef VK_KHR_android_surface
7520 if (!strcmp(name, "vkCreateAndroidSurfaceKHR"))
7521 {
7522 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_android_surface");
7523 return hasExt ? (void*)entry_vkCreateAndroidSurfaceKHR : nullptr;
7524 }
7525#endif
7526#ifdef VK_KHR_win32_surface
7527 if (!strcmp(name, "vkCreateWin32SurfaceKHR"))
7528 {
7529 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_win32_surface");
7530 return hasExt ? (void*)entry_vkCreateWin32SurfaceKHR : nullptr;
7531 }
7532 if (!strcmp(name, "vkGetPhysicalDeviceWin32PresentationSupportKHR"))
7533 {
7534 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_win32_surface");
7535 return hasExt ? (void*)entry_vkGetPhysicalDeviceWin32PresentationSupportKHR : nullptr;
7536 }
7537#endif
7538#ifdef VK_KHR_get_physical_device_properties2
7539 if (!strcmp(name, "vkGetPhysicalDeviceFeatures2KHR"))
7540 {
7541 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
7542 return hasExt ? (void*)entry_vkGetPhysicalDeviceFeatures2KHR : nullptr;
7543 }
7544 if (!strcmp(name, "vkGetPhysicalDeviceProperties2KHR"))
7545 {
7546 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
7547 return hasExt ? (void*)entry_vkGetPhysicalDeviceProperties2KHR : nullptr;
7548 }
7549 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties2KHR"))
7550 {
7551 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
7552 return hasExt ? (void*)entry_vkGetPhysicalDeviceFormatProperties2KHR : nullptr;
7553 }
7554 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties2KHR"))
7555 {
7556 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
7557 return hasExt ? (void*)entry_vkGetPhysicalDeviceImageFormatProperties2KHR : nullptr;
7558 }
7559 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties2KHR"))
7560 {
7561 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
7562 return hasExt ? (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties2KHR : nullptr;
7563 }
7564 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties2KHR"))
7565 {
7566 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
7567 return hasExt ? (void*)entry_vkGetPhysicalDeviceMemoryProperties2KHR : nullptr;
7568 }
7569 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR"))
7570 {
7571 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
7572 return hasExt ? (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties2KHR : nullptr;
7573 }
7574#endif
7575#ifdef VK_KHR_device_group
7576 if (!strcmp(name, "vkGetDeviceGroupPeerMemoryFeaturesKHR"))
7577 {
7578 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_device_group");
7579 return hasExt ? (void*)entry_vkGetDeviceGroupPeerMemoryFeaturesKHR : nullptr;
7580 }
7581 if (!strcmp(name, "vkCmdSetDeviceMaskKHR"))
7582 {
7583 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_device_group");
7584 return hasExt ? (void*)entry_vkCmdSetDeviceMaskKHR : nullptr;
7585 }
7586 if (!strcmp(name, "vkCmdDispatchBaseKHR"))
7587 {
7588 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_device_group");
7589 return hasExt ? (void*)entry_vkCmdDispatchBaseKHR : nullptr;
7590 }
7591#endif
7592#ifdef VK_KHR_maintenance1
7593 if (!strcmp(name, "vkTrimCommandPoolKHR"))
7594 {
7595 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_maintenance1");
7596 return hasExt ? (void*)entry_vkTrimCommandPoolKHR : nullptr;
7597 }
7598#endif
7599#ifdef VK_KHR_device_group_creation
7600 if (!strcmp(name, "vkEnumeratePhysicalDeviceGroupsKHR"))
7601 {
7602 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_device_group_creation");
7603 return hasExt ? (void*)entry_vkEnumeratePhysicalDeviceGroupsKHR : nullptr;
7604 }
7605#endif
7606#ifdef VK_KHR_external_memory_capabilities
7607 if (!strcmp(name, "vkGetPhysicalDeviceExternalBufferPropertiesKHR"))
7608 {
7609 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_memory_capabilities");
7610 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalBufferPropertiesKHR : nullptr;
7611 }
7612#endif
7613#ifdef VK_KHR_external_memory_win32
7614 if (!strcmp(name, "vkGetMemoryWin32HandleKHR"))
7615 {
7616 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_memory_win32");
7617 return hasExt ? (void*)entry_vkGetMemoryWin32HandleKHR : nullptr;
7618 }
7619 if (!strcmp(name, "vkGetMemoryWin32HandlePropertiesKHR"))
7620 {
7621 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_memory_win32");
7622 return hasExt ? (void*)entry_vkGetMemoryWin32HandlePropertiesKHR : nullptr;
7623 }
7624#endif
7625#ifdef VK_KHR_external_memory_fd
7626 if (!strcmp(name, "vkGetMemoryFdKHR"))
7627 {
7628 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_memory_fd");
7629 return hasExt ? (void*)entry_vkGetMemoryFdKHR : nullptr;
7630 }
7631 if (!strcmp(name, "vkGetMemoryFdPropertiesKHR"))
7632 {
7633 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_memory_fd");
7634 return hasExt ? (void*)entry_vkGetMemoryFdPropertiesKHR : nullptr;
7635 }
7636#endif
7637#ifdef VK_KHR_external_semaphore_capabilities
7638 if (!strcmp(name, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR"))
7639 {
7640 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_semaphore_capabilities");
7641 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR : nullptr;
7642 }
7643#endif
7644#ifdef VK_KHR_external_semaphore_win32
7645 if (!strcmp(name, "vkImportSemaphoreWin32HandleKHR"))
7646 {
7647 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_semaphore_win32");
7648 return hasExt ? (void*)entry_vkImportSemaphoreWin32HandleKHR : nullptr;
7649 }
7650 if (!strcmp(name, "vkGetSemaphoreWin32HandleKHR"))
7651 {
7652 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_semaphore_win32");
7653 return hasExt ? (void*)entry_vkGetSemaphoreWin32HandleKHR : nullptr;
7654 }
7655#endif
7656#ifdef VK_KHR_external_semaphore_fd
7657 if (!strcmp(name, "vkImportSemaphoreFdKHR"))
7658 {
7659 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_semaphore_fd");
7660 return hasExt ? (void*)entry_vkImportSemaphoreFdKHR : nullptr;
7661 }
7662 if (!strcmp(name, "vkGetSemaphoreFdKHR"))
7663 {
7664 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_semaphore_fd");
7665 return hasExt ? (void*)entry_vkGetSemaphoreFdKHR : nullptr;
7666 }
7667#endif
7668#ifdef VK_KHR_push_descriptor
7669 if (!strcmp(name, "vkCmdPushDescriptorSetKHR"))
7670 {
7671 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_push_descriptor");
7672 return hasExt ? (void*)entry_vkCmdPushDescriptorSetKHR : nullptr;
7673 }
7674 if (!strcmp(name, "vkCmdPushDescriptorSetWithTemplateKHR"))
7675 {
7676 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_push_descriptor");
7677 return hasExt ? (void*)entry_vkCmdPushDescriptorSetWithTemplateKHR : nullptr;
7678 }
7679#endif
7680#ifdef VK_KHR_descriptor_update_template
7681 if (!strcmp(name, "vkCreateDescriptorUpdateTemplateKHR"))
7682 {
7683 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_descriptor_update_template");
7684 return hasExt ? (void*)entry_vkCreateDescriptorUpdateTemplateKHR : nullptr;
7685 }
7686 if (!strcmp(name, "vkDestroyDescriptorUpdateTemplateKHR"))
7687 {
7688 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_descriptor_update_template");
7689 return hasExt ? (void*)entry_vkDestroyDescriptorUpdateTemplateKHR : nullptr;
7690 }
7691 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplateKHR"))
7692 {
7693 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_descriptor_update_template");
7694 return hasExt ? (void*)entry_vkUpdateDescriptorSetWithTemplateKHR : nullptr;
7695 }
7696#endif
7697#ifdef VK_KHR_create_renderpass2
7698 if (!strcmp(name, "vkCreateRenderPass2KHR"))
7699 {
7700 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_create_renderpass2");
7701 return hasExt ? (void*)entry_vkCreateRenderPass2KHR : nullptr;
7702 }
7703 if (!strcmp(name, "vkCmdBeginRenderPass2KHR"))
7704 {
7705 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_create_renderpass2");
7706 return hasExt ? (void*)entry_vkCmdBeginRenderPass2KHR : nullptr;
7707 }
7708 if (!strcmp(name, "vkCmdNextSubpass2KHR"))
7709 {
7710 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_create_renderpass2");
7711 return hasExt ? (void*)entry_vkCmdNextSubpass2KHR : nullptr;
7712 }
7713 if (!strcmp(name, "vkCmdEndRenderPass2KHR"))
7714 {
7715 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_create_renderpass2");
7716 return hasExt ? (void*)entry_vkCmdEndRenderPass2KHR : nullptr;
7717 }
7718#endif
7719#ifdef VK_KHR_shared_presentable_image
7720 if (!strcmp(name, "vkGetSwapchainStatusKHR"))
7721 {
7722 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_shared_presentable_image");
7723 return hasExt ? (void*)entry_vkGetSwapchainStatusKHR : nullptr;
7724 }
7725#endif
7726#ifdef VK_KHR_external_fence_capabilities
7727 if (!strcmp(name, "vkGetPhysicalDeviceExternalFencePropertiesKHR"))
7728 {
7729 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_fence_capabilities");
7730 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalFencePropertiesKHR : nullptr;
7731 }
7732#endif
7733#ifdef VK_KHR_external_fence_win32
7734 if (!strcmp(name, "vkImportFenceWin32HandleKHR"))
7735 {
7736 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_fence_win32");
7737 return hasExt ? (void*)entry_vkImportFenceWin32HandleKHR : nullptr;
7738 }
7739 if (!strcmp(name, "vkGetFenceWin32HandleKHR"))
7740 {
7741 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_fence_win32");
7742 return hasExt ? (void*)entry_vkGetFenceWin32HandleKHR : nullptr;
7743 }
7744#endif
7745#ifdef VK_KHR_external_fence_fd
7746 if (!strcmp(name, "vkImportFenceFdKHR"))
7747 {
7748 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_fence_fd");
7749 return hasExt ? (void*)entry_vkImportFenceFdKHR : nullptr;
7750 }
7751 if (!strcmp(name, "vkGetFenceFdKHR"))
7752 {
7753 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_fence_fd");
7754 return hasExt ? (void*)entry_vkGetFenceFdKHR : nullptr;
7755 }
7756#endif
7757#ifdef VK_KHR_get_surface_capabilities2
7758 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2KHR"))
7759 {
7760 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_surface_capabilities2");
7761 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceCapabilities2KHR : nullptr;
7762 }
7763 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceFormats2KHR"))
7764 {
7765 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_surface_capabilities2");
7766 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceFormats2KHR : nullptr;
7767 }
7768#endif
7769#ifdef VK_KHR_get_display_properties2
7770 if (!strcmp(name, "vkGetPhysicalDeviceDisplayProperties2KHR"))
7771 {
7772 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_display_properties2");
7773 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayProperties2KHR : nullptr;
7774 }
7775 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR"))
7776 {
7777 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_display_properties2");
7778 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayPlaneProperties2KHR : nullptr;
7779 }
7780 if (!strcmp(name, "vkGetDisplayModeProperties2KHR"))
7781 {
7782 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_display_properties2");
7783 return hasExt ? (void*)entry_vkGetDisplayModeProperties2KHR : nullptr;
7784 }
7785 if (!strcmp(name, "vkGetDisplayPlaneCapabilities2KHR"))
7786 {
7787 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_display_properties2");
7788 return hasExt ? (void*)entry_vkGetDisplayPlaneCapabilities2KHR : nullptr;
7789 }
7790#endif
7791#ifdef VK_KHR_get_memory_requirements2
7792 if (!strcmp(name, "vkGetImageMemoryRequirements2KHR"))
7793 {
7794 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_memory_requirements2");
7795 return hasExt ? (void*)entry_vkGetImageMemoryRequirements2KHR : nullptr;
7796 }
7797 if (!strcmp(name, "vkGetBufferMemoryRequirements2KHR"))
7798 {
7799 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_memory_requirements2");
7800 return hasExt ? (void*)entry_vkGetBufferMemoryRequirements2KHR : nullptr;
7801 }
7802 if (!strcmp(name, "vkGetImageSparseMemoryRequirements2KHR"))
7803 {
7804 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_memory_requirements2");
7805 return hasExt ? (void*)entry_vkGetImageSparseMemoryRequirements2KHR : nullptr;
7806 }
7807#endif
7808#ifdef VK_KHR_sampler_ycbcr_conversion
7809 if (!strcmp(name, "vkCreateSamplerYcbcrConversionKHR"))
7810 {
7811 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_sampler_ycbcr_conversion");
7812 return hasExt ? (void*)entry_vkCreateSamplerYcbcrConversionKHR : nullptr;
7813 }
7814 if (!strcmp(name, "vkDestroySamplerYcbcrConversionKHR"))
7815 {
7816 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_sampler_ycbcr_conversion");
7817 return hasExt ? (void*)entry_vkDestroySamplerYcbcrConversionKHR : nullptr;
7818 }
7819#endif
7820#ifdef VK_KHR_bind_memory2
7821 if (!strcmp(name, "vkBindBufferMemory2KHR"))
7822 {
7823 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_bind_memory2");
7824 return hasExt ? (void*)entry_vkBindBufferMemory2KHR : nullptr;
7825 }
7826 if (!strcmp(name, "vkBindImageMemory2KHR"))
7827 {
7828 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_bind_memory2");
7829 return hasExt ? (void*)entry_vkBindImageMemory2KHR : nullptr;
7830 }
7831#endif
7832#ifdef VK_KHR_maintenance3
7833 if (!strcmp(name, "vkGetDescriptorSetLayoutSupportKHR"))
7834 {
7835 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_maintenance3");
7836 return hasExt ? (void*)entry_vkGetDescriptorSetLayoutSupportKHR : nullptr;
7837 }
7838#endif
7839#ifdef VK_KHR_draw_indirect_count
7840 if (!strcmp(name, "vkCmdDrawIndirectCountKHR"))
7841 {
7842 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_draw_indirect_count");
7843 return hasExt ? (void*)entry_vkCmdDrawIndirectCountKHR : nullptr;
7844 }
7845 if (!strcmp(name, "vkCmdDrawIndexedIndirectCountKHR"))
7846 {
7847 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_draw_indirect_count");
7848 return hasExt ? (void*)entry_vkCmdDrawIndexedIndirectCountKHR : nullptr;
7849 }
7850#endif
7851#ifdef VK_ANDROID_native_buffer
7852 if (!strcmp(name, "vkGetSwapchainGrallocUsageANDROID"))
7853 {
7854 bool hasExt = resources->hasDeviceExtension(device, "VK_ANDROID_native_buffer");
7855 return hasExt ? (void*)entry_vkGetSwapchainGrallocUsageANDROID : nullptr;
7856 }
7857 if (!strcmp(name, "vkAcquireImageANDROID"))
7858 {
7859 bool hasExt = resources->hasDeviceExtension(device, "VK_ANDROID_native_buffer");
7860 return hasExt ? (void*)entry_vkAcquireImageANDROID : nullptr;
7861 }
7862 if (!strcmp(name, "vkQueueSignalReleaseImageANDROID"))
7863 {
7864 bool hasExt = resources->hasDeviceExtension(device, "VK_ANDROID_native_buffer");
7865 return hasExt ? (void*)entry_vkQueueSignalReleaseImageANDROID : nullptr;
7866 }
7867#endif
7868#ifdef VK_EXT_debug_report
7869 if (!strcmp(name, "vkCreateDebugReportCallbackEXT"))
7870 {
7871 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_report");
7872 return hasExt ? (void*)entry_vkCreateDebugReportCallbackEXT : nullptr;
7873 }
7874 if (!strcmp(name, "vkDestroyDebugReportCallbackEXT"))
7875 {
7876 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_report");
7877 return hasExt ? (void*)entry_vkDestroyDebugReportCallbackEXT : nullptr;
7878 }
7879 if (!strcmp(name, "vkDebugReportMessageEXT"))
7880 {
7881 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_report");
7882 return hasExt ? (void*)entry_vkDebugReportMessageEXT : nullptr;
7883 }
7884#endif
7885#ifdef VK_EXT_debug_marker
7886 if (!strcmp(name, "vkDebugMarkerSetObjectTagEXT"))
7887 {
7888 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_marker");
7889 return hasExt ? (void*)entry_vkDebugMarkerSetObjectTagEXT : nullptr;
7890 }
7891 if (!strcmp(name, "vkDebugMarkerSetObjectNameEXT"))
7892 {
7893 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_marker");
7894 return hasExt ? (void*)entry_vkDebugMarkerSetObjectNameEXT : nullptr;
7895 }
7896 if (!strcmp(name, "vkCmdDebugMarkerBeginEXT"))
7897 {
7898 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_marker");
7899 return hasExt ? (void*)entry_vkCmdDebugMarkerBeginEXT : nullptr;
7900 }
7901 if (!strcmp(name, "vkCmdDebugMarkerEndEXT"))
7902 {
7903 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_marker");
7904 return hasExt ? (void*)entry_vkCmdDebugMarkerEndEXT : nullptr;
7905 }
7906 if (!strcmp(name, "vkCmdDebugMarkerInsertEXT"))
7907 {
7908 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_marker");
7909 return hasExt ? (void*)entry_vkCmdDebugMarkerInsertEXT : nullptr;
7910 }
7911#endif
7912#ifdef VK_AMD_draw_indirect_count
7913 if (!strcmp(name, "vkCmdDrawIndirectCountAMD"))
7914 {
7915 bool hasExt = resources->hasDeviceExtension(device, "VK_AMD_draw_indirect_count");
7916 return hasExt ? (void*)entry_vkCmdDrawIndirectCountAMD : nullptr;
7917 }
7918 if (!strcmp(name, "vkCmdDrawIndexedIndirectCountAMD"))
7919 {
7920 bool hasExt = resources->hasDeviceExtension(device, "VK_AMD_draw_indirect_count");
7921 return hasExt ? (void*)entry_vkCmdDrawIndexedIndirectCountAMD : nullptr;
7922 }
7923#endif
7924#ifdef VK_AMD_shader_info
7925 if (!strcmp(name, "vkGetShaderInfoAMD"))
7926 {
7927 bool hasExt = resources->hasDeviceExtension(device, "VK_AMD_shader_info");
7928 return hasExt ? (void*)entry_vkGetShaderInfoAMD : nullptr;
7929 }
7930#endif
7931#ifdef VK_NV_external_memory_capabilities
7932 if (!strcmp(name, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV"))
7933 {
7934 bool hasExt = resources->hasDeviceExtension(device, "VK_NV_external_memory_capabilities");
7935 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalImageFormatPropertiesNV : nullptr;
7936 }
7937#endif
7938#ifdef VK_NV_external_memory_win32
7939 if (!strcmp(name, "vkGetMemoryWin32HandleNV"))
7940 {
7941 bool hasExt = resources->hasDeviceExtension(device, "VK_NV_external_memory_win32");
7942 return hasExt ? (void*)entry_vkGetMemoryWin32HandleNV : nullptr;
7943 }
7944#endif
7945#ifdef VK_NN_vi_surface
7946 if (!strcmp(name, "vkCreateViSurfaceNN"))
7947 {
7948 bool hasExt = resources->hasDeviceExtension(device, "VK_NN_vi_surface");
7949 return hasExt ? (void*)entry_vkCreateViSurfaceNN : nullptr;
7950 }
7951#endif
7952#ifdef VK_EXT_conditional_rendering
7953 if (!strcmp(name, "vkCmdBeginConditionalRenderingEXT"))
7954 {
7955 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_conditional_rendering");
7956 return hasExt ? (void*)entry_vkCmdBeginConditionalRenderingEXT : nullptr;
7957 }
7958 if (!strcmp(name, "vkCmdEndConditionalRenderingEXT"))
7959 {
7960 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_conditional_rendering");
7961 return hasExt ? (void*)entry_vkCmdEndConditionalRenderingEXT : nullptr;
7962 }
7963#endif
7964#ifdef VK_NVX_device_generated_commands
7965 if (!strcmp(name, "vkCmdProcessCommandsNVX"))
7966 {
7967 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
7968 return hasExt ? (void*)entry_vkCmdProcessCommandsNVX : nullptr;
7969 }
7970 if (!strcmp(name, "vkCmdReserveSpaceForCommandsNVX"))
7971 {
7972 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
7973 return hasExt ? (void*)entry_vkCmdReserveSpaceForCommandsNVX : nullptr;
7974 }
7975 if (!strcmp(name, "vkCreateIndirectCommandsLayoutNVX"))
7976 {
7977 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
7978 return hasExt ? (void*)entry_vkCreateIndirectCommandsLayoutNVX : nullptr;
7979 }
7980 if (!strcmp(name, "vkDestroyIndirectCommandsLayoutNVX"))
7981 {
7982 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
7983 return hasExt ? (void*)entry_vkDestroyIndirectCommandsLayoutNVX : nullptr;
7984 }
7985 if (!strcmp(name, "vkCreateObjectTableNVX"))
7986 {
7987 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
7988 return hasExt ? (void*)entry_vkCreateObjectTableNVX : nullptr;
7989 }
7990 if (!strcmp(name, "vkDestroyObjectTableNVX"))
7991 {
7992 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
7993 return hasExt ? (void*)entry_vkDestroyObjectTableNVX : nullptr;
7994 }
7995 if (!strcmp(name, "vkRegisterObjectsNVX"))
7996 {
7997 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
7998 return hasExt ? (void*)entry_vkRegisterObjectsNVX : nullptr;
7999 }
8000 if (!strcmp(name, "vkUnregisterObjectsNVX"))
8001 {
8002 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
8003 return hasExt ? (void*)entry_vkUnregisterObjectsNVX : nullptr;
8004 }
8005 if (!strcmp(name, "vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX"))
8006 {
8007 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
8008 return hasExt ? (void*)entry_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX : nullptr;
8009 }
8010#endif
8011#ifdef VK_NV_clip_space_w_scaling
8012 if (!strcmp(name, "vkCmdSetViewportWScalingNV"))
8013 {
8014 bool hasExt = resources->hasDeviceExtension(device, "VK_NV_clip_space_w_scaling");
8015 return hasExt ? (void*)entry_vkCmdSetViewportWScalingNV : nullptr;
8016 }
8017#endif
8018#ifdef VK_EXT_direct_mode_display
8019 if (!strcmp(name, "vkReleaseDisplayEXT"))
8020 {
8021 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_direct_mode_display");
8022 return hasExt ? (void*)entry_vkReleaseDisplayEXT : nullptr;
8023 }
8024#endif
8025#ifdef VK_EXT_acquire_xlib_display
8026 if (!strcmp(name, "vkAcquireXlibDisplayEXT"))
8027 {
8028 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_acquire_xlib_display");
8029 return hasExt ? (void*)entry_vkAcquireXlibDisplayEXT : nullptr;
8030 }
8031 if (!strcmp(name, "vkGetRandROutputDisplayEXT"))
8032 {
8033 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_acquire_xlib_display");
8034 return hasExt ? (void*)entry_vkGetRandROutputDisplayEXT : nullptr;
8035 }
8036#endif
8037#ifdef VK_EXT_display_surface_counter
8038 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2EXT"))
8039 {
8040 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_display_surface_counter");
8041 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceCapabilities2EXT : nullptr;
8042 }
8043#endif
8044#ifdef VK_EXT_display_control
8045 if (!strcmp(name, "vkDisplayPowerControlEXT"))
8046 {
8047 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_display_control");
8048 return hasExt ? (void*)entry_vkDisplayPowerControlEXT : nullptr;
8049 }
8050 if (!strcmp(name, "vkRegisterDeviceEventEXT"))
8051 {
8052 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_display_control");
8053 return hasExt ? (void*)entry_vkRegisterDeviceEventEXT : nullptr;
8054 }
8055 if (!strcmp(name, "vkRegisterDisplayEventEXT"))
8056 {
8057 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_display_control");
8058 return hasExt ? (void*)entry_vkRegisterDisplayEventEXT : nullptr;
8059 }
8060 if (!strcmp(name, "vkGetSwapchainCounterEXT"))
8061 {
8062 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_display_control");
8063 return hasExt ? (void*)entry_vkGetSwapchainCounterEXT : nullptr;
8064 }
8065#endif
8066#ifdef VK_GOOGLE_display_timing
8067 if (!strcmp(name, "vkGetRefreshCycleDurationGOOGLE"))
8068 {
8069 bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_display_timing");
8070 return hasExt ? (void*)entry_vkGetRefreshCycleDurationGOOGLE : nullptr;
8071 }
8072 if (!strcmp(name, "vkGetPastPresentationTimingGOOGLE"))
8073 {
8074 bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_display_timing");
8075 return hasExt ? (void*)entry_vkGetPastPresentationTimingGOOGLE : nullptr;
8076 }
8077#endif
8078#ifdef VK_EXT_discard_rectangles
8079 if (!strcmp(name, "vkCmdSetDiscardRectangleEXT"))
8080 {
8081 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_discard_rectangles");
8082 return hasExt ? (void*)entry_vkCmdSetDiscardRectangleEXT : nullptr;
8083 }
8084#endif
8085#ifdef VK_EXT_hdr_metadata
8086 if (!strcmp(name, "vkSetHdrMetadataEXT"))
8087 {
8088 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_hdr_metadata");
8089 return hasExt ? (void*)entry_vkSetHdrMetadataEXT : nullptr;
8090 }
8091#endif
8092#ifdef VK_MVK_ios_surface
8093 if (!strcmp(name, "vkCreateIOSSurfaceMVK"))
8094 {
8095 bool hasExt = resources->hasDeviceExtension(device, "VK_MVK_ios_surface");
8096 return hasExt ? (void*)entry_vkCreateIOSSurfaceMVK : nullptr;
8097 }
8098#endif
8099#ifdef VK_MVK_macos_surface
8100 if (!strcmp(name, "vkCreateMacOSSurfaceMVK"))
8101 {
8102 bool hasExt = resources->hasDeviceExtension(device, "VK_MVK_macos_surface");
8103 return hasExt ? (void*)entry_vkCreateMacOSSurfaceMVK : nullptr;
8104 }
8105#endif
8106#ifdef VK_EXT_debug_utils
8107 if (!strcmp(name, "vkSetDebugUtilsObjectNameEXT"))
8108 {
8109 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8110 return hasExt ? (void*)entry_vkSetDebugUtilsObjectNameEXT : nullptr;
8111 }
8112 if (!strcmp(name, "vkSetDebugUtilsObjectTagEXT"))
8113 {
8114 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8115 return hasExt ? (void*)entry_vkSetDebugUtilsObjectTagEXT : nullptr;
8116 }
8117 if (!strcmp(name, "vkQueueBeginDebugUtilsLabelEXT"))
8118 {
8119 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8120 return hasExt ? (void*)entry_vkQueueBeginDebugUtilsLabelEXT : nullptr;
8121 }
8122 if (!strcmp(name, "vkQueueEndDebugUtilsLabelEXT"))
8123 {
8124 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8125 return hasExt ? (void*)entry_vkQueueEndDebugUtilsLabelEXT : nullptr;
8126 }
8127 if (!strcmp(name, "vkQueueInsertDebugUtilsLabelEXT"))
8128 {
8129 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8130 return hasExt ? (void*)entry_vkQueueInsertDebugUtilsLabelEXT : nullptr;
8131 }
8132 if (!strcmp(name, "vkCmdBeginDebugUtilsLabelEXT"))
8133 {
8134 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8135 return hasExt ? (void*)entry_vkCmdBeginDebugUtilsLabelEXT : nullptr;
8136 }
8137 if (!strcmp(name, "vkCmdEndDebugUtilsLabelEXT"))
8138 {
8139 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8140 return hasExt ? (void*)entry_vkCmdEndDebugUtilsLabelEXT : nullptr;
8141 }
8142 if (!strcmp(name, "vkCmdInsertDebugUtilsLabelEXT"))
8143 {
8144 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8145 return hasExt ? (void*)entry_vkCmdInsertDebugUtilsLabelEXT : nullptr;
8146 }
8147 if (!strcmp(name, "vkCreateDebugUtilsMessengerEXT"))
8148 {
8149 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8150 return hasExt ? (void*)entry_vkCreateDebugUtilsMessengerEXT : nullptr;
8151 }
8152 if (!strcmp(name, "vkDestroyDebugUtilsMessengerEXT"))
8153 {
8154 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8155 return hasExt ? (void*)entry_vkDestroyDebugUtilsMessengerEXT : nullptr;
8156 }
8157 if (!strcmp(name, "vkSubmitDebugUtilsMessageEXT"))
8158 {
8159 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8160 return hasExt ? (void*)entry_vkSubmitDebugUtilsMessageEXT : nullptr;
8161 }
8162#endif
8163#ifdef VK_ANDROID_external_memory_android_hardware_buffer
8164 if (!strcmp(name, "vkGetAndroidHardwareBufferPropertiesANDROID"))
8165 {
8166 bool hasExt = resources->hasDeviceExtension(device, "VK_ANDROID_external_memory_android_hardware_buffer");
8167 return hasExt ? (void*)entry_vkGetAndroidHardwareBufferPropertiesANDROID : nullptr;
8168 }
8169 if (!strcmp(name, "vkGetMemoryAndroidHardwareBufferANDROID"))
8170 {
8171 bool hasExt = resources->hasDeviceExtension(device, "VK_ANDROID_external_memory_android_hardware_buffer");
8172 return hasExt ? (void*)entry_vkGetMemoryAndroidHardwareBufferANDROID : nullptr;
8173 }
8174#endif
8175#ifdef VK_EXT_sample_locations
8176 if (!strcmp(name, "vkCmdSetSampleLocationsEXT"))
8177 {
8178 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_sample_locations");
8179 return hasExt ? (void*)entry_vkCmdSetSampleLocationsEXT : nullptr;
8180 }
8181 if (!strcmp(name, "vkGetPhysicalDeviceMultisamplePropertiesEXT"))
8182 {
8183 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_sample_locations");
8184 return hasExt ? (void*)entry_vkGetPhysicalDeviceMultisamplePropertiesEXT : nullptr;
8185 }
8186#endif
8187#ifdef VK_EXT_validation_cache
8188 if (!strcmp(name, "vkCreateValidationCacheEXT"))
8189 {
8190 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_validation_cache");
8191 return hasExt ? (void*)entry_vkCreateValidationCacheEXT : nullptr;
8192 }
8193 if (!strcmp(name, "vkDestroyValidationCacheEXT"))
8194 {
8195 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_validation_cache");
8196 return hasExt ? (void*)entry_vkDestroyValidationCacheEXT : nullptr;
8197 }
8198 if (!strcmp(name, "vkMergeValidationCachesEXT"))
8199 {
8200 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_validation_cache");
8201 return hasExt ? (void*)entry_vkMergeValidationCachesEXT : nullptr;
8202 }
8203 if (!strcmp(name, "vkGetValidationCacheDataEXT"))
8204 {
8205 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_validation_cache");
8206 return hasExt ? (void*)entry_vkGetValidationCacheDataEXT : nullptr;
8207 }
8208#endif
8209#ifdef VK_EXT_external_memory_host
8210 if (!strcmp(name, "vkGetMemoryHostPointerPropertiesEXT"))
8211 {
8212 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_external_memory_host");
8213 return hasExt ? (void*)entry_vkGetMemoryHostPointerPropertiesEXT : nullptr;
8214 }
8215#endif
8216#ifdef VK_AMD_buffer_marker
8217 if (!strcmp(name, "vkCmdWriteBufferMarkerAMD"))
8218 {
8219 bool hasExt = resources->hasDeviceExtension(device, "VK_AMD_buffer_marker");
8220 return hasExt ? (void*)entry_vkCmdWriteBufferMarkerAMD : nullptr;
8221 }
8222#endif
8223#ifdef VK_NV_device_diagnostic_checkpoints
8224 if (!strcmp(name, "vkCmdSetCheckpointNV"))
8225 {
8226 bool hasExt = resources->hasDeviceExtension(device, "VK_NV_device_diagnostic_checkpoints");
8227 return hasExt ? (void*)entry_vkCmdSetCheckpointNV : nullptr;
8228 }
8229 if (!strcmp(name, "vkGetQueueCheckpointDataNV"))
8230 {
8231 bool hasExt = resources->hasDeviceExtension(device, "VK_NV_device_diagnostic_checkpoints");
8232 return hasExt ? (void*)entry_vkGetQueueCheckpointDataNV : nullptr;
8233 }
8234#endif
8235#ifdef VK_GOOGLE_address_space
8236 if (!strcmp(name, "vkMapMemoryIntoAddressSpaceGOOGLE"))
8237 {
8238 bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_address_space");
8239 return hasExt ? (void*)entry_vkMapMemoryIntoAddressSpaceGOOGLE : nullptr;
Lingfeng Yang5c63afd2018-12-22 01:21:14 -08008240 }
8241#endif
Lingfeng Yangae7e1b32019-02-19 14:07:39 -08008242#ifdef VK_GOOGLE_color_buffer
8243 if (!strcmp(name, "vkRegisterImageColorBufferGOOGLE"))
8244 {
8245 bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_color_buffer");
8246 return hasExt ? (void*)entry_vkRegisterImageColorBufferGOOGLE : nullptr;
8247 }
8248 if (!strcmp(name, "vkRegisterBufferColorBufferGOOGLE"))
8249 {
8250 bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_color_buffer");
8251 return hasExt ? (void*)entry_vkRegisterBufferColorBufferGOOGLE : nullptr;
8252 }
8253#endif
Lingfeng Yang0b81df22018-11-05 21:40:30 -08008254 return nullptr;
8255}
8256
8257} // namespace goldfish_vk