blob: 2d0b138483e5996065588b349c71e0ddbc3d45c6 [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;
Lingfeng Yangcd2d8fe2019-08-16 12:21:50 -0700247 auto resources = ResourceTracker::get();
248 vkQueueWaitIdle_VkResult_return = resources->on_vkQueueWaitIdle(vkEnc, VK_SUCCESS, queue);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800249 return vkQueueWaitIdle_VkResult_return;
250}
251static VkResult entry_vkDeviceWaitIdle(
252 VkDevice device)
253{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800254 AEMU_SCOPED_TRACE("vkDeviceWaitIdle");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800255 auto vkEnc = HostConnection::get()->vkEncoder();
256 VkResult vkDeviceWaitIdle_VkResult_return = (VkResult)0;
257 vkDeviceWaitIdle_VkResult_return = vkEnc->vkDeviceWaitIdle(device);
258 return vkDeviceWaitIdle_VkResult_return;
259}
260static VkResult entry_vkAllocateMemory(
261 VkDevice device,
262 const VkMemoryAllocateInfo* pAllocateInfo,
263 const VkAllocationCallbacks* pAllocator,
264 VkDeviceMemory* pMemory)
265{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800266 AEMU_SCOPED_TRACE("vkAllocateMemory");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800267 auto vkEnc = HostConnection::get()->vkEncoder();
268 VkResult vkAllocateMemory_VkResult_return = (VkResult)0;
Lingfeng Yange9979522018-12-25 14:44:52 -0800269 auto resources = ResourceTracker::get();
270 vkAllocateMemory_VkResult_return = resources->on_vkAllocateMemory(vkEnc, VK_SUCCESS, device, pAllocateInfo, pAllocator, pMemory);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800271 return vkAllocateMemory_VkResult_return;
272}
273static void entry_vkFreeMemory(
274 VkDevice device,
275 VkDeviceMemory memory,
276 const VkAllocationCallbacks* pAllocator)
277{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800278 AEMU_SCOPED_TRACE("vkFreeMemory");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800279 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yange9979522018-12-25 14:44:52 -0800280 auto resources = ResourceTracker::get();
281 resources->on_vkFreeMemory(vkEnc, device, memory, pAllocator);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800282}
283static VkResult entry_vkMapMemory(
284 VkDevice device,
285 VkDeviceMemory memory,
286 VkDeviceSize offset,
287 VkDeviceSize size,
288 VkMemoryMapFlags flags,
289 void** ppData)
290{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800291 AEMU_SCOPED_TRACE("vkMapMemory");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800292 auto vkEnc = HostConnection::get()->vkEncoder();
293 VkResult vkMapMemory_VkResult_return = (VkResult)0;
294 vkMapMemory_VkResult_return = vkEnc->vkMapMemory(device, memory, offset, size, flags, ppData);
295 return vkMapMemory_VkResult_return;
296}
297static void entry_vkUnmapMemory(
298 VkDevice device,
299 VkDeviceMemory memory)
300{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800301 AEMU_SCOPED_TRACE("vkUnmapMemory");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800302 auto vkEnc = HostConnection::get()->vkEncoder();
303 vkEnc->vkUnmapMemory(device, memory);
304}
305static VkResult entry_vkFlushMappedMemoryRanges(
306 VkDevice device,
307 uint32_t memoryRangeCount,
308 const VkMappedMemoryRange* pMemoryRanges)
309{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800310 AEMU_SCOPED_TRACE("vkFlushMappedMemoryRanges");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800311 auto vkEnc = HostConnection::get()->vkEncoder();
312 VkResult vkFlushMappedMemoryRanges_VkResult_return = (VkResult)0;
313 vkFlushMappedMemoryRanges_VkResult_return = vkEnc->vkFlushMappedMemoryRanges(device, memoryRangeCount, pMemoryRanges);
314 return vkFlushMappedMemoryRanges_VkResult_return;
315}
316static VkResult entry_vkInvalidateMappedMemoryRanges(
317 VkDevice device,
318 uint32_t memoryRangeCount,
319 const VkMappedMemoryRange* pMemoryRanges)
320{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800321 AEMU_SCOPED_TRACE("vkInvalidateMappedMemoryRanges");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800322 auto vkEnc = HostConnection::get()->vkEncoder();
323 VkResult vkInvalidateMappedMemoryRanges_VkResult_return = (VkResult)0;
324 vkInvalidateMappedMemoryRanges_VkResult_return = vkEnc->vkInvalidateMappedMemoryRanges(device, memoryRangeCount, pMemoryRanges);
325 return vkInvalidateMappedMemoryRanges_VkResult_return;
326}
327static void entry_vkGetDeviceMemoryCommitment(
328 VkDevice device,
329 VkDeviceMemory memory,
330 VkDeviceSize* pCommittedMemoryInBytes)
331{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800332 AEMU_SCOPED_TRACE("vkGetDeviceMemoryCommitment");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800333 auto vkEnc = HostConnection::get()->vkEncoder();
334 vkEnc->vkGetDeviceMemoryCommitment(device, memory, pCommittedMemoryInBytes);
335}
336static VkResult entry_vkBindBufferMemory(
337 VkDevice device,
338 VkBuffer buffer,
339 VkDeviceMemory memory,
340 VkDeviceSize memoryOffset)
341{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800342 AEMU_SCOPED_TRACE("vkBindBufferMemory");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800343 auto vkEnc = HostConnection::get()->vkEncoder();
344 VkResult vkBindBufferMemory_VkResult_return = (VkResult)0;
Lingfeng Yang4af5f322019-02-14 08:10:28 -0800345 auto resources = ResourceTracker::get();
346 vkBindBufferMemory_VkResult_return = resources->on_vkBindBufferMemory(vkEnc, VK_SUCCESS, device, buffer, memory, memoryOffset);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800347 return vkBindBufferMemory_VkResult_return;
348}
349static VkResult entry_vkBindImageMemory(
350 VkDevice device,
351 VkImage image,
352 VkDeviceMemory memory,
353 VkDeviceSize memoryOffset)
354{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800355 AEMU_SCOPED_TRACE("vkBindImageMemory");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800356 auto vkEnc = HostConnection::get()->vkEncoder();
357 VkResult vkBindImageMemory_VkResult_return = (VkResult)0;
Lingfeng Yang4af5f322019-02-14 08:10:28 -0800358 auto resources = ResourceTracker::get();
359 vkBindImageMemory_VkResult_return = resources->on_vkBindImageMemory(vkEnc, VK_SUCCESS, device, image, memory, memoryOffset);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800360 return vkBindImageMemory_VkResult_return;
361}
362static void entry_vkGetBufferMemoryRequirements(
363 VkDevice device,
364 VkBuffer buffer,
365 VkMemoryRequirements* pMemoryRequirements)
366{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800367 AEMU_SCOPED_TRACE("vkGetBufferMemoryRequirements");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800368 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang4af5f322019-02-14 08:10:28 -0800369 auto resources = ResourceTracker::get();
370 resources->on_vkGetBufferMemoryRequirements(vkEnc, device, buffer, pMemoryRequirements);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800371}
372static void entry_vkGetImageMemoryRequirements(
373 VkDevice device,
374 VkImage image,
375 VkMemoryRequirements* pMemoryRequirements)
376{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800377 AEMU_SCOPED_TRACE("vkGetImageMemoryRequirements");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800378 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang4af5f322019-02-14 08:10:28 -0800379 auto resources = ResourceTracker::get();
380 resources->on_vkGetImageMemoryRequirements(vkEnc, device, image, pMemoryRequirements);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800381}
382static void entry_vkGetImageSparseMemoryRequirements(
383 VkDevice device,
384 VkImage image,
385 uint32_t* pSparseMemoryRequirementCount,
386 VkSparseImageMemoryRequirements* pSparseMemoryRequirements)
387{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800388 AEMU_SCOPED_TRACE("vkGetImageSparseMemoryRequirements");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800389 auto vkEnc = HostConnection::get()->vkEncoder();
390 vkEnc->vkGetImageSparseMemoryRequirements(device, image, pSparseMemoryRequirementCount, pSparseMemoryRequirements);
391}
392static void entry_vkGetPhysicalDeviceSparseImageFormatProperties(
393 VkPhysicalDevice physicalDevice,
394 VkFormat format,
395 VkImageType type,
396 VkSampleCountFlagBits samples,
397 VkImageUsageFlags usage,
398 VkImageTiling tiling,
399 uint32_t* pPropertyCount,
400 VkSparseImageFormatProperties* pProperties)
401{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800402 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSparseImageFormatProperties");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800403 auto vkEnc = HostConnection::get()->vkEncoder();
404 vkEnc->vkGetPhysicalDeviceSparseImageFormatProperties(physicalDevice, format, type, samples, usage, tiling, pPropertyCount, pProperties);
405}
406static VkResult entry_vkQueueBindSparse(
407 VkQueue queue,
408 uint32_t bindInfoCount,
409 const VkBindSparseInfo* pBindInfo,
410 VkFence fence)
411{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800412 AEMU_SCOPED_TRACE("vkQueueBindSparse");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800413 auto vkEnc = HostConnection::get()->vkEncoder();
414 VkResult vkQueueBindSparse_VkResult_return = (VkResult)0;
415 vkQueueBindSparse_VkResult_return = vkEnc->vkQueueBindSparse(queue, bindInfoCount, pBindInfo, fence);
416 return vkQueueBindSparse_VkResult_return;
417}
418static VkResult entry_vkCreateFence(
419 VkDevice device,
420 const VkFenceCreateInfo* pCreateInfo,
421 const VkAllocationCallbacks* pAllocator,
422 VkFence* pFence)
423{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800424 AEMU_SCOPED_TRACE("vkCreateFence");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800425 auto vkEnc = HostConnection::get()->vkEncoder();
426 VkResult vkCreateFence_VkResult_return = (VkResult)0;
Lingfeng Yangcd2d8fe2019-08-16 12:21:50 -0700427 auto resources = ResourceTracker::get();
428 vkCreateFence_VkResult_return = resources->on_vkCreateFence(vkEnc, VK_SUCCESS, device, pCreateInfo, pAllocator, pFence);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800429 return vkCreateFence_VkResult_return;
430}
431static void entry_vkDestroyFence(
432 VkDevice device,
433 VkFence fence,
434 const VkAllocationCallbacks* pAllocator)
435{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800436 AEMU_SCOPED_TRACE("vkDestroyFence");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800437 auto vkEnc = HostConnection::get()->vkEncoder();
438 vkEnc->vkDestroyFence(device, fence, pAllocator);
439}
440static VkResult entry_vkResetFences(
441 VkDevice device,
442 uint32_t fenceCount,
443 const VkFence* pFences)
444{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800445 AEMU_SCOPED_TRACE("vkResetFences");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800446 auto vkEnc = HostConnection::get()->vkEncoder();
447 VkResult vkResetFences_VkResult_return = (VkResult)0;
Lingfeng Yangcd2d8fe2019-08-16 12:21:50 -0700448 auto resources = ResourceTracker::get();
449 vkResetFences_VkResult_return = resources->on_vkResetFences(vkEnc, VK_SUCCESS, device, fenceCount, pFences);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800450 return vkResetFences_VkResult_return;
451}
452static VkResult entry_vkGetFenceStatus(
453 VkDevice device,
454 VkFence fence)
455{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800456 AEMU_SCOPED_TRACE("vkGetFenceStatus");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800457 auto vkEnc = HostConnection::get()->vkEncoder();
458 VkResult vkGetFenceStatus_VkResult_return = (VkResult)0;
459 vkGetFenceStatus_VkResult_return = vkEnc->vkGetFenceStatus(device, fence);
460 return vkGetFenceStatus_VkResult_return;
461}
462static VkResult entry_vkWaitForFences(
463 VkDevice device,
464 uint32_t fenceCount,
465 const VkFence* pFences,
466 VkBool32 waitAll,
467 uint64_t timeout)
468{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800469 AEMU_SCOPED_TRACE("vkWaitForFences");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800470 auto vkEnc = HostConnection::get()->vkEncoder();
471 VkResult vkWaitForFences_VkResult_return = (VkResult)0;
Lingfeng Yangcd2d8fe2019-08-16 12:21:50 -0700472 auto resources = ResourceTracker::get();
473 vkWaitForFences_VkResult_return = resources->on_vkWaitForFences(vkEnc, VK_SUCCESS, device, fenceCount, pFences, waitAll, timeout);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800474 return vkWaitForFences_VkResult_return;
475}
476static VkResult entry_vkCreateSemaphore(
477 VkDevice device,
478 const VkSemaphoreCreateInfo* pCreateInfo,
479 const VkAllocationCallbacks* pAllocator,
480 VkSemaphore* pSemaphore)
481{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800482 AEMU_SCOPED_TRACE("vkCreateSemaphore");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800483 auto vkEnc = HostConnection::get()->vkEncoder();
484 VkResult vkCreateSemaphore_VkResult_return = (VkResult)0;
David Reveman32b110e2019-02-21 13:20:54 -0500485 auto resources = ResourceTracker::get();
486 vkCreateSemaphore_VkResult_return = resources->on_vkCreateSemaphore(vkEnc, VK_SUCCESS, device, pCreateInfo, pAllocator, pSemaphore);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800487 return vkCreateSemaphore_VkResult_return;
488}
489static void entry_vkDestroySemaphore(
490 VkDevice device,
491 VkSemaphore semaphore,
492 const VkAllocationCallbacks* pAllocator)
493{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800494 AEMU_SCOPED_TRACE("vkDestroySemaphore");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800495 auto vkEnc = HostConnection::get()->vkEncoder();
David Reveman32b110e2019-02-21 13:20:54 -0500496 auto resources = ResourceTracker::get();
497 resources->on_vkDestroySemaphore(vkEnc, device, semaphore, pAllocator);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800498}
499static VkResult entry_vkCreateEvent(
500 VkDevice device,
501 const VkEventCreateInfo* pCreateInfo,
502 const VkAllocationCallbacks* pAllocator,
503 VkEvent* pEvent)
504{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800505 AEMU_SCOPED_TRACE("vkCreateEvent");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800506 auto vkEnc = HostConnection::get()->vkEncoder();
507 VkResult vkCreateEvent_VkResult_return = (VkResult)0;
508 vkCreateEvent_VkResult_return = vkEnc->vkCreateEvent(device, pCreateInfo, pAllocator, pEvent);
509 return vkCreateEvent_VkResult_return;
510}
511static void entry_vkDestroyEvent(
512 VkDevice device,
513 VkEvent event,
514 const VkAllocationCallbacks* pAllocator)
515{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800516 AEMU_SCOPED_TRACE("vkDestroyEvent");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800517 auto vkEnc = HostConnection::get()->vkEncoder();
518 vkEnc->vkDestroyEvent(device, event, pAllocator);
519}
520static VkResult entry_vkGetEventStatus(
521 VkDevice device,
522 VkEvent event)
523{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800524 AEMU_SCOPED_TRACE("vkGetEventStatus");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800525 auto vkEnc = HostConnection::get()->vkEncoder();
526 VkResult vkGetEventStatus_VkResult_return = (VkResult)0;
527 vkGetEventStatus_VkResult_return = vkEnc->vkGetEventStatus(device, event);
528 return vkGetEventStatus_VkResult_return;
529}
530static VkResult entry_vkSetEvent(
531 VkDevice device,
532 VkEvent event)
533{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800534 AEMU_SCOPED_TRACE("vkSetEvent");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800535 auto vkEnc = HostConnection::get()->vkEncoder();
536 VkResult vkSetEvent_VkResult_return = (VkResult)0;
537 vkSetEvent_VkResult_return = vkEnc->vkSetEvent(device, event);
538 return vkSetEvent_VkResult_return;
539}
540static VkResult entry_vkResetEvent(
541 VkDevice device,
542 VkEvent event)
543{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800544 AEMU_SCOPED_TRACE("vkResetEvent");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800545 auto vkEnc = HostConnection::get()->vkEncoder();
546 VkResult vkResetEvent_VkResult_return = (VkResult)0;
547 vkResetEvent_VkResult_return = vkEnc->vkResetEvent(device, event);
548 return vkResetEvent_VkResult_return;
549}
550static VkResult entry_vkCreateQueryPool(
551 VkDevice device,
552 const VkQueryPoolCreateInfo* pCreateInfo,
553 const VkAllocationCallbacks* pAllocator,
554 VkQueryPool* pQueryPool)
555{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800556 AEMU_SCOPED_TRACE("vkCreateQueryPool");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800557 auto vkEnc = HostConnection::get()->vkEncoder();
558 VkResult vkCreateQueryPool_VkResult_return = (VkResult)0;
559 vkCreateQueryPool_VkResult_return = vkEnc->vkCreateQueryPool(device, pCreateInfo, pAllocator, pQueryPool);
560 return vkCreateQueryPool_VkResult_return;
561}
562static void entry_vkDestroyQueryPool(
563 VkDevice device,
564 VkQueryPool queryPool,
565 const VkAllocationCallbacks* pAllocator)
566{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800567 AEMU_SCOPED_TRACE("vkDestroyQueryPool");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800568 auto vkEnc = HostConnection::get()->vkEncoder();
569 vkEnc->vkDestroyQueryPool(device, queryPool, pAllocator);
570}
571static VkResult entry_vkGetQueryPoolResults(
572 VkDevice device,
573 VkQueryPool queryPool,
574 uint32_t firstQuery,
575 uint32_t queryCount,
576 size_t dataSize,
577 void* pData,
578 VkDeviceSize stride,
579 VkQueryResultFlags flags)
580{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800581 AEMU_SCOPED_TRACE("vkGetQueryPoolResults");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800582 auto vkEnc = HostConnection::get()->vkEncoder();
583 VkResult vkGetQueryPoolResults_VkResult_return = (VkResult)0;
584 vkGetQueryPoolResults_VkResult_return = vkEnc->vkGetQueryPoolResults(device, queryPool, firstQuery, queryCount, dataSize, pData, stride, flags);
585 return vkGetQueryPoolResults_VkResult_return;
586}
587static VkResult entry_vkCreateBuffer(
588 VkDevice device,
589 const VkBufferCreateInfo* pCreateInfo,
590 const VkAllocationCallbacks* pAllocator,
591 VkBuffer* pBuffer)
592{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800593 AEMU_SCOPED_TRACE("vkCreateBuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800594 auto vkEnc = HostConnection::get()->vkEncoder();
595 VkResult vkCreateBuffer_VkResult_return = (VkResult)0;
Lingfeng Yang4af5f322019-02-14 08:10:28 -0800596 auto resources = ResourceTracker::get();
597 vkCreateBuffer_VkResult_return = resources->on_vkCreateBuffer(vkEnc, VK_SUCCESS, device, pCreateInfo, pAllocator, pBuffer);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800598 return vkCreateBuffer_VkResult_return;
599}
600static void entry_vkDestroyBuffer(
601 VkDevice device,
602 VkBuffer buffer,
603 const VkAllocationCallbacks* pAllocator)
604{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800605 AEMU_SCOPED_TRACE("vkDestroyBuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800606 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang4af5f322019-02-14 08:10:28 -0800607 auto resources = ResourceTracker::get();
608 resources->on_vkDestroyBuffer(vkEnc, device, buffer, pAllocator);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800609}
610static VkResult entry_vkCreateBufferView(
611 VkDevice device,
612 const VkBufferViewCreateInfo* pCreateInfo,
613 const VkAllocationCallbacks* pAllocator,
614 VkBufferView* pView)
615{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800616 AEMU_SCOPED_TRACE("vkCreateBufferView");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800617 auto vkEnc = HostConnection::get()->vkEncoder();
618 VkResult vkCreateBufferView_VkResult_return = (VkResult)0;
619 vkCreateBufferView_VkResult_return = vkEnc->vkCreateBufferView(device, pCreateInfo, pAllocator, pView);
620 return vkCreateBufferView_VkResult_return;
621}
622static void entry_vkDestroyBufferView(
623 VkDevice device,
624 VkBufferView bufferView,
625 const VkAllocationCallbacks* pAllocator)
626{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800627 AEMU_SCOPED_TRACE("vkDestroyBufferView");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800628 auto vkEnc = HostConnection::get()->vkEncoder();
629 vkEnc->vkDestroyBufferView(device, bufferView, pAllocator);
630}
631static VkResult entry_vkCreateImage(
632 VkDevice device,
633 const VkImageCreateInfo* pCreateInfo,
634 const VkAllocationCallbacks* pAllocator,
635 VkImage* pImage)
636{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800637 AEMU_SCOPED_TRACE("vkCreateImage");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800638 auto vkEnc = HostConnection::get()->vkEncoder();
639 VkResult vkCreateImage_VkResult_return = (VkResult)0;
Lingfeng Yang4af5f322019-02-14 08:10:28 -0800640 auto resources = ResourceTracker::get();
641 vkCreateImage_VkResult_return = resources->on_vkCreateImage(vkEnc, VK_SUCCESS, device, pCreateInfo, pAllocator, pImage);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800642 return vkCreateImage_VkResult_return;
643}
644static void entry_vkDestroyImage(
645 VkDevice device,
646 VkImage image,
647 const VkAllocationCallbacks* pAllocator)
648{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800649 AEMU_SCOPED_TRACE("vkDestroyImage");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800650 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang4af5f322019-02-14 08:10:28 -0800651 auto resources = ResourceTracker::get();
652 resources->on_vkDestroyImage(vkEnc, device, image, pAllocator);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800653}
654static void entry_vkGetImageSubresourceLayout(
655 VkDevice device,
656 VkImage image,
657 const VkImageSubresource* pSubresource,
658 VkSubresourceLayout* pLayout)
659{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800660 AEMU_SCOPED_TRACE("vkGetImageSubresourceLayout");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800661 auto vkEnc = HostConnection::get()->vkEncoder();
662 vkEnc->vkGetImageSubresourceLayout(device, image, pSubresource, pLayout);
663}
664static VkResult entry_vkCreateImageView(
665 VkDevice device,
666 const VkImageViewCreateInfo* pCreateInfo,
667 const VkAllocationCallbacks* pAllocator,
668 VkImageView* pView)
669{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800670 AEMU_SCOPED_TRACE("vkCreateImageView");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800671 auto vkEnc = HostConnection::get()->vkEncoder();
672 VkResult vkCreateImageView_VkResult_return = (VkResult)0;
Roman Kiryanov6db11e52019-04-26 14:18:14 -0700673 auto resources = ResourceTracker::get();
674 vkCreateImageView_VkResult_return = resources->on_vkCreateImageView(vkEnc, VK_SUCCESS, device, pCreateInfo, pAllocator, pView);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800675 return vkCreateImageView_VkResult_return;
676}
677static void entry_vkDestroyImageView(
678 VkDevice device,
679 VkImageView imageView,
680 const VkAllocationCallbacks* pAllocator)
681{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800682 AEMU_SCOPED_TRACE("vkDestroyImageView");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800683 auto vkEnc = HostConnection::get()->vkEncoder();
684 vkEnc->vkDestroyImageView(device, imageView, pAllocator);
685}
686static VkResult entry_vkCreateShaderModule(
687 VkDevice device,
688 const VkShaderModuleCreateInfo* pCreateInfo,
689 const VkAllocationCallbacks* pAllocator,
690 VkShaderModule* pShaderModule)
691{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800692 AEMU_SCOPED_TRACE("vkCreateShaderModule");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800693 auto vkEnc = HostConnection::get()->vkEncoder();
694 VkResult vkCreateShaderModule_VkResult_return = (VkResult)0;
695 vkCreateShaderModule_VkResult_return = vkEnc->vkCreateShaderModule(device, pCreateInfo, pAllocator, pShaderModule);
696 return vkCreateShaderModule_VkResult_return;
697}
698static void entry_vkDestroyShaderModule(
699 VkDevice device,
700 VkShaderModule shaderModule,
701 const VkAllocationCallbacks* pAllocator)
702{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800703 AEMU_SCOPED_TRACE("vkDestroyShaderModule");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800704 auto vkEnc = HostConnection::get()->vkEncoder();
705 vkEnc->vkDestroyShaderModule(device, shaderModule, pAllocator);
706}
707static VkResult entry_vkCreatePipelineCache(
708 VkDevice device,
709 const VkPipelineCacheCreateInfo* pCreateInfo,
710 const VkAllocationCallbacks* pAllocator,
711 VkPipelineCache* pPipelineCache)
712{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800713 AEMU_SCOPED_TRACE("vkCreatePipelineCache");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800714 auto vkEnc = HostConnection::get()->vkEncoder();
715 VkResult vkCreatePipelineCache_VkResult_return = (VkResult)0;
716 vkCreatePipelineCache_VkResult_return = vkEnc->vkCreatePipelineCache(device, pCreateInfo, pAllocator, pPipelineCache);
717 return vkCreatePipelineCache_VkResult_return;
718}
719static void entry_vkDestroyPipelineCache(
720 VkDevice device,
721 VkPipelineCache pipelineCache,
722 const VkAllocationCallbacks* pAllocator)
723{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800724 AEMU_SCOPED_TRACE("vkDestroyPipelineCache");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800725 auto vkEnc = HostConnection::get()->vkEncoder();
726 vkEnc->vkDestroyPipelineCache(device, pipelineCache, pAllocator);
727}
728static VkResult entry_vkGetPipelineCacheData(
729 VkDevice device,
730 VkPipelineCache pipelineCache,
731 size_t* pDataSize,
732 void* pData)
733{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800734 AEMU_SCOPED_TRACE("vkGetPipelineCacheData");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800735 auto vkEnc = HostConnection::get()->vkEncoder();
736 VkResult vkGetPipelineCacheData_VkResult_return = (VkResult)0;
737 vkGetPipelineCacheData_VkResult_return = vkEnc->vkGetPipelineCacheData(device, pipelineCache, pDataSize, pData);
738 return vkGetPipelineCacheData_VkResult_return;
739}
740static VkResult entry_vkMergePipelineCaches(
741 VkDevice device,
742 VkPipelineCache dstCache,
743 uint32_t srcCacheCount,
744 const VkPipelineCache* pSrcCaches)
745{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800746 AEMU_SCOPED_TRACE("vkMergePipelineCaches");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800747 auto vkEnc = HostConnection::get()->vkEncoder();
748 VkResult vkMergePipelineCaches_VkResult_return = (VkResult)0;
749 vkMergePipelineCaches_VkResult_return = vkEnc->vkMergePipelineCaches(device, dstCache, srcCacheCount, pSrcCaches);
750 return vkMergePipelineCaches_VkResult_return;
751}
752static VkResult entry_vkCreateGraphicsPipelines(
753 VkDevice device,
754 VkPipelineCache pipelineCache,
755 uint32_t createInfoCount,
756 const VkGraphicsPipelineCreateInfo* pCreateInfos,
757 const VkAllocationCallbacks* pAllocator,
758 VkPipeline* pPipelines)
759{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800760 AEMU_SCOPED_TRACE("vkCreateGraphicsPipelines");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800761 auto vkEnc = HostConnection::get()->vkEncoder();
762 VkResult vkCreateGraphicsPipelines_VkResult_return = (VkResult)0;
763 vkCreateGraphicsPipelines_VkResult_return = vkEnc->vkCreateGraphicsPipelines(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines);
764 return vkCreateGraphicsPipelines_VkResult_return;
765}
766static VkResult entry_vkCreateComputePipelines(
767 VkDevice device,
768 VkPipelineCache pipelineCache,
769 uint32_t createInfoCount,
770 const VkComputePipelineCreateInfo* pCreateInfos,
771 const VkAllocationCallbacks* pAllocator,
772 VkPipeline* pPipelines)
773{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800774 AEMU_SCOPED_TRACE("vkCreateComputePipelines");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800775 auto vkEnc = HostConnection::get()->vkEncoder();
776 VkResult vkCreateComputePipelines_VkResult_return = (VkResult)0;
777 vkCreateComputePipelines_VkResult_return = vkEnc->vkCreateComputePipelines(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines);
778 return vkCreateComputePipelines_VkResult_return;
779}
780static void entry_vkDestroyPipeline(
781 VkDevice device,
782 VkPipeline pipeline,
783 const VkAllocationCallbacks* pAllocator)
784{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800785 AEMU_SCOPED_TRACE("vkDestroyPipeline");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800786 auto vkEnc = HostConnection::get()->vkEncoder();
787 vkEnc->vkDestroyPipeline(device, pipeline, pAllocator);
788}
789static VkResult entry_vkCreatePipelineLayout(
790 VkDevice device,
791 const VkPipelineLayoutCreateInfo* pCreateInfo,
792 const VkAllocationCallbacks* pAllocator,
793 VkPipelineLayout* pPipelineLayout)
794{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800795 AEMU_SCOPED_TRACE("vkCreatePipelineLayout");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800796 auto vkEnc = HostConnection::get()->vkEncoder();
797 VkResult vkCreatePipelineLayout_VkResult_return = (VkResult)0;
798 vkCreatePipelineLayout_VkResult_return = vkEnc->vkCreatePipelineLayout(device, pCreateInfo, pAllocator, pPipelineLayout);
799 return vkCreatePipelineLayout_VkResult_return;
800}
801static void entry_vkDestroyPipelineLayout(
802 VkDevice device,
803 VkPipelineLayout pipelineLayout,
804 const VkAllocationCallbacks* pAllocator)
805{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800806 AEMU_SCOPED_TRACE("vkDestroyPipelineLayout");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800807 auto vkEnc = HostConnection::get()->vkEncoder();
808 vkEnc->vkDestroyPipelineLayout(device, pipelineLayout, pAllocator);
809}
810static VkResult entry_vkCreateSampler(
811 VkDevice device,
812 const VkSamplerCreateInfo* pCreateInfo,
813 const VkAllocationCallbacks* pAllocator,
814 VkSampler* pSampler)
815{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800816 AEMU_SCOPED_TRACE("vkCreateSampler");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800817 auto vkEnc = HostConnection::get()->vkEncoder();
818 VkResult vkCreateSampler_VkResult_return = (VkResult)0;
Roman Kiryanov004f48c2019-06-28 14:59:32 -0700819 auto resources = ResourceTracker::get();
820 vkCreateSampler_VkResult_return = resources->on_vkCreateSampler(vkEnc, VK_SUCCESS, device, pCreateInfo, pAllocator, pSampler);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800821 return vkCreateSampler_VkResult_return;
822}
823static void entry_vkDestroySampler(
824 VkDevice device,
825 VkSampler sampler,
826 const VkAllocationCallbacks* pAllocator)
827{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800828 AEMU_SCOPED_TRACE("vkDestroySampler");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800829 auto vkEnc = HostConnection::get()->vkEncoder();
830 vkEnc->vkDestroySampler(device, sampler, pAllocator);
831}
832static VkResult entry_vkCreateDescriptorSetLayout(
833 VkDevice device,
834 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
835 const VkAllocationCallbacks* pAllocator,
836 VkDescriptorSetLayout* pSetLayout)
837{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800838 AEMU_SCOPED_TRACE("vkCreateDescriptorSetLayout");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800839 auto vkEnc = HostConnection::get()->vkEncoder();
840 VkResult vkCreateDescriptorSetLayout_VkResult_return = (VkResult)0;
841 vkCreateDescriptorSetLayout_VkResult_return = vkEnc->vkCreateDescriptorSetLayout(device, pCreateInfo, pAllocator, pSetLayout);
842 return vkCreateDescriptorSetLayout_VkResult_return;
843}
844static void entry_vkDestroyDescriptorSetLayout(
845 VkDevice device,
846 VkDescriptorSetLayout descriptorSetLayout,
847 const VkAllocationCallbacks* pAllocator)
848{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800849 AEMU_SCOPED_TRACE("vkDestroyDescriptorSetLayout");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800850 auto vkEnc = HostConnection::get()->vkEncoder();
851 vkEnc->vkDestroyDescriptorSetLayout(device, descriptorSetLayout, pAllocator);
852}
853static VkResult entry_vkCreateDescriptorPool(
854 VkDevice device,
855 const VkDescriptorPoolCreateInfo* pCreateInfo,
856 const VkAllocationCallbacks* pAllocator,
857 VkDescriptorPool* pDescriptorPool)
858{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800859 AEMU_SCOPED_TRACE("vkCreateDescriptorPool");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800860 auto vkEnc = HostConnection::get()->vkEncoder();
861 VkResult vkCreateDescriptorPool_VkResult_return = (VkResult)0;
862 vkCreateDescriptorPool_VkResult_return = vkEnc->vkCreateDescriptorPool(device, pCreateInfo, pAllocator, pDescriptorPool);
863 return vkCreateDescriptorPool_VkResult_return;
864}
865static void entry_vkDestroyDescriptorPool(
866 VkDevice device,
867 VkDescriptorPool descriptorPool,
868 const VkAllocationCallbacks* pAllocator)
869{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800870 AEMU_SCOPED_TRACE("vkDestroyDescriptorPool");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800871 auto vkEnc = HostConnection::get()->vkEncoder();
872 vkEnc->vkDestroyDescriptorPool(device, descriptorPool, pAllocator);
873}
874static VkResult entry_vkResetDescriptorPool(
875 VkDevice device,
876 VkDescriptorPool descriptorPool,
877 VkDescriptorPoolResetFlags flags)
878{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800879 AEMU_SCOPED_TRACE("vkResetDescriptorPool");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800880 auto vkEnc = HostConnection::get()->vkEncoder();
881 VkResult vkResetDescriptorPool_VkResult_return = (VkResult)0;
882 vkResetDescriptorPool_VkResult_return = vkEnc->vkResetDescriptorPool(device, descriptorPool, flags);
883 return vkResetDescriptorPool_VkResult_return;
884}
885static VkResult entry_vkAllocateDescriptorSets(
886 VkDevice device,
887 const VkDescriptorSetAllocateInfo* pAllocateInfo,
888 VkDescriptorSet* pDescriptorSets)
889{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800890 AEMU_SCOPED_TRACE("vkAllocateDescriptorSets");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800891 auto vkEnc = HostConnection::get()->vkEncoder();
892 VkResult vkAllocateDescriptorSets_VkResult_return = (VkResult)0;
893 vkAllocateDescriptorSets_VkResult_return = vkEnc->vkAllocateDescriptorSets(device, pAllocateInfo, pDescriptorSets);
894 return vkAllocateDescriptorSets_VkResult_return;
895}
896static VkResult entry_vkFreeDescriptorSets(
897 VkDevice device,
898 VkDescriptorPool descriptorPool,
899 uint32_t descriptorSetCount,
900 const VkDescriptorSet* pDescriptorSets)
901{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800902 AEMU_SCOPED_TRACE("vkFreeDescriptorSets");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800903 auto vkEnc = HostConnection::get()->vkEncoder();
904 VkResult vkFreeDescriptorSets_VkResult_return = (VkResult)0;
905 vkFreeDescriptorSets_VkResult_return = vkEnc->vkFreeDescriptorSets(device, descriptorPool, descriptorSetCount, pDescriptorSets);
906 return vkFreeDescriptorSets_VkResult_return;
907}
908static void entry_vkUpdateDescriptorSets(
909 VkDevice device,
910 uint32_t descriptorWriteCount,
911 const VkWriteDescriptorSet* pDescriptorWrites,
912 uint32_t descriptorCopyCount,
913 const VkCopyDescriptorSet* pDescriptorCopies)
914{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800915 AEMU_SCOPED_TRACE("vkUpdateDescriptorSets");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800916 auto vkEnc = HostConnection::get()->vkEncoder();
917 vkEnc->vkUpdateDescriptorSets(device, descriptorWriteCount, pDescriptorWrites, descriptorCopyCount, pDescriptorCopies);
918}
919static VkResult entry_vkCreateFramebuffer(
920 VkDevice device,
921 const VkFramebufferCreateInfo* pCreateInfo,
922 const VkAllocationCallbacks* pAllocator,
923 VkFramebuffer* pFramebuffer)
924{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800925 AEMU_SCOPED_TRACE("vkCreateFramebuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800926 auto vkEnc = HostConnection::get()->vkEncoder();
927 VkResult vkCreateFramebuffer_VkResult_return = (VkResult)0;
928 vkCreateFramebuffer_VkResult_return = vkEnc->vkCreateFramebuffer(device, pCreateInfo, pAllocator, pFramebuffer);
929 return vkCreateFramebuffer_VkResult_return;
930}
931static void entry_vkDestroyFramebuffer(
932 VkDevice device,
933 VkFramebuffer framebuffer,
934 const VkAllocationCallbacks* pAllocator)
935{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800936 AEMU_SCOPED_TRACE("vkDestroyFramebuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800937 auto vkEnc = HostConnection::get()->vkEncoder();
938 vkEnc->vkDestroyFramebuffer(device, framebuffer, pAllocator);
939}
940static VkResult entry_vkCreateRenderPass(
941 VkDevice device,
942 const VkRenderPassCreateInfo* pCreateInfo,
943 const VkAllocationCallbacks* pAllocator,
944 VkRenderPass* pRenderPass)
945{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800946 AEMU_SCOPED_TRACE("vkCreateRenderPass");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800947 auto vkEnc = HostConnection::get()->vkEncoder();
948 VkResult vkCreateRenderPass_VkResult_return = (VkResult)0;
949 vkCreateRenderPass_VkResult_return = vkEnc->vkCreateRenderPass(device, pCreateInfo, pAllocator, pRenderPass);
950 return vkCreateRenderPass_VkResult_return;
951}
952static void entry_vkDestroyRenderPass(
953 VkDevice device,
954 VkRenderPass renderPass,
955 const VkAllocationCallbacks* pAllocator)
956{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800957 AEMU_SCOPED_TRACE("vkDestroyRenderPass");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800958 auto vkEnc = HostConnection::get()->vkEncoder();
959 vkEnc->vkDestroyRenderPass(device, renderPass, pAllocator);
960}
961static void entry_vkGetRenderAreaGranularity(
962 VkDevice device,
963 VkRenderPass renderPass,
964 VkExtent2D* pGranularity)
965{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800966 AEMU_SCOPED_TRACE("vkGetRenderAreaGranularity");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800967 auto vkEnc = HostConnection::get()->vkEncoder();
968 vkEnc->vkGetRenderAreaGranularity(device, renderPass, pGranularity);
969}
970static VkResult entry_vkCreateCommandPool(
971 VkDevice device,
972 const VkCommandPoolCreateInfo* pCreateInfo,
973 const VkAllocationCallbacks* pAllocator,
974 VkCommandPool* pCommandPool)
975{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800976 AEMU_SCOPED_TRACE("vkCreateCommandPool");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800977 auto vkEnc = HostConnection::get()->vkEncoder();
978 VkResult vkCreateCommandPool_VkResult_return = (VkResult)0;
979 vkCreateCommandPool_VkResult_return = vkEnc->vkCreateCommandPool(device, pCreateInfo, pAllocator, pCommandPool);
980 return vkCreateCommandPool_VkResult_return;
981}
982static void entry_vkDestroyCommandPool(
983 VkDevice device,
984 VkCommandPool commandPool,
985 const VkAllocationCallbacks* pAllocator)
986{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800987 AEMU_SCOPED_TRACE("vkDestroyCommandPool");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800988 auto vkEnc = HostConnection::get()->vkEncoder();
989 vkEnc->vkDestroyCommandPool(device, commandPool, pAllocator);
990}
991static VkResult entry_vkResetCommandPool(
992 VkDevice device,
993 VkCommandPool commandPool,
994 VkCommandPoolResetFlags flags)
995{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800996 AEMU_SCOPED_TRACE("vkResetCommandPool");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800997 auto vkEnc = HostConnection::get()->vkEncoder();
998 VkResult vkResetCommandPool_VkResult_return = (VkResult)0;
999 vkResetCommandPool_VkResult_return = vkEnc->vkResetCommandPool(device, commandPool, flags);
1000 return vkResetCommandPool_VkResult_return;
1001}
1002static VkResult entry_vkAllocateCommandBuffers(
1003 VkDevice device,
1004 const VkCommandBufferAllocateInfo* pAllocateInfo,
1005 VkCommandBuffer* pCommandBuffers)
1006{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001007 AEMU_SCOPED_TRACE("vkAllocateCommandBuffers");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001008 auto vkEnc = HostConnection::get()->vkEncoder();
1009 VkResult vkAllocateCommandBuffers_VkResult_return = (VkResult)0;
1010 vkAllocateCommandBuffers_VkResult_return = vkEnc->vkAllocateCommandBuffers(device, pAllocateInfo, pCommandBuffers);
1011 return vkAllocateCommandBuffers_VkResult_return;
1012}
1013static void entry_vkFreeCommandBuffers(
1014 VkDevice device,
1015 VkCommandPool commandPool,
1016 uint32_t commandBufferCount,
1017 const VkCommandBuffer* pCommandBuffers)
1018{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001019 AEMU_SCOPED_TRACE("vkFreeCommandBuffers");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001020 auto vkEnc = HostConnection::get()->vkEncoder();
1021 vkEnc->vkFreeCommandBuffers(device, commandPool, commandBufferCount, pCommandBuffers);
1022}
1023static VkResult entry_vkBeginCommandBuffer(
1024 VkCommandBuffer commandBuffer,
1025 const VkCommandBufferBeginInfo* pBeginInfo)
1026{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001027 AEMU_SCOPED_TRACE("vkBeginCommandBuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001028 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001029 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001030 VkResult vkBeginCommandBuffer_VkResult_return = (VkResult)0;
Lingfeng Yangc53e7472019-03-27 08:50:55 -07001031 auto resources = ResourceTracker::get();
1032 vkBeginCommandBuffer_VkResult_return = resources->on_vkBeginCommandBuffer(vkEnc, VK_SUCCESS, commandBuffer, pBeginInfo);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001033 return vkBeginCommandBuffer_VkResult_return;
1034}
1035static VkResult entry_vkEndCommandBuffer(
1036 VkCommandBuffer commandBuffer)
1037{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001038 AEMU_SCOPED_TRACE("vkEndCommandBuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001039 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001040 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001041 VkResult vkEndCommandBuffer_VkResult_return = (VkResult)0;
Lingfeng Yangc53e7472019-03-27 08:50:55 -07001042 auto resources = ResourceTracker::get();
1043 vkEndCommandBuffer_VkResult_return = resources->on_vkEndCommandBuffer(vkEnc, VK_SUCCESS, commandBuffer);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001044 return vkEndCommandBuffer_VkResult_return;
1045}
1046static VkResult entry_vkResetCommandBuffer(
1047 VkCommandBuffer commandBuffer,
1048 VkCommandBufferResetFlags flags)
1049{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001050 AEMU_SCOPED_TRACE("vkResetCommandBuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001051 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001052 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001053 VkResult vkResetCommandBuffer_VkResult_return = (VkResult)0;
Lingfeng Yangc53e7472019-03-27 08:50:55 -07001054 auto resources = ResourceTracker::get();
1055 vkResetCommandBuffer_VkResult_return = resources->on_vkResetCommandBuffer(vkEnc, VK_SUCCESS, commandBuffer, flags);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001056 return vkResetCommandBuffer_VkResult_return;
1057}
1058static void entry_vkCmdBindPipeline(
1059 VkCommandBuffer commandBuffer,
1060 VkPipelineBindPoint pipelineBindPoint,
1061 VkPipeline pipeline)
1062{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001063 AEMU_SCOPED_TRACE("vkCmdBindPipeline");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001064 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001065 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001066 vkEnc->vkCmdBindPipeline(commandBuffer, pipelineBindPoint, pipeline);
1067}
1068static void entry_vkCmdSetViewport(
1069 VkCommandBuffer commandBuffer,
1070 uint32_t firstViewport,
1071 uint32_t viewportCount,
1072 const VkViewport* pViewports)
1073{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001074 AEMU_SCOPED_TRACE("vkCmdSetViewport");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001075 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001076 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001077 vkEnc->vkCmdSetViewport(commandBuffer, firstViewport, viewportCount, pViewports);
1078}
1079static void entry_vkCmdSetScissor(
1080 VkCommandBuffer commandBuffer,
1081 uint32_t firstScissor,
1082 uint32_t scissorCount,
1083 const VkRect2D* pScissors)
1084{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001085 AEMU_SCOPED_TRACE("vkCmdSetScissor");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001086 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001087 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001088 vkEnc->vkCmdSetScissor(commandBuffer, firstScissor, scissorCount, pScissors);
1089}
1090static void entry_vkCmdSetLineWidth(
1091 VkCommandBuffer commandBuffer,
1092 float lineWidth)
1093{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001094 AEMU_SCOPED_TRACE("vkCmdSetLineWidth");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001095 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001096 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001097 vkEnc->vkCmdSetLineWidth(commandBuffer, lineWidth);
1098}
1099static void entry_vkCmdSetDepthBias(
1100 VkCommandBuffer commandBuffer,
1101 float depthBiasConstantFactor,
1102 float depthBiasClamp,
1103 float depthBiasSlopeFactor)
1104{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001105 AEMU_SCOPED_TRACE("vkCmdSetDepthBias");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001106 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001107 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001108 vkEnc->vkCmdSetDepthBias(commandBuffer, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor);
1109}
1110static void entry_vkCmdSetBlendConstants(
1111 VkCommandBuffer commandBuffer,
Lingfeng Yang97ddeb82019-04-20 14:32:52 -07001112 const float blendConstants[4])
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001113{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001114 AEMU_SCOPED_TRACE("vkCmdSetBlendConstants");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001115 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001116 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001117 vkEnc->vkCmdSetBlendConstants(commandBuffer, blendConstants);
1118}
1119static void entry_vkCmdSetDepthBounds(
1120 VkCommandBuffer commandBuffer,
1121 float minDepthBounds,
1122 float maxDepthBounds)
1123{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001124 AEMU_SCOPED_TRACE("vkCmdSetDepthBounds");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001125 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001126 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001127 vkEnc->vkCmdSetDepthBounds(commandBuffer, minDepthBounds, maxDepthBounds);
1128}
1129static void entry_vkCmdSetStencilCompareMask(
1130 VkCommandBuffer commandBuffer,
1131 VkStencilFaceFlags faceMask,
1132 uint32_t compareMask)
1133{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001134 AEMU_SCOPED_TRACE("vkCmdSetStencilCompareMask");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001135 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001136 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001137 vkEnc->vkCmdSetStencilCompareMask(commandBuffer, faceMask, compareMask);
1138}
1139static void entry_vkCmdSetStencilWriteMask(
1140 VkCommandBuffer commandBuffer,
1141 VkStencilFaceFlags faceMask,
1142 uint32_t writeMask)
1143{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001144 AEMU_SCOPED_TRACE("vkCmdSetStencilWriteMask");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001145 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001146 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001147 vkEnc->vkCmdSetStencilWriteMask(commandBuffer, faceMask, writeMask);
1148}
1149static void entry_vkCmdSetStencilReference(
1150 VkCommandBuffer commandBuffer,
1151 VkStencilFaceFlags faceMask,
1152 uint32_t reference)
1153{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001154 AEMU_SCOPED_TRACE("vkCmdSetStencilReference");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001155 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001156 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001157 vkEnc->vkCmdSetStencilReference(commandBuffer, faceMask, reference);
1158}
1159static void entry_vkCmdBindDescriptorSets(
1160 VkCommandBuffer commandBuffer,
1161 VkPipelineBindPoint pipelineBindPoint,
1162 VkPipelineLayout layout,
1163 uint32_t firstSet,
1164 uint32_t descriptorSetCount,
1165 const VkDescriptorSet* pDescriptorSets,
1166 uint32_t dynamicOffsetCount,
1167 const uint32_t* pDynamicOffsets)
1168{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001169 AEMU_SCOPED_TRACE("vkCmdBindDescriptorSets");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001170 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001171 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001172 vkEnc->vkCmdBindDescriptorSets(commandBuffer, pipelineBindPoint, layout, firstSet, descriptorSetCount, pDescriptorSets, dynamicOffsetCount, pDynamicOffsets);
1173}
1174static void entry_vkCmdBindIndexBuffer(
1175 VkCommandBuffer commandBuffer,
1176 VkBuffer buffer,
1177 VkDeviceSize offset,
1178 VkIndexType indexType)
1179{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001180 AEMU_SCOPED_TRACE("vkCmdBindIndexBuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001181 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001182 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001183 vkEnc->vkCmdBindIndexBuffer(commandBuffer, buffer, offset, indexType);
1184}
1185static void entry_vkCmdBindVertexBuffers(
1186 VkCommandBuffer commandBuffer,
1187 uint32_t firstBinding,
1188 uint32_t bindingCount,
1189 const VkBuffer* pBuffers,
1190 const VkDeviceSize* pOffsets)
1191{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001192 AEMU_SCOPED_TRACE("vkCmdBindVertexBuffers");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001193 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001194 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001195 vkEnc->vkCmdBindVertexBuffers(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets);
1196}
1197static void entry_vkCmdDraw(
1198 VkCommandBuffer commandBuffer,
1199 uint32_t vertexCount,
1200 uint32_t instanceCount,
1201 uint32_t firstVertex,
1202 uint32_t firstInstance)
1203{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001204 AEMU_SCOPED_TRACE("vkCmdDraw");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001205 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001206 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001207 vkEnc->vkCmdDraw(commandBuffer, vertexCount, instanceCount, firstVertex, firstInstance);
1208}
1209static void entry_vkCmdDrawIndexed(
1210 VkCommandBuffer commandBuffer,
1211 uint32_t indexCount,
1212 uint32_t instanceCount,
1213 uint32_t firstIndex,
1214 int32_t vertexOffset,
1215 uint32_t firstInstance)
1216{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001217 AEMU_SCOPED_TRACE("vkCmdDrawIndexed");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001218 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001219 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001220 vkEnc->vkCmdDrawIndexed(commandBuffer, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance);
1221}
1222static void entry_vkCmdDrawIndirect(
1223 VkCommandBuffer commandBuffer,
1224 VkBuffer buffer,
1225 VkDeviceSize offset,
1226 uint32_t drawCount,
1227 uint32_t stride)
1228{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001229 AEMU_SCOPED_TRACE("vkCmdDrawIndirect");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001230 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001231 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001232 vkEnc->vkCmdDrawIndirect(commandBuffer, buffer, offset, drawCount, stride);
1233}
1234static void entry_vkCmdDrawIndexedIndirect(
1235 VkCommandBuffer commandBuffer,
1236 VkBuffer buffer,
1237 VkDeviceSize offset,
1238 uint32_t drawCount,
1239 uint32_t stride)
1240{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001241 AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirect");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001242 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001243 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001244 vkEnc->vkCmdDrawIndexedIndirect(commandBuffer, buffer, offset, drawCount, stride);
1245}
1246static void entry_vkCmdDispatch(
1247 VkCommandBuffer commandBuffer,
1248 uint32_t groupCountX,
1249 uint32_t groupCountY,
1250 uint32_t groupCountZ)
1251{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001252 AEMU_SCOPED_TRACE("vkCmdDispatch");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001253 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001254 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001255 vkEnc->vkCmdDispatch(commandBuffer, groupCountX, groupCountY, groupCountZ);
1256}
1257static void entry_vkCmdDispatchIndirect(
1258 VkCommandBuffer commandBuffer,
1259 VkBuffer buffer,
1260 VkDeviceSize offset)
1261{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001262 AEMU_SCOPED_TRACE("vkCmdDispatchIndirect");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001263 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001264 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001265 vkEnc->vkCmdDispatchIndirect(commandBuffer, buffer, offset);
1266}
1267static void entry_vkCmdCopyBuffer(
1268 VkCommandBuffer commandBuffer,
1269 VkBuffer srcBuffer,
1270 VkBuffer dstBuffer,
1271 uint32_t regionCount,
1272 const VkBufferCopy* pRegions)
1273{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001274 AEMU_SCOPED_TRACE("vkCmdCopyBuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001275 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001276 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001277 vkEnc->vkCmdCopyBuffer(commandBuffer, srcBuffer, dstBuffer, regionCount, pRegions);
1278}
1279static void entry_vkCmdCopyImage(
1280 VkCommandBuffer commandBuffer,
1281 VkImage srcImage,
1282 VkImageLayout srcImageLayout,
1283 VkImage dstImage,
1284 VkImageLayout dstImageLayout,
1285 uint32_t regionCount,
1286 const VkImageCopy* pRegions)
1287{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001288 AEMU_SCOPED_TRACE("vkCmdCopyImage");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001289 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001290 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001291 vkEnc->vkCmdCopyImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions);
1292}
1293static void entry_vkCmdBlitImage(
1294 VkCommandBuffer commandBuffer,
1295 VkImage srcImage,
1296 VkImageLayout srcImageLayout,
1297 VkImage dstImage,
1298 VkImageLayout dstImageLayout,
1299 uint32_t regionCount,
1300 const VkImageBlit* pRegions,
1301 VkFilter filter)
1302{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001303 AEMU_SCOPED_TRACE("vkCmdBlitImage");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001304 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001305 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001306 vkEnc->vkCmdBlitImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions, filter);
1307}
1308static void entry_vkCmdCopyBufferToImage(
1309 VkCommandBuffer commandBuffer,
1310 VkBuffer srcBuffer,
1311 VkImage dstImage,
1312 VkImageLayout dstImageLayout,
1313 uint32_t regionCount,
1314 const VkBufferImageCopy* pRegions)
1315{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001316 AEMU_SCOPED_TRACE("vkCmdCopyBufferToImage");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001317 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001318 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001319 vkEnc->vkCmdCopyBufferToImage(commandBuffer, srcBuffer, dstImage, dstImageLayout, regionCount, pRegions);
1320}
1321static void entry_vkCmdCopyImageToBuffer(
1322 VkCommandBuffer commandBuffer,
1323 VkImage srcImage,
1324 VkImageLayout srcImageLayout,
1325 VkBuffer dstBuffer,
1326 uint32_t regionCount,
1327 const VkBufferImageCopy* pRegions)
1328{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001329 AEMU_SCOPED_TRACE("vkCmdCopyImageToBuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001330 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001331 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001332 vkEnc->vkCmdCopyImageToBuffer(commandBuffer, srcImage, srcImageLayout, dstBuffer, regionCount, pRegions);
1333}
1334static void entry_vkCmdUpdateBuffer(
1335 VkCommandBuffer commandBuffer,
1336 VkBuffer dstBuffer,
1337 VkDeviceSize dstOffset,
1338 VkDeviceSize dataSize,
1339 const void* pData)
1340{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001341 AEMU_SCOPED_TRACE("vkCmdUpdateBuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001342 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001343 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001344 vkEnc->vkCmdUpdateBuffer(commandBuffer, dstBuffer, dstOffset, dataSize, pData);
1345}
1346static void entry_vkCmdFillBuffer(
1347 VkCommandBuffer commandBuffer,
1348 VkBuffer dstBuffer,
1349 VkDeviceSize dstOffset,
1350 VkDeviceSize size,
1351 uint32_t data)
1352{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001353 AEMU_SCOPED_TRACE("vkCmdFillBuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001354 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001355 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001356 vkEnc->vkCmdFillBuffer(commandBuffer, dstBuffer, dstOffset, size, data);
1357}
1358static void entry_vkCmdClearColorImage(
1359 VkCommandBuffer commandBuffer,
1360 VkImage image,
1361 VkImageLayout imageLayout,
1362 const VkClearColorValue* pColor,
1363 uint32_t rangeCount,
1364 const VkImageSubresourceRange* pRanges)
1365{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001366 AEMU_SCOPED_TRACE("vkCmdClearColorImage");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001367 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001368 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001369 vkEnc->vkCmdClearColorImage(commandBuffer, image, imageLayout, pColor, rangeCount, pRanges);
1370}
1371static void entry_vkCmdClearDepthStencilImage(
1372 VkCommandBuffer commandBuffer,
1373 VkImage image,
1374 VkImageLayout imageLayout,
1375 const VkClearDepthStencilValue* pDepthStencil,
1376 uint32_t rangeCount,
1377 const VkImageSubresourceRange* pRanges)
1378{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001379 AEMU_SCOPED_TRACE("vkCmdClearDepthStencilImage");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001380 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001381 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001382 vkEnc->vkCmdClearDepthStencilImage(commandBuffer, image, imageLayout, pDepthStencil, rangeCount, pRanges);
1383}
1384static void entry_vkCmdClearAttachments(
1385 VkCommandBuffer commandBuffer,
1386 uint32_t attachmentCount,
1387 const VkClearAttachment* pAttachments,
1388 uint32_t rectCount,
1389 const VkClearRect* pRects)
1390{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001391 AEMU_SCOPED_TRACE("vkCmdClearAttachments");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001392 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001393 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001394 vkEnc->vkCmdClearAttachments(commandBuffer, attachmentCount, pAttachments, rectCount, pRects);
1395}
1396static void entry_vkCmdResolveImage(
1397 VkCommandBuffer commandBuffer,
1398 VkImage srcImage,
1399 VkImageLayout srcImageLayout,
1400 VkImage dstImage,
1401 VkImageLayout dstImageLayout,
1402 uint32_t regionCount,
1403 const VkImageResolve* pRegions)
1404{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001405 AEMU_SCOPED_TRACE("vkCmdResolveImage");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001406 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001407 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001408 vkEnc->vkCmdResolveImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions);
1409}
1410static void entry_vkCmdSetEvent(
1411 VkCommandBuffer commandBuffer,
1412 VkEvent event,
1413 VkPipelineStageFlags stageMask)
1414{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001415 AEMU_SCOPED_TRACE("vkCmdSetEvent");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001416 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001417 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001418 vkEnc->vkCmdSetEvent(commandBuffer, event, stageMask);
1419}
1420static void entry_vkCmdResetEvent(
1421 VkCommandBuffer commandBuffer,
1422 VkEvent event,
1423 VkPipelineStageFlags stageMask)
1424{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001425 AEMU_SCOPED_TRACE("vkCmdResetEvent");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001426 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001427 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001428 vkEnc->vkCmdResetEvent(commandBuffer, event, stageMask);
1429}
1430static void entry_vkCmdWaitEvents(
1431 VkCommandBuffer commandBuffer,
1432 uint32_t eventCount,
1433 const VkEvent* pEvents,
1434 VkPipelineStageFlags srcStageMask,
1435 VkPipelineStageFlags dstStageMask,
1436 uint32_t memoryBarrierCount,
1437 const VkMemoryBarrier* pMemoryBarriers,
1438 uint32_t bufferMemoryBarrierCount,
1439 const VkBufferMemoryBarrier* pBufferMemoryBarriers,
1440 uint32_t imageMemoryBarrierCount,
1441 const VkImageMemoryBarrier* pImageMemoryBarriers)
1442{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001443 AEMU_SCOPED_TRACE("vkCmdWaitEvents");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001444 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001445 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001446 vkEnc->vkCmdWaitEvents(commandBuffer, eventCount, pEvents, srcStageMask, dstStageMask, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers);
1447}
1448static void entry_vkCmdPipelineBarrier(
1449 VkCommandBuffer commandBuffer,
1450 VkPipelineStageFlags srcStageMask,
1451 VkPipelineStageFlags dstStageMask,
1452 VkDependencyFlags dependencyFlags,
1453 uint32_t memoryBarrierCount,
1454 const VkMemoryBarrier* pMemoryBarriers,
1455 uint32_t bufferMemoryBarrierCount,
1456 const VkBufferMemoryBarrier* pBufferMemoryBarriers,
1457 uint32_t imageMemoryBarrierCount,
1458 const VkImageMemoryBarrier* pImageMemoryBarriers)
1459{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001460 AEMU_SCOPED_TRACE("vkCmdPipelineBarrier");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001461 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001462 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001463 vkEnc->vkCmdPipelineBarrier(commandBuffer, srcStageMask, dstStageMask, dependencyFlags, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers);
1464}
1465static void entry_vkCmdBeginQuery(
1466 VkCommandBuffer commandBuffer,
1467 VkQueryPool queryPool,
1468 uint32_t query,
1469 VkQueryControlFlags flags)
1470{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001471 AEMU_SCOPED_TRACE("vkCmdBeginQuery");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001472 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001473 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001474 vkEnc->vkCmdBeginQuery(commandBuffer, queryPool, query, flags);
1475}
1476static void entry_vkCmdEndQuery(
1477 VkCommandBuffer commandBuffer,
1478 VkQueryPool queryPool,
1479 uint32_t query)
1480{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001481 AEMU_SCOPED_TRACE("vkCmdEndQuery");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001482 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001483 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001484 vkEnc->vkCmdEndQuery(commandBuffer, queryPool, query);
1485}
1486static void entry_vkCmdResetQueryPool(
1487 VkCommandBuffer commandBuffer,
1488 VkQueryPool queryPool,
1489 uint32_t firstQuery,
1490 uint32_t queryCount)
1491{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001492 AEMU_SCOPED_TRACE("vkCmdResetQueryPool");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001493 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001494 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001495 vkEnc->vkCmdResetQueryPool(commandBuffer, queryPool, firstQuery, queryCount);
1496}
1497static void entry_vkCmdWriteTimestamp(
1498 VkCommandBuffer commandBuffer,
1499 VkPipelineStageFlagBits pipelineStage,
1500 VkQueryPool queryPool,
1501 uint32_t query)
1502{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001503 AEMU_SCOPED_TRACE("vkCmdWriteTimestamp");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001504 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001505 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001506 vkEnc->vkCmdWriteTimestamp(commandBuffer, pipelineStage, queryPool, query);
1507}
1508static void entry_vkCmdCopyQueryPoolResults(
1509 VkCommandBuffer commandBuffer,
1510 VkQueryPool queryPool,
1511 uint32_t firstQuery,
1512 uint32_t queryCount,
1513 VkBuffer dstBuffer,
1514 VkDeviceSize dstOffset,
1515 VkDeviceSize stride,
1516 VkQueryResultFlags flags)
1517{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001518 AEMU_SCOPED_TRACE("vkCmdCopyQueryPoolResults");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001519 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001520 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001521 vkEnc->vkCmdCopyQueryPoolResults(commandBuffer, queryPool, firstQuery, queryCount, dstBuffer, dstOffset, stride, flags);
1522}
1523static void entry_vkCmdPushConstants(
1524 VkCommandBuffer commandBuffer,
1525 VkPipelineLayout layout,
1526 VkShaderStageFlags stageFlags,
1527 uint32_t offset,
1528 uint32_t size,
1529 const void* pValues)
1530{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001531 AEMU_SCOPED_TRACE("vkCmdPushConstants");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001532 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001533 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001534 vkEnc->vkCmdPushConstants(commandBuffer, layout, stageFlags, offset, size, pValues);
1535}
1536static void entry_vkCmdBeginRenderPass(
1537 VkCommandBuffer commandBuffer,
1538 const VkRenderPassBeginInfo* pRenderPassBegin,
1539 VkSubpassContents contents)
1540{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001541 AEMU_SCOPED_TRACE("vkCmdBeginRenderPass");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001542 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001543 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001544 vkEnc->vkCmdBeginRenderPass(commandBuffer, pRenderPassBegin, contents);
1545}
1546static void entry_vkCmdNextSubpass(
1547 VkCommandBuffer commandBuffer,
1548 VkSubpassContents contents)
1549{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001550 AEMU_SCOPED_TRACE("vkCmdNextSubpass");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001551 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001552 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001553 vkEnc->vkCmdNextSubpass(commandBuffer, contents);
1554}
1555static void entry_vkCmdEndRenderPass(
1556 VkCommandBuffer commandBuffer)
1557{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001558 AEMU_SCOPED_TRACE("vkCmdEndRenderPass");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001559 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001560 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001561 vkEnc->vkCmdEndRenderPass(commandBuffer);
1562}
1563static void entry_vkCmdExecuteCommands(
1564 VkCommandBuffer commandBuffer,
1565 uint32_t commandBufferCount,
1566 const VkCommandBuffer* pCommandBuffers)
1567{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001568 AEMU_SCOPED_TRACE("vkCmdExecuteCommands");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001569 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001570 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001571 vkEnc->vkCmdExecuteCommands(commandBuffer, commandBufferCount, pCommandBuffers);
1572}
1573#endif
1574#ifdef VK_VERSION_1_1
1575static VkResult entry_vkEnumerateInstanceVersion(
1576 uint32_t* pApiVersion)
1577{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001578 AEMU_SCOPED_TRACE("vkEnumerateInstanceVersion");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001579 auto vkEnc = HostConnection::get()->vkEncoder();
1580 VkResult vkEnumerateInstanceVersion_VkResult_return = (VkResult)0;
1581 vkEnumerateInstanceVersion_VkResult_return = vkEnc->vkEnumerateInstanceVersion(pApiVersion);
1582 return vkEnumerateInstanceVersion_VkResult_return;
1583}
1584static VkResult entry_vkBindBufferMemory2(
1585 VkDevice device,
1586 uint32_t bindInfoCount,
1587 const VkBindBufferMemoryInfo* pBindInfos)
1588{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001589 AEMU_SCOPED_TRACE("vkBindBufferMemory2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001590 auto vkEnc = HostConnection::get()->vkEncoder();
1591 VkResult vkBindBufferMemory2_VkResult_return = (VkResult)0;
Lingfeng Yang4af5f322019-02-14 08:10:28 -08001592 auto resources = ResourceTracker::get();
1593 vkBindBufferMemory2_VkResult_return = resources->on_vkBindBufferMemory2(vkEnc, VK_SUCCESS, device, bindInfoCount, pBindInfos);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001594 return vkBindBufferMemory2_VkResult_return;
1595}
1596static VkResult entry_vkBindImageMemory2(
1597 VkDevice device,
1598 uint32_t bindInfoCount,
1599 const VkBindImageMemoryInfo* pBindInfos)
1600{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001601 AEMU_SCOPED_TRACE("vkBindImageMemory2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001602 auto vkEnc = HostConnection::get()->vkEncoder();
1603 VkResult vkBindImageMemory2_VkResult_return = (VkResult)0;
Lingfeng Yang4af5f322019-02-14 08:10:28 -08001604 auto resources = ResourceTracker::get();
1605 vkBindImageMemory2_VkResult_return = resources->on_vkBindImageMemory2(vkEnc, VK_SUCCESS, device, bindInfoCount, pBindInfos);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001606 return vkBindImageMemory2_VkResult_return;
1607}
1608static void entry_vkGetDeviceGroupPeerMemoryFeatures(
1609 VkDevice device,
1610 uint32_t heapIndex,
1611 uint32_t localDeviceIndex,
1612 uint32_t remoteDeviceIndex,
1613 VkPeerMemoryFeatureFlags* pPeerMemoryFeatures)
1614{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001615 AEMU_SCOPED_TRACE("vkGetDeviceGroupPeerMemoryFeatures");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001616 auto vkEnc = HostConnection::get()->vkEncoder();
1617 vkEnc->vkGetDeviceGroupPeerMemoryFeatures(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures);
1618}
1619static void entry_vkCmdSetDeviceMask(
1620 VkCommandBuffer commandBuffer,
1621 uint32_t deviceMask)
1622{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001623 AEMU_SCOPED_TRACE("vkCmdSetDeviceMask");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001624 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001625 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001626 vkEnc->vkCmdSetDeviceMask(commandBuffer, deviceMask);
1627}
1628static void entry_vkCmdDispatchBase(
1629 VkCommandBuffer commandBuffer,
1630 uint32_t baseGroupX,
1631 uint32_t baseGroupY,
1632 uint32_t baseGroupZ,
1633 uint32_t groupCountX,
1634 uint32_t groupCountY,
1635 uint32_t groupCountZ)
1636{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001637 AEMU_SCOPED_TRACE("vkCmdDispatchBase");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001638 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001639 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001640 vkEnc->vkCmdDispatchBase(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ);
1641}
1642static VkResult entry_vkEnumeratePhysicalDeviceGroups(
1643 VkInstance instance,
1644 uint32_t* pPhysicalDeviceGroupCount,
1645 VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties)
1646{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001647 AEMU_SCOPED_TRACE("vkEnumeratePhysicalDeviceGroups");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001648 auto vkEnc = HostConnection::get()->vkEncoder();
1649 VkResult vkEnumeratePhysicalDeviceGroups_VkResult_return = (VkResult)0;
1650 vkEnumeratePhysicalDeviceGroups_VkResult_return = vkEnc->vkEnumeratePhysicalDeviceGroups(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties);
1651 return vkEnumeratePhysicalDeviceGroups_VkResult_return;
1652}
1653static void entry_vkGetImageMemoryRequirements2(
1654 VkDevice device,
1655 const VkImageMemoryRequirementsInfo2* pInfo,
1656 VkMemoryRequirements2* pMemoryRequirements)
1657{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001658 AEMU_SCOPED_TRACE("vkGetImageMemoryRequirements2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001659 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang4af5f322019-02-14 08:10:28 -08001660 auto resources = ResourceTracker::get();
1661 resources->on_vkGetImageMemoryRequirements2(vkEnc, device, pInfo, pMemoryRequirements);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001662}
1663static void entry_vkGetBufferMemoryRequirements2(
1664 VkDevice device,
1665 const VkBufferMemoryRequirementsInfo2* pInfo,
1666 VkMemoryRequirements2* pMemoryRequirements)
1667{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001668 AEMU_SCOPED_TRACE("vkGetBufferMemoryRequirements2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001669 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang4af5f322019-02-14 08:10:28 -08001670 auto resources = ResourceTracker::get();
1671 resources->on_vkGetBufferMemoryRequirements2(vkEnc, device, pInfo, pMemoryRequirements);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001672}
1673static void entry_vkGetImageSparseMemoryRequirements2(
1674 VkDevice device,
1675 const VkImageSparseMemoryRequirementsInfo2* pInfo,
1676 uint32_t* pSparseMemoryRequirementCount,
1677 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements)
1678{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001679 AEMU_SCOPED_TRACE("vkGetImageSparseMemoryRequirements2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001680 auto vkEnc = HostConnection::get()->vkEncoder();
1681 vkEnc->vkGetImageSparseMemoryRequirements2(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements);
1682}
1683static void entry_vkGetPhysicalDeviceFeatures2(
1684 VkPhysicalDevice physicalDevice,
1685 VkPhysicalDeviceFeatures2* pFeatures)
1686{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001687 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFeatures2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001688 auto vkEnc = HostConnection::get()->vkEncoder();
1689 vkEnc->vkGetPhysicalDeviceFeatures2(physicalDevice, pFeatures);
1690}
1691static void entry_vkGetPhysicalDeviceProperties2(
1692 VkPhysicalDevice physicalDevice,
1693 VkPhysicalDeviceProperties2* pProperties)
1694{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001695 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceProperties2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001696 auto vkEnc = HostConnection::get()->vkEncoder();
1697 vkEnc->vkGetPhysicalDeviceProperties2(physicalDevice, pProperties);
1698}
1699static void entry_vkGetPhysicalDeviceFormatProperties2(
1700 VkPhysicalDevice physicalDevice,
1701 VkFormat format,
1702 VkFormatProperties2* pFormatProperties)
1703{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001704 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFormatProperties2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001705 auto vkEnc = HostConnection::get()->vkEncoder();
1706 vkEnc->vkGetPhysicalDeviceFormatProperties2(physicalDevice, format, pFormatProperties);
1707}
1708static VkResult entry_vkGetPhysicalDeviceImageFormatProperties2(
1709 VkPhysicalDevice physicalDevice,
1710 const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
1711 VkImageFormatProperties2* pImageFormatProperties)
1712{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001713 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceImageFormatProperties2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001714 auto vkEnc = HostConnection::get()->vkEncoder();
1715 VkResult vkGetPhysicalDeviceImageFormatProperties2_VkResult_return = (VkResult)0;
Lingfeng Yange517d1e2019-03-25 18:02:49 -07001716 auto resources = ResourceTracker::get();
1717 vkGetPhysicalDeviceImageFormatProperties2_VkResult_return = resources->on_vkGetPhysicalDeviceImageFormatProperties2(vkEnc, VK_SUCCESS, physicalDevice, pImageFormatInfo, pImageFormatProperties);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001718 return vkGetPhysicalDeviceImageFormatProperties2_VkResult_return;
1719}
1720static void entry_vkGetPhysicalDeviceQueueFamilyProperties2(
1721 VkPhysicalDevice physicalDevice,
1722 uint32_t* pQueueFamilyPropertyCount,
1723 VkQueueFamilyProperties2* pQueueFamilyProperties)
1724{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001725 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceQueueFamilyProperties2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001726 auto vkEnc = HostConnection::get()->vkEncoder();
1727 vkEnc->vkGetPhysicalDeviceQueueFamilyProperties2(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties);
1728}
1729static void entry_vkGetPhysicalDeviceMemoryProperties2(
1730 VkPhysicalDevice physicalDevice,
1731 VkPhysicalDeviceMemoryProperties2* pMemoryProperties)
1732{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001733 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMemoryProperties2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001734 auto vkEnc = HostConnection::get()->vkEncoder();
1735 vkEnc->vkGetPhysicalDeviceMemoryProperties2(physicalDevice, pMemoryProperties);
1736}
1737static void entry_vkGetPhysicalDeviceSparseImageFormatProperties2(
1738 VkPhysicalDevice physicalDevice,
1739 const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
1740 uint32_t* pPropertyCount,
1741 VkSparseImageFormatProperties2* pProperties)
1742{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001743 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSparseImageFormatProperties2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001744 auto vkEnc = HostConnection::get()->vkEncoder();
1745 vkEnc->vkGetPhysicalDeviceSparseImageFormatProperties2(physicalDevice, pFormatInfo, pPropertyCount, pProperties);
1746}
1747static void entry_vkTrimCommandPool(
1748 VkDevice device,
1749 VkCommandPool commandPool,
1750 VkCommandPoolTrimFlags flags)
1751{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001752 AEMU_SCOPED_TRACE("vkTrimCommandPool");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001753 auto vkEnc = HostConnection::get()->vkEncoder();
1754 vkEnc->vkTrimCommandPool(device, commandPool, flags);
1755}
1756static void entry_vkGetDeviceQueue2(
1757 VkDevice device,
1758 const VkDeviceQueueInfo2* pQueueInfo,
1759 VkQueue* pQueue)
1760{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001761 AEMU_SCOPED_TRACE("vkGetDeviceQueue2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001762 auto vkEnc = HostConnection::get()->vkEncoder();
1763 vkEnc->vkGetDeviceQueue2(device, pQueueInfo, pQueue);
1764}
1765static VkResult entry_vkCreateSamplerYcbcrConversion(
1766 VkDevice device,
1767 const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
1768 const VkAllocationCallbacks* pAllocator,
1769 VkSamplerYcbcrConversion* pYcbcrConversion)
1770{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001771 AEMU_SCOPED_TRACE("vkCreateSamplerYcbcrConversion");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001772 auto vkEnc = HostConnection::get()->vkEncoder();
1773 VkResult vkCreateSamplerYcbcrConversion_VkResult_return = (VkResult)0;
Lingfeng Yang5c701122019-03-05 08:34:46 -08001774 auto resources = ResourceTracker::get();
1775 vkCreateSamplerYcbcrConversion_VkResult_return = resources->on_vkCreateSamplerYcbcrConversion(vkEnc, VK_SUCCESS, device, pCreateInfo, pAllocator, pYcbcrConversion);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001776 return vkCreateSamplerYcbcrConversion_VkResult_return;
1777}
1778static void entry_vkDestroySamplerYcbcrConversion(
1779 VkDevice device,
1780 VkSamplerYcbcrConversion ycbcrConversion,
1781 const VkAllocationCallbacks* pAllocator)
1782{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001783 AEMU_SCOPED_TRACE("vkDestroySamplerYcbcrConversion");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001784 auto vkEnc = HostConnection::get()->vkEncoder();
Roman Kiryanov004f48c2019-06-28 14:59:32 -07001785 auto resources = ResourceTracker::get();
1786 resources->on_vkDestroySamplerYcbcrConversion(vkEnc, device, ycbcrConversion, pAllocator);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001787}
1788static VkResult entry_vkCreateDescriptorUpdateTemplate(
1789 VkDevice device,
1790 const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
1791 const VkAllocationCallbacks* pAllocator,
1792 VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate)
1793{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001794 AEMU_SCOPED_TRACE("vkCreateDescriptorUpdateTemplate");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001795 auto vkEnc = HostConnection::get()->vkEncoder();
1796 VkResult vkCreateDescriptorUpdateTemplate_VkResult_return = (VkResult)0;
1797 vkCreateDescriptorUpdateTemplate_VkResult_return = vkEnc->vkCreateDescriptorUpdateTemplate(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate);
1798 return vkCreateDescriptorUpdateTemplate_VkResult_return;
1799}
1800static void entry_vkDestroyDescriptorUpdateTemplate(
1801 VkDevice device,
1802 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
1803 const VkAllocationCallbacks* pAllocator)
1804{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001805 AEMU_SCOPED_TRACE("vkDestroyDescriptorUpdateTemplate");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001806 auto vkEnc = HostConnection::get()->vkEncoder();
1807 vkEnc->vkDestroyDescriptorUpdateTemplate(device, descriptorUpdateTemplate, pAllocator);
1808}
1809static void entry_vkUpdateDescriptorSetWithTemplate(
1810 VkDevice device,
1811 VkDescriptorSet descriptorSet,
1812 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
1813 const void* pData)
1814{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001815 AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplate");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001816 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang05d5ea32019-03-23 00:12:39 -07001817 auto resources = ResourceTracker::get();
1818 resources->on_vkUpdateDescriptorSetWithTemplate(vkEnc, device, descriptorSet, descriptorUpdateTemplate, pData);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001819}
1820static void entry_vkGetPhysicalDeviceExternalBufferProperties(
1821 VkPhysicalDevice physicalDevice,
1822 const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
1823 VkExternalBufferProperties* pExternalBufferProperties)
1824{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001825 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalBufferProperties");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001826 auto vkEnc = HostConnection::get()->vkEncoder();
1827 vkEnc->vkGetPhysicalDeviceExternalBufferProperties(physicalDevice, pExternalBufferInfo, pExternalBufferProperties);
1828}
1829static void entry_vkGetPhysicalDeviceExternalFenceProperties(
1830 VkPhysicalDevice physicalDevice,
1831 const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
1832 VkExternalFenceProperties* pExternalFenceProperties)
1833{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001834 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalFenceProperties");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001835 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yangcd2d8fe2019-08-16 12:21:50 -07001836 auto resources = ResourceTracker::get();
1837 resources->on_vkGetPhysicalDeviceExternalFenceProperties(vkEnc, physicalDevice, pExternalFenceInfo, pExternalFenceProperties);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001838}
1839static void entry_vkGetPhysicalDeviceExternalSemaphoreProperties(
1840 VkPhysicalDevice physicalDevice,
1841 const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
1842 VkExternalSemaphoreProperties* pExternalSemaphoreProperties)
1843{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001844 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalSemaphoreProperties");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001845 auto vkEnc = HostConnection::get()->vkEncoder();
1846 vkEnc->vkGetPhysicalDeviceExternalSemaphoreProperties(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties);
1847}
1848static void entry_vkGetDescriptorSetLayoutSupport(
1849 VkDevice device,
1850 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
1851 VkDescriptorSetLayoutSupport* pSupport)
1852{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001853 AEMU_SCOPED_TRACE("vkGetDescriptorSetLayoutSupport");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001854 auto vkEnc = HostConnection::get()->vkEncoder();
1855 vkEnc->vkGetDescriptorSetLayoutSupport(device, pCreateInfo, pSupport);
1856}
1857#endif
1858#ifdef VK_KHR_surface
1859static void entry_vkDestroySurfaceKHR(
1860 VkInstance instance,
1861 VkSurfaceKHR surface,
1862 const VkAllocationCallbacks* pAllocator)
1863{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001864 AEMU_SCOPED_TRACE("vkDestroySurfaceKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001865 auto vkEnc = HostConnection::get()->vkEncoder();
1866 vkEnc->vkDestroySurfaceKHR(instance, surface, pAllocator);
1867}
1868static VkResult entry_vkGetPhysicalDeviceSurfaceSupportKHR(
1869 VkPhysicalDevice physicalDevice,
1870 uint32_t queueFamilyIndex,
1871 VkSurfaceKHR surface,
1872 VkBool32* pSupported)
1873{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001874 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceSupportKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001875 auto vkEnc = HostConnection::get()->vkEncoder();
1876 VkResult vkGetPhysicalDeviceSurfaceSupportKHR_VkResult_return = (VkResult)0;
1877 vkGetPhysicalDeviceSurfaceSupportKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceSupportKHR(physicalDevice, queueFamilyIndex, surface, pSupported);
1878 return vkGetPhysicalDeviceSurfaceSupportKHR_VkResult_return;
1879}
1880static VkResult entry_vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
1881 VkPhysicalDevice physicalDevice,
1882 VkSurfaceKHR surface,
1883 VkSurfaceCapabilitiesKHR* pSurfaceCapabilities)
1884{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001885 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceCapabilitiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001886 auto vkEnc = HostConnection::get()->vkEncoder();
1887 VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR_VkResult_return = (VkResult)0;
1888 vkGetPhysicalDeviceSurfaceCapabilitiesKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceCapabilitiesKHR(physicalDevice, surface, pSurfaceCapabilities);
1889 return vkGetPhysicalDeviceSurfaceCapabilitiesKHR_VkResult_return;
1890}
1891static VkResult entry_vkGetPhysicalDeviceSurfaceFormatsKHR(
1892 VkPhysicalDevice physicalDevice,
1893 VkSurfaceKHR surface,
1894 uint32_t* pSurfaceFormatCount,
1895 VkSurfaceFormatKHR* pSurfaceFormats)
1896{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001897 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceFormatsKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001898 auto vkEnc = HostConnection::get()->vkEncoder();
1899 VkResult vkGetPhysicalDeviceSurfaceFormatsKHR_VkResult_return = (VkResult)0;
1900 vkGetPhysicalDeviceSurfaceFormatsKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceFormatsKHR(physicalDevice, surface, pSurfaceFormatCount, pSurfaceFormats);
1901 return vkGetPhysicalDeviceSurfaceFormatsKHR_VkResult_return;
1902}
1903static VkResult entry_vkGetPhysicalDeviceSurfacePresentModesKHR(
1904 VkPhysicalDevice physicalDevice,
1905 VkSurfaceKHR surface,
1906 uint32_t* pPresentModeCount,
1907 VkPresentModeKHR* pPresentModes)
1908{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001909 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfacePresentModesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001910 auto vkEnc = HostConnection::get()->vkEncoder();
1911 VkResult vkGetPhysicalDeviceSurfacePresentModesKHR_VkResult_return = (VkResult)0;
1912 vkGetPhysicalDeviceSurfacePresentModesKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfacePresentModesKHR(physicalDevice, surface, pPresentModeCount, pPresentModes);
1913 return vkGetPhysicalDeviceSurfacePresentModesKHR_VkResult_return;
1914}
1915#endif
1916#ifdef VK_KHR_swapchain
1917static VkResult entry_vkCreateSwapchainKHR(
1918 VkDevice device,
1919 const VkSwapchainCreateInfoKHR* pCreateInfo,
1920 const VkAllocationCallbacks* pAllocator,
1921 VkSwapchainKHR* pSwapchain)
1922{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001923 AEMU_SCOPED_TRACE("vkCreateSwapchainKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001924 auto vkEnc = HostConnection::get()->vkEncoder();
1925 VkResult vkCreateSwapchainKHR_VkResult_return = (VkResult)0;
1926 vkCreateSwapchainKHR_VkResult_return = vkEnc->vkCreateSwapchainKHR(device, pCreateInfo, pAllocator, pSwapchain);
1927 return vkCreateSwapchainKHR_VkResult_return;
1928}
1929static void entry_vkDestroySwapchainKHR(
1930 VkDevice device,
1931 VkSwapchainKHR swapchain,
1932 const VkAllocationCallbacks* pAllocator)
1933{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001934 AEMU_SCOPED_TRACE("vkDestroySwapchainKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001935 auto vkEnc = HostConnection::get()->vkEncoder();
1936 vkEnc->vkDestroySwapchainKHR(device, swapchain, pAllocator);
1937}
1938static VkResult entry_vkGetSwapchainImagesKHR(
1939 VkDevice device,
1940 VkSwapchainKHR swapchain,
1941 uint32_t* pSwapchainImageCount,
1942 VkImage* pSwapchainImages)
1943{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001944 AEMU_SCOPED_TRACE("vkGetSwapchainImagesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001945 auto vkEnc = HostConnection::get()->vkEncoder();
1946 VkResult vkGetSwapchainImagesKHR_VkResult_return = (VkResult)0;
1947 vkGetSwapchainImagesKHR_VkResult_return = vkEnc->vkGetSwapchainImagesKHR(device, swapchain, pSwapchainImageCount, pSwapchainImages);
1948 return vkGetSwapchainImagesKHR_VkResult_return;
1949}
1950static VkResult entry_vkAcquireNextImageKHR(
1951 VkDevice device,
1952 VkSwapchainKHR swapchain,
1953 uint64_t timeout,
1954 VkSemaphore semaphore,
1955 VkFence fence,
1956 uint32_t* pImageIndex)
1957{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001958 AEMU_SCOPED_TRACE("vkAcquireNextImageKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001959 auto vkEnc = HostConnection::get()->vkEncoder();
1960 VkResult vkAcquireNextImageKHR_VkResult_return = (VkResult)0;
1961 vkAcquireNextImageKHR_VkResult_return = vkEnc->vkAcquireNextImageKHR(device, swapchain, timeout, semaphore, fence, pImageIndex);
1962 return vkAcquireNextImageKHR_VkResult_return;
1963}
1964static VkResult entry_vkQueuePresentKHR(
1965 VkQueue queue,
1966 const VkPresentInfoKHR* pPresentInfo)
1967{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001968 AEMU_SCOPED_TRACE("vkQueuePresentKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001969 auto vkEnc = HostConnection::get()->vkEncoder();
1970 VkResult vkQueuePresentKHR_VkResult_return = (VkResult)0;
1971 vkQueuePresentKHR_VkResult_return = vkEnc->vkQueuePresentKHR(queue, pPresentInfo);
1972 return vkQueuePresentKHR_VkResult_return;
1973}
1974static VkResult entry_vkGetDeviceGroupPresentCapabilitiesKHR(
1975 VkDevice device,
1976 VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities)
1977{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001978 AEMU_SCOPED_TRACE("vkGetDeviceGroupPresentCapabilitiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001979 auto vkEnc = HostConnection::get()->vkEncoder();
1980 VkResult vkGetDeviceGroupPresentCapabilitiesKHR_VkResult_return = (VkResult)0;
1981 vkGetDeviceGroupPresentCapabilitiesKHR_VkResult_return = vkEnc->vkGetDeviceGroupPresentCapabilitiesKHR(device, pDeviceGroupPresentCapabilities);
1982 return vkGetDeviceGroupPresentCapabilitiesKHR_VkResult_return;
1983}
1984static VkResult entry_vkGetDeviceGroupSurfacePresentModesKHR(
1985 VkDevice device,
1986 VkSurfaceKHR surface,
1987 VkDeviceGroupPresentModeFlagsKHR* pModes)
1988{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001989 AEMU_SCOPED_TRACE("vkGetDeviceGroupSurfacePresentModesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001990 auto vkEnc = HostConnection::get()->vkEncoder();
1991 VkResult vkGetDeviceGroupSurfacePresentModesKHR_VkResult_return = (VkResult)0;
1992 vkGetDeviceGroupSurfacePresentModesKHR_VkResult_return = vkEnc->vkGetDeviceGroupSurfacePresentModesKHR(device, surface, pModes);
1993 return vkGetDeviceGroupSurfacePresentModesKHR_VkResult_return;
1994}
1995static VkResult entry_vkGetPhysicalDevicePresentRectanglesKHR(
1996 VkPhysicalDevice physicalDevice,
1997 VkSurfaceKHR surface,
1998 uint32_t* pRectCount,
1999 VkRect2D* pRects)
2000{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002001 AEMU_SCOPED_TRACE("vkGetPhysicalDevicePresentRectanglesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002002 auto vkEnc = HostConnection::get()->vkEncoder();
2003 VkResult vkGetPhysicalDevicePresentRectanglesKHR_VkResult_return = (VkResult)0;
2004 vkGetPhysicalDevicePresentRectanglesKHR_VkResult_return = vkEnc->vkGetPhysicalDevicePresentRectanglesKHR(physicalDevice, surface, pRectCount, pRects);
2005 return vkGetPhysicalDevicePresentRectanglesKHR_VkResult_return;
2006}
2007static VkResult entry_vkAcquireNextImage2KHR(
2008 VkDevice device,
2009 const VkAcquireNextImageInfoKHR* pAcquireInfo,
2010 uint32_t* pImageIndex)
2011{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002012 AEMU_SCOPED_TRACE("vkAcquireNextImage2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002013 auto vkEnc = HostConnection::get()->vkEncoder();
2014 VkResult vkAcquireNextImage2KHR_VkResult_return = (VkResult)0;
2015 vkAcquireNextImage2KHR_VkResult_return = vkEnc->vkAcquireNextImage2KHR(device, pAcquireInfo, pImageIndex);
2016 return vkAcquireNextImage2KHR_VkResult_return;
2017}
2018#endif
2019#ifdef VK_KHR_display
2020static VkResult entry_vkGetPhysicalDeviceDisplayPropertiesKHR(
2021 VkPhysicalDevice physicalDevice,
2022 uint32_t* pPropertyCount,
2023 VkDisplayPropertiesKHR* pProperties)
2024{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002025 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayPropertiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002026 auto vkEnc = HostConnection::get()->vkEncoder();
2027 VkResult vkGetPhysicalDeviceDisplayPropertiesKHR_VkResult_return = (VkResult)0;
2028 vkGetPhysicalDeviceDisplayPropertiesKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceDisplayPropertiesKHR(physicalDevice, pPropertyCount, pProperties);
2029 return vkGetPhysicalDeviceDisplayPropertiesKHR_VkResult_return;
2030}
2031static VkResult entry_vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
2032 VkPhysicalDevice physicalDevice,
2033 uint32_t* pPropertyCount,
2034 VkDisplayPlanePropertiesKHR* pProperties)
2035{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002036 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayPlanePropertiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002037 auto vkEnc = HostConnection::get()->vkEncoder();
2038 VkResult vkGetPhysicalDeviceDisplayPlanePropertiesKHR_VkResult_return = (VkResult)0;
2039 vkGetPhysicalDeviceDisplayPlanePropertiesKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceDisplayPlanePropertiesKHR(physicalDevice, pPropertyCount, pProperties);
2040 return vkGetPhysicalDeviceDisplayPlanePropertiesKHR_VkResult_return;
2041}
2042static VkResult entry_vkGetDisplayPlaneSupportedDisplaysKHR(
2043 VkPhysicalDevice physicalDevice,
2044 uint32_t planeIndex,
2045 uint32_t* pDisplayCount,
2046 VkDisplayKHR* pDisplays)
2047{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002048 AEMU_SCOPED_TRACE("vkGetDisplayPlaneSupportedDisplaysKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002049 auto vkEnc = HostConnection::get()->vkEncoder();
2050 VkResult vkGetDisplayPlaneSupportedDisplaysKHR_VkResult_return = (VkResult)0;
2051 vkGetDisplayPlaneSupportedDisplaysKHR_VkResult_return = vkEnc->vkGetDisplayPlaneSupportedDisplaysKHR(physicalDevice, planeIndex, pDisplayCount, pDisplays);
2052 return vkGetDisplayPlaneSupportedDisplaysKHR_VkResult_return;
2053}
2054static VkResult entry_vkGetDisplayModePropertiesKHR(
2055 VkPhysicalDevice physicalDevice,
2056 VkDisplayKHR display,
2057 uint32_t* pPropertyCount,
2058 VkDisplayModePropertiesKHR* pProperties)
2059{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002060 AEMU_SCOPED_TRACE("vkGetDisplayModePropertiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002061 auto vkEnc = HostConnection::get()->vkEncoder();
2062 VkResult vkGetDisplayModePropertiesKHR_VkResult_return = (VkResult)0;
2063 vkGetDisplayModePropertiesKHR_VkResult_return = vkEnc->vkGetDisplayModePropertiesKHR(physicalDevice, display, pPropertyCount, pProperties);
2064 return vkGetDisplayModePropertiesKHR_VkResult_return;
2065}
2066static VkResult entry_vkCreateDisplayModeKHR(
2067 VkPhysicalDevice physicalDevice,
2068 VkDisplayKHR display,
2069 const VkDisplayModeCreateInfoKHR* pCreateInfo,
2070 const VkAllocationCallbacks* pAllocator,
2071 VkDisplayModeKHR* pMode)
2072{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002073 AEMU_SCOPED_TRACE("vkCreateDisplayModeKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002074 auto vkEnc = HostConnection::get()->vkEncoder();
2075 VkResult vkCreateDisplayModeKHR_VkResult_return = (VkResult)0;
2076 vkCreateDisplayModeKHR_VkResult_return = vkEnc->vkCreateDisplayModeKHR(physicalDevice, display, pCreateInfo, pAllocator, pMode);
2077 return vkCreateDisplayModeKHR_VkResult_return;
2078}
2079static VkResult entry_vkGetDisplayPlaneCapabilitiesKHR(
2080 VkPhysicalDevice physicalDevice,
2081 VkDisplayModeKHR mode,
2082 uint32_t planeIndex,
2083 VkDisplayPlaneCapabilitiesKHR* pCapabilities)
2084{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002085 AEMU_SCOPED_TRACE("vkGetDisplayPlaneCapabilitiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002086 auto vkEnc = HostConnection::get()->vkEncoder();
2087 VkResult vkGetDisplayPlaneCapabilitiesKHR_VkResult_return = (VkResult)0;
2088 vkGetDisplayPlaneCapabilitiesKHR_VkResult_return = vkEnc->vkGetDisplayPlaneCapabilitiesKHR(physicalDevice, mode, planeIndex, pCapabilities);
2089 return vkGetDisplayPlaneCapabilitiesKHR_VkResult_return;
2090}
2091static VkResult entry_vkCreateDisplayPlaneSurfaceKHR(
2092 VkInstance instance,
2093 const VkDisplaySurfaceCreateInfoKHR* pCreateInfo,
2094 const VkAllocationCallbacks* pAllocator,
2095 VkSurfaceKHR* pSurface)
2096{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002097 AEMU_SCOPED_TRACE("vkCreateDisplayPlaneSurfaceKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002098 auto vkEnc = HostConnection::get()->vkEncoder();
2099 VkResult vkCreateDisplayPlaneSurfaceKHR_VkResult_return = (VkResult)0;
2100 vkCreateDisplayPlaneSurfaceKHR_VkResult_return = vkEnc->vkCreateDisplayPlaneSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
2101 return vkCreateDisplayPlaneSurfaceKHR_VkResult_return;
2102}
2103#endif
2104#ifdef VK_KHR_display_swapchain
2105static VkResult entry_vkCreateSharedSwapchainsKHR(
2106 VkDevice device,
2107 uint32_t swapchainCount,
2108 const VkSwapchainCreateInfoKHR* pCreateInfos,
2109 const VkAllocationCallbacks* pAllocator,
2110 VkSwapchainKHR* pSwapchains)
2111{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002112 AEMU_SCOPED_TRACE("vkCreateSharedSwapchainsKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002113 auto vkEnc = HostConnection::get()->vkEncoder();
2114 VkResult vkCreateSharedSwapchainsKHR_VkResult_return = (VkResult)0;
2115 vkCreateSharedSwapchainsKHR_VkResult_return = vkEnc->vkCreateSharedSwapchainsKHR(device, swapchainCount, pCreateInfos, pAllocator, pSwapchains);
2116 return vkCreateSharedSwapchainsKHR_VkResult_return;
2117}
2118#endif
2119#ifdef VK_KHR_xlib_surface
2120static VkResult entry_vkCreateXlibSurfaceKHR(
2121 VkInstance instance,
2122 const VkXlibSurfaceCreateInfoKHR* pCreateInfo,
2123 const VkAllocationCallbacks* pAllocator,
2124 VkSurfaceKHR* pSurface)
2125{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002126 AEMU_SCOPED_TRACE("vkCreateXlibSurfaceKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002127 auto vkEnc = HostConnection::get()->vkEncoder();
2128 VkResult vkCreateXlibSurfaceKHR_VkResult_return = (VkResult)0;
2129 vkCreateXlibSurfaceKHR_VkResult_return = vkEnc->vkCreateXlibSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
2130 return vkCreateXlibSurfaceKHR_VkResult_return;
2131}
2132static VkBool32 entry_vkGetPhysicalDeviceXlibPresentationSupportKHR(
2133 VkPhysicalDevice physicalDevice,
2134 uint32_t queueFamilyIndex,
2135 Display* dpy,
2136 VisualID visualID)
2137{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002138 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceXlibPresentationSupportKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002139 auto vkEnc = HostConnection::get()->vkEncoder();
2140 VkBool32 vkGetPhysicalDeviceXlibPresentationSupportKHR_VkBool32_return = (VkBool32)0;
2141 vkGetPhysicalDeviceXlibPresentationSupportKHR_VkBool32_return = vkEnc->vkGetPhysicalDeviceXlibPresentationSupportKHR(physicalDevice, queueFamilyIndex, dpy, visualID);
2142 return vkGetPhysicalDeviceXlibPresentationSupportKHR_VkBool32_return;
2143}
2144#endif
2145#ifdef VK_KHR_xcb_surface
2146static VkResult entry_vkCreateXcbSurfaceKHR(
2147 VkInstance instance,
2148 const VkXcbSurfaceCreateInfoKHR* pCreateInfo,
2149 const VkAllocationCallbacks* pAllocator,
2150 VkSurfaceKHR* pSurface)
2151{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002152 AEMU_SCOPED_TRACE("vkCreateXcbSurfaceKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002153 auto vkEnc = HostConnection::get()->vkEncoder();
2154 VkResult vkCreateXcbSurfaceKHR_VkResult_return = (VkResult)0;
2155 vkCreateXcbSurfaceKHR_VkResult_return = vkEnc->vkCreateXcbSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
2156 return vkCreateXcbSurfaceKHR_VkResult_return;
2157}
2158static VkBool32 entry_vkGetPhysicalDeviceXcbPresentationSupportKHR(
2159 VkPhysicalDevice physicalDevice,
2160 uint32_t queueFamilyIndex,
2161 xcb_connection_t* connection,
2162 xcb_visualid_t visual_id)
2163{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002164 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceXcbPresentationSupportKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002165 auto vkEnc = HostConnection::get()->vkEncoder();
2166 VkBool32 vkGetPhysicalDeviceXcbPresentationSupportKHR_VkBool32_return = (VkBool32)0;
2167 vkGetPhysicalDeviceXcbPresentationSupportKHR_VkBool32_return = vkEnc->vkGetPhysicalDeviceXcbPresentationSupportKHR(physicalDevice, queueFamilyIndex, connection, visual_id);
2168 return vkGetPhysicalDeviceXcbPresentationSupportKHR_VkBool32_return;
2169}
2170#endif
2171#ifdef VK_KHR_wayland_surface
2172static VkResult entry_vkCreateWaylandSurfaceKHR(
2173 VkInstance instance,
2174 const VkWaylandSurfaceCreateInfoKHR* pCreateInfo,
2175 const VkAllocationCallbacks* pAllocator,
2176 VkSurfaceKHR* pSurface)
2177{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002178 AEMU_SCOPED_TRACE("vkCreateWaylandSurfaceKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002179 auto vkEnc = HostConnection::get()->vkEncoder();
2180 VkResult vkCreateWaylandSurfaceKHR_VkResult_return = (VkResult)0;
2181 vkCreateWaylandSurfaceKHR_VkResult_return = vkEnc->vkCreateWaylandSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
2182 return vkCreateWaylandSurfaceKHR_VkResult_return;
2183}
2184static VkBool32 entry_vkGetPhysicalDeviceWaylandPresentationSupportKHR(
2185 VkPhysicalDevice physicalDevice,
2186 uint32_t queueFamilyIndex,
2187 wl_display* display)
2188{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002189 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceWaylandPresentationSupportKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002190 auto vkEnc = HostConnection::get()->vkEncoder();
2191 VkBool32 vkGetPhysicalDeviceWaylandPresentationSupportKHR_VkBool32_return = (VkBool32)0;
2192 vkGetPhysicalDeviceWaylandPresentationSupportKHR_VkBool32_return = vkEnc->vkGetPhysicalDeviceWaylandPresentationSupportKHR(physicalDevice, queueFamilyIndex, display);
2193 return vkGetPhysicalDeviceWaylandPresentationSupportKHR_VkBool32_return;
2194}
2195#endif
2196#ifdef VK_KHR_mir_surface
2197static VkResult entry_vkCreateMirSurfaceKHR(
2198 VkInstance instance,
2199 const VkMirSurfaceCreateInfoKHR* pCreateInfo,
2200 const VkAllocationCallbacks* pAllocator,
2201 VkSurfaceKHR* pSurface)
2202{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002203 AEMU_SCOPED_TRACE("vkCreateMirSurfaceKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002204 auto vkEnc = HostConnection::get()->vkEncoder();
2205 VkResult vkCreateMirSurfaceKHR_VkResult_return = (VkResult)0;
2206 vkCreateMirSurfaceKHR_VkResult_return = vkEnc->vkCreateMirSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
2207 return vkCreateMirSurfaceKHR_VkResult_return;
2208}
2209static VkBool32 entry_vkGetPhysicalDeviceMirPresentationSupportKHR(
2210 VkPhysicalDevice physicalDevice,
2211 uint32_t queueFamilyIndex,
2212 MirConnection* connection)
2213{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002214 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMirPresentationSupportKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002215 auto vkEnc = HostConnection::get()->vkEncoder();
2216 VkBool32 vkGetPhysicalDeviceMirPresentationSupportKHR_VkBool32_return = (VkBool32)0;
2217 vkGetPhysicalDeviceMirPresentationSupportKHR_VkBool32_return = vkEnc->vkGetPhysicalDeviceMirPresentationSupportKHR(physicalDevice, queueFamilyIndex, connection);
2218 return vkGetPhysicalDeviceMirPresentationSupportKHR_VkBool32_return;
2219}
2220#endif
2221#ifdef VK_KHR_android_surface
2222static VkResult entry_vkCreateAndroidSurfaceKHR(
2223 VkInstance instance,
2224 const VkAndroidSurfaceCreateInfoKHR* pCreateInfo,
2225 const VkAllocationCallbacks* pAllocator,
2226 VkSurfaceKHR* pSurface)
2227{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002228 AEMU_SCOPED_TRACE("vkCreateAndroidSurfaceKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002229 auto vkEnc = HostConnection::get()->vkEncoder();
2230 VkResult vkCreateAndroidSurfaceKHR_VkResult_return = (VkResult)0;
2231 vkCreateAndroidSurfaceKHR_VkResult_return = vkEnc->vkCreateAndroidSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
2232 return vkCreateAndroidSurfaceKHR_VkResult_return;
2233}
2234#endif
2235#ifdef VK_KHR_win32_surface
2236static VkResult entry_vkCreateWin32SurfaceKHR(
2237 VkInstance instance,
2238 const VkWin32SurfaceCreateInfoKHR* pCreateInfo,
2239 const VkAllocationCallbacks* pAllocator,
2240 VkSurfaceKHR* pSurface)
2241{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002242 AEMU_SCOPED_TRACE("vkCreateWin32SurfaceKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002243 auto vkEnc = HostConnection::get()->vkEncoder();
2244 VkResult vkCreateWin32SurfaceKHR_VkResult_return = (VkResult)0;
2245 vkCreateWin32SurfaceKHR_VkResult_return = vkEnc->vkCreateWin32SurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
2246 return vkCreateWin32SurfaceKHR_VkResult_return;
2247}
2248static VkBool32 entry_vkGetPhysicalDeviceWin32PresentationSupportKHR(
2249 VkPhysicalDevice physicalDevice,
2250 uint32_t queueFamilyIndex)
2251{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002252 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceWin32PresentationSupportKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002253 auto vkEnc = HostConnection::get()->vkEncoder();
2254 VkBool32 vkGetPhysicalDeviceWin32PresentationSupportKHR_VkBool32_return = (VkBool32)0;
2255 vkGetPhysicalDeviceWin32PresentationSupportKHR_VkBool32_return = vkEnc->vkGetPhysicalDeviceWin32PresentationSupportKHR(physicalDevice, queueFamilyIndex);
2256 return vkGetPhysicalDeviceWin32PresentationSupportKHR_VkBool32_return;
2257}
2258#endif
2259#ifdef VK_KHR_sampler_mirror_clamp_to_edge
2260#endif
2261#ifdef VK_KHR_multiview
2262#endif
2263#ifdef VK_KHR_get_physical_device_properties2
2264static void entry_vkGetPhysicalDeviceFeatures2KHR(
2265 VkPhysicalDevice physicalDevice,
2266 VkPhysicalDeviceFeatures2* pFeatures)
2267{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002268 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFeatures2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002269 auto vkEnc = HostConnection::get()->vkEncoder();
2270 vkEnc->vkGetPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures);
2271}
2272static void entry_vkGetPhysicalDeviceProperties2KHR(
2273 VkPhysicalDevice physicalDevice,
2274 VkPhysicalDeviceProperties2* pProperties)
2275{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002276 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002277 auto vkEnc = HostConnection::get()->vkEncoder();
2278 vkEnc->vkGetPhysicalDeviceProperties2KHR(physicalDevice, pProperties);
2279}
2280static void entry_vkGetPhysicalDeviceFormatProperties2KHR(
2281 VkPhysicalDevice physicalDevice,
2282 VkFormat format,
2283 VkFormatProperties2* pFormatProperties)
2284{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002285 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFormatProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002286 auto vkEnc = HostConnection::get()->vkEncoder();
2287 vkEnc->vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice, format, pFormatProperties);
2288}
2289static VkResult entry_vkGetPhysicalDeviceImageFormatProperties2KHR(
2290 VkPhysicalDevice physicalDevice,
2291 const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
2292 VkImageFormatProperties2* pImageFormatProperties)
2293{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002294 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceImageFormatProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002295 auto vkEnc = HostConnection::get()->vkEncoder();
2296 VkResult vkGetPhysicalDeviceImageFormatProperties2KHR_VkResult_return = (VkResult)0;
Lingfeng Yange517d1e2019-03-25 18:02:49 -07002297 auto resources = ResourceTracker::get();
2298 vkGetPhysicalDeviceImageFormatProperties2KHR_VkResult_return = resources->on_vkGetPhysicalDeviceImageFormatProperties2KHR(vkEnc, VK_SUCCESS, physicalDevice, pImageFormatInfo, pImageFormatProperties);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002299 return vkGetPhysicalDeviceImageFormatProperties2KHR_VkResult_return;
2300}
2301static void entry_vkGetPhysicalDeviceQueueFamilyProperties2KHR(
2302 VkPhysicalDevice physicalDevice,
2303 uint32_t* pQueueFamilyPropertyCount,
2304 VkQueueFamilyProperties2* pQueueFamilyProperties)
2305{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002306 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceQueueFamilyProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002307 auto vkEnc = HostConnection::get()->vkEncoder();
2308 vkEnc->vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties);
2309}
2310static void entry_vkGetPhysicalDeviceMemoryProperties2KHR(
2311 VkPhysicalDevice physicalDevice,
2312 VkPhysicalDeviceMemoryProperties2* pMemoryProperties)
2313{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002314 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMemoryProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002315 auto vkEnc = HostConnection::get()->vkEncoder();
2316 vkEnc->vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice, pMemoryProperties);
2317}
2318static void entry_vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
2319 VkPhysicalDevice physicalDevice,
2320 const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
2321 uint32_t* pPropertyCount,
2322 VkSparseImageFormatProperties2* pProperties)
2323{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002324 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSparseImageFormatProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002325 auto vkEnc = HostConnection::get()->vkEncoder();
2326 vkEnc->vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties);
2327}
2328#endif
2329#ifdef VK_KHR_device_group
2330static void entry_vkGetDeviceGroupPeerMemoryFeaturesKHR(
2331 VkDevice device,
2332 uint32_t heapIndex,
2333 uint32_t localDeviceIndex,
2334 uint32_t remoteDeviceIndex,
2335 VkPeerMemoryFeatureFlags* pPeerMemoryFeatures)
2336{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002337 AEMU_SCOPED_TRACE("vkGetDeviceGroupPeerMemoryFeaturesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002338 auto vkEnc = HostConnection::get()->vkEncoder();
2339 vkEnc->vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures);
2340}
2341static void entry_vkCmdSetDeviceMaskKHR(
2342 VkCommandBuffer commandBuffer,
2343 uint32_t deviceMask)
2344{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002345 AEMU_SCOPED_TRACE("vkCmdSetDeviceMaskKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002346 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07002347 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002348 vkEnc->vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask);
2349}
2350static void entry_vkCmdDispatchBaseKHR(
2351 VkCommandBuffer commandBuffer,
2352 uint32_t baseGroupX,
2353 uint32_t baseGroupY,
2354 uint32_t baseGroupZ,
2355 uint32_t groupCountX,
2356 uint32_t groupCountY,
2357 uint32_t groupCountZ)
2358{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002359 AEMU_SCOPED_TRACE("vkCmdDispatchBaseKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002360 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07002361 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002362 vkEnc->vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ);
2363}
2364#endif
2365#ifdef VK_KHR_shader_draw_parameters
2366#endif
2367#ifdef VK_KHR_maintenance1
2368static void entry_vkTrimCommandPoolKHR(
2369 VkDevice device,
2370 VkCommandPool commandPool,
2371 VkCommandPoolTrimFlags flags)
2372{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002373 AEMU_SCOPED_TRACE("vkTrimCommandPoolKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002374 auto vkEnc = HostConnection::get()->vkEncoder();
2375 vkEnc->vkTrimCommandPoolKHR(device, commandPool, flags);
2376}
2377#endif
2378#ifdef VK_KHR_device_group_creation
2379static VkResult entry_vkEnumeratePhysicalDeviceGroupsKHR(
2380 VkInstance instance,
2381 uint32_t* pPhysicalDeviceGroupCount,
2382 VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties)
2383{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002384 AEMU_SCOPED_TRACE("vkEnumeratePhysicalDeviceGroupsKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002385 auto vkEnc = HostConnection::get()->vkEncoder();
2386 VkResult vkEnumeratePhysicalDeviceGroupsKHR_VkResult_return = (VkResult)0;
2387 vkEnumeratePhysicalDeviceGroupsKHR_VkResult_return = vkEnc->vkEnumeratePhysicalDeviceGroupsKHR(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties);
2388 return vkEnumeratePhysicalDeviceGroupsKHR_VkResult_return;
2389}
2390#endif
2391#ifdef VK_KHR_external_memory_capabilities
2392static void entry_vkGetPhysicalDeviceExternalBufferPropertiesKHR(
2393 VkPhysicalDevice physicalDevice,
2394 const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
2395 VkExternalBufferProperties* pExternalBufferProperties)
2396{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002397 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalBufferPropertiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002398 auto vkEnc = HostConnection::get()->vkEncoder();
2399 vkEnc->vkGetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties);
2400}
2401#endif
2402#ifdef VK_KHR_external_memory
2403#endif
2404#ifdef VK_KHR_external_memory_win32
2405static VkResult entry_vkGetMemoryWin32HandleKHR(
2406 VkDevice device,
2407 const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo,
2408 HANDLE* pHandle)
2409{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002410 AEMU_SCOPED_TRACE("vkGetMemoryWin32HandleKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002411 auto vkEnc = HostConnection::get()->vkEncoder();
2412 VkResult vkGetMemoryWin32HandleKHR_VkResult_return = (VkResult)0;
2413 vkGetMemoryWin32HandleKHR_VkResult_return = vkEnc->vkGetMemoryWin32HandleKHR(device, pGetWin32HandleInfo, pHandle);
2414 return vkGetMemoryWin32HandleKHR_VkResult_return;
2415}
2416static VkResult entry_vkGetMemoryWin32HandlePropertiesKHR(
2417 VkDevice device,
2418 VkExternalMemoryHandleTypeFlagBits handleType,
2419 HANDLE handle,
2420 VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties)
2421{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002422 AEMU_SCOPED_TRACE("vkGetMemoryWin32HandlePropertiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002423 auto vkEnc = HostConnection::get()->vkEncoder();
2424 VkResult vkGetMemoryWin32HandlePropertiesKHR_VkResult_return = (VkResult)0;
2425 vkGetMemoryWin32HandlePropertiesKHR_VkResult_return = vkEnc->vkGetMemoryWin32HandlePropertiesKHR(device, handleType, handle, pMemoryWin32HandleProperties);
2426 return vkGetMemoryWin32HandlePropertiesKHR_VkResult_return;
2427}
2428#endif
2429#ifdef VK_KHR_external_memory_fd
2430static VkResult entry_vkGetMemoryFdKHR(
2431 VkDevice device,
2432 const VkMemoryGetFdInfoKHR* pGetFdInfo,
2433 int* pFd)
2434{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002435 AEMU_SCOPED_TRACE("vkGetMemoryFdKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002436 auto vkEnc = HostConnection::get()->vkEncoder();
2437 VkResult vkGetMemoryFdKHR_VkResult_return = (VkResult)0;
2438 vkGetMemoryFdKHR_VkResult_return = vkEnc->vkGetMemoryFdKHR(device, pGetFdInfo, pFd);
2439 return vkGetMemoryFdKHR_VkResult_return;
2440}
2441static VkResult entry_vkGetMemoryFdPropertiesKHR(
2442 VkDevice device,
2443 VkExternalMemoryHandleTypeFlagBits handleType,
2444 int fd,
2445 VkMemoryFdPropertiesKHR* pMemoryFdProperties)
2446{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002447 AEMU_SCOPED_TRACE("vkGetMemoryFdPropertiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002448 auto vkEnc = HostConnection::get()->vkEncoder();
2449 VkResult vkGetMemoryFdPropertiesKHR_VkResult_return = (VkResult)0;
2450 vkGetMemoryFdPropertiesKHR_VkResult_return = vkEnc->vkGetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties);
2451 return vkGetMemoryFdPropertiesKHR_VkResult_return;
2452}
2453#endif
2454#ifdef VK_KHR_win32_keyed_mutex
2455#endif
2456#ifdef VK_KHR_external_semaphore_capabilities
2457static void entry_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
2458 VkPhysicalDevice physicalDevice,
2459 const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
2460 VkExternalSemaphoreProperties* pExternalSemaphoreProperties)
2461{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002462 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalSemaphorePropertiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002463 auto vkEnc = HostConnection::get()->vkEncoder();
2464 vkEnc->vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties);
2465}
2466#endif
2467#ifdef VK_KHR_external_semaphore
2468#endif
2469#ifdef VK_KHR_external_semaphore_win32
2470static VkResult entry_vkImportSemaphoreWin32HandleKHR(
2471 VkDevice device,
2472 const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo)
2473{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002474 AEMU_SCOPED_TRACE("vkImportSemaphoreWin32HandleKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002475 auto vkEnc = HostConnection::get()->vkEncoder();
2476 VkResult vkImportSemaphoreWin32HandleKHR_VkResult_return = (VkResult)0;
2477 vkImportSemaphoreWin32HandleKHR_VkResult_return = vkEnc->vkImportSemaphoreWin32HandleKHR(device, pImportSemaphoreWin32HandleInfo);
2478 return vkImportSemaphoreWin32HandleKHR_VkResult_return;
2479}
2480static VkResult entry_vkGetSemaphoreWin32HandleKHR(
2481 VkDevice device,
2482 const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo,
2483 HANDLE* pHandle)
2484{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002485 AEMU_SCOPED_TRACE("vkGetSemaphoreWin32HandleKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002486 auto vkEnc = HostConnection::get()->vkEncoder();
2487 VkResult vkGetSemaphoreWin32HandleKHR_VkResult_return = (VkResult)0;
2488 vkGetSemaphoreWin32HandleKHR_VkResult_return = vkEnc->vkGetSemaphoreWin32HandleKHR(device, pGetWin32HandleInfo, pHandle);
2489 return vkGetSemaphoreWin32HandleKHR_VkResult_return;
2490}
2491#endif
2492#ifdef VK_KHR_external_semaphore_fd
2493static VkResult entry_vkImportSemaphoreFdKHR(
2494 VkDevice device,
2495 const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo)
2496{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002497 AEMU_SCOPED_TRACE("vkImportSemaphoreFdKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002498 auto vkEnc = HostConnection::get()->vkEncoder();
2499 VkResult vkImportSemaphoreFdKHR_VkResult_return = (VkResult)0;
Yahan Zhoua499e442019-02-26 16:35:01 -08002500 auto resources = ResourceTracker::get();
2501 vkImportSemaphoreFdKHR_VkResult_return = resources->on_vkImportSemaphoreFdKHR(vkEnc, VK_SUCCESS, device, pImportSemaphoreFdInfo);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002502 return vkImportSemaphoreFdKHR_VkResult_return;
2503}
2504static VkResult entry_vkGetSemaphoreFdKHR(
2505 VkDevice device,
2506 const VkSemaphoreGetFdInfoKHR* pGetFdInfo,
2507 int* pFd)
2508{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002509 AEMU_SCOPED_TRACE("vkGetSemaphoreFdKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002510 auto vkEnc = HostConnection::get()->vkEncoder();
2511 VkResult vkGetSemaphoreFdKHR_VkResult_return = (VkResult)0;
Yahan Zhoua499e442019-02-26 16:35:01 -08002512 auto resources = ResourceTracker::get();
2513 vkGetSemaphoreFdKHR_VkResult_return = resources->on_vkGetSemaphoreFdKHR(vkEnc, VK_SUCCESS, device, pGetFdInfo, pFd);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002514 return vkGetSemaphoreFdKHR_VkResult_return;
2515}
2516#endif
2517#ifdef VK_KHR_push_descriptor
2518static void entry_vkCmdPushDescriptorSetKHR(
2519 VkCommandBuffer commandBuffer,
2520 VkPipelineBindPoint pipelineBindPoint,
2521 VkPipelineLayout layout,
2522 uint32_t set,
2523 uint32_t descriptorWriteCount,
2524 const VkWriteDescriptorSet* pDescriptorWrites)
2525{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002526 AEMU_SCOPED_TRACE("vkCmdPushDescriptorSetKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002527 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07002528 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002529 vkEnc->vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites);
2530}
2531static void entry_vkCmdPushDescriptorSetWithTemplateKHR(
2532 VkCommandBuffer commandBuffer,
2533 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
2534 VkPipelineLayout layout,
2535 uint32_t set,
2536 const void* pData)
2537{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002538 AEMU_SCOPED_TRACE("vkCmdPushDescriptorSetWithTemplateKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002539 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07002540 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002541 vkEnc->vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData);
2542}
2543#endif
2544#ifdef VK_KHR_16bit_storage
2545#endif
2546#ifdef VK_KHR_incremental_present
2547#endif
2548#ifdef VK_KHR_descriptor_update_template
2549static VkResult entry_vkCreateDescriptorUpdateTemplateKHR(
2550 VkDevice device,
2551 const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
2552 const VkAllocationCallbacks* pAllocator,
2553 VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate)
2554{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002555 AEMU_SCOPED_TRACE("vkCreateDescriptorUpdateTemplateKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002556 auto vkEnc = HostConnection::get()->vkEncoder();
2557 VkResult vkCreateDescriptorUpdateTemplateKHR_VkResult_return = (VkResult)0;
2558 vkCreateDescriptorUpdateTemplateKHR_VkResult_return = vkEnc->vkCreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate);
2559 return vkCreateDescriptorUpdateTemplateKHR_VkResult_return;
2560}
2561static void entry_vkDestroyDescriptorUpdateTemplateKHR(
2562 VkDevice device,
2563 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
2564 const VkAllocationCallbacks* pAllocator)
2565{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002566 AEMU_SCOPED_TRACE("vkDestroyDescriptorUpdateTemplateKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002567 auto vkEnc = HostConnection::get()->vkEncoder();
2568 vkEnc->vkDestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator);
2569}
2570static void entry_vkUpdateDescriptorSetWithTemplateKHR(
2571 VkDevice device,
2572 VkDescriptorSet descriptorSet,
2573 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
2574 const void* pData)
2575{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002576 AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplateKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002577 auto vkEnc = HostConnection::get()->vkEncoder();
2578 vkEnc->vkUpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData);
2579}
2580#endif
2581#ifdef VK_KHR_create_renderpass2
2582static VkResult entry_vkCreateRenderPass2KHR(
2583 VkDevice device,
2584 const VkRenderPassCreateInfo2KHR* pCreateInfo,
2585 const VkAllocationCallbacks* pAllocator,
2586 VkRenderPass* pRenderPass)
2587{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002588 AEMU_SCOPED_TRACE("vkCreateRenderPass2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002589 auto vkEnc = HostConnection::get()->vkEncoder();
2590 VkResult vkCreateRenderPass2KHR_VkResult_return = (VkResult)0;
2591 vkCreateRenderPass2KHR_VkResult_return = vkEnc->vkCreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass);
2592 return vkCreateRenderPass2KHR_VkResult_return;
2593}
2594static void entry_vkCmdBeginRenderPass2KHR(
2595 VkCommandBuffer commandBuffer,
2596 const VkRenderPassBeginInfo* pRenderPassBegin,
2597 const VkSubpassBeginInfoKHR* pSubpassBeginInfo)
2598{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002599 AEMU_SCOPED_TRACE("vkCmdBeginRenderPass2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002600 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07002601 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002602 vkEnc->vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo);
2603}
2604static void entry_vkCmdNextSubpass2KHR(
2605 VkCommandBuffer commandBuffer,
2606 const VkSubpassBeginInfoKHR* pSubpassBeginInfo,
2607 const VkSubpassEndInfoKHR* pSubpassEndInfo)
2608{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002609 AEMU_SCOPED_TRACE("vkCmdNextSubpass2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002610 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07002611 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002612 vkEnc->vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo);
2613}
2614static void entry_vkCmdEndRenderPass2KHR(
2615 VkCommandBuffer commandBuffer,
2616 const VkSubpassEndInfoKHR* pSubpassEndInfo)
2617{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002618 AEMU_SCOPED_TRACE("vkCmdEndRenderPass2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002619 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07002620 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002621 vkEnc->vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo);
2622}
2623#endif
2624#ifdef VK_KHR_shared_presentable_image
2625static VkResult entry_vkGetSwapchainStatusKHR(
2626 VkDevice device,
2627 VkSwapchainKHR swapchain)
2628{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002629 AEMU_SCOPED_TRACE("vkGetSwapchainStatusKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002630 auto vkEnc = HostConnection::get()->vkEncoder();
2631 VkResult vkGetSwapchainStatusKHR_VkResult_return = (VkResult)0;
2632 vkGetSwapchainStatusKHR_VkResult_return = vkEnc->vkGetSwapchainStatusKHR(device, swapchain);
2633 return vkGetSwapchainStatusKHR_VkResult_return;
2634}
2635#endif
2636#ifdef VK_KHR_external_fence_capabilities
2637static void entry_vkGetPhysicalDeviceExternalFencePropertiesKHR(
2638 VkPhysicalDevice physicalDevice,
2639 const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
2640 VkExternalFenceProperties* pExternalFenceProperties)
2641{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002642 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalFencePropertiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002643 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yangcd2d8fe2019-08-16 12:21:50 -07002644 auto resources = ResourceTracker::get();
2645 resources->on_vkGetPhysicalDeviceExternalFencePropertiesKHR(vkEnc, physicalDevice, pExternalFenceInfo, pExternalFenceProperties);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002646}
2647#endif
2648#ifdef VK_KHR_external_fence
2649#endif
2650#ifdef VK_KHR_external_fence_win32
2651static VkResult entry_vkImportFenceWin32HandleKHR(
2652 VkDevice device,
2653 const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo)
2654{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002655 AEMU_SCOPED_TRACE("vkImportFenceWin32HandleKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002656 auto vkEnc = HostConnection::get()->vkEncoder();
2657 VkResult vkImportFenceWin32HandleKHR_VkResult_return = (VkResult)0;
2658 vkImportFenceWin32HandleKHR_VkResult_return = vkEnc->vkImportFenceWin32HandleKHR(device, pImportFenceWin32HandleInfo);
2659 return vkImportFenceWin32HandleKHR_VkResult_return;
2660}
2661static VkResult entry_vkGetFenceWin32HandleKHR(
2662 VkDevice device,
2663 const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo,
2664 HANDLE* pHandle)
2665{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002666 AEMU_SCOPED_TRACE("vkGetFenceWin32HandleKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002667 auto vkEnc = HostConnection::get()->vkEncoder();
2668 VkResult vkGetFenceWin32HandleKHR_VkResult_return = (VkResult)0;
2669 vkGetFenceWin32HandleKHR_VkResult_return = vkEnc->vkGetFenceWin32HandleKHR(device, pGetWin32HandleInfo, pHandle);
2670 return vkGetFenceWin32HandleKHR_VkResult_return;
2671}
2672#endif
2673#ifdef VK_KHR_external_fence_fd
2674static VkResult entry_vkImportFenceFdKHR(
2675 VkDevice device,
2676 const VkImportFenceFdInfoKHR* pImportFenceFdInfo)
2677{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002678 AEMU_SCOPED_TRACE("vkImportFenceFdKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002679 auto vkEnc = HostConnection::get()->vkEncoder();
2680 VkResult vkImportFenceFdKHR_VkResult_return = (VkResult)0;
Lingfeng Yangcd2d8fe2019-08-16 12:21:50 -07002681 auto resources = ResourceTracker::get();
2682 vkImportFenceFdKHR_VkResult_return = resources->on_vkImportFenceFdKHR(vkEnc, VK_SUCCESS, device, pImportFenceFdInfo);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002683 return vkImportFenceFdKHR_VkResult_return;
2684}
2685static VkResult entry_vkGetFenceFdKHR(
2686 VkDevice device,
2687 const VkFenceGetFdInfoKHR* pGetFdInfo,
2688 int* pFd)
2689{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002690 AEMU_SCOPED_TRACE("vkGetFenceFdKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002691 auto vkEnc = HostConnection::get()->vkEncoder();
2692 VkResult vkGetFenceFdKHR_VkResult_return = (VkResult)0;
Lingfeng Yangcd2d8fe2019-08-16 12:21:50 -07002693 auto resources = ResourceTracker::get();
2694 vkGetFenceFdKHR_VkResult_return = resources->on_vkGetFenceFdKHR(vkEnc, VK_SUCCESS, device, pGetFdInfo, pFd);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002695 return vkGetFenceFdKHR_VkResult_return;
2696}
2697#endif
2698#ifdef VK_KHR_maintenance2
2699#endif
2700#ifdef VK_KHR_get_surface_capabilities2
2701static VkResult entry_vkGetPhysicalDeviceSurfaceCapabilities2KHR(
2702 VkPhysicalDevice physicalDevice,
2703 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
2704 VkSurfaceCapabilities2KHR* pSurfaceCapabilities)
2705{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002706 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceCapabilities2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002707 auto vkEnc = HostConnection::get()->vkEncoder();
2708 VkResult vkGetPhysicalDeviceSurfaceCapabilities2KHR_VkResult_return = (VkResult)0;
2709 vkGetPhysicalDeviceSurfaceCapabilities2KHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, pSurfaceInfo, pSurfaceCapabilities);
2710 return vkGetPhysicalDeviceSurfaceCapabilities2KHR_VkResult_return;
2711}
2712static VkResult entry_vkGetPhysicalDeviceSurfaceFormats2KHR(
2713 VkPhysicalDevice physicalDevice,
2714 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
2715 uint32_t* pSurfaceFormatCount,
2716 VkSurfaceFormat2KHR* pSurfaceFormats)
2717{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002718 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceFormats2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002719 auto vkEnc = HostConnection::get()->vkEncoder();
2720 VkResult vkGetPhysicalDeviceSurfaceFormats2KHR_VkResult_return = (VkResult)0;
2721 vkGetPhysicalDeviceSurfaceFormats2KHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceFormats2KHR(physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats);
2722 return vkGetPhysicalDeviceSurfaceFormats2KHR_VkResult_return;
2723}
2724#endif
2725#ifdef VK_KHR_variable_pointers
2726#endif
2727#ifdef VK_KHR_get_display_properties2
2728static VkResult entry_vkGetPhysicalDeviceDisplayProperties2KHR(
2729 VkPhysicalDevice physicalDevice,
2730 uint32_t* pPropertyCount,
2731 VkDisplayProperties2KHR* pProperties)
2732{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002733 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002734 auto vkEnc = HostConnection::get()->vkEncoder();
2735 VkResult vkGetPhysicalDeviceDisplayProperties2KHR_VkResult_return = (VkResult)0;
2736 vkGetPhysicalDeviceDisplayProperties2KHR_VkResult_return = vkEnc->vkGetPhysicalDeviceDisplayProperties2KHR(physicalDevice, pPropertyCount, pProperties);
2737 return vkGetPhysicalDeviceDisplayProperties2KHR_VkResult_return;
2738}
2739static VkResult entry_vkGetPhysicalDeviceDisplayPlaneProperties2KHR(
2740 VkPhysicalDevice physicalDevice,
2741 uint32_t* pPropertyCount,
2742 VkDisplayPlaneProperties2KHR* pProperties)
2743{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002744 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayPlaneProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002745 auto vkEnc = HostConnection::get()->vkEncoder();
2746 VkResult vkGetPhysicalDeviceDisplayPlaneProperties2KHR_VkResult_return = (VkResult)0;
2747 vkGetPhysicalDeviceDisplayPlaneProperties2KHR_VkResult_return = vkEnc->vkGetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice, pPropertyCount, pProperties);
2748 return vkGetPhysicalDeviceDisplayPlaneProperties2KHR_VkResult_return;
2749}
2750static VkResult entry_vkGetDisplayModeProperties2KHR(
2751 VkPhysicalDevice physicalDevice,
2752 VkDisplayKHR display,
2753 uint32_t* pPropertyCount,
2754 VkDisplayModeProperties2KHR* pProperties)
2755{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002756 AEMU_SCOPED_TRACE("vkGetDisplayModeProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002757 auto vkEnc = HostConnection::get()->vkEncoder();
2758 VkResult vkGetDisplayModeProperties2KHR_VkResult_return = (VkResult)0;
2759 vkGetDisplayModeProperties2KHR_VkResult_return = vkEnc->vkGetDisplayModeProperties2KHR(physicalDevice, display, pPropertyCount, pProperties);
2760 return vkGetDisplayModeProperties2KHR_VkResult_return;
2761}
2762static VkResult entry_vkGetDisplayPlaneCapabilities2KHR(
2763 VkPhysicalDevice physicalDevice,
2764 const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo,
2765 VkDisplayPlaneCapabilities2KHR* pCapabilities)
2766{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002767 AEMU_SCOPED_TRACE("vkGetDisplayPlaneCapabilities2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002768 auto vkEnc = HostConnection::get()->vkEncoder();
2769 VkResult vkGetDisplayPlaneCapabilities2KHR_VkResult_return = (VkResult)0;
2770 vkGetDisplayPlaneCapabilities2KHR_VkResult_return = vkEnc->vkGetDisplayPlaneCapabilities2KHR(physicalDevice, pDisplayPlaneInfo, pCapabilities);
2771 return vkGetDisplayPlaneCapabilities2KHR_VkResult_return;
2772}
2773#endif
2774#ifdef VK_KHR_dedicated_allocation
2775#endif
2776#ifdef VK_KHR_storage_buffer_storage_class
2777#endif
2778#ifdef VK_KHR_relaxed_block_layout
2779#endif
2780#ifdef VK_KHR_get_memory_requirements2
2781static void entry_vkGetImageMemoryRequirements2KHR(
2782 VkDevice device,
2783 const VkImageMemoryRequirementsInfo2* pInfo,
2784 VkMemoryRequirements2* pMemoryRequirements)
2785{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002786 AEMU_SCOPED_TRACE("vkGetImageMemoryRequirements2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002787 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang4af5f322019-02-14 08:10:28 -08002788 auto resources = ResourceTracker::get();
2789 resources->on_vkGetImageMemoryRequirements2KHR(vkEnc, device, pInfo, pMemoryRequirements);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002790}
2791static void entry_vkGetBufferMemoryRequirements2KHR(
2792 VkDevice device,
2793 const VkBufferMemoryRequirementsInfo2* pInfo,
2794 VkMemoryRequirements2* pMemoryRequirements)
2795{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002796 AEMU_SCOPED_TRACE("vkGetBufferMemoryRequirements2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002797 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang4af5f322019-02-14 08:10:28 -08002798 auto resources = ResourceTracker::get();
2799 resources->on_vkGetBufferMemoryRequirements2KHR(vkEnc, device, pInfo, pMemoryRequirements);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002800}
2801static void entry_vkGetImageSparseMemoryRequirements2KHR(
2802 VkDevice device,
2803 const VkImageSparseMemoryRequirementsInfo2* pInfo,
2804 uint32_t* pSparseMemoryRequirementCount,
2805 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements)
2806{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002807 AEMU_SCOPED_TRACE("vkGetImageSparseMemoryRequirements2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002808 auto vkEnc = HostConnection::get()->vkEncoder();
2809 vkEnc->vkGetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements);
2810}
2811#endif
2812#ifdef VK_KHR_image_format_list
2813#endif
2814#ifdef VK_KHR_sampler_ycbcr_conversion
2815static VkResult entry_vkCreateSamplerYcbcrConversionKHR(
2816 VkDevice device,
2817 const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
2818 const VkAllocationCallbacks* pAllocator,
2819 VkSamplerYcbcrConversion* pYcbcrConversion)
2820{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002821 AEMU_SCOPED_TRACE("vkCreateSamplerYcbcrConversionKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002822 auto vkEnc = HostConnection::get()->vkEncoder();
2823 VkResult vkCreateSamplerYcbcrConversionKHR_VkResult_return = (VkResult)0;
Lingfeng Yang5c701122019-03-05 08:34:46 -08002824 auto resources = ResourceTracker::get();
2825 vkCreateSamplerYcbcrConversionKHR_VkResult_return = resources->on_vkCreateSamplerYcbcrConversionKHR(vkEnc, VK_SUCCESS, device, pCreateInfo, pAllocator, pYcbcrConversion);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002826 return vkCreateSamplerYcbcrConversionKHR_VkResult_return;
2827}
2828static void entry_vkDestroySamplerYcbcrConversionKHR(
2829 VkDevice device,
2830 VkSamplerYcbcrConversion ycbcrConversion,
2831 const VkAllocationCallbacks* pAllocator)
2832{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002833 AEMU_SCOPED_TRACE("vkDestroySamplerYcbcrConversionKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002834 auto vkEnc = HostConnection::get()->vkEncoder();
Roman Kiryanov004f48c2019-06-28 14:59:32 -07002835 auto resources = ResourceTracker::get();
2836 resources->on_vkDestroySamplerYcbcrConversionKHR(vkEnc, device, ycbcrConversion, pAllocator);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002837}
2838#endif
2839#ifdef VK_KHR_bind_memory2
2840static VkResult entry_vkBindBufferMemory2KHR(
2841 VkDevice device,
2842 uint32_t bindInfoCount,
2843 const VkBindBufferMemoryInfo* pBindInfos)
2844{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002845 AEMU_SCOPED_TRACE("vkBindBufferMemory2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002846 auto vkEnc = HostConnection::get()->vkEncoder();
2847 VkResult vkBindBufferMemory2KHR_VkResult_return = (VkResult)0;
Lingfeng Yang4af5f322019-02-14 08:10:28 -08002848 auto resources = ResourceTracker::get();
2849 vkBindBufferMemory2KHR_VkResult_return = resources->on_vkBindBufferMemory2KHR(vkEnc, VK_SUCCESS, device, bindInfoCount, pBindInfos);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002850 return vkBindBufferMemory2KHR_VkResult_return;
2851}
2852static VkResult entry_vkBindImageMemory2KHR(
2853 VkDevice device,
2854 uint32_t bindInfoCount,
2855 const VkBindImageMemoryInfo* pBindInfos)
2856{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002857 AEMU_SCOPED_TRACE("vkBindImageMemory2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002858 auto vkEnc = HostConnection::get()->vkEncoder();
2859 VkResult vkBindImageMemory2KHR_VkResult_return = (VkResult)0;
Lingfeng Yang4af5f322019-02-14 08:10:28 -08002860 auto resources = ResourceTracker::get();
2861 vkBindImageMemory2KHR_VkResult_return = resources->on_vkBindImageMemory2KHR(vkEnc, VK_SUCCESS, device, bindInfoCount, pBindInfos);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002862 return vkBindImageMemory2KHR_VkResult_return;
2863}
2864#endif
2865#ifdef VK_KHR_maintenance3
2866static void entry_vkGetDescriptorSetLayoutSupportKHR(
2867 VkDevice device,
2868 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
2869 VkDescriptorSetLayoutSupport* pSupport)
2870{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002871 AEMU_SCOPED_TRACE("vkGetDescriptorSetLayoutSupportKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002872 auto vkEnc = HostConnection::get()->vkEncoder();
2873 vkEnc->vkGetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport);
2874}
2875#endif
2876#ifdef VK_KHR_draw_indirect_count
2877static void entry_vkCmdDrawIndirectCountKHR(
2878 VkCommandBuffer commandBuffer,
2879 VkBuffer buffer,
2880 VkDeviceSize offset,
2881 VkBuffer countBuffer,
2882 VkDeviceSize countBufferOffset,
2883 uint32_t maxDrawCount,
2884 uint32_t stride)
2885{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002886 AEMU_SCOPED_TRACE("vkCmdDrawIndirectCountKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002887 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07002888 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002889 vkEnc->vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
2890}
2891static void entry_vkCmdDrawIndexedIndirectCountKHR(
2892 VkCommandBuffer commandBuffer,
2893 VkBuffer buffer,
2894 VkDeviceSize offset,
2895 VkBuffer countBuffer,
2896 VkDeviceSize countBufferOffset,
2897 uint32_t maxDrawCount,
2898 uint32_t stride)
2899{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002900 AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirectCountKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002901 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07002902 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002903 vkEnc->vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
2904}
2905#endif
2906#ifdef VK_KHR_8bit_storage
2907#endif
Lingfeng Yang808a6312018-11-13 21:06:15 -08002908#ifdef VK_ANDROID_native_buffer
2909static VkResult entry_vkGetSwapchainGrallocUsageANDROID(
2910 VkDevice device,
2911 VkFormat format,
2912 VkImageUsageFlags imageUsage,
2913 int* grallocUsage)
2914{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002915 AEMU_SCOPED_TRACE("vkGetSwapchainGrallocUsageANDROID");
Lingfeng Yang808a6312018-11-13 21:06:15 -08002916 auto vkEnc = HostConnection::get()->vkEncoder();
2917 VkResult vkGetSwapchainGrallocUsageANDROID_VkResult_return = (VkResult)0;
2918 vkGetSwapchainGrallocUsageANDROID_VkResult_return = vkEnc->vkGetSwapchainGrallocUsageANDROID(device, format, imageUsage, grallocUsage);
2919 return vkGetSwapchainGrallocUsageANDROID_VkResult_return;
2920}
2921static VkResult entry_vkAcquireImageANDROID(
2922 VkDevice device,
2923 VkImage image,
2924 int nativeFenceFd,
2925 VkSemaphore semaphore,
2926 VkFence fence)
2927{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002928 AEMU_SCOPED_TRACE("vkAcquireImageANDROID");
Lingfeng Yang808a6312018-11-13 21:06:15 -08002929 auto vkEnc = HostConnection::get()->vkEncoder();
2930 VkResult vkAcquireImageANDROID_VkResult_return = (VkResult)0;
2931 vkAcquireImageANDROID_VkResult_return = vkEnc->vkAcquireImageANDROID(device, image, nativeFenceFd, semaphore, fence);
2932 return vkAcquireImageANDROID_VkResult_return;
2933}
2934static VkResult entry_vkQueueSignalReleaseImageANDROID(
2935 VkQueue queue,
2936 uint32_t waitSemaphoreCount,
2937 const VkSemaphore* pWaitSemaphores,
2938 VkImage image,
2939 int* pNativeFenceFd)
2940{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002941 AEMU_SCOPED_TRACE("vkQueueSignalReleaseImageANDROID");
Lingfeng Yang808a6312018-11-13 21:06:15 -08002942 auto vkEnc = HostConnection::get()->vkEncoder();
2943 VkResult vkQueueSignalReleaseImageANDROID_VkResult_return = (VkResult)0;
2944 vkQueueSignalReleaseImageANDROID_VkResult_return = vkEnc->vkQueueSignalReleaseImageANDROID(queue, waitSemaphoreCount, pWaitSemaphores, image, pNativeFenceFd);
2945 return vkQueueSignalReleaseImageANDROID_VkResult_return;
2946}
2947#endif
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002948#ifdef VK_EXT_debug_report
2949static VkResult entry_vkCreateDebugReportCallbackEXT(
2950 VkInstance instance,
2951 const VkDebugReportCallbackCreateInfoEXT* pCreateInfo,
2952 const VkAllocationCallbacks* pAllocator,
2953 VkDebugReportCallbackEXT* pCallback)
2954{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002955 AEMU_SCOPED_TRACE("vkCreateDebugReportCallbackEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002956 auto vkEnc = HostConnection::get()->vkEncoder();
2957 VkResult vkCreateDebugReportCallbackEXT_VkResult_return = (VkResult)0;
2958 vkCreateDebugReportCallbackEXT_VkResult_return = vkEnc->vkCreateDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback);
2959 return vkCreateDebugReportCallbackEXT_VkResult_return;
2960}
2961static void entry_vkDestroyDebugReportCallbackEXT(
2962 VkInstance instance,
2963 VkDebugReportCallbackEXT callback,
2964 const VkAllocationCallbacks* pAllocator)
2965{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002966 AEMU_SCOPED_TRACE("vkDestroyDebugReportCallbackEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002967 auto vkEnc = HostConnection::get()->vkEncoder();
2968 vkEnc->vkDestroyDebugReportCallbackEXT(instance, callback, pAllocator);
2969}
2970static void entry_vkDebugReportMessageEXT(
2971 VkInstance instance,
2972 VkDebugReportFlagsEXT flags,
2973 VkDebugReportObjectTypeEXT objectType,
2974 uint64_t object,
2975 size_t location,
2976 int32_t messageCode,
2977 const char* pLayerPrefix,
2978 const char* pMessage)
2979{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002980 AEMU_SCOPED_TRACE("vkDebugReportMessageEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002981 auto vkEnc = HostConnection::get()->vkEncoder();
2982 vkEnc->vkDebugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage);
2983}
2984#endif
2985#ifdef VK_NV_glsl_shader
2986#endif
2987#ifdef VK_EXT_depth_range_unrestricted
2988#endif
2989#ifdef VK_IMG_filter_cubic
2990#endif
2991#ifdef VK_AMD_rasterization_order
2992#endif
2993#ifdef VK_AMD_shader_trinary_minmax
2994#endif
2995#ifdef VK_AMD_shader_explicit_vertex_parameter
2996#endif
2997#ifdef VK_EXT_debug_marker
2998static VkResult entry_vkDebugMarkerSetObjectTagEXT(
2999 VkDevice device,
3000 const VkDebugMarkerObjectTagInfoEXT* pTagInfo)
3001{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003002 AEMU_SCOPED_TRACE("vkDebugMarkerSetObjectTagEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003003 auto vkEnc = HostConnection::get()->vkEncoder();
3004 VkResult vkDebugMarkerSetObjectTagEXT_VkResult_return = (VkResult)0;
3005 vkDebugMarkerSetObjectTagEXT_VkResult_return = vkEnc->vkDebugMarkerSetObjectTagEXT(device, pTagInfo);
3006 return vkDebugMarkerSetObjectTagEXT_VkResult_return;
3007}
3008static VkResult entry_vkDebugMarkerSetObjectNameEXT(
3009 VkDevice device,
3010 const VkDebugMarkerObjectNameInfoEXT* pNameInfo)
3011{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003012 AEMU_SCOPED_TRACE("vkDebugMarkerSetObjectNameEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003013 auto vkEnc = HostConnection::get()->vkEncoder();
3014 VkResult vkDebugMarkerSetObjectNameEXT_VkResult_return = (VkResult)0;
3015 vkDebugMarkerSetObjectNameEXT_VkResult_return = vkEnc->vkDebugMarkerSetObjectNameEXT(device, pNameInfo);
3016 return vkDebugMarkerSetObjectNameEXT_VkResult_return;
3017}
3018static void entry_vkCmdDebugMarkerBeginEXT(
3019 VkCommandBuffer commandBuffer,
3020 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo)
3021{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003022 AEMU_SCOPED_TRACE("vkCmdDebugMarkerBeginEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003023 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07003024 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003025 vkEnc->vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo);
3026}
3027static void entry_vkCmdDebugMarkerEndEXT(
3028 VkCommandBuffer commandBuffer)
3029{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003030 AEMU_SCOPED_TRACE("vkCmdDebugMarkerEndEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003031 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07003032 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003033 vkEnc->vkCmdDebugMarkerEndEXT(commandBuffer);
3034}
3035static void entry_vkCmdDebugMarkerInsertEXT(
3036 VkCommandBuffer commandBuffer,
3037 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo)
3038{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003039 AEMU_SCOPED_TRACE("vkCmdDebugMarkerInsertEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003040 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07003041 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003042 vkEnc->vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo);
3043}
3044#endif
3045#ifdef VK_AMD_gcn_shader
3046#endif
3047#ifdef VK_NV_dedicated_allocation
3048#endif
3049#ifdef VK_AMD_draw_indirect_count
3050static void entry_vkCmdDrawIndirectCountAMD(
3051 VkCommandBuffer commandBuffer,
3052 VkBuffer buffer,
3053 VkDeviceSize offset,
3054 VkBuffer countBuffer,
3055 VkDeviceSize countBufferOffset,
3056 uint32_t maxDrawCount,
3057 uint32_t stride)
3058{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003059 AEMU_SCOPED_TRACE("vkCmdDrawIndirectCountAMD");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003060 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07003061 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003062 vkEnc->vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
3063}
3064static void entry_vkCmdDrawIndexedIndirectCountAMD(
3065 VkCommandBuffer commandBuffer,
3066 VkBuffer buffer,
3067 VkDeviceSize offset,
3068 VkBuffer countBuffer,
3069 VkDeviceSize countBufferOffset,
3070 uint32_t maxDrawCount,
3071 uint32_t stride)
3072{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003073 AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirectCountAMD");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003074 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07003075 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003076 vkEnc->vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
3077}
3078#endif
3079#ifdef VK_AMD_negative_viewport_height
3080#endif
3081#ifdef VK_AMD_gpu_shader_half_float
3082#endif
3083#ifdef VK_AMD_shader_ballot
3084#endif
3085#ifdef VK_AMD_texture_gather_bias_lod
3086#endif
3087#ifdef VK_AMD_shader_info
3088static VkResult entry_vkGetShaderInfoAMD(
3089 VkDevice device,
3090 VkPipeline pipeline,
3091 VkShaderStageFlagBits shaderStage,
3092 VkShaderInfoTypeAMD infoType,
3093 size_t* pInfoSize,
3094 void* pInfo)
3095{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003096 AEMU_SCOPED_TRACE("vkGetShaderInfoAMD");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003097 auto vkEnc = HostConnection::get()->vkEncoder();
3098 VkResult vkGetShaderInfoAMD_VkResult_return = (VkResult)0;
3099 vkGetShaderInfoAMD_VkResult_return = vkEnc->vkGetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo);
3100 return vkGetShaderInfoAMD_VkResult_return;
3101}
3102#endif
3103#ifdef VK_AMD_shader_image_load_store_lod
3104#endif
3105#ifdef VK_IMG_format_pvrtc
3106#endif
3107#ifdef VK_NV_external_memory_capabilities
3108static VkResult entry_vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
3109 VkPhysicalDevice physicalDevice,
3110 VkFormat format,
3111 VkImageType type,
3112 VkImageTiling tiling,
3113 VkImageUsageFlags usage,
3114 VkImageCreateFlags flags,
3115 VkExternalMemoryHandleTypeFlagsNV externalHandleType,
3116 VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties)
3117{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003118 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalImageFormatPropertiesNV");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003119 auto vkEnc = HostConnection::get()->vkEncoder();
3120 VkResult vkGetPhysicalDeviceExternalImageFormatPropertiesNV_VkResult_return = (VkResult)0;
3121 vkGetPhysicalDeviceExternalImageFormatPropertiesNV_VkResult_return = vkEnc->vkGetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties);
3122 return vkGetPhysicalDeviceExternalImageFormatPropertiesNV_VkResult_return;
3123}
3124#endif
3125#ifdef VK_NV_external_memory
3126#endif
3127#ifdef VK_NV_external_memory_win32
3128static VkResult entry_vkGetMemoryWin32HandleNV(
3129 VkDevice device,
3130 VkDeviceMemory memory,
3131 VkExternalMemoryHandleTypeFlagsNV handleType,
3132 HANDLE* pHandle)
3133{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003134 AEMU_SCOPED_TRACE("vkGetMemoryWin32HandleNV");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003135 auto vkEnc = HostConnection::get()->vkEncoder();
3136 VkResult vkGetMemoryWin32HandleNV_VkResult_return = (VkResult)0;
3137 vkGetMemoryWin32HandleNV_VkResult_return = vkEnc->vkGetMemoryWin32HandleNV(device, memory, handleType, pHandle);
3138 return vkGetMemoryWin32HandleNV_VkResult_return;
3139}
3140#endif
3141#ifdef VK_NV_win32_keyed_mutex
3142#endif
3143#ifdef VK_EXT_validation_flags
3144#endif
3145#ifdef VK_NN_vi_surface
3146static VkResult entry_vkCreateViSurfaceNN(
3147 VkInstance instance,
3148 const VkViSurfaceCreateInfoNN* pCreateInfo,
3149 const VkAllocationCallbacks* pAllocator,
3150 VkSurfaceKHR* pSurface)
3151{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003152 AEMU_SCOPED_TRACE("vkCreateViSurfaceNN");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003153 auto vkEnc = HostConnection::get()->vkEncoder();
3154 VkResult vkCreateViSurfaceNN_VkResult_return = (VkResult)0;
3155 vkCreateViSurfaceNN_VkResult_return = vkEnc->vkCreateViSurfaceNN(instance, pCreateInfo, pAllocator, pSurface);
3156 return vkCreateViSurfaceNN_VkResult_return;
3157}
3158#endif
3159#ifdef VK_EXT_shader_subgroup_ballot
3160#endif
3161#ifdef VK_EXT_shader_subgroup_vote
3162#endif
3163#ifdef VK_EXT_conditional_rendering
3164static void entry_vkCmdBeginConditionalRenderingEXT(
3165 VkCommandBuffer commandBuffer,
3166 const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin)
3167{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003168 AEMU_SCOPED_TRACE("vkCmdBeginConditionalRenderingEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003169 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07003170 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003171 vkEnc->vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin);
3172}
3173static void entry_vkCmdEndConditionalRenderingEXT(
3174 VkCommandBuffer commandBuffer)
3175{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003176 AEMU_SCOPED_TRACE("vkCmdEndConditionalRenderingEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003177 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07003178 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003179 vkEnc->vkCmdEndConditionalRenderingEXT(commandBuffer);
3180}
3181#endif
3182#ifdef VK_NVX_device_generated_commands
3183static void entry_vkCmdProcessCommandsNVX(
3184 VkCommandBuffer commandBuffer,
3185 const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo)
3186{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003187 AEMU_SCOPED_TRACE("vkCmdProcessCommandsNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003188 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07003189 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003190 vkEnc->vkCmdProcessCommandsNVX(commandBuffer, pProcessCommandsInfo);
3191}
3192static void entry_vkCmdReserveSpaceForCommandsNVX(
3193 VkCommandBuffer commandBuffer,
3194 const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo)
3195{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003196 AEMU_SCOPED_TRACE("vkCmdReserveSpaceForCommandsNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003197 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07003198 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003199 vkEnc->vkCmdReserveSpaceForCommandsNVX(commandBuffer, pReserveSpaceInfo);
3200}
3201static VkResult entry_vkCreateIndirectCommandsLayoutNVX(
3202 VkDevice device,
3203 const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo,
3204 const VkAllocationCallbacks* pAllocator,
3205 VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout)
3206{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003207 AEMU_SCOPED_TRACE("vkCreateIndirectCommandsLayoutNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003208 auto vkEnc = HostConnection::get()->vkEncoder();
3209 VkResult vkCreateIndirectCommandsLayoutNVX_VkResult_return = (VkResult)0;
3210 vkCreateIndirectCommandsLayoutNVX_VkResult_return = vkEnc->vkCreateIndirectCommandsLayoutNVX(device, pCreateInfo, pAllocator, pIndirectCommandsLayout);
3211 return vkCreateIndirectCommandsLayoutNVX_VkResult_return;
3212}
3213static void entry_vkDestroyIndirectCommandsLayoutNVX(
3214 VkDevice device,
3215 VkIndirectCommandsLayoutNVX indirectCommandsLayout,
3216 const VkAllocationCallbacks* pAllocator)
3217{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003218 AEMU_SCOPED_TRACE("vkDestroyIndirectCommandsLayoutNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003219 auto vkEnc = HostConnection::get()->vkEncoder();
3220 vkEnc->vkDestroyIndirectCommandsLayoutNVX(device, indirectCommandsLayout, pAllocator);
3221}
3222static VkResult entry_vkCreateObjectTableNVX(
3223 VkDevice device,
3224 const VkObjectTableCreateInfoNVX* pCreateInfo,
3225 const VkAllocationCallbacks* pAllocator,
3226 VkObjectTableNVX* pObjectTable)
3227{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003228 AEMU_SCOPED_TRACE("vkCreateObjectTableNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003229 auto vkEnc = HostConnection::get()->vkEncoder();
3230 VkResult vkCreateObjectTableNVX_VkResult_return = (VkResult)0;
3231 vkCreateObjectTableNVX_VkResult_return = vkEnc->vkCreateObjectTableNVX(device, pCreateInfo, pAllocator, pObjectTable);
3232 return vkCreateObjectTableNVX_VkResult_return;
3233}
3234static void entry_vkDestroyObjectTableNVX(
3235 VkDevice device,
3236 VkObjectTableNVX objectTable,
3237 const VkAllocationCallbacks* pAllocator)
3238{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003239 AEMU_SCOPED_TRACE("vkDestroyObjectTableNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003240 auto vkEnc = HostConnection::get()->vkEncoder();
3241 vkEnc->vkDestroyObjectTableNVX(device, objectTable, pAllocator);
3242}
3243static VkResult entry_vkRegisterObjectsNVX(
3244 VkDevice device,
3245 VkObjectTableNVX objectTable,
3246 uint32_t objectCount,
3247 const VkObjectTableEntryNVX* const* ppObjectTableEntries,
3248 const uint32_t* pObjectIndices)
3249{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003250 AEMU_SCOPED_TRACE("vkRegisterObjectsNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003251 auto vkEnc = HostConnection::get()->vkEncoder();
3252 VkResult vkRegisterObjectsNVX_VkResult_return = (VkResult)0;
3253 vkRegisterObjectsNVX_VkResult_return = vkEnc->vkRegisterObjectsNVX(device, objectTable, objectCount, ppObjectTableEntries, pObjectIndices);
3254 return vkRegisterObjectsNVX_VkResult_return;
3255}
3256static VkResult entry_vkUnregisterObjectsNVX(
3257 VkDevice device,
3258 VkObjectTableNVX objectTable,
3259 uint32_t objectCount,
3260 const VkObjectEntryTypeNVX* pObjectEntryTypes,
3261 const uint32_t* pObjectIndices)
3262{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003263 AEMU_SCOPED_TRACE("vkUnregisterObjectsNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003264 auto vkEnc = HostConnection::get()->vkEncoder();
3265 VkResult vkUnregisterObjectsNVX_VkResult_return = (VkResult)0;
3266 vkUnregisterObjectsNVX_VkResult_return = vkEnc->vkUnregisterObjectsNVX(device, objectTable, objectCount, pObjectEntryTypes, pObjectIndices);
3267 return vkUnregisterObjectsNVX_VkResult_return;
3268}
3269static void entry_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX(
3270 VkPhysicalDevice physicalDevice,
3271 VkDeviceGeneratedCommandsFeaturesNVX* pFeatures,
3272 VkDeviceGeneratedCommandsLimitsNVX* pLimits)
3273{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003274 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003275 auto vkEnc = HostConnection::get()->vkEncoder();
3276 vkEnc->vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX(physicalDevice, pFeatures, pLimits);
3277}
3278#endif
3279#ifdef VK_NV_clip_space_w_scaling
3280static void entry_vkCmdSetViewportWScalingNV(
3281 VkCommandBuffer commandBuffer,
3282 uint32_t firstViewport,
3283 uint32_t viewportCount,
3284 const VkViewportWScalingNV* pViewportWScalings)
3285{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003286 AEMU_SCOPED_TRACE("vkCmdSetViewportWScalingNV");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003287 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07003288 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003289 vkEnc->vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings);
3290}
3291#endif
3292#ifdef VK_EXT_direct_mode_display
3293static VkResult entry_vkReleaseDisplayEXT(
3294 VkPhysicalDevice physicalDevice,
3295 VkDisplayKHR display)
3296{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003297 AEMU_SCOPED_TRACE("vkReleaseDisplayEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003298 auto vkEnc = HostConnection::get()->vkEncoder();
3299 VkResult vkReleaseDisplayEXT_VkResult_return = (VkResult)0;
3300 vkReleaseDisplayEXT_VkResult_return = vkEnc->vkReleaseDisplayEXT(physicalDevice, display);
3301 return vkReleaseDisplayEXT_VkResult_return;
3302}
3303#endif
3304#ifdef VK_EXT_acquire_xlib_display
3305static VkResult entry_vkAcquireXlibDisplayEXT(
3306 VkPhysicalDevice physicalDevice,
3307 Display* dpy,
3308 VkDisplayKHR display)
3309{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003310 AEMU_SCOPED_TRACE("vkAcquireXlibDisplayEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003311 auto vkEnc = HostConnection::get()->vkEncoder();
3312 VkResult vkAcquireXlibDisplayEXT_VkResult_return = (VkResult)0;
3313 vkAcquireXlibDisplayEXT_VkResult_return = vkEnc->vkAcquireXlibDisplayEXT(physicalDevice, dpy, display);
3314 return vkAcquireXlibDisplayEXT_VkResult_return;
3315}
3316static VkResult entry_vkGetRandROutputDisplayEXT(
3317 VkPhysicalDevice physicalDevice,
3318 Display* dpy,
3319 RROutput rrOutput,
3320 VkDisplayKHR* pDisplay)
3321{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003322 AEMU_SCOPED_TRACE("vkGetRandROutputDisplayEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003323 auto vkEnc = HostConnection::get()->vkEncoder();
3324 VkResult vkGetRandROutputDisplayEXT_VkResult_return = (VkResult)0;
3325 vkGetRandROutputDisplayEXT_VkResult_return = vkEnc->vkGetRandROutputDisplayEXT(physicalDevice, dpy, rrOutput, pDisplay);
3326 return vkGetRandROutputDisplayEXT_VkResult_return;
3327}
3328#endif
3329#ifdef VK_EXT_display_surface_counter
3330static VkResult entry_vkGetPhysicalDeviceSurfaceCapabilities2EXT(
3331 VkPhysicalDevice physicalDevice,
3332 VkSurfaceKHR surface,
3333 VkSurfaceCapabilities2EXT* pSurfaceCapabilities)
3334{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003335 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceCapabilities2EXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003336 auto vkEnc = HostConnection::get()->vkEncoder();
3337 VkResult vkGetPhysicalDeviceSurfaceCapabilities2EXT_VkResult_return = (VkResult)0;
3338 vkGetPhysicalDeviceSurfaceCapabilities2EXT_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities);
3339 return vkGetPhysicalDeviceSurfaceCapabilities2EXT_VkResult_return;
3340}
3341#endif
3342#ifdef VK_EXT_display_control
3343static VkResult entry_vkDisplayPowerControlEXT(
3344 VkDevice device,
3345 VkDisplayKHR display,
3346 const VkDisplayPowerInfoEXT* pDisplayPowerInfo)
3347{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003348 AEMU_SCOPED_TRACE("vkDisplayPowerControlEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003349 auto vkEnc = HostConnection::get()->vkEncoder();
3350 VkResult vkDisplayPowerControlEXT_VkResult_return = (VkResult)0;
3351 vkDisplayPowerControlEXT_VkResult_return = vkEnc->vkDisplayPowerControlEXT(device, display, pDisplayPowerInfo);
3352 return vkDisplayPowerControlEXT_VkResult_return;
3353}
3354static VkResult entry_vkRegisterDeviceEventEXT(
3355 VkDevice device,
3356 const VkDeviceEventInfoEXT* pDeviceEventInfo,
3357 const VkAllocationCallbacks* pAllocator,
3358 VkFence* pFence)
3359{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003360 AEMU_SCOPED_TRACE("vkRegisterDeviceEventEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003361 auto vkEnc = HostConnection::get()->vkEncoder();
3362 VkResult vkRegisterDeviceEventEXT_VkResult_return = (VkResult)0;
3363 vkRegisterDeviceEventEXT_VkResult_return = vkEnc->vkRegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence);
3364 return vkRegisterDeviceEventEXT_VkResult_return;
3365}
3366static VkResult entry_vkRegisterDisplayEventEXT(
3367 VkDevice device,
3368 VkDisplayKHR display,
3369 const VkDisplayEventInfoEXT* pDisplayEventInfo,
3370 const VkAllocationCallbacks* pAllocator,
3371 VkFence* pFence)
3372{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003373 AEMU_SCOPED_TRACE("vkRegisterDisplayEventEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003374 auto vkEnc = HostConnection::get()->vkEncoder();
3375 VkResult vkRegisterDisplayEventEXT_VkResult_return = (VkResult)0;
3376 vkRegisterDisplayEventEXT_VkResult_return = vkEnc->vkRegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence);
3377 return vkRegisterDisplayEventEXT_VkResult_return;
3378}
3379static VkResult entry_vkGetSwapchainCounterEXT(
3380 VkDevice device,
3381 VkSwapchainKHR swapchain,
3382 VkSurfaceCounterFlagBitsEXT counter,
3383 uint64_t* pCounterValue)
3384{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003385 AEMU_SCOPED_TRACE("vkGetSwapchainCounterEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003386 auto vkEnc = HostConnection::get()->vkEncoder();
3387 VkResult vkGetSwapchainCounterEXT_VkResult_return = (VkResult)0;
3388 vkGetSwapchainCounterEXT_VkResult_return = vkEnc->vkGetSwapchainCounterEXT(device, swapchain, counter, pCounterValue);
3389 return vkGetSwapchainCounterEXT_VkResult_return;
3390}
3391#endif
3392#ifdef VK_GOOGLE_display_timing
3393static VkResult entry_vkGetRefreshCycleDurationGOOGLE(
3394 VkDevice device,
3395 VkSwapchainKHR swapchain,
3396 VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties)
3397{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003398 AEMU_SCOPED_TRACE("vkGetRefreshCycleDurationGOOGLE");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003399 auto vkEnc = HostConnection::get()->vkEncoder();
3400 VkResult vkGetRefreshCycleDurationGOOGLE_VkResult_return = (VkResult)0;
3401 vkGetRefreshCycleDurationGOOGLE_VkResult_return = vkEnc->vkGetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties);
3402 return vkGetRefreshCycleDurationGOOGLE_VkResult_return;
3403}
3404static VkResult entry_vkGetPastPresentationTimingGOOGLE(
3405 VkDevice device,
3406 VkSwapchainKHR swapchain,
3407 uint32_t* pPresentationTimingCount,
3408 VkPastPresentationTimingGOOGLE* pPresentationTimings)
3409{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003410 AEMU_SCOPED_TRACE("vkGetPastPresentationTimingGOOGLE");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003411 auto vkEnc = HostConnection::get()->vkEncoder();
3412 VkResult vkGetPastPresentationTimingGOOGLE_VkResult_return = (VkResult)0;
3413 vkGetPastPresentationTimingGOOGLE_VkResult_return = vkEnc->vkGetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings);
3414 return vkGetPastPresentationTimingGOOGLE_VkResult_return;
3415}
3416#endif
3417#ifdef VK_NV_sample_mask_override_coverage
3418#endif
3419#ifdef VK_NV_geometry_shader_passthrough
3420#endif
3421#ifdef VK_NV_viewport_array2
3422#endif
3423#ifdef VK_NVX_multiview_per_view_attributes
3424#endif
3425#ifdef VK_NV_viewport_swizzle
3426#endif
3427#ifdef VK_EXT_discard_rectangles
3428static void entry_vkCmdSetDiscardRectangleEXT(
3429 VkCommandBuffer commandBuffer,
3430 uint32_t firstDiscardRectangle,
3431 uint32_t discardRectangleCount,
3432 const VkRect2D* pDiscardRectangles)
3433{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003434 AEMU_SCOPED_TRACE("vkCmdSetDiscardRectangleEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003435 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07003436 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003437 vkEnc->vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles);
3438}
3439#endif
3440#ifdef VK_EXT_conservative_rasterization
3441#endif
3442#ifdef VK_EXT_swapchain_colorspace
3443#endif
3444#ifdef VK_EXT_hdr_metadata
3445static void entry_vkSetHdrMetadataEXT(
3446 VkDevice device,
3447 uint32_t swapchainCount,
3448 const VkSwapchainKHR* pSwapchains,
3449 const VkHdrMetadataEXT* pMetadata)
3450{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003451 AEMU_SCOPED_TRACE("vkSetHdrMetadataEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003452 auto vkEnc = HostConnection::get()->vkEncoder();
3453 vkEnc->vkSetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata);
3454}
3455#endif
3456#ifdef VK_MVK_ios_surface
3457static VkResult entry_vkCreateIOSSurfaceMVK(
3458 VkInstance instance,
3459 const VkIOSSurfaceCreateInfoMVK* pCreateInfo,
3460 const VkAllocationCallbacks* pAllocator,
3461 VkSurfaceKHR* pSurface)
3462{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003463 AEMU_SCOPED_TRACE("vkCreateIOSSurfaceMVK");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003464 auto vkEnc = HostConnection::get()->vkEncoder();
3465 VkResult vkCreateIOSSurfaceMVK_VkResult_return = (VkResult)0;
3466 vkCreateIOSSurfaceMVK_VkResult_return = vkEnc->vkCreateIOSSurfaceMVK(instance, pCreateInfo, pAllocator, pSurface);
3467 return vkCreateIOSSurfaceMVK_VkResult_return;
3468}
3469#endif
3470#ifdef VK_MVK_macos_surface
3471static VkResult entry_vkCreateMacOSSurfaceMVK(
3472 VkInstance instance,
3473 const VkMacOSSurfaceCreateInfoMVK* pCreateInfo,
3474 const VkAllocationCallbacks* pAllocator,
3475 VkSurfaceKHR* pSurface)
3476{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003477 AEMU_SCOPED_TRACE("vkCreateMacOSSurfaceMVK");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003478 auto vkEnc = HostConnection::get()->vkEncoder();
3479 VkResult vkCreateMacOSSurfaceMVK_VkResult_return = (VkResult)0;
3480 vkCreateMacOSSurfaceMVK_VkResult_return = vkEnc->vkCreateMacOSSurfaceMVK(instance, pCreateInfo, pAllocator, pSurface);
3481 return vkCreateMacOSSurfaceMVK_VkResult_return;
3482}
3483#endif
3484#ifdef VK_EXT_external_memory_dma_buf
3485#endif
3486#ifdef VK_EXT_queue_family_foreign
3487#endif
3488#ifdef VK_EXT_debug_utils
3489static VkResult entry_vkSetDebugUtilsObjectNameEXT(
3490 VkDevice device,
3491 const VkDebugUtilsObjectNameInfoEXT* pNameInfo)
3492{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003493 AEMU_SCOPED_TRACE("vkSetDebugUtilsObjectNameEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003494 auto vkEnc = HostConnection::get()->vkEncoder();
3495 VkResult vkSetDebugUtilsObjectNameEXT_VkResult_return = (VkResult)0;
3496 vkSetDebugUtilsObjectNameEXT_VkResult_return = vkEnc->vkSetDebugUtilsObjectNameEXT(device, pNameInfo);
3497 return vkSetDebugUtilsObjectNameEXT_VkResult_return;
3498}
3499static VkResult entry_vkSetDebugUtilsObjectTagEXT(
3500 VkDevice device,
3501 const VkDebugUtilsObjectTagInfoEXT* pTagInfo)
3502{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003503 AEMU_SCOPED_TRACE("vkSetDebugUtilsObjectTagEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003504 auto vkEnc = HostConnection::get()->vkEncoder();
3505 VkResult vkSetDebugUtilsObjectTagEXT_VkResult_return = (VkResult)0;
3506 vkSetDebugUtilsObjectTagEXT_VkResult_return = vkEnc->vkSetDebugUtilsObjectTagEXT(device, pTagInfo);
3507 return vkSetDebugUtilsObjectTagEXT_VkResult_return;
3508}
3509static void entry_vkQueueBeginDebugUtilsLabelEXT(
3510 VkQueue queue,
3511 const VkDebugUtilsLabelEXT* pLabelInfo)
3512{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003513 AEMU_SCOPED_TRACE("vkQueueBeginDebugUtilsLabelEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003514 auto vkEnc = HostConnection::get()->vkEncoder();
3515 vkEnc->vkQueueBeginDebugUtilsLabelEXT(queue, pLabelInfo);
3516}
3517static void entry_vkQueueEndDebugUtilsLabelEXT(
3518 VkQueue queue)
3519{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003520 AEMU_SCOPED_TRACE("vkQueueEndDebugUtilsLabelEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003521 auto vkEnc = HostConnection::get()->vkEncoder();
3522 vkEnc->vkQueueEndDebugUtilsLabelEXT(queue);
3523}
3524static void entry_vkQueueInsertDebugUtilsLabelEXT(
3525 VkQueue queue,
3526 const VkDebugUtilsLabelEXT* pLabelInfo)
3527{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003528 AEMU_SCOPED_TRACE("vkQueueInsertDebugUtilsLabelEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003529 auto vkEnc = HostConnection::get()->vkEncoder();
3530 vkEnc->vkQueueInsertDebugUtilsLabelEXT(queue, pLabelInfo);
3531}
3532static void entry_vkCmdBeginDebugUtilsLabelEXT(
3533 VkCommandBuffer commandBuffer,
3534 const VkDebugUtilsLabelEXT* pLabelInfo)
3535{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003536 AEMU_SCOPED_TRACE("vkCmdBeginDebugUtilsLabelEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003537 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07003538 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003539 vkEnc->vkCmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo);
3540}
3541static void entry_vkCmdEndDebugUtilsLabelEXT(
3542 VkCommandBuffer commandBuffer)
3543{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003544 AEMU_SCOPED_TRACE("vkCmdEndDebugUtilsLabelEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003545 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07003546 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003547 vkEnc->vkCmdEndDebugUtilsLabelEXT(commandBuffer);
3548}
3549static void entry_vkCmdInsertDebugUtilsLabelEXT(
3550 VkCommandBuffer commandBuffer,
3551 const VkDebugUtilsLabelEXT* pLabelInfo)
3552{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003553 AEMU_SCOPED_TRACE("vkCmdInsertDebugUtilsLabelEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003554 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07003555 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003556 vkEnc->vkCmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo);
3557}
3558static VkResult entry_vkCreateDebugUtilsMessengerEXT(
3559 VkInstance instance,
3560 const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo,
3561 const VkAllocationCallbacks* pAllocator,
3562 VkDebugUtilsMessengerEXT* pMessenger)
3563{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003564 AEMU_SCOPED_TRACE("vkCreateDebugUtilsMessengerEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003565 auto vkEnc = HostConnection::get()->vkEncoder();
3566 VkResult vkCreateDebugUtilsMessengerEXT_VkResult_return = (VkResult)0;
3567 vkCreateDebugUtilsMessengerEXT_VkResult_return = vkEnc->vkCreateDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, pMessenger);
3568 return vkCreateDebugUtilsMessengerEXT_VkResult_return;
3569}
3570static void entry_vkDestroyDebugUtilsMessengerEXT(
3571 VkInstance instance,
3572 VkDebugUtilsMessengerEXT messenger,
3573 const VkAllocationCallbacks* pAllocator)
3574{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003575 AEMU_SCOPED_TRACE("vkDestroyDebugUtilsMessengerEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003576 auto vkEnc = HostConnection::get()->vkEncoder();
3577 vkEnc->vkDestroyDebugUtilsMessengerEXT(instance, messenger, pAllocator);
3578}
3579static void entry_vkSubmitDebugUtilsMessageEXT(
3580 VkInstance instance,
3581 VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
3582 VkDebugUtilsMessageTypeFlagsEXT messageTypes,
3583 const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData)
3584{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003585 AEMU_SCOPED_TRACE("vkSubmitDebugUtilsMessageEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003586 auto vkEnc = HostConnection::get()->vkEncoder();
3587 vkEnc->vkSubmitDebugUtilsMessageEXT(instance, messageSeverity, messageTypes, pCallbackData);
3588}
3589#endif
3590#ifdef VK_ANDROID_external_memory_android_hardware_buffer
3591static VkResult entry_vkGetAndroidHardwareBufferPropertiesANDROID(
3592 VkDevice device,
3593 const AHardwareBuffer* buffer,
3594 VkAndroidHardwareBufferPropertiesANDROID* pProperties)
3595{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003596 AEMU_SCOPED_TRACE("vkGetAndroidHardwareBufferPropertiesANDROID");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003597 auto vkEnc = HostConnection::get()->vkEncoder();
3598 VkResult vkGetAndroidHardwareBufferPropertiesANDROID_VkResult_return = (VkResult)0;
Lingfeng Yang4f3f91f2019-02-28 11:37:21 -08003599 auto resources = ResourceTracker::get();
3600 vkGetAndroidHardwareBufferPropertiesANDROID_VkResult_return = resources->on_vkGetAndroidHardwareBufferPropertiesANDROID(vkEnc, VK_SUCCESS, device, buffer, pProperties);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003601 return vkGetAndroidHardwareBufferPropertiesANDROID_VkResult_return;
3602}
3603static VkResult entry_vkGetMemoryAndroidHardwareBufferANDROID(
3604 VkDevice device,
3605 const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo,
3606 AHardwareBuffer** pBuffer)
3607{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003608 AEMU_SCOPED_TRACE("vkGetMemoryAndroidHardwareBufferANDROID");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003609 auto vkEnc = HostConnection::get()->vkEncoder();
3610 VkResult vkGetMemoryAndroidHardwareBufferANDROID_VkResult_return = (VkResult)0;
Lingfeng Yang4f3f91f2019-02-28 11:37:21 -08003611 auto resources = ResourceTracker::get();
3612 vkGetMemoryAndroidHardwareBufferANDROID_VkResult_return = resources->on_vkGetMemoryAndroidHardwareBufferANDROID(vkEnc, VK_SUCCESS, device, pInfo, pBuffer);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003613 return vkGetMemoryAndroidHardwareBufferANDROID_VkResult_return;
3614}
3615#endif
3616#ifdef VK_EXT_sampler_filter_minmax
3617#endif
3618#ifdef VK_AMD_gpu_shader_int16
3619#endif
3620#ifdef VK_AMD_mixed_attachment_samples
3621#endif
3622#ifdef VK_AMD_shader_fragment_mask
3623#endif
3624#ifdef VK_EXT_shader_stencil_export
3625#endif
3626#ifdef VK_EXT_sample_locations
3627static void entry_vkCmdSetSampleLocationsEXT(
3628 VkCommandBuffer commandBuffer,
3629 const VkSampleLocationsInfoEXT* pSampleLocationsInfo)
3630{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003631 AEMU_SCOPED_TRACE("vkCmdSetSampleLocationsEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003632 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07003633 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003634 vkEnc->vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo);
3635}
3636static void entry_vkGetPhysicalDeviceMultisamplePropertiesEXT(
3637 VkPhysicalDevice physicalDevice,
3638 VkSampleCountFlagBits samples,
3639 VkMultisamplePropertiesEXT* pMultisampleProperties)
3640{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003641 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMultisamplePropertiesEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003642 auto vkEnc = HostConnection::get()->vkEncoder();
3643 vkEnc->vkGetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties);
3644}
3645#endif
3646#ifdef VK_EXT_blend_operation_advanced
3647#endif
3648#ifdef VK_NV_fragment_coverage_to_color
3649#endif
3650#ifdef VK_NV_framebuffer_mixed_samples
3651#endif
3652#ifdef VK_NV_fill_rectangle
3653#endif
3654#ifdef VK_EXT_post_depth_coverage
3655#endif
3656#ifdef VK_EXT_validation_cache
3657static VkResult entry_vkCreateValidationCacheEXT(
3658 VkDevice device,
3659 const VkValidationCacheCreateInfoEXT* pCreateInfo,
3660 const VkAllocationCallbacks* pAllocator,
3661 VkValidationCacheEXT* pValidationCache)
3662{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003663 AEMU_SCOPED_TRACE("vkCreateValidationCacheEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003664 auto vkEnc = HostConnection::get()->vkEncoder();
3665 VkResult vkCreateValidationCacheEXT_VkResult_return = (VkResult)0;
3666 vkCreateValidationCacheEXT_VkResult_return = vkEnc->vkCreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache);
3667 return vkCreateValidationCacheEXT_VkResult_return;
3668}
3669static void entry_vkDestroyValidationCacheEXT(
3670 VkDevice device,
3671 VkValidationCacheEXT validationCache,
3672 const VkAllocationCallbacks* pAllocator)
3673{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003674 AEMU_SCOPED_TRACE("vkDestroyValidationCacheEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003675 auto vkEnc = HostConnection::get()->vkEncoder();
3676 vkEnc->vkDestroyValidationCacheEXT(device, validationCache, pAllocator);
3677}
3678static VkResult entry_vkMergeValidationCachesEXT(
3679 VkDevice device,
3680 VkValidationCacheEXT dstCache,
3681 uint32_t srcCacheCount,
3682 const VkValidationCacheEXT* pSrcCaches)
3683{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003684 AEMU_SCOPED_TRACE("vkMergeValidationCachesEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003685 auto vkEnc = HostConnection::get()->vkEncoder();
3686 VkResult vkMergeValidationCachesEXT_VkResult_return = (VkResult)0;
3687 vkMergeValidationCachesEXT_VkResult_return = vkEnc->vkMergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches);
3688 return vkMergeValidationCachesEXT_VkResult_return;
3689}
3690static VkResult entry_vkGetValidationCacheDataEXT(
3691 VkDevice device,
3692 VkValidationCacheEXT validationCache,
3693 size_t* pDataSize,
3694 void* pData)
3695{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003696 AEMU_SCOPED_TRACE("vkGetValidationCacheDataEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003697 auto vkEnc = HostConnection::get()->vkEncoder();
3698 VkResult vkGetValidationCacheDataEXT_VkResult_return = (VkResult)0;
3699 vkGetValidationCacheDataEXT_VkResult_return = vkEnc->vkGetValidationCacheDataEXT(device, validationCache, pDataSize, pData);
3700 return vkGetValidationCacheDataEXT_VkResult_return;
3701}
3702#endif
3703#ifdef VK_EXT_descriptor_indexing
3704#endif
3705#ifdef VK_EXT_shader_viewport_index_layer
3706#endif
3707#ifdef VK_EXT_global_priority
3708#endif
3709#ifdef VK_EXT_external_memory_host
3710static VkResult entry_vkGetMemoryHostPointerPropertiesEXT(
3711 VkDevice device,
3712 VkExternalMemoryHandleTypeFlagBits handleType,
3713 const void* pHostPointer,
3714 VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties)
3715{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003716 AEMU_SCOPED_TRACE("vkGetMemoryHostPointerPropertiesEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003717 auto vkEnc = HostConnection::get()->vkEncoder();
3718 VkResult vkGetMemoryHostPointerPropertiesEXT_VkResult_return = (VkResult)0;
3719 vkGetMemoryHostPointerPropertiesEXT_VkResult_return = vkEnc->vkGetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties);
3720 return vkGetMemoryHostPointerPropertiesEXT_VkResult_return;
3721}
3722#endif
3723#ifdef VK_AMD_buffer_marker
3724static void entry_vkCmdWriteBufferMarkerAMD(
3725 VkCommandBuffer commandBuffer,
3726 VkPipelineStageFlagBits pipelineStage,
3727 VkBuffer dstBuffer,
3728 VkDeviceSize dstOffset,
3729 uint32_t marker)
3730{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003731 AEMU_SCOPED_TRACE("vkCmdWriteBufferMarkerAMD");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003732 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07003733 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003734 vkEnc->vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker);
3735}
3736#endif
3737#ifdef VK_AMD_shader_core_properties
3738#endif
3739#ifdef VK_EXT_vertex_attribute_divisor
3740#endif
3741#ifdef VK_NV_shader_subgroup_partitioned
3742#endif
3743#ifdef VK_NV_device_diagnostic_checkpoints
3744static void entry_vkCmdSetCheckpointNV(
3745 VkCommandBuffer commandBuffer,
3746 const void* pCheckpointMarker)
3747{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003748 AEMU_SCOPED_TRACE("vkCmdSetCheckpointNV");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003749 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07003750 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003751 vkEnc->vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker);
3752}
3753static void entry_vkGetQueueCheckpointDataNV(
3754 VkQueue queue,
3755 uint32_t* pCheckpointDataCount,
3756 VkCheckpointDataNV* pCheckpointData)
3757{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003758 AEMU_SCOPED_TRACE("vkGetQueueCheckpointDataNV");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003759 auto vkEnc = HostConnection::get()->vkEncoder();
3760 vkEnc->vkGetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData);
3761}
3762#endif
Lingfeng Yang5c63afd2018-12-22 01:21:14 -08003763#ifdef VK_GOOGLE_address_space
3764static VkResult entry_vkMapMemoryIntoAddressSpaceGOOGLE(
3765 VkDevice device,
3766 VkDeviceMemory memory,
3767 uint64_t* pAddress)
3768{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003769 AEMU_SCOPED_TRACE("vkMapMemoryIntoAddressSpaceGOOGLE");
Lingfeng Yang5c63afd2018-12-22 01:21:14 -08003770 auto vkEnc = HostConnection::get()->vkEncoder();
3771 VkResult vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return = (VkResult)0;
3772 vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return = vkEnc->vkMapMemoryIntoAddressSpaceGOOGLE(device, memory, pAddress);
3773 return vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return;
3774}
3775#endif
Lingfeng Yangae7e1b32019-02-19 14:07:39 -08003776#ifdef VK_GOOGLE_color_buffer
3777static VkResult entry_vkRegisterImageColorBufferGOOGLE(
3778 VkDevice device,
3779 VkImage image,
3780 uint32_t colorBuffer)
3781{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003782 AEMU_SCOPED_TRACE("vkRegisterImageColorBufferGOOGLE");
Lingfeng Yangae7e1b32019-02-19 14:07:39 -08003783 auto vkEnc = HostConnection::get()->vkEncoder();
3784 VkResult vkRegisterImageColorBufferGOOGLE_VkResult_return = (VkResult)0;
3785 vkRegisterImageColorBufferGOOGLE_VkResult_return = vkEnc->vkRegisterImageColorBufferGOOGLE(device, image, colorBuffer);
3786 return vkRegisterImageColorBufferGOOGLE_VkResult_return;
3787}
3788static VkResult entry_vkRegisterBufferColorBufferGOOGLE(
3789 VkDevice device,
3790 VkBuffer buffer,
3791 uint32_t colorBuffer)
3792{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003793 AEMU_SCOPED_TRACE("vkRegisterBufferColorBufferGOOGLE");
Lingfeng Yangae7e1b32019-02-19 14:07:39 -08003794 auto vkEnc = HostConnection::get()->vkEncoder();
3795 VkResult vkRegisterBufferColorBufferGOOGLE_VkResult_return = (VkResult)0;
3796 vkRegisterBufferColorBufferGOOGLE_VkResult_return = vkEnc->vkRegisterBufferColorBufferGOOGLE(device, buffer, colorBuffer);
3797 return vkRegisterBufferColorBufferGOOGLE_VkResult_return;
3798}
3799#endif
Lingfeng Yang05d5ea32019-03-23 00:12:39 -07003800#ifdef VK_GOOGLE_sized_descriptor_update_template
3801static void entry_vkUpdateDescriptorSetWithTemplateSizedGOOGLE(
3802 VkDevice device,
3803 VkDescriptorSet descriptorSet,
3804 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
3805 uint32_t imageInfoCount,
3806 uint32_t bufferInfoCount,
3807 uint32_t bufferViewCount,
3808 const uint32_t* pImageInfoEntryIndices,
3809 const uint32_t* pBufferInfoEntryIndices,
3810 const uint32_t* pBufferViewEntryIndices,
3811 const VkDescriptorImageInfo* pImageInfos,
3812 const VkDescriptorBufferInfo* pBufferInfos,
3813 const VkBufferView* pBufferViews)
3814{
3815 AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplateSizedGOOGLE");
3816 auto vkEnc = HostConnection::get()->vkEncoder();
3817 vkEnc->vkUpdateDescriptorSetWithTemplateSizedGOOGLE(device, descriptorSet, descriptorUpdateTemplate, imageInfoCount, bufferInfoCount, bufferViewCount, pImageInfoEntryIndices, pBufferInfoEntryIndices, pBufferViewEntryIndices, pImageInfos, pBufferInfos, pBufferViews);
3818}
3819#endif
Lingfeng Yangc53e7472019-03-27 08:50:55 -07003820#ifdef VK_GOOGLE_async_command_buffers
3821static void entry_vkBeginCommandBufferAsyncGOOGLE(
3822 VkCommandBuffer commandBuffer,
3823 const VkCommandBufferBeginInfo* pBeginInfo)
3824{
3825 AEMU_SCOPED_TRACE("vkBeginCommandBufferAsyncGOOGLE");
3826 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07003827 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yangc53e7472019-03-27 08:50:55 -07003828 vkEnc->vkBeginCommandBufferAsyncGOOGLE(commandBuffer, pBeginInfo);
3829}
3830static void entry_vkEndCommandBufferAsyncGOOGLE(
3831 VkCommandBuffer commandBuffer)
3832{
3833 AEMU_SCOPED_TRACE("vkEndCommandBufferAsyncGOOGLE");
3834 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07003835 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yangc53e7472019-03-27 08:50:55 -07003836 vkEnc->vkEndCommandBufferAsyncGOOGLE(commandBuffer);
3837}
3838static void entry_vkResetCommandBufferAsyncGOOGLE(
3839 VkCommandBuffer commandBuffer,
3840 VkCommandBufferResetFlags flags)
3841{
3842 AEMU_SCOPED_TRACE("vkResetCommandBufferAsyncGOOGLE");
3843 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07003844 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yangc53e7472019-03-27 08:50:55 -07003845 vkEnc->vkResetCommandBufferAsyncGOOGLE(commandBuffer, flags);
3846}
Lingfeng Yang39a276e2019-06-17 13:27:22 -07003847static void entry_vkCommandBufferHostSyncGOOGLE(
3848 VkCommandBuffer commandBuffer,
3849 uint32_t needHostSync,
3850 uint32_t sequenceNumber)
3851{
3852 AEMU_SCOPED_TRACE("vkCommandBufferHostSyncGOOGLE");
3853 auto vkEnc = HostConnection::get()->vkEncoder();
3854 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
3855 vkEnc->vkCommandBufferHostSyncGOOGLE(commandBuffer, needHostSync, sequenceNumber);
3856}
Lingfeng Yangc53e7472019-03-27 08:50:55 -07003857#endif
Lingfeng Yang87f11962019-06-27 16:28:53 +00003858#ifdef VK_GOOGLE_create_resources_with_requirements
3859static VkResult entry_vkCreateImageWithRequirementsGOOGLE(
3860 VkDevice device,
3861 const VkImageCreateInfo* pCreateInfo,
3862 const VkAllocationCallbacks* pAllocator,
3863 VkImage* pImage,
3864 VkMemoryRequirements* pMemoryRequirements)
3865{
3866 AEMU_SCOPED_TRACE("vkCreateImageWithRequirementsGOOGLE");
3867 auto vkEnc = HostConnection::get()->vkEncoder();
3868 VkResult vkCreateImageWithRequirementsGOOGLE_VkResult_return = (VkResult)0;
3869 vkCreateImageWithRequirementsGOOGLE_VkResult_return = vkEnc->vkCreateImageWithRequirementsGOOGLE(device, pCreateInfo, pAllocator, pImage, pMemoryRequirements);
3870 return vkCreateImageWithRequirementsGOOGLE_VkResult_return;
3871}
3872static VkResult entry_vkCreateBufferWithRequirementsGOOGLE(
3873 VkDevice device,
3874 const VkBufferCreateInfo* pCreateInfo,
3875 const VkAllocationCallbacks* pAllocator,
3876 VkBuffer* pBuffer,
3877 VkMemoryRequirements* pMemoryRequirements)
3878{
3879 AEMU_SCOPED_TRACE("vkCreateBufferWithRequirementsGOOGLE");
3880 auto vkEnc = HostConnection::get()->vkEncoder();
3881 VkResult vkCreateBufferWithRequirementsGOOGLE_VkResult_return = (VkResult)0;
3882 vkCreateBufferWithRequirementsGOOGLE_VkResult_return = vkEnc->vkCreateBufferWithRequirementsGOOGLE(device, pCreateInfo, pAllocator, pBuffer, pMemoryRequirements);
3883 return vkCreateBufferWithRequirementsGOOGLE_VkResult_return;
3884}
3885#endif
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003886void* goldfish_vulkan_get_proc_address(const char* name){
3887#ifdef VK_VERSION_1_0
3888 if (!strcmp(name, "vkCreateInstance"))
3889 {
3890 return (void*)entry_vkCreateInstance;
3891 }
3892 if (!strcmp(name, "vkDestroyInstance"))
3893 {
3894 return (void*)entry_vkDestroyInstance;
3895 }
3896 if (!strcmp(name, "vkEnumeratePhysicalDevices"))
3897 {
3898 return (void*)entry_vkEnumeratePhysicalDevices;
3899 }
3900 if (!strcmp(name, "vkGetPhysicalDeviceFeatures"))
3901 {
3902 return (void*)entry_vkGetPhysicalDeviceFeatures;
3903 }
3904 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties"))
3905 {
3906 return (void*)entry_vkGetPhysicalDeviceFormatProperties;
3907 }
3908 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties"))
3909 {
3910 return (void*)entry_vkGetPhysicalDeviceImageFormatProperties;
3911 }
3912 if (!strcmp(name, "vkGetPhysicalDeviceProperties"))
3913 {
3914 return (void*)entry_vkGetPhysicalDeviceProperties;
3915 }
3916 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties"))
3917 {
3918 return (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties;
3919 }
3920 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties"))
3921 {
3922 return (void*)entry_vkGetPhysicalDeviceMemoryProperties;
3923 }
3924 if (!strcmp(name, "vkGetInstanceProcAddr"))
3925 {
3926 return (void*)entry_vkGetInstanceProcAddr;
3927 }
3928 if (!strcmp(name, "vkGetDeviceProcAddr"))
3929 {
3930 return (void*)entry_vkGetDeviceProcAddr;
3931 }
3932 if (!strcmp(name, "vkCreateDevice"))
3933 {
3934 return (void*)entry_vkCreateDevice;
3935 }
3936 if (!strcmp(name, "vkDestroyDevice"))
3937 {
3938 return (void*)entry_vkDestroyDevice;
3939 }
3940 if (!strcmp(name, "vkEnumerateInstanceExtensionProperties"))
3941 {
3942 return (void*)entry_vkEnumerateInstanceExtensionProperties;
3943 }
3944 if (!strcmp(name, "vkEnumerateDeviceExtensionProperties"))
3945 {
3946 return (void*)entry_vkEnumerateDeviceExtensionProperties;
3947 }
3948 if (!strcmp(name, "vkEnumerateInstanceLayerProperties"))
3949 {
3950 return (void*)entry_vkEnumerateInstanceLayerProperties;
3951 }
3952 if (!strcmp(name, "vkEnumerateDeviceLayerProperties"))
3953 {
3954 return (void*)entry_vkEnumerateDeviceLayerProperties;
3955 }
3956 if (!strcmp(name, "vkGetDeviceQueue"))
3957 {
3958 return (void*)entry_vkGetDeviceQueue;
3959 }
3960 if (!strcmp(name, "vkQueueSubmit"))
3961 {
3962 return (void*)entry_vkQueueSubmit;
3963 }
3964 if (!strcmp(name, "vkQueueWaitIdle"))
3965 {
3966 return (void*)entry_vkQueueWaitIdle;
3967 }
3968 if (!strcmp(name, "vkDeviceWaitIdle"))
3969 {
3970 return (void*)entry_vkDeviceWaitIdle;
3971 }
3972 if (!strcmp(name, "vkAllocateMemory"))
3973 {
3974 return (void*)entry_vkAllocateMemory;
3975 }
3976 if (!strcmp(name, "vkFreeMemory"))
3977 {
3978 return (void*)entry_vkFreeMemory;
3979 }
3980 if (!strcmp(name, "vkMapMemory"))
3981 {
3982 return (void*)entry_vkMapMemory;
3983 }
3984 if (!strcmp(name, "vkUnmapMemory"))
3985 {
3986 return (void*)entry_vkUnmapMemory;
3987 }
3988 if (!strcmp(name, "vkFlushMappedMemoryRanges"))
3989 {
3990 return (void*)entry_vkFlushMappedMemoryRanges;
3991 }
3992 if (!strcmp(name, "vkInvalidateMappedMemoryRanges"))
3993 {
3994 return (void*)entry_vkInvalidateMappedMemoryRanges;
3995 }
3996 if (!strcmp(name, "vkGetDeviceMemoryCommitment"))
3997 {
3998 return (void*)entry_vkGetDeviceMemoryCommitment;
3999 }
4000 if (!strcmp(name, "vkBindBufferMemory"))
4001 {
4002 return (void*)entry_vkBindBufferMemory;
4003 }
4004 if (!strcmp(name, "vkBindImageMemory"))
4005 {
4006 return (void*)entry_vkBindImageMemory;
4007 }
4008 if (!strcmp(name, "vkGetBufferMemoryRequirements"))
4009 {
4010 return (void*)entry_vkGetBufferMemoryRequirements;
4011 }
4012 if (!strcmp(name, "vkGetImageMemoryRequirements"))
4013 {
4014 return (void*)entry_vkGetImageMemoryRequirements;
4015 }
4016 if (!strcmp(name, "vkGetImageSparseMemoryRequirements"))
4017 {
4018 return (void*)entry_vkGetImageSparseMemoryRequirements;
4019 }
4020 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties"))
4021 {
4022 return (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties;
4023 }
4024 if (!strcmp(name, "vkQueueBindSparse"))
4025 {
4026 return (void*)entry_vkQueueBindSparse;
4027 }
4028 if (!strcmp(name, "vkCreateFence"))
4029 {
4030 return (void*)entry_vkCreateFence;
4031 }
4032 if (!strcmp(name, "vkDestroyFence"))
4033 {
4034 return (void*)entry_vkDestroyFence;
4035 }
4036 if (!strcmp(name, "vkResetFences"))
4037 {
4038 return (void*)entry_vkResetFences;
4039 }
4040 if (!strcmp(name, "vkGetFenceStatus"))
4041 {
4042 return (void*)entry_vkGetFenceStatus;
4043 }
4044 if (!strcmp(name, "vkWaitForFences"))
4045 {
4046 return (void*)entry_vkWaitForFences;
4047 }
4048 if (!strcmp(name, "vkCreateSemaphore"))
4049 {
4050 return (void*)entry_vkCreateSemaphore;
4051 }
4052 if (!strcmp(name, "vkDestroySemaphore"))
4053 {
4054 return (void*)entry_vkDestroySemaphore;
4055 }
4056 if (!strcmp(name, "vkCreateEvent"))
4057 {
4058 return (void*)entry_vkCreateEvent;
4059 }
4060 if (!strcmp(name, "vkDestroyEvent"))
4061 {
4062 return (void*)entry_vkDestroyEvent;
4063 }
4064 if (!strcmp(name, "vkGetEventStatus"))
4065 {
4066 return (void*)entry_vkGetEventStatus;
4067 }
4068 if (!strcmp(name, "vkSetEvent"))
4069 {
4070 return (void*)entry_vkSetEvent;
4071 }
4072 if (!strcmp(name, "vkResetEvent"))
4073 {
4074 return (void*)entry_vkResetEvent;
4075 }
4076 if (!strcmp(name, "vkCreateQueryPool"))
4077 {
4078 return (void*)entry_vkCreateQueryPool;
4079 }
4080 if (!strcmp(name, "vkDestroyQueryPool"))
4081 {
4082 return (void*)entry_vkDestroyQueryPool;
4083 }
4084 if (!strcmp(name, "vkGetQueryPoolResults"))
4085 {
4086 return (void*)entry_vkGetQueryPoolResults;
4087 }
4088 if (!strcmp(name, "vkCreateBuffer"))
4089 {
4090 return (void*)entry_vkCreateBuffer;
4091 }
4092 if (!strcmp(name, "vkDestroyBuffer"))
4093 {
4094 return (void*)entry_vkDestroyBuffer;
4095 }
4096 if (!strcmp(name, "vkCreateBufferView"))
4097 {
4098 return (void*)entry_vkCreateBufferView;
4099 }
4100 if (!strcmp(name, "vkDestroyBufferView"))
4101 {
4102 return (void*)entry_vkDestroyBufferView;
4103 }
4104 if (!strcmp(name, "vkCreateImage"))
4105 {
4106 return (void*)entry_vkCreateImage;
4107 }
4108 if (!strcmp(name, "vkDestroyImage"))
4109 {
4110 return (void*)entry_vkDestroyImage;
4111 }
4112 if (!strcmp(name, "vkGetImageSubresourceLayout"))
4113 {
4114 return (void*)entry_vkGetImageSubresourceLayout;
4115 }
4116 if (!strcmp(name, "vkCreateImageView"))
4117 {
4118 return (void*)entry_vkCreateImageView;
4119 }
4120 if (!strcmp(name, "vkDestroyImageView"))
4121 {
4122 return (void*)entry_vkDestroyImageView;
4123 }
4124 if (!strcmp(name, "vkCreateShaderModule"))
4125 {
4126 return (void*)entry_vkCreateShaderModule;
4127 }
4128 if (!strcmp(name, "vkDestroyShaderModule"))
4129 {
4130 return (void*)entry_vkDestroyShaderModule;
4131 }
4132 if (!strcmp(name, "vkCreatePipelineCache"))
4133 {
4134 return (void*)entry_vkCreatePipelineCache;
4135 }
4136 if (!strcmp(name, "vkDestroyPipelineCache"))
4137 {
4138 return (void*)entry_vkDestroyPipelineCache;
4139 }
4140 if (!strcmp(name, "vkGetPipelineCacheData"))
4141 {
4142 return (void*)entry_vkGetPipelineCacheData;
4143 }
4144 if (!strcmp(name, "vkMergePipelineCaches"))
4145 {
4146 return (void*)entry_vkMergePipelineCaches;
4147 }
4148 if (!strcmp(name, "vkCreateGraphicsPipelines"))
4149 {
4150 return (void*)entry_vkCreateGraphicsPipelines;
4151 }
4152 if (!strcmp(name, "vkCreateComputePipelines"))
4153 {
4154 return (void*)entry_vkCreateComputePipelines;
4155 }
4156 if (!strcmp(name, "vkDestroyPipeline"))
4157 {
4158 return (void*)entry_vkDestroyPipeline;
4159 }
4160 if (!strcmp(name, "vkCreatePipelineLayout"))
4161 {
4162 return (void*)entry_vkCreatePipelineLayout;
4163 }
4164 if (!strcmp(name, "vkDestroyPipelineLayout"))
4165 {
4166 return (void*)entry_vkDestroyPipelineLayout;
4167 }
4168 if (!strcmp(name, "vkCreateSampler"))
4169 {
4170 return (void*)entry_vkCreateSampler;
4171 }
4172 if (!strcmp(name, "vkDestroySampler"))
4173 {
4174 return (void*)entry_vkDestroySampler;
4175 }
4176 if (!strcmp(name, "vkCreateDescriptorSetLayout"))
4177 {
4178 return (void*)entry_vkCreateDescriptorSetLayout;
4179 }
4180 if (!strcmp(name, "vkDestroyDescriptorSetLayout"))
4181 {
4182 return (void*)entry_vkDestroyDescriptorSetLayout;
4183 }
4184 if (!strcmp(name, "vkCreateDescriptorPool"))
4185 {
4186 return (void*)entry_vkCreateDescriptorPool;
4187 }
4188 if (!strcmp(name, "vkDestroyDescriptorPool"))
4189 {
4190 return (void*)entry_vkDestroyDescriptorPool;
4191 }
4192 if (!strcmp(name, "vkResetDescriptorPool"))
4193 {
4194 return (void*)entry_vkResetDescriptorPool;
4195 }
4196 if (!strcmp(name, "vkAllocateDescriptorSets"))
4197 {
4198 return (void*)entry_vkAllocateDescriptorSets;
4199 }
4200 if (!strcmp(name, "vkFreeDescriptorSets"))
4201 {
4202 return (void*)entry_vkFreeDescriptorSets;
4203 }
4204 if (!strcmp(name, "vkUpdateDescriptorSets"))
4205 {
4206 return (void*)entry_vkUpdateDescriptorSets;
4207 }
4208 if (!strcmp(name, "vkCreateFramebuffer"))
4209 {
4210 return (void*)entry_vkCreateFramebuffer;
4211 }
4212 if (!strcmp(name, "vkDestroyFramebuffer"))
4213 {
4214 return (void*)entry_vkDestroyFramebuffer;
4215 }
4216 if (!strcmp(name, "vkCreateRenderPass"))
4217 {
4218 return (void*)entry_vkCreateRenderPass;
4219 }
4220 if (!strcmp(name, "vkDestroyRenderPass"))
4221 {
4222 return (void*)entry_vkDestroyRenderPass;
4223 }
4224 if (!strcmp(name, "vkGetRenderAreaGranularity"))
4225 {
4226 return (void*)entry_vkGetRenderAreaGranularity;
4227 }
4228 if (!strcmp(name, "vkCreateCommandPool"))
4229 {
4230 return (void*)entry_vkCreateCommandPool;
4231 }
4232 if (!strcmp(name, "vkDestroyCommandPool"))
4233 {
4234 return (void*)entry_vkDestroyCommandPool;
4235 }
4236 if (!strcmp(name, "vkResetCommandPool"))
4237 {
4238 return (void*)entry_vkResetCommandPool;
4239 }
4240 if (!strcmp(name, "vkAllocateCommandBuffers"))
4241 {
4242 return (void*)entry_vkAllocateCommandBuffers;
4243 }
4244 if (!strcmp(name, "vkFreeCommandBuffers"))
4245 {
4246 return (void*)entry_vkFreeCommandBuffers;
4247 }
4248 if (!strcmp(name, "vkBeginCommandBuffer"))
4249 {
4250 return (void*)entry_vkBeginCommandBuffer;
4251 }
4252 if (!strcmp(name, "vkEndCommandBuffer"))
4253 {
4254 return (void*)entry_vkEndCommandBuffer;
4255 }
4256 if (!strcmp(name, "vkResetCommandBuffer"))
4257 {
4258 return (void*)entry_vkResetCommandBuffer;
4259 }
4260 if (!strcmp(name, "vkCmdBindPipeline"))
4261 {
4262 return (void*)entry_vkCmdBindPipeline;
4263 }
4264 if (!strcmp(name, "vkCmdSetViewport"))
4265 {
4266 return (void*)entry_vkCmdSetViewport;
4267 }
4268 if (!strcmp(name, "vkCmdSetScissor"))
4269 {
4270 return (void*)entry_vkCmdSetScissor;
4271 }
4272 if (!strcmp(name, "vkCmdSetLineWidth"))
4273 {
4274 return (void*)entry_vkCmdSetLineWidth;
4275 }
4276 if (!strcmp(name, "vkCmdSetDepthBias"))
4277 {
4278 return (void*)entry_vkCmdSetDepthBias;
4279 }
4280 if (!strcmp(name, "vkCmdSetBlendConstants"))
4281 {
4282 return (void*)entry_vkCmdSetBlendConstants;
4283 }
4284 if (!strcmp(name, "vkCmdSetDepthBounds"))
4285 {
4286 return (void*)entry_vkCmdSetDepthBounds;
4287 }
4288 if (!strcmp(name, "vkCmdSetStencilCompareMask"))
4289 {
4290 return (void*)entry_vkCmdSetStencilCompareMask;
4291 }
4292 if (!strcmp(name, "vkCmdSetStencilWriteMask"))
4293 {
4294 return (void*)entry_vkCmdSetStencilWriteMask;
4295 }
4296 if (!strcmp(name, "vkCmdSetStencilReference"))
4297 {
4298 return (void*)entry_vkCmdSetStencilReference;
4299 }
4300 if (!strcmp(name, "vkCmdBindDescriptorSets"))
4301 {
4302 return (void*)entry_vkCmdBindDescriptorSets;
4303 }
4304 if (!strcmp(name, "vkCmdBindIndexBuffer"))
4305 {
4306 return (void*)entry_vkCmdBindIndexBuffer;
4307 }
4308 if (!strcmp(name, "vkCmdBindVertexBuffers"))
4309 {
4310 return (void*)entry_vkCmdBindVertexBuffers;
4311 }
4312 if (!strcmp(name, "vkCmdDraw"))
4313 {
4314 return (void*)entry_vkCmdDraw;
4315 }
4316 if (!strcmp(name, "vkCmdDrawIndexed"))
4317 {
4318 return (void*)entry_vkCmdDrawIndexed;
4319 }
4320 if (!strcmp(name, "vkCmdDrawIndirect"))
4321 {
4322 return (void*)entry_vkCmdDrawIndirect;
4323 }
4324 if (!strcmp(name, "vkCmdDrawIndexedIndirect"))
4325 {
4326 return (void*)entry_vkCmdDrawIndexedIndirect;
4327 }
4328 if (!strcmp(name, "vkCmdDispatch"))
4329 {
4330 return (void*)entry_vkCmdDispatch;
4331 }
4332 if (!strcmp(name, "vkCmdDispatchIndirect"))
4333 {
4334 return (void*)entry_vkCmdDispatchIndirect;
4335 }
4336 if (!strcmp(name, "vkCmdCopyBuffer"))
4337 {
4338 return (void*)entry_vkCmdCopyBuffer;
4339 }
4340 if (!strcmp(name, "vkCmdCopyImage"))
4341 {
4342 return (void*)entry_vkCmdCopyImage;
4343 }
4344 if (!strcmp(name, "vkCmdBlitImage"))
4345 {
4346 return (void*)entry_vkCmdBlitImage;
4347 }
4348 if (!strcmp(name, "vkCmdCopyBufferToImage"))
4349 {
4350 return (void*)entry_vkCmdCopyBufferToImage;
4351 }
4352 if (!strcmp(name, "vkCmdCopyImageToBuffer"))
4353 {
4354 return (void*)entry_vkCmdCopyImageToBuffer;
4355 }
4356 if (!strcmp(name, "vkCmdUpdateBuffer"))
4357 {
4358 return (void*)entry_vkCmdUpdateBuffer;
4359 }
4360 if (!strcmp(name, "vkCmdFillBuffer"))
4361 {
4362 return (void*)entry_vkCmdFillBuffer;
4363 }
4364 if (!strcmp(name, "vkCmdClearColorImage"))
4365 {
4366 return (void*)entry_vkCmdClearColorImage;
4367 }
4368 if (!strcmp(name, "vkCmdClearDepthStencilImage"))
4369 {
4370 return (void*)entry_vkCmdClearDepthStencilImage;
4371 }
4372 if (!strcmp(name, "vkCmdClearAttachments"))
4373 {
4374 return (void*)entry_vkCmdClearAttachments;
4375 }
4376 if (!strcmp(name, "vkCmdResolveImage"))
4377 {
4378 return (void*)entry_vkCmdResolveImage;
4379 }
4380 if (!strcmp(name, "vkCmdSetEvent"))
4381 {
4382 return (void*)entry_vkCmdSetEvent;
4383 }
4384 if (!strcmp(name, "vkCmdResetEvent"))
4385 {
4386 return (void*)entry_vkCmdResetEvent;
4387 }
4388 if (!strcmp(name, "vkCmdWaitEvents"))
4389 {
4390 return (void*)entry_vkCmdWaitEvents;
4391 }
4392 if (!strcmp(name, "vkCmdPipelineBarrier"))
4393 {
4394 return (void*)entry_vkCmdPipelineBarrier;
4395 }
4396 if (!strcmp(name, "vkCmdBeginQuery"))
4397 {
4398 return (void*)entry_vkCmdBeginQuery;
4399 }
4400 if (!strcmp(name, "vkCmdEndQuery"))
4401 {
4402 return (void*)entry_vkCmdEndQuery;
4403 }
4404 if (!strcmp(name, "vkCmdResetQueryPool"))
4405 {
4406 return (void*)entry_vkCmdResetQueryPool;
4407 }
4408 if (!strcmp(name, "vkCmdWriteTimestamp"))
4409 {
4410 return (void*)entry_vkCmdWriteTimestamp;
4411 }
4412 if (!strcmp(name, "vkCmdCopyQueryPoolResults"))
4413 {
4414 return (void*)entry_vkCmdCopyQueryPoolResults;
4415 }
4416 if (!strcmp(name, "vkCmdPushConstants"))
4417 {
4418 return (void*)entry_vkCmdPushConstants;
4419 }
4420 if (!strcmp(name, "vkCmdBeginRenderPass"))
4421 {
4422 return (void*)entry_vkCmdBeginRenderPass;
4423 }
4424 if (!strcmp(name, "vkCmdNextSubpass"))
4425 {
4426 return (void*)entry_vkCmdNextSubpass;
4427 }
4428 if (!strcmp(name, "vkCmdEndRenderPass"))
4429 {
4430 return (void*)entry_vkCmdEndRenderPass;
4431 }
4432 if (!strcmp(name, "vkCmdExecuteCommands"))
4433 {
4434 return (void*)entry_vkCmdExecuteCommands;
4435 }
4436#endif
4437#ifdef VK_VERSION_1_1
4438 if (!strcmp(name, "vkEnumerateInstanceVersion"))
4439 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004440 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004441 }
4442 if (!strcmp(name, "vkBindBufferMemory2"))
4443 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004444 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004445 }
4446 if (!strcmp(name, "vkBindImageMemory2"))
4447 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004448 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004449 }
4450 if (!strcmp(name, "vkGetDeviceGroupPeerMemoryFeatures"))
4451 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004452 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004453 }
4454 if (!strcmp(name, "vkCmdSetDeviceMask"))
4455 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004456 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004457 }
4458 if (!strcmp(name, "vkCmdDispatchBase"))
4459 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004460 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004461 }
4462 if (!strcmp(name, "vkEnumeratePhysicalDeviceGroups"))
4463 {
Lingfeng Yang113689e2018-11-11 16:48:50 -08004464 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004465 }
4466 if (!strcmp(name, "vkGetImageMemoryRequirements2"))
4467 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004468 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004469 }
4470 if (!strcmp(name, "vkGetBufferMemoryRequirements2"))
4471 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004472 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004473 }
4474 if (!strcmp(name, "vkGetImageSparseMemoryRequirements2"))
4475 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004476 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004477 }
4478 if (!strcmp(name, "vkGetPhysicalDeviceFeatures2"))
4479 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004480 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004481 }
4482 if (!strcmp(name, "vkGetPhysicalDeviceProperties2"))
4483 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004484 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004485 }
4486 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties2"))
4487 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004488 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004489 }
4490 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties2"))
4491 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004492 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004493 }
4494 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties2"))
4495 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004496 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004497 }
4498 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties2"))
4499 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004500 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004501 }
4502 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties2"))
4503 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004504 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004505 }
4506 if (!strcmp(name, "vkTrimCommandPool"))
4507 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004508 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004509 }
4510 if (!strcmp(name, "vkGetDeviceQueue2"))
4511 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004512 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004513 }
4514 if (!strcmp(name, "vkCreateSamplerYcbcrConversion"))
4515 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004516 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004517 }
4518 if (!strcmp(name, "vkDestroySamplerYcbcrConversion"))
4519 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004520 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004521 }
4522 if (!strcmp(name, "vkCreateDescriptorUpdateTemplate"))
4523 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004524 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004525 }
4526 if (!strcmp(name, "vkDestroyDescriptorUpdateTemplate"))
4527 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004528 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004529 }
4530 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplate"))
4531 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004532 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004533 }
4534 if (!strcmp(name, "vkGetPhysicalDeviceExternalBufferProperties"))
4535 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004536 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004537 }
4538 if (!strcmp(name, "vkGetPhysicalDeviceExternalFenceProperties"))
4539 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004540 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004541 }
4542 if (!strcmp(name, "vkGetPhysicalDeviceExternalSemaphoreProperties"))
4543 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004544 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004545 }
4546 if (!strcmp(name, "vkGetDescriptorSetLayoutSupport"))
4547 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004548 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004549 }
4550#endif
4551#ifdef VK_KHR_surface
4552 if (!strcmp(name, "vkDestroySurfaceKHR"))
4553 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004554 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004555 }
4556 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceSupportKHR"))
4557 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004558 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004559 }
4560 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR"))
4561 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004562 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004563 }
4564 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceFormatsKHR"))
4565 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004566 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004567 }
4568 if (!strcmp(name, "vkGetPhysicalDeviceSurfacePresentModesKHR"))
4569 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004570 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004571 }
4572#endif
4573#ifdef VK_KHR_swapchain
4574 if (!strcmp(name, "vkCreateSwapchainKHR"))
4575 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004576 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004577 }
4578 if (!strcmp(name, "vkDestroySwapchainKHR"))
4579 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004580 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004581 }
4582 if (!strcmp(name, "vkGetSwapchainImagesKHR"))
4583 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004584 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004585 }
4586 if (!strcmp(name, "vkAcquireNextImageKHR"))
4587 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004588 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004589 }
4590 if (!strcmp(name, "vkQueuePresentKHR"))
4591 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004592 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004593 }
4594 if (!strcmp(name, "vkGetDeviceGroupPresentCapabilitiesKHR"))
4595 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004596 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004597 }
4598 if (!strcmp(name, "vkGetDeviceGroupSurfacePresentModesKHR"))
4599 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004600 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004601 }
4602 if (!strcmp(name, "vkGetPhysicalDevicePresentRectanglesKHR"))
4603 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004604 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004605 }
4606 if (!strcmp(name, "vkAcquireNextImage2KHR"))
4607 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004608 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004609 }
4610#endif
4611#ifdef VK_KHR_display
4612 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPropertiesKHR"))
4613 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004614 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004615 }
4616 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR"))
4617 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004618 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004619 }
4620 if (!strcmp(name, "vkGetDisplayPlaneSupportedDisplaysKHR"))
4621 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004622 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004623 }
4624 if (!strcmp(name, "vkGetDisplayModePropertiesKHR"))
4625 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004626 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004627 }
4628 if (!strcmp(name, "vkCreateDisplayModeKHR"))
4629 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004630 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004631 }
4632 if (!strcmp(name, "vkGetDisplayPlaneCapabilitiesKHR"))
4633 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004634 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004635 }
4636 if (!strcmp(name, "vkCreateDisplayPlaneSurfaceKHR"))
4637 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004638 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004639 }
4640#endif
4641#ifdef VK_KHR_display_swapchain
4642 if (!strcmp(name, "vkCreateSharedSwapchainsKHR"))
4643 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004644 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004645 }
4646#endif
4647#ifdef VK_KHR_xlib_surface
4648 if (!strcmp(name, "vkCreateXlibSurfaceKHR"))
4649 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004650 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004651 }
4652 if (!strcmp(name, "vkGetPhysicalDeviceXlibPresentationSupportKHR"))
4653 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004654 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004655 }
4656#endif
4657#ifdef VK_KHR_xcb_surface
4658 if (!strcmp(name, "vkCreateXcbSurfaceKHR"))
4659 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004660 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004661 }
4662 if (!strcmp(name, "vkGetPhysicalDeviceXcbPresentationSupportKHR"))
4663 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004664 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004665 }
4666#endif
4667#ifdef VK_KHR_wayland_surface
4668 if (!strcmp(name, "vkCreateWaylandSurfaceKHR"))
4669 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004670 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004671 }
4672 if (!strcmp(name, "vkGetPhysicalDeviceWaylandPresentationSupportKHR"))
4673 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004674 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004675 }
4676#endif
4677#ifdef VK_KHR_mir_surface
4678 if (!strcmp(name, "vkCreateMirSurfaceKHR"))
4679 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004680 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004681 }
4682 if (!strcmp(name, "vkGetPhysicalDeviceMirPresentationSupportKHR"))
4683 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004684 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004685 }
4686#endif
4687#ifdef VK_KHR_android_surface
4688 if (!strcmp(name, "vkCreateAndroidSurfaceKHR"))
4689 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004690 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004691 }
4692#endif
4693#ifdef VK_KHR_win32_surface
4694 if (!strcmp(name, "vkCreateWin32SurfaceKHR"))
4695 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004696 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004697 }
4698 if (!strcmp(name, "vkGetPhysicalDeviceWin32PresentationSupportKHR"))
4699 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004700 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004701 }
4702#endif
4703#ifdef VK_KHR_get_physical_device_properties2
4704 if (!strcmp(name, "vkGetPhysicalDeviceFeatures2KHR"))
4705 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004706 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004707 }
4708 if (!strcmp(name, "vkGetPhysicalDeviceProperties2KHR"))
4709 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004710 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004711 }
4712 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties2KHR"))
4713 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004714 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004715 }
4716 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties2KHR"))
4717 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004718 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004719 }
4720 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties2KHR"))
4721 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004722 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004723 }
4724 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties2KHR"))
4725 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004726 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004727 }
4728 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR"))
4729 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004730 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004731 }
4732#endif
4733#ifdef VK_KHR_device_group
4734 if (!strcmp(name, "vkGetDeviceGroupPeerMemoryFeaturesKHR"))
4735 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004736 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004737 }
4738 if (!strcmp(name, "vkCmdSetDeviceMaskKHR"))
4739 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004740 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004741 }
4742 if (!strcmp(name, "vkCmdDispatchBaseKHR"))
4743 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004744 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004745 }
4746#endif
4747#ifdef VK_KHR_maintenance1
4748 if (!strcmp(name, "vkTrimCommandPoolKHR"))
4749 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004750 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004751 }
4752#endif
4753#ifdef VK_KHR_device_group_creation
4754 if (!strcmp(name, "vkEnumeratePhysicalDeviceGroupsKHR"))
4755 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004756 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004757 }
4758#endif
4759#ifdef VK_KHR_external_memory_capabilities
4760 if (!strcmp(name, "vkGetPhysicalDeviceExternalBufferPropertiesKHR"))
4761 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004762 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004763 }
4764#endif
4765#ifdef VK_KHR_external_memory_win32
4766 if (!strcmp(name, "vkGetMemoryWin32HandleKHR"))
4767 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004768 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004769 }
4770 if (!strcmp(name, "vkGetMemoryWin32HandlePropertiesKHR"))
4771 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004772 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004773 }
4774#endif
4775#ifdef VK_KHR_external_memory_fd
4776 if (!strcmp(name, "vkGetMemoryFdKHR"))
4777 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004778 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004779 }
4780 if (!strcmp(name, "vkGetMemoryFdPropertiesKHR"))
4781 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004782 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004783 }
4784#endif
4785#ifdef VK_KHR_external_semaphore_capabilities
4786 if (!strcmp(name, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR"))
4787 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004788 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004789 }
4790#endif
4791#ifdef VK_KHR_external_semaphore_win32
4792 if (!strcmp(name, "vkImportSemaphoreWin32HandleKHR"))
4793 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004794 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004795 }
4796 if (!strcmp(name, "vkGetSemaphoreWin32HandleKHR"))
4797 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004798 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004799 }
4800#endif
4801#ifdef VK_KHR_external_semaphore_fd
4802 if (!strcmp(name, "vkImportSemaphoreFdKHR"))
4803 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004804 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004805 }
4806 if (!strcmp(name, "vkGetSemaphoreFdKHR"))
4807 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004808 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004809 }
4810#endif
4811#ifdef VK_KHR_push_descriptor
4812 if (!strcmp(name, "vkCmdPushDescriptorSetKHR"))
4813 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004814 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004815 }
4816 if (!strcmp(name, "vkCmdPushDescriptorSetWithTemplateKHR"))
4817 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004818 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004819 }
4820#endif
4821#ifdef VK_KHR_descriptor_update_template
4822 if (!strcmp(name, "vkCreateDescriptorUpdateTemplateKHR"))
4823 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004824 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004825 }
4826 if (!strcmp(name, "vkDestroyDescriptorUpdateTemplateKHR"))
4827 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004828 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004829 }
4830 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplateKHR"))
4831 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004832 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004833 }
4834#endif
4835#ifdef VK_KHR_create_renderpass2
4836 if (!strcmp(name, "vkCreateRenderPass2KHR"))
4837 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004838 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004839 }
4840 if (!strcmp(name, "vkCmdBeginRenderPass2KHR"))
4841 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004842 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004843 }
4844 if (!strcmp(name, "vkCmdNextSubpass2KHR"))
4845 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004846 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004847 }
4848 if (!strcmp(name, "vkCmdEndRenderPass2KHR"))
4849 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004850 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004851 }
4852#endif
4853#ifdef VK_KHR_shared_presentable_image
4854 if (!strcmp(name, "vkGetSwapchainStatusKHR"))
4855 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004856 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004857 }
4858#endif
4859#ifdef VK_KHR_external_fence_capabilities
4860 if (!strcmp(name, "vkGetPhysicalDeviceExternalFencePropertiesKHR"))
4861 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004862 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004863 }
4864#endif
4865#ifdef VK_KHR_external_fence_win32
4866 if (!strcmp(name, "vkImportFenceWin32HandleKHR"))
4867 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004868 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004869 }
4870 if (!strcmp(name, "vkGetFenceWin32HandleKHR"))
4871 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004872 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004873 }
4874#endif
4875#ifdef VK_KHR_external_fence_fd
4876 if (!strcmp(name, "vkImportFenceFdKHR"))
4877 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004878 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004879 }
4880 if (!strcmp(name, "vkGetFenceFdKHR"))
4881 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004882 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004883 }
4884#endif
4885#ifdef VK_KHR_get_surface_capabilities2
4886 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2KHR"))
4887 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004888 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004889 }
4890 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceFormats2KHR"))
4891 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004892 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004893 }
4894#endif
4895#ifdef VK_KHR_get_display_properties2
4896 if (!strcmp(name, "vkGetPhysicalDeviceDisplayProperties2KHR"))
4897 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004898 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004899 }
4900 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR"))
4901 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004902 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004903 }
4904 if (!strcmp(name, "vkGetDisplayModeProperties2KHR"))
4905 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004906 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004907 }
4908 if (!strcmp(name, "vkGetDisplayPlaneCapabilities2KHR"))
4909 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004910 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004911 }
4912#endif
4913#ifdef VK_KHR_get_memory_requirements2
4914 if (!strcmp(name, "vkGetImageMemoryRequirements2KHR"))
4915 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004916 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004917 }
4918 if (!strcmp(name, "vkGetBufferMemoryRequirements2KHR"))
4919 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004920 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004921 }
4922 if (!strcmp(name, "vkGetImageSparseMemoryRequirements2KHR"))
4923 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004924 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004925 }
4926#endif
4927#ifdef VK_KHR_sampler_ycbcr_conversion
4928 if (!strcmp(name, "vkCreateSamplerYcbcrConversionKHR"))
4929 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004930 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004931 }
4932 if (!strcmp(name, "vkDestroySamplerYcbcrConversionKHR"))
4933 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004934 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004935 }
4936#endif
4937#ifdef VK_KHR_bind_memory2
4938 if (!strcmp(name, "vkBindBufferMemory2KHR"))
4939 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004940 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004941 }
4942 if (!strcmp(name, "vkBindImageMemory2KHR"))
4943 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004944 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004945 }
4946#endif
4947#ifdef VK_KHR_maintenance3
4948 if (!strcmp(name, "vkGetDescriptorSetLayoutSupportKHR"))
4949 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004950 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004951 }
4952#endif
4953#ifdef VK_KHR_draw_indirect_count
4954 if (!strcmp(name, "vkCmdDrawIndirectCountKHR"))
4955 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004956 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004957 }
4958 if (!strcmp(name, "vkCmdDrawIndexedIndirectCountKHR"))
4959 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004960 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004961 }
4962#endif
Lingfeng Yang808a6312018-11-13 21:06:15 -08004963#ifdef VK_ANDROID_native_buffer
4964 if (!strcmp(name, "vkGetSwapchainGrallocUsageANDROID"))
4965 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004966 return nullptr;
Lingfeng Yang808a6312018-11-13 21:06:15 -08004967 }
4968 if (!strcmp(name, "vkAcquireImageANDROID"))
4969 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004970 return nullptr;
Lingfeng Yang808a6312018-11-13 21:06:15 -08004971 }
4972 if (!strcmp(name, "vkQueueSignalReleaseImageANDROID"))
4973 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004974 return nullptr;
Lingfeng Yang808a6312018-11-13 21:06:15 -08004975 }
4976#endif
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004977#ifdef VK_EXT_debug_report
4978 if (!strcmp(name, "vkCreateDebugReportCallbackEXT"))
4979 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004980 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004981 }
4982 if (!strcmp(name, "vkDestroyDebugReportCallbackEXT"))
4983 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004984 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004985 }
4986 if (!strcmp(name, "vkDebugReportMessageEXT"))
4987 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004988 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004989 }
4990#endif
4991#ifdef VK_EXT_debug_marker
4992 if (!strcmp(name, "vkDebugMarkerSetObjectTagEXT"))
4993 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004994 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004995 }
4996 if (!strcmp(name, "vkDebugMarkerSetObjectNameEXT"))
4997 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004998 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004999 }
5000 if (!strcmp(name, "vkCmdDebugMarkerBeginEXT"))
5001 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005002 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005003 }
5004 if (!strcmp(name, "vkCmdDebugMarkerEndEXT"))
5005 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005006 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005007 }
5008 if (!strcmp(name, "vkCmdDebugMarkerInsertEXT"))
5009 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005010 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005011 }
5012#endif
5013#ifdef VK_AMD_draw_indirect_count
5014 if (!strcmp(name, "vkCmdDrawIndirectCountAMD"))
5015 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005016 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005017 }
5018 if (!strcmp(name, "vkCmdDrawIndexedIndirectCountAMD"))
5019 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005020 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005021 }
5022#endif
5023#ifdef VK_AMD_shader_info
5024 if (!strcmp(name, "vkGetShaderInfoAMD"))
5025 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005026 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005027 }
5028#endif
5029#ifdef VK_NV_external_memory_capabilities
5030 if (!strcmp(name, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV"))
5031 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005032 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005033 }
5034#endif
5035#ifdef VK_NV_external_memory_win32
5036 if (!strcmp(name, "vkGetMemoryWin32HandleNV"))
5037 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005038 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005039 }
5040#endif
5041#ifdef VK_NN_vi_surface
5042 if (!strcmp(name, "vkCreateViSurfaceNN"))
5043 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005044 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005045 }
5046#endif
5047#ifdef VK_EXT_conditional_rendering
5048 if (!strcmp(name, "vkCmdBeginConditionalRenderingEXT"))
5049 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005050 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005051 }
5052 if (!strcmp(name, "vkCmdEndConditionalRenderingEXT"))
5053 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005054 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005055 }
5056#endif
5057#ifdef VK_NVX_device_generated_commands
5058 if (!strcmp(name, "vkCmdProcessCommandsNVX"))
5059 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005060 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005061 }
5062 if (!strcmp(name, "vkCmdReserveSpaceForCommandsNVX"))
5063 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005064 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005065 }
5066 if (!strcmp(name, "vkCreateIndirectCommandsLayoutNVX"))
5067 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005068 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005069 }
5070 if (!strcmp(name, "vkDestroyIndirectCommandsLayoutNVX"))
5071 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005072 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005073 }
5074 if (!strcmp(name, "vkCreateObjectTableNVX"))
5075 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005076 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005077 }
5078 if (!strcmp(name, "vkDestroyObjectTableNVX"))
5079 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005080 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005081 }
5082 if (!strcmp(name, "vkRegisterObjectsNVX"))
5083 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005084 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005085 }
5086 if (!strcmp(name, "vkUnregisterObjectsNVX"))
5087 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005088 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005089 }
5090 if (!strcmp(name, "vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX"))
5091 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005092 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005093 }
5094#endif
5095#ifdef VK_NV_clip_space_w_scaling
5096 if (!strcmp(name, "vkCmdSetViewportWScalingNV"))
5097 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005098 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005099 }
5100#endif
5101#ifdef VK_EXT_direct_mode_display
5102 if (!strcmp(name, "vkReleaseDisplayEXT"))
5103 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005104 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005105 }
5106#endif
5107#ifdef VK_EXT_acquire_xlib_display
5108 if (!strcmp(name, "vkAcquireXlibDisplayEXT"))
5109 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005110 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005111 }
5112 if (!strcmp(name, "vkGetRandROutputDisplayEXT"))
5113 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005114 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005115 }
5116#endif
5117#ifdef VK_EXT_display_surface_counter
5118 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2EXT"))
5119 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005120 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005121 }
5122#endif
5123#ifdef VK_EXT_display_control
5124 if (!strcmp(name, "vkDisplayPowerControlEXT"))
5125 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005126 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005127 }
5128 if (!strcmp(name, "vkRegisterDeviceEventEXT"))
5129 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005130 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005131 }
5132 if (!strcmp(name, "vkRegisterDisplayEventEXT"))
5133 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005134 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005135 }
5136 if (!strcmp(name, "vkGetSwapchainCounterEXT"))
5137 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005138 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005139 }
5140#endif
5141#ifdef VK_GOOGLE_display_timing
5142 if (!strcmp(name, "vkGetRefreshCycleDurationGOOGLE"))
5143 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005144 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005145 }
5146 if (!strcmp(name, "vkGetPastPresentationTimingGOOGLE"))
5147 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005148 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005149 }
5150#endif
5151#ifdef VK_EXT_discard_rectangles
5152 if (!strcmp(name, "vkCmdSetDiscardRectangleEXT"))
5153 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005154 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005155 }
5156#endif
5157#ifdef VK_EXT_hdr_metadata
5158 if (!strcmp(name, "vkSetHdrMetadataEXT"))
5159 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005160 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005161 }
5162#endif
5163#ifdef VK_MVK_ios_surface
5164 if (!strcmp(name, "vkCreateIOSSurfaceMVK"))
5165 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005166 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005167 }
5168#endif
5169#ifdef VK_MVK_macos_surface
5170 if (!strcmp(name, "vkCreateMacOSSurfaceMVK"))
5171 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005172 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005173 }
5174#endif
5175#ifdef VK_EXT_debug_utils
5176 if (!strcmp(name, "vkSetDebugUtilsObjectNameEXT"))
5177 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005178 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005179 }
5180 if (!strcmp(name, "vkSetDebugUtilsObjectTagEXT"))
5181 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005182 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005183 }
5184 if (!strcmp(name, "vkQueueBeginDebugUtilsLabelEXT"))
5185 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005186 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005187 }
5188 if (!strcmp(name, "vkQueueEndDebugUtilsLabelEXT"))
5189 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005190 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005191 }
5192 if (!strcmp(name, "vkQueueInsertDebugUtilsLabelEXT"))
5193 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005194 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005195 }
5196 if (!strcmp(name, "vkCmdBeginDebugUtilsLabelEXT"))
5197 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005198 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005199 }
5200 if (!strcmp(name, "vkCmdEndDebugUtilsLabelEXT"))
5201 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005202 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005203 }
5204 if (!strcmp(name, "vkCmdInsertDebugUtilsLabelEXT"))
5205 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005206 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005207 }
5208 if (!strcmp(name, "vkCreateDebugUtilsMessengerEXT"))
5209 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005210 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005211 }
5212 if (!strcmp(name, "vkDestroyDebugUtilsMessengerEXT"))
5213 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005214 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005215 }
5216 if (!strcmp(name, "vkSubmitDebugUtilsMessageEXT"))
5217 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005218 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005219 }
5220#endif
5221#ifdef VK_ANDROID_external_memory_android_hardware_buffer
5222 if (!strcmp(name, "vkGetAndroidHardwareBufferPropertiesANDROID"))
5223 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005224 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005225 }
5226 if (!strcmp(name, "vkGetMemoryAndroidHardwareBufferANDROID"))
5227 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005228 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005229 }
5230#endif
5231#ifdef VK_EXT_sample_locations
5232 if (!strcmp(name, "vkCmdSetSampleLocationsEXT"))
5233 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005234 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005235 }
5236 if (!strcmp(name, "vkGetPhysicalDeviceMultisamplePropertiesEXT"))
5237 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005238 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005239 }
5240#endif
5241#ifdef VK_EXT_validation_cache
5242 if (!strcmp(name, "vkCreateValidationCacheEXT"))
5243 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005244 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005245 }
5246 if (!strcmp(name, "vkDestroyValidationCacheEXT"))
5247 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005248 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005249 }
5250 if (!strcmp(name, "vkMergeValidationCachesEXT"))
5251 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005252 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005253 }
5254 if (!strcmp(name, "vkGetValidationCacheDataEXT"))
5255 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005256 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005257 }
5258#endif
5259#ifdef VK_EXT_external_memory_host
5260 if (!strcmp(name, "vkGetMemoryHostPointerPropertiesEXT"))
5261 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005262 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005263 }
5264#endif
5265#ifdef VK_AMD_buffer_marker
5266 if (!strcmp(name, "vkCmdWriteBufferMarkerAMD"))
5267 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005268 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005269 }
5270#endif
5271#ifdef VK_NV_device_diagnostic_checkpoints
5272 if (!strcmp(name, "vkCmdSetCheckpointNV"))
5273 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005274 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005275 }
5276 if (!strcmp(name, "vkGetQueueCheckpointDataNV"))
5277 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005278 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005279 }
5280#endif
Lingfeng Yang5c63afd2018-12-22 01:21:14 -08005281#ifdef VK_GOOGLE_address_space
5282 if (!strcmp(name, "vkMapMemoryIntoAddressSpaceGOOGLE"))
5283 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005284 return nullptr;
5285 }
5286#endif
Lingfeng Yangae7e1b32019-02-19 14:07:39 -08005287#ifdef VK_GOOGLE_color_buffer
5288 if (!strcmp(name, "vkRegisterImageColorBufferGOOGLE"))
5289 {
5290 return nullptr;
5291 }
5292 if (!strcmp(name, "vkRegisterBufferColorBufferGOOGLE"))
5293 {
5294 return nullptr;
5295 }
5296#endif
Lingfeng Yang05d5ea32019-03-23 00:12:39 -07005297#ifdef VK_GOOGLE_sized_descriptor_update_template
5298 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplateSizedGOOGLE"))
5299 {
5300 return nullptr;
5301 }
5302#endif
Lingfeng Yangc53e7472019-03-27 08:50:55 -07005303#ifdef VK_GOOGLE_async_command_buffers
5304 if (!strcmp(name, "vkBeginCommandBufferAsyncGOOGLE"))
5305 {
5306 return nullptr;
5307 }
5308 if (!strcmp(name, "vkEndCommandBufferAsyncGOOGLE"))
5309 {
5310 return nullptr;
5311 }
5312 if (!strcmp(name, "vkResetCommandBufferAsyncGOOGLE"))
5313 {
5314 return nullptr;
5315 }
Lingfeng Yang39a276e2019-06-17 13:27:22 -07005316 if (!strcmp(name, "vkCommandBufferHostSyncGOOGLE"))
5317 {
5318 return nullptr;
5319 }
Lingfeng Yangc53e7472019-03-27 08:50:55 -07005320#endif
Lingfeng Yang87f11962019-06-27 16:28:53 +00005321#ifdef VK_GOOGLE_create_resources_with_requirements
5322 if (!strcmp(name, "vkCreateImageWithRequirementsGOOGLE"))
5323 {
5324 return nullptr;
5325 }
5326 if (!strcmp(name, "vkCreateBufferWithRequirementsGOOGLE"))
5327 {
5328 return nullptr;
5329 }
5330#endif
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005331 return nullptr;
5332}
5333void* goldfish_vulkan_get_instance_proc_address(VkInstance instance, const char* name){
5334 auto resources = ResourceTracker::get();
5335 bool has1_1OrHigher = resources->getApiVersionFromInstance(instance) >= VK_API_VERSION_1_1;
5336#ifdef VK_VERSION_1_0
5337 if (!strcmp(name, "vkCreateInstance"))
5338 {
5339 return (void*)entry_vkCreateInstance;
5340 }
5341 if (!strcmp(name, "vkDestroyInstance"))
5342 {
5343 return (void*)entry_vkDestroyInstance;
5344 }
5345 if (!strcmp(name, "vkEnumeratePhysicalDevices"))
5346 {
5347 return (void*)entry_vkEnumeratePhysicalDevices;
5348 }
5349 if (!strcmp(name, "vkGetPhysicalDeviceFeatures"))
5350 {
5351 return (void*)entry_vkGetPhysicalDeviceFeatures;
5352 }
5353 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties"))
5354 {
5355 return (void*)entry_vkGetPhysicalDeviceFormatProperties;
5356 }
5357 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties"))
5358 {
5359 return (void*)entry_vkGetPhysicalDeviceImageFormatProperties;
5360 }
5361 if (!strcmp(name, "vkGetPhysicalDeviceProperties"))
5362 {
5363 return (void*)entry_vkGetPhysicalDeviceProperties;
5364 }
5365 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties"))
5366 {
5367 return (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties;
5368 }
5369 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties"))
5370 {
5371 return (void*)entry_vkGetPhysicalDeviceMemoryProperties;
5372 }
5373 if (!strcmp(name, "vkGetInstanceProcAddr"))
5374 {
5375 return (void*)entry_vkGetInstanceProcAddr;
5376 }
5377 if (!strcmp(name, "vkGetDeviceProcAddr"))
5378 {
5379 return (void*)entry_vkGetDeviceProcAddr;
5380 }
5381 if (!strcmp(name, "vkCreateDevice"))
5382 {
5383 return (void*)entry_vkCreateDevice;
5384 }
5385 if (!strcmp(name, "vkDestroyDevice"))
5386 {
5387 return (void*)entry_vkDestroyDevice;
5388 }
5389 if (!strcmp(name, "vkEnumerateInstanceExtensionProperties"))
5390 {
5391 return (void*)entry_vkEnumerateInstanceExtensionProperties;
5392 }
5393 if (!strcmp(name, "vkEnumerateDeviceExtensionProperties"))
5394 {
5395 return (void*)entry_vkEnumerateDeviceExtensionProperties;
5396 }
5397 if (!strcmp(name, "vkEnumerateInstanceLayerProperties"))
5398 {
5399 return (void*)entry_vkEnumerateInstanceLayerProperties;
5400 }
5401 if (!strcmp(name, "vkEnumerateDeviceLayerProperties"))
5402 {
5403 return (void*)entry_vkEnumerateDeviceLayerProperties;
5404 }
5405 if (!strcmp(name, "vkGetDeviceQueue"))
5406 {
5407 return (void*)entry_vkGetDeviceQueue;
5408 }
5409 if (!strcmp(name, "vkQueueSubmit"))
5410 {
5411 return (void*)entry_vkQueueSubmit;
5412 }
5413 if (!strcmp(name, "vkQueueWaitIdle"))
5414 {
5415 return (void*)entry_vkQueueWaitIdle;
5416 }
5417 if (!strcmp(name, "vkDeviceWaitIdle"))
5418 {
5419 return (void*)entry_vkDeviceWaitIdle;
5420 }
5421 if (!strcmp(name, "vkAllocateMemory"))
5422 {
5423 return (void*)entry_vkAllocateMemory;
5424 }
5425 if (!strcmp(name, "vkFreeMemory"))
5426 {
5427 return (void*)entry_vkFreeMemory;
5428 }
5429 if (!strcmp(name, "vkMapMemory"))
5430 {
5431 return (void*)entry_vkMapMemory;
5432 }
5433 if (!strcmp(name, "vkUnmapMemory"))
5434 {
5435 return (void*)entry_vkUnmapMemory;
5436 }
5437 if (!strcmp(name, "vkFlushMappedMemoryRanges"))
5438 {
5439 return (void*)entry_vkFlushMappedMemoryRanges;
5440 }
5441 if (!strcmp(name, "vkInvalidateMappedMemoryRanges"))
5442 {
5443 return (void*)entry_vkInvalidateMappedMemoryRanges;
5444 }
5445 if (!strcmp(name, "vkGetDeviceMemoryCommitment"))
5446 {
5447 return (void*)entry_vkGetDeviceMemoryCommitment;
5448 }
5449 if (!strcmp(name, "vkBindBufferMemory"))
5450 {
5451 return (void*)entry_vkBindBufferMemory;
5452 }
5453 if (!strcmp(name, "vkBindImageMemory"))
5454 {
5455 return (void*)entry_vkBindImageMemory;
5456 }
5457 if (!strcmp(name, "vkGetBufferMemoryRequirements"))
5458 {
5459 return (void*)entry_vkGetBufferMemoryRequirements;
5460 }
5461 if (!strcmp(name, "vkGetImageMemoryRequirements"))
5462 {
5463 return (void*)entry_vkGetImageMemoryRequirements;
5464 }
5465 if (!strcmp(name, "vkGetImageSparseMemoryRequirements"))
5466 {
5467 return (void*)entry_vkGetImageSparseMemoryRequirements;
5468 }
5469 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties"))
5470 {
5471 return (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties;
5472 }
5473 if (!strcmp(name, "vkQueueBindSparse"))
5474 {
5475 return (void*)entry_vkQueueBindSparse;
5476 }
5477 if (!strcmp(name, "vkCreateFence"))
5478 {
5479 return (void*)entry_vkCreateFence;
5480 }
5481 if (!strcmp(name, "vkDestroyFence"))
5482 {
5483 return (void*)entry_vkDestroyFence;
5484 }
5485 if (!strcmp(name, "vkResetFences"))
5486 {
5487 return (void*)entry_vkResetFences;
5488 }
5489 if (!strcmp(name, "vkGetFenceStatus"))
5490 {
5491 return (void*)entry_vkGetFenceStatus;
5492 }
5493 if (!strcmp(name, "vkWaitForFences"))
5494 {
5495 return (void*)entry_vkWaitForFences;
5496 }
5497 if (!strcmp(name, "vkCreateSemaphore"))
5498 {
5499 return (void*)entry_vkCreateSemaphore;
5500 }
5501 if (!strcmp(name, "vkDestroySemaphore"))
5502 {
5503 return (void*)entry_vkDestroySemaphore;
5504 }
5505 if (!strcmp(name, "vkCreateEvent"))
5506 {
5507 return (void*)entry_vkCreateEvent;
5508 }
5509 if (!strcmp(name, "vkDestroyEvent"))
5510 {
5511 return (void*)entry_vkDestroyEvent;
5512 }
5513 if (!strcmp(name, "vkGetEventStatus"))
5514 {
5515 return (void*)entry_vkGetEventStatus;
5516 }
5517 if (!strcmp(name, "vkSetEvent"))
5518 {
5519 return (void*)entry_vkSetEvent;
5520 }
5521 if (!strcmp(name, "vkResetEvent"))
5522 {
5523 return (void*)entry_vkResetEvent;
5524 }
5525 if (!strcmp(name, "vkCreateQueryPool"))
5526 {
5527 return (void*)entry_vkCreateQueryPool;
5528 }
5529 if (!strcmp(name, "vkDestroyQueryPool"))
5530 {
5531 return (void*)entry_vkDestroyQueryPool;
5532 }
5533 if (!strcmp(name, "vkGetQueryPoolResults"))
5534 {
5535 return (void*)entry_vkGetQueryPoolResults;
5536 }
5537 if (!strcmp(name, "vkCreateBuffer"))
5538 {
5539 return (void*)entry_vkCreateBuffer;
5540 }
5541 if (!strcmp(name, "vkDestroyBuffer"))
5542 {
5543 return (void*)entry_vkDestroyBuffer;
5544 }
5545 if (!strcmp(name, "vkCreateBufferView"))
5546 {
5547 return (void*)entry_vkCreateBufferView;
5548 }
5549 if (!strcmp(name, "vkDestroyBufferView"))
5550 {
5551 return (void*)entry_vkDestroyBufferView;
5552 }
5553 if (!strcmp(name, "vkCreateImage"))
5554 {
5555 return (void*)entry_vkCreateImage;
5556 }
5557 if (!strcmp(name, "vkDestroyImage"))
5558 {
5559 return (void*)entry_vkDestroyImage;
5560 }
5561 if (!strcmp(name, "vkGetImageSubresourceLayout"))
5562 {
5563 return (void*)entry_vkGetImageSubresourceLayout;
5564 }
5565 if (!strcmp(name, "vkCreateImageView"))
5566 {
5567 return (void*)entry_vkCreateImageView;
5568 }
5569 if (!strcmp(name, "vkDestroyImageView"))
5570 {
5571 return (void*)entry_vkDestroyImageView;
5572 }
5573 if (!strcmp(name, "vkCreateShaderModule"))
5574 {
5575 return (void*)entry_vkCreateShaderModule;
5576 }
5577 if (!strcmp(name, "vkDestroyShaderModule"))
5578 {
5579 return (void*)entry_vkDestroyShaderModule;
5580 }
5581 if (!strcmp(name, "vkCreatePipelineCache"))
5582 {
5583 return (void*)entry_vkCreatePipelineCache;
5584 }
5585 if (!strcmp(name, "vkDestroyPipelineCache"))
5586 {
5587 return (void*)entry_vkDestroyPipelineCache;
5588 }
5589 if (!strcmp(name, "vkGetPipelineCacheData"))
5590 {
5591 return (void*)entry_vkGetPipelineCacheData;
5592 }
5593 if (!strcmp(name, "vkMergePipelineCaches"))
5594 {
5595 return (void*)entry_vkMergePipelineCaches;
5596 }
5597 if (!strcmp(name, "vkCreateGraphicsPipelines"))
5598 {
5599 return (void*)entry_vkCreateGraphicsPipelines;
5600 }
5601 if (!strcmp(name, "vkCreateComputePipelines"))
5602 {
5603 return (void*)entry_vkCreateComputePipelines;
5604 }
5605 if (!strcmp(name, "vkDestroyPipeline"))
5606 {
5607 return (void*)entry_vkDestroyPipeline;
5608 }
5609 if (!strcmp(name, "vkCreatePipelineLayout"))
5610 {
5611 return (void*)entry_vkCreatePipelineLayout;
5612 }
5613 if (!strcmp(name, "vkDestroyPipelineLayout"))
5614 {
5615 return (void*)entry_vkDestroyPipelineLayout;
5616 }
5617 if (!strcmp(name, "vkCreateSampler"))
5618 {
5619 return (void*)entry_vkCreateSampler;
5620 }
5621 if (!strcmp(name, "vkDestroySampler"))
5622 {
5623 return (void*)entry_vkDestroySampler;
5624 }
5625 if (!strcmp(name, "vkCreateDescriptorSetLayout"))
5626 {
5627 return (void*)entry_vkCreateDescriptorSetLayout;
5628 }
5629 if (!strcmp(name, "vkDestroyDescriptorSetLayout"))
5630 {
5631 return (void*)entry_vkDestroyDescriptorSetLayout;
5632 }
5633 if (!strcmp(name, "vkCreateDescriptorPool"))
5634 {
5635 return (void*)entry_vkCreateDescriptorPool;
5636 }
5637 if (!strcmp(name, "vkDestroyDescriptorPool"))
5638 {
5639 return (void*)entry_vkDestroyDescriptorPool;
5640 }
5641 if (!strcmp(name, "vkResetDescriptorPool"))
5642 {
5643 return (void*)entry_vkResetDescriptorPool;
5644 }
5645 if (!strcmp(name, "vkAllocateDescriptorSets"))
5646 {
5647 return (void*)entry_vkAllocateDescriptorSets;
5648 }
5649 if (!strcmp(name, "vkFreeDescriptorSets"))
5650 {
5651 return (void*)entry_vkFreeDescriptorSets;
5652 }
5653 if (!strcmp(name, "vkUpdateDescriptorSets"))
5654 {
5655 return (void*)entry_vkUpdateDescriptorSets;
5656 }
5657 if (!strcmp(name, "vkCreateFramebuffer"))
5658 {
5659 return (void*)entry_vkCreateFramebuffer;
5660 }
5661 if (!strcmp(name, "vkDestroyFramebuffer"))
5662 {
5663 return (void*)entry_vkDestroyFramebuffer;
5664 }
5665 if (!strcmp(name, "vkCreateRenderPass"))
5666 {
5667 return (void*)entry_vkCreateRenderPass;
5668 }
5669 if (!strcmp(name, "vkDestroyRenderPass"))
5670 {
5671 return (void*)entry_vkDestroyRenderPass;
5672 }
5673 if (!strcmp(name, "vkGetRenderAreaGranularity"))
5674 {
5675 return (void*)entry_vkGetRenderAreaGranularity;
5676 }
5677 if (!strcmp(name, "vkCreateCommandPool"))
5678 {
5679 return (void*)entry_vkCreateCommandPool;
5680 }
5681 if (!strcmp(name, "vkDestroyCommandPool"))
5682 {
5683 return (void*)entry_vkDestroyCommandPool;
5684 }
5685 if (!strcmp(name, "vkResetCommandPool"))
5686 {
5687 return (void*)entry_vkResetCommandPool;
5688 }
5689 if (!strcmp(name, "vkAllocateCommandBuffers"))
5690 {
5691 return (void*)entry_vkAllocateCommandBuffers;
5692 }
5693 if (!strcmp(name, "vkFreeCommandBuffers"))
5694 {
5695 return (void*)entry_vkFreeCommandBuffers;
5696 }
5697 if (!strcmp(name, "vkBeginCommandBuffer"))
5698 {
5699 return (void*)entry_vkBeginCommandBuffer;
5700 }
5701 if (!strcmp(name, "vkEndCommandBuffer"))
5702 {
5703 return (void*)entry_vkEndCommandBuffer;
5704 }
5705 if (!strcmp(name, "vkResetCommandBuffer"))
5706 {
5707 return (void*)entry_vkResetCommandBuffer;
5708 }
5709 if (!strcmp(name, "vkCmdBindPipeline"))
5710 {
5711 return (void*)entry_vkCmdBindPipeline;
5712 }
5713 if (!strcmp(name, "vkCmdSetViewport"))
5714 {
5715 return (void*)entry_vkCmdSetViewport;
5716 }
5717 if (!strcmp(name, "vkCmdSetScissor"))
5718 {
5719 return (void*)entry_vkCmdSetScissor;
5720 }
5721 if (!strcmp(name, "vkCmdSetLineWidth"))
5722 {
5723 return (void*)entry_vkCmdSetLineWidth;
5724 }
5725 if (!strcmp(name, "vkCmdSetDepthBias"))
5726 {
5727 return (void*)entry_vkCmdSetDepthBias;
5728 }
5729 if (!strcmp(name, "vkCmdSetBlendConstants"))
5730 {
5731 return (void*)entry_vkCmdSetBlendConstants;
5732 }
5733 if (!strcmp(name, "vkCmdSetDepthBounds"))
5734 {
5735 return (void*)entry_vkCmdSetDepthBounds;
5736 }
5737 if (!strcmp(name, "vkCmdSetStencilCompareMask"))
5738 {
5739 return (void*)entry_vkCmdSetStencilCompareMask;
5740 }
5741 if (!strcmp(name, "vkCmdSetStencilWriteMask"))
5742 {
5743 return (void*)entry_vkCmdSetStencilWriteMask;
5744 }
5745 if (!strcmp(name, "vkCmdSetStencilReference"))
5746 {
5747 return (void*)entry_vkCmdSetStencilReference;
5748 }
5749 if (!strcmp(name, "vkCmdBindDescriptorSets"))
5750 {
5751 return (void*)entry_vkCmdBindDescriptorSets;
5752 }
5753 if (!strcmp(name, "vkCmdBindIndexBuffer"))
5754 {
5755 return (void*)entry_vkCmdBindIndexBuffer;
5756 }
5757 if (!strcmp(name, "vkCmdBindVertexBuffers"))
5758 {
5759 return (void*)entry_vkCmdBindVertexBuffers;
5760 }
5761 if (!strcmp(name, "vkCmdDraw"))
5762 {
5763 return (void*)entry_vkCmdDraw;
5764 }
5765 if (!strcmp(name, "vkCmdDrawIndexed"))
5766 {
5767 return (void*)entry_vkCmdDrawIndexed;
5768 }
5769 if (!strcmp(name, "vkCmdDrawIndirect"))
5770 {
5771 return (void*)entry_vkCmdDrawIndirect;
5772 }
5773 if (!strcmp(name, "vkCmdDrawIndexedIndirect"))
5774 {
5775 return (void*)entry_vkCmdDrawIndexedIndirect;
5776 }
5777 if (!strcmp(name, "vkCmdDispatch"))
5778 {
5779 return (void*)entry_vkCmdDispatch;
5780 }
5781 if (!strcmp(name, "vkCmdDispatchIndirect"))
5782 {
5783 return (void*)entry_vkCmdDispatchIndirect;
5784 }
5785 if (!strcmp(name, "vkCmdCopyBuffer"))
5786 {
5787 return (void*)entry_vkCmdCopyBuffer;
5788 }
5789 if (!strcmp(name, "vkCmdCopyImage"))
5790 {
5791 return (void*)entry_vkCmdCopyImage;
5792 }
5793 if (!strcmp(name, "vkCmdBlitImage"))
5794 {
5795 return (void*)entry_vkCmdBlitImage;
5796 }
5797 if (!strcmp(name, "vkCmdCopyBufferToImage"))
5798 {
5799 return (void*)entry_vkCmdCopyBufferToImage;
5800 }
5801 if (!strcmp(name, "vkCmdCopyImageToBuffer"))
5802 {
5803 return (void*)entry_vkCmdCopyImageToBuffer;
5804 }
5805 if (!strcmp(name, "vkCmdUpdateBuffer"))
5806 {
5807 return (void*)entry_vkCmdUpdateBuffer;
5808 }
5809 if (!strcmp(name, "vkCmdFillBuffer"))
5810 {
5811 return (void*)entry_vkCmdFillBuffer;
5812 }
5813 if (!strcmp(name, "vkCmdClearColorImage"))
5814 {
5815 return (void*)entry_vkCmdClearColorImage;
5816 }
5817 if (!strcmp(name, "vkCmdClearDepthStencilImage"))
5818 {
5819 return (void*)entry_vkCmdClearDepthStencilImage;
5820 }
5821 if (!strcmp(name, "vkCmdClearAttachments"))
5822 {
5823 return (void*)entry_vkCmdClearAttachments;
5824 }
5825 if (!strcmp(name, "vkCmdResolveImage"))
5826 {
5827 return (void*)entry_vkCmdResolveImage;
5828 }
5829 if (!strcmp(name, "vkCmdSetEvent"))
5830 {
5831 return (void*)entry_vkCmdSetEvent;
5832 }
5833 if (!strcmp(name, "vkCmdResetEvent"))
5834 {
5835 return (void*)entry_vkCmdResetEvent;
5836 }
5837 if (!strcmp(name, "vkCmdWaitEvents"))
5838 {
5839 return (void*)entry_vkCmdWaitEvents;
5840 }
5841 if (!strcmp(name, "vkCmdPipelineBarrier"))
5842 {
5843 return (void*)entry_vkCmdPipelineBarrier;
5844 }
5845 if (!strcmp(name, "vkCmdBeginQuery"))
5846 {
5847 return (void*)entry_vkCmdBeginQuery;
5848 }
5849 if (!strcmp(name, "vkCmdEndQuery"))
5850 {
5851 return (void*)entry_vkCmdEndQuery;
5852 }
5853 if (!strcmp(name, "vkCmdResetQueryPool"))
5854 {
5855 return (void*)entry_vkCmdResetQueryPool;
5856 }
5857 if (!strcmp(name, "vkCmdWriteTimestamp"))
5858 {
5859 return (void*)entry_vkCmdWriteTimestamp;
5860 }
5861 if (!strcmp(name, "vkCmdCopyQueryPoolResults"))
5862 {
5863 return (void*)entry_vkCmdCopyQueryPoolResults;
5864 }
5865 if (!strcmp(name, "vkCmdPushConstants"))
5866 {
5867 return (void*)entry_vkCmdPushConstants;
5868 }
5869 if (!strcmp(name, "vkCmdBeginRenderPass"))
5870 {
5871 return (void*)entry_vkCmdBeginRenderPass;
5872 }
5873 if (!strcmp(name, "vkCmdNextSubpass"))
5874 {
5875 return (void*)entry_vkCmdNextSubpass;
5876 }
5877 if (!strcmp(name, "vkCmdEndRenderPass"))
5878 {
5879 return (void*)entry_vkCmdEndRenderPass;
5880 }
5881 if (!strcmp(name, "vkCmdExecuteCommands"))
5882 {
5883 return (void*)entry_vkCmdExecuteCommands;
5884 }
5885#endif
5886#ifdef VK_VERSION_1_1
5887 if (!strcmp(name, "vkEnumerateInstanceVersion"))
5888 {
5889 return has1_1OrHigher ? (void*)entry_vkEnumerateInstanceVersion : nullptr;
5890 }
5891 if (!strcmp(name, "vkBindBufferMemory2"))
5892 {
5893 return has1_1OrHigher ? (void*)entry_vkBindBufferMemory2 : nullptr;
5894 }
5895 if (!strcmp(name, "vkBindImageMemory2"))
5896 {
5897 return has1_1OrHigher ? (void*)entry_vkBindImageMemory2 : nullptr;
5898 }
5899 if (!strcmp(name, "vkGetDeviceGroupPeerMemoryFeatures"))
5900 {
5901 return has1_1OrHigher ? (void*)entry_vkGetDeviceGroupPeerMemoryFeatures : nullptr;
5902 }
5903 if (!strcmp(name, "vkCmdSetDeviceMask"))
5904 {
5905 return has1_1OrHigher ? (void*)entry_vkCmdSetDeviceMask : nullptr;
5906 }
5907 if (!strcmp(name, "vkCmdDispatchBase"))
5908 {
5909 return has1_1OrHigher ? (void*)entry_vkCmdDispatchBase : nullptr;
5910 }
5911 if (!strcmp(name, "vkEnumeratePhysicalDeviceGroups"))
5912 {
5913 return nullptr;
5914 }
5915 if (!strcmp(name, "vkGetImageMemoryRequirements2"))
5916 {
5917 return has1_1OrHigher ? (void*)entry_vkGetImageMemoryRequirements2 : nullptr;
5918 }
5919 if (!strcmp(name, "vkGetBufferMemoryRequirements2"))
5920 {
5921 return has1_1OrHigher ? (void*)entry_vkGetBufferMemoryRequirements2 : nullptr;
5922 }
5923 if (!strcmp(name, "vkGetImageSparseMemoryRequirements2"))
5924 {
5925 return has1_1OrHigher ? (void*)entry_vkGetImageSparseMemoryRequirements2 : nullptr;
5926 }
5927 if (!strcmp(name, "vkGetPhysicalDeviceFeatures2"))
5928 {
5929 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceFeatures2 : nullptr;
5930 }
5931 if (!strcmp(name, "vkGetPhysicalDeviceProperties2"))
5932 {
5933 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceProperties2 : nullptr;
5934 }
5935 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties2"))
5936 {
5937 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceFormatProperties2 : nullptr;
5938 }
5939 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties2"))
5940 {
5941 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceImageFormatProperties2 : nullptr;
5942 }
5943 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties2"))
5944 {
5945 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties2 : nullptr;
5946 }
5947 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties2"))
5948 {
5949 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceMemoryProperties2 : nullptr;
5950 }
5951 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties2"))
5952 {
5953 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties2 : nullptr;
5954 }
5955 if (!strcmp(name, "vkTrimCommandPool"))
5956 {
5957 return has1_1OrHigher ? (void*)entry_vkTrimCommandPool : nullptr;
5958 }
5959 if (!strcmp(name, "vkGetDeviceQueue2"))
5960 {
5961 return has1_1OrHigher ? (void*)entry_vkGetDeviceQueue2 : nullptr;
5962 }
5963 if (!strcmp(name, "vkCreateSamplerYcbcrConversion"))
5964 {
5965 return has1_1OrHigher ? (void*)entry_vkCreateSamplerYcbcrConversion : nullptr;
5966 }
5967 if (!strcmp(name, "vkDestroySamplerYcbcrConversion"))
5968 {
5969 return has1_1OrHigher ? (void*)entry_vkDestroySamplerYcbcrConversion : nullptr;
5970 }
5971 if (!strcmp(name, "vkCreateDescriptorUpdateTemplate"))
5972 {
5973 return has1_1OrHigher ? (void*)entry_vkCreateDescriptorUpdateTemplate : nullptr;
5974 }
5975 if (!strcmp(name, "vkDestroyDescriptorUpdateTemplate"))
5976 {
5977 return has1_1OrHigher ? (void*)entry_vkDestroyDescriptorUpdateTemplate : nullptr;
5978 }
5979 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplate"))
5980 {
5981 return has1_1OrHigher ? (void*)entry_vkUpdateDescriptorSetWithTemplate : nullptr;
5982 }
5983 if (!strcmp(name, "vkGetPhysicalDeviceExternalBufferProperties"))
5984 {
5985 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceExternalBufferProperties : nullptr;
5986 }
5987 if (!strcmp(name, "vkGetPhysicalDeviceExternalFenceProperties"))
5988 {
5989 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceExternalFenceProperties : nullptr;
5990 }
5991 if (!strcmp(name, "vkGetPhysicalDeviceExternalSemaphoreProperties"))
5992 {
5993 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceExternalSemaphoreProperties : nullptr;
5994 }
5995 if (!strcmp(name, "vkGetDescriptorSetLayoutSupport"))
5996 {
5997 return has1_1OrHigher ? (void*)entry_vkGetDescriptorSetLayoutSupport : nullptr;
5998 }
5999#endif
6000#ifdef VK_KHR_surface
6001 if (!strcmp(name, "vkDestroySurfaceKHR"))
6002 {
6003 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_surface");
6004 return hasExt ? (void*)entry_vkDestroySurfaceKHR : nullptr;
6005 }
6006 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceSupportKHR"))
6007 {
6008 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_surface");
6009 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceSupportKHR : nullptr;
6010 }
6011 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR"))
6012 {
6013 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_surface");
6014 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceCapabilitiesKHR : nullptr;
6015 }
6016 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceFormatsKHR"))
6017 {
6018 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_surface");
6019 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceFormatsKHR : nullptr;
6020 }
6021 if (!strcmp(name, "vkGetPhysicalDeviceSurfacePresentModesKHR"))
6022 {
6023 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_surface");
6024 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfacePresentModesKHR : nullptr;
6025 }
6026#endif
6027#ifdef VK_KHR_swapchain
6028 if (!strcmp(name, "vkCreateSwapchainKHR"))
6029 {
6030 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
6031 return hasExt ? (void*)entry_vkCreateSwapchainKHR : nullptr;
6032 }
6033 if (!strcmp(name, "vkDestroySwapchainKHR"))
6034 {
6035 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
6036 return hasExt ? (void*)entry_vkDestroySwapchainKHR : nullptr;
6037 }
6038 if (!strcmp(name, "vkGetSwapchainImagesKHR"))
6039 {
6040 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
6041 return hasExt ? (void*)entry_vkGetSwapchainImagesKHR : nullptr;
6042 }
6043 if (!strcmp(name, "vkAcquireNextImageKHR"))
6044 {
6045 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
6046 return hasExt ? (void*)entry_vkAcquireNextImageKHR : nullptr;
6047 }
6048 if (!strcmp(name, "vkQueuePresentKHR"))
6049 {
6050 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
6051 return hasExt ? (void*)entry_vkQueuePresentKHR : nullptr;
6052 }
6053 if (!strcmp(name, "vkGetDeviceGroupPresentCapabilitiesKHR"))
6054 {
6055 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
6056 return hasExt ? (void*)entry_vkGetDeviceGroupPresentCapabilitiesKHR : nullptr;
6057 }
6058 if (!strcmp(name, "vkGetDeviceGroupSurfacePresentModesKHR"))
6059 {
6060 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
6061 return hasExt ? (void*)entry_vkGetDeviceGroupSurfacePresentModesKHR : nullptr;
6062 }
6063 if (!strcmp(name, "vkGetPhysicalDevicePresentRectanglesKHR"))
6064 {
6065 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
6066 return hasExt ? (void*)entry_vkGetPhysicalDevicePresentRectanglesKHR : nullptr;
6067 }
6068 if (!strcmp(name, "vkAcquireNextImage2KHR"))
6069 {
6070 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
6071 return hasExt ? (void*)entry_vkAcquireNextImage2KHR : nullptr;
6072 }
6073#endif
6074#ifdef VK_KHR_display
6075 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPropertiesKHR"))
6076 {
6077 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
6078 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayPropertiesKHR : nullptr;
6079 }
6080 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR"))
6081 {
6082 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
6083 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayPlanePropertiesKHR : nullptr;
6084 }
6085 if (!strcmp(name, "vkGetDisplayPlaneSupportedDisplaysKHR"))
6086 {
6087 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
6088 return hasExt ? (void*)entry_vkGetDisplayPlaneSupportedDisplaysKHR : nullptr;
6089 }
6090 if (!strcmp(name, "vkGetDisplayModePropertiesKHR"))
6091 {
6092 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
6093 return hasExt ? (void*)entry_vkGetDisplayModePropertiesKHR : nullptr;
6094 }
6095 if (!strcmp(name, "vkCreateDisplayModeKHR"))
6096 {
6097 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
6098 return hasExt ? (void*)entry_vkCreateDisplayModeKHR : nullptr;
6099 }
6100 if (!strcmp(name, "vkGetDisplayPlaneCapabilitiesKHR"))
6101 {
6102 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
6103 return hasExt ? (void*)entry_vkGetDisplayPlaneCapabilitiesKHR : nullptr;
6104 }
6105 if (!strcmp(name, "vkCreateDisplayPlaneSurfaceKHR"))
6106 {
6107 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
6108 return hasExt ? (void*)entry_vkCreateDisplayPlaneSurfaceKHR : nullptr;
6109 }
6110#endif
6111#ifdef VK_KHR_display_swapchain
6112 if (!strcmp(name, "vkCreateSharedSwapchainsKHR"))
6113 {
6114 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display_swapchain");
6115 return hasExt ? (void*)entry_vkCreateSharedSwapchainsKHR : nullptr;
6116 }
6117#endif
6118#ifdef VK_KHR_xlib_surface
6119 if (!strcmp(name, "vkCreateXlibSurfaceKHR"))
6120 {
6121 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_xlib_surface");
6122 return hasExt ? (void*)entry_vkCreateXlibSurfaceKHR : nullptr;
6123 }
6124 if (!strcmp(name, "vkGetPhysicalDeviceXlibPresentationSupportKHR"))
6125 {
6126 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_xlib_surface");
6127 return hasExt ? (void*)entry_vkGetPhysicalDeviceXlibPresentationSupportKHR : nullptr;
6128 }
6129#endif
6130#ifdef VK_KHR_xcb_surface
6131 if (!strcmp(name, "vkCreateXcbSurfaceKHR"))
6132 {
6133 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_xcb_surface");
6134 return hasExt ? (void*)entry_vkCreateXcbSurfaceKHR : nullptr;
6135 }
6136 if (!strcmp(name, "vkGetPhysicalDeviceXcbPresentationSupportKHR"))
6137 {
6138 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_xcb_surface");
6139 return hasExt ? (void*)entry_vkGetPhysicalDeviceXcbPresentationSupportKHR : nullptr;
6140 }
6141#endif
6142#ifdef VK_KHR_wayland_surface
6143 if (!strcmp(name, "vkCreateWaylandSurfaceKHR"))
6144 {
6145 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_wayland_surface");
6146 return hasExt ? (void*)entry_vkCreateWaylandSurfaceKHR : nullptr;
6147 }
6148 if (!strcmp(name, "vkGetPhysicalDeviceWaylandPresentationSupportKHR"))
6149 {
6150 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_wayland_surface");
6151 return hasExt ? (void*)entry_vkGetPhysicalDeviceWaylandPresentationSupportKHR : nullptr;
6152 }
6153#endif
6154#ifdef VK_KHR_mir_surface
6155 if (!strcmp(name, "vkCreateMirSurfaceKHR"))
6156 {
6157 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_mir_surface");
6158 return hasExt ? (void*)entry_vkCreateMirSurfaceKHR : nullptr;
6159 }
6160 if (!strcmp(name, "vkGetPhysicalDeviceMirPresentationSupportKHR"))
6161 {
6162 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_mir_surface");
6163 return hasExt ? (void*)entry_vkGetPhysicalDeviceMirPresentationSupportKHR : nullptr;
6164 }
6165#endif
6166#ifdef VK_KHR_android_surface
6167 if (!strcmp(name, "vkCreateAndroidSurfaceKHR"))
6168 {
6169 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_android_surface");
6170 return hasExt ? (void*)entry_vkCreateAndroidSurfaceKHR : nullptr;
6171 }
6172#endif
6173#ifdef VK_KHR_win32_surface
6174 if (!strcmp(name, "vkCreateWin32SurfaceKHR"))
6175 {
6176 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_win32_surface");
6177 return hasExt ? (void*)entry_vkCreateWin32SurfaceKHR : nullptr;
6178 }
6179 if (!strcmp(name, "vkGetPhysicalDeviceWin32PresentationSupportKHR"))
6180 {
6181 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_win32_surface");
6182 return hasExt ? (void*)entry_vkGetPhysicalDeviceWin32PresentationSupportKHR : nullptr;
6183 }
6184#endif
6185#ifdef VK_KHR_get_physical_device_properties2
6186 if (!strcmp(name, "vkGetPhysicalDeviceFeatures2KHR"))
6187 {
6188 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
6189 return hasExt ? (void*)entry_vkGetPhysicalDeviceFeatures2KHR : nullptr;
6190 }
6191 if (!strcmp(name, "vkGetPhysicalDeviceProperties2KHR"))
6192 {
6193 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
6194 return hasExt ? (void*)entry_vkGetPhysicalDeviceProperties2KHR : nullptr;
6195 }
6196 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties2KHR"))
6197 {
6198 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
6199 return hasExt ? (void*)entry_vkGetPhysicalDeviceFormatProperties2KHR : nullptr;
6200 }
6201 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties2KHR"))
6202 {
6203 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
6204 return hasExt ? (void*)entry_vkGetPhysicalDeviceImageFormatProperties2KHR : nullptr;
6205 }
6206 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties2KHR"))
6207 {
6208 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
6209 return hasExt ? (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties2KHR : nullptr;
6210 }
6211 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties2KHR"))
6212 {
6213 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
6214 return hasExt ? (void*)entry_vkGetPhysicalDeviceMemoryProperties2KHR : nullptr;
6215 }
6216 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR"))
6217 {
6218 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
6219 return hasExt ? (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties2KHR : nullptr;
6220 }
6221#endif
6222#ifdef VK_KHR_device_group
6223 if (!strcmp(name, "vkGetDeviceGroupPeerMemoryFeaturesKHR"))
6224 {
6225 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_device_group");
6226 return hasExt ? (void*)entry_vkGetDeviceGroupPeerMemoryFeaturesKHR : nullptr;
6227 }
6228 if (!strcmp(name, "vkCmdSetDeviceMaskKHR"))
6229 {
6230 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_device_group");
6231 return hasExt ? (void*)entry_vkCmdSetDeviceMaskKHR : nullptr;
6232 }
6233 if (!strcmp(name, "vkCmdDispatchBaseKHR"))
6234 {
6235 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_device_group");
6236 return hasExt ? (void*)entry_vkCmdDispatchBaseKHR : nullptr;
6237 }
6238#endif
6239#ifdef VK_KHR_maintenance1
6240 if (!strcmp(name, "vkTrimCommandPoolKHR"))
6241 {
6242 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_maintenance1");
6243 return hasExt ? (void*)entry_vkTrimCommandPoolKHR : nullptr;
6244 }
6245#endif
6246#ifdef VK_KHR_device_group_creation
6247 if (!strcmp(name, "vkEnumeratePhysicalDeviceGroupsKHR"))
6248 {
6249 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_device_group_creation");
6250 return hasExt ? (void*)entry_vkEnumeratePhysicalDeviceGroupsKHR : nullptr;
6251 }
6252#endif
6253#ifdef VK_KHR_external_memory_capabilities
6254 if (!strcmp(name, "vkGetPhysicalDeviceExternalBufferPropertiesKHR"))
6255 {
6256 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_memory_capabilities");
6257 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalBufferPropertiesKHR : nullptr;
6258 }
6259#endif
6260#ifdef VK_KHR_external_memory_win32
6261 if (!strcmp(name, "vkGetMemoryWin32HandleKHR"))
6262 {
6263 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_memory_win32");
6264 return hasExt ? (void*)entry_vkGetMemoryWin32HandleKHR : nullptr;
6265 }
6266 if (!strcmp(name, "vkGetMemoryWin32HandlePropertiesKHR"))
6267 {
6268 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_memory_win32");
6269 return hasExt ? (void*)entry_vkGetMemoryWin32HandlePropertiesKHR : nullptr;
6270 }
6271#endif
6272#ifdef VK_KHR_external_memory_fd
6273 if (!strcmp(name, "vkGetMemoryFdKHR"))
6274 {
6275 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_memory_fd");
6276 return hasExt ? (void*)entry_vkGetMemoryFdKHR : nullptr;
6277 }
6278 if (!strcmp(name, "vkGetMemoryFdPropertiesKHR"))
6279 {
6280 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_memory_fd");
6281 return hasExt ? (void*)entry_vkGetMemoryFdPropertiesKHR : nullptr;
6282 }
6283#endif
6284#ifdef VK_KHR_external_semaphore_capabilities
6285 if (!strcmp(name, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR"))
6286 {
6287 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_semaphore_capabilities");
6288 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR : nullptr;
6289 }
6290#endif
6291#ifdef VK_KHR_external_semaphore_win32
6292 if (!strcmp(name, "vkImportSemaphoreWin32HandleKHR"))
6293 {
6294 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_semaphore_win32");
6295 return hasExt ? (void*)entry_vkImportSemaphoreWin32HandleKHR : nullptr;
6296 }
6297 if (!strcmp(name, "vkGetSemaphoreWin32HandleKHR"))
6298 {
6299 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_semaphore_win32");
6300 return hasExt ? (void*)entry_vkGetSemaphoreWin32HandleKHR : nullptr;
6301 }
6302#endif
6303#ifdef VK_KHR_external_semaphore_fd
6304 if (!strcmp(name, "vkImportSemaphoreFdKHR"))
6305 {
6306 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_semaphore_fd");
6307 return hasExt ? (void*)entry_vkImportSemaphoreFdKHR : nullptr;
6308 }
6309 if (!strcmp(name, "vkGetSemaphoreFdKHR"))
6310 {
6311 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_semaphore_fd");
6312 return hasExt ? (void*)entry_vkGetSemaphoreFdKHR : nullptr;
6313 }
6314#endif
6315#ifdef VK_KHR_push_descriptor
6316 if (!strcmp(name, "vkCmdPushDescriptorSetKHR"))
6317 {
6318 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_push_descriptor");
6319 return hasExt ? (void*)entry_vkCmdPushDescriptorSetKHR : nullptr;
6320 }
6321 if (!strcmp(name, "vkCmdPushDescriptorSetWithTemplateKHR"))
6322 {
6323 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_push_descriptor");
6324 return hasExt ? (void*)entry_vkCmdPushDescriptorSetWithTemplateKHR : nullptr;
6325 }
6326#endif
6327#ifdef VK_KHR_descriptor_update_template
6328 if (!strcmp(name, "vkCreateDescriptorUpdateTemplateKHR"))
6329 {
6330 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_descriptor_update_template");
6331 return hasExt ? (void*)entry_vkCreateDescriptorUpdateTemplateKHR : nullptr;
6332 }
6333 if (!strcmp(name, "vkDestroyDescriptorUpdateTemplateKHR"))
6334 {
6335 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_descriptor_update_template");
6336 return hasExt ? (void*)entry_vkDestroyDescriptorUpdateTemplateKHR : nullptr;
6337 }
6338 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplateKHR"))
6339 {
6340 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_descriptor_update_template");
6341 return hasExt ? (void*)entry_vkUpdateDescriptorSetWithTemplateKHR : nullptr;
6342 }
6343#endif
6344#ifdef VK_KHR_create_renderpass2
6345 if (!strcmp(name, "vkCreateRenderPass2KHR"))
6346 {
6347 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_create_renderpass2");
6348 return hasExt ? (void*)entry_vkCreateRenderPass2KHR : nullptr;
6349 }
6350 if (!strcmp(name, "vkCmdBeginRenderPass2KHR"))
6351 {
6352 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_create_renderpass2");
6353 return hasExt ? (void*)entry_vkCmdBeginRenderPass2KHR : nullptr;
6354 }
6355 if (!strcmp(name, "vkCmdNextSubpass2KHR"))
6356 {
6357 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_create_renderpass2");
6358 return hasExt ? (void*)entry_vkCmdNextSubpass2KHR : nullptr;
6359 }
6360 if (!strcmp(name, "vkCmdEndRenderPass2KHR"))
6361 {
6362 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_create_renderpass2");
6363 return hasExt ? (void*)entry_vkCmdEndRenderPass2KHR : nullptr;
6364 }
6365#endif
6366#ifdef VK_KHR_shared_presentable_image
6367 if (!strcmp(name, "vkGetSwapchainStatusKHR"))
6368 {
6369 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_shared_presentable_image");
6370 return hasExt ? (void*)entry_vkGetSwapchainStatusKHR : nullptr;
6371 }
6372#endif
6373#ifdef VK_KHR_external_fence_capabilities
6374 if (!strcmp(name, "vkGetPhysicalDeviceExternalFencePropertiesKHR"))
6375 {
6376 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_fence_capabilities");
6377 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalFencePropertiesKHR : nullptr;
6378 }
6379#endif
6380#ifdef VK_KHR_external_fence_win32
6381 if (!strcmp(name, "vkImportFenceWin32HandleKHR"))
6382 {
6383 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_fence_win32");
6384 return hasExt ? (void*)entry_vkImportFenceWin32HandleKHR : nullptr;
6385 }
6386 if (!strcmp(name, "vkGetFenceWin32HandleKHR"))
6387 {
6388 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_fence_win32");
6389 return hasExt ? (void*)entry_vkGetFenceWin32HandleKHR : nullptr;
6390 }
6391#endif
6392#ifdef VK_KHR_external_fence_fd
6393 if (!strcmp(name, "vkImportFenceFdKHR"))
6394 {
6395 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_fence_fd");
6396 return hasExt ? (void*)entry_vkImportFenceFdKHR : nullptr;
6397 }
6398 if (!strcmp(name, "vkGetFenceFdKHR"))
6399 {
6400 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_fence_fd");
6401 return hasExt ? (void*)entry_vkGetFenceFdKHR : nullptr;
6402 }
6403#endif
6404#ifdef VK_KHR_get_surface_capabilities2
6405 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2KHR"))
6406 {
6407 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_surface_capabilities2");
6408 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceCapabilities2KHR : nullptr;
6409 }
6410 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceFormats2KHR"))
6411 {
6412 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_surface_capabilities2");
6413 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceFormats2KHR : nullptr;
6414 }
6415#endif
6416#ifdef VK_KHR_get_display_properties2
6417 if (!strcmp(name, "vkGetPhysicalDeviceDisplayProperties2KHR"))
6418 {
6419 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_display_properties2");
6420 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayProperties2KHR : nullptr;
6421 }
6422 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR"))
6423 {
6424 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_display_properties2");
6425 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayPlaneProperties2KHR : nullptr;
6426 }
6427 if (!strcmp(name, "vkGetDisplayModeProperties2KHR"))
6428 {
6429 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_display_properties2");
6430 return hasExt ? (void*)entry_vkGetDisplayModeProperties2KHR : nullptr;
6431 }
6432 if (!strcmp(name, "vkGetDisplayPlaneCapabilities2KHR"))
6433 {
6434 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_display_properties2");
6435 return hasExt ? (void*)entry_vkGetDisplayPlaneCapabilities2KHR : nullptr;
6436 }
6437#endif
6438#ifdef VK_KHR_get_memory_requirements2
6439 if (!strcmp(name, "vkGetImageMemoryRequirements2KHR"))
6440 {
6441 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_memory_requirements2");
6442 return hasExt ? (void*)entry_vkGetImageMemoryRequirements2KHR : nullptr;
6443 }
6444 if (!strcmp(name, "vkGetBufferMemoryRequirements2KHR"))
6445 {
6446 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_memory_requirements2");
6447 return hasExt ? (void*)entry_vkGetBufferMemoryRequirements2KHR : nullptr;
6448 }
6449 if (!strcmp(name, "vkGetImageSparseMemoryRequirements2KHR"))
6450 {
6451 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_memory_requirements2");
6452 return hasExt ? (void*)entry_vkGetImageSparseMemoryRequirements2KHR : nullptr;
6453 }
6454#endif
6455#ifdef VK_KHR_sampler_ycbcr_conversion
6456 if (!strcmp(name, "vkCreateSamplerYcbcrConversionKHR"))
6457 {
6458 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_sampler_ycbcr_conversion");
6459 return hasExt ? (void*)entry_vkCreateSamplerYcbcrConversionKHR : nullptr;
6460 }
6461 if (!strcmp(name, "vkDestroySamplerYcbcrConversionKHR"))
6462 {
6463 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_sampler_ycbcr_conversion");
6464 return hasExt ? (void*)entry_vkDestroySamplerYcbcrConversionKHR : nullptr;
6465 }
6466#endif
6467#ifdef VK_KHR_bind_memory2
6468 if (!strcmp(name, "vkBindBufferMemory2KHR"))
6469 {
6470 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_bind_memory2");
6471 return hasExt ? (void*)entry_vkBindBufferMemory2KHR : nullptr;
6472 }
6473 if (!strcmp(name, "vkBindImageMemory2KHR"))
6474 {
6475 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_bind_memory2");
6476 return hasExt ? (void*)entry_vkBindImageMemory2KHR : nullptr;
6477 }
6478#endif
6479#ifdef VK_KHR_maintenance3
6480 if (!strcmp(name, "vkGetDescriptorSetLayoutSupportKHR"))
6481 {
6482 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_maintenance3");
6483 return hasExt ? (void*)entry_vkGetDescriptorSetLayoutSupportKHR : nullptr;
6484 }
6485#endif
6486#ifdef VK_KHR_draw_indirect_count
6487 if (!strcmp(name, "vkCmdDrawIndirectCountKHR"))
6488 {
6489 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_draw_indirect_count");
6490 return hasExt ? (void*)entry_vkCmdDrawIndirectCountKHR : nullptr;
6491 }
6492 if (!strcmp(name, "vkCmdDrawIndexedIndirectCountKHR"))
6493 {
6494 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_draw_indirect_count");
6495 return hasExt ? (void*)entry_vkCmdDrawIndexedIndirectCountKHR : nullptr;
6496 }
6497#endif
6498#ifdef VK_ANDROID_native_buffer
6499 if (!strcmp(name, "vkGetSwapchainGrallocUsageANDROID"))
6500 {
6501 bool hasExt = resources->hasInstanceExtension(instance, "VK_ANDROID_native_buffer");
6502 return hasExt ? (void*)entry_vkGetSwapchainGrallocUsageANDROID : nullptr;
6503 }
6504 if (!strcmp(name, "vkAcquireImageANDROID"))
6505 {
6506 bool hasExt = resources->hasInstanceExtension(instance, "VK_ANDROID_native_buffer");
6507 return hasExt ? (void*)entry_vkAcquireImageANDROID : nullptr;
6508 }
6509 if (!strcmp(name, "vkQueueSignalReleaseImageANDROID"))
6510 {
6511 bool hasExt = resources->hasInstanceExtension(instance, "VK_ANDROID_native_buffer");
6512 return hasExt ? (void*)entry_vkQueueSignalReleaseImageANDROID : nullptr;
6513 }
6514#endif
6515#ifdef VK_EXT_debug_report
6516 if (!strcmp(name, "vkCreateDebugReportCallbackEXT"))
6517 {
6518 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_report");
6519 return hasExt ? (void*)entry_vkCreateDebugReportCallbackEXT : nullptr;
6520 }
6521 if (!strcmp(name, "vkDestroyDebugReportCallbackEXT"))
6522 {
6523 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_report");
6524 return hasExt ? (void*)entry_vkDestroyDebugReportCallbackEXT : nullptr;
6525 }
6526 if (!strcmp(name, "vkDebugReportMessageEXT"))
6527 {
6528 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_report");
6529 return hasExt ? (void*)entry_vkDebugReportMessageEXT : nullptr;
6530 }
6531#endif
6532#ifdef VK_EXT_debug_marker
6533 if (!strcmp(name, "vkDebugMarkerSetObjectTagEXT"))
6534 {
6535 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_marker");
6536 return hasExt ? (void*)entry_vkDebugMarkerSetObjectTagEXT : nullptr;
6537 }
6538 if (!strcmp(name, "vkDebugMarkerSetObjectNameEXT"))
6539 {
6540 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_marker");
6541 return hasExt ? (void*)entry_vkDebugMarkerSetObjectNameEXT : nullptr;
6542 }
6543 if (!strcmp(name, "vkCmdDebugMarkerBeginEXT"))
6544 {
6545 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_marker");
6546 return hasExt ? (void*)entry_vkCmdDebugMarkerBeginEXT : nullptr;
6547 }
6548 if (!strcmp(name, "vkCmdDebugMarkerEndEXT"))
6549 {
6550 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_marker");
6551 return hasExt ? (void*)entry_vkCmdDebugMarkerEndEXT : nullptr;
6552 }
6553 if (!strcmp(name, "vkCmdDebugMarkerInsertEXT"))
6554 {
6555 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_marker");
6556 return hasExt ? (void*)entry_vkCmdDebugMarkerInsertEXT : nullptr;
6557 }
6558#endif
6559#ifdef VK_AMD_draw_indirect_count
6560 if (!strcmp(name, "vkCmdDrawIndirectCountAMD"))
6561 {
6562 bool hasExt = resources->hasInstanceExtension(instance, "VK_AMD_draw_indirect_count");
6563 return hasExt ? (void*)entry_vkCmdDrawIndirectCountAMD : nullptr;
6564 }
6565 if (!strcmp(name, "vkCmdDrawIndexedIndirectCountAMD"))
6566 {
6567 bool hasExt = resources->hasInstanceExtension(instance, "VK_AMD_draw_indirect_count");
6568 return hasExt ? (void*)entry_vkCmdDrawIndexedIndirectCountAMD : nullptr;
6569 }
6570#endif
6571#ifdef VK_AMD_shader_info
6572 if (!strcmp(name, "vkGetShaderInfoAMD"))
6573 {
6574 bool hasExt = resources->hasInstanceExtension(instance, "VK_AMD_shader_info");
6575 return hasExt ? (void*)entry_vkGetShaderInfoAMD : nullptr;
6576 }
6577#endif
6578#ifdef VK_NV_external_memory_capabilities
6579 if (!strcmp(name, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV"))
6580 {
6581 bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_external_memory_capabilities");
6582 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalImageFormatPropertiesNV : nullptr;
6583 }
6584#endif
6585#ifdef VK_NV_external_memory_win32
6586 if (!strcmp(name, "vkGetMemoryWin32HandleNV"))
6587 {
6588 bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_external_memory_win32");
6589 return hasExt ? (void*)entry_vkGetMemoryWin32HandleNV : nullptr;
6590 }
6591#endif
6592#ifdef VK_NN_vi_surface
6593 if (!strcmp(name, "vkCreateViSurfaceNN"))
6594 {
6595 bool hasExt = resources->hasInstanceExtension(instance, "VK_NN_vi_surface");
6596 return hasExt ? (void*)entry_vkCreateViSurfaceNN : nullptr;
6597 }
6598#endif
6599#ifdef VK_EXT_conditional_rendering
6600 if (!strcmp(name, "vkCmdBeginConditionalRenderingEXT"))
6601 {
6602 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_conditional_rendering");
6603 return hasExt ? (void*)entry_vkCmdBeginConditionalRenderingEXT : nullptr;
6604 }
6605 if (!strcmp(name, "vkCmdEndConditionalRenderingEXT"))
6606 {
6607 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_conditional_rendering");
6608 return hasExt ? (void*)entry_vkCmdEndConditionalRenderingEXT : nullptr;
6609 }
6610#endif
6611#ifdef VK_NVX_device_generated_commands
6612 if (!strcmp(name, "vkCmdProcessCommandsNVX"))
6613 {
6614 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6615 return hasExt ? (void*)entry_vkCmdProcessCommandsNVX : nullptr;
6616 }
6617 if (!strcmp(name, "vkCmdReserveSpaceForCommandsNVX"))
6618 {
6619 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6620 return hasExt ? (void*)entry_vkCmdReserveSpaceForCommandsNVX : nullptr;
6621 }
6622 if (!strcmp(name, "vkCreateIndirectCommandsLayoutNVX"))
6623 {
6624 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6625 return hasExt ? (void*)entry_vkCreateIndirectCommandsLayoutNVX : nullptr;
6626 }
6627 if (!strcmp(name, "vkDestroyIndirectCommandsLayoutNVX"))
6628 {
6629 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6630 return hasExt ? (void*)entry_vkDestroyIndirectCommandsLayoutNVX : nullptr;
6631 }
6632 if (!strcmp(name, "vkCreateObjectTableNVX"))
6633 {
6634 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6635 return hasExt ? (void*)entry_vkCreateObjectTableNVX : nullptr;
6636 }
6637 if (!strcmp(name, "vkDestroyObjectTableNVX"))
6638 {
6639 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6640 return hasExt ? (void*)entry_vkDestroyObjectTableNVX : nullptr;
6641 }
6642 if (!strcmp(name, "vkRegisterObjectsNVX"))
6643 {
6644 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6645 return hasExt ? (void*)entry_vkRegisterObjectsNVX : nullptr;
6646 }
6647 if (!strcmp(name, "vkUnregisterObjectsNVX"))
6648 {
6649 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6650 return hasExt ? (void*)entry_vkUnregisterObjectsNVX : nullptr;
6651 }
6652 if (!strcmp(name, "vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX"))
6653 {
6654 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6655 return hasExt ? (void*)entry_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX : nullptr;
6656 }
6657#endif
6658#ifdef VK_NV_clip_space_w_scaling
6659 if (!strcmp(name, "vkCmdSetViewportWScalingNV"))
6660 {
6661 bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_clip_space_w_scaling");
6662 return hasExt ? (void*)entry_vkCmdSetViewportWScalingNV : nullptr;
6663 }
6664#endif
6665#ifdef VK_EXT_direct_mode_display
6666 if (!strcmp(name, "vkReleaseDisplayEXT"))
6667 {
6668 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_direct_mode_display");
6669 return hasExt ? (void*)entry_vkReleaseDisplayEXT : nullptr;
6670 }
6671#endif
6672#ifdef VK_EXT_acquire_xlib_display
6673 if (!strcmp(name, "vkAcquireXlibDisplayEXT"))
6674 {
6675 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_acquire_xlib_display");
6676 return hasExt ? (void*)entry_vkAcquireXlibDisplayEXT : nullptr;
6677 }
6678 if (!strcmp(name, "vkGetRandROutputDisplayEXT"))
6679 {
6680 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_acquire_xlib_display");
6681 return hasExt ? (void*)entry_vkGetRandROutputDisplayEXT : nullptr;
6682 }
6683#endif
6684#ifdef VK_EXT_display_surface_counter
6685 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2EXT"))
6686 {
6687 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_display_surface_counter");
6688 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceCapabilities2EXT : nullptr;
6689 }
6690#endif
6691#ifdef VK_EXT_display_control
6692 if (!strcmp(name, "vkDisplayPowerControlEXT"))
6693 {
6694 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_display_control");
6695 return hasExt ? (void*)entry_vkDisplayPowerControlEXT : nullptr;
6696 }
6697 if (!strcmp(name, "vkRegisterDeviceEventEXT"))
6698 {
6699 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_display_control");
6700 return hasExt ? (void*)entry_vkRegisterDeviceEventEXT : nullptr;
6701 }
6702 if (!strcmp(name, "vkRegisterDisplayEventEXT"))
6703 {
6704 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_display_control");
6705 return hasExt ? (void*)entry_vkRegisterDisplayEventEXT : nullptr;
6706 }
6707 if (!strcmp(name, "vkGetSwapchainCounterEXT"))
6708 {
6709 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_display_control");
6710 return hasExt ? (void*)entry_vkGetSwapchainCounterEXT : nullptr;
6711 }
6712#endif
6713#ifdef VK_GOOGLE_display_timing
6714 if (!strcmp(name, "vkGetRefreshCycleDurationGOOGLE"))
6715 {
6716 bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_display_timing");
6717 return hasExt ? (void*)entry_vkGetRefreshCycleDurationGOOGLE : nullptr;
6718 }
6719 if (!strcmp(name, "vkGetPastPresentationTimingGOOGLE"))
6720 {
6721 bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_display_timing");
6722 return hasExt ? (void*)entry_vkGetPastPresentationTimingGOOGLE : nullptr;
6723 }
6724#endif
6725#ifdef VK_EXT_discard_rectangles
6726 if (!strcmp(name, "vkCmdSetDiscardRectangleEXT"))
6727 {
6728 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_discard_rectangles");
6729 return hasExt ? (void*)entry_vkCmdSetDiscardRectangleEXT : nullptr;
6730 }
6731#endif
6732#ifdef VK_EXT_hdr_metadata
6733 if (!strcmp(name, "vkSetHdrMetadataEXT"))
6734 {
6735 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_hdr_metadata");
6736 return hasExt ? (void*)entry_vkSetHdrMetadataEXT : nullptr;
6737 }
6738#endif
6739#ifdef VK_MVK_ios_surface
6740 if (!strcmp(name, "vkCreateIOSSurfaceMVK"))
6741 {
6742 bool hasExt = resources->hasInstanceExtension(instance, "VK_MVK_ios_surface");
6743 return hasExt ? (void*)entry_vkCreateIOSSurfaceMVK : nullptr;
6744 }
6745#endif
6746#ifdef VK_MVK_macos_surface
6747 if (!strcmp(name, "vkCreateMacOSSurfaceMVK"))
6748 {
6749 bool hasExt = resources->hasInstanceExtension(instance, "VK_MVK_macos_surface");
6750 return hasExt ? (void*)entry_vkCreateMacOSSurfaceMVK : nullptr;
6751 }
6752#endif
6753#ifdef VK_EXT_debug_utils
6754 if (!strcmp(name, "vkSetDebugUtilsObjectNameEXT"))
6755 {
6756 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6757 return hasExt ? (void*)entry_vkSetDebugUtilsObjectNameEXT : nullptr;
6758 }
6759 if (!strcmp(name, "vkSetDebugUtilsObjectTagEXT"))
6760 {
6761 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6762 return hasExt ? (void*)entry_vkSetDebugUtilsObjectTagEXT : nullptr;
6763 }
6764 if (!strcmp(name, "vkQueueBeginDebugUtilsLabelEXT"))
6765 {
6766 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6767 return hasExt ? (void*)entry_vkQueueBeginDebugUtilsLabelEXT : nullptr;
6768 }
6769 if (!strcmp(name, "vkQueueEndDebugUtilsLabelEXT"))
6770 {
6771 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6772 return hasExt ? (void*)entry_vkQueueEndDebugUtilsLabelEXT : nullptr;
6773 }
6774 if (!strcmp(name, "vkQueueInsertDebugUtilsLabelEXT"))
6775 {
6776 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6777 return hasExt ? (void*)entry_vkQueueInsertDebugUtilsLabelEXT : nullptr;
6778 }
6779 if (!strcmp(name, "vkCmdBeginDebugUtilsLabelEXT"))
6780 {
6781 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6782 return hasExt ? (void*)entry_vkCmdBeginDebugUtilsLabelEXT : nullptr;
6783 }
6784 if (!strcmp(name, "vkCmdEndDebugUtilsLabelEXT"))
6785 {
6786 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6787 return hasExt ? (void*)entry_vkCmdEndDebugUtilsLabelEXT : nullptr;
6788 }
6789 if (!strcmp(name, "vkCmdInsertDebugUtilsLabelEXT"))
6790 {
6791 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6792 return hasExt ? (void*)entry_vkCmdInsertDebugUtilsLabelEXT : nullptr;
6793 }
6794 if (!strcmp(name, "vkCreateDebugUtilsMessengerEXT"))
6795 {
6796 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6797 return hasExt ? (void*)entry_vkCreateDebugUtilsMessengerEXT : nullptr;
6798 }
6799 if (!strcmp(name, "vkDestroyDebugUtilsMessengerEXT"))
6800 {
6801 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6802 return hasExt ? (void*)entry_vkDestroyDebugUtilsMessengerEXT : nullptr;
6803 }
6804 if (!strcmp(name, "vkSubmitDebugUtilsMessageEXT"))
6805 {
6806 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6807 return hasExt ? (void*)entry_vkSubmitDebugUtilsMessageEXT : nullptr;
6808 }
6809#endif
6810#ifdef VK_ANDROID_external_memory_android_hardware_buffer
6811 if (!strcmp(name, "vkGetAndroidHardwareBufferPropertiesANDROID"))
6812 {
6813 bool hasExt = resources->hasInstanceExtension(instance, "VK_ANDROID_external_memory_android_hardware_buffer");
6814 return hasExt ? (void*)entry_vkGetAndroidHardwareBufferPropertiesANDROID : nullptr;
6815 }
6816 if (!strcmp(name, "vkGetMemoryAndroidHardwareBufferANDROID"))
6817 {
6818 bool hasExt = resources->hasInstanceExtension(instance, "VK_ANDROID_external_memory_android_hardware_buffer");
6819 return hasExt ? (void*)entry_vkGetMemoryAndroidHardwareBufferANDROID : nullptr;
6820 }
6821#endif
6822#ifdef VK_EXT_sample_locations
6823 if (!strcmp(name, "vkCmdSetSampleLocationsEXT"))
6824 {
6825 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_sample_locations");
6826 return hasExt ? (void*)entry_vkCmdSetSampleLocationsEXT : nullptr;
6827 }
6828 if (!strcmp(name, "vkGetPhysicalDeviceMultisamplePropertiesEXT"))
6829 {
6830 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_sample_locations");
6831 return hasExt ? (void*)entry_vkGetPhysicalDeviceMultisamplePropertiesEXT : nullptr;
6832 }
6833#endif
6834#ifdef VK_EXT_validation_cache
6835 if (!strcmp(name, "vkCreateValidationCacheEXT"))
6836 {
6837 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_validation_cache");
6838 return hasExt ? (void*)entry_vkCreateValidationCacheEXT : nullptr;
6839 }
6840 if (!strcmp(name, "vkDestroyValidationCacheEXT"))
6841 {
6842 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_validation_cache");
6843 return hasExt ? (void*)entry_vkDestroyValidationCacheEXT : nullptr;
6844 }
6845 if (!strcmp(name, "vkMergeValidationCachesEXT"))
6846 {
6847 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_validation_cache");
6848 return hasExt ? (void*)entry_vkMergeValidationCachesEXT : nullptr;
6849 }
6850 if (!strcmp(name, "vkGetValidationCacheDataEXT"))
6851 {
6852 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_validation_cache");
6853 return hasExt ? (void*)entry_vkGetValidationCacheDataEXT : nullptr;
6854 }
6855#endif
6856#ifdef VK_EXT_external_memory_host
6857 if (!strcmp(name, "vkGetMemoryHostPointerPropertiesEXT"))
6858 {
6859 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_external_memory_host");
6860 return hasExt ? (void*)entry_vkGetMemoryHostPointerPropertiesEXT : nullptr;
6861 }
6862#endif
6863#ifdef VK_AMD_buffer_marker
6864 if (!strcmp(name, "vkCmdWriteBufferMarkerAMD"))
6865 {
6866 bool hasExt = resources->hasInstanceExtension(instance, "VK_AMD_buffer_marker");
6867 return hasExt ? (void*)entry_vkCmdWriteBufferMarkerAMD : nullptr;
6868 }
6869#endif
6870#ifdef VK_NV_device_diagnostic_checkpoints
6871 if (!strcmp(name, "vkCmdSetCheckpointNV"))
6872 {
6873 bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_device_diagnostic_checkpoints");
6874 return hasExt ? (void*)entry_vkCmdSetCheckpointNV : nullptr;
6875 }
6876 if (!strcmp(name, "vkGetQueueCheckpointDataNV"))
6877 {
6878 bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_device_diagnostic_checkpoints");
6879 return hasExt ? (void*)entry_vkGetQueueCheckpointDataNV : nullptr;
6880 }
6881#endif
6882#ifdef VK_GOOGLE_address_space
6883 if (!strcmp(name, "vkMapMemoryIntoAddressSpaceGOOGLE"))
6884 {
6885 bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_address_space");
6886 return hasExt ? (void*)entry_vkMapMemoryIntoAddressSpaceGOOGLE : nullptr;
6887 }
6888#endif
Lingfeng Yangae7e1b32019-02-19 14:07:39 -08006889#ifdef VK_GOOGLE_color_buffer
6890 if (!strcmp(name, "vkRegisterImageColorBufferGOOGLE"))
6891 {
6892 bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_color_buffer");
6893 return hasExt ? (void*)entry_vkRegisterImageColorBufferGOOGLE : nullptr;
6894 }
6895 if (!strcmp(name, "vkRegisterBufferColorBufferGOOGLE"))
6896 {
6897 bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_color_buffer");
6898 return hasExt ? (void*)entry_vkRegisterBufferColorBufferGOOGLE : nullptr;
6899 }
6900#endif
Lingfeng Yang05d5ea32019-03-23 00:12:39 -07006901#ifdef VK_GOOGLE_sized_descriptor_update_template
6902 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplateSizedGOOGLE"))
6903 {
6904 bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_sized_descriptor_update_template");
6905 return hasExt ? (void*)entry_vkUpdateDescriptorSetWithTemplateSizedGOOGLE : nullptr;
6906 }
6907#endif
Lingfeng Yangc53e7472019-03-27 08:50:55 -07006908#ifdef VK_GOOGLE_async_command_buffers
6909 if (!strcmp(name, "vkBeginCommandBufferAsyncGOOGLE"))
6910 {
6911 bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_async_command_buffers");
6912 return hasExt ? (void*)entry_vkBeginCommandBufferAsyncGOOGLE : nullptr;
6913 }
6914 if (!strcmp(name, "vkEndCommandBufferAsyncGOOGLE"))
6915 {
6916 bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_async_command_buffers");
6917 return hasExt ? (void*)entry_vkEndCommandBufferAsyncGOOGLE : nullptr;
6918 }
6919 if (!strcmp(name, "vkResetCommandBufferAsyncGOOGLE"))
6920 {
6921 bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_async_command_buffers");
6922 return hasExt ? (void*)entry_vkResetCommandBufferAsyncGOOGLE : nullptr;
6923 }
Lingfeng Yang39a276e2019-06-17 13:27:22 -07006924 if (!strcmp(name, "vkCommandBufferHostSyncGOOGLE"))
6925 {
6926 bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_async_command_buffers");
6927 return hasExt ? (void*)entry_vkCommandBufferHostSyncGOOGLE : nullptr;
6928 }
Lingfeng Yangc53e7472019-03-27 08:50:55 -07006929#endif
Lingfeng Yang87f11962019-06-27 16:28:53 +00006930#ifdef VK_GOOGLE_create_resources_with_requirements
6931 if (!strcmp(name, "vkCreateImageWithRequirementsGOOGLE"))
6932 {
6933 bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_create_resources_with_requirements");
6934 return hasExt ? (void*)entry_vkCreateImageWithRequirementsGOOGLE : nullptr;
6935 }
6936 if (!strcmp(name, "vkCreateBufferWithRequirementsGOOGLE"))
6937 {
6938 bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_create_resources_with_requirements");
6939 return hasExt ? (void*)entry_vkCreateBufferWithRequirementsGOOGLE : nullptr;
6940 }
6941#endif
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08006942 return nullptr;
6943}
6944void* goldfish_vulkan_get_device_proc_address(VkDevice device, const char* name){
6945 auto resources = ResourceTracker::get();
6946 bool has1_1OrHigher = resources->getApiVersionFromDevice(device) >= VK_API_VERSION_1_1;
6947#ifdef VK_VERSION_1_0
6948 if (!strcmp(name, "vkCreateInstance"))
6949 {
6950 return (void*)entry_vkCreateInstance;
6951 }
6952 if (!strcmp(name, "vkDestroyInstance"))
6953 {
6954 return (void*)entry_vkDestroyInstance;
6955 }
6956 if (!strcmp(name, "vkEnumeratePhysicalDevices"))
6957 {
6958 return (void*)entry_vkEnumeratePhysicalDevices;
6959 }
6960 if (!strcmp(name, "vkGetPhysicalDeviceFeatures"))
6961 {
6962 return (void*)entry_vkGetPhysicalDeviceFeatures;
6963 }
6964 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties"))
6965 {
6966 return (void*)entry_vkGetPhysicalDeviceFormatProperties;
6967 }
6968 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties"))
6969 {
6970 return (void*)entry_vkGetPhysicalDeviceImageFormatProperties;
6971 }
6972 if (!strcmp(name, "vkGetPhysicalDeviceProperties"))
6973 {
6974 return (void*)entry_vkGetPhysicalDeviceProperties;
6975 }
6976 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties"))
6977 {
6978 return (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties;
6979 }
6980 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties"))
6981 {
6982 return (void*)entry_vkGetPhysicalDeviceMemoryProperties;
6983 }
6984 if (!strcmp(name, "vkGetInstanceProcAddr"))
6985 {
6986 return (void*)entry_vkGetInstanceProcAddr;
6987 }
6988 if (!strcmp(name, "vkGetDeviceProcAddr"))
6989 {
6990 return (void*)entry_vkGetDeviceProcAddr;
6991 }
6992 if (!strcmp(name, "vkCreateDevice"))
6993 {
6994 return (void*)entry_vkCreateDevice;
6995 }
6996 if (!strcmp(name, "vkDestroyDevice"))
6997 {
6998 return (void*)entry_vkDestroyDevice;
6999 }
7000 if (!strcmp(name, "vkEnumerateInstanceExtensionProperties"))
7001 {
7002 return (void*)entry_vkEnumerateInstanceExtensionProperties;
7003 }
7004 if (!strcmp(name, "vkEnumerateDeviceExtensionProperties"))
7005 {
7006 return (void*)entry_vkEnumerateDeviceExtensionProperties;
7007 }
7008 if (!strcmp(name, "vkEnumerateInstanceLayerProperties"))
7009 {
7010 return (void*)entry_vkEnumerateInstanceLayerProperties;
7011 }
7012 if (!strcmp(name, "vkEnumerateDeviceLayerProperties"))
7013 {
7014 return (void*)entry_vkEnumerateDeviceLayerProperties;
7015 }
7016 if (!strcmp(name, "vkGetDeviceQueue"))
7017 {
7018 return (void*)entry_vkGetDeviceQueue;
7019 }
7020 if (!strcmp(name, "vkQueueSubmit"))
7021 {
7022 return (void*)entry_vkQueueSubmit;
7023 }
7024 if (!strcmp(name, "vkQueueWaitIdle"))
7025 {
7026 return (void*)entry_vkQueueWaitIdle;
7027 }
7028 if (!strcmp(name, "vkDeviceWaitIdle"))
7029 {
7030 return (void*)entry_vkDeviceWaitIdle;
7031 }
7032 if (!strcmp(name, "vkAllocateMemory"))
7033 {
7034 return (void*)entry_vkAllocateMemory;
7035 }
7036 if (!strcmp(name, "vkFreeMemory"))
7037 {
7038 return (void*)entry_vkFreeMemory;
7039 }
7040 if (!strcmp(name, "vkMapMemory"))
7041 {
7042 return (void*)entry_vkMapMemory;
7043 }
7044 if (!strcmp(name, "vkUnmapMemory"))
7045 {
7046 return (void*)entry_vkUnmapMemory;
7047 }
7048 if (!strcmp(name, "vkFlushMappedMemoryRanges"))
7049 {
7050 return (void*)entry_vkFlushMappedMemoryRanges;
7051 }
7052 if (!strcmp(name, "vkInvalidateMappedMemoryRanges"))
7053 {
7054 return (void*)entry_vkInvalidateMappedMemoryRanges;
7055 }
7056 if (!strcmp(name, "vkGetDeviceMemoryCommitment"))
7057 {
7058 return (void*)entry_vkGetDeviceMemoryCommitment;
7059 }
7060 if (!strcmp(name, "vkBindBufferMemory"))
7061 {
7062 return (void*)entry_vkBindBufferMemory;
7063 }
7064 if (!strcmp(name, "vkBindImageMemory"))
7065 {
7066 return (void*)entry_vkBindImageMemory;
7067 }
7068 if (!strcmp(name, "vkGetBufferMemoryRequirements"))
7069 {
7070 return (void*)entry_vkGetBufferMemoryRequirements;
7071 }
7072 if (!strcmp(name, "vkGetImageMemoryRequirements"))
7073 {
7074 return (void*)entry_vkGetImageMemoryRequirements;
7075 }
7076 if (!strcmp(name, "vkGetImageSparseMemoryRequirements"))
7077 {
7078 return (void*)entry_vkGetImageSparseMemoryRequirements;
7079 }
7080 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties"))
7081 {
7082 return (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties;
7083 }
7084 if (!strcmp(name, "vkQueueBindSparse"))
7085 {
7086 return (void*)entry_vkQueueBindSparse;
7087 }
7088 if (!strcmp(name, "vkCreateFence"))
7089 {
7090 return (void*)entry_vkCreateFence;
7091 }
7092 if (!strcmp(name, "vkDestroyFence"))
7093 {
7094 return (void*)entry_vkDestroyFence;
7095 }
7096 if (!strcmp(name, "vkResetFences"))
7097 {
7098 return (void*)entry_vkResetFences;
7099 }
7100 if (!strcmp(name, "vkGetFenceStatus"))
7101 {
7102 return (void*)entry_vkGetFenceStatus;
7103 }
7104 if (!strcmp(name, "vkWaitForFences"))
7105 {
7106 return (void*)entry_vkWaitForFences;
7107 }
7108 if (!strcmp(name, "vkCreateSemaphore"))
7109 {
7110 return (void*)entry_vkCreateSemaphore;
7111 }
7112 if (!strcmp(name, "vkDestroySemaphore"))
7113 {
7114 return (void*)entry_vkDestroySemaphore;
7115 }
7116 if (!strcmp(name, "vkCreateEvent"))
7117 {
7118 return (void*)entry_vkCreateEvent;
7119 }
7120 if (!strcmp(name, "vkDestroyEvent"))
7121 {
7122 return (void*)entry_vkDestroyEvent;
7123 }
7124 if (!strcmp(name, "vkGetEventStatus"))
7125 {
7126 return (void*)entry_vkGetEventStatus;
7127 }
7128 if (!strcmp(name, "vkSetEvent"))
7129 {
7130 return (void*)entry_vkSetEvent;
7131 }
7132 if (!strcmp(name, "vkResetEvent"))
7133 {
7134 return (void*)entry_vkResetEvent;
7135 }
7136 if (!strcmp(name, "vkCreateQueryPool"))
7137 {
7138 return (void*)entry_vkCreateQueryPool;
7139 }
7140 if (!strcmp(name, "vkDestroyQueryPool"))
7141 {
7142 return (void*)entry_vkDestroyQueryPool;
7143 }
7144 if (!strcmp(name, "vkGetQueryPoolResults"))
7145 {
7146 return (void*)entry_vkGetQueryPoolResults;
7147 }
7148 if (!strcmp(name, "vkCreateBuffer"))
7149 {
7150 return (void*)entry_vkCreateBuffer;
7151 }
7152 if (!strcmp(name, "vkDestroyBuffer"))
7153 {
7154 return (void*)entry_vkDestroyBuffer;
7155 }
7156 if (!strcmp(name, "vkCreateBufferView"))
7157 {
7158 return (void*)entry_vkCreateBufferView;
7159 }
7160 if (!strcmp(name, "vkDestroyBufferView"))
7161 {
7162 return (void*)entry_vkDestroyBufferView;
7163 }
7164 if (!strcmp(name, "vkCreateImage"))
7165 {
7166 return (void*)entry_vkCreateImage;
7167 }
7168 if (!strcmp(name, "vkDestroyImage"))
7169 {
7170 return (void*)entry_vkDestroyImage;
7171 }
7172 if (!strcmp(name, "vkGetImageSubresourceLayout"))
7173 {
7174 return (void*)entry_vkGetImageSubresourceLayout;
7175 }
7176 if (!strcmp(name, "vkCreateImageView"))
7177 {
7178 return (void*)entry_vkCreateImageView;
7179 }
7180 if (!strcmp(name, "vkDestroyImageView"))
7181 {
7182 return (void*)entry_vkDestroyImageView;
7183 }
7184 if (!strcmp(name, "vkCreateShaderModule"))
7185 {
7186 return (void*)entry_vkCreateShaderModule;
7187 }
7188 if (!strcmp(name, "vkDestroyShaderModule"))
7189 {
7190 return (void*)entry_vkDestroyShaderModule;
7191 }
7192 if (!strcmp(name, "vkCreatePipelineCache"))
7193 {
7194 return (void*)entry_vkCreatePipelineCache;
7195 }
7196 if (!strcmp(name, "vkDestroyPipelineCache"))
7197 {
7198 return (void*)entry_vkDestroyPipelineCache;
7199 }
7200 if (!strcmp(name, "vkGetPipelineCacheData"))
7201 {
7202 return (void*)entry_vkGetPipelineCacheData;
7203 }
7204 if (!strcmp(name, "vkMergePipelineCaches"))
7205 {
7206 return (void*)entry_vkMergePipelineCaches;
7207 }
7208 if (!strcmp(name, "vkCreateGraphicsPipelines"))
7209 {
7210 return (void*)entry_vkCreateGraphicsPipelines;
7211 }
7212 if (!strcmp(name, "vkCreateComputePipelines"))
7213 {
7214 return (void*)entry_vkCreateComputePipelines;
7215 }
7216 if (!strcmp(name, "vkDestroyPipeline"))
7217 {
7218 return (void*)entry_vkDestroyPipeline;
7219 }
7220 if (!strcmp(name, "vkCreatePipelineLayout"))
7221 {
7222 return (void*)entry_vkCreatePipelineLayout;
7223 }
7224 if (!strcmp(name, "vkDestroyPipelineLayout"))
7225 {
7226 return (void*)entry_vkDestroyPipelineLayout;
7227 }
7228 if (!strcmp(name, "vkCreateSampler"))
7229 {
7230 return (void*)entry_vkCreateSampler;
7231 }
7232 if (!strcmp(name, "vkDestroySampler"))
7233 {
7234 return (void*)entry_vkDestroySampler;
7235 }
7236 if (!strcmp(name, "vkCreateDescriptorSetLayout"))
7237 {
7238 return (void*)entry_vkCreateDescriptorSetLayout;
7239 }
7240 if (!strcmp(name, "vkDestroyDescriptorSetLayout"))
7241 {
7242 return (void*)entry_vkDestroyDescriptorSetLayout;
7243 }
7244 if (!strcmp(name, "vkCreateDescriptorPool"))
7245 {
7246 return (void*)entry_vkCreateDescriptorPool;
7247 }
7248 if (!strcmp(name, "vkDestroyDescriptorPool"))
7249 {
7250 return (void*)entry_vkDestroyDescriptorPool;
7251 }
7252 if (!strcmp(name, "vkResetDescriptorPool"))
7253 {
7254 return (void*)entry_vkResetDescriptorPool;
7255 }
7256 if (!strcmp(name, "vkAllocateDescriptorSets"))
7257 {
7258 return (void*)entry_vkAllocateDescriptorSets;
7259 }
7260 if (!strcmp(name, "vkFreeDescriptorSets"))
7261 {
7262 return (void*)entry_vkFreeDescriptorSets;
7263 }
7264 if (!strcmp(name, "vkUpdateDescriptorSets"))
7265 {
7266 return (void*)entry_vkUpdateDescriptorSets;
7267 }
7268 if (!strcmp(name, "vkCreateFramebuffer"))
7269 {
7270 return (void*)entry_vkCreateFramebuffer;
7271 }
7272 if (!strcmp(name, "vkDestroyFramebuffer"))
7273 {
7274 return (void*)entry_vkDestroyFramebuffer;
7275 }
7276 if (!strcmp(name, "vkCreateRenderPass"))
7277 {
7278 return (void*)entry_vkCreateRenderPass;
7279 }
7280 if (!strcmp(name, "vkDestroyRenderPass"))
7281 {
7282 return (void*)entry_vkDestroyRenderPass;
7283 }
7284 if (!strcmp(name, "vkGetRenderAreaGranularity"))
7285 {
7286 return (void*)entry_vkGetRenderAreaGranularity;
7287 }
7288 if (!strcmp(name, "vkCreateCommandPool"))
7289 {
7290 return (void*)entry_vkCreateCommandPool;
7291 }
7292 if (!strcmp(name, "vkDestroyCommandPool"))
7293 {
7294 return (void*)entry_vkDestroyCommandPool;
7295 }
7296 if (!strcmp(name, "vkResetCommandPool"))
7297 {
7298 return (void*)entry_vkResetCommandPool;
7299 }
7300 if (!strcmp(name, "vkAllocateCommandBuffers"))
7301 {
7302 return (void*)entry_vkAllocateCommandBuffers;
7303 }
7304 if (!strcmp(name, "vkFreeCommandBuffers"))
7305 {
7306 return (void*)entry_vkFreeCommandBuffers;
7307 }
7308 if (!strcmp(name, "vkBeginCommandBuffer"))
7309 {
7310 return (void*)entry_vkBeginCommandBuffer;
7311 }
7312 if (!strcmp(name, "vkEndCommandBuffer"))
7313 {
7314 return (void*)entry_vkEndCommandBuffer;
7315 }
7316 if (!strcmp(name, "vkResetCommandBuffer"))
7317 {
7318 return (void*)entry_vkResetCommandBuffer;
7319 }
7320 if (!strcmp(name, "vkCmdBindPipeline"))
7321 {
7322 return (void*)entry_vkCmdBindPipeline;
7323 }
7324 if (!strcmp(name, "vkCmdSetViewport"))
7325 {
7326 return (void*)entry_vkCmdSetViewport;
7327 }
7328 if (!strcmp(name, "vkCmdSetScissor"))
7329 {
7330 return (void*)entry_vkCmdSetScissor;
7331 }
7332 if (!strcmp(name, "vkCmdSetLineWidth"))
7333 {
7334 return (void*)entry_vkCmdSetLineWidth;
7335 }
7336 if (!strcmp(name, "vkCmdSetDepthBias"))
7337 {
7338 return (void*)entry_vkCmdSetDepthBias;
7339 }
7340 if (!strcmp(name, "vkCmdSetBlendConstants"))
7341 {
7342 return (void*)entry_vkCmdSetBlendConstants;
7343 }
7344 if (!strcmp(name, "vkCmdSetDepthBounds"))
7345 {
7346 return (void*)entry_vkCmdSetDepthBounds;
7347 }
7348 if (!strcmp(name, "vkCmdSetStencilCompareMask"))
7349 {
7350 return (void*)entry_vkCmdSetStencilCompareMask;
7351 }
7352 if (!strcmp(name, "vkCmdSetStencilWriteMask"))
7353 {
7354 return (void*)entry_vkCmdSetStencilWriteMask;
7355 }
7356 if (!strcmp(name, "vkCmdSetStencilReference"))
7357 {
7358 return (void*)entry_vkCmdSetStencilReference;
7359 }
7360 if (!strcmp(name, "vkCmdBindDescriptorSets"))
7361 {
7362 return (void*)entry_vkCmdBindDescriptorSets;
7363 }
7364 if (!strcmp(name, "vkCmdBindIndexBuffer"))
7365 {
7366 return (void*)entry_vkCmdBindIndexBuffer;
7367 }
7368 if (!strcmp(name, "vkCmdBindVertexBuffers"))
7369 {
7370 return (void*)entry_vkCmdBindVertexBuffers;
7371 }
7372 if (!strcmp(name, "vkCmdDraw"))
7373 {
7374 return (void*)entry_vkCmdDraw;
7375 }
7376 if (!strcmp(name, "vkCmdDrawIndexed"))
7377 {
7378 return (void*)entry_vkCmdDrawIndexed;
7379 }
7380 if (!strcmp(name, "vkCmdDrawIndirect"))
7381 {
7382 return (void*)entry_vkCmdDrawIndirect;
7383 }
7384 if (!strcmp(name, "vkCmdDrawIndexedIndirect"))
7385 {
7386 return (void*)entry_vkCmdDrawIndexedIndirect;
7387 }
7388 if (!strcmp(name, "vkCmdDispatch"))
7389 {
7390 return (void*)entry_vkCmdDispatch;
7391 }
7392 if (!strcmp(name, "vkCmdDispatchIndirect"))
7393 {
7394 return (void*)entry_vkCmdDispatchIndirect;
7395 }
7396 if (!strcmp(name, "vkCmdCopyBuffer"))
7397 {
7398 return (void*)entry_vkCmdCopyBuffer;
7399 }
7400 if (!strcmp(name, "vkCmdCopyImage"))
7401 {
7402 return (void*)entry_vkCmdCopyImage;
7403 }
7404 if (!strcmp(name, "vkCmdBlitImage"))
7405 {
7406 return (void*)entry_vkCmdBlitImage;
7407 }
7408 if (!strcmp(name, "vkCmdCopyBufferToImage"))
7409 {
7410 return (void*)entry_vkCmdCopyBufferToImage;
7411 }
7412 if (!strcmp(name, "vkCmdCopyImageToBuffer"))
7413 {
7414 return (void*)entry_vkCmdCopyImageToBuffer;
7415 }
7416 if (!strcmp(name, "vkCmdUpdateBuffer"))
7417 {
7418 return (void*)entry_vkCmdUpdateBuffer;
7419 }
7420 if (!strcmp(name, "vkCmdFillBuffer"))
7421 {
7422 return (void*)entry_vkCmdFillBuffer;
7423 }
7424 if (!strcmp(name, "vkCmdClearColorImage"))
7425 {
7426 return (void*)entry_vkCmdClearColorImage;
7427 }
7428 if (!strcmp(name, "vkCmdClearDepthStencilImage"))
7429 {
7430 return (void*)entry_vkCmdClearDepthStencilImage;
7431 }
7432 if (!strcmp(name, "vkCmdClearAttachments"))
7433 {
7434 return (void*)entry_vkCmdClearAttachments;
7435 }
7436 if (!strcmp(name, "vkCmdResolveImage"))
7437 {
7438 return (void*)entry_vkCmdResolveImage;
7439 }
7440 if (!strcmp(name, "vkCmdSetEvent"))
7441 {
7442 return (void*)entry_vkCmdSetEvent;
7443 }
7444 if (!strcmp(name, "vkCmdResetEvent"))
7445 {
7446 return (void*)entry_vkCmdResetEvent;
7447 }
7448 if (!strcmp(name, "vkCmdWaitEvents"))
7449 {
7450 return (void*)entry_vkCmdWaitEvents;
7451 }
7452 if (!strcmp(name, "vkCmdPipelineBarrier"))
7453 {
7454 return (void*)entry_vkCmdPipelineBarrier;
7455 }
7456 if (!strcmp(name, "vkCmdBeginQuery"))
7457 {
7458 return (void*)entry_vkCmdBeginQuery;
7459 }
7460 if (!strcmp(name, "vkCmdEndQuery"))
7461 {
7462 return (void*)entry_vkCmdEndQuery;
7463 }
7464 if (!strcmp(name, "vkCmdResetQueryPool"))
7465 {
7466 return (void*)entry_vkCmdResetQueryPool;
7467 }
7468 if (!strcmp(name, "vkCmdWriteTimestamp"))
7469 {
7470 return (void*)entry_vkCmdWriteTimestamp;
7471 }
7472 if (!strcmp(name, "vkCmdCopyQueryPoolResults"))
7473 {
7474 return (void*)entry_vkCmdCopyQueryPoolResults;
7475 }
7476 if (!strcmp(name, "vkCmdPushConstants"))
7477 {
7478 return (void*)entry_vkCmdPushConstants;
7479 }
7480 if (!strcmp(name, "vkCmdBeginRenderPass"))
7481 {
7482 return (void*)entry_vkCmdBeginRenderPass;
7483 }
7484 if (!strcmp(name, "vkCmdNextSubpass"))
7485 {
7486 return (void*)entry_vkCmdNextSubpass;
7487 }
7488 if (!strcmp(name, "vkCmdEndRenderPass"))
7489 {
7490 return (void*)entry_vkCmdEndRenderPass;
7491 }
7492 if (!strcmp(name, "vkCmdExecuteCommands"))
7493 {
7494 return (void*)entry_vkCmdExecuteCommands;
7495 }
7496#endif
7497#ifdef VK_VERSION_1_1
7498 if (!strcmp(name, "vkEnumerateInstanceVersion"))
7499 {
7500 return has1_1OrHigher ? (void*)entry_vkEnumerateInstanceVersion : nullptr;
7501 }
7502 if (!strcmp(name, "vkBindBufferMemory2"))
7503 {
7504 return has1_1OrHigher ? (void*)entry_vkBindBufferMemory2 : nullptr;
7505 }
7506 if (!strcmp(name, "vkBindImageMemory2"))
7507 {
7508 return has1_1OrHigher ? (void*)entry_vkBindImageMemory2 : nullptr;
7509 }
7510 if (!strcmp(name, "vkGetDeviceGroupPeerMemoryFeatures"))
7511 {
7512 return has1_1OrHigher ? (void*)entry_vkGetDeviceGroupPeerMemoryFeatures : nullptr;
7513 }
7514 if (!strcmp(name, "vkCmdSetDeviceMask"))
7515 {
7516 return has1_1OrHigher ? (void*)entry_vkCmdSetDeviceMask : nullptr;
7517 }
7518 if (!strcmp(name, "vkCmdDispatchBase"))
7519 {
7520 return has1_1OrHigher ? (void*)entry_vkCmdDispatchBase : nullptr;
7521 }
7522 if (!strcmp(name, "vkEnumeratePhysicalDeviceGroups"))
7523 {
7524 return nullptr;
7525 }
7526 if (!strcmp(name, "vkGetImageMemoryRequirements2"))
7527 {
7528 return has1_1OrHigher ? (void*)entry_vkGetImageMemoryRequirements2 : nullptr;
7529 }
7530 if (!strcmp(name, "vkGetBufferMemoryRequirements2"))
7531 {
7532 return has1_1OrHigher ? (void*)entry_vkGetBufferMemoryRequirements2 : nullptr;
7533 }
7534 if (!strcmp(name, "vkGetImageSparseMemoryRequirements2"))
7535 {
7536 return has1_1OrHigher ? (void*)entry_vkGetImageSparseMemoryRequirements2 : nullptr;
7537 }
7538 if (!strcmp(name, "vkGetPhysicalDeviceFeatures2"))
7539 {
7540 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceFeatures2 : nullptr;
7541 }
7542 if (!strcmp(name, "vkGetPhysicalDeviceProperties2"))
7543 {
7544 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceProperties2 : nullptr;
7545 }
7546 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties2"))
7547 {
7548 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceFormatProperties2 : nullptr;
7549 }
7550 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties2"))
7551 {
7552 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceImageFormatProperties2 : nullptr;
7553 }
7554 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties2"))
7555 {
7556 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties2 : nullptr;
7557 }
7558 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties2"))
7559 {
7560 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceMemoryProperties2 : nullptr;
7561 }
7562 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties2"))
7563 {
7564 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties2 : nullptr;
7565 }
7566 if (!strcmp(name, "vkTrimCommandPool"))
7567 {
7568 return has1_1OrHigher ? (void*)entry_vkTrimCommandPool : nullptr;
7569 }
7570 if (!strcmp(name, "vkGetDeviceQueue2"))
7571 {
7572 return has1_1OrHigher ? (void*)entry_vkGetDeviceQueue2 : nullptr;
7573 }
7574 if (!strcmp(name, "vkCreateSamplerYcbcrConversion"))
7575 {
7576 return has1_1OrHigher ? (void*)entry_vkCreateSamplerYcbcrConversion : nullptr;
7577 }
7578 if (!strcmp(name, "vkDestroySamplerYcbcrConversion"))
7579 {
7580 return has1_1OrHigher ? (void*)entry_vkDestroySamplerYcbcrConversion : nullptr;
7581 }
7582 if (!strcmp(name, "vkCreateDescriptorUpdateTemplate"))
7583 {
7584 return has1_1OrHigher ? (void*)entry_vkCreateDescriptorUpdateTemplate : nullptr;
7585 }
7586 if (!strcmp(name, "vkDestroyDescriptorUpdateTemplate"))
7587 {
7588 return has1_1OrHigher ? (void*)entry_vkDestroyDescriptorUpdateTemplate : nullptr;
7589 }
7590 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplate"))
7591 {
7592 return has1_1OrHigher ? (void*)entry_vkUpdateDescriptorSetWithTemplate : nullptr;
7593 }
7594 if (!strcmp(name, "vkGetPhysicalDeviceExternalBufferProperties"))
7595 {
7596 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceExternalBufferProperties : nullptr;
7597 }
7598 if (!strcmp(name, "vkGetPhysicalDeviceExternalFenceProperties"))
7599 {
7600 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceExternalFenceProperties : nullptr;
7601 }
7602 if (!strcmp(name, "vkGetPhysicalDeviceExternalSemaphoreProperties"))
7603 {
7604 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceExternalSemaphoreProperties : nullptr;
7605 }
7606 if (!strcmp(name, "vkGetDescriptorSetLayoutSupport"))
7607 {
7608 return has1_1OrHigher ? (void*)entry_vkGetDescriptorSetLayoutSupport : nullptr;
7609 }
7610#endif
7611#ifdef VK_KHR_surface
7612 if (!strcmp(name, "vkDestroySurfaceKHR"))
7613 {
7614 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_surface");
7615 return hasExt ? (void*)entry_vkDestroySurfaceKHR : nullptr;
7616 }
7617 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceSupportKHR"))
7618 {
7619 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_surface");
7620 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceSupportKHR : nullptr;
7621 }
7622 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR"))
7623 {
7624 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_surface");
7625 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceCapabilitiesKHR : nullptr;
7626 }
7627 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceFormatsKHR"))
7628 {
7629 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_surface");
7630 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceFormatsKHR : nullptr;
7631 }
7632 if (!strcmp(name, "vkGetPhysicalDeviceSurfacePresentModesKHR"))
7633 {
7634 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_surface");
7635 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfacePresentModesKHR : nullptr;
7636 }
7637#endif
7638#ifdef VK_KHR_swapchain
7639 if (!strcmp(name, "vkCreateSwapchainKHR"))
7640 {
7641 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7642 return hasExt ? (void*)entry_vkCreateSwapchainKHR : nullptr;
7643 }
7644 if (!strcmp(name, "vkDestroySwapchainKHR"))
7645 {
7646 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7647 return hasExt ? (void*)entry_vkDestroySwapchainKHR : nullptr;
7648 }
7649 if (!strcmp(name, "vkGetSwapchainImagesKHR"))
7650 {
7651 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7652 return hasExt ? (void*)entry_vkGetSwapchainImagesKHR : nullptr;
7653 }
7654 if (!strcmp(name, "vkAcquireNextImageKHR"))
7655 {
7656 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7657 return hasExt ? (void*)entry_vkAcquireNextImageKHR : nullptr;
7658 }
7659 if (!strcmp(name, "vkQueuePresentKHR"))
7660 {
7661 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7662 return hasExt ? (void*)entry_vkQueuePresentKHR : nullptr;
7663 }
7664 if (!strcmp(name, "vkGetDeviceGroupPresentCapabilitiesKHR"))
7665 {
7666 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7667 return hasExt ? (void*)entry_vkGetDeviceGroupPresentCapabilitiesKHR : nullptr;
7668 }
7669 if (!strcmp(name, "vkGetDeviceGroupSurfacePresentModesKHR"))
7670 {
7671 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7672 return hasExt ? (void*)entry_vkGetDeviceGroupSurfacePresentModesKHR : nullptr;
7673 }
7674 if (!strcmp(name, "vkGetPhysicalDevicePresentRectanglesKHR"))
7675 {
7676 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7677 return hasExt ? (void*)entry_vkGetPhysicalDevicePresentRectanglesKHR : nullptr;
7678 }
7679 if (!strcmp(name, "vkAcquireNextImage2KHR"))
7680 {
7681 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7682 return hasExt ? (void*)entry_vkAcquireNextImage2KHR : nullptr;
7683 }
7684#endif
7685#ifdef VK_KHR_display
7686 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPropertiesKHR"))
7687 {
7688 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
7689 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayPropertiesKHR : nullptr;
7690 }
7691 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR"))
7692 {
7693 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
7694 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayPlanePropertiesKHR : nullptr;
7695 }
7696 if (!strcmp(name, "vkGetDisplayPlaneSupportedDisplaysKHR"))
7697 {
7698 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
7699 return hasExt ? (void*)entry_vkGetDisplayPlaneSupportedDisplaysKHR : nullptr;
7700 }
7701 if (!strcmp(name, "vkGetDisplayModePropertiesKHR"))
7702 {
7703 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
7704 return hasExt ? (void*)entry_vkGetDisplayModePropertiesKHR : nullptr;
7705 }
7706 if (!strcmp(name, "vkCreateDisplayModeKHR"))
7707 {
7708 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
7709 return hasExt ? (void*)entry_vkCreateDisplayModeKHR : nullptr;
7710 }
7711 if (!strcmp(name, "vkGetDisplayPlaneCapabilitiesKHR"))
7712 {
7713 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
7714 return hasExt ? (void*)entry_vkGetDisplayPlaneCapabilitiesKHR : nullptr;
7715 }
7716 if (!strcmp(name, "vkCreateDisplayPlaneSurfaceKHR"))
7717 {
7718 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
7719 return hasExt ? (void*)entry_vkCreateDisplayPlaneSurfaceKHR : nullptr;
7720 }
7721#endif
7722#ifdef VK_KHR_display_swapchain
7723 if (!strcmp(name, "vkCreateSharedSwapchainsKHR"))
7724 {
7725 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display_swapchain");
7726 return hasExt ? (void*)entry_vkCreateSharedSwapchainsKHR : nullptr;
7727 }
7728#endif
7729#ifdef VK_KHR_xlib_surface
7730 if (!strcmp(name, "vkCreateXlibSurfaceKHR"))
7731 {
7732 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_xlib_surface");
7733 return hasExt ? (void*)entry_vkCreateXlibSurfaceKHR : nullptr;
7734 }
7735 if (!strcmp(name, "vkGetPhysicalDeviceXlibPresentationSupportKHR"))
7736 {
7737 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_xlib_surface");
7738 return hasExt ? (void*)entry_vkGetPhysicalDeviceXlibPresentationSupportKHR : nullptr;
7739 }
7740#endif
7741#ifdef VK_KHR_xcb_surface
7742 if (!strcmp(name, "vkCreateXcbSurfaceKHR"))
7743 {
7744 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_xcb_surface");
7745 return hasExt ? (void*)entry_vkCreateXcbSurfaceKHR : nullptr;
7746 }
7747 if (!strcmp(name, "vkGetPhysicalDeviceXcbPresentationSupportKHR"))
7748 {
7749 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_xcb_surface");
7750 return hasExt ? (void*)entry_vkGetPhysicalDeviceXcbPresentationSupportKHR : nullptr;
7751 }
7752#endif
7753#ifdef VK_KHR_wayland_surface
7754 if (!strcmp(name, "vkCreateWaylandSurfaceKHR"))
7755 {
7756 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_wayland_surface");
7757 return hasExt ? (void*)entry_vkCreateWaylandSurfaceKHR : nullptr;
7758 }
7759 if (!strcmp(name, "vkGetPhysicalDeviceWaylandPresentationSupportKHR"))
7760 {
7761 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_wayland_surface");
7762 return hasExt ? (void*)entry_vkGetPhysicalDeviceWaylandPresentationSupportKHR : nullptr;
7763 }
7764#endif
7765#ifdef VK_KHR_mir_surface
7766 if (!strcmp(name, "vkCreateMirSurfaceKHR"))
7767 {
7768 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_mir_surface");
7769 return hasExt ? (void*)entry_vkCreateMirSurfaceKHR : nullptr;
7770 }
7771 if (!strcmp(name, "vkGetPhysicalDeviceMirPresentationSupportKHR"))
7772 {
7773 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_mir_surface");
7774 return hasExt ? (void*)entry_vkGetPhysicalDeviceMirPresentationSupportKHR : nullptr;
7775 }
7776#endif
7777#ifdef VK_KHR_android_surface
7778 if (!strcmp(name, "vkCreateAndroidSurfaceKHR"))
7779 {
7780 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_android_surface");
7781 return hasExt ? (void*)entry_vkCreateAndroidSurfaceKHR : nullptr;
7782 }
7783#endif
7784#ifdef VK_KHR_win32_surface
7785 if (!strcmp(name, "vkCreateWin32SurfaceKHR"))
7786 {
7787 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_win32_surface");
7788 return hasExt ? (void*)entry_vkCreateWin32SurfaceKHR : nullptr;
7789 }
7790 if (!strcmp(name, "vkGetPhysicalDeviceWin32PresentationSupportKHR"))
7791 {
7792 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_win32_surface");
7793 return hasExt ? (void*)entry_vkGetPhysicalDeviceWin32PresentationSupportKHR : nullptr;
7794 }
7795#endif
7796#ifdef VK_KHR_get_physical_device_properties2
7797 if (!strcmp(name, "vkGetPhysicalDeviceFeatures2KHR"))
7798 {
7799 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
7800 return hasExt ? (void*)entry_vkGetPhysicalDeviceFeatures2KHR : nullptr;
7801 }
7802 if (!strcmp(name, "vkGetPhysicalDeviceProperties2KHR"))
7803 {
7804 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
7805 return hasExt ? (void*)entry_vkGetPhysicalDeviceProperties2KHR : nullptr;
7806 }
7807 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties2KHR"))
7808 {
7809 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
7810 return hasExt ? (void*)entry_vkGetPhysicalDeviceFormatProperties2KHR : nullptr;
7811 }
7812 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties2KHR"))
7813 {
7814 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
7815 return hasExt ? (void*)entry_vkGetPhysicalDeviceImageFormatProperties2KHR : nullptr;
7816 }
7817 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties2KHR"))
7818 {
7819 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
7820 return hasExt ? (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties2KHR : nullptr;
7821 }
7822 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties2KHR"))
7823 {
7824 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
7825 return hasExt ? (void*)entry_vkGetPhysicalDeviceMemoryProperties2KHR : nullptr;
7826 }
7827 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR"))
7828 {
7829 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
7830 return hasExt ? (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties2KHR : nullptr;
7831 }
7832#endif
7833#ifdef VK_KHR_device_group
7834 if (!strcmp(name, "vkGetDeviceGroupPeerMemoryFeaturesKHR"))
7835 {
7836 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_device_group");
7837 return hasExt ? (void*)entry_vkGetDeviceGroupPeerMemoryFeaturesKHR : nullptr;
7838 }
7839 if (!strcmp(name, "vkCmdSetDeviceMaskKHR"))
7840 {
7841 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_device_group");
7842 return hasExt ? (void*)entry_vkCmdSetDeviceMaskKHR : nullptr;
7843 }
7844 if (!strcmp(name, "vkCmdDispatchBaseKHR"))
7845 {
7846 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_device_group");
7847 return hasExt ? (void*)entry_vkCmdDispatchBaseKHR : nullptr;
7848 }
7849#endif
7850#ifdef VK_KHR_maintenance1
7851 if (!strcmp(name, "vkTrimCommandPoolKHR"))
7852 {
7853 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_maintenance1");
7854 return hasExt ? (void*)entry_vkTrimCommandPoolKHR : nullptr;
7855 }
7856#endif
7857#ifdef VK_KHR_device_group_creation
7858 if (!strcmp(name, "vkEnumeratePhysicalDeviceGroupsKHR"))
7859 {
7860 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_device_group_creation");
7861 return hasExt ? (void*)entry_vkEnumeratePhysicalDeviceGroupsKHR : nullptr;
7862 }
7863#endif
7864#ifdef VK_KHR_external_memory_capabilities
7865 if (!strcmp(name, "vkGetPhysicalDeviceExternalBufferPropertiesKHR"))
7866 {
7867 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_memory_capabilities");
7868 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalBufferPropertiesKHR : nullptr;
7869 }
7870#endif
7871#ifdef VK_KHR_external_memory_win32
7872 if (!strcmp(name, "vkGetMemoryWin32HandleKHR"))
7873 {
7874 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_memory_win32");
7875 return hasExt ? (void*)entry_vkGetMemoryWin32HandleKHR : nullptr;
7876 }
7877 if (!strcmp(name, "vkGetMemoryWin32HandlePropertiesKHR"))
7878 {
7879 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_memory_win32");
7880 return hasExt ? (void*)entry_vkGetMemoryWin32HandlePropertiesKHR : nullptr;
7881 }
7882#endif
7883#ifdef VK_KHR_external_memory_fd
7884 if (!strcmp(name, "vkGetMemoryFdKHR"))
7885 {
7886 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_memory_fd");
7887 return hasExt ? (void*)entry_vkGetMemoryFdKHR : nullptr;
7888 }
7889 if (!strcmp(name, "vkGetMemoryFdPropertiesKHR"))
7890 {
7891 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_memory_fd");
7892 return hasExt ? (void*)entry_vkGetMemoryFdPropertiesKHR : nullptr;
7893 }
7894#endif
7895#ifdef VK_KHR_external_semaphore_capabilities
7896 if (!strcmp(name, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR"))
7897 {
7898 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_semaphore_capabilities");
7899 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR : nullptr;
7900 }
7901#endif
7902#ifdef VK_KHR_external_semaphore_win32
7903 if (!strcmp(name, "vkImportSemaphoreWin32HandleKHR"))
7904 {
7905 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_semaphore_win32");
7906 return hasExt ? (void*)entry_vkImportSemaphoreWin32HandleKHR : nullptr;
7907 }
7908 if (!strcmp(name, "vkGetSemaphoreWin32HandleKHR"))
7909 {
7910 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_semaphore_win32");
7911 return hasExt ? (void*)entry_vkGetSemaphoreWin32HandleKHR : nullptr;
7912 }
7913#endif
7914#ifdef VK_KHR_external_semaphore_fd
7915 if (!strcmp(name, "vkImportSemaphoreFdKHR"))
7916 {
7917 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_semaphore_fd");
7918 return hasExt ? (void*)entry_vkImportSemaphoreFdKHR : nullptr;
7919 }
7920 if (!strcmp(name, "vkGetSemaphoreFdKHR"))
7921 {
7922 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_semaphore_fd");
7923 return hasExt ? (void*)entry_vkGetSemaphoreFdKHR : nullptr;
7924 }
7925#endif
7926#ifdef VK_KHR_push_descriptor
7927 if (!strcmp(name, "vkCmdPushDescriptorSetKHR"))
7928 {
7929 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_push_descriptor");
7930 return hasExt ? (void*)entry_vkCmdPushDescriptorSetKHR : nullptr;
7931 }
7932 if (!strcmp(name, "vkCmdPushDescriptorSetWithTemplateKHR"))
7933 {
7934 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_push_descriptor");
7935 return hasExt ? (void*)entry_vkCmdPushDescriptorSetWithTemplateKHR : nullptr;
7936 }
7937#endif
7938#ifdef VK_KHR_descriptor_update_template
7939 if (!strcmp(name, "vkCreateDescriptorUpdateTemplateKHR"))
7940 {
7941 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_descriptor_update_template");
7942 return hasExt ? (void*)entry_vkCreateDescriptorUpdateTemplateKHR : nullptr;
7943 }
7944 if (!strcmp(name, "vkDestroyDescriptorUpdateTemplateKHR"))
7945 {
7946 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_descriptor_update_template");
7947 return hasExt ? (void*)entry_vkDestroyDescriptorUpdateTemplateKHR : nullptr;
7948 }
7949 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplateKHR"))
7950 {
7951 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_descriptor_update_template");
7952 return hasExt ? (void*)entry_vkUpdateDescriptorSetWithTemplateKHR : nullptr;
7953 }
7954#endif
7955#ifdef VK_KHR_create_renderpass2
7956 if (!strcmp(name, "vkCreateRenderPass2KHR"))
7957 {
7958 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_create_renderpass2");
7959 return hasExt ? (void*)entry_vkCreateRenderPass2KHR : nullptr;
7960 }
7961 if (!strcmp(name, "vkCmdBeginRenderPass2KHR"))
7962 {
7963 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_create_renderpass2");
7964 return hasExt ? (void*)entry_vkCmdBeginRenderPass2KHR : nullptr;
7965 }
7966 if (!strcmp(name, "vkCmdNextSubpass2KHR"))
7967 {
7968 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_create_renderpass2");
7969 return hasExt ? (void*)entry_vkCmdNextSubpass2KHR : nullptr;
7970 }
7971 if (!strcmp(name, "vkCmdEndRenderPass2KHR"))
7972 {
7973 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_create_renderpass2");
7974 return hasExt ? (void*)entry_vkCmdEndRenderPass2KHR : nullptr;
7975 }
7976#endif
7977#ifdef VK_KHR_shared_presentable_image
7978 if (!strcmp(name, "vkGetSwapchainStatusKHR"))
7979 {
7980 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_shared_presentable_image");
7981 return hasExt ? (void*)entry_vkGetSwapchainStatusKHR : nullptr;
7982 }
7983#endif
7984#ifdef VK_KHR_external_fence_capabilities
7985 if (!strcmp(name, "vkGetPhysicalDeviceExternalFencePropertiesKHR"))
7986 {
7987 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_fence_capabilities");
7988 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalFencePropertiesKHR : nullptr;
7989 }
7990#endif
7991#ifdef VK_KHR_external_fence_win32
7992 if (!strcmp(name, "vkImportFenceWin32HandleKHR"))
7993 {
7994 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_fence_win32");
7995 return hasExt ? (void*)entry_vkImportFenceWin32HandleKHR : nullptr;
7996 }
7997 if (!strcmp(name, "vkGetFenceWin32HandleKHR"))
7998 {
7999 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_fence_win32");
8000 return hasExt ? (void*)entry_vkGetFenceWin32HandleKHR : nullptr;
8001 }
8002#endif
8003#ifdef VK_KHR_external_fence_fd
8004 if (!strcmp(name, "vkImportFenceFdKHR"))
8005 {
8006 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_fence_fd");
8007 return hasExt ? (void*)entry_vkImportFenceFdKHR : nullptr;
8008 }
8009 if (!strcmp(name, "vkGetFenceFdKHR"))
8010 {
8011 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_fence_fd");
8012 return hasExt ? (void*)entry_vkGetFenceFdKHR : nullptr;
8013 }
8014#endif
8015#ifdef VK_KHR_get_surface_capabilities2
8016 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2KHR"))
8017 {
8018 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_surface_capabilities2");
8019 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceCapabilities2KHR : nullptr;
8020 }
8021 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceFormats2KHR"))
8022 {
8023 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_surface_capabilities2");
8024 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceFormats2KHR : nullptr;
8025 }
8026#endif
8027#ifdef VK_KHR_get_display_properties2
8028 if (!strcmp(name, "vkGetPhysicalDeviceDisplayProperties2KHR"))
8029 {
8030 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_display_properties2");
8031 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayProperties2KHR : nullptr;
8032 }
8033 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR"))
8034 {
8035 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_display_properties2");
8036 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayPlaneProperties2KHR : nullptr;
8037 }
8038 if (!strcmp(name, "vkGetDisplayModeProperties2KHR"))
8039 {
8040 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_display_properties2");
8041 return hasExt ? (void*)entry_vkGetDisplayModeProperties2KHR : nullptr;
8042 }
8043 if (!strcmp(name, "vkGetDisplayPlaneCapabilities2KHR"))
8044 {
8045 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_display_properties2");
8046 return hasExt ? (void*)entry_vkGetDisplayPlaneCapabilities2KHR : nullptr;
8047 }
8048#endif
8049#ifdef VK_KHR_get_memory_requirements2
8050 if (!strcmp(name, "vkGetImageMemoryRequirements2KHR"))
8051 {
8052 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_memory_requirements2");
8053 return hasExt ? (void*)entry_vkGetImageMemoryRequirements2KHR : nullptr;
8054 }
8055 if (!strcmp(name, "vkGetBufferMemoryRequirements2KHR"))
8056 {
8057 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_memory_requirements2");
8058 return hasExt ? (void*)entry_vkGetBufferMemoryRequirements2KHR : nullptr;
8059 }
8060 if (!strcmp(name, "vkGetImageSparseMemoryRequirements2KHR"))
8061 {
8062 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_memory_requirements2");
8063 return hasExt ? (void*)entry_vkGetImageSparseMemoryRequirements2KHR : nullptr;
8064 }
8065#endif
8066#ifdef VK_KHR_sampler_ycbcr_conversion
8067 if (!strcmp(name, "vkCreateSamplerYcbcrConversionKHR"))
8068 {
8069 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_sampler_ycbcr_conversion");
8070 return hasExt ? (void*)entry_vkCreateSamplerYcbcrConversionKHR : nullptr;
8071 }
8072 if (!strcmp(name, "vkDestroySamplerYcbcrConversionKHR"))
8073 {
8074 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_sampler_ycbcr_conversion");
8075 return hasExt ? (void*)entry_vkDestroySamplerYcbcrConversionKHR : nullptr;
8076 }
8077#endif
8078#ifdef VK_KHR_bind_memory2
8079 if (!strcmp(name, "vkBindBufferMemory2KHR"))
8080 {
8081 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_bind_memory2");
8082 return hasExt ? (void*)entry_vkBindBufferMemory2KHR : nullptr;
8083 }
8084 if (!strcmp(name, "vkBindImageMemory2KHR"))
8085 {
8086 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_bind_memory2");
8087 return hasExt ? (void*)entry_vkBindImageMemory2KHR : nullptr;
8088 }
8089#endif
8090#ifdef VK_KHR_maintenance3
8091 if (!strcmp(name, "vkGetDescriptorSetLayoutSupportKHR"))
8092 {
8093 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_maintenance3");
8094 return hasExt ? (void*)entry_vkGetDescriptorSetLayoutSupportKHR : nullptr;
8095 }
8096#endif
8097#ifdef VK_KHR_draw_indirect_count
8098 if (!strcmp(name, "vkCmdDrawIndirectCountKHR"))
8099 {
8100 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_draw_indirect_count");
8101 return hasExt ? (void*)entry_vkCmdDrawIndirectCountKHR : nullptr;
8102 }
8103 if (!strcmp(name, "vkCmdDrawIndexedIndirectCountKHR"))
8104 {
8105 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_draw_indirect_count");
8106 return hasExt ? (void*)entry_vkCmdDrawIndexedIndirectCountKHR : nullptr;
8107 }
8108#endif
8109#ifdef VK_ANDROID_native_buffer
8110 if (!strcmp(name, "vkGetSwapchainGrallocUsageANDROID"))
8111 {
8112 bool hasExt = resources->hasDeviceExtension(device, "VK_ANDROID_native_buffer");
8113 return hasExt ? (void*)entry_vkGetSwapchainGrallocUsageANDROID : nullptr;
8114 }
8115 if (!strcmp(name, "vkAcquireImageANDROID"))
8116 {
8117 bool hasExt = resources->hasDeviceExtension(device, "VK_ANDROID_native_buffer");
8118 return hasExt ? (void*)entry_vkAcquireImageANDROID : nullptr;
8119 }
8120 if (!strcmp(name, "vkQueueSignalReleaseImageANDROID"))
8121 {
8122 bool hasExt = resources->hasDeviceExtension(device, "VK_ANDROID_native_buffer");
8123 return hasExt ? (void*)entry_vkQueueSignalReleaseImageANDROID : nullptr;
8124 }
8125#endif
8126#ifdef VK_EXT_debug_report
8127 if (!strcmp(name, "vkCreateDebugReportCallbackEXT"))
8128 {
8129 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_report");
8130 return hasExt ? (void*)entry_vkCreateDebugReportCallbackEXT : nullptr;
8131 }
8132 if (!strcmp(name, "vkDestroyDebugReportCallbackEXT"))
8133 {
8134 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_report");
8135 return hasExt ? (void*)entry_vkDestroyDebugReportCallbackEXT : nullptr;
8136 }
8137 if (!strcmp(name, "vkDebugReportMessageEXT"))
8138 {
8139 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_report");
8140 return hasExt ? (void*)entry_vkDebugReportMessageEXT : nullptr;
8141 }
8142#endif
8143#ifdef VK_EXT_debug_marker
8144 if (!strcmp(name, "vkDebugMarkerSetObjectTagEXT"))
8145 {
8146 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_marker");
8147 return hasExt ? (void*)entry_vkDebugMarkerSetObjectTagEXT : nullptr;
8148 }
8149 if (!strcmp(name, "vkDebugMarkerSetObjectNameEXT"))
8150 {
8151 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_marker");
8152 return hasExt ? (void*)entry_vkDebugMarkerSetObjectNameEXT : nullptr;
8153 }
8154 if (!strcmp(name, "vkCmdDebugMarkerBeginEXT"))
8155 {
8156 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_marker");
8157 return hasExt ? (void*)entry_vkCmdDebugMarkerBeginEXT : nullptr;
8158 }
8159 if (!strcmp(name, "vkCmdDebugMarkerEndEXT"))
8160 {
8161 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_marker");
8162 return hasExt ? (void*)entry_vkCmdDebugMarkerEndEXT : nullptr;
8163 }
8164 if (!strcmp(name, "vkCmdDebugMarkerInsertEXT"))
8165 {
8166 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_marker");
8167 return hasExt ? (void*)entry_vkCmdDebugMarkerInsertEXT : nullptr;
8168 }
8169#endif
8170#ifdef VK_AMD_draw_indirect_count
8171 if (!strcmp(name, "vkCmdDrawIndirectCountAMD"))
8172 {
8173 bool hasExt = resources->hasDeviceExtension(device, "VK_AMD_draw_indirect_count");
8174 return hasExt ? (void*)entry_vkCmdDrawIndirectCountAMD : nullptr;
8175 }
8176 if (!strcmp(name, "vkCmdDrawIndexedIndirectCountAMD"))
8177 {
8178 bool hasExt = resources->hasDeviceExtension(device, "VK_AMD_draw_indirect_count");
8179 return hasExt ? (void*)entry_vkCmdDrawIndexedIndirectCountAMD : nullptr;
8180 }
8181#endif
8182#ifdef VK_AMD_shader_info
8183 if (!strcmp(name, "vkGetShaderInfoAMD"))
8184 {
8185 bool hasExt = resources->hasDeviceExtension(device, "VK_AMD_shader_info");
8186 return hasExt ? (void*)entry_vkGetShaderInfoAMD : nullptr;
8187 }
8188#endif
8189#ifdef VK_NV_external_memory_capabilities
8190 if (!strcmp(name, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV"))
8191 {
8192 bool hasExt = resources->hasDeviceExtension(device, "VK_NV_external_memory_capabilities");
8193 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalImageFormatPropertiesNV : nullptr;
8194 }
8195#endif
8196#ifdef VK_NV_external_memory_win32
8197 if (!strcmp(name, "vkGetMemoryWin32HandleNV"))
8198 {
8199 bool hasExt = resources->hasDeviceExtension(device, "VK_NV_external_memory_win32");
8200 return hasExt ? (void*)entry_vkGetMemoryWin32HandleNV : nullptr;
8201 }
8202#endif
8203#ifdef VK_NN_vi_surface
8204 if (!strcmp(name, "vkCreateViSurfaceNN"))
8205 {
8206 bool hasExt = resources->hasDeviceExtension(device, "VK_NN_vi_surface");
8207 return hasExt ? (void*)entry_vkCreateViSurfaceNN : nullptr;
8208 }
8209#endif
8210#ifdef VK_EXT_conditional_rendering
8211 if (!strcmp(name, "vkCmdBeginConditionalRenderingEXT"))
8212 {
8213 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_conditional_rendering");
8214 return hasExt ? (void*)entry_vkCmdBeginConditionalRenderingEXT : nullptr;
8215 }
8216 if (!strcmp(name, "vkCmdEndConditionalRenderingEXT"))
8217 {
8218 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_conditional_rendering");
8219 return hasExt ? (void*)entry_vkCmdEndConditionalRenderingEXT : nullptr;
8220 }
8221#endif
8222#ifdef VK_NVX_device_generated_commands
8223 if (!strcmp(name, "vkCmdProcessCommandsNVX"))
8224 {
8225 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
8226 return hasExt ? (void*)entry_vkCmdProcessCommandsNVX : nullptr;
8227 }
8228 if (!strcmp(name, "vkCmdReserveSpaceForCommandsNVX"))
8229 {
8230 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
8231 return hasExt ? (void*)entry_vkCmdReserveSpaceForCommandsNVX : nullptr;
8232 }
8233 if (!strcmp(name, "vkCreateIndirectCommandsLayoutNVX"))
8234 {
8235 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
8236 return hasExt ? (void*)entry_vkCreateIndirectCommandsLayoutNVX : nullptr;
8237 }
8238 if (!strcmp(name, "vkDestroyIndirectCommandsLayoutNVX"))
8239 {
8240 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
8241 return hasExt ? (void*)entry_vkDestroyIndirectCommandsLayoutNVX : nullptr;
8242 }
8243 if (!strcmp(name, "vkCreateObjectTableNVX"))
8244 {
8245 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
8246 return hasExt ? (void*)entry_vkCreateObjectTableNVX : nullptr;
8247 }
8248 if (!strcmp(name, "vkDestroyObjectTableNVX"))
8249 {
8250 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
8251 return hasExt ? (void*)entry_vkDestroyObjectTableNVX : nullptr;
8252 }
8253 if (!strcmp(name, "vkRegisterObjectsNVX"))
8254 {
8255 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
8256 return hasExt ? (void*)entry_vkRegisterObjectsNVX : nullptr;
8257 }
8258 if (!strcmp(name, "vkUnregisterObjectsNVX"))
8259 {
8260 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
8261 return hasExt ? (void*)entry_vkUnregisterObjectsNVX : nullptr;
8262 }
8263 if (!strcmp(name, "vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX"))
8264 {
8265 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
8266 return hasExt ? (void*)entry_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX : nullptr;
8267 }
8268#endif
8269#ifdef VK_NV_clip_space_w_scaling
8270 if (!strcmp(name, "vkCmdSetViewportWScalingNV"))
8271 {
8272 bool hasExt = resources->hasDeviceExtension(device, "VK_NV_clip_space_w_scaling");
8273 return hasExt ? (void*)entry_vkCmdSetViewportWScalingNV : nullptr;
8274 }
8275#endif
8276#ifdef VK_EXT_direct_mode_display
8277 if (!strcmp(name, "vkReleaseDisplayEXT"))
8278 {
8279 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_direct_mode_display");
8280 return hasExt ? (void*)entry_vkReleaseDisplayEXT : nullptr;
8281 }
8282#endif
8283#ifdef VK_EXT_acquire_xlib_display
8284 if (!strcmp(name, "vkAcquireXlibDisplayEXT"))
8285 {
8286 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_acquire_xlib_display");
8287 return hasExt ? (void*)entry_vkAcquireXlibDisplayEXT : nullptr;
8288 }
8289 if (!strcmp(name, "vkGetRandROutputDisplayEXT"))
8290 {
8291 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_acquire_xlib_display");
8292 return hasExt ? (void*)entry_vkGetRandROutputDisplayEXT : nullptr;
8293 }
8294#endif
8295#ifdef VK_EXT_display_surface_counter
8296 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2EXT"))
8297 {
8298 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_display_surface_counter");
8299 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceCapabilities2EXT : nullptr;
8300 }
8301#endif
8302#ifdef VK_EXT_display_control
8303 if (!strcmp(name, "vkDisplayPowerControlEXT"))
8304 {
8305 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_display_control");
8306 return hasExt ? (void*)entry_vkDisplayPowerControlEXT : nullptr;
8307 }
8308 if (!strcmp(name, "vkRegisterDeviceEventEXT"))
8309 {
8310 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_display_control");
8311 return hasExt ? (void*)entry_vkRegisterDeviceEventEXT : nullptr;
8312 }
8313 if (!strcmp(name, "vkRegisterDisplayEventEXT"))
8314 {
8315 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_display_control");
8316 return hasExt ? (void*)entry_vkRegisterDisplayEventEXT : nullptr;
8317 }
8318 if (!strcmp(name, "vkGetSwapchainCounterEXT"))
8319 {
8320 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_display_control");
8321 return hasExt ? (void*)entry_vkGetSwapchainCounterEXT : nullptr;
8322 }
8323#endif
8324#ifdef VK_GOOGLE_display_timing
8325 if (!strcmp(name, "vkGetRefreshCycleDurationGOOGLE"))
8326 {
8327 bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_display_timing");
8328 return hasExt ? (void*)entry_vkGetRefreshCycleDurationGOOGLE : nullptr;
8329 }
8330 if (!strcmp(name, "vkGetPastPresentationTimingGOOGLE"))
8331 {
8332 bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_display_timing");
8333 return hasExt ? (void*)entry_vkGetPastPresentationTimingGOOGLE : nullptr;
8334 }
8335#endif
8336#ifdef VK_EXT_discard_rectangles
8337 if (!strcmp(name, "vkCmdSetDiscardRectangleEXT"))
8338 {
8339 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_discard_rectangles");
8340 return hasExt ? (void*)entry_vkCmdSetDiscardRectangleEXT : nullptr;
8341 }
8342#endif
8343#ifdef VK_EXT_hdr_metadata
8344 if (!strcmp(name, "vkSetHdrMetadataEXT"))
8345 {
8346 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_hdr_metadata");
8347 return hasExt ? (void*)entry_vkSetHdrMetadataEXT : nullptr;
8348 }
8349#endif
8350#ifdef VK_MVK_ios_surface
8351 if (!strcmp(name, "vkCreateIOSSurfaceMVK"))
8352 {
8353 bool hasExt = resources->hasDeviceExtension(device, "VK_MVK_ios_surface");
8354 return hasExt ? (void*)entry_vkCreateIOSSurfaceMVK : nullptr;
8355 }
8356#endif
8357#ifdef VK_MVK_macos_surface
8358 if (!strcmp(name, "vkCreateMacOSSurfaceMVK"))
8359 {
8360 bool hasExt = resources->hasDeviceExtension(device, "VK_MVK_macos_surface");
8361 return hasExt ? (void*)entry_vkCreateMacOSSurfaceMVK : nullptr;
8362 }
8363#endif
8364#ifdef VK_EXT_debug_utils
8365 if (!strcmp(name, "vkSetDebugUtilsObjectNameEXT"))
8366 {
8367 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8368 return hasExt ? (void*)entry_vkSetDebugUtilsObjectNameEXT : nullptr;
8369 }
8370 if (!strcmp(name, "vkSetDebugUtilsObjectTagEXT"))
8371 {
8372 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8373 return hasExt ? (void*)entry_vkSetDebugUtilsObjectTagEXT : nullptr;
8374 }
8375 if (!strcmp(name, "vkQueueBeginDebugUtilsLabelEXT"))
8376 {
8377 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8378 return hasExt ? (void*)entry_vkQueueBeginDebugUtilsLabelEXT : nullptr;
8379 }
8380 if (!strcmp(name, "vkQueueEndDebugUtilsLabelEXT"))
8381 {
8382 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8383 return hasExt ? (void*)entry_vkQueueEndDebugUtilsLabelEXT : nullptr;
8384 }
8385 if (!strcmp(name, "vkQueueInsertDebugUtilsLabelEXT"))
8386 {
8387 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8388 return hasExt ? (void*)entry_vkQueueInsertDebugUtilsLabelEXT : nullptr;
8389 }
8390 if (!strcmp(name, "vkCmdBeginDebugUtilsLabelEXT"))
8391 {
8392 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8393 return hasExt ? (void*)entry_vkCmdBeginDebugUtilsLabelEXT : nullptr;
8394 }
8395 if (!strcmp(name, "vkCmdEndDebugUtilsLabelEXT"))
8396 {
8397 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8398 return hasExt ? (void*)entry_vkCmdEndDebugUtilsLabelEXT : nullptr;
8399 }
8400 if (!strcmp(name, "vkCmdInsertDebugUtilsLabelEXT"))
8401 {
8402 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8403 return hasExt ? (void*)entry_vkCmdInsertDebugUtilsLabelEXT : nullptr;
8404 }
8405 if (!strcmp(name, "vkCreateDebugUtilsMessengerEXT"))
8406 {
8407 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8408 return hasExt ? (void*)entry_vkCreateDebugUtilsMessengerEXT : nullptr;
8409 }
8410 if (!strcmp(name, "vkDestroyDebugUtilsMessengerEXT"))
8411 {
8412 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8413 return hasExt ? (void*)entry_vkDestroyDebugUtilsMessengerEXT : nullptr;
8414 }
8415 if (!strcmp(name, "vkSubmitDebugUtilsMessageEXT"))
8416 {
8417 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8418 return hasExt ? (void*)entry_vkSubmitDebugUtilsMessageEXT : nullptr;
8419 }
8420#endif
8421#ifdef VK_ANDROID_external_memory_android_hardware_buffer
8422 if (!strcmp(name, "vkGetAndroidHardwareBufferPropertiesANDROID"))
8423 {
8424 bool hasExt = resources->hasDeviceExtension(device, "VK_ANDROID_external_memory_android_hardware_buffer");
8425 return hasExt ? (void*)entry_vkGetAndroidHardwareBufferPropertiesANDROID : nullptr;
8426 }
8427 if (!strcmp(name, "vkGetMemoryAndroidHardwareBufferANDROID"))
8428 {
8429 bool hasExt = resources->hasDeviceExtension(device, "VK_ANDROID_external_memory_android_hardware_buffer");
8430 return hasExt ? (void*)entry_vkGetMemoryAndroidHardwareBufferANDROID : nullptr;
8431 }
8432#endif
8433#ifdef VK_EXT_sample_locations
8434 if (!strcmp(name, "vkCmdSetSampleLocationsEXT"))
8435 {
8436 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_sample_locations");
8437 return hasExt ? (void*)entry_vkCmdSetSampleLocationsEXT : nullptr;
8438 }
8439 if (!strcmp(name, "vkGetPhysicalDeviceMultisamplePropertiesEXT"))
8440 {
8441 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_sample_locations");
8442 return hasExt ? (void*)entry_vkGetPhysicalDeviceMultisamplePropertiesEXT : nullptr;
8443 }
8444#endif
8445#ifdef VK_EXT_validation_cache
8446 if (!strcmp(name, "vkCreateValidationCacheEXT"))
8447 {
8448 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_validation_cache");
8449 return hasExt ? (void*)entry_vkCreateValidationCacheEXT : nullptr;
8450 }
8451 if (!strcmp(name, "vkDestroyValidationCacheEXT"))
8452 {
8453 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_validation_cache");
8454 return hasExt ? (void*)entry_vkDestroyValidationCacheEXT : nullptr;
8455 }
8456 if (!strcmp(name, "vkMergeValidationCachesEXT"))
8457 {
8458 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_validation_cache");
8459 return hasExt ? (void*)entry_vkMergeValidationCachesEXT : nullptr;
8460 }
8461 if (!strcmp(name, "vkGetValidationCacheDataEXT"))
8462 {
8463 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_validation_cache");
8464 return hasExt ? (void*)entry_vkGetValidationCacheDataEXT : nullptr;
8465 }
8466#endif
8467#ifdef VK_EXT_external_memory_host
8468 if (!strcmp(name, "vkGetMemoryHostPointerPropertiesEXT"))
8469 {
8470 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_external_memory_host");
8471 return hasExt ? (void*)entry_vkGetMemoryHostPointerPropertiesEXT : nullptr;
8472 }
8473#endif
8474#ifdef VK_AMD_buffer_marker
8475 if (!strcmp(name, "vkCmdWriteBufferMarkerAMD"))
8476 {
8477 bool hasExt = resources->hasDeviceExtension(device, "VK_AMD_buffer_marker");
8478 return hasExt ? (void*)entry_vkCmdWriteBufferMarkerAMD : nullptr;
8479 }
8480#endif
8481#ifdef VK_NV_device_diagnostic_checkpoints
8482 if (!strcmp(name, "vkCmdSetCheckpointNV"))
8483 {
8484 bool hasExt = resources->hasDeviceExtension(device, "VK_NV_device_diagnostic_checkpoints");
8485 return hasExt ? (void*)entry_vkCmdSetCheckpointNV : nullptr;
8486 }
8487 if (!strcmp(name, "vkGetQueueCheckpointDataNV"))
8488 {
8489 bool hasExt = resources->hasDeviceExtension(device, "VK_NV_device_diagnostic_checkpoints");
8490 return hasExt ? (void*)entry_vkGetQueueCheckpointDataNV : nullptr;
8491 }
8492#endif
8493#ifdef VK_GOOGLE_address_space
8494 if (!strcmp(name, "vkMapMemoryIntoAddressSpaceGOOGLE"))
8495 {
8496 bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_address_space");
8497 return hasExt ? (void*)entry_vkMapMemoryIntoAddressSpaceGOOGLE : nullptr;
Lingfeng Yang5c63afd2018-12-22 01:21:14 -08008498 }
8499#endif
Lingfeng Yangae7e1b32019-02-19 14:07:39 -08008500#ifdef VK_GOOGLE_color_buffer
8501 if (!strcmp(name, "vkRegisterImageColorBufferGOOGLE"))
8502 {
8503 bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_color_buffer");
8504 return hasExt ? (void*)entry_vkRegisterImageColorBufferGOOGLE : nullptr;
8505 }
8506 if (!strcmp(name, "vkRegisterBufferColorBufferGOOGLE"))
8507 {
8508 bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_color_buffer");
8509 return hasExt ? (void*)entry_vkRegisterBufferColorBufferGOOGLE : nullptr;
8510 }
8511#endif
Lingfeng Yang05d5ea32019-03-23 00:12:39 -07008512#ifdef VK_GOOGLE_sized_descriptor_update_template
8513 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplateSizedGOOGLE"))
8514 {
8515 bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_sized_descriptor_update_template");
8516 return hasExt ? (void*)entry_vkUpdateDescriptorSetWithTemplateSizedGOOGLE : nullptr;
8517 }
8518#endif
Lingfeng Yangc53e7472019-03-27 08:50:55 -07008519#ifdef VK_GOOGLE_async_command_buffers
8520 if (!strcmp(name, "vkBeginCommandBufferAsyncGOOGLE"))
8521 {
8522 bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_async_command_buffers");
8523 return hasExt ? (void*)entry_vkBeginCommandBufferAsyncGOOGLE : nullptr;
8524 }
8525 if (!strcmp(name, "vkEndCommandBufferAsyncGOOGLE"))
8526 {
8527 bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_async_command_buffers");
8528 return hasExt ? (void*)entry_vkEndCommandBufferAsyncGOOGLE : nullptr;
8529 }
8530 if (!strcmp(name, "vkResetCommandBufferAsyncGOOGLE"))
8531 {
8532 bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_async_command_buffers");
8533 return hasExt ? (void*)entry_vkResetCommandBufferAsyncGOOGLE : nullptr;
8534 }
Lingfeng Yang39a276e2019-06-17 13:27:22 -07008535 if (!strcmp(name, "vkCommandBufferHostSyncGOOGLE"))
8536 {
8537 bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_async_command_buffers");
8538 return hasExt ? (void*)entry_vkCommandBufferHostSyncGOOGLE : nullptr;
8539 }
Lingfeng Yangc53e7472019-03-27 08:50:55 -07008540#endif
Lingfeng Yang87f11962019-06-27 16:28:53 +00008541#ifdef VK_GOOGLE_create_resources_with_requirements
8542 if (!strcmp(name, "vkCreateImageWithRequirementsGOOGLE"))
8543 {
8544 bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_create_resources_with_requirements");
8545 return hasExt ? (void*)entry_vkCreateImageWithRequirementsGOOGLE : nullptr;
8546 }
8547 if (!strcmp(name, "vkCreateBufferWithRequirementsGOOGLE"))
8548 {
8549 bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_create_resources_with_requirements");
8550 return hasExt ? (void*)entry_vkCreateBufferWithRequirementsGOOGLE : nullptr;
8551 }
8552#endif
Lingfeng Yang0b81df22018-11-05 21:40:30 -08008553 return nullptr;
8554}
8555
8556} // namespace goldfish_vk