blob: 943ac9659db032e64aadb42b20bc7e2169bef2b8 [file] [log] [blame]
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001// Copyright (C) 2018 The Android Open Source Project
2// Copyright (C) 2018 Google Inc.
3//
4// Licensed under the Apache License, Version 2.0 (the "License");
5// you may not use this file except in compliance with the License.
6// You may obtain a copy of the License at
7//
8// http://www.apache.org/licenses/LICENSE-2.0
9//
10// Unless required by applicable law or agreed to in writing, software
11// distributed under the License is distributed on an "AS IS" BASIS,
12// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13// See the License for the specific language governing permissions and
14// limitations under the License.
15
16// Autogenerated module func_table
17// (impl) generated by android/android-emugl/host/libs/libOpenglRender/vulkan-registry/xml/genvk.py -registry android/android-emugl/host/libs/libOpenglRender/vulkan-registry/xml/vk.xml cereal -o android/android-emugl/host/libs/libOpenglRender/vulkan/cereal
18// Please do not modify directly;
19// re-run android/scripts/generate-vulkan-sources.sh,
20// or directly from Python by defining:
21// VULKAN_REGISTRY_XML_DIR : Directory containing genvk.py and vk.xml
22// CEREAL_OUTPUT_DIR: Where to put the generated sources.
23// python3 $VULKAN_REGISTRY_XML_DIR/genvk.py -registry $VULKAN_REGISTRY_XML_DIR/vk.xml cereal -o $CEREAL_OUTPUT_DIR
24
25#include "func_table.h"
26
27
28#include "VkEncoder.h"
29#include "HostConnection.h"
Lingfeng Yange9979522018-12-25 14:44:52 -080030#include "ResourceTracker.h"
Lingfeng Yang0b81df22018-11-05 21:40:30 -080031
Lingfeng Yang808a6312018-11-13 21:06:15 -080032#include "goldfish_vk_private_defs.h"
33
Lingfeng Yang0b81df22018-11-05 21:40:30 -080034// Stuff we are not going to use but if included,
35// will cause compile errors. These are Android Vulkan
36// required extensions, but the approach will be to
37// implement them completely on the guest side.
38#undef VK_KHR_android_surface
Lingfeng Yang0b81df22018-11-05 21:40:30 -080039
40
41namespace goldfish_vk {
42
43#ifdef VK_VERSION_1_0
44static VkResult entry_vkCreateInstance(
45 const VkInstanceCreateInfo* pCreateInfo,
46 const VkAllocationCallbacks* pAllocator,
47 VkInstance* pInstance)
48{
Lingfeng Yang42ac1792019-02-22 20:13:44 -080049 AEMU_SCOPED_TRACE("vkCreateInstance");
Lingfeng Yang0b81df22018-11-05 21:40:30 -080050 auto vkEnc = HostConnection::get()->vkEncoder();
51 VkResult vkCreateInstance_VkResult_return = (VkResult)0;
52 vkCreateInstance_VkResult_return = vkEnc->vkCreateInstance(pCreateInfo, pAllocator, pInstance);
53 return vkCreateInstance_VkResult_return;
54}
55static void entry_vkDestroyInstance(
56 VkInstance instance,
57 const VkAllocationCallbacks* pAllocator)
58{
Lingfeng Yang42ac1792019-02-22 20:13:44 -080059 AEMU_SCOPED_TRACE("vkDestroyInstance");
Lingfeng Yang0b81df22018-11-05 21:40:30 -080060 auto vkEnc = HostConnection::get()->vkEncoder();
61 vkEnc->vkDestroyInstance(instance, pAllocator);
62}
63static VkResult entry_vkEnumeratePhysicalDevices(
64 VkInstance instance,
65 uint32_t* pPhysicalDeviceCount,
66 VkPhysicalDevice* pPhysicalDevices)
67{
Lingfeng Yang42ac1792019-02-22 20:13:44 -080068 AEMU_SCOPED_TRACE("vkEnumeratePhysicalDevices");
Lingfeng Yang0b81df22018-11-05 21:40:30 -080069 auto vkEnc = HostConnection::get()->vkEncoder();
70 VkResult vkEnumeratePhysicalDevices_VkResult_return = (VkResult)0;
Lingfeng Yangb64ca452019-02-14 22:04:28 -080071 auto resources = ResourceTracker::get();
72 vkEnumeratePhysicalDevices_VkResult_return = resources->on_vkEnumeratePhysicalDevices(vkEnc, VK_SUCCESS, instance, pPhysicalDeviceCount, pPhysicalDevices);
Lingfeng Yang0b81df22018-11-05 21:40:30 -080073 return vkEnumeratePhysicalDevices_VkResult_return;
74}
75static void entry_vkGetPhysicalDeviceFeatures(
76 VkPhysicalDevice physicalDevice,
77 VkPhysicalDeviceFeatures* pFeatures)
78{
Lingfeng Yang42ac1792019-02-22 20:13:44 -080079 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFeatures");
Lingfeng Yang0b81df22018-11-05 21:40:30 -080080 auto vkEnc = HostConnection::get()->vkEncoder();
81 vkEnc->vkGetPhysicalDeviceFeatures(physicalDevice, pFeatures);
82}
83static void entry_vkGetPhysicalDeviceFormatProperties(
84 VkPhysicalDevice physicalDevice,
85 VkFormat format,
86 VkFormatProperties* pFormatProperties)
87{
Lingfeng Yang42ac1792019-02-22 20:13:44 -080088 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFormatProperties");
Lingfeng Yang0b81df22018-11-05 21:40:30 -080089 auto vkEnc = HostConnection::get()->vkEncoder();
90 vkEnc->vkGetPhysicalDeviceFormatProperties(physicalDevice, format, pFormatProperties);
91}
92static VkResult entry_vkGetPhysicalDeviceImageFormatProperties(
93 VkPhysicalDevice physicalDevice,
94 VkFormat format,
95 VkImageType type,
96 VkImageTiling tiling,
97 VkImageUsageFlags usage,
98 VkImageCreateFlags flags,
99 VkImageFormatProperties* pImageFormatProperties)
100{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800101 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceImageFormatProperties");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800102 auto vkEnc = HostConnection::get()->vkEncoder();
103 VkResult vkGetPhysicalDeviceImageFormatProperties_VkResult_return = (VkResult)0;
104 vkGetPhysicalDeviceImageFormatProperties_VkResult_return = vkEnc->vkGetPhysicalDeviceImageFormatProperties(physicalDevice, format, type, tiling, usage, flags, pImageFormatProperties);
105 return vkGetPhysicalDeviceImageFormatProperties_VkResult_return;
106}
107static void entry_vkGetPhysicalDeviceProperties(
108 VkPhysicalDevice physicalDevice,
109 VkPhysicalDeviceProperties* pProperties)
110{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800111 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceProperties");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800112 auto vkEnc = HostConnection::get()->vkEncoder();
113 vkEnc->vkGetPhysicalDeviceProperties(physicalDevice, pProperties);
114}
115static void entry_vkGetPhysicalDeviceQueueFamilyProperties(
116 VkPhysicalDevice physicalDevice,
117 uint32_t* pQueueFamilyPropertyCount,
118 VkQueueFamilyProperties* pQueueFamilyProperties)
119{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800120 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceQueueFamilyProperties");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800121 auto vkEnc = HostConnection::get()->vkEncoder();
122 vkEnc->vkGetPhysicalDeviceQueueFamilyProperties(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties);
123}
124static void entry_vkGetPhysicalDeviceMemoryProperties(
125 VkPhysicalDevice physicalDevice,
126 VkPhysicalDeviceMemoryProperties* pMemoryProperties)
127{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800128 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMemoryProperties");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800129 auto vkEnc = HostConnection::get()->vkEncoder();
130 vkEnc->vkGetPhysicalDeviceMemoryProperties(physicalDevice, pMemoryProperties);
131}
132static PFN_vkVoidFunction entry_vkGetInstanceProcAddr(
133 VkInstance instance,
134 const char* pName)
135{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800136 AEMU_SCOPED_TRACE("vkGetInstanceProcAddr");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800137 auto vkEnc = HostConnection::get()->vkEncoder();
138 PFN_vkVoidFunction vkGetInstanceProcAddr_PFN_vkVoidFunction_return = (PFN_vkVoidFunction)0;
139 vkGetInstanceProcAddr_PFN_vkVoidFunction_return = vkEnc->vkGetInstanceProcAddr(instance, pName);
140 return vkGetInstanceProcAddr_PFN_vkVoidFunction_return;
141}
142static PFN_vkVoidFunction entry_vkGetDeviceProcAddr(
143 VkDevice device,
144 const char* pName)
145{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800146 AEMU_SCOPED_TRACE("vkGetDeviceProcAddr");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800147 auto vkEnc = HostConnection::get()->vkEncoder();
148 PFN_vkVoidFunction vkGetDeviceProcAddr_PFN_vkVoidFunction_return = (PFN_vkVoidFunction)0;
149 vkGetDeviceProcAddr_PFN_vkVoidFunction_return = vkEnc->vkGetDeviceProcAddr(device, pName);
150 return vkGetDeviceProcAddr_PFN_vkVoidFunction_return;
151}
152static VkResult entry_vkCreateDevice(
153 VkPhysicalDevice physicalDevice,
154 const VkDeviceCreateInfo* pCreateInfo,
155 const VkAllocationCallbacks* pAllocator,
156 VkDevice* pDevice)
157{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800158 AEMU_SCOPED_TRACE("vkCreateDevice");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800159 auto vkEnc = HostConnection::get()->vkEncoder();
160 VkResult vkCreateDevice_VkResult_return = (VkResult)0;
161 vkCreateDevice_VkResult_return = vkEnc->vkCreateDevice(physicalDevice, pCreateInfo, pAllocator, pDevice);
162 return vkCreateDevice_VkResult_return;
163}
164static void entry_vkDestroyDevice(
165 VkDevice device,
166 const VkAllocationCallbacks* pAllocator)
167{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800168 AEMU_SCOPED_TRACE("vkDestroyDevice");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800169 auto vkEnc = HostConnection::get()->vkEncoder();
170 vkEnc->vkDestroyDevice(device, pAllocator);
171}
172static VkResult entry_vkEnumerateInstanceExtensionProperties(
173 const char* pLayerName,
174 uint32_t* pPropertyCount,
175 VkExtensionProperties* pProperties)
176{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800177 AEMU_SCOPED_TRACE("vkEnumerateInstanceExtensionProperties");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800178 auto vkEnc = HostConnection::get()->vkEncoder();
179 VkResult vkEnumerateInstanceExtensionProperties_VkResult_return = (VkResult)0;
Lingfeng Yang154a33c2019-01-29 19:06:23 -0800180 auto resources = ResourceTracker::get();
181 vkEnumerateInstanceExtensionProperties_VkResult_return = resources->on_vkEnumerateInstanceExtensionProperties(vkEnc, VK_SUCCESS, pLayerName, pPropertyCount, pProperties);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800182 return vkEnumerateInstanceExtensionProperties_VkResult_return;
183}
184static VkResult entry_vkEnumerateDeviceExtensionProperties(
185 VkPhysicalDevice physicalDevice,
186 const char* pLayerName,
187 uint32_t* pPropertyCount,
188 VkExtensionProperties* pProperties)
189{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800190 AEMU_SCOPED_TRACE("vkEnumerateDeviceExtensionProperties");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800191 auto vkEnc = HostConnection::get()->vkEncoder();
192 VkResult vkEnumerateDeviceExtensionProperties_VkResult_return = (VkResult)0;
Lingfeng Yang154a33c2019-01-29 19:06:23 -0800193 auto resources = ResourceTracker::get();
194 vkEnumerateDeviceExtensionProperties_VkResult_return = resources->on_vkEnumerateDeviceExtensionProperties(vkEnc, VK_SUCCESS, physicalDevice, pLayerName, pPropertyCount, pProperties);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800195 return vkEnumerateDeviceExtensionProperties_VkResult_return;
196}
197static VkResult entry_vkEnumerateInstanceLayerProperties(
198 uint32_t* pPropertyCount,
199 VkLayerProperties* pProperties)
200{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800201 AEMU_SCOPED_TRACE("vkEnumerateInstanceLayerProperties");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800202 auto vkEnc = HostConnection::get()->vkEncoder();
203 VkResult vkEnumerateInstanceLayerProperties_VkResult_return = (VkResult)0;
204 vkEnumerateInstanceLayerProperties_VkResult_return = vkEnc->vkEnumerateInstanceLayerProperties(pPropertyCount, pProperties);
205 return vkEnumerateInstanceLayerProperties_VkResult_return;
206}
207static VkResult entry_vkEnumerateDeviceLayerProperties(
208 VkPhysicalDevice physicalDevice,
209 uint32_t* pPropertyCount,
210 VkLayerProperties* pProperties)
211{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800212 AEMU_SCOPED_TRACE("vkEnumerateDeviceLayerProperties");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800213 auto vkEnc = HostConnection::get()->vkEncoder();
214 VkResult vkEnumerateDeviceLayerProperties_VkResult_return = (VkResult)0;
215 vkEnumerateDeviceLayerProperties_VkResult_return = vkEnc->vkEnumerateDeviceLayerProperties(physicalDevice, pPropertyCount, pProperties);
216 return vkEnumerateDeviceLayerProperties_VkResult_return;
217}
218static void entry_vkGetDeviceQueue(
219 VkDevice device,
220 uint32_t queueFamilyIndex,
221 uint32_t queueIndex,
222 VkQueue* pQueue)
223{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800224 AEMU_SCOPED_TRACE("vkGetDeviceQueue");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800225 auto vkEnc = HostConnection::get()->vkEncoder();
226 vkEnc->vkGetDeviceQueue(device, queueFamilyIndex, queueIndex, pQueue);
227}
228static VkResult entry_vkQueueSubmit(
229 VkQueue queue,
230 uint32_t submitCount,
231 const VkSubmitInfo* pSubmits,
232 VkFence fence)
233{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800234 AEMU_SCOPED_TRACE("vkQueueSubmit");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800235 auto vkEnc = HostConnection::get()->vkEncoder();
236 VkResult vkQueueSubmit_VkResult_return = (VkResult)0;
David Reveman24710222019-02-25 02:21:42 -0500237 auto resources = ResourceTracker::get();
238 vkQueueSubmit_VkResult_return = resources->on_vkQueueSubmit(vkEnc, VK_SUCCESS, queue, submitCount, pSubmits, fence);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800239 return vkQueueSubmit_VkResult_return;
240}
241static VkResult entry_vkQueueWaitIdle(
242 VkQueue queue)
243{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800244 AEMU_SCOPED_TRACE("vkQueueWaitIdle");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800245 auto vkEnc = HostConnection::get()->vkEncoder();
246 VkResult vkQueueWaitIdle_VkResult_return = (VkResult)0;
247 vkQueueWaitIdle_VkResult_return = vkEnc->vkQueueWaitIdle(queue);
248 return vkQueueWaitIdle_VkResult_return;
249}
250static VkResult entry_vkDeviceWaitIdle(
251 VkDevice device)
252{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800253 AEMU_SCOPED_TRACE("vkDeviceWaitIdle");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800254 auto vkEnc = HostConnection::get()->vkEncoder();
255 VkResult vkDeviceWaitIdle_VkResult_return = (VkResult)0;
256 vkDeviceWaitIdle_VkResult_return = vkEnc->vkDeviceWaitIdle(device);
257 return vkDeviceWaitIdle_VkResult_return;
258}
259static VkResult entry_vkAllocateMemory(
260 VkDevice device,
261 const VkMemoryAllocateInfo* pAllocateInfo,
262 const VkAllocationCallbacks* pAllocator,
263 VkDeviceMemory* pMemory)
264{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800265 AEMU_SCOPED_TRACE("vkAllocateMemory");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800266 auto vkEnc = HostConnection::get()->vkEncoder();
267 VkResult vkAllocateMemory_VkResult_return = (VkResult)0;
Lingfeng Yange9979522018-12-25 14:44:52 -0800268 auto resources = ResourceTracker::get();
269 vkAllocateMemory_VkResult_return = resources->on_vkAllocateMemory(vkEnc, VK_SUCCESS, device, pAllocateInfo, pAllocator, pMemory);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800270 return vkAllocateMemory_VkResult_return;
271}
272static void entry_vkFreeMemory(
273 VkDevice device,
274 VkDeviceMemory memory,
275 const VkAllocationCallbacks* pAllocator)
276{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800277 AEMU_SCOPED_TRACE("vkFreeMemory");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800278 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yange9979522018-12-25 14:44:52 -0800279 auto resources = ResourceTracker::get();
280 resources->on_vkFreeMemory(vkEnc, device, memory, pAllocator);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800281}
282static VkResult entry_vkMapMemory(
283 VkDevice device,
284 VkDeviceMemory memory,
285 VkDeviceSize offset,
286 VkDeviceSize size,
287 VkMemoryMapFlags flags,
288 void** ppData)
289{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800290 AEMU_SCOPED_TRACE("vkMapMemory");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800291 auto vkEnc = HostConnection::get()->vkEncoder();
292 VkResult vkMapMemory_VkResult_return = (VkResult)0;
293 vkMapMemory_VkResult_return = vkEnc->vkMapMemory(device, memory, offset, size, flags, ppData);
294 return vkMapMemory_VkResult_return;
295}
296static void entry_vkUnmapMemory(
297 VkDevice device,
298 VkDeviceMemory memory)
299{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800300 AEMU_SCOPED_TRACE("vkUnmapMemory");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800301 auto vkEnc = HostConnection::get()->vkEncoder();
302 vkEnc->vkUnmapMemory(device, memory);
303}
304static VkResult entry_vkFlushMappedMemoryRanges(
305 VkDevice device,
306 uint32_t memoryRangeCount,
307 const VkMappedMemoryRange* pMemoryRanges)
308{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800309 AEMU_SCOPED_TRACE("vkFlushMappedMemoryRanges");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800310 auto vkEnc = HostConnection::get()->vkEncoder();
311 VkResult vkFlushMappedMemoryRanges_VkResult_return = (VkResult)0;
312 vkFlushMappedMemoryRanges_VkResult_return = vkEnc->vkFlushMappedMemoryRanges(device, memoryRangeCount, pMemoryRanges);
313 return vkFlushMappedMemoryRanges_VkResult_return;
314}
315static VkResult entry_vkInvalidateMappedMemoryRanges(
316 VkDevice device,
317 uint32_t memoryRangeCount,
318 const VkMappedMemoryRange* pMemoryRanges)
319{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800320 AEMU_SCOPED_TRACE("vkInvalidateMappedMemoryRanges");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800321 auto vkEnc = HostConnection::get()->vkEncoder();
322 VkResult vkInvalidateMappedMemoryRanges_VkResult_return = (VkResult)0;
323 vkInvalidateMappedMemoryRanges_VkResult_return = vkEnc->vkInvalidateMappedMemoryRanges(device, memoryRangeCount, pMemoryRanges);
324 return vkInvalidateMappedMemoryRanges_VkResult_return;
325}
326static void entry_vkGetDeviceMemoryCommitment(
327 VkDevice device,
328 VkDeviceMemory memory,
329 VkDeviceSize* pCommittedMemoryInBytes)
330{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800331 AEMU_SCOPED_TRACE("vkGetDeviceMemoryCommitment");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800332 auto vkEnc = HostConnection::get()->vkEncoder();
333 vkEnc->vkGetDeviceMemoryCommitment(device, memory, pCommittedMemoryInBytes);
334}
335static VkResult entry_vkBindBufferMemory(
336 VkDevice device,
337 VkBuffer buffer,
338 VkDeviceMemory memory,
339 VkDeviceSize memoryOffset)
340{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800341 AEMU_SCOPED_TRACE("vkBindBufferMemory");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800342 auto vkEnc = HostConnection::get()->vkEncoder();
343 VkResult vkBindBufferMemory_VkResult_return = (VkResult)0;
Lingfeng Yang4af5f322019-02-14 08:10:28 -0800344 auto resources = ResourceTracker::get();
345 vkBindBufferMemory_VkResult_return = resources->on_vkBindBufferMemory(vkEnc, VK_SUCCESS, device, buffer, memory, memoryOffset);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800346 return vkBindBufferMemory_VkResult_return;
347}
348static VkResult entry_vkBindImageMemory(
349 VkDevice device,
350 VkImage image,
351 VkDeviceMemory memory,
352 VkDeviceSize memoryOffset)
353{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800354 AEMU_SCOPED_TRACE("vkBindImageMemory");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800355 auto vkEnc = HostConnection::get()->vkEncoder();
356 VkResult vkBindImageMemory_VkResult_return = (VkResult)0;
Lingfeng Yang4af5f322019-02-14 08:10:28 -0800357 auto resources = ResourceTracker::get();
358 vkBindImageMemory_VkResult_return = resources->on_vkBindImageMemory(vkEnc, VK_SUCCESS, device, image, memory, memoryOffset);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800359 return vkBindImageMemory_VkResult_return;
360}
361static void entry_vkGetBufferMemoryRequirements(
362 VkDevice device,
363 VkBuffer buffer,
364 VkMemoryRequirements* pMemoryRequirements)
365{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800366 AEMU_SCOPED_TRACE("vkGetBufferMemoryRequirements");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800367 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang4af5f322019-02-14 08:10:28 -0800368 auto resources = ResourceTracker::get();
369 resources->on_vkGetBufferMemoryRequirements(vkEnc, device, buffer, pMemoryRequirements);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800370}
371static void entry_vkGetImageMemoryRequirements(
372 VkDevice device,
373 VkImage image,
374 VkMemoryRequirements* pMemoryRequirements)
375{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800376 AEMU_SCOPED_TRACE("vkGetImageMemoryRequirements");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800377 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang4af5f322019-02-14 08:10:28 -0800378 auto resources = ResourceTracker::get();
379 resources->on_vkGetImageMemoryRequirements(vkEnc, device, image, pMemoryRequirements);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800380}
381static void entry_vkGetImageSparseMemoryRequirements(
382 VkDevice device,
383 VkImage image,
384 uint32_t* pSparseMemoryRequirementCount,
385 VkSparseImageMemoryRequirements* pSparseMemoryRequirements)
386{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800387 AEMU_SCOPED_TRACE("vkGetImageSparseMemoryRequirements");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800388 auto vkEnc = HostConnection::get()->vkEncoder();
389 vkEnc->vkGetImageSparseMemoryRequirements(device, image, pSparseMemoryRequirementCount, pSparseMemoryRequirements);
390}
391static void entry_vkGetPhysicalDeviceSparseImageFormatProperties(
392 VkPhysicalDevice physicalDevice,
393 VkFormat format,
394 VkImageType type,
395 VkSampleCountFlagBits samples,
396 VkImageUsageFlags usage,
397 VkImageTiling tiling,
398 uint32_t* pPropertyCount,
399 VkSparseImageFormatProperties* pProperties)
400{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800401 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSparseImageFormatProperties");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800402 auto vkEnc = HostConnection::get()->vkEncoder();
403 vkEnc->vkGetPhysicalDeviceSparseImageFormatProperties(physicalDevice, format, type, samples, usage, tiling, pPropertyCount, pProperties);
404}
405static VkResult entry_vkQueueBindSparse(
406 VkQueue queue,
407 uint32_t bindInfoCount,
408 const VkBindSparseInfo* pBindInfo,
409 VkFence fence)
410{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800411 AEMU_SCOPED_TRACE("vkQueueBindSparse");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800412 auto vkEnc = HostConnection::get()->vkEncoder();
413 VkResult vkQueueBindSparse_VkResult_return = (VkResult)0;
414 vkQueueBindSparse_VkResult_return = vkEnc->vkQueueBindSparse(queue, bindInfoCount, pBindInfo, fence);
415 return vkQueueBindSparse_VkResult_return;
416}
417static VkResult entry_vkCreateFence(
418 VkDevice device,
419 const VkFenceCreateInfo* pCreateInfo,
420 const VkAllocationCallbacks* pAllocator,
421 VkFence* pFence)
422{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800423 AEMU_SCOPED_TRACE("vkCreateFence");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800424 auto vkEnc = HostConnection::get()->vkEncoder();
425 VkResult vkCreateFence_VkResult_return = (VkResult)0;
426 vkCreateFence_VkResult_return = vkEnc->vkCreateFence(device, pCreateInfo, pAllocator, pFence);
427 return vkCreateFence_VkResult_return;
428}
429static void entry_vkDestroyFence(
430 VkDevice device,
431 VkFence fence,
432 const VkAllocationCallbacks* pAllocator)
433{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800434 AEMU_SCOPED_TRACE("vkDestroyFence");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800435 auto vkEnc = HostConnection::get()->vkEncoder();
436 vkEnc->vkDestroyFence(device, fence, pAllocator);
437}
438static VkResult entry_vkResetFences(
439 VkDevice device,
440 uint32_t fenceCount,
441 const VkFence* pFences)
442{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800443 AEMU_SCOPED_TRACE("vkResetFences");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800444 auto vkEnc = HostConnection::get()->vkEncoder();
445 VkResult vkResetFences_VkResult_return = (VkResult)0;
446 vkResetFences_VkResult_return = vkEnc->vkResetFences(device, fenceCount, pFences);
447 return vkResetFences_VkResult_return;
448}
449static VkResult entry_vkGetFenceStatus(
450 VkDevice device,
451 VkFence fence)
452{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800453 AEMU_SCOPED_TRACE("vkGetFenceStatus");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800454 auto vkEnc = HostConnection::get()->vkEncoder();
455 VkResult vkGetFenceStatus_VkResult_return = (VkResult)0;
456 vkGetFenceStatus_VkResult_return = vkEnc->vkGetFenceStatus(device, fence);
457 return vkGetFenceStatus_VkResult_return;
458}
459static VkResult entry_vkWaitForFences(
460 VkDevice device,
461 uint32_t fenceCount,
462 const VkFence* pFences,
463 VkBool32 waitAll,
464 uint64_t timeout)
465{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800466 AEMU_SCOPED_TRACE("vkWaitForFences");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800467 auto vkEnc = HostConnection::get()->vkEncoder();
468 VkResult vkWaitForFences_VkResult_return = (VkResult)0;
469 vkWaitForFences_VkResult_return = vkEnc->vkWaitForFences(device, fenceCount, pFences, waitAll, timeout);
470 return vkWaitForFences_VkResult_return;
471}
472static VkResult entry_vkCreateSemaphore(
473 VkDevice device,
474 const VkSemaphoreCreateInfo* pCreateInfo,
475 const VkAllocationCallbacks* pAllocator,
476 VkSemaphore* pSemaphore)
477{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800478 AEMU_SCOPED_TRACE("vkCreateSemaphore");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800479 auto vkEnc = HostConnection::get()->vkEncoder();
480 VkResult vkCreateSemaphore_VkResult_return = (VkResult)0;
David Reveman32b110e2019-02-21 13:20:54 -0500481 auto resources = ResourceTracker::get();
482 vkCreateSemaphore_VkResult_return = resources->on_vkCreateSemaphore(vkEnc, VK_SUCCESS, device, pCreateInfo, pAllocator, pSemaphore);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800483 return vkCreateSemaphore_VkResult_return;
484}
485static void entry_vkDestroySemaphore(
486 VkDevice device,
487 VkSemaphore semaphore,
488 const VkAllocationCallbacks* pAllocator)
489{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800490 AEMU_SCOPED_TRACE("vkDestroySemaphore");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800491 auto vkEnc = HostConnection::get()->vkEncoder();
David Reveman32b110e2019-02-21 13:20:54 -0500492 auto resources = ResourceTracker::get();
493 resources->on_vkDestroySemaphore(vkEnc, device, semaphore, pAllocator);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800494}
495static VkResult entry_vkCreateEvent(
496 VkDevice device,
497 const VkEventCreateInfo* pCreateInfo,
498 const VkAllocationCallbacks* pAllocator,
499 VkEvent* pEvent)
500{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800501 AEMU_SCOPED_TRACE("vkCreateEvent");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800502 auto vkEnc = HostConnection::get()->vkEncoder();
503 VkResult vkCreateEvent_VkResult_return = (VkResult)0;
504 vkCreateEvent_VkResult_return = vkEnc->vkCreateEvent(device, pCreateInfo, pAllocator, pEvent);
505 return vkCreateEvent_VkResult_return;
506}
507static void entry_vkDestroyEvent(
508 VkDevice device,
509 VkEvent event,
510 const VkAllocationCallbacks* pAllocator)
511{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800512 AEMU_SCOPED_TRACE("vkDestroyEvent");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800513 auto vkEnc = HostConnection::get()->vkEncoder();
514 vkEnc->vkDestroyEvent(device, event, pAllocator);
515}
516static VkResult entry_vkGetEventStatus(
517 VkDevice device,
518 VkEvent event)
519{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800520 AEMU_SCOPED_TRACE("vkGetEventStatus");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800521 auto vkEnc = HostConnection::get()->vkEncoder();
522 VkResult vkGetEventStatus_VkResult_return = (VkResult)0;
523 vkGetEventStatus_VkResult_return = vkEnc->vkGetEventStatus(device, event);
524 return vkGetEventStatus_VkResult_return;
525}
526static VkResult entry_vkSetEvent(
527 VkDevice device,
528 VkEvent event)
529{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800530 AEMU_SCOPED_TRACE("vkSetEvent");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800531 auto vkEnc = HostConnection::get()->vkEncoder();
532 VkResult vkSetEvent_VkResult_return = (VkResult)0;
533 vkSetEvent_VkResult_return = vkEnc->vkSetEvent(device, event);
534 return vkSetEvent_VkResult_return;
535}
536static VkResult entry_vkResetEvent(
537 VkDevice device,
538 VkEvent event)
539{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800540 AEMU_SCOPED_TRACE("vkResetEvent");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800541 auto vkEnc = HostConnection::get()->vkEncoder();
542 VkResult vkResetEvent_VkResult_return = (VkResult)0;
543 vkResetEvent_VkResult_return = vkEnc->vkResetEvent(device, event);
544 return vkResetEvent_VkResult_return;
545}
546static VkResult entry_vkCreateQueryPool(
547 VkDevice device,
548 const VkQueryPoolCreateInfo* pCreateInfo,
549 const VkAllocationCallbacks* pAllocator,
550 VkQueryPool* pQueryPool)
551{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800552 AEMU_SCOPED_TRACE("vkCreateQueryPool");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800553 auto vkEnc = HostConnection::get()->vkEncoder();
554 VkResult vkCreateQueryPool_VkResult_return = (VkResult)0;
555 vkCreateQueryPool_VkResult_return = vkEnc->vkCreateQueryPool(device, pCreateInfo, pAllocator, pQueryPool);
556 return vkCreateQueryPool_VkResult_return;
557}
558static void entry_vkDestroyQueryPool(
559 VkDevice device,
560 VkQueryPool queryPool,
561 const VkAllocationCallbacks* pAllocator)
562{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800563 AEMU_SCOPED_TRACE("vkDestroyQueryPool");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800564 auto vkEnc = HostConnection::get()->vkEncoder();
565 vkEnc->vkDestroyQueryPool(device, queryPool, pAllocator);
566}
567static VkResult entry_vkGetQueryPoolResults(
568 VkDevice device,
569 VkQueryPool queryPool,
570 uint32_t firstQuery,
571 uint32_t queryCount,
572 size_t dataSize,
573 void* pData,
574 VkDeviceSize stride,
575 VkQueryResultFlags flags)
576{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800577 AEMU_SCOPED_TRACE("vkGetQueryPoolResults");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800578 auto vkEnc = HostConnection::get()->vkEncoder();
579 VkResult vkGetQueryPoolResults_VkResult_return = (VkResult)0;
580 vkGetQueryPoolResults_VkResult_return = vkEnc->vkGetQueryPoolResults(device, queryPool, firstQuery, queryCount, dataSize, pData, stride, flags);
581 return vkGetQueryPoolResults_VkResult_return;
582}
583static VkResult entry_vkCreateBuffer(
584 VkDevice device,
585 const VkBufferCreateInfo* pCreateInfo,
586 const VkAllocationCallbacks* pAllocator,
587 VkBuffer* pBuffer)
588{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800589 AEMU_SCOPED_TRACE("vkCreateBuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800590 auto vkEnc = HostConnection::get()->vkEncoder();
591 VkResult vkCreateBuffer_VkResult_return = (VkResult)0;
Lingfeng Yang4af5f322019-02-14 08:10:28 -0800592 auto resources = ResourceTracker::get();
593 vkCreateBuffer_VkResult_return = resources->on_vkCreateBuffer(vkEnc, VK_SUCCESS, device, pCreateInfo, pAllocator, pBuffer);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800594 return vkCreateBuffer_VkResult_return;
595}
596static void entry_vkDestroyBuffer(
597 VkDevice device,
598 VkBuffer buffer,
599 const VkAllocationCallbacks* pAllocator)
600{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800601 AEMU_SCOPED_TRACE("vkDestroyBuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800602 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang4af5f322019-02-14 08:10:28 -0800603 auto resources = ResourceTracker::get();
604 resources->on_vkDestroyBuffer(vkEnc, device, buffer, pAllocator);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800605}
606static VkResult entry_vkCreateBufferView(
607 VkDevice device,
608 const VkBufferViewCreateInfo* pCreateInfo,
609 const VkAllocationCallbacks* pAllocator,
610 VkBufferView* pView)
611{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800612 AEMU_SCOPED_TRACE("vkCreateBufferView");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800613 auto vkEnc = HostConnection::get()->vkEncoder();
614 VkResult vkCreateBufferView_VkResult_return = (VkResult)0;
615 vkCreateBufferView_VkResult_return = vkEnc->vkCreateBufferView(device, pCreateInfo, pAllocator, pView);
616 return vkCreateBufferView_VkResult_return;
617}
618static void entry_vkDestroyBufferView(
619 VkDevice device,
620 VkBufferView bufferView,
621 const VkAllocationCallbacks* pAllocator)
622{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800623 AEMU_SCOPED_TRACE("vkDestroyBufferView");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800624 auto vkEnc = HostConnection::get()->vkEncoder();
625 vkEnc->vkDestroyBufferView(device, bufferView, pAllocator);
626}
627static VkResult entry_vkCreateImage(
628 VkDevice device,
629 const VkImageCreateInfo* pCreateInfo,
630 const VkAllocationCallbacks* pAllocator,
631 VkImage* pImage)
632{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800633 AEMU_SCOPED_TRACE("vkCreateImage");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800634 auto vkEnc = HostConnection::get()->vkEncoder();
635 VkResult vkCreateImage_VkResult_return = (VkResult)0;
Lingfeng Yang4af5f322019-02-14 08:10:28 -0800636 auto resources = ResourceTracker::get();
637 vkCreateImage_VkResult_return = resources->on_vkCreateImage(vkEnc, VK_SUCCESS, device, pCreateInfo, pAllocator, pImage);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800638 return vkCreateImage_VkResult_return;
639}
640static void entry_vkDestroyImage(
641 VkDevice device,
642 VkImage image,
643 const VkAllocationCallbacks* pAllocator)
644{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800645 AEMU_SCOPED_TRACE("vkDestroyImage");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800646 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang4af5f322019-02-14 08:10:28 -0800647 auto resources = ResourceTracker::get();
648 resources->on_vkDestroyImage(vkEnc, device, image, pAllocator);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800649}
650static void entry_vkGetImageSubresourceLayout(
651 VkDevice device,
652 VkImage image,
653 const VkImageSubresource* pSubresource,
654 VkSubresourceLayout* pLayout)
655{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800656 AEMU_SCOPED_TRACE("vkGetImageSubresourceLayout");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800657 auto vkEnc = HostConnection::get()->vkEncoder();
658 vkEnc->vkGetImageSubresourceLayout(device, image, pSubresource, pLayout);
659}
660static VkResult entry_vkCreateImageView(
661 VkDevice device,
662 const VkImageViewCreateInfo* pCreateInfo,
663 const VkAllocationCallbacks* pAllocator,
664 VkImageView* pView)
665{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800666 AEMU_SCOPED_TRACE("vkCreateImageView");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800667 auto vkEnc = HostConnection::get()->vkEncoder();
668 VkResult vkCreateImageView_VkResult_return = (VkResult)0;
669 vkCreateImageView_VkResult_return = vkEnc->vkCreateImageView(device, pCreateInfo, pAllocator, pView);
670 return vkCreateImageView_VkResult_return;
671}
672static void entry_vkDestroyImageView(
673 VkDevice device,
674 VkImageView imageView,
675 const VkAllocationCallbacks* pAllocator)
676{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800677 AEMU_SCOPED_TRACE("vkDestroyImageView");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800678 auto vkEnc = HostConnection::get()->vkEncoder();
679 vkEnc->vkDestroyImageView(device, imageView, pAllocator);
680}
681static VkResult entry_vkCreateShaderModule(
682 VkDevice device,
683 const VkShaderModuleCreateInfo* pCreateInfo,
684 const VkAllocationCallbacks* pAllocator,
685 VkShaderModule* pShaderModule)
686{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800687 AEMU_SCOPED_TRACE("vkCreateShaderModule");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800688 auto vkEnc = HostConnection::get()->vkEncoder();
689 VkResult vkCreateShaderModule_VkResult_return = (VkResult)0;
690 vkCreateShaderModule_VkResult_return = vkEnc->vkCreateShaderModule(device, pCreateInfo, pAllocator, pShaderModule);
691 return vkCreateShaderModule_VkResult_return;
692}
693static void entry_vkDestroyShaderModule(
694 VkDevice device,
695 VkShaderModule shaderModule,
696 const VkAllocationCallbacks* pAllocator)
697{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800698 AEMU_SCOPED_TRACE("vkDestroyShaderModule");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800699 auto vkEnc = HostConnection::get()->vkEncoder();
700 vkEnc->vkDestroyShaderModule(device, shaderModule, pAllocator);
701}
702static VkResult entry_vkCreatePipelineCache(
703 VkDevice device,
704 const VkPipelineCacheCreateInfo* pCreateInfo,
705 const VkAllocationCallbacks* pAllocator,
706 VkPipelineCache* pPipelineCache)
707{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800708 AEMU_SCOPED_TRACE("vkCreatePipelineCache");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800709 auto vkEnc = HostConnection::get()->vkEncoder();
710 VkResult vkCreatePipelineCache_VkResult_return = (VkResult)0;
711 vkCreatePipelineCache_VkResult_return = vkEnc->vkCreatePipelineCache(device, pCreateInfo, pAllocator, pPipelineCache);
712 return vkCreatePipelineCache_VkResult_return;
713}
714static void entry_vkDestroyPipelineCache(
715 VkDevice device,
716 VkPipelineCache pipelineCache,
717 const VkAllocationCallbacks* pAllocator)
718{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800719 AEMU_SCOPED_TRACE("vkDestroyPipelineCache");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800720 auto vkEnc = HostConnection::get()->vkEncoder();
721 vkEnc->vkDestroyPipelineCache(device, pipelineCache, pAllocator);
722}
723static VkResult entry_vkGetPipelineCacheData(
724 VkDevice device,
725 VkPipelineCache pipelineCache,
726 size_t* pDataSize,
727 void* pData)
728{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800729 AEMU_SCOPED_TRACE("vkGetPipelineCacheData");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800730 auto vkEnc = HostConnection::get()->vkEncoder();
731 VkResult vkGetPipelineCacheData_VkResult_return = (VkResult)0;
732 vkGetPipelineCacheData_VkResult_return = vkEnc->vkGetPipelineCacheData(device, pipelineCache, pDataSize, pData);
733 return vkGetPipelineCacheData_VkResult_return;
734}
735static VkResult entry_vkMergePipelineCaches(
736 VkDevice device,
737 VkPipelineCache dstCache,
738 uint32_t srcCacheCount,
739 const VkPipelineCache* pSrcCaches)
740{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800741 AEMU_SCOPED_TRACE("vkMergePipelineCaches");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800742 auto vkEnc = HostConnection::get()->vkEncoder();
743 VkResult vkMergePipelineCaches_VkResult_return = (VkResult)0;
744 vkMergePipelineCaches_VkResult_return = vkEnc->vkMergePipelineCaches(device, dstCache, srcCacheCount, pSrcCaches);
745 return vkMergePipelineCaches_VkResult_return;
746}
747static VkResult entry_vkCreateGraphicsPipelines(
748 VkDevice device,
749 VkPipelineCache pipelineCache,
750 uint32_t createInfoCount,
751 const VkGraphicsPipelineCreateInfo* pCreateInfos,
752 const VkAllocationCallbacks* pAllocator,
753 VkPipeline* pPipelines)
754{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800755 AEMU_SCOPED_TRACE("vkCreateGraphicsPipelines");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800756 auto vkEnc = HostConnection::get()->vkEncoder();
757 VkResult vkCreateGraphicsPipelines_VkResult_return = (VkResult)0;
758 vkCreateGraphicsPipelines_VkResult_return = vkEnc->vkCreateGraphicsPipelines(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines);
759 return vkCreateGraphicsPipelines_VkResult_return;
760}
761static VkResult entry_vkCreateComputePipelines(
762 VkDevice device,
763 VkPipelineCache pipelineCache,
764 uint32_t createInfoCount,
765 const VkComputePipelineCreateInfo* pCreateInfos,
766 const VkAllocationCallbacks* pAllocator,
767 VkPipeline* pPipelines)
768{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800769 AEMU_SCOPED_TRACE("vkCreateComputePipelines");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800770 auto vkEnc = HostConnection::get()->vkEncoder();
771 VkResult vkCreateComputePipelines_VkResult_return = (VkResult)0;
772 vkCreateComputePipelines_VkResult_return = vkEnc->vkCreateComputePipelines(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines);
773 return vkCreateComputePipelines_VkResult_return;
774}
775static void entry_vkDestroyPipeline(
776 VkDevice device,
777 VkPipeline pipeline,
778 const VkAllocationCallbacks* pAllocator)
779{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800780 AEMU_SCOPED_TRACE("vkDestroyPipeline");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800781 auto vkEnc = HostConnection::get()->vkEncoder();
782 vkEnc->vkDestroyPipeline(device, pipeline, pAllocator);
783}
784static VkResult entry_vkCreatePipelineLayout(
785 VkDevice device,
786 const VkPipelineLayoutCreateInfo* pCreateInfo,
787 const VkAllocationCallbacks* pAllocator,
788 VkPipelineLayout* pPipelineLayout)
789{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800790 AEMU_SCOPED_TRACE("vkCreatePipelineLayout");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800791 auto vkEnc = HostConnection::get()->vkEncoder();
792 VkResult vkCreatePipelineLayout_VkResult_return = (VkResult)0;
793 vkCreatePipelineLayout_VkResult_return = vkEnc->vkCreatePipelineLayout(device, pCreateInfo, pAllocator, pPipelineLayout);
794 return vkCreatePipelineLayout_VkResult_return;
795}
796static void entry_vkDestroyPipelineLayout(
797 VkDevice device,
798 VkPipelineLayout pipelineLayout,
799 const VkAllocationCallbacks* pAllocator)
800{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800801 AEMU_SCOPED_TRACE("vkDestroyPipelineLayout");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800802 auto vkEnc = HostConnection::get()->vkEncoder();
803 vkEnc->vkDestroyPipelineLayout(device, pipelineLayout, pAllocator);
804}
805static VkResult entry_vkCreateSampler(
806 VkDevice device,
807 const VkSamplerCreateInfo* pCreateInfo,
808 const VkAllocationCallbacks* pAllocator,
809 VkSampler* pSampler)
810{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800811 AEMU_SCOPED_TRACE("vkCreateSampler");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800812 auto vkEnc = HostConnection::get()->vkEncoder();
813 VkResult vkCreateSampler_VkResult_return = (VkResult)0;
814 vkCreateSampler_VkResult_return = vkEnc->vkCreateSampler(device, pCreateInfo, pAllocator, pSampler);
815 return vkCreateSampler_VkResult_return;
816}
817static void entry_vkDestroySampler(
818 VkDevice device,
819 VkSampler sampler,
820 const VkAllocationCallbacks* pAllocator)
821{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800822 AEMU_SCOPED_TRACE("vkDestroySampler");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800823 auto vkEnc = HostConnection::get()->vkEncoder();
824 vkEnc->vkDestroySampler(device, sampler, pAllocator);
825}
826static VkResult entry_vkCreateDescriptorSetLayout(
827 VkDevice device,
828 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
829 const VkAllocationCallbacks* pAllocator,
830 VkDescriptorSetLayout* pSetLayout)
831{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800832 AEMU_SCOPED_TRACE("vkCreateDescriptorSetLayout");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800833 auto vkEnc = HostConnection::get()->vkEncoder();
834 VkResult vkCreateDescriptorSetLayout_VkResult_return = (VkResult)0;
835 vkCreateDescriptorSetLayout_VkResult_return = vkEnc->vkCreateDescriptorSetLayout(device, pCreateInfo, pAllocator, pSetLayout);
836 return vkCreateDescriptorSetLayout_VkResult_return;
837}
838static void entry_vkDestroyDescriptorSetLayout(
839 VkDevice device,
840 VkDescriptorSetLayout descriptorSetLayout,
841 const VkAllocationCallbacks* pAllocator)
842{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800843 AEMU_SCOPED_TRACE("vkDestroyDescriptorSetLayout");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800844 auto vkEnc = HostConnection::get()->vkEncoder();
845 vkEnc->vkDestroyDescriptorSetLayout(device, descriptorSetLayout, pAllocator);
846}
847static VkResult entry_vkCreateDescriptorPool(
848 VkDevice device,
849 const VkDescriptorPoolCreateInfo* pCreateInfo,
850 const VkAllocationCallbacks* pAllocator,
851 VkDescriptorPool* pDescriptorPool)
852{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800853 AEMU_SCOPED_TRACE("vkCreateDescriptorPool");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800854 auto vkEnc = HostConnection::get()->vkEncoder();
855 VkResult vkCreateDescriptorPool_VkResult_return = (VkResult)0;
856 vkCreateDescriptorPool_VkResult_return = vkEnc->vkCreateDescriptorPool(device, pCreateInfo, pAllocator, pDescriptorPool);
857 return vkCreateDescriptorPool_VkResult_return;
858}
859static void entry_vkDestroyDescriptorPool(
860 VkDevice device,
861 VkDescriptorPool descriptorPool,
862 const VkAllocationCallbacks* pAllocator)
863{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800864 AEMU_SCOPED_TRACE("vkDestroyDescriptorPool");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800865 auto vkEnc = HostConnection::get()->vkEncoder();
866 vkEnc->vkDestroyDescriptorPool(device, descriptorPool, pAllocator);
867}
868static VkResult entry_vkResetDescriptorPool(
869 VkDevice device,
870 VkDescriptorPool descriptorPool,
871 VkDescriptorPoolResetFlags flags)
872{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800873 AEMU_SCOPED_TRACE("vkResetDescriptorPool");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800874 auto vkEnc = HostConnection::get()->vkEncoder();
875 VkResult vkResetDescriptorPool_VkResult_return = (VkResult)0;
876 vkResetDescriptorPool_VkResult_return = vkEnc->vkResetDescriptorPool(device, descriptorPool, flags);
877 return vkResetDescriptorPool_VkResult_return;
878}
879static VkResult entry_vkAllocateDescriptorSets(
880 VkDevice device,
881 const VkDescriptorSetAllocateInfo* pAllocateInfo,
882 VkDescriptorSet* pDescriptorSets)
883{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800884 AEMU_SCOPED_TRACE("vkAllocateDescriptorSets");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800885 auto vkEnc = HostConnection::get()->vkEncoder();
886 VkResult vkAllocateDescriptorSets_VkResult_return = (VkResult)0;
887 vkAllocateDescriptorSets_VkResult_return = vkEnc->vkAllocateDescriptorSets(device, pAllocateInfo, pDescriptorSets);
888 return vkAllocateDescriptorSets_VkResult_return;
889}
890static VkResult entry_vkFreeDescriptorSets(
891 VkDevice device,
892 VkDescriptorPool descriptorPool,
893 uint32_t descriptorSetCount,
894 const VkDescriptorSet* pDescriptorSets)
895{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800896 AEMU_SCOPED_TRACE("vkFreeDescriptorSets");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800897 auto vkEnc = HostConnection::get()->vkEncoder();
898 VkResult vkFreeDescriptorSets_VkResult_return = (VkResult)0;
899 vkFreeDescriptorSets_VkResult_return = vkEnc->vkFreeDescriptorSets(device, descriptorPool, descriptorSetCount, pDescriptorSets);
900 return vkFreeDescriptorSets_VkResult_return;
901}
902static void entry_vkUpdateDescriptorSets(
903 VkDevice device,
904 uint32_t descriptorWriteCount,
905 const VkWriteDescriptorSet* pDescriptorWrites,
906 uint32_t descriptorCopyCount,
907 const VkCopyDescriptorSet* pDescriptorCopies)
908{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800909 AEMU_SCOPED_TRACE("vkUpdateDescriptorSets");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800910 auto vkEnc = HostConnection::get()->vkEncoder();
911 vkEnc->vkUpdateDescriptorSets(device, descriptorWriteCount, pDescriptorWrites, descriptorCopyCount, pDescriptorCopies);
912}
913static VkResult entry_vkCreateFramebuffer(
914 VkDevice device,
915 const VkFramebufferCreateInfo* pCreateInfo,
916 const VkAllocationCallbacks* pAllocator,
917 VkFramebuffer* pFramebuffer)
918{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800919 AEMU_SCOPED_TRACE("vkCreateFramebuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800920 auto vkEnc = HostConnection::get()->vkEncoder();
921 VkResult vkCreateFramebuffer_VkResult_return = (VkResult)0;
922 vkCreateFramebuffer_VkResult_return = vkEnc->vkCreateFramebuffer(device, pCreateInfo, pAllocator, pFramebuffer);
923 return vkCreateFramebuffer_VkResult_return;
924}
925static void entry_vkDestroyFramebuffer(
926 VkDevice device,
927 VkFramebuffer framebuffer,
928 const VkAllocationCallbacks* pAllocator)
929{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800930 AEMU_SCOPED_TRACE("vkDestroyFramebuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800931 auto vkEnc = HostConnection::get()->vkEncoder();
932 vkEnc->vkDestroyFramebuffer(device, framebuffer, pAllocator);
933}
934static VkResult entry_vkCreateRenderPass(
935 VkDevice device,
936 const VkRenderPassCreateInfo* pCreateInfo,
937 const VkAllocationCallbacks* pAllocator,
938 VkRenderPass* pRenderPass)
939{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800940 AEMU_SCOPED_TRACE("vkCreateRenderPass");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800941 auto vkEnc = HostConnection::get()->vkEncoder();
942 VkResult vkCreateRenderPass_VkResult_return = (VkResult)0;
943 vkCreateRenderPass_VkResult_return = vkEnc->vkCreateRenderPass(device, pCreateInfo, pAllocator, pRenderPass);
944 return vkCreateRenderPass_VkResult_return;
945}
946static void entry_vkDestroyRenderPass(
947 VkDevice device,
948 VkRenderPass renderPass,
949 const VkAllocationCallbacks* pAllocator)
950{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800951 AEMU_SCOPED_TRACE("vkDestroyRenderPass");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800952 auto vkEnc = HostConnection::get()->vkEncoder();
953 vkEnc->vkDestroyRenderPass(device, renderPass, pAllocator);
954}
955static void entry_vkGetRenderAreaGranularity(
956 VkDevice device,
957 VkRenderPass renderPass,
958 VkExtent2D* pGranularity)
959{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800960 AEMU_SCOPED_TRACE("vkGetRenderAreaGranularity");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800961 auto vkEnc = HostConnection::get()->vkEncoder();
962 vkEnc->vkGetRenderAreaGranularity(device, renderPass, pGranularity);
963}
964static VkResult entry_vkCreateCommandPool(
965 VkDevice device,
966 const VkCommandPoolCreateInfo* pCreateInfo,
967 const VkAllocationCallbacks* pAllocator,
968 VkCommandPool* pCommandPool)
969{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800970 AEMU_SCOPED_TRACE("vkCreateCommandPool");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800971 auto vkEnc = HostConnection::get()->vkEncoder();
972 VkResult vkCreateCommandPool_VkResult_return = (VkResult)0;
973 vkCreateCommandPool_VkResult_return = vkEnc->vkCreateCommandPool(device, pCreateInfo, pAllocator, pCommandPool);
974 return vkCreateCommandPool_VkResult_return;
975}
976static void entry_vkDestroyCommandPool(
977 VkDevice device,
978 VkCommandPool commandPool,
979 const VkAllocationCallbacks* pAllocator)
980{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800981 AEMU_SCOPED_TRACE("vkDestroyCommandPool");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800982 auto vkEnc = HostConnection::get()->vkEncoder();
983 vkEnc->vkDestroyCommandPool(device, commandPool, pAllocator);
984}
985static VkResult entry_vkResetCommandPool(
986 VkDevice device,
987 VkCommandPool commandPool,
988 VkCommandPoolResetFlags flags)
989{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800990 AEMU_SCOPED_TRACE("vkResetCommandPool");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800991 auto vkEnc = HostConnection::get()->vkEncoder();
992 VkResult vkResetCommandPool_VkResult_return = (VkResult)0;
993 vkResetCommandPool_VkResult_return = vkEnc->vkResetCommandPool(device, commandPool, flags);
994 return vkResetCommandPool_VkResult_return;
995}
996static VkResult entry_vkAllocateCommandBuffers(
997 VkDevice device,
998 const VkCommandBufferAllocateInfo* pAllocateInfo,
999 VkCommandBuffer* pCommandBuffers)
1000{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001001 AEMU_SCOPED_TRACE("vkAllocateCommandBuffers");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001002 auto vkEnc = HostConnection::get()->vkEncoder();
1003 VkResult vkAllocateCommandBuffers_VkResult_return = (VkResult)0;
1004 vkAllocateCommandBuffers_VkResult_return = vkEnc->vkAllocateCommandBuffers(device, pAllocateInfo, pCommandBuffers);
1005 return vkAllocateCommandBuffers_VkResult_return;
1006}
1007static void entry_vkFreeCommandBuffers(
1008 VkDevice device,
1009 VkCommandPool commandPool,
1010 uint32_t commandBufferCount,
1011 const VkCommandBuffer* pCommandBuffers)
1012{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001013 AEMU_SCOPED_TRACE("vkFreeCommandBuffers");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001014 auto vkEnc = HostConnection::get()->vkEncoder();
1015 vkEnc->vkFreeCommandBuffers(device, commandPool, commandBufferCount, pCommandBuffers);
1016}
1017static VkResult entry_vkBeginCommandBuffer(
1018 VkCommandBuffer commandBuffer,
1019 const VkCommandBufferBeginInfo* pBeginInfo)
1020{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001021 AEMU_SCOPED_TRACE("vkBeginCommandBuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001022 auto vkEnc = HostConnection::get()->vkEncoder();
1023 VkResult vkBeginCommandBuffer_VkResult_return = (VkResult)0;
1024 vkBeginCommandBuffer_VkResult_return = vkEnc->vkBeginCommandBuffer(commandBuffer, pBeginInfo);
1025 return vkBeginCommandBuffer_VkResult_return;
1026}
1027static VkResult entry_vkEndCommandBuffer(
1028 VkCommandBuffer commandBuffer)
1029{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001030 AEMU_SCOPED_TRACE("vkEndCommandBuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001031 auto vkEnc = HostConnection::get()->vkEncoder();
1032 VkResult vkEndCommandBuffer_VkResult_return = (VkResult)0;
1033 vkEndCommandBuffer_VkResult_return = vkEnc->vkEndCommandBuffer(commandBuffer);
1034 return vkEndCommandBuffer_VkResult_return;
1035}
1036static VkResult entry_vkResetCommandBuffer(
1037 VkCommandBuffer commandBuffer,
1038 VkCommandBufferResetFlags flags)
1039{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001040 AEMU_SCOPED_TRACE("vkResetCommandBuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001041 auto vkEnc = HostConnection::get()->vkEncoder();
1042 VkResult vkResetCommandBuffer_VkResult_return = (VkResult)0;
1043 vkResetCommandBuffer_VkResult_return = vkEnc->vkResetCommandBuffer(commandBuffer, flags);
1044 return vkResetCommandBuffer_VkResult_return;
1045}
1046static void entry_vkCmdBindPipeline(
1047 VkCommandBuffer commandBuffer,
1048 VkPipelineBindPoint pipelineBindPoint,
1049 VkPipeline pipeline)
1050{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001051 AEMU_SCOPED_TRACE("vkCmdBindPipeline");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001052 auto vkEnc = HostConnection::get()->vkEncoder();
1053 vkEnc->vkCmdBindPipeline(commandBuffer, pipelineBindPoint, pipeline);
1054}
1055static void entry_vkCmdSetViewport(
1056 VkCommandBuffer commandBuffer,
1057 uint32_t firstViewport,
1058 uint32_t viewportCount,
1059 const VkViewport* pViewports)
1060{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001061 AEMU_SCOPED_TRACE("vkCmdSetViewport");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001062 auto vkEnc = HostConnection::get()->vkEncoder();
1063 vkEnc->vkCmdSetViewport(commandBuffer, firstViewport, viewportCount, pViewports);
1064}
1065static void entry_vkCmdSetScissor(
1066 VkCommandBuffer commandBuffer,
1067 uint32_t firstScissor,
1068 uint32_t scissorCount,
1069 const VkRect2D* pScissors)
1070{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001071 AEMU_SCOPED_TRACE("vkCmdSetScissor");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001072 auto vkEnc = HostConnection::get()->vkEncoder();
1073 vkEnc->vkCmdSetScissor(commandBuffer, firstScissor, scissorCount, pScissors);
1074}
1075static void entry_vkCmdSetLineWidth(
1076 VkCommandBuffer commandBuffer,
1077 float lineWidth)
1078{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001079 AEMU_SCOPED_TRACE("vkCmdSetLineWidth");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001080 auto vkEnc = HostConnection::get()->vkEncoder();
1081 vkEnc->vkCmdSetLineWidth(commandBuffer, lineWidth);
1082}
1083static void entry_vkCmdSetDepthBias(
1084 VkCommandBuffer commandBuffer,
1085 float depthBiasConstantFactor,
1086 float depthBiasClamp,
1087 float depthBiasSlopeFactor)
1088{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001089 AEMU_SCOPED_TRACE("vkCmdSetDepthBias");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001090 auto vkEnc = HostConnection::get()->vkEncoder();
1091 vkEnc->vkCmdSetDepthBias(commandBuffer, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor);
1092}
1093static void entry_vkCmdSetBlendConstants(
1094 VkCommandBuffer commandBuffer,
1095 const float blendConstants)
1096{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001097 AEMU_SCOPED_TRACE("vkCmdSetBlendConstants");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001098 auto vkEnc = HostConnection::get()->vkEncoder();
1099 vkEnc->vkCmdSetBlendConstants(commandBuffer, blendConstants);
1100}
1101static void entry_vkCmdSetDepthBounds(
1102 VkCommandBuffer commandBuffer,
1103 float minDepthBounds,
1104 float maxDepthBounds)
1105{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001106 AEMU_SCOPED_TRACE("vkCmdSetDepthBounds");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001107 auto vkEnc = HostConnection::get()->vkEncoder();
1108 vkEnc->vkCmdSetDepthBounds(commandBuffer, minDepthBounds, maxDepthBounds);
1109}
1110static void entry_vkCmdSetStencilCompareMask(
1111 VkCommandBuffer commandBuffer,
1112 VkStencilFaceFlags faceMask,
1113 uint32_t compareMask)
1114{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001115 AEMU_SCOPED_TRACE("vkCmdSetStencilCompareMask");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001116 auto vkEnc = HostConnection::get()->vkEncoder();
1117 vkEnc->vkCmdSetStencilCompareMask(commandBuffer, faceMask, compareMask);
1118}
1119static void entry_vkCmdSetStencilWriteMask(
1120 VkCommandBuffer commandBuffer,
1121 VkStencilFaceFlags faceMask,
1122 uint32_t writeMask)
1123{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001124 AEMU_SCOPED_TRACE("vkCmdSetStencilWriteMask");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001125 auto vkEnc = HostConnection::get()->vkEncoder();
1126 vkEnc->vkCmdSetStencilWriteMask(commandBuffer, faceMask, writeMask);
1127}
1128static void entry_vkCmdSetStencilReference(
1129 VkCommandBuffer commandBuffer,
1130 VkStencilFaceFlags faceMask,
1131 uint32_t reference)
1132{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001133 AEMU_SCOPED_TRACE("vkCmdSetStencilReference");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001134 auto vkEnc = HostConnection::get()->vkEncoder();
1135 vkEnc->vkCmdSetStencilReference(commandBuffer, faceMask, reference);
1136}
1137static void entry_vkCmdBindDescriptorSets(
1138 VkCommandBuffer commandBuffer,
1139 VkPipelineBindPoint pipelineBindPoint,
1140 VkPipelineLayout layout,
1141 uint32_t firstSet,
1142 uint32_t descriptorSetCount,
1143 const VkDescriptorSet* pDescriptorSets,
1144 uint32_t dynamicOffsetCount,
1145 const uint32_t* pDynamicOffsets)
1146{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001147 AEMU_SCOPED_TRACE("vkCmdBindDescriptorSets");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001148 auto vkEnc = HostConnection::get()->vkEncoder();
1149 vkEnc->vkCmdBindDescriptorSets(commandBuffer, pipelineBindPoint, layout, firstSet, descriptorSetCount, pDescriptorSets, dynamicOffsetCount, pDynamicOffsets);
1150}
1151static void entry_vkCmdBindIndexBuffer(
1152 VkCommandBuffer commandBuffer,
1153 VkBuffer buffer,
1154 VkDeviceSize offset,
1155 VkIndexType indexType)
1156{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001157 AEMU_SCOPED_TRACE("vkCmdBindIndexBuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001158 auto vkEnc = HostConnection::get()->vkEncoder();
1159 vkEnc->vkCmdBindIndexBuffer(commandBuffer, buffer, offset, indexType);
1160}
1161static void entry_vkCmdBindVertexBuffers(
1162 VkCommandBuffer commandBuffer,
1163 uint32_t firstBinding,
1164 uint32_t bindingCount,
1165 const VkBuffer* pBuffers,
1166 const VkDeviceSize* pOffsets)
1167{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001168 AEMU_SCOPED_TRACE("vkCmdBindVertexBuffers");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001169 auto vkEnc = HostConnection::get()->vkEncoder();
1170 vkEnc->vkCmdBindVertexBuffers(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets);
1171}
1172static void entry_vkCmdDraw(
1173 VkCommandBuffer commandBuffer,
1174 uint32_t vertexCount,
1175 uint32_t instanceCount,
1176 uint32_t firstVertex,
1177 uint32_t firstInstance)
1178{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001179 AEMU_SCOPED_TRACE("vkCmdDraw");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001180 auto vkEnc = HostConnection::get()->vkEncoder();
1181 vkEnc->vkCmdDraw(commandBuffer, vertexCount, instanceCount, firstVertex, firstInstance);
1182}
1183static void entry_vkCmdDrawIndexed(
1184 VkCommandBuffer commandBuffer,
1185 uint32_t indexCount,
1186 uint32_t instanceCount,
1187 uint32_t firstIndex,
1188 int32_t vertexOffset,
1189 uint32_t firstInstance)
1190{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001191 AEMU_SCOPED_TRACE("vkCmdDrawIndexed");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001192 auto vkEnc = HostConnection::get()->vkEncoder();
1193 vkEnc->vkCmdDrawIndexed(commandBuffer, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance);
1194}
1195static void entry_vkCmdDrawIndirect(
1196 VkCommandBuffer commandBuffer,
1197 VkBuffer buffer,
1198 VkDeviceSize offset,
1199 uint32_t drawCount,
1200 uint32_t stride)
1201{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001202 AEMU_SCOPED_TRACE("vkCmdDrawIndirect");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001203 auto vkEnc = HostConnection::get()->vkEncoder();
1204 vkEnc->vkCmdDrawIndirect(commandBuffer, buffer, offset, drawCount, stride);
1205}
1206static void entry_vkCmdDrawIndexedIndirect(
1207 VkCommandBuffer commandBuffer,
1208 VkBuffer buffer,
1209 VkDeviceSize offset,
1210 uint32_t drawCount,
1211 uint32_t stride)
1212{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001213 AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirect");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001214 auto vkEnc = HostConnection::get()->vkEncoder();
1215 vkEnc->vkCmdDrawIndexedIndirect(commandBuffer, buffer, offset, drawCount, stride);
1216}
1217static void entry_vkCmdDispatch(
1218 VkCommandBuffer commandBuffer,
1219 uint32_t groupCountX,
1220 uint32_t groupCountY,
1221 uint32_t groupCountZ)
1222{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001223 AEMU_SCOPED_TRACE("vkCmdDispatch");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001224 auto vkEnc = HostConnection::get()->vkEncoder();
1225 vkEnc->vkCmdDispatch(commandBuffer, groupCountX, groupCountY, groupCountZ);
1226}
1227static void entry_vkCmdDispatchIndirect(
1228 VkCommandBuffer commandBuffer,
1229 VkBuffer buffer,
1230 VkDeviceSize offset)
1231{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001232 AEMU_SCOPED_TRACE("vkCmdDispatchIndirect");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001233 auto vkEnc = HostConnection::get()->vkEncoder();
1234 vkEnc->vkCmdDispatchIndirect(commandBuffer, buffer, offset);
1235}
1236static void entry_vkCmdCopyBuffer(
1237 VkCommandBuffer commandBuffer,
1238 VkBuffer srcBuffer,
1239 VkBuffer dstBuffer,
1240 uint32_t regionCount,
1241 const VkBufferCopy* pRegions)
1242{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001243 AEMU_SCOPED_TRACE("vkCmdCopyBuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001244 auto vkEnc = HostConnection::get()->vkEncoder();
1245 vkEnc->vkCmdCopyBuffer(commandBuffer, srcBuffer, dstBuffer, regionCount, pRegions);
1246}
1247static void entry_vkCmdCopyImage(
1248 VkCommandBuffer commandBuffer,
1249 VkImage srcImage,
1250 VkImageLayout srcImageLayout,
1251 VkImage dstImage,
1252 VkImageLayout dstImageLayout,
1253 uint32_t regionCount,
1254 const VkImageCopy* pRegions)
1255{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001256 AEMU_SCOPED_TRACE("vkCmdCopyImage");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001257 auto vkEnc = HostConnection::get()->vkEncoder();
1258 vkEnc->vkCmdCopyImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions);
1259}
1260static void entry_vkCmdBlitImage(
1261 VkCommandBuffer commandBuffer,
1262 VkImage srcImage,
1263 VkImageLayout srcImageLayout,
1264 VkImage dstImage,
1265 VkImageLayout dstImageLayout,
1266 uint32_t regionCount,
1267 const VkImageBlit* pRegions,
1268 VkFilter filter)
1269{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001270 AEMU_SCOPED_TRACE("vkCmdBlitImage");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001271 auto vkEnc = HostConnection::get()->vkEncoder();
1272 vkEnc->vkCmdBlitImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions, filter);
1273}
1274static void entry_vkCmdCopyBufferToImage(
1275 VkCommandBuffer commandBuffer,
1276 VkBuffer srcBuffer,
1277 VkImage dstImage,
1278 VkImageLayout dstImageLayout,
1279 uint32_t regionCount,
1280 const VkBufferImageCopy* pRegions)
1281{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001282 AEMU_SCOPED_TRACE("vkCmdCopyBufferToImage");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001283 auto vkEnc = HostConnection::get()->vkEncoder();
1284 vkEnc->vkCmdCopyBufferToImage(commandBuffer, srcBuffer, dstImage, dstImageLayout, regionCount, pRegions);
1285}
1286static void entry_vkCmdCopyImageToBuffer(
1287 VkCommandBuffer commandBuffer,
1288 VkImage srcImage,
1289 VkImageLayout srcImageLayout,
1290 VkBuffer dstBuffer,
1291 uint32_t regionCount,
1292 const VkBufferImageCopy* pRegions)
1293{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001294 AEMU_SCOPED_TRACE("vkCmdCopyImageToBuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001295 auto vkEnc = HostConnection::get()->vkEncoder();
1296 vkEnc->vkCmdCopyImageToBuffer(commandBuffer, srcImage, srcImageLayout, dstBuffer, regionCount, pRegions);
1297}
1298static void entry_vkCmdUpdateBuffer(
1299 VkCommandBuffer commandBuffer,
1300 VkBuffer dstBuffer,
1301 VkDeviceSize dstOffset,
1302 VkDeviceSize dataSize,
1303 const void* pData)
1304{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001305 AEMU_SCOPED_TRACE("vkCmdUpdateBuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001306 auto vkEnc = HostConnection::get()->vkEncoder();
1307 vkEnc->vkCmdUpdateBuffer(commandBuffer, dstBuffer, dstOffset, dataSize, pData);
1308}
1309static void entry_vkCmdFillBuffer(
1310 VkCommandBuffer commandBuffer,
1311 VkBuffer dstBuffer,
1312 VkDeviceSize dstOffset,
1313 VkDeviceSize size,
1314 uint32_t data)
1315{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001316 AEMU_SCOPED_TRACE("vkCmdFillBuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001317 auto vkEnc = HostConnection::get()->vkEncoder();
1318 vkEnc->vkCmdFillBuffer(commandBuffer, dstBuffer, dstOffset, size, data);
1319}
1320static void entry_vkCmdClearColorImage(
1321 VkCommandBuffer commandBuffer,
1322 VkImage image,
1323 VkImageLayout imageLayout,
1324 const VkClearColorValue* pColor,
1325 uint32_t rangeCount,
1326 const VkImageSubresourceRange* pRanges)
1327{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001328 AEMU_SCOPED_TRACE("vkCmdClearColorImage");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001329 auto vkEnc = HostConnection::get()->vkEncoder();
1330 vkEnc->vkCmdClearColorImage(commandBuffer, image, imageLayout, pColor, rangeCount, pRanges);
1331}
1332static void entry_vkCmdClearDepthStencilImage(
1333 VkCommandBuffer commandBuffer,
1334 VkImage image,
1335 VkImageLayout imageLayout,
1336 const VkClearDepthStencilValue* pDepthStencil,
1337 uint32_t rangeCount,
1338 const VkImageSubresourceRange* pRanges)
1339{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001340 AEMU_SCOPED_TRACE("vkCmdClearDepthStencilImage");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001341 auto vkEnc = HostConnection::get()->vkEncoder();
1342 vkEnc->vkCmdClearDepthStencilImage(commandBuffer, image, imageLayout, pDepthStencil, rangeCount, pRanges);
1343}
1344static void entry_vkCmdClearAttachments(
1345 VkCommandBuffer commandBuffer,
1346 uint32_t attachmentCount,
1347 const VkClearAttachment* pAttachments,
1348 uint32_t rectCount,
1349 const VkClearRect* pRects)
1350{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001351 AEMU_SCOPED_TRACE("vkCmdClearAttachments");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001352 auto vkEnc = HostConnection::get()->vkEncoder();
1353 vkEnc->vkCmdClearAttachments(commandBuffer, attachmentCount, pAttachments, rectCount, pRects);
1354}
1355static void entry_vkCmdResolveImage(
1356 VkCommandBuffer commandBuffer,
1357 VkImage srcImage,
1358 VkImageLayout srcImageLayout,
1359 VkImage dstImage,
1360 VkImageLayout dstImageLayout,
1361 uint32_t regionCount,
1362 const VkImageResolve* pRegions)
1363{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001364 AEMU_SCOPED_TRACE("vkCmdResolveImage");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001365 auto vkEnc = HostConnection::get()->vkEncoder();
1366 vkEnc->vkCmdResolveImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions);
1367}
1368static void entry_vkCmdSetEvent(
1369 VkCommandBuffer commandBuffer,
1370 VkEvent event,
1371 VkPipelineStageFlags stageMask)
1372{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001373 AEMU_SCOPED_TRACE("vkCmdSetEvent");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001374 auto vkEnc = HostConnection::get()->vkEncoder();
1375 vkEnc->vkCmdSetEvent(commandBuffer, event, stageMask);
1376}
1377static void entry_vkCmdResetEvent(
1378 VkCommandBuffer commandBuffer,
1379 VkEvent event,
1380 VkPipelineStageFlags stageMask)
1381{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001382 AEMU_SCOPED_TRACE("vkCmdResetEvent");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001383 auto vkEnc = HostConnection::get()->vkEncoder();
1384 vkEnc->vkCmdResetEvent(commandBuffer, event, stageMask);
1385}
1386static void entry_vkCmdWaitEvents(
1387 VkCommandBuffer commandBuffer,
1388 uint32_t eventCount,
1389 const VkEvent* pEvents,
1390 VkPipelineStageFlags srcStageMask,
1391 VkPipelineStageFlags dstStageMask,
1392 uint32_t memoryBarrierCount,
1393 const VkMemoryBarrier* pMemoryBarriers,
1394 uint32_t bufferMemoryBarrierCount,
1395 const VkBufferMemoryBarrier* pBufferMemoryBarriers,
1396 uint32_t imageMemoryBarrierCount,
1397 const VkImageMemoryBarrier* pImageMemoryBarriers)
1398{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001399 AEMU_SCOPED_TRACE("vkCmdWaitEvents");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001400 auto vkEnc = HostConnection::get()->vkEncoder();
1401 vkEnc->vkCmdWaitEvents(commandBuffer, eventCount, pEvents, srcStageMask, dstStageMask, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers);
1402}
1403static void entry_vkCmdPipelineBarrier(
1404 VkCommandBuffer commandBuffer,
1405 VkPipelineStageFlags srcStageMask,
1406 VkPipelineStageFlags dstStageMask,
1407 VkDependencyFlags dependencyFlags,
1408 uint32_t memoryBarrierCount,
1409 const VkMemoryBarrier* pMemoryBarriers,
1410 uint32_t bufferMemoryBarrierCount,
1411 const VkBufferMemoryBarrier* pBufferMemoryBarriers,
1412 uint32_t imageMemoryBarrierCount,
1413 const VkImageMemoryBarrier* pImageMemoryBarriers)
1414{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001415 AEMU_SCOPED_TRACE("vkCmdPipelineBarrier");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001416 auto vkEnc = HostConnection::get()->vkEncoder();
1417 vkEnc->vkCmdPipelineBarrier(commandBuffer, srcStageMask, dstStageMask, dependencyFlags, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers);
1418}
1419static void entry_vkCmdBeginQuery(
1420 VkCommandBuffer commandBuffer,
1421 VkQueryPool queryPool,
1422 uint32_t query,
1423 VkQueryControlFlags flags)
1424{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001425 AEMU_SCOPED_TRACE("vkCmdBeginQuery");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001426 auto vkEnc = HostConnection::get()->vkEncoder();
1427 vkEnc->vkCmdBeginQuery(commandBuffer, queryPool, query, flags);
1428}
1429static void entry_vkCmdEndQuery(
1430 VkCommandBuffer commandBuffer,
1431 VkQueryPool queryPool,
1432 uint32_t query)
1433{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001434 AEMU_SCOPED_TRACE("vkCmdEndQuery");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001435 auto vkEnc = HostConnection::get()->vkEncoder();
1436 vkEnc->vkCmdEndQuery(commandBuffer, queryPool, query);
1437}
1438static void entry_vkCmdResetQueryPool(
1439 VkCommandBuffer commandBuffer,
1440 VkQueryPool queryPool,
1441 uint32_t firstQuery,
1442 uint32_t queryCount)
1443{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001444 AEMU_SCOPED_TRACE("vkCmdResetQueryPool");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001445 auto vkEnc = HostConnection::get()->vkEncoder();
1446 vkEnc->vkCmdResetQueryPool(commandBuffer, queryPool, firstQuery, queryCount);
1447}
1448static void entry_vkCmdWriteTimestamp(
1449 VkCommandBuffer commandBuffer,
1450 VkPipelineStageFlagBits pipelineStage,
1451 VkQueryPool queryPool,
1452 uint32_t query)
1453{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001454 AEMU_SCOPED_TRACE("vkCmdWriteTimestamp");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001455 auto vkEnc = HostConnection::get()->vkEncoder();
1456 vkEnc->vkCmdWriteTimestamp(commandBuffer, pipelineStage, queryPool, query);
1457}
1458static void entry_vkCmdCopyQueryPoolResults(
1459 VkCommandBuffer commandBuffer,
1460 VkQueryPool queryPool,
1461 uint32_t firstQuery,
1462 uint32_t queryCount,
1463 VkBuffer dstBuffer,
1464 VkDeviceSize dstOffset,
1465 VkDeviceSize stride,
1466 VkQueryResultFlags flags)
1467{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001468 AEMU_SCOPED_TRACE("vkCmdCopyQueryPoolResults");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001469 auto vkEnc = HostConnection::get()->vkEncoder();
1470 vkEnc->vkCmdCopyQueryPoolResults(commandBuffer, queryPool, firstQuery, queryCount, dstBuffer, dstOffset, stride, flags);
1471}
1472static void entry_vkCmdPushConstants(
1473 VkCommandBuffer commandBuffer,
1474 VkPipelineLayout layout,
1475 VkShaderStageFlags stageFlags,
1476 uint32_t offset,
1477 uint32_t size,
1478 const void* pValues)
1479{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001480 AEMU_SCOPED_TRACE("vkCmdPushConstants");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001481 auto vkEnc = HostConnection::get()->vkEncoder();
1482 vkEnc->vkCmdPushConstants(commandBuffer, layout, stageFlags, offset, size, pValues);
1483}
1484static void entry_vkCmdBeginRenderPass(
1485 VkCommandBuffer commandBuffer,
1486 const VkRenderPassBeginInfo* pRenderPassBegin,
1487 VkSubpassContents contents)
1488{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001489 AEMU_SCOPED_TRACE("vkCmdBeginRenderPass");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001490 auto vkEnc = HostConnection::get()->vkEncoder();
1491 vkEnc->vkCmdBeginRenderPass(commandBuffer, pRenderPassBegin, contents);
1492}
1493static void entry_vkCmdNextSubpass(
1494 VkCommandBuffer commandBuffer,
1495 VkSubpassContents contents)
1496{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001497 AEMU_SCOPED_TRACE("vkCmdNextSubpass");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001498 auto vkEnc = HostConnection::get()->vkEncoder();
1499 vkEnc->vkCmdNextSubpass(commandBuffer, contents);
1500}
1501static void entry_vkCmdEndRenderPass(
1502 VkCommandBuffer commandBuffer)
1503{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001504 AEMU_SCOPED_TRACE("vkCmdEndRenderPass");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001505 auto vkEnc = HostConnection::get()->vkEncoder();
1506 vkEnc->vkCmdEndRenderPass(commandBuffer);
1507}
1508static void entry_vkCmdExecuteCommands(
1509 VkCommandBuffer commandBuffer,
1510 uint32_t commandBufferCount,
1511 const VkCommandBuffer* pCommandBuffers)
1512{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001513 AEMU_SCOPED_TRACE("vkCmdExecuteCommands");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001514 auto vkEnc = HostConnection::get()->vkEncoder();
1515 vkEnc->vkCmdExecuteCommands(commandBuffer, commandBufferCount, pCommandBuffers);
1516}
1517#endif
1518#ifdef VK_VERSION_1_1
1519static VkResult entry_vkEnumerateInstanceVersion(
1520 uint32_t* pApiVersion)
1521{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001522 AEMU_SCOPED_TRACE("vkEnumerateInstanceVersion");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001523 auto vkEnc = HostConnection::get()->vkEncoder();
1524 VkResult vkEnumerateInstanceVersion_VkResult_return = (VkResult)0;
1525 vkEnumerateInstanceVersion_VkResult_return = vkEnc->vkEnumerateInstanceVersion(pApiVersion);
1526 return vkEnumerateInstanceVersion_VkResult_return;
1527}
1528static VkResult entry_vkBindBufferMemory2(
1529 VkDevice device,
1530 uint32_t bindInfoCount,
1531 const VkBindBufferMemoryInfo* pBindInfos)
1532{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001533 AEMU_SCOPED_TRACE("vkBindBufferMemory2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001534 auto vkEnc = HostConnection::get()->vkEncoder();
1535 VkResult vkBindBufferMemory2_VkResult_return = (VkResult)0;
Lingfeng Yang4af5f322019-02-14 08:10:28 -08001536 auto resources = ResourceTracker::get();
1537 vkBindBufferMemory2_VkResult_return = resources->on_vkBindBufferMemory2(vkEnc, VK_SUCCESS, device, bindInfoCount, pBindInfos);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001538 return vkBindBufferMemory2_VkResult_return;
1539}
1540static VkResult entry_vkBindImageMemory2(
1541 VkDevice device,
1542 uint32_t bindInfoCount,
1543 const VkBindImageMemoryInfo* pBindInfos)
1544{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001545 AEMU_SCOPED_TRACE("vkBindImageMemory2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001546 auto vkEnc = HostConnection::get()->vkEncoder();
1547 VkResult vkBindImageMemory2_VkResult_return = (VkResult)0;
Lingfeng Yang4af5f322019-02-14 08:10:28 -08001548 auto resources = ResourceTracker::get();
1549 vkBindImageMemory2_VkResult_return = resources->on_vkBindImageMemory2(vkEnc, VK_SUCCESS, device, bindInfoCount, pBindInfos);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001550 return vkBindImageMemory2_VkResult_return;
1551}
1552static void entry_vkGetDeviceGroupPeerMemoryFeatures(
1553 VkDevice device,
1554 uint32_t heapIndex,
1555 uint32_t localDeviceIndex,
1556 uint32_t remoteDeviceIndex,
1557 VkPeerMemoryFeatureFlags* pPeerMemoryFeatures)
1558{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001559 AEMU_SCOPED_TRACE("vkGetDeviceGroupPeerMemoryFeatures");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001560 auto vkEnc = HostConnection::get()->vkEncoder();
1561 vkEnc->vkGetDeviceGroupPeerMemoryFeatures(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures);
1562}
1563static void entry_vkCmdSetDeviceMask(
1564 VkCommandBuffer commandBuffer,
1565 uint32_t deviceMask)
1566{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001567 AEMU_SCOPED_TRACE("vkCmdSetDeviceMask");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001568 auto vkEnc = HostConnection::get()->vkEncoder();
1569 vkEnc->vkCmdSetDeviceMask(commandBuffer, deviceMask);
1570}
1571static void entry_vkCmdDispatchBase(
1572 VkCommandBuffer commandBuffer,
1573 uint32_t baseGroupX,
1574 uint32_t baseGroupY,
1575 uint32_t baseGroupZ,
1576 uint32_t groupCountX,
1577 uint32_t groupCountY,
1578 uint32_t groupCountZ)
1579{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001580 AEMU_SCOPED_TRACE("vkCmdDispatchBase");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001581 auto vkEnc = HostConnection::get()->vkEncoder();
1582 vkEnc->vkCmdDispatchBase(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ);
1583}
1584static VkResult entry_vkEnumeratePhysicalDeviceGroups(
1585 VkInstance instance,
1586 uint32_t* pPhysicalDeviceGroupCount,
1587 VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties)
1588{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001589 AEMU_SCOPED_TRACE("vkEnumeratePhysicalDeviceGroups");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001590 auto vkEnc = HostConnection::get()->vkEncoder();
1591 VkResult vkEnumeratePhysicalDeviceGroups_VkResult_return = (VkResult)0;
1592 vkEnumeratePhysicalDeviceGroups_VkResult_return = vkEnc->vkEnumeratePhysicalDeviceGroups(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties);
1593 return vkEnumeratePhysicalDeviceGroups_VkResult_return;
1594}
1595static void entry_vkGetImageMemoryRequirements2(
1596 VkDevice device,
1597 const VkImageMemoryRequirementsInfo2* pInfo,
1598 VkMemoryRequirements2* pMemoryRequirements)
1599{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001600 AEMU_SCOPED_TRACE("vkGetImageMemoryRequirements2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001601 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang4af5f322019-02-14 08:10:28 -08001602 auto resources = ResourceTracker::get();
1603 resources->on_vkGetImageMemoryRequirements2(vkEnc, device, pInfo, pMemoryRequirements);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001604}
1605static void entry_vkGetBufferMemoryRequirements2(
1606 VkDevice device,
1607 const VkBufferMemoryRequirementsInfo2* pInfo,
1608 VkMemoryRequirements2* pMemoryRequirements)
1609{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001610 AEMU_SCOPED_TRACE("vkGetBufferMemoryRequirements2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001611 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang4af5f322019-02-14 08:10:28 -08001612 auto resources = ResourceTracker::get();
1613 resources->on_vkGetBufferMemoryRequirements2(vkEnc, device, pInfo, pMemoryRequirements);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001614}
1615static void entry_vkGetImageSparseMemoryRequirements2(
1616 VkDevice device,
1617 const VkImageSparseMemoryRequirementsInfo2* pInfo,
1618 uint32_t* pSparseMemoryRequirementCount,
1619 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements)
1620{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001621 AEMU_SCOPED_TRACE("vkGetImageSparseMemoryRequirements2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001622 auto vkEnc = HostConnection::get()->vkEncoder();
1623 vkEnc->vkGetImageSparseMemoryRequirements2(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements);
1624}
1625static void entry_vkGetPhysicalDeviceFeatures2(
1626 VkPhysicalDevice physicalDevice,
1627 VkPhysicalDeviceFeatures2* pFeatures)
1628{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001629 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFeatures2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001630 auto vkEnc = HostConnection::get()->vkEncoder();
1631 vkEnc->vkGetPhysicalDeviceFeatures2(physicalDevice, pFeatures);
1632}
1633static void entry_vkGetPhysicalDeviceProperties2(
1634 VkPhysicalDevice physicalDevice,
1635 VkPhysicalDeviceProperties2* pProperties)
1636{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001637 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceProperties2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001638 auto vkEnc = HostConnection::get()->vkEncoder();
1639 vkEnc->vkGetPhysicalDeviceProperties2(physicalDevice, pProperties);
1640}
1641static void entry_vkGetPhysicalDeviceFormatProperties2(
1642 VkPhysicalDevice physicalDevice,
1643 VkFormat format,
1644 VkFormatProperties2* pFormatProperties)
1645{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001646 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFormatProperties2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001647 auto vkEnc = HostConnection::get()->vkEncoder();
1648 vkEnc->vkGetPhysicalDeviceFormatProperties2(physicalDevice, format, pFormatProperties);
1649}
1650static VkResult entry_vkGetPhysicalDeviceImageFormatProperties2(
1651 VkPhysicalDevice physicalDevice,
1652 const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
1653 VkImageFormatProperties2* pImageFormatProperties)
1654{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001655 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceImageFormatProperties2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001656 auto vkEnc = HostConnection::get()->vkEncoder();
1657 VkResult vkGetPhysicalDeviceImageFormatProperties2_VkResult_return = (VkResult)0;
1658 vkGetPhysicalDeviceImageFormatProperties2_VkResult_return = vkEnc->vkGetPhysicalDeviceImageFormatProperties2(physicalDevice, pImageFormatInfo, pImageFormatProperties);
1659 return vkGetPhysicalDeviceImageFormatProperties2_VkResult_return;
1660}
1661static void entry_vkGetPhysicalDeviceQueueFamilyProperties2(
1662 VkPhysicalDevice physicalDevice,
1663 uint32_t* pQueueFamilyPropertyCount,
1664 VkQueueFamilyProperties2* pQueueFamilyProperties)
1665{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001666 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceQueueFamilyProperties2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001667 auto vkEnc = HostConnection::get()->vkEncoder();
1668 vkEnc->vkGetPhysicalDeviceQueueFamilyProperties2(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties);
1669}
1670static void entry_vkGetPhysicalDeviceMemoryProperties2(
1671 VkPhysicalDevice physicalDevice,
1672 VkPhysicalDeviceMemoryProperties2* pMemoryProperties)
1673{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001674 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMemoryProperties2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001675 auto vkEnc = HostConnection::get()->vkEncoder();
1676 vkEnc->vkGetPhysicalDeviceMemoryProperties2(physicalDevice, pMemoryProperties);
1677}
1678static void entry_vkGetPhysicalDeviceSparseImageFormatProperties2(
1679 VkPhysicalDevice physicalDevice,
1680 const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
1681 uint32_t* pPropertyCount,
1682 VkSparseImageFormatProperties2* pProperties)
1683{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001684 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSparseImageFormatProperties2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001685 auto vkEnc = HostConnection::get()->vkEncoder();
1686 vkEnc->vkGetPhysicalDeviceSparseImageFormatProperties2(physicalDevice, pFormatInfo, pPropertyCount, pProperties);
1687}
1688static void entry_vkTrimCommandPool(
1689 VkDevice device,
1690 VkCommandPool commandPool,
1691 VkCommandPoolTrimFlags flags)
1692{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001693 AEMU_SCOPED_TRACE("vkTrimCommandPool");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001694 auto vkEnc = HostConnection::get()->vkEncoder();
1695 vkEnc->vkTrimCommandPool(device, commandPool, flags);
1696}
1697static void entry_vkGetDeviceQueue2(
1698 VkDevice device,
1699 const VkDeviceQueueInfo2* pQueueInfo,
1700 VkQueue* pQueue)
1701{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001702 AEMU_SCOPED_TRACE("vkGetDeviceQueue2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001703 auto vkEnc = HostConnection::get()->vkEncoder();
1704 vkEnc->vkGetDeviceQueue2(device, pQueueInfo, pQueue);
1705}
1706static VkResult entry_vkCreateSamplerYcbcrConversion(
1707 VkDevice device,
1708 const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
1709 const VkAllocationCallbacks* pAllocator,
1710 VkSamplerYcbcrConversion* pYcbcrConversion)
1711{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001712 AEMU_SCOPED_TRACE("vkCreateSamplerYcbcrConversion");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001713 auto vkEnc = HostConnection::get()->vkEncoder();
1714 VkResult vkCreateSamplerYcbcrConversion_VkResult_return = (VkResult)0;
1715 vkCreateSamplerYcbcrConversion_VkResult_return = vkEnc->vkCreateSamplerYcbcrConversion(device, pCreateInfo, pAllocator, pYcbcrConversion);
1716 return vkCreateSamplerYcbcrConversion_VkResult_return;
1717}
1718static void entry_vkDestroySamplerYcbcrConversion(
1719 VkDevice device,
1720 VkSamplerYcbcrConversion ycbcrConversion,
1721 const VkAllocationCallbacks* pAllocator)
1722{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001723 AEMU_SCOPED_TRACE("vkDestroySamplerYcbcrConversion");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001724 auto vkEnc = HostConnection::get()->vkEncoder();
1725 vkEnc->vkDestroySamplerYcbcrConversion(device, ycbcrConversion, pAllocator);
1726}
1727static VkResult entry_vkCreateDescriptorUpdateTemplate(
1728 VkDevice device,
1729 const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
1730 const VkAllocationCallbacks* pAllocator,
1731 VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate)
1732{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001733 AEMU_SCOPED_TRACE("vkCreateDescriptorUpdateTemplate");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001734 auto vkEnc = HostConnection::get()->vkEncoder();
1735 VkResult vkCreateDescriptorUpdateTemplate_VkResult_return = (VkResult)0;
1736 vkCreateDescriptorUpdateTemplate_VkResult_return = vkEnc->vkCreateDescriptorUpdateTemplate(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate);
1737 return vkCreateDescriptorUpdateTemplate_VkResult_return;
1738}
1739static void entry_vkDestroyDescriptorUpdateTemplate(
1740 VkDevice device,
1741 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
1742 const VkAllocationCallbacks* pAllocator)
1743{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001744 AEMU_SCOPED_TRACE("vkDestroyDescriptorUpdateTemplate");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001745 auto vkEnc = HostConnection::get()->vkEncoder();
1746 vkEnc->vkDestroyDescriptorUpdateTemplate(device, descriptorUpdateTemplate, pAllocator);
1747}
1748static void entry_vkUpdateDescriptorSetWithTemplate(
1749 VkDevice device,
1750 VkDescriptorSet descriptorSet,
1751 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
1752 const void* pData)
1753{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001754 AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplate");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001755 auto vkEnc = HostConnection::get()->vkEncoder();
1756 vkEnc->vkUpdateDescriptorSetWithTemplate(device, descriptorSet, descriptorUpdateTemplate, pData);
1757}
1758static void entry_vkGetPhysicalDeviceExternalBufferProperties(
1759 VkPhysicalDevice physicalDevice,
1760 const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
1761 VkExternalBufferProperties* pExternalBufferProperties)
1762{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001763 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalBufferProperties");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001764 auto vkEnc = HostConnection::get()->vkEncoder();
1765 vkEnc->vkGetPhysicalDeviceExternalBufferProperties(physicalDevice, pExternalBufferInfo, pExternalBufferProperties);
1766}
1767static void entry_vkGetPhysicalDeviceExternalFenceProperties(
1768 VkPhysicalDevice physicalDevice,
1769 const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
1770 VkExternalFenceProperties* pExternalFenceProperties)
1771{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001772 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalFenceProperties");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001773 auto vkEnc = HostConnection::get()->vkEncoder();
1774 vkEnc->vkGetPhysicalDeviceExternalFenceProperties(physicalDevice, pExternalFenceInfo, pExternalFenceProperties);
1775}
1776static void entry_vkGetPhysicalDeviceExternalSemaphoreProperties(
1777 VkPhysicalDevice physicalDevice,
1778 const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
1779 VkExternalSemaphoreProperties* pExternalSemaphoreProperties)
1780{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001781 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalSemaphoreProperties");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001782 auto vkEnc = HostConnection::get()->vkEncoder();
1783 vkEnc->vkGetPhysicalDeviceExternalSemaphoreProperties(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties);
1784}
1785static void entry_vkGetDescriptorSetLayoutSupport(
1786 VkDevice device,
1787 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
1788 VkDescriptorSetLayoutSupport* pSupport)
1789{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001790 AEMU_SCOPED_TRACE("vkGetDescriptorSetLayoutSupport");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001791 auto vkEnc = HostConnection::get()->vkEncoder();
1792 vkEnc->vkGetDescriptorSetLayoutSupport(device, pCreateInfo, pSupport);
1793}
1794#endif
1795#ifdef VK_KHR_surface
1796static void entry_vkDestroySurfaceKHR(
1797 VkInstance instance,
1798 VkSurfaceKHR surface,
1799 const VkAllocationCallbacks* pAllocator)
1800{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001801 AEMU_SCOPED_TRACE("vkDestroySurfaceKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001802 auto vkEnc = HostConnection::get()->vkEncoder();
1803 vkEnc->vkDestroySurfaceKHR(instance, surface, pAllocator);
1804}
1805static VkResult entry_vkGetPhysicalDeviceSurfaceSupportKHR(
1806 VkPhysicalDevice physicalDevice,
1807 uint32_t queueFamilyIndex,
1808 VkSurfaceKHR surface,
1809 VkBool32* pSupported)
1810{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001811 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceSupportKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001812 auto vkEnc = HostConnection::get()->vkEncoder();
1813 VkResult vkGetPhysicalDeviceSurfaceSupportKHR_VkResult_return = (VkResult)0;
1814 vkGetPhysicalDeviceSurfaceSupportKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceSupportKHR(physicalDevice, queueFamilyIndex, surface, pSupported);
1815 return vkGetPhysicalDeviceSurfaceSupportKHR_VkResult_return;
1816}
1817static VkResult entry_vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
1818 VkPhysicalDevice physicalDevice,
1819 VkSurfaceKHR surface,
1820 VkSurfaceCapabilitiesKHR* pSurfaceCapabilities)
1821{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001822 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceCapabilitiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001823 auto vkEnc = HostConnection::get()->vkEncoder();
1824 VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR_VkResult_return = (VkResult)0;
1825 vkGetPhysicalDeviceSurfaceCapabilitiesKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceCapabilitiesKHR(physicalDevice, surface, pSurfaceCapabilities);
1826 return vkGetPhysicalDeviceSurfaceCapabilitiesKHR_VkResult_return;
1827}
1828static VkResult entry_vkGetPhysicalDeviceSurfaceFormatsKHR(
1829 VkPhysicalDevice physicalDevice,
1830 VkSurfaceKHR surface,
1831 uint32_t* pSurfaceFormatCount,
1832 VkSurfaceFormatKHR* pSurfaceFormats)
1833{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001834 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceFormatsKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001835 auto vkEnc = HostConnection::get()->vkEncoder();
1836 VkResult vkGetPhysicalDeviceSurfaceFormatsKHR_VkResult_return = (VkResult)0;
1837 vkGetPhysicalDeviceSurfaceFormatsKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceFormatsKHR(physicalDevice, surface, pSurfaceFormatCount, pSurfaceFormats);
1838 return vkGetPhysicalDeviceSurfaceFormatsKHR_VkResult_return;
1839}
1840static VkResult entry_vkGetPhysicalDeviceSurfacePresentModesKHR(
1841 VkPhysicalDevice physicalDevice,
1842 VkSurfaceKHR surface,
1843 uint32_t* pPresentModeCount,
1844 VkPresentModeKHR* pPresentModes)
1845{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001846 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfacePresentModesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001847 auto vkEnc = HostConnection::get()->vkEncoder();
1848 VkResult vkGetPhysicalDeviceSurfacePresentModesKHR_VkResult_return = (VkResult)0;
1849 vkGetPhysicalDeviceSurfacePresentModesKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfacePresentModesKHR(physicalDevice, surface, pPresentModeCount, pPresentModes);
1850 return vkGetPhysicalDeviceSurfacePresentModesKHR_VkResult_return;
1851}
1852#endif
1853#ifdef VK_KHR_swapchain
1854static VkResult entry_vkCreateSwapchainKHR(
1855 VkDevice device,
1856 const VkSwapchainCreateInfoKHR* pCreateInfo,
1857 const VkAllocationCallbacks* pAllocator,
1858 VkSwapchainKHR* pSwapchain)
1859{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001860 AEMU_SCOPED_TRACE("vkCreateSwapchainKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001861 auto vkEnc = HostConnection::get()->vkEncoder();
1862 VkResult vkCreateSwapchainKHR_VkResult_return = (VkResult)0;
1863 vkCreateSwapchainKHR_VkResult_return = vkEnc->vkCreateSwapchainKHR(device, pCreateInfo, pAllocator, pSwapchain);
1864 return vkCreateSwapchainKHR_VkResult_return;
1865}
1866static void entry_vkDestroySwapchainKHR(
1867 VkDevice device,
1868 VkSwapchainKHR swapchain,
1869 const VkAllocationCallbacks* pAllocator)
1870{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001871 AEMU_SCOPED_TRACE("vkDestroySwapchainKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001872 auto vkEnc = HostConnection::get()->vkEncoder();
1873 vkEnc->vkDestroySwapchainKHR(device, swapchain, pAllocator);
1874}
1875static VkResult entry_vkGetSwapchainImagesKHR(
1876 VkDevice device,
1877 VkSwapchainKHR swapchain,
1878 uint32_t* pSwapchainImageCount,
1879 VkImage* pSwapchainImages)
1880{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001881 AEMU_SCOPED_TRACE("vkGetSwapchainImagesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001882 auto vkEnc = HostConnection::get()->vkEncoder();
1883 VkResult vkGetSwapchainImagesKHR_VkResult_return = (VkResult)0;
1884 vkGetSwapchainImagesKHR_VkResult_return = vkEnc->vkGetSwapchainImagesKHR(device, swapchain, pSwapchainImageCount, pSwapchainImages);
1885 return vkGetSwapchainImagesKHR_VkResult_return;
1886}
1887static VkResult entry_vkAcquireNextImageKHR(
1888 VkDevice device,
1889 VkSwapchainKHR swapchain,
1890 uint64_t timeout,
1891 VkSemaphore semaphore,
1892 VkFence fence,
1893 uint32_t* pImageIndex)
1894{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001895 AEMU_SCOPED_TRACE("vkAcquireNextImageKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001896 auto vkEnc = HostConnection::get()->vkEncoder();
1897 VkResult vkAcquireNextImageKHR_VkResult_return = (VkResult)0;
1898 vkAcquireNextImageKHR_VkResult_return = vkEnc->vkAcquireNextImageKHR(device, swapchain, timeout, semaphore, fence, pImageIndex);
1899 return vkAcquireNextImageKHR_VkResult_return;
1900}
1901static VkResult entry_vkQueuePresentKHR(
1902 VkQueue queue,
1903 const VkPresentInfoKHR* pPresentInfo)
1904{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001905 AEMU_SCOPED_TRACE("vkQueuePresentKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001906 auto vkEnc = HostConnection::get()->vkEncoder();
1907 VkResult vkQueuePresentKHR_VkResult_return = (VkResult)0;
1908 vkQueuePresentKHR_VkResult_return = vkEnc->vkQueuePresentKHR(queue, pPresentInfo);
1909 return vkQueuePresentKHR_VkResult_return;
1910}
1911static VkResult entry_vkGetDeviceGroupPresentCapabilitiesKHR(
1912 VkDevice device,
1913 VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities)
1914{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001915 AEMU_SCOPED_TRACE("vkGetDeviceGroupPresentCapabilitiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001916 auto vkEnc = HostConnection::get()->vkEncoder();
1917 VkResult vkGetDeviceGroupPresentCapabilitiesKHR_VkResult_return = (VkResult)0;
1918 vkGetDeviceGroupPresentCapabilitiesKHR_VkResult_return = vkEnc->vkGetDeviceGroupPresentCapabilitiesKHR(device, pDeviceGroupPresentCapabilities);
1919 return vkGetDeviceGroupPresentCapabilitiesKHR_VkResult_return;
1920}
1921static VkResult entry_vkGetDeviceGroupSurfacePresentModesKHR(
1922 VkDevice device,
1923 VkSurfaceKHR surface,
1924 VkDeviceGroupPresentModeFlagsKHR* pModes)
1925{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001926 AEMU_SCOPED_TRACE("vkGetDeviceGroupSurfacePresentModesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001927 auto vkEnc = HostConnection::get()->vkEncoder();
1928 VkResult vkGetDeviceGroupSurfacePresentModesKHR_VkResult_return = (VkResult)0;
1929 vkGetDeviceGroupSurfacePresentModesKHR_VkResult_return = vkEnc->vkGetDeviceGroupSurfacePresentModesKHR(device, surface, pModes);
1930 return vkGetDeviceGroupSurfacePresentModesKHR_VkResult_return;
1931}
1932static VkResult entry_vkGetPhysicalDevicePresentRectanglesKHR(
1933 VkPhysicalDevice physicalDevice,
1934 VkSurfaceKHR surface,
1935 uint32_t* pRectCount,
1936 VkRect2D* pRects)
1937{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001938 AEMU_SCOPED_TRACE("vkGetPhysicalDevicePresentRectanglesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001939 auto vkEnc = HostConnection::get()->vkEncoder();
1940 VkResult vkGetPhysicalDevicePresentRectanglesKHR_VkResult_return = (VkResult)0;
1941 vkGetPhysicalDevicePresentRectanglesKHR_VkResult_return = vkEnc->vkGetPhysicalDevicePresentRectanglesKHR(physicalDevice, surface, pRectCount, pRects);
1942 return vkGetPhysicalDevicePresentRectanglesKHR_VkResult_return;
1943}
1944static VkResult entry_vkAcquireNextImage2KHR(
1945 VkDevice device,
1946 const VkAcquireNextImageInfoKHR* pAcquireInfo,
1947 uint32_t* pImageIndex)
1948{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001949 AEMU_SCOPED_TRACE("vkAcquireNextImage2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001950 auto vkEnc = HostConnection::get()->vkEncoder();
1951 VkResult vkAcquireNextImage2KHR_VkResult_return = (VkResult)0;
1952 vkAcquireNextImage2KHR_VkResult_return = vkEnc->vkAcquireNextImage2KHR(device, pAcquireInfo, pImageIndex);
1953 return vkAcquireNextImage2KHR_VkResult_return;
1954}
1955#endif
1956#ifdef VK_KHR_display
1957static VkResult entry_vkGetPhysicalDeviceDisplayPropertiesKHR(
1958 VkPhysicalDevice physicalDevice,
1959 uint32_t* pPropertyCount,
1960 VkDisplayPropertiesKHR* pProperties)
1961{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001962 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayPropertiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001963 auto vkEnc = HostConnection::get()->vkEncoder();
1964 VkResult vkGetPhysicalDeviceDisplayPropertiesKHR_VkResult_return = (VkResult)0;
1965 vkGetPhysicalDeviceDisplayPropertiesKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceDisplayPropertiesKHR(physicalDevice, pPropertyCount, pProperties);
1966 return vkGetPhysicalDeviceDisplayPropertiesKHR_VkResult_return;
1967}
1968static VkResult entry_vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
1969 VkPhysicalDevice physicalDevice,
1970 uint32_t* pPropertyCount,
1971 VkDisplayPlanePropertiesKHR* pProperties)
1972{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001973 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayPlanePropertiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001974 auto vkEnc = HostConnection::get()->vkEncoder();
1975 VkResult vkGetPhysicalDeviceDisplayPlanePropertiesKHR_VkResult_return = (VkResult)0;
1976 vkGetPhysicalDeviceDisplayPlanePropertiesKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceDisplayPlanePropertiesKHR(physicalDevice, pPropertyCount, pProperties);
1977 return vkGetPhysicalDeviceDisplayPlanePropertiesKHR_VkResult_return;
1978}
1979static VkResult entry_vkGetDisplayPlaneSupportedDisplaysKHR(
1980 VkPhysicalDevice physicalDevice,
1981 uint32_t planeIndex,
1982 uint32_t* pDisplayCount,
1983 VkDisplayKHR* pDisplays)
1984{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001985 AEMU_SCOPED_TRACE("vkGetDisplayPlaneSupportedDisplaysKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001986 auto vkEnc = HostConnection::get()->vkEncoder();
1987 VkResult vkGetDisplayPlaneSupportedDisplaysKHR_VkResult_return = (VkResult)0;
1988 vkGetDisplayPlaneSupportedDisplaysKHR_VkResult_return = vkEnc->vkGetDisplayPlaneSupportedDisplaysKHR(physicalDevice, planeIndex, pDisplayCount, pDisplays);
1989 return vkGetDisplayPlaneSupportedDisplaysKHR_VkResult_return;
1990}
1991static VkResult entry_vkGetDisplayModePropertiesKHR(
1992 VkPhysicalDevice physicalDevice,
1993 VkDisplayKHR display,
1994 uint32_t* pPropertyCount,
1995 VkDisplayModePropertiesKHR* pProperties)
1996{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001997 AEMU_SCOPED_TRACE("vkGetDisplayModePropertiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001998 auto vkEnc = HostConnection::get()->vkEncoder();
1999 VkResult vkGetDisplayModePropertiesKHR_VkResult_return = (VkResult)0;
2000 vkGetDisplayModePropertiesKHR_VkResult_return = vkEnc->vkGetDisplayModePropertiesKHR(physicalDevice, display, pPropertyCount, pProperties);
2001 return vkGetDisplayModePropertiesKHR_VkResult_return;
2002}
2003static VkResult entry_vkCreateDisplayModeKHR(
2004 VkPhysicalDevice physicalDevice,
2005 VkDisplayKHR display,
2006 const VkDisplayModeCreateInfoKHR* pCreateInfo,
2007 const VkAllocationCallbacks* pAllocator,
2008 VkDisplayModeKHR* pMode)
2009{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002010 AEMU_SCOPED_TRACE("vkCreateDisplayModeKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002011 auto vkEnc = HostConnection::get()->vkEncoder();
2012 VkResult vkCreateDisplayModeKHR_VkResult_return = (VkResult)0;
2013 vkCreateDisplayModeKHR_VkResult_return = vkEnc->vkCreateDisplayModeKHR(physicalDevice, display, pCreateInfo, pAllocator, pMode);
2014 return vkCreateDisplayModeKHR_VkResult_return;
2015}
2016static VkResult entry_vkGetDisplayPlaneCapabilitiesKHR(
2017 VkPhysicalDevice physicalDevice,
2018 VkDisplayModeKHR mode,
2019 uint32_t planeIndex,
2020 VkDisplayPlaneCapabilitiesKHR* pCapabilities)
2021{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002022 AEMU_SCOPED_TRACE("vkGetDisplayPlaneCapabilitiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002023 auto vkEnc = HostConnection::get()->vkEncoder();
2024 VkResult vkGetDisplayPlaneCapabilitiesKHR_VkResult_return = (VkResult)0;
2025 vkGetDisplayPlaneCapabilitiesKHR_VkResult_return = vkEnc->vkGetDisplayPlaneCapabilitiesKHR(physicalDevice, mode, planeIndex, pCapabilities);
2026 return vkGetDisplayPlaneCapabilitiesKHR_VkResult_return;
2027}
2028static VkResult entry_vkCreateDisplayPlaneSurfaceKHR(
2029 VkInstance instance,
2030 const VkDisplaySurfaceCreateInfoKHR* pCreateInfo,
2031 const VkAllocationCallbacks* pAllocator,
2032 VkSurfaceKHR* pSurface)
2033{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002034 AEMU_SCOPED_TRACE("vkCreateDisplayPlaneSurfaceKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002035 auto vkEnc = HostConnection::get()->vkEncoder();
2036 VkResult vkCreateDisplayPlaneSurfaceKHR_VkResult_return = (VkResult)0;
2037 vkCreateDisplayPlaneSurfaceKHR_VkResult_return = vkEnc->vkCreateDisplayPlaneSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
2038 return vkCreateDisplayPlaneSurfaceKHR_VkResult_return;
2039}
2040#endif
2041#ifdef VK_KHR_display_swapchain
2042static VkResult entry_vkCreateSharedSwapchainsKHR(
2043 VkDevice device,
2044 uint32_t swapchainCount,
2045 const VkSwapchainCreateInfoKHR* pCreateInfos,
2046 const VkAllocationCallbacks* pAllocator,
2047 VkSwapchainKHR* pSwapchains)
2048{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002049 AEMU_SCOPED_TRACE("vkCreateSharedSwapchainsKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002050 auto vkEnc = HostConnection::get()->vkEncoder();
2051 VkResult vkCreateSharedSwapchainsKHR_VkResult_return = (VkResult)0;
2052 vkCreateSharedSwapchainsKHR_VkResult_return = vkEnc->vkCreateSharedSwapchainsKHR(device, swapchainCount, pCreateInfos, pAllocator, pSwapchains);
2053 return vkCreateSharedSwapchainsKHR_VkResult_return;
2054}
2055#endif
2056#ifdef VK_KHR_xlib_surface
2057static VkResult entry_vkCreateXlibSurfaceKHR(
2058 VkInstance instance,
2059 const VkXlibSurfaceCreateInfoKHR* pCreateInfo,
2060 const VkAllocationCallbacks* pAllocator,
2061 VkSurfaceKHR* pSurface)
2062{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002063 AEMU_SCOPED_TRACE("vkCreateXlibSurfaceKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002064 auto vkEnc = HostConnection::get()->vkEncoder();
2065 VkResult vkCreateXlibSurfaceKHR_VkResult_return = (VkResult)0;
2066 vkCreateXlibSurfaceKHR_VkResult_return = vkEnc->vkCreateXlibSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
2067 return vkCreateXlibSurfaceKHR_VkResult_return;
2068}
2069static VkBool32 entry_vkGetPhysicalDeviceXlibPresentationSupportKHR(
2070 VkPhysicalDevice physicalDevice,
2071 uint32_t queueFamilyIndex,
2072 Display* dpy,
2073 VisualID visualID)
2074{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002075 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceXlibPresentationSupportKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002076 auto vkEnc = HostConnection::get()->vkEncoder();
2077 VkBool32 vkGetPhysicalDeviceXlibPresentationSupportKHR_VkBool32_return = (VkBool32)0;
2078 vkGetPhysicalDeviceXlibPresentationSupportKHR_VkBool32_return = vkEnc->vkGetPhysicalDeviceXlibPresentationSupportKHR(physicalDevice, queueFamilyIndex, dpy, visualID);
2079 return vkGetPhysicalDeviceXlibPresentationSupportKHR_VkBool32_return;
2080}
2081#endif
2082#ifdef VK_KHR_xcb_surface
2083static VkResult entry_vkCreateXcbSurfaceKHR(
2084 VkInstance instance,
2085 const VkXcbSurfaceCreateInfoKHR* pCreateInfo,
2086 const VkAllocationCallbacks* pAllocator,
2087 VkSurfaceKHR* pSurface)
2088{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002089 AEMU_SCOPED_TRACE("vkCreateXcbSurfaceKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002090 auto vkEnc = HostConnection::get()->vkEncoder();
2091 VkResult vkCreateXcbSurfaceKHR_VkResult_return = (VkResult)0;
2092 vkCreateXcbSurfaceKHR_VkResult_return = vkEnc->vkCreateXcbSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
2093 return vkCreateXcbSurfaceKHR_VkResult_return;
2094}
2095static VkBool32 entry_vkGetPhysicalDeviceXcbPresentationSupportKHR(
2096 VkPhysicalDevice physicalDevice,
2097 uint32_t queueFamilyIndex,
2098 xcb_connection_t* connection,
2099 xcb_visualid_t visual_id)
2100{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002101 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceXcbPresentationSupportKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002102 auto vkEnc = HostConnection::get()->vkEncoder();
2103 VkBool32 vkGetPhysicalDeviceXcbPresentationSupportKHR_VkBool32_return = (VkBool32)0;
2104 vkGetPhysicalDeviceXcbPresentationSupportKHR_VkBool32_return = vkEnc->vkGetPhysicalDeviceXcbPresentationSupportKHR(physicalDevice, queueFamilyIndex, connection, visual_id);
2105 return vkGetPhysicalDeviceXcbPresentationSupportKHR_VkBool32_return;
2106}
2107#endif
2108#ifdef VK_KHR_wayland_surface
2109static VkResult entry_vkCreateWaylandSurfaceKHR(
2110 VkInstance instance,
2111 const VkWaylandSurfaceCreateInfoKHR* pCreateInfo,
2112 const VkAllocationCallbacks* pAllocator,
2113 VkSurfaceKHR* pSurface)
2114{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002115 AEMU_SCOPED_TRACE("vkCreateWaylandSurfaceKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002116 auto vkEnc = HostConnection::get()->vkEncoder();
2117 VkResult vkCreateWaylandSurfaceKHR_VkResult_return = (VkResult)0;
2118 vkCreateWaylandSurfaceKHR_VkResult_return = vkEnc->vkCreateWaylandSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
2119 return vkCreateWaylandSurfaceKHR_VkResult_return;
2120}
2121static VkBool32 entry_vkGetPhysicalDeviceWaylandPresentationSupportKHR(
2122 VkPhysicalDevice physicalDevice,
2123 uint32_t queueFamilyIndex,
2124 wl_display* display)
2125{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002126 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceWaylandPresentationSupportKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002127 auto vkEnc = HostConnection::get()->vkEncoder();
2128 VkBool32 vkGetPhysicalDeviceWaylandPresentationSupportKHR_VkBool32_return = (VkBool32)0;
2129 vkGetPhysicalDeviceWaylandPresentationSupportKHR_VkBool32_return = vkEnc->vkGetPhysicalDeviceWaylandPresentationSupportKHR(physicalDevice, queueFamilyIndex, display);
2130 return vkGetPhysicalDeviceWaylandPresentationSupportKHR_VkBool32_return;
2131}
2132#endif
2133#ifdef VK_KHR_mir_surface
2134static VkResult entry_vkCreateMirSurfaceKHR(
2135 VkInstance instance,
2136 const VkMirSurfaceCreateInfoKHR* pCreateInfo,
2137 const VkAllocationCallbacks* pAllocator,
2138 VkSurfaceKHR* pSurface)
2139{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002140 AEMU_SCOPED_TRACE("vkCreateMirSurfaceKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002141 auto vkEnc = HostConnection::get()->vkEncoder();
2142 VkResult vkCreateMirSurfaceKHR_VkResult_return = (VkResult)0;
2143 vkCreateMirSurfaceKHR_VkResult_return = vkEnc->vkCreateMirSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
2144 return vkCreateMirSurfaceKHR_VkResult_return;
2145}
2146static VkBool32 entry_vkGetPhysicalDeviceMirPresentationSupportKHR(
2147 VkPhysicalDevice physicalDevice,
2148 uint32_t queueFamilyIndex,
2149 MirConnection* connection)
2150{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002151 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMirPresentationSupportKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002152 auto vkEnc = HostConnection::get()->vkEncoder();
2153 VkBool32 vkGetPhysicalDeviceMirPresentationSupportKHR_VkBool32_return = (VkBool32)0;
2154 vkGetPhysicalDeviceMirPresentationSupportKHR_VkBool32_return = vkEnc->vkGetPhysicalDeviceMirPresentationSupportKHR(physicalDevice, queueFamilyIndex, connection);
2155 return vkGetPhysicalDeviceMirPresentationSupportKHR_VkBool32_return;
2156}
2157#endif
2158#ifdef VK_KHR_android_surface
2159static VkResult entry_vkCreateAndroidSurfaceKHR(
2160 VkInstance instance,
2161 const VkAndroidSurfaceCreateInfoKHR* pCreateInfo,
2162 const VkAllocationCallbacks* pAllocator,
2163 VkSurfaceKHR* pSurface)
2164{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002165 AEMU_SCOPED_TRACE("vkCreateAndroidSurfaceKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002166 auto vkEnc = HostConnection::get()->vkEncoder();
2167 VkResult vkCreateAndroidSurfaceKHR_VkResult_return = (VkResult)0;
2168 vkCreateAndroidSurfaceKHR_VkResult_return = vkEnc->vkCreateAndroidSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
2169 return vkCreateAndroidSurfaceKHR_VkResult_return;
2170}
2171#endif
2172#ifdef VK_KHR_win32_surface
2173static VkResult entry_vkCreateWin32SurfaceKHR(
2174 VkInstance instance,
2175 const VkWin32SurfaceCreateInfoKHR* pCreateInfo,
2176 const VkAllocationCallbacks* pAllocator,
2177 VkSurfaceKHR* pSurface)
2178{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002179 AEMU_SCOPED_TRACE("vkCreateWin32SurfaceKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002180 auto vkEnc = HostConnection::get()->vkEncoder();
2181 VkResult vkCreateWin32SurfaceKHR_VkResult_return = (VkResult)0;
2182 vkCreateWin32SurfaceKHR_VkResult_return = vkEnc->vkCreateWin32SurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
2183 return vkCreateWin32SurfaceKHR_VkResult_return;
2184}
2185static VkBool32 entry_vkGetPhysicalDeviceWin32PresentationSupportKHR(
2186 VkPhysicalDevice physicalDevice,
2187 uint32_t queueFamilyIndex)
2188{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002189 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceWin32PresentationSupportKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002190 auto vkEnc = HostConnection::get()->vkEncoder();
2191 VkBool32 vkGetPhysicalDeviceWin32PresentationSupportKHR_VkBool32_return = (VkBool32)0;
2192 vkGetPhysicalDeviceWin32PresentationSupportKHR_VkBool32_return = vkEnc->vkGetPhysicalDeviceWin32PresentationSupportKHR(physicalDevice, queueFamilyIndex);
2193 return vkGetPhysicalDeviceWin32PresentationSupportKHR_VkBool32_return;
2194}
2195#endif
2196#ifdef VK_KHR_sampler_mirror_clamp_to_edge
2197#endif
2198#ifdef VK_KHR_multiview
2199#endif
2200#ifdef VK_KHR_get_physical_device_properties2
2201static void entry_vkGetPhysicalDeviceFeatures2KHR(
2202 VkPhysicalDevice physicalDevice,
2203 VkPhysicalDeviceFeatures2* pFeatures)
2204{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002205 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFeatures2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002206 auto vkEnc = HostConnection::get()->vkEncoder();
2207 vkEnc->vkGetPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures);
2208}
2209static void entry_vkGetPhysicalDeviceProperties2KHR(
2210 VkPhysicalDevice physicalDevice,
2211 VkPhysicalDeviceProperties2* pProperties)
2212{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002213 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002214 auto vkEnc = HostConnection::get()->vkEncoder();
2215 vkEnc->vkGetPhysicalDeviceProperties2KHR(physicalDevice, pProperties);
2216}
2217static void entry_vkGetPhysicalDeviceFormatProperties2KHR(
2218 VkPhysicalDevice physicalDevice,
2219 VkFormat format,
2220 VkFormatProperties2* pFormatProperties)
2221{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002222 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFormatProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002223 auto vkEnc = HostConnection::get()->vkEncoder();
2224 vkEnc->vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice, format, pFormatProperties);
2225}
2226static VkResult entry_vkGetPhysicalDeviceImageFormatProperties2KHR(
2227 VkPhysicalDevice physicalDevice,
2228 const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
2229 VkImageFormatProperties2* pImageFormatProperties)
2230{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002231 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceImageFormatProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002232 auto vkEnc = HostConnection::get()->vkEncoder();
2233 VkResult vkGetPhysicalDeviceImageFormatProperties2KHR_VkResult_return = (VkResult)0;
2234 vkGetPhysicalDeviceImageFormatProperties2KHR_VkResult_return = vkEnc->vkGetPhysicalDeviceImageFormatProperties2KHR(physicalDevice, pImageFormatInfo, pImageFormatProperties);
2235 return vkGetPhysicalDeviceImageFormatProperties2KHR_VkResult_return;
2236}
2237static void entry_vkGetPhysicalDeviceQueueFamilyProperties2KHR(
2238 VkPhysicalDevice physicalDevice,
2239 uint32_t* pQueueFamilyPropertyCount,
2240 VkQueueFamilyProperties2* pQueueFamilyProperties)
2241{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002242 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceQueueFamilyProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002243 auto vkEnc = HostConnection::get()->vkEncoder();
2244 vkEnc->vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties);
2245}
2246static void entry_vkGetPhysicalDeviceMemoryProperties2KHR(
2247 VkPhysicalDevice physicalDevice,
2248 VkPhysicalDeviceMemoryProperties2* pMemoryProperties)
2249{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002250 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMemoryProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002251 auto vkEnc = HostConnection::get()->vkEncoder();
2252 vkEnc->vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice, pMemoryProperties);
2253}
2254static void entry_vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
2255 VkPhysicalDevice physicalDevice,
2256 const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
2257 uint32_t* pPropertyCount,
2258 VkSparseImageFormatProperties2* pProperties)
2259{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002260 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSparseImageFormatProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002261 auto vkEnc = HostConnection::get()->vkEncoder();
2262 vkEnc->vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties);
2263}
2264#endif
2265#ifdef VK_KHR_device_group
2266static void entry_vkGetDeviceGroupPeerMemoryFeaturesKHR(
2267 VkDevice device,
2268 uint32_t heapIndex,
2269 uint32_t localDeviceIndex,
2270 uint32_t remoteDeviceIndex,
2271 VkPeerMemoryFeatureFlags* pPeerMemoryFeatures)
2272{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002273 AEMU_SCOPED_TRACE("vkGetDeviceGroupPeerMemoryFeaturesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002274 auto vkEnc = HostConnection::get()->vkEncoder();
2275 vkEnc->vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures);
2276}
2277static void entry_vkCmdSetDeviceMaskKHR(
2278 VkCommandBuffer commandBuffer,
2279 uint32_t deviceMask)
2280{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002281 AEMU_SCOPED_TRACE("vkCmdSetDeviceMaskKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002282 auto vkEnc = HostConnection::get()->vkEncoder();
2283 vkEnc->vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask);
2284}
2285static void entry_vkCmdDispatchBaseKHR(
2286 VkCommandBuffer commandBuffer,
2287 uint32_t baseGroupX,
2288 uint32_t baseGroupY,
2289 uint32_t baseGroupZ,
2290 uint32_t groupCountX,
2291 uint32_t groupCountY,
2292 uint32_t groupCountZ)
2293{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002294 AEMU_SCOPED_TRACE("vkCmdDispatchBaseKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002295 auto vkEnc = HostConnection::get()->vkEncoder();
2296 vkEnc->vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ);
2297}
2298#endif
2299#ifdef VK_KHR_shader_draw_parameters
2300#endif
2301#ifdef VK_KHR_maintenance1
2302static void entry_vkTrimCommandPoolKHR(
2303 VkDevice device,
2304 VkCommandPool commandPool,
2305 VkCommandPoolTrimFlags flags)
2306{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002307 AEMU_SCOPED_TRACE("vkTrimCommandPoolKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002308 auto vkEnc = HostConnection::get()->vkEncoder();
2309 vkEnc->vkTrimCommandPoolKHR(device, commandPool, flags);
2310}
2311#endif
2312#ifdef VK_KHR_device_group_creation
2313static VkResult entry_vkEnumeratePhysicalDeviceGroupsKHR(
2314 VkInstance instance,
2315 uint32_t* pPhysicalDeviceGroupCount,
2316 VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties)
2317{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002318 AEMU_SCOPED_TRACE("vkEnumeratePhysicalDeviceGroupsKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002319 auto vkEnc = HostConnection::get()->vkEncoder();
2320 VkResult vkEnumeratePhysicalDeviceGroupsKHR_VkResult_return = (VkResult)0;
2321 vkEnumeratePhysicalDeviceGroupsKHR_VkResult_return = vkEnc->vkEnumeratePhysicalDeviceGroupsKHR(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties);
2322 return vkEnumeratePhysicalDeviceGroupsKHR_VkResult_return;
2323}
2324#endif
2325#ifdef VK_KHR_external_memory_capabilities
2326static void entry_vkGetPhysicalDeviceExternalBufferPropertiesKHR(
2327 VkPhysicalDevice physicalDevice,
2328 const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
2329 VkExternalBufferProperties* pExternalBufferProperties)
2330{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002331 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalBufferPropertiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002332 auto vkEnc = HostConnection::get()->vkEncoder();
2333 vkEnc->vkGetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties);
2334}
2335#endif
2336#ifdef VK_KHR_external_memory
2337#endif
2338#ifdef VK_KHR_external_memory_win32
2339static VkResult entry_vkGetMemoryWin32HandleKHR(
2340 VkDevice device,
2341 const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo,
2342 HANDLE* pHandle)
2343{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002344 AEMU_SCOPED_TRACE("vkGetMemoryWin32HandleKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002345 auto vkEnc = HostConnection::get()->vkEncoder();
2346 VkResult vkGetMemoryWin32HandleKHR_VkResult_return = (VkResult)0;
2347 vkGetMemoryWin32HandleKHR_VkResult_return = vkEnc->vkGetMemoryWin32HandleKHR(device, pGetWin32HandleInfo, pHandle);
2348 return vkGetMemoryWin32HandleKHR_VkResult_return;
2349}
2350static VkResult entry_vkGetMemoryWin32HandlePropertiesKHR(
2351 VkDevice device,
2352 VkExternalMemoryHandleTypeFlagBits handleType,
2353 HANDLE handle,
2354 VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties)
2355{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002356 AEMU_SCOPED_TRACE("vkGetMemoryWin32HandlePropertiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002357 auto vkEnc = HostConnection::get()->vkEncoder();
2358 VkResult vkGetMemoryWin32HandlePropertiesKHR_VkResult_return = (VkResult)0;
2359 vkGetMemoryWin32HandlePropertiesKHR_VkResult_return = vkEnc->vkGetMemoryWin32HandlePropertiesKHR(device, handleType, handle, pMemoryWin32HandleProperties);
2360 return vkGetMemoryWin32HandlePropertiesKHR_VkResult_return;
2361}
2362#endif
2363#ifdef VK_KHR_external_memory_fd
2364static VkResult entry_vkGetMemoryFdKHR(
2365 VkDevice device,
2366 const VkMemoryGetFdInfoKHR* pGetFdInfo,
2367 int* pFd)
2368{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002369 AEMU_SCOPED_TRACE("vkGetMemoryFdKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002370 auto vkEnc = HostConnection::get()->vkEncoder();
2371 VkResult vkGetMemoryFdKHR_VkResult_return = (VkResult)0;
2372 vkGetMemoryFdKHR_VkResult_return = vkEnc->vkGetMemoryFdKHR(device, pGetFdInfo, pFd);
2373 return vkGetMemoryFdKHR_VkResult_return;
2374}
2375static VkResult entry_vkGetMemoryFdPropertiesKHR(
2376 VkDevice device,
2377 VkExternalMemoryHandleTypeFlagBits handleType,
2378 int fd,
2379 VkMemoryFdPropertiesKHR* pMemoryFdProperties)
2380{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002381 AEMU_SCOPED_TRACE("vkGetMemoryFdPropertiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002382 auto vkEnc = HostConnection::get()->vkEncoder();
2383 VkResult vkGetMemoryFdPropertiesKHR_VkResult_return = (VkResult)0;
2384 vkGetMemoryFdPropertiesKHR_VkResult_return = vkEnc->vkGetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties);
2385 return vkGetMemoryFdPropertiesKHR_VkResult_return;
2386}
2387#endif
2388#ifdef VK_KHR_win32_keyed_mutex
2389#endif
2390#ifdef VK_KHR_external_semaphore_capabilities
2391static void entry_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
2392 VkPhysicalDevice physicalDevice,
2393 const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
2394 VkExternalSemaphoreProperties* pExternalSemaphoreProperties)
2395{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002396 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalSemaphorePropertiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002397 auto vkEnc = HostConnection::get()->vkEncoder();
2398 vkEnc->vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties);
2399}
2400#endif
2401#ifdef VK_KHR_external_semaphore
2402#endif
2403#ifdef VK_KHR_external_semaphore_win32
2404static VkResult entry_vkImportSemaphoreWin32HandleKHR(
2405 VkDevice device,
2406 const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo)
2407{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002408 AEMU_SCOPED_TRACE("vkImportSemaphoreWin32HandleKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002409 auto vkEnc = HostConnection::get()->vkEncoder();
2410 VkResult vkImportSemaphoreWin32HandleKHR_VkResult_return = (VkResult)0;
2411 vkImportSemaphoreWin32HandleKHR_VkResult_return = vkEnc->vkImportSemaphoreWin32HandleKHR(device, pImportSemaphoreWin32HandleInfo);
2412 return vkImportSemaphoreWin32HandleKHR_VkResult_return;
2413}
2414static VkResult entry_vkGetSemaphoreWin32HandleKHR(
2415 VkDevice device,
2416 const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo,
2417 HANDLE* pHandle)
2418{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002419 AEMU_SCOPED_TRACE("vkGetSemaphoreWin32HandleKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002420 auto vkEnc = HostConnection::get()->vkEncoder();
2421 VkResult vkGetSemaphoreWin32HandleKHR_VkResult_return = (VkResult)0;
2422 vkGetSemaphoreWin32HandleKHR_VkResult_return = vkEnc->vkGetSemaphoreWin32HandleKHR(device, pGetWin32HandleInfo, pHandle);
2423 return vkGetSemaphoreWin32HandleKHR_VkResult_return;
2424}
2425#endif
2426#ifdef VK_KHR_external_semaphore_fd
2427static VkResult entry_vkImportSemaphoreFdKHR(
2428 VkDevice device,
2429 const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo)
2430{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002431 AEMU_SCOPED_TRACE("vkImportSemaphoreFdKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002432 auto vkEnc = HostConnection::get()->vkEncoder();
2433 VkResult vkImportSemaphoreFdKHR_VkResult_return = (VkResult)0;
Yahan Zhoua499e442019-02-26 16:35:01 -08002434 auto resources = ResourceTracker::get();
2435 vkImportSemaphoreFdKHR_VkResult_return = resources->on_vkImportSemaphoreFdKHR(vkEnc, VK_SUCCESS, device, pImportSemaphoreFdInfo);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002436 return vkImportSemaphoreFdKHR_VkResult_return;
2437}
2438static VkResult entry_vkGetSemaphoreFdKHR(
2439 VkDevice device,
2440 const VkSemaphoreGetFdInfoKHR* pGetFdInfo,
2441 int* pFd)
2442{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002443 AEMU_SCOPED_TRACE("vkGetSemaphoreFdKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002444 auto vkEnc = HostConnection::get()->vkEncoder();
2445 VkResult vkGetSemaphoreFdKHR_VkResult_return = (VkResult)0;
Yahan Zhoua499e442019-02-26 16:35:01 -08002446 auto resources = ResourceTracker::get();
2447 vkGetSemaphoreFdKHR_VkResult_return = resources->on_vkGetSemaphoreFdKHR(vkEnc, VK_SUCCESS, device, pGetFdInfo, pFd);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002448 return vkGetSemaphoreFdKHR_VkResult_return;
2449}
2450#endif
2451#ifdef VK_KHR_push_descriptor
2452static void entry_vkCmdPushDescriptorSetKHR(
2453 VkCommandBuffer commandBuffer,
2454 VkPipelineBindPoint pipelineBindPoint,
2455 VkPipelineLayout layout,
2456 uint32_t set,
2457 uint32_t descriptorWriteCount,
2458 const VkWriteDescriptorSet* pDescriptorWrites)
2459{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002460 AEMU_SCOPED_TRACE("vkCmdPushDescriptorSetKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002461 auto vkEnc = HostConnection::get()->vkEncoder();
2462 vkEnc->vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites);
2463}
2464static void entry_vkCmdPushDescriptorSetWithTemplateKHR(
2465 VkCommandBuffer commandBuffer,
2466 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
2467 VkPipelineLayout layout,
2468 uint32_t set,
2469 const void* pData)
2470{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002471 AEMU_SCOPED_TRACE("vkCmdPushDescriptorSetWithTemplateKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002472 auto vkEnc = HostConnection::get()->vkEncoder();
2473 vkEnc->vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData);
2474}
2475#endif
2476#ifdef VK_KHR_16bit_storage
2477#endif
2478#ifdef VK_KHR_incremental_present
2479#endif
2480#ifdef VK_KHR_descriptor_update_template
2481static VkResult entry_vkCreateDescriptorUpdateTemplateKHR(
2482 VkDevice device,
2483 const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
2484 const VkAllocationCallbacks* pAllocator,
2485 VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate)
2486{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002487 AEMU_SCOPED_TRACE("vkCreateDescriptorUpdateTemplateKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002488 auto vkEnc = HostConnection::get()->vkEncoder();
2489 VkResult vkCreateDescriptorUpdateTemplateKHR_VkResult_return = (VkResult)0;
2490 vkCreateDescriptorUpdateTemplateKHR_VkResult_return = vkEnc->vkCreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate);
2491 return vkCreateDescriptorUpdateTemplateKHR_VkResult_return;
2492}
2493static void entry_vkDestroyDescriptorUpdateTemplateKHR(
2494 VkDevice device,
2495 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
2496 const VkAllocationCallbacks* pAllocator)
2497{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002498 AEMU_SCOPED_TRACE("vkDestroyDescriptorUpdateTemplateKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002499 auto vkEnc = HostConnection::get()->vkEncoder();
2500 vkEnc->vkDestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator);
2501}
2502static void entry_vkUpdateDescriptorSetWithTemplateKHR(
2503 VkDevice device,
2504 VkDescriptorSet descriptorSet,
2505 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
2506 const void* pData)
2507{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002508 AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplateKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002509 auto vkEnc = HostConnection::get()->vkEncoder();
2510 vkEnc->vkUpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData);
2511}
2512#endif
2513#ifdef VK_KHR_create_renderpass2
2514static VkResult entry_vkCreateRenderPass2KHR(
2515 VkDevice device,
2516 const VkRenderPassCreateInfo2KHR* pCreateInfo,
2517 const VkAllocationCallbacks* pAllocator,
2518 VkRenderPass* pRenderPass)
2519{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002520 AEMU_SCOPED_TRACE("vkCreateRenderPass2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002521 auto vkEnc = HostConnection::get()->vkEncoder();
2522 VkResult vkCreateRenderPass2KHR_VkResult_return = (VkResult)0;
2523 vkCreateRenderPass2KHR_VkResult_return = vkEnc->vkCreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass);
2524 return vkCreateRenderPass2KHR_VkResult_return;
2525}
2526static void entry_vkCmdBeginRenderPass2KHR(
2527 VkCommandBuffer commandBuffer,
2528 const VkRenderPassBeginInfo* pRenderPassBegin,
2529 const VkSubpassBeginInfoKHR* pSubpassBeginInfo)
2530{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002531 AEMU_SCOPED_TRACE("vkCmdBeginRenderPass2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002532 auto vkEnc = HostConnection::get()->vkEncoder();
2533 vkEnc->vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo);
2534}
2535static void entry_vkCmdNextSubpass2KHR(
2536 VkCommandBuffer commandBuffer,
2537 const VkSubpassBeginInfoKHR* pSubpassBeginInfo,
2538 const VkSubpassEndInfoKHR* pSubpassEndInfo)
2539{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002540 AEMU_SCOPED_TRACE("vkCmdNextSubpass2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002541 auto vkEnc = HostConnection::get()->vkEncoder();
2542 vkEnc->vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo);
2543}
2544static void entry_vkCmdEndRenderPass2KHR(
2545 VkCommandBuffer commandBuffer,
2546 const VkSubpassEndInfoKHR* pSubpassEndInfo)
2547{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002548 AEMU_SCOPED_TRACE("vkCmdEndRenderPass2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002549 auto vkEnc = HostConnection::get()->vkEncoder();
2550 vkEnc->vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo);
2551}
2552#endif
2553#ifdef VK_KHR_shared_presentable_image
2554static VkResult entry_vkGetSwapchainStatusKHR(
2555 VkDevice device,
2556 VkSwapchainKHR swapchain)
2557{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002558 AEMU_SCOPED_TRACE("vkGetSwapchainStatusKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002559 auto vkEnc = HostConnection::get()->vkEncoder();
2560 VkResult vkGetSwapchainStatusKHR_VkResult_return = (VkResult)0;
2561 vkGetSwapchainStatusKHR_VkResult_return = vkEnc->vkGetSwapchainStatusKHR(device, swapchain);
2562 return vkGetSwapchainStatusKHR_VkResult_return;
2563}
2564#endif
2565#ifdef VK_KHR_external_fence_capabilities
2566static void entry_vkGetPhysicalDeviceExternalFencePropertiesKHR(
2567 VkPhysicalDevice physicalDevice,
2568 const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
2569 VkExternalFenceProperties* pExternalFenceProperties)
2570{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002571 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalFencePropertiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002572 auto vkEnc = HostConnection::get()->vkEncoder();
2573 vkEnc->vkGetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice, pExternalFenceInfo, pExternalFenceProperties);
2574}
2575#endif
2576#ifdef VK_KHR_external_fence
2577#endif
2578#ifdef VK_KHR_external_fence_win32
2579static VkResult entry_vkImportFenceWin32HandleKHR(
2580 VkDevice device,
2581 const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo)
2582{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002583 AEMU_SCOPED_TRACE("vkImportFenceWin32HandleKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002584 auto vkEnc = HostConnection::get()->vkEncoder();
2585 VkResult vkImportFenceWin32HandleKHR_VkResult_return = (VkResult)0;
2586 vkImportFenceWin32HandleKHR_VkResult_return = vkEnc->vkImportFenceWin32HandleKHR(device, pImportFenceWin32HandleInfo);
2587 return vkImportFenceWin32HandleKHR_VkResult_return;
2588}
2589static VkResult entry_vkGetFenceWin32HandleKHR(
2590 VkDevice device,
2591 const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo,
2592 HANDLE* pHandle)
2593{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002594 AEMU_SCOPED_TRACE("vkGetFenceWin32HandleKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002595 auto vkEnc = HostConnection::get()->vkEncoder();
2596 VkResult vkGetFenceWin32HandleKHR_VkResult_return = (VkResult)0;
2597 vkGetFenceWin32HandleKHR_VkResult_return = vkEnc->vkGetFenceWin32HandleKHR(device, pGetWin32HandleInfo, pHandle);
2598 return vkGetFenceWin32HandleKHR_VkResult_return;
2599}
2600#endif
2601#ifdef VK_KHR_external_fence_fd
2602static VkResult entry_vkImportFenceFdKHR(
2603 VkDevice device,
2604 const VkImportFenceFdInfoKHR* pImportFenceFdInfo)
2605{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002606 AEMU_SCOPED_TRACE("vkImportFenceFdKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002607 auto vkEnc = HostConnection::get()->vkEncoder();
2608 VkResult vkImportFenceFdKHR_VkResult_return = (VkResult)0;
2609 vkImportFenceFdKHR_VkResult_return = vkEnc->vkImportFenceFdKHR(device, pImportFenceFdInfo);
2610 return vkImportFenceFdKHR_VkResult_return;
2611}
2612static VkResult entry_vkGetFenceFdKHR(
2613 VkDevice device,
2614 const VkFenceGetFdInfoKHR* pGetFdInfo,
2615 int* pFd)
2616{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002617 AEMU_SCOPED_TRACE("vkGetFenceFdKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002618 auto vkEnc = HostConnection::get()->vkEncoder();
2619 VkResult vkGetFenceFdKHR_VkResult_return = (VkResult)0;
2620 vkGetFenceFdKHR_VkResult_return = vkEnc->vkGetFenceFdKHR(device, pGetFdInfo, pFd);
2621 return vkGetFenceFdKHR_VkResult_return;
2622}
2623#endif
2624#ifdef VK_KHR_maintenance2
2625#endif
2626#ifdef VK_KHR_get_surface_capabilities2
2627static VkResult entry_vkGetPhysicalDeviceSurfaceCapabilities2KHR(
2628 VkPhysicalDevice physicalDevice,
2629 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
2630 VkSurfaceCapabilities2KHR* pSurfaceCapabilities)
2631{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002632 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceCapabilities2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002633 auto vkEnc = HostConnection::get()->vkEncoder();
2634 VkResult vkGetPhysicalDeviceSurfaceCapabilities2KHR_VkResult_return = (VkResult)0;
2635 vkGetPhysicalDeviceSurfaceCapabilities2KHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, pSurfaceInfo, pSurfaceCapabilities);
2636 return vkGetPhysicalDeviceSurfaceCapabilities2KHR_VkResult_return;
2637}
2638static VkResult entry_vkGetPhysicalDeviceSurfaceFormats2KHR(
2639 VkPhysicalDevice physicalDevice,
2640 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
2641 uint32_t* pSurfaceFormatCount,
2642 VkSurfaceFormat2KHR* pSurfaceFormats)
2643{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002644 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceFormats2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002645 auto vkEnc = HostConnection::get()->vkEncoder();
2646 VkResult vkGetPhysicalDeviceSurfaceFormats2KHR_VkResult_return = (VkResult)0;
2647 vkGetPhysicalDeviceSurfaceFormats2KHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceFormats2KHR(physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats);
2648 return vkGetPhysicalDeviceSurfaceFormats2KHR_VkResult_return;
2649}
2650#endif
2651#ifdef VK_KHR_variable_pointers
2652#endif
2653#ifdef VK_KHR_get_display_properties2
2654static VkResult entry_vkGetPhysicalDeviceDisplayProperties2KHR(
2655 VkPhysicalDevice physicalDevice,
2656 uint32_t* pPropertyCount,
2657 VkDisplayProperties2KHR* pProperties)
2658{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002659 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002660 auto vkEnc = HostConnection::get()->vkEncoder();
2661 VkResult vkGetPhysicalDeviceDisplayProperties2KHR_VkResult_return = (VkResult)0;
2662 vkGetPhysicalDeviceDisplayProperties2KHR_VkResult_return = vkEnc->vkGetPhysicalDeviceDisplayProperties2KHR(physicalDevice, pPropertyCount, pProperties);
2663 return vkGetPhysicalDeviceDisplayProperties2KHR_VkResult_return;
2664}
2665static VkResult entry_vkGetPhysicalDeviceDisplayPlaneProperties2KHR(
2666 VkPhysicalDevice physicalDevice,
2667 uint32_t* pPropertyCount,
2668 VkDisplayPlaneProperties2KHR* pProperties)
2669{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002670 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayPlaneProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002671 auto vkEnc = HostConnection::get()->vkEncoder();
2672 VkResult vkGetPhysicalDeviceDisplayPlaneProperties2KHR_VkResult_return = (VkResult)0;
2673 vkGetPhysicalDeviceDisplayPlaneProperties2KHR_VkResult_return = vkEnc->vkGetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice, pPropertyCount, pProperties);
2674 return vkGetPhysicalDeviceDisplayPlaneProperties2KHR_VkResult_return;
2675}
2676static VkResult entry_vkGetDisplayModeProperties2KHR(
2677 VkPhysicalDevice physicalDevice,
2678 VkDisplayKHR display,
2679 uint32_t* pPropertyCount,
2680 VkDisplayModeProperties2KHR* pProperties)
2681{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002682 AEMU_SCOPED_TRACE("vkGetDisplayModeProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002683 auto vkEnc = HostConnection::get()->vkEncoder();
2684 VkResult vkGetDisplayModeProperties2KHR_VkResult_return = (VkResult)0;
2685 vkGetDisplayModeProperties2KHR_VkResult_return = vkEnc->vkGetDisplayModeProperties2KHR(physicalDevice, display, pPropertyCount, pProperties);
2686 return vkGetDisplayModeProperties2KHR_VkResult_return;
2687}
2688static VkResult entry_vkGetDisplayPlaneCapabilities2KHR(
2689 VkPhysicalDevice physicalDevice,
2690 const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo,
2691 VkDisplayPlaneCapabilities2KHR* pCapabilities)
2692{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002693 AEMU_SCOPED_TRACE("vkGetDisplayPlaneCapabilities2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002694 auto vkEnc = HostConnection::get()->vkEncoder();
2695 VkResult vkGetDisplayPlaneCapabilities2KHR_VkResult_return = (VkResult)0;
2696 vkGetDisplayPlaneCapabilities2KHR_VkResult_return = vkEnc->vkGetDisplayPlaneCapabilities2KHR(physicalDevice, pDisplayPlaneInfo, pCapabilities);
2697 return vkGetDisplayPlaneCapabilities2KHR_VkResult_return;
2698}
2699#endif
2700#ifdef VK_KHR_dedicated_allocation
2701#endif
2702#ifdef VK_KHR_storage_buffer_storage_class
2703#endif
2704#ifdef VK_KHR_relaxed_block_layout
2705#endif
2706#ifdef VK_KHR_get_memory_requirements2
2707static void entry_vkGetImageMemoryRequirements2KHR(
2708 VkDevice device,
2709 const VkImageMemoryRequirementsInfo2* pInfo,
2710 VkMemoryRequirements2* pMemoryRequirements)
2711{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002712 AEMU_SCOPED_TRACE("vkGetImageMemoryRequirements2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002713 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang4af5f322019-02-14 08:10:28 -08002714 auto resources = ResourceTracker::get();
2715 resources->on_vkGetImageMemoryRequirements2KHR(vkEnc, device, pInfo, pMemoryRequirements);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002716}
2717static void entry_vkGetBufferMemoryRequirements2KHR(
2718 VkDevice device,
2719 const VkBufferMemoryRequirementsInfo2* pInfo,
2720 VkMemoryRequirements2* pMemoryRequirements)
2721{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002722 AEMU_SCOPED_TRACE("vkGetBufferMemoryRequirements2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002723 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang4af5f322019-02-14 08:10:28 -08002724 auto resources = ResourceTracker::get();
2725 resources->on_vkGetBufferMemoryRequirements2KHR(vkEnc, device, pInfo, pMemoryRequirements);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002726}
2727static void entry_vkGetImageSparseMemoryRequirements2KHR(
2728 VkDevice device,
2729 const VkImageSparseMemoryRequirementsInfo2* pInfo,
2730 uint32_t* pSparseMemoryRequirementCount,
2731 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements)
2732{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002733 AEMU_SCOPED_TRACE("vkGetImageSparseMemoryRequirements2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002734 auto vkEnc = HostConnection::get()->vkEncoder();
2735 vkEnc->vkGetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements);
2736}
2737#endif
2738#ifdef VK_KHR_image_format_list
2739#endif
2740#ifdef VK_KHR_sampler_ycbcr_conversion
2741static VkResult entry_vkCreateSamplerYcbcrConversionKHR(
2742 VkDevice device,
2743 const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
2744 const VkAllocationCallbacks* pAllocator,
2745 VkSamplerYcbcrConversion* pYcbcrConversion)
2746{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002747 AEMU_SCOPED_TRACE("vkCreateSamplerYcbcrConversionKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002748 auto vkEnc = HostConnection::get()->vkEncoder();
2749 VkResult vkCreateSamplerYcbcrConversionKHR_VkResult_return = (VkResult)0;
2750 vkCreateSamplerYcbcrConversionKHR_VkResult_return = vkEnc->vkCreateSamplerYcbcrConversionKHR(device, pCreateInfo, pAllocator, pYcbcrConversion);
2751 return vkCreateSamplerYcbcrConversionKHR_VkResult_return;
2752}
2753static void entry_vkDestroySamplerYcbcrConversionKHR(
2754 VkDevice device,
2755 VkSamplerYcbcrConversion ycbcrConversion,
2756 const VkAllocationCallbacks* pAllocator)
2757{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002758 AEMU_SCOPED_TRACE("vkDestroySamplerYcbcrConversionKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002759 auto vkEnc = HostConnection::get()->vkEncoder();
2760 vkEnc->vkDestroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator);
2761}
2762#endif
2763#ifdef VK_KHR_bind_memory2
2764static VkResult entry_vkBindBufferMemory2KHR(
2765 VkDevice device,
2766 uint32_t bindInfoCount,
2767 const VkBindBufferMemoryInfo* pBindInfos)
2768{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002769 AEMU_SCOPED_TRACE("vkBindBufferMemory2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002770 auto vkEnc = HostConnection::get()->vkEncoder();
2771 VkResult vkBindBufferMemory2KHR_VkResult_return = (VkResult)0;
Lingfeng Yang4af5f322019-02-14 08:10:28 -08002772 auto resources = ResourceTracker::get();
2773 vkBindBufferMemory2KHR_VkResult_return = resources->on_vkBindBufferMemory2KHR(vkEnc, VK_SUCCESS, device, bindInfoCount, pBindInfos);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002774 return vkBindBufferMemory2KHR_VkResult_return;
2775}
2776static VkResult entry_vkBindImageMemory2KHR(
2777 VkDevice device,
2778 uint32_t bindInfoCount,
2779 const VkBindImageMemoryInfo* pBindInfos)
2780{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002781 AEMU_SCOPED_TRACE("vkBindImageMemory2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002782 auto vkEnc = HostConnection::get()->vkEncoder();
2783 VkResult vkBindImageMemory2KHR_VkResult_return = (VkResult)0;
Lingfeng Yang4af5f322019-02-14 08:10:28 -08002784 auto resources = ResourceTracker::get();
2785 vkBindImageMemory2KHR_VkResult_return = resources->on_vkBindImageMemory2KHR(vkEnc, VK_SUCCESS, device, bindInfoCount, pBindInfos);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002786 return vkBindImageMemory2KHR_VkResult_return;
2787}
2788#endif
2789#ifdef VK_KHR_maintenance3
2790static void entry_vkGetDescriptorSetLayoutSupportKHR(
2791 VkDevice device,
2792 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
2793 VkDescriptorSetLayoutSupport* pSupport)
2794{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002795 AEMU_SCOPED_TRACE("vkGetDescriptorSetLayoutSupportKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002796 auto vkEnc = HostConnection::get()->vkEncoder();
2797 vkEnc->vkGetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport);
2798}
2799#endif
2800#ifdef VK_KHR_draw_indirect_count
2801static void entry_vkCmdDrawIndirectCountKHR(
2802 VkCommandBuffer commandBuffer,
2803 VkBuffer buffer,
2804 VkDeviceSize offset,
2805 VkBuffer countBuffer,
2806 VkDeviceSize countBufferOffset,
2807 uint32_t maxDrawCount,
2808 uint32_t stride)
2809{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002810 AEMU_SCOPED_TRACE("vkCmdDrawIndirectCountKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002811 auto vkEnc = HostConnection::get()->vkEncoder();
2812 vkEnc->vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
2813}
2814static void entry_vkCmdDrawIndexedIndirectCountKHR(
2815 VkCommandBuffer commandBuffer,
2816 VkBuffer buffer,
2817 VkDeviceSize offset,
2818 VkBuffer countBuffer,
2819 VkDeviceSize countBufferOffset,
2820 uint32_t maxDrawCount,
2821 uint32_t stride)
2822{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002823 AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirectCountKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002824 auto vkEnc = HostConnection::get()->vkEncoder();
2825 vkEnc->vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
2826}
2827#endif
2828#ifdef VK_KHR_8bit_storage
2829#endif
Lingfeng Yang808a6312018-11-13 21:06:15 -08002830#ifdef VK_ANDROID_native_buffer
2831static VkResult entry_vkGetSwapchainGrallocUsageANDROID(
2832 VkDevice device,
2833 VkFormat format,
2834 VkImageUsageFlags imageUsage,
2835 int* grallocUsage)
2836{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002837 AEMU_SCOPED_TRACE("vkGetSwapchainGrallocUsageANDROID");
Lingfeng Yang808a6312018-11-13 21:06:15 -08002838 auto vkEnc = HostConnection::get()->vkEncoder();
2839 VkResult vkGetSwapchainGrallocUsageANDROID_VkResult_return = (VkResult)0;
2840 vkGetSwapchainGrallocUsageANDROID_VkResult_return = vkEnc->vkGetSwapchainGrallocUsageANDROID(device, format, imageUsage, grallocUsage);
2841 return vkGetSwapchainGrallocUsageANDROID_VkResult_return;
2842}
2843static VkResult entry_vkAcquireImageANDROID(
2844 VkDevice device,
2845 VkImage image,
2846 int nativeFenceFd,
2847 VkSemaphore semaphore,
2848 VkFence fence)
2849{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002850 AEMU_SCOPED_TRACE("vkAcquireImageANDROID");
Lingfeng Yang808a6312018-11-13 21:06:15 -08002851 auto vkEnc = HostConnection::get()->vkEncoder();
2852 VkResult vkAcquireImageANDROID_VkResult_return = (VkResult)0;
2853 vkAcquireImageANDROID_VkResult_return = vkEnc->vkAcquireImageANDROID(device, image, nativeFenceFd, semaphore, fence);
2854 return vkAcquireImageANDROID_VkResult_return;
2855}
2856static VkResult entry_vkQueueSignalReleaseImageANDROID(
2857 VkQueue queue,
2858 uint32_t waitSemaphoreCount,
2859 const VkSemaphore* pWaitSemaphores,
2860 VkImage image,
2861 int* pNativeFenceFd)
2862{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002863 AEMU_SCOPED_TRACE("vkQueueSignalReleaseImageANDROID");
Lingfeng Yang808a6312018-11-13 21:06:15 -08002864 auto vkEnc = HostConnection::get()->vkEncoder();
2865 VkResult vkQueueSignalReleaseImageANDROID_VkResult_return = (VkResult)0;
2866 vkQueueSignalReleaseImageANDROID_VkResult_return = vkEnc->vkQueueSignalReleaseImageANDROID(queue, waitSemaphoreCount, pWaitSemaphores, image, pNativeFenceFd);
2867 return vkQueueSignalReleaseImageANDROID_VkResult_return;
2868}
2869#endif
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002870#ifdef VK_EXT_debug_report
2871static VkResult entry_vkCreateDebugReportCallbackEXT(
2872 VkInstance instance,
2873 const VkDebugReportCallbackCreateInfoEXT* pCreateInfo,
2874 const VkAllocationCallbacks* pAllocator,
2875 VkDebugReportCallbackEXT* pCallback)
2876{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002877 AEMU_SCOPED_TRACE("vkCreateDebugReportCallbackEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002878 auto vkEnc = HostConnection::get()->vkEncoder();
2879 VkResult vkCreateDebugReportCallbackEXT_VkResult_return = (VkResult)0;
2880 vkCreateDebugReportCallbackEXT_VkResult_return = vkEnc->vkCreateDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback);
2881 return vkCreateDebugReportCallbackEXT_VkResult_return;
2882}
2883static void entry_vkDestroyDebugReportCallbackEXT(
2884 VkInstance instance,
2885 VkDebugReportCallbackEXT callback,
2886 const VkAllocationCallbacks* pAllocator)
2887{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002888 AEMU_SCOPED_TRACE("vkDestroyDebugReportCallbackEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002889 auto vkEnc = HostConnection::get()->vkEncoder();
2890 vkEnc->vkDestroyDebugReportCallbackEXT(instance, callback, pAllocator);
2891}
2892static void entry_vkDebugReportMessageEXT(
2893 VkInstance instance,
2894 VkDebugReportFlagsEXT flags,
2895 VkDebugReportObjectTypeEXT objectType,
2896 uint64_t object,
2897 size_t location,
2898 int32_t messageCode,
2899 const char* pLayerPrefix,
2900 const char* pMessage)
2901{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002902 AEMU_SCOPED_TRACE("vkDebugReportMessageEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002903 auto vkEnc = HostConnection::get()->vkEncoder();
2904 vkEnc->vkDebugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage);
2905}
2906#endif
2907#ifdef VK_NV_glsl_shader
2908#endif
2909#ifdef VK_EXT_depth_range_unrestricted
2910#endif
2911#ifdef VK_IMG_filter_cubic
2912#endif
2913#ifdef VK_AMD_rasterization_order
2914#endif
2915#ifdef VK_AMD_shader_trinary_minmax
2916#endif
2917#ifdef VK_AMD_shader_explicit_vertex_parameter
2918#endif
2919#ifdef VK_EXT_debug_marker
2920static VkResult entry_vkDebugMarkerSetObjectTagEXT(
2921 VkDevice device,
2922 const VkDebugMarkerObjectTagInfoEXT* pTagInfo)
2923{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002924 AEMU_SCOPED_TRACE("vkDebugMarkerSetObjectTagEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002925 auto vkEnc = HostConnection::get()->vkEncoder();
2926 VkResult vkDebugMarkerSetObjectTagEXT_VkResult_return = (VkResult)0;
2927 vkDebugMarkerSetObjectTagEXT_VkResult_return = vkEnc->vkDebugMarkerSetObjectTagEXT(device, pTagInfo);
2928 return vkDebugMarkerSetObjectTagEXT_VkResult_return;
2929}
2930static VkResult entry_vkDebugMarkerSetObjectNameEXT(
2931 VkDevice device,
2932 const VkDebugMarkerObjectNameInfoEXT* pNameInfo)
2933{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002934 AEMU_SCOPED_TRACE("vkDebugMarkerSetObjectNameEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002935 auto vkEnc = HostConnection::get()->vkEncoder();
2936 VkResult vkDebugMarkerSetObjectNameEXT_VkResult_return = (VkResult)0;
2937 vkDebugMarkerSetObjectNameEXT_VkResult_return = vkEnc->vkDebugMarkerSetObjectNameEXT(device, pNameInfo);
2938 return vkDebugMarkerSetObjectNameEXT_VkResult_return;
2939}
2940static void entry_vkCmdDebugMarkerBeginEXT(
2941 VkCommandBuffer commandBuffer,
2942 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo)
2943{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002944 AEMU_SCOPED_TRACE("vkCmdDebugMarkerBeginEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002945 auto vkEnc = HostConnection::get()->vkEncoder();
2946 vkEnc->vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo);
2947}
2948static void entry_vkCmdDebugMarkerEndEXT(
2949 VkCommandBuffer commandBuffer)
2950{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002951 AEMU_SCOPED_TRACE("vkCmdDebugMarkerEndEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002952 auto vkEnc = HostConnection::get()->vkEncoder();
2953 vkEnc->vkCmdDebugMarkerEndEXT(commandBuffer);
2954}
2955static void entry_vkCmdDebugMarkerInsertEXT(
2956 VkCommandBuffer commandBuffer,
2957 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo)
2958{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002959 AEMU_SCOPED_TRACE("vkCmdDebugMarkerInsertEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002960 auto vkEnc = HostConnection::get()->vkEncoder();
2961 vkEnc->vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo);
2962}
2963#endif
2964#ifdef VK_AMD_gcn_shader
2965#endif
2966#ifdef VK_NV_dedicated_allocation
2967#endif
2968#ifdef VK_AMD_draw_indirect_count
2969static void entry_vkCmdDrawIndirectCountAMD(
2970 VkCommandBuffer commandBuffer,
2971 VkBuffer buffer,
2972 VkDeviceSize offset,
2973 VkBuffer countBuffer,
2974 VkDeviceSize countBufferOffset,
2975 uint32_t maxDrawCount,
2976 uint32_t stride)
2977{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002978 AEMU_SCOPED_TRACE("vkCmdDrawIndirectCountAMD");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002979 auto vkEnc = HostConnection::get()->vkEncoder();
2980 vkEnc->vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
2981}
2982static void entry_vkCmdDrawIndexedIndirectCountAMD(
2983 VkCommandBuffer commandBuffer,
2984 VkBuffer buffer,
2985 VkDeviceSize offset,
2986 VkBuffer countBuffer,
2987 VkDeviceSize countBufferOffset,
2988 uint32_t maxDrawCount,
2989 uint32_t stride)
2990{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002991 AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirectCountAMD");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002992 auto vkEnc = HostConnection::get()->vkEncoder();
2993 vkEnc->vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
2994}
2995#endif
2996#ifdef VK_AMD_negative_viewport_height
2997#endif
2998#ifdef VK_AMD_gpu_shader_half_float
2999#endif
3000#ifdef VK_AMD_shader_ballot
3001#endif
3002#ifdef VK_AMD_texture_gather_bias_lod
3003#endif
3004#ifdef VK_AMD_shader_info
3005static VkResult entry_vkGetShaderInfoAMD(
3006 VkDevice device,
3007 VkPipeline pipeline,
3008 VkShaderStageFlagBits shaderStage,
3009 VkShaderInfoTypeAMD infoType,
3010 size_t* pInfoSize,
3011 void* pInfo)
3012{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003013 AEMU_SCOPED_TRACE("vkGetShaderInfoAMD");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003014 auto vkEnc = HostConnection::get()->vkEncoder();
3015 VkResult vkGetShaderInfoAMD_VkResult_return = (VkResult)0;
3016 vkGetShaderInfoAMD_VkResult_return = vkEnc->vkGetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo);
3017 return vkGetShaderInfoAMD_VkResult_return;
3018}
3019#endif
3020#ifdef VK_AMD_shader_image_load_store_lod
3021#endif
3022#ifdef VK_IMG_format_pvrtc
3023#endif
3024#ifdef VK_NV_external_memory_capabilities
3025static VkResult entry_vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
3026 VkPhysicalDevice physicalDevice,
3027 VkFormat format,
3028 VkImageType type,
3029 VkImageTiling tiling,
3030 VkImageUsageFlags usage,
3031 VkImageCreateFlags flags,
3032 VkExternalMemoryHandleTypeFlagsNV externalHandleType,
3033 VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties)
3034{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003035 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalImageFormatPropertiesNV");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003036 auto vkEnc = HostConnection::get()->vkEncoder();
3037 VkResult vkGetPhysicalDeviceExternalImageFormatPropertiesNV_VkResult_return = (VkResult)0;
3038 vkGetPhysicalDeviceExternalImageFormatPropertiesNV_VkResult_return = vkEnc->vkGetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties);
3039 return vkGetPhysicalDeviceExternalImageFormatPropertiesNV_VkResult_return;
3040}
3041#endif
3042#ifdef VK_NV_external_memory
3043#endif
3044#ifdef VK_NV_external_memory_win32
3045static VkResult entry_vkGetMemoryWin32HandleNV(
3046 VkDevice device,
3047 VkDeviceMemory memory,
3048 VkExternalMemoryHandleTypeFlagsNV handleType,
3049 HANDLE* pHandle)
3050{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003051 AEMU_SCOPED_TRACE("vkGetMemoryWin32HandleNV");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003052 auto vkEnc = HostConnection::get()->vkEncoder();
3053 VkResult vkGetMemoryWin32HandleNV_VkResult_return = (VkResult)0;
3054 vkGetMemoryWin32HandleNV_VkResult_return = vkEnc->vkGetMemoryWin32HandleNV(device, memory, handleType, pHandle);
3055 return vkGetMemoryWin32HandleNV_VkResult_return;
3056}
3057#endif
3058#ifdef VK_NV_win32_keyed_mutex
3059#endif
3060#ifdef VK_EXT_validation_flags
3061#endif
3062#ifdef VK_NN_vi_surface
3063static VkResult entry_vkCreateViSurfaceNN(
3064 VkInstance instance,
3065 const VkViSurfaceCreateInfoNN* pCreateInfo,
3066 const VkAllocationCallbacks* pAllocator,
3067 VkSurfaceKHR* pSurface)
3068{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003069 AEMU_SCOPED_TRACE("vkCreateViSurfaceNN");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003070 auto vkEnc = HostConnection::get()->vkEncoder();
3071 VkResult vkCreateViSurfaceNN_VkResult_return = (VkResult)0;
3072 vkCreateViSurfaceNN_VkResult_return = vkEnc->vkCreateViSurfaceNN(instance, pCreateInfo, pAllocator, pSurface);
3073 return vkCreateViSurfaceNN_VkResult_return;
3074}
3075#endif
3076#ifdef VK_EXT_shader_subgroup_ballot
3077#endif
3078#ifdef VK_EXT_shader_subgroup_vote
3079#endif
3080#ifdef VK_EXT_conditional_rendering
3081static void entry_vkCmdBeginConditionalRenderingEXT(
3082 VkCommandBuffer commandBuffer,
3083 const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin)
3084{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003085 AEMU_SCOPED_TRACE("vkCmdBeginConditionalRenderingEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003086 auto vkEnc = HostConnection::get()->vkEncoder();
3087 vkEnc->vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin);
3088}
3089static void entry_vkCmdEndConditionalRenderingEXT(
3090 VkCommandBuffer commandBuffer)
3091{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003092 AEMU_SCOPED_TRACE("vkCmdEndConditionalRenderingEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003093 auto vkEnc = HostConnection::get()->vkEncoder();
3094 vkEnc->vkCmdEndConditionalRenderingEXT(commandBuffer);
3095}
3096#endif
3097#ifdef VK_NVX_device_generated_commands
3098static void entry_vkCmdProcessCommandsNVX(
3099 VkCommandBuffer commandBuffer,
3100 const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo)
3101{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003102 AEMU_SCOPED_TRACE("vkCmdProcessCommandsNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003103 auto vkEnc = HostConnection::get()->vkEncoder();
3104 vkEnc->vkCmdProcessCommandsNVX(commandBuffer, pProcessCommandsInfo);
3105}
3106static void entry_vkCmdReserveSpaceForCommandsNVX(
3107 VkCommandBuffer commandBuffer,
3108 const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo)
3109{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003110 AEMU_SCOPED_TRACE("vkCmdReserveSpaceForCommandsNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003111 auto vkEnc = HostConnection::get()->vkEncoder();
3112 vkEnc->vkCmdReserveSpaceForCommandsNVX(commandBuffer, pReserveSpaceInfo);
3113}
3114static VkResult entry_vkCreateIndirectCommandsLayoutNVX(
3115 VkDevice device,
3116 const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo,
3117 const VkAllocationCallbacks* pAllocator,
3118 VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout)
3119{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003120 AEMU_SCOPED_TRACE("vkCreateIndirectCommandsLayoutNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003121 auto vkEnc = HostConnection::get()->vkEncoder();
3122 VkResult vkCreateIndirectCommandsLayoutNVX_VkResult_return = (VkResult)0;
3123 vkCreateIndirectCommandsLayoutNVX_VkResult_return = vkEnc->vkCreateIndirectCommandsLayoutNVX(device, pCreateInfo, pAllocator, pIndirectCommandsLayout);
3124 return vkCreateIndirectCommandsLayoutNVX_VkResult_return;
3125}
3126static void entry_vkDestroyIndirectCommandsLayoutNVX(
3127 VkDevice device,
3128 VkIndirectCommandsLayoutNVX indirectCommandsLayout,
3129 const VkAllocationCallbacks* pAllocator)
3130{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003131 AEMU_SCOPED_TRACE("vkDestroyIndirectCommandsLayoutNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003132 auto vkEnc = HostConnection::get()->vkEncoder();
3133 vkEnc->vkDestroyIndirectCommandsLayoutNVX(device, indirectCommandsLayout, pAllocator);
3134}
3135static VkResult entry_vkCreateObjectTableNVX(
3136 VkDevice device,
3137 const VkObjectTableCreateInfoNVX* pCreateInfo,
3138 const VkAllocationCallbacks* pAllocator,
3139 VkObjectTableNVX* pObjectTable)
3140{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003141 AEMU_SCOPED_TRACE("vkCreateObjectTableNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003142 auto vkEnc = HostConnection::get()->vkEncoder();
3143 VkResult vkCreateObjectTableNVX_VkResult_return = (VkResult)0;
3144 vkCreateObjectTableNVX_VkResult_return = vkEnc->vkCreateObjectTableNVX(device, pCreateInfo, pAllocator, pObjectTable);
3145 return vkCreateObjectTableNVX_VkResult_return;
3146}
3147static void entry_vkDestroyObjectTableNVX(
3148 VkDevice device,
3149 VkObjectTableNVX objectTable,
3150 const VkAllocationCallbacks* pAllocator)
3151{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003152 AEMU_SCOPED_TRACE("vkDestroyObjectTableNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003153 auto vkEnc = HostConnection::get()->vkEncoder();
3154 vkEnc->vkDestroyObjectTableNVX(device, objectTable, pAllocator);
3155}
3156static VkResult entry_vkRegisterObjectsNVX(
3157 VkDevice device,
3158 VkObjectTableNVX objectTable,
3159 uint32_t objectCount,
3160 const VkObjectTableEntryNVX* const* ppObjectTableEntries,
3161 const uint32_t* pObjectIndices)
3162{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003163 AEMU_SCOPED_TRACE("vkRegisterObjectsNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003164 auto vkEnc = HostConnection::get()->vkEncoder();
3165 VkResult vkRegisterObjectsNVX_VkResult_return = (VkResult)0;
3166 vkRegisterObjectsNVX_VkResult_return = vkEnc->vkRegisterObjectsNVX(device, objectTable, objectCount, ppObjectTableEntries, pObjectIndices);
3167 return vkRegisterObjectsNVX_VkResult_return;
3168}
3169static VkResult entry_vkUnregisterObjectsNVX(
3170 VkDevice device,
3171 VkObjectTableNVX objectTable,
3172 uint32_t objectCount,
3173 const VkObjectEntryTypeNVX* pObjectEntryTypes,
3174 const uint32_t* pObjectIndices)
3175{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003176 AEMU_SCOPED_TRACE("vkUnregisterObjectsNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003177 auto vkEnc = HostConnection::get()->vkEncoder();
3178 VkResult vkUnregisterObjectsNVX_VkResult_return = (VkResult)0;
3179 vkUnregisterObjectsNVX_VkResult_return = vkEnc->vkUnregisterObjectsNVX(device, objectTable, objectCount, pObjectEntryTypes, pObjectIndices);
3180 return vkUnregisterObjectsNVX_VkResult_return;
3181}
3182static void entry_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX(
3183 VkPhysicalDevice physicalDevice,
3184 VkDeviceGeneratedCommandsFeaturesNVX* pFeatures,
3185 VkDeviceGeneratedCommandsLimitsNVX* pLimits)
3186{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003187 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003188 auto vkEnc = HostConnection::get()->vkEncoder();
3189 vkEnc->vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX(physicalDevice, pFeatures, pLimits);
3190}
3191#endif
3192#ifdef VK_NV_clip_space_w_scaling
3193static void entry_vkCmdSetViewportWScalingNV(
3194 VkCommandBuffer commandBuffer,
3195 uint32_t firstViewport,
3196 uint32_t viewportCount,
3197 const VkViewportWScalingNV* pViewportWScalings)
3198{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003199 AEMU_SCOPED_TRACE("vkCmdSetViewportWScalingNV");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003200 auto vkEnc = HostConnection::get()->vkEncoder();
3201 vkEnc->vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings);
3202}
3203#endif
3204#ifdef VK_EXT_direct_mode_display
3205static VkResult entry_vkReleaseDisplayEXT(
3206 VkPhysicalDevice physicalDevice,
3207 VkDisplayKHR display)
3208{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003209 AEMU_SCOPED_TRACE("vkReleaseDisplayEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003210 auto vkEnc = HostConnection::get()->vkEncoder();
3211 VkResult vkReleaseDisplayEXT_VkResult_return = (VkResult)0;
3212 vkReleaseDisplayEXT_VkResult_return = vkEnc->vkReleaseDisplayEXT(physicalDevice, display);
3213 return vkReleaseDisplayEXT_VkResult_return;
3214}
3215#endif
3216#ifdef VK_EXT_acquire_xlib_display
3217static VkResult entry_vkAcquireXlibDisplayEXT(
3218 VkPhysicalDevice physicalDevice,
3219 Display* dpy,
3220 VkDisplayKHR display)
3221{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003222 AEMU_SCOPED_TRACE("vkAcquireXlibDisplayEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003223 auto vkEnc = HostConnection::get()->vkEncoder();
3224 VkResult vkAcquireXlibDisplayEXT_VkResult_return = (VkResult)0;
3225 vkAcquireXlibDisplayEXT_VkResult_return = vkEnc->vkAcquireXlibDisplayEXT(physicalDevice, dpy, display);
3226 return vkAcquireXlibDisplayEXT_VkResult_return;
3227}
3228static VkResult entry_vkGetRandROutputDisplayEXT(
3229 VkPhysicalDevice physicalDevice,
3230 Display* dpy,
3231 RROutput rrOutput,
3232 VkDisplayKHR* pDisplay)
3233{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003234 AEMU_SCOPED_TRACE("vkGetRandROutputDisplayEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003235 auto vkEnc = HostConnection::get()->vkEncoder();
3236 VkResult vkGetRandROutputDisplayEXT_VkResult_return = (VkResult)0;
3237 vkGetRandROutputDisplayEXT_VkResult_return = vkEnc->vkGetRandROutputDisplayEXT(physicalDevice, dpy, rrOutput, pDisplay);
3238 return vkGetRandROutputDisplayEXT_VkResult_return;
3239}
3240#endif
3241#ifdef VK_EXT_display_surface_counter
3242static VkResult entry_vkGetPhysicalDeviceSurfaceCapabilities2EXT(
3243 VkPhysicalDevice physicalDevice,
3244 VkSurfaceKHR surface,
3245 VkSurfaceCapabilities2EXT* pSurfaceCapabilities)
3246{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003247 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceCapabilities2EXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003248 auto vkEnc = HostConnection::get()->vkEncoder();
3249 VkResult vkGetPhysicalDeviceSurfaceCapabilities2EXT_VkResult_return = (VkResult)0;
3250 vkGetPhysicalDeviceSurfaceCapabilities2EXT_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities);
3251 return vkGetPhysicalDeviceSurfaceCapabilities2EXT_VkResult_return;
3252}
3253#endif
3254#ifdef VK_EXT_display_control
3255static VkResult entry_vkDisplayPowerControlEXT(
3256 VkDevice device,
3257 VkDisplayKHR display,
3258 const VkDisplayPowerInfoEXT* pDisplayPowerInfo)
3259{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003260 AEMU_SCOPED_TRACE("vkDisplayPowerControlEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003261 auto vkEnc = HostConnection::get()->vkEncoder();
3262 VkResult vkDisplayPowerControlEXT_VkResult_return = (VkResult)0;
3263 vkDisplayPowerControlEXT_VkResult_return = vkEnc->vkDisplayPowerControlEXT(device, display, pDisplayPowerInfo);
3264 return vkDisplayPowerControlEXT_VkResult_return;
3265}
3266static VkResult entry_vkRegisterDeviceEventEXT(
3267 VkDevice device,
3268 const VkDeviceEventInfoEXT* pDeviceEventInfo,
3269 const VkAllocationCallbacks* pAllocator,
3270 VkFence* pFence)
3271{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003272 AEMU_SCOPED_TRACE("vkRegisterDeviceEventEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003273 auto vkEnc = HostConnection::get()->vkEncoder();
3274 VkResult vkRegisterDeviceEventEXT_VkResult_return = (VkResult)0;
3275 vkRegisterDeviceEventEXT_VkResult_return = vkEnc->vkRegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence);
3276 return vkRegisterDeviceEventEXT_VkResult_return;
3277}
3278static VkResult entry_vkRegisterDisplayEventEXT(
3279 VkDevice device,
3280 VkDisplayKHR display,
3281 const VkDisplayEventInfoEXT* pDisplayEventInfo,
3282 const VkAllocationCallbacks* pAllocator,
3283 VkFence* pFence)
3284{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003285 AEMU_SCOPED_TRACE("vkRegisterDisplayEventEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003286 auto vkEnc = HostConnection::get()->vkEncoder();
3287 VkResult vkRegisterDisplayEventEXT_VkResult_return = (VkResult)0;
3288 vkRegisterDisplayEventEXT_VkResult_return = vkEnc->vkRegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence);
3289 return vkRegisterDisplayEventEXT_VkResult_return;
3290}
3291static VkResult entry_vkGetSwapchainCounterEXT(
3292 VkDevice device,
3293 VkSwapchainKHR swapchain,
3294 VkSurfaceCounterFlagBitsEXT counter,
3295 uint64_t* pCounterValue)
3296{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003297 AEMU_SCOPED_TRACE("vkGetSwapchainCounterEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003298 auto vkEnc = HostConnection::get()->vkEncoder();
3299 VkResult vkGetSwapchainCounterEXT_VkResult_return = (VkResult)0;
3300 vkGetSwapchainCounterEXT_VkResult_return = vkEnc->vkGetSwapchainCounterEXT(device, swapchain, counter, pCounterValue);
3301 return vkGetSwapchainCounterEXT_VkResult_return;
3302}
3303#endif
3304#ifdef VK_GOOGLE_display_timing
3305static VkResult entry_vkGetRefreshCycleDurationGOOGLE(
3306 VkDevice device,
3307 VkSwapchainKHR swapchain,
3308 VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties)
3309{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003310 AEMU_SCOPED_TRACE("vkGetRefreshCycleDurationGOOGLE");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003311 auto vkEnc = HostConnection::get()->vkEncoder();
3312 VkResult vkGetRefreshCycleDurationGOOGLE_VkResult_return = (VkResult)0;
3313 vkGetRefreshCycleDurationGOOGLE_VkResult_return = vkEnc->vkGetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties);
3314 return vkGetRefreshCycleDurationGOOGLE_VkResult_return;
3315}
3316static VkResult entry_vkGetPastPresentationTimingGOOGLE(
3317 VkDevice device,
3318 VkSwapchainKHR swapchain,
3319 uint32_t* pPresentationTimingCount,
3320 VkPastPresentationTimingGOOGLE* pPresentationTimings)
3321{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003322 AEMU_SCOPED_TRACE("vkGetPastPresentationTimingGOOGLE");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003323 auto vkEnc = HostConnection::get()->vkEncoder();
3324 VkResult vkGetPastPresentationTimingGOOGLE_VkResult_return = (VkResult)0;
3325 vkGetPastPresentationTimingGOOGLE_VkResult_return = vkEnc->vkGetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings);
3326 return vkGetPastPresentationTimingGOOGLE_VkResult_return;
3327}
3328#endif
3329#ifdef VK_NV_sample_mask_override_coverage
3330#endif
3331#ifdef VK_NV_geometry_shader_passthrough
3332#endif
3333#ifdef VK_NV_viewport_array2
3334#endif
3335#ifdef VK_NVX_multiview_per_view_attributes
3336#endif
3337#ifdef VK_NV_viewport_swizzle
3338#endif
3339#ifdef VK_EXT_discard_rectangles
3340static void entry_vkCmdSetDiscardRectangleEXT(
3341 VkCommandBuffer commandBuffer,
3342 uint32_t firstDiscardRectangle,
3343 uint32_t discardRectangleCount,
3344 const VkRect2D* pDiscardRectangles)
3345{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003346 AEMU_SCOPED_TRACE("vkCmdSetDiscardRectangleEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003347 auto vkEnc = HostConnection::get()->vkEncoder();
3348 vkEnc->vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles);
3349}
3350#endif
3351#ifdef VK_EXT_conservative_rasterization
3352#endif
3353#ifdef VK_EXT_swapchain_colorspace
3354#endif
3355#ifdef VK_EXT_hdr_metadata
3356static void entry_vkSetHdrMetadataEXT(
3357 VkDevice device,
3358 uint32_t swapchainCount,
3359 const VkSwapchainKHR* pSwapchains,
3360 const VkHdrMetadataEXT* pMetadata)
3361{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003362 AEMU_SCOPED_TRACE("vkSetHdrMetadataEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003363 auto vkEnc = HostConnection::get()->vkEncoder();
3364 vkEnc->vkSetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata);
3365}
3366#endif
3367#ifdef VK_MVK_ios_surface
3368static VkResult entry_vkCreateIOSSurfaceMVK(
3369 VkInstance instance,
3370 const VkIOSSurfaceCreateInfoMVK* pCreateInfo,
3371 const VkAllocationCallbacks* pAllocator,
3372 VkSurfaceKHR* pSurface)
3373{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003374 AEMU_SCOPED_TRACE("vkCreateIOSSurfaceMVK");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003375 auto vkEnc = HostConnection::get()->vkEncoder();
3376 VkResult vkCreateIOSSurfaceMVK_VkResult_return = (VkResult)0;
3377 vkCreateIOSSurfaceMVK_VkResult_return = vkEnc->vkCreateIOSSurfaceMVK(instance, pCreateInfo, pAllocator, pSurface);
3378 return vkCreateIOSSurfaceMVK_VkResult_return;
3379}
3380#endif
3381#ifdef VK_MVK_macos_surface
3382static VkResult entry_vkCreateMacOSSurfaceMVK(
3383 VkInstance instance,
3384 const VkMacOSSurfaceCreateInfoMVK* pCreateInfo,
3385 const VkAllocationCallbacks* pAllocator,
3386 VkSurfaceKHR* pSurface)
3387{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003388 AEMU_SCOPED_TRACE("vkCreateMacOSSurfaceMVK");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003389 auto vkEnc = HostConnection::get()->vkEncoder();
3390 VkResult vkCreateMacOSSurfaceMVK_VkResult_return = (VkResult)0;
3391 vkCreateMacOSSurfaceMVK_VkResult_return = vkEnc->vkCreateMacOSSurfaceMVK(instance, pCreateInfo, pAllocator, pSurface);
3392 return vkCreateMacOSSurfaceMVK_VkResult_return;
3393}
3394#endif
3395#ifdef VK_EXT_external_memory_dma_buf
3396#endif
3397#ifdef VK_EXT_queue_family_foreign
3398#endif
3399#ifdef VK_EXT_debug_utils
3400static VkResult entry_vkSetDebugUtilsObjectNameEXT(
3401 VkDevice device,
3402 const VkDebugUtilsObjectNameInfoEXT* pNameInfo)
3403{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003404 AEMU_SCOPED_TRACE("vkSetDebugUtilsObjectNameEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003405 auto vkEnc = HostConnection::get()->vkEncoder();
3406 VkResult vkSetDebugUtilsObjectNameEXT_VkResult_return = (VkResult)0;
3407 vkSetDebugUtilsObjectNameEXT_VkResult_return = vkEnc->vkSetDebugUtilsObjectNameEXT(device, pNameInfo);
3408 return vkSetDebugUtilsObjectNameEXT_VkResult_return;
3409}
3410static VkResult entry_vkSetDebugUtilsObjectTagEXT(
3411 VkDevice device,
3412 const VkDebugUtilsObjectTagInfoEXT* pTagInfo)
3413{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003414 AEMU_SCOPED_TRACE("vkSetDebugUtilsObjectTagEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003415 auto vkEnc = HostConnection::get()->vkEncoder();
3416 VkResult vkSetDebugUtilsObjectTagEXT_VkResult_return = (VkResult)0;
3417 vkSetDebugUtilsObjectTagEXT_VkResult_return = vkEnc->vkSetDebugUtilsObjectTagEXT(device, pTagInfo);
3418 return vkSetDebugUtilsObjectTagEXT_VkResult_return;
3419}
3420static void entry_vkQueueBeginDebugUtilsLabelEXT(
3421 VkQueue queue,
3422 const VkDebugUtilsLabelEXT* pLabelInfo)
3423{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003424 AEMU_SCOPED_TRACE("vkQueueBeginDebugUtilsLabelEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003425 auto vkEnc = HostConnection::get()->vkEncoder();
3426 vkEnc->vkQueueBeginDebugUtilsLabelEXT(queue, pLabelInfo);
3427}
3428static void entry_vkQueueEndDebugUtilsLabelEXT(
3429 VkQueue queue)
3430{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003431 AEMU_SCOPED_TRACE("vkQueueEndDebugUtilsLabelEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003432 auto vkEnc = HostConnection::get()->vkEncoder();
3433 vkEnc->vkQueueEndDebugUtilsLabelEXT(queue);
3434}
3435static void entry_vkQueueInsertDebugUtilsLabelEXT(
3436 VkQueue queue,
3437 const VkDebugUtilsLabelEXT* pLabelInfo)
3438{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003439 AEMU_SCOPED_TRACE("vkQueueInsertDebugUtilsLabelEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003440 auto vkEnc = HostConnection::get()->vkEncoder();
3441 vkEnc->vkQueueInsertDebugUtilsLabelEXT(queue, pLabelInfo);
3442}
3443static void entry_vkCmdBeginDebugUtilsLabelEXT(
3444 VkCommandBuffer commandBuffer,
3445 const VkDebugUtilsLabelEXT* pLabelInfo)
3446{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003447 AEMU_SCOPED_TRACE("vkCmdBeginDebugUtilsLabelEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003448 auto vkEnc = HostConnection::get()->vkEncoder();
3449 vkEnc->vkCmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo);
3450}
3451static void entry_vkCmdEndDebugUtilsLabelEXT(
3452 VkCommandBuffer commandBuffer)
3453{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003454 AEMU_SCOPED_TRACE("vkCmdEndDebugUtilsLabelEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003455 auto vkEnc = HostConnection::get()->vkEncoder();
3456 vkEnc->vkCmdEndDebugUtilsLabelEXT(commandBuffer);
3457}
3458static void entry_vkCmdInsertDebugUtilsLabelEXT(
3459 VkCommandBuffer commandBuffer,
3460 const VkDebugUtilsLabelEXT* pLabelInfo)
3461{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003462 AEMU_SCOPED_TRACE("vkCmdInsertDebugUtilsLabelEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003463 auto vkEnc = HostConnection::get()->vkEncoder();
3464 vkEnc->vkCmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo);
3465}
3466static VkResult entry_vkCreateDebugUtilsMessengerEXT(
3467 VkInstance instance,
3468 const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo,
3469 const VkAllocationCallbacks* pAllocator,
3470 VkDebugUtilsMessengerEXT* pMessenger)
3471{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003472 AEMU_SCOPED_TRACE("vkCreateDebugUtilsMessengerEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003473 auto vkEnc = HostConnection::get()->vkEncoder();
3474 VkResult vkCreateDebugUtilsMessengerEXT_VkResult_return = (VkResult)0;
3475 vkCreateDebugUtilsMessengerEXT_VkResult_return = vkEnc->vkCreateDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, pMessenger);
3476 return vkCreateDebugUtilsMessengerEXT_VkResult_return;
3477}
3478static void entry_vkDestroyDebugUtilsMessengerEXT(
3479 VkInstance instance,
3480 VkDebugUtilsMessengerEXT messenger,
3481 const VkAllocationCallbacks* pAllocator)
3482{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003483 AEMU_SCOPED_TRACE("vkDestroyDebugUtilsMessengerEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003484 auto vkEnc = HostConnection::get()->vkEncoder();
3485 vkEnc->vkDestroyDebugUtilsMessengerEXT(instance, messenger, pAllocator);
3486}
3487static void entry_vkSubmitDebugUtilsMessageEXT(
3488 VkInstance instance,
3489 VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
3490 VkDebugUtilsMessageTypeFlagsEXT messageTypes,
3491 const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData)
3492{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003493 AEMU_SCOPED_TRACE("vkSubmitDebugUtilsMessageEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003494 auto vkEnc = HostConnection::get()->vkEncoder();
3495 vkEnc->vkSubmitDebugUtilsMessageEXT(instance, messageSeverity, messageTypes, pCallbackData);
3496}
3497#endif
3498#ifdef VK_ANDROID_external_memory_android_hardware_buffer
3499static VkResult entry_vkGetAndroidHardwareBufferPropertiesANDROID(
3500 VkDevice device,
3501 const AHardwareBuffer* buffer,
3502 VkAndroidHardwareBufferPropertiesANDROID* pProperties)
3503{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003504 AEMU_SCOPED_TRACE("vkGetAndroidHardwareBufferPropertiesANDROID");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003505 auto vkEnc = HostConnection::get()->vkEncoder();
3506 VkResult vkGetAndroidHardwareBufferPropertiesANDROID_VkResult_return = (VkResult)0;
Lingfeng Yang4f3f91f2019-02-28 11:37:21 -08003507 auto resources = ResourceTracker::get();
3508 vkGetAndroidHardwareBufferPropertiesANDROID_VkResult_return = resources->on_vkGetAndroidHardwareBufferPropertiesANDROID(vkEnc, VK_SUCCESS, device, buffer, pProperties);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003509 return vkGetAndroidHardwareBufferPropertiesANDROID_VkResult_return;
3510}
3511static VkResult entry_vkGetMemoryAndroidHardwareBufferANDROID(
3512 VkDevice device,
3513 const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo,
3514 AHardwareBuffer** pBuffer)
3515{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003516 AEMU_SCOPED_TRACE("vkGetMemoryAndroidHardwareBufferANDROID");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003517 auto vkEnc = HostConnection::get()->vkEncoder();
3518 VkResult vkGetMemoryAndroidHardwareBufferANDROID_VkResult_return = (VkResult)0;
Lingfeng Yang4f3f91f2019-02-28 11:37:21 -08003519 auto resources = ResourceTracker::get();
3520 vkGetMemoryAndroidHardwareBufferANDROID_VkResult_return = resources->on_vkGetMemoryAndroidHardwareBufferANDROID(vkEnc, VK_SUCCESS, device, pInfo, pBuffer);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003521 return vkGetMemoryAndroidHardwareBufferANDROID_VkResult_return;
3522}
3523#endif
3524#ifdef VK_EXT_sampler_filter_minmax
3525#endif
3526#ifdef VK_AMD_gpu_shader_int16
3527#endif
3528#ifdef VK_AMD_mixed_attachment_samples
3529#endif
3530#ifdef VK_AMD_shader_fragment_mask
3531#endif
3532#ifdef VK_EXT_shader_stencil_export
3533#endif
3534#ifdef VK_EXT_sample_locations
3535static void entry_vkCmdSetSampleLocationsEXT(
3536 VkCommandBuffer commandBuffer,
3537 const VkSampleLocationsInfoEXT* pSampleLocationsInfo)
3538{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003539 AEMU_SCOPED_TRACE("vkCmdSetSampleLocationsEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003540 auto vkEnc = HostConnection::get()->vkEncoder();
3541 vkEnc->vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo);
3542}
3543static void entry_vkGetPhysicalDeviceMultisamplePropertiesEXT(
3544 VkPhysicalDevice physicalDevice,
3545 VkSampleCountFlagBits samples,
3546 VkMultisamplePropertiesEXT* pMultisampleProperties)
3547{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003548 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMultisamplePropertiesEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003549 auto vkEnc = HostConnection::get()->vkEncoder();
3550 vkEnc->vkGetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties);
3551}
3552#endif
3553#ifdef VK_EXT_blend_operation_advanced
3554#endif
3555#ifdef VK_NV_fragment_coverage_to_color
3556#endif
3557#ifdef VK_NV_framebuffer_mixed_samples
3558#endif
3559#ifdef VK_NV_fill_rectangle
3560#endif
3561#ifdef VK_EXT_post_depth_coverage
3562#endif
3563#ifdef VK_EXT_validation_cache
3564static VkResult entry_vkCreateValidationCacheEXT(
3565 VkDevice device,
3566 const VkValidationCacheCreateInfoEXT* pCreateInfo,
3567 const VkAllocationCallbacks* pAllocator,
3568 VkValidationCacheEXT* pValidationCache)
3569{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003570 AEMU_SCOPED_TRACE("vkCreateValidationCacheEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003571 auto vkEnc = HostConnection::get()->vkEncoder();
3572 VkResult vkCreateValidationCacheEXT_VkResult_return = (VkResult)0;
3573 vkCreateValidationCacheEXT_VkResult_return = vkEnc->vkCreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache);
3574 return vkCreateValidationCacheEXT_VkResult_return;
3575}
3576static void entry_vkDestroyValidationCacheEXT(
3577 VkDevice device,
3578 VkValidationCacheEXT validationCache,
3579 const VkAllocationCallbacks* pAllocator)
3580{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003581 AEMU_SCOPED_TRACE("vkDestroyValidationCacheEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003582 auto vkEnc = HostConnection::get()->vkEncoder();
3583 vkEnc->vkDestroyValidationCacheEXT(device, validationCache, pAllocator);
3584}
3585static VkResult entry_vkMergeValidationCachesEXT(
3586 VkDevice device,
3587 VkValidationCacheEXT dstCache,
3588 uint32_t srcCacheCount,
3589 const VkValidationCacheEXT* pSrcCaches)
3590{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003591 AEMU_SCOPED_TRACE("vkMergeValidationCachesEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003592 auto vkEnc = HostConnection::get()->vkEncoder();
3593 VkResult vkMergeValidationCachesEXT_VkResult_return = (VkResult)0;
3594 vkMergeValidationCachesEXT_VkResult_return = vkEnc->vkMergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches);
3595 return vkMergeValidationCachesEXT_VkResult_return;
3596}
3597static VkResult entry_vkGetValidationCacheDataEXT(
3598 VkDevice device,
3599 VkValidationCacheEXT validationCache,
3600 size_t* pDataSize,
3601 void* pData)
3602{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003603 AEMU_SCOPED_TRACE("vkGetValidationCacheDataEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003604 auto vkEnc = HostConnection::get()->vkEncoder();
3605 VkResult vkGetValidationCacheDataEXT_VkResult_return = (VkResult)0;
3606 vkGetValidationCacheDataEXT_VkResult_return = vkEnc->vkGetValidationCacheDataEXT(device, validationCache, pDataSize, pData);
3607 return vkGetValidationCacheDataEXT_VkResult_return;
3608}
3609#endif
3610#ifdef VK_EXT_descriptor_indexing
3611#endif
3612#ifdef VK_EXT_shader_viewport_index_layer
3613#endif
3614#ifdef VK_EXT_global_priority
3615#endif
3616#ifdef VK_EXT_external_memory_host
3617static VkResult entry_vkGetMemoryHostPointerPropertiesEXT(
3618 VkDevice device,
3619 VkExternalMemoryHandleTypeFlagBits handleType,
3620 const void* pHostPointer,
3621 VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties)
3622{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003623 AEMU_SCOPED_TRACE("vkGetMemoryHostPointerPropertiesEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003624 auto vkEnc = HostConnection::get()->vkEncoder();
3625 VkResult vkGetMemoryHostPointerPropertiesEXT_VkResult_return = (VkResult)0;
3626 vkGetMemoryHostPointerPropertiesEXT_VkResult_return = vkEnc->vkGetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties);
3627 return vkGetMemoryHostPointerPropertiesEXT_VkResult_return;
3628}
3629#endif
3630#ifdef VK_AMD_buffer_marker
3631static void entry_vkCmdWriteBufferMarkerAMD(
3632 VkCommandBuffer commandBuffer,
3633 VkPipelineStageFlagBits pipelineStage,
3634 VkBuffer dstBuffer,
3635 VkDeviceSize dstOffset,
3636 uint32_t marker)
3637{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003638 AEMU_SCOPED_TRACE("vkCmdWriteBufferMarkerAMD");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003639 auto vkEnc = HostConnection::get()->vkEncoder();
3640 vkEnc->vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker);
3641}
3642#endif
3643#ifdef VK_AMD_shader_core_properties
3644#endif
3645#ifdef VK_EXT_vertex_attribute_divisor
3646#endif
3647#ifdef VK_NV_shader_subgroup_partitioned
3648#endif
3649#ifdef VK_NV_device_diagnostic_checkpoints
3650static void entry_vkCmdSetCheckpointNV(
3651 VkCommandBuffer commandBuffer,
3652 const void* pCheckpointMarker)
3653{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003654 AEMU_SCOPED_TRACE("vkCmdSetCheckpointNV");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003655 auto vkEnc = HostConnection::get()->vkEncoder();
3656 vkEnc->vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker);
3657}
3658static void entry_vkGetQueueCheckpointDataNV(
3659 VkQueue queue,
3660 uint32_t* pCheckpointDataCount,
3661 VkCheckpointDataNV* pCheckpointData)
3662{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003663 AEMU_SCOPED_TRACE("vkGetQueueCheckpointDataNV");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003664 auto vkEnc = HostConnection::get()->vkEncoder();
3665 vkEnc->vkGetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData);
3666}
3667#endif
Lingfeng Yang5c63afd2018-12-22 01:21:14 -08003668#ifdef VK_GOOGLE_address_space
3669static VkResult entry_vkMapMemoryIntoAddressSpaceGOOGLE(
3670 VkDevice device,
3671 VkDeviceMemory memory,
3672 uint64_t* pAddress)
3673{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003674 AEMU_SCOPED_TRACE("vkMapMemoryIntoAddressSpaceGOOGLE");
Lingfeng Yang5c63afd2018-12-22 01:21:14 -08003675 auto vkEnc = HostConnection::get()->vkEncoder();
3676 VkResult vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return = (VkResult)0;
3677 vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return = vkEnc->vkMapMemoryIntoAddressSpaceGOOGLE(device, memory, pAddress);
3678 return vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return;
3679}
3680#endif
Lingfeng Yangae7e1b32019-02-19 14:07:39 -08003681#ifdef VK_GOOGLE_color_buffer
3682static VkResult entry_vkRegisterImageColorBufferGOOGLE(
3683 VkDevice device,
3684 VkImage image,
3685 uint32_t colorBuffer)
3686{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003687 AEMU_SCOPED_TRACE("vkRegisterImageColorBufferGOOGLE");
Lingfeng Yangae7e1b32019-02-19 14:07:39 -08003688 auto vkEnc = HostConnection::get()->vkEncoder();
3689 VkResult vkRegisterImageColorBufferGOOGLE_VkResult_return = (VkResult)0;
3690 vkRegisterImageColorBufferGOOGLE_VkResult_return = vkEnc->vkRegisterImageColorBufferGOOGLE(device, image, colorBuffer);
3691 return vkRegisterImageColorBufferGOOGLE_VkResult_return;
3692}
3693static VkResult entry_vkRegisterBufferColorBufferGOOGLE(
3694 VkDevice device,
3695 VkBuffer buffer,
3696 uint32_t colorBuffer)
3697{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003698 AEMU_SCOPED_TRACE("vkRegisterBufferColorBufferGOOGLE");
Lingfeng Yangae7e1b32019-02-19 14:07:39 -08003699 auto vkEnc = HostConnection::get()->vkEncoder();
3700 VkResult vkRegisterBufferColorBufferGOOGLE_VkResult_return = (VkResult)0;
3701 vkRegisterBufferColorBufferGOOGLE_VkResult_return = vkEnc->vkRegisterBufferColorBufferGOOGLE(device, buffer, colorBuffer);
3702 return vkRegisterBufferColorBufferGOOGLE_VkResult_return;
3703}
3704#endif
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003705void* goldfish_vulkan_get_proc_address(const char* name){
3706#ifdef VK_VERSION_1_0
3707 if (!strcmp(name, "vkCreateInstance"))
3708 {
3709 return (void*)entry_vkCreateInstance;
3710 }
3711 if (!strcmp(name, "vkDestroyInstance"))
3712 {
3713 return (void*)entry_vkDestroyInstance;
3714 }
3715 if (!strcmp(name, "vkEnumeratePhysicalDevices"))
3716 {
3717 return (void*)entry_vkEnumeratePhysicalDevices;
3718 }
3719 if (!strcmp(name, "vkGetPhysicalDeviceFeatures"))
3720 {
3721 return (void*)entry_vkGetPhysicalDeviceFeatures;
3722 }
3723 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties"))
3724 {
3725 return (void*)entry_vkGetPhysicalDeviceFormatProperties;
3726 }
3727 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties"))
3728 {
3729 return (void*)entry_vkGetPhysicalDeviceImageFormatProperties;
3730 }
3731 if (!strcmp(name, "vkGetPhysicalDeviceProperties"))
3732 {
3733 return (void*)entry_vkGetPhysicalDeviceProperties;
3734 }
3735 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties"))
3736 {
3737 return (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties;
3738 }
3739 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties"))
3740 {
3741 return (void*)entry_vkGetPhysicalDeviceMemoryProperties;
3742 }
3743 if (!strcmp(name, "vkGetInstanceProcAddr"))
3744 {
3745 return (void*)entry_vkGetInstanceProcAddr;
3746 }
3747 if (!strcmp(name, "vkGetDeviceProcAddr"))
3748 {
3749 return (void*)entry_vkGetDeviceProcAddr;
3750 }
3751 if (!strcmp(name, "vkCreateDevice"))
3752 {
3753 return (void*)entry_vkCreateDevice;
3754 }
3755 if (!strcmp(name, "vkDestroyDevice"))
3756 {
3757 return (void*)entry_vkDestroyDevice;
3758 }
3759 if (!strcmp(name, "vkEnumerateInstanceExtensionProperties"))
3760 {
3761 return (void*)entry_vkEnumerateInstanceExtensionProperties;
3762 }
3763 if (!strcmp(name, "vkEnumerateDeviceExtensionProperties"))
3764 {
3765 return (void*)entry_vkEnumerateDeviceExtensionProperties;
3766 }
3767 if (!strcmp(name, "vkEnumerateInstanceLayerProperties"))
3768 {
3769 return (void*)entry_vkEnumerateInstanceLayerProperties;
3770 }
3771 if (!strcmp(name, "vkEnumerateDeviceLayerProperties"))
3772 {
3773 return (void*)entry_vkEnumerateDeviceLayerProperties;
3774 }
3775 if (!strcmp(name, "vkGetDeviceQueue"))
3776 {
3777 return (void*)entry_vkGetDeviceQueue;
3778 }
3779 if (!strcmp(name, "vkQueueSubmit"))
3780 {
3781 return (void*)entry_vkQueueSubmit;
3782 }
3783 if (!strcmp(name, "vkQueueWaitIdle"))
3784 {
3785 return (void*)entry_vkQueueWaitIdle;
3786 }
3787 if (!strcmp(name, "vkDeviceWaitIdle"))
3788 {
3789 return (void*)entry_vkDeviceWaitIdle;
3790 }
3791 if (!strcmp(name, "vkAllocateMemory"))
3792 {
3793 return (void*)entry_vkAllocateMemory;
3794 }
3795 if (!strcmp(name, "vkFreeMemory"))
3796 {
3797 return (void*)entry_vkFreeMemory;
3798 }
3799 if (!strcmp(name, "vkMapMemory"))
3800 {
3801 return (void*)entry_vkMapMemory;
3802 }
3803 if (!strcmp(name, "vkUnmapMemory"))
3804 {
3805 return (void*)entry_vkUnmapMemory;
3806 }
3807 if (!strcmp(name, "vkFlushMappedMemoryRanges"))
3808 {
3809 return (void*)entry_vkFlushMappedMemoryRanges;
3810 }
3811 if (!strcmp(name, "vkInvalidateMappedMemoryRanges"))
3812 {
3813 return (void*)entry_vkInvalidateMappedMemoryRanges;
3814 }
3815 if (!strcmp(name, "vkGetDeviceMemoryCommitment"))
3816 {
3817 return (void*)entry_vkGetDeviceMemoryCommitment;
3818 }
3819 if (!strcmp(name, "vkBindBufferMemory"))
3820 {
3821 return (void*)entry_vkBindBufferMemory;
3822 }
3823 if (!strcmp(name, "vkBindImageMemory"))
3824 {
3825 return (void*)entry_vkBindImageMemory;
3826 }
3827 if (!strcmp(name, "vkGetBufferMemoryRequirements"))
3828 {
3829 return (void*)entry_vkGetBufferMemoryRequirements;
3830 }
3831 if (!strcmp(name, "vkGetImageMemoryRequirements"))
3832 {
3833 return (void*)entry_vkGetImageMemoryRequirements;
3834 }
3835 if (!strcmp(name, "vkGetImageSparseMemoryRequirements"))
3836 {
3837 return (void*)entry_vkGetImageSparseMemoryRequirements;
3838 }
3839 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties"))
3840 {
3841 return (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties;
3842 }
3843 if (!strcmp(name, "vkQueueBindSparse"))
3844 {
3845 return (void*)entry_vkQueueBindSparse;
3846 }
3847 if (!strcmp(name, "vkCreateFence"))
3848 {
3849 return (void*)entry_vkCreateFence;
3850 }
3851 if (!strcmp(name, "vkDestroyFence"))
3852 {
3853 return (void*)entry_vkDestroyFence;
3854 }
3855 if (!strcmp(name, "vkResetFences"))
3856 {
3857 return (void*)entry_vkResetFences;
3858 }
3859 if (!strcmp(name, "vkGetFenceStatus"))
3860 {
3861 return (void*)entry_vkGetFenceStatus;
3862 }
3863 if (!strcmp(name, "vkWaitForFences"))
3864 {
3865 return (void*)entry_vkWaitForFences;
3866 }
3867 if (!strcmp(name, "vkCreateSemaphore"))
3868 {
3869 return (void*)entry_vkCreateSemaphore;
3870 }
3871 if (!strcmp(name, "vkDestroySemaphore"))
3872 {
3873 return (void*)entry_vkDestroySemaphore;
3874 }
3875 if (!strcmp(name, "vkCreateEvent"))
3876 {
3877 return (void*)entry_vkCreateEvent;
3878 }
3879 if (!strcmp(name, "vkDestroyEvent"))
3880 {
3881 return (void*)entry_vkDestroyEvent;
3882 }
3883 if (!strcmp(name, "vkGetEventStatus"))
3884 {
3885 return (void*)entry_vkGetEventStatus;
3886 }
3887 if (!strcmp(name, "vkSetEvent"))
3888 {
3889 return (void*)entry_vkSetEvent;
3890 }
3891 if (!strcmp(name, "vkResetEvent"))
3892 {
3893 return (void*)entry_vkResetEvent;
3894 }
3895 if (!strcmp(name, "vkCreateQueryPool"))
3896 {
3897 return (void*)entry_vkCreateQueryPool;
3898 }
3899 if (!strcmp(name, "vkDestroyQueryPool"))
3900 {
3901 return (void*)entry_vkDestroyQueryPool;
3902 }
3903 if (!strcmp(name, "vkGetQueryPoolResults"))
3904 {
3905 return (void*)entry_vkGetQueryPoolResults;
3906 }
3907 if (!strcmp(name, "vkCreateBuffer"))
3908 {
3909 return (void*)entry_vkCreateBuffer;
3910 }
3911 if (!strcmp(name, "vkDestroyBuffer"))
3912 {
3913 return (void*)entry_vkDestroyBuffer;
3914 }
3915 if (!strcmp(name, "vkCreateBufferView"))
3916 {
3917 return (void*)entry_vkCreateBufferView;
3918 }
3919 if (!strcmp(name, "vkDestroyBufferView"))
3920 {
3921 return (void*)entry_vkDestroyBufferView;
3922 }
3923 if (!strcmp(name, "vkCreateImage"))
3924 {
3925 return (void*)entry_vkCreateImage;
3926 }
3927 if (!strcmp(name, "vkDestroyImage"))
3928 {
3929 return (void*)entry_vkDestroyImage;
3930 }
3931 if (!strcmp(name, "vkGetImageSubresourceLayout"))
3932 {
3933 return (void*)entry_vkGetImageSubresourceLayout;
3934 }
3935 if (!strcmp(name, "vkCreateImageView"))
3936 {
3937 return (void*)entry_vkCreateImageView;
3938 }
3939 if (!strcmp(name, "vkDestroyImageView"))
3940 {
3941 return (void*)entry_vkDestroyImageView;
3942 }
3943 if (!strcmp(name, "vkCreateShaderModule"))
3944 {
3945 return (void*)entry_vkCreateShaderModule;
3946 }
3947 if (!strcmp(name, "vkDestroyShaderModule"))
3948 {
3949 return (void*)entry_vkDestroyShaderModule;
3950 }
3951 if (!strcmp(name, "vkCreatePipelineCache"))
3952 {
3953 return (void*)entry_vkCreatePipelineCache;
3954 }
3955 if (!strcmp(name, "vkDestroyPipelineCache"))
3956 {
3957 return (void*)entry_vkDestroyPipelineCache;
3958 }
3959 if (!strcmp(name, "vkGetPipelineCacheData"))
3960 {
3961 return (void*)entry_vkGetPipelineCacheData;
3962 }
3963 if (!strcmp(name, "vkMergePipelineCaches"))
3964 {
3965 return (void*)entry_vkMergePipelineCaches;
3966 }
3967 if (!strcmp(name, "vkCreateGraphicsPipelines"))
3968 {
3969 return (void*)entry_vkCreateGraphicsPipelines;
3970 }
3971 if (!strcmp(name, "vkCreateComputePipelines"))
3972 {
3973 return (void*)entry_vkCreateComputePipelines;
3974 }
3975 if (!strcmp(name, "vkDestroyPipeline"))
3976 {
3977 return (void*)entry_vkDestroyPipeline;
3978 }
3979 if (!strcmp(name, "vkCreatePipelineLayout"))
3980 {
3981 return (void*)entry_vkCreatePipelineLayout;
3982 }
3983 if (!strcmp(name, "vkDestroyPipelineLayout"))
3984 {
3985 return (void*)entry_vkDestroyPipelineLayout;
3986 }
3987 if (!strcmp(name, "vkCreateSampler"))
3988 {
3989 return (void*)entry_vkCreateSampler;
3990 }
3991 if (!strcmp(name, "vkDestroySampler"))
3992 {
3993 return (void*)entry_vkDestroySampler;
3994 }
3995 if (!strcmp(name, "vkCreateDescriptorSetLayout"))
3996 {
3997 return (void*)entry_vkCreateDescriptorSetLayout;
3998 }
3999 if (!strcmp(name, "vkDestroyDescriptorSetLayout"))
4000 {
4001 return (void*)entry_vkDestroyDescriptorSetLayout;
4002 }
4003 if (!strcmp(name, "vkCreateDescriptorPool"))
4004 {
4005 return (void*)entry_vkCreateDescriptorPool;
4006 }
4007 if (!strcmp(name, "vkDestroyDescriptorPool"))
4008 {
4009 return (void*)entry_vkDestroyDescriptorPool;
4010 }
4011 if (!strcmp(name, "vkResetDescriptorPool"))
4012 {
4013 return (void*)entry_vkResetDescriptorPool;
4014 }
4015 if (!strcmp(name, "vkAllocateDescriptorSets"))
4016 {
4017 return (void*)entry_vkAllocateDescriptorSets;
4018 }
4019 if (!strcmp(name, "vkFreeDescriptorSets"))
4020 {
4021 return (void*)entry_vkFreeDescriptorSets;
4022 }
4023 if (!strcmp(name, "vkUpdateDescriptorSets"))
4024 {
4025 return (void*)entry_vkUpdateDescriptorSets;
4026 }
4027 if (!strcmp(name, "vkCreateFramebuffer"))
4028 {
4029 return (void*)entry_vkCreateFramebuffer;
4030 }
4031 if (!strcmp(name, "vkDestroyFramebuffer"))
4032 {
4033 return (void*)entry_vkDestroyFramebuffer;
4034 }
4035 if (!strcmp(name, "vkCreateRenderPass"))
4036 {
4037 return (void*)entry_vkCreateRenderPass;
4038 }
4039 if (!strcmp(name, "vkDestroyRenderPass"))
4040 {
4041 return (void*)entry_vkDestroyRenderPass;
4042 }
4043 if (!strcmp(name, "vkGetRenderAreaGranularity"))
4044 {
4045 return (void*)entry_vkGetRenderAreaGranularity;
4046 }
4047 if (!strcmp(name, "vkCreateCommandPool"))
4048 {
4049 return (void*)entry_vkCreateCommandPool;
4050 }
4051 if (!strcmp(name, "vkDestroyCommandPool"))
4052 {
4053 return (void*)entry_vkDestroyCommandPool;
4054 }
4055 if (!strcmp(name, "vkResetCommandPool"))
4056 {
4057 return (void*)entry_vkResetCommandPool;
4058 }
4059 if (!strcmp(name, "vkAllocateCommandBuffers"))
4060 {
4061 return (void*)entry_vkAllocateCommandBuffers;
4062 }
4063 if (!strcmp(name, "vkFreeCommandBuffers"))
4064 {
4065 return (void*)entry_vkFreeCommandBuffers;
4066 }
4067 if (!strcmp(name, "vkBeginCommandBuffer"))
4068 {
4069 return (void*)entry_vkBeginCommandBuffer;
4070 }
4071 if (!strcmp(name, "vkEndCommandBuffer"))
4072 {
4073 return (void*)entry_vkEndCommandBuffer;
4074 }
4075 if (!strcmp(name, "vkResetCommandBuffer"))
4076 {
4077 return (void*)entry_vkResetCommandBuffer;
4078 }
4079 if (!strcmp(name, "vkCmdBindPipeline"))
4080 {
4081 return (void*)entry_vkCmdBindPipeline;
4082 }
4083 if (!strcmp(name, "vkCmdSetViewport"))
4084 {
4085 return (void*)entry_vkCmdSetViewport;
4086 }
4087 if (!strcmp(name, "vkCmdSetScissor"))
4088 {
4089 return (void*)entry_vkCmdSetScissor;
4090 }
4091 if (!strcmp(name, "vkCmdSetLineWidth"))
4092 {
4093 return (void*)entry_vkCmdSetLineWidth;
4094 }
4095 if (!strcmp(name, "vkCmdSetDepthBias"))
4096 {
4097 return (void*)entry_vkCmdSetDepthBias;
4098 }
4099 if (!strcmp(name, "vkCmdSetBlendConstants"))
4100 {
4101 return (void*)entry_vkCmdSetBlendConstants;
4102 }
4103 if (!strcmp(name, "vkCmdSetDepthBounds"))
4104 {
4105 return (void*)entry_vkCmdSetDepthBounds;
4106 }
4107 if (!strcmp(name, "vkCmdSetStencilCompareMask"))
4108 {
4109 return (void*)entry_vkCmdSetStencilCompareMask;
4110 }
4111 if (!strcmp(name, "vkCmdSetStencilWriteMask"))
4112 {
4113 return (void*)entry_vkCmdSetStencilWriteMask;
4114 }
4115 if (!strcmp(name, "vkCmdSetStencilReference"))
4116 {
4117 return (void*)entry_vkCmdSetStencilReference;
4118 }
4119 if (!strcmp(name, "vkCmdBindDescriptorSets"))
4120 {
4121 return (void*)entry_vkCmdBindDescriptorSets;
4122 }
4123 if (!strcmp(name, "vkCmdBindIndexBuffer"))
4124 {
4125 return (void*)entry_vkCmdBindIndexBuffer;
4126 }
4127 if (!strcmp(name, "vkCmdBindVertexBuffers"))
4128 {
4129 return (void*)entry_vkCmdBindVertexBuffers;
4130 }
4131 if (!strcmp(name, "vkCmdDraw"))
4132 {
4133 return (void*)entry_vkCmdDraw;
4134 }
4135 if (!strcmp(name, "vkCmdDrawIndexed"))
4136 {
4137 return (void*)entry_vkCmdDrawIndexed;
4138 }
4139 if (!strcmp(name, "vkCmdDrawIndirect"))
4140 {
4141 return (void*)entry_vkCmdDrawIndirect;
4142 }
4143 if (!strcmp(name, "vkCmdDrawIndexedIndirect"))
4144 {
4145 return (void*)entry_vkCmdDrawIndexedIndirect;
4146 }
4147 if (!strcmp(name, "vkCmdDispatch"))
4148 {
4149 return (void*)entry_vkCmdDispatch;
4150 }
4151 if (!strcmp(name, "vkCmdDispatchIndirect"))
4152 {
4153 return (void*)entry_vkCmdDispatchIndirect;
4154 }
4155 if (!strcmp(name, "vkCmdCopyBuffer"))
4156 {
4157 return (void*)entry_vkCmdCopyBuffer;
4158 }
4159 if (!strcmp(name, "vkCmdCopyImage"))
4160 {
4161 return (void*)entry_vkCmdCopyImage;
4162 }
4163 if (!strcmp(name, "vkCmdBlitImage"))
4164 {
4165 return (void*)entry_vkCmdBlitImage;
4166 }
4167 if (!strcmp(name, "vkCmdCopyBufferToImage"))
4168 {
4169 return (void*)entry_vkCmdCopyBufferToImage;
4170 }
4171 if (!strcmp(name, "vkCmdCopyImageToBuffer"))
4172 {
4173 return (void*)entry_vkCmdCopyImageToBuffer;
4174 }
4175 if (!strcmp(name, "vkCmdUpdateBuffer"))
4176 {
4177 return (void*)entry_vkCmdUpdateBuffer;
4178 }
4179 if (!strcmp(name, "vkCmdFillBuffer"))
4180 {
4181 return (void*)entry_vkCmdFillBuffer;
4182 }
4183 if (!strcmp(name, "vkCmdClearColorImage"))
4184 {
4185 return (void*)entry_vkCmdClearColorImage;
4186 }
4187 if (!strcmp(name, "vkCmdClearDepthStencilImage"))
4188 {
4189 return (void*)entry_vkCmdClearDepthStencilImage;
4190 }
4191 if (!strcmp(name, "vkCmdClearAttachments"))
4192 {
4193 return (void*)entry_vkCmdClearAttachments;
4194 }
4195 if (!strcmp(name, "vkCmdResolveImage"))
4196 {
4197 return (void*)entry_vkCmdResolveImage;
4198 }
4199 if (!strcmp(name, "vkCmdSetEvent"))
4200 {
4201 return (void*)entry_vkCmdSetEvent;
4202 }
4203 if (!strcmp(name, "vkCmdResetEvent"))
4204 {
4205 return (void*)entry_vkCmdResetEvent;
4206 }
4207 if (!strcmp(name, "vkCmdWaitEvents"))
4208 {
4209 return (void*)entry_vkCmdWaitEvents;
4210 }
4211 if (!strcmp(name, "vkCmdPipelineBarrier"))
4212 {
4213 return (void*)entry_vkCmdPipelineBarrier;
4214 }
4215 if (!strcmp(name, "vkCmdBeginQuery"))
4216 {
4217 return (void*)entry_vkCmdBeginQuery;
4218 }
4219 if (!strcmp(name, "vkCmdEndQuery"))
4220 {
4221 return (void*)entry_vkCmdEndQuery;
4222 }
4223 if (!strcmp(name, "vkCmdResetQueryPool"))
4224 {
4225 return (void*)entry_vkCmdResetQueryPool;
4226 }
4227 if (!strcmp(name, "vkCmdWriteTimestamp"))
4228 {
4229 return (void*)entry_vkCmdWriteTimestamp;
4230 }
4231 if (!strcmp(name, "vkCmdCopyQueryPoolResults"))
4232 {
4233 return (void*)entry_vkCmdCopyQueryPoolResults;
4234 }
4235 if (!strcmp(name, "vkCmdPushConstants"))
4236 {
4237 return (void*)entry_vkCmdPushConstants;
4238 }
4239 if (!strcmp(name, "vkCmdBeginRenderPass"))
4240 {
4241 return (void*)entry_vkCmdBeginRenderPass;
4242 }
4243 if (!strcmp(name, "vkCmdNextSubpass"))
4244 {
4245 return (void*)entry_vkCmdNextSubpass;
4246 }
4247 if (!strcmp(name, "vkCmdEndRenderPass"))
4248 {
4249 return (void*)entry_vkCmdEndRenderPass;
4250 }
4251 if (!strcmp(name, "vkCmdExecuteCommands"))
4252 {
4253 return (void*)entry_vkCmdExecuteCommands;
4254 }
4255#endif
4256#ifdef VK_VERSION_1_1
4257 if (!strcmp(name, "vkEnumerateInstanceVersion"))
4258 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004259 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004260 }
4261 if (!strcmp(name, "vkBindBufferMemory2"))
4262 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004263 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004264 }
4265 if (!strcmp(name, "vkBindImageMemory2"))
4266 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004267 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004268 }
4269 if (!strcmp(name, "vkGetDeviceGroupPeerMemoryFeatures"))
4270 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004271 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004272 }
4273 if (!strcmp(name, "vkCmdSetDeviceMask"))
4274 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004275 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004276 }
4277 if (!strcmp(name, "vkCmdDispatchBase"))
4278 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004279 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004280 }
4281 if (!strcmp(name, "vkEnumeratePhysicalDeviceGroups"))
4282 {
Lingfeng Yang113689e2018-11-11 16:48:50 -08004283 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004284 }
4285 if (!strcmp(name, "vkGetImageMemoryRequirements2"))
4286 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004287 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004288 }
4289 if (!strcmp(name, "vkGetBufferMemoryRequirements2"))
4290 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004291 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004292 }
4293 if (!strcmp(name, "vkGetImageSparseMemoryRequirements2"))
4294 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004295 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004296 }
4297 if (!strcmp(name, "vkGetPhysicalDeviceFeatures2"))
4298 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004299 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004300 }
4301 if (!strcmp(name, "vkGetPhysicalDeviceProperties2"))
4302 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004303 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004304 }
4305 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties2"))
4306 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004307 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004308 }
4309 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties2"))
4310 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004311 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004312 }
4313 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties2"))
4314 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004315 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004316 }
4317 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties2"))
4318 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004319 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004320 }
4321 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties2"))
4322 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004323 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004324 }
4325 if (!strcmp(name, "vkTrimCommandPool"))
4326 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004327 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004328 }
4329 if (!strcmp(name, "vkGetDeviceQueue2"))
4330 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004331 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004332 }
4333 if (!strcmp(name, "vkCreateSamplerYcbcrConversion"))
4334 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004335 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004336 }
4337 if (!strcmp(name, "vkDestroySamplerYcbcrConversion"))
4338 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004339 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004340 }
4341 if (!strcmp(name, "vkCreateDescriptorUpdateTemplate"))
4342 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004343 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004344 }
4345 if (!strcmp(name, "vkDestroyDescriptorUpdateTemplate"))
4346 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004347 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004348 }
4349 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplate"))
4350 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004351 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004352 }
4353 if (!strcmp(name, "vkGetPhysicalDeviceExternalBufferProperties"))
4354 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004355 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004356 }
4357 if (!strcmp(name, "vkGetPhysicalDeviceExternalFenceProperties"))
4358 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004359 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004360 }
4361 if (!strcmp(name, "vkGetPhysicalDeviceExternalSemaphoreProperties"))
4362 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004363 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004364 }
4365 if (!strcmp(name, "vkGetDescriptorSetLayoutSupport"))
4366 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004367 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004368 }
4369#endif
4370#ifdef VK_KHR_surface
4371 if (!strcmp(name, "vkDestroySurfaceKHR"))
4372 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004373 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004374 }
4375 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceSupportKHR"))
4376 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004377 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004378 }
4379 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR"))
4380 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004381 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004382 }
4383 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceFormatsKHR"))
4384 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004385 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004386 }
4387 if (!strcmp(name, "vkGetPhysicalDeviceSurfacePresentModesKHR"))
4388 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004389 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004390 }
4391#endif
4392#ifdef VK_KHR_swapchain
4393 if (!strcmp(name, "vkCreateSwapchainKHR"))
4394 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004395 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004396 }
4397 if (!strcmp(name, "vkDestroySwapchainKHR"))
4398 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004399 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004400 }
4401 if (!strcmp(name, "vkGetSwapchainImagesKHR"))
4402 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004403 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004404 }
4405 if (!strcmp(name, "vkAcquireNextImageKHR"))
4406 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004407 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004408 }
4409 if (!strcmp(name, "vkQueuePresentKHR"))
4410 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004411 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004412 }
4413 if (!strcmp(name, "vkGetDeviceGroupPresentCapabilitiesKHR"))
4414 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004415 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004416 }
4417 if (!strcmp(name, "vkGetDeviceGroupSurfacePresentModesKHR"))
4418 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004419 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004420 }
4421 if (!strcmp(name, "vkGetPhysicalDevicePresentRectanglesKHR"))
4422 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004423 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004424 }
4425 if (!strcmp(name, "vkAcquireNextImage2KHR"))
4426 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004427 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004428 }
4429#endif
4430#ifdef VK_KHR_display
4431 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPropertiesKHR"))
4432 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004433 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004434 }
4435 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR"))
4436 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004437 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004438 }
4439 if (!strcmp(name, "vkGetDisplayPlaneSupportedDisplaysKHR"))
4440 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004441 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004442 }
4443 if (!strcmp(name, "vkGetDisplayModePropertiesKHR"))
4444 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004445 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004446 }
4447 if (!strcmp(name, "vkCreateDisplayModeKHR"))
4448 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004449 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004450 }
4451 if (!strcmp(name, "vkGetDisplayPlaneCapabilitiesKHR"))
4452 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004453 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004454 }
4455 if (!strcmp(name, "vkCreateDisplayPlaneSurfaceKHR"))
4456 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004457 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004458 }
4459#endif
4460#ifdef VK_KHR_display_swapchain
4461 if (!strcmp(name, "vkCreateSharedSwapchainsKHR"))
4462 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004463 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004464 }
4465#endif
4466#ifdef VK_KHR_xlib_surface
4467 if (!strcmp(name, "vkCreateXlibSurfaceKHR"))
4468 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004469 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004470 }
4471 if (!strcmp(name, "vkGetPhysicalDeviceXlibPresentationSupportKHR"))
4472 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004473 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004474 }
4475#endif
4476#ifdef VK_KHR_xcb_surface
4477 if (!strcmp(name, "vkCreateXcbSurfaceKHR"))
4478 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004479 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004480 }
4481 if (!strcmp(name, "vkGetPhysicalDeviceXcbPresentationSupportKHR"))
4482 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004483 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004484 }
4485#endif
4486#ifdef VK_KHR_wayland_surface
4487 if (!strcmp(name, "vkCreateWaylandSurfaceKHR"))
4488 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004489 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004490 }
4491 if (!strcmp(name, "vkGetPhysicalDeviceWaylandPresentationSupportKHR"))
4492 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004493 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004494 }
4495#endif
4496#ifdef VK_KHR_mir_surface
4497 if (!strcmp(name, "vkCreateMirSurfaceKHR"))
4498 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004499 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004500 }
4501 if (!strcmp(name, "vkGetPhysicalDeviceMirPresentationSupportKHR"))
4502 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004503 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004504 }
4505#endif
4506#ifdef VK_KHR_android_surface
4507 if (!strcmp(name, "vkCreateAndroidSurfaceKHR"))
4508 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004509 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004510 }
4511#endif
4512#ifdef VK_KHR_win32_surface
4513 if (!strcmp(name, "vkCreateWin32SurfaceKHR"))
4514 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004515 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004516 }
4517 if (!strcmp(name, "vkGetPhysicalDeviceWin32PresentationSupportKHR"))
4518 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004519 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004520 }
4521#endif
4522#ifdef VK_KHR_get_physical_device_properties2
4523 if (!strcmp(name, "vkGetPhysicalDeviceFeatures2KHR"))
4524 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004525 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004526 }
4527 if (!strcmp(name, "vkGetPhysicalDeviceProperties2KHR"))
4528 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004529 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004530 }
4531 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties2KHR"))
4532 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004533 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004534 }
4535 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties2KHR"))
4536 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004537 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004538 }
4539 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties2KHR"))
4540 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004541 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004542 }
4543 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties2KHR"))
4544 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004545 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004546 }
4547 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR"))
4548 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004549 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004550 }
4551#endif
4552#ifdef VK_KHR_device_group
4553 if (!strcmp(name, "vkGetDeviceGroupPeerMemoryFeaturesKHR"))
4554 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004555 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004556 }
4557 if (!strcmp(name, "vkCmdSetDeviceMaskKHR"))
4558 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004559 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004560 }
4561 if (!strcmp(name, "vkCmdDispatchBaseKHR"))
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_maintenance1
4567 if (!strcmp(name, "vkTrimCommandPoolKHR"))
4568 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004569 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004570 }
4571#endif
4572#ifdef VK_KHR_device_group_creation
4573 if (!strcmp(name, "vkEnumeratePhysicalDeviceGroupsKHR"))
4574 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004575 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004576 }
4577#endif
4578#ifdef VK_KHR_external_memory_capabilities
4579 if (!strcmp(name, "vkGetPhysicalDeviceExternalBufferPropertiesKHR"))
4580 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004581 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004582 }
4583#endif
4584#ifdef VK_KHR_external_memory_win32
4585 if (!strcmp(name, "vkGetMemoryWin32HandleKHR"))
4586 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004587 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004588 }
4589 if (!strcmp(name, "vkGetMemoryWin32HandlePropertiesKHR"))
4590 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004591 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004592 }
4593#endif
4594#ifdef VK_KHR_external_memory_fd
4595 if (!strcmp(name, "vkGetMemoryFdKHR"))
4596 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004597 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004598 }
4599 if (!strcmp(name, "vkGetMemoryFdPropertiesKHR"))
4600 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004601 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004602 }
4603#endif
4604#ifdef VK_KHR_external_semaphore_capabilities
4605 if (!strcmp(name, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR"))
4606 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004607 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004608 }
4609#endif
4610#ifdef VK_KHR_external_semaphore_win32
4611 if (!strcmp(name, "vkImportSemaphoreWin32HandleKHR"))
4612 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004613 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004614 }
4615 if (!strcmp(name, "vkGetSemaphoreWin32HandleKHR"))
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_external_semaphore_fd
4621 if (!strcmp(name, "vkImportSemaphoreFdKHR"))
4622 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004623 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004624 }
4625 if (!strcmp(name, "vkGetSemaphoreFdKHR"))
4626 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004627 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004628 }
4629#endif
4630#ifdef VK_KHR_push_descriptor
4631 if (!strcmp(name, "vkCmdPushDescriptorSetKHR"))
4632 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004633 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004634 }
4635 if (!strcmp(name, "vkCmdPushDescriptorSetWithTemplateKHR"))
4636 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004637 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004638 }
4639#endif
4640#ifdef VK_KHR_descriptor_update_template
4641 if (!strcmp(name, "vkCreateDescriptorUpdateTemplateKHR"))
4642 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004643 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004644 }
4645 if (!strcmp(name, "vkDestroyDescriptorUpdateTemplateKHR"))
4646 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004647 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004648 }
4649 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplateKHR"))
4650 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004651 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004652 }
4653#endif
4654#ifdef VK_KHR_create_renderpass2
4655 if (!strcmp(name, "vkCreateRenderPass2KHR"))
4656 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004657 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004658 }
4659 if (!strcmp(name, "vkCmdBeginRenderPass2KHR"))
4660 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004661 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004662 }
4663 if (!strcmp(name, "vkCmdNextSubpass2KHR"))
4664 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004665 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004666 }
4667 if (!strcmp(name, "vkCmdEndRenderPass2KHR"))
4668 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004669 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004670 }
4671#endif
4672#ifdef VK_KHR_shared_presentable_image
4673 if (!strcmp(name, "vkGetSwapchainStatusKHR"))
4674 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004675 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004676 }
4677#endif
4678#ifdef VK_KHR_external_fence_capabilities
4679 if (!strcmp(name, "vkGetPhysicalDeviceExternalFencePropertiesKHR"))
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_external_fence_win32
4685 if (!strcmp(name, "vkImportFenceWin32HandleKHR"))
4686 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004687 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004688 }
4689 if (!strcmp(name, "vkGetFenceWin32HandleKHR"))
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_external_fence_fd
4695 if (!strcmp(name, "vkImportFenceFdKHR"))
4696 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004697 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004698 }
4699 if (!strcmp(name, "vkGetFenceFdKHR"))
4700 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004701 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004702 }
4703#endif
4704#ifdef VK_KHR_get_surface_capabilities2
4705 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2KHR"))
4706 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004707 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004708 }
4709 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceFormats2KHR"))
4710 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004711 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004712 }
4713#endif
4714#ifdef VK_KHR_get_display_properties2
4715 if (!strcmp(name, "vkGetPhysicalDeviceDisplayProperties2KHR"))
4716 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004717 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004718 }
4719 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR"))
4720 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004721 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004722 }
4723 if (!strcmp(name, "vkGetDisplayModeProperties2KHR"))
4724 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004725 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004726 }
4727 if (!strcmp(name, "vkGetDisplayPlaneCapabilities2KHR"))
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_get_memory_requirements2
4733 if (!strcmp(name, "vkGetImageMemoryRequirements2KHR"))
4734 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004735 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004736 }
4737 if (!strcmp(name, "vkGetBufferMemoryRequirements2KHR"))
4738 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004739 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004740 }
4741 if (!strcmp(name, "vkGetImageSparseMemoryRequirements2KHR"))
4742 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004743 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004744 }
4745#endif
4746#ifdef VK_KHR_sampler_ycbcr_conversion
4747 if (!strcmp(name, "vkCreateSamplerYcbcrConversionKHR"))
4748 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004749 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004750 }
4751 if (!strcmp(name, "vkDestroySamplerYcbcrConversionKHR"))
4752 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004753 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004754 }
4755#endif
4756#ifdef VK_KHR_bind_memory2
4757 if (!strcmp(name, "vkBindBufferMemory2KHR"))
4758 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004759 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004760 }
4761 if (!strcmp(name, "vkBindImageMemory2KHR"))
4762 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004763 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004764 }
4765#endif
4766#ifdef VK_KHR_maintenance3
4767 if (!strcmp(name, "vkGetDescriptorSetLayoutSupportKHR"))
4768 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004769 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004770 }
4771#endif
4772#ifdef VK_KHR_draw_indirect_count
4773 if (!strcmp(name, "vkCmdDrawIndirectCountKHR"))
4774 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004775 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004776 }
4777 if (!strcmp(name, "vkCmdDrawIndexedIndirectCountKHR"))
4778 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004779 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004780 }
4781#endif
Lingfeng Yang808a6312018-11-13 21:06:15 -08004782#ifdef VK_ANDROID_native_buffer
4783 if (!strcmp(name, "vkGetSwapchainGrallocUsageANDROID"))
4784 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004785 return nullptr;
Lingfeng Yang808a6312018-11-13 21:06:15 -08004786 }
4787 if (!strcmp(name, "vkAcquireImageANDROID"))
4788 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004789 return nullptr;
Lingfeng Yang808a6312018-11-13 21:06:15 -08004790 }
4791 if (!strcmp(name, "vkQueueSignalReleaseImageANDROID"))
4792 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004793 return nullptr;
Lingfeng Yang808a6312018-11-13 21:06:15 -08004794 }
4795#endif
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004796#ifdef VK_EXT_debug_report
4797 if (!strcmp(name, "vkCreateDebugReportCallbackEXT"))
4798 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004799 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004800 }
4801 if (!strcmp(name, "vkDestroyDebugReportCallbackEXT"))
4802 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004803 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004804 }
4805 if (!strcmp(name, "vkDebugReportMessageEXT"))
4806 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004807 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004808 }
4809#endif
4810#ifdef VK_EXT_debug_marker
4811 if (!strcmp(name, "vkDebugMarkerSetObjectTagEXT"))
4812 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004813 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004814 }
4815 if (!strcmp(name, "vkDebugMarkerSetObjectNameEXT"))
4816 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004817 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004818 }
4819 if (!strcmp(name, "vkCmdDebugMarkerBeginEXT"))
4820 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004821 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004822 }
4823 if (!strcmp(name, "vkCmdDebugMarkerEndEXT"))
4824 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004825 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004826 }
4827 if (!strcmp(name, "vkCmdDebugMarkerInsertEXT"))
4828 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004829 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004830 }
4831#endif
4832#ifdef VK_AMD_draw_indirect_count
4833 if (!strcmp(name, "vkCmdDrawIndirectCountAMD"))
4834 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004835 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004836 }
4837 if (!strcmp(name, "vkCmdDrawIndexedIndirectCountAMD"))
4838 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004839 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004840 }
4841#endif
4842#ifdef VK_AMD_shader_info
4843 if (!strcmp(name, "vkGetShaderInfoAMD"))
4844 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004845 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004846 }
4847#endif
4848#ifdef VK_NV_external_memory_capabilities
4849 if (!strcmp(name, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV"))
4850 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004851 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004852 }
4853#endif
4854#ifdef VK_NV_external_memory_win32
4855 if (!strcmp(name, "vkGetMemoryWin32HandleNV"))
4856 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004857 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004858 }
4859#endif
4860#ifdef VK_NN_vi_surface
4861 if (!strcmp(name, "vkCreateViSurfaceNN"))
4862 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004863 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004864 }
4865#endif
4866#ifdef VK_EXT_conditional_rendering
4867 if (!strcmp(name, "vkCmdBeginConditionalRenderingEXT"))
4868 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004869 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004870 }
4871 if (!strcmp(name, "vkCmdEndConditionalRenderingEXT"))
4872 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004873 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004874 }
4875#endif
4876#ifdef VK_NVX_device_generated_commands
4877 if (!strcmp(name, "vkCmdProcessCommandsNVX"))
4878 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004879 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004880 }
4881 if (!strcmp(name, "vkCmdReserveSpaceForCommandsNVX"))
4882 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004883 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004884 }
4885 if (!strcmp(name, "vkCreateIndirectCommandsLayoutNVX"))
4886 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004887 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004888 }
4889 if (!strcmp(name, "vkDestroyIndirectCommandsLayoutNVX"))
4890 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004891 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004892 }
4893 if (!strcmp(name, "vkCreateObjectTableNVX"))
4894 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004895 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004896 }
4897 if (!strcmp(name, "vkDestroyObjectTableNVX"))
4898 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004899 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004900 }
4901 if (!strcmp(name, "vkRegisterObjectsNVX"))
4902 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004903 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004904 }
4905 if (!strcmp(name, "vkUnregisterObjectsNVX"))
4906 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004907 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004908 }
4909 if (!strcmp(name, "vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX"))
4910 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004911 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004912 }
4913#endif
4914#ifdef VK_NV_clip_space_w_scaling
4915 if (!strcmp(name, "vkCmdSetViewportWScalingNV"))
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_direct_mode_display
4921 if (!strcmp(name, "vkReleaseDisplayEXT"))
4922 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004923 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004924 }
4925#endif
4926#ifdef VK_EXT_acquire_xlib_display
4927 if (!strcmp(name, "vkAcquireXlibDisplayEXT"))
4928 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004929 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004930 }
4931 if (!strcmp(name, "vkGetRandROutputDisplayEXT"))
4932 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004933 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004934 }
4935#endif
4936#ifdef VK_EXT_display_surface_counter
4937 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2EXT"))
4938 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004939 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004940 }
4941#endif
4942#ifdef VK_EXT_display_control
4943 if (!strcmp(name, "vkDisplayPowerControlEXT"))
4944 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004945 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004946 }
4947 if (!strcmp(name, "vkRegisterDeviceEventEXT"))
4948 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004949 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004950 }
4951 if (!strcmp(name, "vkRegisterDisplayEventEXT"))
4952 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004953 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004954 }
4955 if (!strcmp(name, "vkGetSwapchainCounterEXT"))
4956 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004957 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004958 }
4959#endif
4960#ifdef VK_GOOGLE_display_timing
4961 if (!strcmp(name, "vkGetRefreshCycleDurationGOOGLE"))
4962 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004963 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004964 }
4965 if (!strcmp(name, "vkGetPastPresentationTimingGOOGLE"))
4966 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004967 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004968 }
4969#endif
4970#ifdef VK_EXT_discard_rectangles
4971 if (!strcmp(name, "vkCmdSetDiscardRectangleEXT"))
4972 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004973 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004974 }
4975#endif
4976#ifdef VK_EXT_hdr_metadata
4977 if (!strcmp(name, "vkSetHdrMetadataEXT"))
4978 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004979 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004980 }
4981#endif
4982#ifdef VK_MVK_ios_surface
4983 if (!strcmp(name, "vkCreateIOSSurfaceMVK"))
4984 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004985 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004986 }
4987#endif
4988#ifdef VK_MVK_macos_surface
4989 if (!strcmp(name, "vkCreateMacOSSurfaceMVK"))
4990 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004991 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004992 }
4993#endif
4994#ifdef VK_EXT_debug_utils
4995 if (!strcmp(name, "vkSetDebugUtilsObjectNameEXT"))
4996 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004997 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004998 }
4999 if (!strcmp(name, "vkSetDebugUtilsObjectTagEXT"))
5000 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005001 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005002 }
5003 if (!strcmp(name, "vkQueueBeginDebugUtilsLabelEXT"))
5004 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005005 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005006 }
5007 if (!strcmp(name, "vkQueueEndDebugUtilsLabelEXT"))
5008 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005009 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005010 }
5011 if (!strcmp(name, "vkQueueInsertDebugUtilsLabelEXT"))
5012 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005013 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005014 }
5015 if (!strcmp(name, "vkCmdBeginDebugUtilsLabelEXT"))
5016 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005017 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005018 }
5019 if (!strcmp(name, "vkCmdEndDebugUtilsLabelEXT"))
5020 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005021 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005022 }
5023 if (!strcmp(name, "vkCmdInsertDebugUtilsLabelEXT"))
5024 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005025 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005026 }
5027 if (!strcmp(name, "vkCreateDebugUtilsMessengerEXT"))
5028 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005029 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005030 }
5031 if (!strcmp(name, "vkDestroyDebugUtilsMessengerEXT"))
5032 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005033 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005034 }
5035 if (!strcmp(name, "vkSubmitDebugUtilsMessageEXT"))
5036 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005037 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005038 }
5039#endif
5040#ifdef VK_ANDROID_external_memory_android_hardware_buffer
5041 if (!strcmp(name, "vkGetAndroidHardwareBufferPropertiesANDROID"))
5042 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005043 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005044 }
5045 if (!strcmp(name, "vkGetMemoryAndroidHardwareBufferANDROID"))
5046 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005047 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005048 }
5049#endif
5050#ifdef VK_EXT_sample_locations
5051 if (!strcmp(name, "vkCmdSetSampleLocationsEXT"))
5052 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005053 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005054 }
5055 if (!strcmp(name, "vkGetPhysicalDeviceMultisamplePropertiesEXT"))
5056 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005057 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005058 }
5059#endif
5060#ifdef VK_EXT_validation_cache
5061 if (!strcmp(name, "vkCreateValidationCacheEXT"))
5062 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005063 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005064 }
5065 if (!strcmp(name, "vkDestroyValidationCacheEXT"))
5066 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005067 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005068 }
5069 if (!strcmp(name, "vkMergeValidationCachesEXT"))
5070 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005071 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005072 }
5073 if (!strcmp(name, "vkGetValidationCacheDataEXT"))
5074 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005075 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005076 }
5077#endif
5078#ifdef VK_EXT_external_memory_host
5079 if (!strcmp(name, "vkGetMemoryHostPointerPropertiesEXT"))
5080 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005081 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005082 }
5083#endif
5084#ifdef VK_AMD_buffer_marker
5085 if (!strcmp(name, "vkCmdWriteBufferMarkerAMD"))
5086 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005087 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005088 }
5089#endif
5090#ifdef VK_NV_device_diagnostic_checkpoints
5091 if (!strcmp(name, "vkCmdSetCheckpointNV"))
5092 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005093 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005094 }
5095 if (!strcmp(name, "vkGetQueueCheckpointDataNV"))
5096 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005097 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005098 }
5099#endif
Lingfeng Yang5c63afd2018-12-22 01:21:14 -08005100#ifdef VK_GOOGLE_address_space
5101 if (!strcmp(name, "vkMapMemoryIntoAddressSpaceGOOGLE"))
5102 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005103 return nullptr;
5104 }
5105#endif
Lingfeng Yangae7e1b32019-02-19 14:07:39 -08005106#ifdef VK_GOOGLE_color_buffer
5107 if (!strcmp(name, "vkRegisterImageColorBufferGOOGLE"))
5108 {
5109 return nullptr;
5110 }
5111 if (!strcmp(name, "vkRegisterBufferColorBufferGOOGLE"))
5112 {
5113 return nullptr;
5114 }
5115#endif
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005116 return nullptr;
5117}
5118void* goldfish_vulkan_get_instance_proc_address(VkInstance instance, const char* name){
5119 auto resources = ResourceTracker::get();
5120 bool has1_1OrHigher = resources->getApiVersionFromInstance(instance) >= VK_API_VERSION_1_1;
5121#ifdef VK_VERSION_1_0
5122 if (!strcmp(name, "vkCreateInstance"))
5123 {
5124 return (void*)entry_vkCreateInstance;
5125 }
5126 if (!strcmp(name, "vkDestroyInstance"))
5127 {
5128 return (void*)entry_vkDestroyInstance;
5129 }
5130 if (!strcmp(name, "vkEnumeratePhysicalDevices"))
5131 {
5132 return (void*)entry_vkEnumeratePhysicalDevices;
5133 }
5134 if (!strcmp(name, "vkGetPhysicalDeviceFeatures"))
5135 {
5136 return (void*)entry_vkGetPhysicalDeviceFeatures;
5137 }
5138 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties"))
5139 {
5140 return (void*)entry_vkGetPhysicalDeviceFormatProperties;
5141 }
5142 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties"))
5143 {
5144 return (void*)entry_vkGetPhysicalDeviceImageFormatProperties;
5145 }
5146 if (!strcmp(name, "vkGetPhysicalDeviceProperties"))
5147 {
5148 return (void*)entry_vkGetPhysicalDeviceProperties;
5149 }
5150 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties"))
5151 {
5152 return (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties;
5153 }
5154 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties"))
5155 {
5156 return (void*)entry_vkGetPhysicalDeviceMemoryProperties;
5157 }
5158 if (!strcmp(name, "vkGetInstanceProcAddr"))
5159 {
5160 return (void*)entry_vkGetInstanceProcAddr;
5161 }
5162 if (!strcmp(name, "vkGetDeviceProcAddr"))
5163 {
5164 return (void*)entry_vkGetDeviceProcAddr;
5165 }
5166 if (!strcmp(name, "vkCreateDevice"))
5167 {
5168 return (void*)entry_vkCreateDevice;
5169 }
5170 if (!strcmp(name, "vkDestroyDevice"))
5171 {
5172 return (void*)entry_vkDestroyDevice;
5173 }
5174 if (!strcmp(name, "vkEnumerateInstanceExtensionProperties"))
5175 {
5176 return (void*)entry_vkEnumerateInstanceExtensionProperties;
5177 }
5178 if (!strcmp(name, "vkEnumerateDeviceExtensionProperties"))
5179 {
5180 return (void*)entry_vkEnumerateDeviceExtensionProperties;
5181 }
5182 if (!strcmp(name, "vkEnumerateInstanceLayerProperties"))
5183 {
5184 return (void*)entry_vkEnumerateInstanceLayerProperties;
5185 }
5186 if (!strcmp(name, "vkEnumerateDeviceLayerProperties"))
5187 {
5188 return (void*)entry_vkEnumerateDeviceLayerProperties;
5189 }
5190 if (!strcmp(name, "vkGetDeviceQueue"))
5191 {
5192 return (void*)entry_vkGetDeviceQueue;
5193 }
5194 if (!strcmp(name, "vkQueueSubmit"))
5195 {
5196 return (void*)entry_vkQueueSubmit;
5197 }
5198 if (!strcmp(name, "vkQueueWaitIdle"))
5199 {
5200 return (void*)entry_vkQueueWaitIdle;
5201 }
5202 if (!strcmp(name, "vkDeviceWaitIdle"))
5203 {
5204 return (void*)entry_vkDeviceWaitIdle;
5205 }
5206 if (!strcmp(name, "vkAllocateMemory"))
5207 {
5208 return (void*)entry_vkAllocateMemory;
5209 }
5210 if (!strcmp(name, "vkFreeMemory"))
5211 {
5212 return (void*)entry_vkFreeMemory;
5213 }
5214 if (!strcmp(name, "vkMapMemory"))
5215 {
5216 return (void*)entry_vkMapMemory;
5217 }
5218 if (!strcmp(name, "vkUnmapMemory"))
5219 {
5220 return (void*)entry_vkUnmapMemory;
5221 }
5222 if (!strcmp(name, "vkFlushMappedMemoryRanges"))
5223 {
5224 return (void*)entry_vkFlushMappedMemoryRanges;
5225 }
5226 if (!strcmp(name, "vkInvalidateMappedMemoryRanges"))
5227 {
5228 return (void*)entry_vkInvalidateMappedMemoryRanges;
5229 }
5230 if (!strcmp(name, "vkGetDeviceMemoryCommitment"))
5231 {
5232 return (void*)entry_vkGetDeviceMemoryCommitment;
5233 }
5234 if (!strcmp(name, "vkBindBufferMemory"))
5235 {
5236 return (void*)entry_vkBindBufferMemory;
5237 }
5238 if (!strcmp(name, "vkBindImageMemory"))
5239 {
5240 return (void*)entry_vkBindImageMemory;
5241 }
5242 if (!strcmp(name, "vkGetBufferMemoryRequirements"))
5243 {
5244 return (void*)entry_vkGetBufferMemoryRequirements;
5245 }
5246 if (!strcmp(name, "vkGetImageMemoryRequirements"))
5247 {
5248 return (void*)entry_vkGetImageMemoryRequirements;
5249 }
5250 if (!strcmp(name, "vkGetImageSparseMemoryRequirements"))
5251 {
5252 return (void*)entry_vkGetImageSparseMemoryRequirements;
5253 }
5254 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties"))
5255 {
5256 return (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties;
5257 }
5258 if (!strcmp(name, "vkQueueBindSparse"))
5259 {
5260 return (void*)entry_vkQueueBindSparse;
5261 }
5262 if (!strcmp(name, "vkCreateFence"))
5263 {
5264 return (void*)entry_vkCreateFence;
5265 }
5266 if (!strcmp(name, "vkDestroyFence"))
5267 {
5268 return (void*)entry_vkDestroyFence;
5269 }
5270 if (!strcmp(name, "vkResetFences"))
5271 {
5272 return (void*)entry_vkResetFences;
5273 }
5274 if (!strcmp(name, "vkGetFenceStatus"))
5275 {
5276 return (void*)entry_vkGetFenceStatus;
5277 }
5278 if (!strcmp(name, "vkWaitForFences"))
5279 {
5280 return (void*)entry_vkWaitForFences;
5281 }
5282 if (!strcmp(name, "vkCreateSemaphore"))
5283 {
5284 return (void*)entry_vkCreateSemaphore;
5285 }
5286 if (!strcmp(name, "vkDestroySemaphore"))
5287 {
5288 return (void*)entry_vkDestroySemaphore;
5289 }
5290 if (!strcmp(name, "vkCreateEvent"))
5291 {
5292 return (void*)entry_vkCreateEvent;
5293 }
5294 if (!strcmp(name, "vkDestroyEvent"))
5295 {
5296 return (void*)entry_vkDestroyEvent;
5297 }
5298 if (!strcmp(name, "vkGetEventStatus"))
5299 {
5300 return (void*)entry_vkGetEventStatus;
5301 }
5302 if (!strcmp(name, "vkSetEvent"))
5303 {
5304 return (void*)entry_vkSetEvent;
5305 }
5306 if (!strcmp(name, "vkResetEvent"))
5307 {
5308 return (void*)entry_vkResetEvent;
5309 }
5310 if (!strcmp(name, "vkCreateQueryPool"))
5311 {
5312 return (void*)entry_vkCreateQueryPool;
5313 }
5314 if (!strcmp(name, "vkDestroyQueryPool"))
5315 {
5316 return (void*)entry_vkDestroyQueryPool;
5317 }
5318 if (!strcmp(name, "vkGetQueryPoolResults"))
5319 {
5320 return (void*)entry_vkGetQueryPoolResults;
5321 }
5322 if (!strcmp(name, "vkCreateBuffer"))
5323 {
5324 return (void*)entry_vkCreateBuffer;
5325 }
5326 if (!strcmp(name, "vkDestroyBuffer"))
5327 {
5328 return (void*)entry_vkDestroyBuffer;
5329 }
5330 if (!strcmp(name, "vkCreateBufferView"))
5331 {
5332 return (void*)entry_vkCreateBufferView;
5333 }
5334 if (!strcmp(name, "vkDestroyBufferView"))
5335 {
5336 return (void*)entry_vkDestroyBufferView;
5337 }
5338 if (!strcmp(name, "vkCreateImage"))
5339 {
5340 return (void*)entry_vkCreateImage;
5341 }
5342 if (!strcmp(name, "vkDestroyImage"))
5343 {
5344 return (void*)entry_vkDestroyImage;
5345 }
5346 if (!strcmp(name, "vkGetImageSubresourceLayout"))
5347 {
5348 return (void*)entry_vkGetImageSubresourceLayout;
5349 }
5350 if (!strcmp(name, "vkCreateImageView"))
5351 {
5352 return (void*)entry_vkCreateImageView;
5353 }
5354 if (!strcmp(name, "vkDestroyImageView"))
5355 {
5356 return (void*)entry_vkDestroyImageView;
5357 }
5358 if (!strcmp(name, "vkCreateShaderModule"))
5359 {
5360 return (void*)entry_vkCreateShaderModule;
5361 }
5362 if (!strcmp(name, "vkDestroyShaderModule"))
5363 {
5364 return (void*)entry_vkDestroyShaderModule;
5365 }
5366 if (!strcmp(name, "vkCreatePipelineCache"))
5367 {
5368 return (void*)entry_vkCreatePipelineCache;
5369 }
5370 if (!strcmp(name, "vkDestroyPipelineCache"))
5371 {
5372 return (void*)entry_vkDestroyPipelineCache;
5373 }
5374 if (!strcmp(name, "vkGetPipelineCacheData"))
5375 {
5376 return (void*)entry_vkGetPipelineCacheData;
5377 }
5378 if (!strcmp(name, "vkMergePipelineCaches"))
5379 {
5380 return (void*)entry_vkMergePipelineCaches;
5381 }
5382 if (!strcmp(name, "vkCreateGraphicsPipelines"))
5383 {
5384 return (void*)entry_vkCreateGraphicsPipelines;
5385 }
5386 if (!strcmp(name, "vkCreateComputePipelines"))
5387 {
5388 return (void*)entry_vkCreateComputePipelines;
5389 }
5390 if (!strcmp(name, "vkDestroyPipeline"))
5391 {
5392 return (void*)entry_vkDestroyPipeline;
5393 }
5394 if (!strcmp(name, "vkCreatePipelineLayout"))
5395 {
5396 return (void*)entry_vkCreatePipelineLayout;
5397 }
5398 if (!strcmp(name, "vkDestroyPipelineLayout"))
5399 {
5400 return (void*)entry_vkDestroyPipelineLayout;
5401 }
5402 if (!strcmp(name, "vkCreateSampler"))
5403 {
5404 return (void*)entry_vkCreateSampler;
5405 }
5406 if (!strcmp(name, "vkDestroySampler"))
5407 {
5408 return (void*)entry_vkDestroySampler;
5409 }
5410 if (!strcmp(name, "vkCreateDescriptorSetLayout"))
5411 {
5412 return (void*)entry_vkCreateDescriptorSetLayout;
5413 }
5414 if (!strcmp(name, "vkDestroyDescriptorSetLayout"))
5415 {
5416 return (void*)entry_vkDestroyDescriptorSetLayout;
5417 }
5418 if (!strcmp(name, "vkCreateDescriptorPool"))
5419 {
5420 return (void*)entry_vkCreateDescriptorPool;
5421 }
5422 if (!strcmp(name, "vkDestroyDescriptorPool"))
5423 {
5424 return (void*)entry_vkDestroyDescriptorPool;
5425 }
5426 if (!strcmp(name, "vkResetDescriptorPool"))
5427 {
5428 return (void*)entry_vkResetDescriptorPool;
5429 }
5430 if (!strcmp(name, "vkAllocateDescriptorSets"))
5431 {
5432 return (void*)entry_vkAllocateDescriptorSets;
5433 }
5434 if (!strcmp(name, "vkFreeDescriptorSets"))
5435 {
5436 return (void*)entry_vkFreeDescriptorSets;
5437 }
5438 if (!strcmp(name, "vkUpdateDescriptorSets"))
5439 {
5440 return (void*)entry_vkUpdateDescriptorSets;
5441 }
5442 if (!strcmp(name, "vkCreateFramebuffer"))
5443 {
5444 return (void*)entry_vkCreateFramebuffer;
5445 }
5446 if (!strcmp(name, "vkDestroyFramebuffer"))
5447 {
5448 return (void*)entry_vkDestroyFramebuffer;
5449 }
5450 if (!strcmp(name, "vkCreateRenderPass"))
5451 {
5452 return (void*)entry_vkCreateRenderPass;
5453 }
5454 if (!strcmp(name, "vkDestroyRenderPass"))
5455 {
5456 return (void*)entry_vkDestroyRenderPass;
5457 }
5458 if (!strcmp(name, "vkGetRenderAreaGranularity"))
5459 {
5460 return (void*)entry_vkGetRenderAreaGranularity;
5461 }
5462 if (!strcmp(name, "vkCreateCommandPool"))
5463 {
5464 return (void*)entry_vkCreateCommandPool;
5465 }
5466 if (!strcmp(name, "vkDestroyCommandPool"))
5467 {
5468 return (void*)entry_vkDestroyCommandPool;
5469 }
5470 if (!strcmp(name, "vkResetCommandPool"))
5471 {
5472 return (void*)entry_vkResetCommandPool;
5473 }
5474 if (!strcmp(name, "vkAllocateCommandBuffers"))
5475 {
5476 return (void*)entry_vkAllocateCommandBuffers;
5477 }
5478 if (!strcmp(name, "vkFreeCommandBuffers"))
5479 {
5480 return (void*)entry_vkFreeCommandBuffers;
5481 }
5482 if (!strcmp(name, "vkBeginCommandBuffer"))
5483 {
5484 return (void*)entry_vkBeginCommandBuffer;
5485 }
5486 if (!strcmp(name, "vkEndCommandBuffer"))
5487 {
5488 return (void*)entry_vkEndCommandBuffer;
5489 }
5490 if (!strcmp(name, "vkResetCommandBuffer"))
5491 {
5492 return (void*)entry_vkResetCommandBuffer;
5493 }
5494 if (!strcmp(name, "vkCmdBindPipeline"))
5495 {
5496 return (void*)entry_vkCmdBindPipeline;
5497 }
5498 if (!strcmp(name, "vkCmdSetViewport"))
5499 {
5500 return (void*)entry_vkCmdSetViewport;
5501 }
5502 if (!strcmp(name, "vkCmdSetScissor"))
5503 {
5504 return (void*)entry_vkCmdSetScissor;
5505 }
5506 if (!strcmp(name, "vkCmdSetLineWidth"))
5507 {
5508 return (void*)entry_vkCmdSetLineWidth;
5509 }
5510 if (!strcmp(name, "vkCmdSetDepthBias"))
5511 {
5512 return (void*)entry_vkCmdSetDepthBias;
5513 }
5514 if (!strcmp(name, "vkCmdSetBlendConstants"))
5515 {
5516 return (void*)entry_vkCmdSetBlendConstants;
5517 }
5518 if (!strcmp(name, "vkCmdSetDepthBounds"))
5519 {
5520 return (void*)entry_vkCmdSetDepthBounds;
5521 }
5522 if (!strcmp(name, "vkCmdSetStencilCompareMask"))
5523 {
5524 return (void*)entry_vkCmdSetStencilCompareMask;
5525 }
5526 if (!strcmp(name, "vkCmdSetStencilWriteMask"))
5527 {
5528 return (void*)entry_vkCmdSetStencilWriteMask;
5529 }
5530 if (!strcmp(name, "vkCmdSetStencilReference"))
5531 {
5532 return (void*)entry_vkCmdSetStencilReference;
5533 }
5534 if (!strcmp(name, "vkCmdBindDescriptorSets"))
5535 {
5536 return (void*)entry_vkCmdBindDescriptorSets;
5537 }
5538 if (!strcmp(name, "vkCmdBindIndexBuffer"))
5539 {
5540 return (void*)entry_vkCmdBindIndexBuffer;
5541 }
5542 if (!strcmp(name, "vkCmdBindVertexBuffers"))
5543 {
5544 return (void*)entry_vkCmdBindVertexBuffers;
5545 }
5546 if (!strcmp(name, "vkCmdDraw"))
5547 {
5548 return (void*)entry_vkCmdDraw;
5549 }
5550 if (!strcmp(name, "vkCmdDrawIndexed"))
5551 {
5552 return (void*)entry_vkCmdDrawIndexed;
5553 }
5554 if (!strcmp(name, "vkCmdDrawIndirect"))
5555 {
5556 return (void*)entry_vkCmdDrawIndirect;
5557 }
5558 if (!strcmp(name, "vkCmdDrawIndexedIndirect"))
5559 {
5560 return (void*)entry_vkCmdDrawIndexedIndirect;
5561 }
5562 if (!strcmp(name, "vkCmdDispatch"))
5563 {
5564 return (void*)entry_vkCmdDispatch;
5565 }
5566 if (!strcmp(name, "vkCmdDispatchIndirect"))
5567 {
5568 return (void*)entry_vkCmdDispatchIndirect;
5569 }
5570 if (!strcmp(name, "vkCmdCopyBuffer"))
5571 {
5572 return (void*)entry_vkCmdCopyBuffer;
5573 }
5574 if (!strcmp(name, "vkCmdCopyImage"))
5575 {
5576 return (void*)entry_vkCmdCopyImage;
5577 }
5578 if (!strcmp(name, "vkCmdBlitImage"))
5579 {
5580 return (void*)entry_vkCmdBlitImage;
5581 }
5582 if (!strcmp(name, "vkCmdCopyBufferToImage"))
5583 {
5584 return (void*)entry_vkCmdCopyBufferToImage;
5585 }
5586 if (!strcmp(name, "vkCmdCopyImageToBuffer"))
5587 {
5588 return (void*)entry_vkCmdCopyImageToBuffer;
5589 }
5590 if (!strcmp(name, "vkCmdUpdateBuffer"))
5591 {
5592 return (void*)entry_vkCmdUpdateBuffer;
5593 }
5594 if (!strcmp(name, "vkCmdFillBuffer"))
5595 {
5596 return (void*)entry_vkCmdFillBuffer;
5597 }
5598 if (!strcmp(name, "vkCmdClearColorImage"))
5599 {
5600 return (void*)entry_vkCmdClearColorImage;
5601 }
5602 if (!strcmp(name, "vkCmdClearDepthStencilImage"))
5603 {
5604 return (void*)entry_vkCmdClearDepthStencilImage;
5605 }
5606 if (!strcmp(name, "vkCmdClearAttachments"))
5607 {
5608 return (void*)entry_vkCmdClearAttachments;
5609 }
5610 if (!strcmp(name, "vkCmdResolveImage"))
5611 {
5612 return (void*)entry_vkCmdResolveImage;
5613 }
5614 if (!strcmp(name, "vkCmdSetEvent"))
5615 {
5616 return (void*)entry_vkCmdSetEvent;
5617 }
5618 if (!strcmp(name, "vkCmdResetEvent"))
5619 {
5620 return (void*)entry_vkCmdResetEvent;
5621 }
5622 if (!strcmp(name, "vkCmdWaitEvents"))
5623 {
5624 return (void*)entry_vkCmdWaitEvents;
5625 }
5626 if (!strcmp(name, "vkCmdPipelineBarrier"))
5627 {
5628 return (void*)entry_vkCmdPipelineBarrier;
5629 }
5630 if (!strcmp(name, "vkCmdBeginQuery"))
5631 {
5632 return (void*)entry_vkCmdBeginQuery;
5633 }
5634 if (!strcmp(name, "vkCmdEndQuery"))
5635 {
5636 return (void*)entry_vkCmdEndQuery;
5637 }
5638 if (!strcmp(name, "vkCmdResetQueryPool"))
5639 {
5640 return (void*)entry_vkCmdResetQueryPool;
5641 }
5642 if (!strcmp(name, "vkCmdWriteTimestamp"))
5643 {
5644 return (void*)entry_vkCmdWriteTimestamp;
5645 }
5646 if (!strcmp(name, "vkCmdCopyQueryPoolResults"))
5647 {
5648 return (void*)entry_vkCmdCopyQueryPoolResults;
5649 }
5650 if (!strcmp(name, "vkCmdPushConstants"))
5651 {
5652 return (void*)entry_vkCmdPushConstants;
5653 }
5654 if (!strcmp(name, "vkCmdBeginRenderPass"))
5655 {
5656 return (void*)entry_vkCmdBeginRenderPass;
5657 }
5658 if (!strcmp(name, "vkCmdNextSubpass"))
5659 {
5660 return (void*)entry_vkCmdNextSubpass;
5661 }
5662 if (!strcmp(name, "vkCmdEndRenderPass"))
5663 {
5664 return (void*)entry_vkCmdEndRenderPass;
5665 }
5666 if (!strcmp(name, "vkCmdExecuteCommands"))
5667 {
5668 return (void*)entry_vkCmdExecuteCommands;
5669 }
5670#endif
5671#ifdef VK_VERSION_1_1
5672 if (!strcmp(name, "vkEnumerateInstanceVersion"))
5673 {
5674 return has1_1OrHigher ? (void*)entry_vkEnumerateInstanceVersion : nullptr;
5675 }
5676 if (!strcmp(name, "vkBindBufferMemory2"))
5677 {
5678 return has1_1OrHigher ? (void*)entry_vkBindBufferMemory2 : nullptr;
5679 }
5680 if (!strcmp(name, "vkBindImageMemory2"))
5681 {
5682 return has1_1OrHigher ? (void*)entry_vkBindImageMemory2 : nullptr;
5683 }
5684 if (!strcmp(name, "vkGetDeviceGroupPeerMemoryFeatures"))
5685 {
5686 return has1_1OrHigher ? (void*)entry_vkGetDeviceGroupPeerMemoryFeatures : nullptr;
5687 }
5688 if (!strcmp(name, "vkCmdSetDeviceMask"))
5689 {
5690 return has1_1OrHigher ? (void*)entry_vkCmdSetDeviceMask : nullptr;
5691 }
5692 if (!strcmp(name, "vkCmdDispatchBase"))
5693 {
5694 return has1_1OrHigher ? (void*)entry_vkCmdDispatchBase : nullptr;
5695 }
5696 if (!strcmp(name, "vkEnumeratePhysicalDeviceGroups"))
5697 {
5698 return nullptr;
5699 }
5700 if (!strcmp(name, "vkGetImageMemoryRequirements2"))
5701 {
5702 return has1_1OrHigher ? (void*)entry_vkGetImageMemoryRequirements2 : nullptr;
5703 }
5704 if (!strcmp(name, "vkGetBufferMemoryRequirements2"))
5705 {
5706 return has1_1OrHigher ? (void*)entry_vkGetBufferMemoryRequirements2 : nullptr;
5707 }
5708 if (!strcmp(name, "vkGetImageSparseMemoryRequirements2"))
5709 {
5710 return has1_1OrHigher ? (void*)entry_vkGetImageSparseMemoryRequirements2 : nullptr;
5711 }
5712 if (!strcmp(name, "vkGetPhysicalDeviceFeatures2"))
5713 {
5714 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceFeatures2 : nullptr;
5715 }
5716 if (!strcmp(name, "vkGetPhysicalDeviceProperties2"))
5717 {
5718 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceProperties2 : nullptr;
5719 }
5720 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties2"))
5721 {
5722 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceFormatProperties2 : nullptr;
5723 }
5724 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties2"))
5725 {
5726 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceImageFormatProperties2 : nullptr;
5727 }
5728 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties2"))
5729 {
5730 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties2 : nullptr;
5731 }
5732 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties2"))
5733 {
5734 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceMemoryProperties2 : nullptr;
5735 }
5736 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties2"))
5737 {
5738 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties2 : nullptr;
5739 }
5740 if (!strcmp(name, "vkTrimCommandPool"))
5741 {
5742 return has1_1OrHigher ? (void*)entry_vkTrimCommandPool : nullptr;
5743 }
5744 if (!strcmp(name, "vkGetDeviceQueue2"))
5745 {
5746 return has1_1OrHigher ? (void*)entry_vkGetDeviceQueue2 : nullptr;
5747 }
5748 if (!strcmp(name, "vkCreateSamplerYcbcrConversion"))
5749 {
5750 return has1_1OrHigher ? (void*)entry_vkCreateSamplerYcbcrConversion : nullptr;
5751 }
5752 if (!strcmp(name, "vkDestroySamplerYcbcrConversion"))
5753 {
5754 return has1_1OrHigher ? (void*)entry_vkDestroySamplerYcbcrConversion : nullptr;
5755 }
5756 if (!strcmp(name, "vkCreateDescriptorUpdateTemplate"))
5757 {
5758 return has1_1OrHigher ? (void*)entry_vkCreateDescriptorUpdateTemplate : nullptr;
5759 }
5760 if (!strcmp(name, "vkDestroyDescriptorUpdateTemplate"))
5761 {
5762 return has1_1OrHigher ? (void*)entry_vkDestroyDescriptorUpdateTemplate : nullptr;
5763 }
5764 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplate"))
5765 {
5766 return has1_1OrHigher ? (void*)entry_vkUpdateDescriptorSetWithTemplate : nullptr;
5767 }
5768 if (!strcmp(name, "vkGetPhysicalDeviceExternalBufferProperties"))
5769 {
5770 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceExternalBufferProperties : nullptr;
5771 }
5772 if (!strcmp(name, "vkGetPhysicalDeviceExternalFenceProperties"))
5773 {
5774 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceExternalFenceProperties : nullptr;
5775 }
5776 if (!strcmp(name, "vkGetPhysicalDeviceExternalSemaphoreProperties"))
5777 {
5778 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceExternalSemaphoreProperties : nullptr;
5779 }
5780 if (!strcmp(name, "vkGetDescriptorSetLayoutSupport"))
5781 {
5782 return has1_1OrHigher ? (void*)entry_vkGetDescriptorSetLayoutSupport : nullptr;
5783 }
5784#endif
5785#ifdef VK_KHR_surface
5786 if (!strcmp(name, "vkDestroySurfaceKHR"))
5787 {
5788 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_surface");
5789 return hasExt ? (void*)entry_vkDestroySurfaceKHR : nullptr;
5790 }
5791 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceSupportKHR"))
5792 {
5793 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_surface");
5794 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceSupportKHR : nullptr;
5795 }
5796 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR"))
5797 {
5798 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_surface");
5799 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceCapabilitiesKHR : nullptr;
5800 }
5801 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceFormatsKHR"))
5802 {
5803 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_surface");
5804 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceFormatsKHR : nullptr;
5805 }
5806 if (!strcmp(name, "vkGetPhysicalDeviceSurfacePresentModesKHR"))
5807 {
5808 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_surface");
5809 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfacePresentModesKHR : nullptr;
5810 }
5811#endif
5812#ifdef VK_KHR_swapchain
5813 if (!strcmp(name, "vkCreateSwapchainKHR"))
5814 {
5815 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5816 return hasExt ? (void*)entry_vkCreateSwapchainKHR : nullptr;
5817 }
5818 if (!strcmp(name, "vkDestroySwapchainKHR"))
5819 {
5820 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5821 return hasExt ? (void*)entry_vkDestroySwapchainKHR : nullptr;
5822 }
5823 if (!strcmp(name, "vkGetSwapchainImagesKHR"))
5824 {
5825 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5826 return hasExt ? (void*)entry_vkGetSwapchainImagesKHR : nullptr;
5827 }
5828 if (!strcmp(name, "vkAcquireNextImageKHR"))
5829 {
5830 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5831 return hasExt ? (void*)entry_vkAcquireNextImageKHR : nullptr;
5832 }
5833 if (!strcmp(name, "vkQueuePresentKHR"))
5834 {
5835 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5836 return hasExt ? (void*)entry_vkQueuePresentKHR : nullptr;
5837 }
5838 if (!strcmp(name, "vkGetDeviceGroupPresentCapabilitiesKHR"))
5839 {
5840 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5841 return hasExt ? (void*)entry_vkGetDeviceGroupPresentCapabilitiesKHR : nullptr;
5842 }
5843 if (!strcmp(name, "vkGetDeviceGroupSurfacePresentModesKHR"))
5844 {
5845 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5846 return hasExt ? (void*)entry_vkGetDeviceGroupSurfacePresentModesKHR : nullptr;
5847 }
5848 if (!strcmp(name, "vkGetPhysicalDevicePresentRectanglesKHR"))
5849 {
5850 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5851 return hasExt ? (void*)entry_vkGetPhysicalDevicePresentRectanglesKHR : nullptr;
5852 }
5853 if (!strcmp(name, "vkAcquireNextImage2KHR"))
5854 {
5855 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5856 return hasExt ? (void*)entry_vkAcquireNextImage2KHR : nullptr;
5857 }
5858#endif
5859#ifdef VK_KHR_display
5860 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPropertiesKHR"))
5861 {
5862 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
5863 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayPropertiesKHR : nullptr;
5864 }
5865 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR"))
5866 {
5867 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
5868 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayPlanePropertiesKHR : nullptr;
5869 }
5870 if (!strcmp(name, "vkGetDisplayPlaneSupportedDisplaysKHR"))
5871 {
5872 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
5873 return hasExt ? (void*)entry_vkGetDisplayPlaneSupportedDisplaysKHR : nullptr;
5874 }
5875 if (!strcmp(name, "vkGetDisplayModePropertiesKHR"))
5876 {
5877 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
5878 return hasExt ? (void*)entry_vkGetDisplayModePropertiesKHR : nullptr;
5879 }
5880 if (!strcmp(name, "vkCreateDisplayModeKHR"))
5881 {
5882 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
5883 return hasExt ? (void*)entry_vkCreateDisplayModeKHR : nullptr;
5884 }
5885 if (!strcmp(name, "vkGetDisplayPlaneCapabilitiesKHR"))
5886 {
5887 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
5888 return hasExt ? (void*)entry_vkGetDisplayPlaneCapabilitiesKHR : nullptr;
5889 }
5890 if (!strcmp(name, "vkCreateDisplayPlaneSurfaceKHR"))
5891 {
5892 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
5893 return hasExt ? (void*)entry_vkCreateDisplayPlaneSurfaceKHR : nullptr;
5894 }
5895#endif
5896#ifdef VK_KHR_display_swapchain
5897 if (!strcmp(name, "vkCreateSharedSwapchainsKHR"))
5898 {
5899 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display_swapchain");
5900 return hasExt ? (void*)entry_vkCreateSharedSwapchainsKHR : nullptr;
5901 }
5902#endif
5903#ifdef VK_KHR_xlib_surface
5904 if (!strcmp(name, "vkCreateXlibSurfaceKHR"))
5905 {
5906 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_xlib_surface");
5907 return hasExt ? (void*)entry_vkCreateXlibSurfaceKHR : nullptr;
5908 }
5909 if (!strcmp(name, "vkGetPhysicalDeviceXlibPresentationSupportKHR"))
5910 {
5911 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_xlib_surface");
5912 return hasExt ? (void*)entry_vkGetPhysicalDeviceXlibPresentationSupportKHR : nullptr;
5913 }
5914#endif
5915#ifdef VK_KHR_xcb_surface
5916 if (!strcmp(name, "vkCreateXcbSurfaceKHR"))
5917 {
5918 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_xcb_surface");
5919 return hasExt ? (void*)entry_vkCreateXcbSurfaceKHR : nullptr;
5920 }
5921 if (!strcmp(name, "vkGetPhysicalDeviceXcbPresentationSupportKHR"))
5922 {
5923 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_xcb_surface");
5924 return hasExt ? (void*)entry_vkGetPhysicalDeviceXcbPresentationSupportKHR : nullptr;
5925 }
5926#endif
5927#ifdef VK_KHR_wayland_surface
5928 if (!strcmp(name, "vkCreateWaylandSurfaceKHR"))
5929 {
5930 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_wayland_surface");
5931 return hasExt ? (void*)entry_vkCreateWaylandSurfaceKHR : nullptr;
5932 }
5933 if (!strcmp(name, "vkGetPhysicalDeviceWaylandPresentationSupportKHR"))
5934 {
5935 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_wayland_surface");
5936 return hasExt ? (void*)entry_vkGetPhysicalDeviceWaylandPresentationSupportKHR : nullptr;
5937 }
5938#endif
5939#ifdef VK_KHR_mir_surface
5940 if (!strcmp(name, "vkCreateMirSurfaceKHR"))
5941 {
5942 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_mir_surface");
5943 return hasExt ? (void*)entry_vkCreateMirSurfaceKHR : nullptr;
5944 }
5945 if (!strcmp(name, "vkGetPhysicalDeviceMirPresentationSupportKHR"))
5946 {
5947 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_mir_surface");
5948 return hasExt ? (void*)entry_vkGetPhysicalDeviceMirPresentationSupportKHR : nullptr;
5949 }
5950#endif
5951#ifdef VK_KHR_android_surface
5952 if (!strcmp(name, "vkCreateAndroidSurfaceKHR"))
5953 {
5954 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_android_surface");
5955 return hasExt ? (void*)entry_vkCreateAndroidSurfaceKHR : nullptr;
5956 }
5957#endif
5958#ifdef VK_KHR_win32_surface
5959 if (!strcmp(name, "vkCreateWin32SurfaceKHR"))
5960 {
5961 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_win32_surface");
5962 return hasExt ? (void*)entry_vkCreateWin32SurfaceKHR : nullptr;
5963 }
5964 if (!strcmp(name, "vkGetPhysicalDeviceWin32PresentationSupportKHR"))
5965 {
5966 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_win32_surface");
5967 return hasExt ? (void*)entry_vkGetPhysicalDeviceWin32PresentationSupportKHR : nullptr;
5968 }
5969#endif
5970#ifdef VK_KHR_get_physical_device_properties2
5971 if (!strcmp(name, "vkGetPhysicalDeviceFeatures2KHR"))
5972 {
5973 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
5974 return hasExt ? (void*)entry_vkGetPhysicalDeviceFeatures2KHR : nullptr;
5975 }
5976 if (!strcmp(name, "vkGetPhysicalDeviceProperties2KHR"))
5977 {
5978 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
5979 return hasExt ? (void*)entry_vkGetPhysicalDeviceProperties2KHR : nullptr;
5980 }
5981 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties2KHR"))
5982 {
5983 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
5984 return hasExt ? (void*)entry_vkGetPhysicalDeviceFormatProperties2KHR : nullptr;
5985 }
5986 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties2KHR"))
5987 {
5988 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
5989 return hasExt ? (void*)entry_vkGetPhysicalDeviceImageFormatProperties2KHR : nullptr;
5990 }
5991 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties2KHR"))
5992 {
5993 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
5994 return hasExt ? (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties2KHR : nullptr;
5995 }
5996 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties2KHR"))
5997 {
5998 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
5999 return hasExt ? (void*)entry_vkGetPhysicalDeviceMemoryProperties2KHR : nullptr;
6000 }
6001 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR"))
6002 {
6003 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
6004 return hasExt ? (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties2KHR : nullptr;
6005 }
6006#endif
6007#ifdef VK_KHR_device_group
6008 if (!strcmp(name, "vkGetDeviceGroupPeerMemoryFeaturesKHR"))
6009 {
6010 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_device_group");
6011 return hasExt ? (void*)entry_vkGetDeviceGroupPeerMemoryFeaturesKHR : nullptr;
6012 }
6013 if (!strcmp(name, "vkCmdSetDeviceMaskKHR"))
6014 {
6015 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_device_group");
6016 return hasExt ? (void*)entry_vkCmdSetDeviceMaskKHR : nullptr;
6017 }
6018 if (!strcmp(name, "vkCmdDispatchBaseKHR"))
6019 {
6020 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_device_group");
6021 return hasExt ? (void*)entry_vkCmdDispatchBaseKHR : nullptr;
6022 }
6023#endif
6024#ifdef VK_KHR_maintenance1
6025 if (!strcmp(name, "vkTrimCommandPoolKHR"))
6026 {
6027 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_maintenance1");
6028 return hasExt ? (void*)entry_vkTrimCommandPoolKHR : nullptr;
6029 }
6030#endif
6031#ifdef VK_KHR_device_group_creation
6032 if (!strcmp(name, "vkEnumeratePhysicalDeviceGroupsKHR"))
6033 {
6034 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_device_group_creation");
6035 return hasExt ? (void*)entry_vkEnumeratePhysicalDeviceGroupsKHR : nullptr;
6036 }
6037#endif
6038#ifdef VK_KHR_external_memory_capabilities
6039 if (!strcmp(name, "vkGetPhysicalDeviceExternalBufferPropertiesKHR"))
6040 {
6041 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_memory_capabilities");
6042 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalBufferPropertiesKHR : nullptr;
6043 }
6044#endif
6045#ifdef VK_KHR_external_memory_win32
6046 if (!strcmp(name, "vkGetMemoryWin32HandleKHR"))
6047 {
6048 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_memory_win32");
6049 return hasExt ? (void*)entry_vkGetMemoryWin32HandleKHR : nullptr;
6050 }
6051 if (!strcmp(name, "vkGetMemoryWin32HandlePropertiesKHR"))
6052 {
6053 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_memory_win32");
6054 return hasExt ? (void*)entry_vkGetMemoryWin32HandlePropertiesKHR : nullptr;
6055 }
6056#endif
6057#ifdef VK_KHR_external_memory_fd
6058 if (!strcmp(name, "vkGetMemoryFdKHR"))
6059 {
6060 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_memory_fd");
6061 return hasExt ? (void*)entry_vkGetMemoryFdKHR : nullptr;
6062 }
6063 if (!strcmp(name, "vkGetMemoryFdPropertiesKHR"))
6064 {
6065 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_memory_fd");
6066 return hasExt ? (void*)entry_vkGetMemoryFdPropertiesKHR : nullptr;
6067 }
6068#endif
6069#ifdef VK_KHR_external_semaphore_capabilities
6070 if (!strcmp(name, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR"))
6071 {
6072 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_semaphore_capabilities");
6073 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR : nullptr;
6074 }
6075#endif
6076#ifdef VK_KHR_external_semaphore_win32
6077 if (!strcmp(name, "vkImportSemaphoreWin32HandleKHR"))
6078 {
6079 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_semaphore_win32");
6080 return hasExt ? (void*)entry_vkImportSemaphoreWin32HandleKHR : nullptr;
6081 }
6082 if (!strcmp(name, "vkGetSemaphoreWin32HandleKHR"))
6083 {
6084 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_semaphore_win32");
6085 return hasExt ? (void*)entry_vkGetSemaphoreWin32HandleKHR : nullptr;
6086 }
6087#endif
6088#ifdef VK_KHR_external_semaphore_fd
6089 if (!strcmp(name, "vkImportSemaphoreFdKHR"))
6090 {
6091 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_semaphore_fd");
6092 return hasExt ? (void*)entry_vkImportSemaphoreFdKHR : nullptr;
6093 }
6094 if (!strcmp(name, "vkGetSemaphoreFdKHR"))
6095 {
6096 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_semaphore_fd");
6097 return hasExt ? (void*)entry_vkGetSemaphoreFdKHR : nullptr;
6098 }
6099#endif
6100#ifdef VK_KHR_push_descriptor
6101 if (!strcmp(name, "vkCmdPushDescriptorSetKHR"))
6102 {
6103 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_push_descriptor");
6104 return hasExt ? (void*)entry_vkCmdPushDescriptorSetKHR : nullptr;
6105 }
6106 if (!strcmp(name, "vkCmdPushDescriptorSetWithTemplateKHR"))
6107 {
6108 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_push_descriptor");
6109 return hasExt ? (void*)entry_vkCmdPushDescriptorSetWithTemplateKHR : nullptr;
6110 }
6111#endif
6112#ifdef VK_KHR_descriptor_update_template
6113 if (!strcmp(name, "vkCreateDescriptorUpdateTemplateKHR"))
6114 {
6115 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_descriptor_update_template");
6116 return hasExt ? (void*)entry_vkCreateDescriptorUpdateTemplateKHR : nullptr;
6117 }
6118 if (!strcmp(name, "vkDestroyDescriptorUpdateTemplateKHR"))
6119 {
6120 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_descriptor_update_template");
6121 return hasExt ? (void*)entry_vkDestroyDescriptorUpdateTemplateKHR : nullptr;
6122 }
6123 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplateKHR"))
6124 {
6125 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_descriptor_update_template");
6126 return hasExt ? (void*)entry_vkUpdateDescriptorSetWithTemplateKHR : nullptr;
6127 }
6128#endif
6129#ifdef VK_KHR_create_renderpass2
6130 if (!strcmp(name, "vkCreateRenderPass2KHR"))
6131 {
6132 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_create_renderpass2");
6133 return hasExt ? (void*)entry_vkCreateRenderPass2KHR : nullptr;
6134 }
6135 if (!strcmp(name, "vkCmdBeginRenderPass2KHR"))
6136 {
6137 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_create_renderpass2");
6138 return hasExt ? (void*)entry_vkCmdBeginRenderPass2KHR : nullptr;
6139 }
6140 if (!strcmp(name, "vkCmdNextSubpass2KHR"))
6141 {
6142 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_create_renderpass2");
6143 return hasExt ? (void*)entry_vkCmdNextSubpass2KHR : nullptr;
6144 }
6145 if (!strcmp(name, "vkCmdEndRenderPass2KHR"))
6146 {
6147 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_create_renderpass2");
6148 return hasExt ? (void*)entry_vkCmdEndRenderPass2KHR : nullptr;
6149 }
6150#endif
6151#ifdef VK_KHR_shared_presentable_image
6152 if (!strcmp(name, "vkGetSwapchainStatusKHR"))
6153 {
6154 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_shared_presentable_image");
6155 return hasExt ? (void*)entry_vkGetSwapchainStatusKHR : nullptr;
6156 }
6157#endif
6158#ifdef VK_KHR_external_fence_capabilities
6159 if (!strcmp(name, "vkGetPhysicalDeviceExternalFencePropertiesKHR"))
6160 {
6161 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_fence_capabilities");
6162 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalFencePropertiesKHR : nullptr;
6163 }
6164#endif
6165#ifdef VK_KHR_external_fence_win32
6166 if (!strcmp(name, "vkImportFenceWin32HandleKHR"))
6167 {
6168 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_fence_win32");
6169 return hasExt ? (void*)entry_vkImportFenceWin32HandleKHR : nullptr;
6170 }
6171 if (!strcmp(name, "vkGetFenceWin32HandleKHR"))
6172 {
6173 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_fence_win32");
6174 return hasExt ? (void*)entry_vkGetFenceWin32HandleKHR : nullptr;
6175 }
6176#endif
6177#ifdef VK_KHR_external_fence_fd
6178 if (!strcmp(name, "vkImportFenceFdKHR"))
6179 {
6180 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_fence_fd");
6181 return hasExt ? (void*)entry_vkImportFenceFdKHR : nullptr;
6182 }
6183 if (!strcmp(name, "vkGetFenceFdKHR"))
6184 {
6185 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_fence_fd");
6186 return hasExt ? (void*)entry_vkGetFenceFdKHR : nullptr;
6187 }
6188#endif
6189#ifdef VK_KHR_get_surface_capabilities2
6190 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2KHR"))
6191 {
6192 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_surface_capabilities2");
6193 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceCapabilities2KHR : nullptr;
6194 }
6195 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceFormats2KHR"))
6196 {
6197 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_surface_capabilities2");
6198 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceFormats2KHR : nullptr;
6199 }
6200#endif
6201#ifdef VK_KHR_get_display_properties2
6202 if (!strcmp(name, "vkGetPhysicalDeviceDisplayProperties2KHR"))
6203 {
6204 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_display_properties2");
6205 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayProperties2KHR : nullptr;
6206 }
6207 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR"))
6208 {
6209 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_display_properties2");
6210 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayPlaneProperties2KHR : nullptr;
6211 }
6212 if (!strcmp(name, "vkGetDisplayModeProperties2KHR"))
6213 {
6214 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_display_properties2");
6215 return hasExt ? (void*)entry_vkGetDisplayModeProperties2KHR : nullptr;
6216 }
6217 if (!strcmp(name, "vkGetDisplayPlaneCapabilities2KHR"))
6218 {
6219 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_display_properties2");
6220 return hasExt ? (void*)entry_vkGetDisplayPlaneCapabilities2KHR : nullptr;
6221 }
6222#endif
6223#ifdef VK_KHR_get_memory_requirements2
6224 if (!strcmp(name, "vkGetImageMemoryRequirements2KHR"))
6225 {
6226 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_memory_requirements2");
6227 return hasExt ? (void*)entry_vkGetImageMemoryRequirements2KHR : nullptr;
6228 }
6229 if (!strcmp(name, "vkGetBufferMemoryRequirements2KHR"))
6230 {
6231 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_memory_requirements2");
6232 return hasExt ? (void*)entry_vkGetBufferMemoryRequirements2KHR : nullptr;
6233 }
6234 if (!strcmp(name, "vkGetImageSparseMemoryRequirements2KHR"))
6235 {
6236 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_memory_requirements2");
6237 return hasExt ? (void*)entry_vkGetImageSparseMemoryRequirements2KHR : nullptr;
6238 }
6239#endif
6240#ifdef VK_KHR_sampler_ycbcr_conversion
6241 if (!strcmp(name, "vkCreateSamplerYcbcrConversionKHR"))
6242 {
6243 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_sampler_ycbcr_conversion");
6244 return hasExt ? (void*)entry_vkCreateSamplerYcbcrConversionKHR : nullptr;
6245 }
6246 if (!strcmp(name, "vkDestroySamplerYcbcrConversionKHR"))
6247 {
6248 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_sampler_ycbcr_conversion");
6249 return hasExt ? (void*)entry_vkDestroySamplerYcbcrConversionKHR : nullptr;
6250 }
6251#endif
6252#ifdef VK_KHR_bind_memory2
6253 if (!strcmp(name, "vkBindBufferMemory2KHR"))
6254 {
6255 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_bind_memory2");
6256 return hasExt ? (void*)entry_vkBindBufferMemory2KHR : nullptr;
6257 }
6258 if (!strcmp(name, "vkBindImageMemory2KHR"))
6259 {
6260 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_bind_memory2");
6261 return hasExt ? (void*)entry_vkBindImageMemory2KHR : nullptr;
6262 }
6263#endif
6264#ifdef VK_KHR_maintenance3
6265 if (!strcmp(name, "vkGetDescriptorSetLayoutSupportKHR"))
6266 {
6267 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_maintenance3");
6268 return hasExt ? (void*)entry_vkGetDescriptorSetLayoutSupportKHR : nullptr;
6269 }
6270#endif
6271#ifdef VK_KHR_draw_indirect_count
6272 if (!strcmp(name, "vkCmdDrawIndirectCountKHR"))
6273 {
6274 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_draw_indirect_count");
6275 return hasExt ? (void*)entry_vkCmdDrawIndirectCountKHR : nullptr;
6276 }
6277 if (!strcmp(name, "vkCmdDrawIndexedIndirectCountKHR"))
6278 {
6279 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_draw_indirect_count");
6280 return hasExt ? (void*)entry_vkCmdDrawIndexedIndirectCountKHR : nullptr;
6281 }
6282#endif
6283#ifdef VK_ANDROID_native_buffer
6284 if (!strcmp(name, "vkGetSwapchainGrallocUsageANDROID"))
6285 {
6286 bool hasExt = resources->hasInstanceExtension(instance, "VK_ANDROID_native_buffer");
6287 return hasExt ? (void*)entry_vkGetSwapchainGrallocUsageANDROID : nullptr;
6288 }
6289 if (!strcmp(name, "vkAcquireImageANDROID"))
6290 {
6291 bool hasExt = resources->hasInstanceExtension(instance, "VK_ANDROID_native_buffer");
6292 return hasExt ? (void*)entry_vkAcquireImageANDROID : nullptr;
6293 }
6294 if (!strcmp(name, "vkQueueSignalReleaseImageANDROID"))
6295 {
6296 bool hasExt = resources->hasInstanceExtension(instance, "VK_ANDROID_native_buffer");
6297 return hasExt ? (void*)entry_vkQueueSignalReleaseImageANDROID : nullptr;
6298 }
6299#endif
6300#ifdef VK_EXT_debug_report
6301 if (!strcmp(name, "vkCreateDebugReportCallbackEXT"))
6302 {
6303 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_report");
6304 return hasExt ? (void*)entry_vkCreateDebugReportCallbackEXT : nullptr;
6305 }
6306 if (!strcmp(name, "vkDestroyDebugReportCallbackEXT"))
6307 {
6308 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_report");
6309 return hasExt ? (void*)entry_vkDestroyDebugReportCallbackEXT : nullptr;
6310 }
6311 if (!strcmp(name, "vkDebugReportMessageEXT"))
6312 {
6313 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_report");
6314 return hasExt ? (void*)entry_vkDebugReportMessageEXT : nullptr;
6315 }
6316#endif
6317#ifdef VK_EXT_debug_marker
6318 if (!strcmp(name, "vkDebugMarkerSetObjectTagEXT"))
6319 {
6320 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_marker");
6321 return hasExt ? (void*)entry_vkDebugMarkerSetObjectTagEXT : nullptr;
6322 }
6323 if (!strcmp(name, "vkDebugMarkerSetObjectNameEXT"))
6324 {
6325 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_marker");
6326 return hasExt ? (void*)entry_vkDebugMarkerSetObjectNameEXT : nullptr;
6327 }
6328 if (!strcmp(name, "vkCmdDebugMarkerBeginEXT"))
6329 {
6330 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_marker");
6331 return hasExt ? (void*)entry_vkCmdDebugMarkerBeginEXT : nullptr;
6332 }
6333 if (!strcmp(name, "vkCmdDebugMarkerEndEXT"))
6334 {
6335 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_marker");
6336 return hasExt ? (void*)entry_vkCmdDebugMarkerEndEXT : nullptr;
6337 }
6338 if (!strcmp(name, "vkCmdDebugMarkerInsertEXT"))
6339 {
6340 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_marker");
6341 return hasExt ? (void*)entry_vkCmdDebugMarkerInsertEXT : nullptr;
6342 }
6343#endif
6344#ifdef VK_AMD_draw_indirect_count
6345 if (!strcmp(name, "vkCmdDrawIndirectCountAMD"))
6346 {
6347 bool hasExt = resources->hasInstanceExtension(instance, "VK_AMD_draw_indirect_count");
6348 return hasExt ? (void*)entry_vkCmdDrawIndirectCountAMD : nullptr;
6349 }
6350 if (!strcmp(name, "vkCmdDrawIndexedIndirectCountAMD"))
6351 {
6352 bool hasExt = resources->hasInstanceExtension(instance, "VK_AMD_draw_indirect_count");
6353 return hasExt ? (void*)entry_vkCmdDrawIndexedIndirectCountAMD : nullptr;
6354 }
6355#endif
6356#ifdef VK_AMD_shader_info
6357 if (!strcmp(name, "vkGetShaderInfoAMD"))
6358 {
6359 bool hasExt = resources->hasInstanceExtension(instance, "VK_AMD_shader_info");
6360 return hasExt ? (void*)entry_vkGetShaderInfoAMD : nullptr;
6361 }
6362#endif
6363#ifdef VK_NV_external_memory_capabilities
6364 if (!strcmp(name, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV"))
6365 {
6366 bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_external_memory_capabilities");
6367 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalImageFormatPropertiesNV : nullptr;
6368 }
6369#endif
6370#ifdef VK_NV_external_memory_win32
6371 if (!strcmp(name, "vkGetMemoryWin32HandleNV"))
6372 {
6373 bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_external_memory_win32");
6374 return hasExt ? (void*)entry_vkGetMemoryWin32HandleNV : nullptr;
6375 }
6376#endif
6377#ifdef VK_NN_vi_surface
6378 if (!strcmp(name, "vkCreateViSurfaceNN"))
6379 {
6380 bool hasExt = resources->hasInstanceExtension(instance, "VK_NN_vi_surface");
6381 return hasExt ? (void*)entry_vkCreateViSurfaceNN : nullptr;
6382 }
6383#endif
6384#ifdef VK_EXT_conditional_rendering
6385 if (!strcmp(name, "vkCmdBeginConditionalRenderingEXT"))
6386 {
6387 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_conditional_rendering");
6388 return hasExt ? (void*)entry_vkCmdBeginConditionalRenderingEXT : nullptr;
6389 }
6390 if (!strcmp(name, "vkCmdEndConditionalRenderingEXT"))
6391 {
6392 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_conditional_rendering");
6393 return hasExt ? (void*)entry_vkCmdEndConditionalRenderingEXT : nullptr;
6394 }
6395#endif
6396#ifdef VK_NVX_device_generated_commands
6397 if (!strcmp(name, "vkCmdProcessCommandsNVX"))
6398 {
6399 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6400 return hasExt ? (void*)entry_vkCmdProcessCommandsNVX : nullptr;
6401 }
6402 if (!strcmp(name, "vkCmdReserveSpaceForCommandsNVX"))
6403 {
6404 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6405 return hasExt ? (void*)entry_vkCmdReserveSpaceForCommandsNVX : nullptr;
6406 }
6407 if (!strcmp(name, "vkCreateIndirectCommandsLayoutNVX"))
6408 {
6409 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6410 return hasExt ? (void*)entry_vkCreateIndirectCommandsLayoutNVX : nullptr;
6411 }
6412 if (!strcmp(name, "vkDestroyIndirectCommandsLayoutNVX"))
6413 {
6414 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6415 return hasExt ? (void*)entry_vkDestroyIndirectCommandsLayoutNVX : nullptr;
6416 }
6417 if (!strcmp(name, "vkCreateObjectTableNVX"))
6418 {
6419 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6420 return hasExt ? (void*)entry_vkCreateObjectTableNVX : nullptr;
6421 }
6422 if (!strcmp(name, "vkDestroyObjectTableNVX"))
6423 {
6424 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6425 return hasExt ? (void*)entry_vkDestroyObjectTableNVX : nullptr;
6426 }
6427 if (!strcmp(name, "vkRegisterObjectsNVX"))
6428 {
6429 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6430 return hasExt ? (void*)entry_vkRegisterObjectsNVX : nullptr;
6431 }
6432 if (!strcmp(name, "vkUnregisterObjectsNVX"))
6433 {
6434 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6435 return hasExt ? (void*)entry_vkUnregisterObjectsNVX : nullptr;
6436 }
6437 if (!strcmp(name, "vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX"))
6438 {
6439 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6440 return hasExt ? (void*)entry_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX : nullptr;
6441 }
6442#endif
6443#ifdef VK_NV_clip_space_w_scaling
6444 if (!strcmp(name, "vkCmdSetViewportWScalingNV"))
6445 {
6446 bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_clip_space_w_scaling");
6447 return hasExt ? (void*)entry_vkCmdSetViewportWScalingNV : nullptr;
6448 }
6449#endif
6450#ifdef VK_EXT_direct_mode_display
6451 if (!strcmp(name, "vkReleaseDisplayEXT"))
6452 {
6453 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_direct_mode_display");
6454 return hasExt ? (void*)entry_vkReleaseDisplayEXT : nullptr;
6455 }
6456#endif
6457#ifdef VK_EXT_acquire_xlib_display
6458 if (!strcmp(name, "vkAcquireXlibDisplayEXT"))
6459 {
6460 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_acquire_xlib_display");
6461 return hasExt ? (void*)entry_vkAcquireXlibDisplayEXT : nullptr;
6462 }
6463 if (!strcmp(name, "vkGetRandROutputDisplayEXT"))
6464 {
6465 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_acquire_xlib_display");
6466 return hasExt ? (void*)entry_vkGetRandROutputDisplayEXT : nullptr;
6467 }
6468#endif
6469#ifdef VK_EXT_display_surface_counter
6470 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2EXT"))
6471 {
6472 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_display_surface_counter");
6473 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceCapabilities2EXT : nullptr;
6474 }
6475#endif
6476#ifdef VK_EXT_display_control
6477 if (!strcmp(name, "vkDisplayPowerControlEXT"))
6478 {
6479 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_display_control");
6480 return hasExt ? (void*)entry_vkDisplayPowerControlEXT : nullptr;
6481 }
6482 if (!strcmp(name, "vkRegisterDeviceEventEXT"))
6483 {
6484 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_display_control");
6485 return hasExt ? (void*)entry_vkRegisterDeviceEventEXT : nullptr;
6486 }
6487 if (!strcmp(name, "vkRegisterDisplayEventEXT"))
6488 {
6489 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_display_control");
6490 return hasExt ? (void*)entry_vkRegisterDisplayEventEXT : nullptr;
6491 }
6492 if (!strcmp(name, "vkGetSwapchainCounterEXT"))
6493 {
6494 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_display_control");
6495 return hasExt ? (void*)entry_vkGetSwapchainCounterEXT : nullptr;
6496 }
6497#endif
6498#ifdef VK_GOOGLE_display_timing
6499 if (!strcmp(name, "vkGetRefreshCycleDurationGOOGLE"))
6500 {
6501 bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_display_timing");
6502 return hasExt ? (void*)entry_vkGetRefreshCycleDurationGOOGLE : nullptr;
6503 }
6504 if (!strcmp(name, "vkGetPastPresentationTimingGOOGLE"))
6505 {
6506 bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_display_timing");
6507 return hasExt ? (void*)entry_vkGetPastPresentationTimingGOOGLE : nullptr;
6508 }
6509#endif
6510#ifdef VK_EXT_discard_rectangles
6511 if (!strcmp(name, "vkCmdSetDiscardRectangleEXT"))
6512 {
6513 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_discard_rectangles");
6514 return hasExt ? (void*)entry_vkCmdSetDiscardRectangleEXT : nullptr;
6515 }
6516#endif
6517#ifdef VK_EXT_hdr_metadata
6518 if (!strcmp(name, "vkSetHdrMetadataEXT"))
6519 {
6520 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_hdr_metadata");
6521 return hasExt ? (void*)entry_vkSetHdrMetadataEXT : nullptr;
6522 }
6523#endif
6524#ifdef VK_MVK_ios_surface
6525 if (!strcmp(name, "vkCreateIOSSurfaceMVK"))
6526 {
6527 bool hasExt = resources->hasInstanceExtension(instance, "VK_MVK_ios_surface");
6528 return hasExt ? (void*)entry_vkCreateIOSSurfaceMVK : nullptr;
6529 }
6530#endif
6531#ifdef VK_MVK_macos_surface
6532 if (!strcmp(name, "vkCreateMacOSSurfaceMVK"))
6533 {
6534 bool hasExt = resources->hasInstanceExtension(instance, "VK_MVK_macos_surface");
6535 return hasExt ? (void*)entry_vkCreateMacOSSurfaceMVK : nullptr;
6536 }
6537#endif
6538#ifdef VK_EXT_debug_utils
6539 if (!strcmp(name, "vkSetDebugUtilsObjectNameEXT"))
6540 {
6541 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6542 return hasExt ? (void*)entry_vkSetDebugUtilsObjectNameEXT : nullptr;
6543 }
6544 if (!strcmp(name, "vkSetDebugUtilsObjectTagEXT"))
6545 {
6546 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6547 return hasExt ? (void*)entry_vkSetDebugUtilsObjectTagEXT : nullptr;
6548 }
6549 if (!strcmp(name, "vkQueueBeginDebugUtilsLabelEXT"))
6550 {
6551 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6552 return hasExt ? (void*)entry_vkQueueBeginDebugUtilsLabelEXT : nullptr;
6553 }
6554 if (!strcmp(name, "vkQueueEndDebugUtilsLabelEXT"))
6555 {
6556 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6557 return hasExt ? (void*)entry_vkQueueEndDebugUtilsLabelEXT : nullptr;
6558 }
6559 if (!strcmp(name, "vkQueueInsertDebugUtilsLabelEXT"))
6560 {
6561 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6562 return hasExt ? (void*)entry_vkQueueInsertDebugUtilsLabelEXT : nullptr;
6563 }
6564 if (!strcmp(name, "vkCmdBeginDebugUtilsLabelEXT"))
6565 {
6566 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6567 return hasExt ? (void*)entry_vkCmdBeginDebugUtilsLabelEXT : nullptr;
6568 }
6569 if (!strcmp(name, "vkCmdEndDebugUtilsLabelEXT"))
6570 {
6571 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6572 return hasExt ? (void*)entry_vkCmdEndDebugUtilsLabelEXT : nullptr;
6573 }
6574 if (!strcmp(name, "vkCmdInsertDebugUtilsLabelEXT"))
6575 {
6576 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6577 return hasExt ? (void*)entry_vkCmdInsertDebugUtilsLabelEXT : nullptr;
6578 }
6579 if (!strcmp(name, "vkCreateDebugUtilsMessengerEXT"))
6580 {
6581 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6582 return hasExt ? (void*)entry_vkCreateDebugUtilsMessengerEXT : nullptr;
6583 }
6584 if (!strcmp(name, "vkDestroyDebugUtilsMessengerEXT"))
6585 {
6586 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6587 return hasExt ? (void*)entry_vkDestroyDebugUtilsMessengerEXT : nullptr;
6588 }
6589 if (!strcmp(name, "vkSubmitDebugUtilsMessageEXT"))
6590 {
6591 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6592 return hasExt ? (void*)entry_vkSubmitDebugUtilsMessageEXT : nullptr;
6593 }
6594#endif
6595#ifdef VK_ANDROID_external_memory_android_hardware_buffer
6596 if (!strcmp(name, "vkGetAndroidHardwareBufferPropertiesANDROID"))
6597 {
6598 bool hasExt = resources->hasInstanceExtension(instance, "VK_ANDROID_external_memory_android_hardware_buffer");
6599 return hasExt ? (void*)entry_vkGetAndroidHardwareBufferPropertiesANDROID : nullptr;
6600 }
6601 if (!strcmp(name, "vkGetMemoryAndroidHardwareBufferANDROID"))
6602 {
6603 bool hasExt = resources->hasInstanceExtension(instance, "VK_ANDROID_external_memory_android_hardware_buffer");
6604 return hasExt ? (void*)entry_vkGetMemoryAndroidHardwareBufferANDROID : nullptr;
6605 }
6606#endif
6607#ifdef VK_EXT_sample_locations
6608 if (!strcmp(name, "vkCmdSetSampleLocationsEXT"))
6609 {
6610 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_sample_locations");
6611 return hasExt ? (void*)entry_vkCmdSetSampleLocationsEXT : nullptr;
6612 }
6613 if (!strcmp(name, "vkGetPhysicalDeviceMultisamplePropertiesEXT"))
6614 {
6615 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_sample_locations");
6616 return hasExt ? (void*)entry_vkGetPhysicalDeviceMultisamplePropertiesEXT : nullptr;
6617 }
6618#endif
6619#ifdef VK_EXT_validation_cache
6620 if (!strcmp(name, "vkCreateValidationCacheEXT"))
6621 {
6622 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_validation_cache");
6623 return hasExt ? (void*)entry_vkCreateValidationCacheEXT : nullptr;
6624 }
6625 if (!strcmp(name, "vkDestroyValidationCacheEXT"))
6626 {
6627 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_validation_cache");
6628 return hasExt ? (void*)entry_vkDestroyValidationCacheEXT : nullptr;
6629 }
6630 if (!strcmp(name, "vkMergeValidationCachesEXT"))
6631 {
6632 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_validation_cache");
6633 return hasExt ? (void*)entry_vkMergeValidationCachesEXT : nullptr;
6634 }
6635 if (!strcmp(name, "vkGetValidationCacheDataEXT"))
6636 {
6637 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_validation_cache");
6638 return hasExt ? (void*)entry_vkGetValidationCacheDataEXT : nullptr;
6639 }
6640#endif
6641#ifdef VK_EXT_external_memory_host
6642 if (!strcmp(name, "vkGetMemoryHostPointerPropertiesEXT"))
6643 {
6644 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_external_memory_host");
6645 return hasExt ? (void*)entry_vkGetMemoryHostPointerPropertiesEXT : nullptr;
6646 }
6647#endif
6648#ifdef VK_AMD_buffer_marker
6649 if (!strcmp(name, "vkCmdWriteBufferMarkerAMD"))
6650 {
6651 bool hasExt = resources->hasInstanceExtension(instance, "VK_AMD_buffer_marker");
6652 return hasExt ? (void*)entry_vkCmdWriteBufferMarkerAMD : nullptr;
6653 }
6654#endif
6655#ifdef VK_NV_device_diagnostic_checkpoints
6656 if (!strcmp(name, "vkCmdSetCheckpointNV"))
6657 {
6658 bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_device_diagnostic_checkpoints");
6659 return hasExt ? (void*)entry_vkCmdSetCheckpointNV : nullptr;
6660 }
6661 if (!strcmp(name, "vkGetQueueCheckpointDataNV"))
6662 {
6663 bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_device_diagnostic_checkpoints");
6664 return hasExt ? (void*)entry_vkGetQueueCheckpointDataNV : nullptr;
6665 }
6666#endif
6667#ifdef VK_GOOGLE_address_space
6668 if (!strcmp(name, "vkMapMemoryIntoAddressSpaceGOOGLE"))
6669 {
6670 bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_address_space");
6671 return hasExt ? (void*)entry_vkMapMemoryIntoAddressSpaceGOOGLE : nullptr;
6672 }
6673#endif
Lingfeng Yangae7e1b32019-02-19 14:07:39 -08006674#ifdef VK_GOOGLE_color_buffer
6675 if (!strcmp(name, "vkRegisterImageColorBufferGOOGLE"))
6676 {
6677 bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_color_buffer");
6678 return hasExt ? (void*)entry_vkRegisterImageColorBufferGOOGLE : nullptr;
6679 }
6680 if (!strcmp(name, "vkRegisterBufferColorBufferGOOGLE"))
6681 {
6682 bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_color_buffer");
6683 return hasExt ? (void*)entry_vkRegisterBufferColorBufferGOOGLE : nullptr;
6684 }
6685#endif
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08006686 return nullptr;
6687}
6688void* goldfish_vulkan_get_device_proc_address(VkDevice device, const char* name){
6689 auto resources = ResourceTracker::get();
6690 bool has1_1OrHigher = resources->getApiVersionFromDevice(device) >= VK_API_VERSION_1_1;
6691#ifdef VK_VERSION_1_0
6692 if (!strcmp(name, "vkCreateInstance"))
6693 {
6694 return (void*)entry_vkCreateInstance;
6695 }
6696 if (!strcmp(name, "vkDestroyInstance"))
6697 {
6698 return (void*)entry_vkDestroyInstance;
6699 }
6700 if (!strcmp(name, "vkEnumeratePhysicalDevices"))
6701 {
6702 return (void*)entry_vkEnumeratePhysicalDevices;
6703 }
6704 if (!strcmp(name, "vkGetPhysicalDeviceFeatures"))
6705 {
6706 return (void*)entry_vkGetPhysicalDeviceFeatures;
6707 }
6708 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties"))
6709 {
6710 return (void*)entry_vkGetPhysicalDeviceFormatProperties;
6711 }
6712 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties"))
6713 {
6714 return (void*)entry_vkGetPhysicalDeviceImageFormatProperties;
6715 }
6716 if (!strcmp(name, "vkGetPhysicalDeviceProperties"))
6717 {
6718 return (void*)entry_vkGetPhysicalDeviceProperties;
6719 }
6720 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties"))
6721 {
6722 return (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties;
6723 }
6724 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties"))
6725 {
6726 return (void*)entry_vkGetPhysicalDeviceMemoryProperties;
6727 }
6728 if (!strcmp(name, "vkGetInstanceProcAddr"))
6729 {
6730 return (void*)entry_vkGetInstanceProcAddr;
6731 }
6732 if (!strcmp(name, "vkGetDeviceProcAddr"))
6733 {
6734 return (void*)entry_vkGetDeviceProcAddr;
6735 }
6736 if (!strcmp(name, "vkCreateDevice"))
6737 {
6738 return (void*)entry_vkCreateDevice;
6739 }
6740 if (!strcmp(name, "vkDestroyDevice"))
6741 {
6742 return (void*)entry_vkDestroyDevice;
6743 }
6744 if (!strcmp(name, "vkEnumerateInstanceExtensionProperties"))
6745 {
6746 return (void*)entry_vkEnumerateInstanceExtensionProperties;
6747 }
6748 if (!strcmp(name, "vkEnumerateDeviceExtensionProperties"))
6749 {
6750 return (void*)entry_vkEnumerateDeviceExtensionProperties;
6751 }
6752 if (!strcmp(name, "vkEnumerateInstanceLayerProperties"))
6753 {
6754 return (void*)entry_vkEnumerateInstanceLayerProperties;
6755 }
6756 if (!strcmp(name, "vkEnumerateDeviceLayerProperties"))
6757 {
6758 return (void*)entry_vkEnumerateDeviceLayerProperties;
6759 }
6760 if (!strcmp(name, "vkGetDeviceQueue"))
6761 {
6762 return (void*)entry_vkGetDeviceQueue;
6763 }
6764 if (!strcmp(name, "vkQueueSubmit"))
6765 {
6766 return (void*)entry_vkQueueSubmit;
6767 }
6768 if (!strcmp(name, "vkQueueWaitIdle"))
6769 {
6770 return (void*)entry_vkQueueWaitIdle;
6771 }
6772 if (!strcmp(name, "vkDeviceWaitIdle"))
6773 {
6774 return (void*)entry_vkDeviceWaitIdle;
6775 }
6776 if (!strcmp(name, "vkAllocateMemory"))
6777 {
6778 return (void*)entry_vkAllocateMemory;
6779 }
6780 if (!strcmp(name, "vkFreeMemory"))
6781 {
6782 return (void*)entry_vkFreeMemory;
6783 }
6784 if (!strcmp(name, "vkMapMemory"))
6785 {
6786 return (void*)entry_vkMapMemory;
6787 }
6788 if (!strcmp(name, "vkUnmapMemory"))
6789 {
6790 return (void*)entry_vkUnmapMemory;
6791 }
6792 if (!strcmp(name, "vkFlushMappedMemoryRanges"))
6793 {
6794 return (void*)entry_vkFlushMappedMemoryRanges;
6795 }
6796 if (!strcmp(name, "vkInvalidateMappedMemoryRanges"))
6797 {
6798 return (void*)entry_vkInvalidateMappedMemoryRanges;
6799 }
6800 if (!strcmp(name, "vkGetDeviceMemoryCommitment"))
6801 {
6802 return (void*)entry_vkGetDeviceMemoryCommitment;
6803 }
6804 if (!strcmp(name, "vkBindBufferMemory"))
6805 {
6806 return (void*)entry_vkBindBufferMemory;
6807 }
6808 if (!strcmp(name, "vkBindImageMemory"))
6809 {
6810 return (void*)entry_vkBindImageMemory;
6811 }
6812 if (!strcmp(name, "vkGetBufferMemoryRequirements"))
6813 {
6814 return (void*)entry_vkGetBufferMemoryRequirements;
6815 }
6816 if (!strcmp(name, "vkGetImageMemoryRequirements"))
6817 {
6818 return (void*)entry_vkGetImageMemoryRequirements;
6819 }
6820 if (!strcmp(name, "vkGetImageSparseMemoryRequirements"))
6821 {
6822 return (void*)entry_vkGetImageSparseMemoryRequirements;
6823 }
6824 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties"))
6825 {
6826 return (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties;
6827 }
6828 if (!strcmp(name, "vkQueueBindSparse"))
6829 {
6830 return (void*)entry_vkQueueBindSparse;
6831 }
6832 if (!strcmp(name, "vkCreateFence"))
6833 {
6834 return (void*)entry_vkCreateFence;
6835 }
6836 if (!strcmp(name, "vkDestroyFence"))
6837 {
6838 return (void*)entry_vkDestroyFence;
6839 }
6840 if (!strcmp(name, "vkResetFences"))
6841 {
6842 return (void*)entry_vkResetFences;
6843 }
6844 if (!strcmp(name, "vkGetFenceStatus"))
6845 {
6846 return (void*)entry_vkGetFenceStatus;
6847 }
6848 if (!strcmp(name, "vkWaitForFences"))
6849 {
6850 return (void*)entry_vkWaitForFences;
6851 }
6852 if (!strcmp(name, "vkCreateSemaphore"))
6853 {
6854 return (void*)entry_vkCreateSemaphore;
6855 }
6856 if (!strcmp(name, "vkDestroySemaphore"))
6857 {
6858 return (void*)entry_vkDestroySemaphore;
6859 }
6860 if (!strcmp(name, "vkCreateEvent"))
6861 {
6862 return (void*)entry_vkCreateEvent;
6863 }
6864 if (!strcmp(name, "vkDestroyEvent"))
6865 {
6866 return (void*)entry_vkDestroyEvent;
6867 }
6868 if (!strcmp(name, "vkGetEventStatus"))
6869 {
6870 return (void*)entry_vkGetEventStatus;
6871 }
6872 if (!strcmp(name, "vkSetEvent"))
6873 {
6874 return (void*)entry_vkSetEvent;
6875 }
6876 if (!strcmp(name, "vkResetEvent"))
6877 {
6878 return (void*)entry_vkResetEvent;
6879 }
6880 if (!strcmp(name, "vkCreateQueryPool"))
6881 {
6882 return (void*)entry_vkCreateQueryPool;
6883 }
6884 if (!strcmp(name, "vkDestroyQueryPool"))
6885 {
6886 return (void*)entry_vkDestroyQueryPool;
6887 }
6888 if (!strcmp(name, "vkGetQueryPoolResults"))
6889 {
6890 return (void*)entry_vkGetQueryPoolResults;
6891 }
6892 if (!strcmp(name, "vkCreateBuffer"))
6893 {
6894 return (void*)entry_vkCreateBuffer;
6895 }
6896 if (!strcmp(name, "vkDestroyBuffer"))
6897 {
6898 return (void*)entry_vkDestroyBuffer;
6899 }
6900 if (!strcmp(name, "vkCreateBufferView"))
6901 {
6902 return (void*)entry_vkCreateBufferView;
6903 }
6904 if (!strcmp(name, "vkDestroyBufferView"))
6905 {
6906 return (void*)entry_vkDestroyBufferView;
6907 }
6908 if (!strcmp(name, "vkCreateImage"))
6909 {
6910 return (void*)entry_vkCreateImage;
6911 }
6912 if (!strcmp(name, "vkDestroyImage"))
6913 {
6914 return (void*)entry_vkDestroyImage;
6915 }
6916 if (!strcmp(name, "vkGetImageSubresourceLayout"))
6917 {
6918 return (void*)entry_vkGetImageSubresourceLayout;
6919 }
6920 if (!strcmp(name, "vkCreateImageView"))
6921 {
6922 return (void*)entry_vkCreateImageView;
6923 }
6924 if (!strcmp(name, "vkDestroyImageView"))
6925 {
6926 return (void*)entry_vkDestroyImageView;
6927 }
6928 if (!strcmp(name, "vkCreateShaderModule"))
6929 {
6930 return (void*)entry_vkCreateShaderModule;
6931 }
6932 if (!strcmp(name, "vkDestroyShaderModule"))
6933 {
6934 return (void*)entry_vkDestroyShaderModule;
6935 }
6936 if (!strcmp(name, "vkCreatePipelineCache"))
6937 {
6938 return (void*)entry_vkCreatePipelineCache;
6939 }
6940 if (!strcmp(name, "vkDestroyPipelineCache"))
6941 {
6942 return (void*)entry_vkDestroyPipelineCache;
6943 }
6944 if (!strcmp(name, "vkGetPipelineCacheData"))
6945 {
6946 return (void*)entry_vkGetPipelineCacheData;
6947 }
6948 if (!strcmp(name, "vkMergePipelineCaches"))
6949 {
6950 return (void*)entry_vkMergePipelineCaches;
6951 }
6952 if (!strcmp(name, "vkCreateGraphicsPipelines"))
6953 {
6954 return (void*)entry_vkCreateGraphicsPipelines;
6955 }
6956 if (!strcmp(name, "vkCreateComputePipelines"))
6957 {
6958 return (void*)entry_vkCreateComputePipelines;
6959 }
6960 if (!strcmp(name, "vkDestroyPipeline"))
6961 {
6962 return (void*)entry_vkDestroyPipeline;
6963 }
6964 if (!strcmp(name, "vkCreatePipelineLayout"))
6965 {
6966 return (void*)entry_vkCreatePipelineLayout;
6967 }
6968 if (!strcmp(name, "vkDestroyPipelineLayout"))
6969 {
6970 return (void*)entry_vkDestroyPipelineLayout;
6971 }
6972 if (!strcmp(name, "vkCreateSampler"))
6973 {
6974 return (void*)entry_vkCreateSampler;
6975 }
6976 if (!strcmp(name, "vkDestroySampler"))
6977 {
6978 return (void*)entry_vkDestroySampler;
6979 }
6980 if (!strcmp(name, "vkCreateDescriptorSetLayout"))
6981 {
6982 return (void*)entry_vkCreateDescriptorSetLayout;
6983 }
6984 if (!strcmp(name, "vkDestroyDescriptorSetLayout"))
6985 {
6986 return (void*)entry_vkDestroyDescriptorSetLayout;
6987 }
6988 if (!strcmp(name, "vkCreateDescriptorPool"))
6989 {
6990 return (void*)entry_vkCreateDescriptorPool;
6991 }
6992 if (!strcmp(name, "vkDestroyDescriptorPool"))
6993 {
6994 return (void*)entry_vkDestroyDescriptorPool;
6995 }
6996 if (!strcmp(name, "vkResetDescriptorPool"))
6997 {
6998 return (void*)entry_vkResetDescriptorPool;
6999 }
7000 if (!strcmp(name, "vkAllocateDescriptorSets"))
7001 {
7002 return (void*)entry_vkAllocateDescriptorSets;
7003 }
7004 if (!strcmp(name, "vkFreeDescriptorSets"))
7005 {
7006 return (void*)entry_vkFreeDescriptorSets;
7007 }
7008 if (!strcmp(name, "vkUpdateDescriptorSets"))
7009 {
7010 return (void*)entry_vkUpdateDescriptorSets;
7011 }
7012 if (!strcmp(name, "vkCreateFramebuffer"))
7013 {
7014 return (void*)entry_vkCreateFramebuffer;
7015 }
7016 if (!strcmp(name, "vkDestroyFramebuffer"))
7017 {
7018 return (void*)entry_vkDestroyFramebuffer;
7019 }
7020 if (!strcmp(name, "vkCreateRenderPass"))
7021 {
7022 return (void*)entry_vkCreateRenderPass;
7023 }
7024 if (!strcmp(name, "vkDestroyRenderPass"))
7025 {
7026 return (void*)entry_vkDestroyRenderPass;
7027 }
7028 if (!strcmp(name, "vkGetRenderAreaGranularity"))
7029 {
7030 return (void*)entry_vkGetRenderAreaGranularity;
7031 }
7032 if (!strcmp(name, "vkCreateCommandPool"))
7033 {
7034 return (void*)entry_vkCreateCommandPool;
7035 }
7036 if (!strcmp(name, "vkDestroyCommandPool"))
7037 {
7038 return (void*)entry_vkDestroyCommandPool;
7039 }
7040 if (!strcmp(name, "vkResetCommandPool"))
7041 {
7042 return (void*)entry_vkResetCommandPool;
7043 }
7044 if (!strcmp(name, "vkAllocateCommandBuffers"))
7045 {
7046 return (void*)entry_vkAllocateCommandBuffers;
7047 }
7048 if (!strcmp(name, "vkFreeCommandBuffers"))
7049 {
7050 return (void*)entry_vkFreeCommandBuffers;
7051 }
7052 if (!strcmp(name, "vkBeginCommandBuffer"))
7053 {
7054 return (void*)entry_vkBeginCommandBuffer;
7055 }
7056 if (!strcmp(name, "vkEndCommandBuffer"))
7057 {
7058 return (void*)entry_vkEndCommandBuffer;
7059 }
7060 if (!strcmp(name, "vkResetCommandBuffer"))
7061 {
7062 return (void*)entry_vkResetCommandBuffer;
7063 }
7064 if (!strcmp(name, "vkCmdBindPipeline"))
7065 {
7066 return (void*)entry_vkCmdBindPipeline;
7067 }
7068 if (!strcmp(name, "vkCmdSetViewport"))
7069 {
7070 return (void*)entry_vkCmdSetViewport;
7071 }
7072 if (!strcmp(name, "vkCmdSetScissor"))
7073 {
7074 return (void*)entry_vkCmdSetScissor;
7075 }
7076 if (!strcmp(name, "vkCmdSetLineWidth"))
7077 {
7078 return (void*)entry_vkCmdSetLineWidth;
7079 }
7080 if (!strcmp(name, "vkCmdSetDepthBias"))
7081 {
7082 return (void*)entry_vkCmdSetDepthBias;
7083 }
7084 if (!strcmp(name, "vkCmdSetBlendConstants"))
7085 {
7086 return (void*)entry_vkCmdSetBlendConstants;
7087 }
7088 if (!strcmp(name, "vkCmdSetDepthBounds"))
7089 {
7090 return (void*)entry_vkCmdSetDepthBounds;
7091 }
7092 if (!strcmp(name, "vkCmdSetStencilCompareMask"))
7093 {
7094 return (void*)entry_vkCmdSetStencilCompareMask;
7095 }
7096 if (!strcmp(name, "vkCmdSetStencilWriteMask"))
7097 {
7098 return (void*)entry_vkCmdSetStencilWriteMask;
7099 }
7100 if (!strcmp(name, "vkCmdSetStencilReference"))
7101 {
7102 return (void*)entry_vkCmdSetStencilReference;
7103 }
7104 if (!strcmp(name, "vkCmdBindDescriptorSets"))
7105 {
7106 return (void*)entry_vkCmdBindDescriptorSets;
7107 }
7108 if (!strcmp(name, "vkCmdBindIndexBuffer"))
7109 {
7110 return (void*)entry_vkCmdBindIndexBuffer;
7111 }
7112 if (!strcmp(name, "vkCmdBindVertexBuffers"))
7113 {
7114 return (void*)entry_vkCmdBindVertexBuffers;
7115 }
7116 if (!strcmp(name, "vkCmdDraw"))
7117 {
7118 return (void*)entry_vkCmdDraw;
7119 }
7120 if (!strcmp(name, "vkCmdDrawIndexed"))
7121 {
7122 return (void*)entry_vkCmdDrawIndexed;
7123 }
7124 if (!strcmp(name, "vkCmdDrawIndirect"))
7125 {
7126 return (void*)entry_vkCmdDrawIndirect;
7127 }
7128 if (!strcmp(name, "vkCmdDrawIndexedIndirect"))
7129 {
7130 return (void*)entry_vkCmdDrawIndexedIndirect;
7131 }
7132 if (!strcmp(name, "vkCmdDispatch"))
7133 {
7134 return (void*)entry_vkCmdDispatch;
7135 }
7136 if (!strcmp(name, "vkCmdDispatchIndirect"))
7137 {
7138 return (void*)entry_vkCmdDispatchIndirect;
7139 }
7140 if (!strcmp(name, "vkCmdCopyBuffer"))
7141 {
7142 return (void*)entry_vkCmdCopyBuffer;
7143 }
7144 if (!strcmp(name, "vkCmdCopyImage"))
7145 {
7146 return (void*)entry_vkCmdCopyImage;
7147 }
7148 if (!strcmp(name, "vkCmdBlitImage"))
7149 {
7150 return (void*)entry_vkCmdBlitImage;
7151 }
7152 if (!strcmp(name, "vkCmdCopyBufferToImage"))
7153 {
7154 return (void*)entry_vkCmdCopyBufferToImage;
7155 }
7156 if (!strcmp(name, "vkCmdCopyImageToBuffer"))
7157 {
7158 return (void*)entry_vkCmdCopyImageToBuffer;
7159 }
7160 if (!strcmp(name, "vkCmdUpdateBuffer"))
7161 {
7162 return (void*)entry_vkCmdUpdateBuffer;
7163 }
7164 if (!strcmp(name, "vkCmdFillBuffer"))
7165 {
7166 return (void*)entry_vkCmdFillBuffer;
7167 }
7168 if (!strcmp(name, "vkCmdClearColorImage"))
7169 {
7170 return (void*)entry_vkCmdClearColorImage;
7171 }
7172 if (!strcmp(name, "vkCmdClearDepthStencilImage"))
7173 {
7174 return (void*)entry_vkCmdClearDepthStencilImage;
7175 }
7176 if (!strcmp(name, "vkCmdClearAttachments"))
7177 {
7178 return (void*)entry_vkCmdClearAttachments;
7179 }
7180 if (!strcmp(name, "vkCmdResolveImage"))
7181 {
7182 return (void*)entry_vkCmdResolveImage;
7183 }
7184 if (!strcmp(name, "vkCmdSetEvent"))
7185 {
7186 return (void*)entry_vkCmdSetEvent;
7187 }
7188 if (!strcmp(name, "vkCmdResetEvent"))
7189 {
7190 return (void*)entry_vkCmdResetEvent;
7191 }
7192 if (!strcmp(name, "vkCmdWaitEvents"))
7193 {
7194 return (void*)entry_vkCmdWaitEvents;
7195 }
7196 if (!strcmp(name, "vkCmdPipelineBarrier"))
7197 {
7198 return (void*)entry_vkCmdPipelineBarrier;
7199 }
7200 if (!strcmp(name, "vkCmdBeginQuery"))
7201 {
7202 return (void*)entry_vkCmdBeginQuery;
7203 }
7204 if (!strcmp(name, "vkCmdEndQuery"))
7205 {
7206 return (void*)entry_vkCmdEndQuery;
7207 }
7208 if (!strcmp(name, "vkCmdResetQueryPool"))
7209 {
7210 return (void*)entry_vkCmdResetQueryPool;
7211 }
7212 if (!strcmp(name, "vkCmdWriteTimestamp"))
7213 {
7214 return (void*)entry_vkCmdWriteTimestamp;
7215 }
7216 if (!strcmp(name, "vkCmdCopyQueryPoolResults"))
7217 {
7218 return (void*)entry_vkCmdCopyQueryPoolResults;
7219 }
7220 if (!strcmp(name, "vkCmdPushConstants"))
7221 {
7222 return (void*)entry_vkCmdPushConstants;
7223 }
7224 if (!strcmp(name, "vkCmdBeginRenderPass"))
7225 {
7226 return (void*)entry_vkCmdBeginRenderPass;
7227 }
7228 if (!strcmp(name, "vkCmdNextSubpass"))
7229 {
7230 return (void*)entry_vkCmdNextSubpass;
7231 }
7232 if (!strcmp(name, "vkCmdEndRenderPass"))
7233 {
7234 return (void*)entry_vkCmdEndRenderPass;
7235 }
7236 if (!strcmp(name, "vkCmdExecuteCommands"))
7237 {
7238 return (void*)entry_vkCmdExecuteCommands;
7239 }
7240#endif
7241#ifdef VK_VERSION_1_1
7242 if (!strcmp(name, "vkEnumerateInstanceVersion"))
7243 {
7244 return has1_1OrHigher ? (void*)entry_vkEnumerateInstanceVersion : nullptr;
7245 }
7246 if (!strcmp(name, "vkBindBufferMemory2"))
7247 {
7248 return has1_1OrHigher ? (void*)entry_vkBindBufferMemory2 : nullptr;
7249 }
7250 if (!strcmp(name, "vkBindImageMemory2"))
7251 {
7252 return has1_1OrHigher ? (void*)entry_vkBindImageMemory2 : nullptr;
7253 }
7254 if (!strcmp(name, "vkGetDeviceGroupPeerMemoryFeatures"))
7255 {
7256 return has1_1OrHigher ? (void*)entry_vkGetDeviceGroupPeerMemoryFeatures : nullptr;
7257 }
7258 if (!strcmp(name, "vkCmdSetDeviceMask"))
7259 {
7260 return has1_1OrHigher ? (void*)entry_vkCmdSetDeviceMask : nullptr;
7261 }
7262 if (!strcmp(name, "vkCmdDispatchBase"))
7263 {
7264 return has1_1OrHigher ? (void*)entry_vkCmdDispatchBase : nullptr;
7265 }
7266 if (!strcmp(name, "vkEnumeratePhysicalDeviceGroups"))
7267 {
7268 return nullptr;
7269 }
7270 if (!strcmp(name, "vkGetImageMemoryRequirements2"))
7271 {
7272 return has1_1OrHigher ? (void*)entry_vkGetImageMemoryRequirements2 : nullptr;
7273 }
7274 if (!strcmp(name, "vkGetBufferMemoryRequirements2"))
7275 {
7276 return has1_1OrHigher ? (void*)entry_vkGetBufferMemoryRequirements2 : nullptr;
7277 }
7278 if (!strcmp(name, "vkGetImageSparseMemoryRequirements2"))
7279 {
7280 return has1_1OrHigher ? (void*)entry_vkGetImageSparseMemoryRequirements2 : nullptr;
7281 }
7282 if (!strcmp(name, "vkGetPhysicalDeviceFeatures2"))
7283 {
7284 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceFeatures2 : nullptr;
7285 }
7286 if (!strcmp(name, "vkGetPhysicalDeviceProperties2"))
7287 {
7288 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceProperties2 : nullptr;
7289 }
7290 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties2"))
7291 {
7292 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceFormatProperties2 : nullptr;
7293 }
7294 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties2"))
7295 {
7296 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceImageFormatProperties2 : nullptr;
7297 }
7298 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties2"))
7299 {
7300 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties2 : nullptr;
7301 }
7302 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties2"))
7303 {
7304 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceMemoryProperties2 : nullptr;
7305 }
7306 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties2"))
7307 {
7308 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties2 : nullptr;
7309 }
7310 if (!strcmp(name, "vkTrimCommandPool"))
7311 {
7312 return has1_1OrHigher ? (void*)entry_vkTrimCommandPool : nullptr;
7313 }
7314 if (!strcmp(name, "vkGetDeviceQueue2"))
7315 {
7316 return has1_1OrHigher ? (void*)entry_vkGetDeviceQueue2 : nullptr;
7317 }
7318 if (!strcmp(name, "vkCreateSamplerYcbcrConversion"))
7319 {
7320 return has1_1OrHigher ? (void*)entry_vkCreateSamplerYcbcrConversion : nullptr;
7321 }
7322 if (!strcmp(name, "vkDestroySamplerYcbcrConversion"))
7323 {
7324 return has1_1OrHigher ? (void*)entry_vkDestroySamplerYcbcrConversion : nullptr;
7325 }
7326 if (!strcmp(name, "vkCreateDescriptorUpdateTemplate"))
7327 {
7328 return has1_1OrHigher ? (void*)entry_vkCreateDescriptorUpdateTemplate : nullptr;
7329 }
7330 if (!strcmp(name, "vkDestroyDescriptorUpdateTemplate"))
7331 {
7332 return has1_1OrHigher ? (void*)entry_vkDestroyDescriptorUpdateTemplate : nullptr;
7333 }
7334 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplate"))
7335 {
7336 return has1_1OrHigher ? (void*)entry_vkUpdateDescriptorSetWithTemplate : nullptr;
7337 }
7338 if (!strcmp(name, "vkGetPhysicalDeviceExternalBufferProperties"))
7339 {
7340 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceExternalBufferProperties : nullptr;
7341 }
7342 if (!strcmp(name, "vkGetPhysicalDeviceExternalFenceProperties"))
7343 {
7344 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceExternalFenceProperties : nullptr;
7345 }
7346 if (!strcmp(name, "vkGetPhysicalDeviceExternalSemaphoreProperties"))
7347 {
7348 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceExternalSemaphoreProperties : nullptr;
7349 }
7350 if (!strcmp(name, "vkGetDescriptorSetLayoutSupport"))
7351 {
7352 return has1_1OrHigher ? (void*)entry_vkGetDescriptorSetLayoutSupport : nullptr;
7353 }
7354#endif
7355#ifdef VK_KHR_surface
7356 if (!strcmp(name, "vkDestroySurfaceKHR"))
7357 {
7358 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_surface");
7359 return hasExt ? (void*)entry_vkDestroySurfaceKHR : nullptr;
7360 }
7361 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceSupportKHR"))
7362 {
7363 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_surface");
7364 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceSupportKHR : nullptr;
7365 }
7366 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR"))
7367 {
7368 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_surface");
7369 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceCapabilitiesKHR : nullptr;
7370 }
7371 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceFormatsKHR"))
7372 {
7373 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_surface");
7374 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceFormatsKHR : nullptr;
7375 }
7376 if (!strcmp(name, "vkGetPhysicalDeviceSurfacePresentModesKHR"))
7377 {
7378 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_surface");
7379 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfacePresentModesKHR : nullptr;
7380 }
7381#endif
7382#ifdef VK_KHR_swapchain
7383 if (!strcmp(name, "vkCreateSwapchainKHR"))
7384 {
7385 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7386 return hasExt ? (void*)entry_vkCreateSwapchainKHR : nullptr;
7387 }
7388 if (!strcmp(name, "vkDestroySwapchainKHR"))
7389 {
7390 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7391 return hasExt ? (void*)entry_vkDestroySwapchainKHR : nullptr;
7392 }
7393 if (!strcmp(name, "vkGetSwapchainImagesKHR"))
7394 {
7395 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7396 return hasExt ? (void*)entry_vkGetSwapchainImagesKHR : nullptr;
7397 }
7398 if (!strcmp(name, "vkAcquireNextImageKHR"))
7399 {
7400 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7401 return hasExt ? (void*)entry_vkAcquireNextImageKHR : nullptr;
7402 }
7403 if (!strcmp(name, "vkQueuePresentKHR"))
7404 {
7405 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7406 return hasExt ? (void*)entry_vkQueuePresentKHR : nullptr;
7407 }
7408 if (!strcmp(name, "vkGetDeviceGroupPresentCapabilitiesKHR"))
7409 {
7410 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7411 return hasExt ? (void*)entry_vkGetDeviceGroupPresentCapabilitiesKHR : nullptr;
7412 }
7413 if (!strcmp(name, "vkGetDeviceGroupSurfacePresentModesKHR"))
7414 {
7415 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7416 return hasExt ? (void*)entry_vkGetDeviceGroupSurfacePresentModesKHR : nullptr;
7417 }
7418 if (!strcmp(name, "vkGetPhysicalDevicePresentRectanglesKHR"))
7419 {
7420 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7421 return hasExt ? (void*)entry_vkGetPhysicalDevicePresentRectanglesKHR : nullptr;
7422 }
7423 if (!strcmp(name, "vkAcquireNextImage2KHR"))
7424 {
7425 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7426 return hasExt ? (void*)entry_vkAcquireNextImage2KHR : nullptr;
7427 }
7428#endif
7429#ifdef VK_KHR_display
7430 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPropertiesKHR"))
7431 {
7432 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
7433 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayPropertiesKHR : nullptr;
7434 }
7435 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR"))
7436 {
7437 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
7438 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayPlanePropertiesKHR : nullptr;
7439 }
7440 if (!strcmp(name, "vkGetDisplayPlaneSupportedDisplaysKHR"))
7441 {
7442 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
7443 return hasExt ? (void*)entry_vkGetDisplayPlaneSupportedDisplaysKHR : nullptr;
7444 }
7445 if (!strcmp(name, "vkGetDisplayModePropertiesKHR"))
7446 {
7447 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
7448 return hasExt ? (void*)entry_vkGetDisplayModePropertiesKHR : nullptr;
7449 }
7450 if (!strcmp(name, "vkCreateDisplayModeKHR"))
7451 {
7452 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
7453 return hasExt ? (void*)entry_vkCreateDisplayModeKHR : nullptr;
7454 }
7455 if (!strcmp(name, "vkGetDisplayPlaneCapabilitiesKHR"))
7456 {
7457 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
7458 return hasExt ? (void*)entry_vkGetDisplayPlaneCapabilitiesKHR : nullptr;
7459 }
7460 if (!strcmp(name, "vkCreateDisplayPlaneSurfaceKHR"))
7461 {
7462 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
7463 return hasExt ? (void*)entry_vkCreateDisplayPlaneSurfaceKHR : nullptr;
7464 }
7465#endif
7466#ifdef VK_KHR_display_swapchain
7467 if (!strcmp(name, "vkCreateSharedSwapchainsKHR"))
7468 {
7469 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display_swapchain");
7470 return hasExt ? (void*)entry_vkCreateSharedSwapchainsKHR : nullptr;
7471 }
7472#endif
7473#ifdef VK_KHR_xlib_surface
7474 if (!strcmp(name, "vkCreateXlibSurfaceKHR"))
7475 {
7476 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_xlib_surface");
7477 return hasExt ? (void*)entry_vkCreateXlibSurfaceKHR : nullptr;
7478 }
7479 if (!strcmp(name, "vkGetPhysicalDeviceXlibPresentationSupportKHR"))
7480 {
7481 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_xlib_surface");
7482 return hasExt ? (void*)entry_vkGetPhysicalDeviceXlibPresentationSupportKHR : nullptr;
7483 }
7484#endif
7485#ifdef VK_KHR_xcb_surface
7486 if (!strcmp(name, "vkCreateXcbSurfaceKHR"))
7487 {
7488 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_xcb_surface");
7489 return hasExt ? (void*)entry_vkCreateXcbSurfaceKHR : nullptr;
7490 }
7491 if (!strcmp(name, "vkGetPhysicalDeviceXcbPresentationSupportKHR"))
7492 {
7493 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_xcb_surface");
7494 return hasExt ? (void*)entry_vkGetPhysicalDeviceXcbPresentationSupportKHR : nullptr;
7495 }
7496#endif
7497#ifdef VK_KHR_wayland_surface
7498 if (!strcmp(name, "vkCreateWaylandSurfaceKHR"))
7499 {
7500 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_wayland_surface");
7501 return hasExt ? (void*)entry_vkCreateWaylandSurfaceKHR : nullptr;
7502 }
7503 if (!strcmp(name, "vkGetPhysicalDeviceWaylandPresentationSupportKHR"))
7504 {
7505 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_wayland_surface");
7506 return hasExt ? (void*)entry_vkGetPhysicalDeviceWaylandPresentationSupportKHR : nullptr;
7507 }
7508#endif
7509#ifdef VK_KHR_mir_surface
7510 if (!strcmp(name, "vkCreateMirSurfaceKHR"))
7511 {
7512 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_mir_surface");
7513 return hasExt ? (void*)entry_vkCreateMirSurfaceKHR : nullptr;
7514 }
7515 if (!strcmp(name, "vkGetPhysicalDeviceMirPresentationSupportKHR"))
7516 {
7517 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_mir_surface");
7518 return hasExt ? (void*)entry_vkGetPhysicalDeviceMirPresentationSupportKHR : nullptr;
7519 }
7520#endif
7521#ifdef VK_KHR_android_surface
7522 if (!strcmp(name, "vkCreateAndroidSurfaceKHR"))
7523 {
7524 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_android_surface");
7525 return hasExt ? (void*)entry_vkCreateAndroidSurfaceKHR : nullptr;
7526 }
7527#endif
7528#ifdef VK_KHR_win32_surface
7529 if (!strcmp(name, "vkCreateWin32SurfaceKHR"))
7530 {
7531 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_win32_surface");
7532 return hasExt ? (void*)entry_vkCreateWin32SurfaceKHR : nullptr;
7533 }
7534 if (!strcmp(name, "vkGetPhysicalDeviceWin32PresentationSupportKHR"))
7535 {
7536 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_win32_surface");
7537 return hasExt ? (void*)entry_vkGetPhysicalDeviceWin32PresentationSupportKHR : nullptr;
7538 }
7539#endif
7540#ifdef VK_KHR_get_physical_device_properties2
7541 if (!strcmp(name, "vkGetPhysicalDeviceFeatures2KHR"))
7542 {
7543 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
7544 return hasExt ? (void*)entry_vkGetPhysicalDeviceFeatures2KHR : nullptr;
7545 }
7546 if (!strcmp(name, "vkGetPhysicalDeviceProperties2KHR"))
7547 {
7548 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
7549 return hasExt ? (void*)entry_vkGetPhysicalDeviceProperties2KHR : nullptr;
7550 }
7551 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties2KHR"))
7552 {
7553 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
7554 return hasExt ? (void*)entry_vkGetPhysicalDeviceFormatProperties2KHR : nullptr;
7555 }
7556 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties2KHR"))
7557 {
7558 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
7559 return hasExt ? (void*)entry_vkGetPhysicalDeviceImageFormatProperties2KHR : nullptr;
7560 }
7561 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties2KHR"))
7562 {
7563 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
7564 return hasExt ? (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties2KHR : nullptr;
7565 }
7566 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties2KHR"))
7567 {
7568 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
7569 return hasExt ? (void*)entry_vkGetPhysicalDeviceMemoryProperties2KHR : nullptr;
7570 }
7571 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR"))
7572 {
7573 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
7574 return hasExt ? (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties2KHR : nullptr;
7575 }
7576#endif
7577#ifdef VK_KHR_device_group
7578 if (!strcmp(name, "vkGetDeviceGroupPeerMemoryFeaturesKHR"))
7579 {
7580 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_device_group");
7581 return hasExt ? (void*)entry_vkGetDeviceGroupPeerMemoryFeaturesKHR : nullptr;
7582 }
7583 if (!strcmp(name, "vkCmdSetDeviceMaskKHR"))
7584 {
7585 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_device_group");
7586 return hasExt ? (void*)entry_vkCmdSetDeviceMaskKHR : nullptr;
7587 }
7588 if (!strcmp(name, "vkCmdDispatchBaseKHR"))
7589 {
7590 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_device_group");
7591 return hasExt ? (void*)entry_vkCmdDispatchBaseKHR : nullptr;
7592 }
7593#endif
7594#ifdef VK_KHR_maintenance1
7595 if (!strcmp(name, "vkTrimCommandPoolKHR"))
7596 {
7597 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_maintenance1");
7598 return hasExt ? (void*)entry_vkTrimCommandPoolKHR : nullptr;
7599 }
7600#endif
7601#ifdef VK_KHR_device_group_creation
7602 if (!strcmp(name, "vkEnumeratePhysicalDeviceGroupsKHR"))
7603 {
7604 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_device_group_creation");
7605 return hasExt ? (void*)entry_vkEnumeratePhysicalDeviceGroupsKHR : nullptr;
7606 }
7607#endif
7608#ifdef VK_KHR_external_memory_capabilities
7609 if (!strcmp(name, "vkGetPhysicalDeviceExternalBufferPropertiesKHR"))
7610 {
7611 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_memory_capabilities");
7612 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalBufferPropertiesKHR : nullptr;
7613 }
7614#endif
7615#ifdef VK_KHR_external_memory_win32
7616 if (!strcmp(name, "vkGetMemoryWin32HandleKHR"))
7617 {
7618 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_memory_win32");
7619 return hasExt ? (void*)entry_vkGetMemoryWin32HandleKHR : nullptr;
7620 }
7621 if (!strcmp(name, "vkGetMemoryWin32HandlePropertiesKHR"))
7622 {
7623 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_memory_win32");
7624 return hasExt ? (void*)entry_vkGetMemoryWin32HandlePropertiesKHR : nullptr;
7625 }
7626#endif
7627#ifdef VK_KHR_external_memory_fd
7628 if (!strcmp(name, "vkGetMemoryFdKHR"))
7629 {
7630 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_memory_fd");
7631 return hasExt ? (void*)entry_vkGetMemoryFdKHR : nullptr;
7632 }
7633 if (!strcmp(name, "vkGetMemoryFdPropertiesKHR"))
7634 {
7635 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_memory_fd");
7636 return hasExt ? (void*)entry_vkGetMemoryFdPropertiesKHR : nullptr;
7637 }
7638#endif
7639#ifdef VK_KHR_external_semaphore_capabilities
7640 if (!strcmp(name, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR"))
7641 {
7642 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_semaphore_capabilities");
7643 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR : nullptr;
7644 }
7645#endif
7646#ifdef VK_KHR_external_semaphore_win32
7647 if (!strcmp(name, "vkImportSemaphoreWin32HandleKHR"))
7648 {
7649 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_semaphore_win32");
7650 return hasExt ? (void*)entry_vkImportSemaphoreWin32HandleKHR : nullptr;
7651 }
7652 if (!strcmp(name, "vkGetSemaphoreWin32HandleKHR"))
7653 {
7654 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_semaphore_win32");
7655 return hasExt ? (void*)entry_vkGetSemaphoreWin32HandleKHR : nullptr;
7656 }
7657#endif
7658#ifdef VK_KHR_external_semaphore_fd
7659 if (!strcmp(name, "vkImportSemaphoreFdKHR"))
7660 {
7661 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_semaphore_fd");
7662 return hasExt ? (void*)entry_vkImportSemaphoreFdKHR : nullptr;
7663 }
7664 if (!strcmp(name, "vkGetSemaphoreFdKHR"))
7665 {
7666 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_semaphore_fd");
7667 return hasExt ? (void*)entry_vkGetSemaphoreFdKHR : nullptr;
7668 }
7669#endif
7670#ifdef VK_KHR_push_descriptor
7671 if (!strcmp(name, "vkCmdPushDescriptorSetKHR"))
7672 {
7673 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_push_descriptor");
7674 return hasExt ? (void*)entry_vkCmdPushDescriptorSetKHR : nullptr;
7675 }
7676 if (!strcmp(name, "vkCmdPushDescriptorSetWithTemplateKHR"))
7677 {
7678 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_push_descriptor");
7679 return hasExt ? (void*)entry_vkCmdPushDescriptorSetWithTemplateKHR : nullptr;
7680 }
7681#endif
7682#ifdef VK_KHR_descriptor_update_template
7683 if (!strcmp(name, "vkCreateDescriptorUpdateTemplateKHR"))
7684 {
7685 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_descriptor_update_template");
7686 return hasExt ? (void*)entry_vkCreateDescriptorUpdateTemplateKHR : nullptr;
7687 }
7688 if (!strcmp(name, "vkDestroyDescriptorUpdateTemplateKHR"))
7689 {
7690 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_descriptor_update_template");
7691 return hasExt ? (void*)entry_vkDestroyDescriptorUpdateTemplateKHR : nullptr;
7692 }
7693 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplateKHR"))
7694 {
7695 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_descriptor_update_template");
7696 return hasExt ? (void*)entry_vkUpdateDescriptorSetWithTemplateKHR : nullptr;
7697 }
7698#endif
7699#ifdef VK_KHR_create_renderpass2
7700 if (!strcmp(name, "vkCreateRenderPass2KHR"))
7701 {
7702 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_create_renderpass2");
7703 return hasExt ? (void*)entry_vkCreateRenderPass2KHR : nullptr;
7704 }
7705 if (!strcmp(name, "vkCmdBeginRenderPass2KHR"))
7706 {
7707 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_create_renderpass2");
7708 return hasExt ? (void*)entry_vkCmdBeginRenderPass2KHR : nullptr;
7709 }
7710 if (!strcmp(name, "vkCmdNextSubpass2KHR"))
7711 {
7712 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_create_renderpass2");
7713 return hasExt ? (void*)entry_vkCmdNextSubpass2KHR : nullptr;
7714 }
7715 if (!strcmp(name, "vkCmdEndRenderPass2KHR"))
7716 {
7717 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_create_renderpass2");
7718 return hasExt ? (void*)entry_vkCmdEndRenderPass2KHR : nullptr;
7719 }
7720#endif
7721#ifdef VK_KHR_shared_presentable_image
7722 if (!strcmp(name, "vkGetSwapchainStatusKHR"))
7723 {
7724 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_shared_presentable_image");
7725 return hasExt ? (void*)entry_vkGetSwapchainStatusKHR : nullptr;
7726 }
7727#endif
7728#ifdef VK_KHR_external_fence_capabilities
7729 if (!strcmp(name, "vkGetPhysicalDeviceExternalFencePropertiesKHR"))
7730 {
7731 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_fence_capabilities");
7732 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalFencePropertiesKHR : nullptr;
7733 }
7734#endif
7735#ifdef VK_KHR_external_fence_win32
7736 if (!strcmp(name, "vkImportFenceWin32HandleKHR"))
7737 {
7738 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_fence_win32");
7739 return hasExt ? (void*)entry_vkImportFenceWin32HandleKHR : nullptr;
7740 }
7741 if (!strcmp(name, "vkGetFenceWin32HandleKHR"))
7742 {
7743 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_fence_win32");
7744 return hasExt ? (void*)entry_vkGetFenceWin32HandleKHR : nullptr;
7745 }
7746#endif
7747#ifdef VK_KHR_external_fence_fd
7748 if (!strcmp(name, "vkImportFenceFdKHR"))
7749 {
7750 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_fence_fd");
7751 return hasExt ? (void*)entry_vkImportFenceFdKHR : nullptr;
7752 }
7753 if (!strcmp(name, "vkGetFenceFdKHR"))
7754 {
7755 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_fence_fd");
7756 return hasExt ? (void*)entry_vkGetFenceFdKHR : nullptr;
7757 }
7758#endif
7759#ifdef VK_KHR_get_surface_capabilities2
7760 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2KHR"))
7761 {
7762 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_surface_capabilities2");
7763 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceCapabilities2KHR : nullptr;
7764 }
7765 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceFormats2KHR"))
7766 {
7767 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_surface_capabilities2");
7768 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceFormats2KHR : nullptr;
7769 }
7770#endif
7771#ifdef VK_KHR_get_display_properties2
7772 if (!strcmp(name, "vkGetPhysicalDeviceDisplayProperties2KHR"))
7773 {
7774 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_display_properties2");
7775 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayProperties2KHR : nullptr;
7776 }
7777 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR"))
7778 {
7779 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_display_properties2");
7780 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayPlaneProperties2KHR : nullptr;
7781 }
7782 if (!strcmp(name, "vkGetDisplayModeProperties2KHR"))
7783 {
7784 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_display_properties2");
7785 return hasExt ? (void*)entry_vkGetDisplayModeProperties2KHR : nullptr;
7786 }
7787 if (!strcmp(name, "vkGetDisplayPlaneCapabilities2KHR"))
7788 {
7789 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_display_properties2");
7790 return hasExt ? (void*)entry_vkGetDisplayPlaneCapabilities2KHR : nullptr;
7791 }
7792#endif
7793#ifdef VK_KHR_get_memory_requirements2
7794 if (!strcmp(name, "vkGetImageMemoryRequirements2KHR"))
7795 {
7796 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_memory_requirements2");
7797 return hasExt ? (void*)entry_vkGetImageMemoryRequirements2KHR : nullptr;
7798 }
7799 if (!strcmp(name, "vkGetBufferMemoryRequirements2KHR"))
7800 {
7801 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_memory_requirements2");
7802 return hasExt ? (void*)entry_vkGetBufferMemoryRequirements2KHR : nullptr;
7803 }
7804 if (!strcmp(name, "vkGetImageSparseMemoryRequirements2KHR"))
7805 {
7806 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_memory_requirements2");
7807 return hasExt ? (void*)entry_vkGetImageSparseMemoryRequirements2KHR : nullptr;
7808 }
7809#endif
7810#ifdef VK_KHR_sampler_ycbcr_conversion
7811 if (!strcmp(name, "vkCreateSamplerYcbcrConversionKHR"))
7812 {
7813 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_sampler_ycbcr_conversion");
7814 return hasExt ? (void*)entry_vkCreateSamplerYcbcrConversionKHR : nullptr;
7815 }
7816 if (!strcmp(name, "vkDestroySamplerYcbcrConversionKHR"))
7817 {
7818 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_sampler_ycbcr_conversion");
7819 return hasExt ? (void*)entry_vkDestroySamplerYcbcrConversionKHR : nullptr;
7820 }
7821#endif
7822#ifdef VK_KHR_bind_memory2
7823 if (!strcmp(name, "vkBindBufferMemory2KHR"))
7824 {
7825 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_bind_memory2");
7826 return hasExt ? (void*)entry_vkBindBufferMemory2KHR : nullptr;
7827 }
7828 if (!strcmp(name, "vkBindImageMemory2KHR"))
7829 {
7830 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_bind_memory2");
7831 return hasExt ? (void*)entry_vkBindImageMemory2KHR : nullptr;
7832 }
7833#endif
7834#ifdef VK_KHR_maintenance3
7835 if (!strcmp(name, "vkGetDescriptorSetLayoutSupportKHR"))
7836 {
7837 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_maintenance3");
7838 return hasExt ? (void*)entry_vkGetDescriptorSetLayoutSupportKHR : nullptr;
7839 }
7840#endif
7841#ifdef VK_KHR_draw_indirect_count
7842 if (!strcmp(name, "vkCmdDrawIndirectCountKHR"))
7843 {
7844 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_draw_indirect_count");
7845 return hasExt ? (void*)entry_vkCmdDrawIndirectCountKHR : nullptr;
7846 }
7847 if (!strcmp(name, "vkCmdDrawIndexedIndirectCountKHR"))
7848 {
7849 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_draw_indirect_count");
7850 return hasExt ? (void*)entry_vkCmdDrawIndexedIndirectCountKHR : nullptr;
7851 }
7852#endif
7853#ifdef VK_ANDROID_native_buffer
7854 if (!strcmp(name, "vkGetSwapchainGrallocUsageANDROID"))
7855 {
7856 bool hasExt = resources->hasDeviceExtension(device, "VK_ANDROID_native_buffer");
7857 return hasExt ? (void*)entry_vkGetSwapchainGrallocUsageANDROID : nullptr;
7858 }
7859 if (!strcmp(name, "vkAcquireImageANDROID"))
7860 {
7861 bool hasExt = resources->hasDeviceExtension(device, "VK_ANDROID_native_buffer");
7862 return hasExt ? (void*)entry_vkAcquireImageANDROID : nullptr;
7863 }
7864 if (!strcmp(name, "vkQueueSignalReleaseImageANDROID"))
7865 {
7866 bool hasExt = resources->hasDeviceExtension(device, "VK_ANDROID_native_buffer");
7867 return hasExt ? (void*)entry_vkQueueSignalReleaseImageANDROID : nullptr;
7868 }
7869#endif
7870#ifdef VK_EXT_debug_report
7871 if (!strcmp(name, "vkCreateDebugReportCallbackEXT"))
7872 {
7873 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_report");
7874 return hasExt ? (void*)entry_vkCreateDebugReportCallbackEXT : nullptr;
7875 }
7876 if (!strcmp(name, "vkDestroyDebugReportCallbackEXT"))
7877 {
7878 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_report");
7879 return hasExt ? (void*)entry_vkDestroyDebugReportCallbackEXT : nullptr;
7880 }
7881 if (!strcmp(name, "vkDebugReportMessageEXT"))
7882 {
7883 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_report");
7884 return hasExt ? (void*)entry_vkDebugReportMessageEXT : nullptr;
7885 }
7886#endif
7887#ifdef VK_EXT_debug_marker
7888 if (!strcmp(name, "vkDebugMarkerSetObjectTagEXT"))
7889 {
7890 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_marker");
7891 return hasExt ? (void*)entry_vkDebugMarkerSetObjectTagEXT : nullptr;
7892 }
7893 if (!strcmp(name, "vkDebugMarkerSetObjectNameEXT"))
7894 {
7895 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_marker");
7896 return hasExt ? (void*)entry_vkDebugMarkerSetObjectNameEXT : nullptr;
7897 }
7898 if (!strcmp(name, "vkCmdDebugMarkerBeginEXT"))
7899 {
7900 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_marker");
7901 return hasExt ? (void*)entry_vkCmdDebugMarkerBeginEXT : nullptr;
7902 }
7903 if (!strcmp(name, "vkCmdDebugMarkerEndEXT"))
7904 {
7905 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_marker");
7906 return hasExt ? (void*)entry_vkCmdDebugMarkerEndEXT : nullptr;
7907 }
7908 if (!strcmp(name, "vkCmdDebugMarkerInsertEXT"))
7909 {
7910 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_marker");
7911 return hasExt ? (void*)entry_vkCmdDebugMarkerInsertEXT : nullptr;
7912 }
7913#endif
7914#ifdef VK_AMD_draw_indirect_count
7915 if (!strcmp(name, "vkCmdDrawIndirectCountAMD"))
7916 {
7917 bool hasExt = resources->hasDeviceExtension(device, "VK_AMD_draw_indirect_count");
7918 return hasExt ? (void*)entry_vkCmdDrawIndirectCountAMD : nullptr;
7919 }
7920 if (!strcmp(name, "vkCmdDrawIndexedIndirectCountAMD"))
7921 {
7922 bool hasExt = resources->hasDeviceExtension(device, "VK_AMD_draw_indirect_count");
7923 return hasExt ? (void*)entry_vkCmdDrawIndexedIndirectCountAMD : nullptr;
7924 }
7925#endif
7926#ifdef VK_AMD_shader_info
7927 if (!strcmp(name, "vkGetShaderInfoAMD"))
7928 {
7929 bool hasExt = resources->hasDeviceExtension(device, "VK_AMD_shader_info");
7930 return hasExt ? (void*)entry_vkGetShaderInfoAMD : nullptr;
7931 }
7932#endif
7933#ifdef VK_NV_external_memory_capabilities
7934 if (!strcmp(name, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV"))
7935 {
7936 bool hasExt = resources->hasDeviceExtension(device, "VK_NV_external_memory_capabilities");
7937 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalImageFormatPropertiesNV : nullptr;
7938 }
7939#endif
7940#ifdef VK_NV_external_memory_win32
7941 if (!strcmp(name, "vkGetMemoryWin32HandleNV"))
7942 {
7943 bool hasExt = resources->hasDeviceExtension(device, "VK_NV_external_memory_win32");
7944 return hasExt ? (void*)entry_vkGetMemoryWin32HandleNV : nullptr;
7945 }
7946#endif
7947#ifdef VK_NN_vi_surface
7948 if (!strcmp(name, "vkCreateViSurfaceNN"))
7949 {
7950 bool hasExt = resources->hasDeviceExtension(device, "VK_NN_vi_surface");
7951 return hasExt ? (void*)entry_vkCreateViSurfaceNN : nullptr;
7952 }
7953#endif
7954#ifdef VK_EXT_conditional_rendering
7955 if (!strcmp(name, "vkCmdBeginConditionalRenderingEXT"))
7956 {
7957 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_conditional_rendering");
7958 return hasExt ? (void*)entry_vkCmdBeginConditionalRenderingEXT : nullptr;
7959 }
7960 if (!strcmp(name, "vkCmdEndConditionalRenderingEXT"))
7961 {
7962 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_conditional_rendering");
7963 return hasExt ? (void*)entry_vkCmdEndConditionalRenderingEXT : nullptr;
7964 }
7965#endif
7966#ifdef VK_NVX_device_generated_commands
7967 if (!strcmp(name, "vkCmdProcessCommandsNVX"))
7968 {
7969 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
7970 return hasExt ? (void*)entry_vkCmdProcessCommandsNVX : nullptr;
7971 }
7972 if (!strcmp(name, "vkCmdReserveSpaceForCommandsNVX"))
7973 {
7974 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
7975 return hasExt ? (void*)entry_vkCmdReserveSpaceForCommandsNVX : nullptr;
7976 }
7977 if (!strcmp(name, "vkCreateIndirectCommandsLayoutNVX"))
7978 {
7979 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
7980 return hasExt ? (void*)entry_vkCreateIndirectCommandsLayoutNVX : nullptr;
7981 }
7982 if (!strcmp(name, "vkDestroyIndirectCommandsLayoutNVX"))
7983 {
7984 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
7985 return hasExt ? (void*)entry_vkDestroyIndirectCommandsLayoutNVX : nullptr;
7986 }
7987 if (!strcmp(name, "vkCreateObjectTableNVX"))
7988 {
7989 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
7990 return hasExt ? (void*)entry_vkCreateObjectTableNVX : nullptr;
7991 }
7992 if (!strcmp(name, "vkDestroyObjectTableNVX"))
7993 {
7994 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
7995 return hasExt ? (void*)entry_vkDestroyObjectTableNVX : nullptr;
7996 }
7997 if (!strcmp(name, "vkRegisterObjectsNVX"))
7998 {
7999 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
8000 return hasExt ? (void*)entry_vkRegisterObjectsNVX : nullptr;
8001 }
8002 if (!strcmp(name, "vkUnregisterObjectsNVX"))
8003 {
8004 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
8005 return hasExt ? (void*)entry_vkUnregisterObjectsNVX : nullptr;
8006 }
8007 if (!strcmp(name, "vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX"))
8008 {
8009 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
8010 return hasExt ? (void*)entry_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX : nullptr;
8011 }
8012#endif
8013#ifdef VK_NV_clip_space_w_scaling
8014 if (!strcmp(name, "vkCmdSetViewportWScalingNV"))
8015 {
8016 bool hasExt = resources->hasDeviceExtension(device, "VK_NV_clip_space_w_scaling");
8017 return hasExt ? (void*)entry_vkCmdSetViewportWScalingNV : nullptr;
8018 }
8019#endif
8020#ifdef VK_EXT_direct_mode_display
8021 if (!strcmp(name, "vkReleaseDisplayEXT"))
8022 {
8023 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_direct_mode_display");
8024 return hasExt ? (void*)entry_vkReleaseDisplayEXT : nullptr;
8025 }
8026#endif
8027#ifdef VK_EXT_acquire_xlib_display
8028 if (!strcmp(name, "vkAcquireXlibDisplayEXT"))
8029 {
8030 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_acquire_xlib_display");
8031 return hasExt ? (void*)entry_vkAcquireXlibDisplayEXT : nullptr;
8032 }
8033 if (!strcmp(name, "vkGetRandROutputDisplayEXT"))
8034 {
8035 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_acquire_xlib_display");
8036 return hasExt ? (void*)entry_vkGetRandROutputDisplayEXT : nullptr;
8037 }
8038#endif
8039#ifdef VK_EXT_display_surface_counter
8040 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2EXT"))
8041 {
8042 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_display_surface_counter");
8043 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceCapabilities2EXT : nullptr;
8044 }
8045#endif
8046#ifdef VK_EXT_display_control
8047 if (!strcmp(name, "vkDisplayPowerControlEXT"))
8048 {
8049 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_display_control");
8050 return hasExt ? (void*)entry_vkDisplayPowerControlEXT : nullptr;
8051 }
8052 if (!strcmp(name, "vkRegisterDeviceEventEXT"))
8053 {
8054 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_display_control");
8055 return hasExt ? (void*)entry_vkRegisterDeviceEventEXT : nullptr;
8056 }
8057 if (!strcmp(name, "vkRegisterDisplayEventEXT"))
8058 {
8059 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_display_control");
8060 return hasExt ? (void*)entry_vkRegisterDisplayEventEXT : nullptr;
8061 }
8062 if (!strcmp(name, "vkGetSwapchainCounterEXT"))
8063 {
8064 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_display_control");
8065 return hasExt ? (void*)entry_vkGetSwapchainCounterEXT : nullptr;
8066 }
8067#endif
8068#ifdef VK_GOOGLE_display_timing
8069 if (!strcmp(name, "vkGetRefreshCycleDurationGOOGLE"))
8070 {
8071 bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_display_timing");
8072 return hasExt ? (void*)entry_vkGetRefreshCycleDurationGOOGLE : nullptr;
8073 }
8074 if (!strcmp(name, "vkGetPastPresentationTimingGOOGLE"))
8075 {
8076 bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_display_timing");
8077 return hasExt ? (void*)entry_vkGetPastPresentationTimingGOOGLE : nullptr;
8078 }
8079#endif
8080#ifdef VK_EXT_discard_rectangles
8081 if (!strcmp(name, "vkCmdSetDiscardRectangleEXT"))
8082 {
8083 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_discard_rectangles");
8084 return hasExt ? (void*)entry_vkCmdSetDiscardRectangleEXT : nullptr;
8085 }
8086#endif
8087#ifdef VK_EXT_hdr_metadata
8088 if (!strcmp(name, "vkSetHdrMetadataEXT"))
8089 {
8090 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_hdr_metadata");
8091 return hasExt ? (void*)entry_vkSetHdrMetadataEXT : nullptr;
8092 }
8093#endif
8094#ifdef VK_MVK_ios_surface
8095 if (!strcmp(name, "vkCreateIOSSurfaceMVK"))
8096 {
8097 bool hasExt = resources->hasDeviceExtension(device, "VK_MVK_ios_surface");
8098 return hasExt ? (void*)entry_vkCreateIOSSurfaceMVK : nullptr;
8099 }
8100#endif
8101#ifdef VK_MVK_macos_surface
8102 if (!strcmp(name, "vkCreateMacOSSurfaceMVK"))
8103 {
8104 bool hasExt = resources->hasDeviceExtension(device, "VK_MVK_macos_surface");
8105 return hasExt ? (void*)entry_vkCreateMacOSSurfaceMVK : nullptr;
8106 }
8107#endif
8108#ifdef VK_EXT_debug_utils
8109 if (!strcmp(name, "vkSetDebugUtilsObjectNameEXT"))
8110 {
8111 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8112 return hasExt ? (void*)entry_vkSetDebugUtilsObjectNameEXT : nullptr;
8113 }
8114 if (!strcmp(name, "vkSetDebugUtilsObjectTagEXT"))
8115 {
8116 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8117 return hasExt ? (void*)entry_vkSetDebugUtilsObjectTagEXT : nullptr;
8118 }
8119 if (!strcmp(name, "vkQueueBeginDebugUtilsLabelEXT"))
8120 {
8121 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8122 return hasExt ? (void*)entry_vkQueueBeginDebugUtilsLabelEXT : nullptr;
8123 }
8124 if (!strcmp(name, "vkQueueEndDebugUtilsLabelEXT"))
8125 {
8126 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8127 return hasExt ? (void*)entry_vkQueueEndDebugUtilsLabelEXT : nullptr;
8128 }
8129 if (!strcmp(name, "vkQueueInsertDebugUtilsLabelEXT"))
8130 {
8131 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8132 return hasExt ? (void*)entry_vkQueueInsertDebugUtilsLabelEXT : nullptr;
8133 }
8134 if (!strcmp(name, "vkCmdBeginDebugUtilsLabelEXT"))
8135 {
8136 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8137 return hasExt ? (void*)entry_vkCmdBeginDebugUtilsLabelEXT : nullptr;
8138 }
8139 if (!strcmp(name, "vkCmdEndDebugUtilsLabelEXT"))
8140 {
8141 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8142 return hasExt ? (void*)entry_vkCmdEndDebugUtilsLabelEXT : nullptr;
8143 }
8144 if (!strcmp(name, "vkCmdInsertDebugUtilsLabelEXT"))
8145 {
8146 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8147 return hasExt ? (void*)entry_vkCmdInsertDebugUtilsLabelEXT : nullptr;
8148 }
8149 if (!strcmp(name, "vkCreateDebugUtilsMessengerEXT"))
8150 {
8151 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8152 return hasExt ? (void*)entry_vkCreateDebugUtilsMessengerEXT : nullptr;
8153 }
8154 if (!strcmp(name, "vkDestroyDebugUtilsMessengerEXT"))
8155 {
8156 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8157 return hasExt ? (void*)entry_vkDestroyDebugUtilsMessengerEXT : nullptr;
8158 }
8159 if (!strcmp(name, "vkSubmitDebugUtilsMessageEXT"))
8160 {
8161 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8162 return hasExt ? (void*)entry_vkSubmitDebugUtilsMessageEXT : nullptr;
8163 }
8164#endif
8165#ifdef VK_ANDROID_external_memory_android_hardware_buffer
8166 if (!strcmp(name, "vkGetAndroidHardwareBufferPropertiesANDROID"))
8167 {
8168 bool hasExt = resources->hasDeviceExtension(device, "VK_ANDROID_external_memory_android_hardware_buffer");
8169 return hasExt ? (void*)entry_vkGetAndroidHardwareBufferPropertiesANDROID : nullptr;
8170 }
8171 if (!strcmp(name, "vkGetMemoryAndroidHardwareBufferANDROID"))
8172 {
8173 bool hasExt = resources->hasDeviceExtension(device, "VK_ANDROID_external_memory_android_hardware_buffer");
8174 return hasExt ? (void*)entry_vkGetMemoryAndroidHardwareBufferANDROID : nullptr;
8175 }
8176#endif
8177#ifdef VK_EXT_sample_locations
8178 if (!strcmp(name, "vkCmdSetSampleLocationsEXT"))
8179 {
8180 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_sample_locations");
8181 return hasExt ? (void*)entry_vkCmdSetSampleLocationsEXT : nullptr;
8182 }
8183 if (!strcmp(name, "vkGetPhysicalDeviceMultisamplePropertiesEXT"))
8184 {
8185 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_sample_locations");
8186 return hasExt ? (void*)entry_vkGetPhysicalDeviceMultisamplePropertiesEXT : nullptr;
8187 }
8188#endif
8189#ifdef VK_EXT_validation_cache
8190 if (!strcmp(name, "vkCreateValidationCacheEXT"))
8191 {
8192 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_validation_cache");
8193 return hasExt ? (void*)entry_vkCreateValidationCacheEXT : nullptr;
8194 }
8195 if (!strcmp(name, "vkDestroyValidationCacheEXT"))
8196 {
8197 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_validation_cache");
8198 return hasExt ? (void*)entry_vkDestroyValidationCacheEXT : nullptr;
8199 }
8200 if (!strcmp(name, "vkMergeValidationCachesEXT"))
8201 {
8202 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_validation_cache");
8203 return hasExt ? (void*)entry_vkMergeValidationCachesEXT : nullptr;
8204 }
8205 if (!strcmp(name, "vkGetValidationCacheDataEXT"))
8206 {
8207 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_validation_cache");
8208 return hasExt ? (void*)entry_vkGetValidationCacheDataEXT : nullptr;
8209 }
8210#endif
8211#ifdef VK_EXT_external_memory_host
8212 if (!strcmp(name, "vkGetMemoryHostPointerPropertiesEXT"))
8213 {
8214 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_external_memory_host");
8215 return hasExt ? (void*)entry_vkGetMemoryHostPointerPropertiesEXT : nullptr;
8216 }
8217#endif
8218#ifdef VK_AMD_buffer_marker
8219 if (!strcmp(name, "vkCmdWriteBufferMarkerAMD"))
8220 {
8221 bool hasExt = resources->hasDeviceExtension(device, "VK_AMD_buffer_marker");
8222 return hasExt ? (void*)entry_vkCmdWriteBufferMarkerAMD : nullptr;
8223 }
8224#endif
8225#ifdef VK_NV_device_diagnostic_checkpoints
8226 if (!strcmp(name, "vkCmdSetCheckpointNV"))
8227 {
8228 bool hasExt = resources->hasDeviceExtension(device, "VK_NV_device_diagnostic_checkpoints");
8229 return hasExt ? (void*)entry_vkCmdSetCheckpointNV : nullptr;
8230 }
8231 if (!strcmp(name, "vkGetQueueCheckpointDataNV"))
8232 {
8233 bool hasExt = resources->hasDeviceExtension(device, "VK_NV_device_diagnostic_checkpoints");
8234 return hasExt ? (void*)entry_vkGetQueueCheckpointDataNV : nullptr;
8235 }
8236#endif
8237#ifdef VK_GOOGLE_address_space
8238 if (!strcmp(name, "vkMapMemoryIntoAddressSpaceGOOGLE"))
8239 {
8240 bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_address_space");
8241 return hasExt ? (void*)entry_vkMapMemoryIntoAddressSpaceGOOGLE : nullptr;
Lingfeng Yang5c63afd2018-12-22 01:21:14 -08008242 }
8243#endif
Lingfeng Yangae7e1b32019-02-19 14:07:39 -08008244#ifdef VK_GOOGLE_color_buffer
8245 if (!strcmp(name, "vkRegisterImageColorBufferGOOGLE"))
8246 {
8247 bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_color_buffer");
8248 return hasExt ? (void*)entry_vkRegisterImageColorBufferGOOGLE : nullptr;
8249 }
8250 if (!strcmp(name, "vkRegisterBufferColorBufferGOOGLE"))
8251 {
8252 bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_color_buffer");
8253 return hasExt ? (void*)entry_vkRegisterBufferColorBufferGOOGLE : nullptr;
8254 }
8255#endif
Lingfeng Yang0b81df22018-11-05 21:40:30 -08008256 return nullptr;
8257}
8258
8259} // namespace goldfish_vk