blob: f5b380e23c6df69a7ddf52a9c4b1ffa71f9299cf [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;
Roman Kiryanov6db11e52019-04-26 14:18:14 -0700669 auto resources = ResourceTracker::get();
670 vkCreateImageView_VkResult_return = resources->on_vkCreateImageView(vkEnc, VK_SUCCESS, device, pCreateInfo, pAllocator, pView);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800671 return vkCreateImageView_VkResult_return;
672}
673static void entry_vkDestroyImageView(
674 VkDevice device,
675 VkImageView imageView,
676 const VkAllocationCallbacks* pAllocator)
677{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800678 AEMU_SCOPED_TRACE("vkDestroyImageView");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800679 auto vkEnc = HostConnection::get()->vkEncoder();
680 vkEnc->vkDestroyImageView(device, imageView, pAllocator);
681}
682static VkResult entry_vkCreateShaderModule(
683 VkDevice device,
684 const VkShaderModuleCreateInfo* pCreateInfo,
685 const VkAllocationCallbacks* pAllocator,
686 VkShaderModule* pShaderModule)
687{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800688 AEMU_SCOPED_TRACE("vkCreateShaderModule");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800689 auto vkEnc = HostConnection::get()->vkEncoder();
690 VkResult vkCreateShaderModule_VkResult_return = (VkResult)0;
691 vkCreateShaderModule_VkResult_return = vkEnc->vkCreateShaderModule(device, pCreateInfo, pAllocator, pShaderModule);
692 return vkCreateShaderModule_VkResult_return;
693}
694static void entry_vkDestroyShaderModule(
695 VkDevice device,
696 VkShaderModule shaderModule,
697 const VkAllocationCallbacks* pAllocator)
698{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800699 AEMU_SCOPED_TRACE("vkDestroyShaderModule");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800700 auto vkEnc = HostConnection::get()->vkEncoder();
701 vkEnc->vkDestroyShaderModule(device, shaderModule, pAllocator);
702}
703static VkResult entry_vkCreatePipelineCache(
704 VkDevice device,
705 const VkPipelineCacheCreateInfo* pCreateInfo,
706 const VkAllocationCallbacks* pAllocator,
707 VkPipelineCache* pPipelineCache)
708{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800709 AEMU_SCOPED_TRACE("vkCreatePipelineCache");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800710 auto vkEnc = HostConnection::get()->vkEncoder();
711 VkResult vkCreatePipelineCache_VkResult_return = (VkResult)0;
712 vkCreatePipelineCache_VkResult_return = vkEnc->vkCreatePipelineCache(device, pCreateInfo, pAllocator, pPipelineCache);
713 return vkCreatePipelineCache_VkResult_return;
714}
715static void entry_vkDestroyPipelineCache(
716 VkDevice device,
717 VkPipelineCache pipelineCache,
718 const VkAllocationCallbacks* pAllocator)
719{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800720 AEMU_SCOPED_TRACE("vkDestroyPipelineCache");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800721 auto vkEnc = HostConnection::get()->vkEncoder();
722 vkEnc->vkDestroyPipelineCache(device, pipelineCache, pAllocator);
723}
724static VkResult entry_vkGetPipelineCacheData(
725 VkDevice device,
726 VkPipelineCache pipelineCache,
727 size_t* pDataSize,
728 void* pData)
729{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800730 AEMU_SCOPED_TRACE("vkGetPipelineCacheData");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800731 auto vkEnc = HostConnection::get()->vkEncoder();
732 VkResult vkGetPipelineCacheData_VkResult_return = (VkResult)0;
733 vkGetPipelineCacheData_VkResult_return = vkEnc->vkGetPipelineCacheData(device, pipelineCache, pDataSize, pData);
734 return vkGetPipelineCacheData_VkResult_return;
735}
736static VkResult entry_vkMergePipelineCaches(
737 VkDevice device,
738 VkPipelineCache dstCache,
739 uint32_t srcCacheCount,
740 const VkPipelineCache* pSrcCaches)
741{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800742 AEMU_SCOPED_TRACE("vkMergePipelineCaches");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800743 auto vkEnc = HostConnection::get()->vkEncoder();
744 VkResult vkMergePipelineCaches_VkResult_return = (VkResult)0;
745 vkMergePipelineCaches_VkResult_return = vkEnc->vkMergePipelineCaches(device, dstCache, srcCacheCount, pSrcCaches);
746 return vkMergePipelineCaches_VkResult_return;
747}
748static VkResult entry_vkCreateGraphicsPipelines(
749 VkDevice device,
750 VkPipelineCache pipelineCache,
751 uint32_t createInfoCount,
752 const VkGraphicsPipelineCreateInfo* pCreateInfos,
753 const VkAllocationCallbacks* pAllocator,
754 VkPipeline* pPipelines)
755{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800756 AEMU_SCOPED_TRACE("vkCreateGraphicsPipelines");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800757 auto vkEnc = HostConnection::get()->vkEncoder();
758 VkResult vkCreateGraphicsPipelines_VkResult_return = (VkResult)0;
759 vkCreateGraphicsPipelines_VkResult_return = vkEnc->vkCreateGraphicsPipelines(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines);
760 return vkCreateGraphicsPipelines_VkResult_return;
761}
762static VkResult entry_vkCreateComputePipelines(
763 VkDevice device,
764 VkPipelineCache pipelineCache,
765 uint32_t createInfoCount,
766 const VkComputePipelineCreateInfo* pCreateInfos,
767 const VkAllocationCallbacks* pAllocator,
768 VkPipeline* pPipelines)
769{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800770 AEMU_SCOPED_TRACE("vkCreateComputePipelines");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800771 auto vkEnc = HostConnection::get()->vkEncoder();
772 VkResult vkCreateComputePipelines_VkResult_return = (VkResult)0;
773 vkCreateComputePipelines_VkResult_return = vkEnc->vkCreateComputePipelines(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines);
774 return vkCreateComputePipelines_VkResult_return;
775}
776static void entry_vkDestroyPipeline(
777 VkDevice device,
778 VkPipeline pipeline,
779 const VkAllocationCallbacks* pAllocator)
780{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800781 AEMU_SCOPED_TRACE("vkDestroyPipeline");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800782 auto vkEnc = HostConnection::get()->vkEncoder();
783 vkEnc->vkDestroyPipeline(device, pipeline, pAllocator);
784}
785static VkResult entry_vkCreatePipelineLayout(
786 VkDevice device,
787 const VkPipelineLayoutCreateInfo* pCreateInfo,
788 const VkAllocationCallbacks* pAllocator,
789 VkPipelineLayout* pPipelineLayout)
790{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800791 AEMU_SCOPED_TRACE("vkCreatePipelineLayout");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800792 auto vkEnc = HostConnection::get()->vkEncoder();
793 VkResult vkCreatePipelineLayout_VkResult_return = (VkResult)0;
794 vkCreatePipelineLayout_VkResult_return = vkEnc->vkCreatePipelineLayout(device, pCreateInfo, pAllocator, pPipelineLayout);
795 return vkCreatePipelineLayout_VkResult_return;
796}
797static void entry_vkDestroyPipelineLayout(
798 VkDevice device,
799 VkPipelineLayout pipelineLayout,
800 const VkAllocationCallbacks* pAllocator)
801{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800802 AEMU_SCOPED_TRACE("vkDestroyPipelineLayout");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800803 auto vkEnc = HostConnection::get()->vkEncoder();
804 vkEnc->vkDestroyPipelineLayout(device, pipelineLayout, pAllocator);
805}
806static VkResult entry_vkCreateSampler(
807 VkDevice device,
808 const VkSamplerCreateInfo* pCreateInfo,
809 const VkAllocationCallbacks* pAllocator,
810 VkSampler* pSampler)
811{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800812 AEMU_SCOPED_TRACE("vkCreateSampler");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800813 auto vkEnc = HostConnection::get()->vkEncoder();
814 VkResult vkCreateSampler_VkResult_return = (VkResult)0;
815 vkCreateSampler_VkResult_return = vkEnc->vkCreateSampler(device, pCreateInfo, pAllocator, pSampler);
816 return vkCreateSampler_VkResult_return;
817}
818static void entry_vkDestroySampler(
819 VkDevice device,
820 VkSampler sampler,
821 const VkAllocationCallbacks* pAllocator)
822{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800823 AEMU_SCOPED_TRACE("vkDestroySampler");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800824 auto vkEnc = HostConnection::get()->vkEncoder();
825 vkEnc->vkDestroySampler(device, sampler, pAllocator);
826}
827static VkResult entry_vkCreateDescriptorSetLayout(
828 VkDevice device,
829 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
830 const VkAllocationCallbacks* pAllocator,
831 VkDescriptorSetLayout* pSetLayout)
832{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800833 AEMU_SCOPED_TRACE("vkCreateDescriptorSetLayout");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800834 auto vkEnc = HostConnection::get()->vkEncoder();
835 VkResult vkCreateDescriptorSetLayout_VkResult_return = (VkResult)0;
836 vkCreateDescriptorSetLayout_VkResult_return = vkEnc->vkCreateDescriptorSetLayout(device, pCreateInfo, pAllocator, pSetLayout);
837 return vkCreateDescriptorSetLayout_VkResult_return;
838}
839static void entry_vkDestroyDescriptorSetLayout(
840 VkDevice device,
841 VkDescriptorSetLayout descriptorSetLayout,
842 const VkAllocationCallbacks* pAllocator)
843{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800844 AEMU_SCOPED_TRACE("vkDestroyDescriptorSetLayout");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800845 auto vkEnc = HostConnection::get()->vkEncoder();
846 vkEnc->vkDestroyDescriptorSetLayout(device, descriptorSetLayout, pAllocator);
847}
848static VkResult entry_vkCreateDescriptorPool(
849 VkDevice device,
850 const VkDescriptorPoolCreateInfo* pCreateInfo,
851 const VkAllocationCallbacks* pAllocator,
852 VkDescriptorPool* pDescriptorPool)
853{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800854 AEMU_SCOPED_TRACE("vkCreateDescriptorPool");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800855 auto vkEnc = HostConnection::get()->vkEncoder();
856 VkResult vkCreateDescriptorPool_VkResult_return = (VkResult)0;
857 vkCreateDescriptorPool_VkResult_return = vkEnc->vkCreateDescriptorPool(device, pCreateInfo, pAllocator, pDescriptorPool);
858 return vkCreateDescriptorPool_VkResult_return;
859}
860static void entry_vkDestroyDescriptorPool(
861 VkDevice device,
862 VkDescriptorPool descriptorPool,
863 const VkAllocationCallbacks* pAllocator)
864{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800865 AEMU_SCOPED_TRACE("vkDestroyDescriptorPool");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800866 auto vkEnc = HostConnection::get()->vkEncoder();
867 vkEnc->vkDestroyDescriptorPool(device, descriptorPool, pAllocator);
868}
869static VkResult entry_vkResetDescriptorPool(
870 VkDevice device,
871 VkDescriptorPool descriptorPool,
872 VkDescriptorPoolResetFlags flags)
873{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800874 AEMU_SCOPED_TRACE("vkResetDescriptorPool");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800875 auto vkEnc = HostConnection::get()->vkEncoder();
876 VkResult vkResetDescriptorPool_VkResult_return = (VkResult)0;
877 vkResetDescriptorPool_VkResult_return = vkEnc->vkResetDescriptorPool(device, descriptorPool, flags);
878 return vkResetDescriptorPool_VkResult_return;
879}
880static VkResult entry_vkAllocateDescriptorSets(
881 VkDevice device,
882 const VkDescriptorSetAllocateInfo* pAllocateInfo,
883 VkDescriptorSet* pDescriptorSets)
884{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800885 AEMU_SCOPED_TRACE("vkAllocateDescriptorSets");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800886 auto vkEnc = HostConnection::get()->vkEncoder();
887 VkResult vkAllocateDescriptorSets_VkResult_return = (VkResult)0;
888 vkAllocateDescriptorSets_VkResult_return = vkEnc->vkAllocateDescriptorSets(device, pAllocateInfo, pDescriptorSets);
889 return vkAllocateDescriptorSets_VkResult_return;
890}
891static VkResult entry_vkFreeDescriptorSets(
892 VkDevice device,
893 VkDescriptorPool descriptorPool,
894 uint32_t descriptorSetCount,
895 const VkDescriptorSet* pDescriptorSets)
896{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800897 AEMU_SCOPED_TRACE("vkFreeDescriptorSets");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800898 auto vkEnc = HostConnection::get()->vkEncoder();
899 VkResult vkFreeDescriptorSets_VkResult_return = (VkResult)0;
900 vkFreeDescriptorSets_VkResult_return = vkEnc->vkFreeDescriptorSets(device, descriptorPool, descriptorSetCount, pDescriptorSets);
901 return vkFreeDescriptorSets_VkResult_return;
902}
903static void entry_vkUpdateDescriptorSets(
904 VkDevice device,
905 uint32_t descriptorWriteCount,
906 const VkWriteDescriptorSet* pDescriptorWrites,
907 uint32_t descriptorCopyCount,
908 const VkCopyDescriptorSet* pDescriptorCopies)
909{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800910 AEMU_SCOPED_TRACE("vkUpdateDescriptorSets");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800911 auto vkEnc = HostConnection::get()->vkEncoder();
912 vkEnc->vkUpdateDescriptorSets(device, descriptorWriteCount, pDescriptorWrites, descriptorCopyCount, pDescriptorCopies);
913}
914static VkResult entry_vkCreateFramebuffer(
915 VkDevice device,
916 const VkFramebufferCreateInfo* pCreateInfo,
917 const VkAllocationCallbacks* pAllocator,
918 VkFramebuffer* pFramebuffer)
919{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800920 AEMU_SCOPED_TRACE("vkCreateFramebuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800921 auto vkEnc = HostConnection::get()->vkEncoder();
922 VkResult vkCreateFramebuffer_VkResult_return = (VkResult)0;
923 vkCreateFramebuffer_VkResult_return = vkEnc->vkCreateFramebuffer(device, pCreateInfo, pAllocator, pFramebuffer);
924 return vkCreateFramebuffer_VkResult_return;
925}
926static void entry_vkDestroyFramebuffer(
927 VkDevice device,
928 VkFramebuffer framebuffer,
929 const VkAllocationCallbacks* pAllocator)
930{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800931 AEMU_SCOPED_TRACE("vkDestroyFramebuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800932 auto vkEnc = HostConnection::get()->vkEncoder();
933 vkEnc->vkDestroyFramebuffer(device, framebuffer, pAllocator);
934}
935static VkResult entry_vkCreateRenderPass(
936 VkDevice device,
937 const VkRenderPassCreateInfo* pCreateInfo,
938 const VkAllocationCallbacks* pAllocator,
939 VkRenderPass* pRenderPass)
940{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800941 AEMU_SCOPED_TRACE("vkCreateRenderPass");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800942 auto vkEnc = HostConnection::get()->vkEncoder();
943 VkResult vkCreateRenderPass_VkResult_return = (VkResult)0;
944 vkCreateRenderPass_VkResult_return = vkEnc->vkCreateRenderPass(device, pCreateInfo, pAllocator, pRenderPass);
945 return vkCreateRenderPass_VkResult_return;
946}
947static void entry_vkDestroyRenderPass(
948 VkDevice device,
949 VkRenderPass renderPass,
950 const VkAllocationCallbacks* pAllocator)
951{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800952 AEMU_SCOPED_TRACE("vkDestroyRenderPass");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800953 auto vkEnc = HostConnection::get()->vkEncoder();
954 vkEnc->vkDestroyRenderPass(device, renderPass, pAllocator);
955}
956static void entry_vkGetRenderAreaGranularity(
957 VkDevice device,
958 VkRenderPass renderPass,
959 VkExtent2D* pGranularity)
960{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800961 AEMU_SCOPED_TRACE("vkGetRenderAreaGranularity");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800962 auto vkEnc = HostConnection::get()->vkEncoder();
963 vkEnc->vkGetRenderAreaGranularity(device, renderPass, pGranularity);
964}
965static VkResult entry_vkCreateCommandPool(
966 VkDevice device,
967 const VkCommandPoolCreateInfo* pCreateInfo,
968 const VkAllocationCallbacks* pAllocator,
969 VkCommandPool* pCommandPool)
970{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800971 AEMU_SCOPED_TRACE("vkCreateCommandPool");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800972 auto vkEnc = HostConnection::get()->vkEncoder();
973 VkResult vkCreateCommandPool_VkResult_return = (VkResult)0;
974 vkCreateCommandPool_VkResult_return = vkEnc->vkCreateCommandPool(device, pCreateInfo, pAllocator, pCommandPool);
975 return vkCreateCommandPool_VkResult_return;
976}
977static void entry_vkDestroyCommandPool(
978 VkDevice device,
979 VkCommandPool commandPool,
980 const VkAllocationCallbacks* pAllocator)
981{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800982 AEMU_SCOPED_TRACE("vkDestroyCommandPool");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800983 auto vkEnc = HostConnection::get()->vkEncoder();
984 vkEnc->vkDestroyCommandPool(device, commandPool, pAllocator);
985}
986static VkResult entry_vkResetCommandPool(
987 VkDevice device,
988 VkCommandPool commandPool,
989 VkCommandPoolResetFlags flags)
990{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800991 AEMU_SCOPED_TRACE("vkResetCommandPool");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800992 auto vkEnc = HostConnection::get()->vkEncoder();
993 VkResult vkResetCommandPool_VkResult_return = (VkResult)0;
994 vkResetCommandPool_VkResult_return = vkEnc->vkResetCommandPool(device, commandPool, flags);
995 return vkResetCommandPool_VkResult_return;
996}
997static VkResult entry_vkAllocateCommandBuffers(
998 VkDevice device,
999 const VkCommandBufferAllocateInfo* pAllocateInfo,
1000 VkCommandBuffer* pCommandBuffers)
1001{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001002 AEMU_SCOPED_TRACE("vkAllocateCommandBuffers");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001003 auto vkEnc = HostConnection::get()->vkEncoder();
1004 VkResult vkAllocateCommandBuffers_VkResult_return = (VkResult)0;
1005 vkAllocateCommandBuffers_VkResult_return = vkEnc->vkAllocateCommandBuffers(device, pAllocateInfo, pCommandBuffers);
1006 return vkAllocateCommandBuffers_VkResult_return;
1007}
1008static void entry_vkFreeCommandBuffers(
1009 VkDevice device,
1010 VkCommandPool commandPool,
1011 uint32_t commandBufferCount,
1012 const VkCommandBuffer* pCommandBuffers)
1013{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001014 AEMU_SCOPED_TRACE("vkFreeCommandBuffers");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001015 auto vkEnc = HostConnection::get()->vkEncoder();
1016 vkEnc->vkFreeCommandBuffers(device, commandPool, commandBufferCount, pCommandBuffers);
1017}
1018static VkResult entry_vkBeginCommandBuffer(
1019 VkCommandBuffer commandBuffer,
1020 const VkCommandBufferBeginInfo* pBeginInfo)
1021{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001022 AEMU_SCOPED_TRACE("vkBeginCommandBuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001023 auto vkEnc = HostConnection::get()->vkEncoder();
1024 VkResult vkBeginCommandBuffer_VkResult_return = (VkResult)0;
Lingfeng Yangc53e7472019-03-27 08:50:55 -07001025 auto resources = ResourceTracker::get();
1026 vkBeginCommandBuffer_VkResult_return = resources->on_vkBeginCommandBuffer(vkEnc, VK_SUCCESS, commandBuffer, pBeginInfo);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001027 return vkBeginCommandBuffer_VkResult_return;
1028}
1029static VkResult entry_vkEndCommandBuffer(
1030 VkCommandBuffer commandBuffer)
1031{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001032 AEMU_SCOPED_TRACE("vkEndCommandBuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001033 auto vkEnc = HostConnection::get()->vkEncoder();
1034 VkResult vkEndCommandBuffer_VkResult_return = (VkResult)0;
Lingfeng Yangc53e7472019-03-27 08:50:55 -07001035 auto resources = ResourceTracker::get();
1036 vkEndCommandBuffer_VkResult_return = resources->on_vkEndCommandBuffer(vkEnc, VK_SUCCESS, commandBuffer);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001037 return vkEndCommandBuffer_VkResult_return;
1038}
1039static VkResult entry_vkResetCommandBuffer(
1040 VkCommandBuffer commandBuffer,
1041 VkCommandBufferResetFlags flags)
1042{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001043 AEMU_SCOPED_TRACE("vkResetCommandBuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001044 auto vkEnc = HostConnection::get()->vkEncoder();
1045 VkResult vkResetCommandBuffer_VkResult_return = (VkResult)0;
Lingfeng Yangc53e7472019-03-27 08:50:55 -07001046 auto resources = ResourceTracker::get();
1047 vkResetCommandBuffer_VkResult_return = resources->on_vkResetCommandBuffer(vkEnc, VK_SUCCESS, commandBuffer, flags);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001048 return vkResetCommandBuffer_VkResult_return;
1049}
1050static void entry_vkCmdBindPipeline(
1051 VkCommandBuffer commandBuffer,
1052 VkPipelineBindPoint pipelineBindPoint,
1053 VkPipeline pipeline)
1054{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001055 AEMU_SCOPED_TRACE("vkCmdBindPipeline");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001056 auto vkEnc = HostConnection::get()->vkEncoder();
1057 vkEnc->vkCmdBindPipeline(commandBuffer, pipelineBindPoint, pipeline);
1058}
1059static void entry_vkCmdSetViewport(
1060 VkCommandBuffer commandBuffer,
1061 uint32_t firstViewport,
1062 uint32_t viewportCount,
1063 const VkViewport* pViewports)
1064{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001065 AEMU_SCOPED_TRACE("vkCmdSetViewport");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001066 auto vkEnc = HostConnection::get()->vkEncoder();
1067 vkEnc->vkCmdSetViewport(commandBuffer, firstViewport, viewportCount, pViewports);
1068}
1069static void entry_vkCmdSetScissor(
1070 VkCommandBuffer commandBuffer,
1071 uint32_t firstScissor,
1072 uint32_t scissorCount,
1073 const VkRect2D* pScissors)
1074{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001075 AEMU_SCOPED_TRACE("vkCmdSetScissor");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001076 auto vkEnc = HostConnection::get()->vkEncoder();
1077 vkEnc->vkCmdSetScissor(commandBuffer, firstScissor, scissorCount, pScissors);
1078}
1079static void entry_vkCmdSetLineWidth(
1080 VkCommandBuffer commandBuffer,
1081 float lineWidth)
1082{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001083 AEMU_SCOPED_TRACE("vkCmdSetLineWidth");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001084 auto vkEnc = HostConnection::get()->vkEncoder();
1085 vkEnc->vkCmdSetLineWidth(commandBuffer, lineWidth);
1086}
1087static void entry_vkCmdSetDepthBias(
1088 VkCommandBuffer commandBuffer,
1089 float depthBiasConstantFactor,
1090 float depthBiasClamp,
1091 float depthBiasSlopeFactor)
1092{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001093 AEMU_SCOPED_TRACE("vkCmdSetDepthBias");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001094 auto vkEnc = HostConnection::get()->vkEncoder();
1095 vkEnc->vkCmdSetDepthBias(commandBuffer, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor);
1096}
1097static void entry_vkCmdSetBlendConstants(
1098 VkCommandBuffer commandBuffer,
Lingfeng Yang97ddeb82019-04-20 14:32:52 -07001099 const float blendConstants[4])
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001100{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001101 AEMU_SCOPED_TRACE("vkCmdSetBlendConstants");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001102 auto vkEnc = HostConnection::get()->vkEncoder();
1103 vkEnc->vkCmdSetBlendConstants(commandBuffer, blendConstants);
1104}
1105static void entry_vkCmdSetDepthBounds(
1106 VkCommandBuffer commandBuffer,
1107 float minDepthBounds,
1108 float maxDepthBounds)
1109{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001110 AEMU_SCOPED_TRACE("vkCmdSetDepthBounds");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001111 auto vkEnc = HostConnection::get()->vkEncoder();
1112 vkEnc->vkCmdSetDepthBounds(commandBuffer, minDepthBounds, maxDepthBounds);
1113}
1114static void entry_vkCmdSetStencilCompareMask(
1115 VkCommandBuffer commandBuffer,
1116 VkStencilFaceFlags faceMask,
1117 uint32_t compareMask)
1118{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001119 AEMU_SCOPED_TRACE("vkCmdSetStencilCompareMask");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001120 auto vkEnc = HostConnection::get()->vkEncoder();
1121 vkEnc->vkCmdSetStencilCompareMask(commandBuffer, faceMask, compareMask);
1122}
1123static void entry_vkCmdSetStencilWriteMask(
1124 VkCommandBuffer commandBuffer,
1125 VkStencilFaceFlags faceMask,
1126 uint32_t writeMask)
1127{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001128 AEMU_SCOPED_TRACE("vkCmdSetStencilWriteMask");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001129 auto vkEnc = HostConnection::get()->vkEncoder();
1130 vkEnc->vkCmdSetStencilWriteMask(commandBuffer, faceMask, writeMask);
1131}
1132static void entry_vkCmdSetStencilReference(
1133 VkCommandBuffer commandBuffer,
1134 VkStencilFaceFlags faceMask,
1135 uint32_t reference)
1136{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001137 AEMU_SCOPED_TRACE("vkCmdSetStencilReference");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001138 auto vkEnc = HostConnection::get()->vkEncoder();
1139 vkEnc->vkCmdSetStencilReference(commandBuffer, faceMask, reference);
1140}
1141static void entry_vkCmdBindDescriptorSets(
1142 VkCommandBuffer commandBuffer,
1143 VkPipelineBindPoint pipelineBindPoint,
1144 VkPipelineLayout layout,
1145 uint32_t firstSet,
1146 uint32_t descriptorSetCount,
1147 const VkDescriptorSet* pDescriptorSets,
1148 uint32_t dynamicOffsetCount,
1149 const uint32_t* pDynamicOffsets)
1150{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001151 AEMU_SCOPED_TRACE("vkCmdBindDescriptorSets");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001152 auto vkEnc = HostConnection::get()->vkEncoder();
1153 vkEnc->vkCmdBindDescriptorSets(commandBuffer, pipelineBindPoint, layout, firstSet, descriptorSetCount, pDescriptorSets, dynamicOffsetCount, pDynamicOffsets);
1154}
1155static void entry_vkCmdBindIndexBuffer(
1156 VkCommandBuffer commandBuffer,
1157 VkBuffer buffer,
1158 VkDeviceSize offset,
1159 VkIndexType indexType)
1160{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001161 AEMU_SCOPED_TRACE("vkCmdBindIndexBuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001162 auto vkEnc = HostConnection::get()->vkEncoder();
1163 vkEnc->vkCmdBindIndexBuffer(commandBuffer, buffer, offset, indexType);
1164}
1165static void entry_vkCmdBindVertexBuffers(
1166 VkCommandBuffer commandBuffer,
1167 uint32_t firstBinding,
1168 uint32_t bindingCount,
1169 const VkBuffer* pBuffers,
1170 const VkDeviceSize* pOffsets)
1171{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001172 AEMU_SCOPED_TRACE("vkCmdBindVertexBuffers");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001173 auto vkEnc = HostConnection::get()->vkEncoder();
1174 vkEnc->vkCmdBindVertexBuffers(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets);
1175}
1176static void entry_vkCmdDraw(
1177 VkCommandBuffer commandBuffer,
1178 uint32_t vertexCount,
1179 uint32_t instanceCount,
1180 uint32_t firstVertex,
1181 uint32_t firstInstance)
1182{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001183 AEMU_SCOPED_TRACE("vkCmdDraw");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001184 auto vkEnc = HostConnection::get()->vkEncoder();
1185 vkEnc->vkCmdDraw(commandBuffer, vertexCount, instanceCount, firstVertex, firstInstance);
1186}
1187static void entry_vkCmdDrawIndexed(
1188 VkCommandBuffer commandBuffer,
1189 uint32_t indexCount,
1190 uint32_t instanceCount,
1191 uint32_t firstIndex,
1192 int32_t vertexOffset,
1193 uint32_t firstInstance)
1194{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001195 AEMU_SCOPED_TRACE("vkCmdDrawIndexed");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001196 auto vkEnc = HostConnection::get()->vkEncoder();
1197 vkEnc->vkCmdDrawIndexed(commandBuffer, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance);
1198}
1199static void entry_vkCmdDrawIndirect(
1200 VkCommandBuffer commandBuffer,
1201 VkBuffer buffer,
1202 VkDeviceSize offset,
1203 uint32_t drawCount,
1204 uint32_t stride)
1205{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001206 AEMU_SCOPED_TRACE("vkCmdDrawIndirect");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001207 auto vkEnc = HostConnection::get()->vkEncoder();
1208 vkEnc->vkCmdDrawIndirect(commandBuffer, buffer, offset, drawCount, stride);
1209}
1210static void entry_vkCmdDrawIndexedIndirect(
1211 VkCommandBuffer commandBuffer,
1212 VkBuffer buffer,
1213 VkDeviceSize offset,
1214 uint32_t drawCount,
1215 uint32_t stride)
1216{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001217 AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirect");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001218 auto vkEnc = HostConnection::get()->vkEncoder();
1219 vkEnc->vkCmdDrawIndexedIndirect(commandBuffer, buffer, offset, drawCount, stride);
1220}
1221static void entry_vkCmdDispatch(
1222 VkCommandBuffer commandBuffer,
1223 uint32_t groupCountX,
1224 uint32_t groupCountY,
1225 uint32_t groupCountZ)
1226{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001227 AEMU_SCOPED_TRACE("vkCmdDispatch");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001228 auto vkEnc = HostConnection::get()->vkEncoder();
1229 vkEnc->vkCmdDispatch(commandBuffer, groupCountX, groupCountY, groupCountZ);
1230}
1231static void entry_vkCmdDispatchIndirect(
1232 VkCommandBuffer commandBuffer,
1233 VkBuffer buffer,
1234 VkDeviceSize offset)
1235{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001236 AEMU_SCOPED_TRACE("vkCmdDispatchIndirect");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001237 auto vkEnc = HostConnection::get()->vkEncoder();
1238 vkEnc->vkCmdDispatchIndirect(commandBuffer, buffer, offset);
1239}
1240static void entry_vkCmdCopyBuffer(
1241 VkCommandBuffer commandBuffer,
1242 VkBuffer srcBuffer,
1243 VkBuffer dstBuffer,
1244 uint32_t regionCount,
1245 const VkBufferCopy* pRegions)
1246{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001247 AEMU_SCOPED_TRACE("vkCmdCopyBuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001248 auto vkEnc = HostConnection::get()->vkEncoder();
1249 vkEnc->vkCmdCopyBuffer(commandBuffer, srcBuffer, dstBuffer, regionCount, pRegions);
1250}
1251static void entry_vkCmdCopyImage(
1252 VkCommandBuffer commandBuffer,
1253 VkImage srcImage,
1254 VkImageLayout srcImageLayout,
1255 VkImage dstImage,
1256 VkImageLayout dstImageLayout,
1257 uint32_t regionCount,
1258 const VkImageCopy* pRegions)
1259{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001260 AEMU_SCOPED_TRACE("vkCmdCopyImage");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001261 auto vkEnc = HostConnection::get()->vkEncoder();
1262 vkEnc->vkCmdCopyImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions);
1263}
1264static void entry_vkCmdBlitImage(
1265 VkCommandBuffer commandBuffer,
1266 VkImage srcImage,
1267 VkImageLayout srcImageLayout,
1268 VkImage dstImage,
1269 VkImageLayout dstImageLayout,
1270 uint32_t regionCount,
1271 const VkImageBlit* pRegions,
1272 VkFilter filter)
1273{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001274 AEMU_SCOPED_TRACE("vkCmdBlitImage");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001275 auto vkEnc = HostConnection::get()->vkEncoder();
1276 vkEnc->vkCmdBlitImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions, filter);
1277}
1278static void entry_vkCmdCopyBufferToImage(
1279 VkCommandBuffer commandBuffer,
1280 VkBuffer srcBuffer,
1281 VkImage dstImage,
1282 VkImageLayout dstImageLayout,
1283 uint32_t regionCount,
1284 const VkBufferImageCopy* pRegions)
1285{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001286 AEMU_SCOPED_TRACE("vkCmdCopyBufferToImage");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001287 auto vkEnc = HostConnection::get()->vkEncoder();
1288 vkEnc->vkCmdCopyBufferToImage(commandBuffer, srcBuffer, dstImage, dstImageLayout, regionCount, pRegions);
1289}
1290static void entry_vkCmdCopyImageToBuffer(
1291 VkCommandBuffer commandBuffer,
1292 VkImage srcImage,
1293 VkImageLayout srcImageLayout,
1294 VkBuffer dstBuffer,
1295 uint32_t regionCount,
1296 const VkBufferImageCopy* pRegions)
1297{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001298 AEMU_SCOPED_TRACE("vkCmdCopyImageToBuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001299 auto vkEnc = HostConnection::get()->vkEncoder();
1300 vkEnc->vkCmdCopyImageToBuffer(commandBuffer, srcImage, srcImageLayout, dstBuffer, regionCount, pRegions);
1301}
1302static void entry_vkCmdUpdateBuffer(
1303 VkCommandBuffer commandBuffer,
1304 VkBuffer dstBuffer,
1305 VkDeviceSize dstOffset,
1306 VkDeviceSize dataSize,
1307 const void* pData)
1308{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001309 AEMU_SCOPED_TRACE("vkCmdUpdateBuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001310 auto vkEnc = HostConnection::get()->vkEncoder();
1311 vkEnc->vkCmdUpdateBuffer(commandBuffer, dstBuffer, dstOffset, dataSize, pData);
1312}
1313static void entry_vkCmdFillBuffer(
1314 VkCommandBuffer commandBuffer,
1315 VkBuffer dstBuffer,
1316 VkDeviceSize dstOffset,
1317 VkDeviceSize size,
1318 uint32_t data)
1319{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001320 AEMU_SCOPED_TRACE("vkCmdFillBuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001321 auto vkEnc = HostConnection::get()->vkEncoder();
1322 vkEnc->vkCmdFillBuffer(commandBuffer, dstBuffer, dstOffset, size, data);
1323}
1324static void entry_vkCmdClearColorImage(
1325 VkCommandBuffer commandBuffer,
1326 VkImage image,
1327 VkImageLayout imageLayout,
1328 const VkClearColorValue* pColor,
1329 uint32_t rangeCount,
1330 const VkImageSubresourceRange* pRanges)
1331{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001332 AEMU_SCOPED_TRACE("vkCmdClearColorImage");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001333 auto vkEnc = HostConnection::get()->vkEncoder();
1334 vkEnc->vkCmdClearColorImage(commandBuffer, image, imageLayout, pColor, rangeCount, pRanges);
1335}
1336static void entry_vkCmdClearDepthStencilImage(
1337 VkCommandBuffer commandBuffer,
1338 VkImage image,
1339 VkImageLayout imageLayout,
1340 const VkClearDepthStencilValue* pDepthStencil,
1341 uint32_t rangeCount,
1342 const VkImageSubresourceRange* pRanges)
1343{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001344 AEMU_SCOPED_TRACE("vkCmdClearDepthStencilImage");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001345 auto vkEnc = HostConnection::get()->vkEncoder();
1346 vkEnc->vkCmdClearDepthStencilImage(commandBuffer, image, imageLayout, pDepthStencil, rangeCount, pRanges);
1347}
1348static void entry_vkCmdClearAttachments(
1349 VkCommandBuffer commandBuffer,
1350 uint32_t attachmentCount,
1351 const VkClearAttachment* pAttachments,
1352 uint32_t rectCount,
1353 const VkClearRect* pRects)
1354{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001355 AEMU_SCOPED_TRACE("vkCmdClearAttachments");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001356 auto vkEnc = HostConnection::get()->vkEncoder();
1357 vkEnc->vkCmdClearAttachments(commandBuffer, attachmentCount, pAttachments, rectCount, pRects);
1358}
1359static void entry_vkCmdResolveImage(
1360 VkCommandBuffer commandBuffer,
1361 VkImage srcImage,
1362 VkImageLayout srcImageLayout,
1363 VkImage dstImage,
1364 VkImageLayout dstImageLayout,
1365 uint32_t regionCount,
1366 const VkImageResolve* pRegions)
1367{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001368 AEMU_SCOPED_TRACE("vkCmdResolveImage");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001369 auto vkEnc = HostConnection::get()->vkEncoder();
1370 vkEnc->vkCmdResolveImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions);
1371}
1372static void entry_vkCmdSetEvent(
1373 VkCommandBuffer commandBuffer,
1374 VkEvent event,
1375 VkPipelineStageFlags stageMask)
1376{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001377 AEMU_SCOPED_TRACE("vkCmdSetEvent");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001378 auto vkEnc = HostConnection::get()->vkEncoder();
1379 vkEnc->vkCmdSetEvent(commandBuffer, event, stageMask);
1380}
1381static void entry_vkCmdResetEvent(
1382 VkCommandBuffer commandBuffer,
1383 VkEvent event,
1384 VkPipelineStageFlags stageMask)
1385{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001386 AEMU_SCOPED_TRACE("vkCmdResetEvent");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001387 auto vkEnc = HostConnection::get()->vkEncoder();
1388 vkEnc->vkCmdResetEvent(commandBuffer, event, stageMask);
1389}
1390static void entry_vkCmdWaitEvents(
1391 VkCommandBuffer commandBuffer,
1392 uint32_t eventCount,
1393 const VkEvent* pEvents,
1394 VkPipelineStageFlags srcStageMask,
1395 VkPipelineStageFlags dstStageMask,
1396 uint32_t memoryBarrierCount,
1397 const VkMemoryBarrier* pMemoryBarriers,
1398 uint32_t bufferMemoryBarrierCount,
1399 const VkBufferMemoryBarrier* pBufferMemoryBarriers,
1400 uint32_t imageMemoryBarrierCount,
1401 const VkImageMemoryBarrier* pImageMemoryBarriers)
1402{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001403 AEMU_SCOPED_TRACE("vkCmdWaitEvents");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001404 auto vkEnc = HostConnection::get()->vkEncoder();
1405 vkEnc->vkCmdWaitEvents(commandBuffer, eventCount, pEvents, srcStageMask, dstStageMask, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers);
1406}
1407static void entry_vkCmdPipelineBarrier(
1408 VkCommandBuffer commandBuffer,
1409 VkPipelineStageFlags srcStageMask,
1410 VkPipelineStageFlags dstStageMask,
1411 VkDependencyFlags dependencyFlags,
1412 uint32_t memoryBarrierCount,
1413 const VkMemoryBarrier* pMemoryBarriers,
1414 uint32_t bufferMemoryBarrierCount,
1415 const VkBufferMemoryBarrier* pBufferMemoryBarriers,
1416 uint32_t imageMemoryBarrierCount,
1417 const VkImageMemoryBarrier* pImageMemoryBarriers)
1418{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001419 AEMU_SCOPED_TRACE("vkCmdPipelineBarrier");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001420 auto vkEnc = HostConnection::get()->vkEncoder();
1421 vkEnc->vkCmdPipelineBarrier(commandBuffer, srcStageMask, dstStageMask, dependencyFlags, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers);
1422}
1423static void entry_vkCmdBeginQuery(
1424 VkCommandBuffer commandBuffer,
1425 VkQueryPool queryPool,
1426 uint32_t query,
1427 VkQueryControlFlags flags)
1428{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001429 AEMU_SCOPED_TRACE("vkCmdBeginQuery");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001430 auto vkEnc = HostConnection::get()->vkEncoder();
1431 vkEnc->vkCmdBeginQuery(commandBuffer, queryPool, query, flags);
1432}
1433static void entry_vkCmdEndQuery(
1434 VkCommandBuffer commandBuffer,
1435 VkQueryPool queryPool,
1436 uint32_t query)
1437{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001438 AEMU_SCOPED_TRACE("vkCmdEndQuery");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001439 auto vkEnc = HostConnection::get()->vkEncoder();
1440 vkEnc->vkCmdEndQuery(commandBuffer, queryPool, query);
1441}
1442static void entry_vkCmdResetQueryPool(
1443 VkCommandBuffer commandBuffer,
1444 VkQueryPool queryPool,
1445 uint32_t firstQuery,
1446 uint32_t queryCount)
1447{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001448 AEMU_SCOPED_TRACE("vkCmdResetQueryPool");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001449 auto vkEnc = HostConnection::get()->vkEncoder();
1450 vkEnc->vkCmdResetQueryPool(commandBuffer, queryPool, firstQuery, queryCount);
1451}
1452static void entry_vkCmdWriteTimestamp(
1453 VkCommandBuffer commandBuffer,
1454 VkPipelineStageFlagBits pipelineStage,
1455 VkQueryPool queryPool,
1456 uint32_t query)
1457{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001458 AEMU_SCOPED_TRACE("vkCmdWriteTimestamp");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001459 auto vkEnc = HostConnection::get()->vkEncoder();
1460 vkEnc->vkCmdWriteTimestamp(commandBuffer, pipelineStage, queryPool, query);
1461}
1462static void entry_vkCmdCopyQueryPoolResults(
1463 VkCommandBuffer commandBuffer,
1464 VkQueryPool queryPool,
1465 uint32_t firstQuery,
1466 uint32_t queryCount,
1467 VkBuffer dstBuffer,
1468 VkDeviceSize dstOffset,
1469 VkDeviceSize stride,
1470 VkQueryResultFlags flags)
1471{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001472 AEMU_SCOPED_TRACE("vkCmdCopyQueryPoolResults");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001473 auto vkEnc = HostConnection::get()->vkEncoder();
1474 vkEnc->vkCmdCopyQueryPoolResults(commandBuffer, queryPool, firstQuery, queryCount, dstBuffer, dstOffset, stride, flags);
1475}
1476static void entry_vkCmdPushConstants(
1477 VkCommandBuffer commandBuffer,
1478 VkPipelineLayout layout,
1479 VkShaderStageFlags stageFlags,
1480 uint32_t offset,
1481 uint32_t size,
1482 const void* pValues)
1483{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001484 AEMU_SCOPED_TRACE("vkCmdPushConstants");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001485 auto vkEnc = HostConnection::get()->vkEncoder();
1486 vkEnc->vkCmdPushConstants(commandBuffer, layout, stageFlags, offset, size, pValues);
1487}
1488static void entry_vkCmdBeginRenderPass(
1489 VkCommandBuffer commandBuffer,
1490 const VkRenderPassBeginInfo* pRenderPassBegin,
1491 VkSubpassContents contents)
1492{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001493 AEMU_SCOPED_TRACE("vkCmdBeginRenderPass");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001494 auto vkEnc = HostConnection::get()->vkEncoder();
1495 vkEnc->vkCmdBeginRenderPass(commandBuffer, pRenderPassBegin, contents);
1496}
1497static void entry_vkCmdNextSubpass(
1498 VkCommandBuffer commandBuffer,
1499 VkSubpassContents contents)
1500{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001501 AEMU_SCOPED_TRACE("vkCmdNextSubpass");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001502 auto vkEnc = HostConnection::get()->vkEncoder();
1503 vkEnc->vkCmdNextSubpass(commandBuffer, contents);
1504}
1505static void entry_vkCmdEndRenderPass(
1506 VkCommandBuffer commandBuffer)
1507{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001508 AEMU_SCOPED_TRACE("vkCmdEndRenderPass");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001509 auto vkEnc = HostConnection::get()->vkEncoder();
1510 vkEnc->vkCmdEndRenderPass(commandBuffer);
1511}
1512static void entry_vkCmdExecuteCommands(
1513 VkCommandBuffer commandBuffer,
1514 uint32_t commandBufferCount,
1515 const VkCommandBuffer* pCommandBuffers)
1516{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001517 AEMU_SCOPED_TRACE("vkCmdExecuteCommands");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001518 auto vkEnc = HostConnection::get()->vkEncoder();
1519 vkEnc->vkCmdExecuteCommands(commandBuffer, commandBufferCount, pCommandBuffers);
1520}
1521#endif
1522#ifdef VK_VERSION_1_1
1523static VkResult entry_vkEnumerateInstanceVersion(
1524 uint32_t* pApiVersion)
1525{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001526 AEMU_SCOPED_TRACE("vkEnumerateInstanceVersion");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001527 auto vkEnc = HostConnection::get()->vkEncoder();
1528 VkResult vkEnumerateInstanceVersion_VkResult_return = (VkResult)0;
1529 vkEnumerateInstanceVersion_VkResult_return = vkEnc->vkEnumerateInstanceVersion(pApiVersion);
1530 return vkEnumerateInstanceVersion_VkResult_return;
1531}
1532static VkResult entry_vkBindBufferMemory2(
1533 VkDevice device,
1534 uint32_t bindInfoCount,
1535 const VkBindBufferMemoryInfo* pBindInfos)
1536{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001537 AEMU_SCOPED_TRACE("vkBindBufferMemory2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001538 auto vkEnc = HostConnection::get()->vkEncoder();
1539 VkResult vkBindBufferMemory2_VkResult_return = (VkResult)0;
Lingfeng Yang4af5f322019-02-14 08:10:28 -08001540 auto resources = ResourceTracker::get();
1541 vkBindBufferMemory2_VkResult_return = resources->on_vkBindBufferMemory2(vkEnc, VK_SUCCESS, device, bindInfoCount, pBindInfos);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001542 return vkBindBufferMemory2_VkResult_return;
1543}
1544static VkResult entry_vkBindImageMemory2(
1545 VkDevice device,
1546 uint32_t bindInfoCount,
1547 const VkBindImageMemoryInfo* pBindInfos)
1548{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001549 AEMU_SCOPED_TRACE("vkBindImageMemory2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001550 auto vkEnc = HostConnection::get()->vkEncoder();
1551 VkResult vkBindImageMemory2_VkResult_return = (VkResult)0;
Lingfeng Yang4af5f322019-02-14 08:10:28 -08001552 auto resources = ResourceTracker::get();
1553 vkBindImageMemory2_VkResult_return = resources->on_vkBindImageMemory2(vkEnc, VK_SUCCESS, device, bindInfoCount, pBindInfos);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001554 return vkBindImageMemory2_VkResult_return;
1555}
1556static void entry_vkGetDeviceGroupPeerMemoryFeatures(
1557 VkDevice device,
1558 uint32_t heapIndex,
1559 uint32_t localDeviceIndex,
1560 uint32_t remoteDeviceIndex,
1561 VkPeerMemoryFeatureFlags* pPeerMemoryFeatures)
1562{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001563 AEMU_SCOPED_TRACE("vkGetDeviceGroupPeerMemoryFeatures");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001564 auto vkEnc = HostConnection::get()->vkEncoder();
1565 vkEnc->vkGetDeviceGroupPeerMemoryFeatures(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures);
1566}
1567static void entry_vkCmdSetDeviceMask(
1568 VkCommandBuffer commandBuffer,
1569 uint32_t deviceMask)
1570{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001571 AEMU_SCOPED_TRACE("vkCmdSetDeviceMask");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001572 auto vkEnc = HostConnection::get()->vkEncoder();
1573 vkEnc->vkCmdSetDeviceMask(commandBuffer, deviceMask);
1574}
1575static void entry_vkCmdDispatchBase(
1576 VkCommandBuffer commandBuffer,
1577 uint32_t baseGroupX,
1578 uint32_t baseGroupY,
1579 uint32_t baseGroupZ,
1580 uint32_t groupCountX,
1581 uint32_t groupCountY,
1582 uint32_t groupCountZ)
1583{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001584 AEMU_SCOPED_TRACE("vkCmdDispatchBase");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001585 auto vkEnc = HostConnection::get()->vkEncoder();
1586 vkEnc->vkCmdDispatchBase(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ);
1587}
1588static VkResult entry_vkEnumeratePhysicalDeviceGroups(
1589 VkInstance instance,
1590 uint32_t* pPhysicalDeviceGroupCount,
1591 VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties)
1592{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001593 AEMU_SCOPED_TRACE("vkEnumeratePhysicalDeviceGroups");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001594 auto vkEnc = HostConnection::get()->vkEncoder();
1595 VkResult vkEnumeratePhysicalDeviceGroups_VkResult_return = (VkResult)0;
1596 vkEnumeratePhysicalDeviceGroups_VkResult_return = vkEnc->vkEnumeratePhysicalDeviceGroups(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties);
1597 return vkEnumeratePhysicalDeviceGroups_VkResult_return;
1598}
1599static void entry_vkGetImageMemoryRequirements2(
1600 VkDevice device,
1601 const VkImageMemoryRequirementsInfo2* pInfo,
1602 VkMemoryRequirements2* pMemoryRequirements)
1603{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001604 AEMU_SCOPED_TRACE("vkGetImageMemoryRequirements2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001605 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang4af5f322019-02-14 08:10:28 -08001606 auto resources = ResourceTracker::get();
1607 resources->on_vkGetImageMemoryRequirements2(vkEnc, device, pInfo, pMemoryRequirements);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001608}
1609static void entry_vkGetBufferMemoryRequirements2(
1610 VkDevice device,
1611 const VkBufferMemoryRequirementsInfo2* pInfo,
1612 VkMemoryRequirements2* pMemoryRequirements)
1613{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001614 AEMU_SCOPED_TRACE("vkGetBufferMemoryRequirements2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001615 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang4af5f322019-02-14 08:10:28 -08001616 auto resources = ResourceTracker::get();
1617 resources->on_vkGetBufferMemoryRequirements2(vkEnc, device, pInfo, pMemoryRequirements);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001618}
1619static void entry_vkGetImageSparseMemoryRequirements2(
1620 VkDevice device,
1621 const VkImageSparseMemoryRequirementsInfo2* pInfo,
1622 uint32_t* pSparseMemoryRequirementCount,
1623 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements)
1624{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001625 AEMU_SCOPED_TRACE("vkGetImageSparseMemoryRequirements2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001626 auto vkEnc = HostConnection::get()->vkEncoder();
1627 vkEnc->vkGetImageSparseMemoryRequirements2(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements);
1628}
1629static void entry_vkGetPhysicalDeviceFeatures2(
1630 VkPhysicalDevice physicalDevice,
1631 VkPhysicalDeviceFeatures2* pFeatures)
1632{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001633 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFeatures2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001634 auto vkEnc = HostConnection::get()->vkEncoder();
1635 vkEnc->vkGetPhysicalDeviceFeatures2(physicalDevice, pFeatures);
1636}
1637static void entry_vkGetPhysicalDeviceProperties2(
1638 VkPhysicalDevice physicalDevice,
1639 VkPhysicalDeviceProperties2* pProperties)
1640{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001641 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceProperties2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001642 auto vkEnc = HostConnection::get()->vkEncoder();
1643 vkEnc->vkGetPhysicalDeviceProperties2(physicalDevice, pProperties);
1644}
1645static void entry_vkGetPhysicalDeviceFormatProperties2(
1646 VkPhysicalDevice physicalDevice,
1647 VkFormat format,
1648 VkFormatProperties2* pFormatProperties)
1649{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001650 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFormatProperties2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001651 auto vkEnc = HostConnection::get()->vkEncoder();
1652 vkEnc->vkGetPhysicalDeviceFormatProperties2(physicalDevice, format, pFormatProperties);
1653}
1654static VkResult entry_vkGetPhysicalDeviceImageFormatProperties2(
1655 VkPhysicalDevice physicalDevice,
1656 const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
1657 VkImageFormatProperties2* pImageFormatProperties)
1658{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001659 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceImageFormatProperties2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001660 auto vkEnc = HostConnection::get()->vkEncoder();
1661 VkResult vkGetPhysicalDeviceImageFormatProperties2_VkResult_return = (VkResult)0;
Lingfeng Yange517d1e2019-03-25 18:02:49 -07001662 auto resources = ResourceTracker::get();
1663 vkGetPhysicalDeviceImageFormatProperties2_VkResult_return = resources->on_vkGetPhysicalDeviceImageFormatProperties2(vkEnc, VK_SUCCESS, physicalDevice, pImageFormatInfo, pImageFormatProperties);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001664 return vkGetPhysicalDeviceImageFormatProperties2_VkResult_return;
1665}
1666static void entry_vkGetPhysicalDeviceQueueFamilyProperties2(
1667 VkPhysicalDevice physicalDevice,
1668 uint32_t* pQueueFamilyPropertyCount,
1669 VkQueueFamilyProperties2* pQueueFamilyProperties)
1670{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001671 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceQueueFamilyProperties2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001672 auto vkEnc = HostConnection::get()->vkEncoder();
1673 vkEnc->vkGetPhysicalDeviceQueueFamilyProperties2(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties);
1674}
1675static void entry_vkGetPhysicalDeviceMemoryProperties2(
1676 VkPhysicalDevice physicalDevice,
1677 VkPhysicalDeviceMemoryProperties2* pMemoryProperties)
1678{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001679 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMemoryProperties2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001680 auto vkEnc = HostConnection::get()->vkEncoder();
1681 vkEnc->vkGetPhysicalDeviceMemoryProperties2(physicalDevice, pMemoryProperties);
1682}
1683static void entry_vkGetPhysicalDeviceSparseImageFormatProperties2(
1684 VkPhysicalDevice physicalDevice,
1685 const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
1686 uint32_t* pPropertyCount,
1687 VkSparseImageFormatProperties2* pProperties)
1688{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001689 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSparseImageFormatProperties2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001690 auto vkEnc = HostConnection::get()->vkEncoder();
1691 vkEnc->vkGetPhysicalDeviceSparseImageFormatProperties2(physicalDevice, pFormatInfo, pPropertyCount, pProperties);
1692}
1693static void entry_vkTrimCommandPool(
1694 VkDevice device,
1695 VkCommandPool commandPool,
1696 VkCommandPoolTrimFlags flags)
1697{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001698 AEMU_SCOPED_TRACE("vkTrimCommandPool");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001699 auto vkEnc = HostConnection::get()->vkEncoder();
1700 vkEnc->vkTrimCommandPool(device, commandPool, flags);
1701}
1702static void entry_vkGetDeviceQueue2(
1703 VkDevice device,
1704 const VkDeviceQueueInfo2* pQueueInfo,
1705 VkQueue* pQueue)
1706{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001707 AEMU_SCOPED_TRACE("vkGetDeviceQueue2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001708 auto vkEnc = HostConnection::get()->vkEncoder();
1709 vkEnc->vkGetDeviceQueue2(device, pQueueInfo, pQueue);
1710}
1711static VkResult entry_vkCreateSamplerYcbcrConversion(
1712 VkDevice device,
1713 const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
1714 const VkAllocationCallbacks* pAllocator,
1715 VkSamplerYcbcrConversion* pYcbcrConversion)
1716{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001717 AEMU_SCOPED_TRACE("vkCreateSamplerYcbcrConversion");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001718 auto vkEnc = HostConnection::get()->vkEncoder();
1719 VkResult vkCreateSamplerYcbcrConversion_VkResult_return = (VkResult)0;
Lingfeng Yang5c701122019-03-05 08:34:46 -08001720 auto resources = ResourceTracker::get();
1721 vkCreateSamplerYcbcrConversion_VkResult_return = resources->on_vkCreateSamplerYcbcrConversion(vkEnc, VK_SUCCESS, device, pCreateInfo, pAllocator, pYcbcrConversion);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001722 return vkCreateSamplerYcbcrConversion_VkResult_return;
1723}
1724static void entry_vkDestroySamplerYcbcrConversion(
1725 VkDevice device,
1726 VkSamplerYcbcrConversion ycbcrConversion,
1727 const VkAllocationCallbacks* pAllocator)
1728{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001729 AEMU_SCOPED_TRACE("vkDestroySamplerYcbcrConversion");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001730 auto vkEnc = HostConnection::get()->vkEncoder();
1731 vkEnc->vkDestroySamplerYcbcrConversion(device, ycbcrConversion, pAllocator);
1732}
1733static VkResult entry_vkCreateDescriptorUpdateTemplate(
1734 VkDevice device,
1735 const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
1736 const VkAllocationCallbacks* pAllocator,
1737 VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate)
1738{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001739 AEMU_SCOPED_TRACE("vkCreateDescriptorUpdateTemplate");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001740 auto vkEnc = HostConnection::get()->vkEncoder();
1741 VkResult vkCreateDescriptorUpdateTemplate_VkResult_return = (VkResult)0;
1742 vkCreateDescriptorUpdateTemplate_VkResult_return = vkEnc->vkCreateDescriptorUpdateTemplate(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate);
1743 return vkCreateDescriptorUpdateTemplate_VkResult_return;
1744}
1745static void entry_vkDestroyDescriptorUpdateTemplate(
1746 VkDevice device,
1747 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
1748 const VkAllocationCallbacks* pAllocator)
1749{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001750 AEMU_SCOPED_TRACE("vkDestroyDescriptorUpdateTemplate");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001751 auto vkEnc = HostConnection::get()->vkEncoder();
1752 vkEnc->vkDestroyDescriptorUpdateTemplate(device, descriptorUpdateTemplate, pAllocator);
1753}
1754static void entry_vkUpdateDescriptorSetWithTemplate(
1755 VkDevice device,
1756 VkDescriptorSet descriptorSet,
1757 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
1758 const void* pData)
1759{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001760 AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplate");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001761 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang05d5ea32019-03-23 00:12:39 -07001762 auto resources = ResourceTracker::get();
1763 resources->on_vkUpdateDescriptorSetWithTemplate(vkEnc, device, descriptorSet, descriptorUpdateTemplate, pData);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001764}
1765static void entry_vkGetPhysicalDeviceExternalBufferProperties(
1766 VkPhysicalDevice physicalDevice,
1767 const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
1768 VkExternalBufferProperties* pExternalBufferProperties)
1769{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001770 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalBufferProperties");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001771 auto vkEnc = HostConnection::get()->vkEncoder();
1772 vkEnc->vkGetPhysicalDeviceExternalBufferProperties(physicalDevice, pExternalBufferInfo, pExternalBufferProperties);
1773}
1774static void entry_vkGetPhysicalDeviceExternalFenceProperties(
1775 VkPhysicalDevice physicalDevice,
1776 const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
1777 VkExternalFenceProperties* pExternalFenceProperties)
1778{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001779 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalFenceProperties");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001780 auto vkEnc = HostConnection::get()->vkEncoder();
1781 vkEnc->vkGetPhysicalDeviceExternalFenceProperties(physicalDevice, pExternalFenceInfo, pExternalFenceProperties);
1782}
1783static void entry_vkGetPhysicalDeviceExternalSemaphoreProperties(
1784 VkPhysicalDevice physicalDevice,
1785 const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
1786 VkExternalSemaphoreProperties* pExternalSemaphoreProperties)
1787{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001788 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalSemaphoreProperties");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001789 auto vkEnc = HostConnection::get()->vkEncoder();
1790 vkEnc->vkGetPhysicalDeviceExternalSemaphoreProperties(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties);
1791}
1792static void entry_vkGetDescriptorSetLayoutSupport(
1793 VkDevice device,
1794 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
1795 VkDescriptorSetLayoutSupport* pSupport)
1796{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001797 AEMU_SCOPED_TRACE("vkGetDescriptorSetLayoutSupport");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001798 auto vkEnc = HostConnection::get()->vkEncoder();
1799 vkEnc->vkGetDescriptorSetLayoutSupport(device, pCreateInfo, pSupport);
1800}
1801#endif
1802#ifdef VK_KHR_surface
1803static void entry_vkDestroySurfaceKHR(
1804 VkInstance instance,
1805 VkSurfaceKHR surface,
1806 const VkAllocationCallbacks* pAllocator)
1807{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001808 AEMU_SCOPED_TRACE("vkDestroySurfaceKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001809 auto vkEnc = HostConnection::get()->vkEncoder();
1810 vkEnc->vkDestroySurfaceKHR(instance, surface, pAllocator);
1811}
1812static VkResult entry_vkGetPhysicalDeviceSurfaceSupportKHR(
1813 VkPhysicalDevice physicalDevice,
1814 uint32_t queueFamilyIndex,
1815 VkSurfaceKHR surface,
1816 VkBool32* pSupported)
1817{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001818 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceSupportKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001819 auto vkEnc = HostConnection::get()->vkEncoder();
1820 VkResult vkGetPhysicalDeviceSurfaceSupportKHR_VkResult_return = (VkResult)0;
1821 vkGetPhysicalDeviceSurfaceSupportKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceSupportKHR(physicalDevice, queueFamilyIndex, surface, pSupported);
1822 return vkGetPhysicalDeviceSurfaceSupportKHR_VkResult_return;
1823}
1824static VkResult entry_vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
1825 VkPhysicalDevice physicalDevice,
1826 VkSurfaceKHR surface,
1827 VkSurfaceCapabilitiesKHR* pSurfaceCapabilities)
1828{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001829 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceCapabilitiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001830 auto vkEnc = HostConnection::get()->vkEncoder();
1831 VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR_VkResult_return = (VkResult)0;
1832 vkGetPhysicalDeviceSurfaceCapabilitiesKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceCapabilitiesKHR(physicalDevice, surface, pSurfaceCapabilities);
1833 return vkGetPhysicalDeviceSurfaceCapabilitiesKHR_VkResult_return;
1834}
1835static VkResult entry_vkGetPhysicalDeviceSurfaceFormatsKHR(
1836 VkPhysicalDevice physicalDevice,
1837 VkSurfaceKHR surface,
1838 uint32_t* pSurfaceFormatCount,
1839 VkSurfaceFormatKHR* pSurfaceFormats)
1840{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001841 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceFormatsKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001842 auto vkEnc = HostConnection::get()->vkEncoder();
1843 VkResult vkGetPhysicalDeviceSurfaceFormatsKHR_VkResult_return = (VkResult)0;
1844 vkGetPhysicalDeviceSurfaceFormatsKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceFormatsKHR(physicalDevice, surface, pSurfaceFormatCount, pSurfaceFormats);
1845 return vkGetPhysicalDeviceSurfaceFormatsKHR_VkResult_return;
1846}
1847static VkResult entry_vkGetPhysicalDeviceSurfacePresentModesKHR(
1848 VkPhysicalDevice physicalDevice,
1849 VkSurfaceKHR surface,
1850 uint32_t* pPresentModeCount,
1851 VkPresentModeKHR* pPresentModes)
1852{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001853 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfacePresentModesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001854 auto vkEnc = HostConnection::get()->vkEncoder();
1855 VkResult vkGetPhysicalDeviceSurfacePresentModesKHR_VkResult_return = (VkResult)0;
1856 vkGetPhysicalDeviceSurfacePresentModesKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfacePresentModesKHR(physicalDevice, surface, pPresentModeCount, pPresentModes);
1857 return vkGetPhysicalDeviceSurfacePresentModesKHR_VkResult_return;
1858}
1859#endif
1860#ifdef VK_KHR_swapchain
1861static VkResult entry_vkCreateSwapchainKHR(
1862 VkDevice device,
1863 const VkSwapchainCreateInfoKHR* pCreateInfo,
1864 const VkAllocationCallbacks* pAllocator,
1865 VkSwapchainKHR* pSwapchain)
1866{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001867 AEMU_SCOPED_TRACE("vkCreateSwapchainKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001868 auto vkEnc = HostConnection::get()->vkEncoder();
1869 VkResult vkCreateSwapchainKHR_VkResult_return = (VkResult)0;
1870 vkCreateSwapchainKHR_VkResult_return = vkEnc->vkCreateSwapchainKHR(device, pCreateInfo, pAllocator, pSwapchain);
1871 return vkCreateSwapchainKHR_VkResult_return;
1872}
1873static void entry_vkDestroySwapchainKHR(
1874 VkDevice device,
1875 VkSwapchainKHR swapchain,
1876 const VkAllocationCallbacks* pAllocator)
1877{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001878 AEMU_SCOPED_TRACE("vkDestroySwapchainKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001879 auto vkEnc = HostConnection::get()->vkEncoder();
1880 vkEnc->vkDestroySwapchainKHR(device, swapchain, pAllocator);
1881}
1882static VkResult entry_vkGetSwapchainImagesKHR(
1883 VkDevice device,
1884 VkSwapchainKHR swapchain,
1885 uint32_t* pSwapchainImageCount,
1886 VkImage* pSwapchainImages)
1887{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001888 AEMU_SCOPED_TRACE("vkGetSwapchainImagesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001889 auto vkEnc = HostConnection::get()->vkEncoder();
1890 VkResult vkGetSwapchainImagesKHR_VkResult_return = (VkResult)0;
1891 vkGetSwapchainImagesKHR_VkResult_return = vkEnc->vkGetSwapchainImagesKHR(device, swapchain, pSwapchainImageCount, pSwapchainImages);
1892 return vkGetSwapchainImagesKHR_VkResult_return;
1893}
1894static VkResult entry_vkAcquireNextImageKHR(
1895 VkDevice device,
1896 VkSwapchainKHR swapchain,
1897 uint64_t timeout,
1898 VkSemaphore semaphore,
1899 VkFence fence,
1900 uint32_t* pImageIndex)
1901{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001902 AEMU_SCOPED_TRACE("vkAcquireNextImageKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001903 auto vkEnc = HostConnection::get()->vkEncoder();
1904 VkResult vkAcquireNextImageKHR_VkResult_return = (VkResult)0;
1905 vkAcquireNextImageKHR_VkResult_return = vkEnc->vkAcquireNextImageKHR(device, swapchain, timeout, semaphore, fence, pImageIndex);
1906 return vkAcquireNextImageKHR_VkResult_return;
1907}
1908static VkResult entry_vkQueuePresentKHR(
1909 VkQueue queue,
1910 const VkPresentInfoKHR* pPresentInfo)
1911{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001912 AEMU_SCOPED_TRACE("vkQueuePresentKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001913 auto vkEnc = HostConnection::get()->vkEncoder();
1914 VkResult vkQueuePresentKHR_VkResult_return = (VkResult)0;
1915 vkQueuePresentKHR_VkResult_return = vkEnc->vkQueuePresentKHR(queue, pPresentInfo);
1916 return vkQueuePresentKHR_VkResult_return;
1917}
1918static VkResult entry_vkGetDeviceGroupPresentCapabilitiesKHR(
1919 VkDevice device,
1920 VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities)
1921{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001922 AEMU_SCOPED_TRACE("vkGetDeviceGroupPresentCapabilitiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001923 auto vkEnc = HostConnection::get()->vkEncoder();
1924 VkResult vkGetDeviceGroupPresentCapabilitiesKHR_VkResult_return = (VkResult)0;
1925 vkGetDeviceGroupPresentCapabilitiesKHR_VkResult_return = vkEnc->vkGetDeviceGroupPresentCapabilitiesKHR(device, pDeviceGroupPresentCapabilities);
1926 return vkGetDeviceGroupPresentCapabilitiesKHR_VkResult_return;
1927}
1928static VkResult entry_vkGetDeviceGroupSurfacePresentModesKHR(
1929 VkDevice device,
1930 VkSurfaceKHR surface,
1931 VkDeviceGroupPresentModeFlagsKHR* pModes)
1932{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001933 AEMU_SCOPED_TRACE("vkGetDeviceGroupSurfacePresentModesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001934 auto vkEnc = HostConnection::get()->vkEncoder();
1935 VkResult vkGetDeviceGroupSurfacePresentModesKHR_VkResult_return = (VkResult)0;
1936 vkGetDeviceGroupSurfacePresentModesKHR_VkResult_return = vkEnc->vkGetDeviceGroupSurfacePresentModesKHR(device, surface, pModes);
1937 return vkGetDeviceGroupSurfacePresentModesKHR_VkResult_return;
1938}
1939static VkResult entry_vkGetPhysicalDevicePresentRectanglesKHR(
1940 VkPhysicalDevice physicalDevice,
1941 VkSurfaceKHR surface,
1942 uint32_t* pRectCount,
1943 VkRect2D* pRects)
1944{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001945 AEMU_SCOPED_TRACE("vkGetPhysicalDevicePresentRectanglesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001946 auto vkEnc = HostConnection::get()->vkEncoder();
1947 VkResult vkGetPhysicalDevicePresentRectanglesKHR_VkResult_return = (VkResult)0;
1948 vkGetPhysicalDevicePresentRectanglesKHR_VkResult_return = vkEnc->vkGetPhysicalDevicePresentRectanglesKHR(physicalDevice, surface, pRectCount, pRects);
1949 return vkGetPhysicalDevicePresentRectanglesKHR_VkResult_return;
1950}
1951static VkResult entry_vkAcquireNextImage2KHR(
1952 VkDevice device,
1953 const VkAcquireNextImageInfoKHR* pAcquireInfo,
1954 uint32_t* pImageIndex)
1955{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001956 AEMU_SCOPED_TRACE("vkAcquireNextImage2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001957 auto vkEnc = HostConnection::get()->vkEncoder();
1958 VkResult vkAcquireNextImage2KHR_VkResult_return = (VkResult)0;
1959 vkAcquireNextImage2KHR_VkResult_return = vkEnc->vkAcquireNextImage2KHR(device, pAcquireInfo, pImageIndex);
1960 return vkAcquireNextImage2KHR_VkResult_return;
1961}
1962#endif
1963#ifdef VK_KHR_display
1964static VkResult entry_vkGetPhysicalDeviceDisplayPropertiesKHR(
1965 VkPhysicalDevice physicalDevice,
1966 uint32_t* pPropertyCount,
1967 VkDisplayPropertiesKHR* pProperties)
1968{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001969 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayPropertiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001970 auto vkEnc = HostConnection::get()->vkEncoder();
1971 VkResult vkGetPhysicalDeviceDisplayPropertiesKHR_VkResult_return = (VkResult)0;
1972 vkGetPhysicalDeviceDisplayPropertiesKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceDisplayPropertiesKHR(physicalDevice, pPropertyCount, pProperties);
1973 return vkGetPhysicalDeviceDisplayPropertiesKHR_VkResult_return;
1974}
1975static VkResult entry_vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
1976 VkPhysicalDevice physicalDevice,
1977 uint32_t* pPropertyCount,
1978 VkDisplayPlanePropertiesKHR* pProperties)
1979{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001980 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayPlanePropertiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001981 auto vkEnc = HostConnection::get()->vkEncoder();
1982 VkResult vkGetPhysicalDeviceDisplayPlanePropertiesKHR_VkResult_return = (VkResult)0;
1983 vkGetPhysicalDeviceDisplayPlanePropertiesKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceDisplayPlanePropertiesKHR(physicalDevice, pPropertyCount, pProperties);
1984 return vkGetPhysicalDeviceDisplayPlanePropertiesKHR_VkResult_return;
1985}
1986static VkResult entry_vkGetDisplayPlaneSupportedDisplaysKHR(
1987 VkPhysicalDevice physicalDevice,
1988 uint32_t planeIndex,
1989 uint32_t* pDisplayCount,
1990 VkDisplayKHR* pDisplays)
1991{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001992 AEMU_SCOPED_TRACE("vkGetDisplayPlaneSupportedDisplaysKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001993 auto vkEnc = HostConnection::get()->vkEncoder();
1994 VkResult vkGetDisplayPlaneSupportedDisplaysKHR_VkResult_return = (VkResult)0;
1995 vkGetDisplayPlaneSupportedDisplaysKHR_VkResult_return = vkEnc->vkGetDisplayPlaneSupportedDisplaysKHR(physicalDevice, planeIndex, pDisplayCount, pDisplays);
1996 return vkGetDisplayPlaneSupportedDisplaysKHR_VkResult_return;
1997}
1998static VkResult entry_vkGetDisplayModePropertiesKHR(
1999 VkPhysicalDevice physicalDevice,
2000 VkDisplayKHR display,
2001 uint32_t* pPropertyCount,
2002 VkDisplayModePropertiesKHR* pProperties)
2003{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002004 AEMU_SCOPED_TRACE("vkGetDisplayModePropertiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002005 auto vkEnc = HostConnection::get()->vkEncoder();
2006 VkResult vkGetDisplayModePropertiesKHR_VkResult_return = (VkResult)0;
2007 vkGetDisplayModePropertiesKHR_VkResult_return = vkEnc->vkGetDisplayModePropertiesKHR(physicalDevice, display, pPropertyCount, pProperties);
2008 return vkGetDisplayModePropertiesKHR_VkResult_return;
2009}
2010static VkResult entry_vkCreateDisplayModeKHR(
2011 VkPhysicalDevice physicalDevice,
2012 VkDisplayKHR display,
2013 const VkDisplayModeCreateInfoKHR* pCreateInfo,
2014 const VkAllocationCallbacks* pAllocator,
2015 VkDisplayModeKHR* pMode)
2016{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002017 AEMU_SCOPED_TRACE("vkCreateDisplayModeKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002018 auto vkEnc = HostConnection::get()->vkEncoder();
2019 VkResult vkCreateDisplayModeKHR_VkResult_return = (VkResult)0;
2020 vkCreateDisplayModeKHR_VkResult_return = vkEnc->vkCreateDisplayModeKHR(physicalDevice, display, pCreateInfo, pAllocator, pMode);
2021 return vkCreateDisplayModeKHR_VkResult_return;
2022}
2023static VkResult entry_vkGetDisplayPlaneCapabilitiesKHR(
2024 VkPhysicalDevice physicalDevice,
2025 VkDisplayModeKHR mode,
2026 uint32_t planeIndex,
2027 VkDisplayPlaneCapabilitiesKHR* pCapabilities)
2028{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002029 AEMU_SCOPED_TRACE("vkGetDisplayPlaneCapabilitiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002030 auto vkEnc = HostConnection::get()->vkEncoder();
2031 VkResult vkGetDisplayPlaneCapabilitiesKHR_VkResult_return = (VkResult)0;
2032 vkGetDisplayPlaneCapabilitiesKHR_VkResult_return = vkEnc->vkGetDisplayPlaneCapabilitiesKHR(physicalDevice, mode, planeIndex, pCapabilities);
2033 return vkGetDisplayPlaneCapabilitiesKHR_VkResult_return;
2034}
2035static VkResult entry_vkCreateDisplayPlaneSurfaceKHR(
2036 VkInstance instance,
2037 const VkDisplaySurfaceCreateInfoKHR* pCreateInfo,
2038 const VkAllocationCallbacks* pAllocator,
2039 VkSurfaceKHR* pSurface)
2040{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002041 AEMU_SCOPED_TRACE("vkCreateDisplayPlaneSurfaceKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002042 auto vkEnc = HostConnection::get()->vkEncoder();
2043 VkResult vkCreateDisplayPlaneSurfaceKHR_VkResult_return = (VkResult)0;
2044 vkCreateDisplayPlaneSurfaceKHR_VkResult_return = vkEnc->vkCreateDisplayPlaneSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
2045 return vkCreateDisplayPlaneSurfaceKHR_VkResult_return;
2046}
2047#endif
2048#ifdef VK_KHR_display_swapchain
2049static VkResult entry_vkCreateSharedSwapchainsKHR(
2050 VkDevice device,
2051 uint32_t swapchainCount,
2052 const VkSwapchainCreateInfoKHR* pCreateInfos,
2053 const VkAllocationCallbacks* pAllocator,
2054 VkSwapchainKHR* pSwapchains)
2055{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002056 AEMU_SCOPED_TRACE("vkCreateSharedSwapchainsKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002057 auto vkEnc = HostConnection::get()->vkEncoder();
2058 VkResult vkCreateSharedSwapchainsKHR_VkResult_return = (VkResult)0;
2059 vkCreateSharedSwapchainsKHR_VkResult_return = vkEnc->vkCreateSharedSwapchainsKHR(device, swapchainCount, pCreateInfos, pAllocator, pSwapchains);
2060 return vkCreateSharedSwapchainsKHR_VkResult_return;
2061}
2062#endif
2063#ifdef VK_KHR_xlib_surface
2064static VkResult entry_vkCreateXlibSurfaceKHR(
2065 VkInstance instance,
2066 const VkXlibSurfaceCreateInfoKHR* pCreateInfo,
2067 const VkAllocationCallbacks* pAllocator,
2068 VkSurfaceKHR* pSurface)
2069{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002070 AEMU_SCOPED_TRACE("vkCreateXlibSurfaceKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002071 auto vkEnc = HostConnection::get()->vkEncoder();
2072 VkResult vkCreateXlibSurfaceKHR_VkResult_return = (VkResult)0;
2073 vkCreateXlibSurfaceKHR_VkResult_return = vkEnc->vkCreateXlibSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
2074 return vkCreateXlibSurfaceKHR_VkResult_return;
2075}
2076static VkBool32 entry_vkGetPhysicalDeviceXlibPresentationSupportKHR(
2077 VkPhysicalDevice physicalDevice,
2078 uint32_t queueFamilyIndex,
2079 Display* dpy,
2080 VisualID visualID)
2081{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002082 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceXlibPresentationSupportKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002083 auto vkEnc = HostConnection::get()->vkEncoder();
2084 VkBool32 vkGetPhysicalDeviceXlibPresentationSupportKHR_VkBool32_return = (VkBool32)0;
2085 vkGetPhysicalDeviceXlibPresentationSupportKHR_VkBool32_return = vkEnc->vkGetPhysicalDeviceXlibPresentationSupportKHR(physicalDevice, queueFamilyIndex, dpy, visualID);
2086 return vkGetPhysicalDeviceXlibPresentationSupportKHR_VkBool32_return;
2087}
2088#endif
2089#ifdef VK_KHR_xcb_surface
2090static VkResult entry_vkCreateXcbSurfaceKHR(
2091 VkInstance instance,
2092 const VkXcbSurfaceCreateInfoKHR* pCreateInfo,
2093 const VkAllocationCallbacks* pAllocator,
2094 VkSurfaceKHR* pSurface)
2095{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002096 AEMU_SCOPED_TRACE("vkCreateXcbSurfaceKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002097 auto vkEnc = HostConnection::get()->vkEncoder();
2098 VkResult vkCreateXcbSurfaceKHR_VkResult_return = (VkResult)0;
2099 vkCreateXcbSurfaceKHR_VkResult_return = vkEnc->vkCreateXcbSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
2100 return vkCreateXcbSurfaceKHR_VkResult_return;
2101}
2102static VkBool32 entry_vkGetPhysicalDeviceXcbPresentationSupportKHR(
2103 VkPhysicalDevice physicalDevice,
2104 uint32_t queueFamilyIndex,
2105 xcb_connection_t* connection,
2106 xcb_visualid_t visual_id)
2107{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002108 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceXcbPresentationSupportKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002109 auto vkEnc = HostConnection::get()->vkEncoder();
2110 VkBool32 vkGetPhysicalDeviceXcbPresentationSupportKHR_VkBool32_return = (VkBool32)0;
2111 vkGetPhysicalDeviceXcbPresentationSupportKHR_VkBool32_return = vkEnc->vkGetPhysicalDeviceXcbPresentationSupportKHR(physicalDevice, queueFamilyIndex, connection, visual_id);
2112 return vkGetPhysicalDeviceXcbPresentationSupportKHR_VkBool32_return;
2113}
2114#endif
2115#ifdef VK_KHR_wayland_surface
2116static VkResult entry_vkCreateWaylandSurfaceKHR(
2117 VkInstance instance,
2118 const VkWaylandSurfaceCreateInfoKHR* pCreateInfo,
2119 const VkAllocationCallbacks* pAllocator,
2120 VkSurfaceKHR* pSurface)
2121{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002122 AEMU_SCOPED_TRACE("vkCreateWaylandSurfaceKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002123 auto vkEnc = HostConnection::get()->vkEncoder();
2124 VkResult vkCreateWaylandSurfaceKHR_VkResult_return = (VkResult)0;
2125 vkCreateWaylandSurfaceKHR_VkResult_return = vkEnc->vkCreateWaylandSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
2126 return vkCreateWaylandSurfaceKHR_VkResult_return;
2127}
2128static VkBool32 entry_vkGetPhysicalDeviceWaylandPresentationSupportKHR(
2129 VkPhysicalDevice physicalDevice,
2130 uint32_t queueFamilyIndex,
2131 wl_display* display)
2132{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002133 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceWaylandPresentationSupportKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002134 auto vkEnc = HostConnection::get()->vkEncoder();
2135 VkBool32 vkGetPhysicalDeviceWaylandPresentationSupportKHR_VkBool32_return = (VkBool32)0;
2136 vkGetPhysicalDeviceWaylandPresentationSupportKHR_VkBool32_return = vkEnc->vkGetPhysicalDeviceWaylandPresentationSupportKHR(physicalDevice, queueFamilyIndex, display);
2137 return vkGetPhysicalDeviceWaylandPresentationSupportKHR_VkBool32_return;
2138}
2139#endif
2140#ifdef VK_KHR_mir_surface
2141static VkResult entry_vkCreateMirSurfaceKHR(
2142 VkInstance instance,
2143 const VkMirSurfaceCreateInfoKHR* pCreateInfo,
2144 const VkAllocationCallbacks* pAllocator,
2145 VkSurfaceKHR* pSurface)
2146{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002147 AEMU_SCOPED_TRACE("vkCreateMirSurfaceKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002148 auto vkEnc = HostConnection::get()->vkEncoder();
2149 VkResult vkCreateMirSurfaceKHR_VkResult_return = (VkResult)0;
2150 vkCreateMirSurfaceKHR_VkResult_return = vkEnc->vkCreateMirSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
2151 return vkCreateMirSurfaceKHR_VkResult_return;
2152}
2153static VkBool32 entry_vkGetPhysicalDeviceMirPresentationSupportKHR(
2154 VkPhysicalDevice physicalDevice,
2155 uint32_t queueFamilyIndex,
2156 MirConnection* connection)
2157{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002158 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMirPresentationSupportKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002159 auto vkEnc = HostConnection::get()->vkEncoder();
2160 VkBool32 vkGetPhysicalDeviceMirPresentationSupportKHR_VkBool32_return = (VkBool32)0;
2161 vkGetPhysicalDeviceMirPresentationSupportKHR_VkBool32_return = vkEnc->vkGetPhysicalDeviceMirPresentationSupportKHR(physicalDevice, queueFamilyIndex, connection);
2162 return vkGetPhysicalDeviceMirPresentationSupportKHR_VkBool32_return;
2163}
2164#endif
2165#ifdef VK_KHR_android_surface
2166static VkResult entry_vkCreateAndroidSurfaceKHR(
2167 VkInstance instance,
2168 const VkAndroidSurfaceCreateInfoKHR* pCreateInfo,
2169 const VkAllocationCallbacks* pAllocator,
2170 VkSurfaceKHR* pSurface)
2171{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002172 AEMU_SCOPED_TRACE("vkCreateAndroidSurfaceKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002173 auto vkEnc = HostConnection::get()->vkEncoder();
2174 VkResult vkCreateAndroidSurfaceKHR_VkResult_return = (VkResult)0;
2175 vkCreateAndroidSurfaceKHR_VkResult_return = vkEnc->vkCreateAndroidSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
2176 return vkCreateAndroidSurfaceKHR_VkResult_return;
2177}
2178#endif
2179#ifdef VK_KHR_win32_surface
2180static VkResult entry_vkCreateWin32SurfaceKHR(
2181 VkInstance instance,
2182 const VkWin32SurfaceCreateInfoKHR* pCreateInfo,
2183 const VkAllocationCallbacks* pAllocator,
2184 VkSurfaceKHR* pSurface)
2185{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002186 AEMU_SCOPED_TRACE("vkCreateWin32SurfaceKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002187 auto vkEnc = HostConnection::get()->vkEncoder();
2188 VkResult vkCreateWin32SurfaceKHR_VkResult_return = (VkResult)0;
2189 vkCreateWin32SurfaceKHR_VkResult_return = vkEnc->vkCreateWin32SurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
2190 return vkCreateWin32SurfaceKHR_VkResult_return;
2191}
2192static VkBool32 entry_vkGetPhysicalDeviceWin32PresentationSupportKHR(
2193 VkPhysicalDevice physicalDevice,
2194 uint32_t queueFamilyIndex)
2195{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002196 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceWin32PresentationSupportKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002197 auto vkEnc = HostConnection::get()->vkEncoder();
2198 VkBool32 vkGetPhysicalDeviceWin32PresentationSupportKHR_VkBool32_return = (VkBool32)0;
2199 vkGetPhysicalDeviceWin32PresentationSupportKHR_VkBool32_return = vkEnc->vkGetPhysicalDeviceWin32PresentationSupportKHR(physicalDevice, queueFamilyIndex);
2200 return vkGetPhysicalDeviceWin32PresentationSupportKHR_VkBool32_return;
2201}
2202#endif
2203#ifdef VK_KHR_sampler_mirror_clamp_to_edge
2204#endif
2205#ifdef VK_KHR_multiview
2206#endif
2207#ifdef VK_KHR_get_physical_device_properties2
2208static void entry_vkGetPhysicalDeviceFeatures2KHR(
2209 VkPhysicalDevice physicalDevice,
2210 VkPhysicalDeviceFeatures2* pFeatures)
2211{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002212 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFeatures2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002213 auto vkEnc = HostConnection::get()->vkEncoder();
2214 vkEnc->vkGetPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures);
2215}
2216static void entry_vkGetPhysicalDeviceProperties2KHR(
2217 VkPhysicalDevice physicalDevice,
2218 VkPhysicalDeviceProperties2* pProperties)
2219{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002220 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002221 auto vkEnc = HostConnection::get()->vkEncoder();
2222 vkEnc->vkGetPhysicalDeviceProperties2KHR(physicalDevice, pProperties);
2223}
2224static void entry_vkGetPhysicalDeviceFormatProperties2KHR(
2225 VkPhysicalDevice physicalDevice,
2226 VkFormat format,
2227 VkFormatProperties2* pFormatProperties)
2228{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002229 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFormatProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002230 auto vkEnc = HostConnection::get()->vkEncoder();
2231 vkEnc->vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice, format, pFormatProperties);
2232}
2233static VkResult entry_vkGetPhysicalDeviceImageFormatProperties2KHR(
2234 VkPhysicalDevice physicalDevice,
2235 const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
2236 VkImageFormatProperties2* pImageFormatProperties)
2237{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002238 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceImageFormatProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002239 auto vkEnc = HostConnection::get()->vkEncoder();
2240 VkResult vkGetPhysicalDeviceImageFormatProperties2KHR_VkResult_return = (VkResult)0;
Lingfeng Yange517d1e2019-03-25 18:02:49 -07002241 auto resources = ResourceTracker::get();
2242 vkGetPhysicalDeviceImageFormatProperties2KHR_VkResult_return = resources->on_vkGetPhysicalDeviceImageFormatProperties2KHR(vkEnc, VK_SUCCESS, physicalDevice, pImageFormatInfo, pImageFormatProperties);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002243 return vkGetPhysicalDeviceImageFormatProperties2KHR_VkResult_return;
2244}
2245static void entry_vkGetPhysicalDeviceQueueFamilyProperties2KHR(
2246 VkPhysicalDevice physicalDevice,
2247 uint32_t* pQueueFamilyPropertyCount,
2248 VkQueueFamilyProperties2* pQueueFamilyProperties)
2249{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002250 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceQueueFamilyProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002251 auto vkEnc = HostConnection::get()->vkEncoder();
2252 vkEnc->vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties);
2253}
2254static void entry_vkGetPhysicalDeviceMemoryProperties2KHR(
2255 VkPhysicalDevice physicalDevice,
2256 VkPhysicalDeviceMemoryProperties2* pMemoryProperties)
2257{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002258 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMemoryProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002259 auto vkEnc = HostConnection::get()->vkEncoder();
2260 vkEnc->vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice, pMemoryProperties);
2261}
2262static void entry_vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
2263 VkPhysicalDevice physicalDevice,
2264 const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
2265 uint32_t* pPropertyCount,
2266 VkSparseImageFormatProperties2* pProperties)
2267{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002268 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSparseImageFormatProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002269 auto vkEnc = HostConnection::get()->vkEncoder();
2270 vkEnc->vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties);
2271}
2272#endif
2273#ifdef VK_KHR_device_group
2274static void entry_vkGetDeviceGroupPeerMemoryFeaturesKHR(
2275 VkDevice device,
2276 uint32_t heapIndex,
2277 uint32_t localDeviceIndex,
2278 uint32_t remoteDeviceIndex,
2279 VkPeerMemoryFeatureFlags* pPeerMemoryFeatures)
2280{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002281 AEMU_SCOPED_TRACE("vkGetDeviceGroupPeerMemoryFeaturesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002282 auto vkEnc = HostConnection::get()->vkEncoder();
2283 vkEnc->vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures);
2284}
2285static void entry_vkCmdSetDeviceMaskKHR(
2286 VkCommandBuffer commandBuffer,
2287 uint32_t deviceMask)
2288{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002289 AEMU_SCOPED_TRACE("vkCmdSetDeviceMaskKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002290 auto vkEnc = HostConnection::get()->vkEncoder();
2291 vkEnc->vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask);
2292}
2293static void entry_vkCmdDispatchBaseKHR(
2294 VkCommandBuffer commandBuffer,
2295 uint32_t baseGroupX,
2296 uint32_t baseGroupY,
2297 uint32_t baseGroupZ,
2298 uint32_t groupCountX,
2299 uint32_t groupCountY,
2300 uint32_t groupCountZ)
2301{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002302 AEMU_SCOPED_TRACE("vkCmdDispatchBaseKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002303 auto vkEnc = HostConnection::get()->vkEncoder();
2304 vkEnc->vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ);
2305}
2306#endif
2307#ifdef VK_KHR_shader_draw_parameters
2308#endif
2309#ifdef VK_KHR_maintenance1
2310static void entry_vkTrimCommandPoolKHR(
2311 VkDevice device,
2312 VkCommandPool commandPool,
2313 VkCommandPoolTrimFlags flags)
2314{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002315 AEMU_SCOPED_TRACE("vkTrimCommandPoolKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002316 auto vkEnc = HostConnection::get()->vkEncoder();
2317 vkEnc->vkTrimCommandPoolKHR(device, commandPool, flags);
2318}
2319#endif
2320#ifdef VK_KHR_device_group_creation
2321static VkResult entry_vkEnumeratePhysicalDeviceGroupsKHR(
2322 VkInstance instance,
2323 uint32_t* pPhysicalDeviceGroupCount,
2324 VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties)
2325{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002326 AEMU_SCOPED_TRACE("vkEnumeratePhysicalDeviceGroupsKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002327 auto vkEnc = HostConnection::get()->vkEncoder();
2328 VkResult vkEnumeratePhysicalDeviceGroupsKHR_VkResult_return = (VkResult)0;
2329 vkEnumeratePhysicalDeviceGroupsKHR_VkResult_return = vkEnc->vkEnumeratePhysicalDeviceGroupsKHR(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties);
2330 return vkEnumeratePhysicalDeviceGroupsKHR_VkResult_return;
2331}
2332#endif
2333#ifdef VK_KHR_external_memory_capabilities
2334static void entry_vkGetPhysicalDeviceExternalBufferPropertiesKHR(
2335 VkPhysicalDevice physicalDevice,
2336 const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
2337 VkExternalBufferProperties* pExternalBufferProperties)
2338{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002339 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalBufferPropertiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002340 auto vkEnc = HostConnection::get()->vkEncoder();
2341 vkEnc->vkGetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties);
2342}
2343#endif
2344#ifdef VK_KHR_external_memory
2345#endif
2346#ifdef VK_KHR_external_memory_win32
2347static VkResult entry_vkGetMemoryWin32HandleKHR(
2348 VkDevice device,
2349 const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo,
2350 HANDLE* pHandle)
2351{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002352 AEMU_SCOPED_TRACE("vkGetMemoryWin32HandleKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002353 auto vkEnc = HostConnection::get()->vkEncoder();
2354 VkResult vkGetMemoryWin32HandleKHR_VkResult_return = (VkResult)0;
2355 vkGetMemoryWin32HandleKHR_VkResult_return = vkEnc->vkGetMemoryWin32HandleKHR(device, pGetWin32HandleInfo, pHandle);
2356 return vkGetMemoryWin32HandleKHR_VkResult_return;
2357}
2358static VkResult entry_vkGetMemoryWin32HandlePropertiesKHR(
2359 VkDevice device,
2360 VkExternalMemoryHandleTypeFlagBits handleType,
2361 HANDLE handle,
2362 VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties)
2363{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002364 AEMU_SCOPED_TRACE("vkGetMemoryWin32HandlePropertiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002365 auto vkEnc = HostConnection::get()->vkEncoder();
2366 VkResult vkGetMemoryWin32HandlePropertiesKHR_VkResult_return = (VkResult)0;
2367 vkGetMemoryWin32HandlePropertiesKHR_VkResult_return = vkEnc->vkGetMemoryWin32HandlePropertiesKHR(device, handleType, handle, pMemoryWin32HandleProperties);
2368 return vkGetMemoryWin32HandlePropertiesKHR_VkResult_return;
2369}
2370#endif
2371#ifdef VK_KHR_external_memory_fd
2372static VkResult entry_vkGetMemoryFdKHR(
2373 VkDevice device,
2374 const VkMemoryGetFdInfoKHR* pGetFdInfo,
2375 int* pFd)
2376{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002377 AEMU_SCOPED_TRACE("vkGetMemoryFdKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002378 auto vkEnc = HostConnection::get()->vkEncoder();
2379 VkResult vkGetMemoryFdKHR_VkResult_return = (VkResult)0;
2380 vkGetMemoryFdKHR_VkResult_return = vkEnc->vkGetMemoryFdKHR(device, pGetFdInfo, pFd);
2381 return vkGetMemoryFdKHR_VkResult_return;
2382}
2383static VkResult entry_vkGetMemoryFdPropertiesKHR(
2384 VkDevice device,
2385 VkExternalMemoryHandleTypeFlagBits handleType,
2386 int fd,
2387 VkMemoryFdPropertiesKHR* pMemoryFdProperties)
2388{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002389 AEMU_SCOPED_TRACE("vkGetMemoryFdPropertiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002390 auto vkEnc = HostConnection::get()->vkEncoder();
2391 VkResult vkGetMemoryFdPropertiesKHR_VkResult_return = (VkResult)0;
2392 vkGetMemoryFdPropertiesKHR_VkResult_return = vkEnc->vkGetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties);
2393 return vkGetMemoryFdPropertiesKHR_VkResult_return;
2394}
2395#endif
2396#ifdef VK_KHR_win32_keyed_mutex
2397#endif
2398#ifdef VK_KHR_external_semaphore_capabilities
2399static void entry_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
2400 VkPhysicalDevice physicalDevice,
2401 const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
2402 VkExternalSemaphoreProperties* pExternalSemaphoreProperties)
2403{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002404 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalSemaphorePropertiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002405 auto vkEnc = HostConnection::get()->vkEncoder();
2406 vkEnc->vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties);
2407}
2408#endif
2409#ifdef VK_KHR_external_semaphore
2410#endif
2411#ifdef VK_KHR_external_semaphore_win32
2412static VkResult entry_vkImportSemaphoreWin32HandleKHR(
2413 VkDevice device,
2414 const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo)
2415{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002416 AEMU_SCOPED_TRACE("vkImportSemaphoreWin32HandleKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002417 auto vkEnc = HostConnection::get()->vkEncoder();
2418 VkResult vkImportSemaphoreWin32HandleKHR_VkResult_return = (VkResult)0;
2419 vkImportSemaphoreWin32HandleKHR_VkResult_return = vkEnc->vkImportSemaphoreWin32HandleKHR(device, pImportSemaphoreWin32HandleInfo);
2420 return vkImportSemaphoreWin32HandleKHR_VkResult_return;
2421}
2422static VkResult entry_vkGetSemaphoreWin32HandleKHR(
2423 VkDevice device,
2424 const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo,
2425 HANDLE* pHandle)
2426{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002427 AEMU_SCOPED_TRACE("vkGetSemaphoreWin32HandleKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002428 auto vkEnc = HostConnection::get()->vkEncoder();
2429 VkResult vkGetSemaphoreWin32HandleKHR_VkResult_return = (VkResult)0;
2430 vkGetSemaphoreWin32HandleKHR_VkResult_return = vkEnc->vkGetSemaphoreWin32HandleKHR(device, pGetWin32HandleInfo, pHandle);
2431 return vkGetSemaphoreWin32HandleKHR_VkResult_return;
2432}
2433#endif
2434#ifdef VK_KHR_external_semaphore_fd
2435static VkResult entry_vkImportSemaphoreFdKHR(
2436 VkDevice device,
2437 const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo)
2438{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002439 AEMU_SCOPED_TRACE("vkImportSemaphoreFdKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002440 auto vkEnc = HostConnection::get()->vkEncoder();
2441 VkResult vkImportSemaphoreFdKHR_VkResult_return = (VkResult)0;
Yahan Zhoua499e442019-02-26 16:35:01 -08002442 auto resources = ResourceTracker::get();
2443 vkImportSemaphoreFdKHR_VkResult_return = resources->on_vkImportSemaphoreFdKHR(vkEnc, VK_SUCCESS, device, pImportSemaphoreFdInfo);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002444 return vkImportSemaphoreFdKHR_VkResult_return;
2445}
2446static VkResult entry_vkGetSemaphoreFdKHR(
2447 VkDevice device,
2448 const VkSemaphoreGetFdInfoKHR* pGetFdInfo,
2449 int* pFd)
2450{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002451 AEMU_SCOPED_TRACE("vkGetSemaphoreFdKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002452 auto vkEnc = HostConnection::get()->vkEncoder();
2453 VkResult vkGetSemaphoreFdKHR_VkResult_return = (VkResult)0;
Yahan Zhoua499e442019-02-26 16:35:01 -08002454 auto resources = ResourceTracker::get();
2455 vkGetSemaphoreFdKHR_VkResult_return = resources->on_vkGetSemaphoreFdKHR(vkEnc, VK_SUCCESS, device, pGetFdInfo, pFd);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002456 return vkGetSemaphoreFdKHR_VkResult_return;
2457}
2458#endif
2459#ifdef VK_KHR_push_descriptor
2460static void entry_vkCmdPushDescriptorSetKHR(
2461 VkCommandBuffer commandBuffer,
2462 VkPipelineBindPoint pipelineBindPoint,
2463 VkPipelineLayout layout,
2464 uint32_t set,
2465 uint32_t descriptorWriteCount,
2466 const VkWriteDescriptorSet* pDescriptorWrites)
2467{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002468 AEMU_SCOPED_TRACE("vkCmdPushDescriptorSetKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002469 auto vkEnc = HostConnection::get()->vkEncoder();
2470 vkEnc->vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites);
2471}
2472static void entry_vkCmdPushDescriptorSetWithTemplateKHR(
2473 VkCommandBuffer commandBuffer,
2474 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
2475 VkPipelineLayout layout,
2476 uint32_t set,
2477 const void* pData)
2478{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002479 AEMU_SCOPED_TRACE("vkCmdPushDescriptorSetWithTemplateKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002480 auto vkEnc = HostConnection::get()->vkEncoder();
2481 vkEnc->vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData);
2482}
2483#endif
2484#ifdef VK_KHR_16bit_storage
2485#endif
2486#ifdef VK_KHR_incremental_present
2487#endif
2488#ifdef VK_KHR_descriptor_update_template
2489static VkResult entry_vkCreateDescriptorUpdateTemplateKHR(
2490 VkDevice device,
2491 const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
2492 const VkAllocationCallbacks* pAllocator,
2493 VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate)
2494{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002495 AEMU_SCOPED_TRACE("vkCreateDescriptorUpdateTemplateKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002496 auto vkEnc = HostConnection::get()->vkEncoder();
2497 VkResult vkCreateDescriptorUpdateTemplateKHR_VkResult_return = (VkResult)0;
2498 vkCreateDescriptorUpdateTemplateKHR_VkResult_return = vkEnc->vkCreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate);
2499 return vkCreateDescriptorUpdateTemplateKHR_VkResult_return;
2500}
2501static void entry_vkDestroyDescriptorUpdateTemplateKHR(
2502 VkDevice device,
2503 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
2504 const VkAllocationCallbacks* pAllocator)
2505{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002506 AEMU_SCOPED_TRACE("vkDestroyDescriptorUpdateTemplateKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002507 auto vkEnc = HostConnection::get()->vkEncoder();
2508 vkEnc->vkDestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator);
2509}
2510static void entry_vkUpdateDescriptorSetWithTemplateKHR(
2511 VkDevice device,
2512 VkDescriptorSet descriptorSet,
2513 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
2514 const void* pData)
2515{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002516 AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplateKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002517 auto vkEnc = HostConnection::get()->vkEncoder();
2518 vkEnc->vkUpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData);
2519}
2520#endif
2521#ifdef VK_KHR_create_renderpass2
2522static VkResult entry_vkCreateRenderPass2KHR(
2523 VkDevice device,
2524 const VkRenderPassCreateInfo2KHR* pCreateInfo,
2525 const VkAllocationCallbacks* pAllocator,
2526 VkRenderPass* pRenderPass)
2527{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002528 AEMU_SCOPED_TRACE("vkCreateRenderPass2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002529 auto vkEnc = HostConnection::get()->vkEncoder();
2530 VkResult vkCreateRenderPass2KHR_VkResult_return = (VkResult)0;
2531 vkCreateRenderPass2KHR_VkResult_return = vkEnc->vkCreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass);
2532 return vkCreateRenderPass2KHR_VkResult_return;
2533}
2534static void entry_vkCmdBeginRenderPass2KHR(
2535 VkCommandBuffer commandBuffer,
2536 const VkRenderPassBeginInfo* pRenderPassBegin,
2537 const VkSubpassBeginInfoKHR* pSubpassBeginInfo)
2538{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002539 AEMU_SCOPED_TRACE("vkCmdBeginRenderPass2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002540 auto vkEnc = HostConnection::get()->vkEncoder();
2541 vkEnc->vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo);
2542}
2543static void entry_vkCmdNextSubpass2KHR(
2544 VkCommandBuffer commandBuffer,
2545 const VkSubpassBeginInfoKHR* pSubpassBeginInfo,
2546 const VkSubpassEndInfoKHR* pSubpassEndInfo)
2547{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002548 AEMU_SCOPED_TRACE("vkCmdNextSubpass2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002549 auto vkEnc = HostConnection::get()->vkEncoder();
2550 vkEnc->vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo);
2551}
2552static void entry_vkCmdEndRenderPass2KHR(
2553 VkCommandBuffer commandBuffer,
2554 const VkSubpassEndInfoKHR* pSubpassEndInfo)
2555{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002556 AEMU_SCOPED_TRACE("vkCmdEndRenderPass2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002557 auto vkEnc = HostConnection::get()->vkEncoder();
2558 vkEnc->vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo);
2559}
2560#endif
2561#ifdef VK_KHR_shared_presentable_image
2562static VkResult entry_vkGetSwapchainStatusKHR(
2563 VkDevice device,
2564 VkSwapchainKHR swapchain)
2565{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002566 AEMU_SCOPED_TRACE("vkGetSwapchainStatusKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002567 auto vkEnc = HostConnection::get()->vkEncoder();
2568 VkResult vkGetSwapchainStatusKHR_VkResult_return = (VkResult)0;
2569 vkGetSwapchainStatusKHR_VkResult_return = vkEnc->vkGetSwapchainStatusKHR(device, swapchain);
2570 return vkGetSwapchainStatusKHR_VkResult_return;
2571}
2572#endif
2573#ifdef VK_KHR_external_fence_capabilities
2574static void entry_vkGetPhysicalDeviceExternalFencePropertiesKHR(
2575 VkPhysicalDevice physicalDevice,
2576 const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
2577 VkExternalFenceProperties* pExternalFenceProperties)
2578{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002579 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalFencePropertiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002580 auto vkEnc = HostConnection::get()->vkEncoder();
2581 vkEnc->vkGetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice, pExternalFenceInfo, pExternalFenceProperties);
2582}
2583#endif
2584#ifdef VK_KHR_external_fence
2585#endif
2586#ifdef VK_KHR_external_fence_win32
2587static VkResult entry_vkImportFenceWin32HandleKHR(
2588 VkDevice device,
2589 const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo)
2590{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002591 AEMU_SCOPED_TRACE("vkImportFenceWin32HandleKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002592 auto vkEnc = HostConnection::get()->vkEncoder();
2593 VkResult vkImportFenceWin32HandleKHR_VkResult_return = (VkResult)0;
2594 vkImportFenceWin32HandleKHR_VkResult_return = vkEnc->vkImportFenceWin32HandleKHR(device, pImportFenceWin32HandleInfo);
2595 return vkImportFenceWin32HandleKHR_VkResult_return;
2596}
2597static VkResult entry_vkGetFenceWin32HandleKHR(
2598 VkDevice device,
2599 const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo,
2600 HANDLE* pHandle)
2601{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002602 AEMU_SCOPED_TRACE("vkGetFenceWin32HandleKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002603 auto vkEnc = HostConnection::get()->vkEncoder();
2604 VkResult vkGetFenceWin32HandleKHR_VkResult_return = (VkResult)0;
2605 vkGetFenceWin32HandleKHR_VkResult_return = vkEnc->vkGetFenceWin32HandleKHR(device, pGetWin32HandleInfo, pHandle);
2606 return vkGetFenceWin32HandleKHR_VkResult_return;
2607}
2608#endif
2609#ifdef VK_KHR_external_fence_fd
2610static VkResult entry_vkImportFenceFdKHR(
2611 VkDevice device,
2612 const VkImportFenceFdInfoKHR* pImportFenceFdInfo)
2613{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002614 AEMU_SCOPED_TRACE("vkImportFenceFdKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002615 auto vkEnc = HostConnection::get()->vkEncoder();
2616 VkResult vkImportFenceFdKHR_VkResult_return = (VkResult)0;
2617 vkImportFenceFdKHR_VkResult_return = vkEnc->vkImportFenceFdKHR(device, pImportFenceFdInfo);
2618 return vkImportFenceFdKHR_VkResult_return;
2619}
2620static VkResult entry_vkGetFenceFdKHR(
2621 VkDevice device,
2622 const VkFenceGetFdInfoKHR* pGetFdInfo,
2623 int* pFd)
2624{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002625 AEMU_SCOPED_TRACE("vkGetFenceFdKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002626 auto vkEnc = HostConnection::get()->vkEncoder();
2627 VkResult vkGetFenceFdKHR_VkResult_return = (VkResult)0;
2628 vkGetFenceFdKHR_VkResult_return = vkEnc->vkGetFenceFdKHR(device, pGetFdInfo, pFd);
2629 return vkGetFenceFdKHR_VkResult_return;
2630}
2631#endif
2632#ifdef VK_KHR_maintenance2
2633#endif
2634#ifdef VK_KHR_get_surface_capabilities2
2635static VkResult entry_vkGetPhysicalDeviceSurfaceCapabilities2KHR(
2636 VkPhysicalDevice physicalDevice,
2637 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
2638 VkSurfaceCapabilities2KHR* pSurfaceCapabilities)
2639{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002640 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceCapabilities2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002641 auto vkEnc = HostConnection::get()->vkEncoder();
2642 VkResult vkGetPhysicalDeviceSurfaceCapabilities2KHR_VkResult_return = (VkResult)0;
2643 vkGetPhysicalDeviceSurfaceCapabilities2KHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, pSurfaceInfo, pSurfaceCapabilities);
2644 return vkGetPhysicalDeviceSurfaceCapabilities2KHR_VkResult_return;
2645}
2646static VkResult entry_vkGetPhysicalDeviceSurfaceFormats2KHR(
2647 VkPhysicalDevice physicalDevice,
2648 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
2649 uint32_t* pSurfaceFormatCount,
2650 VkSurfaceFormat2KHR* pSurfaceFormats)
2651{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002652 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceFormats2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002653 auto vkEnc = HostConnection::get()->vkEncoder();
2654 VkResult vkGetPhysicalDeviceSurfaceFormats2KHR_VkResult_return = (VkResult)0;
2655 vkGetPhysicalDeviceSurfaceFormats2KHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceFormats2KHR(physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats);
2656 return vkGetPhysicalDeviceSurfaceFormats2KHR_VkResult_return;
2657}
2658#endif
2659#ifdef VK_KHR_variable_pointers
2660#endif
2661#ifdef VK_KHR_get_display_properties2
2662static VkResult entry_vkGetPhysicalDeviceDisplayProperties2KHR(
2663 VkPhysicalDevice physicalDevice,
2664 uint32_t* pPropertyCount,
2665 VkDisplayProperties2KHR* pProperties)
2666{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002667 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002668 auto vkEnc = HostConnection::get()->vkEncoder();
2669 VkResult vkGetPhysicalDeviceDisplayProperties2KHR_VkResult_return = (VkResult)0;
2670 vkGetPhysicalDeviceDisplayProperties2KHR_VkResult_return = vkEnc->vkGetPhysicalDeviceDisplayProperties2KHR(physicalDevice, pPropertyCount, pProperties);
2671 return vkGetPhysicalDeviceDisplayProperties2KHR_VkResult_return;
2672}
2673static VkResult entry_vkGetPhysicalDeviceDisplayPlaneProperties2KHR(
2674 VkPhysicalDevice physicalDevice,
2675 uint32_t* pPropertyCount,
2676 VkDisplayPlaneProperties2KHR* pProperties)
2677{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002678 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayPlaneProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002679 auto vkEnc = HostConnection::get()->vkEncoder();
2680 VkResult vkGetPhysicalDeviceDisplayPlaneProperties2KHR_VkResult_return = (VkResult)0;
2681 vkGetPhysicalDeviceDisplayPlaneProperties2KHR_VkResult_return = vkEnc->vkGetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice, pPropertyCount, pProperties);
2682 return vkGetPhysicalDeviceDisplayPlaneProperties2KHR_VkResult_return;
2683}
2684static VkResult entry_vkGetDisplayModeProperties2KHR(
2685 VkPhysicalDevice physicalDevice,
2686 VkDisplayKHR display,
2687 uint32_t* pPropertyCount,
2688 VkDisplayModeProperties2KHR* pProperties)
2689{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002690 AEMU_SCOPED_TRACE("vkGetDisplayModeProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002691 auto vkEnc = HostConnection::get()->vkEncoder();
2692 VkResult vkGetDisplayModeProperties2KHR_VkResult_return = (VkResult)0;
2693 vkGetDisplayModeProperties2KHR_VkResult_return = vkEnc->vkGetDisplayModeProperties2KHR(physicalDevice, display, pPropertyCount, pProperties);
2694 return vkGetDisplayModeProperties2KHR_VkResult_return;
2695}
2696static VkResult entry_vkGetDisplayPlaneCapabilities2KHR(
2697 VkPhysicalDevice physicalDevice,
2698 const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo,
2699 VkDisplayPlaneCapabilities2KHR* pCapabilities)
2700{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002701 AEMU_SCOPED_TRACE("vkGetDisplayPlaneCapabilities2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002702 auto vkEnc = HostConnection::get()->vkEncoder();
2703 VkResult vkGetDisplayPlaneCapabilities2KHR_VkResult_return = (VkResult)0;
2704 vkGetDisplayPlaneCapabilities2KHR_VkResult_return = vkEnc->vkGetDisplayPlaneCapabilities2KHR(physicalDevice, pDisplayPlaneInfo, pCapabilities);
2705 return vkGetDisplayPlaneCapabilities2KHR_VkResult_return;
2706}
2707#endif
2708#ifdef VK_KHR_dedicated_allocation
2709#endif
2710#ifdef VK_KHR_storage_buffer_storage_class
2711#endif
2712#ifdef VK_KHR_relaxed_block_layout
2713#endif
2714#ifdef VK_KHR_get_memory_requirements2
2715static void entry_vkGetImageMemoryRequirements2KHR(
2716 VkDevice device,
2717 const VkImageMemoryRequirementsInfo2* pInfo,
2718 VkMemoryRequirements2* pMemoryRequirements)
2719{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002720 AEMU_SCOPED_TRACE("vkGetImageMemoryRequirements2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002721 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang4af5f322019-02-14 08:10:28 -08002722 auto resources = ResourceTracker::get();
2723 resources->on_vkGetImageMemoryRequirements2KHR(vkEnc, device, pInfo, pMemoryRequirements);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002724}
2725static void entry_vkGetBufferMemoryRequirements2KHR(
2726 VkDevice device,
2727 const VkBufferMemoryRequirementsInfo2* pInfo,
2728 VkMemoryRequirements2* pMemoryRequirements)
2729{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002730 AEMU_SCOPED_TRACE("vkGetBufferMemoryRequirements2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002731 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang4af5f322019-02-14 08:10:28 -08002732 auto resources = ResourceTracker::get();
2733 resources->on_vkGetBufferMemoryRequirements2KHR(vkEnc, device, pInfo, pMemoryRequirements);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002734}
2735static void entry_vkGetImageSparseMemoryRequirements2KHR(
2736 VkDevice device,
2737 const VkImageSparseMemoryRequirementsInfo2* pInfo,
2738 uint32_t* pSparseMemoryRequirementCount,
2739 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements)
2740{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002741 AEMU_SCOPED_TRACE("vkGetImageSparseMemoryRequirements2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002742 auto vkEnc = HostConnection::get()->vkEncoder();
2743 vkEnc->vkGetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements);
2744}
2745#endif
2746#ifdef VK_KHR_image_format_list
2747#endif
2748#ifdef VK_KHR_sampler_ycbcr_conversion
2749static VkResult entry_vkCreateSamplerYcbcrConversionKHR(
2750 VkDevice device,
2751 const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
2752 const VkAllocationCallbacks* pAllocator,
2753 VkSamplerYcbcrConversion* pYcbcrConversion)
2754{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002755 AEMU_SCOPED_TRACE("vkCreateSamplerYcbcrConversionKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002756 auto vkEnc = HostConnection::get()->vkEncoder();
2757 VkResult vkCreateSamplerYcbcrConversionKHR_VkResult_return = (VkResult)0;
Lingfeng Yang5c701122019-03-05 08:34:46 -08002758 auto resources = ResourceTracker::get();
2759 vkCreateSamplerYcbcrConversionKHR_VkResult_return = resources->on_vkCreateSamplerYcbcrConversionKHR(vkEnc, VK_SUCCESS, device, pCreateInfo, pAllocator, pYcbcrConversion);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002760 return vkCreateSamplerYcbcrConversionKHR_VkResult_return;
2761}
2762static void entry_vkDestroySamplerYcbcrConversionKHR(
2763 VkDevice device,
2764 VkSamplerYcbcrConversion ycbcrConversion,
2765 const VkAllocationCallbacks* pAllocator)
2766{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002767 AEMU_SCOPED_TRACE("vkDestroySamplerYcbcrConversionKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002768 auto vkEnc = HostConnection::get()->vkEncoder();
2769 vkEnc->vkDestroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator);
2770}
2771#endif
2772#ifdef VK_KHR_bind_memory2
2773static VkResult entry_vkBindBufferMemory2KHR(
2774 VkDevice device,
2775 uint32_t bindInfoCount,
2776 const VkBindBufferMemoryInfo* pBindInfos)
2777{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002778 AEMU_SCOPED_TRACE("vkBindBufferMemory2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002779 auto vkEnc = HostConnection::get()->vkEncoder();
2780 VkResult vkBindBufferMemory2KHR_VkResult_return = (VkResult)0;
Lingfeng Yang4af5f322019-02-14 08:10:28 -08002781 auto resources = ResourceTracker::get();
2782 vkBindBufferMemory2KHR_VkResult_return = resources->on_vkBindBufferMemory2KHR(vkEnc, VK_SUCCESS, device, bindInfoCount, pBindInfos);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002783 return vkBindBufferMemory2KHR_VkResult_return;
2784}
2785static VkResult entry_vkBindImageMemory2KHR(
2786 VkDevice device,
2787 uint32_t bindInfoCount,
2788 const VkBindImageMemoryInfo* pBindInfos)
2789{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002790 AEMU_SCOPED_TRACE("vkBindImageMemory2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002791 auto vkEnc = HostConnection::get()->vkEncoder();
2792 VkResult vkBindImageMemory2KHR_VkResult_return = (VkResult)0;
Lingfeng Yang4af5f322019-02-14 08:10:28 -08002793 auto resources = ResourceTracker::get();
2794 vkBindImageMemory2KHR_VkResult_return = resources->on_vkBindImageMemory2KHR(vkEnc, VK_SUCCESS, device, bindInfoCount, pBindInfos);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002795 return vkBindImageMemory2KHR_VkResult_return;
2796}
2797#endif
2798#ifdef VK_KHR_maintenance3
2799static void entry_vkGetDescriptorSetLayoutSupportKHR(
2800 VkDevice device,
2801 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
2802 VkDescriptorSetLayoutSupport* pSupport)
2803{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002804 AEMU_SCOPED_TRACE("vkGetDescriptorSetLayoutSupportKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002805 auto vkEnc = HostConnection::get()->vkEncoder();
2806 vkEnc->vkGetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport);
2807}
2808#endif
2809#ifdef VK_KHR_draw_indirect_count
2810static void entry_vkCmdDrawIndirectCountKHR(
2811 VkCommandBuffer commandBuffer,
2812 VkBuffer buffer,
2813 VkDeviceSize offset,
2814 VkBuffer countBuffer,
2815 VkDeviceSize countBufferOffset,
2816 uint32_t maxDrawCount,
2817 uint32_t stride)
2818{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002819 AEMU_SCOPED_TRACE("vkCmdDrawIndirectCountKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002820 auto vkEnc = HostConnection::get()->vkEncoder();
2821 vkEnc->vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
2822}
2823static void entry_vkCmdDrawIndexedIndirectCountKHR(
2824 VkCommandBuffer commandBuffer,
2825 VkBuffer buffer,
2826 VkDeviceSize offset,
2827 VkBuffer countBuffer,
2828 VkDeviceSize countBufferOffset,
2829 uint32_t maxDrawCount,
2830 uint32_t stride)
2831{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002832 AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirectCountKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002833 auto vkEnc = HostConnection::get()->vkEncoder();
2834 vkEnc->vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
2835}
2836#endif
2837#ifdef VK_KHR_8bit_storage
2838#endif
Lingfeng Yang808a6312018-11-13 21:06:15 -08002839#ifdef VK_ANDROID_native_buffer
2840static VkResult entry_vkGetSwapchainGrallocUsageANDROID(
2841 VkDevice device,
2842 VkFormat format,
2843 VkImageUsageFlags imageUsage,
2844 int* grallocUsage)
2845{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002846 AEMU_SCOPED_TRACE("vkGetSwapchainGrallocUsageANDROID");
Lingfeng Yang808a6312018-11-13 21:06:15 -08002847 auto vkEnc = HostConnection::get()->vkEncoder();
2848 VkResult vkGetSwapchainGrallocUsageANDROID_VkResult_return = (VkResult)0;
2849 vkGetSwapchainGrallocUsageANDROID_VkResult_return = vkEnc->vkGetSwapchainGrallocUsageANDROID(device, format, imageUsage, grallocUsage);
2850 return vkGetSwapchainGrallocUsageANDROID_VkResult_return;
2851}
2852static VkResult entry_vkAcquireImageANDROID(
2853 VkDevice device,
2854 VkImage image,
2855 int nativeFenceFd,
2856 VkSemaphore semaphore,
2857 VkFence fence)
2858{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002859 AEMU_SCOPED_TRACE("vkAcquireImageANDROID");
Lingfeng Yang808a6312018-11-13 21:06:15 -08002860 auto vkEnc = HostConnection::get()->vkEncoder();
2861 VkResult vkAcquireImageANDROID_VkResult_return = (VkResult)0;
2862 vkAcquireImageANDROID_VkResult_return = vkEnc->vkAcquireImageANDROID(device, image, nativeFenceFd, semaphore, fence);
2863 return vkAcquireImageANDROID_VkResult_return;
2864}
2865static VkResult entry_vkQueueSignalReleaseImageANDROID(
2866 VkQueue queue,
2867 uint32_t waitSemaphoreCount,
2868 const VkSemaphore* pWaitSemaphores,
2869 VkImage image,
2870 int* pNativeFenceFd)
2871{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002872 AEMU_SCOPED_TRACE("vkQueueSignalReleaseImageANDROID");
Lingfeng Yang808a6312018-11-13 21:06:15 -08002873 auto vkEnc = HostConnection::get()->vkEncoder();
2874 VkResult vkQueueSignalReleaseImageANDROID_VkResult_return = (VkResult)0;
2875 vkQueueSignalReleaseImageANDROID_VkResult_return = vkEnc->vkQueueSignalReleaseImageANDROID(queue, waitSemaphoreCount, pWaitSemaphores, image, pNativeFenceFd);
2876 return vkQueueSignalReleaseImageANDROID_VkResult_return;
2877}
2878#endif
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002879#ifdef VK_EXT_debug_report
2880static VkResult entry_vkCreateDebugReportCallbackEXT(
2881 VkInstance instance,
2882 const VkDebugReportCallbackCreateInfoEXT* pCreateInfo,
2883 const VkAllocationCallbacks* pAllocator,
2884 VkDebugReportCallbackEXT* pCallback)
2885{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002886 AEMU_SCOPED_TRACE("vkCreateDebugReportCallbackEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002887 auto vkEnc = HostConnection::get()->vkEncoder();
2888 VkResult vkCreateDebugReportCallbackEXT_VkResult_return = (VkResult)0;
2889 vkCreateDebugReportCallbackEXT_VkResult_return = vkEnc->vkCreateDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback);
2890 return vkCreateDebugReportCallbackEXT_VkResult_return;
2891}
2892static void entry_vkDestroyDebugReportCallbackEXT(
2893 VkInstance instance,
2894 VkDebugReportCallbackEXT callback,
2895 const VkAllocationCallbacks* pAllocator)
2896{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002897 AEMU_SCOPED_TRACE("vkDestroyDebugReportCallbackEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002898 auto vkEnc = HostConnection::get()->vkEncoder();
2899 vkEnc->vkDestroyDebugReportCallbackEXT(instance, callback, pAllocator);
2900}
2901static void entry_vkDebugReportMessageEXT(
2902 VkInstance instance,
2903 VkDebugReportFlagsEXT flags,
2904 VkDebugReportObjectTypeEXT objectType,
2905 uint64_t object,
2906 size_t location,
2907 int32_t messageCode,
2908 const char* pLayerPrefix,
2909 const char* pMessage)
2910{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002911 AEMU_SCOPED_TRACE("vkDebugReportMessageEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002912 auto vkEnc = HostConnection::get()->vkEncoder();
2913 vkEnc->vkDebugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage);
2914}
2915#endif
2916#ifdef VK_NV_glsl_shader
2917#endif
2918#ifdef VK_EXT_depth_range_unrestricted
2919#endif
2920#ifdef VK_IMG_filter_cubic
2921#endif
2922#ifdef VK_AMD_rasterization_order
2923#endif
2924#ifdef VK_AMD_shader_trinary_minmax
2925#endif
2926#ifdef VK_AMD_shader_explicit_vertex_parameter
2927#endif
2928#ifdef VK_EXT_debug_marker
2929static VkResult entry_vkDebugMarkerSetObjectTagEXT(
2930 VkDevice device,
2931 const VkDebugMarkerObjectTagInfoEXT* pTagInfo)
2932{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002933 AEMU_SCOPED_TRACE("vkDebugMarkerSetObjectTagEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002934 auto vkEnc = HostConnection::get()->vkEncoder();
2935 VkResult vkDebugMarkerSetObjectTagEXT_VkResult_return = (VkResult)0;
2936 vkDebugMarkerSetObjectTagEXT_VkResult_return = vkEnc->vkDebugMarkerSetObjectTagEXT(device, pTagInfo);
2937 return vkDebugMarkerSetObjectTagEXT_VkResult_return;
2938}
2939static VkResult entry_vkDebugMarkerSetObjectNameEXT(
2940 VkDevice device,
2941 const VkDebugMarkerObjectNameInfoEXT* pNameInfo)
2942{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002943 AEMU_SCOPED_TRACE("vkDebugMarkerSetObjectNameEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002944 auto vkEnc = HostConnection::get()->vkEncoder();
2945 VkResult vkDebugMarkerSetObjectNameEXT_VkResult_return = (VkResult)0;
2946 vkDebugMarkerSetObjectNameEXT_VkResult_return = vkEnc->vkDebugMarkerSetObjectNameEXT(device, pNameInfo);
2947 return vkDebugMarkerSetObjectNameEXT_VkResult_return;
2948}
2949static void entry_vkCmdDebugMarkerBeginEXT(
2950 VkCommandBuffer commandBuffer,
2951 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo)
2952{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002953 AEMU_SCOPED_TRACE("vkCmdDebugMarkerBeginEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002954 auto vkEnc = HostConnection::get()->vkEncoder();
2955 vkEnc->vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo);
2956}
2957static void entry_vkCmdDebugMarkerEndEXT(
2958 VkCommandBuffer commandBuffer)
2959{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002960 AEMU_SCOPED_TRACE("vkCmdDebugMarkerEndEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002961 auto vkEnc = HostConnection::get()->vkEncoder();
2962 vkEnc->vkCmdDebugMarkerEndEXT(commandBuffer);
2963}
2964static void entry_vkCmdDebugMarkerInsertEXT(
2965 VkCommandBuffer commandBuffer,
2966 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo)
2967{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002968 AEMU_SCOPED_TRACE("vkCmdDebugMarkerInsertEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002969 auto vkEnc = HostConnection::get()->vkEncoder();
2970 vkEnc->vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo);
2971}
2972#endif
2973#ifdef VK_AMD_gcn_shader
2974#endif
2975#ifdef VK_NV_dedicated_allocation
2976#endif
2977#ifdef VK_AMD_draw_indirect_count
2978static void entry_vkCmdDrawIndirectCountAMD(
2979 VkCommandBuffer commandBuffer,
2980 VkBuffer buffer,
2981 VkDeviceSize offset,
2982 VkBuffer countBuffer,
2983 VkDeviceSize countBufferOffset,
2984 uint32_t maxDrawCount,
2985 uint32_t stride)
2986{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002987 AEMU_SCOPED_TRACE("vkCmdDrawIndirectCountAMD");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002988 auto vkEnc = HostConnection::get()->vkEncoder();
2989 vkEnc->vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
2990}
2991static void entry_vkCmdDrawIndexedIndirectCountAMD(
2992 VkCommandBuffer commandBuffer,
2993 VkBuffer buffer,
2994 VkDeviceSize offset,
2995 VkBuffer countBuffer,
2996 VkDeviceSize countBufferOffset,
2997 uint32_t maxDrawCount,
2998 uint32_t stride)
2999{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003000 AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirectCountAMD");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003001 auto vkEnc = HostConnection::get()->vkEncoder();
3002 vkEnc->vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
3003}
3004#endif
3005#ifdef VK_AMD_negative_viewport_height
3006#endif
3007#ifdef VK_AMD_gpu_shader_half_float
3008#endif
3009#ifdef VK_AMD_shader_ballot
3010#endif
3011#ifdef VK_AMD_texture_gather_bias_lod
3012#endif
3013#ifdef VK_AMD_shader_info
3014static VkResult entry_vkGetShaderInfoAMD(
3015 VkDevice device,
3016 VkPipeline pipeline,
3017 VkShaderStageFlagBits shaderStage,
3018 VkShaderInfoTypeAMD infoType,
3019 size_t* pInfoSize,
3020 void* pInfo)
3021{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003022 AEMU_SCOPED_TRACE("vkGetShaderInfoAMD");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003023 auto vkEnc = HostConnection::get()->vkEncoder();
3024 VkResult vkGetShaderInfoAMD_VkResult_return = (VkResult)0;
3025 vkGetShaderInfoAMD_VkResult_return = vkEnc->vkGetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo);
3026 return vkGetShaderInfoAMD_VkResult_return;
3027}
3028#endif
3029#ifdef VK_AMD_shader_image_load_store_lod
3030#endif
3031#ifdef VK_IMG_format_pvrtc
3032#endif
3033#ifdef VK_NV_external_memory_capabilities
3034static VkResult entry_vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
3035 VkPhysicalDevice physicalDevice,
3036 VkFormat format,
3037 VkImageType type,
3038 VkImageTiling tiling,
3039 VkImageUsageFlags usage,
3040 VkImageCreateFlags flags,
3041 VkExternalMemoryHandleTypeFlagsNV externalHandleType,
3042 VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties)
3043{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003044 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalImageFormatPropertiesNV");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003045 auto vkEnc = HostConnection::get()->vkEncoder();
3046 VkResult vkGetPhysicalDeviceExternalImageFormatPropertiesNV_VkResult_return = (VkResult)0;
3047 vkGetPhysicalDeviceExternalImageFormatPropertiesNV_VkResult_return = vkEnc->vkGetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties);
3048 return vkGetPhysicalDeviceExternalImageFormatPropertiesNV_VkResult_return;
3049}
3050#endif
3051#ifdef VK_NV_external_memory
3052#endif
3053#ifdef VK_NV_external_memory_win32
3054static VkResult entry_vkGetMemoryWin32HandleNV(
3055 VkDevice device,
3056 VkDeviceMemory memory,
3057 VkExternalMemoryHandleTypeFlagsNV handleType,
3058 HANDLE* pHandle)
3059{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003060 AEMU_SCOPED_TRACE("vkGetMemoryWin32HandleNV");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003061 auto vkEnc = HostConnection::get()->vkEncoder();
3062 VkResult vkGetMemoryWin32HandleNV_VkResult_return = (VkResult)0;
3063 vkGetMemoryWin32HandleNV_VkResult_return = vkEnc->vkGetMemoryWin32HandleNV(device, memory, handleType, pHandle);
3064 return vkGetMemoryWin32HandleNV_VkResult_return;
3065}
3066#endif
3067#ifdef VK_NV_win32_keyed_mutex
3068#endif
3069#ifdef VK_EXT_validation_flags
3070#endif
3071#ifdef VK_NN_vi_surface
3072static VkResult entry_vkCreateViSurfaceNN(
3073 VkInstance instance,
3074 const VkViSurfaceCreateInfoNN* pCreateInfo,
3075 const VkAllocationCallbacks* pAllocator,
3076 VkSurfaceKHR* pSurface)
3077{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003078 AEMU_SCOPED_TRACE("vkCreateViSurfaceNN");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003079 auto vkEnc = HostConnection::get()->vkEncoder();
3080 VkResult vkCreateViSurfaceNN_VkResult_return = (VkResult)0;
3081 vkCreateViSurfaceNN_VkResult_return = vkEnc->vkCreateViSurfaceNN(instance, pCreateInfo, pAllocator, pSurface);
3082 return vkCreateViSurfaceNN_VkResult_return;
3083}
3084#endif
3085#ifdef VK_EXT_shader_subgroup_ballot
3086#endif
3087#ifdef VK_EXT_shader_subgroup_vote
3088#endif
3089#ifdef VK_EXT_conditional_rendering
3090static void entry_vkCmdBeginConditionalRenderingEXT(
3091 VkCommandBuffer commandBuffer,
3092 const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin)
3093{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003094 AEMU_SCOPED_TRACE("vkCmdBeginConditionalRenderingEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003095 auto vkEnc = HostConnection::get()->vkEncoder();
3096 vkEnc->vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin);
3097}
3098static void entry_vkCmdEndConditionalRenderingEXT(
3099 VkCommandBuffer commandBuffer)
3100{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003101 AEMU_SCOPED_TRACE("vkCmdEndConditionalRenderingEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003102 auto vkEnc = HostConnection::get()->vkEncoder();
3103 vkEnc->vkCmdEndConditionalRenderingEXT(commandBuffer);
3104}
3105#endif
3106#ifdef VK_NVX_device_generated_commands
3107static void entry_vkCmdProcessCommandsNVX(
3108 VkCommandBuffer commandBuffer,
3109 const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo)
3110{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003111 AEMU_SCOPED_TRACE("vkCmdProcessCommandsNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003112 auto vkEnc = HostConnection::get()->vkEncoder();
3113 vkEnc->vkCmdProcessCommandsNVX(commandBuffer, pProcessCommandsInfo);
3114}
3115static void entry_vkCmdReserveSpaceForCommandsNVX(
3116 VkCommandBuffer commandBuffer,
3117 const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo)
3118{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003119 AEMU_SCOPED_TRACE("vkCmdReserveSpaceForCommandsNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003120 auto vkEnc = HostConnection::get()->vkEncoder();
3121 vkEnc->vkCmdReserveSpaceForCommandsNVX(commandBuffer, pReserveSpaceInfo);
3122}
3123static VkResult entry_vkCreateIndirectCommandsLayoutNVX(
3124 VkDevice device,
3125 const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo,
3126 const VkAllocationCallbacks* pAllocator,
3127 VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout)
3128{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003129 AEMU_SCOPED_TRACE("vkCreateIndirectCommandsLayoutNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003130 auto vkEnc = HostConnection::get()->vkEncoder();
3131 VkResult vkCreateIndirectCommandsLayoutNVX_VkResult_return = (VkResult)0;
3132 vkCreateIndirectCommandsLayoutNVX_VkResult_return = vkEnc->vkCreateIndirectCommandsLayoutNVX(device, pCreateInfo, pAllocator, pIndirectCommandsLayout);
3133 return vkCreateIndirectCommandsLayoutNVX_VkResult_return;
3134}
3135static void entry_vkDestroyIndirectCommandsLayoutNVX(
3136 VkDevice device,
3137 VkIndirectCommandsLayoutNVX indirectCommandsLayout,
3138 const VkAllocationCallbacks* pAllocator)
3139{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003140 AEMU_SCOPED_TRACE("vkDestroyIndirectCommandsLayoutNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003141 auto vkEnc = HostConnection::get()->vkEncoder();
3142 vkEnc->vkDestroyIndirectCommandsLayoutNVX(device, indirectCommandsLayout, pAllocator);
3143}
3144static VkResult entry_vkCreateObjectTableNVX(
3145 VkDevice device,
3146 const VkObjectTableCreateInfoNVX* pCreateInfo,
3147 const VkAllocationCallbacks* pAllocator,
3148 VkObjectTableNVX* pObjectTable)
3149{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003150 AEMU_SCOPED_TRACE("vkCreateObjectTableNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003151 auto vkEnc = HostConnection::get()->vkEncoder();
3152 VkResult vkCreateObjectTableNVX_VkResult_return = (VkResult)0;
3153 vkCreateObjectTableNVX_VkResult_return = vkEnc->vkCreateObjectTableNVX(device, pCreateInfo, pAllocator, pObjectTable);
3154 return vkCreateObjectTableNVX_VkResult_return;
3155}
3156static void entry_vkDestroyObjectTableNVX(
3157 VkDevice device,
3158 VkObjectTableNVX objectTable,
3159 const VkAllocationCallbacks* pAllocator)
3160{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003161 AEMU_SCOPED_TRACE("vkDestroyObjectTableNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003162 auto vkEnc = HostConnection::get()->vkEncoder();
3163 vkEnc->vkDestroyObjectTableNVX(device, objectTable, pAllocator);
3164}
3165static VkResult entry_vkRegisterObjectsNVX(
3166 VkDevice device,
3167 VkObjectTableNVX objectTable,
3168 uint32_t objectCount,
3169 const VkObjectTableEntryNVX* const* ppObjectTableEntries,
3170 const uint32_t* pObjectIndices)
3171{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003172 AEMU_SCOPED_TRACE("vkRegisterObjectsNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003173 auto vkEnc = HostConnection::get()->vkEncoder();
3174 VkResult vkRegisterObjectsNVX_VkResult_return = (VkResult)0;
3175 vkRegisterObjectsNVX_VkResult_return = vkEnc->vkRegisterObjectsNVX(device, objectTable, objectCount, ppObjectTableEntries, pObjectIndices);
3176 return vkRegisterObjectsNVX_VkResult_return;
3177}
3178static VkResult entry_vkUnregisterObjectsNVX(
3179 VkDevice device,
3180 VkObjectTableNVX objectTable,
3181 uint32_t objectCount,
3182 const VkObjectEntryTypeNVX* pObjectEntryTypes,
3183 const uint32_t* pObjectIndices)
3184{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003185 AEMU_SCOPED_TRACE("vkUnregisterObjectsNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003186 auto vkEnc = HostConnection::get()->vkEncoder();
3187 VkResult vkUnregisterObjectsNVX_VkResult_return = (VkResult)0;
3188 vkUnregisterObjectsNVX_VkResult_return = vkEnc->vkUnregisterObjectsNVX(device, objectTable, objectCount, pObjectEntryTypes, pObjectIndices);
3189 return vkUnregisterObjectsNVX_VkResult_return;
3190}
3191static void entry_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX(
3192 VkPhysicalDevice physicalDevice,
3193 VkDeviceGeneratedCommandsFeaturesNVX* pFeatures,
3194 VkDeviceGeneratedCommandsLimitsNVX* pLimits)
3195{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003196 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003197 auto vkEnc = HostConnection::get()->vkEncoder();
3198 vkEnc->vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX(physicalDevice, pFeatures, pLimits);
3199}
3200#endif
3201#ifdef VK_NV_clip_space_w_scaling
3202static void entry_vkCmdSetViewportWScalingNV(
3203 VkCommandBuffer commandBuffer,
3204 uint32_t firstViewport,
3205 uint32_t viewportCount,
3206 const VkViewportWScalingNV* pViewportWScalings)
3207{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003208 AEMU_SCOPED_TRACE("vkCmdSetViewportWScalingNV");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003209 auto vkEnc = HostConnection::get()->vkEncoder();
3210 vkEnc->vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings);
3211}
3212#endif
3213#ifdef VK_EXT_direct_mode_display
3214static VkResult entry_vkReleaseDisplayEXT(
3215 VkPhysicalDevice physicalDevice,
3216 VkDisplayKHR display)
3217{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003218 AEMU_SCOPED_TRACE("vkReleaseDisplayEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003219 auto vkEnc = HostConnection::get()->vkEncoder();
3220 VkResult vkReleaseDisplayEXT_VkResult_return = (VkResult)0;
3221 vkReleaseDisplayEXT_VkResult_return = vkEnc->vkReleaseDisplayEXT(physicalDevice, display);
3222 return vkReleaseDisplayEXT_VkResult_return;
3223}
3224#endif
3225#ifdef VK_EXT_acquire_xlib_display
3226static VkResult entry_vkAcquireXlibDisplayEXT(
3227 VkPhysicalDevice physicalDevice,
3228 Display* dpy,
3229 VkDisplayKHR display)
3230{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003231 AEMU_SCOPED_TRACE("vkAcquireXlibDisplayEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003232 auto vkEnc = HostConnection::get()->vkEncoder();
3233 VkResult vkAcquireXlibDisplayEXT_VkResult_return = (VkResult)0;
3234 vkAcquireXlibDisplayEXT_VkResult_return = vkEnc->vkAcquireXlibDisplayEXT(physicalDevice, dpy, display);
3235 return vkAcquireXlibDisplayEXT_VkResult_return;
3236}
3237static VkResult entry_vkGetRandROutputDisplayEXT(
3238 VkPhysicalDevice physicalDevice,
3239 Display* dpy,
3240 RROutput rrOutput,
3241 VkDisplayKHR* pDisplay)
3242{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003243 AEMU_SCOPED_TRACE("vkGetRandROutputDisplayEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003244 auto vkEnc = HostConnection::get()->vkEncoder();
3245 VkResult vkGetRandROutputDisplayEXT_VkResult_return = (VkResult)0;
3246 vkGetRandROutputDisplayEXT_VkResult_return = vkEnc->vkGetRandROutputDisplayEXT(physicalDevice, dpy, rrOutput, pDisplay);
3247 return vkGetRandROutputDisplayEXT_VkResult_return;
3248}
3249#endif
3250#ifdef VK_EXT_display_surface_counter
3251static VkResult entry_vkGetPhysicalDeviceSurfaceCapabilities2EXT(
3252 VkPhysicalDevice physicalDevice,
3253 VkSurfaceKHR surface,
3254 VkSurfaceCapabilities2EXT* pSurfaceCapabilities)
3255{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003256 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceCapabilities2EXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003257 auto vkEnc = HostConnection::get()->vkEncoder();
3258 VkResult vkGetPhysicalDeviceSurfaceCapabilities2EXT_VkResult_return = (VkResult)0;
3259 vkGetPhysicalDeviceSurfaceCapabilities2EXT_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities);
3260 return vkGetPhysicalDeviceSurfaceCapabilities2EXT_VkResult_return;
3261}
3262#endif
3263#ifdef VK_EXT_display_control
3264static VkResult entry_vkDisplayPowerControlEXT(
3265 VkDevice device,
3266 VkDisplayKHR display,
3267 const VkDisplayPowerInfoEXT* pDisplayPowerInfo)
3268{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003269 AEMU_SCOPED_TRACE("vkDisplayPowerControlEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003270 auto vkEnc = HostConnection::get()->vkEncoder();
3271 VkResult vkDisplayPowerControlEXT_VkResult_return = (VkResult)0;
3272 vkDisplayPowerControlEXT_VkResult_return = vkEnc->vkDisplayPowerControlEXT(device, display, pDisplayPowerInfo);
3273 return vkDisplayPowerControlEXT_VkResult_return;
3274}
3275static VkResult entry_vkRegisterDeviceEventEXT(
3276 VkDevice device,
3277 const VkDeviceEventInfoEXT* pDeviceEventInfo,
3278 const VkAllocationCallbacks* pAllocator,
3279 VkFence* pFence)
3280{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003281 AEMU_SCOPED_TRACE("vkRegisterDeviceEventEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003282 auto vkEnc = HostConnection::get()->vkEncoder();
3283 VkResult vkRegisterDeviceEventEXT_VkResult_return = (VkResult)0;
3284 vkRegisterDeviceEventEXT_VkResult_return = vkEnc->vkRegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence);
3285 return vkRegisterDeviceEventEXT_VkResult_return;
3286}
3287static VkResult entry_vkRegisterDisplayEventEXT(
3288 VkDevice device,
3289 VkDisplayKHR display,
3290 const VkDisplayEventInfoEXT* pDisplayEventInfo,
3291 const VkAllocationCallbacks* pAllocator,
3292 VkFence* pFence)
3293{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003294 AEMU_SCOPED_TRACE("vkRegisterDisplayEventEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003295 auto vkEnc = HostConnection::get()->vkEncoder();
3296 VkResult vkRegisterDisplayEventEXT_VkResult_return = (VkResult)0;
3297 vkRegisterDisplayEventEXT_VkResult_return = vkEnc->vkRegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence);
3298 return vkRegisterDisplayEventEXT_VkResult_return;
3299}
3300static VkResult entry_vkGetSwapchainCounterEXT(
3301 VkDevice device,
3302 VkSwapchainKHR swapchain,
3303 VkSurfaceCounterFlagBitsEXT counter,
3304 uint64_t* pCounterValue)
3305{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003306 AEMU_SCOPED_TRACE("vkGetSwapchainCounterEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003307 auto vkEnc = HostConnection::get()->vkEncoder();
3308 VkResult vkGetSwapchainCounterEXT_VkResult_return = (VkResult)0;
3309 vkGetSwapchainCounterEXT_VkResult_return = vkEnc->vkGetSwapchainCounterEXT(device, swapchain, counter, pCounterValue);
3310 return vkGetSwapchainCounterEXT_VkResult_return;
3311}
3312#endif
3313#ifdef VK_GOOGLE_display_timing
3314static VkResult entry_vkGetRefreshCycleDurationGOOGLE(
3315 VkDevice device,
3316 VkSwapchainKHR swapchain,
3317 VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties)
3318{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003319 AEMU_SCOPED_TRACE("vkGetRefreshCycleDurationGOOGLE");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003320 auto vkEnc = HostConnection::get()->vkEncoder();
3321 VkResult vkGetRefreshCycleDurationGOOGLE_VkResult_return = (VkResult)0;
3322 vkGetRefreshCycleDurationGOOGLE_VkResult_return = vkEnc->vkGetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties);
3323 return vkGetRefreshCycleDurationGOOGLE_VkResult_return;
3324}
3325static VkResult entry_vkGetPastPresentationTimingGOOGLE(
3326 VkDevice device,
3327 VkSwapchainKHR swapchain,
3328 uint32_t* pPresentationTimingCount,
3329 VkPastPresentationTimingGOOGLE* pPresentationTimings)
3330{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003331 AEMU_SCOPED_TRACE("vkGetPastPresentationTimingGOOGLE");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003332 auto vkEnc = HostConnection::get()->vkEncoder();
3333 VkResult vkGetPastPresentationTimingGOOGLE_VkResult_return = (VkResult)0;
3334 vkGetPastPresentationTimingGOOGLE_VkResult_return = vkEnc->vkGetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings);
3335 return vkGetPastPresentationTimingGOOGLE_VkResult_return;
3336}
3337#endif
3338#ifdef VK_NV_sample_mask_override_coverage
3339#endif
3340#ifdef VK_NV_geometry_shader_passthrough
3341#endif
3342#ifdef VK_NV_viewport_array2
3343#endif
3344#ifdef VK_NVX_multiview_per_view_attributes
3345#endif
3346#ifdef VK_NV_viewport_swizzle
3347#endif
3348#ifdef VK_EXT_discard_rectangles
3349static void entry_vkCmdSetDiscardRectangleEXT(
3350 VkCommandBuffer commandBuffer,
3351 uint32_t firstDiscardRectangle,
3352 uint32_t discardRectangleCount,
3353 const VkRect2D* pDiscardRectangles)
3354{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003355 AEMU_SCOPED_TRACE("vkCmdSetDiscardRectangleEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003356 auto vkEnc = HostConnection::get()->vkEncoder();
3357 vkEnc->vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles);
3358}
3359#endif
3360#ifdef VK_EXT_conservative_rasterization
3361#endif
3362#ifdef VK_EXT_swapchain_colorspace
3363#endif
3364#ifdef VK_EXT_hdr_metadata
3365static void entry_vkSetHdrMetadataEXT(
3366 VkDevice device,
3367 uint32_t swapchainCount,
3368 const VkSwapchainKHR* pSwapchains,
3369 const VkHdrMetadataEXT* pMetadata)
3370{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003371 AEMU_SCOPED_TRACE("vkSetHdrMetadataEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003372 auto vkEnc = HostConnection::get()->vkEncoder();
3373 vkEnc->vkSetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata);
3374}
3375#endif
3376#ifdef VK_MVK_ios_surface
3377static VkResult entry_vkCreateIOSSurfaceMVK(
3378 VkInstance instance,
3379 const VkIOSSurfaceCreateInfoMVK* pCreateInfo,
3380 const VkAllocationCallbacks* pAllocator,
3381 VkSurfaceKHR* pSurface)
3382{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003383 AEMU_SCOPED_TRACE("vkCreateIOSSurfaceMVK");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003384 auto vkEnc = HostConnection::get()->vkEncoder();
3385 VkResult vkCreateIOSSurfaceMVK_VkResult_return = (VkResult)0;
3386 vkCreateIOSSurfaceMVK_VkResult_return = vkEnc->vkCreateIOSSurfaceMVK(instance, pCreateInfo, pAllocator, pSurface);
3387 return vkCreateIOSSurfaceMVK_VkResult_return;
3388}
3389#endif
3390#ifdef VK_MVK_macos_surface
3391static VkResult entry_vkCreateMacOSSurfaceMVK(
3392 VkInstance instance,
3393 const VkMacOSSurfaceCreateInfoMVK* pCreateInfo,
3394 const VkAllocationCallbacks* pAllocator,
3395 VkSurfaceKHR* pSurface)
3396{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003397 AEMU_SCOPED_TRACE("vkCreateMacOSSurfaceMVK");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003398 auto vkEnc = HostConnection::get()->vkEncoder();
3399 VkResult vkCreateMacOSSurfaceMVK_VkResult_return = (VkResult)0;
3400 vkCreateMacOSSurfaceMVK_VkResult_return = vkEnc->vkCreateMacOSSurfaceMVK(instance, pCreateInfo, pAllocator, pSurface);
3401 return vkCreateMacOSSurfaceMVK_VkResult_return;
3402}
3403#endif
3404#ifdef VK_EXT_external_memory_dma_buf
3405#endif
3406#ifdef VK_EXT_queue_family_foreign
3407#endif
3408#ifdef VK_EXT_debug_utils
3409static VkResult entry_vkSetDebugUtilsObjectNameEXT(
3410 VkDevice device,
3411 const VkDebugUtilsObjectNameInfoEXT* pNameInfo)
3412{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003413 AEMU_SCOPED_TRACE("vkSetDebugUtilsObjectNameEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003414 auto vkEnc = HostConnection::get()->vkEncoder();
3415 VkResult vkSetDebugUtilsObjectNameEXT_VkResult_return = (VkResult)0;
3416 vkSetDebugUtilsObjectNameEXT_VkResult_return = vkEnc->vkSetDebugUtilsObjectNameEXT(device, pNameInfo);
3417 return vkSetDebugUtilsObjectNameEXT_VkResult_return;
3418}
3419static VkResult entry_vkSetDebugUtilsObjectTagEXT(
3420 VkDevice device,
3421 const VkDebugUtilsObjectTagInfoEXT* pTagInfo)
3422{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003423 AEMU_SCOPED_TRACE("vkSetDebugUtilsObjectTagEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003424 auto vkEnc = HostConnection::get()->vkEncoder();
3425 VkResult vkSetDebugUtilsObjectTagEXT_VkResult_return = (VkResult)0;
3426 vkSetDebugUtilsObjectTagEXT_VkResult_return = vkEnc->vkSetDebugUtilsObjectTagEXT(device, pTagInfo);
3427 return vkSetDebugUtilsObjectTagEXT_VkResult_return;
3428}
3429static void entry_vkQueueBeginDebugUtilsLabelEXT(
3430 VkQueue queue,
3431 const VkDebugUtilsLabelEXT* pLabelInfo)
3432{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003433 AEMU_SCOPED_TRACE("vkQueueBeginDebugUtilsLabelEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003434 auto vkEnc = HostConnection::get()->vkEncoder();
3435 vkEnc->vkQueueBeginDebugUtilsLabelEXT(queue, pLabelInfo);
3436}
3437static void entry_vkQueueEndDebugUtilsLabelEXT(
3438 VkQueue queue)
3439{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003440 AEMU_SCOPED_TRACE("vkQueueEndDebugUtilsLabelEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003441 auto vkEnc = HostConnection::get()->vkEncoder();
3442 vkEnc->vkQueueEndDebugUtilsLabelEXT(queue);
3443}
3444static void entry_vkQueueInsertDebugUtilsLabelEXT(
3445 VkQueue queue,
3446 const VkDebugUtilsLabelEXT* pLabelInfo)
3447{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003448 AEMU_SCOPED_TRACE("vkQueueInsertDebugUtilsLabelEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003449 auto vkEnc = HostConnection::get()->vkEncoder();
3450 vkEnc->vkQueueInsertDebugUtilsLabelEXT(queue, pLabelInfo);
3451}
3452static void entry_vkCmdBeginDebugUtilsLabelEXT(
3453 VkCommandBuffer commandBuffer,
3454 const VkDebugUtilsLabelEXT* pLabelInfo)
3455{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003456 AEMU_SCOPED_TRACE("vkCmdBeginDebugUtilsLabelEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003457 auto vkEnc = HostConnection::get()->vkEncoder();
3458 vkEnc->vkCmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo);
3459}
3460static void entry_vkCmdEndDebugUtilsLabelEXT(
3461 VkCommandBuffer commandBuffer)
3462{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003463 AEMU_SCOPED_TRACE("vkCmdEndDebugUtilsLabelEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003464 auto vkEnc = HostConnection::get()->vkEncoder();
3465 vkEnc->vkCmdEndDebugUtilsLabelEXT(commandBuffer);
3466}
3467static void entry_vkCmdInsertDebugUtilsLabelEXT(
3468 VkCommandBuffer commandBuffer,
3469 const VkDebugUtilsLabelEXT* pLabelInfo)
3470{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003471 AEMU_SCOPED_TRACE("vkCmdInsertDebugUtilsLabelEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003472 auto vkEnc = HostConnection::get()->vkEncoder();
3473 vkEnc->vkCmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo);
3474}
3475static VkResult entry_vkCreateDebugUtilsMessengerEXT(
3476 VkInstance instance,
3477 const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo,
3478 const VkAllocationCallbacks* pAllocator,
3479 VkDebugUtilsMessengerEXT* pMessenger)
3480{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003481 AEMU_SCOPED_TRACE("vkCreateDebugUtilsMessengerEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003482 auto vkEnc = HostConnection::get()->vkEncoder();
3483 VkResult vkCreateDebugUtilsMessengerEXT_VkResult_return = (VkResult)0;
3484 vkCreateDebugUtilsMessengerEXT_VkResult_return = vkEnc->vkCreateDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, pMessenger);
3485 return vkCreateDebugUtilsMessengerEXT_VkResult_return;
3486}
3487static void entry_vkDestroyDebugUtilsMessengerEXT(
3488 VkInstance instance,
3489 VkDebugUtilsMessengerEXT messenger,
3490 const VkAllocationCallbacks* pAllocator)
3491{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003492 AEMU_SCOPED_TRACE("vkDestroyDebugUtilsMessengerEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003493 auto vkEnc = HostConnection::get()->vkEncoder();
3494 vkEnc->vkDestroyDebugUtilsMessengerEXT(instance, messenger, pAllocator);
3495}
3496static void entry_vkSubmitDebugUtilsMessageEXT(
3497 VkInstance instance,
3498 VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
3499 VkDebugUtilsMessageTypeFlagsEXT messageTypes,
3500 const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData)
3501{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003502 AEMU_SCOPED_TRACE("vkSubmitDebugUtilsMessageEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003503 auto vkEnc = HostConnection::get()->vkEncoder();
3504 vkEnc->vkSubmitDebugUtilsMessageEXT(instance, messageSeverity, messageTypes, pCallbackData);
3505}
3506#endif
3507#ifdef VK_ANDROID_external_memory_android_hardware_buffer
3508static VkResult entry_vkGetAndroidHardwareBufferPropertiesANDROID(
3509 VkDevice device,
3510 const AHardwareBuffer* buffer,
3511 VkAndroidHardwareBufferPropertiesANDROID* pProperties)
3512{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003513 AEMU_SCOPED_TRACE("vkGetAndroidHardwareBufferPropertiesANDROID");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003514 auto vkEnc = HostConnection::get()->vkEncoder();
3515 VkResult vkGetAndroidHardwareBufferPropertiesANDROID_VkResult_return = (VkResult)0;
Lingfeng Yang4f3f91f2019-02-28 11:37:21 -08003516 auto resources = ResourceTracker::get();
3517 vkGetAndroidHardwareBufferPropertiesANDROID_VkResult_return = resources->on_vkGetAndroidHardwareBufferPropertiesANDROID(vkEnc, VK_SUCCESS, device, buffer, pProperties);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003518 return vkGetAndroidHardwareBufferPropertiesANDROID_VkResult_return;
3519}
3520static VkResult entry_vkGetMemoryAndroidHardwareBufferANDROID(
3521 VkDevice device,
3522 const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo,
3523 AHardwareBuffer** pBuffer)
3524{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003525 AEMU_SCOPED_TRACE("vkGetMemoryAndroidHardwareBufferANDROID");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003526 auto vkEnc = HostConnection::get()->vkEncoder();
3527 VkResult vkGetMemoryAndroidHardwareBufferANDROID_VkResult_return = (VkResult)0;
Lingfeng Yang4f3f91f2019-02-28 11:37:21 -08003528 auto resources = ResourceTracker::get();
3529 vkGetMemoryAndroidHardwareBufferANDROID_VkResult_return = resources->on_vkGetMemoryAndroidHardwareBufferANDROID(vkEnc, VK_SUCCESS, device, pInfo, pBuffer);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003530 return vkGetMemoryAndroidHardwareBufferANDROID_VkResult_return;
3531}
3532#endif
3533#ifdef VK_EXT_sampler_filter_minmax
3534#endif
3535#ifdef VK_AMD_gpu_shader_int16
3536#endif
3537#ifdef VK_AMD_mixed_attachment_samples
3538#endif
3539#ifdef VK_AMD_shader_fragment_mask
3540#endif
3541#ifdef VK_EXT_shader_stencil_export
3542#endif
3543#ifdef VK_EXT_sample_locations
3544static void entry_vkCmdSetSampleLocationsEXT(
3545 VkCommandBuffer commandBuffer,
3546 const VkSampleLocationsInfoEXT* pSampleLocationsInfo)
3547{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003548 AEMU_SCOPED_TRACE("vkCmdSetSampleLocationsEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003549 auto vkEnc = HostConnection::get()->vkEncoder();
3550 vkEnc->vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo);
3551}
3552static void entry_vkGetPhysicalDeviceMultisamplePropertiesEXT(
3553 VkPhysicalDevice physicalDevice,
3554 VkSampleCountFlagBits samples,
3555 VkMultisamplePropertiesEXT* pMultisampleProperties)
3556{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003557 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMultisamplePropertiesEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003558 auto vkEnc = HostConnection::get()->vkEncoder();
3559 vkEnc->vkGetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties);
3560}
3561#endif
3562#ifdef VK_EXT_blend_operation_advanced
3563#endif
3564#ifdef VK_NV_fragment_coverage_to_color
3565#endif
3566#ifdef VK_NV_framebuffer_mixed_samples
3567#endif
3568#ifdef VK_NV_fill_rectangle
3569#endif
3570#ifdef VK_EXT_post_depth_coverage
3571#endif
3572#ifdef VK_EXT_validation_cache
3573static VkResult entry_vkCreateValidationCacheEXT(
3574 VkDevice device,
3575 const VkValidationCacheCreateInfoEXT* pCreateInfo,
3576 const VkAllocationCallbacks* pAllocator,
3577 VkValidationCacheEXT* pValidationCache)
3578{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003579 AEMU_SCOPED_TRACE("vkCreateValidationCacheEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003580 auto vkEnc = HostConnection::get()->vkEncoder();
3581 VkResult vkCreateValidationCacheEXT_VkResult_return = (VkResult)0;
3582 vkCreateValidationCacheEXT_VkResult_return = vkEnc->vkCreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache);
3583 return vkCreateValidationCacheEXT_VkResult_return;
3584}
3585static void entry_vkDestroyValidationCacheEXT(
3586 VkDevice device,
3587 VkValidationCacheEXT validationCache,
3588 const VkAllocationCallbacks* pAllocator)
3589{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003590 AEMU_SCOPED_TRACE("vkDestroyValidationCacheEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003591 auto vkEnc = HostConnection::get()->vkEncoder();
3592 vkEnc->vkDestroyValidationCacheEXT(device, validationCache, pAllocator);
3593}
3594static VkResult entry_vkMergeValidationCachesEXT(
3595 VkDevice device,
3596 VkValidationCacheEXT dstCache,
3597 uint32_t srcCacheCount,
3598 const VkValidationCacheEXT* pSrcCaches)
3599{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003600 AEMU_SCOPED_TRACE("vkMergeValidationCachesEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003601 auto vkEnc = HostConnection::get()->vkEncoder();
3602 VkResult vkMergeValidationCachesEXT_VkResult_return = (VkResult)0;
3603 vkMergeValidationCachesEXT_VkResult_return = vkEnc->vkMergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches);
3604 return vkMergeValidationCachesEXT_VkResult_return;
3605}
3606static VkResult entry_vkGetValidationCacheDataEXT(
3607 VkDevice device,
3608 VkValidationCacheEXT validationCache,
3609 size_t* pDataSize,
3610 void* pData)
3611{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003612 AEMU_SCOPED_TRACE("vkGetValidationCacheDataEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003613 auto vkEnc = HostConnection::get()->vkEncoder();
3614 VkResult vkGetValidationCacheDataEXT_VkResult_return = (VkResult)0;
3615 vkGetValidationCacheDataEXT_VkResult_return = vkEnc->vkGetValidationCacheDataEXT(device, validationCache, pDataSize, pData);
3616 return vkGetValidationCacheDataEXT_VkResult_return;
3617}
3618#endif
3619#ifdef VK_EXT_descriptor_indexing
3620#endif
3621#ifdef VK_EXT_shader_viewport_index_layer
3622#endif
3623#ifdef VK_EXT_global_priority
3624#endif
3625#ifdef VK_EXT_external_memory_host
3626static VkResult entry_vkGetMemoryHostPointerPropertiesEXT(
3627 VkDevice device,
3628 VkExternalMemoryHandleTypeFlagBits handleType,
3629 const void* pHostPointer,
3630 VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties)
3631{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003632 AEMU_SCOPED_TRACE("vkGetMemoryHostPointerPropertiesEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003633 auto vkEnc = HostConnection::get()->vkEncoder();
3634 VkResult vkGetMemoryHostPointerPropertiesEXT_VkResult_return = (VkResult)0;
3635 vkGetMemoryHostPointerPropertiesEXT_VkResult_return = vkEnc->vkGetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties);
3636 return vkGetMemoryHostPointerPropertiesEXT_VkResult_return;
3637}
3638#endif
3639#ifdef VK_AMD_buffer_marker
3640static void entry_vkCmdWriteBufferMarkerAMD(
3641 VkCommandBuffer commandBuffer,
3642 VkPipelineStageFlagBits pipelineStage,
3643 VkBuffer dstBuffer,
3644 VkDeviceSize dstOffset,
3645 uint32_t marker)
3646{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003647 AEMU_SCOPED_TRACE("vkCmdWriteBufferMarkerAMD");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003648 auto vkEnc = HostConnection::get()->vkEncoder();
3649 vkEnc->vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker);
3650}
3651#endif
3652#ifdef VK_AMD_shader_core_properties
3653#endif
3654#ifdef VK_EXT_vertex_attribute_divisor
3655#endif
3656#ifdef VK_NV_shader_subgroup_partitioned
3657#endif
3658#ifdef VK_NV_device_diagnostic_checkpoints
3659static void entry_vkCmdSetCheckpointNV(
3660 VkCommandBuffer commandBuffer,
3661 const void* pCheckpointMarker)
3662{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003663 AEMU_SCOPED_TRACE("vkCmdSetCheckpointNV");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003664 auto vkEnc = HostConnection::get()->vkEncoder();
3665 vkEnc->vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker);
3666}
3667static void entry_vkGetQueueCheckpointDataNV(
3668 VkQueue queue,
3669 uint32_t* pCheckpointDataCount,
3670 VkCheckpointDataNV* pCheckpointData)
3671{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003672 AEMU_SCOPED_TRACE("vkGetQueueCheckpointDataNV");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003673 auto vkEnc = HostConnection::get()->vkEncoder();
3674 vkEnc->vkGetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData);
3675}
3676#endif
Lingfeng Yang5c63afd2018-12-22 01:21:14 -08003677#ifdef VK_GOOGLE_address_space
3678static VkResult entry_vkMapMemoryIntoAddressSpaceGOOGLE(
3679 VkDevice device,
3680 VkDeviceMemory memory,
3681 uint64_t* pAddress)
3682{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003683 AEMU_SCOPED_TRACE("vkMapMemoryIntoAddressSpaceGOOGLE");
Lingfeng Yang5c63afd2018-12-22 01:21:14 -08003684 auto vkEnc = HostConnection::get()->vkEncoder();
3685 VkResult vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return = (VkResult)0;
3686 vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return = vkEnc->vkMapMemoryIntoAddressSpaceGOOGLE(device, memory, pAddress);
3687 return vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return;
3688}
3689#endif
Lingfeng Yangae7e1b32019-02-19 14:07:39 -08003690#ifdef VK_GOOGLE_color_buffer
3691static VkResult entry_vkRegisterImageColorBufferGOOGLE(
3692 VkDevice device,
3693 VkImage image,
3694 uint32_t colorBuffer)
3695{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003696 AEMU_SCOPED_TRACE("vkRegisterImageColorBufferGOOGLE");
Lingfeng Yangae7e1b32019-02-19 14:07:39 -08003697 auto vkEnc = HostConnection::get()->vkEncoder();
3698 VkResult vkRegisterImageColorBufferGOOGLE_VkResult_return = (VkResult)0;
3699 vkRegisterImageColorBufferGOOGLE_VkResult_return = vkEnc->vkRegisterImageColorBufferGOOGLE(device, image, colorBuffer);
3700 return vkRegisterImageColorBufferGOOGLE_VkResult_return;
3701}
3702static VkResult entry_vkRegisterBufferColorBufferGOOGLE(
3703 VkDevice device,
3704 VkBuffer buffer,
3705 uint32_t colorBuffer)
3706{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003707 AEMU_SCOPED_TRACE("vkRegisterBufferColorBufferGOOGLE");
Lingfeng Yangae7e1b32019-02-19 14:07:39 -08003708 auto vkEnc = HostConnection::get()->vkEncoder();
3709 VkResult vkRegisterBufferColorBufferGOOGLE_VkResult_return = (VkResult)0;
3710 vkRegisterBufferColorBufferGOOGLE_VkResult_return = vkEnc->vkRegisterBufferColorBufferGOOGLE(device, buffer, colorBuffer);
3711 return vkRegisterBufferColorBufferGOOGLE_VkResult_return;
3712}
3713#endif
Lingfeng Yang05d5ea32019-03-23 00:12:39 -07003714#ifdef VK_GOOGLE_sized_descriptor_update_template
3715static void entry_vkUpdateDescriptorSetWithTemplateSizedGOOGLE(
3716 VkDevice device,
3717 VkDescriptorSet descriptorSet,
3718 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
3719 uint32_t imageInfoCount,
3720 uint32_t bufferInfoCount,
3721 uint32_t bufferViewCount,
3722 const uint32_t* pImageInfoEntryIndices,
3723 const uint32_t* pBufferInfoEntryIndices,
3724 const uint32_t* pBufferViewEntryIndices,
3725 const VkDescriptorImageInfo* pImageInfos,
3726 const VkDescriptorBufferInfo* pBufferInfos,
3727 const VkBufferView* pBufferViews)
3728{
3729 AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplateSizedGOOGLE");
3730 auto vkEnc = HostConnection::get()->vkEncoder();
3731 vkEnc->vkUpdateDescriptorSetWithTemplateSizedGOOGLE(device, descriptorSet, descriptorUpdateTemplate, imageInfoCount, bufferInfoCount, bufferViewCount, pImageInfoEntryIndices, pBufferInfoEntryIndices, pBufferViewEntryIndices, pImageInfos, pBufferInfos, pBufferViews);
3732}
3733#endif
Lingfeng Yangc53e7472019-03-27 08:50:55 -07003734#ifdef VK_GOOGLE_async_command_buffers
3735static void entry_vkBeginCommandBufferAsyncGOOGLE(
3736 VkCommandBuffer commandBuffer,
3737 const VkCommandBufferBeginInfo* pBeginInfo)
3738{
3739 AEMU_SCOPED_TRACE("vkBeginCommandBufferAsyncGOOGLE");
3740 auto vkEnc = HostConnection::get()->vkEncoder();
3741 vkEnc->vkBeginCommandBufferAsyncGOOGLE(commandBuffer, pBeginInfo);
3742}
3743static void entry_vkEndCommandBufferAsyncGOOGLE(
3744 VkCommandBuffer commandBuffer)
3745{
3746 AEMU_SCOPED_TRACE("vkEndCommandBufferAsyncGOOGLE");
3747 auto vkEnc = HostConnection::get()->vkEncoder();
3748 vkEnc->vkEndCommandBufferAsyncGOOGLE(commandBuffer);
3749}
3750static void entry_vkResetCommandBufferAsyncGOOGLE(
3751 VkCommandBuffer commandBuffer,
3752 VkCommandBufferResetFlags flags)
3753{
3754 AEMU_SCOPED_TRACE("vkResetCommandBufferAsyncGOOGLE");
3755 auto vkEnc = HostConnection::get()->vkEncoder();
3756 vkEnc->vkResetCommandBufferAsyncGOOGLE(commandBuffer, flags);
3757}
3758#endif
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003759void* goldfish_vulkan_get_proc_address(const char* name){
3760#ifdef VK_VERSION_1_0
3761 if (!strcmp(name, "vkCreateInstance"))
3762 {
3763 return (void*)entry_vkCreateInstance;
3764 }
3765 if (!strcmp(name, "vkDestroyInstance"))
3766 {
3767 return (void*)entry_vkDestroyInstance;
3768 }
3769 if (!strcmp(name, "vkEnumeratePhysicalDevices"))
3770 {
3771 return (void*)entry_vkEnumeratePhysicalDevices;
3772 }
3773 if (!strcmp(name, "vkGetPhysicalDeviceFeatures"))
3774 {
3775 return (void*)entry_vkGetPhysicalDeviceFeatures;
3776 }
3777 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties"))
3778 {
3779 return (void*)entry_vkGetPhysicalDeviceFormatProperties;
3780 }
3781 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties"))
3782 {
3783 return (void*)entry_vkGetPhysicalDeviceImageFormatProperties;
3784 }
3785 if (!strcmp(name, "vkGetPhysicalDeviceProperties"))
3786 {
3787 return (void*)entry_vkGetPhysicalDeviceProperties;
3788 }
3789 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties"))
3790 {
3791 return (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties;
3792 }
3793 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties"))
3794 {
3795 return (void*)entry_vkGetPhysicalDeviceMemoryProperties;
3796 }
3797 if (!strcmp(name, "vkGetInstanceProcAddr"))
3798 {
3799 return (void*)entry_vkGetInstanceProcAddr;
3800 }
3801 if (!strcmp(name, "vkGetDeviceProcAddr"))
3802 {
3803 return (void*)entry_vkGetDeviceProcAddr;
3804 }
3805 if (!strcmp(name, "vkCreateDevice"))
3806 {
3807 return (void*)entry_vkCreateDevice;
3808 }
3809 if (!strcmp(name, "vkDestroyDevice"))
3810 {
3811 return (void*)entry_vkDestroyDevice;
3812 }
3813 if (!strcmp(name, "vkEnumerateInstanceExtensionProperties"))
3814 {
3815 return (void*)entry_vkEnumerateInstanceExtensionProperties;
3816 }
3817 if (!strcmp(name, "vkEnumerateDeviceExtensionProperties"))
3818 {
3819 return (void*)entry_vkEnumerateDeviceExtensionProperties;
3820 }
3821 if (!strcmp(name, "vkEnumerateInstanceLayerProperties"))
3822 {
3823 return (void*)entry_vkEnumerateInstanceLayerProperties;
3824 }
3825 if (!strcmp(name, "vkEnumerateDeviceLayerProperties"))
3826 {
3827 return (void*)entry_vkEnumerateDeviceLayerProperties;
3828 }
3829 if (!strcmp(name, "vkGetDeviceQueue"))
3830 {
3831 return (void*)entry_vkGetDeviceQueue;
3832 }
3833 if (!strcmp(name, "vkQueueSubmit"))
3834 {
3835 return (void*)entry_vkQueueSubmit;
3836 }
3837 if (!strcmp(name, "vkQueueWaitIdle"))
3838 {
3839 return (void*)entry_vkQueueWaitIdle;
3840 }
3841 if (!strcmp(name, "vkDeviceWaitIdle"))
3842 {
3843 return (void*)entry_vkDeviceWaitIdle;
3844 }
3845 if (!strcmp(name, "vkAllocateMemory"))
3846 {
3847 return (void*)entry_vkAllocateMemory;
3848 }
3849 if (!strcmp(name, "vkFreeMemory"))
3850 {
3851 return (void*)entry_vkFreeMemory;
3852 }
3853 if (!strcmp(name, "vkMapMemory"))
3854 {
3855 return (void*)entry_vkMapMemory;
3856 }
3857 if (!strcmp(name, "vkUnmapMemory"))
3858 {
3859 return (void*)entry_vkUnmapMemory;
3860 }
3861 if (!strcmp(name, "vkFlushMappedMemoryRanges"))
3862 {
3863 return (void*)entry_vkFlushMappedMemoryRanges;
3864 }
3865 if (!strcmp(name, "vkInvalidateMappedMemoryRanges"))
3866 {
3867 return (void*)entry_vkInvalidateMappedMemoryRanges;
3868 }
3869 if (!strcmp(name, "vkGetDeviceMemoryCommitment"))
3870 {
3871 return (void*)entry_vkGetDeviceMemoryCommitment;
3872 }
3873 if (!strcmp(name, "vkBindBufferMemory"))
3874 {
3875 return (void*)entry_vkBindBufferMemory;
3876 }
3877 if (!strcmp(name, "vkBindImageMemory"))
3878 {
3879 return (void*)entry_vkBindImageMemory;
3880 }
3881 if (!strcmp(name, "vkGetBufferMemoryRequirements"))
3882 {
3883 return (void*)entry_vkGetBufferMemoryRequirements;
3884 }
3885 if (!strcmp(name, "vkGetImageMemoryRequirements"))
3886 {
3887 return (void*)entry_vkGetImageMemoryRequirements;
3888 }
3889 if (!strcmp(name, "vkGetImageSparseMemoryRequirements"))
3890 {
3891 return (void*)entry_vkGetImageSparseMemoryRequirements;
3892 }
3893 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties"))
3894 {
3895 return (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties;
3896 }
3897 if (!strcmp(name, "vkQueueBindSparse"))
3898 {
3899 return (void*)entry_vkQueueBindSparse;
3900 }
3901 if (!strcmp(name, "vkCreateFence"))
3902 {
3903 return (void*)entry_vkCreateFence;
3904 }
3905 if (!strcmp(name, "vkDestroyFence"))
3906 {
3907 return (void*)entry_vkDestroyFence;
3908 }
3909 if (!strcmp(name, "vkResetFences"))
3910 {
3911 return (void*)entry_vkResetFences;
3912 }
3913 if (!strcmp(name, "vkGetFenceStatus"))
3914 {
3915 return (void*)entry_vkGetFenceStatus;
3916 }
3917 if (!strcmp(name, "vkWaitForFences"))
3918 {
3919 return (void*)entry_vkWaitForFences;
3920 }
3921 if (!strcmp(name, "vkCreateSemaphore"))
3922 {
3923 return (void*)entry_vkCreateSemaphore;
3924 }
3925 if (!strcmp(name, "vkDestroySemaphore"))
3926 {
3927 return (void*)entry_vkDestroySemaphore;
3928 }
3929 if (!strcmp(name, "vkCreateEvent"))
3930 {
3931 return (void*)entry_vkCreateEvent;
3932 }
3933 if (!strcmp(name, "vkDestroyEvent"))
3934 {
3935 return (void*)entry_vkDestroyEvent;
3936 }
3937 if (!strcmp(name, "vkGetEventStatus"))
3938 {
3939 return (void*)entry_vkGetEventStatus;
3940 }
3941 if (!strcmp(name, "vkSetEvent"))
3942 {
3943 return (void*)entry_vkSetEvent;
3944 }
3945 if (!strcmp(name, "vkResetEvent"))
3946 {
3947 return (void*)entry_vkResetEvent;
3948 }
3949 if (!strcmp(name, "vkCreateQueryPool"))
3950 {
3951 return (void*)entry_vkCreateQueryPool;
3952 }
3953 if (!strcmp(name, "vkDestroyQueryPool"))
3954 {
3955 return (void*)entry_vkDestroyQueryPool;
3956 }
3957 if (!strcmp(name, "vkGetQueryPoolResults"))
3958 {
3959 return (void*)entry_vkGetQueryPoolResults;
3960 }
3961 if (!strcmp(name, "vkCreateBuffer"))
3962 {
3963 return (void*)entry_vkCreateBuffer;
3964 }
3965 if (!strcmp(name, "vkDestroyBuffer"))
3966 {
3967 return (void*)entry_vkDestroyBuffer;
3968 }
3969 if (!strcmp(name, "vkCreateBufferView"))
3970 {
3971 return (void*)entry_vkCreateBufferView;
3972 }
3973 if (!strcmp(name, "vkDestroyBufferView"))
3974 {
3975 return (void*)entry_vkDestroyBufferView;
3976 }
3977 if (!strcmp(name, "vkCreateImage"))
3978 {
3979 return (void*)entry_vkCreateImage;
3980 }
3981 if (!strcmp(name, "vkDestroyImage"))
3982 {
3983 return (void*)entry_vkDestroyImage;
3984 }
3985 if (!strcmp(name, "vkGetImageSubresourceLayout"))
3986 {
3987 return (void*)entry_vkGetImageSubresourceLayout;
3988 }
3989 if (!strcmp(name, "vkCreateImageView"))
3990 {
3991 return (void*)entry_vkCreateImageView;
3992 }
3993 if (!strcmp(name, "vkDestroyImageView"))
3994 {
3995 return (void*)entry_vkDestroyImageView;
3996 }
3997 if (!strcmp(name, "vkCreateShaderModule"))
3998 {
3999 return (void*)entry_vkCreateShaderModule;
4000 }
4001 if (!strcmp(name, "vkDestroyShaderModule"))
4002 {
4003 return (void*)entry_vkDestroyShaderModule;
4004 }
4005 if (!strcmp(name, "vkCreatePipelineCache"))
4006 {
4007 return (void*)entry_vkCreatePipelineCache;
4008 }
4009 if (!strcmp(name, "vkDestroyPipelineCache"))
4010 {
4011 return (void*)entry_vkDestroyPipelineCache;
4012 }
4013 if (!strcmp(name, "vkGetPipelineCacheData"))
4014 {
4015 return (void*)entry_vkGetPipelineCacheData;
4016 }
4017 if (!strcmp(name, "vkMergePipelineCaches"))
4018 {
4019 return (void*)entry_vkMergePipelineCaches;
4020 }
4021 if (!strcmp(name, "vkCreateGraphicsPipelines"))
4022 {
4023 return (void*)entry_vkCreateGraphicsPipelines;
4024 }
4025 if (!strcmp(name, "vkCreateComputePipelines"))
4026 {
4027 return (void*)entry_vkCreateComputePipelines;
4028 }
4029 if (!strcmp(name, "vkDestroyPipeline"))
4030 {
4031 return (void*)entry_vkDestroyPipeline;
4032 }
4033 if (!strcmp(name, "vkCreatePipelineLayout"))
4034 {
4035 return (void*)entry_vkCreatePipelineLayout;
4036 }
4037 if (!strcmp(name, "vkDestroyPipelineLayout"))
4038 {
4039 return (void*)entry_vkDestroyPipelineLayout;
4040 }
4041 if (!strcmp(name, "vkCreateSampler"))
4042 {
4043 return (void*)entry_vkCreateSampler;
4044 }
4045 if (!strcmp(name, "vkDestroySampler"))
4046 {
4047 return (void*)entry_vkDestroySampler;
4048 }
4049 if (!strcmp(name, "vkCreateDescriptorSetLayout"))
4050 {
4051 return (void*)entry_vkCreateDescriptorSetLayout;
4052 }
4053 if (!strcmp(name, "vkDestroyDescriptorSetLayout"))
4054 {
4055 return (void*)entry_vkDestroyDescriptorSetLayout;
4056 }
4057 if (!strcmp(name, "vkCreateDescriptorPool"))
4058 {
4059 return (void*)entry_vkCreateDescriptorPool;
4060 }
4061 if (!strcmp(name, "vkDestroyDescriptorPool"))
4062 {
4063 return (void*)entry_vkDestroyDescriptorPool;
4064 }
4065 if (!strcmp(name, "vkResetDescriptorPool"))
4066 {
4067 return (void*)entry_vkResetDescriptorPool;
4068 }
4069 if (!strcmp(name, "vkAllocateDescriptorSets"))
4070 {
4071 return (void*)entry_vkAllocateDescriptorSets;
4072 }
4073 if (!strcmp(name, "vkFreeDescriptorSets"))
4074 {
4075 return (void*)entry_vkFreeDescriptorSets;
4076 }
4077 if (!strcmp(name, "vkUpdateDescriptorSets"))
4078 {
4079 return (void*)entry_vkUpdateDescriptorSets;
4080 }
4081 if (!strcmp(name, "vkCreateFramebuffer"))
4082 {
4083 return (void*)entry_vkCreateFramebuffer;
4084 }
4085 if (!strcmp(name, "vkDestroyFramebuffer"))
4086 {
4087 return (void*)entry_vkDestroyFramebuffer;
4088 }
4089 if (!strcmp(name, "vkCreateRenderPass"))
4090 {
4091 return (void*)entry_vkCreateRenderPass;
4092 }
4093 if (!strcmp(name, "vkDestroyRenderPass"))
4094 {
4095 return (void*)entry_vkDestroyRenderPass;
4096 }
4097 if (!strcmp(name, "vkGetRenderAreaGranularity"))
4098 {
4099 return (void*)entry_vkGetRenderAreaGranularity;
4100 }
4101 if (!strcmp(name, "vkCreateCommandPool"))
4102 {
4103 return (void*)entry_vkCreateCommandPool;
4104 }
4105 if (!strcmp(name, "vkDestroyCommandPool"))
4106 {
4107 return (void*)entry_vkDestroyCommandPool;
4108 }
4109 if (!strcmp(name, "vkResetCommandPool"))
4110 {
4111 return (void*)entry_vkResetCommandPool;
4112 }
4113 if (!strcmp(name, "vkAllocateCommandBuffers"))
4114 {
4115 return (void*)entry_vkAllocateCommandBuffers;
4116 }
4117 if (!strcmp(name, "vkFreeCommandBuffers"))
4118 {
4119 return (void*)entry_vkFreeCommandBuffers;
4120 }
4121 if (!strcmp(name, "vkBeginCommandBuffer"))
4122 {
4123 return (void*)entry_vkBeginCommandBuffer;
4124 }
4125 if (!strcmp(name, "vkEndCommandBuffer"))
4126 {
4127 return (void*)entry_vkEndCommandBuffer;
4128 }
4129 if (!strcmp(name, "vkResetCommandBuffer"))
4130 {
4131 return (void*)entry_vkResetCommandBuffer;
4132 }
4133 if (!strcmp(name, "vkCmdBindPipeline"))
4134 {
4135 return (void*)entry_vkCmdBindPipeline;
4136 }
4137 if (!strcmp(name, "vkCmdSetViewport"))
4138 {
4139 return (void*)entry_vkCmdSetViewport;
4140 }
4141 if (!strcmp(name, "vkCmdSetScissor"))
4142 {
4143 return (void*)entry_vkCmdSetScissor;
4144 }
4145 if (!strcmp(name, "vkCmdSetLineWidth"))
4146 {
4147 return (void*)entry_vkCmdSetLineWidth;
4148 }
4149 if (!strcmp(name, "vkCmdSetDepthBias"))
4150 {
4151 return (void*)entry_vkCmdSetDepthBias;
4152 }
4153 if (!strcmp(name, "vkCmdSetBlendConstants"))
4154 {
4155 return (void*)entry_vkCmdSetBlendConstants;
4156 }
4157 if (!strcmp(name, "vkCmdSetDepthBounds"))
4158 {
4159 return (void*)entry_vkCmdSetDepthBounds;
4160 }
4161 if (!strcmp(name, "vkCmdSetStencilCompareMask"))
4162 {
4163 return (void*)entry_vkCmdSetStencilCompareMask;
4164 }
4165 if (!strcmp(name, "vkCmdSetStencilWriteMask"))
4166 {
4167 return (void*)entry_vkCmdSetStencilWriteMask;
4168 }
4169 if (!strcmp(name, "vkCmdSetStencilReference"))
4170 {
4171 return (void*)entry_vkCmdSetStencilReference;
4172 }
4173 if (!strcmp(name, "vkCmdBindDescriptorSets"))
4174 {
4175 return (void*)entry_vkCmdBindDescriptorSets;
4176 }
4177 if (!strcmp(name, "vkCmdBindIndexBuffer"))
4178 {
4179 return (void*)entry_vkCmdBindIndexBuffer;
4180 }
4181 if (!strcmp(name, "vkCmdBindVertexBuffers"))
4182 {
4183 return (void*)entry_vkCmdBindVertexBuffers;
4184 }
4185 if (!strcmp(name, "vkCmdDraw"))
4186 {
4187 return (void*)entry_vkCmdDraw;
4188 }
4189 if (!strcmp(name, "vkCmdDrawIndexed"))
4190 {
4191 return (void*)entry_vkCmdDrawIndexed;
4192 }
4193 if (!strcmp(name, "vkCmdDrawIndirect"))
4194 {
4195 return (void*)entry_vkCmdDrawIndirect;
4196 }
4197 if (!strcmp(name, "vkCmdDrawIndexedIndirect"))
4198 {
4199 return (void*)entry_vkCmdDrawIndexedIndirect;
4200 }
4201 if (!strcmp(name, "vkCmdDispatch"))
4202 {
4203 return (void*)entry_vkCmdDispatch;
4204 }
4205 if (!strcmp(name, "vkCmdDispatchIndirect"))
4206 {
4207 return (void*)entry_vkCmdDispatchIndirect;
4208 }
4209 if (!strcmp(name, "vkCmdCopyBuffer"))
4210 {
4211 return (void*)entry_vkCmdCopyBuffer;
4212 }
4213 if (!strcmp(name, "vkCmdCopyImage"))
4214 {
4215 return (void*)entry_vkCmdCopyImage;
4216 }
4217 if (!strcmp(name, "vkCmdBlitImage"))
4218 {
4219 return (void*)entry_vkCmdBlitImage;
4220 }
4221 if (!strcmp(name, "vkCmdCopyBufferToImage"))
4222 {
4223 return (void*)entry_vkCmdCopyBufferToImage;
4224 }
4225 if (!strcmp(name, "vkCmdCopyImageToBuffer"))
4226 {
4227 return (void*)entry_vkCmdCopyImageToBuffer;
4228 }
4229 if (!strcmp(name, "vkCmdUpdateBuffer"))
4230 {
4231 return (void*)entry_vkCmdUpdateBuffer;
4232 }
4233 if (!strcmp(name, "vkCmdFillBuffer"))
4234 {
4235 return (void*)entry_vkCmdFillBuffer;
4236 }
4237 if (!strcmp(name, "vkCmdClearColorImage"))
4238 {
4239 return (void*)entry_vkCmdClearColorImage;
4240 }
4241 if (!strcmp(name, "vkCmdClearDepthStencilImage"))
4242 {
4243 return (void*)entry_vkCmdClearDepthStencilImage;
4244 }
4245 if (!strcmp(name, "vkCmdClearAttachments"))
4246 {
4247 return (void*)entry_vkCmdClearAttachments;
4248 }
4249 if (!strcmp(name, "vkCmdResolveImage"))
4250 {
4251 return (void*)entry_vkCmdResolveImage;
4252 }
4253 if (!strcmp(name, "vkCmdSetEvent"))
4254 {
4255 return (void*)entry_vkCmdSetEvent;
4256 }
4257 if (!strcmp(name, "vkCmdResetEvent"))
4258 {
4259 return (void*)entry_vkCmdResetEvent;
4260 }
4261 if (!strcmp(name, "vkCmdWaitEvents"))
4262 {
4263 return (void*)entry_vkCmdWaitEvents;
4264 }
4265 if (!strcmp(name, "vkCmdPipelineBarrier"))
4266 {
4267 return (void*)entry_vkCmdPipelineBarrier;
4268 }
4269 if (!strcmp(name, "vkCmdBeginQuery"))
4270 {
4271 return (void*)entry_vkCmdBeginQuery;
4272 }
4273 if (!strcmp(name, "vkCmdEndQuery"))
4274 {
4275 return (void*)entry_vkCmdEndQuery;
4276 }
4277 if (!strcmp(name, "vkCmdResetQueryPool"))
4278 {
4279 return (void*)entry_vkCmdResetQueryPool;
4280 }
4281 if (!strcmp(name, "vkCmdWriteTimestamp"))
4282 {
4283 return (void*)entry_vkCmdWriteTimestamp;
4284 }
4285 if (!strcmp(name, "vkCmdCopyQueryPoolResults"))
4286 {
4287 return (void*)entry_vkCmdCopyQueryPoolResults;
4288 }
4289 if (!strcmp(name, "vkCmdPushConstants"))
4290 {
4291 return (void*)entry_vkCmdPushConstants;
4292 }
4293 if (!strcmp(name, "vkCmdBeginRenderPass"))
4294 {
4295 return (void*)entry_vkCmdBeginRenderPass;
4296 }
4297 if (!strcmp(name, "vkCmdNextSubpass"))
4298 {
4299 return (void*)entry_vkCmdNextSubpass;
4300 }
4301 if (!strcmp(name, "vkCmdEndRenderPass"))
4302 {
4303 return (void*)entry_vkCmdEndRenderPass;
4304 }
4305 if (!strcmp(name, "vkCmdExecuteCommands"))
4306 {
4307 return (void*)entry_vkCmdExecuteCommands;
4308 }
4309#endif
4310#ifdef VK_VERSION_1_1
4311 if (!strcmp(name, "vkEnumerateInstanceVersion"))
4312 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004313 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004314 }
4315 if (!strcmp(name, "vkBindBufferMemory2"))
4316 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004317 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004318 }
4319 if (!strcmp(name, "vkBindImageMemory2"))
4320 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004321 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004322 }
4323 if (!strcmp(name, "vkGetDeviceGroupPeerMemoryFeatures"))
4324 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004325 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004326 }
4327 if (!strcmp(name, "vkCmdSetDeviceMask"))
4328 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004329 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004330 }
4331 if (!strcmp(name, "vkCmdDispatchBase"))
4332 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004333 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004334 }
4335 if (!strcmp(name, "vkEnumeratePhysicalDeviceGroups"))
4336 {
Lingfeng Yang113689e2018-11-11 16:48:50 -08004337 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004338 }
4339 if (!strcmp(name, "vkGetImageMemoryRequirements2"))
4340 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004341 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004342 }
4343 if (!strcmp(name, "vkGetBufferMemoryRequirements2"))
4344 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004345 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004346 }
4347 if (!strcmp(name, "vkGetImageSparseMemoryRequirements2"))
4348 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004349 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004350 }
4351 if (!strcmp(name, "vkGetPhysicalDeviceFeatures2"))
4352 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004353 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004354 }
4355 if (!strcmp(name, "vkGetPhysicalDeviceProperties2"))
4356 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004357 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004358 }
4359 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties2"))
4360 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004361 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004362 }
4363 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties2"))
4364 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004365 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004366 }
4367 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties2"))
4368 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004369 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004370 }
4371 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties2"))
4372 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004373 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004374 }
4375 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties2"))
4376 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004377 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004378 }
4379 if (!strcmp(name, "vkTrimCommandPool"))
4380 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004381 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004382 }
4383 if (!strcmp(name, "vkGetDeviceQueue2"))
4384 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004385 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004386 }
4387 if (!strcmp(name, "vkCreateSamplerYcbcrConversion"))
4388 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004389 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004390 }
4391 if (!strcmp(name, "vkDestroySamplerYcbcrConversion"))
4392 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004393 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004394 }
4395 if (!strcmp(name, "vkCreateDescriptorUpdateTemplate"))
4396 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004397 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004398 }
4399 if (!strcmp(name, "vkDestroyDescriptorUpdateTemplate"))
4400 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004401 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004402 }
4403 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplate"))
4404 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004405 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004406 }
4407 if (!strcmp(name, "vkGetPhysicalDeviceExternalBufferProperties"))
4408 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004409 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004410 }
4411 if (!strcmp(name, "vkGetPhysicalDeviceExternalFenceProperties"))
4412 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004413 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004414 }
4415 if (!strcmp(name, "vkGetPhysicalDeviceExternalSemaphoreProperties"))
4416 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004417 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004418 }
4419 if (!strcmp(name, "vkGetDescriptorSetLayoutSupport"))
4420 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004421 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004422 }
4423#endif
4424#ifdef VK_KHR_surface
4425 if (!strcmp(name, "vkDestroySurfaceKHR"))
4426 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004427 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004428 }
4429 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceSupportKHR"))
4430 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004431 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004432 }
4433 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR"))
4434 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004435 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004436 }
4437 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceFormatsKHR"))
4438 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004439 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004440 }
4441 if (!strcmp(name, "vkGetPhysicalDeviceSurfacePresentModesKHR"))
4442 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004443 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004444 }
4445#endif
4446#ifdef VK_KHR_swapchain
4447 if (!strcmp(name, "vkCreateSwapchainKHR"))
4448 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004449 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004450 }
4451 if (!strcmp(name, "vkDestroySwapchainKHR"))
4452 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004453 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004454 }
4455 if (!strcmp(name, "vkGetSwapchainImagesKHR"))
4456 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004457 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004458 }
4459 if (!strcmp(name, "vkAcquireNextImageKHR"))
4460 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004461 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004462 }
4463 if (!strcmp(name, "vkQueuePresentKHR"))
4464 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004465 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004466 }
4467 if (!strcmp(name, "vkGetDeviceGroupPresentCapabilitiesKHR"))
4468 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004469 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004470 }
4471 if (!strcmp(name, "vkGetDeviceGroupSurfacePresentModesKHR"))
4472 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004473 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004474 }
4475 if (!strcmp(name, "vkGetPhysicalDevicePresentRectanglesKHR"))
4476 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004477 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004478 }
4479 if (!strcmp(name, "vkAcquireNextImage2KHR"))
4480 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004481 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004482 }
4483#endif
4484#ifdef VK_KHR_display
4485 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPropertiesKHR"))
4486 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004487 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004488 }
4489 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR"))
4490 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004491 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004492 }
4493 if (!strcmp(name, "vkGetDisplayPlaneSupportedDisplaysKHR"))
4494 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004495 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004496 }
4497 if (!strcmp(name, "vkGetDisplayModePropertiesKHR"))
4498 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004499 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004500 }
4501 if (!strcmp(name, "vkCreateDisplayModeKHR"))
4502 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004503 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004504 }
4505 if (!strcmp(name, "vkGetDisplayPlaneCapabilitiesKHR"))
4506 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004507 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004508 }
4509 if (!strcmp(name, "vkCreateDisplayPlaneSurfaceKHR"))
4510 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004511 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004512 }
4513#endif
4514#ifdef VK_KHR_display_swapchain
4515 if (!strcmp(name, "vkCreateSharedSwapchainsKHR"))
4516 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004517 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004518 }
4519#endif
4520#ifdef VK_KHR_xlib_surface
4521 if (!strcmp(name, "vkCreateXlibSurfaceKHR"))
4522 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004523 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004524 }
4525 if (!strcmp(name, "vkGetPhysicalDeviceXlibPresentationSupportKHR"))
4526 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004527 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004528 }
4529#endif
4530#ifdef VK_KHR_xcb_surface
4531 if (!strcmp(name, "vkCreateXcbSurfaceKHR"))
4532 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004533 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004534 }
4535 if (!strcmp(name, "vkGetPhysicalDeviceXcbPresentationSupportKHR"))
4536 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004537 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004538 }
4539#endif
4540#ifdef VK_KHR_wayland_surface
4541 if (!strcmp(name, "vkCreateWaylandSurfaceKHR"))
4542 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004543 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004544 }
4545 if (!strcmp(name, "vkGetPhysicalDeviceWaylandPresentationSupportKHR"))
4546 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004547 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004548 }
4549#endif
4550#ifdef VK_KHR_mir_surface
4551 if (!strcmp(name, "vkCreateMirSurfaceKHR"))
4552 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004553 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004554 }
4555 if (!strcmp(name, "vkGetPhysicalDeviceMirPresentationSupportKHR"))
4556 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004557 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004558 }
4559#endif
4560#ifdef VK_KHR_android_surface
4561 if (!strcmp(name, "vkCreateAndroidSurfaceKHR"))
4562 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004563 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004564 }
4565#endif
4566#ifdef VK_KHR_win32_surface
4567 if (!strcmp(name, "vkCreateWin32SurfaceKHR"))
4568 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004569 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004570 }
4571 if (!strcmp(name, "vkGetPhysicalDeviceWin32PresentationSupportKHR"))
4572 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004573 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004574 }
4575#endif
4576#ifdef VK_KHR_get_physical_device_properties2
4577 if (!strcmp(name, "vkGetPhysicalDeviceFeatures2KHR"))
4578 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004579 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004580 }
4581 if (!strcmp(name, "vkGetPhysicalDeviceProperties2KHR"))
4582 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004583 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004584 }
4585 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties2KHR"))
4586 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004587 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004588 }
4589 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties2KHR"))
4590 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004591 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004592 }
4593 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties2KHR"))
4594 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004595 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004596 }
4597 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties2KHR"))
4598 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004599 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004600 }
4601 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR"))
4602 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004603 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004604 }
4605#endif
4606#ifdef VK_KHR_device_group
4607 if (!strcmp(name, "vkGetDeviceGroupPeerMemoryFeaturesKHR"))
4608 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004609 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004610 }
4611 if (!strcmp(name, "vkCmdSetDeviceMaskKHR"))
4612 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004613 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004614 }
4615 if (!strcmp(name, "vkCmdDispatchBaseKHR"))
4616 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004617 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004618 }
4619#endif
4620#ifdef VK_KHR_maintenance1
4621 if (!strcmp(name, "vkTrimCommandPoolKHR"))
4622 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004623 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004624 }
4625#endif
4626#ifdef VK_KHR_device_group_creation
4627 if (!strcmp(name, "vkEnumeratePhysicalDeviceGroupsKHR"))
4628 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004629 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004630 }
4631#endif
4632#ifdef VK_KHR_external_memory_capabilities
4633 if (!strcmp(name, "vkGetPhysicalDeviceExternalBufferPropertiesKHR"))
4634 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004635 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004636 }
4637#endif
4638#ifdef VK_KHR_external_memory_win32
4639 if (!strcmp(name, "vkGetMemoryWin32HandleKHR"))
4640 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004641 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004642 }
4643 if (!strcmp(name, "vkGetMemoryWin32HandlePropertiesKHR"))
4644 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004645 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004646 }
4647#endif
4648#ifdef VK_KHR_external_memory_fd
4649 if (!strcmp(name, "vkGetMemoryFdKHR"))
4650 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004651 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004652 }
4653 if (!strcmp(name, "vkGetMemoryFdPropertiesKHR"))
4654 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004655 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004656 }
4657#endif
4658#ifdef VK_KHR_external_semaphore_capabilities
4659 if (!strcmp(name, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR"))
4660 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004661 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004662 }
4663#endif
4664#ifdef VK_KHR_external_semaphore_win32
4665 if (!strcmp(name, "vkImportSemaphoreWin32HandleKHR"))
4666 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004667 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004668 }
4669 if (!strcmp(name, "vkGetSemaphoreWin32HandleKHR"))
4670 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004671 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004672 }
4673#endif
4674#ifdef VK_KHR_external_semaphore_fd
4675 if (!strcmp(name, "vkImportSemaphoreFdKHR"))
4676 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004677 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004678 }
4679 if (!strcmp(name, "vkGetSemaphoreFdKHR"))
4680 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004681 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004682 }
4683#endif
4684#ifdef VK_KHR_push_descriptor
4685 if (!strcmp(name, "vkCmdPushDescriptorSetKHR"))
4686 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004687 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004688 }
4689 if (!strcmp(name, "vkCmdPushDescriptorSetWithTemplateKHR"))
4690 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004691 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004692 }
4693#endif
4694#ifdef VK_KHR_descriptor_update_template
4695 if (!strcmp(name, "vkCreateDescriptorUpdateTemplateKHR"))
4696 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004697 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004698 }
4699 if (!strcmp(name, "vkDestroyDescriptorUpdateTemplateKHR"))
4700 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004701 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004702 }
4703 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplateKHR"))
4704 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004705 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004706 }
4707#endif
4708#ifdef VK_KHR_create_renderpass2
4709 if (!strcmp(name, "vkCreateRenderPass2KHR"))
4710 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004711 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004712 }
4713 if (!strcmp(name, "vkCmdBeginRenderPass2KHR"))
4714 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004715 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004716 }
4717 if (!strcmp(name, "vkCmdNextSubpass2KHR"))
4718 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004719 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004720 }
4721 if (!strcmp(name, "vkCmdEndRenderPass2KHR"))
4722 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004723 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004724 }
4725#endif
4726#ifdef VK_KHR_shared_presentable_image
4727 if (!strcmp(name, "vkGetSwapchainStatusKHR"))
4728 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004729 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004730 }
4731#endif
4732#ifdef VK_KHR_external_fence_capabilities
4733 if (!strcmp(name, "vkGetPhysicalDeviceExternalFencePropertiesKHR"))
4734 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004735 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004736 }
4737#endif
4738#ifdef VK_KHR_external_fence_win32
4739 if (!strcmp(name, "vkImportFenceWin32HandleKHR"))
4740 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004741 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004742 }
4743 if (!strcmp(name, "vkGetFenceWin32HandleKHR"))
4744 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004745 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004746 }
4747#endif
4748#ifdef VK_KHR_external_fence_fd
4749 if (!strcmp(name, "vkImportFenceFdKHR"))
4750 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004751 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004752 }
4753 if (!strcmp(name, "vkGetFenceFdKHR"))
4754 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004755 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004756 }
4757#endif
4758#ifdef VK_KHR_get_surface_capabilities2
4759 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2KHR"))
4760 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004761 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004762 }
4763 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceFormats2KHR"))
4764 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004765 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004766 }
4767#endif
4768#ifdef VK_KHR_get_display_properties2
4769 if (!strcmp(name, "vkGetPhysicalDeviceDisplayProperties2KHR"))
4770 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004771 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004772 }
4773 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR"))
4774 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004775 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004776 }
4777 if (!strcmp(name, "vkGetDisplayModeProperties2KHR"))
4778 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004779 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004780 }
4781 if (!strcmp(name, "vkGetDisplayPlaneCapabilities2KHR"))
4782 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004783 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004784 }
4785#endif
4786#ifdef VK_KHR_get_memory_requirements2
4787 if (!strcmp(name, "vkGetImageMemoryRequirements2KHR"))
4788 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004789 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004790 }
4791 if (!strcmp(name, "vkGetBufferMemoryRequirements2KHR"))
4792 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004793 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004794 }
4795 if (!strcmp(name, "vkGetImageSparseMemoryRequirements2KHR"))
4796 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004797 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004798 }
4799#endif
4800#ifdef VK_KHR_sampler_ycbcr_conversion
4801 if (!strcmp(name, "vkCreateSamplerYcbcrConversionKHR"))
4802 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004803 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004804 }
4805 if (!strcmp(name, "vkDestroySamplerYcbcrConversionKHR"))
4806 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004807 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004808 }
4809#endif
4810#ifdef VK_KHR_bind_memory2
4811 if (!strcmp(name, "vkBindBufferMemory2KHR"))
4812 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004813 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004814 }
4815 if (!strcmp(name, "vkBindImageMemory2KHR"))
4816 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004817 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004818 }
4819#endif
4820#ifdef VK_KHR_maintenance3
4821 if (!strcmp(name, "vkGetDescriptorSetLayoutSupportKHR"))
4822 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004823 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004824 }
4825#endif
4826#ifdef VK_KHR_draw_indirect_count
4827 if (!strcmp(name, "vkCmdDrawIndirectCountKHR"))
4828 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004829 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004830 }
4831 if (!strcmp(name, "vkCmdDrawIndexedIndirectCountKHR"))
4832 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004833 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004834 }
4835#endif
Lingfeng Yang808a6312018-11-13 21:06:15 -08004836#ifdef VK_ANDROID_native_buffer
4837 if (!strcmp(name, "vkGetSwapchainGrallocUsageANDROID"))
4838 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004839 return nullptr;
Lingfeng Yang808a6312018-11-13 21:06:15 -08004840 }
4841 if (!strcmp(name, "vkAcquireImageANDROID"))
4842 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004843 return nullptr;
Lingfeng Yang808a6312018-11-13 21:06:15 -08004844 }
4845 if (!strcmp(name, "vkQueueSignalReleaseImageANDROID"))
4846 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004847 return nullptr;
Lingfeng Yang808a6312018-11-13 21:06:15 -08004848 }
4849#endif
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004850#ifdef VK_EXT_debug_report
4851 if (!strcmp(name, "vkCreateDebugReportCallbackEXT"))
4852 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004853 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004854 }
4855 if (!strcmp(name, "vkDestroyDebugReportCallbackEXT"))
4856 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004857 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004858 }
4859 if (!strcmp(name, "vkDebugReportMessageEXT"))
4860 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004861 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004862 }
4863#endif
4864#ifdef VK_EXT_debug_marker
4865 if (!strcmp(name, "vkDebugMarkerSetObjectTagEXT"))
4866 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004867 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004868 }
4869 if (!strcmp(name, "vkDebugMarkerSetObjectNameEXT"))
4870 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004871 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004872 }
4873 if (!strcmp(name, "vkCmdDebugMarkerBeginEXT"))
4874 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004875 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004876 }
4877 if (!strcmp(name, "vkCmdDebugMarkerEndEXT"))
4878 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004879 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004880 }
4881 if (!strcmp(name, "vkCmdDebugMarkerInsertEXT"))
4882 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004883 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004884 }
4885#endif
4886#ifdef VK_AMD_draw_indirect_count
4887 if (!strcmp(name, "vkCmdDrawIndirectCountAMD"))
4888 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004889 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004890 }
4891 if (!strcmp(name, "vkCmdDrawIndexedIndirectCountAMD"))
4892 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004893 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004894 }
4895#endif
4896#ifdef VK_AMD_shader_info
4897 if (!strcmp(name, "vkGetShaderInfoAMD"))
4898 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004899 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004900 }
4901#endif
4902#ifdef VK_NV_external_memory_capabilities
4903 if (!strcmp(name, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV"))
4904 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004905 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004906 }
4907#endif
4908#ifdef VK_NV_external_memory_win32
4909 if (!strcmp(name, "vkGetMemoryWin32HandleNV"))
4910 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004911 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004912 }
4913#endif
4914#ifdef VK_NN_vi_surface
4915 if (!strcmp(name, "vkCreateViSurfaceNN"))
4916 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004917 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004918 }
4919#endif
4920#ifdef VK_EXT_conditional_rendering
4921 if (!strcmp(name, "vkCmdBeginConditionalRenderingEXT"))
4922 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004923 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004924 }
4925 if (!strcmp(name, "vkCmdEndConditionalRenderingEXT"))
4926 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004927 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004928 }
4929#endif
4930#ifdef VK_NVX_device_generated_commands
4931 if (!strcmp(name, "vkCmdProcessCommandsNVX"))
4932 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004933 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004934 }
4935 if (!strcmp(name, "vkCmdReserveSpaceForCommandsNVX"))
4936 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004937 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004938 }
4939 if (!strcmp(name, "vkCreateIndirectCommandsLayoutNVX"))
4940 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004941 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004942 }
4943 if (!strcmp(name, "vkDestroyIndirectCommandsLayoutNVX"))
4944 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004945 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004946 }
4947 if (!strcmp(name, "vkCreateObjectTableNVX"))
4948 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004949 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004950 }
4951 if (!strcmp(name, "vkDestroyObjectTableNVX"))
4952 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004953 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004954 }
4955 if (!strcmp(name, "vkRegisterObjectsNVX"))
4956 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004957 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004958 }
4959 if (!strcmp(name, "vkUnregisterObjectsNVX"))
4960 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004961 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004962 }
4963 if (!strcmp(name, "vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX"))
4964 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004965 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004966 }
4967#endif
4968#ifdef VK_NV_clip_space_w_scaling
4969 if (!strcmp(name, "vkCmdSetViewportWScalingNV"))
4970 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004971 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004972 }
4973#endif
4974#ifdef VK_EXT_direct_mode_display
4975 if (!strcmp(name, "vkReleaseDisplayEXT"))
4976 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004977 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004978 }
4979#endif
4980#ifdef VK_EXT_acquire_xlib_display
4981 if (!strcmp(name, "vkAcquireXlibDisplayEXT"))
4982 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004983 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004984 }
4985 if (!strcmp(name, "vkGetRandROutputDisplayEXT"))
4986 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004987 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004988 }
4989#endif
4990#ifdef VK_EXT_display_surface_counter
4991 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2EXT"))
4992 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004993 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004994 }
4995#endif
4996#ifdef VK_EXT_display_control
4997 if (!strcmp(name, "vkDisplayPowerControlEXT"))
4998 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004999 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005000 }
5001 if (!strcmp(name, "vkRegisterDeviceEventEXT"))
5002 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005003 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005004 }
5005 if (!strcmp(name, "vkRegisterDisplayEventEXT"))
5006 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005007 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005008 }
5009 if (!strcmp(name, "vkGetSwapchainCounterEXT"))
5010 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005011 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005012 }
5013#endif
5014#ifdef VK_GOOGLE_display_timing
5015 if (!strcmp(name, "vkGetRefreshCycleDurationGOOGLE"))
5016 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005017 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005018 }
5019 if (!strcmp(name, "vkGetPastPresentationTimingGOOGLE"))
5020 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005021 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005022 }
5023#endif
5024#ifdef VK_EXT_discard_rectangles
5025 if (!strcmp(name, "vkCmdSetDiscardRectangleEXT"))
5026 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005027 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005028 }
5029#endif
5030#ifdef VK_EXT_hdr_metadata
5031 if (!strcmp(name, "vkSetHdrMetadataEXT"))
5032 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005033 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005034 }
5035#endif
5036#ifdef VK_MVK_ios_surface
5037 if (!strcmp(name, "vkCreateIOSSurfaceMVK"))
5038 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005039 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005040 }
5041#endif
5042#ifdef VK_MVK_macos_surface
5043 if (!strcmp(name, "vkCreateMacOSSurfaceMVK"))
5044 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005045 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005046 }
5047#endif
5048#ifdef VK_EXT_debug_utils
5049 if (!strcmp(name, "vkSetDebugUtilsObjectNameEXT"))
5050 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005051 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005052 }
5053 if (!strcmp(name, "vkSetDebugUtilsObjectTagEXT"))
5054 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005055 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005056 }
5057 if (!strcmp(name, "vkQueueBeginDebugUtilsLabelEXT"))
5058 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005059 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005060 }
5061 if (!strcmp(name, "vkQueueEndDebugUtilsLabelEXT"))
5062 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005063 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005064 }
5065 if (!strcmp(name, "vkQueueInsertDebugUtilsLabelEXT"))
5066 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005067 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005068 }
5069 if (!strcmp(name, "vkCmdBeginDebugUtilsLabelEXT"))
5070 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005071 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005072 }
5073 if (!strcmp(name, "vkCmdEndDebugUtilsLabelEXT"))
5074 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005075 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005076 }
5077 if (!strcmp(name, "vkCmdInsertDebugUtilsLabelEXT"))
5078 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005079 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005080 }
5081 if (!strcmp(name, "vkCreateDebugUtilsMessengerEXT"))
5082 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005083 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005084 }
5085 if (!strcmp(name, "vkDestroyDebugUtilsMessengerEXT"))
5086 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005087 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005088 }
5089 if (!strcmp(name, "vkSubmitDebugUtilsMessageEXT"))
5090 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005091 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005092 }
5093#endif
5094#ifdef VK_ANDROID_external_memory_android_hardware_buffer
5095 if (!strcmp(name, "vkGetAndroidHardwareBufferPropertiesANDROID"))
5096 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005097 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005098 }
5099 if (!strcmp(name, "vkGetMemoryAndroidHardwareBufferANDROID"))
5100 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005101 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005102 }
5103#endif
5104#ifdef VK_EXT_sample_locations
5105 if (!strcmp(name, "vkCmdSetSampleLocationsEXT"))
5106 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005107 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005108 }
5109 if (!strcmp(name, "vkGetPhysicalDeviceMultisamplePropertiesEXT"))
5110 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005111 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005112 }
5113#endif
5114#ifdef VK_EXT_validation_cache
5115 if (!strcmp(name, "vkCreateValidationCacheEXT"))
5116 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005117 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005118 }
5119 if (!strcmp(name, "vkDestroyValidationCacheEXT"))
5120 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005121 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005122 }
5123 if (!strcmp(name, "vkMergeValidationCachesEXT"))
5124 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005125 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005126 }
5127 if (!strcmp(name, "vkGetValidationCacheDataEXT"))
5128 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005129 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005130 }
5131#endif
5132#ifdef VK_EXT_external_memory_host
5133 if (!strcmp(name, "vkGetMemoryHostPointerPropertiesEXT"))
5134 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005135 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005136 }
5137#endif
5138#ifdef VK_AMD_buffer_marker
5139 if (!strcmp(name, "vkCmdWriteBufferMarkerAMD"))
5140 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005141 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005142 }
5143#endif
5144#ifdef VK_NV_device_diagnostic_checkpoints
5145 if (!strcmp(name, "vkCmdSetCheckpointNV"))
5146 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005147 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005148 }
5149 if (!strcmp(name, "vkGetQueueCheckpointDataNV"))
5150 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005151 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005152 }
5153#endif
Lingfeng Yang5c63afd2018-12-22 01:21:14 -08005154#ifdef VK_GOOGLE_address_space
5155 if (!strcmp(name, "vkMapMemoryIntoAddressSpaceGOOGLE"))
5156 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005157 return nullptr;
5158 }
5159#endif
Lingfeng Yangae7e1b32019-02-19 14:07:39 -08005160#ifdef VK_GOOGLE_color_buffer
5161 if (!strcmp(name, "vkRegisterImageColorBufferGOOGLE"))
5162 {
5163 return nullptr;
5164 }
5165 if (!strcmp(name, "vkRegisterBufferColorBufferGOOGLE"))
5166 {
5167 return nullptr;
5168 }
5169#endif
Lingfeng Yang05d5ea32019-03-23 00:12:39 -07005170#ifdef VK_GOOGLE_sized_descriptor_update_template
5171 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplateSizedGOOGLE"))
5172 {
5173 return nullptr;
5174 }
5175#endif
Lingfeng Yangc53e7472019-03-27 08:50:55 -07005176#ifdef VK_GOOGLE_async_command_buffers
5177 if (!strcmp(name, "vkBeginCommandBufferAsyncGOOGLE"))
5178 {
5179 return nullptr;
5180 }
5181 if (!strcmp(name, "vkEndCommandBufferAsyncGOOGLE"))
5182 {
5183 return nullptr;
5184 }
5185 if (!strcmp(name, "vkResetCommandBufferAsyncGOOGLE"))
5186 {
5187 return nullptr;
5188 }
5189#endif
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005190 return nullptr;
5191}
5192void* goldfish_vulkan_get_instance_proc_address(VkInstance instance, const char* name){
5193 auto resources = ResourceTracker::get();
5194 bool has1_1OrHigher = resources->getApiVersionFromInstance(instance) >= VK_API_VERSION_1_1;
5195#ifdef VK_VERSION_1_0
5196 if (!strcmp(name, "vkCreateInstance"))
5197 {
5198 return (void*)entry_vkCreateInstance;
5199 }
5200 if (!strcmp(name, "vkDestroyInstance"))
5201 {
5202 return (void*)entry_vkDestroyInstance;
5203 }
5204 if (!strcmp(name, "vkEnumeratePhysicalDevices"))
5205 {
5206 return (void*)entry_vkEnumeratePhysicalDevices;
5207 }
5208 if (!strcmp(name, "vkGetPhysicalDeviceFeatures"))
5209 {
5210 return (void*)entry_vkGetPhysicalDeviceFeatures;
5211 }
5212 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties"))
5213 {
5214 return (void*)entry_vkGetPhysicalDeviceFormatProperties;
5215 }
5216 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties"))
5217 {
5218 return (void*)entry_vkGetPhysicalDeviceImageFormatProperties;
5219 }
5220 if (!strcmp(name, "vkGetPhysicalDeviceProperties"))
5221 {
5222 return (void*)entry_vkGetPhysicalDeviceProperties;
5223 }
5224 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties"))
5225 {
5226 return (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties;
5227 }
5228 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties"))
5229 {
5230 return (void*)entry_vkGetPhysicalDeviceMemoryProperties;
5231 }
5232 if (!strcmp(name, "vkGetInstanceProcAddr"))
5233 {
5234 return (void*)entry_vkGetInstanceProcAddr;
5235 }
5236 if (!strcmp(name, "vkGetDeviceProcAddr"))
5237 {
5238 return (void*)entry_vkGetDeviceProcAddr;
5239 }
5240 if (!strcmp(name, "vkCreateDevice"))
5241 {
5242 return (void*)entry_vkCreateDevice;
5243 }
5244 if (!strcmp(name, "vkDestroyDevice"))
5245 {
5246 return (void*)entry_vkDestroyDevice;
5247 }
5248 if (!strcmp(name, "vkEnumerateInstanceExtensionProperties"))
5249 {
5250 return (void*)entry_vkEnumerateInstanceExtensionProperties;
5251 }
5252 if (!strcmp(name, "vkEnumerateDeviceExtensionProperties"))
5253 {
5254 return (void*)entry_vkEnumerateDeviceExtensionProperties;
5255 }
5256 if (!strcmp(name, "vkEnumerateInstanceLayerProperties"))
5257 {
5258 return (void*)entry_vkEnumerateInstanceLayerProperties;
5259 }
5260 if (!strcmp(name, "vkEnumerateDeviceLayerProperties"))
5261 {
5262 return (void*)entry_vkEnumerateDeviceLayerProperties;
5263 }
5264 if (!strcmp(name, "vkGetDeviceQueue"))
5265 {
5266 return (void*)entry_vkGetDeviceQueue;
5267 }
5268 if (!strcmp(name, "vkQueueSubmit"))
5269 {
5270 return (void*)entry_vkQueueSubmit;
5271 }
5272 if (!strcmp(name, "vkQueueWaitIdle"))
5273 {
5274 return (void*)entry_vkQueueWaitIdle;
5275 }
5276 if (!strcmp(name, "vkDeviceWaitIdle"))
5277 {
5278 return (void*)entry_vkDeviceWaitIdle;
5279 }
5280 if (!strcmp(name, "vkAllocateMemory"))
5281 {
5282 return (void*)entry_vkAllocateMemory;
5283 }
5284 if (!strcmp(name, "vkFreeMemory"))
5285 {
5286 return (void*)entry_vkFreeMemory;
5287 }
5288 if (!strcmp(name, "vkMapMemory"))
5289 {
5290 return (void*)entry_vkMapMemory;
5291 }
5292 if (!strcmp(name, "vkUnmapMemory"))
5293 {
5294 return (void*)entry_vkUnmapMemory;
5295 }
5296 if (!strcmp(name, "vkFlushMappedMemoryRanges"))
5297 {
5298 return (void*)entry_vkFlushMappedMemoryRanges;
5299 }
5300 if (!strcmp(name, "vkInvalidateMappedMemoryRanges"))
5301 {
5302 return (void*)entry_vkInvalidateMappedMemoryRanges;
5303 }
5304 if (!strcmp(name, "vkGetDeviceMemoryCommitment"))
5305 {
5306 return (void*)entry_vkGetDeviceMemoryCommitment;
5307 }
5308 if (!strcmp(name, "vkBindBufferMemory"))
5309 {
5310 return (void*)entry_vkBindBufferMemory;
5311 }
5312 if (!strcmp(name, "vkBindImageMemory"))
5313 {
5314 return (void*)entry_vkBindImageMemory;
5315 }
5316 if (!strcmp(name, "vkGetBufferMemoryRequirements"))
5317 {
5318 return (void*)entry_vkGetBufferMemoryRequirements;
5319 }
5320 if (!strcmp(name, "vkGetImageMemoryRequirements"))
5321 {
5322 return (void*)entry_vkGetImageMemoryRequirements;
5323 }
5324 if (!strcmp(name, "vkGetImageSparseMemoryRequirements"))
5325 {
5326 return (void*)entry_vkGetImageSparseMemoryRequirements;
5327 }
5328 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties"))
5329 {
5330 return (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties;
5331 }
5332 if (!strcmp(name, "vkQueueBindSparse"))
5333 {
5334 return (void*)entry_vkQueueBindSparse;
5335 }
5336 if (!strcmp(name, "vkCreateFence"))
5337 {
5338 return (void*)entry_vkCreateFence;
5339 }
5340 if (!strcmp(name, "vkDestroyFence"))
5341 {
5342 return (void*)entry_vkDestroyFence;
5343 }
5344 if (!strcmp(name, "vkResetFences"))
5345 {
5346 return (void*)entry_vkResetFences;
5347 }
5348 if (!strcmp(name, "vkGetFenceStatus"))
5349 {
5350 return (void*)entry_vkGetFenceStatus;
5351 }
5352 if (!strcmp(name, "vkWaitForFences"))
5353 {
5354 return (void*)entry_vkWaitForFences;
5355 }
5356 if (!strcmp(name, "vkCreateSemaphore"))
5357 {
5358 return (void*)entry_vkCreateSemaphore;
5359 }
5360 if (!strcmp(name, "vkDestroySemaphore"))
5361 {
5362 return (void*)entry_vkDestroySemaphore;
5363 }
5364 if (!strcmp(name, "vkCreateEvent"))
5365 {
5366 return (void*)entry_vkCreateEvent;
5367 }
5368 if (!strcmp(name, "vkDestroyEvent"))
5369 {
5370 return (void*)entry_vkDestroyEvent;
5371 }
5372 if (!strcmp(name, "vkGetEventStatus"))
5373 {
5374 return (void*)entry_vkGetEventStatus;
5375 }
5376 if (!strcmp(name, "vkSetEvent"))
5377 {
5378 return (void*)entry_vkSetEvent;
5379 }
5380 if (!strcmp(name, "vkResetEvent"))
5381 {
5382 return (void*)entry_vkResetEvent;
5383 }
5384 if (!strcmp(name, "vkCreateQueryPool"))
5385 {
5386 return (void*)entry_vkCreateQueryPool;
5387 }
5388 if (!strcmp(name, "vkDestroyQueryPool"))
5389 {
5390 return (void*)entry_vkDestroyQueryPool;
5391 }
5392 if (!strcmp(name, "vkGetQueryPoolResults"))
5393 {
5394 return (void*)entry_vkGetQueryPoolResults;
5395 }
5396 if (!strcmp(name, "vkCreateBuffer"))
5397 {
5398 return (void*)entry_vkCreateBuffer;
5399 }
5400 if (!strcmp(name, "vkDestroyBuffer"))
5401 {
5402 return (void*)entry_vkDestroyBuffer;
5403 }
5404 if (!strcmp(name, "vkCreateBufferView"))
5405 {
5406 return (void*)entry_vkCreateBufferView;
5407 }
5408 if (!strcmp(name, "vkDestroyBufferView"))
5409 {
5410 return (void*)entry_vkDestroyBufferView;
5411 }
5412 if (!strcmp(name, "vkCreateImage"))
5413 {
5414 return (void*)entry_vkCreateImage;
5415 }
5416 if (!strcmp(name, "vkDestroyImage"))
5417 {
5418 return (void*)entry_vkDestroyImage;
5419 }
5420 if (!strcmp(name, "vkGetImageSubresourceLayout"))
5421 {
5422 return (void*)entry_vkGetImageSubresourceLayout;
5423 }
5424 if (!strcmp(name, "vkCreateImageView"))
5425 {
5426 return (void*)entry_vkCreateImageView;
5427 }
5428 if (!strcmp(name, "vkDestroyImageView"))
5429 {
5430 return (void*)entry_vkDestroyImageView;
5431 }
5432 if (!strcmp(name, "vkCreateShaderModule"))
5433 {
5434 return (void*)entry_vkCreateShaderModule;
5435 }
5436 if (!strcmp(name, "vkDestroyShaderModule"))
5437 {
5438 return (void*)entry_vkDestroyShaderModule;
5439 }
5440 if (!strcmp(name, "vkCreatePipelineCache"))
5441 {
5442 return (void*)entry_vkCreatePipelineCache;
5443 }
5444 if (!strcmp(name, "vkDestroyPipelineCache"))
5445 {
5446 return (void*)entry_vkDestroyPipelineCache;
5447 }
5448 if (!strcmp(name, "vkGetPipelineCacheData"))
5449 {
5450 return (void*)entry_vkGetPipelineCacheData;
5451 }
5452 if (!strcmp(name, "vkMergePipelineCaches"))
5453 {
5454 return (void*)entry_vkMergePipelineCaches;
5455 }
5456 if (!strcmp(name, "vkCreateGraphicsPipelines"))
5457 {
5458 return (void*)entry_vkCreateGraphicsPipelines;
5459 }
5460 if (!strcmp(name, "vkCreateComputePipelines"))
5461 {
5462 return (void*)entry_vkCreateComputePipelines;
5463 }
5464 if (!strcmp(name, "vkDestroyPipeline"))
5465 {
5466 return (void*)entry_vkDestroyPipeline;
5467 }
5468 if (!strcmp(name, "vkCreatePipelineLayout"))
5469 {
5470 return (void*)entry_vkCreatePipelineLayout;
5471 }
5472 if (!strcmp(name, "vkDestroyPipelineLayout"))
5473 {
5474 return (void*)entry_vkDestroyPipelineLayout;
5475 }
5476 if (!strcmp(name, "vkCreateSampler"))
5477 {
5478 return (void*)entry_vkCreateSampler;
5479 }
5480 if (!strcmp(name, "vkDestroySampler"))
5481 {
5482 return (void*)entry_vkDestroySampler;
5483 }
5484 if (!strcmp(name, "vkCreateDescriptorSetLayout"))
5485 {
5486 return (void*)entry_vkCreateDescriptorSetLayout;
5487 }
5488 if (!strcmp(name, "vkDestroyDescriptorSetLayout"))
5489 {
5490 return (void*)entry_vkDestroyDescriptorSetLayout;
5491 }
5492 if (!strcmp(name, "vkCreateDescriptorPool"))
5493 {
5494 return (void*)entry_vkCreateDescriptorPool;
5495 }
5496 if (!strcmp(name, "vkDestroyDescriptorPool"))
5497 {
5498 return (void*)entry_vkDestroyDescriptorPool;
5499 }
5500 if (!strcmp(name, "vkResetDescriptorPool"))
5501 {
5502 return (void*)entry_vkResetDescriptorPool;
5503 }
5504 if (!strcmp(name, "vkAllocateDescriptorSets"))
5505 {
5506 return (void*)entry_vkAllocateDescriptorSets;
5507 }
5508 if (!strcmp(name, "vkFreeDescriptorSets"))
5509 {
5510 return (void*)entry_vkFreeDescriptorSets;
5511 }
5512 if (!strcmp(name, "vkUpdateDescriptorSets"))
5513 {
5514 return (void*)entry_vkUpdateDescriptorSets;
5515 }
5516 if (!strcmp(name, "vkCreateFramebuffer"))
5517 {
5518 return (void*)entry_vkCreateFramebuffer;
5519 }
5520 if (!strcmp(name, "vkDestroyFramebuffer"))
5521 {
5522 return (void*)entry_vkDestroyFramebuffer;
5523 }
5524 if (!strcmp(name, "vkCreateRenderPass"))
5525 {
5526 return (void*)entry_vkCreateRenderPass;
5527 }
5528 if (!strcmp(name, "vkDestroyRenderPass"))
5529 {
5530 return (void*)entry_vkDestroyRenderPass;
5531 }
5532 if (!strcmp(name, "vkGetRenderAreaGranularity"))
5533 {
5534 return (void*)entry_vkGetRenderAreaGranularity;
5535 }
5536 if (!strcmp(name, "vkCreateCommandPool"))
5537 {
5538 return (void*)entry_vkCreateCommandPool;
5539 }
5540 if (!strcmp(name, "vkDestroyCommandPool"))
5541 {
5542 return (void*)entry_vkDestroyCommandPool;
5543 }
5544 if (!strcmp(name, "vkResetCommandPool"))
5545 {
5546 return (void*)entry_vkResetCommandPool;
5547 }
5548 if (!strcmp(name, "vkAllocateCommandBuffers"))
5549 {
5550 return (void*)entry_vkAllocateCommandBuffers;
5551 }
5552 if (!strcmp(name, "vkFreeCommandBuffers"))
5553 {
5554 return (void*)entry_vkFreeCommandBuffers;
5555 }
5556 if (!strcmp(name, "vkBeginCommandBuffer"))
5557 {
5558 return (void*)entry_vkBeginCommandBuffer;
5559 }
5560 if (!strcmp(name, "vkEndCommandBuffer"))
5561 {
5562 return (void*)entry_vkEndCommandBuffer;
5563 }
5564 if (!strcmp(name, "vkResetCommandBuffer"))
5565 {
5566 return (void*)entry_vkResetCommandBuffer;
5567 }
5568 if (!strcmp(name, "vkCmdBindPipeline"))
5569 {
5570 return (void*)entry_vkCmdBindPipeline;
5571 }
5572 if (!strcmp(name, "vkCmdSetViewport"))
5573 {
5574 return (void*)entry_vkCmdSetViewport;
5575 }
5576 if (!strcmp(name, "vkCmdSetScissor"))
5577 {
5578 return (void*)entry_vkCmdSetScissor;
5579 }
5580 if (!strcmp(name, "vkCmdSetLineWidth"))
5581 {
5582 return (void*)entry_vkCmdSetLineWidth;
5583 }
5584 if (!strcmp(name, "vkCmdSetDepthBias"))
5585 {
5586 return (void*)entry_vkCmdSetDepthBias;
5587 }
5588 if (!strcmp(name, "vkCmdSetBlendConstants"))
5589 {
5590 return (void*)entry_vkCmdSetBlendConstants;
5591 }
5592 if (!strcmp(name, "vkCmdSetDepthBounds"))
5593 {
5594 return (void*)entry_vkCmdSetDepthBounds;
5595 }
5596 if (!strcmp(name, "vkCmdSetStencilCompareMask"))
5597 {
5598 return (void*)entry_vkCmdSetStencilCompareMask;
5599 }
5600 if (!strcmp(name, "vkCmdSetStencilWriteMask"))
5601 {
5602 return (void*)entry_vkCmdSetStencilWriteMask;
5603 }
5604 if (!strcmp(name, "vkCmdSetStencilReference"))
5605 {
5606 return (void*)entry_vkCmdSetStencilReference;
5607 }
5608 if (!strcmp(name, "vkCmdBindDescriptorSets"))
5609 {
5610 return (void*)entry_vkCmdBindDescriptorSets;
5611 }
5612 if (!strcmp(name, "vkCmdBindIndexBuffer"))
5613 {
5614 return (void*)entry_vkCmdBindIndexBuffer;
5615 }
5616 if (!strcmp(name, "vkCmdBindVertexBuffers"))
5617 {
5618 return (void*)entry_vkCmdBindVertexBuffers;
5619 }
5620 if (!strcmp(name, "vkCmdDraw"))
5621 {
5622 return (void*)entry_vkCmdDraw;
5623 }
5624 if (!strcmp(name, "vkCmdDrawIndexed"))
5625 {
5626 return (void*)entry_vkCmdDrawIndexed;
5627 }
5628 if (!strcmp(name, "vkCmdDrawIndirect"))
5629 {
5630 return (void*)entry_vkCmdDrawIndirect;
5631 }
5632 if (!strcmp(name, "vkCmdDrawIndexedIndirect"))
5633 {
5634 return (void*)entry_vkCmdDrawIndexedIndirect;
5635 }
5636 if (!strcmp(name, "vkCmdDispatch"))
5637 {
5638 return (void*)entry_vkCmdDispatch;
5639 }
5640 if (!strcmp(name, "vkCmdDispatchIndirect"))
5641 {
5642 return (void*)entry_vkCmdDispatchIndirect;
5643 }
5644 if (!strcmp(name, "vkCmdCopyBuffer"))
5645 {
5646 return (void*)entry_vkCmdCopyBuffer;
5647 }
5648 if (!strcmp(name, "vkCmdCopyImage"))
5649 {
5650 return (void*)entry_vkCmdCopyImage;
5651 }
5652 if (!strcmp(name, "vkCmdBlitImage"))
5653 {
5654 return (void*)entry_vkCmdBlitImage;
5655 }
5656 if (!strcmp(name, "vkCmdCopyBufferToImage"))
5657 {
5658 return (void*)entry_vkCmdCopyBufferToImage;
5659 }
5660 if (!strcmp(name, "vkCmdCopyImageToBuffer"))
5661 {
5662 return (void*)entry_vkCmdCopyImageToBuffer;
5663 }
5664 if (!strcmp(name, "vkCmdUpdateBuffer"))
5665 {
5666 return (void*)entry_vkCmdUpdateBuffer;
5667 }
5668 if (!strcmp(name, "vkCmdFillBuffer"))
5669 {
5670 return (void*)entry_vkCmdFillBuffer;
5671 }
5672 if (!strcmp(name, "vkCmdClearColorImage"))
5673 {
5674 return (void*)entry_vkCmdClearColorImage;
5675 }
5676 if (!strcmp(name, "vkCmdClearDepthStencilImage"))
5677 {
5678 return (void*)entry_vkCmdClearDepthStencilImage;
5679 }
5680 if (!strcmp(name, "vkCmdClearAttachments"))
5681 {
5682 return (void*)entry_vkCmdClearAttachments;
5683 }
5684 if (!strcmp(name, "vkCmdResolveImage"))
5685 {
5686 return (void*)entry_vkCmdResolveImage;
5687 }
5688 if (!strcmp(name, "vkCmdSetEvent"))
5689 {
5690 return (void*)entry_vkCmdSetEvent;
5691 }
5692 if (!strcmp(name, "vkCmdResetEvent"))
5693 {
5694 return (void*)entry_vkCmdResetEvent;
5695 }
5696 if (!strcmp(name, "vkCmdWaitEvents"))
5697 {
5698 return (void*)entry_vkCmdWaitEvents;
5699 }
5700 if (!strcmp(name, "vkCmdPipelineBarrier"))
5701 {
5702 return (void*)entry_vkCmdPipelineBarrier;
5703 }
5704 if (!strcmp(name, "vkCmdBeginQuery"))
5705 {
5706 return (void*)entry_vkCmdBeginQuery;
5707 }
5708 if (!strcmp(name, "vkCmdEndQuery"))
5709 {
5710 return (void*)entry_vkCmdEndQuery;
5711 }
5712 if (!strcmp(name, "vkCmdResetQueryPool"))
5713 {
5714 return (void*)entry_vkCmdResetQueryPool;
5715 }
5716 if (!strcmp(name, "vkCmdWriteTimestamp"))
5717 {
5718 return (void*)entry_vkCmdWriteTimestamp;
5719 }
5720 if (!strcmp(name, "vkCmdCopyQueryPoolResults"))
5721 {
5722 return (void*)entry_vkCmdCopyQueryPoolResults;
5723 }
5724 if (!strcmp(name, "vkCmdPushConstants"))
5725 {
5726 return (void*)entry_vkCmdPushConstants;
5727 }
5728 if (!strcmp(name, "vkCmdBeginRenderPass"))
5729 {
5730 return (void*)entry_vkCmdBeginRenderPass;
5731 }
5732 if (!strcmp(name, "vkCmdNextSubpass"))
5733 {
5734 return (void*)entry_vkCmdNextSubpass;
5735 }
5736 if (!strcmp(name, "vkCmdEndRenderPass"))
5737 {
5738 return (void*)entry_vkCmdEndRenderPass;
5739 }
5740 if (!strcmp(name, "vkCmdExecuteCommands"))
5741 {
5742 return (void*)entry_vkCmdExecuteCommands;
5743 }
5744#endif
5745#ifdef VK_VERSION_1_1
5746 if (!strcmp(name, "vkEnumerateInstanceVersion"))
5747 {
5748 return has1_1OrHigher ? (void*)entry_vkEnumerateInstanceVersion : nullptr;
5749 }
5750 if (!strcmp(name, "vkBindBufferMemory2"))
5751 {
5752 return has1_1OrHigher ? (void*)entry_vkBindBufferMemory2 : nullptr;
5753 }
5754 if (!strcmp(name, "vkBindImageMemory2"))
5755 {
5756 return has1_1OrHigher ? (void*)entry_vkBindImageMemory2 : nullptr;
5757 }
5758 if (!strcmp(name, "vkGetDeviceGroupPeerMemoryFeatures"))
5759 {
5760 return has1_1OrHigher ? (void*)entry_vkGetDeviceGroupPeerMemoryFeatures : nullptr;
5761 }
5762 if (!strcmp(name, "vkCmdSetDeviceMask"))
5763 {
5764 return has1_1OrHigher ? (void*)entry_vkCmdSetDeviceMask : nullptr;
5765 }
5766 if (!strcmp(name, "vkCmdDispatchBase"))
5767 {
5768 return has1_1OrHigher ? (void*)entry_vkCmdDispatchBase : nullptr;
5769 }
5770 if (!strcmp(name, "vkEnumeratePhysicalDeviceGroups"))
5771 {
5772 return nullptr;
5773 }
5774 if (!strcmp(name, "vkGetImageMemoryRequirements2"))
5775 {
5776 return has1_1OrHigher ? (void*)entry_vkGetImageMemoryRequirements2 : nullptr;
5777 }
5778 if (!strcmp(name, "vkGetBufferMemoryRequirements2"))
5779 {
5780 return has1_1OrHigher ? (void*)entry_vkGetBufferMemoryRequirements2 : nullptr;
5781 }
5782 if (!strcmp(name, "vkGetImageSparseMemoryRequirements2"))
5783 {
5784 return has1_1OrHigher ? (void*)entry_vkGetImageSparseMemoryRequirements2 : nullptr;
5785 }
5786 if (!strcmp(name, "vkGetPhysicalDeviceFeatures2"))
5787 {
5788 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceFeatures2 : nullptr;
5789 }
5790 if (!strcmp(name, "vkGetPhysicalDeviceProperties2"))
5791 {
5792 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceProperties2 : nullptr;
5793 }
5794 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties2"))
5795 {
5796 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceFormatProperties2 : nullptr;
5797 }
5798 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties2"))
5799 {
5800 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceImageFormatProperties2 : nullptr;
5801 }
5802 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties2"))
5803 {
5804 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties2 : nullptr;
5805 }
5806 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties2"))
5807 {
5808 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceMemoryProperties2 : nullptr;
5809 }
5810 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties2"))
5811 {
5812 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties2 : nullptr;
5813 }
5814 if (!strcmp(name, "vkTrimCommandPool"))
5815 {
5816 return has1_1OrHigher ? (void*)entry_vkTrimCommandPool : nullptr;
5817 }
5818 if (!strcmp(name, "vkGetDeviceQueue2"))
5819 {
5820 return has1_1OrHigher ? (void*)entry_vkGetDeviceQueue2 : nullptr;
5821 }
5822 if (!strcmp(name, "vkCreateSamplerYcbcrConversion"))
5823 {
5824 return has1_1OrHigher ? (void*)entry_vkCreateSamplerYcbcrConversion : nullptr;
5825 }
5826 if (!strcmp(name, "vkDestroySamplerYcbcrConversion"))
5827 {
5828 return has1_1OrHigher ? (void*)entry_vkDestroySamplerYcbcrConversion : nullptr;
5829 }
5830 if (!strcmp(name, "vkCreateDescriptorUpdateTemplate"))
5831 {
5832 return has1_1OrHigher ? (void*)entry_vkCreateDescriptorUpdateTemplate : nullptr;
5833 }
5834 if (!strcmp(name, "vkDestroyDescriptorUpdateTemplate"))
5835 {
5836 return has1_1OrHigher ? (void*)entry_vkDestroyDescriptorUpdateTemplate : nullptr;
5837 }
5838 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplate"))
5839 {
5840 return has1_1OrHigher ? (void*)entry_vkUpdateDescriptorSetWithTemplate : nullptr;
5841 }
5842 if (!strcmp(name, "vkGetPhysicalDeviceExternalBufferProperties"))
5843 {
5844 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceExternalBufferProperties : nullptr;
5845 }
5846 if (!strcmp(name, "vkGetPhysicalDeviceExternalFenceProperties"))
5847 {
5848 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceExternalFenceProperties : nullptr;
5849 }
5850 if (!strcmp(name, "vkGetPhysicalDeviceExternalSemaphoreProperties"))
5851 {
5852 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceExternalSemaphoreProperties : nullptr;
5853 }
5854 if (!strcmp(name, "vkGetDescriptorSetLayoutSupport"))
5855 {
5856 return has1_1OrHigher ? (void*)entry_vkGetDescriptorSetLayoutSupport : nullptr;
5857 }
5858#endif
5859#ifdef VK_KHR_surface
5860 if (!strcmp(name, "vkDestroySurfaceKHR"))
5861 {
5862 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_surface");
5863 return hasExt ? (void*)entry_vkDestroySurfaceKHR : nullptr;
5864 }
5865 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceSupportKHR"))
5866 {
5867 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_surface");
5868 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceSupportKHR : nullptr;
5869 }
5870 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR"))
5871 {
5872 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_surface");
5873 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceCapabilitiesKHR : nullptr;
5874 }
5875 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceFormatsKHR"))
5876 {
5877 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_surface");
5878 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceFormatsKHR : nullptr;
5879 }
5880 if (!strcmp(name, "vkGetPhysicalDeviceSurfacePresentModesKHR"))
5881 {
5882 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_surface");
5883 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfacePresentModesKHR : nullptr;
5884 }
5885#endif
5886#ifdef VK_KHR_swapchain
5887 if (!strcmp(name, "vkCreateSwapchainKHR"))
5888 {
5889 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5890 return hasExt ? (void*)entry_vkCreateSwapchainKHR : nullptr;
5891 }
5892 if (!strcmp(name, "vkDestroySwapchainKHR"))
5893 {
5894 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5895 return hasExt ? (void*)entry_vkDestroySwapchainKHR : nullptr;
5896 }
5897 if (!strcmp(name, "vkGetSwapchainImagesKHR"))
5898 {
5899 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5900 return hasExt ? (void*)entry_vkGetSwapchainImagesKHR : nullptr;
5901 }
5902 if (!strcmp(name, "vkAcquireNextImageKHR"))
5903 {
5904 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5905 return hasExt ? (void*)entry_vkAcquireNextImageKHR : nullptr;
5906 }
5907 if (!strcmp(name, "vkQueuePresentKHR"))
5908 {
5909 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5910 return hasExt ? (void*)entry_vkQueuePresentKHR : nullptr;
5911 }
5912 if (!strcmp(name, "vkGetDeviceGroupPresentCapabilitiesKHR"))
5913 {
5914 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5915 return hasExt ? (void*)entry_vkGetDeviceGroupPresentCapabilitiesKHR : nullptr;
5916 }
5917 if (!strcmp(name, "vkGetDeviceGroupSurfacePresentModesKHR"))
5918 {
5919 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5920 return hasExt ? (void*)entry_vkGetDeviceGroupSurfacePresentModesKHR : nullptr;
5921 }
5922 if (!strcmp(name, "vkGetPhysicalDevicePresentRectanglesKHR"))
5923 {
5924 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5925 return hasExt ? (void*)entry_vkGetPhysicalDevicePresentRectanglesKHR : nullptr;
5926 }
5927 if (!strcmp(name, "vkAcquireNextImage2KHR"))
5928 {
5929 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5930 return hasExt ? (void*)entry_vkAcquireNextImage2KHR : nullptr;
5931 }
5932#endif
5933#ifdef VK_KHR_display
5934 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPropertiesKHR"))
5935 {
5936 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
5937 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayPropertiesKHR : nullptr;
5938 }
5939 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR"))
5940 {
5941 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
5942 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayPlanePropertiesKHR : nullptr;
5943 }
5944 if (!strcmp(name, "vkGetDisplayPlaneSupportedDisplaysKHR"))
5945 {
5946 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
5947 return hasExt ? (void*)entry_vkGetDisplayPlaneSupportedDisplaysKHR : nullptr;
5948 }
5949 if (!strcmp(name, "vkGetDisplayModePropertiesKHR"))
5950 {
5951 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
5952 return hasExt ? (void*)entry_vkGetDisplayModePropertiesKHR : nullptr;
5953 }
5954 if (!strcmp(name, "vkCreateDisplayModeKHR"))
5955 {
5956 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
5957 return hasExt ? (void*)entry_vkCreateDisplayModeKHR : nullptr;
5958 }
5959 if (!strcmp(name, "vkGetDisplayPlaneCapabilitiesKHR"))
5960 {
5961 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
5962 return hasExt ? (void*)entry_vkGetDisplayPlaneCapabilitiesKHR : nullptr;
5963 }
5964 if (!strcmp(name, "vkCreateDisplayPlaneSurfaceKHR"))
5965 {
5966 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
5967 return hasExt ? (void*)entry_vkCreateDisplayPlaneSurfaceKHR : nullptr;
5968 }
5969#endif
5970#ifdef VK_KHR_display_swapchain
5971 if (!strcmp(name, "vkCreateSharedSwapchainsKHR"))
5972 {
5973 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display_swapchain");
5974 return hasExt ? (void*)entry_vkCreateSharedSwapchainsKHR : nullptr;
5975 }
5976#endif
5977#ifdef VK_KHR_xlib_surface
5978 if (!strcmp(name, "vkCreateXlibSurfaceKHR"))
5979 {
5980 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_xlib_surface");
5981 return hasExt ? (void*)entry_vkCreateXlibSurfaceKHR : nullptr;
5982 }
5983 if (!strcmp(name, "vkGetPhysicalDeviceXlibPresentationSupportKHR"))
5984 {
5985 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_xlib_surface");
5986 return hasExt ? (void*)entry_vkGetPhysicalDeviceXlibPresentationSupportKHR : nullptr;
5987 }
5988#endif
5989#ifdef VK_KHR_xcb_surface
5990 if (!strcmp(name, "vkCreateXcbSurfaceKHR"))
5991 {
5992 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_xcb_surface");
5993 return hasExt ? (void*)entry_vkCreateXcbSurfaceKHR : nullptr;
5994 }
5995 if (!strcmp(name, "vkGetPhysicalDeviceXcbPresentationSupportKHR"))
5996 {
5997 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_xcb_surface");
5998 return hasExt ? (void*)entry_vkGetPhysicalDeviceXcbPresentationSupportKHR : nullptr;
5999 }
6000#endif
6001#ifdef VK_KHR_wayland_surface
6002 if (!strcmp(name, "vkCreateWaylandSurfaceKHR"))
6003 {
6004 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_wayland_surface");
6005 return hasExt ? (void*)entry_vkCreateWaylandSurfaceKHR : nullptr;
6006 }
6007 if (!strcmp(name, "vkGetPhysicalDeviceWaylandPresentationSupportKHR"))
6008 {
6009 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_wayland_surface");
6010 return hasExt ? (void*)entry_vkGetPhysicalDeviceWaylandPresentationSupportKHR : nullptr;
6011 }
6012#endif
6013#ifdef VK_KHR_mir_surface
6014 if (!strcmp(name, "vkCreateMirSurfaceKHR"))
6015 {
6016 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_mir_surface");
6017 return hasExt ? (void*)entry_vkCreateMirSurfaceKHR : nullptr;
6018 }
6019 if (!strcmp(name, "vkGetPhysicalDeviceMirPresentationSupportKHR"))
6020 {
6021 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_mir_surface");
6022 return hasExt ? (void*)entry_vkGetPhysicalDeviceMirPresentationSupportKHR : nullptr;
6023 }
6024#endif
6025#ifdef VK_KHR_android_surface
6026 if (!strcmp(name, "vkCreateAndroidSurfaceKHR"))
6027 {
6028 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_android_surface");
6029 return hasExt ? (void*)entry_vkCreateAndroidSurfaceKHR : nullptr;
6030 }
6031#endif
6032#ifdef VK_KHR_win32_surface
6033 if (!strcmp(name, "vkCreateWin32SurfaceKHR"))
6034 {
6035 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_win32_surface");
6036 return hasExt ? (void*)entry_vkCreateWin32SurfaceKHR : nullptr;
6037 }
6038 if (!strcmp(name, "vkGetPhysicalDeviceWin32PresentationSupportKHR"))
6039 {
6040 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_win32_surface");
6041 return hasExt ? (void*)entry_vkGetPhysicalDeviceWin32PresentationSupportKHR : nullptr;
6042 }
6043#endif
6044#ifdef VK_KHR_get_physical_device_properties2
6045 if (!strcmp(name, "vkGetPhysicalDeviceFeatures2KHR"))
6046 {
6047 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
6048 return hasExt ? (void*)entry_vkGetPhysicalDeviceFeatures2KHR : nullptr;
6049 }
6050 if (!strcmp(name, "vkGetPhysicalDeviceProperties2KHR"))
6051 {
6052 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
6053 return hasExt ? (void*)entry_vkGetPhysicalDeviceProperties2KHR : nullptr;
6054 }
6055 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties2KHR"))
6056 {
6057 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
6058 return hasExt ? (void*)entry_vkGetPhysicalDeviceFormatProperties2KHR : nullptr;
6059 }
6060 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties2KHR"))
6061 {
6062 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
6063 return hasExt ? (void*)entry_vkGetPhysicalDeviceImageFormatProperties2KHR : nullptr;
6064 }
6065 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties2KHR"))
6066 {
6067 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
6068 return hasExt ? (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties2KHR : nullptr;
6069 }
6070 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties2KHR"))
6071 {
6072 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
6073 return hasExt ? (void*)entry_vkGetPhysicalDeviceMemoryProperties2KHR : nullptr;
6074 }
6075 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR"))
6076 {
6077 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
6078 return hasExt ? (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties2KHR : nullptr;
6079 }
6080#endif
6081#ifdef VK_KHR_device_group
6082 if (!strcmp(name, "vkGetDeviceGroupPeerMemoryFeaturesKHR"))
6083 {
6084 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_device_group");
6085 return hasExt ? (void*)entry_vkGetDeviceGroupPeerMemoryFeaturesKHR : nullptr;
6086 }
6087 if (!strcmp(name, "vkCmdSetDeviceMaskKHR"))
6088 {
6089 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_device_group");
6090 return hasExt ? (void*)entry_vkCmdSetDeviceMaskKHR : nullptr;
6091 }
6092 if (!strcmp(name, "vkCmdDispatchBaseKHR"))
6093 {
6094 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_device_group");
6095 return hasExt ? (void*)entry_vkCmdDispatchBaseKHR : nullptr;
6096 }
6097#endif
6098#ifdef VK_KHR_maintenance1
6099 if (!strcmp(name, "vkTrimCommandPoolKHR"))
6100 {
6101 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_maintenance1");
6102 return hasExt ? (void*)entry_vkTrimCommandPoolKHR : nullptr;
6103 }
6104#endif
6105#ifdef VK_KHR_device_group_creation
6106 if (!strcmp(name, "vkEnumeratePhysicalDeviceGroupsKHR"))
6107 {
6108 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_device_group_creation");
6109 return hasExt ? (void*)entry_vkEnumeratePhysicalDeviceGroupsKHR : nullptr;
6110 }
6111#endif
6112#ifdef VK_KHR_external_memory_capabilities
6113 if (!strcmp(name, "vkGetPhysicalDeviceExternalBufferPropertiesKHR"))
6114 {
6115 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_memory_capabilities");
6116 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalBufferPropertiesKHR : nullptr;
6117 }
6118#endif
6119#ifdef VK_KHR_external_memory_win32
6120 if (!strcmp(name, "vkGetMemoryWin32HandleKHR"))
6121 {
6122 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_memory_win32");
6123 return hasExt ? (void*)entry_vkGetMemoryWin32HandleKHR : nullptr;
6124 }
6125 if (!strcmp(name, "vkGetMemoryWin32HandlePropertiesKHR"))
6126 {
6127 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_memory_win32");
6128 return hasExt ? (void*)entry_vkGetMemoryWin32HandlePropertiesKHR : nullptr;
6129 }
6130#endif
6131#ifdef VK_KHR_external_memory_fd
6132 if (!strcmp(name, "vkGetMemoryFdKHR"))
6133 {
6134 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_memory_fd");
6135 return hasExt ? (void*)entry_vkGetMemoryFdKHR : nullptr;
6136 }
6137 if (!strcmp(name, "vkGetMemoryFdPropertiesKHR"))
6138 {
6139 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_memory_fd");
6140 return hasExt ? (void*)entry_vkGetMemoryFdPropertiesKHR : nullptr;
6141 }
6142#endif
6143#ifdef VK_KHR_external_semaphore_capabilities
6144 if (!strcmp(name, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR"))
6145 {
6146 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_semaphore_capabilities");
6147 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR : nullptr;
6148 }
6149#endif
6150#ifdef VK_KHR_external_semaphore_win32
6151 if (!strcmp(name, "vkImportSemaphoreWin32HandleKHR"))
6152 {
6153 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_semaphore_win32");
6154 return hasExt ? (void*)entry_vkImportSemaphoreWin32HandleKHR : nullptr;
6155 }
6156 if (!strcmp(name, "vkGetSemaphoreWin32HandleKHR"))
6157 {
6158 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_semaphore_win32");
6159 return hasExt ? (void*)entry_vkGetSemaphoreWin32HandleKHR : nullptr;
6160 }
6161#endif
6162#ifdef VK_KHR_external_semaphore_fd
6163 if (!strcmp(name, "vkImportSemaphoreFdKHR"))
6164 {
6165 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_semaphore_fd");
6166 return hasExt ? (void*)entry_vkImportSemaphoreFdKHR : nullptr;
6167 }
6168 if (!strcmp(name, "vkGetSemaphoreFdKHR"))
6169 {
6170 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_semaphore_fd");
6171 return hasExt ? (void*)entry_vkGetSemaphoreFdKHR : nullptr;
6172 }
6173#endif
6174#ifdef VK_KHR_push_descriptor
6175 if (!strcmp(name, "vkCmdPushDescriptorSetKHR"))
6176 {
6177 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_push_descriptor");
6178 return hasExt ? (void*)entry_vkCmdPushDescriptorSetKHR : nullptr;
6179 }
6180 if (!strcmp(name, "vkCmdPushDescriptorSetWithTemplateKHR"))
6181 {
6182 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_push_descriptor");
6183 return hasExt ? (void*)entry_vkCmdPushDescriptorSetWithTemplateKHR : nullptr;
6184 }
6185#endif
6186#ifdef VK_KHR_descriptor_update_template
6187 if (!strcmp(name, "vkCreateDescriptorUpdateTemplateKHR"))
6188 {
6189 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_descriptor_update_template");
6190 return hasExt ? (void*)entry_vkCreateDescriptorUpdateTemplateKHR : nullptr;
6191 }
6192 if (!strcmp(name, "vkDestroyDescriptorUpdateTemplateKHR"))
6193 {
6194 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_descriptor_update_template");
6195 return hasExt ? (void*)entry_vkDestroyDescriptorUpdateTemplateKHR : nullptr;
6196 }
6197 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplateKHR"))
6198 {
6199 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_descriptor_update_template");
6200 return hasExt ? (void*)entry_vkUpdateDescriptorSetWithTemplateKHR : nullptr;
6201 }
6202#endif
6203#ifdef VK_KHR_create_renderpass2
6204 if (!strcmp(name, "vkCreateRenderPass2KHR"))
6205 {
6206 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_create_renderpass2");
6207 return hasExt ? (void*)entry_vkCreateRenderPass2KHR : nullptr;
6208 }
6209 if (!strcmp(name, "vkCmdBeginRenderPass2KHR"))
6210 {
6211 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_create_renderpass2");
6212 return hasExt ? (void*)entry_vkCmdBeginRenderPass2KHR : nullptr;
6213 }
6214 if (!strcmp(name, "vkCmdNextSubpass2KHR"))
6215 {
6216 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_create_renderpass2");
6217 return hasExt ? (void*)entry_vkCmdNextSubpass2KHR : nullptr;
6218 }
6219 if (!strcmp(name, "vkCmdEndRenderPass2KHR"))
6220 {
6221 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_create_renderpass2");
6222 return hasExt ? (void*)entry_vkCmdEndRenderPass2KHR : nullptr;
6223 }
6224#endif
6225#ifdef VK_KHR_shared_presentable_image
6226 if (!strcmp(name, "vkGetSwapchainStatusKHR"))
6227 {
6228 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_shared_presentable_image");
6229 return hasExt ? (void*)entry_vkGetSwapchainStatusKHR : nullptr;
6230 }
6231#endif
6232#ifdef VK_KHR_external_fence_capabilities
6233 if (!strcmp(name, "vkGetPhysicalDeviceExternalFencePropertiesKHR"))
6234 {
6235 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_fence_capabilities");
6236 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalFencePropertiesKHR : nullptr;
6237 }
6238#endif
6239#ifdef VK_KHR_external_fence_win32
6240 if (!strcmp(name, "vkImportFenceWin32HandleKHR"))
6241 {
6242 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_fence_win32");
6243 return hasExt ? (void*)entry_vkImportFenceWin32HandleKHR : nullptr;
6244 }
6245 if (!strcmp(name, "vkGetFenceWin32HandleKHR"))
6246 {
6247 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_fence_win32");
6248 return hasExt ? (void*)entry_vkGetFenceWin32HandleKHR : nullptr;
6249 }
6250#endif
6251#ifdef VK_KHR_external_fence_fd
6252 if (!strcmp(name, "vkImportFenceFdKHR"))
6253 {
6254 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_fence_fd");
6255 return hasExt ? (void*)entry_vkImportFenceFdKHR : nullptr;
6256 }
6257 if (!strcmp(name, "vkGetFenceFdKHR"))
6258 {
6259 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_fence_fd");
6260 return hasExt ? (void*)entry_vkGetFenceFdKHR : nullptr;
6261 }
6262#endif
6263#ifdef VK_KHR_get_surface_capabilities2
6264 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2KHR"))
6265 {
6266 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_surface_capabilities2");
6267 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceCapabilities2KHR : nullptr;
6268 }
6269 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceFormats2KHR"))
6270 {
6271 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_surface_capabilities2");
6272 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceFormats2KHR : nullptr;
6273 }
6274#endif
6275#ifdef VK_KHR_get_display_properties2
6276 if (!strcmp(name, "vkGetPhysicalDeviceDisplayProperties2KHR"))
6277 {
6278 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_display_properties2");
6279 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayProperties2KHR : nullptr;
6280 }
6281 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR"))
6282 {
6283 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_display_properties2");
6284 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayPlaneProperties2KHR : nullptr;
6285 }
6286 if (!strcmp(name, "vkGetDisplayModeProperties2KHR"))
6287 {
6288 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_display_properties2");
6289 return hasExt ? (void*)entry_vkGetDisplayModeProperties2KHR : nullptr;
6290 }
6291 if (!strcmp(name, "vkGetDisplayPlaneCapabilities2KHR"))
6292 {
6293 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_display_properties2");
6294 return hasExt ? (void*)entry_vkGetDisplayPlaneCapabilities2KHR : nullptr;
6295 }
6296#endif
6297#ifdef VK_KHR_get_memory_requirements2
6298 if (!strcmp(name, "vkGetImageMemoryRequirements2KHR"))
6299 {
6300 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_memory_requirements2");
6301 return hasExt ? (void*)entry_vkGetImageMemoryRequirements2KHR : nullptr;
6302 }
6303 if (!strcmp(name, "vkGetBufferMemoryRequirements2KHR"))
6304 {
6305 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_memory_requirements2");
6306 return hasExt ? (void*)entry_vkGetBufferMemoryRequirements2KHR : nullptr;
6307 }
6308 if (!strcmp(name, "vkGetImageSparseMemoryRequirements2KHR"))
6309 {
6310 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_memory_requirements2");
6311 return hasExt ? (void*)entry_vkGetImageSparseMemoryRequirements2KHR : nullptr;
6312 }
6313#endif
6314#ifdef VK_KHR_sampler_ycbcr_conversion
6315 if (!strcmp(name, "vkCreateSamplerYcbcrConversionKHR"))
6316 {
6317 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_sampler_ycbcr_conversion");
6318 return hasExt ? (void*)entry_vkCreateSamplerYcbcrConversionKHR : nullptr;
6319 }
6320 if (!strcmp(name, "vkDestroySamplerYcbcrConversionKHR"))
6321 {
6322 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_sampler_ycbcr_conversion");
6323 return hasExt ? (void*)entry_vkDestroySamplerYcbcrConversionKHR : nullptr;
6324 }
6325#endif
6326#ifdef VK_KHR_bind_memory2
6327 if (!strcmp(name, "vkBindBufferMemory2KHR"))
6328 {
6329 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_bind_memory2");
6330 return hasExt ? (void*)entry_vkBindBufferMemory2KHR : nullptr;
6331 }
6332 if (!strcmp(name, "vkBindImageMemory2KHR"))
6333 {
6334 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_bind_memory2");
6335 return hasExt ? (void*)entry_vkBindImageMemory2KHR : nullptr;
6336 }
6337#endif
6338#ifdef VK_KHR_maintenance3
6339 if (!strcmp(name, "vkGetDescriptorSetLayoutSupportKHR"))
6340 {
6341 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_maintenance3");
6342 return hasExt ? (void*)entry_vkGetDescriptorSetLayoutSupportKHR : nullptr;
6343 }
6344#endif
6345#ifdef VK_KHR_draw_indirect_count
6346 if (!strcmp(name, "vkCmdDrawIndirectCountKHR"))
6347 {
6348 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_draw_indirect_count");
6349 return hasExt ? (void*)entry_vkCmdDrawIndirectCountKHR : nullptr;
6350 }
6351 if (!strcmp(name, "vkCmdDrawIndexedIndirectCountKHR"))
6352 {
6353 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_draw_indirect_count");
6354 return hasExt ? (void*)entry_vkCmdDrawIndexedIndirectCountKHR : nullptr;
6355 }
6356#endif
6357#ifdef VK_ANDROID_native_buffer
6358 if (!strcmp(name, "vkGetSwapchainGrallocUsageANDROID"))
6359 {
6360 bool hasExt = resources->hasInstanceExtension(instance, "VK_ANDROID_native_buffer");
6361 return hasExt ? (void*)entry_vkGetSwapchainGrallocUsageANDROID : nullptr;
6362 }
6363 if (!strcmp(name, "vkAcquireImageANDROID"))
6364 {
6365 bool hasExt = resources->hasInstanceExtension(instance, "VK_ANDROID_native_buffer");
6366 return hasExt ? (void*)entry_vkAcquireImageANDROID : nullptr;
6367 }
6368 if (!strcmp(name, "vkQueueSignalReleaseImageANDROID"))
6369 {
6370 bool hasExt = resources->hasInstanceExtension(instance, "VK_ANDROID_native_buffer");
6371 return hasExt ? (void*)entry_vkQueueSignalReleaseImageANDROID : nullptr;
6372 }
6373#endif
6374#ifdef VK_EXT_debug_report
6375 if (!strcmp(name, "vkCreateDebugReportCallbackEXT"))
6376 {
6377 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_report");
6378 return hasExt ? (void*)entry_vkCreateDebugReportCallbackEXT : nullptr;
6379 }
6380 if (!strcmp(name, "vkDestroyDebugReportCallbackEXT"))
6381 {
6382 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_report");
6383 return hasExt ? (void*)entry_vkDestroyDebugReportCallbackEXT : nullptr;
6384 }
6385 if (!strcmp(name, "vkDebugReportMessageEXT"))
6386 {
6387 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_report");
6388 return hasExt ? (void*)entry_vkDebugReportMessageEXT : nullptr;
6389 }
6390#endif
6391#ifdef VK_EXT_debug_marker
6392 if (!strcmp(name, "vkDebugMarkerSetObjectTagEXT"))
6393 {
6394 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_marker");
6395 return hasExt ? (void*)entry_vkDebugMarkerSetObjectTagEXT : nullptr;
6396 }
6397 if (!strcmp(name, "vkDebugMarkerSetObjectNameEXT"))
6398 {
6399 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_marker");
6400 return hasExt ? (void*)entry_vkDebugMarkerSetObjectNameEXT : nullptr;
6401 }
6402 if (!strcmp(name, "vkCmdDebugMarkerBeginEXT"))
6403 {
6404 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_marker");
6405 return hasExt ? (void*)entry_vkCmdDebugMarkerBeginEXT : nullptr;
6406 }
6407 if (!strcmp(name, "vkCmdDebugMarkerEndEXT"))
6408 {
6409 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_marker");
6410 return hasExt ? (void*)entry_vkCmdDebugMarkerEndEXT : nullptr;
6411 }
6412 if (!strcmp(name, "vkCmdDebugMarkerInsertEXT"))
6413 {
6414 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_marker");
6415 return hasExt ? (void*)entry_vkCmdDebugMarkerInsertEXT : nullptr;
6416 }
6417#endif
6418#ifdef VK_AMD_draw_indirect_count
6419 if (!strcmp(name, "vkCmdDrawIndirectCountAMD"))
6420 {
6421 bool hasExt = resources->hasInstanceExtension(instance, "VK_AMD_draw_indirect_count");
6422 return hasExt ? (void*)entry_vkCmdDrawIndirectCountAMD : nullptr;
6423 }
6424 if (!strcmp(name, "vkCmdDrawIndexedIndirectCountAMD"))
6425 {
6426 bool hasExt = resources->hasInstanceExtension(instance, "VK_AMD_draw_indirect_count");
6427 return hasExt ? (void*)entry_vkCmdDrawIndexedIndirectCountAMD : nullptr;
6428 }
6429#endif
6430#ifdef VK_AMD_shader_info
6431 if (!strcmp(name, "vkGetShaderInfoAMD"))
6432 {
6433 bool hasExt = resources->hasInstanceExtension(instance, "VK_AMD_shader_info");
6434 return hasExt ? (void*)entry_vkGetShaderInfoAMD : nullptr;
6435 }
6436#endif
6437#ifdef VK_NV_external_memory_capabilities
6438 if (!strcmp(name, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV"))
6439 {
6440 bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_external_memory_capabilities");
6441 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalImageFormatPropertiesNV : nullptr;
6442 }
6443#endif
6444#ifdef VK_NV_external_memory_win32
6445 if (!strcmp(name, "vkGetMemoryWin32HandleNV"))
6446 {
6447 bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_external_memory_win32");
6448 return hasExt ? (void*)entry_vkGetMemoryWin32HandleNV : nullptr;
6449 }
6450#endif
6451#ifdef VK_NN_vi_surface
6452 if (!strcmp(name, "vkCreateViSurfaceNN"))
6453 {
6454 bool hasExt = resources->hasInstanceExtension(instance, "VK_NN_vi_surface");
6455 return hasExt ? (void*)entry_vkCreateViSurfaceNN : nullptr;
6456 }
6457#endif
6458#ifdef VK_EXT_conditional_rendering
6459 if (!strcmp(name, "vkCmdBeginConditionalRenderingEXT"))
6460 {
6461 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_conditional_rendering");
6462 return hasExt ? (void*)entry_vkCmdBeginConditionalRenderingEXT : nullptr;
6463 }
6464 if (!strcmp(name, "vkCmdEndConditionalRenderingEXT"))
6465 {
6466 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_conditional_rendering");
6467 return hasExt ? (void*)entry_vkCmdEndConditionalRenderingEXT : nullptr;
6468 }
6469#endif
6470#ifdef VK_NVX_device_generated_commands
6471 if (!strcmp(name, "vkCmdProcessCommandsNVX"))
6472 {
6473 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6474 return hasExt ? (void*)entry_vkCmdProcessCommandsNVX : nullptr;
6475 }
6476 if (!strcmp(name, "vkCmdReserveSpaceForCommandsNVX"))
6477 {
6478 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6479 return hasExt ? (void*)entry_vkCmdReserveSpaceForCommandsNVX : nullptr;
6480 }
6481 if (!strcmp(name, "vkCreateIndirectCommandsLayoutNVX"))
6482 {
6483 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6484 return hasExt ? (void*)entry_vkCreateIndirectCommandsLayoutNVX : nullptr;
6485 }
6486 if (!strcmp(name, "vkDestroyIndirectCommandsLayoutNVX"))
6487 {
6488 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6489 return hasExt ? (void*)entry_vkDestroyIndirectCommandsLayoutNVX : nullptr;
6490 }
6491 if (!strcmp(name, "vkCreateObjectTableNVX"))
6492 {
6493 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6494 return hasExt ? (void*)entry_vkCreateObjectTableNVX : nullptr;
6495 }
6496 if (!strcmp(name, "vkDestroyObjectTableNVX"))
6497 {
6498 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6499 return hasExt ? (void*)entry_vkDestroyObjectTableNVX : nullptr;
6500 }
6501 if (!strcmp(name, "vkRegisterObjectsNVX"))
6502 {
6503 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6504 return hasExt ? (void*)entry_vkRegisterObjectsNVX : nullptr;
6505 }
6506 if (!strcmp(name, "vkUnregisterObjectsNVX"))
6507 {
6508 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6509 return hasExt ? (void*)entry_vkUnregisterObjectsNVX : nullptr;
6510 }
6511 if (!strcmp(name, "vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX"))
6512 {
6513 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6514 return hasExt ? (void*)entry_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX : nullptr;
6515 }
6516#endif
6517#ifdef VK_NV_clip_space_w_scaling
6518 if (!strcmp(name, "vkCmdSetViewportWScalingNV"))
6519 {
6520 bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_clip_space_w_scaling");
6521 return hasExt ? (void*)entry_vkCmdSetViewportWScalingNV : nullptr;
6522 }
6523#endif
6524#ifdef VK_EXT_direct_mode_display
6525 if (!strcmp(name, "vkReleaseDisplayEXT"))
6526 {
6527 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_direct_mode_display");
6528 return hasExt ? (void*)entry_vkReleaseDisplayEXT : nullptr;
6529 }
6530#endif
6531#ifdef VK_EXT_acquire_xlib_display
6532 if (!strcmp(name, "vkAcquireXlibDisplayEXT"))
6533 {
6534 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_acquire_xlib_display");
6535 return hasExt ? (void*)entry_vkAcquireXlibDisplayEXT : nullptr;
6536 }
6537 if (!strcmp(name, "vkGetRandROutputDisplayEXT"))
6538 {
6539 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_acquire_xlib_display");
6540 return hasExt ? (void*)entry_vkGetRandROutputDisplayEXT : nullptr;
6541 }
6542#endif
6543#ifdef VK_EXT_display_surface_counter
6544 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2EXT"))
6545 {
6546 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_display_surface_counter");
6547 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceCapabilities2EXT : nullptr;
6548 }
6549#endif
6550#ifdef VK_EXT_display_control
6551 if (!strcmp(name, "vkDisplayPowerControlEXT"))
6552 {
6553 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_display_control");
6554 return hasExt ? (void*)entry_vkDisplayPowerControlEXT : nullptr;
6555 }
6556 if (!strcmp(name, "vkRegisterDeviceEventEXT"))
6557 {
6558 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_display_control");
6559 return hasExt ? (void*)entry_vkRegisterDeviceEventEXT : nullptr;
6560 }
6561 if (!strcmp(name, "vkRegisterDisplayEventEXT"))
6562 {
6563 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_display_control");
6564 return hasExt ? (void*)entry_vkRegisterDisplayEventEXT : nullptr;
6565 }
6566 if (!strcmp(name, "vkGetSwapchainCounterEXT"))
6567 {
6568 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_display_control");
6569 return hasExt ? (void*)entry_vkGetSwapchainCounterEXT : nullptr;
6570 }
6571#endif
6572#ifdef VK_GOOGLE_display_timing
6573 if (!strcmp(name, "vkGetRefreshCycleDurationGOOGLE"))
6574 {
6575 bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_display_timing");
6576 return hasExt ? (void*)entry_vkGetRefreshCycleDurationGOOGLE : nullptr;
6577 }
6578 if (!strcmp(name, "vkGetPastPresentationTimingGOOGLE"))
6579 {
6580 bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_display_timing");
6581 return hasExt ? (void*)entry_vkGetPastPresentationTimingGOOGLE : nullptr;
6582 }
6583#endif
6584#ifdef VK_EXT_discard_rectangles
6585 if (!strcmp(name, "vkCmdSetDiscardRectangleEXT"))
6586 {
6587 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_discard_rectangles");
6588 return hasExt ? (void*)entry_vkCmdSetDiscardRectangleEXT : nullptr;
6589 }
6590#endif
6591#ifdef VK_EXT_hdr_metadata
6592 if (!strcmp(name, "vkSetHdrMetadataEXT"))
6593 {
6594 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_hdr_metadata");
6595 return hasExt ? (void*)entry_vkSetHdrMetadataEXT : nullptr;
6596 }
6597#endif
6598#ifdef VK_MVK_ios_surface
6599 if (!strcmp(name, "vkCreateIOSSurfaceMVK"))
6600 {
6601 bool hasExt = resources->hasInstanceExtension(instance, "VK_MVK_ios_surface");
6602 return hasExt ? (void*)entry_vkCreateIOSSurfaceMVK : nullptr;
6603 }
6604#endif
6605#ifdef VK_MVK_macos_surface
6606 if (!strcmp(name, "vkCreateMacOSSurfaceMVK"))
6607 {
6608 bool hasExt = resources->hasInstanceExtension(instance, "VK_MVK_macos_surface");
6609 return hasExt ? (void*)entry_vkCreateMacOSSurfaceMVK : nullptr;
6610 }
6611#endif
6612#ifdef VK_EXT_debug_utils
6613 if (!strcmp(name, "vkSetDebugUtilsObjectNameEXT"))
6614 {
6615 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6616 return hasExt ? (void*)entry_vkSetDebugUtilsObjectNameEXT : nullptr;
6617 }
6618 if (!strcmp(name, "vkSetDebugUtilsObjectTagEXT"))
6619 {
6620 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6621 return hasExt ? (void*)entry_vkSetDebugUtilsObjectTagEXT : nullptr;
6622 }
6623 if (!strcmp(name, "vkQueueBeginDebugUtilsLabelEXT"))
6624 {
6625 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6626 return hasExt ? (void*)entry_vkQueueBeginDebugUtilsLabelEXT : nullptr;
6627 }
6628 if (!strcmp(name, "vkQueueEndDebugUtilsLabelEXT"))
6629 {
6630 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6631 return hasExt ? (void*)entry_vkQueueEndDebugUtilsLabelEXT : nullptr;
6632 }
6633 if (!strcmp(name, "vkQueueInsertDebugUtilsLabelEXT"))
6634 {
6635 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6636 return hasExt ? (void*)entry_vkQueueInsertDebugUtilsLabelEXT : nullptr;
6637 }
6638 if (!strcmp(name, "vkCmdBeginDebugUtilsLabelEXT"))
6639 {
6640 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6641 return hasExt ? (void*)entry_vkCmdBeginDebugUtilsLabelEXT : nullptr;
6642 }
6643 if (!strcmp(name, "vkCmdEndDebugUtilsLabelEXT"))
6644 {
6645 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6646 return hasExt ? (void*)entry_vkCmdEndDebugUtilsLabelEXT : nullptr;
6647 }
6648 if (!strcmp(name, "vkCmdInsertDebugUtilsLabelEXT"))
6649 {
6650 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6651 return hasExt ? (void*)entry_vkCmdInsertDebugUtilsLabelEXT : nullptr;
6652 }
6653 if (!strcmp(name, "vkCreateDebugUtilsMessengerEXT"))
6654 {
6655 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6656 return hasExt ? (void*)entry_vkCreateDebugUtilsMessengerEXT : nullptr;
6657 }
6658 if (!strcmp(name, "vkDestroyDebugUtilsMessengerEXT"))
6659 {
6660 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6661 return hasExt ? (void*)entry_vkDestroyDebugUtilsMessengerEXT : nullptr;
6662 }
6663 if (!strcmp(name, "vkSubmitDebugUtilsMessageEXT"))
6664 {
6665 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6666 return hasExt ? (void*)entry_vkSubmitDebugUtilsMessageEXT : nullptr;
6667 }
6668#endif
6669#ifdef VK_ANDROID_external_memory_android_hardware_buffer
6670 if (!strcmp(name, "vkGetAndroidHardwareBufferPropertiesANDROID"))
6671 {
6672 bool hasExt = resources->hasInstanceExtension(instance, "VK_ANDROID_external_memory_android_hardware_buffer");
6673 return hasExt ? (void*)entry_vkGetAndroidHardwareBufferPropertiesANDROID : nullptr;
6674 }
6675 if (!strcmp(name, "vkGetMemoryAndroidHardwareBufferANDROID"))
6676 {
6677 bool hasExt = resources->hasInstanceExtension(instance, "VK_ANDROID_external_memory_android_hardware_buffer");
6678 return hasExt ? (void*)entry_vkGetMemoryAndroidHardwareBufferANDROID : nullptr;
6679 }
6680#endif
6681#ifdef VK_EXT_sample_locations
6682 if (!strcmp(name, "vkCmdSetSampleLocationsEXT"))
6683 {
6684 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_sample_locations");
6685 return hasExt ? (void*)entry_vkCmdSetSampleLocationsEXT : nullptr;
6686 }
6687 if (!strcmp(name, "vkGetPhysicalDeviceMultisamplePropertiesEXT"))
6688 {
6689 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_sample_locations");
6690 return hasExt ? (void*)entry_vkGetPhysicalDeviceMultisamplePropertiesEXT : nullptr;
6691 }
6692#endif
6693#ifdef VK_EXT_validation_cache
6694 if (!strcmp(name, "vkCreateValidationCacheEXT"))
6695 {
6696 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_validation_cache");
6697 return hasExt ? (void*)entry_vkCreateValidationCacheEXT : nullptr;
6698 }
6699 if (!strcmp(name, "vkDestroyValidationCacheEXT"))
6700 {
6701 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_validation_cache");
6702 return hasExt ? (void*)entry_vkDestroyValidationCacheEXT : nullptr;
6703 }
6704 if (!strcmp(name, "vkMergeValidationCachesEXT"))
6705 {
6706 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_validation_cache");
6707 return hasExt ? (void*)entry_vkMergeValidationCachesEXT : nullptr;
6708 }
6709 if (!strcmp(name, "vkGetValidationCacheDataEXT"))
6710 {
6711 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_validation_cache");
6712 return hasExt ? (void*)entry_vkGetValidationCacheDataEXT : nullptr;
6713 }
6714#endif
6715#ifdef VK_EXT_external_memory_host
6716 if (!strcmp(name, "vkGetMemoryHostPointerPropertiesEXT"))
6717 {
6718 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_external_memory_host");
6719 return hasExt ? (void*)entry_vkGetMemoryHostPointerPropertiesEXT : nullptr;
6720 }
6721#endif
6722#ifdef VK_AMD_buffer_marker
6723 if (!strcmp(name, "vkCmdWriteBufferMarkerAMD"))
6724 {
6725 bool hasExt = resources->hasInstanceExtension(instance, "VK_AMD_buffer_marker");
6726 return hasExt ? (void*)entry_vkCmdWriteBufferMarkerAMD : nullptr;
6727 }
6728#endif
6729#ifdef VK_NV_device_diagnostic_checkpoints
6730 if (!strcmp(name, "vkCmdSetCheckpointNV"))
6731 {
6732 bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_device_diagnostic_checkpoints");
6733 return hasExt ? (void*)entry_vkCmdSetCheckpointNV : nullptr;
6734 }
6735 if (!strcmp(name, "vkGetQueueCheckpointDataNV"))
6736 {
6737 bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_device_diagnostic_checkpoints");
6738 return hasExt ? (void*)entry_vkGetQueueCheckpointDataNV : nullptr;
6739 }
6740#endif
6741#ifdef VK_GOOGLE_address_space
6742 if (!strcmp(name, "vkMapMemoryIntoAddressSpaceGOOGLE"))
6743 {
6744 bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_address_space");
6745 return hasExt ? (void*)entry_vkMapMemoryIntoAddressSpaceGOOGLE : nullptr;
6746 }
6747#endif
Lingfeng Yangae7e1b32019-02-19 14:07:39 -08006748#ifdef VK_GOOGLE_color_buffer
6749 if (!strcmp(name, "vkRegisterImageColorBufferGOOGLE"))
6750 {
6751 bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_color_buffer");
6752 return hasExt ? (void*)entry_vkRegisterImageColorBufferGOOGLE : nullptr;
6753 }
6754 if (!strcmp(name, "vkRegisterBufferColorBufferGOOGLE"))
6755 {
6756 bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_color_buffer");
6757 return hasExt ? (void*)entry_vkRegisterBufferColorBufferGOOGLE : nullptr;
6758 }
6759#endif
Lingfeng Yang05d5ea32019-03-23 00:12:39 -07006760#ifdef VK_GOOGLE_sized_descriptor_update_template
6761 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplateSizedGOOGLE"))
6762 {
6763 bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_sized_descriptor_update_template");
6764 return hasExt ? (void*)entry_vkUpdateDescriptorSetWithTemplateSizedGOOGLE : nullptr;
6765 }
6766#endif
Lingfeng Yangc53e7472019-03-27 08:50:55 -07006767#ifdef VK_GOOGLE_async_command_buffers
6768 if (!strcmp(name, "vkBeginCommandBufferAsyncGOOGLE"))
6769 {
6770 bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_async_command_buffers");
6771 return hasExt ? (void*)entry_vkBeginCommandBufferAsyncGOOGLE : nullptr;
6772 }
6773 if (!strcmp(name, "vkEndCommandBufferAsyncGOOGLE"))
6774 {
6775 bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_async_command_buffers");
6776 return hasExt ? (void*)entry_vkEndCommandBufferAsyncGOOGLE : nullptr;
6777 }
6778 if (!strcmp(name, "vkResetCommandBufferAsyncGOOGLE"))
6779 {
6780 bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_async_command_buffers");
6781 return hasExt ? (void*)entry_vkResetCommandBufferAsyncGOOGLE : nullptr;
6782 }
6783#endif
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08006784 return nullptr;
6785}
6786void* goldfish_vulkan_get_device_proc_address(VkDevice device, const char* name){
6787 auto resources = ResourceTracker::get();
6788 bool has1_1OrHigher = resources->getApiVersionFromDevice(device) >= VK_API_VERSION_1_1;
6789#ifdef VK_VERSION_1_0
6790 if (!strcmp(name, "vkCreateInstance"))
6791 {
6792 return (void*)entry_vkCreateInstance;
6793 }
6794 if (!strcmp(name, "vkDestroyInstance"))
6795 {
6796 return (void*)entry_vkDestroyInstance;
6797 }
6798 if (!strcmp(name, "vkEnumeratePhysicalDevices"))
6799 {
6800 return (void*)entry_vkEnumeratePhysicalDevices;
6801 }
6802 if (!strcmp(name, "vkGetPhysicalDeviceFeatures"))
6803 {
6804 return (void*)entry_vkGetPhysicalDeviceFeatures;
6805 }
6806 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties"))
6807 {
6808 return (void*)entry_vkGetPhysicalDeviceFormatProperties;
6809 }
6810 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties"))
6811 {
6812 return (void*)entry_vkGetPhysicalDeviceImageFormatProperties;
6813 }
6814 if (!strcmp(name, "vkGetPhysicalDeviceProperties"))
6815 {
6816 return (void*)entry_vkGetPhysicalDeviceProperties;
6817 }
6818 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties"))
6819 {
6820 return (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties;
6821 }
6822 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties"))
6823 {
6824 return (void*)entry_vkGetPhysicalDeviceMemoryProperties;
6825 }
6826 if (!strcmp(name, "vkGetInstanceProcAddr"))
6827 {
6828 return (void*)entry_vkGetInstanceProcAddr;
6829 }
6830 if (!strcmp(name, "vkGetDeviceProcAddr"))
6831 {
6832 return (void*)entry_vkGetDeviceProcAddr;
6833 }
6834 if (!strcmp(name, "vkCreateDevice"))
6835 {
6836 return (void*)entry_vkCreateDevice;
6837 }
6838 if (!strcmp(name, "vkDestroyDevice"))
6839 {
6840 return (void*)entry_vkDestroyDevice;
6841 }
6842 if (!strcmp(name, "vkEnumerateInstanceExtensionProperties"))
6843 {
6844 return (void*)entry_vkEnumerateInstanceExtensionProperties;
6845 }
6846 if (!strcmp(name, "vkEnumerateDeviceExtensionProperties"))
6847 {
6848 return (void*)entry_vkEnumerateDeviceExtensionProperties;
6849 }
6850 if (!strcmp(name, "vkEnumerateInstanceLayerProperties"))
6851 {
6852 return (void*)entry_vkEnumerateInstanceLayerProperties;
6853 }
6854 if (!strcmp(name, "vkEnumerateDeviceLayerProperties"))
6855 {
6856 return (void*)entry_vkEnumerateDeviceLayerProperties;
6857 }
6858 if (!strcmp(name, "vkGetDeviceQueue"))
6859 {
6860 return (void*)entry_vkGetDeviceQueue;
6861 }
6862 if (!strcmp(name, "vkQueueSubmit"))
6863 {
6864 return (void*)entry_vkQueueSubmit;
6865 }
6866 if (!strcmp(name, "vkQueueWaitIdle"))
6867 {
6868 return (void*)entry_vkQueueWaitIdle;
6869 }
6870 if (!strcmp(name, "vkDeviceWaitIdle"))
6871 {
6872 return (void*)entry_vkDeviceWaitIdle;
6873 }
6874 if (!strcmp(name, "vkAllocateMemory"))
6875 {
6876 return (void*)entry_vkAllocateMemory;
6877 }
6878 if (!strcmp(name, "vkFreeMemory"))
6879 {
6880 return (void*)entry_vkFreeMemory;
6881 }
6882 if (!strcmp(name, "vkMapMemory"))
6883 {
6884 return (void*)entry_vkMapMemory;
6885 }
6886 if (!strcmp(name, "vkUnmapMemory"))
6887 {
6888 return (void*)entry_vkUnmapMemory;
6889 }
6890 if (!strcmp(name, "vkFlushMappedMemoryRanges"))
6891 {
6892 return (void*)entry_vkFlushMappedMemoryRanges;
6893 }
6894 if (!strcmp(name, "vkInvalidateMappedMemoryRanges"))
6895 {
6896 return (void*)entry_vkInvalidateMappedMemoryRanges;
6897 }
6898 if (!strcmp(name, "vkGetDeviceMemoryCommitment"))
6899 {
6900 return (void*)entry_vkGetDeviceMemoryCommitment;
6901 }
6902 if (!strcmp(name, "vkBindBufferMemory"))
6903 {
6904 return (void*)entry_vkBindBufferMemory;
6905 }
6906 if (!strcmp(name, "vkBindImageMemory"))
6907 {
6908 return (void*)entry_vkBindImageMemory;
6909 }
6910 if (!strcmp(name, "vkGetBufferMemoryRequirements"))
6911 {
6912 return (void*)entry_vkGetBufferMemoryRequirements;
6913 }
6914 if (!strcmp(name, "vkGetImageMemoryRequirements"))
6915 {
6916 return (void*)entry_vkGetImageMemoryRequirements;
6917 }
6918 if (!strcmp(name, "vkGetImageSparseMemoryRequirements"))
6919 {
6920 return (void*)entry_vkGetImageSparseMemoryRequirements;
6921 }
6922 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties"))
6923 {
6924 return (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties;
6925 }
6926 if (!strcmp(name, "vkQueueBindSparse"))
6927 {
6928 return (void*)entry_vkQueueBindSparse;
6929 }
6930 if (!strcmp(name, "vkCreateFence"))
6931 {
6932 return (void*)entry_vkCreateFence;
6933 }
6934 if (!strcmp(name, "vkDestroyFence"))
6935 {
6936 return (void*)entry_vkDestroyFence;
6937 }
6938 if (!strcmp(name, "vkResetFences"))
6939 {
6940 return (void*)entry_vkResetFences;
6941 }
6942 if (!strcmp(name, "vkGetFenceStatus"))
6943 {
6944 return (void*)entry_vkGetFenceStatus;
6945 }
6946 if (!strcmp(name, "vkWaitForFences"))
6947 {
6948 return (void*)entry_vkWaitForFences;
6949 }
6950 if (!strcmp(name, "vkCreateSemaphore"))
6951 {
6952 return (void*)entry_vkCreateSemaphore;
6953 }
6954 if (!strcmp(name, "vkDestroySemaphore"))
6955 {
6956 return (void*)entry_vkDestroySemaphore;
6957 }
6958 if (!strcmp(name, "vkCreateEvent"))
6959 {
6960 return (void*)entry_vkCreateEvent;
6961 }
6962 if (!strcmp(name, "vkDestroyEvent"))
6963 {
6964 return (void*)entry_vkDestroyEvent;
6965 }
6966 if (!strcmp(name, "vkGetEventStatus"))
6967 {
6968 return (void*)entry_vkGetEventStatus;
6969 }
6970 if (!strcmp(name, "vkSetEvent"))
6971 {
6972 return (void*)entry_vkSetEvent;
6973 }
6974 if (!strcmp(name, "vkResetEvent"))
6975 {
6976 return (void*)entry_vkResetEvent;
6977 }
6978 if (!strcmp(name, "vkCreateQueryPool"))
6979 {
6980 return (void*)entry_vkCreateQueryPool;
6981 }
6982 if (!strcmp(name, "vkDestroyQueryPool"))
6983 {
6984 return (void*)entry_vkDestroyQueryPool;
6985 }
6986 if (!strcmp(name, "vkGetQueryPoolResults"))
6987 {
6988 return (void*)entry_vkGetQueryPoolResults;
6989 }
6990 if (!strcmp(name, "vkCreateBuffer"))
6991 {
6992 return (void*)entry_vkCreateBuffer;
6993 }
6994 if (!strcmp(name, "vkDestroyBuffer"))
6995 {
6996 return (void*)entry_vkDestroyBuffer;
6997 }
6998 if (!strcmp(name, "vkCreateBufferView"))
6999 {
7000 return (void*)entry_vkCreateBufferView;
7001 }
7002 if (!strcmp(name, "vkDestroyBufferView"))
7003 {
7004 return (void*)entry_vkDestroyBufferView;
7005 }
7006 if (!strcmp(name, "vkCreateImage"))
7007 {
7008 return (void*)entry_vkCreateImage;
7009 }
7010 if (!strcmp(name, "vkDestroyImage"))
7011 {
7012 return (void*)entry_vkDestroyImage;
7013 }
7014 if (!strcmp(name, "vkGetImageSubresourceLayout"))
7015 {
7016 return (void*)entry_vkGetImageSubresourceLayout;
7017 }
7018 if (!strcmp(name, "vkCreateImageView"))
7019 {
7020 return (void*)entry_vkCreateImageView;
7021 }
7022 if (!strcmp(name, "vkDestroyImageView"))
7023 {
7024 return (void*)entry_vkDestroyImageView;
7025 }
7026 if (!strcmp(name, "vkCreateShaderModule"))
7027 {
7028 return (void*)entry_vkCreateShaderModule;
7029 }
7030 if (!strcmp(name, "vkDestroyShaderModule"))
7031 {
7032 return (void*)entry_vkDestroyShaderModule;
7033 }
7034 if (!strcmp(name, "vkCreatePipelineCache"))
7035 {
7036 return (void*)entry_vkCreatePipelineCache;
7037 }
7038 if (!strcmp(name, "vkDestroyPipelineCache"))
7039 {
7040 return (void*)entry_vkDestroyPipelineCache;
7041 }
7042 if (!strcmp(name, "vkGetPipelineCacheData"))
7043 {
7044 return (void*)entry_vkGetPipelineCacheData;
7045 }
7046 if (!strcmp(name, "vkMergePipelineCaches"))
7047 {
7048 return (void*)entry_vkMergePipelineCaches;
7049 }
7050 if (!strcmp(name, "vkCreateGraphicsPipelines"))
7051 {
7052 return (void*)entry_vkCreateGraphicsPipelines;
7053 }
7054 if (!strcmp(name, "vkCreateComputePipelines"))
7055 {
7056 return (void*)entry_vkCreateComputePipelines;
7057 }
7058 if (!strcmp(name, "vkDestroyPipeline"))
7059 {
7060 return (void*)entry_vkDestroyPipeline;
7061 }
7062 if (!strcmp(name, "vkCreatePipelineLayout"))
7063 {
7064 return (void*)entry_vkCreatePipelineLayout;
7065 }
7066 if (!strcmp(name, "vkDestroyPipelineLayout"))
7067 {
7068 return (void*)entry_vkDestroyPipelineLayout;
7069 }
7070 if (!strcmp(name, "vkCreateSampler"))
7071 {
7072 return (void*)entry_vkCreateSampler;
7073 }
7074 if (!strcmp(name, "vkDestroySampler"))
7075 {
7076 return (void*)entry_vkDestroySampler;
7077 }
7078 if (!strcmp(name, "vkCreateDescriptorSetLayout"))
7079 {
7080 return (void*)entry_vkCreateDescriptorSetLayout;
7081 }
7082 if (!strcmp(name, "vkDestroyDescriptorSetLayout"))
7083 {
7084 return (void*)entry_vkDestroyDescriptorSetLayout;
7085 }
7086 if (!strcmp(name, "vkCreateDescriptorPool"))
7087 {
7088 return (void*)entry_vkCreateDescriptorPool;
7089 }
7090 if (!strcmp(name, "vkDestroyDescriptorPool"))
7091 {
7092 return (void*)entry_vkDestroyDescriptorPool;
7093 }
7094 if (!strcmp(name, "vkResetDescriptorPool"))
7095 {
7096 return (void*)entry_vkResetDescriptorPool;
7097 }
7098 if (!strcmp(name, "vkAllocateDescriptorSets"))
7099 {
7100 return (void*)entry_vkAllocateDescriptorSets;
7101 }
7102 if (!strcmp(name, "vkFreeDescriptorSets"))
7103 {
7104 return (void*)entry_vkFreeDescriptorSets;
7105 }
7106 if (!strcmp(name, "vkUpdateDescriptorSets"))
7107 {
7108 return (void*)entry_vkUpdateDescriptorSets;
7109 }
7110 if (!strcmp(name, "vkCreateFramebuffer"))
7111 {
7112 return (void*)entry_vkCreateFramebuffer;
7113 }
7114 if (!strcmp(name, "vkDestroyFramebuffer"))
7115 {
7116 return (void*)entry_vkDestroyFramebuffer;
7117 }
7118 if (!strcmp(name, "vkCreateRenderPass"))
7119 {
7120 return (void*)entry_vkCreateRenderPass;
7121 }
7122 if (!strcmp(name, "vkDestroyRenderPass"))
7123 {
7124 return (void*)entry_vkDestroyRenderPass;
7125 }
7126 if (!strcmp(name, "vkGetRenderAreaGranularity"))
7127 {
7128 return (void*)entry_vkGetRenderAreaGranularity;
7129 }
7130 if (!strcmp(name, "vkCreateCommandPool"))
7131 {
7132 return (void*)entry_vkCreateCommandPool;
7133 }
7134 if (!strcmp(name, "vkDestroyCommandPool"))
7135 {
7136 return (void*)entry_vkDestroyCommandPool;
7137 }
7138 if (!strcmp(name, "vkResetCommandPool"))
7139 {
7140 return (void*)entry_vkResetCommandPool;
7141 }
7142 if (!strcmp(name, "vkAllocateCommandBuffers"))
7143 {
7144 return (void*)entry_vkAllocateCommandBuffers;
7145 }
7146 if (!strcmp(name, "vkFreeCommandBuffers"))
7147 {
7148 return (void*)entry_vkFreeCommandBuffers;
7149 }
7150 if (!strcmp(name, "vkBeginCommandBuffer"))
7151 {
7152 return (void*)entry_vkBeginCommandBuffer;
7153 }
7154 if (!strcmp(name, "vkEndCommandBuffer"))
7155 {
7156 return (void*)entry_vkEndCommandBuffer;
7157 }
7158 if (!strcmp(name, "vkResetCommandBuffer"))
7159 {
7160 return (void*)entry_vkResetCommandBuffer;
7161 }
7162 if (!strcmp(name, "vkCmdBindPipeline"))
7163 {
7164 return (void*)entry_vkCmdBindPipeline;
7165 }
7166 if (!strcmp(name, "vkCmdSetViewport"))
7167 {
7168 return (void*)entry_vkCmdSetViewport;
7169 }
7170 if (!strcmp(name, "vkCmdSetScissor"))
7171 {
7172 return (void*)entry_vkCmdSetScissor;
7173 }
7174 if (!strcmp(name, "vkCmdSetLineWidth"))
7175 {
7176 return (void*)entry_vkCmdSetLineWidth;
7177 }
7178 if (!strcmp(name, "vkCmdSetDepthBias"))
7179 {
7180 return (void*)entry_vkCmdSetDepthBias;
7181 }
7182 if (!strcmp(name, "vkCmdSetBlendConstants"))
7183 {
7184 return (void*)entry_vkCmdSetBlendConstants;
7185 }
7186 if (!strcmp(name, "vkCmdSetDepthBounds"))
7187 {
7188 return (void*)entry_vkCmdSetDepthBounds;
7189 }
7190 if (!strcmp(name, "vkCmdSetStencilCompareMask"))
7191 {
7192 return (void*)entry_vkCmdSetStencilCompareMask;
7193 }
7194 if (!strcmp(name, "vkCmdSetStencilWriteMask"))
7195 {
7196 return (void*)entry_vkCmdSetStencilWriteMask;
7197 }
7198 if (!strcmp(name, "vkCmdSetStencilReference"))
7199 {
7200 return (void*)entry_vkCmdSetStencilReference;
7201 }
7202 if (!strcmp(name, "vkCmdBindDescriptorSets"))
7203 {
7204 return (void*)entry_vkCmdBindDescriptorSets;
7205 }
7206 if (!strcmp(name, "vkCmdBindIndexBuffer"))
7207 {
7208 return (void*)entry_vkCmdBindIndexBuffer;
7209 }
7210 if (!strcmp(name, "vkCmdBindVertexBuffers"))
7211 {
7212 return (void*)entry_vkCmdBindVertexBuffers;
7213 }
7214 if (!strcmp(name, "vkCmdDraw"))
7215 {
7216 return (void*)entry_vkCmdDraw;
7217 }
7218 if (!strcmp(name, "vkCmdDrawIndexed"))
7219 {
7220 return (void*)entry_vkCmdDrawIndexed;
7221 }
7222 if (!strcmp(name, "vkCmdDrawIndirect"))
7223 {
7224 return (void*)entry_vkCmdDrawIndirect;
7225 }
7226 if (!strcmp(name, "vkCmdDrawIndexedIndirect"))
7227 {
7228 return (void*)entry_vkCmdDrawIndexedIndirect;
7229 }
7230 if (!strcmp(name, "vkCmdDispatch"))
7231 {
7232 return (void*)entry_vkCmdDispatch;
7233 }
7234 if (!strcmp(name, "vkCmdDispatchIndirect"))
7235 {
7236 return (void*)entry_vkCmdDispatchIndirect;
7237 }
7238 if (!strcmp(name, "vkCmdCopyBuffer"))
7239 {
7240 return (void*)entry_vkCmdCopyBuffer;
7241 }
7242 if (!strcmp(name, "vkCmdCopyImage"))
7243 {
7244 return (void*)entry_vkCmdCopyImage;
7245 }
7246 if (!strcmp(name, "vkCmdBlitImage"))
7247 {
7248 return (void*)entry_vkCmdBlitImage;
7249 }
7250 if (!strcmp(name, "vkCmdCopyBufferToImage"))
7251 {
7252 return (void*)entry_vkCmdCopyBufferToImage;
7253 }
7254 if (!strcmp(name, "vkCmdCopyImageToBuffer"))
7255 {
7256 return (void*)entry_vkCmdCopyImageToBuffer;
7257 }
7258 if (!strcmp(name, "vkCmdUpdateBuffer"))
7259 {
7260 return (void*)entry_vkCmdUpdateBuffer;
7261 }
7262 if (!strcmp(name, "vkCmdFillBuffer"))
7263 {
7264 return (void*)entry_vkCmdFillBuffer;
7265 }
7266 if (!strcmp(name, "vkCmdClearColorImage"))
7267 {
7268 return (void*)entry_vkCmdClearColorImage;
7269 }
7270 if (!strcmp(name, "vkCmdClearDepthStencilImage"))
7271 {
7272 return (void*)entry_vkCmdClearDepthStencilImage;
7273 }
7274 if (!strcmp(name, "vkCmdClearAttachments"))
7275 {
7276 return (void*)entry_vkCmdClearAttachments;
7277 }
7278 if (!strcmp(name, "vkCmdResolveImage"))
7279 {
7280 return (void*)entry_vkCmdResolveImage;
7281 }
7282 if (!strcmp(name, "vkCmdSetEvent"))
7283 {
7284 return (void*)entry_vkCmdSetEvent;
7285 }
7286 if (!strcmp(name, "vkCmdResetEvent"))
7287 {
7288 return (void*)entry_vkCmdResetEvent;
7289 }
7290 if (!strcmp(name, "vkCmdWaitEvents"))
7291 {
7292 return (void*)entry_vkCmdWaitEvents;
7293 }
7294 if (!strcmp(name, "vkCmdPipelineBarrier"))
7295 {
7296 return (void*)entry_vkCmdPipelineBarrier;
7297 }
7298 if (!strcmp(name, "vkCmdBeginQuery"))
7299 {
7300 return (void*)entry_vkCmdBeginQuery;
7301 }
7302 if (!strcmp(name, "vkCmdEndQuery"))
7303 {
7304 return (void*)entry_vkCmdEndQuery;
7305 }
7306 if (!strcmp(name, "vkCmdResetQueryPool"))
7307 {
7308 return (void*)entry_vkCmdResetQueryPool;
7309 }
7310 if (!strcmp(name, "vkCmdWriteTimestamp"))
7311 {
7312 return (void*)entry_vkCmdWriteTimestamp;
7313 }
7314 if (!strcmp(name, "vkCmdCopyQueryPoolResults"))
7315 {
7316 return (void*)entry_vkCmdCopyQueryPoolResults;
7317 }
7318 if (!strcmp(name, "vkCmdPushConstants"))
7319 {
7320 return (void*)entry_vkCmdPushConstants;
7321 }
7322 if (!strcmp(name, "vkCmdBeginRenderPass"))
7323 {
7324 return (void*)entry_vkCmdBeginRenderPass;
7325 }
7326 if (!strcmp(name, "vkCmdNextSubpass"))
7327 {
7328 return (void*)entry_vkCmdNextSubpass;
7329 }
7330 if (!strcmp(name, "vkCmdEndRenderPass"))
7331 {
7332 return (void*)entry_vkCmdEndRenderPass;
7333 }
7334 if (!strcmp(name, "vkCmdExecuteCommands"))
7335 {
7336 return (void*)entry_vkCmdExecuteCommands;
7337 }
7338#endif
7339#ifdef VK_VERSION_1_1
7340 if (!strcmp(name, "vkEnumerateInstanceVersion"))
7341 {
7342 return has1_1OrHigher ? (void*)entry_vkEnumerateInstanceVersion : nullptr;
7343 }
7344 if (!strcmp(name, "vkBindBufferMemory2"))
7345 {
7346 return has1_1OrHigher ? (void*)entry_vkBindBufferMemory2 : nullptr;
7347 }
7348 if (!strcmp(name, "vkBindImageMemory2"))
7349 {
7350 return has1_1OrHigher ? (void*)entry_vkBindImageMemory2 : nullptr;
7351 }
7352 if (!strcmp(name, "vkGetDeviceGroupPeerMemoryFeatures"))
7353 {
7354 return has1_1OrHigher ? (void*)entry_vkGetDeviceGroupPeerMemoryFeatures : nullptr;
7355 }
7356 if (!strcmp(name, "vkCmdSetDeviceMask"))
7357 {
7358 return has1_1OrHigher ? (void*)entry_vkCmdSetDeviceMask : nullptr;
7359 }
7360 if (!strcmp(name, "vkCmdDispatchBase"))
7361 {
7362 return has1_1OrHigher ? (void*)entry_vkCmdDispatchBase : nullptr;
7363 }
7364 if (!strcmp(name, "vkEnumeratePhysicalDeviceGroups"))
7365 {
7366 return nullptr;
7367 }
7368 if (!strcmp(name, "vkGetImageMemoryRequirements2"))
7369 {
7370 return has1_1OrHigher ? (void*)entry_vkGetImageMemoryRequirements2 : nullptr;
7371 }
7372 if (!strcmp(name, "vkGetBufferMemoryRequirements2"))
7373 {
7374 return has1_1OrHigher ? (void*)entry_vkGetBufferMemoryRequirements2 : nullptr;
7375 }
7376 if (!strcmp(name, "vkGetImageSparseMemoryRequirements2"))
7377 {
7378 return has1_1OrHigher ? (void*)entry_vkGetImageSparseMemoryRequirements2 : nullptr;
7379 }
7380 if (!strcmp(name, "vkGetPhysicalDeviceFeatures2"))
7381 {
7382 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceFeatures2 : nullptr;
7383 }
7384 if (!strcmp(name, "vkGetPhysicalDeviceProperties2"))
7385 {
7386 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceProperties2 : nullptr;
7387 }
7388 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties2"))
7389 {
7390 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceFormatProperties2 : nullptr;
7391 }
7392 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties2"))
7393 {
7394 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceImageFormatProperties2 : nullptr;
7395 }
7396 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties2"))
7397 {
7398 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties2 : nullptr;
7399 }
7400 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties2"))
7401 {
7402 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceMemoryProperties2 : nullptr;
7403 }
7404 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties2"))
7405 {
7406 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties2 : nullptr;
7407 }
7408 if (!strcmp(name, "vkTrimCommandPool"))
7409 {
7410 return has1_1OrHigher ? (void*)entry_vkTrimCommandPool : nullptr;
7411 }
7412 if (!strcmp(name, "vkGetDeviceQueue2"))
7413 {
7414 return has1_1OrHigher ? (void*)entry_vkGetDeviceQueue2 : nullptr;
7415 }
7416 if (!strcmp(name, "vkCreateSamplerYcbcrConversion"))
7417 {
7418 return has1_1OrHigher ? (void*)entry_vkCreateSamplerYcbcrConversion : nullptr;
7419 }
7420 if (!strcmp(name, "vkDestroySamplerYcbcrConversion"))
7421 {
7422 return has1_1OrHigher ? (void*)entry_vkDestroySamplerYcbcrConversion : nullptr;
7423 }
7424 if (!strcmp(name, "vkCreateDescriptorUpdateTemplate"))
7425 {
7426 return has1_1OrHigher ? (void*)entry_vkCreateDescriptorUpdateTemplate : nullptr;
7427 }
7428 if (!strcmp(name, "vkDestroyDescriptorUpdateTemplate"))
7429 {
7430 return has1_1OrHigher ? (void*)entry_vkDestroyDescriptorUpdateTemplate : nullptr;
7431 }
7432 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplate"))
7433 {
7434 return has1_1OrHigher ? (void*)entry_vkUpdateDescriptorSetWithTemplate : nullptr;
7435 }
7436 if (!strcmp(name, "vkGetPhysicalDeviceExternalBufferProperties"))
7437 {
7438 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceExternalBufferProperties : nullptr;
7439 }
7440 if (!strcmp(name, "vkGetPhysicalDeviceExternalFenceProperties"))
7441 {
7442 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceExternalFenceProperties : nullptr;
7443 }
7444 if (!strcmp(name, "vkGetPhysicalDeviceExternalSemaphoreProperties"))
7445 {
7446 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceExternalSemaphoreProperties : nullptr;
7447 }
7448 if (!strcmp(name, "vkGetDescriptorSetLayoutSupport"))
7449 {
7450 return has1_1OrHigher ? (void*)entry_vkGetDescriptorSetLayoutSupport : nullptr;
7451 }
7452#endif
7453#ifdef VK_KHR_surface
7454 if (!strcmp(name, "vkDestroySurfaceKHR"))
7455 {
7456 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_surface");
7457 return hasExt ? (void*)entry_vkDestroySurfaceKHR : nullptr;
7458 }
7459 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceSupportKHR"))
7460 {
7461 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_surface");
7462 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceSupportKHR : nullptr;
7463 }
7464 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR"))
7465 {
7466 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_surface");
7467 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceCapabilitiesKHR : nullptr;
7468 }
7469 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceFormatsKHR"))
7470 {
7471 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_surface");
7472 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceFormatsKHR : nullptr;
7473 }
7474 if (!strcmp(name, "vkGetPhysicalDeviceSurfacePresentModesKHR"))
7475 {
7476 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_surface");
7477 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfacePresentModesKHR : nullptr;
7478 }
7479#endif
7480#ifdef VK_KHR_swapchain
7481 if (!strcmp(name, "vkCreateSwapchainKHR"))
7482 {
7483 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7484 return hasExt ? (void*)entry_vkCreateSwapchainKHR : nullptr;
7485 }
7486 if (!strcmp(name, "vkDestroySwapchainKHR"))
7487 {
7488 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7489 return hasExt ? (void*)entry_vkDestroySwapchainKHR : nullptr;
7490 }
7491 if (!strcmp(name, "vkGetSwapchainImagesKHR"))
7492 {
7493 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7494 return hasExt ? (void*)entry_vkGetSwapchainImagesKHR : nullptr;
7495 }
7496 if (!strcmp(name, "vkAcquireNextImageKHR"))
7497 {
7498 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7499 return hasExt ? (void*)entry_vkAcquireNextImageKHR : nullptr;
7500 }
7501 if (!strcmp(name, "vkQueuePresentKHR"))
7502 {
7503 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7504 return hasExt ? (void*)entry_vkQueuePresentKHR : nullptr;
7505 }
7506 if (!strcmp(name, "vkGetDeviceGroupPresentCapabilitiesKHR"))
7507 {
7508 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7509 return hasExt ? (void*)entry_vkGetDeviceGroupPresentCapabilitiesKHR : nullptr;
7510 }
7511 if (!strcmp(name, "vkGetDeviceGroupSurfacePresentModesKHR"))
7512 {
7513 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7514 return hasExt ? (void*)entry_vkGetDeviceGroupSurfacePresentModesKHR : nullptr;
7515 }
7516 if (!strcmp(name, "vkGetPhysicalDevicePresentRectanglesKHR"))
7517 {
7518 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7519 return hasExt ? (void*)entry_vkGetPhysicalDevicePresentRectanglesKHR : nullptr;
7520 }
7521 if (!strcmp(name, "vkAcquireNextImage2KHR"))
7522 {
7523 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7524 return hasExt ? (void*)entry_vkAcquireNextImage2KHR : nullptr;
7525 }
7526#endif
7527#ifdef VK_KHR_display
7528 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPropertiesKHR"))
7529 {
7530 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
7531 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayPropertiesKHR : nullptr;
7532 }
7533 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR"))
7534 {
7535 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
7536 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayPlanePropertiesKHR : nullptr;
7537 }
7538 if (!strcmp(name, "vkGetDisplayPlaneSupportedDisplaysKHR"))
7539 {
7540 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
7541 return hasExt ? (void*)entry_vkGetDisplayPlaneSupportedDisplaysKHR : nullptr;
7542 }
7543 if (!strcmp(name, "vkGetDisplayModePropertiesKHR"))
7544 {
7545 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
7546 return hasExt ? (void*)entry_vkGetDisplayModePropertiesKHR : nullptr;
7547 }
7548 if (!strcmp(name, "vkCreateDisplayModeKHR"))
7549 {
7550 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
7551 return hasExt ? (void*)entry_vkCreateDisplayModeKHR : nullptr;
7552 }
7553 if (!strcmp(name, "vkGetDisplayPlaneCapabilitiesKHR"))
7554 {
7555 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
7556 return hasExt ? (void*)entry_vkGetDisplayPlaneCapabilitiesKHR : nullptr;
7557 }
7558 if (!strcmp(name, "vkCreateDisplayPlaneSurfaceKHR"))
7559 {
7560 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
7561 return hasExt ? (void*)entry_vkCreateDisplayPlaneSurfaceKHR : nullptr;
7562 }
7563#endif
7564#ifdef VK_KHR_display_swapchain
7565 if (!strcmp(name, "vkCreateSharedSwapchainsKHR"))
7566 {
7567 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display_swapchain");
7568 return hasExt ? (void*)entry_vkCreateSharedSwapchainsKHR : nullptr;
7569 }
7570#endif
7571#ifdef VK_KHR_xlib_surface
7572 if (!strcmp(name, "vkCreateXlibSurfaceKHR"))
7573 {
7574 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_xlib_surface");
7575 return hasExt ? (void*)entry_vkCreateXlibSurfaceKHR : nullptr;
7576 }
7577 if (!strcmp(name, "vkGetPhysicalDeviceXlibPresentationSupportKHR"))
7578 {
7579 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_xlib_surface");
7580 return hasExt ? (void*)entry_vkGetPhysicalDeviceXlibPresentationSupportKHR : nullptr;
7581 }
7582#endif
7583#ifdef VK_KHR_xcb_surface
7584 if (!strcmp(name, "vkCreateXcbSurfaceKHR"))
7585 {
7586 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_xcb_surface");
7587 return hasExt ? (void*)entry_vkCreateXcbSurfaceKHR : nullptr;
7588 }
7589 if (!strcmp(name, "vkGetPhysicalDeviceXcbPresentationSupportKHR"))
7590 {
7591 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_xcb_surface");
7592 return hasExt ? (void*)entry_vkGetPhysicalDeviceXcbPresentationSupportKHR : nullptr;
7593 }
7594#endif
7595#ifdef VK_KHR_wayland_surface
7596 if (!strcmp(name, "vkCreateWaylandSurfaceKHR"))
7597 {
7598 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_wayland_surface");
7599 return hasExt ? (void*)entry_vkCreateWaylandSurfaceKHR : nullptr;
7600 }
7601 if (!strcmp(name, "vkGetPhysicalDeviceWaylandPresentationSupportKHR"))
7602 {
7603 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_wayland_surface");
7604 return hasExt ? (void*)entry_vkGetPhysicalDeviceWaylandPresentationSupportKHR : nullptr;
7605 }
7606#endif
7607#ifdef VK_KHR_mir_surface
7608 if (!strcmp(name, "vkCreateMirSurfaceKHR"))
7609 {
7610 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_mir_surface");
7611 return hasExt ? (void*)entry_vkCreateMirSurfaceKHR : nullptr;
7612 }
7613 if (!strcmp(name, "vkGetPhysicalDeviceMirPresentationSupportKHR"))
7614 {
7615 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_mir_surface");
7616 return hasExt ? (void*)entry_vkGetPhysicalDeviceMirPresentationSupportKHR : nullptr;
7617 }
7618#endif
7619#ifdef VK_KHR_android_surface
7620 if (!strcmp(name, "vkCreateAndroidSurfaceKHR"))
7621 {
7622 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_android_surface");
7623 return hasExt ? (void*)entry_vkCreateAndroidSurfaceKHR : nullptr;
7624 }
7625#endif
7626#ifdef VK_KHR_win32_surface
7627 if (!strcmp(name, "vkCreateWin32SurfaceKHR"))
7628 {
7629 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_win32_surface");
7630 return hasExt ? (void*)entry_vkCreateWin32SurfaceKHR : nullptr;
7631 }
7632 if (!strcmp(name, "vkGetPhysicalDeviceWin32PresentationSupportKHR"))
7633 {
7634 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_win32_surface");
7635 return hasExt ? (void*)entry_vkGetPhysicalDeviceWin32PresentationSupportKHR : nullptr;
7636 }
7637#endif
7638#ifdef VK_KHR_get_physical_device_properties2
7639 if (!strcmp(name, "vkGetPhysicalDeviceFeatures2KHR"))
7640 {
7641 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
7642 return hasExt ? (void*)entry_vkGetPhysicalDeviceFeatures2KHR : nullptr;
7643 }
7644 if (!strcmp(name, "vkGetPhysicalDeviceProperties2KHR"))
7645 {
7646 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
7647 return hasExt ? (void*)entry_vkGetPhysicalDeviceProperties2KHR : nullptr;
7648 }
7649 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties2KHR"))
7650 {
7651 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
7652 return hasExt ? (void*)entry_vkGetPhysicalDeviceFormatProperties2KHR : nullptr;
7653 }
7654 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties2KHR"))
7655 {
7656 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
7657 return hasExt ? (void*)entry_vkGetPhysicalDeviceImageFormatProperties2KHR : nullptr;
7658 }
7659 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties2KHR"))
7660 {
7661 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
7662 return hasExt ? (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties2KHR : nullptr;
7663 }
7664 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties2KHR"))
7665 {
7666 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
7667 return hasExt ? (void*)entry_vkGetPhysicalDeviceMemoryProperties2KHR : nullptr;
7668 }
7669 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR"))
7670 {
7671 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
7672 return hasExt ? (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties2KHR : nullptr;
7673 }
7674#endif
7675#ifdef VK_KHR_device_group
7676 if (!strcmp(name, "vkGetDeviceGroupPeerMemoryFeaturesKHR"))
7677 {
7678 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_device_group");
7679 return hasExt ? (void*)entry_vkGetDeviceGroupPeerMemoryFeaturesKHR : nullptr;
7680 }
7681 if (!strcmp(name, "vkCmdSetDeviceMaskKHR"))
7682 {
7683 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_device_group");
7684 return hasExt ? (void*)entry_vkCmdSetDeviceMaskKHR : nullptr;
7685 }
7686 if (!strcmp(name, "vkCmdDispatchBaseKHR"))
7687 {
7688 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_device_group");
7689 return hasExt ? (void*)entry_vkCmdDispatchBaseKHR : nullptr;
7690 }
7691#endif
7692#ifdef VK_KHR_maintenance1
7693 if (!strcmp(name, "vkTrimCommandPoolKHR"))
7694 {
7695 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_maintenance1");
7696 return hasExt ? (void*)entry_vkTrimCommandPoolKHR : nullptr;
7697 }
7698#endif
7699#ifdef VK_KHR_device_group_creation
7700 if (!strcmp(name, "vkEnumeratePhysicalDeviceGroupsKHR"))
7701 {
7702 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_device_group_creation");
7703 return hasExt ? (void*)entry_vkEnumeratePhysicalDeviceGroupsKHR : nullptr;
7704 }
7705#endif
7706#ifdef VK_KHR_external_memory_capabilities
7707 if (!strcmp(name, "vkGetPhysicalDeviceExternalBufferPropertiesKHR"))
7708 {
7709 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_memory_capabilities");
7710 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalBufferPropertiesKHR : nullptr;
7711 }
7712#endif
7713#ifdef VK_KHR_external_memory_win32
7714 if (!strcmp(name, "vkGetMemoryWin32HandleKHR"))
7715 {
7716 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_memory_win32");
7717 return hasExt ? (void*)entry_vkGetMemoryWin32HandleKHR : nullptr;
7718 }
7719 if (!strcmp(name, "vkGetMemoryWin32HandlePropertiesKHR"))
7720 {
7721 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_memory_win32");
7722 return hasExt ? (void*)entry_vkGetMemoryWin32HandlePropertiesKHR : nullptr;
7723 }
7724#endif
7725#ifdef VK_KHR_external_memory_fd
7726 if (!strcmp(name, "vkGetMemoryFdKHR"))
7727 {
7728 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_memory_fd");
7729 return hasExt ? (void*)entry_vkGetMemoryFdKHR : nullptr;
7730 }
7731 if (!strcmp(name, "vkGetMemoryFdPropertiesKHR"))
7732 {
7733 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_memory_fd");
7734 return hasExt ? (void*)entry_vkGetMemoryFdPropertiesKHR : nullptr;
7735 }
7736#endif
7737#ifdef VK_KHR_external_semaphore_capabilities
7738 if (!strcmp(name, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR"))
7739 {
7740 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_semaphore_capabilities");
7741 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR : nullptr;
7742 }
7743#endif
7744#ifdef VK_KHR_external_semaphore_win32
7745 if (!strcmp(name, "vkImportSemaphoreWin32HandleKHR"))
7746 {
7747 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_semaphore_win32");
7748 return hasExt ? (void*)entry_vkImportSemaphoreWin32HandleKHR : nullptr;
7749 }
7750 if (!strcmp(name, "vkGetSemaphoreWin32HandleKHR"))
7751 {
7752 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_semaphore_win32");
7753 return hasExt ? (void*)entry_vkGetSemaphoreWin32HandleKHR : nullptr;
7754 }
7755#endif
7756#ifdef VK_KHR_external_semaphore_fd
7757 if (!strcmp(name, "vkImportSemaphoreFdKHR"))
7758 {
7759 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_semaphore_fd");
7760 return hasExt ? (void*)entry_vkImportSemaphoreFdKHR : nullptr;
7761 }
7762 if (!strcmp(name, "vkGetSemaphoreFdKHR"))
7763 {
7764 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_semaphore_fd");
7765 return hasExt ? (void*)entry_vkGetSemaphoreFdKHR : nullptr;
7766 }
7767#endif
7768#ifdef VK_KHR_push_descriptor
7769 if (!strcmp(name, "vkCmdPushDescriptorSetKHR"))
7770 {
7771 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_push_descriptor");
7772 return hasExt ? (void*)entry_vkCmdPushDescriptorSetKHR : nullptr;
7773 }
7774 if (!strcmp(name, "vkCmdPushDescriptorSetWithTemplateKHR"))
7775 {
7776 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_push_descriptor");
7777 return hasExt ? (void*)entry_vkCmdPushDescriptorSetWithTemplateKHR : nullptr;
7778 }
7779#endif
7780#ifdef VK_KHR_descriptor_update_template
7781 if (!strcmp(name, "vkCreateDescriptorUpdateTemplateKHR"))
7782 {
7783 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_descriptor_update_template");
7784 return hasExt ? (void*)entry_vkCreateDescriptorUpdateTemplateKHR : nullptr;
7785 }
7786 if (!strcmp(name, "vkDestroyDescriptorUpdateTemplateKHR"))
7787 {
7788 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_descriptor_update_template");
7789 return hasExt ? (void*)entry_vkDestroyDescriptorUpdateTemplateKHR : nullptr;
7790 }
7791 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplateKHR"))
7792 {
7793 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_descriptor_update_template");
7794 return hasExt ? (void*)entry_vkUpdateDescriptorSetWithTemplateKHR : nullptr;
7795 }
7796#endif
7797#ifdef VK_KHR_create_renderpass2
7798 if (!strcmp(name, "vkCreateRenderPass2KHR"))
7799 {
7800 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_create_renderpass2");
7801 return hasExt ? (void*)entry_vkCreateRenderPass2KHR : nullptr;
7802 }
7803 if (!strcmp(name, "vkCmdBeginRenderPass2KHR"))
7804 {
7805 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_create_renderpass2");
7806 return hasExt ? (void*)entry_vkCmdBeginRenderPass2KHR : nullptr;
7807 }
7808 if (!strcmp(name, "vkCmdNextSubpass2KHR"))
7809 {
7810 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_create_renderpass2");
7811 return hasExt ? (void*)entry_vkCmdNextSubpass2KHR : nullptr;
7812 }
7813 if (!strcmp(name, "vkCmdEndRenderPass2KHR"))
7814 {
7815 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_create_renderpass2");
7816 return hasExt ? (void*)entry_vkCmdEndRenderPass2KHR : nullptr;
7817 }
7818#endif
7819#ifdef VK_KHR_shared_presentable_image
7820 if (!strcmp(name, "vkGetSwapchainStatusKHR"))
7821 {
7822 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_shared_presentable_image");
7823 return hasExt ? (void*)entry_vkGetSwapchainStatusKHR : nullptr;
7824 }
7825#endif
7826#ifdef VK_KHR_external_fence_capabilities
7827 if (!strcmp(name, "vkGetPhysicalDeviceExternalFencePropertiesKHR"))
7828 {
7829 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_fence_capabilities");
7830 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalFencePropertiesKHR : nullptr;
7831 }
7832#endif
7833#ifdef VK_KHR_external_fence_win32
7834 if (!strcmp(name, "vkImportFenceWin32HandleKHR"))
7835 {
7836 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_fence_win32");
7837 return hasExt ? (void*)entry_vkImportFenceWin32HandleKHR : nullptr;
7838 }
7839 if (!strcmp(name, "vkGetFenceWin32HandleKHR"))
7840 {
7841 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_fence_win32");
7842 return hasExt ? (void*)entry_vkGetFenceWin32HandleKHR : nullptr;
7843 }
7844#endif
7845#ifdef VK_KHR_external_fence_fd
7846 if (!strcmp(name, "vkImportFenceFdKHR"))
7847 {
7848 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_fence_fd");
7849 return hasExt ? (void*)entry_vkImportFenceFdKHR : nullptr;
7850 }
7851 if (!strcmp(name, "vkGetFenceFdKHR"))
7852 {
7853 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_fence_fd");
7854 return hasExt ? (void*)entry_vkGetFenceFdKHR : nullptr;
7855 }
7856#endif
7857#ifdef VK_KHR_get_surface_capabilities2
7858 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2KHR"))
7859 {
7860 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_surface_capabilities2");
7861 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceCapabilities2KHR : nullptr;
7862 }
7863 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceFormats2KHR"))
7864 {
7865 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_surface_capabilities2");
7866 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceFormats2KHR : nullptr;
7867 }
7868#endif
7869#ifdef VK_KHR_get_display_properties2
7870 if (!strcmp(name, "vkGetPhysicalDeviceDisplayProperties2KHR"))
7871 {
7872 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_display_properties2");
7873 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayProperties2KHR : nullptr;
7874 }
7875 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR"))
7876 {
7877 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_display_properties2");
7878 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayPlaneProperties2KHR : nullptr;
7879 }
7880 if (!strcmp(name, "vkGetDisplayModeProperties2KHR"))
7881 {
7882 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_display_properties2");
7883 return hasExt ? (void*)entry_vkGetDisplayModeProperties2KHR : nullptr;
7884 }
7885 if (!strcmp(name, "vkGetDisplayPlaneCapabilities2KHR"))
7886 {
7887 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_display_properties2");
7888 return hasExt ? (void*)entry_vkGetDisplayPlaneCapabilities2KHR : nullptr;
7889 }
7890#endif
7891#ifdef VK_KHR_get_memory_requirements2
7892 if (!strcmp(name, "vkGetImageMemoryRequirements2KHR"))
7893 {
7894 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_memory_requirements2");
7895 return hasExt ? (void*)entry_vkGetImageMemoryRequirements2KHR : nullptr;
7896 }
7897 if (!strcmp(name, "vkGetBufferMemoryRequirements2KHR"))
7898 {
7899 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_memory_requirements2");
7900 return hasExt ? (void*)entry_vkGetBufferMemoryRequirements2KHR : nullptr;
7901 }
7902 if (!strcmp(name, "vkGetImageSparseMemoryRequirements2KHR"))
7903 {
7904 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_memory_requirements2");
7905 return hasExt ? (void*)entry_vkGetImageSparseMemoryRequirements2KHR : nullptr;
7906 }
7907#endif
7908#ifdef VK_KHR_sampler_ycbcr_conversion
7909 if (!strcmp(name, "vkCreateSamplerYcbcrConversionKHR"))
7910 {
7911 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_sampler_ycbcr_conversion");
7912 return hasExt ? (void*)entry_vkCreateSamplerYcbcrConversionKHR : nullptr;
7913 }
7914 if (!strcmp(name, "vkDestroySamplerYcbcrConversionKHR"))
7915 {
7916 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_sampler_ycbcr_conversion");
7917 return hasExt ? (void*)entry_vkDestroySamplerYcbcrConversionKHR : nullptr;
7918 }
7919#endif
7920#ifdef VK_KHR_bind_memory2
7921 if (!strcmp(name, "vkBindBufferMemory2KHR"))
7922 {
7923 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_bind_memory2");
7924 return hasExt ? (void*)entry_vkBindBufferMemory2KHR : nullptr;
7925 }
7926 if (!strcmp(name, "vkBindImageMemory2KHR"))
7927 {
7928 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_bind_memory2");
7929 return hasExt ? (void*)entry_vkBindImageMemory2KHR : nullptr;
7930 }
7931#endif
7932#ifdef VK_KHR_maintenance3
7933 if (!strcmp(name, "vkGetDescriptorSetLayoutSupportKHR"))
7934 {
7935 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_maintenance3");
7936 return hasExt ? (void*)entry_vkGetDescriptorSetLayoutSupportKHR : nullptr;
7937 }
7938#endif
7939#ifdef VK_KHR_draw_indirect_count
7940 if (!strcmp(name, "vkCmdDrawIndirectCountKHR"))
7941 {
7942 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_draw_indirect_count");
7943 return hasExt ? (void*)entry_vkCmdDrawIndirectCountKHR : nullptr;
7944 }
7945 if (!strcmp(name, "vkCmdDrawIndexedIndirectCountKHR"))
7946 {
7947 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_draw_indirect_count");
7948 return hasExt ? (void*)entry_vkCmdDrawIndexedIndirectCountKHR : nullptr;
7949 }
7950#endif
7951#ifdef VK_ANDROID_native_buffer
7952 if (!strcmp(name, "vkGetSwapchainGrallocUsageANDROID"))
7953 {
7954 bool hasExt = resources->hasDeviceExtension(device, "VK_ANDROID_native_buffer");
7955 return hasExt ? (void*)entry_vkGetSwapchainGrallocUsageANDROID : nullptr;
7956 }
7957 if (!strcmp(name, "vkAcquireImageANDROID"))
7958 {
7959 bool hasExt = resources->hasDeviceExtension(device, "VK_ANDROID_native_buffer");
7960 return hasExt ? (void*)entry_vkAcquireImageANDROID : nullptr;
7961 }
7962 if (!strcmp(name, "vkQueueSignalReleaseImageANDROID"))
7963 {
7964 bool hasExt = resources->hasDeviceExtension(device, "VK_ANDROID_native_buffer");
7965 return hasExt ? (void*)entry_vkQueueSignalReleaseImageANDROID : nullptr;
7966 }
7967#endif
7968#ifdef VK_EXT_debug_report
7969 if (!strcmp(name, "vkCreateDebugReportCallbackEXT"))
7970 {
7971 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_report");
7972 return hasExt ? (void*)entry_vkCreateDebugReportCallbackEXT : nullptr;
7973 }
7974 if (!strcmp(name, "vkDestroyDebugReportCallbackEXT"))
7975 {
7976 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_report");
7977 return hasExt ? (void*)entry_vkDestroyDebugReportCallbackEXT : nullptr;
7978 }
7979 if (!strcmp(name, "vkDebugReportMessageEXT"))
7980 {
7981 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_report");
7982 return hasExt ? (void*)entry_vkDebugReportMessageEXT : nullptr;
7983 }
7984#endif
7985#ifdef VK_EXT_debug_marker
7986 if (!strcmp(name, "vkDebugMarkerSetObjectTagEXT"))
7987 {
7988 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_marker");
7989 return hasExt ? (void*)entry_vkDebugMarkerSetObjectTagEXT : nullptr;
7990 }
7991 if (!strcmp(name, "vkDebugMarkerSetObjectNameEXT"))
7992 {
7993 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_marker");
7994 return hasExt ? (void*)entry_vkDebugMarkerSetObjectNameEXT : nullptr;
7995 }
7996 if (!strcmp(name, "vkCmdDebugMarkerBeginEXT"))
7997 {
7998 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_marker");
7999 return hasExt ? (void*)entry_vkCmdDebugMarkerBeginEXT : nullptr;
8000 }
8001 if (!strcmp(name, "vkCmdDebugMarkerEndEXT"))
8002 {
8003 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_marker");
8004 return hasExt ? (void*)entry_vkCmdDebugMarkerEndEXT : nullptr;
8005 }
8006 if (!strcmp(name, "vkCmdDebugMarkerInsertEXT"))
8007 {
8008 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_marker");
8009 return hasExt ? (void*)entry_vkCmdDebugMarkerInsertEXT : nullptr;
8010 }
8011#endif
8012#ifdef VK_AMD_draw_indirect_count
8013 if (!strcmp(name, "vkCmdDrawIndirectCountAMD"))
8014 {
8015 bool hasExt = resources->hasDeviceExtension(device, "VK_AMD_draw_indirect_count");
8016 return hasExt ? (void*)entry_vkCmdDrawIndirectCountAMD : nullptr;
8017 }
8018 if (!strcmp(name, "vkCmdDrawIndexedIndirectCountAMD"))
8019 {
8020 bool hasExt = resources->hasDeviceExtension(device, "VK_AMD_draw_indirect_count");
8021 return hasExt ? (void*)entry_vkCmdDrawIndexedIndirectCountAMD : nullptr;
8022 }
8023#endif
8024#ifdef VK_AMD_shader_info
8025 if (!strcmp(name, "vkGetShaderInfoAMD"))
8026 {
8027 bool hasExt = resources->hasDeviceExtension(device, "VK_AMD_shader_info");
8028 return hasExt ? (void*)entry_vkGetShaderInfoAMD : nullptr;
8029 }
8030#endif
8031#ifdef VK_NV_external_memory_capabilities
8032 if (!strcmp(name, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV"))
8033 {
8034 bool hasExt = resources->hasDeviceExtension(device, "VK_NV_external_memory_capabilities");
8035 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalImageFormatPropertiesNV : nullptr;
8036 }
8037#endif
8038#ifdef VK_NV_external_memory_win32
8039 if (!strcmp(name, "vkGetMemoryWin32HandleNV"))
8040 {
8041 bool hasExt = resources->hasDeviceExtension(device, "VK_NV_external_memory_win32");
8042 return hasExt ? (void*)entry_vkGetMemoryWin32HandleNV : nullptr;
8043 }
8044#endif
8045#ifdef VK_NN_vi_surface
8046 if (!strcmp(name, "vkCreateViSurfaceNN"))
8047 {
8048 bool hasExt = resources->hasDeviceExtension(device, "VK_NN_vi_surface");
8049 return hasExt ? (void*)entry_vkCreateViSurfaceNN : nullptr;
8050 }
8051#endif
8052#ifdef VK_EXT_conditional_rendering
8053 if (!strcmp(name, "vkCmdBeginConditionalRenderingEXT"))
8054 {
8055 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_conditional_rendering");
8056 return hasExt ? (void*)entry_vkCmdBeginConditionalRenderingEXT : nullptr;
8057 }
8058 if (!strcmp(name, "vkCmdEndConditionalRenderingEXT"))
8059 {
8060 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_conditional_rendering");
8061 return hasExt ? (void*)entry_vkCmdEndConditionalRenderingEXT : nullptr;
8062 }
8063#endif
8064#ifdef VK_NVX_device_generated_commands
8065 if (!strcmp(name, "vkCmdProcessCommandsNVX"))
8066 {
8067 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
8068 return hasExt ? (void*)entry_vkCmdProcessCommandsNVX : nullptr;
8069 }
8070 if (!strcmp(name, "vkCmdReserveSpaceForCommandsNVX"))
8071 {
8072 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
8073 return hasExt ? (void*)entry_vkCmdReserveSpaceForCommandsNVX : nullptr;
8074 }
8075 if (!strcmp(name, "vkCreateIndirectCommandsLayoutNVX"))
8076 {
8077 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
8078 return hasExt ? (void*)entry_vkCreateIndirectCommandsLayoutNVX : nullptr;
8079 }
8080 if (!strcmp(name, "vkDestroyIndirectCommandsLayoutNVX"))
8081 {
8082 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
8083 return hasExt ? (void*)entry_vkDestroyIndirectCommandsLayoutNVX : nullptr;
8084 }
8085 if (!strcmp(name, "vkCreateObjectTableNVX"))
8086 {
8087 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
8088 return hasExt ? (void*)entry_vkCreateObjectTableNVX : nullptr;
8089 }
8090 if (!strcmp(name, "vkDestroyObjectTableNVX"))
8091 {
8092 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
8093 return hasExt ? (void*)entry_vkDestroyObjectTableNVX : nullptr;
8094 }
8095 if (!strcmp(name, "vkRegisterObjectsNVX"))
8096 {
8097 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
8098 return hasExt ? (void*)entry_vkRegisterObjectsNVX : nullptr;
8099 }
8100 if (!strcmp(name, "vkUnregisterObjectsNVX"))
8101 {
8102 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
8103 return hasExt ? (void*)entry_vkUnregisterObjectsNVX : nullptr;
8104 }
8105 if (!strcmp(name, "vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX"))
8106 {
8107 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
8108 return hasExt ? (void*)entry_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX : nullptr;
8109 }
8110#endif
8111#ifdef VK_NV_clip_space_w_scaling
8112 if (!strcmp(name, "vkCmdSetViewportWScalingNV"))
8113 {
8114 bool hasExt = resources->hasDeviceExtension(device, "VK_NV_clip_space_w_scaling");
8115 return hasExt ? (void*)entry_vkCmdSetViewportWScalingNV : nullptr;
8116 }
8117#endif
8118#ifdef VK_EXT_direct_mode_display
8119 if (!strcmp(name, "vkReleaseDisplayEXT"))
8120 {
8121 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_direct_mode_display");
8122 return hasExt ? (void*)entry_vkReleaseDisplayEXT : nullptr;
8123 }
8124#endif
8125#ifdef VK_EXT_acquire_xlib_display
8126 if (!strcmp(name, "vkAcquireXlibDisplayEXT"))
8127 {
8128 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_acquire_xlib_display");
8129 return hasExt ? (void*)entry_vkAcquireXlibDisplayEXT : nullptr;
8130 }
8131 if (!strcmp(name, "vkGetRandROutputDisplayEXT"))
8132 {
8133 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_acquire_xlib_display");
8134 return hasExt ? (void*)entry_vkGetRandROutputDisplayEXT : nullptr;
8135 }
8136#endif
8137#ifdef VK_EXT_display_surface_counter
8138 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2EXT"))
8139 {
8140 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_display_surface_counter");
8141 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceCapabilities2EXT : nullptr;
8142 }
8143#endif
8144#ifdef VK_EXT_display_control
8145 if (!strcmp(name, "vkDisplayPowerControlEXT"))
8146 {
8147 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_display_control");
8148 return hasExt ? (void*)entry_vkDisplayPowerControlEXT : nullptr;
8149 }
8150 if (!strcmp(name, "vkRegisterDeviceEventEXT"))
8151 {
8152 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_display_control");
8153 return hasExt ? (void*)entry_vkRegisterDeviceEventEXT : nullptr;
8154 }
8155 if (!strcmp(name, "vkRegisterDisplayEventEXT"))
8156 {
8157 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_display_control");
8158 return hasExt ? (void*)entry_vkRegisterDisplayEventEXT : nullptr;
8159 }
8160 if (!strcmp(name, "vkGetSwapchainCounterEXT"))
8161 {
8162 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_display_control");
8163 return hasExt ? (void*)entry_vkGetSwapchainCounterEXT : nullptr;
8164 }
8165#endif
8166#ifdef VK_GOOGLE_display_timing
8167 if (!strcmp(name, "vkGetRefreshCycleDurationGOOGLE"))
8168 {
8169 bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_display_timing");
8170 return hasExt ? (void*)entry_vkGetRefreshCycleDurationGOOGLE : nullptr;
8171 }
8172 if (!strcmp(name, "vkGetPastPresentationTimingGOOGLE"))
8173 {
8174 bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_display_timing");
8175 return hasExt ? (void*)entry_vkGetPastPresentationTimingGOOGLE : nullptr;
8176 }
8177#endif
8178#ifdef VK_EXT_discard_rectangles
8179 if (!strcmp(name, "vkCmdSetDiscardRectangleEXT"))
8180 {
8181 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_discard_rectangles");
8182 return hasExt ? (void*)entry_vkCmdSetDiscardRectangleEXT : nullptr;
8183 }
8184#endif
8185#ifdef VK_EXT_hdr_metadata
8186 if (!strcmp(name, "vkSetHdrMetadataEXT"))
8187 {
8188 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_hdr_metadata");
8189 return hasExt ? (void*)entry_vkSetHdrMetadataEXT : nullptr;
8190 }
8191#endif
8192#ifdef VK_MVK_ios_surface
8193 if (!strcmp(name, "vkCreateIOSSurfaceMVK"))
8194 {
8195 bool hasExt = resources->hasDeviceExtension(device, "VK_MVK_ios_surface");
8196 return hasExt ? (void*)entry_vkCreateIOSSurfaceMVK : nullptr;
8197 }
8198#endif
8199#ifdef VK_MVK_macos_surface
8200 if (!strcmp(name, "vkCreateMacOSSurfaceMVK"))
8201 {
8202 bool hasExt = resources->hasDeviceExtension(device, "VK_MVK_macos_surface");
8203 return hasExt ? (void*)entry_vkCreateMacOSSurfaceMVK : nullptr;
8204 }
8205#endif
8206#ifdef VK_EXT_debug_utils
8207 if (!strcmp(name, "vkSetDebugUtilsObjectNameEXT"))
8208 {
8209 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8210 return hasExt ? (void*)entry_vkSetDebugUtilsObjectNameEXT : nullptr;
8211 }
8212 if (!strcmp(name, "vkSetDebugUtilsObjectTagEXT"))
8213 {
8214 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8215 return hasExt ? (void*)entry_vkSetDebugUtilsObjectTagEXT : nullptr;
8216 }
8217 if (!strcmp(name, "vkQueueBeginDebugUtilsLabelEXT"))
8218 {
8219 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8220 return hasExt ? (void*)entry_vkQueueBeginDebugUtilsLabelEXT : nullptr;
8221 }
8222 if (!strcmp(name, "vkQueueEndDebugUtilsLabelEXT"))
8223 {
8224 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8225 return hasExt ? (void*)entry_vkQueueEndDebugUtilsLabelEXT : nullptr;
8226 }
8227 if (!strcmp(name, "vkQueueInsertDebugUtilsLabelEXT"))
8228 {
8229 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8230 return hasExt ? (void*)entry_vkQueueInsertDebugUtilsLabelEXT : nullptr;
8231 }
8232 if (!strcmp(name, "vkCmdBeginDebugUtilsLabelEXT"))
8233 {
8234 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8235 return hasExt ? (void*)entry_vkCmdBeginDebugUtilsLabelEXT : nullptr;
8236 }
8237 if (!strcmp(name, "vkCmdEndDebugUtilsLabelEXT"))
8238 {
8239 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8240 return hasExt ? (void*)entry_vkCmdEndDebugUtilsLabelEXT : nullptr;
8241 }
8242 if (!strcmp(name, "vkCmdInsertDebugUtilsLabelEXT"))
8243 {
8244 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8245 return hasExt ? (void*)entry_vkCmdInsertDebugUtilsLabelEXT : nullptr;
8246 }
8247 if (!strcmp(name, "vkCreateDebugUtilsMessengerEXT"))
8248 {
8249 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8250 return hasExt ? (void*)entry_vkCreateDebugUtilsMessengerEXT : nullptr;
8251 }
8252 if (!strcmp(name, "vkDestroyDebugUtilsMessengerEXT"))
8253 {
8254 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8255 return hasExt ? (void*)entry_vkDestroyDebugUtilsMessengerEXT : nullptr;
8256 }
8257 if (!strcmp(name, "vkSubmitDebugUtilsMessageEXT"))
8258 {
8259 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8260 return hasExt ? (void*)entry_vkSubmitDebugUtilsMessageEXT : nullptr;
8261 }
8262#endif
8263#ifdef VK_ANDROID_external_memory_android_hardware_buffer
8264 if (!strcmp(name, "vkGetAndroidHardwareBufferPropertiesANDROID"))
8265 {
8266 bool hasExt = resources->hasDeviceExtension(device, "VK_ANDROID_external_memory_android_hardware_buffer");
8267 return hasExt ? (void*)entry_vkGetAndroidHardwareBufferPropertiesANDROID : nullptr;
8268 }
8269 if (!strcmp(name, "vkGetMemoryAndroidHardwareBufferANDROID"))
8270 {
8271 bool hasExt = resources->hasDeviceExtension(device, "VK_ANDROID_external_memory_android_hardware_buffer");
8272 return hasExt ? (void*)entry_vkGetMemoryAndroidHardwareBufferANDROID : nullptr;
8273 }
8274#endif
8275#ifdef VK_EXT_sample_locations
8276 if (!strcmp(name, "vkCmdSetSampleLocationsEXT"))
8277 {
8278 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_sample_locations");
8279 return hasExt ? (void*)entry_vkCmdSetSampleLocationsEXT : nullptr;
8280 }
8281 if (!strcmp(name, "vkGetPhysicalDeviceMultisamplePropertiesEXT"))
8282 {
8283 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_sample_locations");
8284 return hasExt ? (void*)entry_vkGetPhysicalDeviceMultisamplePropertiesEXT : nullptr;
8285 }
8286#endif
8287#ifdef VK_EXT_validation_cache
8288 if (!strcmp(name, "vkCreateValidationCacheEXT"))
8289 {
8290 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_validation_cache");
8291 return hasExt ? (void*)entry_vkCreateValidationCacheEXT : nullptr;
8292 }
8293 if (!strcmp(name, "vkDestroyValidationCacheEXT"))
8294 {
8295 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_validation_cache");
8296 return hasExt ? (void*)entry_vkDestroyValidationCacheEXT : nullptr;
8297 }
8298 if (!strcmp(name, "vkMergeValidationCachesEXT"))
8299 {
8300 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_validation_cache");
8301 return hasExt ? (void*)entry_vkMergeValidationCachesEXT : nullptr;
8302 }
8303 if (!strcmp(name, "vkGetValidationCacheDataEXT"))
8304 {
8305 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_validation_cache");
8306 return hasExt ? (void*)entry_vkGetValidationCacheDataEXT : nullptr;
8307 }
8308#endif
8309#ifdef VK_EXT_external_memory_host
8310 if (!strcmp(name, "vkGetMemoryHostPointerPropertiesEXT"))
8311 {
8312 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_external_memory_host");
8313 return hasExt ? (void*)entry_vkGetMemoryHostPointerPropertiesEXT : nullptr;
8314 }
8315#endif
8316#ifdef VK_AMD_buffer_marker
8317 if (!strcmp(name, "vkCmdWriteBufferMarkerAMD"))
8318 {
8319 bool hasExt = resources->hasDeviceExtension(device, "VK_AMD_buffer_marker");
8320 return hasExt ? (void*)entry_vkCmdWriteBufferMarkerAMD : nullptr;
8321 }
8322#endif
8323#ifdef VK_NV_device_diagnostic_checkpoints
8324 if (!strcmp(name, "vkCmdSetCheckpointNV"))
8325 {
8326 bool hasExt = resources->hasDeviceExtension(device, "VK_NV_device_diagnostic_checkpoints");
8327 return hasExt ? (void*)entry_vkCmdSetCheckpointNV : nullptr;
8328 }
8329 if (!strcmp(name, "vkGetQueueCheckpointDataNV"))
8330 {
8331 bool hasExt = resources->hasDeviceExtension(device, "VK_NV_device_diagnostic_checkpoints");
8332 return hasExt ? (void*)entry_vkGetQueueCheckpointDataNV : nullptr;
8333 }
8334#endif
8335#ifdef VK_GOOGLE_address_space
8336 if (!strcmp(name, "vkMapMemoryIntoAddressSpaceGOOGLE"))
8337 {
8338 bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_address_space");
8339 return hasExt ? (void*)entry_vkMapMemoryIntoAddressSpaceGOOGLE : nullptr;
Lingfeng Yang5c63afd2018-12-22 01:21:14 -08008340 }
8341#endif
Lingfeng Yangae7e1b32019-02-19 14:07:39 -08008342#ifdef VK_GOOGLE_color_buffer
8343 if (!strcmp(name, "vkRegisterImageColorBufferGOOGLE"))
8344 {
8345 bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_color_buffer");
8346 return hasExt ? (void*)entry_vkRegisterImageColorBufferGOOGLE : nullptr;
8347 }
8348 if (!strcmp(name, "vkRegisterBufferColorBufferGOOGLE"))
8349 {
8350 bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_color_buffer");
8351 return hasExt ? (void*)entry_vkRegisterBufferColorBufferGOOGLE : nullptr;
8352 }
8353#endif
Lingfeng Yang05d5ea32019-03-23 00:12:39 -07008354#ifdef VK_GOOGLE_sized_descriptor_update_template
8355 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplateSizedGOOGLE"))
8356 {
8357 bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_sized_descriptor_update_template");
8358 return hasExt ? (void*)entry_vkUpdateDescriptorSetWithTemplateSizedGOOGLE : nullptr;
8359 }
8360#endif
Lingfeng Yangc53e7472019-03-27 08:50:55 -07008361#ifdef VK_GOOGLE_async_command_buffers
8362 if (!strcmp(name, "vkBeginCommandBufferAsyncGOOGLE"))
8363 {
8364 bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_async_command_buffers");
8365 return hasExt ? (void*)entry_vkBeginCommandBufferAsyncGOOGLE : nullptr;
8366 }
8367 if (!strcmp(name, "vkEndCommandBufferAsyncGOOGLE"))
8368 {
8369 bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_async_command_buffers");
8370 return hasExt ? (void*)entry_vkEndCommandBufferAsyncGOOGLE : nullptr;
8371 }
8372 if (!strcmp(name, "vkResetCommandBufferAsyncGOOGLE"))
8373 {
8374 bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_async_command_buffers");
8375 return hasExt ? (void*)entry_vkResetCommandBufferAsyncGOOGLE : nullptr;
8376 }
8377#endif
Lingfeng Yang0b81df22018-11-05 21:40:30 -08008378 return nullptr;
8379}
8380
8381} // namespace goldfish_vk