blob: 44e385ded8f52fbe902dfce9aa4fc4dc8a4b94a9 [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;
Lingfeng Yangc53e7472019-03-27 08:50:55 -07001024 auto resources = ResourceTracker::get();
1025 vkBeginCommandBuffer_VkResult_return = resources->on_vkBeginCommandBuffer(vkEnc, VK_SUCCESS, commandBuffer, pBeginInfo);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001026 return vkBeginCommandBuffer_VkResult_return;
1027}
1028static VkResult entry_vkEndCommandBuffer(
1029 VkCommandBuffer commandBuffer)
1030{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001031 AEMU_SCOPED_TRACE("vkEndCommandBuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001032 auto vkEnc = HostConnection::get()->vkEncoder();
1033 VkResult vkEndCommandBuffer_VkResult_return = (VkResult)0;
Lingfeng Yangc53e7472019-03-27 08:50:55 -07001034 auto resources = ResourceTracker::get();
1035 vkEndCommandBuffer_VkResult_return = resources->on_vkEndCommandBuffer(vkEnc, VK_SUCCESS, commandBuffer);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001036 return vkEndCommandBuffer_VkResult_return;
1037}
1038static VkResult entry_vkResetCommandBuffer(
1039 VkCommandBuffer commandBuffer,
1040 VkCommandBufferResetFlags flags)
1041{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001042 AEMU_SCOPED_TRACE("vkResetCommandBuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001043 auto vkEnc = HostConnection::get()->vkEncoder();
1044 VkResult vkResetCommandBuffer_VkResult_return = (VkResult)0;
Lingfeng Yangc53e7472019-03-27 08:50:55 -07001045 auto resources = ResourceTracker::get();
1046 vkResetCommandBuffer_VkResult_return = resources->on_vkResetCommandBuffer(vkEnc, VK_SUCCESS, commandBuffer, flags);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001047 return vkResetCommandBuffer_VkResult_return;
1048}
1049static void entry_vkCmdBindPipeline(
1050 VkCommandBuffer commandBuffer,
1051 VkPipelineBindPoint pipelineBindPoint,
1052 VkPipeline pipeline)
1053{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001054 AEMU_SCOPED_TRACE("vkCmdBindPipeline");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001055 auto vkEnc = HostConnection::get()->vkEncoder();
1056 vkEnc->vkCmdBindPipeline(commandBuffer, pipelineBindPoint, pipeline);
1057}
1058static void entry_vkCmdSetViewport(
1059 VkCommandBuffer commandBuffer,
1060 uint32_t firstViewport,
1061 uint32_t viewportCount,
1062 const VkViewport* pViewports)
1063{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001064 AEMU_SCOPED_TRACE("vkCmdSetViewport");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001065 auto vkEnc = HostConnection::get()->vkEncoder();
1066 vkEnc->vkCmdSetViewport(commandBuffer, firstViewport, viewportCount, pViewports);
1067}
1068static void entry_vkCmdSetScissor(
1069 VkCommandBuffer commandBuffer,
1070 uint32_t firstScissor,
1071 uint32_t scissorCount,
1072 const VkRect2D* pScissors)
1073{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001074 AEMU_SCOPED_TRACE("vkCmdSetScissor");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001075 auto vkEnc = HostConnection::get()->vkEncoder();
1076 vkEnc->vkCmdSetScissor(commandBuffer, firstScissor, scissorCount, pScissors);
1077}
1078static void entry_vkCmdSetLineWidth(
1079 VkCommandBuffer commandBuffer,
1080 float lineWidth)
1081{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001082 AEMU_SCOPED_TRACE("vkCmdSetLineWidth");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001083 auto vkEnc = HostConnection::get()->vkEncoder();
1084 vkEnc->vkCmdSetLineWidth(commandBuffer, lineWidth);
1085}
1086static void entry_vkCmdSetDepthBias(
1087 VkCommandBuffer commandBuffer,
1088 float depthBiasConstantFactor,
1089 float depthBiasClamp,
1090 float depthBiasSlopeFactor)
1091{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001092 AEMU_SCOPED_TRACE("vkCmdSetDepthBias");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001093 auto vkEnc = HostConnection::get()->vkEncoder();
1094 vkEnc->vkCmdSetDepthBias(commandBuffer, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor);
1095}
1096static void entry_vkCmdSetBlendConstants(
1097 VkCommandBuffer commandBuffer,
Lingfeng Yang97ddeb82019-04-20 14:32:52 -07001098 const float blendConstants[4])
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001099{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001100 AEMU_SCOPED_TRACE("vkCmdSetBlendConstants");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001101 auto vkEnc = HostConnection::get()->vkEncoder();
1102 vkEnc->vkCmdSetBlendConstants(commandBuffer, blendConstants);
1103}
1104static void entry_vkCmdSetDepthBounds(
1105 VkCommandBuffer commandBuffer,
1106 float minDepthBounds,
1107 float maxDepthBounds)
1108{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001109 AEMU_SCOPED_TRACE("vkCmdSetDepthBounds");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001110 auto vkEnc = HostConnection::get()->vkEncoder();
1111 vkEnc->vkCmdSetDepthBounds(commandBuffer, minDepthBounds, maxDepthBounds);
1112}
1113static void entry_vkCmdSetStencilCompareMask(
1114 VkCommandBuffer commandBuffer,
1115 VkStencilFaceFlags faceMask,
1116 uint32_t compareMask)
1117{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001118 AEMU_SCOPED_TRACE("vkCmdSetStencilCompareMask");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001119 auto vkEnc = HostConnection::get()->vkEncoder();
1120 vkEnc->vkCmdSetStencilCompareMask(commandBuffer, faceMask, compareMask);
1121}
1122static void entry_vkCmdSetStencilWriteMask(
1123 VkCommandBuffer commandBuffer,
1124 VkStencilFaceFlags faceMask,
1125 uint32_t writeMask)
1126{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001127 AEMU_SCOPED_TRACE("vkCmdSetStencilWriteMask");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001128 auto vkEnc = HostConnection::get()->vkEncoder();
1129 vkEnc->vkCmdSetStencilWriteMask(commandBuffer, faceMask, writeMask);
1130}
1131static void entry_vkCmdSetStencilReference(
1132 VkCommandBuffer commandBuffer,
1133 VkStencilFaceFlags faceMask,
1134 uint32_t reference)
1135{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001136 AEMU_SCOPED_TRACE("vkCmdSetStencilReference");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001137 auto vkEnc = HostConnection::get()->vkEncoder();
1138 vkEnc->vkCmdSetStencilReference(commandBuffer, faceMask, reference);
1139}
1140static void entry_vkCmdBindDescriptorSets(
1141 VkCommandBuffer commandBuffer,
1142 VkPipelineBindPoint pipelineBindPoint,
1143 VkPipelineLayout layout,
1144 uint32_t firstSet,
1145 uint32_t descriptorSetCount,
1146 const VkDescriptorSet* pDescriptorSets,
1147 uint32_t dynamicOffsetCount,
1148 const uint32_t* pDynamicOffsets)
1149{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001150 AEMU_SCOPED_TRACE("vkCmdBindDescriptorSets");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001151 auto vkEnc = HostConnection::get()->vkEncoder();
1152 vkEnc->vkCmdBindDescriptorSets(commandBuffer, pipelineBindPoint, layout, firstSet, descriptorSetCount, pDescriptorSets, dynamicOffsetCount, pDynamicOffsets);
1153}
1154static void entry_vkCmdBindIndexBuffer(
1155 VkCommandBuffer commandBuffer,
1156 VkBuffer buffer,
1157 VkDeviceSize offset,
1158 VkIndexType indexType)
1159{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001160 AEMU_SCOPED_TRACE("vkCmdBindIndexBuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001161 auto vkEnc = HostConnection::get()->vkEncoder();
1162 vkEnc->vkCmdBindIndexBuffer(commandBuffer, buffer, offset, indexType);
1163}
1164static void entry_vkCmdBindVertexBuffers(
1165 VkCommandBuffer commandBuffer,
1166 uint32_t firstBinding,
1167 uint32_t bindingCount,
1168 const VkBuffer* pBuffers,
1169 const VkDeviceSize* pOffsets)
1170{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001171 AEMU_SCOPED_TRACE("vkCmdBindVertexBuffers");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001172 auto vkEnc = HostConnection::get()->vkEncoder();
1173 vkEnc->vkCmdBindVertexBuffers(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets);
1174}
1175static void entry_vkCmdDraw(
1176 VkCommandBuffer commandBuffer,
1177 uint32_t vertexCount,
1178 uint32_t instanceCount,
1179 uint32_t firstVertex,
1180 uint32_t firstInstance)
1181{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001182 AEMU_SCOPED_TRACE("vkCmdDraw");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001183 auto vkEnc = HostConnection::get()->vkEncoder();
1184 vkEnc->vkCmdDraw(commandBuffer, vertexCount, instanceCount, firstVertex, firstInstance);
1185}
1186static void entry_vkCmdDrawIndexed(
1187 VkCommandBuffer commandBuffer,
1188 uint32_t indexCount,
1189 uint32_t instanceCount,
1190 uint32_t firstIndex,
1191 int32_t vertexOffset,
1192 uint32_t firstInstance)
1193{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001194 AEMU_SCOPED_TRACE("vkCmdDrawIndexed");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001195 auto vkEnc = HostConnection::get()->vkEncoder();
1196 vkEnc->vkCmdDrawIndexed(commandBuffer, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance);
1197}
1198static void entry_vkCmdDrawIndirect(
1199 VkCommandBuffer commandBuffer,
1200 VkBuffer buffer,
1201 VkDeviceSize offset,
1202 uint32_t drawCount,
1203 uint32_t stride)
1204{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001205 AEMU_SCOPED_TRACE("vkCmdDrawIndirect");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001206 auto vkEnc = HostConnection::get()->vkEncoder();
1207 vkEnc->vkCmdDrawIndirect(commandBuffer, buffer, offset, drawCount, stride);
1208}
1209static void entry_vkCmdDrawIndexedIndirect(
1210 VkCommandBuffer commandBuffer,
1211 VkBuffer buffer,
1212 VkDeviceSize offset,
1213 uint32_t drawCount,
1214 uint32_t stride)
1215{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001216 AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirect");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001217 auto vkEnc = HostConnection::get()->vkEncoder();
1218 vkEnc->vkCmdDrawIndexedIndirect(commandBuffer, buffer, offset, drawCount, stride);
1219}
1220static void entry_vkCmdDispatch(
1221 VkCommandBuffer commandBuffer,
1222 uint32_t groupCountX,
1223 uint32_t groupCountY,
1224 uint32_t groupCountZ)
1225{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001226 AEMU_SCOPED_TRACE("vkCmdDispatch");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001227 auto vkEnc = HostConnection::get()->vkEncoder();
1228 vkEnc->vkCmdDispatch(commandBuffer, groupCountX, groupCountY, groupCountZ);
1229}
1230static void entry_vkCmdDispatchIndirect(
1231 VkCommandBuffer commandBuffer,
1232 VkBuffer buffer,
1233 VkDeviceSize offset)
1234{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001235 AEMU_SCOPED_TRACE("vkCmdDispatchIndirect");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001236 auto vkEnc = HostConnection::get()->vkEncoder();
1237 vkEnc->vkCmdDispatchIndirect(commandBuffer, buffer, offset);
1238}
1239static void entry_vkCmdCopyBuffer(
1240 VkCommandBuffer commandBuffer,
1241 VkBuffer srcBuffer,
1242 VkBuffer dstBuffer,
1243 uint32_t regionCount,
1244 const VkBufferCopy* pRegions)
1245{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001246 AEMU_SCOPED_TRACE("vkCmdCopyBuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001247 auto vkEnc = HostConnection::get()->vkEncoder();
1248 vkEnc->vkCmdCopyBuffer(commandBuffer, srcBuffer, dstBuffer, regionCount, pRegions);
1249}
1250static void entry_vkCmdCopyImage(
1251 VkCommandBuffer commandBuffer,
1252 VkImage srcImage,
1253 VkImageLayout srcImageLayout,
1254 VkImage dstImage,
1255 VkImageLayout dstImageLayout,
1256 uint32_t regionCount,
1257 const VkImageCopy* pRegions)
1258{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001259 AEMU_SCOPED_TRACE("vkCmdCopyImage");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001260 auto vkEnc = HostConnection::get()->vkEncoder();
1261 vkEnc->vkCmdCopyImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions);
1262}
1263static void entry_vkCmdBlitImage(
1264 VkCommandBuffer commandBuffer,
1265 VkImage srcImage,
1266 VkImageLayout srcImageLayout,
1267 VkImage dstImage,
1268 VkImageLayout dstImageLayout,
1269 uint32_t regionCount,
1270 const VkImageBlit* pRegions,
1271 VkFilter filter)
1272{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001273 AEMU_SCOPED_TRACE("vkCmdBlitImage");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001274 auto vkEnc = HostConnection::get()->vkEncoder();
1275 vkEnc->vkCmdBlitImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions, filter);
1276}
1277static void entry_vkCmdCopyBufferToImage(
1278 VkCommandBuffer commandBuffer,
1279 VkBuffer srcBuffer,
1280 VkImage dstImage,
1281 VkImageLayout dstImageLayout,
1282 uint32_t regionCount,
1283 const VkBufferImageCopy* pRegions)
1284{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001285 AEMU_SCOPED_TRACE("vkCmdCopyBufferToImage");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001286 auto vkEnc = HostConnection::get()->vkEncoder();
1287 vkEnc->vkCmdCopyBufferToImage(commandBuffer, srcBuffer, dstImage, dstImageLayout, regionCount, pRegions);
1288}
1289static void entry_vkCmdCopyImageToBuffer(
1290 VkCommandBuffer commandBuffer,
1291 VkImage srcImage,
1292 VkImageLayout srcImageLayout,
1293 VkBuffer dstBuffer,
1294 uint32_t regionCount,
1295 const VkBufferImageCopy* pRegions)
1296{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001297 AEMU_SCOPED_TRACE("vkCmdCopyImageToBuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001298 auto vkEnc = HostConnection::get()->vkEncoder();
1299 vkEnc->vkCmdCopyImageToBuffer(commandBuffer, srcImage, srcImageLayout, dstBuffer, regionCount, pRegions);
1300}
1301static void entry_vkCmdUpdateBuffer(
1302 VkCommandBuffer commandBuffer,
1303 VkBuffer dstBuffer,
1304 VkDeviceSize dstOffset,
1305 VkDeviceSize dataSize,
1306 const void* pData)
1307{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001308 AEMU_SCOPED_TRACE("vkCmdUpdateBuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001309 auto vkEnc = HostConnection::get()->vkEncoder();
1310 vkEnc->vkCmdUpdateBuffer(commandBuffer, dstBuffer, dstOffset, dataSize, pData);
1311}
1312static void entry_vkCmdFillBuffer(
1313 VkCommandBuffer commandBuffer,
1314 VkBuffer dstBuffer,
1315 VkDeviceSize dstOffset,
1316 VkDeviceSize size,
1317 uint32_t data)
1318{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001319 AEMU_SCOPED_TRACE("vkCmdFillBuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001320 auto vkEnc = HostConnection::get()->vkEncoder();
1321 vkEnc->vkCmdFillBuffer(commandBuffer, dstBuffer, dstOffset, size, data);
1322}
1323static void entry_vkCmdClearColorImage(
1324 VkCommandBuffer commandBuffer,
1325 VkImage image,
1326 VkImageLayout imageLayout,
1327 const VkClearColorValue* pColor,
1328 uint32_t rangeCount,
1329 const VkImageSubresourceRange* pRanges)
1330{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001331 AEMU_SCOPED_TRACE("vkCmdClearColorImage");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001332 auto vkEnc = HostConnection::get()->vkEncoder();
1333 vkEnc->vkCmdClearColorImage(commandBuffer, image, imageLayout, pColor, rangeCount, pRanges);
1334}
1335static void entry_vkCmdClearDepthStencilImage(
1336 VkCommandBuffer commandBuffer,
1337 VkImage image,
1338 VkImageLayout imageLayout,
1339 const VkClearDepthStencilValue* pDepthStencil,
1340 uint32_t rangeCount,
1341 const VkImageSubresourceRange* pRanges)
1342{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001343 AEMU_SCOPED_TRACE("vkCmdClearDepthStencilImage");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001344 auto vkEnc = HostConnection::get()->vkEncoder();
1345 vkEnc->vkCmdClearDepthStencilImage(commandBuffer, image, imageLayout, pDepthStencil, rangeCount, pRanges);
1346}
1347static void entry_vkCmdClearAttachments(
1348 VkCommandBuffer commandBuffer,
1349 uint32_t attachmentCount,
1350 const VkClearAttachment* pAttachments,
1351 uint32_t rectCount,
1352 const VkClearRect* pRects)
1353{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001354 AEMU_SCOPED_TRACE("vkCmdClearAttachments");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001355 auto vkEnc = HostConnection::get()->vkEncoder();
1356 vkEnc->vkCmdClearAttachments(commandBuffer, attachmentCount, pAttachments, rectCount, pRects);
1357}
1358static void entry_vkCmdResolveImage(
1359 VkCommandBuffer commandBuffer,
1360 VkImage srcImage,
1361 VkImageLayout srcImageLayout,
1362 VkImage dstImage,
1363 VkImageLayout dstImageLayout,
1364 uint32_t regionCount,
1365 const VkImageResolve* pRegions)
1366{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001367 AEMU_SCOPED_TRACE("vkCmdResolveImage");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001368 auto vkEnc = HostConnection::get()->vkEncoder();
1369 vkEnc->vkCmdResolveImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions);
1370}
1371static void entry_vkCmdSetEvent(
1372 VkCommandBuffer commandBuffer,
1373 VkEvent event,
1374 VkPipelineStageFlags stageMask)
1375{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001376 AEMU_SCOPED_TRACE("vkCmdSetEvent");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001377 auto vkEnc = HostConnection::get()->vkEncoder();
1378 vkEnc->vkCmdSetEvent(commandBuffer, event, stageMask);
1379}
1380static void entry_vkCmdResetEvent(
1381 VkCommandBuffer commandBuffer,
1382 VkEvent event,
1383 VkPipelineStageFlags stageMask)
1384{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001385 AEMU_SCOPED_TRACE("vkCmdResetEvent");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001386 auto vkEnc = HostConnection::get()->vkEncoder();
1387 vkEnc->vkCmdResetEvent(commandBuffer, event, stageMask);
1388}
1389static void entry_vkCmdWaitEvents(
1390 VkCommandBuffer commandBuffer,
1391 uint32_t eventCount,
1392 const VkEvent* pEvents,
1393 VkPipelineStageFlags srcStageMask,
1394 VkPipelineStageFlags dstStageMask,
1395 uint32_t memoryBarrierCount,
1396 const VkMemoryBarrier* pMemoryBarriers,
1397 uint32_t bufferMemoryBarrierCount,
1398 const VkBufferMemoryBarrier* pBufferMemoryBarriers,
1399 uint32_t imageMemoryBarrierCount,
1400 const VkImageMemoryBarrier* pImageMemoryBarriers)
1401{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001402 AEMU_SCOPED_TRACE("vkCmdWaitEvents");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001403 auto vkEnc = HostConnection::get()->vkEncoder();
1404 vkEnc->vkCmdWaitEvents(commandBuffer, eventCount, pEvents, srcStageMask, dstStageMask, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers);
1405}
1406static void entry_vkCmdPipelineBarrier(
1407 VkCommandBuffer commandBuffer,
1408 VkPipelineStageFlags srcStageMask,
1409 VkPipelineStageFlags dstStageMask,
1410 VkDependencyFlags dependencyFlags,
1411 uint32_t memoryBarrierCount,
1412 const VkMemoryBarrier* pMemoryBarriers,
1413 uint32_t bufferMemoryBarrierCount,
1414 const VkBufferMemoryBarrier* pBufferMemoryBarriers,
1415 uint32_t imageMemoryBarrierCount,
1416 const VkImageMemoryBarrier* pImageMemoryBarriers)
1417{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001418 AEMU_SCOPED_TRACE("vkCmdPipelineBarrier");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001419 auto vkEnc = HostConnection::get()->vkEncoder();
1420 vkEnc->vkCmdPipelineBarrier(commandBuffer, srcStageMask, dstStageMask, dependencyFlags, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers);
1421}
1422static void entry_vkCmdBeginQuery(
1423 VkCommandBuffer commandBuffer,
1424 VkQueryPool queryPool,
1425 uint32_t query,
1426 VkQueryControlFlags flags)
1427{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001428 AEMU_SCOPED_TRACE("vkCmdBeginQuery");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001429 auto vkEnc = HostConnection::get()->vkEncoder();
1430 vkEnc->vkCmdBeginQuery(commandBuffer, queryPool, query, flags);
1431}
1432static void entry_vkCmdEndQuery(
1433 VkCommandBuffer commandBuffer,
1434 VkQueryPool queryPool,
1435 uint32_t query)
1436{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001437 AEMU_SCOPED_TRACE("vkCmdEndQuery");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001438 auto vkEnc = HostConnection::get()->vkEncoder();
1439 vkEnc->vkCmdEndQuery(commandBuffer, queryPool, query);
1440}
1441static void entry_vkCmdResetQueryPool(
1442 VkCommandBuffer commandBuffer,
1443 VkQueryPool queryPool,
1444 uint32_t firstQuery,
1445 uint32_t queryCount)
1446{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001447 AEMU_SCOPED_TRACE("vkCmdResetQueryPool");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001448 auto vkEnc = HostConnection::get()->vkEncoder();
1449 vkEnc->vkCmdResetQueryPool(commandBuffer, queryPool, firstQuery, queryCount);
1450}
1451static void entry_vkCmdWriteTimestamp(
1452 VkCommandBuffer commandBuffer,
1453 VkPipelineStageFlagBits pipelineStage,
1454 VkQueryPool queryPool,
1455 uint32_t query)
1456{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001457 AEMU_SCOPED_TRACE("vkCmdWriteTimestamp");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001458 auto vkEnc = HostConnection::get()->vkEncoder();
1459 vkEnc->vkCmdWriteTimestamp(commandBuffer, pipelineStage, queryPool, query);
1460}
1461static void entry_vkCmdCopyQueryPoolResults(
1462 VkCommandBuffer commandBuffer,
1463 VkQueryPool queryPool,
1464 uint32_t firstQuery,
1465 uint32_t queryCount,
1466 VkBuffer dstBuffer,
1467 VkDeviceSize dstOffset,
1468 VkDeviceSize stride,
1469 VkQueryResultFlags flags)
1470{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001471 AEMU_SCOPED_TRACE("vkCmdCopyQueryPoolResults");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001472 auto vkEnc = HostConnection::get()->vkEncoder();
1473 vkEnc->vkCmdCopyQueryPoolResults(commandBuffer, queryPool, firstQuery, queryCount, dstBuffer, dstOffset, stride, flags);
1474}
1475static void entry_vkCmdPushConstants(
1476 VkCommandBuffer commandBuffer,
1477 VkPipelineLayout layout,
1478 VkShaderStageFlags stageFlags,
1479 uint32_t offset,
1480 uint32_t size,
1481 const void* pValues)
1482{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001483 AEMU_SCOPED_TRACE("vkCmdPushConstants");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001484 auto vkEnc = HostConnection::get()->vkEncoder();
1485 vkEnc->vkCmdPushConstants(commandBuffer, layout, stageFlags, offset, size, pValues);
1486}
1487static void entry_vkCmdBeginRenderPass(
1488 VkCommandBuffer commandBuffer,
1489 const VkRenderPassBeginInfo* pRenderPassBegin,
1490 VkSubpassContents contents)
1491{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001492 AEMU_SCOPED_TRACE("vkCmdBeginRenderPass");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001493 auto vkEnc = HostConnection::get()->vkEncoder();
1494 vkEnc->vkCmdBeginRenderPass(commandBuffer, pRenderPassBegin, contents);
1495}
1496static void entry_vkCmdNextSubpass(
1497 VkCommandBuffer commandBuffer,
1498 VkSubpassContents contents)
1499{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001500 AEMU_SCOPED_TRACE("vkCmdNextSubpass");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001501 auto vkEnc = HostConnection::get()->vkEncoder();
1502 vkEnc->vkCmdNextSubpass(commandBuffer, contents);
1503}
1504static void entry_vkCmdEndRenderPass(
1505 VkCommandBuffer commandBuffer)
1506{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001507 AEMU_SCOPED_TRACE("vkCmdEndRenderPass");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001508 auto vkEnc = HostConnection::get()->vkEncoder();
1509 vkEnc->vkCmdEndRenderPass(commandBuffer);
1510}
1511static void entry_vkCmdExecuteCommands(
1512 VkCommandBuffer commandBuffer,
1513 uint32_t commandBufferCount,
1514 const VkCommandBuffer* pCommandBuffers)
1515{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001516 AEMU_SCOPED_TRACE("vkCmdExecuteCommands");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001517 auto vkEnc = HostConnection::get()->vkEncoder();
1518 vkEnc->vkCmdExecuteCommands(commandBuffer, commandBufferCount, pCommandBuffers);
1519}
1520#endif
1521#ifdef VK_VERSION_1_1
1522static VkResult entry_vkEnumerateInstanceVersion(
1523 uint32_t* pApiVersion)
1524{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001525 AEMU_SCOPED_TRACE("vkEnumerateInstanceVersion");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001526 auto vkEnc = HostConnection::get()->vkEncoder();
1527 VkResult vkEnumerateInstanceVersion_VkResult_return = (VkResult)0;
1528 vkEnumerateInstanceVersion_VkResult_return = vkEnc->vkEnumerateInstanceVersion(pApiVersion);
1529 return vkEnumerateInstanceVersion_VkResult_return;
1530}
1531static VkResult entry_vkBindBufferMemory2(
1532 VkDevice device,
1533 uint32_t bindInfoCount,
1534 const VkBindBufferMemoryInfo* pBindInfos)
1535{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001536 AEMU_SCOPED_TRACE("vkBindBufferMemory2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001537 auto vkEnc = HostConnection::get()->vkEncoder();
1538 VkResult vkBindBufferMemory2_VkResult_return = (VkResult)0;
Lingfeng Yang4af5f322019-02-14 08:10:28 -08001539 auto resources = ResourceTracker::get();
1540 vkBindBufferMemory2_VkResult_return = resources->on_vkBindBufferMemory2(vkEnc, VK_SUCCESS, device, bindInfoCount, pBindInfos);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001541 return vkBindBufferMemory2_VkResult_return;
1542}
1543static VkResult entry_vkBindImageMemory2(
1544 VkDevice device,
1545 uint32_t bindInfoCount,
1546 const VkBindImageMemoryInfo* pBindInfos)
1547{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001548 AEMU_SCOPED_TRACE("vkBindImageMemory2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001549 auto vkEnc = HostConnection::get()->vkEncoder();
1550 VkResult vkBindImageMemory2_VkResult_return = (VkResult)0;
Lingfeng Yang4af5f322019-02-14 08:10:28 -08001551 auto resources = ResourceTracker::get();
1552 vkBindImageMemory2_VkResult_return = resources->on_vkBindImageMemory2(vkEnc, VK_SUCCESS, device, bindInfoCount, pBindInfos);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001553 return vkBindImageMemory2_VkResult_return;
1554}
1555static void entry_vkGetDeviceGroupPeerMemoryFeatures(
1556 VkDevice device,
1557 uint32_t heapIndex,
1558 uint32_t localDeviceIndex,
1559 uint32_t remoteDeviceIndex,
1560 VkPeerMemoryFeatureFlags* pPeerMemoryFeatures)
1561{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001562 AEMU_SCOPED_TRACE("vkGetDeviceGroupPeerMemoryFeatures");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001563 auto vkEnc = HostConnection::get()->vkEncoder();
1564 vkEnc->vkGetDeviceGroupPeerMemoryFeatures(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures);
1565}
1566static void entry_vkCmdSetDeviceMask(
1567 VkCommandBuffer commandBuffer,
1568 uint32_t deviceMask)
1569{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001570 AEMU_SCOPED_TRACE("vkCmdSetDeviceMask");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001571 auto vkEnc = HostConnection::get()->vkEncoder();
1572 vkEnc->vkCmdSetDeviceMask(commandBuffer, deviceMask);
1573}
1574static void entry_vkCmdDispatchBase(
1575 VkCommandBuffer commandBuffer,
1576 uint32_t baseGroupX,
1577 uint32_t baseGroupY,
1578 uint32_t baseGroupZ,
1579 uint32_t groupCountX,
1580 uint32_t groupCountY,
1581 uint32_t groupCountZ)
1582{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001583 AEMU_SCOPED_TRACE("vkCmdDispatchBase");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001584 auto vkEnc = HostConnection::get()->vkEncoder();
1585 vkEnc->vkCmdDispatchBase(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ);
1586}
1587static VkResult entry_vkEnumeratePhysicalDeviceGroups(
1588 VkInstance instance,
1589 uint32_t* pPhysicalDeviceGroupCount,
1590 VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties)
1591{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001592 AEMU_SCOPED_TRACE("vkEnumeratePhysicalDeviceGroups");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001593 auto vkEnc = HostConnection::get()->vkEncoder();
1594 VkResult vkEnumeratePhysicalDeviceGroups_VkResult_return = (VkResult)0;
1595 vkEnumeratePhysicalDeviceGroups_VkResult_return = vkEnc->vkEnumeratePhysicalDeviceGroups(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties);
1596 return vkEnumeratePhysicalDeviceGroups_VkResult_return;
1597}
1598static void entry_vkGetImageMemoryRequirements2(
1599 VkDevice device,
1600 const VkImageMemoryRequirementsInfo2* pInfo,
1601 VkMemoryRequirements2* pMemoryRequirements)
1602{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001603 AEMU_SCOPED_TRACE("vkGetImageMemoryRequirements2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001604 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang4af5f322019-02-14 08:10:28 -08001605 auto resources = ResourceTracker::get();
1606 resources->on_vkGetImageMemoryRequirements2(vkEnc, device, pInfo, pMemoryRequirements);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001607}
1608static void entry_vkGetBufferMemoryRequirements2(
1609 VkDevice device,
1610 const VkBufferMemoryRequirementsInfo2* pInfo,
1611 VkMemoryRequirements2* pMemoryRequirements)
1612{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001613 AEMU_SCOPED_TRACE("vkGetBufferMemoryRequirements2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001614 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang4af5f322019-02-14 08:10:28 -08001615 auto resources = ResourceTracker::get();
1616 resources->on_vkGetBufferMemoryRequirements2(vkEnc, device, pInfo, pMemoryRequirements);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001617}
1618static void entry_vkGetImageSparseMemoryRequirements2(
1619 VkDevice device,
1620 const VkImageSparseMemoryRequirementsInfo2* pInfo,
1621 uint32_t* pSparseMemoryRequirementCount,
1622 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements)
1623{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001624 AEMU_SCOPED_TRACE("vkGetImageSparseMemoryRequirements2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001625 auto vkEnc = HostConnection::get()->vkEncoder();
1626 vkEnc->vkGetImageSparseMemoryRequirements2(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements);
1627}
1628static void entry_vkGetPhysicalDeviceFeatures2(
1629 VkPhysicalDevice physicalDevice,
1630 VkPhysicalDeviceFeatures2* pFeatures)
1631{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001632 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFeatures2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001633 auto vkEnc = HostConnection::get()->vkEncoder();
1634 vkEnc->vkGetPhysicalDeviceFeatures2(physicalDevice, pFeatures);
1635}
1636static void entry_vkGetPhysicalDeviceProperties2(
1637 VkPhysicalDevice physicalDevice,
1638 VkPhysicalDeviceProperties2* pProperties)
1639{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001640 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceProperties2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001641 auto vkEnc = HostConnection::get()->vkEncoder();
1642 vkEnc->vkGetPhysicalDeviceProperties2(physicalDevice, pProperties);
1643}
1644static void entry_vkGetPhysicalDeviceFormatProperties2(
1645 VkPhysicalDevice physicalDevice,
1646 VkFormat format,
1647 VkFormatProperties2* pFormatProperties)
1648{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001649 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFormatProperties2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001650 auto vkEnc = HostConnection::get()->vkEncoder();
1651 vkEnc->vkGetPhysicalDeviceFormatProperties2(physicalDevice, format, pFormatProperties);
1652}
1653static VkResult entry_vkGetPhysicalDeviceImageFormatProperties2(
1654 VkPhysicalDevice physicalDevice,
1655 const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
1656 VkImageFormatProperties2* pImageFormatProperties)
1657{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001658 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceImageFormatProperties2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001659 auto vkEnc = HostConnection::get()->vkEncoder();
1660 VkResult vkGetPhysicalDeviceImageFormatProperties2_VkResult_return = (VkResult)0;
Lingfeng Yange517d1e2019-03-25 18:02:49 -07001661 auto resources = ResourceTracker::get();
1662 vkGetPhysicalDeviceImageFormatProperties2_VkResult_return = resources->on_vkGetPhysicalDeviceImageFormatProperties2(vkEnc, VK_SUCCESS, physicalDevice, pImageFormatInfo, pImageFormatProperties);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001663 return vkGetPhysicalDeviceImageFormatProperties2_VkResult_return;
1664}
1665static void entry_vkGetPhysicalDeviceQueueFamilyProperties2(
1666 VkPhysicalDevice physicalDevice,
1667 uint32_t* pQueueFamilyPropertyCount,
1668 VkQueueFamilyProperties2* pQueueFamilyProperties)
1669{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001670 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceQueueFamilyProperties2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001671 auto vkEnc = HostConnection::get()->vkEncoder();
1672 vkEnc->vkGetPhysicalDeviceQueueFamilyProperties2(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties);
1673}
1674static void entry_vkGetPhysicalDeviceMemoryProperties2(
1675 VkPhysicalDevice physicalDevice,
1676 VkPhysicalDeviceMemoryProperties2* pMemoryProperties)
1677{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001678 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMemoryProperties2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001679 auto vkEnc = HostConnection::get()->vkEncoder();
1680 vkEnc->vkGetPhysicalDeviceMemoryProperties2(physicalDevice, pMemoryProperties);
1681}
1682static void entry_vkGetPhysicalDeviceSparseImageFormatProperties2(
1683 VkPhysicalDevice physicalDevice,
1684 const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
1685 uint32_t* pPropertyCount,
1686 VkSparseImageFormatProperties2* pProperties)
1687{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001688 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSparseImageFormatProperties2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001689 auto vkEnc = HostConnection::get()->vkEncoder();
1690 vkEnc->vkGetPhysicalDeviceSparseImageFormatProperties2(physicalDevice, pFormatInfo, pPropertyCount, pProperties);
1691}
1692static void entry_vkTrimCommandPool(
1693 VkDevice device,
1694 VkCommandPool commandPool,
1695 VkCommandPoolTrimFlags flags)
1696{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001697 AEMU_SCOPED_TRACE("vkTrimCommandPool");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001698 auto vkEnc = HostConnection::get()->vkEncoder();
1699 vkEnc->vkTrimCommandPool(device, commandPool, flags);
1700}
1701static void entry_vkGetDeviceQueue2(
1702 VkDevice device,
1703 const VkDeviceQueueInfo2* pQueueInfo,
1704 VkQueue* pQueue)
1705{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001706 AEMU_SCOPED_TRACE("vkGetDeviceQueue2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001707 auto vkEnc = HostConnection::get()->vkEncoder();
1708 vkEnc->vkGetDeviceQueue2(device, pQueueInfo, pQueue);
1709}
1710static VkResult entry_vkCreateSamplerYcbcrConversion(
1711 VkDevice device,
1712 const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
1713 const VkAllocationCallbacks* pAllocator,
1714 VkSamplerYcbcrConversion* pYcbcrConversion)
1715{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001716 AEMU_SCOPED_TRACE("vkCreateSamplerYcbcrConversion");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001717 auto vkEnc = HostConnection::get()->vkEncoder();
1718 VkResult vkCreateSamplerYcbcrConversion_VkResult_return = (VkResult)0;
Lingfeng Yang5c701122019-03-05 08:34:46 -08001719 auto resources = ResourceTracker::get();
1720 vkCreateSamplerYcbcrConversion_VkResult_return = resources->on_vkCreateSamplerYcbcrConversion(vkEnc, VK_SUCCESS, device, pCreateInfo, pAllocator, pYcbcrConversion);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001721 return vkCreateSamplerYcbcrConversion_VkResult_return;
1722}
1723static void entry_vkDestroySamplerYcbcrConversion(
1724 VkDevice device,
1725 VkSamplerYcbcrConversion ycbcrConversion,
1726 const VkAllocationCallbacks* pAllocator)
1727{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001728 AEMU_SCOPED_TRACE("vkDestroySamplerYcbcrConversion");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001729 auto vkEnc = HostConnection::get()->vkEncoder();
1730 vkEnc->vkDestroySamplerYcbcrConversion(device, ycbcrConversion, pAllocator);
1731}
1732static VkResult entry_vkCreateDescriptorUpdateTemplate(
1733 VkDevice device,
1734 const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
1735 const VkAllocationCallbacks* pAllocator,
1736 VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate)
1737{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001738 AEMU_SCOPED_TRACE("vkCreateDescriptorUpdateTemplate");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001739 auto vkEnc = HostConnection::get()->vkEncoder();
1740 VkResult vkCreateDescriptorUpdateTemplate_VkResult_return = (VkResult)0;
1741 vkCreateDescriptorUpdateTemplate_VkResult_return = vkEnc->vkCreateDescriptorUpdateTemplate(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate);
1742 return vkCreateDescriptorUpdateTemplate_VkResult_return;
1743}
1744static void entry_vkDestroyDescriptorUpdateTemplate(
1745 VkDevice device,
1746 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
1747 const VkAllocationCallbacks* pAllocator)
1748{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001749 AEMU_SCOPED_TRACE("vkDestroyDescriptorUpdateTemplate");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001750 auto vkEnc = HostConnection::get()->vkEncoder();
1751 vkEnc->vkDestroyDescriptorUpdateTemplate(device, descriptorUpdateTemplate, pAllocator);
1752}
1753static void entry_vkUpdateDescriptorSetWithTemplate(
1754 VkDevice device,
1755 VkDescriptorSet descriptorSet,
1756 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
1757 const void* pData)
1758{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001759 AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplate");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001760 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang05d5ea32019-03-23 00:12:39 -07001761 auto resources = ResourceTracker::get();
1762 resources->on_vkUpdateDescriptorSetWithTemplate(vkEnc, device, descriptorSet, descriptorUpdateTemplate, pData);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001763}
1764static void entry_vkGetPhysicalDeviceExternalBufferProperties(
1765 VkPhysicalDevice physicalDevice,
1766 const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
1767 VkExternalBufferProperties* pExternalBufferProperties)
1768{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001769 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalBufferProperties");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001770 auto vkEnc = HostConnection::get()->vkEncoder();
1771 vkEnc->vkGetPhysicalDeviceExternalBufferProperties(physicalDevice, pExternalBufferInfo, pExternalBufferProperties);
1772}
1773static void entry_vkGetPhysicalDeviceExternalFenceProperties(
1774 VkPhysicalDevice physicalDevice,
1775 const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
1776 VkExternalFenceProperties* pExternalFenceProperties)
1777{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001778 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalFenceProperties");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001779 auto vkEnc = HostConnection::get()->vkEncoder();
1780 vkEnc->vkGetPhysicalDeviceExternalFenceProperties(physicalDevice, pExternalFenceInfo, pExternalFenceProperties);
1781}
1782static void entry_vkGetPhysicalDeviceExternalSemaphoreProperties(
1783 VkPhysicalDevice physicalDevice,
1784 const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
1785 VkExternalSemaphoreProperties* pExternalSemaphoreProperties)
1786{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001787 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalSemaphoreProperties");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001788 auto vkEnc = HostConnection::get()->vkEncoder();
1789 vkEnc->vkGetPhysicalDeviceExternalSemaphoreProperties(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties);
1790}
1791static void entry_vkGetDescriptorSetLayoutSupport(
1792 VkDevice device,
1793 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
1794 VkDescriptorSetLayoutSupport* pSupport)
1795{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001796 AEMU_SCOPED_TRACE("vkGetDescriptorSetLayoutSupport");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001797 auto vkEnc = HostConnection::get()->vkEncoder();
1798 vkEnc->vkGetDescriptorSetLayoutSupport(device, pCreateInfo, pSupport);
1799}
1800#endif
1801#ifdef VK_KHR_surface
1802static void entry_vkDestroySurfaceKHR(
1803 VkInstance instance,
1804 VkSurfaceKHR surface,
1805 const VkAllocationCallbacks* pAllocator)
1806{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001807 AEMU_SCOPED_TRACE("vkDestroySurfaceKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001808 auto vkEnc = HostConnection::get()->vkEncoder();
1809 vkEnc->vkDestroySurfaceKHR(instance, surface, pAllocator);
1810}
1811static VkResult entry_vkGetPhysicalDeviceSurfaceSupportKHR(
1812 VkPhysicalDevice physicalDevice,
1813 uint32_t queueFamilyIndex,
1814 VkSurfaceKHR surface,
1815 VkBool32* pSupported)
1816{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001817 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceSupportKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001818 auto vkEnc = HostConnection::get()->vkEncoder();
1819 VkResult vkGetPhysicalDeviceSurfaceSupportKHR_VkResult_return = (VkResult)0;
1820 vkGetPhysicalDeviceSurfaceSupportKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceSupportKHR(physicalDevice, queueFamilyIndex, surface, pSupported);
1821 return vkGetPhysicalDeviceSurfaceSupportKHR_VkResult_return;
1822}
1823static VkResult entry_vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
1824 VkPhysicalDevice physicalDevice,
1825 VkSurfaceKHR surface,
1826 VkSurfaceCapabilitiesKHR* pSurfaceCapabilities)
1827{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001828 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceCapabilitiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001829 auto vkEnc = HostConnection::get()->vkEncoder();
1830 VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR_VkResult_return = (VkResult)0;
1831 vkGetPhysicalDeviceSurfaceCapabilitiesKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceCapabilitiesKHR(physicalDevice, surface, pSurfaceCapabilities);
1832 return vkGetPhysicalDeviceSurfaceCapabilitiesKHR_VkResult_return;
1833}
1834static VkResult entry_vkGetPhysicalDeviceSurfaceFormatsKHR(
1835 VkPhysicalDevice physicalDevice,
1836 VkSurfaceKHR surface,
1837 uint32_t* pSurfaceFormatCount,
1838 VkSurfaceFormatKHR* pSurfaceFormats)
1839{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001840 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceFormatsKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001841 auto vkEnc = HostConnection::get()->vkEncoder();
1842 VkResult vkGetPhysicalDeviceSurfaceFormatsKHR_VkResult_return = (VkResult)0;
1843 vkGetPhysicalDeviceSurfaceFormatsKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceFormatsKHR(physicalDevice, surface, pSurfaceFormatCount, pSurfaceFormats);
1844 return vkGetPhysicalDeviceSurfaceFormatsKHR_VkResult_return;
1845}
1846static VkResult entry_vkGetPhysicalDeviceSurfacePresentModesKHR(
1847 VkPhysicalDevice physicalDevice,
1848 VkSurfaceKHR surface,
1849 uint32_t* pPresentModeCount,
1850 VkPresentModeKHR* pPresentModes)
1851{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001852 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfacePresentModesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001853 auto vkEnc = HostConnection::get()->vkEncoder();
1854 VkResult vkGetPhysicalDeviceSurfacePresentModesKHR_VkResult_return = (VkResult)0;
1855 vkGetPhysicalDeviceSurfacePresentModesKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfacePresentModesKHR(physicalDevice, surface, pPresentModeCount, pPresentModes);
1856 return vkGetPhysicalDeviceSurfacePresentModesKHR_VkResult_return;
1857}
1858#endif
1859#ifdef VK_KHR_swapchain
1860static VkResult entry_vkCreateSwapchainKHR(
1861 VkDevice device,
1862 const VkSwapchainCreateInfoKHR* pCreateInfo,
1863 const VkAllocationCallbacks* pAllocator,
1864 VkSwapchainKHR* pSwapchain)
1865{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001866 AEMU_SCOPED_TRACE("vkCreateSwapchainKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001867 auto vkEnc = HostConnection::get()->vkEncoder();
1868 VkResult vkCreateSwapchainKHR_VkResult_return = (VkResult)0;
1869 vkCreateSwapchainKHR_VkResult_return = vkEnc->vkCreateSwapchainKHR(device, pCreateInfo, pAllocator, pSwapchain);
1870 return vkCreateSwapchainKHR_VkResult_return;
1871}
1872static void entry_vkDestroySwapchainKHR(
1873 VkDevice device,
1874 VkSwapchainKHR swapchain,
1875 const VkAllocationCallbacks* pAllocator)
1876{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001877 AEMU_SCOPED_TRACE("vkDestroySwapchainKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001878 auto vkEnc = HostConnection::get()->vkEncoder();
1879 vkEnc->vkDestroySwapchainKHR(device, swapchain, pAllocator);
1880}
1881static VkResult entry_vkGetSwapchainImagesKHR(
1882 VkDevice device,
1883 VkSwapchainKHR swapchain,
1884 uint32_t* pSwapchainImageCount,
1885 VkImage* pSwapchainImages)
1886{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001887 AEMU_SCOPED_TRACE("vkGetSwapchainImagesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001888 auto vkEnc = HostConnection::get()->vkEncoder();
1889 VkResult vkGetSwapchainImagesKHR_VkResult_return = (VkResult)0;
1890 vkGetSwapchainImagesKHR_VkResult_return = vkEnc->vkGetSwapchainImagesKHR(device, swapchain, pSwapchainImageCount, pSwapchainImages);
1891 return vkGetSwapchainImagesKHR_VkResult_return;
1892}
1893static VkResult entry_vkAcquireNextImageKHR(
1894 VkDevice device,
1895 VkSwapchainKHR swapchain,
1896 uint64_t timeout,
1897 VkSemaphore semaphore,
1898 VkFence fence,
1899 uint32_t* pImageIndex)
1900{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001901 AEMU_SCOPED_TRACE("vkAcquireNextImageKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001902 auto vkEnc = HostConnection::get()->vkEncoder();
1903 VkResult vkAcquireNextImageKHR_VkResult_return = (VkResult)0;
1904 vkAcquireNextImageKHR_VkResult_return = vkEnc->vkAcquireNextImageKHR(device, swapchain, timeout, semaphore, fence, pImageIndex);
1905 return vkAcquireNextImageKHR_VkResult_return;
1906}
1907static VkResult entry_vkQueuePresentKHR(
1908 VkQueue queue,
1909 const VkPresentInfoKHR* pPresentInfo)
1910{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001911 AEMU_SCOPED_TRACE("vkQueuePresentKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001912 auto vkEnc = HostConnection::get()->vkEncoder();
1913 VkResult vkQueuePresentKHR_VkResult_return = (VkResult)0;
1914 vkQueuePresentKHR_VkResult_return = vkEnc->vkQueuePresentKHR(queue, pPresentInfo);
1915 return vkQueuePresentKHR_VkResult_return;
1916}
1917static VkResult entry_vkGetDeviceGroupPresentCapabilitiesKHR(
1918 VkDevice device,
1919 VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities)
1920{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001921 AEMU_SCOPED_TRACE("vkGetDeviceGroupPresentCapabilitiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001922 auto vkEnc = HostConnection::get()->vkEncoder();
1923 VkResult vkGetDeviceGroupPresentCapabilitiesKHR_VkResult_return = (VkResult)0;
1924 vkGetDeviceGroupPresentCapabilitiesKHR_VkResult_return = vkEnc->vkGetDeviceGroupPresentCapabilitiesKHR(device, pDeviceGroupPresentCapabilities);
1925 return vkGetDeviceGroupPresentCapabilitiesKHR_VkResult_return;
1926}
1927static VkResult entry_vkGetDeviceGroupSurfacePresentModesKHR(
1928 VkDevice device,
1929 VkSurfaceKHR surface,
1930 VkDeviceGroupPresentModeFlagsKHR* pModes)
1931{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001932 AEMU_SCOPED_TRACE("vkGetDeviceGroupSurfacePresentModesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001933 auto vkEnc = HostConnection::get()->vkEncoder();
1934 VkResult vkGetDeviceGroupSurfacePresentModesKHR_VkResult_return = (VkResult)0;
1935 vkGetDeviceGroupSurfacePresentModesKHR_VkResult_return = vkEnc->vkGetDeviceGroupSurfacePresentModesKHR(device, surface, pModes);
1936 return vkGetDeviceGroupSurfacePresentModesKHR_VkResult_return;
1937}
1938static VkResult entry_vkGetPhysicalDevicePresentRectanglesKHR(
1939 VkPhysicalDevice physicalDevice,
1940 VkSurfaceKHR surface,
1941 uint32_t* pRectCount,
1942 VkRect2D* pRects)
1943{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001944 AEMU_SCOPED_TRACE("vkGetPhysicalDevicePresentRectanglesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001945 auto vkEnc = HostConnection::get()->vkEncoder();
1946 VkResult vkGetPhysicalDevicePresentRectanglesKHR_VkResult_return = (VkResult)0;
1947 vkGetPhysicalDevicePresentRectanglesKHR_VkResult_return = vkEnc->vkGetPhysicalDevicePresentRectanglesKHR(physicalDevice, surface, pRectCount, pRects);
1948 return vkGetPhysicalDevicePresentRectanglesKHR_VkResult_return;
1949}
1950static VkResult entry_vkAcquireNextImage2KHR(
1951 VkDevice device,
1952 const VkAcquireNextImageInfoKHR* pAcquireInfo,
1953 uint32_t* pImageIndex)
1954{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001955 AEMU_SCOPED_TRACE("vkAcquireNextImage2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001956 auto vkEnc = HostConnection::get()->vkEncoder();
1957 VkResult vkAcquireNextImage2KHR_VkResult_return = (VkResult)0;
1958 vkAcquireNextImage2KHR_VkResult_return = vkEnc->vkAcquireNextImage2KHR(device, pAcquireInfo, pImageIndex);
1959 return vkAcquireNextImage2KHR_VkResult_return;
1960}
1961#endif
1962#ifdef VK_KHR_display
1963static VkResult entry_vkGetPhysicalDeviceDisplayPropertiesKHR(
1964 VkPhysicalDevice physicalDevice,
1965 uint32_t* pPropertyCount,
1966 VkDisplayPropertiesKHR* pProperties)
1967{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001968 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayPropertiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001969 auto vkEnc = HostConnection::get()->vkEncoder();
1970 VkResult vkGetPhysicalDeviceDisplayPropertiesKHR_VkResult_return = (VkResult)0;
1971 vkGetPhysicalDeviceDisplayPropertiesKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceDisplayPropertiesKHR(physicalDevice, pPropertyCount, pProperties);
1972 return vkGetPhysicalDeviceDisplayPropertiesKHR_VkResult_return;
1973}
1974static VkResult entry_vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
1975 VkPhysicalDevice physicalDevice,
1976 uint32_t* pPropertyCount,
1977 VkDisplayPlanePropertiesKHR* pProperties)
1978{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001979 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayPlanePropertiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001980 auto vkEnc = HostConnection::get()->vkEncoder();
1981 VkResult vkGetPhysicalDeviceDisplayPlanePropertiesKHR_VkResult_return = (VkResult)0;
1982 vkGetPhysicalDeviceDisplayPlanePropertiesKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceDisplayPlanePropertiesKHR(physicalDevice, pPropertyCount, pProperties);
1983 return vkGetPhysicalDeviceDisplayPlanePropertiesKHR_VkResult_return;
1984}
1985static VkResult entry_vkGetDisplayPlaneSupportedDisplaysKHR(
1986 VkPhysicalDevice physicalDevice,
1987 uint32_t planeIndex,
1988 uint32_t* pDisplayCount,
1989 VkDisplayKHR* pDisplays)
1990{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001991 AEMU_SCOPED_TRACE("vkGetDisplayPlaneSupportedDisplaysKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001992 auto vkEnc = HostConnection::get()->vkEncoder();
1993 VkResult vkGetDisplayPlaneSupportedDisplaysKHR_VkResult_return = (VkResult)0;
1994 vkGetDisplayPlaneSupportedDisplaysKHR_VkResult_return = vkEnc->vkGetDisplayPlaneSupportedDisplaysKHR(physicalDevice, planeIndex, pDisplayCount, pDisplays);
1995 return vkGetDisplayPlaneSupportedDisplaysKHR_VkResult_return;
1996}
1997static VkResult entry_vkGetDisplayModePropertiesKHR(
1998 VkPhysicalDevice physicalDevice,
1999 VkDisplayKHR display,
2000 uint32_t* pPropertyCount,
2001 VkDisplayModePropertiesKHR* pProperties)
2002{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002003 AEMU_SCOPED_TRACE("vkGetDisplayModePropertiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002004 auto vkEnc = HostConnection::get()->vkEncoder();
2005 VkResult vkGetDisplayModePropertiesKHR_VkResult_return = (VkResult)0;
2006 vkGetDisplayModePropertiesKHR_VkResult_return = vkEnc->vkGetDisplayModePropertiesKHR(physicalDevice, display, pPropertyCount, pProperties);
2007 return vkGetDisplayModePropertiesKHR_VkResult_return;
2008}
2009static VkResult entry_vkCreateDisplayModeKHR(
2010 VkPhysicalDevice physicalDevice,
2011 VkDisplayKHR display,
2012 const VkDisplayModeCreateInfoKHR* pCreateInfo,
2013 const VkAllocationCallbacks* pAllocator,
2014 VkDisplayModeKHR* pMode)
2015{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002016 AEMU_SCOPED_TRACE("vkCreateDisplayModeKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002017 auto vkEnc = HostConnection::get()->vkEncoder();
2018 VkResult vkCreateDisplayModeKHR_VkResult_return = (VkResult)0;
2019 vkCreateDisplayModeKHR_VkResult_return = vkEnc->vkCreateDisplayModeKHR(physicalDevice, display, pCreateInfo, pAllocator, pMode);
2020 return vkCreateDisplayModeKHR_VkResult_return;
2021}
2022static VkResult entry_vkGetDisplayPlaneCapabilitiesKHR(
2023 VkPhysicalDevice physicalDevice,
2024 VkDisplayModeKHR mode,
2025 uint32_t planeIndex,
2026 VkDisplayPlaneCapabilitiesKHR* pCapabilities)
2027{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002028 AEMU_SCOPED_TRACE("vkGetDisplayPlaneCapabilitiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002029 auto vkEnc = HostConnection::get()->vkEncoder();
2030 VkResult vkGetDisplayPlaneCapabilitiesKHR_VkResult_return = (VkResult)0;
2031 vkGetDisplayPlaneCapabilitiesKHR_VkResult_return = vkEnc->vkGetDisplayPlaneCapabilitiesKHR(physicalDevice, mode, planeIndex, pCapabilities);
2032 return vkGetDisplayPlaneCapabilitiesKHR_VkResult_return;
2033}
2034static VkResult entry_vkCreateDisplayPlaneSurfaceKHR(
2035 VkInstance instance,
2036 const VkDisplaySurfaceCreateInfoKHR* pCreateInfo,
2037 const VkAllocationCallbacks* pAllocator,
2038 VkSurfaceKHR* pSurface)
2039{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002040 AEMU_SCOPED_TRACE("vkCreateDisplayPlaneSurfaceKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002041 auto vkEnc = HostConnection::get()->vkEncoder();
2042 VkResult vkCreateDisplayPlaneSurfaceKHR_VkResult_return = (VkResult)0;
2043 vkCreateDisplayPlaneSurfaceKHR_VkResult_return = vkEnc->vkCreateDisplayPlaneSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
2044 return vkCreateDisplayPlaneSurfaceKHR_VkResult_return;
2045}
2046#endif
2047#ifdef VK_KHR_display_swapchain
2048static VkResult entry_vkCreateSharedSwapchainsKHR(
2049 VkDevice device,
2050 uint32_t swapchainCount,
2051 const VkSwapchainCreateInfoKHR* pCreateInfos,
2052 const VkAllocationCallbacks* pAllocator,
2053 VkSwapchainKHR* pSwapchains)
2054{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002055 AEMU_SCOPED_TRACE("vkCreateSharedSwapchainsKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002056 auto vkEnc = HostConnection::get()->vkEncoder();
2057 VkResult vkCreateSharedSwapchainsKHR_VkResult_return = (VkResult)0;
2058 vkCreateSharedSwapchainsKHR_VkResult_return = vkEnc->vkCreateSharedSwapchainsKHR(device, swapchainCount, pCreateInfos, pAllocator, pSwapchains);
2059 return vkCreateSharedSwapchainsKHR_VkResult_return;
2060}
2061#endif
2062#ifdef VK_KHR_xlib_surface
2063static VkResult entry_vkCreateXlibSurfaceKHR(
2064 VkInstance instance,
2065 const VkXlibSurfaceCreateInfoKHR* pCreateInfo,
2066 const VkAllocationCallbacks* pAllocator,
2067 VkSurfaceKHR* pSurface)
2068{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002069 AEMU_SCOPED_TRACE("vkCreateXlibSurfaceKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002070 auto vkEnc = HostConnection::get()->vkEncoder();
2071 VkResult vkCreateXlibSurfaceKHR_VkResult_return = (VkResult)0;
2072 vkCreateXlibSurfaceKHR_VkResult_return = vkEnc->vkCreateXlibSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
2073 return vkCreateXlibSurfaceKHR_VkResult_return;
2074}
2075static VkBool32 entry_vkGetPhysicalDeviceXlibPresentationSupportKHR(
2076 VkPhysicalDevice physicalDevice,
2077 uint32_t queueFamilyIndex,
2078 Display* dpy,
2079 VisualID visualID)
2080{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002081 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceXlibPresentationSupportKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002082 auto vkEnc = HostConnection::get()->vkEncoder();
2083 VkBool32 vkGetPhysicalDeviceXlibPresentationSupportKHR_VkBool32_return = (VkBool32)0;
2084 vkGetPhysicalDeviceXlibPresentationSupportKHR_VkBool32_return = vkEnc->vkGetPhysicalDeviceXlibPresentationSupportKHR(physicalDevice, queueFamilyIndex, dpy, visualID);
2085 return vkGetPhysicalDeviceXlibPresentationSupportKHR_VkBool32_return;
2086}
2087#endif
2088#ifdef VK_KHR_xcb_surface
2089static VkResult entry_vkCreateXcbSurfaceKHR(
2090 VkInstance instance,
2091 const VkXcbSurfaceCreateInfoKHR* pCreateInfo,
2092 const VkAllocationCallbacks* pAllocator,
2093 VkSurfaceKHR* pSurface)
2094{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002095 AEMU_SCOPED_TRACE("vkCreateXcbSurfaceKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002096 auto vkEnc = HostConnection::get()->vkEncoder();
2097 VkResult vkCreateXcbSurfaceKHR_VkResult_return = (VkResult)0;
2098 vkCreateXcbSurfaceKHR_VkResult_return = vkEnc->vkCreateXcbSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
2099 return vkCreateXcbSurfaceKHR_VkResult_return;
2100}
2101static VkBool32 entry_vkGetPhysicalDeviceXcbPresentationSupportKHR(
2102 VkPhysicalDevice physicalDevice,
2103 uint32_t queueFamilyIndex,
2104 xcb_connection_t* connection,
2105 xcb_visualid_t visual_id)
2106{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002107 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceXcbPresentationSupportKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002108 auto vkEnc = HostConnection::get()->vkEncoder();
2109 VkBool32 vkGetPhysicalDeviceXcbPresentationSupportKHR_VkBool32_return = (VkBool32)0;
2110 vkGetPhysicalDeviceXcbPresentationSupportKHR_VkBool32_return = vkEnc->vkGetPhysicalDeviceXcbPresentationSupportKHR(physicalDevice, queueFamilyIndex, connection, visual_id);
2111 return vkGetPhysicalDeviceXcbPresentationSupportKHR_VkBool32_return;
2112}
2113#endif
2114#ifdef VK_KHR_wayland_surface
2115static VkResult entry_vkCreateWaylandSurfaceKHR(
2116 VkInstance instance,
2117 const VkWaylandSurfaceCreateInfoKHR* pCreateInfo,
2118 const VkAllocationCallbacks* pAllocator,
2119 VkSurfaceKHR* pSurface)
2120{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002121 AEMU_SCOPED_TRACE("vkCreateWaylandSurfaceKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002122 auto vkEnc = HostConnection::get()->vkEncoder();
2123 VkResult vkCreateWaylandSurfaceKHR_VkResult_return = (VkResult)0;
2124 vkCreateWaylandSurfaceKHR_VkResult_return = vkEnc->vkCreateWaylandSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
2125 return vkCreateWaylandSurfaceKHR_VkResult_return;
2126}
2127static VkBool32 entry_vkGetPhysicalDeviceWaylandPresentationSupportKHR(
2128 VkPhysicalDevice physicalDevice,
2129 uint32_t queueFamilyIndex,
2130 wl_display* display)
2131{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002132 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceWaylandPresentationSupportKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002133 auto vkEnc = HostConnection::get()->vkEncoder();
2134 VkBool32 vkGetPhysicalDeviceWaylandPresentationSupportKHR_VkBool32_return = (VkBool32)0;
2135 vkGetPhysicalDeviceWaylandPresentationSupportKHR_VkBool32_return = vkEnc->vkGetPhysicalDeviceWaylandPresentationSupportKHR(physicalDevice, queueFamilyIndex, display);
2136 return vkGetPhysicalDeviceWaylandPresentationSupportKHR_VkBool32_return;
2137}
2138#endif
2139#ifdef VK_KHR_mir_surface
2140static VkResult entry_vkCreateMirSurfaceKHR(
2141 VkInstance instance,
2142 const VkMirSurfaceCreateInfoKHR* pCreateInfo,
2143 const VkAllocationCallbacks* pAllocator,
2144 VkSurfaceKHR* pSurface)
2145{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002146 AEMU_SCOPED_TRACE("vkCreateMirSurfaceKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002147 auto vkEnc = HostConnection::get()->vkEncoder();
2148 VkResult vkCreateMirSurfaceKHR_VkResult_return = (VkResult)0;
2149 vkCreateMirSurfaceKHR_VkResult_return = vkEnc->vkCreateMirSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
2150 return vkCreateMirSurfaceKHR_VkResult_return;
2151}
2152static VkBool32 entry_vkGetPhysicalDeviceMirPresentationSupportKHR(
2153 VkPhysicalDevice physicalDevice,
2154 uint32_t queueFamilyIndex,
2155 MirConnection* connection)
2156{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002157 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMirPresentationSupportKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002158 auto vkEnc = HostConnection::get()->vkEncoder();
2159 VkBool32 vkGetPhysicalDeviceMirPresentationSupportKHR_VkBool32_return = (VkBool32)0;
2160 vkGetPhysicalDeviceMirPresentationSupportKHR_VkBool32_return = vkEnc->vkGetPhysicalDeviceMirPresentationSupportKHR(physicalDevice, queueFamilyIndex, connection);
2161 return vkGetPhysicalDeviceMirPresentationSupportKHR_VkBool32_return;
2162}
2163#endif
2164#ifdef VK_KHR_android_surface
2165static VkResult entry_vkCreateAndroidSurfaceKHR(
2166 VkInstance instance,
2167 const VkAndroidSurfaceCreateInfoKHR* pCreateInfo,
2168 const VkAllocationCallbacks* pAllocator,
2169 VkSurfaceKHR* pSurface)
2170{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002171 AEMU_SCOPED_TRACE("vkCreateAndroidSurfaceKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002172 auto vkEnc = HostConnection::get()->vkEncoder();
2173 VkResult vkCreateAndroidSurfaceKHR_VkResult_return = (VkResult)0;
2174 vkCreateAndroidSurfaceKHR_VkResult_return = vkEnc->vkCreateAndroidSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
2175 return vkCreateAndroidSurfaceKHR_VkResult_return;
2176}
2177#endif
2178#ifdef VK_KHR_win32_surface
2179static VkResult entry_vkCreateWin32SurfaceKHR(
2180 VkInstance instance,
2181 const VkWin32SurfaceCreateInfoKHR* pCreateInfo,
2182 const VkAllocationCallbacks* pAllocator,
2183 VkSurfaceKHR* pSurface)
2184{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002185 AEMU_SCOPED_TRACE("vkCreateWin32SurfaceKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002186 auto vkEnc = HostConnection::get()->vkEncoder();
2187 VkResult vkCreateWin32SurfaceKHR_VkResult_return = (VkResult)0;
2188 vkCreateWin32SurfaceKHR_VkResult_return = vkEnc->vkCreateWin32SurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
2189 return vkCreateWin32SurfaceKHR_VkResult_return;
2190}
2191static VkBool32 entry_vkGetPhysicalDeviceWin32PresentationSupportKHR(
2192 VkPhysicalDevice physicalDevice,
2193 uint32_t queueFamilyIndex)
2194{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002195 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceWin32PresentationSupportKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002196 auto vkEnc = HostConnection::get()->vkEncoder();
2197 VkBool32 vkGetPhysicalDeviceWin32PresentationSupportKHR_VkBool32_return = (VkBool32)0;
2198 vkGetPhysicalDeviceWin32PresentationSupportKHR_VkBool32_return = vkEnc->vkGetPhysicalDeviceWin32PresentationSupportKHR(physicalDevice, queueFamilyIndex);
2199 return vkGetPhysicalDeviceWin32PresentationSupportKHR_VkBool32_return;
2200}
2201#endif
2202#ifdef VK_KHR_sampler_mirror_clamp_to_edge
2203#endif
2204#ifdef VK_KHR_multiview
2205#endif
2206#ifdef VK_KHR_get_physical_device_properties2
2207static void entry_vkGetPhysicalDeviceFeatures2KHR(
2208 VkPhysicalDevice physicalDevice,
2209 VkPhysicalDeviceFeatures2* pFeatures)
2210{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002211 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFeatures2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002212 auto vkEnc = HostConnection::get()->vkEncoder();
2213 vkEnc->vkGetPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures);
2214}
2215static void entry_vkGetPhysicalDeviceProperties2KHR(
2216 VkPhysicalDevice physicalDevice,
2217 VkPhysicalDeviceProperties2* pProperties)
2218{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002219 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002220 auto vkEnc = HostConnection::get()->vkEncoder();
2221 vkEnc->vkGetPhysicalDeviceProperties2KHR(physicalDevice, pProperties);
2222}
2223static void entry_vkGetPhysicalDeviceFormatProperties2KHR(
2224 VkPhysicalDevice physicalDevice,
2225 VkFormat format,
2226 VkFormatProperties2* pFormatProperties)
2227{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002228 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFormatProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002229 auto vkEnc = HostConnection::get()->vkEncoder();
2230 vkEnc->vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice, format, pFormatProperties);
2231}
2232static VkResult entry_vkGetPhysicalDeviceImageFormatProperties2KHR(
2233 VkPhysicalDevice physicalDevice,
2234 const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
2235 VkImageFormatProperties2* pImageFormatProperties)
2236{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002237 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceImageFormatProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002238 auto vkEnc = HostConnection::get()->vkEncoder();
2239 VkResult vkGetPhysicalDeviceImageFormatProperties2KHR_VkResult_return = (VkResult)0;
Lingfeng Yange517d1e2019-03-25 18:02:49 -07002240 auto resources = ResourceTracker::get();
2241 vkGetPhysicalDeviceImageFormatProperties2KHR_VkResult_return = resources->on_vkGetPhysicalDeviceImageFormatProperties2KHR(vkEnc, VK_SUCCESS, physicalDevice, pImageFormatInfo, pImageFormatProperties);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002242 return vkGetPhysicalDeviceImageFormatProperties2KHR_VkResult_return;
2243}
2244static void entry_vkGetPhysicalDeviceQueueFamilyProperties2KHR(
2245 VkPhysicalDevice physicalDevice,
2246 uint32_t* pQueueFamilyPropertyCount,
2247 VkQueueFamilyProperties2* pQueueFamilyProperties)
2248{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002249 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceQueueFamilyProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002250 auto vkEnc = HostConnection::get()->vkEncoder();
2251 vkEnc->vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties);
2252}
2253static void entry_vkGetPhysicalDeviceMemoryProperties2KHR(
2254 VkPhysicalDevice physicalDevice,
2255 VkPhysicalDeviceMemoryProperties2* pMemoryProperties)
2256{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002257 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMemoryProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002258 auto vkEnc = HostConnection::get()->vkEncoder();
2259 vkEnc->vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice, pMemoryProperties);
2260}
2261static void entry_vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
2262 VkPhysicalDevice physicalDevice,
2263 const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
2264 uint32_t* pPropertyCount,
2265 VkSparseImageFormatProperties2* pProperties)
2266{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002267 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSparseImageFormatProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002268 auto vkEnc = HostConnection::get()->vkEncoder();
2269 vkEnc->vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties);
2270}
2271#endif
2272#ifdef VK_KHR_device_group
2273static void entry_vkGetDeviceGroupPeerMemoryFeaturesKHR(
2274 VkDevice device,
2275 uint32_t heapIndex,
2276 uint32_t localDeviceIndex,
2277 uint32_t remoteDeviceIndex,
2278 VkPeerMemoryFeatureFlags* pPeerMemoryFeatures)
2279{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002280 AEMU_SCOPED_TRACE("vkGetDeviceGroupPeerMemoryFeaturesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002281 auto vkEnc = HostConnection::get()->vkEncoder();
2282 vkEnc->vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures);
2283}
2284static void entry_vkCmdSetDeviceMaskKHR(
2285 VkCommandBuffer commandBuffer,
2286 uint32_t deviceMask)
2287{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002288 AEMU_SCOPED_TRACE("vkCmdSetDeviceMaskKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002289 auto vkEnc = HostConnection::get()->vkEncoder();
2290 vkEnc->vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask);
2291}
2292static void entry_vkCmdDispatchBaseKHR(
2293 VkCommandBuffer commandBuffer,
2294 uint32_t baseGroupX,
2295 uint32_t baseGroupY,
2296 uint32_t baseGroupZ,
2297 uint32_t groupCountX,
2298 uint32_t groupCountY,
2299 uint32_t groupCountZ)
2300{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002301 AEMU_SCOPED_TRACE("vkCmdDispatchBaseKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002302 auto vkEnc = HostConnection::get()->vkEncoder();
2303 vkEnc->vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ);
2304}
2305#endif
2306#ifdef VK_KHR_shader_draw_parameters
2307#endif
2308#ifdef VK_KHR_maintenance1
2309static void entry_vkTrimCommandPoolKHR(
2310 VkDevice device,
2311 VkCommandPool commandPool,
2312 VkCommandPoolTrimFlags flags)
2313{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002314 AEMU_SCOPED_TRACE("vkTrimCommandPoolKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002315 auto vkEnc = HostConnection::get()->vkEncoder();
2316 vkEnc->vkTrimCommandPoolKHR(device, commandPool, flags);
2317}
2318#endif
2319#ifdef VK_KHR_device_group_creation
2320static VkResult entry_vkEnumeratePhysicalDeviceGroupsKHR(
2321 VkInstance instance,
2322 uint32_t* pPhysicalDeviceGroupCount,
2323 VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties)
2324{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002325 AEMU_SCOPED_TRACE("vkEnumeratePhysicalDeviceGroupsKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002326 auto vkEnc = HostConnection::get()->vkEncoder();
2327 VkResult vkEnumeratePhysicalDeviceGroupsKHR_VkResult_return = (VkResult)0;
2328 vkEnumeratePhysicalDeviceGroupsKHR_VkResult_return = vkEnc->vkEnumeratePhysicalDeviceGroupsKHR(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties);
2329 return vkEnumeratePhysicalDeviceGroupsKHR_VkResult_return;
2330}
2331#endif
2332#ifdef VK_KHR_external_memory_capabilities
2333static void entry_vkGetPhysicalDeviceExternalBufferPropertiesKHR(
2334 VkPhysicalDevice physicalDevice,
2335 const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
2336 VkExternalBufferProperties* pExternalBufferProperties)
2337{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002338 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalBufferPropertiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002339 auto vkEnc = HostConnection::get()->vkEncoder();
2340 vkEnc->vkGetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties);
2341}
2342#endif
2343#ifdef VK_KHR_external_memory
2344#endif
2345#ifdef VK_KHR_external_memory_win32
2346static VkResult entry_vkGetMemoryWin32HandleKHR(
2347 VkDevice device,
2348 const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo,
2349 HANDLE* pHandle)
2350{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002351 AEMU_SCOPED_TRACE("vkGetMemoryWin32HandleKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002352 auto vkEnc = HostConnection::get()->vkEncoder();
2353 VkResult vkGetMemoryWin32HandleKHR_VkResult_return = (VkResult)0;
2354 vkGetMemoryWin32HandleKHR_VkResult_return = vkEnc->vkGetMemoryWin32HandleKHR(device, pGetWin32HandleInfo, pHandle);
2355 return vkGetMemoryWin32HandleKHR_VkResult_return;
2356}
2357static VkResult entry_vkGetMemoryWin32HandlePropertiesKHR(
2358 VkDevice device,
2359 VkExternalMemoryHandleTypeFlagBits handleType,
2360 HANDLE handle,
2361 VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties)
2362{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002363 AEMU_SCOPED_TRACE("vkGetMemoryWin32HandlePropertiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002364 auto vkEnc = HostConnection::get()->vkEncoder();
2365 VkResult vkGetMemoryWin32HandlePropertiesKHR_VkResult_return = (VkResult)0;
2366 vkGetMemoryWin32HandlePropertiesKHR_VkResult_return = vkEnc->vkGetMemoryWin32HandlePropertiesKHR(device, handleType, handle, pMemoryWin32HandleProperties);
2367 return vkGetMemoryWin32HandlePropertiesKHR_VkResult_return;
2368}
2369#endif
2370#ifdef VK_KHR_external_memory_fd
2371static VkResult entry_vkGetMemoryFdKHR(
2372 VkDevice device,
2373 const VkMemoryGetFdInfoKHR* pGetFdInfo,
2374 int* pFd)
2375{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002376 AEMU_SCOPED_TRACE("vkGetMemoryFdKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002377 auto vkEnc = HostConnection::get()->vkEncoder();
2378 VkResult vkGetMemoryFdKHR_VkResult_return = (VkResult)0;
2379 vkGetMemoryFdKHR_VkResult_return = vkEnc->vkGetMemoryFdKHR(device, pGetFdInfo, pFd);
2380 return vkGetMemoryFdKHR_VkResult_return;
2381}
2382static VkResult entry_vkGetMemoryFdPropertiesKHR(
2383 VkDevice device,
2384 VkExternalMemoryHandleTypeFlagBits handleType,
2385 int fd,
2386 VkMemoryFdPropertiesKHR* pMemoryFdProperties)
2387{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002388 AEMU_SCOPED_TRACE("vkGetMemoryFdPropertiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002389 auto vkEnc = HostConnection::get()->vkEncoder();
2390 VkResult vkGetMemoryFdPropertiesKHR_VkResult_return = (VkResult)0;
2391 vkGetMemoryFdPropertiesKHR_VkResult_return = vkEnc->vkGetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties);
2392 return vkGetMemoryFdPropertiesKHR_VkResult_return;
2393}
2394#endif
2395#ifdef VK_KHR_win32_keyed_mutex
2396#endif
2397#ifdef VK_KHR_external_semaphore_capabilities
2398static void entry_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
2399 VkPhysicalDevice physicalDevice,
2400 const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
2401 VkExternalSemaphoreProperties* pExternalSemaphoreProperties)
2402{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002403 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalSemaphorePropertiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002404 auto vkEnc = HostConnection::get()->vkEncoder();
2405 vkEnc->vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties);
2406}
2407#endif
2408#ifdef VK_KHR_external_semaphore
2409#endif
2410#ifdef VK_KHR_external_semaphore_win32
2411static VkResult entry_vkImportSemaphoreWin32HandleKHR(
2412 VkDevice device,
2413 const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo)
2414{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002415 AEMU_SCOPED_TRACE("vkImportSemaphoreWin32HandleKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002416 auto vkEnc = HostConnection::get()->vkEncoder();
2417 VkResult vkImportSemaphoreWin32HandleKHR_VkResult_return = (VkResult)0;
2418 vkImportSemaphoreWin32HandleKHR_VkResult_return = vkEnc->vkImportSemaphoreWin32HandleKHR(device, pImportSemaphoreWin32HandleInfo);
2419 return vkImportSemaphoreWin32HandleKHR_VkResult_return;
2420}
2421static VkResult entry_vkGetSemaphoreWin32HandleKHR(
2422 VkDevice device,
2423 const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo,
2424 HANDLE* pHandle)
2425{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002426 AEMU_SCOPED_TRACE("vkGetSemaphoreWin32HandleKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002427 auto vkEnc = HostConnection::get()->vkEncoder();
2428 VkResult vkGetSemaphoreWin32HandleKHR_VkResult_return = (VkResult)0;
2429 vkGetSemaphoreWin32HandleKHR_VkResult_return = vkEnc->vkGetSemaphoreWin32HandleKHR(device, pGetWin32HandleInfo, pHandle);
2430 return vkGetSemaphoreWin32HandleKHR_VkResult_return;
2431}
2432#endif
2433#ifdef VK_KHR_external_semaphore_fd
2434static VkResult entry_vkImportSemaphoreFdKHR(
2435 VkDevice device,
2436 const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo)
2437{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002438 AEMU_SCOPED_TRACE("vkImportSemaphoreFdKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002439 auto vkEnc = HostConnection::get()->vkEncoder();
2440 VkResult vkImportSemaphoreFdKHR_VkResult_return = (VkResult)0;
Yahan Zhoua499e442019-02-26 16:35:01 -08002441 auto resources = ResourceTracker::get();
2442 vkImportSemaphoreFdKHR_VkResult_return = resources->on_vkImportSemaphoreFdKHR(vkEnc, VK_SUCCESS, device, pImportSemaphoreFdInfo);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002443 return vkImportSemaphoreFdKHR_VkResult_return;
2444}
2445static VkResult entry_vkGetSemaphoreFdKHR(
2446 VkDevice device,
2447 const VkSemaphoreGetFdInfoKHR* pGetFdInfo,
2448 int* pFd)
2449{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002450 AEMU_SCOPED_TRACE("vkGetSemaphoreFdKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002451 auto vkEnc = HostConnection::get()->vkEncoder();
2452 VkResult vkGetSemaphoreFdKHR_VkResult_return = (VkResult)0;
Yahan Zhoua499e442019-02-26 16:35:01 -08002453 auto resources = ResourceTracker::get();
2454 vkGetSemaphoreFdKHR_VkResult_return = resources->on_vkGetSemaphoreFdKHR(vkEnc, VK_SUCCESS, device, pGetFdInfo, pFd);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002455 return vkGetSemaphoreFdKHR_VkResult_return;
2456}
2457#endif
2458#ifdef VK_KHR_push_descriptor
2459static void entry_vkCmdPushDescriptorSetKHR(
2460 VkCommandBuffer commandBuffer,
2461 VkPipelineBindPoint pipelineBindPoint,
2462 VkPipelineLayout layout,
2463 uint32_t set,
2464 uint32_t descriptorWriteCount,
2465 const VkWriteDescriptorSet* pDescriptorWrites)
2466{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002467 AEMU_SCOPED_TRACE("vkCmdPushDescriptorSetKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002468 auto vkEnc = HostConnection::get()->vkEncoder();
2469 vkEnc->vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites);
2470}
2471static void entry_vkCmdPushDescriptorSetWithTemplateKHR(
2472 VkCommandBuffer commandBuffer,
2473 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
2474 VkPipelineLayout layout,
2475 uint32_t set,
2476 const void* pData)
2477{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002478 AEMU_SCOPED_TRACE("vkCmdPushDescriptorSetWithTemplateKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002479 auto vkEnc = HostConnection::get()->vkEncoder();
2480 vkEnc->vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData);
2481}
2482#endif
2483#ifdef VK_KHR_16bit_storage
2484#endif
2485#ifdef VK_KHR_incremental_present
2486#endif
2487#ifdef VK_KHR_descriptor_update_template
2488static VkResult entry_vkCreateDescriptorUpdateTemplateKHR(
2489 VkDevice device,
2490 const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
2491 const VkAllocationCallbacks* pAllocator,
2492 VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate)
2493{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002494 AEMU_SCOPED_TRACE("vkCreateDescriptorUpdateTemplateKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002495 auto vkEnc = HostConnection::get()->vkEncoder();
2496 VkResult vkCreateDescriptorUpdateTemplateKHR_VkResult_return = (VkResult)0;
2497 vkCreateDescriptorUpdateTemplateKHR_VkResult_return = vkEnc->vkCreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate);
2498 return vkCreateDescriptorUpdateTemplateKHR_VkResult_return;
2499}
2500static void entry_vkDestroyDescriptorUpdateTemplateKHR(
2501 VkDevice device,
2502 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
2503 const VkAllocationCallbacks* pAllocator)
2504{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002505 AEMU_SCOPED_TRACE("vkDestroyDescriptorUpdateTemplateKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002506 auto vkEnc = HostConnection::get()->vkEncoder();
2507 vkEnc->vkDestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator);
2508}
2509static void entry_vkUpdateDescriptorSetWithTemplateKHR(
2510 VkDevice device,
2511 VkDescriptorSet descriptorSet,
2512 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
2513 const void* pData)
2514{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002515 AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplateKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002516 auto vkEnc = HostConnection::get()->vkEncoder();
2517 vkEnc->vkUpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData);
2518}
2519#endif
2520#ifdef VK_KHR_create_renderpass2
2521static VkResult entry_vkCreateRenderPass2KHR(
2522 VkDevice device,
2523 const VkRenderPassCreateInfo2KHR* pCreateInfo,
2524 const VkAllocationCallbacks* pAllocator,
2525 VkRenderPass* pRenderPass)
2526{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002527 AEMU_SCOPED_TRACE("vkCreateRenderPass2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002528 auto vkEnc = HostConnection::get()->vkEncoder();
2529 VkResult vkCreateRenderPass2KHR_VkResult_return = (VkResult)0;
2530 vkCreateRenderPass2KHR_VkResult_return = vkEnc->vkCreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass);
2531 return vkCreateRenderPass2KHR_VkResult_return;
2532}
2533static void entry_vkCmdBeginRenderPass2KHR(
2534 VkCommandBuffer commandBuffer,
2535 const VkRenderPassBeginInfo* pRenderPassBegin,
2536 const VkSubpassBeginInfoKHR* pSubpassBeginInfo)
2537{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002538 AEMU_SCOPED_TRACE("vkCmdBeginRenderPass2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002539 auto vkEnc = HostConnection::get()->vkEncoder();
2540 vkEnc->vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo);
2541}
2542static void entry_vkCmdNextSubpass2KHR(
2543 VkCommandBuffer commandBuffer,
2544 const VkSubpassBeginInfoKHR* pSubpassBeginInfo,
2545 const VkSubpassEndInfoKHR* pSubpassEndInfo)
2546{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002547 AEMU_SCOPED_TRACE("vkCmdNextSubpass2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002548 auto vkEnc = HostConnection::get()->vkEncoder();
2549 vkEnc->vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo);
2550}
2551static void entry_vkCmdEndRenderPass2KHR(
2552 VkCommandBuffer commandBuffer,
2553 const VkSubpassEndInfoKHR* pSubpassEndInfo)
2554{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002555 AEMU_SCOPED_TRACE("vkCmdEndRenderPass2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002556 auto vkEnc = HostConnection::get()->vkEncoder();
2557 vkEnc->vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo);
2558}
2559#endif
2560#ifdef VK_KHR_shared_presentable_image
2561static VkResult entry_vkGetSwapchainStatusKHR(
2562 VkDevice device,
2563 VkSwapchainKHR swapchain)
2564{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002565 AEMU_SCOPED_TRACE("vkGetSwapchainStatusKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002566 auto vkEnc = HostConnection::get()->vkEncoder();
2567 VkResult vkGetSwapchainStatusKHR_VkResult_return = (VkResult)0;
2568 vkGetSwapchainStatusKHR_VkResult_return = vkEnc->vkGetSwapchainStatusKHR(device, swapchain);
2569 return vkGetSwapchainStatusKHR_VkResult_return;
2570}
2571#endif
2572#ifdef VK_KHR_external_fence_capabilities
2573static void entry_vkGetPhysicalDeviceExternalFencePropertiesKHR(
2574 VkPhysicalDevice physicalDevice,
2575 const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
2576 VkExternalFenceProperties* pExternalFenceProperties)
2577{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002578 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalFencePropertiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002579 auto vkEnc = HostConnection::get()->vkEncoder();
2580 vkEnc->vkGetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice, pExternalFenceInfo, pExternalFenceProperties);
2581}
2582#endif
2583#ifdef VK_KHR_external_fence
2584#endif
2585#ifdef VK_KHR_external_fence_win32
2586static VkResult entry_vkImportFenceWin32HandleKHR(
2587 VkDevice device,
2588 const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo)
2589{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002590 AEMU_SCOPED_TRACE("vkImportFenceWin32HandleKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002591 auto vkEnc = HostConnection::get()->vkEncoder();
2592 VkResult vkImportFenceWin32HandleKHR_VkResult_return = (VkResult)0;
2593 vkImportFenceWin32HandleKHR_VkResult_return = vkEnc->vkImportFenceWin32HandleKHR(device, pImportFenceWin32HandleInfo);
2594 return vkImportFenceWin32HandleKHR_VkResult_return;
2595}
2596static VkResult entry_vkGetFenceWin32HandleKHR(
2597 VkDevice device,
2598 const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo,
2599 HANDLE* pHandle)
2600{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002601 AEMU_SCOPED_TRACE("vkGetFenceWin32HandleKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002602 auto vkEnc = HostConnection::get()->vkEncoder();
2603 VkResult vkGetFenceWin32HandleKHR_VkResult_return = (VkResult)0;
2604 vkGetFenceWin32HandleKHR_VkResult_return = vkEnc->vkGetFenceWin32HandleKHR(device, pGetWin32HandleInfo, pHandle);
2605 return vkGetFenceWin32HandleKHR_VkResult_return;
2606}
2607#endif
2608#ifdef VK_KHR_external_fence_fd
2609static VkResult entry_vkImportFenceFdKHR(
2610 VkDevice device,
2611 const VkImportFenceFdInfoKHR* pImportFenceFdInfo)
2612{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002613 AEMU_SCOPED_TRACE("vkImportFenceFdKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002614 auto vkEnc = HostConnection::get()->vkEncoder();
2615 VkResult vkImportFenceFdKHR_VkResult_return = (VkResult)0;
2616 vkImportFenceFdKHR_VkResult_return = vkEnc->vkImportFenceFdKHR(device, pImportFenceFdInfo);
2617 return vkImportFenceFdKHR_VkResult_return;
2618}
2619static VkResult entry_vkGetFenceFdKHR(
2620 VkDevice device,
2621 const VkFenceGetFdInfoKHR* pGetFdInfo,
2622 int* pFd)
2623{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002624 AEMU_SCOPED_TRACE("vkGetFenceFdKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002625 auto vkEnc = HostConnection::get()->vkEncoder();
2626 VkResult vkGetFenceFdKHR_VkResult_return = (VkResult)0;
2627 vkGetFenceFdKHR_VkResult_return = vkEnc->vkGetFenceFdKHR(device, pGetFdInfo, pFd);
2628 return vkGetFenceFdKHR_VkResult_return;
2629}
2630#endif
2631#ifdef VK_KHR_maintenance2
2632#endif
2633#ifdef VK_KHR_get_surface_capabilities2
2634static VkResult entry_vkGetPhysicalDeviceSurfaceCapabilities2KHR(
2635 VkPhysicalDevice physicalDevice,
2636 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
2637 VkSurfaceCapabilities2KHR* pSurfaceCapabilities)
2638{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002639 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceCapabilities2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002640 auto vkEnc = HostConnection::get()->vkEncoder();
2641 VkResult vkGetPhysicalDeviceSurfaceCapabilities2KHR_VkResult_return = (VkResult)0;
2642 vkGetPhysicalDeviceSurfaceCapabilities2KHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, pSurfaceInfo, pSurfaceCapabilities);
2643 return vkGetPhysicalDeviceSurfaceCapabilities2KHR_VkResult_return;
2644}
2645static VkResult entry_vkGetPhysicalDeviceSurfaceFormats2KHR(
2646 VkPhysicalDevice physicalDevice,
2647 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
2648 uint32_t* pSurfaceFormatCount,
2649 VkSurfaceFormat2KHR* pSurfaceFormats)
2650{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002651 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceFormats2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002652 auto vkEnc = HostConnection::get()->vkEncoder();
2653 VkResult vkGetPhysicalDeviceSurfaceFormats2KHR_VkResult_return = (VkResult)0;
2654 vkGetPhysicalDeviceSurfaceFormats2KHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceFormats2KHR(physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats);
2655 return vkGetPhysicalDeviceSurfaceFormats2KHR_VkResult_return;
2656}
2657#endif
2658#ifdef VK_KHR_variable_pointers
2659#endif
2660#ifdef VK_KHR_get_display_properties2
2661static VkResult entry_vkGetPhysicalDeviceDisplayProperties2KHR(
2662 VkPhysicalDevice physicalDevice,
2663 uint32_t* pPropertyCount,
2664 VkDisplayProperties2KHR* pProperties)
2665{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002666 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002667 auto vkEnc = HostConnection::get()->vkEncoder();
2668 VkResult vkGetPhysicalDeviceDisplayProperties2KHR_VkResult_return = (VkResult)0;
2669 vkGetPhysicalDeviceDisplayProperties2KHR_VkResult_return = vkEnc->vkGetPhysicalDeviceDisplayProperties2KHR(physicalDevice, pPropertyCount, pProperties);
2670 return vkGetPhysicalDeviceDisplayProperties2KHR_VkResult_return;
2671}
2672static VkResult entry_vkGetPhysicalDeviceDisplayPlaneProperties2KHR(
2673 VkPhysicalDevice physicalDevice,
2674 uint32_t* pPropertyCount,
2675 VkDisplayPlaneProperties2KHR* pProperties)
2676{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002677 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayPlaneProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002678 auto vkEnc = HostConnection::get()->vkEncoder();
2679 VkResult vkGetPhysicalDeviceDisplayPlaneProperties2KHR_VkResult_return = (VkResult)0;
2680 vkGetPhysicalDeviceDisplayPlaneProperties2KHR_VkResult_return = vkEnc->vkGetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice, pPropertyCount, pProperties);
2681 return vkGetPhysicalDeviceDisplayPlaneProperties2KHR_VkResult_return;
2682}
2683static VkResult entry_vkGetDisplayModeProperties2KHR(
2684 VkPhysicalDevice physicalDevice,
2685 VkDisplayKHR display,
2686 uint32_t* pPropertyCount,
2687 VkDisplayModeProperties2KHR* pProperties)
2688{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002689 AEMU_SCOPED_TRACE("vkGetDisplayModeProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002690 auto vkEnc = HostConnection::get()->vkEncoder();
2691 VkResult vkGetDisplayModeProperties2KHR_VkResult_return = (VkResult)0;
2692 vkGetDisplayModeProperties2KHR_VkResult_return = vkEnc->vkGetDisplayModeProperties2KHR(physicalDevice, display, pPropertyCount, pProperties);
2693 return vkGetDisplayModeProperties2KHR_VkResult_return;
2694}
2695static VkResult entry_vkGetDisplayPlaneCapabilities2KHR(
2696 VkPhysicalDevice physicalDevice,
2697 const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo,
2698 VkDisplayPlaneCapabilities2KHR* pCapabilities)
2699{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002700 AEMU_SCOPED_TRACE("vkGetDisplayPlaneCapabilities2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002701 auto vkEnc = HostConnection::get()->vkEncoder();
2702 VkResult vkGetDisplayPlaneCapabilities2KHR_VkResult_return = (VkResult)0;
2703 vkGetDisplayPlaneCapabilities2KHR_VkResult_return = vkEnc->vkGetDisplayPlaneCapabilities2KHR(physicalDevice, pDisplayPlaneInfo, pCapabilities);
2704 return vkGetDisplayPlaneCapabilities2KHR_VkResult_return;
2705}
2706#endif
2707#ifdef VK_KHR_dedicated_allocation
2708#endif
2709#ifdef VK_KHR_storage_buffer_storage_class
2710#endif
2711#ifdef VK_KHR_relaxed_block_layout
2712#endif
2713#ifdef VK_KHR_get_memory_requirements2
2714static void entry_vkGetImageMemoryRequirements2KHR(
2715 VkDevice device,
2716 const VkImageMemoryRequirementsInfo2* pInfo,
2717 VkMemoryRequirements2* pMemoryRequirements)
2718{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002719 AEMU_SCOPED_TRACE("vkGetImageMemoryRequirements2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002720 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang4af5f322019-02-14 08:10:28 -08002721 auto resources = ResourceTracker::get();
2722 resources->on_vkGetImageMemoryRequirements2KHR(vkEnc, device, pInfo, pMemoryRequirements);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002723}
2724static void entry_vkGetBufferMemoryRequirements2KHR(
2725 VkDevice device,
2726 const VkBufferMemoryRequirementsInfo2* pInfo,
2727 VkMemoryRequirements2* pMemoryRequirements)
2728{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002729 AEMU_SCOPED_TRACE("vkGetBufferMemoryRequirements2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002730 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang4af5f322019-02-14 08:10:28 -08002731 auto resources = ResourceTracker::get();
2732 resources->on_vkGetBufferMemoryRequirements2KHR(vkEnc, device, pInfo, pMemoryRequirements);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002733}
2734static void entry_vkGetImageSparseMemoryRequirements2KHR(
2735 VkDevice device,
2736 const VkImageSparseMemoryRequirementsInfo2* pInfo,
2737 uint32_t* pSparseMemoryRequirementCount,
2738 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements)
2739{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002740 AEMU_SCOPED_TRACE("vkGetImageSparseMemoryRequirements2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002741 auto vkEnc = HostConnection::get()->vkEncoder();
2742 vkEnc->vkGetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements);
2743}
2744#endif
2745#ifdef VK_KHR_image_format_list
2746#endif
2747#ifdef VK_KHR_sampler_ycbcr_conversion
2748static VkResult entry_vkCreateSamplerYcbcrConversionKHR(
2749 VkDevice device,
2750 const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
2751 const VkAllocationCallbacks* pAllocator,
2752 VkSamplerYcbcrConversion* pYcbcrConversion)
2753{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002754 AEMU_SCOPED_TRACE("vkCreateSamplerYcbcrConversionKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002755 auto vkEnc = HostConnection::get()->vkEncoder();
2756 VkResult vkCreateSamplerYcbcrConversionKHR_VkResult_return = (VkResult)0;
Lingfeng Yang5c701122019-03-05 08:34:46 -08002757 auto resources = ResourceTracker::get();
2758 vkCreateSamplerYcbcrConversionKHR_VkResult_return = resources->on_vkCreateSamplerYcbcrConversionKHR(vkEnc, VK_SUCCESS, device, pCreateInfo, pAllocator, pYcbcrConversion);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002759 return vkCreateSamplerYcbcrConversionKHR_VkResult_return;
2760}
2761static void entry_vkDestroySamplerYcbcrConversionKHR(
2762 VkDevice device,
2763 VkSamplerYcbcrConversion ycbcrConversion,
2764 const VkAllocationCallbacks* pAllocator)
2765{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002766 AEMU_SCOPED_TRACE("vkDestroySamplerYcbcrConversionKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002767 auto vkEnc = HostConnection::get()->vkEncoder();
2768 vkEnc->vkDestroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator);
2769}
2770#endif
2771#ifdef VK_KHR_bind_memory2
2772static VkResult entry_vkBindBufferMemory2KHR(
2773 VkDevice device,
2774 uint32_t bindInfoCount,
2775 const VkBindBufferMemoryInfo* pBindInfos)
2776{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002777 AEMU_SCOPED_TRACE("vkBindBufferMemory2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002778 auto vkEnc = HostConnection::get()->vkEncoder();
2779 VkResult vkBindBufferMemory2KHR_VkResult_return = (VkResult)0;
Lingfeng Yang4af5f322019-02-14 08:10:28 -08002780 auto resources = ResourceTracker::get();
2781 vkBindBufferMemory2KHR_VkResult_return = resources->on_vkBindBufferMemory2KHR(vkEnc, VK_SUCCESS, device, bindInfoCount, pBindInfos);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002782 return vkBindBufferMemory2KHR_VkResult_return;
2783}
2784static VkResult entry_vkBindImageMemory2KHR(
2785 VkDevice device,
2786 uint32_t bindInfoCount,
2787 const VkBindImageMemoryInfo* pBindInfos)
2788{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002789 AEMU_SCOPED_TRACE("vkBindImageMemory2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002790 auto vkEnc = HostConnection::get()->vkEncoder();
2791 VkResult vkBindImageMemory2KHR_VkResult_return = (VkResult)0;
Lingfeng Yang4af5f322019-02-14 08:10:28 -08002792 auto resources = ResourceTracker::get();
2793 vkBindImageMemory2KHR_VkResult_return = resources->on_vkBindImageMemory2KHR(vkEnc, VK_SUCCESS, device, bindInfoCount, pBindInfos);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002794 return vkBindImageMemory2KHR_VkResult_return;
2795}
2796#endif
2797#ifdef VK_KHR_maintenance3
2798static void entry_vkGetDescriptorSetLayoutSupportKHR(
2799 VkDevice device,
2800 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
2801 VkDescriptorSetLayoutSupport* pSupport)
2802{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002803 AEMU_SCOPED_TRACE("vkGetDescriptorSetLayoutSupportKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002804 auto vkEnc = HostConnection::get()->vkEncoder();
2805 vkEnc->vkGetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport);
2806}
2807#endif
2808#ifdef VK_KHR_draw_indirect_count
2809static void entry_vkCmdDrawIndirectCountKHR(
2810 VkCommandBuffer commandBuffer,
2811 VkBuffer buffer,
2812 VkDeviceSize offset,
2813 VkBuffer countBuffer,
2814 VkDeviceSize countBufferOffset,
2815 uint32_t maxDrawCount,
2816 uint32_t stride)
2817{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002818 AEMU_SCOPED_TRACE("vkCmdDrawIndirectCountKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002819 auto vkEnc = HostConnection::get()->vkEncoder();
2820 vkEnc->vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
2821}
2822static void entry_vkCmdDrawIndexedIndirectCountKHR(
2823 VkCommandBuffer commandBuffer,
2824 VkBuffer buffer,
2825 VkDeviceSize offset,
2826 VkBuffer countBuffer,
2827 VkDeviceSize countBufferOffset,
2828 uint32_t maxDrawCount,
2829 uint32_t stride)
2830{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002831 AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirectCountKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002832 auto vkEnc = HostConnection::get()->vkEncoder();
2833 vkEnc->vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
2834}
2835#endif
2836#ifdef VK_KHR_8bit_storage
2837#endif
Lingfeng Yang808a6312018-11-13 21:06:15 -08002838#ifdef VK_ANDROID_native_buffer
2839static VkResult entry_vkGetSwapchainGrallocUsageANDROID(
2840 VkDevice device,
2841 VkFormat format,
2842 VkImageUsageFlags imageUsage,
2843 int* grallocUsage)
2844{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002845 AEMU_SCOPED_TRACE("vkGetSwapchainGrallocUsageANDROID");
Lingfeng Yang808a6312018-11-13 21:06:15 -08002846 auto vkEnc = HostConnection::get()->vkEncoder();
2847 VkResult vkGetSwapchainGrallocUsageANDROID_VkResult_return = (VkResult)0;
2848 vkGetSwapchainGrallocUsageANDROID_VkResult_return = vkEnc->vkGetSwapchainGrallocUsageANDROID(device, format, imageUsage, grallocUsage);
2849 return vkGetSwapchainGrallocUsageANDROID_VkResult_return;
2850}
2851static VkResult entry_vkAcquireImageANDROID(
2852 VkDevice device,
2853 VkImage image,
2854 int nativeFenceFd,
2855 VkSemaphore semaphore,
2856 VkFence fence)
2857{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002858 AEMU_SCOPED_TRACE("vkAcquireImageANDROID");
Lingfeng Yang808a6312018-11-13 21:06:15 -08002859 auto vkEnc = HostConnection::get()->vkEncoder();
2860 VkResult vkAcquireImageANDROID_VkResult_return = (VkResult)0;
2861 vkAcquireImageANDROID_VkResult_return = vkEnc->vkAcquireImageANDROID(device, image, nativeFenceFd, semaphore, fence);
2862 return vkAcquireImageANDROID_VkResult_return;
2863}
2864static VkResult entry_vkQueueSignalReleaseImageANDROID(
2865 VkQueue queue,
2866 uint32_t waitSemaphoreCount,
2867 const VkSemaphore* pWaitSemaphores,
2868 VkImage image,
2869 int* pNativeFenceFd)
2870{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002871 AEMU_SCOPED_TRACE("vkQueueSignalReleaseImageANDROID");
Lingfeng Yang808a6312018-11-13 21:06:15 -08002872 auto vkEnc = HostConnection::get()->vkEncoder();
2873 VkResult vkQueueSignalReleaseImageANDROID_VkResult_return = (VkResult)0;
2874 vkQueueSignalReleaseImageANDROID_VkResult_return = vkEnc->vkQueueSignalReleaseImageANDROID(queue, waitSemaphoreCount, pWaitSemaphores, image, pNativeFenceFd);
2875 return vkQueueSignalReleaseImageANDROID_VkResult_return;
2876}
2877#endif
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002878#ifdef VK_EXT_debug_report
2879static VkResult entry_vkCreateDebugReportCallbackEXT(
2880 VkInstance instance,
2881 const VkDebugReportCallbackCreateInfoEXT* pCreateInfo,
2882 const VkAllocationCallbacks* pAllocator,
2883 VkDebugReportCallbackEXT* pCallback)
2884{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002885 AEMU_SCOPED_TRACE("vkCreateDebugReportCallbackEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002886 auto vkEnc = HostConnection::get()->vkEncoder();
2887 VkResult vkCreateDebugReportCallbackEXT_VkResult_return = (VkResult)0;
2888 vkCreateDebugReportCallbackEXT_VkResult_return = vkEnc->vkCreateDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback);
2889 return vkCreateDebugReportCallbackEXT_VkResult_return;
2890}
2891static void entry_vkDestroyDebugReportCallbackEXT(
2892 VkInstance instance,
2893 VkDebugReportCallbackEXT callback,
2894 const VkAllocationCallbacks* pAllocator)
2895{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002896 AEMU_SCOPED_TRACE("vkDestroyDebugReportCallbackEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002897 auto vkEnc = HostConnection::get()->vkEncoder();
2898 vkEnc->vkDestroyDebugReportCallbackEXT(instance, callback, pAllocator);
2899}
2900static void entry_vkDebugReportMessageEXT(
2901 VkInstance instance,
2902 VkDebugReportFlagsEXT flags,
2903 VkDebugReportObjectTypeEXT objectType,
2904 uint64_t object,
2905 size_t location,
2906 int32_t messageCode,
2907 const char* pLayerPrefix,
2908 const char* pMessage)
2909{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002910 AEMU_SCOPED_TRACE("vkDebugReportMessageEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002911 auto vkEnc = HostConnection::get()->vkEncoder();
2912 vkEnc->vkDebugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage);
2913}
2914#endif
2915#ifdef VK_NV_glsl_shader
2916#endif
2917#ifdef VK_EXT_depth_range_unrestricted
2918#endif
2919#ifdef VK_IMG_filter_cubic
2920#endif
2921#ifdef VK_AMD_rasterization_order
2922#endif
2923#ifdef VK_AMD_shader_trinary_minmax
2924#endif
2925#ifdef VK_AMD_shader_explicit_vertex_parameter
2926#endif
2927#ifdef VK_EXT_debug_marker
2928static VkResult entry_vkDebugMarkerSetObjectTagEXT(
2929 VkDevice device,
2930 const VkDebugMarkerObjectTagInfoEXT* pTagInfo)
2931{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002932 AEMU_SCOPED_TRACE("vkDebugMarkerSetObjectTagEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002933 auto vkEnc = HostConnection::get()->vkEncoder();
2934 VkResult vkDebugMarkerSetObjectTagEXT_VkResult_return = (VkResult)0;
2935 vkDebugMarkerSetObjectTagEXT_VkResult_return = vkEnc->vkDebugMarkerSetObjectTagEXT(device, pTagInfo);
2936 return vkDebugMarkerSetObjectTagEXT_VkResult_return;
2937}
2938static VkResult entry_vkDebugMarkerSetObjectNameEXT(
2939 VkDevice device,
2940 const VkDebugMarkerObjectNameInfoEXT* pNameInfo)
2941{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002942 AEMU_SCOPED_TRACE("vkDebugMarkerSetObjectNameEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002943 auto vkEnc = HostConnection::get()->vkEncoder();
2944 VkResult vkDebugMarkerSetObjectNameEXT_VkResult_return = (VkResult)0;
2945 vkDebugMarkerSetObjectNameEXT_VkResult_return = vkEnc->vkDebugMarkerSetObjectNameEXT(device, pNameInfo);
2946 return vkDebugMarkerSetObjectNameEXT_VkResult_return;
2947}
2948static void entry_vkCmdDebugMarkerBeginEXT(
2949 VkCommandBuffer commandBuffer,
2950 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo)
2951{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002952 AEMU_SCOPED_TRACE("vkCmdDebugMarkerBeginEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002953 auto vkEnc = HostConnection::get()->vkEncoder();
2954 vkEnc->vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo);
2955}
2956static void entry_vkCmdDebugMarkerEndEXT(
2957 VkCommandBuffer commandBuffer)
2958{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002959 AEMU_SCOPED_TRACE("vkCmdDebugMarkerEndEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002960 auto vkEnc = HostConnection::get()->vkEncoder();
2961 vkEnc->vkCmdDebugMarkerEndEXT(commandBuffer);
2962}
2963static void entry_vkCmdDebugMarkerInsertEXT(
2964 VkCommandBuffer commandBuffer,
2965 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo)
2966{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002967 AEMU_SCOPED_TRACE("vkCmdDebugMarkerInsertEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002968 auto vkEnc = HostConnection::get()->vkEncoder();
2969 vkEnc->vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo);
2970}
2971#endif
2972#ifdef VK_AMD_gcn_shader
2973#endif
2974#ifdef VK_NV_dedicated_allocation
2975#endif
2976#ifdef VK_AMD_draw_indirect_count
2977static void entry_vkCmdDrawIndirectCountAMD(
2978 VkCommandBuffer commandBuffer,
2979 VkBuffer buffer,
2980 VkDeviceSize offset,
2981 VkBuffer countBuffer,
2982 VkDeviceSize countBufferOffset,
2983 uint32_t maxDrawCount,
2984 uint32_t stride)
2985{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002986 AEMU_SCOPED_TRACE("vkCmdDrawIndirectCountAMD");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002987 auto vkEnc = HostConnection::get()->vkEncoder();
2988 vkEnc->vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
2989}
2990static void entry_vkCmdDrawIndexedIndirectCountAMD(
2991 VkCommandBuffer commandBuffer,
2992 VkBuffer buffer,
2993 VkDeviceSize offset,
2994 VkBuffer countBuffer,
2995 VkDeviceSize countBufferOffset,
2996 uint32_t maxDrawCount,
2997 uint32_t stride)
2998{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002999 AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirectCountAMD");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003000 auto vkEnc = HostConnection::get()->vkEncoder();
3001 vkEnc->vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
3002}
3003#endif
3004#ifdef VK_AMD_negative_viewport_height
3005#endif
3006#ifdef VK_AMD_gpu_shader_half_float
3007#endif
3008#ifdef VK_AMD_shader_ballot
3009#endif
3010#ifdef VK_AMD_texture_gather_bias_lod
3011#endif
3012#ifdef VK_AMD_shader_info
3013static VkResult entry_vkGetShaderInfoAMD(
3014 VkDevice device,
3015 VkPipeline pipeline,
3016 VkShaderStageFlagBits shaderStage,
3017 VkShaderInfoTypeAMD infoType,
3018 size_t* pInfoSize,
3019 void* pInfo)
3020{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003021 AEMU_SCOPED_TRACE("vkGetShaderInfoAMD");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003022 auto vkEnc = HostConnection::get()->vkEncoder();
3023 VkResult vkGetShaderInfoAMD_VkResult_return = (VkResult)0;
3024 vkGetShaderInfoAMD_VkResult_return = vkEnc->vkGetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo);
3025 return vkGetShaderInfoAMD_VkResult_return;
3026}
3027#endif
3028#ifdef VK_AMD_shader_image_load_store_lod
3029#endif
3030#ifdef VK_IMG_format_pvrtc
3031#endif
3032#ifdef VK_NV_external_memory_capabilities
3033static VkResult entry_vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
3034 VkPhysicalDevice physicalDevice,
3035 VkFormat format,
3036 VkImageType type,
3037 VkImageTiling tiling,
3038 VkImageUsageFlags usage,
3039 VkImageCreateFlags flags,
3040 VkExternalMemoryHandleTypeFlagsNV externalHandleType,
3041 VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties)
3042{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003043 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalImageFormatPropertiesNV");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003044 auto vkEnc = HostConnection::get()->vkEncoder();
3045 VkResult vkGetPhysicalDeviceExternalImageFormatPropertiesNV_VkResult_return = (VkResult)0;
3046 vkGetPhysicalDeviceExternalImageFormatPropertiesNV_VkResult_return = vkEnc->vkGetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties);
3047 return vkGetPhysicalDeviceExternalImageFormatPropertiesNV_VkResult_return;
3048}
3049#endif
3050#ifdef VK_NV_external_memory
3051#endif
3052#ifdef VK_NV_external_memory_win32
3053static VkResult entry_vkGetMemoryWin32HandleNV(
3054 VkDevice device,
3055 VkDeviceMemory memory,
3056 VkExternalMemoryHandleTypeFlagsNV handleType,
3057 HANDLE* pHandle)
3058{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003059 AEMU_SCOPED_TRACE("vkGetMemoryWin32HandleNV");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003060 auto vkEnc = HostConnection::get()->vkEncoder();
3061 VkResult vkGetMemoryWin32HandleNV_VkResult_return = (VkResult)0;
3062 vkGetMemoryWin32HandleNV_VkResult_return = vkEnc->vkGetMemoryWin32HandleNV(device, memory, handleType, pHandle);
3063 return vkGetMemoryWin32HandleNV_VkResult_return;
3064}
3065#endif
3066#ifdef VK_NV_win32_keyed_mutex
3067#endif
3068#ifdef VK_EXT_validation_flags
3069#endif
3070#ifdef VK_NN_vi_surface
3071static VkResult entry_vkCreateViSurfaceNN(
3072 VkInstance instance,
3073 const VkViSurfaceCreateInfoNN* pCreateInfo,
3074 const VkAllocationCallbacks* pAllocator,
3075 VkSurfaceKHR* pSurface)
3076{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003077 AEMU_SCOPED_TRACE("vkCreateViSurfaceNN");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003078 auto vkEnc = HostConnection::get()->vkEncoder();
3079 VkResult vkCreateViSurfaceNN_VkResult_return = (VkResult)0;
3080 vkCreateViSurfaceNN_VkResult_return = vkEnc->vkCreateViSurfaceNN(instance, pCreateInfo, pAllocator, pSurface);
3081 return vkCreateViSurfaceNN_VkResult_return;
3082}
3083#endif
3084#ifdef VK_EXT_shader_subgroup_ballot
3085#endif
3086#ifdef VK_EXT_shader_subgroup_vote
3087#endif
3088#ifdef VK_EXT_conditional_rendering
3089static void entry_vkCmdBeginConditionalRenderingEXT(
3090 VkCommandBuffer commandBuffer,
3091 const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin)
3092{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003093 AEMU_SCOPED_TRACE("vkCmdBeginConditionalRenderingEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003094 auto vkEnc = HostConnection::get()->vkEncoder();
3095 vkEnc->vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin);
3096}
3097static void entry_vkCmdEndConditionalRenderingEXT(
3098 VkCommandBuffer commandBuffer)
3099{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003100 AEMU_SCOPED_TRACE("vkCmdEndConditionalRenderingEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003101 auto vkEnc = HostConnection::get()->vkEncoder();
3102 vkEnc->vkCmdEndConditionalRenderingEXT(commandBuffer);
3103}
3104#endif
3105#ifdef VK_NVX_device_generated_commands
3106static void entry_vkCmdProcessCommandsNVX(
3107 VkCommandBuffer commandBuffer,
3108 const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo)
3109{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003110 AEMU_SCOPED_TRACE("vkCmdProcessCommandsNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003111 auto vkEnc = HostConnection::get()->vkEncoder();
3112 vkEnc->vkCmdProcessCommandsNVX(commandBuffer, pProcessCommandsInfo);
3113}
3114static void entry_vkCmdReserveSpaceForCommandsNVX(
3115 VkCommandBuffer commandBuffer,
3116 const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo)
3117{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003118 AEMU_SCOPED_TRACE("vkCmdReserveSpaceForCommandsNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003119 auto vkEnc = HostConnection::get()->vkEncoder();
3120 vkEnc->vkCmdReserveSpaceForCommandsNVX(commandBuffer, pReserveSpaceInfo);
3121}
3122static VkResult entry_vkCreateIndirectCommandsLayoutNVX(
3123 VkDevice device,
3124 const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo,
3125 const VkAllocationCallbacks* pAllocator,
3126 VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout)
3127{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003128 AEMU_SCOPED_TRACE("vkCreateIndirectCommandsLayoutNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003129 auto vkEnc = HostConnection::get()->vkEncoder();
3130 VkResult vkCreateIndirectCommandsLayoutNVX_VkResult_return = (VkResult)0;
3131 vkCreateIndirectCommandsLayoutNVX_VkResult_return = vkEnc->vkCreateIndirectCommandsLayoutNVX(device, pCreateInfo, pAllocator, pIndirectCommandsLayout);
3132 return vkCreateIndirectCommandsLayoutNVX_VkResult_return;
3133}
3134static void entry_vkDestroyIndirectCommandsLayoutNVX(
3135 VkDevice device,
3136 VkIndirectCommandsLayoutNVX indirectCommandsLayout,
3137 const VkAllocationCallbacks* pAllocator)
3138{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003139 AEMU_SCOPED_TRACE("vkDestroyIndirectCommandsLayoutNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003140 auto vkEnc = HostConnection::get()->vkEncoder();
3141 vkEnc->vkDestroyIndirectCommandsLayoutNVX(device, indirectCommandsLayout, pAllocator);
3142}
3143static VkResult entry_vkCreateObjectTableNVX(
3144 VkDevice device,
3145 const VkObjectTableCreateInfoNVX* pCreateInfo,
3146 const VkAllocationCallbacks* pAllocator,
3147 VkObjectTableNVX* pObjectTable)
3148{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003149 AEMU_SCOPED_TRACE("vkCreateObjectTableNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003150 auto vkEnc = HostConnection::get()->vkEncoder();
3151 VkResult vkCreateObjectTableNVX_VkResult_return = (VkResult)0;
3152 vkCreateObjectTableNVX_VkResult_return = vkEnc->vkCreateObjectTableNVX(device, pCreateInfo, pAllocator, pObjectTable);
3153 return vkCreateObjectTableNVX_VkResult_return;
3154}
3155static void entry_vkDestroyObjectTableNVX(
3156 VkDevice device,
3157 VkObjectTableNVX objectTable,
3158 const VkAllocationCallbacks* pAllocator)
3159{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003160 AEMU_SCOPED_TRACE("vkDestroyObjectTableNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003161 auto vkEnc = HostConnection::get()->vkEncoder();
3162 vkEnc->vkDestroyObjectTableNVX(device, objectTable, pAllocator);
3163}
3164static VkResult entry_vkRegisterObjectsNVX(
3165 VkDevice device,
3166 VkObjectTableNVX objectTable,
3167 uint32_t objectCount,
3168 const VkObjectTableEntryNVX* const* ppObjectTableEntries,
3169 const uint32_t* pObjectIndices)
3170{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003171 AEMU_SCOPED_TRACE("vkRegisterObjectsNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003172 auto vkEnc = HostConnection::get()->vkEncoder();
3173 VkResult vkRegisterObjectsNVX_VkResult_return = (VkResult)0;
3174 vkRegisterObjectsNVX_VkResult_return = vkEnc->vkRegisterObjectsNVX(device, objectTable, objectCount, ppObjectTableEntries, pObjectIndices);
3175 return vkRegisterObjectsNVX_VkResult_return;
3176}
3177static VkResult entry_vkUnregisterObjectsNVX(
3178 VkDevice device,
3179 VkObjectTableNVX objectTable,
3180 uint32_t objectCount,
3181 const VkObjectEntryTypeNVX* pObjectEntryTypes,
3182 const uint32_t* pObjectIndices)
3183{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003184 AEMU_SCOPED_TRACE("vkUnregisterObjectsNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003185 auto vkEnc = HostConnection::get()->vkEncoder();
3186 VkResult vkUnregisterObjectsNVX_VkResult_return = (VkResult)0;
3187 vkUnregisterObjectsNVX_VkResult_return = vkEnc->vkUnregisterObjectsNVX(device, objectTable, objectCount, pObjectEntryTypes, pObjectIndices);
3188 return vkUnregisterObjectsNVX_VkResult_return;
3189}
3190static void entry_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX(
3191 VkPhysicalDevice physicalDevice,
3192 VkDeviceGeneratedCommandsFeaturesNVX* pFeatures,
3193 VkDeviceGeneratedCommandsLimitsNVX* pLimits)
3194{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003195 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003196 auto vkEnc = HostConnection::get()->vkEncoder();
3197 vkEnc->vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX(physicalDevice, pFeatures, pLimits);
3198}
3199#endif
3200#ifdef VK_NV_clip_space_w_scaling
3201static void entry_vkCmdSetViewportWScalingNV(
3202 VkCommandBuffer commandBuffer,
3203 uint32_t firstViewport,
3204 uint32_t viewportCount,
3205 const VkViewportWScalingNV* pViewportWScalings)
3206{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003207 AEMU_SCOPED_TRACE("vkCmdSetViewportWScalingNV");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003208 auto vkEnc = HostConnection::get()->vkEncoder();
3209 vkEnc->vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings);
3210}
3211#endif
3212#ifdef VK_EXT_direct_mode_display
3213static VkResult entry_vkReleaseDisplayEXT(
3214 VkPhysicalDevice physicalDevice,
3215 VkDisplayKHR display)
3216{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003217 AEMU_SCOPED_TRACE("vkReleaseDisplayEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003218 auto vkEnc = HostConnection::get()->vkEncoder();
3219 VkResult vkReleaseDisplayEXT_VkResult_return = (VkResult)0;
3220 vkReleaseDisplayEXT_VkResult_return = vkEnc->vkReleaseDisplayEXT(physicalDevice, display);
3221 return vkReleaseDisplayEXT_VkResult_return;
3222}
3223#endif
3224#ifdef VK_EXT_acquire_xlib_display
3225static VkResult entry_vkAcquireXlibDisplayEXT(
3226 VkPhysicalDevice physicalDevice,
3227 Display* dpy,
3228 VkDisplayKHR display)
3229{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003230 AEMU_SCOPED_TRACE("vkAcquireXlibDisplayEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003231 auto vkEnc = HostConnection::get()->vkEncoder();
3232 VkResult vkAcquireXlibDisplayEXT_VkResult_return = (VkResult)0;
3233 vkAcquireXlibDisplayEXT_VkResult_return = vkEnc->vkAcquireXlibDisplayEXT(physicalDevice, dpy, display);
3234 return vkAcquireXlibDisplayEXT_VkResult_return;
3235}
3236static VkResult entry_vkGetRandROutputDisplayEXT(
3237 VkPhysicalDevice physicalDevice,
3238 Display* dpy,
3239 RROutput rrOutput,
3240 VkDisplayKHR* pDisplay)
3241{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003242 AEMU_SCOPED_TRACE("vkGetRandROutputDisplayEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003243 auto vkEnc = HostConnection::get()->vkEncoder();
3244 VkResult vkGetRandROutputDisplayEXT_VkResult_return = (VkResult)0;
3245 vkGetRandROutputDisplayEXT_VkResult_return = vkEnc->vkGetRandROutputDisplayEXT(physicalDevice, dpy, rrOutput, pDisplay);
3246 return vkGetRandROutputDisplayEXT_VkResult_return;
3247}
3248#endif
3249#ifdef VK_EXT_display_surface_counter
3250static VkResult entry_vkGetPhysicalDeviceSurfaceCapabilities2EXT(
3251 VkPhysicalDevice physicalDevice,
3252 VkSurfaceKHR surface,
3253 VkSurfaceCapabilities2EXT* pSurfaceCapabilities)
3254{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003255 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceCapabilities2EXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003256 auto vkEnc = HostConnection::get()->vkEncoder();
3257 VkResult vkGetPhysicalDeviceSurfaceCapabilities2EXT_VkResult_return = (VkResult)0;
3258 vkGetPhysicalDeviceSurfaceCapabilities2EXT_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities);
3259 return vkGetPhysicalDeviceSurfaceCapabilities2EXT_VkResult_return;
3260}
3261#endif
3262#ifdef VK_EXT_display_control
3263static VkResult entry_vkDisplayPowerControlEXT(
3264 VkDevice device,
3265 VkDisplayKHR display,
3266 const VkDisplayPowerInfoEXT* pDisplayPowerInfo)
3267{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003268 AEMU_SCOPED_TRACE("vkDisplayPowerControlEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003269 auto vkEnc = HostConnection::get()->vkEncoder();
3270 VkResult vkDisplayPowerControlEXT_VkResult_return = (VkResult)0;
3271 vkDisplayPowerControlEXT_VkResult_return = vkEnc->vkDisplayPowerControlEXT(device, display, pDisplayPowerInfo);
3272 return vkDisplayPowerControlEXT_VkResult_return;
3273}
3274static VkResult entry_vkRegisterDeviceEventEXT(
3275 VkDevice device,
3276 const VkDeviceEventInfoEXT* pDeviceEventInfo,
3277 const VkAllocationCallbacks* pAllocator,
3278 VkFence* pFence)
3279{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003280 AEMU_SCOPED_TRACE("vkRegisterDeviceEventEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003281 auto vkEnc = HostConnection::get()->vkEncoder();
3282 VkResult vkRegisterDeviceEventEXT_VkResult_return = (VkResult)0;
3283 vkRegisterDeviceEventEXT_VkResult_return = vkEnc->vkRegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence);
3284 return vkRegisterDeviceEventEXT_VkResult_return;
3285}
3286static VkResult entry_vkRegisterDisplayEventEXT(
3287 VkDevice device,
3288 VkDisplayKHR display,
3289 const VkDisplayEventInfoEXT* pDisplayEventInfo,
3290 const VkAllocationCallbacks* pAllocator,
3291 VkFence* pFence)
3292{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003293 AEMU_SCOPED_TRACE("vkRegisterDisplayEventEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003294 auto vkEnc = HostConnection::get()->vkEncoder();
3295 VkResult vkRegisterDisplayEventEXT_VkResult_return = (VkResult)0;
3296 vkRegisterDisplayEventEXT_VkResult_return = vkEnc->vkRegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence);
3297 return vkRegisterDisplayEventEXT_VkResult_return;
3298}
3299static VkResult entry_vkGetSwapchainCounterEXT(
3300 VkDevice device,
3301 VkSwapchainKHR swapchain,
3302 VkSurfaceCounterFlagBitsEXT counter,
3303 uint64_t* pCounterValue)
3304{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003305 AEMU_SCOPED_TRACE("vkGetSwapchainCounterEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003306 auto vkEnc = HostConnection::get()->vkEncoder();
3307 VkResult vkGetSwapchainCounterEXT_VkResult_return = (VkResult)0;
3308 vkGetSwapchainCounterEXT_VkResult_return = vkEnc->vkGetSwapchainCounterEXT(device, swapchain, counter, pCounterValue);
3309 return vkGetSwapchainCounterEXT_VkResult_return;
3310}
3311#endif
3312#ifdef VK_GOOGLE_display_timing
3313static VkResult entry_vkGetRefreshCycleDurationGOOGLE(
3314 VkDevice device,
3315 VkSwapchainKHR swapchain,
3316 VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties)
3317{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003318 AEMU_SCOPED_TRACE("vkGetRefreshCycleDurationGOOGLE");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003319 auto vkEnc = HostConnection::get()->vkEncoder();
3320 VkResult vkGetRefreshCycleDurationGOOGLE_VkResult_return = (VkResult)0;
3321 vkGetRefreshCycleDurationGOOGLE_VkResult_return = vkEnc->vkGetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties);
3322 return vkGetRefreshCycleDurationGOOGLE_VkResult_return;
3323}
3324static VkResult entry_vkGetPastPresentationTimingGOOGLE(
3325 VkDevice device,
3326 VkSwapchainKHR swapchain,
3327 uint32_t* pPresentationTimingCount,
3328 VkPastPresentationTimingGOOGLE* pPresentationTimings)
3329{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003330 AEMU_SCOPED_TRACE("vkGetPastPresentationTimingGOOGLE");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003331 auto vkEnc = HostConnection::get()->vkEncoder();
3332 VkResult vkGetPastPresentationTimingGOOGLE_VkResult_return = (VkResult)0;
3333 vkGetPastPresentationTimingGOOGLE_VkResult_return = vkEnc->vkGetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings);
3334 return vkGetPastPresentationTimingGOOGLE_VkResult_return;
3335}
3336#endif
3337#ifdef VK_NV_sample_mask_override_coverage
3338#endif
3339#ifdef VK_NV_geometry_shader_passthrough
3340#endif
3341#ifdef VK_NV_viewport_array2
3342#endif
3343#ifdef VK_NVX_multiview_per_view_attributes
3344#endif
3345#ifdef VK_NV_viewport_swizzle
3346#endif
3347#ifdef VK_EXT_discard_rectangles
3348static void entry_vkCmdSetDiscardRectangleEXT(
3349 VkCommandBuffer commandBuffer,
3350 uint32_t firstDiscardRectangle,
3351 uint32_t discardRectangleCount,
3352 const VkRect2D* pDiscardRectangles)
3353{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003354 AEMU_SCOPED_TRACE("vkCmdSetDiscardRectangleEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003355 auto vkEnc = HostConnection::get()->vkEncoder();
3356 vkEnc->vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles);
3357}
3358#endif
3359#ifdef VK_EXT_conservative_rasterization
3360#endif
3361#ifdef VK_EXT_swapchain_colorspace
3362#endif
3363#ifdef VK_EXT_hdr_metadata
3364static void entry_vkSetHdrMetadataEXT(
3365 VkDevice device,
3366 uint32_t swapchainCount,
3367 const VkSwapchainKHR* pSwapchains,
3368 const VkHdrMetadataEXT* pMetadata)
3369{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003370 AEMU_SCOPED_TRACE("vkSetHdrMetadataEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003371 auto vkEnc = HostConnection::get()->vkEncoder();
3372 vkEnc->vkSetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata);
3373}
3374#endif
3375#ifdef VK_MVK_ios_surface
3376static VkResult entry_vkCreateIOSSurfaceMVK(
3377 VkInstance instance,
3378 const VkIOSSurfaceCreateInfoMVK* pCreateInfo,
3379 const VkAllocationCallbacks* pAllocator,
3380 VkSurfaceKHR* pSurface)
3381{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003382 AEMU_SCOPED_TRACE("vkCreateIOSSurfaceMVK");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003383 auto vkEnc = HostConnection::get()->vkEncoder();
3384 VkResult vkCreateIOSSurfaceMVK_VkResult_return = (VkResult)0;
3385 vkCreateIOSSurfaceMVK_VkResult_return = vkEnc->vkCreateIOSSurfaceMVK(instance, pCreateInfo, pAllocator, pSurface);
3386 return vkCreateIOSSurfaceMVK_VkResult_return;
3387}
3388#endif
3389#ifdef VK_MVK_macos_surface
3390static VkResult entry_vkCreateMacOSSurfaceMVK(
3391 VkInstance instance,
3392 const VkMacOSSurfaceCreateInfoMVK* pCreateInfo,
3393 const VkAllocationCallbacks* pAllocator,
3394 VkSurfaceKHR* pSurface)
3395{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003396 AEMU_SCOPED_TRACE("vkCreateMacOSSurfaceMVK");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003397 auto vkEnc = HostConnection::get()->vkEncoder();
3398 VkResult vkCreateMacOSSurfaceMVK_VkResult_return = (VkResult)0;
3399 vkCreateMacOSSurfaceMVK_VkResult_return = vkEnc->vkCreateMacOSSurfaceMVK(instance, pCreateInfo, pAllocator, pSurface);
3400 return vkCreateMacOSSurfaceMVK_VkResult_return;
3401}
3402#endif
3403#ifdef VK_EXT_external_memory_dma_buf
3404#endif
3405#ifdef VK_EXT_queue_family_foreign
3406#endif
3407#ifdef VK_EXT_debug_utils
3408static VkResult entry_vkSetDebugUtilsObjectNameEXT(
3409 VkDevice device,
3410 const VkDebugUtilsObjectNameInfoEXT* pNameInfo)
3411{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003412 AEMU_SCOPED_TRACE("vkSetDebugUtilsObjectNameEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003413 auto vkEnc = HostConnection::get()->vkEncoder();
3414 VkResult vkSetDebugUtilsObjectNameEXT_VkResult_return = (VkResult)0;
3415 vkSetDebugUtilsObjectNameEXT_VkResult_return = vkEnc->vkSetDebugUtilsObjectNameEXT(device, pNameInfo);
3416 return vkSetDebugUtilsObjectNameEXT_VkResult_return;
3417}
3418static VkResult entry_vkSetDebugUtilsObjectTagEXT(
3419 VkDevice device,
3420 const VkDebugUtilsObjectTagInfoEXT* pTagInfo)
3421{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003422 AEMU_SCOPED_TRACE("vkSetDebugUtilsObjectTagEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003423 auto vkEnc = HostConnection::get()->vkEncoder();
3424 VkResult vkSetDebugUtilsObjectTagEXT_VkResult_return = (VkResult)0;
3425 vkSetDebugUtilsObjectTagEXT_VkResult_return = vkEnc->vkSetDebugUtilsObjectTagEXT(device, pTagInfo);
3426 return vkSetDebugUtilsObjectTagEXT_VkResult_return;
3427}
3428static void entry_vkQueueBeginDebugUtilsLabelEXT(
3429 VkQueue queue,
3430 const VkDebugUtilsLabelEXT* pLabelInfo)
3431{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003432 AEMU_SCOPED_TRACE("vkQueueBeginDebugUtilsLabelEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003433 auto vkEnc = HostConnection::get()->vkEncoder();
3434 vkEnc->vkQueueBeginDebugUtilsLabelEXT(queue, pLabelInfo);
3435}
3436static void entry_vkQueueEndDebugUtilsLabelEXT(
3437 VkQueue queue)
3438{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003439 AEMU_SCOPED_TRACE("vkQueueEndDebugUtilsLabelEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003440 auto vkEnc = HostConnection::get()->vkEncoder();
3441 vkEnc->vkQueueEndDebugUtilsLabelEXT(queue);
3442}
3443static void entry_vkQueueInsertDebugUtilsLabelEXT(
3444 VkQueue queue,
3445 const VkDebugUtilsLabelEXT* pLabelInfo)
3446{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003447 AEMU_SCOPED_TRACE("vkQueueInsertDebugUtilsLabelEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003448 auto vkEnc = HostConnection::get()->vkEncoder();
3449 vkEnc->vkQueueInsertDebugUtilsLabelEXT(queue, pLabelInfo);
3450}
3451static void entry_vkCmdBeginDebugUtilsLabelEXT(
3452 VkCommandBuffer commandBuffer,
3453 const VkDebugUtilsLabelEXT* pLabelInfo)
3454{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003455 AEMU_SCOPED_TRACE("vkCmdBeginDebugUtilsLabelEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003456 auto vkEnc = HostConnection::get()->vkEncoder();
3457 vkEnc->vkCmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo);
3458}
3459static void entry_vkCmdEndDebugUtilsLabelEXT(
3460 VkCommandBuffer commandBuffer)
3461{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003462 AEMU_SCOPED_TRACE("vkCmdEndDebugUtilsLabelEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003463 auto vkEnc = HostConnection::get()->vkEncoder();
3464 vkEnc->vkCmdEndDebugUtilsLabelEXT(commandBuffer);
3465}
3466static void entry_vkCmdInsertDebugUtilsLabelEXT(
3467 VkCommandBuffer commandBuffer,
3468 const VkDebugUtilsLabelEXT* pLabelInfo)
3469{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003470 AEMU_SCOPED_TRACE("vkCmdInsertDebugUtilsLabelEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003471 auto vkEnc = HostConnection::get()->vkEncoder();
3472 vkEnc->vkCmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo);
3473}
3474static VkResult entry_vkCreateDebugUtilsMessengerEXT(
3475 VkInstance instance,
3476 const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo,
3477 const VkAllocationCallbacks* pAllocator,
3478 VkDebugUtilsMessengerEXT* pMessenger)
3479{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003480 AEMU_SCOPED_TRACE("vkCreateDebugUtilsMessengerEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003481 auto vkEnc = HostConnection::get()->vkEncoder();
3482 VkResult vkCreateDebugUtilsMessengerEXT_VkResult_return = (VkResult)0;
3483 vkCreateDebugUtilsMessengerEXT_VkResult_return = vkEnc->vkCreateDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, pMessenger);
3484 return vkCreateDebugUtilsMessengerEXT_VkResult_return;
3485}
3486static void entry_vkDestroyDebugUtilsMessengerEXT(
3487 VkInstance instance,
3488 VkDebugUtilsMessengerEXT messenger,
3489 const VkAllocationCallbacks* pAllocator)
3490{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003491 AEMU_SCOPED_TRACE("vkDestroyDebugUtilsMessengerEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003492 auto vkEnc = HostConnection::get()->vkEncoder();
3493 vkEnc->vkDestroyDebugUtilsMessengerEXT(instance, messenger, pAllocator);
3494}
3495static void entry_vkSubmitDebugUtilsMessageEXT(
3496 VkInstance instance,
3497 VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
3498 VkDebugUtilsMessageTypeFlagsEXT messageTypes,
3499 const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData)
3500{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003501 AEMU_SCOPED_TRACE("vkSubmitDebugUtilsMessageEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003502 auto vkEnc = HostConnection::get()->vkEncoder();
3503 vkEnc->vkSubmitDebugUtilsMessageEXT(instance, messageSeverity, messageTypes, pCallbackData);
3504}
3505#endif
3506#ifdef VK_ANDROID_external_memory_android_hardware_buffer
3507static VkResult entry_vkGetAndroidHardwareBufferPropertiesANDROID(
3508 VkDevice device,
3509 const AHardwareBuffer* buffer,
3510 VkAndroidHardwareBufferPropertiesANDROID* pProperties)
3511{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003512 AEMU_SCOPED_TRACE("vkGetAndroidHardwareBufferPropertiesANDROID");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003513 auto vkEnc = HostConnection::get()->vkEncoder();
3514 VkResult vkGetAndroidHardwareBufferPropertiesANDROID_VkResult_return = (VkResult)0;
Lingfeng Yang4f3f91f2019-02-28 11:37:21 -08003515 auto resources = ResourceTracker::get();
3516 vkGetAndroidHardwareBufferPropertiesANDROID_VkResult_return = resources->on_vkGetAndroidHardwareBufferPropertiesANDROID(vkEnc, VK_SUCCESS, device, buffer, pProperties);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003517 return vkGetAndroidHardwareBufferPropertiesANDROID_VkResult_return;
3518}
3519static VkResult entry_vkGetMemoryAndroidHardwareBufferANDROID(
3520 VkDevice device,
3521 const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo,
3522 AHardwareBuffer** pBuffer)
3523{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003524 AEMU_SCOPED_TRACE("vkGetMemoryAndroidHardwareBufferANDROID");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003525 auto vkEnc = HostConnection::get()->vkEncoder();
3526 VkResult vkGetMemoryAndroidHardwareBufferANDROID_VkResult_return = (VkResult)0;
Lingfeng Yang4f3f91f2019-02-28 11:37:21 -08003527 auto resources = ResourceTracker::get();
3528 vkGetMemoryAndroidHardwareBufferANDROID_VkResult_return = resources->on_vkGetMemoryAndroidHardwareBufferANDROID(vkEnc, VK_SUCCESS, device, pInfo, pBuffer);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003529 return vkGetMemoryAndroidHardwareBufferANDROID_VkResult_return;
3530}
3531#endif
3532#ifdef VK_EXT_sampler_filter_minmax
3533#endif
3534#ifdef VK_AMD_gpu_shader_int16
3535#endif
3536#ifdef VK_AMD_mixed_attachment_samples
3537#endif
3538#ifdef VK_AMD_shader_fragment_mask
3539#endif
3540#ifdef VK_EXT_shader_stencil_export
3541#endif
3542#ifdef VK_EXT_sample_locations
3543static void entry_vkCmdSetSampleLocationsEXT(
3544 VkCommandBuffer commandBuffer,
3545 const VkSampleLocationsInfoEXT* pSampleLocationsInfo)
3546{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003547 AEMU_SCOPED_TRACE("vkCmdSetSampleLocationsEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003548 auto vkEnc = HostConnection::get()->vkEncoder();
3549 vkEnc->vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo);
3550}
3551static void entry_vkGetPhysicalDeviceMultisamplePropertiesEXT(
3552 VkPhysicalDevice physicalDevice,
3553 VkSampleCountFlagBits samples,
3554 VkMultisamplePropertiesEXT* pMultisampleProperties)
3555{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003556 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMultisamplePropertiesEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003557 auto vkEnc = HostConnection::get()->vkEncoder();
3558 vkEnc->vkGetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties);
3559}
3560#endif
3561#ifdef VK_EXT_blend_operation_advanced
3562#endif
3563#ifdef VK_NV_fragment_coverage_to_color
3564#endif
3565#ifdef VK_NV_framebuffer_mixed_samples
3566#endif
3567#ifdef VK_NV_fill_rectangle
3568#endif
3569#ifdef VK_EXT_post_depth_coverage
3570#endif
3571#ifdef VK_EXT_validation_cache
3572static VkResult entry_vkCreateValidationCacheEXT(
3573 VkDevice device,
3574 const VkValidationCacheCreateInfoEXT* pCreateInfo,
3575 const VkAllocationCallbacks* pAllocator,
3576 VkValidationCacheEXT* pValidationCache)
3577{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003578 AEMU_SCOPED_TRACE("vkCreateValidationCacheEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003579 auto vkEnc = HostConnection::get()->vkEncoder();
3580 VkResult vkCreateValidationCacheEXT_VkResult_return = (VkResult)0;
3581 vkCreateValidationCacheEXT_VkResult_return = vkEnc->vkCreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache);
3582 return vkCreateValidationCacheEXT_VkResult_return;
3583}
3584static void entry_vkDestroyValidationCacheEXT(
3585 VkDevice device,
3586 VkValidationCacheEXT validationCache,
3587 const VkAllocationCallbacks* pAllocator)
3588{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003589 AEMU_SCOPED_TRACE("vkDestroyValidationCacheEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003590 auto vkEnc = HostConnection::get()->vkEncoder();
3591 vkEnc->vkDestroyValidationCacheEXT(device, validationCache, pAllocator);
3592}
3593static VkResult entry_vkMergeValidationCachesEXT(
3594 VkDevice device,
3595 VkValidationCacheEXT dstCache,
3596 uint32_t srcCacheCount,
3597 const VkValidationCacheEXT* pSrcCaches)
3598{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003599 AEMU_SCOPED_TRACE("vkMergeValidationCachesEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003600 auto vkEnc = HostConnection::get()->vkEncoder();
3601 VkResult vkMergeValidationCachesEXT_VkResult_return = (VkResult)0;
3602 vkMergeValidationCachesEXT_VkResult_return = vkEnc->vkMergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches);
3603 return vkMergeValidationCachesEXT_VkResult_return;
3604}
3605static VkResult entry_vkGetValidationCacheDataEXT(
3606 VkDevice device,
3607 VkValidationCacheEXT validationCache,
3608 size_t* pDataSize,
3609 void* pData)
3610{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003611 AEMU_SCOPED_TRACE("vkGetValidationCacheDataEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003612 auto vkEnc = HostConnection::get()->vkEncoder();
3613 VkResult vkGetValidationCacheDataEXT_VkResult_return = (VkResult)0;
3614 vkGetValidationCacheDataEXT_VkResult_return = vkEnc->vkGetValidationCacheDataEXT(device, validationCache, pDataSize, pData);
3615 return vkGetValidationCacheDataEXT_VkResult_return;
3616}
3617#endif
3618#ifdef VK_EXT_descriptor_indexing
3619#endif
3620#ifdef VK_EXT_shader_viewport_index_layer
3621#endif
3622#ifdef VK_EXT_global_priority
3623#endif
3624#ifdef VK_EXT_external_memory_host
3625static VkResult entry_vkGetMemoryHostPointerPropertiesEXT(
3626 VkDevice device,
3627 VkExternalMemoryHandleTypeFlagBits handleType,
3628 const void* pHostPointer,
3629 VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties)
3630{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003631 AEMU_SCOPED_TRACE("vkGetMemoryHostPointerPropertiesEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003632 auto vkEnc = HostConnection::get()->vkEncoder();
3633 VkResult vkGetMemoryHostPointerPropertiesEXT_VkResult_return = (VkResult)0;
3634 vkGetMemoryHostPointerPropertiesEXT_VkResult_return = vkEnc->vkGetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties);
3635 return vkGetMemoryHostPointerPropertiesEXT_VkResult_return;
3636}
3637#endif
3638#ifdef VK_AMD_buffer_marker
3639static void entry_vkCmdWriteBufferMarkerAMD(
3640 VkCommandBuffer commandBuffer,
3641 VkPipelineStageFlagBits pipelineStage,
3642 VkBuffer dstBuffer,
3643 VkDeviceSize dstOffset,
3644 uint32_t marker)
3645{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003646 AEMU_SCOPED_TRACE("vkCmdWriteBufferMarkerAMD");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003647 auto vkEnc = HostConnection::get()->vkEncoder();
3648 vkEnc->vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker);
3649}
3650#endif
3651#ifdef VK_AMD_shader_core_properties
3652#endif
3653#ifdef VK_EXT_vertex_attribute_divisor
3654#endif
3655#ifdef VK_NV_shader_subgroup_partitioned
3656#endif
3657#ifdef VK_NV_device_diagnostic_checkpoints
3658static void entry_vkCmdSetCheckpointNV(
3659 VkCommandBuffer commandBuffer,
3660 const void* pCheckpointMarker)
3661{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003662 AEMU_SCOPED_TRACE("vkCmdSetCheckpointNV");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003663 auto vkEnc = HostConnection::get()->vkEncoder();
3664 vkEnc->vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker);
3665}
3666static void entry_vkGetQueueCheckpointDataNV(
3667 VkQueue queue,
3668 uint32_t* pCheckpointDataCount,
3669 VkCheckpointDataNV* pCheckpointData)
3670{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003671 AEMU_SCOPED_TRACE("vkGetQueueCheckpointDataNV");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003672 auto vkEnc = HostConnection::get()->vkEncoder();
3673 vkEnc->vkGetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData);
3674}
3675#endif
Lingfeng Yang5c63afd2018-12-22 01:21:14 -08003676#ifdef VK_GOOGLE_address_space
3677static VkResult entry_vkMapMemoryIntoAddressSpaceGOOGLE(
3678 VkDevice device,
3679 VkDeviceMemory memory,
3680 uint64_t* pAddress)
3681{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003682 AEMU_SCOPED_TRACE("vkMapMemoryIntoAddressSpaceGOOGLE");
Lingfeng Yang5c63afd2018-12-22 01:21:14 -08003683 auto vkEnc = HostConnection::get()->vkEncoder();
3684 VkResult vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return = (VkResult)0;
3685 vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return = vkEnc->vkMapMemoryIntoAddressSpaceGOOGLE(device, memory, pAddress);
3686 return vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return;
3687}
3688#endif
Lingfeng Yangae7e1b32019-02-19 14:07:39 -08003689#ifdef VK_GOOGLE_color_buffer
3690static VkResult entry_vkRegisterImageColorBufferGOOGLE(
3691 VkDevice device,
3692 VkImage image,
3693 uint32_t colorBuffer)
3694{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003695 AEMU_SCOPED_TRACE("vkRegisterImageColorBufferGOOGLE");
Lingfeng Yangae7e1b32019-02-19 14:07:39 -08003696 auto vkEnc = HostConnection::get()->vkEncoder();
3697 VkResult vkRegisterImageColorBufferGOOGLE_VkResult_return = (VkResult)0;
3698 vkRegisterImageColorBufferGOOGLE_VkResult_return = vkEnc->vkRegisterImageColorBufferGOOGLE(device, image, colorBuffer);
3699 return vkRegisterImageColorBufferGOOGLE_VkResult_return;
3700}
3701static VkResult entry_vkRegisterBufferColorBufferGOOGLE(
3702 VkDevice device,
3703 VkBuffer buffer,
3704 uint32_t colorBuffer)
3705{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003706 AEMU_SCOPED_TRACE("vkRegisterBufferColorBufferGOOGLE");
Lingfeng Yangae7e1b32019-02-19 14:07:39 -08003707 auto vkEnc = HostConnection::get()->vkEncoder();
3708 VkResult vkRegisterBufferColorBufferGOOGLE_VkResult_return = (VkResult)0;
3709 vkRegisterBufferColorBufferGOOGLE_VkResult_return = vkEnc->vkRegisterBufferColorBufferGOOGLE(device, buffer, colorBuffer);
3710 return vkRegisterBufferColorBufferGOOGLE_VkResult_return;
3711}
3712#endif
Lingfeng Yang05d5ea32019-03-23 00:12:39 -07003713#ifdef VK_GOOGLE_sized_descriptor_update_template
3714static void entry_vkUpdateDescriptorSetWithTemplateSizedGOOGLE(
3715 VkDevice device,
3716 VkDescriptorSet descriptorSet,
3717 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
3718 uint32_t imageInfoCount,
3719 uint32_t bufferInfoCount,
3720 uint32_t bufferViewCount,
3721 const uint32_t* pImageInfoEntryIndices,
3722 const uint32_t* pBufferInfoEntryIndices,
3723 const uint32_t* pBufferViewEntryIndices,
3724 const VkDescriptorImageInfo* pImageInfos,
3725 const VkDescriptorBufferInfo* pBufferInfos,
3726 const VkBufferView* pBufferViews)
3727{
3728 AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplateSizedGOOGLE");
3729 auto vkEnc = HostConnection::get()->vkEncoder();
3730 vkEnc->vkUpdateDescriptorSetWithTemplateSizedGOOGLE(device, descriptorSet, descriptorUpdateTemplate, imageInfoCount, bufferInfoCount, bufferViewCount, pImageInfoEntryIndices, pBufferInfoEntryIndices, pBufferViewEntryIndices, pImageInfos, pBufferInfos, pBufferViews);
3731}
3732#endif
Lingfeng Yangc53e7472019-03-27 08:50:55 -07003733#ifdef VK_GOOGLE_async_command_buffers
3734static void entry_vkBeginCommandBufferAsyncGOOGLE(
3735 VkCommandBuffer commandBuffer,
3736 const VkCommandBufferBeginInfo* pBeginInfo)
3737{
3738 AEMU_SCOPED_TRACE("vkBeginCommandBufferAsyncGOOGLE");
3739 auto vkEnc = HostConnection::get()->vkEncoder();
3740 vkEnc->vkBeginCommandBufferAsyncGOOGLE(commandBuffer, pBeginInfo);
3741}
3742static void entry_vkEndCommandBufferAsyncGOOGLE(
3743 VkCommandBuffer commandBuffer)
3744{
3745 AEMU_SCOPED_TRACE("vkEndCommandBufferAsyncGOOGLE");
3746 auto vkEnc = HostConnection::get()->vkEncoder();
3747 vkEnc->vkEndCommandBufferAsyncGOOGLE(commandBuffer);
3748}
3749static void entry_vkResetCommandBufferAsyncGOOGLE(
3750 VkCommandBuffer commandBuffer,
3751 VkCommandBufferResetFlags flags)
3752{
3753 AEMU_SCOPED_TRACE("vkResetCommandBufferAsyncGOOGLE");
3754 auto vkEnc = HostConnection::get()->vkEncoder();
3755 vkEnc->vkResetCommandBufferAsyncGOOGLE(commandBuffer, flags);
3756}
3757#endif
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003758void* goldfish_vulkan_get_proc_address(const char* name){
3759#ifdef VK_VERSION_1_0
3760 if (!strcmp(name, "vkCreateInstance"))
3761 {
3762 return (void*)entry_vkCreateInstance;
3763 }
3764 if (!strcmp(name, "vkDestroyInstance"))
3765 {
3766 return (void*)entry_vkDestroyInstance;
3767 }
3768 if (!strcmp(name, "vkEnumeratePhysicalDevices"))
3769 {
3770 return (void*)entry_vkEnumeratePhysicalDevices;
3771 }
3772 if (!strcmp(name, "vkGetPhysicalDeviceFeatures"))
3773 {
3774 return (void*)entry_vkGetPhysicalDeviceFeatures;
3775 }
3776 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties"))
3777 {
3778 return (void*)entry_vkGetPhysicalDeviceFormatProperties;
3779 }
3780 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties"))
3781 {
3782 return (void*)entry_vkGetPhysicalDeviceImageFormatProperties;
3783 }
3784 if (!strcmp(name, "vkGetPhysicalDeviceProperties"))
3785 {
3786 return (void*)entry_vkGetPhysicalDeviceProperties;
3787 }
3788 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties"))
3789 {
3790 return (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties;
3791 }
3792 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties"))
3793 {
3794 return (void*)entry_vkGetPhysicalDeviceMemoryProperties;
3795 }
3796 if (!strcmp(name, "vkGetInstanceProcAddr"))
3797 {
3798 return (void*)entry_vkGetInstanceProcAddr;
3799 }
3800 if (!strcmp(name, "vkGetDeviceProcAddr"))
3801 {
3802 return (void*)entry_vkGetDeviceProcAddr;
3803 }
3804 if (!strcmp(name, "vkCreateDevice"))
3805 {
3806 return (void*)entry_vkCreateDevice;
3807 }
3808 if (!strcmp(name, "vkDestroyDevice"))
3809 {
3810 return (void*)entry_vkDestroyDevice;
3811 }
3812 if (!strcmp(name, "vkEnumerateInstanceExtensionProperties"))
3813 {
3814 return (void*)entry_vkEnumerateInstanceExtensionProperties;
3815 }
3816 if (!strcmp(name, "vkEnumerateDeviceExtensionProperties"))
3817 {
3818 return (void*)entry_vkEnumerateDeviceExtensionProperties;
3819 }
3820 if (!strcmp(name, "vkEnumerateInstanceLayerProperties"))
3821 {
3822 return (void*)entry_vkEnumerateInstanceLayerProperties;
3823 }
3824 if (!strcmp(name, "vkEnumerateDeviceLayerProperties"))
3825 {
3826 return (void*)entry_vkEnumerateDeviceLayerProperties;
3827 }
3828 if (!strcmp(name, "vkGetDeviceQueue"))
3829 {
3830 return (void*)entry_vkGetDeviceQueue;
3831 }
3832 if (!strcmp(name, "vkQueueSubmit"))
3833 {
3834 return (void*)entry_vkQueueSubmit;
3835 }
3836 if (!strcmp(name, "vkQueueWaitIdle"))
3837 {
3838 return (void*)entry_vkQueueWaitIdle;
3839 }
3840 if (!strcmp(name, "vkDeviceWaitIdle"))
3841 {
3842 return (void*)entry_vkDeviceWaitIdle;
3843 }
3844 if (!strcmp(name, "vkAllocateMemory"))
3845 {
3846 return (void*)entry_vkAllocateMemory;
3847 }
3848 if (!strcmp(name, "vkFreeMemory"))
3849 {
3850 return (void*)entry_vkFreeMemory;
3851 }
3852 if (!strcmp(name, "vkMapMemory"))
3853 {
3854 return (void*)entry_vkMapMemory;
3855 }
3856 if (!strcmp(name, "vkUnmapMemory"))
3857 {
3858 return (void*)entry_vkUnmapMemory;
3859 }
3860 if (!strcmp(name, "vkFlushMappedMemoryRanges"))
3861 {
3862 return (void*)entry_vkFlushMappedMemoryRanges;
3863 }
3864 if (!strcmp(name, "vkInvalidateMappedMemoryRanges"))
3865 {
3866 return (void*)entry_vkInvalidateMappedMemoryRanges;
3867 }
3868 if (!strcmp(name, "vkGetDeviceMemoryCommitment"))
3869 {
3870 return (void*)entry_vkGetDeviceMemoryCommitment;
3871 }
3872 if (!strcmp(name, "vkBindBufferMemory"))
3873 {
3874 return (void*)entry_vkBindBufferMemory;
3875 }
3876 if (!strcmp(name, "vkBindImageMemory"))
3877 {
3878 return (void*)entry_vkBindImageMemory;
3879 }
3880 if (!strcmp(name, "vkGetBufferMemoryRequirements"))
3881 {
3882 return (void*)entry_vkGetBufferMemoryRequirements;
3883 }
3884 if (!strcmp(name, "vkGetImageMemoryRequirements"))
3885 {
3886 return (void*)entry_vkGetImageMemoryRequirements;
3887 }
3888 if (!strcmp(name, "vkGetImageSparseMemoryRequirements"))
3889 {
3890 return (void*)entry_vkGetImageSparseMemoryRequirements;
3891 }
3892 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties"))
3893 {
3894 return (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties;
3895 }
3896 if (!strcmp(name, "vkQueueBindSparse"))
3897 {
3898 return (void*)entry_vkQueueBindSparse;
3899 }
3900 if (!strcmp(name, "vkCreateFence"))
3901 {
3902 return (void*)entry_vkCreateFence;
3903 }
3904 if (!strcmp(name, "vkDestroyFence"))
3905 {
3906 return (void*)entry_vkDestroyFence;
3907 }
3908 if (!strcmp(name, "vkResetFences"))
3909 {
3910 return (void*)entry_vkResetFences;
3911 }
3912 if (!strcmp(name, "vkGetFenceStatus"))
3913 {
3914 return (void*)entry_vkGetFenceStatus;
3915 }
3916 if (!strcmp(name, "vkWaitForFences"))
3917 {
3918 return (void*)entry_vkWaitForFences;
3919 }
3920 if (!strcmp(name, "vkCreateSemaphore"))
3921 {
3922 return (void*)entry_vkCreateSemaphore;
3923 }
3924 if (!strcmp(name, "vkDestroySemaphore"))
3925 {
3926 return (void*)entry_vkDestroySemaphore;
3927 }
3928 if (!strcmp(name, "vkCreateEvent"))
3929 {
3930 return (void*)entry_vkCreateEvent;
3931 }
3932 if (!strcmp(name, "vkDestroyEvent"))
3933 {
3934 return (void*)entry_vkDestroyEvent;
3935 }
3936 if (!strcmp(name, "vkGetEventStatus"))
3937 {
3938 return (void*)entry_vkGetEventStatus;
3939 }
3940 if (!strcmp(name, "vkSetEvent"))
3941 {
3942 return (void*)entry_vkSetEvent;
3943 }
3944 if (!strcmp(name, "vkResetEvent"))
3945 {
3946 return (void*)entry_vkResetEvent;
3947 }
3948 if (!strcmp(name, "vkCreateQueryPool"))
3949 {
3950 return (void*)entry_vkCreateQueryPool;
3951 }
3952 if (!strcmp(name, "vkDestroyQueryPool"))
3953 {
3954 return (void*)entry_vkDestroyQueryPool;
3955 }
3956 if (!strcmp(name, "vkGetQueryPoolResults"))
3957 {
3958 return (void*)entry_vkGetQueryPoolResults;
3959 }
3960 if (!strcmp(name, "vkCreateBuffer"))
3961 {
3962 return (void*)entry_vkCreateBuffer;
3963 }
3964 if (!strcmp(name, "vkDestroyBuffer"))
3965 {
3966 return (void*)entry_vkDestroyBuffer;
3967 }
3968 if (!strcmp(name, "vkCreateBufferView"))
3969 {
3970 return (void*)entry_vkCreateBufferView;
3971 }
3972 if (!strcmp(name, "vkDestroyBufferView"))
3973 {
3974 return (void*)entry_vkDestroyBufferView;
3975 }
3976 if (!strcmp(name, "vkCreateImage"))
3977 {
3978 return (void*)entry_vkCreateImage;
3979 }
3980 if (!strcmp(name, "vkDestroyImage"))
3981 {
3982 return (void*)entry_vkDestroyImage;
3983 }
3984 if (!strcmp(name, "vkGetImageSubresourceLayout"))
3985 {
3986 return (void*)entry_vkGetImageSubresourceLayout;
3987 }
3988 if (!strcmp(name, "vkCreateImageView"))
3989 {
3990 return (void*)entry_vkCreateImageView;
3991 }
3992 if (!strcmp(name, "vkDestroyImageView"))
3993 {
3994 return (void*)entry_vkDestroyImageView;
3995 }
3996 if (!strcmp(name, "vkCreateShaderModule"))
3997 {
3998 return (void*)entry_vkCreateShaderModule;
3999 }
4000 if (!strcmp(name, "vkDestroyShaderModule"))
4001 {
4002 return (void*)entry_vkDestroyShaderModule;
4003 }
4004 if (!strcmp(name, "vkCreatePipelineCache"))
4005 {
4006 return (void*)entry_vkCreatePipelineCache;
4007 }
4008 if (!strcmp(name, "vkDestroyPipelineCache"))
4009 {
4010 return (void*)entry_vkDestroyPipelineCache;
4011 }
4012 if (!strcmp(name, "vkGetPipelineCacheData"))
4013 {
4014 return (void*)entry_vkGetPipelineCacheData;
4015 }
4016 if (!strcmp(name, "vkMergePipelineCaches"))
4017 {
4018 return (void*)entry_vkMergePipelineCaches;
4019 }
4020 if (!strcmp(name, "vkCreateGraphicsPipelines"))
4021 {
4022 return (void*)entry_vkCreateGraphicsPipelines;
4023 }
4024 if (!strcmp(name, "vkCreateComputePipelines"))
4025 {
4026 return (void*)entry_vkCreateComputePipelines;
4027 }
4028 if (!strcmp(name, "vkDestroyPipeline"))
4029 {
4030 return (void*)entry_vkDestroyPipeline;
4031 }
4032 if (!strcmp(name, "vkCreatePipelineLayout"))
4033 {
4034 return (void*)entry_vkCreatePipelineLayout;
4035 }
4036 if (!strcmp(name, "vkDestroyPipelineLayout"))
4037 {
4038 return (void*)entry_vkDestroyPipelineLayout;
4039 }
4040 if (!strcmp(name, "vkCreateSampler"))
4041 {
4042 return (void*)entry_vkCreateSampler;
4043 }
4044 if (!strcmp(name, "vkDestroySampler"))
4045 {
4046 return (void*)entry_vkDestroySampler;
4047 }
4048 if (!strcmp(name, "vkCreateDescriptorSetLayout"))
4049 {
4050 return (void*)entry_vkCreateDescriptorSetLayout;
4051 }
4052 if (!strcmp(name, "vkDestroyDescriptorSetLayout"))
4053 {
4054 return (void*)entry_vkDestroyDescriptorSetLayout;
4055 }
4056 if (!strcmp(name, "vkCreateDescriptorPool"))
4057 {
4058 return (void*)entry_vkCreateDescriptorPool;
4059 }
4060 if (!strcmp(name, "vkDestroyDescriptorPool"))
4061 {
4062 return (void*)entry_vkDestroyDescriptorPool;
4063 }
4064 if (!strcmp(name, "vkResetDescriptorPool"))
4065 {
4066 return (void*)entry_vkResetDescriptorPool;
4067 }
4068 if (!strcmp(name, "vkAllocateDescriptorSets"))
4069 {
4070 return (void*)entry_vkAllocateDescriptorSets;
4071 }
4072 if (!strcmp(name, "vkFreeDescriptorSets"))
4073 {
4074 return (void*)entry_vkFreeDescriptorSets;
4075 }
4076 if (!strcmp(name, "vkUpdateDescriptorSets"))
4077 {
4078 return (void*)entry_vkUpdateDescriptorSets;
4079 }
4080 if (!strcmp(name, "vkCreateFramebuffer"))
4081 {
4082 return (void*)entry_vkCreateFramebuffer;
4083 }
4084 if (!strcmp(name, "vkDestroyFramebuffer"))
4085 {
4086 return (void*)entry_vkDestroyFramebuffer;
4087 }
4088 if (!strcmp(name, "vkCreateRenderPass"))
4089 {
4090 return (void*)entry_vkCreateRenderPass;
4091 }
4092 if (!strcmp(name, "vkDestroyRenderPass"))
4093 {
4094 return (void*)entry_vkDestroyRenderPass;
4095 }
4096 if (!strcmp(name, "vkGetRenderAreaGranularity"))
4097 {
4098 return (void*)entry_vkGetRenderAreaGranularity;
4099 }
4100 if (!strcmp(name, "vkCreateCommandPool"))
4101 {
4102 return (void*)entry_vkCreateCommandPool;
4103 }
4104 if (!strcmp(name, "vkDestroyCommandPool"))
4105 {
4106 return (void*)entry_vkDestroyCommandPool;
4107 }
4108 if (!strcmp(name, "vkResetCommandPool"))
4109 {
4110 return (void*)entry_vkResetCommandPool;
4111 }
4112 if (!strcmp(name, "vkAllocateCommandBuffers"))
4113 {
4114 return (void*)entry_vkAllocateCommandBuffers;
4115 }
4116 if (!strcmp(name, "vkFreeCommandBuffers"))
4117 {
4118 return (void*)entry_vkFreeCommandBuffers;
4119 }
4120 if (!strcmp(name, "vkBeginCommandBuffer"))
4121 {
4122 return (void*)entry_vkBeginCommandBuffer;
4123 }
4124 if (!strcmp(name, "vkEndCommandBuffer"))
4125 {
4126 return (void*)entry_vkEndCommandBuffer;
4127 }
4128 if (!strcmp(name, "vkResetCommandBuffer"))
4129 {
4130 return (void*)entry_vkResetCommandBuffer;
4131 }
4132 if (!strcmp(name, "vkCmdBindPipeline"))
4133 {
4134 return (void*)entry_vkCmdBindPipeline;
4135 }
4136 if (!strcmp(name, "vkCmdSetViewport"))
4137 {
4138 return (void*)entry_vkCmdSetViewport;
4139 }
4140 if (!strcmp(name, "vkCmdSetScissor"))
4141 {
4142 return (void*)entry_vkCmdSetScissor;
4143 }
4144 if (!strcmp(name, "vkCmdSetLineWidth"))
4145 {
4146 return (void*)entry_vkCmdSetLineWidth;
4147 }
4148 if (!strcmp(name, "vkCmdSetDepthBias"))
4149 {
4150 return (void*)entry_vkCmdSetDepthBias;
4151 }
4152 if (!strcmp(name, "vkCmdSetBlendConstants"))
4153 {
4154 return (void*)entry_vkCmdSetBlendConstants;
4155 }
4156 if (!strcmp(name, "vkCmdSetDepthBounds"))
4157 {
4158 return (void*)entry_vkCmdSetDepthBounds;
4159 }
4160 if (!strcmp(name, "vkCmdSetStencilCompareMask"))
4161 {
4162 return (void*)entry_vkCmdSetStencilCompareMask;
4163 }
4164 if (!strcmp(name, "vkCmdSetStencilWriteMask"))
4165 {
4166 return (void*)entry_vkCmdSetStencilWriteMask;
4167 }
4168 if (!strcmp(name, "vkCmdSetStencilReference"))
4169 {
4170 return (void*)entry_vkCmdSetStencilReference;
4171 }
4172 if (!strcmp(name, "vkCmdBindDescriptorSets"))
4173 {
4174 return (void*)entry_vkCmdBindDescriptorSets;
4175 }
4176 if (!strcmp(name, "vkCmdBindIndexBuffer"))
4177 {
4178 return (void*)entry_vkCmdBindIndexBuffer;
4179 }
4180 if (!strcmp(name, "vkCmdBindVertexBuffers"))
4181 {
4182 return (void*)entry_vkCmdBindVertexBuffers;
4183 }
4184 if (!strcmp(name, "vkCmdDraw"))
4185 {
4186 return (void*)entry_vkCmdDraw;
4187 }
4188 if (!strcmp(name, "vkCmdDrawIndexed"))
4189 {
4190 return (void*)entry_vkCmdDrawIndexed;
4191 }
4192 if (!strcmp(name, "vkCmdDrawIndirect"))
4193 {
4194 return (void*)entry_vkCmdDrawIndirect;
4195 }
4196 if (!strcmp(name, "vkCmdDrawIndexedIndirect"))
4197 {
4198 return (void*)entry_vkCmdDrawIndexedIndirect;
4199 }
4200 if (!strcmp(name, "vkCmdDispatch"))
4201 {
4202 return (void*)entry_vkCmdDispatch;
4203 }
4204 if (!strcmp(name, "vkCmdDispatchIndirect"))
4205 {
4206 return (void*)entry_vkCmdDispatchIndirect;
4207 }
4208 if (!strcmp(name, "vkCmdCopyBuffer"))
4209 {
4210 return (void*)entry_vkCmdCopyBuffer;
4211 }
4212 if (!strcmp(name, "vkCmdCopyImage"))
4213 {
4214 return (void*)entry_vkCmdCopyImage;
4215 }
4216 if (!strcmp(name, "vkCmdBlitImage"))
4217 {
4218 return (void*)entry_vkCmdBlitImage;
4219 }
4220 if (!strcmp(name, "vkCmdCopyBufferToImage"))
4221 {
4222 return (void*)entry_vkCmdCopyBufferToImage;
4223 }
4224 if (!strcmp(name, "vkCmdCopyImageToBuffer"))
4225 {
4226 return (void*)entry_vkCmdCopyImageToBuffer;
4227 }
4228 if (!strcmp(name, "vkCmdUpdateBuffer"))
4229 {
4230 return (void*)entry_vkCmdUpdateBuffer;
4231 }
4232 if (!strcmp(name, "vkCmdFillBuffer"))
4233 {
4234 return (void*)entry_vkCmdFillBuffer;
4235 }
4236 if (!strcmp(name, "vkCmdClearColorImage"))
4237 {
4238 return (void*)entry_vkCmdClearColorImage;
4239 }
4240 if (!strcmp(name, "vkCmdClearDepthStencilImage"))
4241 {
4242 return (void*)entry_vkCmdClearDepthStencilImage;
4243 }
4244 if (!strcmp(name, "vkCmdClearAttachments"))
4245 {
4246 return (void*)entry_vkCmdClearAttachments;
4247 }
4248 if (!strcmp(name, "vkCmdResolveImage"))
4249 {
4250 return (void*)entry_vkCmdResolveImage;
4251 }
4252 if (!strcmp(name, "vkCmdSetEvent"))
4253 {
4254 return (void*)entry_vkCmdSetEvent;
4255 }
4256 if (!strcmp(name, "vkCmdResetEvent"))
4257 {
4258 return (void*)entry_vkCmdResetEvent;
4259 }
4260 if (!strcmp(name, "vkCmdWaitEvents"))
4261 {
4262 return (void*)entry_vkCmdWaitEvents;
4263 }
4264 if (!strcmp(name, "vkCmdPipelineBarrier"))
4265 {
4266 return (void*)entry_vkCmdPipelineBarrier;
4267 }
4268 if (!strcmp(name, "vkCmdBeginQuery"))
4269 {
4270 return (void*)entry_vkCmdBeginQuery;
4271 }
4272 if (!strcmp(name, "vkCmdEndQuery"))
4273 {
4274 return (void*)entry_vkCmdEndQuery;
4275 }
4276 if (!strcmp(name, "vkCmdResetQueryPool"))
4277 {
4278 return (void*)entry_vkCmdResetQueryPool;
4279 }
4280 if (!strcmp(name, "vkCmdWriteTimestamp"))
4281 {
4282 return (void*)entry_vkCmdWriteTimestamp;
4283 }
4284 if (!strcmp(name, "vkCmdCopyQueryPoolResults"))
4285 {
4286 return (void*)entry_vkCmdCopyQueryPoolResults;
4287 }
4288 if (!strcmp(name, "vkCmdPushConstants"))
4289 {
4290 return (void*)entry_vkCmdPushConstants;
4291 }
4292 if (!strcmp(name, "vkCmdBeginRenderPass"))
4293 {
4294 return (void*)entry_vkCmdBeginRenderPass;
4295 }
4296 if (!strcmp(name, "vkCmdNextSubpass"))
4297 {
4298 return (void*)entry_vkCmdNextSubpass;
4299 }
4300 if (!strcmp(name, "vkCmdEndRenderPass"))
4301 {
4302 return (void*)entry_vkCmdEndRenderPass;
4303 }
4304 if (!strcmp(name, "vkCmdExecuteCommands"))
4305 {
4306 return (void*)entry_vkCmdExecuteCommands;
4307 }
4308#endif
4309#ifdef VK_VERSION_1_1
4310 if (!strcmp(name, "vkEnumerateInstanceVersion"))
4311 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004312 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004313 }
4314 if (!strcmp(name, "vkBindBufferMemory2"))
4315 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004316 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004317 }
4318 if (!strcmp(name, "vkBindImageMemory2"))
4319 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004320 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004321 }
4322 if (!strcmp(name, "vkGetDeviceGroupPeerMemoryFeatures"))
4323 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004324 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004325 }
4326 if (!strcmp(name, "vkCmdSetDeviceMask"))
4327 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004328 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004329 }
4330 if (!strcmp(name, "vkCmdDispatchBase"))
4331 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004332 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004333 }
4334 if (!strcmp(name, "vkEnumeratePhysicalDeviceGroups"))
4335 {
Lingfeng Yang113689e2018-11-11 16:48:50 -08004336 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004337 }
4338 if (!strcmp(name, "vkGetImageMemoryRequirements2"))
4339 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004340 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004341 }
4342 if (!strcmp(name, "vkGetBufferMemoryRequirements2"))
4343 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004344 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004345 }
4346 if (!strcmp(name, "vkGetImageSparseMemoryRequirements2"))
4347 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004348 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004349 }
4350 if (!strcmp(name, "vkGetPhysicalDeviceFeatures2"))
4351 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004352 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004353 }
4354 if (!strcmp(name, "vkGetPhysicalDeviceProperties2"))
4355 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004356 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004357 }
4358 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties2"))
4359 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004360 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004361 }
4362 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties2"))
4363 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004364 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004365 }
4366 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties2"))
4367 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004368 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004369 }
4370 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties2"))
4371 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004372 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004373 }
4374 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties2"))
4375 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004376 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004377 }
4378 if (!strcmp(name, "vkTrimCommandPool"))
4379 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004380 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004381 }
4382 if (!strcmp(name, "vkGetDeviceQueue2"))
4383 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004384 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004385 }
4386 if (!strcmp(name, "vkCreateSamplerYcbcrConversion"))
4387 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004388 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004389 }
4390 if (!strcmp(name, "vkDestroySamplerYcbcrConversion"))
4391 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004392 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004393 }
4394 if (!strcmp(name, "vkCreateDescriptorUpdateTemplate"))
4395 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004396 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004397 }
4398 if (!strcmp(name, "vkDestroyDescriptorUpdateTemplate"))
4399 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004400 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004401 }
4402 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplate"))
4403 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004404 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004405 }
4406 if (!strcmp(name, "vkGetPhysicalDeviceExternalBufferProperties"))
4407 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004408 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004409 }
4410 if (!strcmp(name, "vkGetPhysicalDeviceExternalFenceProperties"))
4411 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004412 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004413 }
4414 if (!strcmp(name, "vkGetPhysicalDeviceExternalSemaphoreProperties"))
4415 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004416 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004417 }
4418 if (!strcmp(name, "vkGetDescriptorSetLayoutSupport"))
4419 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004420 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004421 }
4422#endif
4423#ifdef VK_KHR_surface
4424 if (!strcmp(name, "vkDestroySurfaceKHR"))
4425 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004426 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004427 }
4428 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceSupportKHR"))
4429 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004430 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004431 }
4432 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR"))
4433 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004434 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004435 }
4436 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceFormatsKHR"))
4437 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004438 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004439 }
4440 if (!strcmp(name, "vkGetPhysicalDeviceSurfacePresentModesKHR"))
4441 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004442 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004443 }
4444#endif
4445#ifdef VK_KHR_swapchain
4446 if (!strcmp(name, "vkCreateSwapchainKHR"))
4447 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004448 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004449 }
4450 if (!strcmp(name, "vkDestroySwapchainKHR"))
4451 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004452 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004453 }
4454 if (!strcmp(name, "vkGetSwapchainImagesKHR"))
4455 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004456 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004457 }
4458 if (!strcmp(name, "vkAcquireNextImageKHR"))
4459 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004460 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004461 }
4462 if (!strcmp(name, "vkQueuePresentKHR"))
4463 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004464 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004465 }
4466 if (!strcmp(name, "vkGetDeviceGroupPresentCapabilitiesKHR"))
4467 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004468 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004469 }
4470 if (!strcmp(name, "vkGetDeviceGroupSurfacePresentModesKHR"))
4471 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004472 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004473 }
4474 if (!strcmp(name, "vkGetPhysicalDevicePresentRectanglesKHR"))
4475 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004476 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004477 }
4478 if (!strcmp(name, "vkAcquireNextImage2KHR"))
4479 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004480 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004481 }
4482#endif
4483#ifdef VK_KHR_display
4484 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPropertiesKHR"))
4485 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004486 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004487 }
4488 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR"))
4489 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004490 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004491 }
4492 if (!strcmp(name, "vkGetDisplayPlaneSupportedDisplaysKHR"))
4493 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004494 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004495 }
4496 if (!strcmp(name, "vkGetDisplayModePropertiesKHR"))
4497 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004498 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004499 }
4500 if (!strcmp(name, "vkCreateDisplayModeKHR"))
4501 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004502 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004503 }
4504 if (!strcmp(name, "vkGetDisplayPlaneCapabilitiesKHR"))
4505 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004506 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004507 }
4508 if (!strcmp(name, "vkCreateDisplayPlaneSurfaceKHR"))
4509 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004510 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004511 }
4512#endif
4513#ifdef VK_KHR_display_swapchain
4514 if (!strcmp(name, "vkCreateSharedSwapchainsKHR"))
4515 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004516 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004517 }
4518#endif
4519#ifdef VK_KHR_xlib_surface
4520 if (!strcmp(name, "vkCreateXlibSurfaceKHR"))
4521 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004522 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004523 }
4524 if (!strcmp(name, "vkGetPhysicalDeviceXlibPresentationSupportKHR"))
4525 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004526 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004527 }
4528#endif
4529#ifdef VK_KHR_xcb_surface
4530 if (!strcmp(name, "vkCreateXcbSurfaceKHR"))
4531 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004532 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004533 }
4534 if (!strcmp(name, "vkGetPhysicalDeviceXcbPresentationSupportKHR"))
4535 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004536 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004537 }
4538#endif
4539#ifdef VK_KHR_wayland_surface
4540 if (!strcmp(name, "vkCreateWaylandSurfaceKHR"))
4541 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004542 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004543 }
4544 if (!strcmp(name, "vkGetPhysicalDeviceWaylandPresentationSupportKHR"))
4545 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004546 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004547 }
4548#endif
4549#ifdef VK_KHR_mir_surface
4550 if (!strcmp(name, "vkCreateMirSurfaceKHR"))
4551 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004552 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004553 }
4554 if (!strcmp(name, "vkGetPhysicalDeviceMirPresentationSupportKHR"))
4555 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004556 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004557 }
4558#endif
4559#ifdef VK_KHR_android_surface
4560 if (!strcmp(name, "vkCreateAndroidSurfaceKHR"))
4561 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004562 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004563 }
4564#endif
4565#ifdef VK_KHR_win32_surface
4566 if (!strcmp(name, "vkCreateWin32SurfaceKHR"))
4567 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004568 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004569 }
4570 if (!strcmp(name, "vkGetPhysicalDeviceWin32PresentationSupportKHR"))
4571 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004572 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004573 }
4574#endif
4575#ifdef VK_KHR_get_physical_device_properties2
4576 if (!strcmp(name, "vkGetPhysicalDeviceFeatures2KHR"))
4577 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004578 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004579 }
4580 if (!strcmp(name, "vkGetPhysicalDeviceProperties2KHR"))
4581 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004582 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004583 }
4584 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties2KHR"))
4585 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004586 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004587 }
4588 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties2KHR"))
4589 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004590 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004591 }
4592 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties2KHR"))
4593 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004594 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004595 }
4596 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties2KHR"))
4597 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004598 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004599 }
4600 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR"))
4601 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004602 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004603 }
4604#endif
4605#ifdef VK_KHR_device_group
4606 if (!strcmp(name, "vkGetDeviceGroupPeerMemoryFeaturesKHR"))
4607 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004608 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004609 }
4610 if (!strcmp(name, "vkCmdSetDeviceMaskKHR"))
4611 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004612 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004613 }
4614 if (!strcmp(name, "vkCmdDispatchBaseKHR"))
4615 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004616 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004617 }
4618#endif
4619#ifdef VK_KHR_maintenance1
4620 if (!strcmp(name, "vkTrimCommandPoolKHR"))
4621 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004622 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004623 }
4624#endif
4625#ifdef VK_KHR_device_group_creation
4626 if (!strcmp(name, "vkEnumeratePhysicalDeviceGroupsKHR"))
4627 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004628 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004629 }
4630#endif
4631#ifdef VK_KHR_external_memory_capabilities
4632 if (!strcmp(name, "vkGetPhysicalDeviceExternalBufferPropertiesKHR"))
4633 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004634 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004635 }
4636#endif
4637#ifdef VK_KHR_external_memory_win32
4638 if (!strcmp(name, "vkGetMemoryWin32HandleKHR"))
4639 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004640 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004641 }
4642 if (!strcmp(name, "vkGetMemoryWin32HandlePropertiesKHR"))
4643 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004644 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004645 }
4646#endif
4647#ifdef VK_KHR_external_memory_fd
4648 if (!strcmp(name, "vkGetMemoryFdKHR"))
4649 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004650 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004651 }
4652 if (!strcmp(name, "vkGetMemoryFdPropertiesKHR"))
4653 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004654 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004655 }
4656#endif
4657#ifdef VK_KHR_external_semaphore_capabilities
4658 if (!strcmp(name, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR"))
4659 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004660 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004661 }
4662#endif
4663#ifdef VK_KHR_external_semaphore_win32
4664 if (!strcmp(name, "vkImportSemaphoreWin32HandleKHR"))
4665 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004666 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004667 }
4668 if (!strcmp(name, "vkGetSemaphoreWin32HandleKHR"))
4669 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004670 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004671 }
4672#endif
4673#ifdef VK_KHR_external_semaphore_fd
4674 if (!strcmp(name, "vkImportSemaphoreFdKHR"))
4675 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004676 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004677 }
4678 if (!strcmp(name, "vkGetSemaphoreFdKHR"))
4679 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004680 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004681 }
4682#endif
4683#ifdef VK_KHR_push_descriptor
4684 if (!strcmp(name, "vkCmdPushDescriptorSetKHR"))
4685 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004686 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004687 }
4688 if (!strcmp(name, "vkCmdPushDescriptorSetWithTemplateKHR"))
4689 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004690 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004691 }
4692#endif
4693#ifdef VK_KHR_descriptor_update_template
4694 if (!strcmp(name, "vkCreateDescriptorUpdateTemplateKHR"))
4695 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004696 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004697 }
4698 if (!strcmp(name, "vkDestroyDescriptorUpdateTemplateKHR"))
4699 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004700 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004701 }
4702 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplateKHR"))
4703 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004704 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004705 }
4706#endif
4707#ifdef VK_KHR_create_renderpass2
4708 if (!strcmp(name, "vkCreateRenderPass2KHR"))
4709 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004710 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004711 }
4712 if (!strcmp(name, "vkCmdBeginRenderPass2KHR"))
4713 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004714 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004715 }
4716 if (!strcmp(name, "vkCmdNextSubpass2KHR"))
4717 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004718 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004719 }
4720 if (!strcmp(name, "vkCmdEndRenderPass2KHR"))
4721 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004722 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004723 }
4724#endif
4725#ifdef VK_KHR_shared_presentable_image
4726 if (!strcmp(name, "vkGetSwapchainStatusKHR"))
4727 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004728 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004729 }
4730#endif
4731#ifdef VK_KHR_external_fence_capabilities
4732 if (!strcmp(name, "vkGetPhysicalDeviceExternalFencePropertiesKHR"))
4733 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004734 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004735 }
4736#endif
4737#ifdef VK_KHR_external_fence_win32
4738 if (!strcmp(name, "vkImportFenceWin32HandleKHR"))
4739 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004740 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004741 }
4742 if (!strcmp(name, "vkGetFenceWin32HandleKHR"))
4743 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004744 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004745 }
4746#endif
4747#ifdef VK_KHR_external_fence_fd
4748 if (!strcmp(name, "vkImportFenceFdKHR"))
4749 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004750 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004751 }
4752 if (!strcmp(name, "vkGetFenceFdKHR"))
4753 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004754 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004755 }
4756#endif
4757#ifdef VK_KHR_get_surface_capabilities2
4758 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2KHR"))
4759 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004760 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004761 }
4762 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceFormats2KHR"))
4763 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004764 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004765 }
4766#endif
4767#ifdef VK_KHR_get_display_properties2
4768 if (!strcmp(name, "vkGetPhysicalDeviceDisplayProperties2KHR"))
4769 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004770 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004771 }
4772 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR"))
4773 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004774 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004775 }
4776 if (!strcmp(name, "vkGetDisplayModeProperties2KHR"))
4777 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004778 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004779 }
4780 if (!strcmp(name, "vkGetDisplayPlaneCapabilities2KHR"))
4781 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004782 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004783 }
4784#endif
4785#ifdef VK_KHR_get_memory_requirements2
4786 if (!strcmp(name, "vkGetImageMemoryRequirements2KHR"))
4787 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004788 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004789 }
4790 if (!strcmp(name, "vkGetBufferMemoryRequirements2KHR"))
4791 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004792 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004793 }
4794 if (!strcmp(name, "vkGetImageSparseMemoryRequirements2KHR"))
4795 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004796 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004797 }
4798#endif
4799#ifdef VK_KHR_sampler_ycbcr_conversion
4800 if (!strcmp(name, "vkCreateSamplerYcbcrConversionKHR"))
4801 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004802 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004803 }
4804 if (!strcmp(name, "vkDestroySamplerYcbcrConversionKHR"))
4805 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004806 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004807 }
4808#endif
4809#ifdef VK_KHR_bind_memory2
4810 if (!strcmp(name, "vkBindBufferMemory2KHR"))
4811 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004812 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004813 }
4814 if (!strcmp(name, "vkBindImageMemory2KHR"))
4815 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004816 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004817 }
4818#endif
4819#ifdef VK_KHR_maintenance3
4820 if (!strcmp(name, "vkGetDescriptorSetLayoutSupportKHR"))
4821 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004822 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004823 }
4824#endif
4825#ifdef VK_KHR_draw_indirect_count
4826 if (!strcmp(name, "vkCmdDrawIndirectCountKHR"))
4827 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004828 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004829 }
4830 if (!strcmp(name, "vkCmdDrawIndexedIndirectCountKHR"))
4831 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004832 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004833 }
4834#endif
Lingfeng Yang808a6312018-11-13 21:06:15 -08004835#ifdef VK_ANDROID_native_buffer
4836 if (!strcmp(name, "vkGetSwapchainGrallocUsageANDROID"))
4837 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004838 return nullptr;
Lingfeng Yang808a6312018-11-13 21:06:15 -08004839 }
4840 if (!strcmp(name, "vkAcquireImageANDROID"))
4841 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004842 return nullptr;
Lingfeng Yang808a6312018-11-13 21:06:15 -08004843 }
4844 if (!strcmp(name, "vkQueueSignalReleaseImageANDROID"))
4845 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004846 return nullptr;
Lingfeng Yang808a6312018-11-13 21:06:15 -08004847 }
4848#endif
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004849#ifdef VK_EXT_debug_report
4850 if (!strcmp(name, "vkCreateDebugReportCallbackEXT"))
4851 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004852 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004853 }
4854 if (!strcmp(name, "vkDestroyDebugReportCallbackEXT"))
4855 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004856 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004857 }
4858 if (!strcmp(name, "vkDebugReportMessageEXT"))
4859 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004860 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004861 }
4862#endif
4863#ifdef VK_EXT_debug_marker
4864 if (!strcmp(name, "vkDebugMarkerSetObjectTagEXT"))
4865 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004866 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004867 }
4868 if (!strcmp(name, "vkDebugMarkerSetObjectNameEXT"))
4869 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004870 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004871 }
4872 if (!strcmp(name, "vkCmdDebugMarkerBeginEXT"))
4873 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004874 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004875 }
4876 if (!strcmp(name, "vkCmdDebugMarkerEndEXT"))
4877 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004878 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004879 }
4880 if (!strcmp(name, "vkCmdDebugMarkerInsertEXT"))
4881 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004882 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004883 }
4884#endif
4885#ifdef VK_AMD_draw_indirect_count
4886 if (!strcmp(name, "vkCmdDrawIndirectCountAMD"))
4887 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004888 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004889 }
4890 if (!strcmp(name, "vkCmdDrawIndexedIndirectCountAMD"))
4891 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004892 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004893 }
4894#endif
4895#ifdef VK_AMD_shader_info
4896 if (!strcmp(name, "vkGetShaderInfoAMD"))
4897 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004898 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004899 }
4900#endif
4901#ifdef VK_NV_external_memory_capabilities
4902 if (!strcmp(name, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV"))
4903 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004904 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004905 }
4906#endif
4907#ifdef VK_NV_external_memory_win32
4908 if (!strcmp(name, "vkGetMemoryWin32HandleNV"))
4909 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004910 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004911 }
4912#endif
4913#ifdef VK_NN_vi_surface
4914 if (!strcmp(name, "vkCreateViSurfaceNN"))
4915 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004916 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004917 }
4918#endif
4919#ifdef VK_EXT_conditional_rendering
4920 if (!strcmp(name, "vkCmdBeginConditionalRenderingEXT"))
4921 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004922 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004923 }
4924 if (!strcmp(name, "vkCmdEndConditionalRenderingEXT"))
4925 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004926 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004927 }
4928#endif
4929#ifdef VK_NVX_device_generated_commands
4930 if (!strcmp(name, "vkCmdProcessCommandsNVX"))
4931 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004932 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004933 }
4934 if (!strcmp(name, "vkCmdReserveSpaceForCommandsNVX"))
4935 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004936 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004937 }
4938 if (!strcmp(name, "vkCreateIndirectCommandsLayoutNVX"))
4939 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004940 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004941 }
4942 if (!strcmp(name, "vkDestroyIndirectCommandsLayoutNVX"))
4943 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004944 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004945 }
4946 if (!strcmp(name, "vkCreateObjectTableNVX"))
4947 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004948 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004949 }
4950 if (!strcmp(name, "vkDestroyObjectTableNVX"))
4951 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004952 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004953 }
4954 if (!strcmp(name, "vkRegisterObjectsNVX"))
4955 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004956 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004957 }
4958 if (!strcmp(name, "vkUnregisterObjectsNVX"))
4959 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004960 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004961 }
4962 if (!strcmp(name, "vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX"))
4963 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004964 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004965 }
4966#endif
4967#ifdef VK_NV_clip_space_w_scaling
4968 if (!strcmp(name, "vkCmdSetViewportWScalingNV"))
4969 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004970 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004971 }
4972#endif
4973#ifdef VK_EXT_direct_mode_display
4974 if (!strcmp(name, "vkReleaseDisplayEXT"))
4975 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004976 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004977 }
4978#endif
4979#ifdef VK_EXT_acquire_xlib_display
4980 if (!strcmp(name, "vkAcquireXlibDisplayEXT"))
4981 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004982 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004983 }
4984 if (!strcmp(name, "vkGetRandROutputDisplayEXT"))
4985 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004986 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004987 }
4988#endif
4989#ifdef VK_EXT_display_surface_counter
4990 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2EXT"))
4991 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004992 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004993 }
4994#endif
4995#ifdef VK_EXT_display_control
4996 if (!strcmp(name, "vkDisplayPowerControlEXT"))
4997 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004998 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004999 }
5000 if (!strcmp(name, "vkRegisterDeviceEventEXT"))
5001 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005002 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005003 }
5004 if (!strcmp(name, "vkRegisterDisplayEventEXT"))
5005 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005006 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005007 }
5008 if (!strcmp(name, "vkGetSwapchainCounterEXT"))
5009 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005010 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005011 }
5012#endif
5013#ifdef VK_GOOGLE_display_timing
5014 if (!strcmp(name, "vkGetRefreshCycleDurationGOOGLE"))
5015 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005016 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005017 }
5018 if (!strcmp(name, "vkGetPastPresentationTimingGOOGLE"))
5019 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005020 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005021 }
5022#endif
5023#ifdef VK_EXT_discard_rectangles
5024 if (!strcmp(name, "vkCmdSetDiscardRectangleEXT"))
5025 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005026 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005027 }
5028#endif
5029#ifdef VK_EXT_hdr_metadata
5030 if (!strcmp(name, "vkSetHdrMetadataEXT"))
5031 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005032 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005033 }
5034#endif
5035#ifdef VK_MVK_ios_surface
5036 if (!strcmp(name, "vkCreateIOSSurfaceMVK"))
5037 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005038 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005039 }
5040#endif
5041#ifdef VK_MVK_macos_surface
5042 if (!strcmp(name, "vkCreateMacOSSurfaceMVK"))
5043 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005044 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005045 }
5046#endif
5047#ifdef VK_EXT_debug_utils
5048 if (!strcmp(name, "vkSetDebugUtilsObjectNameEXT"))
5049 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005050 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005051 }
5052 if (!strcmp(name, "vkSetDebugUtilsObjectTagEXT"))
5053 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005054 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005055 }
5056 if (!strcmp(name, "vkQueueBeginDebugUtilsLabelEXT"))
5057 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005058 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005059 }
5060 if (!strcmp(name, "vkQueueEndDebugUtilsLabelEXT"))
5061 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005062 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005063 }
5064 if (!strcmp(name, "vkQueueInsertDebugUtilsLabelEXT"))
5065 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005066 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005067 }
5068 if (!strcmp(name, "vkCmdBeginDebugUtilsLabelEXT"))
5069 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005070 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005071 }
5072 if (!strcmp(name, "vkCmdEndDebugUtilsLabelEXT"))
5073 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005074 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005075 }
5076 if (!strcmp(name, "vkCmdInsertDebugUtilsLabelEXT"))
5077 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005078 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005079 }
5080 if (!strcmp(name, "vkCreateDebugUtilsMessengerEXT"))
5081 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005082 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005083 }
5084 if (!strcmp(name, "vkDestroyDebugUtilsMessengerEXT"))
5085 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005086 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005087 }
5088 if (!strcmp(name, "vkSubmitDebugUtilsMessageEXT"))
5089 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005090 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005091 }
5092#endif
5093#ifdef VK_ANDROID_external_memory_android_hardware_buffer
5094 if (!strcmp(name, "vkGetAndroidHardwareBufferPropertiesANDROID"))
5095 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005096 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005097 }
5098 if (!strcmp(name, "vkGetMemoryAndroidHardwareBufferANDROID"))
5099 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005100 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005101 }
5102#endif
5103#ifdef VK_EXT_sample_locations
5104 if (!strcmp(name, "vkCmdSetSampleLocationsEXT"))
5105 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005106 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005107 }
5108 if (!strcmp(name, "vkGetPhysicalDeviceMultisamplePropertiesEXT"))
5109 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005110 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005111 }
5112#endif
5113#ifdef VK_EXT_validation_cache
5114 if (!strcmp(name, "vkCreateValidationCacheEXT"))
5115 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005116 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005117 }
5118 if (!strcmp(name, "vkDestroyValidationCacheEXT"))
5119 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005120 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005121 }
5122 if (!strcmp(name, "vkMergeValidationCachesEXT"))
5123 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005124 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005125 }
5126 if (!strcmp(name, "vkGetValidationCacheDataEXT"))
5127 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005128 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005129 }
5130#endif
5131#ifdef VK_EXT_external_memory_host
5132 if (!strcmp(name, "vkGetMemoryHostPointerPropertiesEXT"))
5133 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005134 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005135 }
5136#endif
5137#ifdef VK_AMD_buffer_marker
5138 if (!strcmp(name, "vkCmdWriteBufferMarkerAMD"))
5139 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005140 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005141 }
5142#endif
5143#ifdef VK_NV_device_diagnostic_checkpoints
5144 if (!strcmp(name, "vkCmdSetCheckpointNV"))
5145 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005146 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005147 }
5148 if (!strcmp(name, "vkGetQueueCheckpointDataNV"))
5149 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005150 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005151 }
5152#endif
Lingfeng Yang5c63afd2018-12-22 01:21:14 -08005153#ifdef VK_GOOGLE_address_space
5154 if (!strcmp(name, "vkMapMemoryIntoAddressSpaceGOOGLE"))
5155 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005156 return nullptr;
5157 }
5158#endif
Lingfeng Yangae7e1b32019-02-19 14:07:39 -08005159#ifdef VK_GOOGLE_color_buffer
5160 if (!strcmp(name, "vkRegisterImageColorBufferGOOGLE"))
5161 {
5162 return nullptr;
5163 }
5164 if (!strcmp(name, "vkRegisterBufferColorBufferGOOGLE"))
5165 {
5166 return nullptr;
5167 }
5168#endif
Lingfeng Yang05d5ea32019-03-23 00:12:39 -07005169#ifdef VK_GOOGLE_sized_descriptor_update_template
5170 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplateSizedGOOGLE"))
5171 {
5172 return nullptr;
5173 }
5174#endif
Lingfeng Yangc53e7472019-03-27 08:50:55 -07005175#ifdef VK_GOOGLE_async_command_buffers
5176 if (!strcmp(name, "vkBeginCommandBufferAsyncGOOGLE"))
5177 {
5178 return nullptr;
5179 }
5180 if (!strcmp(name, "vkEndCommandBufferAsyncGOOGLE"))
5181 {
5182 return nullptr;
5183 }
5184 if (!strcmp(name, "vkResetCommandBufferAsyncGOOGLE"))
5185 {
5186 return nullptr;
5187 }
5188#endif
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005189 return nullptr;
5190}
5191void* goldfish_vulkan_get_instance_proc_address(VkInstance instance, const char* name){
5192 auto resources = ResourceTracker::get();
5193 bool has1_1OrHigher = resources->getApiVersionFromInstance(instance) >= VK_API_VERSION_1_1;
5194#ifdef VK_VERSION_1_0
5195 if (!strcmp(name, "vkCreateInstance"))
5196 {
5197 return (void*)entry_vkCreateInstance;
5198 }
5199 if (!strcmp(name, "vkDestroyInstance"))
5200 {
5201 return (void*)entry_vkDestroyInstance;
5202 }
5203 if (!strcmp(name, "vkEnumeratePhysicalDevices"))
5204 {
5205 return (void*)entry_vkEnumeratePhysicalDevices;
5206 }
5207 if (!strcmp(name, "vkGetPhysicalDeviceFeatures"))
5208 {
5209 return (void*)entry_vkGetPhysicalDeviceFeatures;
5210 }
5211 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties"))
5212 {
5213 return (void*)entry_vkGetPhysicalDeviceFormatProperties;
5214 }
5215 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties"))
5216 {
5217 return (void*)entry_vkGetPhysicalDeviceImageFormatProperties;
5218 }
5219 if (!strcmp(name, "vkGetPhysicalDeviceProperties"))
5220 {
5221 return (void*)entry_vkGetPhysicalDeviceProperties;
5222 }
5223 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties"))
5224 {
5225 return (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties;
5226 }
5227 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties"))
5228 {
5229 return (void*)entry_vkGetPhysicalDeviceMemoryProperties;
5230 }
5231 if (!strcmp(name, "vkGetInstanceProcAddr"))
5232 {
5233 return (void*)entry_vkGetInstanceProcAddr;
5234 }
5235 if (!strcmp(name, "vkGetDeviceProcAddr"))
5236 {
5237 return (void*)entry_vkGetDeviceProcAddr;
5238 }
5239 if (!strcmp(name, "vkCreateDevice"))
5240 {
5241 return (void*)entry_vkCreateDevice;
5242 }
5243 if (!strcmp(name, "vkDestroyDevice"))
5244 {
5245 return (void*)entry_vkDestroyDevice;
5246 }
5247 if (!strcmp(name, "vkEnumerateInstanceExtensionProperties"))
5248 {
5249 return (void*)entry_vkEnumerateInstanceExtensionProperties;
5250 }
5251 if (!strcmp(name, "vkEnumerateDeviceExtensionProperties"))
5252 {
5253 return (void*)entry_vkEnumerateDeviceExtensionProperties;
5254 }
5255 if (!strcmp(name, "vkEnumerateInstanceLayerProperties"))
5256 {
5257 return (void*)entry_vkEnumerateInstanceLayerProperties;
5258 }
5259 if (!strcmp(name, "vkEnumerateDeviceLayerProperties"))
5260 {
5261 return (void*)entry_vkEnumerateDeviceLayerProperties;
5262 }
5263 if (!strcmp(name, "vkGetDeviceQueue"))
5264 {
5265 return (void*)entry_vkGetDeviceQueue;
5266 }
5267 if (!strcmp(name, "vkQueueSubmit"))
5268 {
5269 return (void*)entry_vkQueueSubmit;
5270 }
5271 if (!strcmp(name, "vkQueueWaitIdle"))
5272 {
5273 return (void*)entry_vkQueueWaitIdle;
5274 }
5275 if (!strcmp(name, "vkDeviceWaitIdle"))
5276 {
5277 return (void*)entry_vkDeviceWaitIdle;
5278 }
5279 if (!strcmp(name, "vkAllocateMemory"))
5280 {
5281 return (void*)entry_vkAllocateMemory;
5282 }
5283 if (!strcmp(name, "vkFreeMemory"))
5284 {
5285 return (void*)entry_vkFreeMemory;
5286 }
5287 if (!strcmp(name, "vkMapMemory"))
5288 {
5289 return (void*)entry_vkMapMemory;
5290 }
5291 if (!strcmp(name, "vkUnmapMemory"))
5292 {
5293 return (void*)entry_vkUnmapMemory;
5294 }
5295 if (!strcmp(name, "vkFlushMappedMemoryRanges"))
5296 {
5297 return (void*)entry_vkFlushMappedMemoryRanges;
5298 }
5299 if (!strcmp(name, "vkInvalidateMappedMemoryRanges"))
5300 {
5301 return (void*)entry_vkInvalidateMappedMemoryRanges;
5302 }
5303 if (!strcmp(name, "vkGetDeviceMemoryCommitment"))
5304 {
5305 return (void*)entry_vkGetDeviceMemoryCommitment;
5306 }
5307 if (!strcmp(name, "vkBindBufferMemory"))
5308 {
5309 return (void*)entry_vkBindBufferMemory;
5310 }
5311 if (!strcmp(name, "vkBindImageMemory"))
5312 {
5313 return (void*)entry_vkBindImageMemory;
5314 }
5315 if (!strcmp(name, "vkGetBufferMemoryRequirements"))
5316 {
5317 return (void*)entry_vkGetBufferMemoryRequirements;
5318 }
5319 if (!strcmp(name, "vkGetImageMemoryRequirements"))
5320 {
5321 return (void*)entry_vkGetImageMemoryRequirements;
5322 }
5323 if (!strcmp(name, "vkGetImageSparseMemoryRequirements"))
5324 {
5325 return (void*)entry_vkGetImageSparseMemoryRequirements;
5326 }
5327 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties"))
5328 {
5329 return (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties;
5330 }
5331 if (!strcmp(name, "vkQueueBindSparse"))
5332 {
5333 return (void*)entry_vkQueueBindSparse;
5334 }
5335 if (!strcmp(name, "vkCreateFence"))
5336 {
5337 return (void*)entry_vkCreateFence;
5338 }
5339 if (!strcmp(name, "vkDestroyFence"))
5340 {
5341 return (void*)entry_vkDestroyFence;
5342 }
5343 if (!strcmp(name, "vkResetFences"))
5344 {
5345 return (void*)entry_vkResetFences;
5346 }
5347 if (!strcmp(name, "vkGetFenceStatus"))
5348 {
5349 return (void*)entry_vkGetFenceStatus;
5350 }
5351 if (!strcmp(name, "vkWaitForFences"))
5352 {
5353 return (void*)entry_vkWaitForFences;
5354 }
5355 if (!strcmp(name, "vkCreateSemaphore"))
5356 {
5357 return (void*)entry_vkCreateSemaphore;
5358 }
5359 if (!strcmp(name, "vkDestroySemaphore"))
5360 {
5361 return (void*)entry_vkDestroySemaphore;
5362 }
5363 if (!strcmp(name, "vkCreateEvent"))
5364 {
5365 return (void*)entry_vkCreateEvent;
5366 }
5367 if (!strcmp(name, "vkDestroyEvent"))
5368 {
5369 return (void*)entry_vkDestroyEvent;
5370 }
5371 if (!strcmp(name, "vkGetEventStatus"))
5372 {
5373 return (void*)entry_vkGetEventStatus;
5374 }
5375 if (!strcmp(name, "vkSetEvent"))
5376 {
5377 return (void*)entry_vkSetEvent;
5378 }
5379 if (!strcmp(name, "vkResetEvent"))
5380 {
5381 return (void*)entry_vkResetEvent;
5382 }
5383 if (!strcmp(name, "vkCreateQueryPool"))
5384 {
5385 return (void*)entry_vkCreateQueryPool;
5386 }
5387 if (!strcmp(name, "vkDestroyQueryPool"))
5388 {
5389 return (void*)entry_vkDestroyQueryPool;
5390 }
5391 if (!strcmp(name, "vkGetQueryPoolResults"))
5392 {
5393 return (void*)entry_vkGetQueryPoolResults;
5394 }
5395 if (!strcmp(name, "vkCreateBuffer"))
5396 {
5397 return (void*)entry_vkCreateBuffer;
5398 }
5399 if (!strcmp(name, "vkDestroyBuffer"))
5400 {
5401 return (void*)entry_vkDestroyBuffer;
5402 }
5403 if (!strcmp(name, "vkCreateBufferView"))
5404 {
5405 return (void*)entry_vkCreateBufferView;
5406 }
5407 if (!strcmp(name, "vkDestroyBufferView"))
5408 {
5409 return (void*)entry_vkDestroyBufferView;
5410 }
5411 if (!strcmp(name, "vkCreateImage"))
5412 {
5413 return (void*)entry_vkCreateImage;
5414 }
5415 if (!strcmp(name, "vkDestroyImage"))
5416 {
5417 return (void*)entry_vkDestroyImage;
5418 }
5419 if (!strcmp(name, "vkGetImageSubresourceLayout"))
5420 {
5421 return (void*)entry_vkGetImageSubresourceLayout;
5422 }
5423 if (!strcmp(name, "vkCreateImageView"))
5424 {
5425 return (void*)entry_vkCreateImageView;
5426 }
5427 if (!strcmp(name, "vkDestroyImageView"))
5428 {
5429 return (void*)entry_vkDestroyImageView;
5430 }
5431 if (!strcmp(name, "vkCreateShaderModule"))
5432 {
5433 return (void*)entry_vkCreateShaderModule;
5434 }
5435 if (!strcmp(name, "vkDestroyShaderModule"))
5436 {
5437 return (void*)entry_vkDestroyShaderModule;
5438 }
5439 if (!strcmp(name, "vkCreatePipelineCache"))
5440 {
5441 return (void*)entry_vkCreatePipelineCache;
5442 }
5443 if (!strcmp(name, "vkDestroyPipelineCache"))
5444 {
5445 return (void*)entry_vkDestroyPipelineCache;
5446 }
5447 if (!strcmp(name, "vkGetPipelineCacheData"))
5448 {
5449 return (void*)entry_vkGetPipelineCacheData;
5450 }
5451 if (!strcmp(name, "vkMergePipelineCaches"))
5452 {
5453 return (void*)entry_vkMergePipelineCaches;
5454 }
5455 if (!strcmp(name, "vkCreateGraphicsPipelines"))
5456 {
5457 return (void*)entry_vkCreateGraphicsPipelines;
5458 }
5459 if (!strcmp(name, "vkCreateComputePipelines"))
5460 {
5461 return (void*)entry_vkCreateComputePipelines;
5462 }
5463 if (!strcmp(name, "vkDestroyPipeline"))
5464 {
5465 return (void*)entry_vkDestroyPipeline;
5466 }
5467 if (!strcmp(name, "vkCreatePipelineLayout"))
5468 {
5469 return (void*)entry_vkCreatePipelineLayout;
5470 }
5471 if (!strcmp(name, "vkDestroyPipelineLayout"))
5472 {
5473 return (void*)entry_vkDestroyPipelineLayout;
5474 }
5475 if (!strcmp(name, "vkCreateSampler"))
5476 {
5477 return (void*)entry_vkCreateSampler;
5478 }
5479 if (!strcmp(name, "vkDestroySampler"))
5480 {
5481 return (void*)entry_vkDestroySampler;
5482 }
5483 if (!strcmp(name, "vkCreateDescriptorSetLayout"))
5484 {
5485 return (void*)entry_vkCreateDescriptorSetLayout;
5486 }
5487 if (!strcmp(name, "vkDestroyDescriptorSetLayout"))
5488 {
5489 return (void*)entry_vkDestroyDescriptorSetLayout;
5490 }
5491 if (!strcmp(name, "vkCreateDescriptorPool"))
5492 {
5493 return (void*)entry_vkCreateDescriptorPool;
5494 }
5495 if (!strcmp(name, "vkDestroyDescriptorPool"))
5496 {
5497 return (void*)entry_vkDestroyDescriptorPool;
5498 }
5499 if (!strcmp(name, "vkResetDescriptorPool"))
5500 {
5501 return (void*)entry_vkResetDescriptorPool;
5502 }
5503 if (!strcmp(name, "vkAllocateDescriptorSets"))
5504 {
5505 return (void*)entry_vkAllocateDescriptorSets;
5506 }
5507 if (!strcmp(name, "vkFreeDescriptorSets"))
5508 {
5509 return (void*)entry_vkFreeDescriptorSets;
5510 }
5511 if (!strcmp(name, "vkUpdateDescriptorSets"))
5512 {
5513 return (void*)entry_vkUpdateDescriptorSets;
5514 }
5515 if (!strcmp(name, "vkCreateFramebuffer"))
5516 {
5517 return (void*)entry_vkCreateFramebuffer;
5518 }
5519 if (!strcmp(name, "vkDestroyFramebuffer"))
5520 {
5521 return (void*)entry_vkDestroyFramebuffer;
5522 }
5523 if (!strcmp(name, "vkCreateRenderPass"))
5524 {
5525 return (void*)entry_vkCreateRenderPass;
5526 }
5527 if (!strcmp(name, "vkDestroyRenderPass"))
5528 {
5529 return (void*)entry_vkDestroyRenderPass;
5530 }
5531 if (!strcmp(name, "vkGetRenderAreaGranularity"))
5532 {
5533 return (void*)entry_vkGetRenderAreaGranularity;
5534 }
5535 if (!strcmp(name, "vkCreateCommandPool"))
5536 {
5537 return (void*)entry_vkCreateCommandPool;
5538 }
5539 if (!strcmp(name, "vkDestroyCommandPool"))
5540 {
5541 return (void*)entry_vkDestroyCommandPool;
5542 }
5543 if (!strcmp(name, "vkResetCommandPool"))
5544 {
5545 return (void*)entry_vkResetCommandPool;
5546 }
5547 if (!strcmp(name, "vkAllocateCommandBuffers"))
5548 {
5549 return (void*)entry_vkAllocateCommandBuffers;
5550 }
5551 if (!strcmp(name, "vkFreeCommandBuffers"))
5552 {
5553 return (void*)entry_vkFreeCommandBuffers;
5554 }
5555 if (!strcmp(name, "vkBeginCommandBuffer"))
5556 {
5557 return (void*)entry_vkBeginCommandBuffer;
5558 }
5559 if (!strcmp(name, "vkEndCommandBuffer"))
5560 {
5561 return (void*)entry_vkEndCommandBuffer;
5562 }
5563 if (!strcmp(name, "vkResetCommandBuffer"))
5564 {
5565 return (void*)entry_vkResetCommandBuffer;
5566 }
5567 if (!strcmp(name, "vkCmdBindPipeline"))
5568 {
5569 return (void*)entry_vkCmdBindPipeline;
5570 }
5571 if (!strcmp(name, "vkCmdSetViewport"))
5572 {
5573 return (void*)entry_vkCmdSetViewport;
5574 }
5575 if (!strcmp(name, "vkCmdSetScissor"))
5576 {
5577 return (void*)entry_vkCmdSetScissor;
5578 }
5579 if (!strcmp(name, "vkCmdSetLineWidth"))
5580 {
5581 return (void*)entry_vkCmdSetLineWidth;
5582 }
5583 if (!strcmp(name, "vkCmdSetDepthBias"))
5584 {
5585 return (void*)entry_vkCmdSetDepthBias;
5586 }
5587 if (!strcmp(name, "vkCmdSetBlendConstants"))
5588 {
5589 return (void*)entry_vkCmdSetBlendConstants;
5590 }
5591 if (!strcmp(name, "vkCmdSetDepthBounds"))
5592 {
5593 return (void*)entry_vkCmdSetDepthBounds;
5594 }
5595 if (!strcmp(name, "vkCmdSetStencilCompareMask"))
5596 {
5597 return (void*)entry_vkCmdSetStencilCompareMask;
5598 }
5599 if (!strcmp(name, "vkCmdSetStencilWriteMask"))
5600 {
5601 return (void*)entry_vkCmdSetStencilWriteMask;
5602 }
5603 if (!strcmp(name, "vkCmdSetStencilReference"))
5604 {
5605 return (void*)entry_vkCmdSetStencilReference;
5606 }
5607 if (!strcmp(name, "vkCmdBindDescriptorSets"))
5608 {
5609 return (void*)entry_vkCmdBindDescriptorSets;
5610 }
5611 if (!strcmp(name, "vkCmdBindIndexBuffer"))
5612 {
5613 return (void*)entry_vkCmdBindIndexBuffer;
5614 }
5615 if (!strcmp(name, "vkCmdBindVertexBuffers"))
5616 {
5617 return (void*)entry_vkCmdBindVertexBuffers;
5618 }
5619 if (!strcmp(name, "vkCmdDraw"))
5620 {
5621 return (void*)entry_vkCmdDraw;
5622 }
5623 if (!strcmp(name, "vkCmdDrawIndexed"))
5624 {
5625 return (void*)entry_vkCmdDrawIndexed;
5626 }
5627 if (!strcmp(name, "vkCmdDrawIndirect"))
5628 {
5629 return (void*)entry_vkCmdDrawIndirect;
5630 }
5631 if (!strcmp(name, "vkCmdDrawIndexedIndirect"))
5632 {
5633 return (void*)entry_vkCmdDrawIndexedIndirect;
5634 }
5635 if (!strcmp(name, "vkCmdDispatch"))
5636 {
5637 return (void*)entry_vkCmdDispatch;
5638 }
5639 if (!strcmp(name, "vkCmdDispatchIndirect"))
5640 {
5641 return (void*)entry_vkCmdDispatchIndirect;
5642 }
5643 if (!strcmp(name, "vkCmdCopyBuffer"))
5644 {
5645 return (void*)entry_vkCmdCopyBuffer;
5646 }
5647 if (!strcmp(name, "vkCmdCopyImage"))
5648 {
5649 return (void*)entry_vkCmdCopyImage;
5650 }
5651 if (!strcmp(name, "vkCmdBlitImage"))
5652 {
5653 return (void*)entry_vkCmdBlitImage;
5654 }
5655 if (!strcmp(name, "vkCmdCopyBufferToImage"))
5656 {
5657 return (void*)entry_vkCmdCopyBufferToImage;
5658 }
5659 if (!strcmp(name, "vkCmdCopyImageToBuffer"))
5660 {
5661 return (void*)entry_vkCmdCopyImageToBuffer;
5662 }
5663 if (!strcmp(name, "vkCmdUpdateBuffer"))
5664 {
5665 return (void*)entry_vkCmdUpdateBuffer;
5666 }
5667 if (!strcmp(name, "vkCmdFillBuffer"))
5668 {
5669 return (void*)entry_vkCmdFillBuffer;
5670 }
5671 if (!strcmp(name, "vkCmdClearColorImage"))
5672 {
5673 return (void*)entry_vkCmdClearColorImage;
5674 }
5675 if (!strcmp(name, "vkCmdClearDepthStencilImage"))
5676 {
5677 return (void*)entry_vkCmdClearDepthStencilImage;
5678 }
5679 if (!strcmp(name, "vkCmdClearAttachments"))
5680 {
5681 return (void*)entry_vkCmdClearAttachments;
5682 }
5683 if (!strcmp(name, "vkCmdResolveImage"))
5684 {
5685 return (void*)entry_vkCmdResolveImage;
5686 }
5687 if (!strcmp(name, "vkCmdSetEvent"))
5688 {
5689 return (void*)entry_vkCmdSetEvent;
5690 }
5691 if (!strcmp(name, "vkCmdResetEvent"))
5692 {
5693 return (void*)entry_vkCmdResetEvent;
5694 }
5695 if (!strcmp(name, "vkCmdWaitEvents"))
5696 {
5697 return (void*)entry_vkCmdWaitEvents;
5698 }
5699 if (!strcmp(name, "vkCmdPipelineBarrier"))
5700 {
5701 return (void*)entry_vkCmdPipelineBarrier;
5702 }
5703 if (!strcmp(name, "vkCmdBeginQuery"))
5704 {
5705 return (void*)entry_vkCmdBeginQuery;
5706 }
5707 if (!strcmp(name, "vkCmdEndQuery"))
5708 {
5709 return (void*)entry_vkCmdEndQuery;
5710 }
5711 if (!strcmp(name, "vkCmdResetQueryPool"))
5712 {
5713 return (void*)entry_vkCmdResetQueryPool;
5714 }
5715 if (!strcmp(name, "vkCmdWriteTimestamp"))
5716 {
5717 return (void*)entry_vkCmdWriteTimestamp;
5718 }
5719 if (!strcmp(name, "vkCmdCopyQueryPoolResults"))
5720 {
5721 return (void*)entry_vkCmdCopyQueryPoolResults;
5722 }
5723 if (!strcmp(name, "vkCmdPushConstants"))
5724 {
5725 return (void*)entry_vkCmdPushConstants;
5726 }
5727 if (!strcmp(name, "vkCmdBeginRenderPass"))
5728 {
5729 return (void*)entry_vkCmdBeginRenderPass;
5730 }
5731 if (!strcmp(name, "vkCmdNextSubpass"))
5732 {
5733 return (void*)entry_vkCmdNextSubpass;
5734 }
5735 if (!strcmp(name, "vkCmdEndRenderPass"))
5736 {
5737 return (void*)entry_vkCmdEndRenderPass;
5738 }
5739 if (!strcmp(name, "vkCmdExecuteCommands"))
5740 {
5741 return (void*)entry_vkCmdExecuteCommands;
5742 }
5743#endif
5744#ifdef VK_VERSION_1_1
5745 if (!strcmp(name, "vkEnumerateInstanceVersion"))
5746 {
5747 return has1_1OrHigher ? (void*)entry_vkEnumerateInstanceVersion : nullptr;
5748 }
5749 if (!strcmp(name, "vkBindBufferMemory2"))
5750 {
5751 return has1_1OrHigher ? (void*)entry_vkBindBufferMemory2 : nullptr;
5752 }
5753 if (!strcmp(name, "vkBindImageMemory2"))
5754 {
5755 return has1_1OrHigher ? (void*)entry_vkBindImageMemory2 : nullptr;
5756 }
5757 if (!strcmp(name, "vkGetDeviceGroupPeerMemoryFeatures"))
5758 {
5759 return has1_1OrHigher ? (void*)entry_vkGetDeviceGroupPeerMemoryFeatures : nullptr;
5760 }
5761 if (!strcmp(name, "vkCmdSetDeviceMask"))
5762 {
5763 return has1_1OrHigher ? (void*)entry_vkCmdSetDeviceMask : nullptr;
5764 }
5765 if (!strcmp(name, "vkCmdDispatchBase"))
5766 {
5767 return has1_1OrHigher ? (void*)entry_vkCmdDispatchBase : nullptr;
5768 }
5769 if (!strcmp(name, "vkEnumeratePhysicalDeviceGroups"))
5770 {
5771 return nullptr;
5772 }
5773 if (!strcmp(name, "vkGetImageMemoryRequirements2"))
5774 {
5775 return has1_1OrHigher ? (void*)entry_vkGetImageMemoryRequirements2 : nullptr;
5776 }
5777 if (!strcmp(name, "vkGetBufferMemoryRequirements2"))
5778 {
5779 return has1_1OrHigher ? (void*)entry_vkGetBufferMemoryRequirements2 : nullptr;
5780 }
5781 if (!strcmp(name, "vkGetImageSparseMemoryRequirements2"))
5782 {
5783 return has1_1OrHigher ? (void*)entry_vkGetImageSparseMemoryRequirements2 : nullptr;
5784 }
5785 if (!strcmp(name, "vkGetPhysicalDeviceFeatures2"))
5786 {
5787 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceFeatures2 : nullptr;
5788 }
5789 if (!strcmp(name, "vkGetPhysicalDeviceProperties2"))
5790 {
5791 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceProperties2 : nullptr;
5792 }
5793 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties2"))
5794 {
5795 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceFormatProperties2 : nullptr;
5796 }
5797 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties2"))
5798 {
5799 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceImageFormatProperties2 : nullptr;
5800 }
5801 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties2"))
5802 {
5803 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties2 : nullptr;
5804 }
5805 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties2"))
5806 {
5807 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceMemoryProperties2 : nullptr;
5808 }
5809 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties2"))
5810 {
5811 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties2 : nullptr;
5812 }
5813 if (!strcmp(name, "vkTrimCommandPool"))
5814 {
5815 return has1_1OrHigher ? (void*)entry_vkTrimCommandPool : nullptr;
5816 }
5817 if (!strcmp(name, "vkGetDeviceQueue2"))
5818 {
5819 return has1_1OrHigher ? (void*)entry_vkGetDeviceQueue2 : nullptr;
5820 }
5821 if (!strcmp(name, "vkCreateSamplerYcbcrConversion"))
5822 {
5823 return has1_1OrHigher ? (void*)entry_vkCreateSamplerYcbcrConversion : nullptr;
5824 }
5825 if (!strcmp(name, "vkDestroySamplerYcbcrConversion"))
5826 {
5827 return has1_1OrHigher ? (void*)entry_vkDestroySamplerYcbcrConversion : nullptr;
5828 }
5829 if (!strcmp(name, "vkCreateDescriptorUpdateTemplate"))
5830 {
5831 return has1_1OrHigher ? (void*)entry_vkCreateDescriptorUpdateTemplate : nullptr;
5832 }
5833 if (!strcmp(name, "vkDestroyDescriptorUpdateTemplate"))
5834 {
5835 return has1_1OrHigher ? (void*)entry_vkDestroyDescriptorUpdateTemplate : nullptr;
5836 }
5837 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplate"))
5838 {
5839 return has1_1OrHigher ? (void*)entry_vkUpdateDescriptorSetWithTemplate : nullptr;
5840 }
5841 if (!strcmp(name, "vkGetPhysicalDeviceExternalBufferProperties"))
5842 {
5843 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceExternalBufferProperties : nullptr;
5844 }
5845 if (!strcmp(name, "vkGetPhysicalDeviceExternalFenceProperties"))
5846 {
5847 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceExternalFenceProperties : nullptr;
5848 }
5849 if (!strcmp(name, "vkGetPhysicalDeviceExternalSemaphoreProperties"))
5850 {
5851 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceExternalSemaphoreProperties : nullptr;
5852 }
5853 if (!strcmp(name, "vkGetDescriptorSetLayoutSupport"))
5854 {
5855 return has1_1OrHigher ? (void*)entry_vkGetDescriptorSetLayoutSupport : nullptr;
5856 }
5857#endif
5858#ifdef VK_KHR_surface
5859 if (!strcmp(name, "vkDestroySurfaceKHR"))
5860 {
5861 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_surface");
5862 return hasExt ? (void*)entry_vkDestroySurfaceKHR : nullptr;
5863 }
5864 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceSupportKHR"))
5865 {
5866 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_surface");
5867 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceSupportKHR : nullptr;
5868 }
5869 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR"))
5870 {
5871 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_surface");
5872 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceCapabilitiesKHR : nullptr;
5873 }
5874 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceFormatsKHR"))
5875 {
5876 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_surface");
5877 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceFormatsKHR : nullptr;
5878 }
5879 if (!strcmp(name, "vkGetPhysicalDeviceSurfacePresentModesKHR"))
5880 {
5881 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_surface");
5882 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfacePresentModesKHR : nullptr;
5883 }
5884#endif
5885#ifdef VK_KHR_swapchain
5886 if (!strcmp(name, "vkCreateSwapchainKHR"))
5887 {
5888 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5889 return hasExt ? (void*)entry_vkCreateSwapchainKHR : nullptr;
5890 }
5891 if (!strcmp(name, "vkDestroySwapchainKHR"))
5892 {
5893 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5894 return hasExt ? (void*)entry_vkDestroySwapchainKHR : nullptr;
5895 }
5896 if (!strcmp(name, "vkGetSwapchainImagesKHR"))
5897 {
5898 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5899 return hasExt ? (void*)entry_vkGetSwapchainImagesKHR : nullptr;
5900 }
5901 if (!strcmp(name, "vkAcquireNextImageKHR"))
5902 {
5903 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5904 return hasExt ? (void*)entry_vkAcquireNextImageKHR : nullptr;
5905 }
5906 if (!strcmp(name, "vkQueuePresentKHR"))
5907 {
5908 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5909 return hasExt ? (void*)entry_vkQueuePresentKHR : nullptr;
5910 }
5911 if (!strcmp(name, "vkGetDeviceGroupPresentCapabilitiesKHR"))
5912 {
5913 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5914 return hasExt ? (void*)entry_vkGetDeviceGroupPresentCapabilitiesKHR : nullptr;
5915 }
5916 if (!strcmp(name, "vkGetDeviceGroupSurfacePresentModesKHR"))
5917 {
5918 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5919 return hasExt ? (void*)entry_vkGetDeviceGroupSurfacePresentModesKHR : nullptr;
5920 }
5921 if (!strcmp(name, "vkGetPhysicalDevicePresentRectanglesKHR"))
5922 {
5923 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5924 return hasExt ? (void*)entry_vkGetPhysicalDevicePresentRectanglesKHR : nullptr;
5925 }
5926 if (!strcmp(name, "vkAcquireNextImage2KHR"))
5927 {
5928 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5929 return hasExt ? (void*)entry_vkAcquireNextImage2KHR : nullptr;
5930 }
5931#endif
5932#ifdef VK_KHR_display
5933 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPropertiesKHR"))
5934 {
5935 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
5936 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayPropertiesKHR : nullptr;
5937 }
5938 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR"))
5939 {
5940 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
5941 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayPlanePropertiesKHR : nullptr;
5942 }
5943 if (!strcmp(name, "vkGetDisplayPlaneSupportedDisplaysKHR"))
5944 {
5945 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
5946 return hasExt ? (void*)entry_vkGetDisplayPlaneSupportedDisplaysKHR : nullptr;
5947 }
5948 if (!strcmp(name, "vkGetDisplayModePropertiesKHR"))
5949 {
5950 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
5951 return hasExt ? (void*)entry_vkGetDisplayModePropertiesKHR : nullptr;
5952 }
5953 if (!strcmp(name, "vkCreateDisplayModeKHR"))
5954 {
5955 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
5956 return hasExt ? (void*)entry_vkCreateDisplayModeKHR : nullptr;
5957 }
5958 if (!strcmp(name, "vkGetDisplayPlaneCapabilitiesKHR"))
5959 {
5960 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
5961 return hasExt ? (void*)entry_vkGetDisplayPlaneCapabilitiesKHR : nullptr;
5962 }
5963 if (!strcmp(name, "vkCreateDisplayPlaneSurfaceKHR"))
5964 {
5965 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
5966 return hasExt ? (void*)entry_vkCreateDisplayPlaneSurfaceKHR : nullptr;
5967 }
5968#endif
5969#ifdef VK_KHR_display_swapchain
5970 if (!strcmp(name, "vkCreateSharedSwapchainsKHR"))
5971 {
5972 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display_swapchain");
5973 return hasExt ? (void*)entry_vkCreateSharedSwapchainsKHR : nullptr;
5974 }
5975#endif
5976#ifdef VK_KHR_xlib_surface
5977 if (!strcmp(name, "vkCreateXlibSurfaceKHR"))
5978 {
5979 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_xlib_surface");
5980 return hasExt ? (void*)entry_vkCreateXlibSurfaceKHR : nullptr;
5981 }
5982 if (!strcmp(name, "vkGetPhysicalDeviceXlibPresentationSupportKHR"))
5983 {
5984 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_xlib_surface");
5985 return hasExt ? (void*)entry_vkGetPhysicalDeviceXlibPresentationSupportKHR : nullptr;
5986 }
5987#endif
5988#ifdef VK_KHR_xcb_surface
5989 if (!strcmp(name, "vkCreateXcbSurfaceKHR"))
5990 {
5991 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_xcb_surface");
5992 return hasExt ? (void*)entry_vkCreateXcbSurfaceKHR : nullptr;
5993 }
5994 if (!strcmp(name, "vkGetPhysicalDeviceXcbPresentationSupportKHR"))
5995 {
5996 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_xcb_surface");
5997 return hasExt ? (void*)entry_vkGetPhysicalDeviceXcbPresentationSupportKHR : nullptr;
5998 }
5999#endif
6000#ifdef VK_KHR_wayland_surface
6001 if (!strcmp(name, "vkCreateWaylandSurfaceKHR"))
6002 {
6003 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_wayland_surface");
6004 return hasExt ? (void*)entry_vkCreateWaylandSurfaceKHR : nullptr;
6005 }
6006 if (!strcmp(name, "vkGetPhysicalDeviceWaylandPresentationSupportKHR"))
6007 {
6008 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_wayland_surface");
6009 return hasExt ? (void*)entry_vkGetPhysicalDeviceWaylandPresentationSupportKHR : nullptr;
6010 }
6011#endif
6012#ifdef VK_KHR_mir_surface
6013 if (!strcmp(name, "vkCreateMirSurfaceKHR"))
6014 {
6015 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_mir_surface");
6016 return hasExt ? (void*)entry_vkCreateMirSurfaceKHR : nullptr;
6017 }
6018 if (!strcmp(name, "vkGetPhysicalDeviceMirPresentationSupportKHR"))
6019 {
6020 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_mir_surface");
6021 return hasExt ? (void*)entry_vkGetPhysicalDeviceMirPresentationSupportKHR : nullptr;
6022 }
6023#endif
6024#ifdef VK_KHR_android_surface
6025 if (!strcmp(name, "vkCreateAndroidSurfaceKHR"))
6026 {
6027 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_android_surface");
6028 return hasExt ? (void*)entry_vkCreateAndroidSurfaceKHR : nullptr;
6029 }
6030#endif
6031#ifdef VK_KHR_win32_surface
6032 if (!strcmp(name, "vkCreateWin32SurfaceKHR"))
6033 {
6034 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_win32_surface");
6035 return hasExt ? (void*)entry_vkCreateWin32SurfaceKHR : nullptr;
6036 }
6037 if (!strcmp(name, "vkGetPhysicalDeviceWin32PresentationSupportKHR"))
6038 {
6039 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_win32_surface");
6040 return hasExt ? (void*)entry_vkGetPhysicalDeviceWin32PresentationSupportKHR : nullptr;
6041 }
6042#endif
6043#ifdef VK_KHR_get_physical_device_properties2
6044 if (!strcmp(name, "vkGetPhysicalDeviceFeatures2KHR"))
6045 {
6046 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
6047 return hasExt ? (void*)entry_vkGetPhysicalDeviceFeatures2KHR : nullptr;
6048 }
6049 if (!strcmp(name, "vkGetPhysicalDeviceProperties2KHR"))
6050 {
6051 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
6052 return hasExt ? (void*)entry_vkGetPhysicalDeviceProperties2KHR : nullptr;
6053 }
6054 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties2KHR"))
6055 {
6056 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
6057 return hasExt ? (void*)entry_vkGetPhysicalDeviceFormatProperties2KHR : nullptr;
6058 }
6059 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties2KHR"))
6060 {
6061 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
6062 return hasExt ? (void*)entry_vkGetPhysicalDeviceImageFormatProperties2KHR : nullptr;
6063 }
6064 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties2KHR"))
6065 {
6066 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
6067 return hasExt ? (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties2KHR : nullptr;
6068 }
6069 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties2KHR"))
6070 {
6071 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
6072 return hasExt ? (void*)entry_vkGetPhysicalDeviceMemoryProperties2KHR : nullptr;
6073 }
6074 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR"))
6075 {
6076 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
6077 return hasExt ? (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties2KHR : nullptr;
6078 }
6079#endif
6080#ifdef VK_KHR_device_group
6081 if (!strcmp(name, "vkGetDeviceGroupPeerMemoryFeaturesKHR"))
6082 {
6083 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_device_group");
6084 return hasExt ? (void*)entry_vkGetDeviceGroupPeerMemoryFeaturesKHR : nullptr;
6085 }
6086 if (!strcmp(name, "vkCmdSetDeviceMaskKHR"))
6087 {
6088 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_device_group");
6089 return hasExt ? (void*)entry_vkCmdSetDeviceMaskKHR : nullptr;
6090 }
6091 if (!strcmp(name, "vkCmdDispatchBaseKHR"))
6092 {
6093 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_device_group");
6094 return hasExt ? (void*)entry_vkCmdDispatchBaseKHR : nullptr;
6095 }
6096#endif
6097#ifdef VK_KHR_maintenance1
6098 if (!strcmp(name, "vkTrimCommandPoolKHR"))
6099 {
6100 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_maintenance1");
6101 return hasExt ? (void*)entry_vkTrimCommandPoolKHR : nullptr;
6102 }
6103#endif
6104#ifdef VK_KHR_device_group_creation
6105 if (!strcmp(name, "vkEnumeratePhysicalDeviceGroupsKHR"))
6106 {
6107 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_device_group_creation");
6108 return hasExt ? (void*)entry_vkEnumeratePhysicalDeviceGroupsKHR : nullptr;
6109 }
6110#endif
6111#ifdef VK_KHR_external_memory_capabilities
6112 if (!strcmp(name, "vkGetPhysicalDeviceExternalBufferPropertiesKHR"))
6113 {
6114 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_memory_capabilities");
6115 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalBufferPropertiesKHR : nullptr;
6116 }
6117#endif
6118#ifdef VK_KHR_external_memory_win32
6119 if (!strcmp(name, "vkGetMemoryWin32HandleKHR"))
6120 {
6121 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_memory_win32");
6122 return hasExt ? (void*)entry_vkGetMemoryWin32HandleKHR : nullptr;
6123 }
6124 if (!strcmp(name, "vkGetMemoryWin32HandlePropertiesKHR"))
6125 {
6126 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_memory_win32");
6127 return hasExt ? (void*)entry_vkGetMemoryWin32HandlePropertiesKHR : nullptr;
6128 }
6129#endif
6130#ifdef VK_KHR_external_memory_fd
6131 if (!strcmp(name, "vkGetMemoryFdKHR"))
6132 {
6133 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_memory_fd");
6134 return hasExt ? (void*)entry_vkGetMemoryFdKHR : nullptr;
6135 }
6136 if (!strcmp(name, "vkGetMemoryFdPropertiesKHR"))
6137 {
6138 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_memory_fd");
6139 return hasExt ? (void*)entry_vkGetMemoryFdPropertiesKHR : nullptr;
6140 }
6141#endif
6142#ifdef VK_KHR_external_semaphore_capabilities
6143 if (!strcmp(name, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR"))
6144 {
6145 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_semaphore_capabilities");
6146 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR : nullptr;
6147 }
6148#endif
6149#ifdef VK_KHR_external_semaphore_win32
6150 if (!strcmp(name, "vkImportSemaphoreWin32HandleKHR"))
6151 {
6152 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_semaphore_win32");
6153 return hasExt ? (void*)entry_vkImportSemaphoreWin32HandleKHR : nullptr;
6154 }
6155 if (!strcmp(name, "vkGetSemaphoreWin32HandleKHR"))
6156 {
6157 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_semaphore_win32");
6158 return hasExt ? (void*)entry_vkGetSemaphoreWin32HandleKHR : nullptr;
6159 }
6160#endif
6161#ifdef VK_KHR_external_semaphore_fd
6162 if (!strcmp(name, "vkImportSemaphoreFdKHR"))
6163 {
6164 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_semaphore_fd");
6165 return hasExt ? (void*)entry_vkImportSemaphoreFdKHR : nullptr;
6166 }
6167 if (!strcmp(name, "vkGetSemaphoreFdKHR"))
6168 {
6169 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_semaphore_fd");
6170 return hasExt ? (void*)entry_vkGetSemaphoreFdKHR : nullptr;
6171 }
6172#endif
6173#ifdef VK_KHR_push_descriptor
6174 if (!strcmp(name, "vkCmdPushDescriptorSetKHR"))
6175 {
6176 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_push_descriptor");
6177 return hasExt ? (void*)entry_vkCmdPushDescriptorSetKHR : nullptr;
6178 }
6179 if (!strcmp(name, "vkCmdPushDescriptorSetWithTemplateKHR"))
6180 {
6181 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_push_descriptor");
6182 return hasExt ? (void*)entry_vkCmdPushDescriptorSetWithTemplateKHR : nullptr;
6183 }
6184#endif
6185#ifdef VK_KHR_descriptor_update_template
6186 if (!strcmp(name, "vkCreateDescriptorUpdateTemplateKHR"))
6187 {
6188 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_descriptor_update_template");
6189 return hasExt ? (void*)entry_vkCreateDescriptorUpdateTemplateKHR : nullptr;
6190 }
6191 if (!strcmp(name, "vkDestroyDescriptorUpdateTemplateKHR"))
6192 {
6193 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_descriptor_update_template");
6194 return hasExt ? (void*)entry_vkDestroyDescriptorUpdateTemplateKHR : nullptr;
6195 }
6196 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplateKHR"))
6197 {
6198 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_descriptor_update_template");
6199 return hasExt ? (void*)entry_vkUpdateDescriptorSetWithTemplateKHR : nullptr;
6200 }
6201#endif
6202#ifdef VK_KHR_create_renderpass2
6203 if (!strcmp(name, "vkCreateRenderPass2KHR"))
6204 {
6205 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_create_renderpass2");
6206 return hasExt ? (void*)entry_vkCreateRenderPass2KHR : nullptr;
6207 }
6208 if (!strcmp(name, "vkCmdBeginRenderPass2KHR"))
6209 {
6210 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_create_renderpass2");
6211 return hasExt ? (void*)entry_vkCmdBeginRenderPass2KHR : nullptr;
6212 }
6213 if (!strcmp(name, "vkCmdNextSubpass2KHR"))
6214 {
6215 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_create_renderpass2");
6216 return hasExt ? (void*)entry_vkCmdNextSubpass2KHR : nullptr;
6217 }
6218 if (!strcmp(name, "vkCmdEndRenderPass2KHR"))
6219 {
6220 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_create_renderpass2");
6221 return hasExt ? (void*)entry_vkCmdEndRenderPass2KHR : nullptr;
6222 }
6223#endif
6224#ifdef VK_KHR_shared_presentable_image
6225 if (!strcmp(name, "vkGetSwapchainStatusKHR"))
6226 {
6227 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_shared_presentable_image");
6228 return hasExt ? (void*)entry_vkGetSwapchainStatusKHR : nullptr;
6229 }
6230#endif
6231#ifdef VK_KHR_external_fence_capabilities
6232 if (!strcmp(name, "vkGetPhysicalDeviceExternalFencePropertiesKHR"))
6233 {
6234 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_fence_capabilities");
6235 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalFencePropertiesKHR : nullptr;
6236 }
6237#endif
6238#ifdef VK_KHR_external_fence_win32
6239 if (!strcmp(name, "vkImportFenceWin32HandleKHR"))
6240 {
6241 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_fence_win32");
6242 return hasExt ? (void*)entry_vkImportFenceWin32HandleKHR : nullptr;
6243 }
6244 if (!strcmp(name, "vkGetFenceWin32HandleKHR"))
6245 {
6246 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_fence_win32");
6247 return hasExt ? (void*)entry_vkGetFenceWin32HandleKHR : nullptr;
6248 }
6249#endif
6250#ifdef VK_KHR_external_fence_fd
6251 if (!strcmp(name, "vkImportFenceFdKHR"))
6252 {
6253 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_fence_fd");
6254 return hasExt ? (void*)entry_vkImportFenceFdKHR : nullptr;
6255 }
6256 if (!strcmp(name, "vkGetFenceFdKHR"))
6257 {
6258 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_fence_fd");
6259 return hasExt ? (void*)entry_vkGetFenceFdKHR : nullptr;
6260 }
6261#endif
6262#ifdef VK_KHR_get_surface_capabilities2
6263 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2KHR"))
6264 {
6265 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_surface_capabilities2");
6266 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceCapabilities2KHR : nullptr;
6267 }
6268 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceFormats2KHR"))
6269 {
6270 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_surface_capabilities2");
6271 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceFormats2KHR : nullptr;
6272 }
6273#endif
6274#ifdef VK_KHR_get_display_properties2
6275 if (!strcmp(name, "vkGetPhysicalDeviceDisplayProperties2KHR"))
6276 {
6277 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_display_properties2");
6278 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayProperties2KHR : nullptr;
6279 }
6280 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR"))
6281 {
6282 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_display_properties2");
6283 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayPlaneProperties2KHR : nullptr;
6284 }
6285 if (!strcmp(name, "vkGetDisplayModeProperties2KHR"))
6286 {
6287 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_display_properties2");
6288 return hasExt ? (void*)entry_vkGetDisplayModeProperties2KHR : nullptr;
6289 }
6290 if (!strcmp(name, "vkGetDisplayPlaneCapabilities2KHR"))
6291 {
6292 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_display_properties2");
6293 return hasExt ? (void*)entry_vkGetDisplayPlaneCapabilities2KHR : nullptr;
6294 }
6295#endif
6296#ifdef VK_KHR_get_memory_requirements2
6297 if (!strcmp(name, "vkGetImageMemoryRequirements2KHR"))
6298 {
6299 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_memory_requirements2");
6300 return hasExt ? (void*)entry_vkGetImageMemoryRequirements2KHR : nullptr;
6301 }
6302 if (!strcmp(name, "vkGetBufferMemoryRequirements2KHR"))
6303 {
6304 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_memory_requirements2");
6305 return hasExt ? (void*)entry_vkGetBufferMemoryRequirements2KHR : nullptr;
6306 }
6307 if (!strcmp(name, "vkGetImageSparseMemoryRequirements2KHR"))
6308 {
6309 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_memory_requirements2");
6310 return hasExt ? (void*)entry_vkGetImageSparseMemoryRequirements2KHR : nullptr;
6311 }
6312#endif
6313#ifdef VK_KHR_sampler_ycbcr_conversion
6314 if (!strcmp(name, "vkCreateSamplerYcbcrConversionKHR"))
6315 {
6316 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_sampler_ycbcr_conversion");
6317 return hasExt ? (void*)entry_vkCreateSamplerYcbcrConversionKHR : nullptr;
6318 }
6319 if (!strcmp(name, "vkDestroySamplerYcbcrConversionKHR"))
6320 {
6321 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_sampler_ycbcr_conversion");
6322 return hasExt ? (void*)entry_vkDestroySamplerYcbcrConversionKHR : nullptr;
6323 }
6324#endif
6325#ifdef VK_KHR_bind_memory2
6326 if (!strcmp(name, "vkBindBufferMemory2KHR"))
6327 {
6328 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_bind_memory2");
6329 return hasExt ? (void*)entry_vkBindBufferMemory2KHR : nullptr;
6330 }
6331 if (!strcmp(name, "vkBindImageMemory2KHR"))
6332 {
6333 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_bind_memory2");
6334 return hasExt ? (void*)entry_vkBindImageMemory2KHR : nullptr;
6335 }
6336#endif
6337#ifdef VK_KHR_maintenance3
6338 if (!strcmp(name, "vkGetDescriptorSetLayoutSupportKHR"))
6339 {
6340 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_maintenance3");
6341 return hasExt ? (void*)entry_vkGetDescriptorSetLayoutSupportKHR : nullptr;
6342 }
6343#endif
6344#ifdef VK_KHR_draw_indirect_count
6345 if (!strcmp(name, "vkCmdDrawIndirectCountKHR"))
6346 {
6347 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_draw_indirect_count");
6348 return hasExt ? (void*)entry_vkCmdDrawIndirectCountKHR : nullptr;
6349 }
6350 if (!strcmp(name, "vkCmdDrawIndexedIndirectCountKHR"))
6351 {
6352 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_draw_indirect_count");
6353 return hasExt ? (void*)entry_vkCmdDrawIndexedIndirectCountKHR : nullptr;
6354 }
6355#endif
6356#ifdef VK_ANDROID_native_buffer
6357 if (!strcmp(name, "vkGetSwapchainGrallocUsageANDROID"))
6358 {
6359 bool hasExt = resources->hasInstanceExtension(instance, "VK_ANDROID_native_buffer");
6360 return hasExt ? (void*)entry_vkGetSwapchainGrallocUsageANDROID : nullptr;
6361 }
6362 if (!strcmp(name, "vkAcquireImageANDROID"))
6363 {
6364 bool hasExt = resources->hasInstanceExtension(instance, "VK_ANDROID_native_buffer");
6365 return hasExt ? (void*)entry_vkAcquireImageANDROID : nullptr;
6366 }
6367 if (!strcmp(name, "vkQueueSignalReleaseImageANDROID"))
6368 {
6369 bool hasExt = resources->hasInstanceExtension(instance, "VK_ANDROID_native_buffer");
6370 return hasExt ? (void*)entry_vkQueueSignalReleaseImageANDROID : nullptr;
6371 }
6372#endif
6373#ifdef VK_EXT_debug_report
6374 if (!strcmp(name, "vkCreateDebugReportCallbackEXT"))
6375 {
6376 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_report");
6377 return hasExt ? (void*)entry_vkCreateDebugReportCallbackEXT : nullptr;
6378 }
6379 if (!strcmp(name, "vkDestroyDebugReportCallbackEXT"))
6380 {
6381 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_report");
6382 return hasExt ? (void*)entry_vkDestroyDebugReportCallbackEXT : nullptr;
6383 }
6384 if (!strcmp(name, "vkDebugReportMessageEXT"))
6385 {
6386 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_report");
6387 return hasExt ? (void*)entry_vkDebugReportMessageEXT : nullptr;
6388 }
6389#endif
6390#ifdef VK_EXT_debug_marker
6391 if (!strcmp(name, "vkDebugMarkerSetObjectTagEXT"))
6392 {
6393 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_marker");
6394 return hasExt ? (void*)entry_vkDebugMarkerSetObjectTagEXT : nullptr;
6395 }
6396 if (!strcmp(name, "vkDebugMarkerSetObjectNameEXT"))
6397 {
6398 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_marker");
6399 return hasExt ? (void*)entry_vkDebugMarkerSetObjectNameEXT : nullptr;
6400 }
6401 if (!strcmp(name, "vkCmdDebugMarkerBeginEXT"))
6402 {
6403 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_marker");
6404 return hasExt ? (void*)entry_vkCmdDebugMarkerBeginEXT : nullptr;
6405 }
6406 if (!strcmp(name, "vkCmdDebugMarkerEndEXT"))
6407 {
6408 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_marker");
6409 return hasExt ? (void*)entry_vkCmdDebugMarkerEndEXT : nullptr;
6410 }
6411 if (!strcmp(name, "vkCmdDebugMarkerInsertEXT"))
6412 {
6413 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_marker");
6414 return hasExt ? (void*)entry_vkCmdDebugMarkerInsertEXT : nullptr;
6415 }
6416#endif
6417#ifdef VK_AMD_draw_indirect_count
6418 if (!strcmp(name, "vkCmdDrawIndirectCountAMD"))
6419 {
6420 bool hasExt = resources->hasInstanceExtension(instance, "VK_AMD_draw_indirect_count");
6421 return hasExt ? (void*)entry_vkCmdDrawIndirectCountAMD : nullptr;
6422 }
6423 if (!strcmp(name, "vkCmdDrawIndexedIndirectCountAMD"))
6424 {
6425 bool hasExt = resources->hasInstanceExtension(instance, "VK_AMD_draw_indirect_count");
6426 return hasExt ? (void*)entry_vkCmdDrawIndexedIndirectCountAMD : nullptr;
6427 }
6428#endif
6429#ifdef VK_AMD_shader_info
6430 if (!strcmp(name, "vkGetShaderInfoAMD"))
6431 {
6432 bool hasExt = resources->hasInstanceExtension(instance, "VK_AMD_shader_info");
6433 return hasExt ? (void*)entry_vkGetShaderInfoAMD : nullptr;
6434 }
6435#endif
6436#ifdef VK_NV_external_memory_capabilities
6437 if (!strcmp(name, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV"))
6438 {
6439 bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_external_memory_capabilities");
6440 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalImageFormatPropertiesNV : nullptr;
6441 }
6442#endif
6443#ifdef VK_NV_external_memory_win32
6444 if (!strcmp(name, "vkGetMemoryWin32HandleNV"))
6445 {
6446 bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_external_memory_win32");
6447 return hasExt ? (void*)entry_vkGetMemoryWin32HandleNV : nullptr;
6448 }
6449#endif
6450#ifdef VK_NN_vi_surface
6451 if (!strcmp(name, "vkCreateViSurfaceNN"))
6452 {
6453 bool hasExt = resources->hasInstanceExtension(instance, "VK_NN_vi_surface");
6454 return hasExt ? (void*)entry_vkCreateViSurfaceNN : nullptr;
6455 }
6456#endif
6457#ifdef VK_EXT_conditional_rendering
6458 if (!strcmp(name, "vkCmdBeginConditionalRenderingEXT"))
6459 {
6460 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_conditional_rendering");
6461 return hasExt ? (void*)entry_vkCmdBeginConditionalRenderingEXT : nullptr;
6462 }
6463 if (!strcmp(name, "vkCmdEndConditionalRenderingEXT"))
6464 {
6465 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_conditional_rendering");
6466 return hasExt ? (void*)entry_vkCmdEndConditionalRenderingEXT : nullptr;
6467 }
6468#endif
6469#ifdef VK_NVX_device_generated_commands
6470 if (!strcmp(name, "vkCmdProcessCommandsNVX"))
6471 {
6472 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6473 return hasExt ? (void*)entry_vkCmdProcessCommandsNVX : nullptr;
6474 }
6475 if (!strcmp(name, "vkCmdReserveSpaceForCommandsNVX"))
6476 {
6477 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6478 return hasExt ? (void*)entry_vkCmdReserveSpaceForCommandsNVX : nullptr;
6479 }
6480 if (!strcmp(name, "vkCreateIndirectCommandsLayoutNVX"))
6481 {
6482 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6483 return hasExt ? (void*)entry_vkCreateIndirectCommandsLayoutNVX : nullptr;
6484 }
6485 if (!strcmp(name, "vkDestroyIndirectCommandsLayoutNVX"))
6486 {
6487 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6488 return hasExt ? (void*)entry_vkDestroyIndirectCommandsLayoutNVX : nullptr;
6489 }
6490 if (!strcmp(name, "vkCreateObjectTableNVX"))
6491 {
6492 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6493 return hasExt ? (void*)entry_vkCreateObjectTableNVX : nullptr;
6494 }
6495 if (!strcmp(name, "vkDestroyObjectTableNVX"))
6496 {
6497 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6498 return hasExt ? (void*)entry_vkDestroyObjectTableNVX : nullptr;
6499 }
6500 if (!strcmp(name, "vkRegisterObjectsNVX"))
6501 {
6502 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6503 return hasExt ? (void*)entry_vkRegisterObjectsNVX : nullptr;
6504 }
6505 if (!strcmp(name, "vkUnregisterObjectsNVX"))
6506 {
6507 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6508 return hasExt ? (void*)entry_vkUnregisterObjectsNVX : nullptr;
6509 }
6510 if (!strcmp(name, "vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX"))
6511 {
6512 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6513 return hasExt ? (void*)entry_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX : nullptr;
6514 }
6515#endif
6516#ifdef VK_NV_clip_space_w_scaling
6517 if (!strcmp(name, "vkCmdSetViewportWScalingNV"))
6518 {
6519 bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_clip_space_w_scaling");
6520 return hasExt ? (void*)entry_vkCmdSetViewportWScalingNV : nullptr;
6521 }
6522#endif
6523#ifdef VK_EXT_direct_mode_display
6524 if (!strcmp(name, "vkReleaseDisplayEXT"))
6525 {
6526 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_direct_mode_display");
6527 return hasExt ? (void*)entry_vkReleaseDisplayEXT : nullptr;
6528 }
6529#endif
6530#ifdef VK_EXT_acquire_xlib_display
6531 if (!strcmp(name, "vkAcquireXlibDisplayEXT"))
6532 {
6533 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_acquire_xlib_display");
6534 return hasExt ? (void*)entry_vkAcquireXlibDisplayEXT : nullptr;
6535 }
6536 if (!strcmp(name, "vkGetRandROutputDisplayEXT"))
6537 {
6538 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_acquire_xlib_display");
6539 return hasExt ? (void*)entry_vkGetRandROutputDisplayEXT : nullptr;
6540 }
6541#endif
6542#ifdef VK_EXT_display_surface_counter
6543 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2EXT"))
6544 {
6545 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_display_surface_counter");
6546 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceCapabilities2EXT : nullptr;
6547 }
6548#endif
6549#ifdef VK_EXT_display_control
6550 if (!strcmp(name, "vkDisplayPowerControlEXT"))
6551 {
6552 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_display_control");
6553 return hasExt ? (void*)entry_vkDisplayPowerControlEXT : nullptr;
6554 }
6555 if (!strcmp(name, "vkRegisterDeviceEventEXT"))
6556 {
6557 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_display_control");
6558 return hasExt ? (void*)entry_vkRegisterDeviceEventEXT : nullptr;
6559 }
6560 if (!strcmp(name, "vkRegisterDisplayEventEXT"))
6561 {
6562 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_display_control");
6563 return hasExt ? (void*)entry_vkRegisterDisplayEventEXT : nullptr;
6564 }
6565 if (!strcmp(name, "vkGetSwapchainCounterEXT"))
6566 {
6567 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_display_control");
6568 return hasExt ? (void*)entry_vkGetSwapchainCounterEXT : nullptr;
6569 }
6570#endif
6571#ifdef VK_GOOGLE_display_timing
6572 if (!strcmp(name, "vkGetRefreshCycleDurationGOOGLE"))
6573 {
6574 bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_display_timing");
6575 return hasExt ? (void*)entry_vkGetRefreshCycleDurationGOOGLE : nullptr;
6576 }
6577 if (!strcmp(name, "vkGetPastPresentationTimingGOOGLE"))
6578 {
6579 bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_display_timing");
6580 return hasExt ? (void*)entry_vkGetPastPresentationTimingGOOGLE : nullptr;
6581 }
6582#endif
6583#ifdef VK_EXT_discard_rectangles
6584 if (!strcmp(name, "vkCmdSetDiscardRectangleEXT"))
6585 {
6586 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_discard_rectangles");
6587 return hasExt ? (void*)entry_vkCmdSetDiscardRectangleEXT : nullptr;
6588 }
6589#endif
6590#ifdef VK_EXT_hdr_metadata
6591 if (!strcmp(name, "vkSetHdrMetadataEXT"))
6592 {
6593 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_hdr_metadata");
6594 return hasExt ? (void*)entry_vkSetHdrMetadataEXT : nullptr;
6595 }
6596#endif
6597#ifdef VK_MVK_ios_surface
6598 if (!strcmp(name, "vkCreateIOSSurfaceMVK"))
6599 {
6600 bool hasExt = resources->hasInstanceExtension(instance, "VK_MVK_ios_surface");
6601 return hasExt ? (void*)entry_vkCreateIOSSurfaceMVK : nullptr;
6602 }
6603#endif
6604#ifdef VK_MVK_macos_surface
6605 if (!strcmp(name, "vkCreateMacOSSurfaceMVK"))
6606 {
6607 bool hasExt = resources->hasInstanceExtension(instance, "VK_MVK_macos_surface");
6608 return hasExt ? (void*)entry_vkCreateMacOSSurfaceMVK : nullptr;
6609 }
6610#endif
6611#ifdef VK_EXT_debug_utils
6612 if (!strcmp(name, "vkSetDebugUtilsObjectNameEXT"))
6613 {
6614 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6615 return hasExt ? (void*)entry_vkSetDebugUtilsObjectNameEXT : nullptr;
6616 }
6617 if (!strcmp(name, "vkSetDebugUtilsObjectTagEXT"))
6618 {
6619 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6620 return hasExt ? (void*)entry_vkSetDebugUtilsObjectTagEXT : nullptr;
6621 }
6622 if (!strcmp(name, "vkQueueBeginDebugUtilsLabelEXT"))
6623 {
6624 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6625 return hasExt ? (void*)entry_vkQueueBeginDebugUtilsLabelEXT : nullptr;
6626 }
6627 if (!strcmp(name, "vkQueueEndDebugUtilsLabelEXT"))
6628 {
6629 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6630 return hasExt ? (void*)entry_vkQueueEndDebugUtilsLabelEXT : nullptr;
6631 }
6632 if (!strcmp(name, "vkQueueInsertDebugUtilsLabelEXT"))
6633 {
6634 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6635 return hasExt ? (void*)entry_vkQueueInsertDebugUtilsLabelEXT : nullptr;
6636 }
6637 if (!strcmp(name, "vkCmdBeginDebugUtilsLabelEXT"))
6638 {
6639 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6640 return hasExt ? (void*)entry_vkCmdBeginDebugUtilsLabelEXT : nullptr;
6641 }
6642 if (!strcmp(name, "vkCmdEndDebugUtilsLabelEXT"))
6643 {
6644 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6645 return hasExt ? (void*)entry_vkCmdEndDebugUtilsLabelEXT : nullptr;
6646 }
6647 if (!strcmp(name, "vkCmdInsertDebugUtilsLabelEXT"))
6648 {
6649 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6650 return hasExt ? (void*)entry_vkCmdInsertDebugUtilsLabelEXT : nullptr;
6651 }
6652 if (!strcmp(name, "vkCreateDebugUtilsMessengerEXT"))
6653 {
6654 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6655 return hasExt ? (void*)entry_vkCreateDebugUtilsMessengerEXT : nullptr;
6656 }
6657 if (!strcmp(name, "vkDestroyDebugUtilsMessengerEXT"))
6658 {
6659 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6660 return hasExt ? (void*)entry_vkDestroyDebugUtilsMessengerEXT : nullptr;
6661 }
6662 if (!strcmp(name, "vkSubmitDebugUtilsMessageEXT"))
6663 {
6664 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6665 return hasExt ? (void*)entry_vkSubmitDebugUtilsMessageEXT : nullptr;
6666 }
6667#endif
6668#ifdef VK_ANDROID_external_memory_android_hardware_buffer
6669 if (!strcmp(name, "vkGetAndroidHardwareBufferPropertiesANDROID"))
6670 {
6671 bool hasExt = resources->hasInstanceExtension(instance, "VK_ANDROID_external_memory_android_hardware_buffer");
6672 return hasExt ? (void*)entry_vkGetAndroidHardwareBufferPropertiesANDROID : nullptr;
6673 }
6674 if (!strcmp(name, "vkGetMemoryAndroidHardwareBufferANDROID"))
6675 {
6676 bool hasExt = resources->hasInstanceExtension(instance, "VK_ANDROID_external_memory_android_hardware_buffer");
6677 return hasExt ? (void*)entry_vkGetMemoryAndroidHardwareBufferANDROID : nullptr;
6678 }
6679#endif
6680#ifdef VK_EXT_sample_locations
6681 if (!strcmp(name, "vkCmdSetSampleLocationsEXT"))
6682 {
6683 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_sample_locations");
6684 return hasExt ? (void*)entry_vkCmdSetSampleLocationsEXT : nullptr;
6685 }
6686 if (!strcmp(name, "vkGetPhysicalDeviceMultisamplePropertiesEXT"))
6687 {
6688 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_sample_locations");
6689 return hasExt ? (void*)entry_vkGetPhysicalDeviceMultisamplePropertiesEXT : nullptr;
6690 }
6691#endif
6692#ifdef VK_EXT_validation_cache
6693 if (!strcmp(name, "vkCreateValidationCacheEXT"))
6694 {
6695 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_validation_cache");
6696 return hasExt ? (void*)entry_vkCreateValidationCacheEXT : nullptr;
6697 }
6698 if (!strcmp(name, "vkDestroyValidationCacheEXT"))
6699 {
6700 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_validation_cache");
6701 return hasExt ? (void*)entry_vkDestroyValidationCacheEXT : nullptr;
6702 }
6703 if (!strcmp(name, "vkMergeValidationCachesEXT"))
6704 {
6705 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_validation_cache");
6706 return hasExt ? (void*)entry_vkMergeValidationCachesEXT : nullptr;
6707 }
6708 if (!strcmp(name, "vkGetValidationCacheDataEXT"))
6709 {
6710 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_validation_cache");
6711 return hasExt ? (void*)entry_vkGetValidationCacheDataEXT : nullptr;
6712 }
6713#endif
6714#ifdef VK_EXT_external_memory_host
6715 if (!strcmp(name, "vkGetMemoryHostPointerPropertiesEXT"))
6716 {
6717 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_external_memory_host");
6718 return hasExt ? (void*)entry_vkGetMemoryHostPointerPropertiesEXT : nullptr;
6719 }
6720#endif
6721#ifdef VK_AMD_buffer_marker
6722 if (!strcmp(name, "vkCmdWriteBufferMarkerAMD"))
6723 {
6724 bool hasExt = resources->hasInstanceExtension(instance, "VK_AMD_buffer_marker");
6725 return hasExt ? (void*)entry_vkCmdWriteBufferMarkerAMD : nullptr;
6726 }
6727#endif
6728#ifdef VK_NV_device_diagnostic_checkpoints
6729 if (!strcmp(name, "vkCmdSetCheckpointNV"))
6730 {
6731 bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_device_diagnostic_checkpoints");
6732 return hasExt ? (void*)entry_vkCmdSetCheckpointNV : nullptr;
6733 }
6734 if (!strcmp(name, "vkGetQueueCheckpointDataNV"))
6735 {
6736 bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_device_diagnostic_checkpoints");
6737 return hasExt ? (void*)entry_vkGetQueueCheckpointDataNV : nullptr;
6738 }
6739#endif
6740#ifdef VK_GOOGLE_address_space
6741 if (!strcmp(name, "vkMapMemoryIntoAddressSpaceGOOGLE"))
6742 {
6743 bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_address_space");
6744 return hasExt ? (void*)entry_vkMapMemoryIntoAddressSpaceGOOGLE : nullptr;
6745 }
6746#endif
Lingfeng Yangae7e1b32019-02-19 14:07:39 -08006747#ifdef VK_GOOGLE_color_buffer
6748 if (!strcmp(name, "vkRegisterImageColorBufferGOOGLE"))
6749 {
6750 bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_color_buffer");
6751 return hasExt ? (void*)entry_vkRegisterImageColorBufferGOOGLE : nullptr;
6752 }
6753 if (!strcmp(name, "vkRegisterBufferColorBufferGOOGLE"))
6754 {
6755 bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_color_buffer");
6756 return hasExt ? (void*)entry_vkRegisterBufferColorBufferGOOGLE : nullptr;
6757 }
6758#endif
Lingfeng Yang05d5ea32019-03-23 00:12:39 -07006759#ifdef VK_GOOGLE_sized_descriptor_update_template
6760 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplateSizedGOOGLE"))
6761 {
6762 bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_sized_descriptor_update_template");
6763 return hasExt ? (void*)entry_vkUpdateDescriptorSetWithTemplateSizedGOOGLE : nullptr;
6764 }
6765#endif
Lingfeng Yangc53e7472019-03-27 08:50:55 -07006766#ifdef VK_GOOGLE_async_command_buffers
6767 if (!strcmp(name, "vkBeginCommandBufferAsyncGOOGLE"))
6768 {
6769 bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_async_command_buffers");
6770 return hasExt ? (void*)entry_vkBeginCommandBufferAsyncGOOGLE : nullptr;
6771 }
6772 if (!strcmp(name, "vkEndCommandBufferAsyncGOOGLE"))
6773 {
6774 bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_async_command_buffers");
6775 return hasExt ? (void*)entry_vkEndCommandBufferAsyncGOOGLE : nullptr;
6776 }
6777 if (!strcmp(name, "vkResetCommandBufferAsyncGOOGLE"))
6778 {
6779 bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_async_command_buffers");
6780 return hasExt ? (void*)entry_vkResetCommandBufferAsyncGOOGLE : nullptr;
6781 }
6782#endif
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08006783 return nullptr;
6784}
6785void* goldfish_vulkan_get_device_proc_address(VkDevice device, const char* name){
6786 auto resources = ResourceTracker::get();
6787 bool has1_1OrHigher = resources->getApiVersionFromDevice(device) >= VK_API_VERSION_1_1;
6788#ifdef VK_VERSION_1_0
6789 if (!strcmp(name, "vkCreateInstance"))
6790 {
6791 return (void*)entry_vkCreateInstance;
6792 }
6793 if (!strcmp(name, "vkDestroyInstance"))
6794 {
6795 return (void*)entry_vkDestroyInstance;
6796 }
6797 if (!strcmp(name, "vkEnumeratePhysicalDevices"))
6798 {
6799 return (void*)entry_vkEnumeratePhysicalDevices;
6800 }
6801 if (!strcmp(name, "vkGetPhysicalDeviceFeatures"))
6802 {
6803 return (void*)entry_vkGetPhysicalDeviceFeatures;
6804 }
6805 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties"))
6806 {
6807 return (void*)entry_vkGetPhysicalDeviceFormatProperties;
6808 }
6809 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties"))
6810 {
6811 return (void*)entry_vkGetPhysicalDeviceImageFormatProperties;
6812 }
6813 if (!strcmp(name, "vkGetPhysicalDeviceProperties"))
6814 {
6815 return (void*)entry_vkGetPhysicalDeviceProperties;
6816 }
6817 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties"))
6818 {
6819 return (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties;
6820 }
6821 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties"))
6822 {
6823 return (void*)entry_vkGetPhysicalDeviceMemoryProperties;
6824 }
6825 if (!strcmp(name, "vkGetInstanceProcAddr"))
6826 {
6827 return (void*)entry_vkGetInstanceProcAddr;
6828 }
6829 if (!strcmp(name, "vkGetDeviceProcAddr"))
6830 {
6831 return (void*)entry_vkGetDeviceProcAddr;
6832 }
6833 if (!strcmp(name, "vkCreateDevice"))
6834 {
6835 return (void*)entry_vkCreateDevice;
6836 }
6837 if (!strcmp(name, "vkDestroyDevice"))
6838 {
6839 return (void*)entry_vkDestroyDevice;
6840 }
6841 if (!strcmp(name, "vkEnumerateInstanceExtensionProperties"))
6842 {
6843 return (void*)entry_vkEnumerateInstanceExtensionProperties;
6844 }
6845 if (!strcmp(name, "vkEnumerateDeviceExtensionProperties"))
6846 {
6847 return (void*)entry_vkEnumerateDeviceExtensionProperties;
6848 }
6849 if (!strcmp(name, "vkEnumerateInstanceLayerProperties"))
6850 {
6851 return (void*)entry_vkEnumerateInstanceLayerProperties;
6852 }
6853 if (!strcmp(name, "vkEnumerateDeviceLayerProperties"))
6854 {
6855 return (void*)entry_vkEnumerateDeviceLayerProperties;
6856 }
6857 if (!strcmp(name, "vkGetDeviceQueue"))
6858 {
6859 return (void*)entry_vkGetDeviceQueue;
6860 }
6861 if (!strcmp(name, "vkQueueSubmit"))
6862 {
6863 return (void*)entry_vkQueueSubmit;
6864 }
6865 if (!strcmp(name, "vkQueueWaitIdle"))
6866 {
6867 return (void*)entry_vkQueueWaitIdle;
6868 }
6869 if (!strcmp(name, "vkDeviceWaitIdle"))
6870 {
6871 return (void*)entry_vkDeviceWaitIdle;
6872 }
6873 if (!strcmp(name, "vkAllocateMemory"))
6874 {
6875 return (void*)entry_vkAllocateMemory;
6876 }
6877 if (!strcmp(name, "vkFreeMemory"))
6878 {
6879 return (void*)entry_vkFreeMemory;
6880 }
6881 if (!strcmp(name, "vkMapMemory"))
6882 {
6883 return (void*)entry_vkMapMemory;
6884 }
6885 if (!strcmp(name, "vkUnmapMemory"))
6886 {
6887 return (void*)entry_vkUnmapMemory;
6888 }
6889 if (!strcmp(name, "vkFlushMappedMemoryRanges"))
6890 {
6891 return (void*)entry_vkFlushMappedMemoryRanges;
6892 }
6893 if (!strcmp(name, "vkInvalidateMappedMemoryRanges"))
6894 {
6895 return (void*)entry_vkInvalidateMappedMemoryRanges;
6896 }
6897 if (!strcmp(name, "vkGetDeviceMemoryCommitment"))
6898 {
6899 return (void*)entry_vkGetDeviceMemoryCommitment;
6900 }
6901 if (!strcmp(name, "vkBindBufferMemory"))
6902 {
6903 return (void*)entry_vkBindBufferMemory;
6904 }
6905 if (!strcmp(name, "vkBindImageMemory"))
6906 {
6907 return (void*)entry_vkBindImageMemory;
6908 }
6909 if (!strcmp(name, "vkGetBufferMemoryRequirements"))
6910 {
6911 return (void*)entry_vkGetBufferMemoryRequirements;
6912 }
6913 if (!strcmp(name, "vkGetImageMemoryRequirements"))
6914 {
6915 return (void*)entry_vkGetImageMemoryRequirements;
6916 }
6917 if (!strcmp(name, "vkGetImageSparseMemoryRequirements"))
6918 {
6919 return (void*)entry_vkGetImageSparseMemoryRequirements;
6920 }
6921 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties"))
6922 {
6923 return (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties;
6924 }
6925 if (!strcmp(name, "vkQueueBindSparse"))
6926 {
6927 return (void*)entry_vkQueueBindSparse;
6928 }
6929 if (!strcmp(name, "vkCreateFence"))
6930 {
6931 return (void*)entry_vkCreateFence;
6932 }
6933 if (!strcmp(name, "vkDestroyFence"))
6934 {
6935 return (void*)entry_vkDestroyFence;
6936 }
6937 if (!strcmp(name, "vkResetFences"))
6938 {
6939 return (void*)entry_vkResetFences;
6940 }
6941 if (!strcmp(name, "vkGetFenceStatus"))
6942 {
6943 return (void*)entry_vkGetFenceStatus;
6944 }
6945 if (!strcmp(name, "vkWaitForFences"))
6946 {
6947 return (void*)entry_vkWaitForFences;
6948 }
6949 if (!strcmp(name, "vkCreateSemaphore"))
6950 {
6951 return (void*)entry_vkCreateSemaphore;
6952 }
6953 if (!strcmp(name, "vkDestroySemaphore"))
6954 {
6955 return (void*)entry_vkDestroySemaphore;
6956 }
6957 if (!strcmp(name, "vkCreateEvent"))
6958 {
6959 return (void*)entry_vkCreateEvent;
6960 }
6961 if (!strcmp(name, "vkDestroyEvent"))
6962 {
6963 return (void*)entry_vkDestroyEvent;
6964 }
6965 if (!strcmp(name, "vkGetEventStatus"))
6966 {
6967 return (void*)entry_vkGetEventStatus;
6968 }
6969 if (!strcmp(name, "vkSetEvent"))
6970 {
6971 return (void*)entry_vkSetEvent;
6972 }
6973 if (!strcmp(name, "vkResetEvent"))
6974 {
6975 return (void*)entry_vkResetEvent;
6976 }
6977 if (!strcmp(name, "vkCreateQueryPool"))
6978 {
6979 return (void*)entry_vkCreateQueryPool;
6980 }
6981 if (!strcmp(name, "vkDestroyQueryPool"))
6982 {
6983 return (void*)entry_vkDestroyQueryPool;
6984 }
6985 if (!strcmp(name, "vkGetQueryPoolResults"))
6986 {
6987 return (void*)entry_vkGetQueryPoolResults;
6988 }
6989 if (!strcmp(name, "vkCreateBuffer"))
6990 {
6991 return (void*)entry_vkCreateBuffer;
6992 }
6993 if (!strcmp(name, "vkDestroyBuffer"))
6994 {
6995 return (void*)entry_vkDestroyBuffer;
6996 }
6997 if (!strcmp(name, "vkCreateBufferView"))
6998 {
6999 return (void*)entry_vkCreateBufferView;
7000 }
7001 if (!strcmp(name, "vkDestroyBufferView"))
7002 {
7003 return (void*)entry_vkDestroyBufferView;
7004 }
7005 if (!strcmp(name, "vkCreateImage"))
7006 {
7007 return (void*)entry_vkCreateImage;
7008 }
7009 if (!strcmp(name, "vkDestroyImage"))
7010 {
7011 return (void*)entry_vkDestroyImage;
7012 }
7013 if (!strcmp(name, "vkGetImageSubresourceLayout"))
7014 {
7015 return (void*)entry_vkGetImageSubresourceLayout;
7016 }
7017 if (!strcmp(name, "vkCreateImageView"))
7018 {
7019 return (void*)entry_vkCreateImageView;
7020 }
7021 if (!strcmp(name, "vkDestroyImageView"))
7022 {
7023 return (void*)entry_vkDestroyImageView;
7024 }
7025 if (!strcmp(name, "vkCreateShaderModule"))
7026 {
7027 return (void*)entry_vkCreateShaderModule;
7028 }
7029 if (!strcmp(name, "vkDestroyShaderModule"))
7030 {
7031 return (void*)entry_vkDestroyShaderModule;
7032 }
7033 if (!strcmp(name, "vkCreatePipelineCache"))
7034 {
7035 return (void*)entry_vkCreatePipelineCache;
7036 }
7037 if (!strcmp(name, "vkDestroyPipelineCache"))
7038 {
7039 return (void*)entry_vkDestroyPipelineCache;
7040 }
7041 if (!strcmp(name, "vkGetPipelineCacheData"))
7042 {
7043 return (void*)entry_vkGetPipelineCacheData;
7044 }
7045 if (!strcmp(name, "vkMergePipelineCaches"))
7046 {
7047 return (void*)entry_vkMergePipelineCaches;
7048 }
7049 if (!strcmp(name, "vkCreateGraphicsPipelines"))
7050 {
7051 return (void*)entry_vkCreateGraphicsPipelines;
7052 }
7053 if (!strcmp(name, "vkCreateComputePipelines"))
7054 {
7055 return (void*)entry_vkCreateComputePipelines;
7056 }
7057 if (!strcmp(name, "vkDestroyPipeline"))
7058 {
7059 return (void*)entry_vkDestroyPipeline;
7060 }
7061 if (!strcmp(name, "vkCreatePipelineLayout"))
7062 {
7063 return (void*)entry_vkCreatePipelineLayout;
7064 }
7065 if (!strcmp(name, "vkDestroyPipelineLayout"))
7066 {
7067 return (void*)entry_vkDestroyPipelineLayout;
7068 }
7069 if (!strcmp(name, "vkCreateSampler"))
7070 {
7071 return (void*)entry_vkCreateSampler;
7072 }
7073 if (!strcmp(name, "vkDestroySampler"))
7074 {
7075 return (void*)entry_vkDestroySampler;
7076 }
7077 if (!strcmp(name, "vkCreateDescriptorSetLayout"))
7078 {
7079 return (void*)entry_vkCreateDescriptorSetLayout;
7080 }
7081 if (!strcmp(name, "vkDestroyDescriptorSetLayout"))
7082 {
7083 return (void*)entry_vkDestroyDescriptorSetLayout;
7084 }
7085 if (!strcmp(name, "vkCreateDescriptorPool"))
7086 {
7087 return (void*)entry_vkCreateDescriptorPool;
7088 }
7089 if (!strcmp(name, "vkDestroyDescriptorPool"))
7090 {
7091 return (void*)entry_vkDestroyDescriptorPool;
7092 }
7093 if (!strcmp(name, "vkResetDescriptorPool"))
7094 {
7095 return (void*)entry_vkResetDescriptorPool;
7096 }
7097 if (!strcmp(name, "vkAllocateDescriptorSets"))
7098 {
7099 return (void*)entry_vkAllocateDescriptorSets;
7100 }
7101 if (!strcmp(name, "vkFreeDescriptorSets"))
7102 {
7103 return (void*)entry_vkFreeDescriptorSets;
7104 }
7105 if (!strcmp(name, "vkUpdateDescriptorSets"))
7106 {
7107 return (void*)entry_vkUpdateDescriptorSets;
7108 }
7109 if (!strcmp(name, "vkCreateFramebuffer"))
7110 {
7111 return (void*)entry_vkCreateFramebuffer;
7112 }
7113 if (!strcmp(name, "vkDestroyFramebuffer"))
7114 {
7115 return (void*)entry_vkDestroyFramebuffer;
7116 }
7117 if (!strcmp(name, "vkCreateRenderPass"))
7118 {
7119 return (void*)entry_vkCreateRenderPass;
7120 }
7121 if (!strcmp(name, "vkDestroyRenderPass"))
7122 {
7123 return (void*)entry_vkDestroyRenderPass;
7124 }
7125 if (!strcmp(name, "vkGetRenderAreaGranularity"))
7126 {
7127 return (void*)entry_vkGetRenderAreaGranularity;
7128 }
7129 if (!strcmp(name, "vkCreateCommandPool"))
7130 {
7131 return (void*)entry_vkCreateCommandPool;
7132 }
7133 if (!strcmp(name, "vkDestroyCommandPool"))
7134 {
7135 return (void*)entry_vkDestroyCommandPool;
7136 }
7137 if (!strcmp(name, "vkResetCommandPool"))
7138 {
7139 return (void*)entry_vkResetCommandPool;
7140 }
7141 if (!strcmp(name, "vkAllocateCommandBuffers"))
7142 {
7143 return (void*)entry_vkAllocateCommandBuffers;
7144 }
7145 if (!strcmp(name, "vkFreeCommandBuffers"))
7146 {
7147 return (void*)entry_vkFreeCommandBuffers;
7148 }
7149 if (!strcmp(name, "vkBeginCommandBuffer"))
7150 {
7151 return (void*)entry_vkBeginCommandBuffer;
7152 }
7153 if (!strcmp(name, "vkEndCommandBuffer"))
7154 {
7155 return (void*)entry_vkEndCommandBuffer;
7156 }
7157 if (!strcmp(name, "vkResetCommandBuffer"))
7158 {
7159 return (void*)entry_vkResetCommandBuffer;
7160 }
7161 if (!strcmp(name, "vkCmdBindPipeline"))
7162 {
7163 return (void*)entry_vkCmdBindPipeline;
7164 }
7165 if (!strcmp(name, "vkCmdSetViewport"))
7166 {
7167 return (void*)entry_vkCmdSetViewport;
7168 }
7169 if (!strcmp(name, "vkCmdSetScissor"))
7170 {
7171 return (void*)entry_vkCmdSetScissor;
7172 }
7173 if (!strcmp(name, "vkCmdSetLineWidth"))
7174 {
7175 return (void*)entry_vkCmdSetLineWidth;
7176 }
7177 if (!strcmp(name, "vkCmdSetDepthBias"))
7178 {
7179 return (void*)entry_vkCmdSetDepthBias;
7180 }
7181 if (!strcmp(name, "vkCmdSetBlendConstants"))
7182 {
7183 return (void*)entry_vkCmdSetBlendConstants;
7184 }
7185 if (!strcmp(name, "vkCmdSetDepthBounds"))
7186 {
7187 return (void*)entry_vkCmdSetDepthBounds;
7188 }
7189 if (!strcmp(name, "vkCmdSetStencilCompareMask"))
7190 {
7191 return (void*)entry_vkCmdSetStencilCompareMask;
7192 }
7193 if (!strcmp(name, "vkCmdSetStencilWriteMask"))
7194 {
7195 return (void*)entry_vkCmdSetStencilWriteMask;
7196 }
7197 if (!strcmp(name, "vkCmdSetStencilReference"))
7198 {
7199 return (void*)entry_vkCmdSetStencilReference;
7200 }
7201 if (!strcmp(name, "vkCmdBindDescriptorSets"))
7202 {
7203 return (void*)entry_vkCmdBindDescriptorSets;
7204 }
7205 if (!strcmp(name, "vkCmdBindIndexBuffer"))
7206 {
7207 return (void*)entry_vkCmdBindIndexBuffer;
7208 }
7209 if (!strcmp(name, "vkCmdBindVertexBuffers"))
7210 {
7211 return (void*)entry_vkCmdBindVertexBuffers;
7212 }
7213 if (!strcmp(name, "vkCmdDraw"))
7214 {
7215 return (void*)entry_vkCmdDraw;
7216 }
7217 if (!strcmp(name, "vkCmdDrawIndexed"))
7218 {
7219 return (void*)entry_vkCmdDrawIndexed;
7220 }
7221 if (!strcmp(name, "vkCmdDrawIndirect"))
7222 {
7223 return (void*)entry_vkCmdDrawIndirect;
7224 }
7225 if (!strcmp(name, "vkCmdDrawIndexedIndirect"))
7226 {
7227 return (void*)entry_vkCmdDrawIndexedIndirect;
7228 }
7229 if (!strcmp(name, "vkCmdDispatch"))
7230 {
7231 return (void*)entry_vkCmdDispatch;
7232 }
7233 if (!strcmp(name, "vkCmdDispatchIndirect"))
7234 {
7235 return (void*)entry_vkCmdDispatchIndirect;
7236 }
7237 if (!strcmp(name, "vkCmdCopyBuffer"))
7238 {
7239 return (void*)entry_vkCmdCopyBuffer;
7240 }
7241 if (!strcmp(name, "vkCmdCopyImage"))
7242 {
7243 return (void*)entry_vkCmdCopyImage;
7244 }
7245 if (!strcmp(name, "vkCmdBlitImage"))
7246 {
7247 return (void*)entry_vkCmdBlitImage;
7248 }
7249 if (!strcmp(name, "vkCmdCopyBufferToImage"))
7250 {
7251 return (void*)entry_vkCmdCopyBufferToImage;
7252 }
7253 if (!strcmp(name, "vkCmdCopyImageToBuffer"))
7254 {
7255 return (void*)entry_vkCmdCopyImageToBuffer;
7256 }
7257 if (!strcmp(name, "vkCmdUpdateBuffer"))
7258 {
7259 return (void*)entry_vkCmdUpdateBuffer;
7260 }
7261 if (!strcmp(name, "vkCmdFillBuffer"))
7262 {
7263 return (void*)entry_vkCmdFillBuffer;
7264 }
7265 if (!strcmp(name, "vkCmdClearColorImage"))
7266 {
7267 return (void*)entry_vkCmdClearColorImage;
7268 }
7269 if (!strcmp(name, "vkCmdClearDepthStencilImage"))
7270 {
7271 return (void*)entry_vkCmdClearDepthStencilImage;
7272 }
7273 if (!strcmp(name, "vkCmdClearAttachments"))
7274 {
7275 return (void*)entry_vkCmdClearAttachments;
7276 }
7277 if (!strcmp(name, "vkCmdResolveImage"))
7278 {
7279 return (void*)entry_vkCmdResolveImage;
7280 }
7281 if (!strcmp(name, "vkCmdSetEvent"))
7282 {
7283 return (void*)entry_vkCmdSetEvent;
7284 }
7285 if (!strcmp(name, "vkCmdResetEvent"))
7286 {
7287 return (void*)entry_vkCmdResetEvent;
7288 }
7289 if (!strcmp(name, "vkCmdWaitEvents"))
7290 {
7291 return (void*)entry_vkCmdWaitEvents;
7292 }
7293 if (!strcmp(name, "vkCmdPipelineBarrier"))
7294 {
7295 return (void*)entry_vkCmdPipelineBarrier;
7296 }
7297 if (!strcmp(name, "vkCmdBeginQuery"))
7298 {
7299 return (void*)entry_vkCmdBeginQuery;
7300 }
7301 if (!strcmp(name, "vkCmdEndQuery"))
7302 {
7303 return (void*)entry_vkCmdEndQuery;
7304 }
7305 if (!strcmp(name, "vkCmdResetQueryPool"))
7306 {
7307 return (void*)entry_vkCmdResetQueryPool;
7308 }
7309 if (!strcmp(name, "vkCmdWriteTimestamp"))
7310 {
7311 return (void*)entry_vkCmdWriteTimestamp;
7312 }
7313 if (!strcmp(name, "vkCmdCopyQueryPoolResults"))
7314 {
7315 return (void*)entry_vkCmdCopyQueryPoolResults;
7316 }
7317 if (!strcmp(name, "vkCmdPushConstants"))
7318 {
7319 return (void*)entry_vkCmdPushConstants;
7320 }
7321 if (!strcmp(name, "vkCmdBeginRenderPass"))
7322 {
7323 return (void*)entry_vkCmdBeginRenderPass;
7324 }
7325 if (!strcmp(name, "vkCmdNextSubpass"))
7326 {
7327 return (void*)entry_vkCmdNextSubpass;
7328 }
7329 if (!strcmp(name, "vkCmdEndRenderPass"))
7330 {
7331 return (void*)entry_vkCmdEndRenderPass;
7332 }
7333 if (!strcmp(name, "vkCmdExecuteCommands"))
7334 {
7335 return (void*)entry_vkCmdExecuteCommands;
7336 }
7337#endif
7338#ifdef VK_VERSION_1_1
7339 if (!strcmp(name, "vkEnumerateInstanceVersion"))
7340 {
7341 return has1_1OrHigher ? (void*)entry_vkEnumerateInstanceVersion : nullptr;
7342 }
7343 if (!strcmp(name, "vkBindBufferMemory2"))
7344 {
7345 return has1_1OrHigher ? (void*)entry_vkBindBufferMemory2 : nullptr;
7346 }
7347 if (!strcmp(name, "vkBindImageMemory2"))
7348 {
7349 return has1_1OrHigher ? (void*)entry_vkBindImageMemory2 : nullptr;
7350 }
7351 if (!strcmp(name, "vkGetDeviceGroupPeerMemoryFeatures"))
7352 {
7353 return has1_1OrHigher ? (void*)entry_vkGetDeviceGroupPeerMemoryFeatures : nullptr;
7354 }
7355 if (!strcmp(name, "vkCmdSetDeviceMask"))
7356 {
7357 return has1_1OrHigher ? (void*)entry_vkCmdSetDeviceMask : nullptr;
7358 }
7359 if (!strcmp(name, "vkCmdDispatchBase"))
7360 {
7361 return has1_1OrHigher ? (void*)entry_vkCmdDispatchBase : nullptr;
7362 }
7363 if (!strcmp(name, "vkEnumeratePhysicalDeviceGroups"))
7364 {
7365 return nullptr;
7366 }
7367 if (!strcmp(name, "vkGetImageMemoryRequirements2"))
7368 {
7369 return has1_1OrHigher ? (void*)entry_vkGetImageMemoryRequirements2 : nullptr;
7370 }
7371 if (!strcmp(name, "vkGetBufferMemoryRequirements2"))
7372 {
7373 return has1_1OrHigher ? (void*)entry_vkGetBufferMemoryRequirements2 : nullptr;
7374 }
7375 if (!strcmp(name, "vkGetImageSparseMemoryRequirements2"))
7376 {
7377 return has1_1OrHigher ? (void*)entry_vkGetImageSparseMemoryRequirements2 : nullptr;
7378 }
7379 if (!strcmp(name, "vkGetPhysicalDeviceFeatures2"))
7380 {
7381 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceFeatures2 : nullptr;
7382 }
7383 if (!strcmp(name, "vkGetPhysicalDeviceProperties2"))
7384 {
7385 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceProperties2 : nullptr;
7386 }
7387 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties2"))
7388 {
7389 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceFormatProperties2 : nullptr;
7390 }
7391 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties2"))
7392 {
7393 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceImageFormatProperties2 : nullptr;
7394 }
7395 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties2"))
7396 {
7397 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties2 : nullptr;
7398 }
7399 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties2"))
7400 {
7401 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceMemoryProperties2 : nullptr;
7402 }
7403 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties2"))
7404 {
7405 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties2 : nullptr;
7406 }
7407 if (!strcmp(name, "vkTrimCommandPool"))
7408 {
7409 return has1_1OrHigher ? (void*)entry_vkTrimCommandPool : nullptr;
7410 }
7411 if (!strcmp(name, "vkGetDeviceQueue2"))
7412 {
7413 return has1_1OrHigher ? (void*)entry_vkGetDeviceQueue2 : nullptr;
7414 }
7415 if (!strcmp(name, "vkCreateSamplerYcbcrConversion"))
7416 {
7417 return has1_1OrHigher ? (void*)entry_vkCreateSamplerYcbcrConversion : nullptr;
7418 }
7419 if (!strcmp(name, "vkDestroySamplerYcbcrConversion"))
7420 {
7421 return has1_1OrHigher ? (void*)entry_vkDestroySamplerYcbcrConversion : nullptr;
7422 }
7423 if (!strcmp(name, "vkCreateDescriptorUpdateTemplate"))
7424 {
7425 return has1_1OrHigher ? (void*)entry_vkCreateDescriptorUpdateTemplate : nullptr;
7426 }
7427 if (!strcmp(name, "vkDestroyDescriptorUpdateTemplate"))
7428 {
7429 return has1_1OrHigher ? (void*)entry_vkDestroyDescriptorUpdateTemplate : nullptr;
7430 }
7431 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplate"))
7432 {
7433 return has1_1OrHigher ? (void*)entry_vkUpdateDescriptorSetWithTemplate : nullptr;
7434 }
7435 if (!strcmp(name, "vkGetPhysicalDeviceExternalBufferProperties"))
7436 {
7437 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceExternalBufferProperties : nullptr;
7438 }
7439 if (!strcmp(name, "vkGetPhysicalDeviceExternalFenceProperties"))
7440 {
7441 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceExternalFenceProperties : nullptr;
7442 }
7443 if (!strcmp(name, "vkGetPhysicalDeviceExternalSemaphoreProperties"))
7444 {
7445 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceExternalSemaphoreProperties : nullptr;
7446 }
7447 if (!strcmp(name, "vkGetDescriptorSetLayoutSupport"))
7448 {
7449 return has1_1OrHigher ? (void*)entry_vkGetDescriptorSetLayoutSupport : nullptr;
7450 }
7451#endif
7452#ifdef VK_KHR_surface
7453 if (!strcmp(name, "vkDestroySurfaceKHR"))
7454 {
7455 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_surface");
7456 return hasExt ? (void*)entry_vkDestroySurfaceKHR : nullptr;
7457 }
7458 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceSupportKHR"))
7459 {
7460 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_surface");
7461 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceSupportKHR : nullptr;
7462 }
7463 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR"))
7464 {
7465 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_surface");
7466 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceCapabilitiesKHR : nullptr;
7467 }
7468 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceFormatsKHR"))
7469 {
7470 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_surface");
7471 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceFormatsKHR : nullptr;
7472 }
7473 if (!strcmp(name, "vkGetPhysicalDeviceSurfacePresentModesKHR"))
7474 {
7475 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_surface");
7476 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfacePresentModesKHR : nullptr;
7477 }
7478#endif
7479#ifdef VK_KHR_swapchain
7480 if (!strcmp(name, "vkCreateSwapchainKHR"))
7481 {
7482 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7483 return hasExt ? (void*)entry_vkCreateSwapchainKHR : nullptr;
7484 }
7485 if (!strcmp(name, "vkDestroySwapchainKHR"))
7486 {
7487 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7488 return hasExt ? (void*)entry_vkDestroySwapchainKHR : nullptr;
7489 }
7490 if (!strcmp(name, "vkGetSwapchainImagesKHR"))
7491 {
7492 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7493 return hasExt ? (void*)entry_vkGetSwapchainImagesKHR : nullptr;
7494 }
7495 if (!strcmp(name, "vkAcquireNextImageKHR"))
7496 {
7497 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7498 return hasExt ? (void*)entry_vkAcquireNextImageKHR : nullptr;
7499 }
7500 if (!strcmp(name, "vkQueuePresentKHR"))
7501 {
7502 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7503 return hasExt ? (void*)entry_vkQueuePresentKHR : nullptr;
7504 }
7505 if (!strcmp(name, "vkGetDeviceGroupPresentCapabilitiesKHR"))
7506 {
7507 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7508 return hasExt ? (void*)entry_vkGetDeviceGroupPresentCapabilitiesKHR : nullptr;
7509 }
7510 if (!strcmp(name, "vkGetDeviceGroupSurfacePresentModesKHR"))
7511 {
7512 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7513 return hasExt ? (void*)entry_vkGetDeviceGroupSurfacePresentModesKHR : nullptr;
7514 }
7515 if (!strcmp(name, "vkGetPhysicalDevicePresentRectanglesKHR"))
7516 {
7517 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7518 return hasExt ? (void*)entry_vkGetPhysicalDevicePresentRectanglesKHR : nullptr;
7519 }
7520 if (!strcmp(name, "vkAcquireNextImage2KHR"))
7521 {
7522 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7523 return hasExt ? (void*)entry_vkAcquireNextImage2KHR : nullptr;
7524 }
7525#endif
7526#ifdef VK_KHR_display
7527 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPropertiesKHR"))
7528 {
7529 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
7530 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayPropertiesKHR : nullptr;
7531 }
7532 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR"))
7533 {
7534 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
7535 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayPlanePropertiesKHR : nullptr;
7536 }
7537 if (!strcmp(name, "vkGetDisplayPlaneSupportedDisplaysKHR"))
7538 {
7539 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
7540 return hasExt ? (void*)entry_vkGetDisplayPlaneSupportedDisplaysKHR : nullptr;
7541 }
7542 if (!strcmp(name, "vkGetDisplayModePropertiesKHR"))
7543 {
7544 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
7545 return hasExt ? (void*)entry_vkGetDisplayModePropertiesKHR : nullptr;
7546 }
7547 if (!strcmp(name, "vkCreateDisplayModeKHR"))
7548 {
7549 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
7550 return hasExt ? (void*)entry_vkCreateDisplayModeKHR : nullptr;
7551 }
7552 if (!strcmp(name, "vkGetDisplayPlaneCapabilitiesKHR"))
7553 {
7554 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
7555 return hasExt ? (void*)entry_vkGetDisplayPlaneCapabilitiesKHR : nullptr;
7556 }
7557 if (!strcmp(name, "vkCreateDisplayPlaneSurfaceKHR"))
7558 {
7559 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
7560 return hasExt ? (void*)entry_vkCreateDisplayPlaneSurfaceKHR : nullptr;
7561 }
7562#endif
7563#ifdef VK_KHR_display_swapchain
7564 if (!strcmp(name, "vkCreateSharedSwapchainsKHR"))
7565 {
7566 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display_swapchain");
7567 return hasExt ? (void*)entry_vkCreateSharedSwapchainsKHR : nullptr;
7568 }
7569#endif
7570#ifdef VK_KHR_xlib_surface
7571 if (!strcmp(name, "vkCreateXlibSurfaceKHR"))
7572 {
7573 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_xlib_surface");
7574 return hasExt ? (void*)entry_vkCreateXlibSurfaceKHR : nullptr;
7575 }
7576 if (!strcmp(name, "vkGetPhysicalDeviceXlibPresentationSupportKHR"))
7577 {
7578 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_xlib_surface");
7579 return hasExt ? (void*)entry_vkGetPhysicalDeviceXlibPresentationSupportKHR : nullptr;
7580 }
7581#endif
7582#ifdef VK_KHR_xcb_surface
7583 if (!strcmp(name, "vkCreateXcbSurfaceKHR"))
7584 {
7585 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_xcb_surface");
7586 return hasExt ? (void*)entry_vkCreateXcbSurfaceKHR : nullptr;
7587 }
7588 if (!strcmp(name, "vkGetPhysicalDeviceXcbPresentationSupportKHR"))
7589 {
7590 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_xcb_surface");
7591 return hasExt ? (void*)entry_vkGetPhysicalDeviceXcbPresentationSupportKHR : nullptr;
7592 }
7593#endif
7594#ifdef VK_KHR_wayland_surface
7595 if (!strcmp(name, "vkCreateWaylandSurfaceKHR"))
7596 {
7597 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_wayland_surface");
7598 return hasExt ? (void*)entry_vkCreateWaylandSurfaceKHR : nullptr;
7599 }
7600 if (!strcmp(name, "vkGetPhysicalDeviceWaylandPresentationSupportKHR"))
7601 {
7602 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_wayland_surface");
7603 return hasExt ? (void*)entry_vkGetPhysicalDeviceWaylandPresentationSupportKHR : nullptr;
7604 }
7605#endif
7606#ifdef VK_KHR_mir_surface
7607 if (!strcmp(name, "vkCreateMirSurfaceKHR"))
7608 {
7609 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_mir_surface");
7610 return hasExt ? (void*)entry_vkCreateMirSurfaceKHR : nullptr;
7611 }
7612 if (!strcmp(name, "vkGetPhysicalDeviceMirPresentationSupportKHR"))
7613 {
7614 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_mir_surface");
7615 return hasExt ? (void*)entry_vkGetPhysicalDeviceMirPresentationSupportKHR : nullptr;
7616 }
7617#endif
7618#ifdef VK_KHR_android_surface
7619 if (!strcmp(name, "vkCreateAndroidSurfaceKHR"))
7620 {
7621 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_android_surface");
7622 return hasExt ? (void*)entry_vkCreateAndroidSurfaceKHR : nullptr;
7623 }
7624#endif
7625#ifdef VK_KHR_win32_surface
7626 if (!strcmp(name, "vkCreateWin32SurfaceKHR"))
7627 {
7628 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_win32_surface");
7629 return hasExt ? (void*)entry_vkCreateWin32SurfaceKHR : nullptr;
7630 }
7631 if (!strcmp(name, "vkGetPhysicalDeviceWin32PresentationSupportKHR"))
7632 {
7633 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_win32_surface");
7634 return hasExt ? (void*)entry_vkGetPhysicalDeviceWin32PresentationSupportKHR : nullptr;
7635 }
7636#endif
7637#ifdef VK_KHR_get_physical_device_properties2
7638 if (!strcmp(name, "vkGetPhysicalDeviceFeatures2KHR"))
7639 {
7640 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
7641 return hasExt ? (void*)entry_vkGetPhysicalDeviceFeatures2KHR : nullptr;
7642 }
7643 if (!strcmp(name, "vkGetPhysicalDeviceProperties2KHR"))
7644 {
7645 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
7646 return hasExt ? (void*)entry_vkGetPhysicalDeviceProperties2KHR : nullptr;
7647 }
7648 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties2KHR"))
7649 {
7650 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
7651 return hasExt ? (void*)entry_vkGetPhysicalDeviceFormatProperties2KHR : nullptr;
7652 }
7653 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties2KHR"))
7654 {
7655 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
7656 return hasExt ? (void*)entry_vkGetPhysicalDeviceImageFormatProperties2KHR : nullptr;
7657 }
7658 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties2KHR"))
7659 {
7660 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
7661 return hasExt ? (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties2KHR : nullptr;
7662 }
7663 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties2KHR"))
7664 {
7665 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
7666 return hasExt ? (void*)entry_vkGetPhysicalDeviceMemoryProperties2KHR : nullptr;
7667 }
7668 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR"))
7669 {
7670 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
7671 return hasExt ? (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties2KHR : nullptr;
7672 }
7673#endif
7674#ifdef VK_KHR_device_group
7675 if (!strcmp(name, "vkGetDeviceGroupPeerMemoryFeaturesKHR"))
7676 {
7677 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_device_group");
7678 return hasExt ? (void*)entry_vkGetDeviceGroupPeerMemoryFeaturesKHR : nullptr;
7679 }
7680 if (!strcmp(name, "vkCmdSetDeviceMaskKHR"))
7681 {
7682 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_device_group");
7683 return hasExt ? (void*)entry_vkCmdSetDeviceMaskKHR : nullptr;
7684 }
7685 if (!strcmp(name, "vkCmdDispatchBaseKHR"))
7686 {
7687 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_device_group");
7688 return hasExt ? (void*)entry_vkCmdDispatchBaseKHR : nullptr;
7689 }
7690#endif
7691#ifdef VK_KHR_maintenance1
7692 if (!strcmp(name, "vkTrimCommandPoolKHR"))
7693 {
7694 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_maintenance1");
7695 return hasExt ? (void*)entry_vkTrimCommandPoolKHR : nullptr;
7696 }
7697#endif
7698#ifdef VK_KHR_device_group_creation
7699 if (!strcmp(name, "vkEnumeratePhysicalDeviceGroupsKHR"))
7700 {
7701 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_device_group_creation");
7702 return hasExt ? (void*)entry_vkEnumeratePhysicalDeviceGroupsKHR : nullptr;
7703 }
7704#endif
7705#ifdef VK_KHR_external_memory_capabilities
7706 if (!strcmp(name, "vkGetPhysicalDeviceExternalBufferPropertiesKHR"))
7707 {
7708 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_memory_capabilities");
7709 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalBufferPropertiesKHR : nullptr;
7710 }
7711#endif
7712#ifdef VK_KHR_external_memory_win32
7713 if (!strcmp(name, "vkGetMemoryWin32HandleKHR"))
7714 {
7715 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_memory_win32");
7716 return hasExt ? (void*)entry_vkGetMemoryWin32HandleKHR : nullptr;
7717 }
7718 if (!strcmp(name, "vkGetMemoryWin32HandlePropertiesKHR"))
7719 {
7720 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_memory_win32");
7721 return hasExt ? (void*)entry_vkGetMemoryWin32HandlePropertiesKHR : nullptr;
7722 }
7723#endif
7724#ifdef VK_KHR_external_memory_fd
7725 if (!strcmp(name, "vkGetMemoryFdKHR"))
7726 {
7727 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_memory_fd");
7728 return hasExt ? (void*)entry_vkGetMemoryFdKHR : nullptr;
7729 }
7730 if (!strcmp(name, "vkGetMemoryFdPropertiesKHR"))
7731 {
7732 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_memory_fd");
7733 return hasExt ? (void*)entry_vkGetMemoryFdPropertiesKHR : nullptr;
7734 }
7735#endif
7736#ifdef VK_KHR_external_semaphore_capabilities
7737 if (!strcmp(name, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR"))
7738 {
7739 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_semaphore_capabilities");
7740 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR : nullptr;
7741 }
7742#endif
7743#ifdef VK_KHR_external_semaphore_win32
7744 if (!strcmp(name, "vkImportSemaphoreWin32HandleKHR"))
7745 {
7746 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_semaphore_win32");
7747 return hasExt ? (void*)entry_vkImportSemaphoreWin32HandleKHR : nullptr;
7748 }
7749 if (!strcmp(name, "vkGetSemaphoreWin32HandleKHR"))
7750 {
7751 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_semaphore_win32");
7752 return hasExt ? (void*)entry_vkGetSemaphoreWin32HandleKHR : nullptr;
7753 }
7754#endif
7755#ifdef VK_KHR_external_semaphore_fd
7756 if (!strcmp(name, "vkImportSemaphoreFdKHR"))
7757 {
7758 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_semaphore_fd");
7759 return hasExt ? (void*)entry_vkImportSemaphoreFdKHR : nullptr;
7760 }
7761 if (!strcmp(name, "vkGetSemaphoreFdKHR"))
7762 {
7763 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_semaphore_fd");
7764 return hasExt ? (void*)entry_vkGetSemaphoreFdKHR : nullptr;
7765 }
7766#endif
7767#ifdef VK_KHR_push_descriptor
7768 if (!strcmp(name, "vkCmdPushDescriptorSetKHR"))
7769 {
7770 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_push_descriptor");
7771 return hasExt ? (void*)entry_vkCmdPushDescriptorSetKHR : nullptr;
7772 }
7773 if (!strcmp(name, "vkCmdPushDescriptorSetWithTemplateKHR"))
7774 {
7775 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_push_descriptor");
7776 return hasExt ? (void*)entry_vkCmdPushDescriptorSetWithTemplateKHR : nullptr;
7777 }
7778#endif
7779#ifdef VK_KHR_descriptor_update_template
7780 if (!strcmp(name, "vkCreateDescriptorUpdateTemplateKHR"))
7781 {
7782 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_descriptor_update_template");
7783 return hasExt ? (void*)entry_vkCreateDescriptorUpdateTemplateKHR : nullptr;
7784 }
7785 if (!strcmp(name, "vkDestroyDescriptorUpdateTemplateKHR"))
7786 {
7787 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_descriptor_update_template");
7788 return hasExt ? (void*)entry_vkDestroyDescriptorUpdateTemplateKHR : nullptr;
7789 }
7790 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplateKHR"))
7791 {
7792 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_descriptor_update_template");
7793 return hasExt ? (void*)entry_vkUpdateDescriptorSetWithTemplateKHR : nullptr;
7794 }
7795#endif
7796#ifdef VK_KHR_create_renderpass2
7797 if (!strcmp(name, "vkCreateRenderPass2KHR"))
7798 {
7799 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_create_renderpass2");
7800 return hasExt ? (void*)entry_vkCreateRenderPass2KHR : nullptr;
7801 }
7802 if (!strcmp(name, "vkCmdBeginRenderPass2KHR"))
7803 {
7804 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_create_renderpass2");
7805 return hasExt ? (void*)entry_vkCmdBeginRenderPass2KHR : nullptr;
7806 }
7807 if (!strcmp(name, "vkCmdNextSubpass2KHR"))
7808 {
7809 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_create_renderpass2");
7810 return hasExt ? (void*)entry_vkCmdNextSubpass2KHR : nullptr;
7811 }
7812 if (!strcmp(name, "vkCmdEndRenderPass2KHR"))
7813 {
7814 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_create_renderpass2");
7815 return hasExt ? (void*)entry_vkCmdEndRenderPass2KHR : nullptr;
7816 }
7817#endif
7818#ifdef VK_KHR_shared_presentable_image
7819 if (!strcmp(name, "vkGetSwapchainStatusKHR"))
7820 {
7821 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_shared_presentable_image");
7822 return hasExt ? (void*)entry_vkGetSwapchainStatusKHR : nullptr;
7823 }
7824#endif
7825#ifdef VK_KHR_external_fence_capabilities
7826 if (!strcmp(name, "vkGetPhysicalDeviceExternalFencePropertiesKHR"))
7827 {
7828 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_fence_capabilities");
7829 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalFencePropertiesKHR : nullptr;
7830 }
7831#endif
7832#ifdef VK_KHR_external_fence_win32
7833 if (!strcmp(name, "vkImportFenceWin32HandleKHR"))
7834 {
7835 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_fence_win32");
7836 return hasExt ? (void*)entry_vkImportFenceWin32HandleKHR : nullptr;
7837 }
7838 if (!strcmp(name, "vkGetFenceWin32HandleKHR"))
7839 {
7840 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_fence_win32");
7841 return hasExt ? (void*)entry_vkGetFenceWin32HandleKHR : nullptr;
7842 }
7843#endif
7844#ifdef VK_KHR_external_fence_fd
7845 if (!strcmp(name, "vkImportFenceFdKHR"))
7846 {
7847 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_fence_fd");
7848 return hasExt ? (void*)entry_vkImportFenceFdKHR : nullptr;
7849 }
7850 if (!strcmp(name, "vkGetFenceFdKHR"))
7851 {
7852 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_fence_fd");
7853 return hasExt ? (void*)entry_vkGetFenceFdKHR : nullptr;
7854 }
7855#endif
7856#ifdef VK_KHR_get_surface_capabilities2
7857 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2KHR"))
7858 {
7859 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_surface_capabilities2");
7860 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceCapabilities2KHR : nullptr;
7861 }
7862 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceFormats2KHR"))
7863 {
7864 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_surface_capabilities2");
7865 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceFormats2KHR : nullptr;
7866 }
7867#endif
7868#ifdef VK_KHR_get_display_properties2
7869 if (!strcmp(name, "vkGetPhysicalDeviceDisplayProperties2KHR"))
7870 {
7871 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_display_properties2");
7872 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayProperties2KHR : nullptr;
7873 }
7874 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR"))
7875 {
7876 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_display_properties2");
7877 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayPlaneProperties2KHR : nullptr;
7878 }
7879 if (!strcmp(name, "vkGetDisplayModeProperties2KHR"))
7880 {
7881 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_display_properties2");
7882 return hasExt ? (void*)entry_vkGetDisplayModeProperties2KHR : nullptr;
7883 }
7884 if (!strcmp(name, "vkGetDisplayPlaneCapabilities2KHR"))
7885 {
7886 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_display_properties2");
7887 return hasExt ? (void*)entry_vkGetDisplayPlaneCapabilities2KHR : nullptr;
7888 }
7889#endif
7890#ifdef VK_KHR_get_memory_requirements2
7891 if (!strcmp(name, "vkGetImageMemoryRequirements2KHR"))
7892 {
7893 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_memory_requirements2");
7894 return hasExt ? (void*)entry_vkGetImageMemoryRequirements2KHR : nullptr;
7895 }
7896 if (!strcmp(name, "vkGetBufferMemoryRequirements2KHR"))
7897 {
7898 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_memory_requirements2");
7899 return hasExt ? (void*)entry_vkGetBufferMemoryRequirements2KHR : nullptr;
7900 }
7901 if (!strcmp(name, "vkGetImageSparseMemoryRequirements2KHR"))
7902 {
7903 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_memory_requirements2");
7904 return hasExt ? (void*)entry_vkGetImageSparseMemoryRequirements2KHR : nullptr;
7905 }
7906#endif
7907#ifdef VK_KHR_sampler_ycbcr_conversion
7908 if (!strcmp(name, "vkCreateSamplerYcbcrConversionKHR"))
7909 {
7910 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_sampler_ycbcr_conversion");
7911 return hasExt ? (void*)entry_vkCreateSamplerYcbcrConversionKHR : nullptr;
7912 }
7913 if (!strcmp(name, "vkDestroySamplerYcbcrConversionKHR"))
7914 {
7915 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_sampler_ycbcr_conversion");
7916 return hasExt ? (void*)entry_vkDestroySamplerYcbcrConversionKHR : nullptr;
7917 }
7918#endif
7919#ifdef VK_KHR_bind_memory2
7920 if (!strcmp(name, "vkBindBufferMemory2KHR"))
7921 {
7922 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_bind_memory2");
7923 return hasExt ? (void*)entry_vkBindBufferMemory2KHR : nullptr;
7924 }
7925 if (!strcmp(name, "vkBindImageMemory2KHR"))
7926 {
7927 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_bind_memory2");
7928 return hasExt ? (void*)entry_vkBindImageMemory2KHR : nullptr;
7929 }
7930#endif
7931#ifdef VK_KHR_maintenance3
7932 if (!strcmp(name, "vkGetDescriptorSetLayoutSupportKHR"))
7933 {
7934 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_maintenance3");
7935 return hasExt ? (void*)entry_vkGetDescriptorSetLayoutSupportKHR : nullptr;
7936 }
7937#endif
7938#ifdef VK_KHR_draw_indirect_count
7939 if (!strcmp(name, "vkCmdDrawIndirectCountKHR"))
7940 {
7941 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_draw_indirect_count");
7942 return hasExt ? (void*)entry_vkCmdDrawIndirectCountKHR : nullptr;
7943 }
7944 if (!strcmp(name, "vkCmdDrawIndexedIndirectCountKHR"))
7945 {
7946 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_draw_indirect_count");
7947 return hasExt ? (void*)entry_vkCmdDrawIndexedIndirectCountKHR : nullptr;
7948 }
7949#endif
7950#ifdef VK_ANDROID_native_buffer
7951 if (!strcmp(name, "vkGetSwapchainGrallocUsageANDROID"))
7952 {
7953 bool hasExt = resources->hasDeviceExtension(device, "VK_ANDROID_native_buffer");
7954 return hasExt ? (void*)entry_vkGetSwapchainGrallocUsageANDROID : nullptr;
7955 }
7956 if (!strcmp(name, "vkAcquireImageANDROID"))
7957 {
7958 bool hasExt = resources->hasDeviceExtension(device, "VK_ANDROID_native_buffer");
7959 return hasExt ? (void*)entry_vkAcquireImageANDROID : nullptr;
7960 }
7961 if (!strcmp(name, "vkQueueSignalReleaseImageANDROID"))
7962 {
7963 bool hasExt = resources->hasDeviceExtension(device, "VK_ANDROID_native_buffer");
7964 return hasExt ? (void*)entry_vkQueueSignalReleaseImageANDROID : nullptr;
7965 }
7966#endif
7967#ifdef VK_EXT_debug_report
7968 if (!strcmp(name, "vkCreateDebugReportCallbackEXT"))
7969 {
7970 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_report");
7971 return hasExt ? (void*)entry_vkCreateDebugReportCallbackEXT : nullptr;
7972 }
7973 if (!strcmp(name, "vkDestroyDebugReportCallbackEXT"))
7974 {
7975 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_report");
7976 return hasExt ? (void*)entry_vkDestroyDebugReportCallbackEXT : nullptr;
7977 }
7978 if (!strcmp(name, "vkDebugReportMessageEXT"))
7979 {
7980 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_report");
7981 return hasExt ? (void*)entry_vkDebugReportMessageEXT : nullptr;
7982 }
7983#endif
7984#ifdef VK_EXT_debug_marker
7985 if (!strcmp(name, "vkDebugMarkerSetObjectTagEXT"))
7986 {
7987 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_marker");
7988 return hasExt ? (void*)entry_vkDebugMarkerSetObjectTagEXT : nullptr;
7989 }
7990 if (!strcmp(name, "vkDebugMarkerSetObjectNameEXT"))
7991 {
7992 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_marker");
7993 return hasExt ? (void*)entry_vkDebugMarkerSetObjectNameEXT : nullptr;
7994 }
7995 if (!strcmp(name, "vkCmdDebugMarkerBeginEXT"))
7996 {
7997 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_marker");
7998 return hasExt ? (void*)entry_vkCmdDebugMarkerBeginEXT : nullptr;
7999 }
8000 if (!strcmp(name, "vkCmdDebugMarkerEndEXT"))
8001 {
8002 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_marker");
8003 return hasExt ? (void*)entry_vkCmdDebugMarkerEndEXT : nullptr;
8004 }
8005 if (!strcmp(name, "vkCmdDebugMarkerInsertEXT"))
8006 {
8007 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_marker");
8008 return hasExt ? (void*)entry_vkCmdDebugMarkerInsertEXT : nullptr;
8009 }
8010#endif
8011#ifdef VK_AMD_draw_indirect_count
8012 if (!strcmp(name, "vkCmdDrawIndirectCountAMD"))
8013 {
8014 bool hasExt = resources->hasDeviceExtension(device, "VK_AMD_draw_indirect_count");
8015 return hasExt ? (void*)entry_vkCmdDrawIndirectCountAMD : nullptr;
8016 }
8017 if (!strcmp(name, "vkCmdDrawIndexedIndirectCountAMD"))
8018 {
8019 bool hasExt = resources->hasDeviceExtension(device, "VK_AMD_draw_indirect_count");
8020 return hasExt ? (void*)entry_vkCmdDrawIndexedIndirectCountAMD : nullptr;
8021 }
8022#endif
8023#ifdef VK_AMD_shader_info
8024 if (!strcmp(name, "vkGetShaderInfoAMD"))
8025 {
8026 bool hasExt = resources->hasDeviceExtension(device, "VK_AMD_shader_info");
8027 return hasExt ? (void*)entry_vkGetShaderInfoAMD : nullptr;
8028 }
8029#endif
8030#ifdef VK_NV_external_memory_capabilities
8031 if (!strcmp(name, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV"))
8032 {
8033 bool hasExt = resources->hasDeviceExtension(device, "VK_NV_external_memory_capabilities");
8034 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalImageFormatPropertiesNV : nullptr;
8035 }
8036#endif
8037#ifdef VK_NV_external_memory_win32
8038 if (!strcmp(name, "vkGetMemoryWin32HandleNV"))
8039 {
8040 bool hasExt = resources->hasDeviceExtension(device, "VK_NV_external_memory_win32");
8041 return hasExt ? (void*)entry_vkGetMemoryWin32HandleNV : nullptr;
8042 }
8043#endif
8044#ifdef VK_NN_vi_surface
8045 if (!strcmp(name, "vkCreateViSurfaceNN"))
8046 {
8047 bool hasExt = resources->hasDeviceExtension(device, "VK_NN_vi_surface");
8048 return hasExt ? (void*)entry_vkCreateViSurfaceNN : nullptr;
8049 }
8050#endif
8051#ifdef VK_EXT_conditional_rendering
8052 if (!strcmp(name, "vkCmdBeginConditionalRenderingEXT"))
8053 {
8054 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_conditional_rendering");
8055 return hasExt ? (void*)entry_vkCmdBeginConditionalRenderingEXT : nullptr;
8056 }
8057 if (!strcmp(name, "vkCmdEndConditionalRenderingEXT"))
8058 {
8059 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_conditional_rendering");
8060 return hasExt ? (void*)entry_vkCmdEndConditionalRenderingEXT : nullptr;
8061 }
8062#endif
8063#ifdef VK_NVX_device_generated_commands
8064 if (!strcmp(name, "vkCmdProcessCommandsNVX"))
8065 {
8066 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
8067 return hasExt ? (void*)entry_vkCmdProcessCommandsNVX : nullptr;
8068 }
8069 if (!strcmp(name, "vkCmdReserveSpaceForCommandsNVX"))
8070 {
8071 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
8072 return hasExt ? (void*)entry_vkCmdReserveSpaceForCommandsNVX : nullptr;
8073 }
8074 if (!strcmp(name, "vkCreateIndirectCommandsLayoutNVX"))
8075 {
8076 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
8077 return hasExt ? (void*)entry_vkCreateIndirectCommandsLayoutNVX : nullptr;
8078 }
8079 if (!strcmp(name, "vkDestroyIndirectCommandsLayoutNVX"))
8080 {
8081 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
8082 return hasExt ? (void*)entry_vkDestroyIndirectCommandsLayoutNVX : nullptr;
8083 }
8084 if (!strcmp(name, "vkCreateObjectTableNVX"))
8085 {
8086 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
8087 return hasExt ? (void*)entry_vkCreateObjectTableNVX : nullptr;
8088 }
8089 if (!strcmp(name, "vkDestroyObjectTableNVX"))
8090 {
8091 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
8092 return hasExt ? (void*)entry_vkDestroyObjectTableNVX : nullptr;
8093 }
8094 if (!strcmp(name, "vkRegisterObjectsNVX"))
8095 {
8096 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
8097 return hasExt ? (void*)entry_vkRegisterObjectsNVX : nullptr;
8098 }
8099 if (!strcmp(name, "vkUnregisterObjectsNVX"))
8100 {
8101 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
8102 return hasExt ? (void*)entry_vkUnregisterObjectsNVX : nullptr;
8103 }
8104 if (!strcmp(name, "vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX"))
8105 {
8106 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
8107 return hasExt ? (void*)entry_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX : nullptr;
8108 }
8109#endif
8110#ifdef VK_NV_clip_space_w_scaling
8111 if (!strcmp(name, "vkCmdSetViewportWScalingNV"))
8112 {
8113 bool hasExt = resources->hasDeviceExtension(device, "VK_NV_clip_space_w_scaling");
8114 return hasExt ? (void*)entry_vkCmdSetViewportWScalingNV : nullptr;
8115 }
8116#endif
8117#ifdef VK_EXT_direct_mode_display
8118 if (!strcmp(name, "vkReleaseDisplayEXT"))
8119 {
8120 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_direct_mode_display");
8121 return hasExt ? (void*)entry_vkReleaseDisplayEXT : nullptr;
8122 }
8123#endif
8124#ifdef VK_EXT_acquire_xlib_display
8125 if (!strcmp(name, "vkAcquireXlibDisplayEXT"))
8126 {
8127 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_acquire_xlib_display");
8128 return hasExt ? (void*)entry_vkAcquireXlibDisplayEXT : nullptr;
8129 }
8130 if (!strcmp(name, "vkGetRandROutputDisplayEXT"))
8131 {
8132 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_acquire_xlib_display");
8133 return hasExt ? (void*)entry_vkGetRandROutputDisplayEXT : nullptr;
8134 }
8135#endif
8136#ifdef VK_EXT_display_surface_counter
8137 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2EXT"))
8138 {
8139 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_display_surface_counter");
8140 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceCapabilities2EXT : nullptr;
8141 }
8142#endif
8143#ifdef VK_EXT_display_control
8144 if (!strcmp(name, "vkDisplayPowerControlEXT"))
8145 {
8146 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_display_control");
8147 return hasExt ? (void*)entry_vkDisplayPowerControlEXT : nullptr;
8148 }
8149 if (!strcmp(name, "vkRegisterDeviceEventEXT"))
8150 {
8151 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_display_control");
8152 return hasExt ? (void*)entry_vkRegisterDeviceEventEXT : nullptr;
8153 }
8154 if (!strcmp(name, "vkRegisterDisplayEventEXT"))
8155 {
8156 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_display_control");
8157 return hasExt ? (void*)entry_vkRegisterDisplayEventEXT : nullptr;
8158 }
8159 if (!strcmp(name, "vkGetSwapchainCounterEXT"))
8160 {
8161 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_display_control");
8162 return hasExt ? (void*)entry_vkGetSwapchainCounterEXT : nullptr;
8163 }
8164#endif
8165#ifdef VK_GOOGLE_display_timing
8166 if (!strcmp(name, "vkGetRefreshCycleDurationGOOGLE"))
8167 {
8168 bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_display_timing");
8169 return hasExt ? (void*)entry_vkGetRefreshCycleDurationGOOGLE : nullptr;
8170 }
8171 if (!strcmp(name, "vkGetPastPresentationTimingGOOGLE"))
8172 {
8173 bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_display_timing");
8174 return hasExt ? (void*)entry_vkGetPastPresentationTimingGOOGLE : nullptr;
8175 }
8176#endif
8177#ifdef VK_EXT_discard_rectangles
8178 if (!strcmp(name, "vkCmdSetDiscardRectangleEXT"))
8179 {
8180 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_discard_rectangles");
8181 return hasExt ? (void*)entry_vkCmdSetDiscardRectangleEXT : nullptr;
8182 }
8183#endif
8184#ifdef VK_EXT_hdr_metadata
8185 if (!strcmp(name, "vkSetHdrMetadataEXT"))
8186 {
8187 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_hdr_metadata");
8188 return hasExt ? (void*)entry_vkSetHdrMetadataEXT : nullptr;
8189 }
8190#endif
8191#ifdef VK_MVK_ios_surface
8192 if (!strcmp(name, "vkCreateIOSSurfaceMVK"))
8193 {
8194 bool hasExt = resources->hasDeviceExtension(device, "VK_MVK_ios_surface");
8195 return hasExt ? (void*)entry_vkCreateIOSSurfaceMVK : nullptr;
8196 }
8197#endif
8198#ifdef VK_MVK_macos_surface
8199 if (!strcmp(name, "vkCreateMacOSSurfaceMVK"))
8200 {
8201 bool hasExt = resources->hasDeviceExtension(device, "VK_MVK_macos_surface");
8202 return hasExt ? (void*)entry_vkCreateMacOSSurfaceMVK : nullptr;
8203 }
8204#endif
8205#ifdef VK_EXT_debug_utils
8206 if (!strcmp(name, "vkSetDebugUtilsObjectNameEXT"))
8207 {
8208 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8209 return hasExt ? (void*)entry_vkSetDebugUtilsObjectNameEXT : nullptr;
8210 }
8211 if (!strcmp(name, "vkSetDebugUtilsObjectTagEXT"))
8212 {
8213 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8214 return hasExt ? (void*)entry_vkSetDebugUtilsObjectTagEXT : nullptr;
8215 }
8216 if (!strcmp(name, "vkQueueBeginDebugUtilsLabelEXT"))
8217 {
8218 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8219 return hasExt ? (void*)entry_vkQueueBeginDebugUtilsLabelEXT : nullptr;
8220 }
8221 if (!strcmp(name, "vkQueueEndDebugUtilsLabelEXT"))
8222 {
8223 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8224 return hasExt ? (void*)entry_vkQueueEndDebugUtilsLabelEXT : nullptr;
8225 }
8226 if (!strcmp(name, "vkQueueInsertDebugUtilsLabelEXT"))
8227 {
8228 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8229 return hasExt ? (void*)entry_vkQueueInsertDebugUtilsLabelEXT : nullptr;
8230 }
8231 if (!strcmp(name, "vkCmdBeginDebugUtilsLabelEXT"))
8232 {
8233 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8234 return hasExt ? (void*)entry_vkCmdBeginDebugUtilsLabelEXT : nullptr;
8235 }
8236 if (!strcmp(name, "vkCmdEndDebugUtilsLabelEXT"))
8237 {
8238 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8239 return hasExt ? (void*)entry_vkCmdEndDebugUtilsLabelEXT : nullptr;
8240 }
8241 if (!strcmp(name, "vkCmdInsertDebugUtilsLabelEXT"))
8242 {
8243 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8244 return hasExt ? (void*)entry_vkCmdInsertDebugUtilsLabelEXT : nullptr;
8245 }
8246 if (!strcmp(name, "vkCreateDebugUtilsMessengerEXT"))
8247 {
8248 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8249 return hasExt ? (void*)entry_vkCreateDebugUtilsMessengerEXT : nullptr;
8250 }
8251 if (!strcmp(name, "vkDestroyDebugUtilsMessengerEXT"))
8252 {
8253 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8254 return hasExt ? (void*)entry_vkDestroyDebugUtilsMessengerEXT : nullptr;
8255 }
8256 if (!strcmp(name, "vkSubmitDebugUtilsMessageEXT"))
8257 {
8258 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8259 return hasExt ? (void*)entry_vkSubmitDebugUtilsMessageEXT : nullptr;
8260 }
8261#endif
8262#ifdef VK_ANDROID_external_memory_android_hardware_buffer
8263 if (!strcmp(name, "vkGetAndroidHardwareBufferPropertiesANDROID"))
8264 {
8265 bool hasExt = resources->hasDeviceExtension(device, "VK_ANDROID_external_memory_android_hardware_buffer");
8266 return hasExt ? (void*)entry_vkGetAndroidHardwareBufferPropertiesANDROID : nullptr;
8267 }
8268 if (!strcmp(name, "vkGetMemoryAndroidHardwareBufferANDROID"))
8269 {
8270 bool hasExt = resources->hasDeviceExtension(device, "VK_ANDROID_external_memory_android_hardware_buffer");
8271 return hasExt ? (void*)entry_vkGetMemoryAndroidHardwareBufferANDROID : nullptr;
8272 }
8273#endif
8274#ifdef VK_EXT_sample_locations
8275 if (!strcmp(name, "vkCmdSetSampleLocationsEXT"))
8276 {
8277 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_sample_locations");
8278 return hasExt ? (void*)entry_vkCmdSetSampleLocationsEXT : nullptr;
8279 }
8280 if (!strcmp(name, "vkGetPhysicalDeviceMultisamplePropertiesEXT"))
8281 {
8282 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_sample_locations");
8283 return hasExt ? (void*)entry_vkGetPhysicalDeviceMultisamplePropertiesEXT : nullptr;
8284 }
8285#endif
8286#ifdef VK_EXT_validation_cache
8287 if (!strcmp(name, "vkCreateValidationCacheEXT"))
8288 {
8289 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_validation_cache");
8290 return hasExt ? (void*)entry_vkCreateValidationCacheEXT : nullptr;
8291 }
8292 if (!strcmp(name, "vkDestroyValidationCacheEXT"))
8293 {
8294 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_validation_cache");
8295 return hasExt ? (void*)entry_vkDestroyValidationCacheEXT : nullptr;
8296 }
8297 if (!strcmp(name, "vkMergeValidationCachesEXT"))
8298 {
8299 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_validation_cache");
8300 return hasExt ? (void*)entry_vkMergeValidationCachesEXT : nullptr;
8301 }
8302 if (!strcmp(name, "vkGetValidationCacheDataEXT"))
8303 {
8304 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_validation_cache");
8305 return hasExt ? (void*)entry_vkGetValidationCacheDataEXT : nullptr;
8306 }
8307#endif
8308#ifdef VK_EXT_external_memory_host
8309 if (!strcmp(name, "vkGetMemoryHostPointerPropertiesEXT"))
8310 {
8311 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_external_memory_host");
8312 return hasExt ? (void*)entry_vkGetMemoryHostPointerPropertiesEXT : nullptr;
8313 }
8314#endif
8315#ifdef VK_AMD_buffer_marker
8316 if (!strcmp(name, "vkCmdWriteBufferMarkerAMD"))
8317 {
8318 bool hasExt = resources->hasDeviceExtension(device, "VK_AMD_buffer_marker");
8319 return hasExt ? (void*)entry_vkCmdWriteBufferMarkerAMD : nullptr;
8320 }
8321#endif
8322#ifdef VK_NV_device_diagnostic_checkpoints
8323 if (!strcmp(name, "vkCmdSetCheckpointNV"))
8324 {
8325 bool hasExt = resources->hasDeviceExtension(device, "VK_NV_device_diagnostic_checkpoints");
8326 return hasExt ? (void*)entry_vkCmdSetCheckpointNV : nullptr;
8327 }
8328 if (!strcmp(name, "vkGetQueueCheckpointDataNV"))
8329 {
8330 bool hasExt = resources->hasDeviceExtension(device, "VK_NV_device_diagnostic_checkpoints");
8331 return hasExt ? (void*)entry_vkGetQueueCheckpointDataNV : nullptr;
8332 }
8333#endif
8334#ifdef VK_GOOGLE_address_space
8335 if (!strcmp(name, "vkMapMemoryIntoAddressSpaceGOOGLE"))
8336 {
8337 bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_address_space");
8338 return hasExt ? (void*)entry_vkMapMemoryIntoAddressSpaceGOOGLE : nullptr;
Lingfeng Yang5c63afd2018-12-22 01:21:14 -08008339 }
8340#endif
Lingfeng Yangae7e1b32019-02-19 14:07:39 -08008341#ifdef VK_GOOGLE_color_buffer
8342 if (!strcmp(name, "vkRegisterImageColorBufferGOOGLE"))
8343 {
8344 bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_color_buffer");
8345 return hasExt ? (void*)entry_vkRegisterImageColorBufferGOOGLE : nullptr;
8346 }
8347 if (!strcmp(name, "vkRegisterBufferColorBufferGOOGLE"))
8348 {
8349 bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_color_buffer");
8350 return hasExt ? (void*)entry_vkRegisterBufferColorBufferGOOGLE : nullptr;
8351 }
8352#endif
Lingfeng Yang05d5ea32019-03-23 00:12:39 -07008353#ifdef VK_GOOGLE_sized_descriptor_update_template
8354 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplateSizedGOOGLE"))
8355 {
8356 bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_sized_descriptor_update_template");
8357 return hasExt ? (void*)entry_vkUpdateDescriptorSetWithTemplateSizedGOOGLE : nullptr;
8358 }
8359#endif
Lingfeng Yangc53e7472019-03-27 08:50:55 -07008360#ifdef VK_GOOGLE_async_command_buffers
8361 if (!strcmp(name, "vkBeginCommandBufferAsyncGOOGLE"))
8362 {
8363 bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_async_command_buffers");
8364 return hasExt ? (void*)entry_vkBeginCommandBufferAsyncGOOGLE : nullptr;
8365 }
8366 if (!strcmp(name, "vkEndCommandBufferAsyncGOOGLE"))
8367 {
8368 bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_async_command_buffers");
8369 return hasExt ? (void*)entry_vkEndCommandBufferAsyncGOOGLE : nullptr;
8370 }
8371 if (!strcmp(name, "vkResetCommandBufferAsyncGOOGLE"))
8372 {
8373 bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_async_command_buffers");
8374 return hasExt ? (void*)entry_vkResetCommandBufferAsyncGOOGLE : nullptr;
8375 }
8376#endif
Lingfeng Yang0b81df22018-11-05 21:40:30 -08008377 return nullptr;
8378}
8379
8380} // namespace goldfish_vk