blob: f0ed982cf971546cdf4e5d1215f3b4e379d95523 [file] [log] [blame]
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001// Copyright (C) 2018 The Android Open Source Project
2// Copyright (C) 2018 Google Inc.
3//
4// Licensed under the Apache License, Version 2.0 (the "License");
5// you may not use this file except in compliance with the License.
6// You may obtain a copy of the License at
7//
8// http://www.apache.org/licenses/LICENSE-2.0
9//
10// Unless required by applicable law or agreed to in writing, software
11// distributed under the License is distributed on an "AS IS" BASIS,
12// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13// See the License for the specific language governing permissions and
14// limitations under the License.
15
16// Autogenerated module func_table
17// (impl) generated by android/android-emugl/host/libs/libOpenglRender/vulkan-registry/xml/genvk.py -registry android/android-emugl/host/libs/libOpenglRender/vulkan-registry/xml/vk.xml cereal -o android/android-emugl/host/libs/libOpenglRender/vulkan/cereal
18// Please do not modify directly;
19// re-run android/scripts/generate-vulkan-sources.sh,
20// or directly from Python by defining:
21// VULKAN_REGISTRY_XML_DIR : Directory containing genvk.py and vk.xml
22// CEREAL_OUTPUT_DIR: Where to put the generated sources.
23// python3 $VULKAN_REGISTRY_XML_DIR/genvk.py -registry $VULKAN_REGISTRY_XML_DIR/vk.xml cereal -o $CEREAL_OUTPUT_DIR
24
25#include "func_table.h"
26
27
28#include "VkEncoder.h"
29#include "HostConnection.h"
Lingfeng Yange9979522018-12-25 14:44:52 -080030#include "ResourceTracker.h"
Lingfeng Yang0b81df22018-11-05 21:40:30 -080031
Lingfeng Yang808a6312018-11-13 21:06:15 -080032#include "goldfish_vk_private_defs.h"
33
Lingfeng Yang0b81df22018-11-05 21:40:30 -080034// Stuff we are not going to use but if included,
35// will cause compile errors. These are Android Vulkan
36// required extensions, but the approach will be to
37// implement them completely on the guest side.
38#undef VK_KHR_android_surface
Lingfeng Yang0b81df22018-11-05 21:40:30 -080039
40
41namespace goldfish_vk {
42
43#ifdef VK_VERSION_1_0
44static VkResult entry_vkCreateInstance(
45 const VkInstanceCreateInfo* pCreateInfo,
46 const VkAllocationCallbacks* pAllocator,
47 VkInstance* pInstance)
48{
Lingfeng Yang42ac1792019-02-22 20:13:44 -080049 AEMU_SCOPED_TRACE("vkCreateInstance");
Lingfeng Yang0b81df22018-11-05 21:40:30 -080050 auto vkEnc = HostConnection::get()->vkEncoder();
51 VkResult vkCreateInstance_VkResult_return = (VkResult)0;
52 vkCreateInstance_VkResult_return = vkEnc->vkCreateInstance(pCreateInfo, pAllocator, pInstance);
53 return vkCreateInstance_VkResult_return;
54}
55static void entry_vkDestroyInstance(
56 VkInstance instance,
57 const VkAllocationCallbacks* pAllocator)
58{
Lingfeng Yang42ac1792019-02-22 20:13:44 -080059 AEMU_SCOPED_TRACE("vkDestroyInstance");
Lingfeng Yang0b81df22018-11-05 21:40:30 -080060 auto vkEnc = HostConnection::get()->vkEncoder();
61 vkEnc->vkDestroyInstance(instance, pAllocator);
62}
63static VkResult entry_vkEnumeratePhysicalDevices(
64 VkInstance instance,
65 uint32_t* pPhysicalDeviceCount,
66 VkPhysicalDevice* pPhysicalDevices)
67{
Lingfeng Yang42ac1792019-02-22 20:13:44 -080068 AEMU_SCOPED_TRACE("vkEnumeratePhysicalDevices");
Lingfeng Yang0b81df22018-11-05 21:40:30 -080069 auto vkEnc = HostConnection::get()->vkEncoder();
70 VkResult vkEnumeratePhysicalDevices_VkResult_return = (VkResult)0;
Lingfeng Yangb64ca452019-02-14 22:04:28 -080071 auto resources = ResourceTracker::get();
72 vkEnumeratePhysicalDevices_VkResult_return = resources->on_vkEnumeratePhysicalDevices(vkEnc, VK_SUCCESS, instance, pPhysicalDeviceCount, pPhysicalDevices);
Lingfeng Yang0b81df22018-11-05 21:40:30 -080073 return vkEnumeratePhysicalDevices_VkResult_return;
74}
75static void entry_vkGetPhysicalDeviceFeatures(
76 VkPhysicalDevice physicalDevice,
77 VkPhysicalDeviceFeatures* pFeatures)
78{
Lingfeng Yang42ac1792019-02-22 20:13:44 -080079 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFeatures");
Lingfeng Yang0b81df22018-11-05 21:40:30 -080080 auto vkEnc = HostConnection::get()->vkEncoder();
81 vkEnc->vkGetPhysicalDeviceFeatures(physicalDevice, pFeatures);
82}
83static void entry_vkGetPhysicalDeviceFormatProperties(
84 VkPhysicalDevice physicalDevice,
85 VkFormat format,
86 VkFormatProperties* pFormatProperties)
87{
Lingfeng Yang42ac1792019-02-22 20:13:44 -080088 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFormatProperties");
Lingfeng Yang0b81df22018-11-05 21:40:30 -080089 auto vkEnc = HostConnection::get()->vkEncoder();
90 vkEnc->vkGetPhysicalDeviceFormatProperties(physicalDevice, format, pFormatProperties);
91}
92static VkResult entry_vkGetPhysicalDeviceImageFormatProperties(
93 VkPhysicalDevice physicalDevice,
94 VkFormat format,
95 VkImageType type,
96 VkImageTiling tiling,
97 VkImageUsageFlags usage,
98 VkImageCreateFlags flags,
99 VkImageFormatProperties* pImageFormatProperties)
100{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800101 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceImageFormatProperties");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800102 auto vkEnc = HostConnection::get()->vkEncoder();
103 VkResult vkGetPhysicalDeviceImageFormatProperties_VkResult_return = (VkResult)0;
104 vkGetPhysicalDeviceImageFormatProperties_VkResult_return = vkEnc->vkGetPhysicalDeviceImageFormatProperties(physicalDevice, format, type, tiling, usage, flags, pImageFormatProperties);
105 return vkGetPhysicalDeviceImageFormatProperties_VkResult_return;
106}
107static void entry_vkGetPhysicalDeviceProperties(
108 VkPhysicalDevice physicalDevice,
109 VkPhysicalDeviceProperties* pProperties)
110{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800111 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceProperties");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800112 auto vkEnc = HostConnection::get()->vkEncoder();
113 vkEnc->vkGetPhysicalDeviceProperties(physicalDevice, pProperties);
114}
115static void entry_vkGetPhysicalDeviceQueueFamilyProperties(
116 VkPhysicalDevice physicalDevice,
117 uint32_t* pQueueFamilyPropertyCount,
118 VkQueueFamilyProperties* pQueueFamilyProperties)
119{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800120 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceQueueFamilyProperties");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800121 auto vkEnc = HostConnection::get()->vkEncoder();
122 vkEnc->vkGetPhysicalDeviceQueueFamilyProperties(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties);
123}
124static void entry_vkGetPhysicalDeviceMemoryProperties(
125 VkPhysicalDevice physicalDevice,
126 VkPhysicalDeviceMemoryProperties* pMemoryProperties)
127{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800128 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMemoryProperties");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800129 auto vkEnc = HostConnection::get()->vkEncoder();
130 vkEnc->vkGetPhysicalDeviceMemoryProperties(physicalDevice, pMemoryProperties);
131}
132static PFN_vkVoidFunction entry_vkGetInstanceProcAddr(
133 VkInstance instance,
134 const char* pName)
135{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800136 AEMU_SCOPED_TRACE("vkGetInstanceProcAddr");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800137 auto vkEnc = HostConnection::get()->vkEncoder();
138 PFN_vkVoidFunction vkGetInstanceProcAddr_PFN_vkVoidFunction_return = (PFN_vkVoidFunction)0;
139 vkGetInstanceProcAddr_PFN_vkVoidFunction_return = vkEnc->vkGetInstanceProcAddr(instance, pName);
140 return vkGetInstanceProcAddr_PFN_vkVoidFunction_return;
141}
142static PFN_vkVoidFunction entry_vkGetDeviceProcAddr(
143 VkDevice device,
144 const char* pName)
145{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800146 AEMU_SCOPED_TRACE("vkGetDeviceProcAddr");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800147 auto vkEnc = HostConnection::get()->vkEncoder();
148 PFN_vkVoidFunction vkGetDeviceProcAddr_PFN_vkVoidFunction_return = (PFN_vkVoidFunction)0;
149 vkGetDeviceProcAddr_PFN_vkVoidFunction_return = vkEnc->vkGetDeviceProcAddr(device, pName);
150 return vkGetDeviceProcAddr_PFN_vkVoidFunction_return;
151}
152static VkResult entry_vkCreateDevice(
153 VkPhysicalDevice physicalDevice,
154 const VkDeviceCreateInfo* pCreateInfo,
155 const VkAllocationCallbacks* pAllocator,
156 VkDevice* pDevice)
157{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800158 AEMU_SCOPED_TRACE("vkCreateDevice");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800159 auto vkEnc = HostConnection::get()->vkEncoder();
160 VkResult vkCreateDevice_VkResult_return = (VkResult)0;
161 vkCreateDevice_VkResult_return = vkEnc->vkCreateDevice(physicalDevice, pCreateInfo, pAllocator, pDevice);
162 return vkCreateDevice_VkResult_return;
163}
164static void entry_vkDestroyDevice(
165 VkDevice device,
166 const VkAllocationCallbacks* pAllocator)
167{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800168 AEMU_SCOPED_TRACE("vkDestroyDevice");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800169 auto vkEnc = HostConnection::get()->vkEncoder();
170 vkEnc->vkDestroyDevice(device, pAllocator);
171}
172static VkResult entry_vkEnumerateInstanceExtensionProperties(
173 const char* pLayerName,
174 uint32_t* pPropertyCount,
175 VkExtensionProperties* pProperties)
176{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800177 AEMU_SCOPED_TRACE("vkEnumerateInstanceExtensionProperties");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800178 auto vkEnc = HostConnection::get()->vkEncoder();
179 VkResult vkEnumerateInstanceExtensionProperties_VkResult_return = (VkResult)0;
Lingfeng Yang154a33c2019-01-29 19:06:23 -0800180 auto resources = ResourceTracker::get();
181 vkEnumerateInstanceExtensionProperties_VkResult_return = resources->on_vkEnumerateInstanceExtensionProperties(vkEnc, VK_SUCCESS, pLayerName, pPropertyCount, pProperties);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800182 return vkEnumerateInstanceExtensionProperties_VkResult_return;
183}
184static VkResult entry_vkEnumerateDeviceExtensionProperties(
185 VkPhysicalDevice physicalDevice,
186 const char* pLayerName,
187 uint32_t* pPropertyCount,
188 VkExtensionProperties* pProperties)
189{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800190 AEMU_SCOPED_TRACE("vkEnumerateDeviceExtensionProperties");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800191 auto vkEnc = HostConnection::get()->vkEncoder();
192 VkResult vkEnumerateDeviceExtensionProperties_VkResult_return = (VkResult)0;
Lingfeng Yang154a33c2019-01-29 19:06:23 -0800193 auto resources = ResourceTracker::get();
194 vkEnumerateDeviceExtensionProperties_VkResult_return = resources->on_vkEnumerateDeviceExtensionProperties(vkEnc, VK_SUCCESS, physicalDevice, pLayerName, pPropertyCount, pProperties);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800195 return vkEnumerateDeviceExtensionProperties_VkResult_return;
196}
197static VkResult entry_vkEnumerateInstanceLayerProperties(
198 uint32_t* pPropertyCount,
199 VkLayerProperties* pProperties)
200{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800201 AEMU_SCOPED_TRACE("vkEnumerateInstanceLayerProperties");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800202 auto vkEnc = HostConnection::get()->vkEncoder();
203 VkResult vkEnumerateInstanceLayerProperties_VkResult_return = (VkResult)0;
204 vkEnumerateInstanceLayerProperties_VkResult_return = vkEnc->vkEnumerateInstanceLayerProperties(pPropertyCount, pProperties);
205 return vkEnumerateInstanceLayerProperties_VkResult_return;
206}
207static VkResult entry_vkEnumerateDeviceLayerProperties(
208 VkPhysicalDevice physicalDevice,
209 uint32_t* pPropertyCount,
210 VkLayerProperties* pProperties)
211{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800212 AEMU_SCOPED_TRACE("vkEnumerateDeviceLayerProperties");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800213 auto vkEnc = HostConnection::get()->vkEncoder();
214 VkResult vkEnumerateDeviceLayerProperties_VkResult_return = (VkResult)0;
215 vkEnumerateDeviceLayerProperties_VkResult_return = vkEnc->vkEnumerateDeviceLayerProperties(physicalDevice, pPropertyCount, pProperties);
216 return vkEnumerateDeviceLayerProperties_VkResult_return;
217}
218static void entry_vkGetDeviceQueue(
219 VkDevice device,
220 uint32_t queueFamilyIndex,
221 uint32_t queueIndex,
222 VkQueue* pQueue)
223{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800224 AEMU_SCOPED_TRACE("vkGetDeviceQueue");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800225 auto vkEnc = HostConnection::get()->vkEncoder();
226 vkEnc->vkGetDeviceQueue(device, queueFamilyIndex, queueIndex, pQueue);
227}
228static VkResult entry_vkQueueSubmit(
229 VkQueue queue,
230 uint32_t submitCount,
231 const VkSubmitInfo* pSubmits,
232 VkFence fence)
233{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800234 AEMU_SCOPED_TRACE("vkQueueSubmit");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800235 auto vkEnc = HostConnection::get()->vkEncoder();
236 VkResult vkQueueSubmit_VkResult_return = (VkResult)0;
David Reveman24710222019-02-25 02:21:42 -0500237 auto resources = ResourceTracker::get();
238 vkQueueSubmit_VkResult_return = resources->on_vkQueueSubmit(vkEnc, VK_SUCCESS, queue, submitCount, pSubmits, fence);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800239 return vkQueueSubmit_VkResult_return;
240}
241static VkResult entry_vkQueueWaitIdle(
242 VkQueue queue)
243{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800244 AEMU_SCOPED_TRACE("vkQueueWaitIdle");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800245 auto vkEnc = HostConnection::get()->vkEncoder();
246 VkResult vkQueueWaitIdle_VkResult_return = (VkResult)0;
247 vkQueueWaitIdle_VkResult_return = vkEnc->vkQueueWaitIdle(queue);
248 return vkQueueWaitIdle_VkResult_return;
249}
250static VkResult entry_vkDeviceWaitIdle(
251 VkDevice device)
252{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800253 AEMU_SCOPED_TRACE("vkDeviceWaitIdle");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800254 auto vkEnc = HostConnection::get()->vkEncoder();
255 VkResult vkDeviceWaitIdle_VkResult_return = (VkResult)0;
256 vkDeviceWaitIdle_VkResult_return = vkEnc->vkDeviceWaitIdle(device);
257 return vkDeviceWaitIdle_VkResult_return;
258}
259static VkResult entry_vkAllocateMemory(
260 VkDevice device,
261 const VkMemoryAllocateInfo* pAllocateInfo,
262 const VkAllocationCallbacks* pAllocator,
263 VkDeviceMemory* pMemory)
264{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800265 AEMU_SCOPED_TRACE("vkAllocateMemory");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800266 auto vkEnc = HostConnection::get()->vkEncoder();
267 VkResult vkAllocateMemory_VkResult_return = (VkResult)0;
Lingfeng Yange9979522018-12-25 14:44:52 -0800268 auto resources = ResourceTracker::get();
269 vkAllocateMemory_VkResult_return = resources->on_vkAllocateMemory(vkEnc, VK_SUCCESS, device, pAllocateInfo, pAllocator, pMemory);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800270 return vkAllocateMemory_VkResult_return;
271}
272static void entry_vkFreeMemory(
273 VkDevice device,
274 VkDeviceMemory memory,
275 const VkAllocationCallbacks* pAllocator)
276{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800277 AEMU_SCOPED_TRACE("vkFreeMemory");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800278 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yange9979522018-12-25 14:44:52 -0800279 auto resources = ResourceTracker::get();
280 resources->on_vkFreeMemory(vkEnc, device, memory, pAllocator);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800281}
282static VkResult entry_vkMapMemory(
283 VkDevice device,
284 VkDeviceMemory memory,
285 VkDeviceSize offset,
286 VkDeviceSize size,
287 VkMemoryMapFlags flags,
288 void** ppData)
289{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800290 AEMU_SCOPED_TRACE("vkMapMemory");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800291 auto vkEnc = HostConnection::get()->vkEncoder();
292 VkResult vkMapMemory_VkResult_return = (VkResult)0;
293 vkMapMemory_VkResult_return = vkEnc->vkMapMemory(device, memory, offset, size, flags, ppData);
294 return vkMapMemory_VkResult_return;
295}
296static void entry_vkUnmapMemory(
297 VkDevice device,
298 VkDeviceMemory memory)
299{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800300 AEMU_SCOPED_TRACE("vkUnmapMemory");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800301 auto vkEnc = HostConnection::get()->vkEncoder();
302 vkEnc->vkUnmapMemory(device, memory);
303}
304static VkResult entry_vkFlushMappedMemoryRanges(
305 VkDevice device,
306 uint32_t memoryRangeCount,
307 const VkMappedMemoryRange* pMemoryRanges)
308{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800309 AEMU_SCOPED_TRACE("vkFlushMappedMemoryRanges");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800310 auto vkEnc = HostConnection::get()->vkEncoder();
311 VkResult vkFlushMappedMemoryRanges_VkResult_return = (VkResult)0;
312 vkFlushMappedMemoryRanges_VkResult_return = vkEnc->vkFlushMappedMemoryRanges(device, memoryRangeCount, pMemoryRanges);
313 return vkFlushMappedMemoryRanges_VkResult_return;
314}
315static VkResult entry_vkInvalidateMappedMemoryRanges(
316 VkDevice device,
317 uint32_t memoryRangeCount,
318 const VkMappedMemoryRange* pMemoryRanges)
319{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800320 AEMU_SCOPED_TRACE("vkInvalidateMappedMemoryRanges");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800321 auto vkEnc = HostConnection::get()->vkEncoder();
322 VkResult vkInvalidateMappedMemoryRanges_VkResult_return = (VkResult)0;
323 vkInvalidateMappedMemoryRanges_VkResult_return = vkEnc->vkInvalidateMappedMemoryRanges(device, memoryRangeCount, pMemoryRanges);
324 return vkInvalidateMappedMemoryRanges_VkResult_return;
325}
326static void entry_vkGetDeviceMemoryCommitment(
327 VkDevice device,
328 VkDeviceMemory memory,
329 VkDeviceSize* pCommittedMemoryInBytes)
330{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800331 AEMU_SCOPED_TRACE("vkGetDeviceMemoryCommitment");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800332 auto vkEnc = HostConnection::get()->vkEncoder();
333 vkEnc->vkGetDeviceMemoryCommitment(device, memory, pCommittedMemoryInBytes);
334}
335static VkResult entry_vkBindBufferMemory(
336 VkDevice device,
337 VkBuffer buffer,
338 VkDeviceMemory memory,
339 VkDeviceSize memoryOffset)
340{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800341 AEMU_SCOPED_TRACE("vkBindBufferMemory");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800342 auto vkEnc = HostConnection::get()->vkEncoder();
343 VkResult vkBindBufferMemory_VkResult_return = (VkResult)0;
Lingfeng Yang4af5f322019-02-14 08:10:28 -0800344 auto resources = ResourceTracker::get();
345 vkBindBufferMemory_VkResult_return = resources->on_vkBindBufferMemory(vkEnc, VK_SUCCESS, device, buffer, memory, memoryOffset);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800346 return vkBindBufferMemory_VkResult_return;
347}
348static VkResult entry_vkBindImageMemory(
349 VkDevice device,
350 VkImage image,
351 VkDeviceMemory memory,
352 VkDeviceSize memoryOffset)
353{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800354 AEMU_SCOPED_TRACE("vkBindImageMemory");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800355 auto vkEnc = HostConnection::get()->vkEncoder();
356 VkResult vkBindImageMemory_VkResult_return = (VkResult)0;
Lingfeng Yang4af5f322019-02-14 08:10:28 -0800357 auto resources = ResourceTracker::get();
358 vkBindImageMemory_VkResult_return = resources->on_vkBindImageMemory(vkEnc, VK_SUCCESS, device, image, memory, memoryOffset);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800359 return vkBindImageMemory_VkResult_return;
360}
361static void entry_vkGetBufferMemoryRequirements(
362 VkDevice device,
363 VkBuffer buffer,
364 VkMemoryRequirements* pMemoryRequirements)
365{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800366 AEMU_SCOPED_TRACE("vkGetBufferMemoryRequirements");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800367 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang4af5f322019-02-14 08:10:28 -0800368 auto resources = ResourceTracker::get();
369 resources->on_vkGetBufferMemoryRequirements(vkEnc, device, buffer, pMemoryRequirements);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800370}
371static void entry_vkGetImageMemoryRequirements(
372 VkDevice device,
373 VkImage image,
374 VkMemoryRequirements* pMemoryRequirements)
375{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800376 AEMU_SCOPED_TRACE("vkGetImageMemoryRequirements");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800377 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang4af5f322019-02-14 08:10:28 -0800378 auto resources = ResourceTracker::get();
379 resources->on_vkGetImageMemoryRequirements(vkEnc, device, image, pMemoryRequirements);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800380}
381static void entry_vkGetImageSparseMemoryRequirements(
382 VkDevice device,
383 VkImage image,
384 uint32_t* pSparseMemoryRequirementCount,
385 VkSparseImageMemoryRequirements* pSparseMemoryRequirements)
386{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800387 AEMU_SCOPED_TRACE("vkGetImageSparseMemoryRequirements");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800388 auto vkEnc = HostConnection::get()->vkEncoder();
389 vkEnc->vkGetImageSparseMemoryRequirements(device, image, pSparseMemoryRequirementCount, pSparseMemoryRequirements);
390}
391static void entry_vkGetPhysicalDeviceSparseImageFormatProperties(
392 VkPhysicalDevice physicalDevice,
393 VkFormat format,
394 VkImageType type,
395 VkSampleCountFlagBits samples,
396 VkImageUsageFlags usage,
397 VkImageTiling tiling,
398 uint32_t* pPropertyCount,
399 VkSparseImageFormatProperties* pProperties)
400{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800401 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSparseImageFormatProperties");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800402 auto vkEnc = HostConnection::get()->vkEncoder();
403 vkEnc->vkGetPhysicalDeviceSparseImageFormatProperties(physicalDevice, format, type, samples, usage, tiling, pPropertyCount, pProperties);
404}
405static VkResult entry_vkQueueBindSparse(
406 VkQueue queue,
407 uint32_t bindInfoCount,
408 const VkBindSparseInfo* pBindInfo,
409 VkFence fence)
410{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800411 AEMU_SCOPED_TRACE("vkQueueBindSparse");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800412 auto vkEnc = HostConnection::get()->vkEncoder();
413 VkResult vkQueueBindSparse_VkResult_return = (VkResult)0;
414 vkQueueBindSparse_VkResult_return = vkEnc->vkQueueBindSparse(queue, bindInfoCount, pBindInfo, fence);
415 return vkQueueBindSparse_VkResult_return;
416}
417static VkResult entry_vkCreateFence(
418 VkDevice device,
419 const VkFenceCreateInfo* pCreateInfo,
420 const VkAllocationCallbacks* pAllocator,
421 VkFence* pFence)
422{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800423 AEMU_SCOPED_TRACE("vkCreateFence");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800424 auto vkEnc = HostConnection::get()->vkEncoder();
425 VkResult vkCreateFence_VkResult_return = (VkResult)0;
426 vkCreateFence_VkResult_return = vkEnc->vkCreateFence(device, pCreateInfo, pAllocator, pFence);
427 return vkCreateFence_VkResult_return;
428}
429static void entry_vkDestroyFence(
430 VkDevice device,
431 VkFence fence,
432 const VkAllocationCallbacks* pAllocator)
433{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800434 AEMU_SCOPED_TRACE("vkDestroyFence");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800435 auto vkEnc = HostConnection::get()->vkEncoder();
436 vkEnc->vkDestroyFence(device, fence, pAllocator);
437}
438static VkResult entry_vkResetFences(
439 VkDevice device,
440 uint32_t fenceCount,
441 const VkFence* pFences)
442{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800443 AEMU_SCOPED_TRACE("vkResetFences");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800444 auto vkEnc = HostConnection::get()->vkEncoder();
445 VkResult vkResetFences_VkResult_return = (VkResult)0;
446 vkResetFences_VkResult_return = vkEnc->vkResetFences(device, fenceCount, pFences);
447 return vkResetFences_VkResult_return;
448}
449static VkResult entry_vkGetFenceStatus(
450 VkDevice device,
451 VkFence fence)
452{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800453 AEMU_SCOPED_TRACE("vkGetFenceStatus");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800454 auto vkEnc = HostConnection::get()->vkEncoder();
455 VkResult vkGetFenceStatus_VkResult_return = (VkResult)0;
456 vkGetFenceStatus_VkResult_return = vkEnc->vkGetFenceStatus(device, fence);
457 return vkGetFenceStatus_VkResult_return;
458}
459static VkResult entry_vkWaitForFences(
460 VkDevice device,
461 uint32_t fenceCount,
462 const VkFence* pFences,
463 VkBool32 waitAll,
464 uint64_t timeout)
465{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800466 AEMU_SCOPED_TRACE("vkWaitForFences");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800467 auto vkEnc = HostConnection::get()->vkEncoder();
468 VkResult vkWaitForFences_VkResult_return = (VkResult)0;
469 vkWaitForFences_VkResult_return = vkEnc->vkWaitForFences(device, fenceCount, pFences, waitAll, timeout);
470 return vkWaitForFences_VkResult_return;
471}
472static VkResult entry_vkCreateSemaphore(
473 VkDevice device,
474 const VkSemaphoreCreateInfo* pCreateInfo,
475 const VkAllocationCallbacks* pAllocator,
476 VkSemaphore* pSemaphore)
477{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800478 AEMU_SCOPED_TRACE("vkCreateSemaphore");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800479 auto vkEnc = HostConnection::get()->vkEncoder();
480 VkResult vkCreateSemaphore_VkResult_return = (VkResult)0;
David Reveman32b110e2019-02-21 13:20:54 -0500481 auto resources = ResourceTracker::get();
482 vkCreateSemaphore_VkResult_return = resources->on_vkCreateSemaphore(vkEnc, VK_SUCCESS, device, pCreateInfo, pAllocator, pSemaphore);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800483 return vkCreateSemaphore_VkResult_return;
484}
485static void entry_vkDestroySemaphore(
486 VkDevice device,
487 VkSemaphore semaphore,
488 const VkAllocationCallbacks* pAllocator)
489{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800490 AEMU_SCOPED_TRACE("vkDestroySemaphore");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800491 auto vkEnc = HostConnection::get()->vkEncoder();
David Reveman32b110e2019-02-21 13:20:54 -0500492 auto resources = ResourceTracker::get();
493 resources->on_vkDestroySemaphore(vkEnc, device, semaphore, pAllocator);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800494}
495static VkResult entry_vkCreateEvent(
496 VkDevice device,
497 const VkEventCreateInfo* pCreateInfo,
498 const VkAllocationCallbacks* pAllocator,
499 VkEvent* pEvent)
500{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800501 AEMU_SCOPED_TRACE("vkCreateEvent");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800502 auto vkEnc = HostConnection::get()->vkEncoder();
503 VkResult vkCreateEvent_VkResult_return = (VkResult)0;
504 vkCreateEvent_VkResult_return = vkEnc->vkCreateEvent(device, pCreateInfo, pAllocator, pEvent);
505 return vkCreateEvent_VkResult_return;
506}
507static void entry_vkDestroyEvent(
508 VkDevice device,
509 VkEvent event,
510 const VkAllocationCallbacks* pAllocator)
511{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800512 AEMU_SCOPED_TRACE("vkDestroyEvent");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800513 auto vkEnc = HostConnection::get()->vkEncoder();
514 vkEnc->vkDestroyEvent(device, event, pAllocator);
515}
516static VkResult entry_vkGetEventStatus(
517 VkDevice device,
518 VkEvent event)
519{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800520 AEMU_SCOPED_TRACE("vkGetEventStatus");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800521 auto vkEnc = HostConnection::get()->vkEncoder();
522 VkResult vkGetEventStatus_VkResult_return = (VkResult)0;
523 vkGetEventStatus_VkResult_return = vkEnc->vkGetEventStatus(device, event);
524 return vkGetEventStatus_VkResult_return;
525}
526static VkResult entry_vkSetEvent(
527 VkDevice device,
528 VkEvent event)
529{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800530 AEMU_SCOPED_TRACE("vkSetEvent");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800531 auto vkEnc = HostConnection::get()->vkEncoder();
532 VkResult vkSetEvent_VkResult_return = (VkResult)0;
533 vkSetEvent_VkResult_return = vkEnc->vkSetEvent(device, event);
534 return vkSetEvent_VkResult_return;
535}
536static VkResult entry_vkResetEvent(
537 VkDevice device,
538 VkEvent event)
539{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800540 AEMU_SCOPED_TRACE("vkResetEvent");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800541 auto vkEnc = HostConnection::get()->vkEncoder();
542 VkResult vkResetEvent_VkResult_return = (VkResult)0;
543 vkResetEvent_VkResult_return = vkEnc->vkResetEvent(device, event);
544 return vkResetEvent_VkResult_return;
545}
546static VkResult entry_vkCreateQueryPool(
547 VkDevice device,
548 const VkQueryPoolCreateInfo* pCreateInfo,
549 const VkAllocationCallbacks* pAllocator,
550 VkQueryPool* pQueryPool)
551{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800552 AEMU_SCOPED_TRACE("vkCreateQueryPool");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800553 auto vkEnc = HostConnection::get()->vkEncoder();
554 VkResult vkCreateQueryPool_VkResult_return = (VkResult)0;
555 vkCreateQueryPool_VkResult_return = vkEnc->vkCreateQueryPool(device, pCreateInfo, pAllocator, pQueryPool);
556 return vkCreateQueryPool_VkResult_return;
557}
558static void entry_vkDestroyQueryPool(
559 VkDevice device,
560 VkQueryPool queryPool,
561 const VkAllocationCallbacks* pAllocator)
562{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800563 AEMU_SCOPED_TRACE("vkDestroyQueryPool");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800564 auto vkEnc = HostConnection::get()->vkEncoder();
565 vkEnc->vkDestroyQueryPool(device, queryPool, pAllocator);
566}
567static VkResult entry_vkGetQueryPoolResults(
568 VkDevice device,
569 VkQueryPool queryPool,
570 uint32_t firstQuery,
571 uint32_t queryCount,
572 size_t dataSize,
573 void* pData,
574 VkDeviceSize stride,
575 VkQueryResultFlags flags)
576{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800577 AEMU_SCOPED_TRACE("vkGetQueryPoolResults");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800578 auto vkEnc = HostConnection::get()->vkEncoder();
579 VkResult vkGetQueryPoolResults_VkResult_return = (VkResult)0;
580 vkGetQueryPoolResults_VkResult_return = vkEnc->vkGetQueryPoolResults(device, queryPool, firstQuery, queryCount, dataSize, pData, stride, flags);
581 return vkGetQueryPoolResults_VkResult_return;
582}
583static VkResult entry_vkCreateBuffer(
584 VkDevice device,
585 const VkBufferCreateInfo* pCreateInfo,
586 const VkAllocationCallbacks* pAllocator,
587 VkBuffer* pBuffer)
588{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800589 AEMU_SCOPED_TRACE("vkCreateBuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800590 auto vkEnc = HostConnection::get()->vkEncoder();
591 VkResult vkCreateBuffer_VkResult_return = (VkResult)0;
Lingfeng Yang4af5f322019-02-14 08:10:28 -0800592 auto resources = ResourceTracker::get();
593 vkCreateBuffer_VkResult_return = resources->on_vkCreateBuffer(vkEnc, VK_SUCCESS, device, pCreateInfo, pAllocator, pBuffer);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800594 return vkCreateBuffer_VkResult_return;
595}
596static void entry_vkDestroyBuffer(
597 VkDevice device,
598 VkBuffer buffer,
599 const VkAllocationCallbacks* pAllocator)
600{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800601 AEMU_SCOPED_TRACE("vkDestroyBuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800602 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang4af5f322019-02-14 08:10:28 -0800603 auto resources = ResourceTracker::get();
604 resources->on_vkDestroyBuffer(vkEnc, device, buffer, pAllocator);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800605}
606static VkResult entry_vkCreateBufferView(
607 VkDevice device,
608 const VkBufferViewCreateInfo* pCreateInfo,
609 const VkAllocationCallbacks* pAllocator,
610 VkBufferView* pView)
611{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800612 AEMU_SCOPED_TRACE("vkCreateBufferView");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800613 auto vkEnc = HostConnection::get()->vkEncoder();
614 VkResult vkCreateBufferView_VkResult_return = (VkResult)0;
615 vkCreateBufferView_VkResult_return = vkEnc->vkCreateBufferView(device, pCreateInfo, pAllocator, pView);
616 return vkCreateBufferView_VkResult_return;
617}
618static void entry_vkDestroyBufferView(
619 VkDevice device,
620 VkBufferView bufferView,
621 const VkAllocationCallbacks* pAllocator)
622{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800623 AEMU_SCOPED_TRACE("vkDestroyBufferView");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800624 auto vkEnc = HostConnection::get()->vkEncoder();
625 vkEnc->vkDestroyBufferView(device, bufferView, pAllocator);
626}
627static VkResult entry_vkCreateImage(
628 VkDevice device,
629 const VkImageCreateInfo* pCreateInfo,
630 const VkAllocationCallbacks* pAllocator,
631 VkImage* pImage)
632{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800633 AEMU_SCOPED_TRACE("vkCreateImage");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800634 auto vkEnc = HostConnection::get()->vkEncoder();
635 VkResult vkCreateImage_VkResult_return = (VkResult)0;
Lingfeng Yang4af5f322019-02-14 08:10:28 -0800636 auto resources = ResourceTracker::get();
637 vkCreateImage_VkResult_return = resources->on_vkCreateImage(vkEnc, VK_SUCCESS, device, pCreateInfo, pAllocator, pImage);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800638 return vkCreateImage_VkResult_return;
639}
640static void entry_vkDestroyImage(
641 VkDevice device,
642 VkImage image,
643 const VkAllocationCallbacks* pAllocator)
644{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800645 AEMU_SCOPED_TRACE("vkDestroyImage");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800646 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang4af5f322019-02-14 08:10:28 -0800647 auto resources = ResourceTracker::get();
648 resources->on_vkDestroyImage(vkEnc, device, image, pAllocator);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800649}
650static void entry_vkGetImageSubresourceLayout(
651 VkDevice device,
652 VkImage image,
653 const VkImageSubresource* pSubresource,
654 VkSubresourceLayout* pLayout)
655{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800656 AEMU_SCOPED_TRACE("vkGetImageSubresourceLayout");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800657 auto vkEnc = HostConnection::get()->vkEncoder();
658 vkEnc->vkGetImageSubresourceLayout(device, image, pSubresource, pLayout);
659}
660static VkResult entry_vkCreateImageView(
661 VkDevice device,
662 const VkImageViewCreateInfo* pCreateInfo,
663 const VkAllocationCallbacks* pAllocator,
664 VkImageView* pView)
665{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800666 AEMU_SCOPED_TRACE("vkCreateImageView");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800667 auto vkEnc = HostConnection::get()->vkEncoder();
668 VkResult vkCreateImageView_VkResult_return = (VkResult)0;
Roman Kiryanov6db11e52019-04-26 14:18:14 -0700669 auto resources = ResourceTracker::get();
670 vkCreateImageView_VkResult_return = resources->on_vkCreateImageView(vkEnc, VK_SUCCESS, device, pCreateInfo, pAllocator, pView);
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800671 return vkCreateImageView_VkResult_return;
672}
673static void entry_vkDestroyImageView(
674 VkDevice device,
675 VkImageView imageView,
676 const VkAllocationCallbacks* pAllocator)
677{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800678 AEMU_SCOPED_TRACE("vkDestroyImageView");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800679 auto vkEnc = HostConnection::get()->vkEncoder();
680 vkEnc->vkDestroyImageView(device, imageView, pAllocator);
681}
682static VkResult entry_vkCreateShaderModule(
683 VkDevice device,
684 const VkShaderModuleCreateInfo* pCreateInfo,
685 const VkAllocationCallbacks* pAllocator,
686 VkShaderModule* pShaderModule)
687{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800688 AEMU_SCOPED_TRACE("vkCreateShaderModule");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800689 auto vkEnc = HostConnection::get()->vkEncoder();
690 VkResult vkCreateShaderModule_VkResult_return = (VkResult)0;
691 vkCreateShaderModule_VkResult_return = vkEnc->vkCreateShaderModule(device, pCreateInfo, pAllocator, pShaderModule);
692 return vkCreateShaderModule_VkResult_return;
693}
694static void entry_vkDestroyShaderModule(
695 VkDevice device,
696 VkShaderModule shaderModule,
697 const VkAllocationCallbacks* pAllocator)
698{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800699 AEMU_SCOPED_TRACE("vkDestroyShaderModule");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800700 auto vkEnc = HostConnection::get()->vkEncoder();
701 vkEnc->vkDestroyShaderModule(device, shaderModule, pAllocator);
702}
703static VkResult entry_vkCreatePipelineCache(
704 VkDevice device,
705 const VkPipelineCacheCreateInfo* pCreateInfo,
706 const VkAllocationCallbacks* pAllocator,
707 VkPipelineCache* pPipelineCache)
708{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800709 AEMU_SCOPED_TRACE("vkCreatePipelineCache");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800710 auto vkEnc = HostConnection::get()->vkEncoder();
711 VkResult vkCreatePipelineCache_VkResult_return = (VkResult)0;
712 vkCreatePipelineCache_VkResult_return = vkEnc->vkCreatePipelineCache(device, pCreateInfo, pAllocator, pPipelineCache);
713 return vkCreatePipelineCache_VkResult_return;
714}
715static void entry_vkDestroyPipelineCache(
716 VkDevice device,
717 VkPipelineCache pipelineCache,
718 const VkAllocationCallbacks* pAllocator)
719{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800720 AEMU_SCOPED_TRACE("vkDestroyPipelineCache");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800721 auto vkEnc = HostConnection::get()->vkEncoder();
722 vkEnc->vkDestroyPipelineCache(device, pipelineCache, pAllocator);
723}
724static VkResult entry_vkGetPipelineCacheData(
725 VkDevice device,
726 VkPipelineCache pipelineCache,
727 size_t* pDataSize,
728 void* pData)
729{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800730 AEMU_SCOPED_TRACE("vkGetPipelineCacheData");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800731 auto vkEnc = HostConnection::get()->vkEncoder();
732 VkResult vkGetPipelineCacheData_VkResult_return = (VkResult)0;
733 vkGetPipelineCacheData_VkResult_return = vkEnc->vkGetPipelineCacheData(device, pipelineCache, pDataSize, pData);
734 return vkGetPipelineCacheData_VkResult_return;
735}
736static VkResult entry_vkMergePipelineCaches(
737 VkDevice device,
738 VkPipelineCache dstCache,
739 uint32_t srcCacheCount,
740 const VkPipelineCache* pSrcCaches)
741{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800742 AEMU_SCOPED_TRACE("vkMergePipelineCaches");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800743 auto vkEnc = HostConnection::get()->vkEncoder();
744 VkResult vkMergePipelineCaches_VkResult_return = (VkResult)0;
745 vkMergePipelineCaches_VkResult_return = vkEnc->vkMergePipelineCaches(device, dstCache, srcCacheCount, pSrcCaches);
746 return vkMergePipelineCaches_VkResult_return;
747}
748static VkResult entry_vkCreateGraphicsPipelines(
749 VkDevice device,
750 VkPipelineCache pipelineCache,
751 uint32_t createInfoCount,
752 const VkGraphicsPipelineCreateInfo* pCreateInfos,
753 const VkAllocationCallbacks* pAllocator,
754 VkPipeline* pPipelines)
755{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800756 AEMU_SCOPED_TRACE("vkCreateGraphicsPipelines");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800757 auto vkEnc = HostConnection::get()->vkEncoder();
758 VkResult vkCreateGraphicsPipelines_VkResult_return = (VkResult)0;
759 vkCreateGraphicsPipelines_VkResult_return = vkEnc->vkCreateGraphicsPipelines(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines);
760 return vkCreateGraphicsPipelines_VkResult_return;
761}
762static VkResult entry_vkCreateComputePipelines(
763 VkDevice device,
764 VkPipelineCache pipelineCache,
765 uint32_t createInfoCount,
766 const VkComputePipelineCreateInfo* pCreateInfos,
767 const VkAllocationCallbacks* pAllocator,
768 VkPipeline* pPipelines)
769{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800770 AEMU_SCOPED_TRACE("vkCreateComputePipelines");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800771 auto vkEnc = HostConnection::get()->vkEncoder();
772 VkResult vkCreateComputePipelines_VkResult_return = (VkResult)0;
773 vkCreateComputePipelines_VkResult_return = vkEnc->vkCreateComputePipelines(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines);
774 return vkCreateComputePipelines_VkResult_return;
775}
776static void entry_vkDestroyPipeline(
777 VkDevice device,
778 VkPipeline pipeline,
779 const VkAllocationCallbacks* pAllocator)
780{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800781 AEMU_SCOPED_TRACE("vkDestroyPipeline");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800782 auto vkEnc = HostConnection::get()->vkEncoder();
783 vkEnc->vkDestroyPipeline(device, pipeline, pAllocator);
784}
785static VkResult entry_vkCreatePipelineLayout(
786 VkDevice device,
787 const VkPipelineLayoutCreateInfo* pCreateInfo,
788 const VkAllocationCallbacks* pAllocator,
789 VkPipelineLayout* pPipelineLayout)
790{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800791 AEMU_SCOPED_TRACE("vkCreatePipelineLayout");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800792 auto vkEnc = HostConnection::get()->vkEncoder();
793 VkResult vkCreatePipelineLayout_VkResult_return = (VkResult)0;
794 vkCreatePipelineLayout_VkResult_return = vkEnc->vkCreatePipelineLayout(device, pCreateInfo, pAllocator, pPipelineLayout);
795 return vkCreatePipelineLayout_VkResult_return;
796}
797static void entry_vkDestroyPipelineLayout(
798 VkDevice device,
799 VkPipelineLayout pipelineLayout,
800 const VkAllocationCallbacks* pAllocator)
801{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800802 AEMU_SCOPED_TRACE("vkDestroyPipelineLayout");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800803 auto vkEnc = HostConnection::get()->vkEncoder();
804 vkEnc->vkDestroyPipelineLayout(device, pipelineLayout, pAllocator);
805}
806static VkResult entry_vkCreateSampler(
807 VkDevice device,
808 const VkSamplerCreateInfo* pCreateInfo,
809 const VkAllocationCallbacks* pAllocator,
810 VkSampler* pSampler)
811{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800812 AEMU_SCOPED_TRACE("vkCreateSampler");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800813 auto vkEnc = HostConnection::get()->vkEncoder();
814 VkResult vkCreateSampler_VkResult_return = (VkResult)0;
815 vkCreateSampler_VkResult_return = vkEnc->vkCreateSampler(device, pCreateInfo, pAllocator, pSampler);
816 return vkCreateSampler_VkResult_return;
817}
818static void entry_vkDestroySampler(
819 VkDevice device,
820 VkSampler sampler,
821 const VkAllocationCallbacks* pAllocator)
822{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800823 AEMU_SCOPED_TRACE("vkDestroySampler");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800824 auto vkEnc = HostConnection::get()->vkEncoder();
825 vkEnc->vkDestroySampler(device, sampler, pAllocator);
826}
827static VkResult entry_vkCreateDescriptorSetLayout(
828 VkDevice device,
829 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
830 const VkAllocationCallbacks* pAllocator,
831 VkDescriptorSetLayout* pSetLayout)
832{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800833 AEMU_SCOPED_TRACE("vkCreateDescriptorSetLayout");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800834 auto vkEnc = HostConnection::get()->vkEncoder();
835 VkResult vkCreateDescriptorSetLayout_VkResult_return = (VkResult)0;
836 vkCreateDescriptorSetLayout_VkResult_return = vkEnc->vkCreateDescriptorSetLayout(device, pCreateInfo, pAllocator, pSetLayout);
837 return vkCreateDescriptorSetLayout_VkResult_return;
838}
839static void entry_vkDestroyDescriptorSetLayout(
840 VkDevice device,
841 VkDescriptorSetLayout descriptorSetLayout,
842 const VkAllocationCallbacks* pAllocator)
843{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800844 AEMU_SCOPED_TRACE("vkDestroyDescriptorSetLayout");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800845 auto vkEnc = HostConnection::get()->vkEncoder();
846 vkEnc->vkDestroyDescriptorSetLayout(device, descriptorSetLayout, pAllocator);
847}
848static VkResult entry_vkCreateDescriptorPool(
849 VkDevice device,
850 const VkDescriptorPoolCreateInfo* pCreateInfo,
851 const VkAllocationCallbacks* pAllocator,
852 VkDescriptorPool* pDescriptorPool)
853{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800854 AEMU_SCOPED_TRACE("vkCreateDescriptorPool");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800855 auto vkEnc = HostConnection::get()->vkEncoder();
856 VkResult vkCreateDescriptorPool_VkResult_return = (VkResult)0;
857 vkCreateDescriptorPool_VkResult_return = vkEnc->vkCreateDescriptorPool(device, pCreateInfo, pAllocator, pDescriptorPool);
858 return vkCreateDescriptorPool_VkResult_return;
859}
860static void entry_vkDestroyDescriptorPool(
861 VkDevice device,
862 VkDescriptorPool descriptorPool,
863 const VkAllocationCallbacks* pAllocator)
864{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800865 AEMU_SCOPED_TRACE("vkDestroyDescriptorPool");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800866 auto vkEnc = HostConnection::get()->vkEncoder();
867 vkEnc->vkDestroyDescriptorPool(device, descriptorPool, pAllocator);
868}
869static VkResult entry_vkResetDescriptorPool(
870 VkDevice device,
871 VkDescriptorPool descriptorPool,
872 VkDescriptorPoolResetFlags flags)
873{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800874 AEMU_SCOPED_TRACE("vkResetDescriptorPool");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800875 auto vkEnc = HostConnection::get()->vkEncoder();
876 VkResult vkResetDescriptorPool_VkResult_return = (VkResult)0;
877 vkResetDescriptorPool_VkResult_return = vkEnc->vkResetDescriptorPool(device, descriptorPool, flags);
878 return vkResetDescriptorPool_VkResult_return;
879}
880static VkResult entry_vkAllocateDescriptorSets(
881 VkDevice device,
882 const VkDescriptorSetAllocateInfo* pAllocateInfo,
883 VkDescriptorSet* pDescriptorSets)
884{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800885 AEMU_SCOPED_TRACE("vkAllocateDescriptorSets");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800886 auto vkEnc = HostConnection::get()->vkEncoder();
887 VkResult vkAllocateDescriptorSets_VkResult_return = (VkResult)0;
888 vkAllocateDescriptorSets_VkResult_return = vkEnc->vkAllocateDescriptorSets(device, pAllocateInfo, pDescriptorSets);
889 return vkAllocateDescriptorSets_VkResult_return;
890}
891static VkResult entry_vkFreeDescriptorSets(
892 VkDevice device,
893 VkDescriptorPool descriptorPool,
894 uint32_t descriptorSetCount,
895 const VkDescriptorSet* pDescriptorSets)
896{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800897 AEMU_SCOPED_TRACE("vkFreeDescriptorSets");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800898 auto vkEnc = HostConnection::get()->vkEncoder();
899 VkResult vkFreeDescriptorSets_VkResult_return = (VkResult)0;
900 vkFreeDescriptorSets_VkResult_return = vkEnc->vkFreeDescriptorSets(device, descriptorPool, descriptorSetCount, pDescriptorSets);
901 return vkFreeDescriptorSets_VkResult_return;
902}
903static void entry_vkUpdateDescriptorSets(
904 VkDevice device,
905 uint32_t descriptorWriteCount,
906 const VkWriteDescriptorSet* pDescriptorWrites,
907 uint32_t descriptorCopyCount,
908 const VkCopyDescriptorSet* pDescriptorCopies)
909{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800910 AEMU_SCOPED_TRACE("vkUpdateDescriptorSets");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800911 auto vkEnc = HostConnection::get()->vkEncoder();
912 vkEnc->vkUpdateDescriptorSets(device, descriptorWriteCount, pDescriptorWrites, descriptorCopyCount, pDescriptorCopies);
913}
914static VkResult entry_vkCreateFramebuffer(
915 VkDevice device,
916 const VkFramebufferCreateInfo* pCreateInfo,
917 const VkAllocationCallbacks* pAllocator,
918 VkFramebuffer* pFramebuffer)
919{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800920 AEMU_SCOPED_TRACE("vkCreateFramebuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800921 auto vkEnc = HostConnection::get()->vkEncoder();
922 VkResult vkCreateFramebuffer_VkResult_return = (VkResult)0;
923 vkCreateFramebuffer_VkResult_return = vkEnc->vkCreateFramebuffer(device, pCreateInfo, pAllocator, pFramebuffer);
924 return vkCreateFramebuffer_VkResult_return;
925}
926static void entry_vkDestroyFramebuffer(
927 VkDevice device,
928 VkFramebuffer framebuffer,
929 const VkAllocationCallbacks* pAllocator)
930{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800931 AEMU_SCOPED_TRACE("vkDestroyFramebuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800932 auto vkEnc = HostConnection::get()->vkEncoder();
933 vkEnc->vkDestroyFramebuffer(device, framebuffer, pAllocator);
934}
935static VkResult entry_vkCreateRenderPass(
936 VkDevice device,
937 const VkRenderPassCreateInfo* pCreateInfo,
938 const VkAllocationCallbacks* pAllocator,
939 VkRenderPass* pRenderPass)
940{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800941 AEMU_SCOPED_TRACE("vkCreateRenderPass");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800942 auto vkEnc = HostConnection::get()->vkEncoder();
943 VkResult vkCreateRenderPass_VkResult_return = (VkResult)0;
944 vkCreateRenderPass_VkResult_return = vkEnc->vkCreateRenderPass(device, pCreateInfo, pAllocator, pRenderPass);
945 return vkCreateRenderPass_VkResult_return;
946}
947static void entry_vkDestroyRenderPass(
948 VkDevice device,
949 VkRenderPass renderPass,
950 const VkAllocationCallbacks* pAllocator)
951{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800952 AEMU_SCOPED_TRACE("vkDestroyRenderPass");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800953 auto vkEnc = HostConnection::get()->vkEncoder();
954 vkEnc->vkDestroyRenderPass(device, renderPass, pAllocator);
955}
956static void entry_vkGetRenderAreaGranularity(
957 VkDevice device,
958 VkRenderPass renderPass,
959 VkExtent2D* pGranularity)
960{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800961 AEMU_SCOPED_TRACE("vkGetRenderAreaGranularity");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800962 auto vkEnc = HostConnection::get()->vkEncoder();
963 vkEnc->vkGetRenderAreaGranularity(device, renderPass, pGranularity);
964}
965static VkResult entry_vkCreateCommandPool(
966 VkDevice device,
967 const VkCommandPoolCreateInfo* pCreateInfo,
968 const VkAllocationCallbacks* pAllocator,
969 VkCommandPool* pCommandPool)
970{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800971 AEMU_SCOPED_TRACE("vkCreateCommandPool");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800972 auto vkEnc = HostConnection::get()->vkEncoder();
973 VkResult vkCreateCommandPool_VkResult_return = (VkResult)0;
974 vkCreateCommandPool_VkResult_return = vkEnc->vkCreateCommandPool(device, pCreateInfo, pAllocator, pCommandPool);
975 return vkCreateCommandPool_VkResult_return;
976}
977static void entry_vkDestroyCommandPool(
978 VkDevice device,
979 VkCommandPool commandPool,
980 const VkAllocationCallbacks* pAllocator)
981{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800982 AEMU_SCOPED_TRACE("vkDestroyCommandPool");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800983 auto vkEnc = HostConnection::get()->vkEncoder();
984 vkEnc->vkDestroyCommandPool(device, commandPool, pAllocator);
985}
986static VkResult entry_vkResetCommandPool(
987 VkDevice device,
988 VkCommandPool commandPool,
989 VkCommandPoolResetFlags flags)
990{
Lingfeng Yang42ac1792019-02-22 20:13:44 -0800991 AEMU_SCOPED_TRACE("vkResetCommandPool");
Lingfeng Yang0b81df22018-11-05 21:40:30 -0800992 auto vkEnc = HostConnection::get()->vkEncoder();
993 VkResult vkResetCommandPool_VkResult_return = (VkResult)0;
994 vkResetCommandPool_VkResult_return = vkEnc->vkResetCommandPool(device, commandPool, flags);
995 return vkResetCommandPool_VkResult_return;
996}
997static VkResult entry_vkAllocateCommandBuffers(
998 VkDevice device,
999 const VkCommandBufferAllocateInfo* pAllocateInfo,
1000 VkCommandBuffer* pCommandBuffers)
1001{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001002 AEMU_SCOPED_TRACE("vkAllocateCommandBuffers");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001003 auto vkEnc = HostConnection::get()->vkEncoder();
1004 VkResult vkAllocateCommandBuffers_VkResult_return = (VkResult)0;
1005 vkAllocateCommandBuffers_VkResult_return = vkEnc->vkAllocateCommandBuffers(device, pAllocateInfo, pCommandBuffers);
1006 return vkAllocateCommandBuffers_VkResult_return;
1007}
1008static void entry_vkFreeCommandBuffers(
1009 VkDevice device,
1010 VkCommandPool commandPool,
1011 uint32_t commandBufferCount,
1012 const VkCommandBuffer* pCommandBuffers)
1013{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001014 AEMU_SCOPED_TRACE("vkFreeCommandBuffers");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001015 auto vkEnc = HostConnection::get()->vkEncoder();
1016 vkEnc->vkFreeCommandBuffers(device, commandPool, commandBufferCount, pCommandBuffers);
1017}
1018static VkResult entry_vkBeginCommandBuffer(
1019 VkCommandBuffer commandBuffer,
1020 const VkCommandBufferBeginInfo* pBeginInfo)
1021{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001022 AEMU_SCOPED_TRACE("vkBeginCommandBuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001023 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001024 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001025 VkResult vkBeginCommandBuffer_VkResult_return = (VkResult)0;
Lingfeng Yangc53e7472019-03-27 08:50:55 -07001026 auto resources = ResourceTracker::get();
1027 vkBeginCommandBuffer_VkResult_return = resources->on_vkBeginCommandBuffer(vkEnc, VK_SUCCESS, commandBuffer, pBeginInfo);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001028 return vkBeginCommandBuffer_VkResult_return;
1029}
1030static VkResult entry_vkEndCommandBuffer(
1031 VkCommandBuffer commandBuffer)
1032{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001033 AEMU_SCOPED_TRACE("vkEndCommandBuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001034 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001035 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001036 VkResult vkEndCommandBuffer_VkResult_return = (VkResult)0;
Lingfeng Yangc53e7472019-03-27 08:50:55 -07001037 auto resources = ResourceTracker::get();
1038 vkEndCommandBuffer_VkResult_return = resources->on_vkEndCommandBuffer(vkEnc, VK_SUCCESS, commandBuffer);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001039 return vkEndCommandBuffer_VkResult_return;
1040}
1041static VkResult entry_vkResetCommandBuffer(
1042 VkCommandBuffer commandBuffer,
1043 VkCommandBufferResetFlags flags)
1044{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001045 AEMU_SCOPED_TRACE("vkResetCommandBuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001046 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001047 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001048 VkResult vkResetCommandBuffer_VkResult_return = (VkResult)0;
Lingfeng Yangc53e7472019-03-27 08:50:55 -07001049 auto resources = ResourceTracker::get();
1050 vkResetCommandBuffer_VkResult_return = resources->on_vkResetCommandBuffer(vkEnc, VK_SUCCESS, commandBuffer, flags);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001051 return vkResetCommandBuffer_VkResult_return;
1052}
1053static void entry_vkCmdBindPipeline(
1054 VkCommandBuffer commandBuffer,
1055 VkPipelineBindPoint pipelineBindPoint,
1056 VkPipeline pipeline)
1057{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001058 AEMU_SCOPED_TRACE("vkCmdBindPipeline");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001059 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001060 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001061 vkEnc->vkCmdBindPipeline(commandBuffer, pipelineBindPoint, pipeline);
1062}
1063static void entry_vkCmdSetViewport(
1064 VkCommandBuffer commandBuffer,
1065 uint32_t firstViewport,
1066 uint32_t viewportCount,
1067 const VkViewport* pViewports)
1068{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001069 AEMU_SCOPED_TRACE("vkCmdSetViewport");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001070 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001071 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001072 vkEnc->vkCmdSetViewport(commandBuffer, firstViewport, viewportCount, pViewports);
1073}
1074static void entry_vkCmdSetScissor(
1075 VkCommandBuffer commandBuffer,
1076 uint32_t firstScissor,
1077 uint32_t scissorCount,
1078 const VkRect2D* pScissors)
1079{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001080 AEMU_SCOPED_TRACE("vkCmdSetScissor");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001081 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001082 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001083 vkEnc->vkCmdSetScissor(commandBuffer, firstScissor, scissorCount, pScissors);
1084}
1085static void entry_vkCmdSetLineWidth(
1086 VkCommandBuffer commandBuffer,
1087 float lineWidth)
1088{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001089 AEMU_SCOPED_TRACE("vkCmdSetLineWidth");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001090 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001091 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001092 vkEnc->vkCmdSetLineWidth(commandBuffer, lineWidth);
1093}
1094static void entry_vkCmdSetDepthBias(
1095 VkCommandBuffer commandBuffer,
1096 float depthBiasConstantFactor,
1097 float depthBiasClamp,
1098 float depthBiasSlopeFactor)
1099{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001100 AEMU_SCOPED_TRACE("vkCmdSetDepthBias");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001101 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001102 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001103 vkEnc->vkCmdSetDepthBias(commandBuffer, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor);
1104}
1105static void entry_vkCmdSetBlendConstants(
1106 VkCommandBuffer commandBuffer,
Lingfeng Yang97ddeb82019-04-20 14:32:52 -07001107 const float blendConstants[4])
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001108{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001109 AEMU_SCOPED_TRACE("vkCmdSetBlendConstants");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001110 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001111 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001112 vkEnc->vkCmdSetBlendConstants(commandBuffer, blendConstants);
1113}
1114static void entry_vkCmdSetDepthBounds(
1115 VkCommandBuffer commandBuffer,
1116 float minDepthBounds,
1117 float maxDepthBounds)
1118{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001119 AEMU_SCOPED_TRACE("vkCmdSetDepthBounds");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001120 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001121 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001122 vkEnc->vkCmdSetDepthBounds(commandBuffer, minDepthBounds, maxDepthBounds);
1123}
1124static void entry_vkCmdSetStencilCompareMask(
1125 VkCommandBuffer commandBuffer,
1126 VkStencilFaceFlags faceMask,
1127 uint32_t compareMask)
1128{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001129 AEMU_SCOPED_TRACE("vkCmdSetStencilCompareMask");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001130 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001131 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001132 vkEnc->vkCmdSetStencilCompareMask(commandBuffer, faceMask, compareMask);
1133}
1134static void entry_vkCmdSetStencilWriteMask(
1135 VkCommandBuffer commandBuffer,
1136 VkStencilFaceFlags faceMask,
1137 uint32_t writeMask)
1138{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001139 AEMU_SCOPED_TRACE("vkCmdSetStencilWriteMask");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001140 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001141 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001142 vkEnc->vkCmdSetStencilWriteMask(commandBuffer, faceMask, writeMask);
1143}
1144static void entry_vkCmdSetStencilReference(
1145 VkCommandBuffer commandBuffer,
1146 VkStencilFaceFlags faceMask,
1147 uint32_t reference)
1148{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001149 AEMU_SCOPED_TRACE("vkCmdSetStencilReference");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001150 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001151 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001152 vkEnc->vkCmdSetStencilReference(commandBuffer, faceMask, reference);
1153}
1154static void entry_vkCmdBindDescriptorSets(
1155 VkCommandBuffer commandBuffer,
1156 VkPipelineBindPoint pipelineBindPoint,
1157 VkPipelineLayout layout,
1158 uint32_t firstSet,
1159 uint32_t descriptorSetCount,
1160 const VkDescriptorSet* pDescriptorSets,
1161 uint32_t dynamicOffsetCount,
1162 const uint32_t* pDynamicOffsets)
1163{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001164 AEMU_SCOPED_TRACE("vkCmdBindDescriptorSets");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001165 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001166 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001167 vkEnc->vkCmdBindDescriptorSets(commandBuffer, pipelineBindPoint, layout, firstSet, descriptorSetCount, pDescriptorSets, dynamicOffsetCount, pDynamicOffsets);
1168}
1169static void entry_vkCmdBindIndexBuffer(
1170 VkCommandBuffer commandBuffer,
1171 VkBuffer buffer,
1172 VkDeviceSize offset,
1173 VkIndexType indexType)
1174{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001175 AEMU_SCOPED_TRACE("vkCmdBindIndexBuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001176 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001177 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001178 vkEnc->vkCmdBindIndexBuffer(commandBuffer, buffer, offset, indexType);
1179}
1180static void entry_vkCmdBindVertexBuffers(
1181 VkCommandBuffer commandBuffer,
1182 uint32_t firstBinding,
1183 uint32_t bindingCount,
1184 const VkBuffer* pBuffers,
1185 const VkDeviceSize* pOffsets)
1186{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001187 AEMU_SCOPED_TRACE("vkCmdBindVertexBuffers");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001188 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001189 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001190 vkEnc->vkCmdBindVertexBuffers(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets);
1191}
1192static void entry_vkCmdDraw(
1193 VkCommandBuffer commandBuffer,
1194 uint32_t vertexCount,
1195 uint32_t instanceCount,
1196 uint32_t firstVertex,
1197 uint32_t firstInstance)
1198{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001199 AEMU_SCOPED_TRACE("vkCmdDraw");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001200 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001201 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001202 vkEnc->vkCmdDraw(commandBuffer, vertexCount, instanceCount, firstVertex, firstInstance);
1203}
1204static void entry_vkCmdDrawIndexed(
1205 VkCommandBuffer commandBuffer,
1206 uint32_t indexCount,
1207 uint32_t instanceCount,
1208 uint32_t firstIndex,
1209 int32_t vertexOffset,
1210 uint32_t firstInstance)
1211{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001212 AEMU_SCOPED_TRACE("vkCmdDrawIndexed");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001213 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001214 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001215 vkEnc->vkCmdDrawIndexed(commandBuffer, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance);
1216}
1217static void entry_vkCmdDrawIndirect(
1218 VkCommandBuffer commandBuffer,
1219 VkBuffer buffer,
1220 VkDeviceSize offset,
1221 uint32_t drawCount,
1222 uint32_t stride)
1223{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001224 AEMU_SCOPED_TRACE("vkCmdDrawIndirect");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001225 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001226 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001227 vkEnc->vkCmdDrawIndirect(commandBuffer, buffer, offset, drawCount, stride);
1228}
1229static void entry_vkCmdDrawIndexedIndirect(
1230 VkCommandBuffer commandBuffer,
1231 VkBuffer buffer,
1232 VkDeviceSize offset,
1233 uint32_t drawCount,
1234 uint32_t stride)
1235{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001236 AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirect");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001237 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001238 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001239 vkEnc->vkCmdDrawIndexedIndirect(commandBuffer, buffer, offset, drawCount, stride);
1240}
1241static void entry_vkCmdDispatch(
1242 VkCommandBuffer commandBuffer,
1243 uint32_t groupCountX,
1244 uint32_t groupCountY,
1245 uint32_t groupCountZ)
1246{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001247 AEMU_SCOPED_TRACE("vkCmdDispatch");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001248 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001249 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001250 vkEnc->vkCmdDispatch(commandBuffer, groupCountX, groupCountY, groupCountZ);
1251}
1252static void entry_vkCmdDispatchIndirect(
1253 VkCommandBuffer commandBuffer,
1254 VkBuffer buffer,
1255 VkDeviceSize offset)
1256{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001257 AEMU_SCOPED_TRACE("vkCmdDispatchIndirect");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001258 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001259 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001260 vkEnc->vkCmdDispatchIndirect(commandBuffer, buffer, offset);
1261}
1262static void entry_vkCmdCopyBuffer(
1263 VkCommandBuffer commandBuffer,
1264 VkBuffer srcBuffer,
1265 VkBuffer dstBuffer,
1266 uint32_t regionCount,
1267 const VkBufferCopy* pRegions)
1268{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001269 AEMU_SCOPED_TRACE("vkCmdCopyBuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001270 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001271 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001272 vkEnc->vkCmdCopyBuffer(commandBuffer, srcBuffer, dstBuffer, regionCount, pRegions);
1273}
1274static void entry_vkCmdCopyImage(
1275 VkCommandBuffer commandBuffer,
1276 VkImage srcImage,
1277 VkImageLayout srcImageLayout,
1278 VkImage dstImage,
1279 VkImageLayout dstImageLayout,
1280 uint32_t regionCount,
1281 const VkImageCopy* pRegions)
1282{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001283 AEMU_SCOPED_TRACE("vkCmdCopyImage");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001284 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001285 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001286 vkEnc->vkCmdCopyImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions);
1287}
1288static void entry_vkCmdBlitImage(
1289 VkCommandBuffer commandBuffer,
1290 VkImage srcImage,
1291 VkImageLayout srcImageLayout,
1292 VkImage dstImage,
1293 VkImageLayout dstImageLayout,
1294 uint32_t regionCount,
1295 const VkImageBlit* pRegions,
1296 VkFilter filter)
1297{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001298 AEMU_SCOPED_TRACE("vkCmdBlitImage");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001299 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001300 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001301 vkEnc->vkCmdBlitImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions, filter);
1302}
1303static void entry_vkCmdCopyBufferToImage(
1304 VkCommandBuffer commandBuffer,
1305 VkBuffer srcBuffer,
1306 VkImage dstImage,
1307 VkImageLayout dstImageLayout,
1308 uint32_t regionCount,
1309 const VkBufferImageCopy* pRegions)
1310{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001311 AEMU_SCOPED_TRACE("vkCmdCopyBufferToImage");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001312 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001313 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001314 vkEnc->vkCmdCopyBufferToImage(commandBuffer, srcBuffer, dstImage, dstImageLayout, regionCount, pRegions);
1315}
1316static void entry_vkCmdCopyImageToBuffer(
1317 VkCommandBuffer commandBuffer,
1318 VkImage srcImage,
1319 VkImageLayout srcImageLayout,
1320 VkBuffer dstBuffer,
1321 uint32_t regionCount,
1322 const VkBufferImageCopy* pRegions)
1323{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001324 AEMU_SCOPED_TRACE("vkCmdCopyImageToBuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001325 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001326 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001327 vkEnc->vkCmdCopyImageToBuffer(commandBuffer, srcImage, srcImageLayout, dstBuffer, regionCount, pRegions);
1328}
1329static void entry_vkCmdUpdateBuffer(
1330 VkCommandBuffer commandBuffer,
1331 VkBuffer dstBuffer,
1332 VkDeviceSize dstOffset,
1333 VkDeviceSize dataSize,
1334 const void* pData)
1335{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001336 AEMU_SCOPED_TRACE("vkCmdUpdateBuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001337 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001338 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001339 vkEnc->vkCmdUpdateBuffer(commandBuffer, dstBuffer, dstOffset, dataSize, pData);
1340}
1341static void entry_vkCmdFillBuffer(
1342 VkCommandBuffer commandBuffer,
1343 VkBuffer dstBuffer,
1344 VkDeviceSize dstOffset,
1345 VkDeviceSize size,
1346 uint32_t data)
1347{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001348 AEMU_SCOPED_TRACE("vkCmdFillBuffer");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001349 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001350 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001351 vkEnc->vkCmdFillBuffer(commandBuffer, dstBuffer, dstOffset, size, data);
1352}
1353static void entry_vkCmdClearColorImage(
1354 VkCommandBuffer commandBuffer,
1355 VkImage image,
1356 VkImageLayout imageLayout,
1357 const VkClearColorValue* pColor,
1358 uint32_t rangeCount,
1359 const VkImageSubresourceRange* pRanges)
1360{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001361 AEMU_SCOPED_TRACE("vkCmdClearColorImage");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001362 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001363 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001364 vkEnc->vkCmdClearColorImage(commandBuffer, image, imageLayout, pColor, rangeCount, pRanges);
1365}
1366static void entry_vkCmdClearDepthStencilImage(
1367 VkCommandBuffer commandBuffer,
1368 VkImage image,
1369 VkImageLayout imageLayout,
1370 const VkClearDepthStencilValue* pDepthStencil,
1371 uint32_t rangeCount,
1372 const VkImageSubresourceRange* pRanges)
1373{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001374 AEMU_SCOPED_TRACE("vkCmdClearDepthStencilImage");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001375 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001376 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001377 vkEnc->vkCmdClearDepthStencilImage(commandBuffer, image, imageLayout, pDepthStencil, rangeCount, pRanges);
1378}
1379static void entry_vkCmdClearAttachments(
1380 VkCommandBuffer commandBuffer,
1381 uint32_t attachmentCount,
1382 const VkClearAttachment* pAttachments,
1383 uint32_t rectCount,
1384 const VkClearRect* pRects)
1385{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001386 AEMU_SCOPED_TRACE("vkCmdClearAttachments");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001387 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001388 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001389 vkEnc->vkCmdClearAttachments(commandBuffer, attachmentCount, pAttachments, rectCount, pRects);
1390}
1391static void entry_vkCmdResolveImage(
1392 VkCommandBuffer commandBuffer,
1393 VkImage srcImage,
1394 VkImageLayout srcImageLayout,
1395 VkImage dstImage,
1396 VkImageLayout dstImageLayout,
1397 uint32_t regionCount,
1398 const VkImageResolve* pRegions)
1399{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001400 AEMU_SCOPED_TRACE("vkCmdResolveImage");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001401 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001402 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001403 vkEnc->vkCmdResolveImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions);
1404}
1405static void entry_vkCmdSetEvent(
1406 VkCommandBuffer commandBuffer,
1407 VkEvent event,
1408 VkPipelineStageFlags stageMask)
1409{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001410 AEMU_SCOPED_TRACE("vkCmdSetEvent");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001411 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001412 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001413 vkEnc->vkCmdSetEvent(commandBuffer, event, stageMask);
1414}
1415static void entry_vkCmdResetEvent(
1416 VkCommandBuffer commandBuffer,
1417 VkEvent event,
1418 VkPipelineStageFlags stageMask)
1419{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001420 AEMU_SCOPED_TRACE("vkCmdResetEvent");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001421 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001422 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001423 vkEnc->vkCmdResetEvent(commandBuffer, event, stageMask);
1424}
1425static void entry_vkCmdWaitEvents(
1426 VkCommandBuffer commandBuffer,
1427 uint32_t eventCount,
1428 const VkEvent* pEvents,
1429 VkPipelineStageFlags srcStageMask,
1430 VkPipelineStageFlags dstStageMask,
1431 uint32_t memoryBarrierCount,
1432 const VkMemoryBarrier* pMemoryBarriers,
1433 uint32_t bufferMemoryBarrierCount,
1434 const VkBufferMemoryBarrier* pBufferMemoryBarriers,
1435 uint32_t imageMemoryBarrierCount,
1436 const VkImageMemoryBarrier* pImageMemoryBarriers)
1437{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001438 AEMU_SCOPED_TRACE("vkCmdWaitEvents");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001439 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001440 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001441 vkEnc->vkCmdWaitEvents(commandBuffer, eventCount, pEvents, srcStageMask, dstStageMask, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers);
1442}
1443static void entry_vkCmdPipelineBarrier(
1444 VkCommandBuffer commandBuffer,
1445 VkPipelineStageFlags srcStageMask,
1446 VkPipelineStageFlags dstStageMask,
1447 VkDependencyFlags dependencyFlags,
1448 uint32_t memoryBarrierCount,
1449 const VkMemoryBarrier* pMemoryBarriers,
1450 uint32_t bufferMemoryBarrierCount,
1451 const VkBufferMemoryBarrier* pBufferMemoryBarriers,
1452 uint32_t imageMemoryBarrierCount,
1453 const VkImageMemoryBarrier* pImageMemoryBarriers)
1454{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001455 AEMU_SCOPED_TRACE("vkCmdPipelineBarrier");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001456 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001457 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001458 vkEnc->vkCmdPipelineBarrier(commandBuffer, srcStageMask, dstStageMask, dependencyFlags, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers);
1459}
1460static void entry_vkCmdBeginQuery(
1461 VkCommandBuffer commandBuffer,
1462 VkQueryPool queryPool,
1463 uint32_t query,
1464 VkQueryControlFlags flags)
1465{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001466 AEMU_SCOPED_TRACE("vkCmdBeginQuery");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001467 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001468 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001469 vkEnc->vkCmdBeginQuery(commandBuffer, queryPool, query, flags);
1470}
1471static void entry_vkCmdEndQuery(
1472 VkCommandBuffer commandBuffer,
1473 VkQueryPool queryPool,
1474 uint32_t query)
1475{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001476 AEMU_SCOPED_TRACE("vkCmdEndQuery");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001477 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001478 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001479 vkEnc->vkCmdEndQuery(commandBuffer, queryPool, query);
1480}
1481static void entry_vkCmdResetQueryPool(
1482 VkCommandBuffer commandBuffer,
1483 VkQueryPool queryPool,
1484 uint32_t firstQuery,
1485 uint32_t queryCount)
1486{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001487 AEMU_SCOPED_TRACE("vkCmdResetQueryPool");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001488 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001489 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001490 vkEnc->vkCmdResetQueryPool(commandBuffer, queryPool, firstQuery, queryCount);
1491}
1492static void entry_vkCmdWriteTimestamp(
1493 VkCommandBuffer commandBuffer,
1494 VkPipelineStageFlagBits pipelineStage,
1495 VkQueryPool queryPool,
1496 uint32_t query)
1497{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001498 AEMU_SCOPED_TRACE("vkCmdWriteTimestamp");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001499 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001500 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001501 vkEnc->vkCmdWriteTimestamp(commandBuffer, pipelineStage, queryPool, query);
1502}
1503static void entry_vkCmdCopyQueryPoolResults(
1504 VkCommandBuffer commandBuffer,
1505 VkQueryPool queryPool,
1506 uint32_t firstQuery,
1507 uint32_t queryCount,
1508 VkBuffer dstBuffer,
1509 VkDeviceSize dstOffset,
1510 VkDeviceSize stride,
1511 VkQueryResultFlags flags)
1512{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001513 AEMU_SCOPED_TRACE("vkCmdCopyQueryPoolResults");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001514 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001515 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001516 vkEnc->vkCmdCopyQueryPoolResults(commandBuffer, queryPool, firstQuery, queryCount, dstBuffer, dstOffset, stride, flags);
1517}
1518static void entry_vkCmdPushConstants(
1519 VkCommandBuffer commandBuffer,
1520 VkPipelineLayout layout,
1521 VkShaderStageFlags stageFlags,
1522 uint32_t offset,
1523 uint32_t size,
1524 const void* pValues)
1525{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001526 AEMU_SCOPED_TRACE("vkCmdPushConstants");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001527 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001528 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001529 vkEnc->vkCmdPushConstants(commandBuffer, layout, stageFlags, offset, size, pValues);
1530}
1531static void entry_vkCmdBeginRenderPass(
1532 VkCommandBuffer commandBuffer,
1533 const VkRenderPassBeginInfo* pRenderPassBegin,
1534 VkSubpassContents contents)
1535{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001536 AEMU_SCOPED_TRACE("vkCmdBeginRenderPass");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001537 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001538 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001539 vkEnc->vkCmdBeginRenderPass(commandBuffer, pRenderPassBegin, contents);
1540}
1541static void entry_vkCmdNextSubpass(
1542 VkCommandBuffer commandBuffer,
1543 VkSubpassContents contents)
1544{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001545 AEMU_SCOPED_TRACE("vkCmdNextSubpass");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001546 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001547 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001548 vkEnc->vkCmdNextSubpass(commandBuffer, contents);
1549}
1550static void entry_vkCmdEndRenderPass(
1551 VkCommandBuffer commandBuffer)
1552{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001553 AEMU_SCOPED_TRACE("vkCmdEndRenderPass");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001554 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001555 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001556 vkEnc->vkCmdEndRenderPass(commandBuffer);
1557}
1558static void entry_vkCmdExecuteCommands(
1559 VkCommandBuffer commandBuffer,
1560 uint32_t commandBufferCount,
1561 const VkCommandBuffer* pCommandBuffers)
1562{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001563 AEMU_SCOPED_TRACE("vkCmdExecuteCommands");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001564 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001565 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001566 vkEnc->vkCmdExecuteCommands(commandBuffer, commandBufferCount, pCommandBuffers);
1567}
1568#endif
1569#ifdef VK_VERSION_1_1
1570static VkResult entry_vkEnumerateInstanceVersion(
1571 uint32_t* pApiVersion)
1572{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001573 AEMU_SCOPED_TRACE("vkEnumerateInstanceVersion");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001574 auto vkEnc = HostConnection::get()->vkEncoder();
1575 VkResult vkEnumerateInstanceVersion_VkResult_return = (VkResult)0;
1576 vkEnumerateInstanceVersion_VkResult_return = vkEnc->vkEnumerateInstanceVersion(pApiVersion);
1577 return vkEnumerateInstanceVersion_VkResult_return;
1578}
1579static VkResult entry_vkBindBufferMemory2(
1580 VkDevice device,
1581 uint32_t bindInfoCount,
1582 const VkBindBufferMemoryInfo* pBindInfos)
1583{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001584 AEMU_SCOPED_TRACE("vkBindBufferMemory2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001585 auto vkEnc = HostConnection::get()->vkEncoder();
1586 VkResult vkBindBufferMemory2_VkResult_return = (VkResult)0;
Lingfeng Yang4af5f322019-02-14 08:10:28 -08001587 auto resources = ResourceTracker::get();
1588 vkBindBufferMemory2_VkResult_return = resources->on_vkBindBufferMemory2(vkEnc, VK_SUCCESS, device, bindInfoCount, pBindInfos);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001589 return vkBindBufferMemory2_VkResult_return;
1590}
1591static VkResult entry_vkBindImageMemory2(
1592 VkDevice device,
1593 uint32_t bindInfoCount,
1594 const VkBindImageMemoryInfo* pBindInfos)
1595{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001596 AEMU_SCOPED_TRACE("vkBindImageMemory2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001597 auto vkEnc = HostConnection::get()->vkEncoder();
1598 VkResult vkBindImageMemory2_VkResult_return = (VkResult)0;
Lingfeng Yang4af5f322019-02-14 08:10:28 -08001599 auto resources = ResourceTracker::get();
1600 vkBindImageMemory2_VkResult_return = resources->on_vkBindImageMemory2(vkEnc, VK_SUCCESS, device, bindInfoCount, pBindInfos);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001601 return vkBindImageMemory2_VkResult_return;
1602}
1603static void entry_vkGetDeviceGroupPeerMemoryFeatures(
1604 VkDevice device,
1605 uint32_t heapIndex,
1606 uint32_t localDeviceIndex,
1607 uint32_t remoteDeviceIndex,
1608 VkPeerMemoryFeatureFlags* pPeerMemoryFeatures)
1609{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001610 AEMU_SCOPED_TRACE("vkGetDeviceGroupPeerMemoryFeatures");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001611 auto vkEnc = HostConnection::get()->vkEncoder();
1612 vkEnc->vkGetDeviceGroupPeerMemoryFeatures(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures);
1613}
1614static void entry_vkCmdSetDeviceMask(
1615 VkCommandBuffer commandBuffer,
1616 uint32_t deviceMask)
1617{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001618 AEMU_SCOPED_TRACE("vkCmdSetDeviceMask");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001619 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001620 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001621 vkEnc->vkCmdSetDeviceMask(commandBuffer, deviceMask);
1622}
1623static void entry_vkCmdDispatchBase(
1624 VkCommandBuffer commandBuffer,
1625 uint32_t baseGroupX,
1626 uint32_t baseGroupY,
1627 uint32_t baseGroupZ,
1628 uint32_t groupCountX,
1629 uint32_t groupCountY,
1630 uint32_t groupCountZ)
1631{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001632 AEMU_SCOPED_TRACE("vkCmdDispatchBase");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001633 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07001634 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001635 vkEnc->vkCmdDispatchBase(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ);
1636}
1637static VkResult entry_vkEnumeratePhysicalDeviceGroups(
1638 VkInstance instance,
1639 uint32_t* pPhysicalDeviceGroupCount,
1640 VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties)
1641{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001642 AEMU_SCOPED_TRACE("vkEnumeratePhysicalDeviceGroups");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001643 auto vkEnc = HostConnection::get()->vkEncoder();
1644 VkResult vkEnumeratePhysicalDeviceGroups_VkResult_return = (VkResult)0;
1645 vkEnumeratePhysicalDeviceGroups_VkResult_return = vkEnc->vkEnumeratePhysicalDeviceGroups(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties);
1646 return vkEnumeratePhysicalDeviceGroups_VkResult_return;
1647}
1648static void entry_vkGetImageMemoryRequirements2(
1649 VkDevice device,
1650 const VkImageMemoryRequirementsInfo2* pInfo,
1651 VkMemoryRequirements2* pMemoryRequirements)
1652{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001653 AEMU_SCOPED_TRACE("vkGetImageMemoryRequirements2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001654 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang4af5f322019-02-14 08:10:28 -08001655 auto resources = ResourceTracker::get();
1656 resources->on_vkGetImageMemoryRequirements2(vkEnc, device, pInfo, pMemoryRequirements);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001657}
1658static void entry_vkGetBufferMemoryRequirements2(
1659 VkDevice device,
1660 const VkBufferMemoryRequirementsInfo2* pInfo,
1661 VkMemoryRequirements2* pMemoryRequirements)
1662{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001663 AEMU_SCOPED_TRACE("vkGetBufferMemoryRequirements2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001664 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang4af5f322019-02-14 08:10:28 -08001665 auto resources = ResourceTracker::get();
1666 resources->on_vkGetBufferMemoryRequirements2(vkEnc, device, pInfo, pMemoryRequirements);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001667}
1668static void entry_vkGetImageSparseMemoryRequirements2(
1669 VkDevice device,
1670 const VkImageSparseMemoryRequirementsInfo2* pInfo,
1671 uint32_t* pSparseMemoryRequirementCount,
1672 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements)
1673{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001674 AEMU_SCOPED_TRACE("vkGetImageSparseMemoryRequirements2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001675 auto vkEnc = HostConnection::get()->vkEncoder();
1676 vkEnc->vkGetImageSparseMemoryRequirements2(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements);
1677}
1678static void entry_vkGetPhysicalDeviceFeatures2(
1679 VkPhysicalDevice physicalDevice,
1680 VkPhysicalDeviceFeatures2* pFeatures)
1681{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001682 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFeatures2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001683 auto vkEnc = HostConnection::get()->vkEncoder();
1684 vkEnc->vkGetPhysicalDeviceFeatures2(physicalDevice, pFeatures);
1685}
1686static void entry_vkGetPhysicalDeviceProperties2(
1687 VkPhysicalDevice physicalDevice,
1688 VkPhysicalDeviceProperties2* pProperties)
1689{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001690 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceProperties2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001691 auto vkEnc = HostConnection::get()->vkEncoder();
1692 vkEnc->vkGetPhysicalDeviceProperties2(physicalDevice, pProperties);
1693}
1694static void entry_vkGetPhysicalDeviceFormatProperties2(
1695 VkPhysicalDevice physicalDevice,
1696 VkFormat format,
1697 VkFormatProperties2* pFormatProperties)
1698{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001699 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFormatProperties2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001700 auto vkEnc = HostConnection::get()->vkEncoder();
1701 vkEnc->vkGetPhysicalDeviceFormatProperties2(physicalDevice, format, pFormatProperties);
1702}
1703static VkResult entry_vkGetPhysicalDeviceImageFormatProperties2(
1704 VkPhysicalDevice physicalDevice,
1705 const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
1706 VkImageFormatProperties2* pImageFormatProperties)
1707{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001708 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceImageFormatProperties2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001709 auto vkEnc = HostConnection::get()->vkEncoder();
1710 VkResult vkGetPhysicalDeviceImageFormatProperties2_VkResult_return = (VkResult)0;
Lingfeng Yange517d1e2019-03-25 18:02:49 -07001711 auto resources = ResourceTracker::get();
1712 vkGetPhysicalDeviceImageFormatProperties2_VkResult_return = resources->on_vkGetPhysicalDeviceImageFormatProperties2(vkEnc, VK_SUCCESS, physicalDevice, pImageFormatInfo, pImageFormatProperties);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001713 return vkGetPhysicalDeviceImageFormatProperties2_VkResult_return;
1714}
1715static void entry_vkGetPhysicalDeviceQueueFamilyProperties2(
1716 VkPhysicalDevice physicalDevice,
1717 uint32_t* pQueueFamilyPropertyCount,
1718 VkQueueFamilyProperties2* pQueueFamilyProperties)
1719{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001720 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceQueueFamilyProperties2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001721 auto vkEnc = HostConnection::get()->vkEncoder();
1722 vkEnc->vkGetPhysicalDeviceQueueFamilyProperties2(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties);
1723}
1724static void entry_vkGetPhysicalDeviceMemoryProperties2(
1725 VkPhysicalDevice physicalDevice,
1726 VkPhysicalDeviceMemoryProperties2* pMemoryProperties)
1727{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001728 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMemoryProperties2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001729 auto vkEnc = HostConnection::get()->vkEncoder();
1730 vkEnc->vkGetPhysicalDeviceMemoryProperties2(physicalDevice, pMemoryProperties);
1731}
1732static void entry_vkGetPhysicalDeviceSparseImageFormatProperties2(
1733 VkPhysicalDevice physicalDevice,
1734 const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
1735 uint32_t* pPropertyCount,
1736 VkSparseImageFormatProperties2* pProperties)
1737{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001738 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSparseImageFormatProperties2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001739 auto vkEnc = HostConnection::get()->vkEncoder();
1740 vkEnc->vkGetPhysicalDeviceSparseImageFormatProperties2(physicalDevice, pFormatInfo, pPropertyCount, pProperties);
1741}
1742static void entry_vkTrimCommandPool(
1743 VkDevice device,
1744 VkCommandPool commandPool,
1745 VkCommandPoolTrimFlags flags)
1746{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001747 AEMU_SCOPED_TRACE("vkTrimCommandPool");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001748 auto vkEnc = HostConnection::get()->vkEncoder();
1749 vkEnc->vkTrimCommandPool(device, commandPool, flags);
1750}
1751static void entry_vkGetDeviceQueue2(
1752 VkDevice device,
1753 const VkDeviceQueueInfo2* pQueueInfo,
1754 VkQueue* pQueue)
1755{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001756 AEMU_SCOPED_TRACE("vkGetDeviceQueue2");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001757 auto vkEnc = HostConnection::get()->vkEncoder();
1758 vkEnc->vkGetDeviceQueue2(device, pQueueInfo, pQueue);
1759}
1760static VkResult entry_vkCreateSamplerYcbcrConversion(
1761 VkDevice device,
1762 const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
1763 const VkAllocationCallbacks* pAllocator,
1764 VkSamplerYcbcrConversion* pYcbcrConversion)
1765{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001766 AEMU_SCOPED_TRACE("vkCreateSamplerYcbcrConversion");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001767 auto vkEnc = HostConnection::get()->vkEncoder();
1768 VkResult vkCreateSamplerYcbcrConversion_VkResult_return = (VkResult)0;
Lingfeng Yang5c701122019-03-05 08:34:46 -08001769 auto resources = ResourceTracker::get();
1770 vkCreateSamplerYcbcrConversion_VkResult_return = resources->on_vkCreateSamplerYcbcrConversion(vkEnc, VK_SUCCESS, device, pCreateInfo, pAllocator, pYcbcrConversion);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001771 return vkCreateSamplerYcbcrConversion_VkResult_return;
1772}
1773static void entry_vkDestroySamplerYcbcrConversion(
1774 VkDevice device,
1775 VkSamplerYcbcrConversion ycbcrConversion,
1776 const VkAllocationCallbacks* pAllocator)
1777{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001778 AEMU_SCOPED_TRACE("vkDestroySamplerYcbcrConversion");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001779 auto vkEnc = HostConnection::get()->vkEncoder();
1780 vkEnc->vkDestroySamplerYcbcrConversion(device, ycbcrConversion, pAllocator);
1781}
1782static VkResult entry_vkCreateDescriptorUpdateTemplate(
1783 VkDevice device,
1784 const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
1785 const VkAllocationCallbacks* pAllocator,
1786 VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate)
1787{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001788 AEMU_SCOPED_TRACE("vkCreateDescriptorUpdateTemplate");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001789 auto vkEnc = HostConnection::get()->vkEncoder();
1790 VkResult vkCreateDescriptorUpdateTemplate_VkResult_return = (VkResult)0;
1791 vkCreateDescriptorUpdateTemplate_VkResult_return = vkEnc->vkCreateDescriptorUpdateTemplate(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate);
1792 return vkCreateDescriptorUpdateTemplate_VkResult_return;
1793}
1794static void entry_vkDestroyDescriptorUpdateTemplate(
1795 VkDevice device,
1796 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
1797 const VkAllocationCallbacks* pAllocator)
1798{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001799 AEMU_SCOPED_TRACE("vkDestroyDescriptorUpdateTemplate");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001800 auto vkEnc = HostConnection::get()->vkEncoder();
1801 vkEnc->vkDestroyDescriptorUpdateTemplate(device, descriptorUpdateTemplate, pAllocator);
1802}
1803static void entry_vkUpdateDescriptorSetWithTemplate(
1804 VkDevice device,
1805 VkDescriptorSet descriptorSet,
1806 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
1807 const void* pData)
1808{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001809 AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplate");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001810 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang05d5ea32019-03-23 00:12:39 -07001811 auto resources = ResourceTracker::get();
1812 resources->on_vkUpdateDescriptorSetWithTemplate(vkEnc, device, descriptorSet, descriptorUpdateTemplate, pData);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001813}
1814static void entry_vkGetPhysicalDeviceExternalBufferProperties(
1815 VkPhysicalDevice physicalDevice,
1816 const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
1817 VkExternalBufferProperties* pExternalBufferProperties)
1818{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001819 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalBufferProperties");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001820 auto vkEnc = HostConnection::get()->vkEncoder();
1821 vkEnc->vkGetPhysicalDeviceExternalBufferProperties(physicalDevice, pExternalBufferInfo, pExternalBufferProperties);
1822}
1823static void entry_vkGetPhysicalDeviceExternalFenceProperties(
1824 VkPhysicalDevice physicalDevice,
1825 const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
1826 VkExternalFenceProperties* pExternalFenceProperties)
1827{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001828 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalFenceProperties");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001829 auto vkEnc = HostConnection::get()->vkEncoder();
1830 vkEnc->vkGetPhysicalDeviceExternalFenceProperties(physicalDevice, pExternalFenceInfo, pExternalFenceProperties);
1831}
1832static void entry_vkGetPhysicalDeviceExternalSemaphoreProperties(
1833 VkPhysicalDevice physicalDevice,
1834 const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
1835 VkExternalSemaphoreProperties* pExternalSemaphoreProperties)
1836{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001837 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalSemaphoreProperties");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001838 auto vkEnc = HostConnection::get()->vkEncoder();
1839 vkEnc->vkGetPhysicalDeviceExternalSemaphoreProperties(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties);
1840}
1841static void entry_vkGetDescriptorSetLayoutSupport(
1842 VkDevice device,
1843 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
1844 VkDescriptorSetLayoutSupport* pSupport)
1845{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001846 AEMU_SCOPED_TRACE("vkGetDescriptorSetLayoutSupport");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001847 auto vkEnc = HostConnection::get()->vkEncoder();
1848 vkEnc->vkGetDescriptorSetLayoutSupport(device, pCreateInfo, pSupport);
1849}
1850#endif
1851#ifdef VK_KHR_surface
1852static void entry_vkDestroySurfaceKHR(
1853 VkInstance instance,
1854 VkSurfaceKHR surface,
1855 const VkAllocationCallbacks* pAllocator)
1856{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001857 AEMU_SCOPED_TRACE("vkDestroySurfaceKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001858 auto vkEnc = HostConnection::get()->vkEncoder();
1859 vkEnc->vkDestroySurfaceKHR(instance, surface, pAllocator);
1860}
1861static VkResult entry_vkGetPhysicalDeviceSurfaceSupportKHR(
1862 VkPhysicalDevice physicalDevice,
1863 uint32_t queueFamilyIndex,
1864 VkSurfaceKHR surface,
1865 VkBool32* pSupported)
1866{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001867 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceSupportKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001868 auto vkEnc = HostConnection::get()->vkEncoder();
1869 VkResult vkGetPhysicalDeviceSurfaceSupportKHR_VkResult_return = (VkResult)0;
1870 vkGetPhysicalDeviceSurfaceSupportKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceSupportKHR(physicalDevice, queueFamilyIndex, surface, pSupported);
1871 return vkGetPhysicalDeviceSurfaceSupportKHR_VkResult_return;
1872}
1873static VkResult entry_vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
1874 VkPhysicalDevice physicalDevice,
1875 VkSurfaceKHR surface,
1876 VkSurfaceCapabilitiesKHR* pSurfaceCapabilities)
1877{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001878 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceCapabilitiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001879 auto vkEnc = HostConnection::get()->vkEncoder();
1880 VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR_VkResult_return = (VkResult)0;
1881 vkGetPhysicalDeviceSurfaceCapabilitiesKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceCapabilitiesKHR(physicalDevice, surface, pSurfaceCapabilities);
1882 return vkGetPhysicalDeviceSurfaceCapabilitiesKHR_VkResult_return;
1883}
1884static VkResult entry_vkGetPhysicalDeviceSurfaceFormatsKHR(
1885 VkPhysicalDevice physicalDevice,
1886 VkSurfaceKHR surface,
1887 uint32_t* pSurfaceFormatCount,
1888 VkSurfaceFormatKHR* pSurfaceFormats)
1889{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001890 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceFormatsKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001891 auto vkEnc = HostConnection::get()->vkEncoder();
1892 VkResult vkGetPhysicalDeviceSurfaceFormatsKHR_VkResult_return = (VkResult)0;
1893 vkGetPhysicalDeviceSurfaceFormatsKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceFormatsKHR(physicalDevice, surface, pSurfaceFormatCount, pSurfaceFormats);
1894 return vkGetPhysicalDeviceSurfaceFormatsKHR_VkResult_return;
1895}
1896static VkResult entry_vkGetPhysicalDeviceSurfacePresentModesKHR(
1897 VkPhysicalDevice physicalDevice,
1898 VkSurfaceKHR surface,
1899 uint32_t* pPresentModeCount,
1900 VkPresentModeKHR* pPresentModes)
1901{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001902 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfacePresentModesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001903 auto vkEnc = HostConnection::get()->vkEncoder();
1904 VkResult vkGetPhysicalDeviceSurfacePresentModesKHR_VkResult_return = (VkResult)0;
1905 vkGetPhysicalDeviceSurfacePresentModesKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfacePresentModesKHR(physicalDevice, surface, pPresentModeCount, pPresentModes);
1906 return vkGetPhysicalDeviceSurfacePresentModesKHR_VkResult_return;
1907}
1908#endif
1909#ifdef VK_KHR_swapchain
1910static VkResult entry_vkCreateSwapchainKHR(
1911 VkDevice device,
1912 const VkSwapchainCreateInfoKHR* pCreateInfo,
1913 const VkAllocationCallbacks* pAllocator,
1914 VkSwapchainKHR* pSwapchain)
1915{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001916 AEMU_SCOPED_TRACE("vkCreateSwapchainKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001917 auto vkEnc = HostConnection::get()->vkEncoder();
1918 VkResult vkCreateSwapchainKHR_VkResult_return = (VkResult)0;
1919 vkCreateSwapchainKHR_VkResult_return = vkEnc->vkCreateSwapchainKHR(device, pCreateInfo, pAllocator, pSwapchain);
1920 return vkCreateSwapchainKHR_VkResult_return;
1921}
1922static void entry_vkDestroySwapchainKHR(
1923 VkDevice device,
1924 VkSwapchainKHR swapchain,
1925 const VkAllocationCallbacks* pAllocator)
1926{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001927 AEMU_SCOPED_TRACE("vkDestroySwapchainKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001928 auto vkEnc = HostConnection::get()->vkEncoder();
1929 vkEnc->vkDestroySwapchainKHR(device, swapchain, pAllocator);
1930}
1931static VkResult entry_vkGetSwapchainImagesKHR(
1932 VkDevice device,
1933 VkSwapchainKHR swapchain,
1934 uint32_t* pSwapchainImageCount,
1935 VkImage* pSwapchainImages)
1936{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001937 AEMU_SCOPED_TRACE("vkGetSwapchainImagesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001938 auto vkEnc = HostConnection::get()->vkEncoder();
1939 VkResult vkGetSwapchainImagesKHR_VkResult_return = (VkResult)0;
1940 vkGetSwapchainImagesKHR_VkResult_return = vkEnc->vkGetSwapchainImagesKHR(device, swapchain, pSwapchainImageCount, pSwapchainImages);
1941 return vkGetSwapchainImagesKHR_VkResult_return;
1942}
1943static VkResult entry_vkAcquireNextImageKHR(
1944 VkDevice device,
1945 VkSwapchainKHR swapchain,
1946 uint64_t timeout,
1947 VkSemaphore semaphore,
1948 VkFence fence,
1949 uint32_t* pImageIndex)
1950{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001951 AEMU_SCOPED_TRACE("vkAcquireNextImageKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001952 auto vkEnc = HostConnection::get()->vkEncoder();
1953 VkResult vkAcquireNextImageKHR_VkResult_return = (VkResult)0;
1954 vkAcquireNextImageKHR_VkResult_return = vkEnc->vkAcquireNextImageKHR(device, swapchain, timeout, semaphore, fence, pImageIndex);
1955 return vkAcquireNextImageKHR_VkResult_return;
1956}
1957static VkResult entry_vkQueuePresentKHR(
1958 VkQueue queue,
1959 const VkPresentInfoKHR* pPresentInfo)
1960{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001961 AEMU_SCOPED_TRACE("vkQueuePresentKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001962 auto vkEnc = HostConnection::get()->vkEncoder();
1963 VkResult vkQueuePresentKHR_VkResult_return = (VkResult)0;
1964 vkQueuePresentKHR_VkResult_return = vkEnc->vkQueuePresentKHR(queue, pPresentInfo);
1965 return vkQueuePresentKHR_VkResult_return;
1966}
1967static VkResult entry_vkGetDeviceGroupPresentCapabilitiesKHR(
1968 VkDevice device,
1969 VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities)
1970{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001971 AEMU_SCOPED_TRACE("vkGetDeviceGroupPresentCapabilitiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001972 auto vkEnc = HostConnection::get()->vkEncoder();
1973 VkResult vkGetDeviceGroupPresentCapabilitiesKHR_VkResult_return = (VkResult)0;
1974 vkGetDeviceGroupPresentCapabilitiesKHR_VkResult_return = vkEnc->vkGetDeviceGroupPresentCapabilitiesKHR(device, pDeviceGroupPresentCapabilities);
1975 return vkGetDeviceGroupPresentCapabilitiesKHR_VkResult_return;
1976}
1977static VkResult entry_vkGetDeviceGroupSurfacePresentModesKHR(
1978 VkDevice device,
1979 VkSurfaceKHR surface,
1980 VkDeviceGroupPresentModeFlagsKHR* pModes)
1981{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001982 AEMU_SCOPED_TRACE("vkGetDeviceGroupSurfacePresentModesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001983 auto vkEnc = HostConnection::get()->vkEncoder();
1984 VkResult vkGetDeviceGroupSurfacePresentModesKHR_VkResult_return = (VkResult)0;
1985 vkGetDeviceGroupSurfacePresentModesKHR_VkResult_return = vkEnc->vkGetDeviceGroupSurfacePresentModesKHR(device, surface, pModes);
1986 return vkGetDeviceGroupSurfacePresentModesKHR_VkResult_return;
1987}
1988static VkResult entry_vkGetPhysicalDevicePresentRectanglesKHR(
1989 VkPhysicalDevice physicalDevice,
1990 VkSurfaceKHR surface,
1991 uint32_t* pRectCount,
1992 VkRect2D* pRects)
1993{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08001994 AEMU_SCOPED_TRACE("vkGetPhysicalDevicePresentRectanglesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08001995 auto vkEnc = HostConnection::get()->vkEncoder();
1996 VkResult vkGetPhysicalDevicePresentRectanglesKHR_VkResult_return = (VkResult)0;
1997 vkGetPhysicalDevicePresentRectanglesKHR_VkResult_return = vkEnc->vkGetPhysicalDevicePresentRectanglesKHR(physicalDevice, surface, pRectCount, pRects);
1998 return vkGetPhysicalDevicePresentRectanglesKHR_VkResult_return;
1999}
2000static VkResult entry_vkAcquireNextImage2KHR(
2001 VkDevice device,
2002 const VkAcquireNextImageInfoKHR* pAcquireInfo,
2003 uint32_t* pImageIndex)
2004{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002005 AEMU_SCOPED_TRACE("vkAcquireNextImage2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002006 auto vkEnc = HostConnection::get()->vkEncoder();
2007 VkResult vkAcquireNextImage2KHR_VkResult_return = (VkResult)0;
2008 vkAcquireNextImage2KHR_VkResult_return = vkEnc->vkAcquireNextImage2KHR(device, pAcquireInfo, pImageIndex);
2009 return vkAcquireNextImage2KHR_VkResult_return;
2010}
2011#endif
2012#ifdef VK_KHR_display
2013static VkResult entry_vkGetPhysicalDeviceDisplayPropertiesKHR(
2014 VkPhysicalDevice physicalDevice,
2015 uint32_t* pPropertyCount,
2016 VkDisplayPropertiesKHR* pProperties)
2017{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002018 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayPropertiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002019 auto vkEnc = HostConnection::get()->vkEncoder();
2020 VkResult vkGetPhysicalDeviceDisplayPropertiesKHR_VkResult_return = (VkResult)0;
2021 vkGetPhysicalDeviceDisplayPropertiesKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceDisplayPropertiesKHR(physicalDevice, pPropertyCount, pProperties);
2022 return vkGetPhysicalDeviceDisplayPropertiesKHR_VkResult_return;
2023}
2024static VkResult entry_vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
2025 VkPhysicalDevice physicalDevice,
2026 uint32_t* pPropertyCount,
2027 VkDisplayPlanePropertiesKHR* pProperties)
2028{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002029 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayPlanePropertiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002030 auto vkEnc = HostConnection::get()->vkEncoder();
2031 VkResult vkGetPhysicalDeviceDisplayPlanePropertiesKHR_VkResult_return = (VkResult)0;
2032 vkGetPhysicalDeviceDisplayPlanePropertiesKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceDisplayPlanePropertiesKHR(physicalDevice, pPropertyCount, pProperties);
2033 return vkGetPhysicalDeviceDisplayPlanePropertiesKHR_VkResult_return;
2034}
2035static VkResult entry_vkGetDisplayPlaneSupportedDisplaysKHR(
2036 VkPhysicalDevice physicalDevice,
2037 uint32_t planeIndex,
2038 uint32_t* pDisplayCount,
2039 VkDisplayKHR* pDisplays)
2040{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002041 AEMU_SCOPED_TRACE("vkGetDisplayPlaneSupportedDisplaysKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002042 auto vkEnc = HostConnection::get()->vkEncoder();
2043 VkResult vkGetDisplayPlaneSupportedDisplaysKHR_VkResult_return = (VkResult)0;
2044 vkGetDisplayPlaneSupportedDisplaysKHR_VkResult_return = vkEnc->vkGetDisplayPlaneSupportedDisplaysKHR(physicalDevice, planeIndex, pDisplayCount, pDisplays);
2045 return vkGetDisplayPlaneSupportedDisplaysKHR_VkResult_return;
2046}
2047static VkResult entry_vkGetDisplayModePropertiesKHR(
2048 VkPhysicalDevice physicalDevice,
2049 VkDisplayKHR display,
2050 uint32_t* pPropertyCount,
2051 VkDisplayModePropertiesKHR* pProperties)
2052{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002053 AEMU_SCOPED_TRACE("vkGetDisplayModePropertiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002054 auto vkEnc = HostConnection::get()->vkEncoder();
2055 VkResult vkGetDisplayModePropertiesKHR_VkResult_return = (VkResult)0;
2056 vkGetDisplayModePropertiesKHR_VkResult_return = vkEnc->vkGetDisplayModePropertiesKHR(physicalDevice, display, pPropertyCount, pProperties);
2057 return vkGetDisplayModePropertiesKHR_VkResult_return;
2058}
2059static VkResult entry_vkCreateDisplayModeKHR(
2060 VkPhysicalDevice physicalDevice,
2061 VkDisplayKHR display,
2062 const VkDisplayModeCreateInfoKHR* pCreateInfo,
2063 const VkAllocationCallbacks* pAllocator,
2064 VkDisplayModeKHR* pMode)
2065{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002066 AEMU_SCOPED_TRACE("vkCreateDisplayModeKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002067 auto vkEnc = HostConnection::get()->vkEncoder();
2068 VkResult vkCreateDisplayModeKHR_VkResult_return = (VkResult)0;
2069 vkCreateDisplayModeKHR_VkResult_return = vkEnc->vkCreateDisplayModeKHR(physicalDevice, display, pCreateInfo, pAllocator, pMode);
2070 return vkCreateDisplayModeKHR_VkResult_return;
2071}
2072static VkResult entry_vkGetDisplayPlaneCapabilitiesKHR(
2073 VkPhysicalDevice physicalDevice,
2074 VkDisplayModeKHR mode,
2075 uint32_t planeIndex,
2076 VkDisplayPlaneCapabilitiesKHR* pCapabilities)
2077{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002078 AEMU_SCOPED_TRACE("vkGetDisplayPlaneCapabilitiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002079 auto vkEnc = HostConnection::get()->vkEncoder();
2080 VkResult vkGetDisplayPlaneCapabilitiesKHR_VkResult_return = (VkResult)0;
2081 vkGetDisplayPlaneCapabilitiesKHR_VkResult_return = vkEnc->vkGetDisplayPlaneCapabilitiesKHR(physicalDevice, mode, planeIndex, pCapabilities);
2082 return vkGetDisplayPlaneCapabilitiesKHR_VkResult_return;
2083}
2084static VkResult entry_vkCreateDisplayPlaneSurfaceKHR(
2085 VkInstance instance,
2086 const VkDisplaySurfaceCreateInfoKHR* pCreateInfo,
2087 const VkAllocationCallbacks* pAllocator,
2088 VkSurfaceKHR* pSurface)
2089{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002090 AEMU_SCOPED_TRACE("vkCreateDisplayPlaneSurfaceKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002091 auto vkEnc = HostConnection::get()->vkEncoder();
2092 VkResult vkCreateDisplayPlaneSurfaceKHR_VkResult_return = (VkResult)0;
2093 vkCreateDisplayPlaneSurfaceKHR_VkResult_return = vkEnc->vkCreateDisplayPlaneSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
2094 return vkCreateDisplayPlaneSurfaceKHR_VkResult_return;
2095}
2096#endif
2097#ifdef VK_KHR_display_swapchain
2098static VkResult entry_vkCreateSharedSwapchainsKHR(
2099 VkDevice device,
2100 uint32_t swapchainCount,
2101 const VkSwapchainCreateInfoKHR* pCreateInfos,
2102 const VkAllocationCallbacks* pAllocator,
2103 VkSwapchainKHR* pSwapchains)
2104{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002105 AEMU_SCOPED_TRACE("vkCreateSharedSwapchainsKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002106 auto vkEnc = HostConnection::get()->vkEncoder();
2107 VkResult vkCreateSharedSwapchainsKHR_VkResult_return = (VkResult)0;
2108 vkCreateSharedSwapchainsKHR_VkResult_return = vkEnc->vkCreateSharedSwapchainsKHR(device, swapchainCount, pCreateInfos, pAllocator, pSwapchains);
2109 return vkCreateSharedSwapchainsKHR_VkResult_return;
2110}
2111#endif
2112#ifdef VK_KHR_xlib_surface
2113static VkResult entry_vkCreateXlibSurfaceKHR(
2114 VkInstance instance,
2115 const VkXlibSurfaceCreateInfoKHR* pCreateInfo,
2116 const VkAllocationCallbacks* pAllocator,
2117 VkSurfaceKHR* pSurface)
2118{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002119 AEMU_SCOPED_TRACE("vkCreateXlibSurfaceKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002120 auto vkEnc = HostConnection::get()->vkEncoder();
2121 VkResult vkCreateXlibSurfaceKHR_VkResult_return = (VkResult)0;
2122 vkCreateXlibSurfaceKHR_VkResult_return = vkEnc->vkCreateXlibSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
2123 return vkCreateXlibSurfaceKHR_VkResult_return;
2124}
2125static VkBool32 entry_vkGetPhysicalDeviceXlibPresentationSupportKHR(
2126 VkPhysicalDevice physicalDevice,
2127 uint32_t queueFamilyIndex,
2128 Display* dpy,
2129 VisualID visualID)
2130{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002131 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceXlibPresentationSupportKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002132 auto vkEnc = HostConnection::get()->vkEncoder();
2133 VkBool32 vkGetPhysicalDeviceXlibPresentationSupportKHR_VkBool32_return = (VkBool32)0;
2134 vkGetPhysicalDeviceXlibPresentationSupportKHR_VkBool32_return = vkEnc->vkGetPhysicalDeviceXlibPresentationSupportKHR(physicalDevice, queueFamilyIndex, dpy, visualID);
2135 return vkGetPhysicalDeviceXlibPresentationSupportKHR_VkBool32_return;
2136}
2137#endif
2138#ifdef VK_KHR_xcb_surface
2139static VkResult entry_vkCreateXcbSurfaceKHR(
2140 VkInstance instance,
2141 const VkXcbSurfaceCreateInfoKHR* pCreateInfo,
2142 const VkAllocationCallbacks* pAllocator,
2143 VkSurfaceKHR* pSurface)
2144{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002145 AEMU_SCOPED_TRACE("vkCreateXcbSurfaceKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002146 auto vkEnc = HostConnection::get()->vkEncoder();
2147 VkResult vkCreateXcbSurfaceKHR_VkResult_return = (VkResult)0;
2148 vkCreateXcbSurfaceKHR_VkResult_return = vkEnc->vkCreateXcbSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
2149 return vkCreateXcbSurfaceKHR_VkResult_return;
2150}
2151static VkBool32 entry_vkGetPhysicalDeviceXcbPresentationSupportKHR(
2152 VkPhysicalDevice physicalDevice,
2153 uint32_t queueFamilyIndex,
2154 xcb_connection_t* connection,
2155 xcb_visualid_t visual_id)
2156{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002157 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceXcbPresentationSupportKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002158 auto vkEnc = HostConnection::get()->vkEncoder();
2159 VkBool32 vkGetPhysicalDeviceXcbPresentationSupportKHR_VkBool32_return = (VkBool32)0;
2160 vkGetPhysicalDeviceXcbPresentationSupportKHR_VkBool32_return = vkEnc->vkGetPhysicalDeviceXcbPresentationSupportKHR(physicalDevice, queueFamilyIndex, connection, visual_id);
2161 return vkGetPhysicalDeviceXcbPresentationSupportKHR_VkBool32_return;
2162}
2163#endif
2164#ifdef VK_KHR_wayland_surface
2165static VkResult entry_vkCreateWaylandSurfaceKHR(
2166 VkInstance instance,
2167 const VkWaylandSurfaceCreateInfoKHR* pCreateInfo,
2168 const VkAllocationCallbacks* pAllocator,
2169 VkSurfaceKHR* pSurface)
2170{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002171 AEMU_SCOPED_TRACE("vkCreateWaylandSurfaceKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002172 auto vkEnc = HostConnection::get()->vkEncoder();
2173 VkResult vkCreateWaylandSurfaceKHR_VkResult_return = (VkResult)0;
2174 vkCreateWaylandSurfaceKHR_VkResult_return = vkEnc->vkCreateWaylandSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
2175 return vkCreateWaylandSurfaceKHR_VkResult_return;
2176}
2177static VkBool32 entry_vkGetPhysicalDeviceWaylandPresentationSupportKHR(
2178 VkPhysicalDevice physicalDevice,
2179 uint32_t queueFamilyIndex,
2180 wl_display* display)
2181{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002182 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceWaylandPresentationSupportKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002183 auto vkEnc = HostConnection::get()->vkEncoder();
2184 VkBool32 vkGetPhysicalDeviceWaylandPresentationSupportKHR_VkBool32_return = (VkBool32)0;
2185 vkGetPhysicalDeviceWaylandPresentationSupportKHR_VkBool32_return = vkEnc->vkGetPhysicalDeviceWaylandPresentationSupportKHR(physicalDevice, queueFamilyIndex, display);
2186 return vkGetPhysicalDeviceWaylandPresentationSupportKHR_VkBool32_return;
2187}
2188#endif
2189#ifdef VK_KHR_mir_surface
2190static VkResult entry_vkCreateMirSurfaceKHR(
2191 VkInstance instance,
2192 const VkMirSurfaceCreateInfoKHR* pCreateInfo,
2193 const VkAllocationCallbacks* pAllocator,
2194 VkSurfaceKHR* pSurface)
2195{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002196 AEMU_SCOPED_TRACE("vkCreateMirSurfaceKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002197 auto vkEnc = HostConnection::get()->vkEncoder();
2198 VkResult vkCreateMirSurfaceKHR_VkResult_return = (VkResult)0;
2199 vkCreateMirSurfaceKHR_VkResult_return = vkEnc->vkCreateMirSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
2200 return vkCreateMirSurfaceKHR_VkResult_return;
2201}
2202static VkBool32 entry_vkGetPhysicalDeviceMirPresentationSupportKHR(
2203 VkPhysicalDevice physicalDevice,
2204 uint32_t queueFamilyIndex,
2205 MirConnection* connection)
2206{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002207 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMirPresentationSupportKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002208 auto vkEnc = HostConnection::get()->vkEncoder();
2209 VkBool32 vkGetPhysicalDeviceMirPresentationSupportKHR_VkBool32_return = (VkBool32)0;
2210 vkGetPhysicalDeviceMirPresentationSupportKHR_VkBool32_return = vkEnc->vkGetPhysicalDeviceMirPresentationSupportKHR(physicalDevice, queueFamilyIndex, connection);
2211 return vkGetPhysicalDeviceMirPresentationSupportKHR_VkBool32_return;
2212}
2213#endif
2214#ifdef VK_KHR_android_surface
2215static VkResult entry_vkCreateAndroidSurfaceKHR(
2216 VkInstance instance,
2217 const VkAndroidSurfaceCreateInfoKHR* pCreateInfo,
2218 const VkAllocationCallbacks* pAllocator,
2219 VkSurfaceKHR* pSurface)
2220{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002221 AEMU_SCOPED_TRACE("vkCreateAndroidSurfaceKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002222 auto vkEnc = HostConnection::get()->vkEncoder();
2223 VkResult vkCreateAndroidSurfaceKHR_VkResult_return = (VkResult)0;
2224 vkCreateAndroidSurfaceKHR_VkResult_return = vkEnc->vkCreateAndroidSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
2225 return vkCreateAndroidSurfaceKHR_VkResult_return;
2226}
2227#endif
2228#ifdef VK_KHR_win32_surface
2229static VkResult entry_vkCreateWin32SurfaceKHR(
2230 VkInstance instance,
2231 const VkWin32SurfaceCreateInfoKHR* pCreateInfo,
2232 const VkAllocationCallbacks* pAllocator,
2233 VkSurfaceKHR* pSurface)
2234{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002235 AEMU_SCOPED_TRACE("vkCreateWin32SurfaceKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002236 auto vkEnc = HostConnection::get()->vkEncoder();
2237 VkResult vkCreateWin32SurfaceKHR_VkResult_return = (VkResult)0;
2238 vkCreateWin32SurfaceKHR_VkResult_return = vkEnc->vkCreateWin32SurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
2239 return vkCreateWin32SurfaceKHR_VkResult_return;
2240}
2241static VkBool32 entry_vkGetPhysicalDeviceWin32PresentationSupportKHR(
2242 VkPhysicalDevice physicalDevice,
2243 uint32_t queueFamilyIndex)
2244{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002245 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceWin32PresentationSupportKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002246 auto vkEnc = HostConnection::get()->vkEncoder();
2247 VkBool32 vkGetPhysicalDeviceWin32PresentationSupportKHR_VkBool32_return = (VkBool32)0;
2248 vkGetPhysicalDeviceWin32PresentationSupportKHR_VkBool32_return = vkEnc->vkGetPhysicalDeviceWin32PresentationSupportKHR(physicalDevice, queueFamilyIndex);
2249 return vkGetPhysicalDeviceWin32PresentationSupportKHR_VkBool32_return;
2250}
2251#endif
2252#ifdef VK_KHR_sampler_mirror_clamp_to_edge
2253#endif
2254#ifdef VK_KHR_multiview
2255#endif
2256#ifdef VK_KHR_get_physical_device_properties2
2257static void entry_vkGetPhysicalDeviceFeatures2KHR(
2258 VkPhysicalDevice physicalDevice,
2259 VkPhysicalDeviceFeatures2* pFeatures)
2260{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002261 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFeatures2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002262 auto vkEnc = HostConnection::get()->vkEncoder();
2263 vkEnc->vkGetPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures);
2264}
2265static void entry_vkGetPhysicalDeviceProperties2KHR(
2266 VkPhysicalDevice physicalDevice,
2267 VkPhysicalDeviceProperties2* pProperties)
2268{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002269 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002270 auto vkEnc = HostConnection::get()->vkEncoder();
2271 vkEnc->vkGetPhysicalDeviceProperties2KHR(physicalDevice, pProperties);
2272}
2273static void entry_vkGetPhysicalDeviceFormatProperties2KHR(
2274 VkPhysicalDevice physicalDevice,
2275 VkFormat format,
2276 VkFormatProperties2* pFormatProperties)
2277{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002278 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFormatProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002279 auto vkEnc = HostConnection::get()->vkEncoder();
2280 vkEnc->vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice, format, pFormatProperties);
2281}
2282static VkResult entry_vkGetPhysicalDeviceImageFormatProperties2KHR(
2283 VkPhysicalDevice physicalDevice,
2284 const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
2285 VkImageFormatProperties2* pImageFormatProperties)
2286{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002287 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceImageFormatProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002288 auto vkEnc = HostConnection::get()->vkEncoder();
2289 VkResult vkGetPhysicalDeviceImageFormatProperties2KHR_VkResult_return = (VkResult)0;
Lingfeng Yange517d1e2019-03-25 18:02:49 -07002290 auto resources = ResourceTracker::get();
2291 vkGetPhysicalDeviceImageFormatProperties2KHR_VkResult_return = resources->on_vkGetPhysicalDeviceImageFormatProperties2KHR(vkEnc, VK_SUCCESS, physicalDevice, pImageFormatInfo, pImageFormatProperties);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002292 return vkGetPhysicalDeviceImageFormatProperties2KHR_VkResult_return;
2293}
2294static void entry_vkGetPhysicalDeviceQueueFamilyProperties2KHR(
2295 VkPhysicalDevice physicalDevice,
2296 uint32_t* pQueueFamilyPropertyCount,
2297 VkQueueFamilyProperties2* pQueueFamilyProperties)
2298{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002299 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceQueueFamilyProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002300 auto vkEnc = HostConnection::get()->vkEncoder();
2301 vkEnc->vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties);
2302}
2303static void entry_vkGetPhysicalDeviceMemoryProperties2KHR(
2304 VkPhysicalDevice physicalDevice,
2305 VkPhysicalDeviceMemoryProperties2* pMemoryProperties)
2306{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002307 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMemoryProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002308 auto vkEnc = HostConnection::get()->vkEncoder();
2309 vkEnc->vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice, pMemoryProperties);
2310}
2311static void entry_vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
2312 VkPhysicalDevice physicalDevice,
2313 const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
2314 uint32_t* pPropertyCount,
2315 VkSparseImageFormatProperties2* pProperties)
2316{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002317 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSparseImageFormatProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002318 auto vkEnc = HostConnection::get()->vkEncoder();
2319 vkEnc->vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties);
2320}
2321#endif
2322#ifdef VK_KHR_device_group
2323static void entry_vkGetDeviceGroupPeerMemoryFeaturesKHR(
2324 VkDevice device,
2325 uint32_t heapIndex,
2326 uint32_t localDeviceIndex,
2327 uint32_t remoteDeviceIndex,
2328 VkPeerMemoryFeatureFlags* pPeerMemoryFeatures)
2329{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002330 AEMU_SCOPED_TRACE("vkGetDeviceGroupPeerMemoryFeaturesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002331 auto vkEnc = HostConnection::get()->vkEncoder();
2332 vkEnc->vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures);
2333}
2334static void entry_vkCmdSetDeviceMaskKHR(
2335 VkCommandBuffer commandBuffer,
2336 uint32_t deviceMask)
2337{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002338 AEMU_SCOPED_TRACE("vkCmdSetDeviceMaskKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002339 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07002340 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002341 vkEnc->vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask);
2342}
2343static void entry_vkCmdDispatchBaseKHR(
2344 VkCommandBuffer commandBuffer,
2345 uint32_t baseGroupX,
2346 uint32_t baseGroupY,
2347 uint32_t baseGroupZ,
2348 uint32_t groupCountX,
2349 uint32_t groupCountY,
2350 uint32_t groupCountZ)
2351{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002352 AEMU_SCOPED_TRACE("vkCmdDispatchBaseKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002353 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07002354 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002355 vkEnc->vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ);
2356}
2357#endif
2358#ifdef VK_KHR_shader_draw_parameters
2359#endif
2360#ifdef VK_KHR_maintenance1
2361static void entry_vkTrimCommandPoolKHR(
2362 VkDevice device,
2363 VkCommandPool commandPool,
2364 VkCommandPoolTrimFlags flags)
2365{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002366 AEMU_SCOPED_TRACE("vkTrimCommandPoolKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002367 auto vkEnc = HostConnection::get()->vkEncoder();
2368 vkEnc->vkTrimCommandPoolKHR(device, commandPool, flags);
2369}
2370#endif
2371#ifdef VK_KHR_device_group_creation
2372static VkResult entry_vkEnumeratePhysicalDeviceGroupsKHR(
2373 VkInstance instance,
2374 uint32_t* pPhysicalDeviceGroupCount,
2375 VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties)
2376{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002377 AEMU_SCOPED_TRACE("vkEnumeratePhysicalDeviceGroupsKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002378 auto vkEnc = HostConnection::get()->vkEncoder();
2379 VkResult vkEnumeratePhysicalDeviceGroupsKHR_VkResult_return = (VkResult)0;
2380 vkEnumeratePhysicalDeviceGroupsKHR_VkResult_return = vkEnc->vkEnumeratePhysicalDeviceGroupsKHR(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties);
2381 return vkEnumeratePhysicalDeviceGroupsKHR_VkResult_return;
2382}
2383#endif
2384#ifdef VK_KHR_external_memory_capabilities
2385static void entry_vkGetPhysicalDeviceExternalBufferPropertiesKHR(
2386 VkPhysicalDevice physicalDevice,
2387 const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
2388 VkExternalBufferProperties* pExternalBufferProperties)
2389{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002390 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalBufferPropertiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002391 auto vkEnc = HostConnection::get()->vkEncoder();
2392 vkEnc->vkGetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties);
2393}
2394#endif
2395#ifdef VK_KHR_external_memory
2396#endif
2397#ifdef VK_KHR_external_memory_win32
2398static VkResult entry_vkGetMemoryWin32HandleKHR(
2399 VkDevice device,
2400 const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo,
2401 HANDLE* pHandle)
2402{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002403 AEMU_SCOPED_TRACE("vkGetMemoryWin32HandleKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002404 auto vkEnc = HostConnection::get()->vkEncoder();
2405 VkResult vkGetMemoryWin32HandleKHR_VkResult_return = (VkResult)0;
2406 vkGetMemoryWin32HandleKHR_VkResult_return = vkEnc->vkGetMemoryWin32HandleKHR(device, pGetWin32HandleInfo, pHandle);
2407 return vkGetMemoryWin32HandleKHR_VkResult_return;
2408}
2409static VkResult entry_vkGetMemoryWin32HandlePropertiesKHR(
2410 VkDevice device,
2411 VkExternalMemoryHandleTypeFlagBits handleType,
2412 HANDLE handle,
2413 VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties)
2414{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002415 AEMU_SCOPED_TRACE("vkGetMemoryWin32HandlePropertiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002416 auto vkEnc = HostConnection::get()->vkEncoder();
2417 VkResult vkGetMemoryWin32HandlePropertiesKHR_VkResult_return = (VkResult)0;
2418 vkGetMemoryWin32HandlePropertiesKHR_VkResult_return = vkEnc->vkGetMemoryWin32HandlePropertiesKHR(device, handleType, handle, pMemoryWin32HandleProperties);
2419 return vkGetMemoryWin32HandlePropertiesKHR_VkResult_return;
2420}
2421#endif
2422#ifdef VK_KHR_external_memory_fd
2423static VkResult entry_vkGetMemoryFdKHR(
2424 VkDevice device,
2425 const VkMemoryGetFdInfoKHR* pGetFdInfo,
2426 int* pFd)
2427{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002428 AEMU_SCOPED_TRACE("vkGetMemoryFdKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002429 auto vkEnc = HostConnection::get()->vkEncoder();
2430 VkResult vkGetMemoryFdKHR_VkResult_return = (VkResult)0;
2431 vkGetMemoryFdKHR_VkResult_return = vkEnc->vkGetMemoryFdKHR(device, pGetFdInfo, pFd);
2432 return vkGetMemoryFdKHR_VkResult_return;
2433}
2434static VkResult entry_vkGetMemoryFdPropertiesKHR(
2435 VkDevice device,
2436 VkExternalMemoryHandleTypeFlagBits handleType,
2437 int fd,
2438 VkMemoryFdPropertiesKHR* pMemoryFdProperties)
2439{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002440 AEMU_SCOPED_TRACE("vkGetMemoryFdPropertiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002441 auto vkEnc = HostConnection::get()->vkEncoder();
2442 VkResult vkGetMemoryFdPropertiesKHR_VkResult_return = (VkResult)0;
2443 vkGetMemoryFdPropertiesKHR_VkResult_return = vkEnc->vkGetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties);
2444 return vkGetMemoryFdPropertiesKHR_VkResult_return;
2445}
2446#endif
2447#ifdef VK_KHR_win32_keyed_mutex
2448#endif
2449#ifdef VK_KHR_external_semaphore_capabilities
2450static void entry_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
2451 VkPhysicalDevice physicalDevice,
2452 const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
2453 VkExternalSemaphoreProperties* pExternalSemaphoreProperties)
2454{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002455 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalSemaphorePropertiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002456 auto vkEnc = HostConnection::get()->vkEncoder();
2457 vkEnc->vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties);
2458}
2459#endif
2460#ifdef VK_KHR_external_semaphore
2461#endif
2462#ifdef VK_KHR_external_semaphore_win32
2463static VkResult entry_vkImportSemaphoreWin32HandleKHR(
2464 VkDevice device,
2465 const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo)
2466{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002467 AEMU_SCOPED_TRACE("vkImportSemaphoreWin32HandleKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002468 auto vkEnc = HostConnection::get()->vkEncoder();
2469 VkResult vkImportSemaphoreWin32HandleKHR_VkResult_return = (VkResult)0;
2470 vkImportSemaphoreWin32HandleKHR_VkResult_return = vkEnc->vkImportSemaphoreWin32HandleKHR(device, pImportSemaphoreWin32HandleInfo);
2471 return vkImportSemaphoreWin32HandleKHR_VkResult_return;
2472}
2473static VkResult entry_vkGetSemaphoreWin32HandleKHR(
2474 VkDevice device,
2475 const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo,
2476 HANDLE* pHandle)
2477{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002478 AEMU_SCOPED_TRACE("vkGetSemaphoreWin32HandleKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002479 auto vkEnc = HostConnection::get()->vkEncoder();
2480 VkResult vkGetSemaphoreWin32HandleKHR_VkResult_return = (VkResult)0;
2481 vkGetSemaphoreWin32HandleKHR_VkResult_return = vkEnc->vkGetSemaphoreWin32HandleKHR(device, pGetWin32HandleInfo, pHandle);
2482 return vkGetSemaphoreWin32HandleKHR_VkResult_return;
2483}
2484#endif
2485#ifdef VK_KHR_external_semaphore_fd
2486static VkResult entry_vkImportSemaphoreFdKHR(
2487 VkDevice device,
2488 const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo)
2489{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002490 AEMU_SCOPED_TRACE("vkImportSemaphoreFdKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002491 auto vkEnc = HostConnection::get()->vkEncoder();
2492 VkResult vkImportSemaphoreFdKHR_VkResult_return = (VkResult)0;
Yahan Zhoua499e442019-02-26 16:35:01 -08002493 auto resources = ResourceTracker::get();
2494 vkImportSemaphoreFdKHR_VkResult_return = resources->on_vkImportSemaphoreFdKHR(vkEnc, VK_SUCCESS, device, pImportSemaphoreFdInfo);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002495 return vkImportSemaphoreFdKHR_VkResult_return;
2496}
2497static VkResult entry_vkGetSemaphoreFdKHR(
2498 VkDevice device,
2499 const VkSemaphoreGetFdInfoKHR* pGetFdInfo,
2500 int* pFd)
2501{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002502 AEMU_SCOPED_TRACE("vkGetSemaphoreFdKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002503 auto vkEnc = HostConnection::get()->vkEncoder();
2504 VkResult vkGetSemaphoreFdKHR_VkResult_return = (VkResult)0;
Yahan Zhoua499e442019-02-26 16:35:01 -08002505 auto resources = ResourceTracker::get();
2506 vkGetSemaphoreFdKHR_VkResult_return = resources->on_vkGetSemaphoreFdKHR(vkEnc, VK_SUCCESS, device, pGetFdInfo, pFd);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002507 return vkGetSemaphoreFdKHR_VkResult_return;
2508}
2509#endif
2510#ifdef VK_KHR_push_descriptor
2511static void entry_vkCmdPushDescriptorSetKHR(
2512 VkCommandBuffer commandBuffer,
2513 VkPipelineBindPoint pipelineBindPoint,
2514 VkPipelineLayout layout,
2515 uint32_t set,
2516 uint32_t descriptorWriteCount,
2517 const VkWriteDescriptorSet* pDescriptorWrites)
2518{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002519 AEMU_SCOPED_TRACE("vkCmdPushDescriptorSetKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002520 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07002521 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002522 vkEnc->vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites);
2523}
2524static void entry_vkCmdPushDescriptorSetWithTemplateKHR(
2525 VkCommandBuffer commandBuffer,
2526 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
2527 VkPipelineLayout layout,
2528 uint32_t set,
2529 const void* pData)
2530{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002531 AEMU_SCOPED_TRACE("vkCmdPushDescriptorSetWithTemplateKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002532 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07002533 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002534 vkEnc->vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData);
2535}
2536#endif
2537#ifdef VK_KHR_16bit_storage
2538#endif
2539#ifdef VK_KHR_incremental_present
2540#endif
2541#ifdef VK_KHR_descriptor_update_template
2542static VkResult entry_vkCreateDescriptorUpdateTemplateKHR(
2543 VkDevice device,
2544 const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
2545 const VkAllocationCallbacks* pAllocator,
2546 VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate)
2547{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002548 AEMU_SCOPED_TRACE("vkCreateDescriptorUpdateTemplateKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002549 auto vkEnc = HostConnection::get()->vkEncoder();
2550 VkResult vkCreateDescriptorUpdateTemplateKHR_VkResult_return = (VkResult)0;
2551 vkCreateDescriptorUpdateTemplateKHR_VkResult_return = vkEnc->vkCreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate);
2552 return vkCreateDescriptorUpdateTemplateKHR_VkResult_return;
2553}
2554static void entry_vkDestroyDescriptorUpdateTemplateKHR(
2555 VkDevice device,
2556 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
2557 const VkAllocationCallbacks* pAllocator)
2558{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002559 AEMU_SCOPED_TRACE("vkDestroyDescriptorUpdateTemplateKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002560 auto vkEnc = HostConnection::get()->vkEncoder();
2561 vkEnc->vkDestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator);
2562}
2563static void entry_vkUpdateDescriptorSetWithTemplateKHR(
2564 VkDevice device,
2565 VkDescriptorSet descriptorSet,
2566 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
2567 const void* pData)
2568{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002569 AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplateKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002570 auto vkEnc = HostConnection::get()->vkEncoder();
2571 vkEnc->vkUpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData);
2572}
2573#endif
2574#ifdef VK_KHR_create_renderpass2
2575static VkResult entry_vkCreateRenderPass2KHR(
2576 VkDevice device,
2577 const VkRenderPassCreateInfo2KHR* pCreateInfo,
2578 const VkAllocationCallbacks* pAllocator,
2579 VkRenderPass* pRenderPass)
2580{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002581 AEMU_SCOPED_TRACE("vkCreateRenderPass2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002582 auto vkEnc = HostConnection::get()->vkEncoder();
2583 VkResult vkCreateRenderPass2KHR_VkResult_return = (VkResult)0;
2584 vkCreateRenderPass2KHR_VkResult_return = vkEnc->vkCreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass);
2585 return vkCreateRenderPass2KHR_VkResult_return;
2586}
2587static void entry_vkCmdBeginRenderPass2KHR(
2588 VkCommandBuffer commandBuffer,
2589 const VkRenderPassBeginInfo* pRenderPassBegin,
2590 const VkSubpassBeginInfoKHR* pSubpassBeginInfo)
2591{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002592 AEMU_SCOPED_TRACE("vkCmdBeginRenderPass2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002593 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07002594 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002595 vkEnc->vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo);
2596}
2597static void entry_vkCmdNextSubpass2KHR(
2598 VkCommandBuffer commandBuffer,
2599 const VkSubpassBeginInfoKHR* pSubpassBeginInfo,
2600 const VkSubpassEndInfoKHR* pSubpassEndInfo)
2601{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002602 AEMU_SCOPED_TRACE("vkCmdNextSubpass2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002603 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07002604 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002605 vkEnc->vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo);
2606}
2607static void entry_vkCmdEndRenderPass2KHR(
2608 VkCommandBuffer commandBuffer,
2609 const VkSubpassEndInfoKHR* pSubpassEndInfo)
2610{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002611 AEMU_SCOPED_TRACE("vkCmdEndRenderPass2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002612 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07002613 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002614 vkEnc->vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo);
2615}
2616#endif
2617#ifdef VK_KHR_shared_presentable_image
2618static VkResult entry_vkGetSwapchainStatusKHR(
2619 VkDevice device,
2620 VkSwapchainKHR swapchain)
2621{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002622 AEMU_SCOPED_TRACE("vkGetSwapchainStatusKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002623 auto vkEnc = HostConnection::get()->vkEncoder();
2624 VkResult vkGetSwapchainStatusKHR_VkResult_return = (VkResult)0;
2625 vkGetSwapchainStatusKHR_VkResult_return = vkEnc->vkGetSwapchainStatusKHR(device, swapchain);
2626 return vkGetSwapchainStatusKHR_VkResult_return;
2627}
2628#endif
2629#ifdef VK_KHR_external_fence_capabilities
2630static void entry_vkGetPhysicalDeviceExternalFencePropertiesKHR(
2631 VkPhysicalDevice physicalDevice,
2632 const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
2633 VkExternalFenceProperties* pExternalFenceProperties)
2634{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002635 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalFencePropertiesKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002636 auto vkEnc = HostConnection::get()->vkEncoder();
2637 vkEnc->vkGetPhysicalDeviceExternalFencePropertiesKHR(physicalDevice, pExternalFenceInfo, pExternalFenceProperties);
2638}
2639#endif
2640#ifdef VK_KHR_external_fence
2641#endif
2642#ifdef VK_KHR_external_fence_win32
2643static VkResult entry_vkImportFenceWin32HandleKHR(
2644 VkDevice device,
2645 const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo)
2646{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002647 AEMU_SCOPED_TRACE("vkImportFenceWin32HandleKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002648 auto vkEnc = HostConnection::get()->vkEncoder();
2649 VkResult vkImportFenceWin32HandleKHR_VkResult_return = (VkResult)0;
2650 vkImportFenceWin32HandleKHR_VkResult_return = vkEnc->vkImportFenceWin32HandleKHR(device, pImportFenceWin32HandleInfo);
2651 return vkImportFenceWin32HandleKHR_VkResult_return;
2652}
2653static VkResult entry_vkGetFenceWin32HandleKHR(
2654 VkDevice device,
2655 const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo,
2656 HANDLE* pHandle)
2657{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002658 AEMU_SCOPED_TRACE("vkGetFenceWin32HandleKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002659 auto vkEnc = HostConnection::get()->vkEncoder();
2660 VkResult vkGetFenceWin32HandleKHR_VkResult_return = (VkResult)0;
2661 vkGetFenceWin32HandleKHR_VkResult_return = vkEnc->vkGetFenceWin32HandleKHR(device, pGetWin32HandleInfo, pHandle);
2662 return vkGetFenceWin32HandleKHR_VkResult_return;
2663}
2664#endif
2665#ifdef VK_KHR_external_fence_fd
2666static VkResult entry_vkImportFenceFdKHR(
2667 VkDevice device,
2668 const VkImportFenceFdInfoKHR* pImportFenceFdInfo)
2669{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002670 AEMU_SCOPED_TRACE("vkImportFenceFdKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002671 auto vkEnc = HostConnection::get()->vkEncoder();
2672 VkResult vkImportFenceFdKHR_VkResult_return = (VkResult)0;
2673 vkImportFenceFdKHR_VkResult_return = vkEnc->vkImportFenceFdKHR(device, pImportFenceFdInfo);
2674 return vkImportFenceFdKHR_VkResult_return;
2675}
2676static VkResult entry_vkGetFenceFdKHR(
2677 VkDevice device,
2678 const VkFenceGetFdInfoKHR* pGetFdInfo,
2679 int* pFd)
2680{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002681 AEMU_SCOPED_TRACE("vkGetFenceFdKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002682 auto vkEnc = HostConnection::get()->vkEncoder();
2683 VkResult vkGetFenceFdKHR_VkResult_return = (VkResult)0;
2684 vkGetFenceFdKHR_VkResult_return = vkEnc->vkGetFenceFdKHR(device, pGetFdInfo, pFd);
2685 return vkGetFenceFdKHR_VkResult_return;
2686}
2687#endif
2688#ifdef VK_KHR_maintenance2
2689#endif
2690#ifdef VK_KHR_get_surface_capabilities2
2691static VkResult entry_vkGetPhysicalDeviceSurfaceCapabilities2KHR(
2692 VkPhysicalDevice physicalDevice,
2693 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
2694 VkSurfaceCapabilities2KHR* pSurfaceCapabilities)
2695{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002696 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceCapabilities2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002697 auto vkEnc = HostConnection::get()->vkEncoder();
2698 VkResult vkGetPhysicalDeviceSurfaceCapabilities2KHR_VkResult_return = (VkResult)0;
2699 vkGetPhysicalDeviceSurfaceCapabilities2KHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, pSurfaceInfo, pSurfaceCapabilities);
2700 return vkGetPhysicalDeviceSurfaceCapabilities2KHR_VkResult_return;
2701}
2702static VkResult entry_vkGetPhysicalDeviceSurfaceFormats2KHR(
2703 VkPhysicalDevice physicalDevice,
2704 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
2705 uint32_t* pSurfaceFormatCount,
2706 VkSurfaceFormat2KHR* pSurfaceFormats)
2707{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002708 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceFormats2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002709 auto vkEnc = HostConnection::get()->vkEncoder();
2710 VkResult vkGetPhysicalDeviceSurfaceFormats2KHR_VkResult_return = (VkResult)0;
2711 vkGetPhysicalDeviceSurfaceFormats2KHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceFormats2KHR(physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats);
2712 return vkGetPhysicalDeviceSurfaceFormats2KHR_VkResult_return;
2713}
2714#endif
2715#ifdef VK_KHR_variable_pointers
2716#endif
2717#ifdef VK_KHR_get_display_properties2
2718static VkResult entry_vkGetPhysicalDeviceDisplayProperties2KHR(
2719 VkPhysicalDevice physicalDevice,
2720 uint32_t* pPropertyCount,
2721 VkDisplayProperties2KHR* pProperties)
2722{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002723 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002724 auto vkEnc = HostConnection::get()->vkEncoder();
2725 VkResult vkGetPhysicalDeviceDisplayProperties2KHR_VkResult_return = (VkResult)0;
2726 vkGetPhysicalDeviceDisplayProperties2KHR_VkResult_return = vkEnc->vkGetPhysicalDeviceDisplayProperties2KHR(physicalDevice, pPropertyCount, pProperties);
2727 return vkGetPhysicalDeviceDisplayProperties2KHR_VkResult_return;
2728}
2729static VkResult entry_vkGetPhysicalDeviceDisplayPlaneProperties2KHR(
2730 VkPhysicalDevice physicalDevice,
2731 uint32_t* pPropertyCount,
2732 VkDisplayPlaneProperties2KHR* pProperties)
2733{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002734 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayPlaneProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002735 auto vkEnc = HostConnection::get()->vkEncoder();
2736 VkResult vkGetPhysicalDeviceDisplayPlaneProperties2KHR_VkResult_return = (VkResult)0;
2737 vkGetPhysicalDeviceDisplayPlaneProperties2KHR_VkResult_return = vkEnc->vkGetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice, pPropertyCount, pProperties);
2738 return vkGetPhysicalDeviceDisplayPlaneProperties2KHR_VkResult_return;
2739}
2740static VkResult entry_vkGetDisplayModeProperties2KHR(
2741 VkPhysicalDevice physicalDevice,
2742 VkDisplayKHR display,
2743 uint32_t* pPropertyCount,
2744 VkDisplayModeProperties2KHR* pProperties)
2745{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002746 AEMU_SCOPED_TRACE("vkGetDisplayModeProperties2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002747 auto vkEnc = HostConnection::get()->vkEncoder();
2748 VkResult vkGetDisplayModeProperties2KHR_VkResult_return = (VkResult)0;
2749 vkGetDisplayModeProperties2KHR_VkResult_return = vkEnc->vkGetDisplayModeProperties2KHR(physicalDevice, display, pPropertyCount, pProperties);
2750 return vkGetDisplayModeProperties2KHR_VkResult_return;
2751}
2752static VkResult entry_vkGetDisplayPlaneCapabilities2KHR(
2753 VkPhysicalDevice physicalDevice,
2754 const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo,
2755 VkDisplayPlaneCapabilities2KHR* pCapabilities)
2756{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002757 AEMU_SCOPED_TRACE("vkGetDisplayPlaneCapabilities2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002758 auto vkEnc = HostConnection::get()->vkEncoder();
2759 VkResult vkGetDisplayPlaneCapabilities2KHR_VkResult_return = (VkResult)0;
2760 vkGetDisplayPlaneCapabilities2KHR_VkResult_return = vkEnc->vkGetDisplayPlaneCapabilities2KHR(physicalDevice, pDisplayPlaneInfo, pCapabilities);
2761 return vkGetDisplayPlaneCapabilities2KHR_VkResult_return;
2762}
2763#endif
2764#ifdef VK_KHR_dedicated_allocation
2765#endif
2766#ifdef VK_KHR_storage_buffer_storage_class
2767#endif
2768#ifdef VK_KHR_relaxed_block_layout
2769#endif
2770#ifdef VK_KHR_get_memory_requirements2
2771static void entry_vkGetImageMemoryRequirements2KHR(
2772 VkDevice device,
2773 const VkImageMemoryRequirementsInfo2* pInfo,
2774 VkMemoryRequirements2* pMemoryRequirements)
2775{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002776 AEMU_SCOPED_TRACE("vkGetImageMemoryRequirements2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002777 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang4af5f322019-02-14 08:10:28 -08002778 auto resources = ResourceTracker::get();
2779 resources->on_vkGetImageMemoryRequirements2KHR(vkEnc, device, pInfo, pMemoryRequirements);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002780}
2781static void entry_vkGetBufferMemoryRequirements2KHR(
2782 VkDevice device,
2783 const VkBufferMemoryRequirementsInfo2* pInfo,
2784 VkMemoryRequirements2* pMemoryRequirements)
2785{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002786 AEMU_SCOPED_TRACE("vkGetBufferMemoryRequirements2KHR");
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_vkGetBufferMemoryRequirements2KHR(vkEnc, device, pInfo, pMemoryRequirements);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002790}
2791static void entry_vkGetImageSparseMemoryRequirements2KHR(
2792 VkDevice device,
2793 const VkImageSparseMemoryRequirementsInfo2* pInfo,
2794 uint32_t* pSparseMemoryRequirementCount,
2795 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements)
2796{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002797 AEMU_SCOPED_TRACE("vkGetImageSparseMemoryRequirements2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002798 auto vkEnc = HostConnection::get()->vkEncoder();
2799 vkEnc->vkGetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements);
2800}
2801#endif
2802#ifdef VK_KHR_image_format_list
2803#endif
2804#ifdef VK_KHR_sampler_ycbcr_conversion
2805static VkResult entry_vkCreateSamplerYcbcrConversionKHR(
2806 VkDevice device,
2807 const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
2808 const VkAllocationCallbacks* pAllocator,
2809 VkSamplerYcbcrConversion* pYcbcrConversion)
2810{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002811 AEMU_SCOPED_TRACE("vkCreateSamplerYcbcrConversionKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002812 auto vkEnc = HostConnection::get()->vkEncoder();
2813 VkResult vkCreateSamplerYcbcrConversionKHR_VkResult_return = (VkResult)0;
Lingfeng Yang5c701122019-03-05 08:34:46 -08002814 auto resources = ResourceTracker::get();
2815 vkCreateSamplerYcbcrConversionKHR_VkResult_return = resources->on_vkCreateSamplerYcbcrConversionKHR(vkEnc, VK_SUCCESS, device, pCreateInfo, pAllocator, pYcbcrConversion);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002816 return vkCreateSamplerYcbcrConversionKHR_VkResult_return;
2817}
2818static void entry_vkDestroySamplerYcbcrConversionKHR(
2819 VkDevice device,
2820 VkSamplerYcbcrConversion ycbcrConversion,
2821 const VkAllocationCallbacks* pAllocator)
2822{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002823 AEMU_SCOPED_TRACE("vkDestroySamplerYcbcrConversionKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002824 auto vkEnc = HostConnection::get()->vkEncoder();
2825 vkEnc->vkDestroySamplerYcbcrConversionKHR(device, ycbcrConversion, pAllocator);
2826}
2827#endif
2828#ifdef VK_KHR_bind_memory2
2829static VkResult entry_vkBindBufferMemory2KHR(
2830 VkDevice device,
2831 uint32_t bindInfoCount,
2832 const VkBindBufferMemoryInfo* pBindInfos)
2833{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002834 AEMU_SCOPED_TRACE("vkBindBufferMemory2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002835 auto vkEnc = HostConnection::get()->vkEncoder();
2836 VkResult vkBindBufferMemory2KHR_VkResult_return = (VkResult)0;
Lingfeng Yang4af5f322019-02-14 08:10:28 -08002837 auto resources = ResourceTracker::get();
2838 vkBindBufferMemory2KHR_VkResult_return = resources->on_vkBindBufferMemory2KHR(vkEnc, VK_SUCCESS, device, bindInfoCount, pBindInfos);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002839 return vkBindBufferMemory2KHR_VkResult_return;
2840}
2841static VkResult entry_vkBindImageMemory2KHR(
2842 VkDevice device,
2843 uint32_t bindInfoCount,
2844 const VkBindImageMemoryInfo* pBindInfos)
2845{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002846 AEMU_SCOPED_TRACE("vkBindImageMemory2KHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002847 auto vkEnc = HostConnection::get()->vkEncoder();
2848 VkResult vkBindImageMemory2KHR_VkResult_return = (VkResult)0;
Lingfeng Yang4af5f322019-02-14 08:10:28 -08002849 auto resources = ResourceTracker::get();
2850 vkBindImageMemory2KHR_VkResult_return = resources->on_vkBindImageMemory2KHR(vkEnc, VK_SUCCESS, device, bindInfoCount, pBindInfos);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002851 return vkBindImageMemory2KHR_VkResult_return;
2852}
2853#endif
2854#ifdef VK_KHR_maintenance3
2855static void entry_vkGetDescriptorSetLayoutSupportKHR(
2856 VkDevice device,
2857 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
2858 VkDescriptorSetLayoutSupport* pSupport)
2859{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002860 AEMU_SCOPED_TRACE("vkGetDescriptorSetLayoutSupportKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002861 auto vkEnc = HostConnection::get()->vkEncoder();
2862 vkEnc->vkGetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport);
2863}
2864#endif
2865#ifdef VK_KHR_draw_indirect_count
2866static void entry_vkCmdDrawIndirectCountKHR(
2867 VkCommandBuffer commandBuffer,
2868 VkBuffer buffer,
2869 VkDeviceSize offset,
2870 VkBuffer countBuffer,
2871 VkDeviceSize countBufferOffset,
2872 uint32_t maxDrawCount,
2873 uint32_t stride)
2874{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002875 AEMU_SCOPED_TRACE("vkCmdDrawIndirectCountKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002876 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07002877 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002878 vkEnc->vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
2879}
2880static void entry_vkCmdDrawIndexedIndirectCountKHR(
2881 VkCommandBuffer commandBuffer,
2882 VkBuffer buffer,
2883 VkDeviceSize offset,
2884 VkBuffer countBuffer,
2885 VkDeviceSize countBufferOffset,
2886 uint32_t maxDrawCount,
2887 uint32_t stride)
2888{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002889 AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirectCountKHR");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002890 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07002891 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002892 vkEnc->vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
2893}
2894#endif
2895#ifdef VK_KHR_8bit_storage
2896#endif
Lingfeng Yang808a6312018-11-13 21:06:15 -08002897#ifdef VK_ANDROID_native_buffer
2898static VkResult entry_vkGetSwapchainGrallocUsageANDROID(
2899 VkDevice device,
2900 VkFormat format,
2901 VkImageUsageFlags imageUsage,
2902 int* grallocUsage)
2903{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002904 AEMU_SCOPED_TRACE("vkGetSwapchainGrallocUsageANDROID");
Lingfeng Yang808a6312018-11-13 21:06:15 -08002905 auto vkEnc = HostConnection::get()->vkEncoder();
2906 VkResult vkGetSwapchainGrallocUsageANDROID_VkResult_return = (VkResult)0;
2907 vkGetSwapchainGrallocUsageANDROID_VkResult_return = vkEnc->vkGetSwapchainGrallocUsageANDROID(device, format, imageUsage, grallocUsage);
2908 return vkGetSwapchainGrallocUsageANDROID_VkResult_return;
2909}
2910static VkResult entry_vkAcquireImageANDROID(
2911 VkDevice device,
2912 VkImage image,
2913 int nativeFenceFd,
2914 VkSemaphore semaphore,
2915 VkFence fence)
2916{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002917 AEMU_SCOPED_TRACE("vkAcquireImageANDROID");
Lingfeng Yang808a6312018-11-13 21:06:15 -08002918 auto vkEnc = HostConnection::get()->vkEncoder();
2919 VkResult vkAcquireImageANDROID_VkResult_return = (VkResult)0;
2920 vkAcquireImageANDROID_VkResult_return = vkEnc->vkAcquireImageANDROID(device, image, nativeFenceFd, semaphore, fence);
2921 return vkAcquireImageANDROID_VkResult_return;
2922}
2923static VkResult entry_vkQueueSignalReleaseImageANDROID(
2924 VkQueue queue,
2925 uint32_t waitSemaphoreCount,
2926 const VkSemaphore* pWaitSemaphores,
2927 VkImage image,
2928 int* pNativeFenceFd)
2929{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002930 AEMU_SCOPED_TRACE("vkQueueSignalReleaseImageANDROID");
Lingfeng Yang808a6312018-11-13 21:06:15 -08002931 auto vkEnc = HostConnection::get()->vkEncoder();
2932 VkResult vkQueueSignalReleaseImageANDROID_VkResult_return = (VkResult)0;
2933 vkQueueSignalReleaseImageANDROID_VkResult_return = vkEnc->vkQueueSignalReleaseImageANDROID(queue, waitSemaphoreCount, pWaitSemaphores, image, pNativeFenceFd);
2934 return vkQueueSignalReleaseImageANDROID_VkResult_return;
2935}
2936#endif
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002937#ifdef VK_EXT_debug_report
2938static VkResult entry_vkCreateDebugReportCallbackEXT(
2939 VkInstance instance,
2940 const VkDebugReportCallbackCreateInfoEXT* pCreateInfo,
2941 const VkAllocationCallbacks* pAllocator,
2942 VkDebugReportCallbackEXT* pCallback)
2943{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002944 AEMU_SCOPED_TRACE("vkCreateDebugReportCallbackEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002945 auto vkEnc = HostConnection::get()->vkEncoder();
2946 VkResult vkCreateDebugReportCallbackEXT_VkResult_return = (VkResult)0;
2947 vkCreateDebugReportCallbackEXT_VkResult_return = vkEnc->vkCreateDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback);
2948 return vkCreateDebugReportCallbackEXT_VkResult_return;
2949}
2950static void entry_vkDestroyDebugReportCallbackEXT(
2951 VkInstance instance,
2952 VkDebugReportCallbackEXT callback,
2953 const VkAllocationCallbacks* pAllocator)
2954{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002955 AEMU_SCOPED_TRACE("vkDestroyDebugReportCallbackEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002956 auto vkEnc = HostConnection::get()->vkEncoder();
2957 vkEnc->vkDestroyDebugReportCallbackEXT(instance, callback, pAllocator);
2958}
2959static void entry_vkDebugReportMessageEXT(
2960 VkInstance instance,
2961 VkDebugReportFlagsEXT flags,
2962 VkDebugReportObjectTypeEXT objectType,
2963 uint64_t object,
2964 size_t location,
2965 int32_t messageCode,
2966 const char* pLayerPrefix,
2967 const char* pMessage)
2968{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002969 AEMU_SCOPED_TRACE("vkDebugReportMessageEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002970 auto vkEnc = HostConnection::get()->vkEncoder();
2971 vkEnc->vkDebugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage);
2972}
2973#endif
2974#ifdef VK_NV_glsl_shader
2975#endif
2976#ifdef VK_EXT_depth_range_unrestricted
2977#endif
2978#ifdef VK_IMG_filter_cubic
2979#endif
2980#ifdef VK_AMD_rasterization_order
2981#endif
2982#ifdef VK_AMD_shader_trinary_minmax
2983#endif
2984#ifdef VK_AMD_shader_explicit_vertex_parameter
2985#endif
2986#ifdef VK_EXT_debug_marker
2987static VkResult entry_vkDebugMarkerSetObjectTagEXT(
2988 VkDevice device,
2989 const VkDebugMarkerObjectTagInfoEXT* pTagInfo)
2990{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08002991 AEMU_SCOPED_TRACE("vkDebugMarkerSetObjectTagEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08002992 auto vkEnc = HostConnection::get()->vkEncoder();
2993 VkResult vkDebugMarkerSetObjectTagEXT_VkResult_return = (VkResult)0;
2994 vkDebugMarkerSetObjectTagEXT_VkResult_return = vkEnc->vkDebugMarkerSetObjectTagEXT(device, pTagInfo);
2995 return vkDebugMarkerSetObjectTagEXT_VkResult_return;
2996}
2997static VkResult entry_vkDebugMarkerSetObjectNameEXT(
2998 VkDevice device,
2999 const VkDebugMarkerObjectNameInfoEXT* pNameInfo)
3000{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003001 AEMU_SCOPED_TRACE("vkDebugMarkerSetObjectNameEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003002 auto vkEnc = HostConnection::get()->vkEncoder();
3003 VkResult vkDebugMarkerSetObjectNameEXT_VkResult_return = (VkResult)0;
3004 vkDebugMarkerSetObjectNameEXT_VkResult_return = vkEnc->vkDebugMarkerSetObjectNameEXT(device, pNameInfo);
3005 return vkDebugMarkerSetObjectNameEXT_VkResult_return;
3006}
3007static void entry_vkCmdDebugMarkerBeginEXT(
3008 VkCommandBuffer commandBuffer,
3009 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo)
3010{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003011 AEMU_SCOPED_TRACE("vkCmdDebugMarkerBeginEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003012 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07003013 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003014 vkEnc->vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo);
3015}
3016static void entry_vkCmdDebugMarkerEndEXT(
3017 VkCommandBuffer commandBuffer)
3018{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003019 AEMU_SCOPED_TRACE("vkCmdDebugMarkerEndEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003020 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07003021 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003022 vkEnc->vkCmdDebugMarkerEndEXT(commandBuffer);
3023}
3024static void entry_vkCmdDebugMarkerInsertEXT(
3025 VkCommandBuffer commandBuffer,
3026 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo)
3027{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003028 AEMU_SCOPED_TRACE("vkCmdDebugMarkerInsertEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003029 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07003030 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003031 vkEnc->vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo);
3032}
3033#endif
3034#ifdef VK_AMD_gcn_shader
3035#endif
3036#ifdef VK_NV_dedicated_allocation
3037#endif
3038#ifdef VK_AMD_draw_indirect_count
3039static void entry_vkCmdDrawIndirectCountAMD(
3040 VkCommandBuffer commandBuffer,
3041 VkBuffer buffer,
3042 VkDeviceSize offset,
3043 VkBuffer countBuffer,
3044 VkDeviceSize countBufferOffset,
3045 uint32_t maxDrawCount,
3046 uint32_t stride)
3047{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003048 AEMU_SCOPED_TRACE("vkCmdDrawIndirectCountAMD");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003049 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07003050 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003051 vkEnc->vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
3052}
3053static void entry_vkCmdDrawIndexedIndirectCountAMD(
3054 VkCommandBuffer commandBuffer,
3055 VkBuffer buffer,
3056 VkDeviceSize offset,
3057 VkBuffer countBuffer,
3058 VkDeviceSize countBufferOffset,
3059 uint32_t maxDrawCount,
3060 uint32_t stride)
3061{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003062 AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirectCountAMD");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003063 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07003064 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003065 vkEnc->vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
3066}
3067#endif
3068#ifdef VK_AMD_negative_viewport_height
3069#endif
3070#ifdef VK_AMD_gpu_shader_half_float
3071#endif
3072#ifdef VK_AMD_shader_ballot
3073#endif
3074#ifdef VK_AMD_texture_gather_bias_lod
3075#endif
3076#ifdef VK_AMD_shader_info
3077static VkResult entry_vkGetShaderInfoAMD(
3078 VkDevice device,
3079 VkPipeline pipeline,
3080 VkShaderStageFlagBits shaderStage,
3081 VkShaderInfoTypeAMD infoType,
3082 size_t* pInfoSize,
3083 void* pInfo)
3084{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003085 AEMU_SCOPED_TRACE("vkGetShaderInfoAMD");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003086 auto vkEnc = HostConnection::get()->vkEncoder();
3087 VkResult vkGetShaderInfoAMD_VkResult_return = (VkResult)0;
3088 vkGetShaderInfoAMD_VkResult_return = vkEnc->vkGetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo);
3089 return vkGetShaderInfoAMD_VkResult_return;
3090}
3091#endif
3092#ifdef VK_AMD_shader_image_load_store_lod
3093#endif
3094#ifdef VK_IMG_format_pvrtc
3095#endif
3096#ifdef VK_NV_external_memory_capabilities
3097static VkResult entry_vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
3098 VkPhysicalDevice physicalDevice,
3099 VkFormat format,
3100 VkImageType type,
3101 VkImageTiling tiling,
3102 VkImageUsageFlags usage,
3103 VkImageCreateFlags flags,
3104 VkExternalMemoryHandleTypeFlagsNV externalHandleType,
3105 VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties)
3106{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003107 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalImageFormatPropertiesNV");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003108 auto vkEnc = HostConnection::get()->vkEncoder();
3109 VkResult vkGetPhysicalDeviceExternalImageFormatPropertiesNV_VkResult_return = (VkResult)0;
3110 vkGetPhysicalDeviceExternalImageFormatPropertiesNV_VkResult_return = vkEnc->vkGetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties);
3111 return vkGetPhysicalDeviceExternalImageFormatPropertiesNV_VkResult_return;
3112}
3113#endif
3114#ifdef VK_NV_external_memory
3115#endif
3116#ifdef VK_NV_external_memory_win32
3117static VkResult entry_vkGetMemoryWin32HandleNV(
3118 VkDevice device,
3119 VkDeviceMemory memory,
3120 VkExternalMemoryHandleTypeFlagsNV handleType,
3121 HANDLE* pHandle)
3122{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003123 AEMU_SCOPED_TRACE("vkGetMemoryWin32HandleNV");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003124 auto vkEnc = HostConnection::get()->vkEncoder();
3125 VkResult vkGetMemoryWin32HandleNV_VkResult_return = (VkResult)0;
3126 vkGetMemoryWin32HandleNV_VkResult_return = vkEnc->vkGetMemoryWin32HandleNV(device, memory, handleType, pHandle);
3127 return vkGetMemoryWin32HandleNV_VkResult_return;
3128}
3129#endif
3130#ifdef VK_NV_win32_keyed_mutex
3131#endif
3132#ifdef VK_EXT_validation_flags
3133#endif
3134#ifdef VK_NN_vi_surface
3135static VkResult entry_vkCreateViSurfaceNN(
3136 VkInstance instance,
3137 const VkViSurfaceCreateInfoNN* pCreateInfo,
3138 const VkAllocationCallbacks* pAllocator,
3139 VkSurfaceKHR* pSurface)
3140{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003141 AEMU_SCOPED_TRACE("vkCreateViSurfaceNN");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003142 auto vkEnc = HostConnection::get()->vkEncoder();
3143 VkResult vkCreateViSurfaceNN_VkResult_return = (VkResult)0;
3144 vkCreateViSurfaceNN_VkResult_return = vkEnc->vkCreateViSurfaceNN(instance, pCreateInfo, pAllocator, pSurface);
3145 return vkCreateViSurfaceNN_VkResult_return;
3146}
3147#endif
3148#ifdef VK_EXT_shader_subgroup_ballot
3149#endif
3150#ifdef VK_EXT_shader_subgroup_vote
3151#endif
3152#ifdef VK_EXT_conditional_rendering
3153static void entry_vkCmdBeginConditionalRenderingEXT(
3154 VkCommandBuffer commandBuffer,
3155 const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin)
3156{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003157 AEMU_SCOPED_TRACE("vkCmdBeginConditionalRenderingEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003158 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07003159 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003160 vkEnc->vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin);
3161}
3162static void entry_vkCmdEndConditionalRenderingEXT(
3163 VkCommandBuffer commandBuffer)
3164{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003165 AEMU_SCOPED_TRACE("vkCmdEndConditionalRenderingEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003166 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07003167 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003168 vkEnc->vkCmdEndConditionalRenderingEXT(commandBuffer);
3169}
3170#endif
3171#ifdef VK_NVX_device_generated_commands
3172static void entry_vkCmdProcessCommandsNVX(
3173 VkCommandBuffer commandBuffer,
3174 const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo)
3175{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003176 AEMU_SCOPED_TRACE("vkCmdProcessCommandsNVX");
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->vkCmdProcessCommandsNVX(commandBuffer, pProcessCommandsInfo);
3180}
3181static void entry_vkCmdReserveSpaceForCommandsNVX(
3182 VkCommandBuffer commandBuffer,
3183 const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo)
3184{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003185 AEMU_SCOPED_TRACE("vkCmdReserveSpaceForCommandsNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003186 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07003187 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003188 vkEnc->vkCmdReserveSpaceForCommandsNVX(commandBuffer, pReserveSpaceInfo);
3189}
3190static VkResult entry_vkCreateIndirectCommandsLayoutNVX(
3191 VkDevice device,
3192 const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo,
3193 const VkAllocationCallbacks* pAllocator,
3194 VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout)
3195{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003196 AEMU_SCOPED_TRACE("vkCreateIndirectCommandsLayoutNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003197 auto vkEnc = HostConnection::get()->vkEncoder();
3198 VkResult vkCreateIndirectCommandsLayoutNVX_VkResult_return = (VkResult)0;
3199 vkCreateIndirectCommandsLayoutNVX_VkResult_return = vkEnc->vkCreateIndirectCommandsLayoutNVX(device, pCreateInfo, pAllocator, pIndirectCommandsLayout);
3200 return vkCreateIndirectCommandsLayoutNVX_VkResult_return;
3201}
3202static void entry_vkDestroyIndirectCommandsLayoutNVX(
3203 VkDevice device,
3204 VkIndirectCommandsLayoutNVX indirectCommandsLayout,
3205 const VkAllocationCallbacks* pAllocator)
3206{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003207 AEMU_SCOPED_TRACE("vkDestroyIndirectCommandsLayoutNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003208 auto vkEnc = HostConnection::get()->vkEncoder();
3209 vkEnc->vkDestroyIndirectCommandsLayoutNVX(device, indirectCommandsLayout, pAllocator);
3210}
3211static VkResult entry_vkCreateObjectTableNVX(
3212 VkDevice device,
3213 const VkObjectTableCreateInfoNVX* pCreateInfo,
3214 const VkAllocationCallbacks* pAllocator,
3215 VkObjectTableNVX* pObjectTable)
3216{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003217 AEMU_SCOPED_TRACE("vkCreateObjectTableNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003218 auto vkEnc = HostConnection::get()->vkEncoder();
3219 VkResult vkCreateObjectTableNVX_VkResult_return = (VkResult)0;
3220 vkCreateObjectTableNVX_VkResult_return = vkEnc->vkCreateObjectTableNVX(device, pCreateInfo, pAllocator, pObjectTable);
3221 return vkCreateObjectTableNVX_VkResult_return;
3222}
3223static void entry_vkDestroyObjectTableNVX(
3224 VkDevice device,
3225 VkObjectTableNVX objectTable,
3226 const VkAllocationCallbacks* pAllocator)
3227{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003228 AEMU_SCOPED_TRACE("vkDestroyObjectTableNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003229 auto vkEnc = HostConnection::get()->vkEncoder();
3230 vkEnc->vkDestroyObjectTableNVX(device, objectTable, pAllocator);
3231}
3232static VkResult entry_vkRegisterObjectsNVX(
3233 VkDevice device,
3234 VkObjectTableNVX objectTable,
3235 uint32_t objectCount,
3236 const VkObjectTableEntryNVX* const* ppObjectTableEntries,
3237 const uint32_t* pObjectIndices)
3238{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003239 AEMU_SCOPED_TRACE("vkRegisterObjectsNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003240 auto vkEnc = HostConnection::get()->vkEncoder();
3241 VkResult vkRegisterObjectsNVX_VkResult_return = (VkResult)0;
3242 vkRegisterObjectsNVX_VkResult_return = vkEnc->vkRegisterObjectsNVX(device, objectTable, objectCount, ppObjectTableEntries, pObjectIndices);
3243 return vkRegisterObjectsNVX_VkResult_return;
3244}
3245static VkResult entry_vkUnregisterObjectsNVX(
3246 VkDevice device,
3247 VkObjectTableNVX objectTable,
3248 uint32_t objectCount,
3249 const VkObjectEntryTypeNVX* pObjectEntryTypes,
3250 const uint32_t* pObjectIndices)
3251{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003252 AEMU_SCOPED_TRACE("vkUnregisterObjectsNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003253 auto vkEnc = HostConnection::get()->vkEncoder();
3254 VkResult vkUnregisterObjectsNVX_VkResult_return = (VkResult)0;
3255 vkUnregisterObjectsNVX_VkResult_return = vkEnc->vkUnregisterObjectsNVX(device, objectTable, objectCount, pObjectEntryTypes, pObjectIndices);
3256 return vkUnregisterObjectsNVX_VkResult_return;
3257}
3258static void entry_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX(
3259 VkPhysicalDevice physicalDevice,
3260 VkDeviceGeneratedCommandsFeaturesNVX* pFeatures,
3261 VkDeviceGeneratedCommandsLimitsNVX* pLimits)
3262{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003263 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003264 auto vkEnc = HostConnection::get()->vkEncoder();
3265 vkEnc->vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX(physicalDevice, pFeatures, pLimits);
3266}
3267#endif
3268#ifdef VK_NV_clip_space_w_scaling
3269static void entry_vkCmdSetViewportWScalingNV(
3270 VkCommandBuffer commandBuffer,
3271 uint32_t firstViewport,
3272 uint32_t viewportCount,
3273 const VkViewportWScalingNV* pViewportWScalings)
3274{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003275 AEMU_SCOPED_TRACE("vkCmdSetViewportWScalingNV");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003276 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07003277 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003278 vkEnc->vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings);
3279}
3280#endif
3281#ifdef VK_EXT_direct_mode_display
3282static VkResult entry_vkReleaseDisplayEXT(
3283 VkPhysicalDevice physicalDevice,
3284 VkDisplayKHR display)
3285{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003286 AEMU_SCOPED_TRACE("vkReleaseDisplayEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003287 auto vkEnc = HostConnection::get()->vkEncoder();
3288 VkResult vkReleaseDisplayEXT_VkResult_return = (VkResult)0;
3289 vkReleaseDisplayEXT_VkResult_return = vkEnc->vkReleaseDisplayEXT(physicalDevice, display);
3290 return vkReleaseDisplayEXT_VkResult_return;
3291}
3292#endif
3293#ifdef VK_EXT_acquire_xlib_display
3294static VkResult entry_vkAcquireXlibDisplayEXT(
3295 VkPhysicalDevice physicalDevice,
3296 Display* dpy,
3297 VkDisplayKHR display)
3298{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003299 AEMU_SCOPED_TRACE("vkAcquireXlibDisplayEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003300 auto vkEnc = HostConnection::get()->vkEncoder();
3301 VkResult vkAcquireXlibDisplayEXT_VkResult_return = (VkResult)0;
3302 vkAcquireXlibDisplayEXT_VkResult_return = vkEnc->vkAcquireXlibDisplayEXT(physicalDevice, dpy, display);
3303 return vkAcquireXlibDisplayEXT_VkResult_return;
3304}
3305static VkResult entry_vkGetRandROutputDisplayEXT(
3306 VkPhysicalDevice physicalDevice,
3307 Display* dpy,
3308 RROutput rrOutput,
3309 VkDisplayKHR* pDisplay)
3310{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003311 AEMU_SCOPED_TRACE("vkGetRandROutputDisplayEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003312 auto vkEnc = HostConnection::get()->vkEncoder();
3313 VkResult vkGetRandROutputDisplayEXT_VkResult_return = (VkResult)0;
3314 vkGetRandROutputDisplayEXT_VkResult_return = vkEnc->vkGetRandROutputDisplayEXT(physicalDevice, dpy, rrOutput, pDisplay);
3315 return vkGetRandROutputDisplayEXT_VkResult_return;
3316}
3317#endif
3318#ifdef VK_EXT_display_surface_counter
3319static VkResult entry_vkGetPhysicalDeviceSurfaceCapabilities2EXT(
3320 VkPhysicalDevice physicalDevice,
3321 VkSurfaceKHR surface,
3322 VkSurfaceCapabilities2EXT* pSurfaceCapabilities)
3323{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003324 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceCapabilities2EXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003325 auto vkEnc = HostConnection::get()->vkEncoder();
3326 VkResult vkGetPhysicalDeviceSurfaceCapabilities2EXT_VkResult_return = (VkResult)0;
3327 vkGetPhysicalDeviceSurfaceCapabilities2EXT_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities);
3328 return vkGetPhysicalDeviceSurfaceCapabilities2EXT_VkResult_return;
3329}
3330#endif
3331#ifdef VK_EXT_display_control
3332static VkResult entry_vkDisplayPowerControlEXT(
3333 VkDevice device,
3334 VkDisplayKHR display,
3335 const VkDisplayPowerInfoEXT* pDisplayPowerInfo)
3336{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003337 AEMU_SCOPED_TRACE("vkDisplayPowerControlEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003338 auto vkEnc = HostConnection::get()->vkEncoder();
3339 VkResult vkDisplayPowerControlEXT_VkResult_return = (VkResult)0;
3340 vkDisplayPowerControlEXT_VkResult_return = vkEnc->vkDisplayPowerControlEXT(device, display, pDisplayPowerInfo);
3341 return vkDisplayPowerControlEXT_VkResult_return;
3342}
3343static VkResult entry_vkRegisterDeviceEventEXT(
3344 VkDevice device,
3345 const VkDeviceEventInfoEXT* pDeviceEventInfo,
3346 const VkAllocationCallbacks* pAllocator,
3347 VkFence* pFence)
3348{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003349 AEMU_SCOPED_TRACE("vkRegisterDeviceEventEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003350 auto vkEnc = HostConnection::get()->vkEncoder();
3351 VkResult vkRegisterDeviceEventEXT_VkResult_return = (VkResult)0;
3352 vkRegisterDeviceEventEXT_VkResult_return = vkEnc->vkRegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence);
3353 return vkRegisterDeviceEventEXT_VkResult_return;
3354}
3355static VkResult entry_vkRegisterDisplayEventEXT(
3356 VkDevice device,
3357 VkDisplayKHR display,
3358 const VkDisplayEventInfoEXT* pDisplayEventInfo,
3359 const VkAllocationCallbacks* pAllocator,
3360 VkFence* pFence)
3361{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003362 AEMU_SCOPED_TRACE("vkRegisterDisplayEventEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003363 auto vkEnc = HostConnection::get()->vkEncoder();
3364 VkResult vkRegisterDisplayEventEXT_VkResult_return = (VkResult)0;
3365 vkRegisterDisplayEventEXT_VkResult_return = vkEnc->vkRegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence);
3366 return vkRegisterDisplayEventEXT_VkResult_return;
3367}
3368static VkResult entry_vkGetSwapchainCounterEXT(
3369 VkDevice device,
3370 VkSwapchainKHR swapchain,
3371 VkSurfaceCounterFlagBitsEXT counter,
3372 uint64_t* pCounterValue)
3373{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003374 AEMU_SCOPED_TRACE("vkGetSwapchainCounterEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003375 auto vkEnc = HostConnection::get()->vkEncoder();
3376 VkResult vkGetSwapchainCounterEXT_VkResult_return = (VkResult)0;
3377 vkGetSwapchainCounterEXT_VkResult_return = vkEnc->vkGetSwapchainCounterEXT(device, swapchain, counter, pCounterValue);
3378 return vkGetSwapchainCounterEXT_VkResult_return;
3379}
3380#endif
3381#ifdef VK_GOOGLE_display_timing
3382static VkResult entry_vkGetRefreshCycleDurationGOOGLE(
3383 VkDevice device,
3384 VkSwapchainKHR swapchain,
3385 VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties)
3386{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003387 AEMU_SCOPED_TRACE("vkGetRefreshCycleDurationGOOGLE");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003388 auto vkEnc = HostConnection::get()->vkEncoder();
3389 VkResult vkGetRefreshCycleDurationGOOGLE_VkResult_return = (VkResult)0;
3390 vkGetRefreshCycleDurationGOOGLE_VkResult_return = vkEnc->vkGetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties);
3391 return vkGetRefreshCycleDurationGOOGLE_VkResult_return;
3392}
3393static VkResult entry_vkGetPastPresentationTimingGOOGLE(
3394 VkDevice device,
3395 VkSwapchainKHR swapchain,
3396 uint32_t* pPresentationTimingCount,
3397 VkPastPresentationTimingGOOGLE* pPresentationTimings)
3398{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003399 AEMU_SCOPED_TRACE("vkGetPastPresentationTimingGOOGLE");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003400 auto vkEnc = HostConnection::get()->vkEncoder();
3401 VkResult vkGetPastPresentationTimingGOOGLE_VkResult_return = (VkResult)0;
3402 vkGetPastPresentationTimingGOOGLE_VkResult_return = vkEnc->vkGetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings);
3403 return vkGetPastPresentationTimingGOOGLE_VkResult_return;
3404}
3405#endif
3406#ifdef VK_NV_sample_mask_override_coverage
3407#endif
3408#ifdef VK_NV_geometry_shader_passthrough
3409#endif
3410#ifdef VK_NV_viewport_array2
3411#endif
3412#ifdef VK_NVX_multiview_per_view_attributes
3413#endif
3414#ifdef VK_NV_viewport_swizzle
3415#endif
3416#ifdef VK_EXT_discard_rectangles
3417static void entry_vkCmdSetDiscardRectangleEXT(
3418 VkCommandBuffer commandBuffer,
3419 uint32_t firstDiscardRectangle,
3420 uint32_t discardRectangleCount,
3421 const VkRect2D* pDiscardRectangles)
3422{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003423 AEMU_SCOPED_TRACE("vkCmdSetDiscardRectangleEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003424 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07003425 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003426 vkEnc->vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles);
3427}
3428#endif
3429#ifdef VK_EXT_conservative_rasterization
3430#endif
3431#ifdef VK_EXT_swapchain_colorspace
3432#endif
3433#ifdef VK_EXT_hdr_metadata
3434static void entry_vkSetHdrMetadataEXT(
3435 VkDevice device,
3436 uint32_t swapchainCount,
3437 const VkSwapchainKHR* pSwapchains,
3438 const VkHdrMetadataEXT* pMetadata)
3439{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003440 AEMU_SCOPED_TRACE("vkSetHdrMetadataEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003441 auto vkEnc = HostConnection::get()->vkEncoder();
3442 vkEnc->vkSetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata);
3443}
3444#endif
3445#ifdef VK_MVK_ios_surface
3446static VkResult entry_vkCreateIOSSurfaceMVK(
3447 VkInstance instance,
3448 const VkIOSSurfaceCreateInfoMVK* pCreateInfo,
3449 const VkAllocationCallbacks* pAllocator,
3450 VkSurfaceKHR* pSurface)
3451{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003452 AEMU_SCOPED_TRACE("vkCreateIOSSurfaceMVK");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003453 auto vkEnc = HostConnection::get()->vkEncoder();
3454 VkResult vkCreateIOSSurfaceMVK_VkResult_return = (VkResult)0;
3455 vkCreateIOSSurfaceMVK_VkResult_return = vkEnc->vkCreateIOSSurfaceMVK(instance, pCreateInfo, pAllocator, pSurface);
3456 return vkCreateIOSSurfaceMVK_VkResult_return;
3457}
3458#endif
3459#ifdef VK_MVK_macos_surface
3460static VkResult entry_vkCreateMacOSSurfaceMVK(
3461 VkInstance instance,
3462 const VkMacOSSurfaceCreateInfoMVK* pCreateInfo,
3463 const VkAllocationCallbacks* pAllocator,
3464 VkSurfaceKHR* pSurface)
3465{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003466 AEMU_SCOPED_TRACE("vkCreateMacOSSurfaceMVK");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003467 auto vkEnc = HostConnection::get()->vkEncoder();
3468 VkResult vkCreateMacOSSurfaceMVK_VkResult_return = (VkResult)0;
3469 vkCreateMacOSSurfaceMVK_VkResult_return = vkEnc->vkCreateMacOSSurfaceMVK(instance, pCreateInfo, pAllocator, pSurface);
3470 return vkCreateMacOSSurfaceMVK_VkResult_return;
3471}
3472#endif
3473#ifdef VK_EXT_external_memory_dma_buf
3474#endif
3475#ifdef VK_EXT_queue_family_foreign
3476#endif
3477#ifdef VK_EXT_debug_utils
3478static VkResult entry_vkSetDebugUtilsObjectNameEXT(
3479 VkDevice device,
3480 const VkDebugUtilsObjectNameInfoEXT* pNameInfo)
3481{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003482 AEMU_SCOPED_TRACE("vkSetDebugUtilsObjectNameEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003483 auto vkEnc = HostConnection::get()->vkEncoder();
3484 VkResult vkSetDebugUtilsObjectNameEXT_VkResult_return = (VkResult)0;
3485 vkSetDebugUtilsObjectNameEXT_VkResult_return = vkEnc->vkSetDebugUtilsObjectNameEXT(device, pNameInfo);
3486 return vkSetDebugUtilsObjectNameEXT_VkResult_return;
3487}
3488static VkResult entry_vkSetDebugUtilsObjectTagEXT(
3489 VkDevice device,
3490 const VkDebugUtilsObjectTagInfoEXT* pTagInfo)
3491{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003492 AEMU_SCOPED_TRACE("vkSetDebugUtilsObjectTagEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003493 auto vkEnc = HostConnection::get()->vkEncoder();
3494 VkResult vkSetDebugUtilsObjectTagEXT_VkResult_return = (VkResult)0;
3495 vkSetDebugUtilsObjectTagEXT_VkResult_return = vkEnc->vkSetDebugUtilsObjectTagEXT(device, pTagInfo);
3496 return vkSetDebugUtilsObjectTagEXT_VkResult_return;
3497}
3498static void entry_vkQueueBeginDebugUtilsLabelEXT(
3499 VkQueue queue,
3500 const VkDebugUtilsLabelEXT* pLabelInfo)
3501{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003502 AEMU_SCOPED_TRACE("vkQueueBeginDebugUtilsLabelEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003503 auto vkEnc = HostConnection::get()->vkEncoder();
3504 vkEnc->vkQueueBeginDebugUtilsLabelEXT(queue, pLabelInfo);
3505}
3506static void entry_vkQueueEndDebugUtilsLabelEXT(
3507 VkQueue queue)
3508{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003509 AEMU_SCOPED_TRACE("vkQueueEndDebugUtilsLabelEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003510 auto vkEnc = HostConnection::get()->vkEncoder();
3511 vkEnc->vkQueueEndDebugUtilsLabelEXT(queue);
3512}
3513static void entry_vkQueueInsertDebugUtilsLabelEXT(
3514 VkQueue queue,
3515 const VkDebugUtilsLabelEXT* pLabelInfo)
3516{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003517 AEMU_SCOPED_TRACE("vkQueueInsertDebugUtilsLabelEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003518 auto vkEnc = HostConnection::get()->vkEncoder();
3519 vkEnc->vkQueueInsertDebugUtilsLabelEXT(queue, pLabelInfo);
3520}
3521static void entry_vkCmdBeginDebugUtilsLabelEXT(
3522 VkCommandBuffer commandBuffer,
3523 const VkDebugUtilsLabelEXT* pLabelInfo)
3524{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003525 AEMU_SCOPED_TRACE("vkCmdBeginDebugUtilsLabelEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003526 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07003527 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003528 vkEnc->vkCmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo);
3529}
3530static void entry_vkCmdEndDebugUtilsLabelEXT(
3531 VkCommandBuffer commandBuffer)
3532{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003533 AEMU_SCOPED_TRACE("vkCmdEndDebugUtilsLabelEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003534 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07003535 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003536 vkEnc->vkCmdEndDebugUtilsLabelEXT(commandBuffer);
3537}
3538static void entry_vkCmdInsertDebugUtilsLabelEXT(
3539 VkCommandBuffer commandBuffer,
3540 const VkDebugUtilsLabelEXT* pLabelInfo)
3541{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003542 AEMU_SCOPED_TRACE("vkCmdInsertDebugUtilsLabelEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003543 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07003544 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003545 vkEnc->vkCmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo);
3546}
3547static VkResult entry_vkCreateDebugUtilsMessengerEXT(
3548 VkInstance instance,
3549 const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo,
3550 const VkAllocationCallbacks* pAllocator,
3551 VkDebugUtilsMessengerEXT* pMessenger)
3552{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003553 AEMU_SCOPED_TRACE("vkCreateDebugUtilsMessengerEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003554 auto vkEnc = HostConnection::get()->vkEncoder();
3555 VkResult vkCreateDebugUtilsMessengerEXT_VkResult_return = (VkResult)0;
3556 vkCreateDebugUtilsMessengerEXT_VkResult_return = vkEnc->vkCreateDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, pMessenger);
3557 return vkCreateDebugUtilsMessengerEXT_VkResult_return;
3558}
3559static void entry_vkDestroyDebugUtilsMessengerEXT(
3560 VkInstance instance,
3561 VkDebugUtilsMessengerEXT messenger,
3562 const VkAllocationCallbacks* pAllocator)
3563{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003564 AEMU_SCOPED_TRACE("vkDestroyDebugUtilsMessengerEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003565 auto vkEnc = HostConnection::get()->vkEncoder();
3566 vkEnc->vkDestroyDebugUtilsMessengerEXT(instance, messenger, pAllocator);
3567}
3568static void entry_vkSubmitDebugUtilsMessageEXT(
3569 VkInstance instance,
3570 VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
3571 VkDebugUtilsMessageTypeFlagsEXT messageTypes,
3572 const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData)
3573{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003574 AEMU_SCOPED_TRACE("vkSubmitDebugUtilsMessageEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003575 auto vkEnc = HostConnection::get()->vkEncoder();
3576 vkEnc->vkSubmitDebugUtilsMessageEXT(instance, messageSeverity, messageTypes, pCallbackData);
3577}
3578#endif
3579#ifdef VK_ANDROID_external_memory_android_hardware_buffer
3580static VkResult entry_vkGetAndroidHardwareBufferPropertiesANDROID(
3581 VkDevice device,
3582 const AHardwareBuffer* buffer,
3583 VkAndroidHardwareBufferPropertiesANDROID* pProperties)
3584{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003585 AEMU_SCOPED_TRACE("vkGetAndroidHardwareBufferPropertiesANDROID");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003586 auto vkEnc = HostConnection::get()->vkEncoder();
3587 VkResult vkGetAndroidHardwareBufferPropertiesANDROID_VkResult_return = (VkResult)0;
Lingfeng Yang4f3f91f2019-02-28 11:37:21 -08003588 auto resources = ResourceTracker::get();
3589 vkGetAndroidHardwareBufferPropertiesANDROID_VkResult_return = resources->on_vkGetAndroidHardwareBufferPropertiesANDROID(vkEnc, VK_SUCCESS, device, buffer, pProperties);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003590 return vkGetAndroidHardwareBufferPropertiesANDROID_VkResult_return;
3591}
3592static VkResult entry_vkGetMemoryAndroidHardwareBufferANDROID(
3593 VkDevice device,
3594 const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo,
3595 AHardwareBuffer** pBuffer)
3596{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003597 AEMU_SCOPED_TRACE("vkGetMemoryAndroidHardwareBufferANDROID");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003598 auto vkEnc = HostConnection::get()->vkEncoder();
3599 VkResult vkGetMemoryAndroidHardwareBufferANDROID_VkResult_return = (VkResult)0;
Lingfeng Yang4f3f91f2019-02-28 11:37:21 -08003600 auto resources = ResourceTracker::get();
3601 vkGetMemoryAndroidHardwareBufferANDROID_VkResult_return = resources->on_vkGetMemoryAndroidHardwareBufferANDROID(vkEnc, VK_SUCCESS, device, pInfo, pBuffer);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003602 return vkGetMemoryAndroidHardwareBufferANDROID_VkResult_return;
3603}
3604#endif
3605#ifdef VK_EXT_sampler_filter_minmax
3606#endif
3607#ifdef VK_AMD_gpu_shader_int16
3608#endif
3609#ifdef VK_AMD_mixed_attachment_samples
3610#endif
3611#ifdef VK_AMD_shader_fragment_mask
3612#endif
3613#ifdef VK_EXT_shader_stencil_export
3614#endif
3615#ifdef VK_EXT_sample_locations
3616static void entry_vkCmdSetSampleLocationsEXT(
3617 VkCommandBuffer commandBuffer,
3618 const VkSampleLocationsInfoEXT* pSampleLocationsInfo)
3619{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003620 AEMU_SCOPED_TRACE("vkCmdSetSampleLocationsEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003621 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07003622 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003623 vkEnc->vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo);
3624}
3625static void entry_vkGetPhysicalDeviceMultisamplePropertiesEXT(
3626 VkPhysicalDevice physicalDevice,
3627 VkSampleCountFlagBits samples,
3628 VkMultisamplePropertiesEXT* pMultisampleProperties)
3629{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003630 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMultisamplePropertiesEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003631 auto vkEnc = HostConnection::get()->vkEncoder();
3632 vkEnc->vkGetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties);
3633}
3634#endif
3635#ifdef VK_EXT_blend_operation_advanced
3636#endif
3637#ifdef VK_NV_fragment_coverage_to_color
3638#endif
3639#ifdef VK_NV_framebuffer_mixed_samples
3640#endif
3641#ifdef VK_NV_fill_rectangle
3642#endif
3643#ifdef VK_EXT_post_depth_coverage
3644#endif
3645#ifdef VK_EXT_validation_cache
3646static VkResult entry_vkCreateValidationCacheEXT(
3647 VkDevice device,
3648 const VkValidationCacheCreateInfoEXT* pCreateInfo,
3649 const VkAllocationCallbacks* pAllocator,
3650 VkValidationCacheEXT* pValidationCache)
3651{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003652 AEMU_SCOPED_TRACE("vkCreateValidationCacheEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003653 auto vkEnc = HostConnection::get()->vkEncoder();
3654 VkResult vkCreateValidationCacheEXT_VkResult_return = (VkResult)0;
3655 vkCreateValidationCacheEXT_VkResult_return = vkEnc->vkCreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache);
3656 return vkCreateValidationCacheEXT_VkResult_return;
3657}
3658static void entry_vkDestroyValidationCacheEXT(
3659 VkDevice device,
3660 VkValidationCacheEXT validationCache,
3661 const VkAllocationCallbacks* pAllocator)
3662{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003663 AEMU_SCOPED_TRACE("vkDestroyValidationCacheEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003664 auto vkEnc = HostConnection::get()->vkEncoder();
3665 vkEnc->vkDestroyValidationCacheEXT(device, validationCache, pAllocator);
3666}
3667static VkResult entry_vkMergeValidationCachesEXT(
3668 VkDevice device,
3669 VkValidationCacheEXT dstCache,
3670 uint32_t srcCacheCount,
3671 const VkValidationCacheEXT* pSrcCaches)
3672{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003673 AEMU_SCOPED_TRACE("vkMergeValidationCachesEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003674 auto vkEnc = HostConnection::get()->vkEncoder();
3675 VkResult vkMergeValidationCachesEXT_VkResult_return = (VkResult)0;
3676 vkMergeValidationCachesEXT_VkResult_return = vkEnc->vkMergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches);
3677 return vkMergeValidationCachesEXT_VkResult_return;
3678}
3679static VkResult entry_vkGetValidationCacheDataEXT(
3680 VkDevice device,
3681 VkValidationCacheEXT validationCache,
3682 size_t* pDataSize,
3683 void* pData)
3684{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003685 AEMU_SCOPED_TRACE("vkGetValidationCacheDataEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003686 auto vkEnc = HostConnection::get()->vkEncoder();
3687 VkResult vkGetValidationCacheDataEXT_VkResult_return = (VkResult)0;
3688 vkGetValidationCacheDataEXT_VkResult_return = vkEnc->vkGetValidationCacheDataEXT(device, validationCache, pDataSize, pData);
3689 return vkGetValidationCacheDataEXT_VkResult_return;
3690}
3691#endif
3692#ifdef VK_EXT_descriptor_indexing
3693#endif
3694#ifdef VK_EXT_shader_viewport_index_layer
3695#endif
3696#ifdef VK_EXT_global_priority
3697#endif
3698#ifdef VK_EXT_external_memory_host
3699static VkResult entry_vkGetMemoryHostPointerPropertiesEXT(
3700 VkDevice device,
3701 VkExternalMemoryHandleTypeFlagBits handleType,
3702 const void* pHostPointer,
3703 VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties)
3704{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003705 AEMU_SCOPED_TRACE("vkGetMemoryHostPointerPropertiesEXT");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003706 auto vkEnc = HostConnection::get()->vkEncoder();
3707 VkResult vkGetMemoryHostPointerPropertiesEXT_VkResult_return = (VkResult)0;
3708 vkGetMemoryHostPointerPropertiesEXT_VkResult_return = vkEnc->vkGetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties);
3709 return vkGetMemoryHostPointerPropertiesEXT_VkResult_return;
3710}
3711#endif
3712#ifdef VK_AMD_buffer_marker
3713static void entry_vkCmdWriteBufferMarkerAMD(
3714 VkCommandBuffer commandBuffer,
3715 VkPipelineStageFlagBits pipelineStage,
3716 VkBuffer dstBuffer,
3717 VkDeviceSize dstOffset,
3718 uint32_t marker)
3719{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003720 AEMU_SCOPED_TRACE("vkCmdWriteBufferMarkerAMD");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003721 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07003722 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003723 vkEnc->vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker);
3724}
3725#endif
3726#ifdef VK_AMD_shader_core_properties
3727#endif
3728#ifdef VK_EXT_vertex_attribute_divisor
3729#endif
3730#ifdef VK_NV_shader_subgroup_partitioned
3731#endif
3732#ifdef VK_NV_device_diagnostic_checkpoints
3733static void entry_vkCmdSetCheckpointNV(
3734 VkCommandBuffer commandBuffer,
3735 const void* pCheckpointMarker)
3736{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003737 AEMU_SCOPED_TRACE("vkCmdSetCheckpointNV");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003738 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07003739 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003740 vkEnc->vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker);
3741}
3742static void entry_vkGetQueueCheckpointDataNV(
3743 VkQueue queue,
3744 uint32_t* pCheckpointDataCount,
3745 VkCheckpointDataNV* pCheckpointData)
3746{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003747 AEMU_SCOPED_TRACE("vkGetQueueCheckpointDataNV");
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003748 auto vkEnc = HostConnection::get()->vkEncoder();
3749 vkEnc->vkGetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData);
3750}
3751#endif
Lingfeng Yang5c63afd2018-12-22 01:21:14 -08003752#ifdef VK_GOOGLE_address_space
3753static VkResult entry_vkMapMemoryIntoAddressSpaceGOOGLE(
3754 VkDevice device,
3755 VkDeviceMemory memory,
3756 uint64_t* pAddress)
3757{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003758 AEMU_SCOPED_TRACE("vkMapMemoryIntoAddressSpaceGOOGLE");
Lingfeng Yang5c63afd2018-12-22 01:21:14 -08003759 auto vkEnc = HostConnection::get()->vkEncoder();
3760 VkResult vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return = (VkResult)0;
3761 vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return = vkEnc->vkMapMemoryIntoAddressSpaceGOOGLE(device, memory, pAddress);
3762 return vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return;
3763}
3764#endif
Lingfeng Yangae7e1b32019-02-19 14:07:39 -08003765#ifdef VK_GOOGLE_color_buffer
3766static VkResult entry_vkRegisterImageColorBufferGOOGLE(
3767 VkDevice device,
3768 VkImage image,
3769 uint32_t colorBuffer)
3770{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003771 AEMU_SCOPED_TRACE("vkRegisterImageColorBufferGOOGLE");
Lingfeng Yangae7e1b32019-02-19 14:07:39 -08003772 auto vkEnc = HostConnection::get()->vkEncoder();
3773 VkResult vkRegisterImageColorBufferGOOGLE_VkResult_return = (VkResult)0;
3774 vkRegisterImageColorBufferGOOGLE_VkResult_return = vkEnc->vkRegisterImageColorBufferGOOGLE(device, image, colorBuffer);
3775 return vkRegisterImageColorBufferGOOGLE_VkResult_return;
3776}
3777static VkResult entry_vkRegisterBufferColorBufferGOOGLE(
3778 VkDevice device,
3779 VkBuffer buffer,
3780 uint32_t colorBuffer)
3781{
Lingfeng Yang42ac1792019-02-22 20:13:44 -08003782 AEMU_SCOPED_TRACE("vkRegisterBufferColorBufferGOOGLE");
Lingfeng Yangae7e1b32019-02-19 14:07:39 -08003783 auto vkEnc = HostConnection::get()->vkEncoder();
3784 VkResult vkRegisterBufferColorBufferGOOGLE_VkResult_return = (VkResult)0;
3785 vkRegisterBufferColorBufferGOOGLE_VkResult_return = vkEnc->vkRegisterBufferColorBufferGOOGLE(device, buffer, colorBuffer);
3786 return vkRegisterBufferColorBufferGOOGLE_VkResult_return;
3787}
3788#endif
Lingfeng Yang05d5ea32019-03-23 00:12:39 -07003789#ifdef VK_GOOGLE_sized_descriptor_update_template
3790static void entry_vkUpdateDescriptorSetWithTemplateSizedGOOGLE(
3791 VkDevice device,
3792 VkDescriptorSet descriptorSet,
3793 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
3794 uint32_t imageInfoCount,
3795 uint32_t bufferInfoCount,
3796 uint32_t bufferViewCount,
3797 const uint32_t* pImageInfoEntryIndices,
3798 const uint32_t* pBufferInfoEntryIndices,
3799 const uint32_t* pBufferViewEntryIndices,
3800 const VkDescriptorImageInfo* pImageInfos,
3801 const VkDescriptorBufferInfo* pBufferInfos,
3802 const VkBufferView* pBufferViews)
3803{
3804 AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplateSizedGOOGLE");
3805 auto vkEnc = HostConnection::get()->vkEncoder();
3806 vkEnc->vkUpdateDescriptorSetWithTemplateSizedGOOGLE(device, descriptorSet, descriptorUpdateTemplate, imageInfoCount, bufferInfoCount, bufferViewCount, pImageInfoEntryIndices, pBufferInfoEntryIndices, pBufferViewEntryIndices, pImageInfos, pBufferInfos, pBufferViews);
3807}
3808#endif
Lingfeng Yangc53e7472019-03-27 08:50:55 -07003809#ifdef VK_GOOGLE_async_command_buffers
3810static void entry_vkBeginCommandBufferAsyncGOOGLE(
3811 VkCommandBuffer commandBuffer,
3812 const VkCommandBufferBeginInfo* pBeginInfo)
3813{
3814 AEMU_SCOPED_TRACE("vkBeginCommandBufferAsyncGOOGLE");
3815 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07003816 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yangc53e7472019-03-27 08:50:55 -07003817 vkEnc->vkBeginCommandBufferAsyncGOOGLE(commandBuffer, pBeginInfo);
3818}
3819static void entry_vkEndCommandBufferAsyncGOOGLE(
3820 VkCommandBuffer commandBuffer)
3821{
3822 AEMU_SCOPED_TRACE("vkEndCommandBufferAsyncGOOGLE");
3823 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07003824 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yangc53e7472019-03-27 08:50:55 -07003825 vkEnc->vkEndCommandBufferAsyncGOOGLE(commandBuffer);
3826}
3827static void entry_vkResetCommandBufferAsyncGOOGLE(
3828 VkCommandBuffer commandBuffer,
3829 VkCommandBufferResetFlags flags)
3830{
3831 AEMU_SCOPED_TRACE("vkResetCommandBufferAsyncGOOGLE");
3832 auto vkEnc = HostConnection::get()->vkEncoder();
Lingfeng Yang39a276e2019-06-17 13:27:22 -07003833 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
Lingfeng Yangc53e7472019-03-27 08:50:55 -07003834 vkEnc->vkResetCommandBufferAsyncGOOGLE(commandBuffer, flags);
3835}
Lingfeng Yang39a276e2019-06-17 13:27:22 -07003836static void entry_vkCommandBufferHostSyncGOOGLE(
3837 VkCommandBuffer commandBuffer,
3838 uint32_t needHostSync,
3839 uint32_t sequenceNumber)
3840{
3841 AEMU_SCOPED_TRACE("vkCommandBufferHostSyncGOOGLE");
3842 auto vkEnc = HostConnection::get()->vkEncoder();
3843 ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
3844 vkEnc->vkCommandBufferHostSyncGOOGLE(commandBuffer, needHostSync, sequenceNumber);
3845}
Lingfeng Yangc53e7472019-03-27 08:50:55 -07003846#endif
Lingfeng Yang0b81df22018-11-05 21:40:30 -08003847void* goldfish_vulkan_get_proc_address(const char* name){
3848#ifdef VK_VERSION_1_0
3849 if (!strcmp(name, "vkCreateInstance"))
3850 {
3851 return (void*)entry_vkCreateInstance;
3852 }
3853 if (!strcmp(name, "vkDestroyInstance"))
3854 {
3855 return (void*)entry_vkDestroyInstance;
3856 }
3857 if (!strcmp(name, "vkEnumeratePhysicalDevices"))
3858 {
3859 return (void*)entry_vkEnumeratePhysicalDevices;
3860 }
3861 if (!strcmp(name, "vkGetPhysicalDeviceFeatures"))
3862 {
3863 return (void*)entry_vkGetPhysicalDeviceFeatures;
3864 }
3865 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties"))
3866 {
3867 return (void*)entry_vkGetPhysicalDeviceFormatProperties;
3868 }
3869 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties"))
3870 {
3871 return (void*)entry_vkGetPhysicalDeviceImageFormatProperties;
3872 }
3873 if (!strcmp(name, "vkGetPhysicalDeviceProperties"))
3874 {
3875 return (void*)entry_vkGetPhysicalDeviceProperties;
3876 }
3877 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties"))
3878 {
3879 return (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties;
3880 }
3881 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties"))
3882 {
3883 return (void*)entry_vkGetPhysicalDeviceMemoryProperties;
3884 }
3885 if (!strcmp(name, "vkGetInstanceProcAddr"))
3886 {
3887 return (void*)entry_vkGetInstanceProcAddr;
3888 }
3889 if (!strcmp(name, "vkGetDeviceProcAddr"))
3890 {
3891 return (void*)entry_vkGetDeviceProcAddr;
3892 }
3893 if (!strcmp(name, "vkCreateDevice"))
3894 {
3895 return (void*)entry_vkCreateDevice;
3896 }
3897 if (!strcmp(name, "vkDestroyDevice"))
3898 {
3899 return (void*)entry_vkDestroyDevice;
3900 }
3901 if (!strcmp(name, "vkEnumerateInstanceExtensionProperties"))
3902 {
3903 return (void*)entry_vkEnumerateInstanceExtensionProperties;
3904 }
3905 if (!strcmp(name, "vkEnumerateDeviceExtensionProperties"))
3906 {
3907 return (void*)entry_vkEnumerateDeviceExtensionProperties;
3908 }
3909 if (!strcmp(name, "vkEnumerateInstanceLayerProperties"))
3910 {
3911 return (void*)entry_vkEnumerateInstanceLayerProperties;
3912 }
3913 if (!strcmp(name, "vkEnumerateDeviceLayerProperties"))
3914 {
3915 return (void*)entry_vkEnumerateDeviceLayerProperties;
3916 }
3917 if (!strcmp(name, "vkGetDeviceQueue"))
3918 {
3919 return (void*)entry_vkGetDeviceQueue;
3920 }
3921 if (!strcmp(name, "vkQueueSubmit"))
3922 {
3923 return (void*)entry_vkQueueSubmit;
3924 }
3925 if (!strcmp(name, "vkQueueWaitIdle"))
3926 {
3927 return (void*)entry_vkQueueWaitIdle;
3928 }
3929 if (!strcmp(name, "vkDeviceWaitIdle"))
3930 {
3931 return (void*)entry_vkDeviceWaitIdle;
3932 }
3933 if (!strcmp(name, "vkAllocateMemory"))
3934 {
3935 return (void*)entry_vkAllocateMemory;
3936 }
3937 if (!strcmp(name, "vkFreeMemory"))
3938 {
3939 return (void*)entry_vkFreeMemory;
3940 }
3941 if (!strcmp(name, "vkMapMemory"))
3942 {
3943 return (void*)entry_vkMapMemory;
3944 }
3945 if (!strcmp(name, "vkUnmapMemory"))
3946 {
3947 return (void*)entry_vkUnmapMemory;
3948 }
3949 if (!strcmp(name, "vkFlushMappedMemoryRanges"))
3950 {
3951 return (void*)entry_vkFlushMappedMemoryRanges;
3952 }
3953 if (!strcmp(name, "vkInvalidateMappedMemoryRanges"))
3954 {
3955 return (void*)entry_vkInvalidateMappedMemoryRanges;
3956 }
3957 if (!strcmp(name, "vkGetDeviceMemoryCommitment"))
3958 {
3959 return (void*)entry_vkGetDeviceMemoryCommitment;
3960 }
3961 if (!strcmp(name, "vkBindBufferMemory"))
3962 {
3963 return (void*)entry_vkBindBufferMemory;
3964 }
3965 if (!strcmp(name, "vkBindImageMemory"))
3966 {
3967 return (void*)entry_vkBindImageMemory;
3968 }
3969 if (!strcmp(name, "vkGetBufferMemoryRequirements"))
3970 {
3971 return (void*)entry_vkGetBufferMemoryRequirements;
3972 }
3973 if (!strcmp(name, "vkGetImageMemoryRequirements"))
3974 {
3975 return (void*)entry_vkGetImageMemoryRequirements;
3976 }
3977 if (!strcmp(name, "vkGetImageSparseMemoryRequirements"))
3978 {
3979 return (void*)entry_vkGetImageSparseMemoryRequirements;
3980 }
3981 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties"))
3982 {
3983 return (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties;
3984 }
3985 if (!strcmp(name, "vkQueueBindSparse"))
3986 {
3987 return (void*)entry_vkQueueBindSparse;
3988 }
3989 if (!strcmp(name, "vkCreateFence"))
3990 {
3991 return (void*)entry_vkCreateFence;
3992 }
3993 if (!strcmp(name, "vkDestroyFence"))
3994 {
3995 return (void*)entry_vkDestroyFence;
3996 }
3997 if (!strcmp(name, "vkResetFences"))
3998 {
3999 return (void*)entry_vkResetFences;
4000 }
4001 if (!strcmp(name, "vkGetFenceStatus"))
4002 {
4003 return (void*)entry_vkGetFenceStatus;
4004 }
4005 if (!strcmp(name, "vkWaitForFences"))
4006 {
4007 return (void*)entry_vkWaitForFences;
4008 }
4009 if (!strcmp(name, "vkCreateSemaphore"))
4010 {
4011 return (void*)entry_vkCreateSemaphore;
4012 }
4013 if (!strcmp(name, "vkDestroySemaphore"))
4014 {
4015 return (void*)entry_vkDestroySemaphore;
4016 }
4017 if (!strcmp(name, "vkCreateEvent"))
4018 {
4019 return (void*)entry_vkCreateEvent;
4020 }
4021 if (!strcmp(name, "vkDestroyEvent"))
4022 {
4023 return (void*)entry_vkDestroyEvent;
4024 }
4025 if (!strcmp(name, "vkGetEventStatus"))
4026 {
4027 return (void*)entry_vkGetEventStatus;
4028 }
4029 if (!strcmp(name, "vkSetEvent"))
4030 {
4031 return (void*)entry_vkSetEvent;
4032 }
4033 if (!strcmp(name, "vkResetEvent"))
4034 {
4035 return (void*)entry_vkResetEvent;
4036 }
4037 if (!strcmp(name, "vkCreateQueryPool"))
4038 {
4039 return (void*)entry_vkCreateQueryPool;
4040 }
4041 if (!strcmp(name, "vkDestroyQueryPool"))
4042 {
4043 return (void*)entry_vkDestroyQueryPool;
4044 }
4045 if (!strcmp(name, "vkGetQueryPoolResults"))
4046 {
4047 return (void*)entry_vkGetQueryPoolResults;
4048 }
4049 if (!strcmp(name, "vkCreateBuffer"))
4050 {
4051 return (void*)entry_vkCreateBuffer;
4052 }
4053 if (!strcmp(name, "vkDestroyBuffer"))
4054 {
4055 return (void*)entry_vkDestroyBuffer;
4056 }
4057 if (!strcmp(name, "vkCreateBufferView"))
4058 {
4059 return (void*)entry_vkCreateBufferView;
4060 }
4061 if (!strcmp(name, "vkDestroyBufferView"))
4062 {
4063 return (void*)entry_vkDestroyBufferView;
4064 }
4065 if (!strcmp(name, "vkCreateImage"))
4066 {
4067 return (void*)entry_vkCreateImage;
4068 }
4069 if (!strcmp(name, "vkDestroyImage"))
4070 {
4071 return (void*)entry_vkDestroyImage;
4072 }
4073 if (!strcmp(name, "vkGetImageSubresourceLayout"))
4074 {
4075 return (void*)entry_vkGetImageSubresourceLayout;
4076 }
4077 if (!strcmp(name, "vkCreateImageView"))
4078 {
4079 return (void*)entry_vkCreateImageView;
4080 }
4081 if (!strcmp(name, "vkDestroyImageView"))
4082 {
4083 return (void*)entry_vkDestroyImageView;
4084 }
4085 if (!strcmp(name, "vkCreateShaderModule"))
4086 {
4087 return (void*)entry_vkCreateShaderModule;
4088 }
4089 if (!strcmp(name, "vkDestroyShaderModule"))
4090 {
4091 return (void*)entry_vkDestroyShaderModule;
4092 }
4093 if (!strcmp(name, "vkCreatePipelineCache"))
4094 {
4095 return (void*)entry_vkCreatePipelineCache;
4096 }
4097 if (!strcmp(name, "vkDestroyPipelineCache"))
4098 {
4099 return (void*)entry_vkDestroyPipelineCache;
4100 }
4101 if (!strcmp(name, "vkGetPipelineCacheData"))
4102 {
4103 return (void*)entry_vkGetPipelineCacheData;
4104 }
4105 if (!strcmp(name, "vkMergePipelineCaches"))
4106 {
4107 return (void*)entry_vkMergePipelineCaches;
4108 }
4109 if (!strcmp(name, "vkCreateGraphicsPipelines"))
4110 {
4111 return (void*)entry_vkCreateGraphicsPipelines;
4112 }
4113 if (!strcmp(name, "vkCreateComputePipelines"))
4114 {
4115 return (void*)entry_vkCreateComputePipelines;
4116 }
4117 if (!strcmp(name, "vkDestroyPipeline"))
4118 {
4119 return (void*)entry_vkDestroyPipeline;
4120 }
4121 if (!strcmp(name, "vkCreatePipelineLayout"))
4122 {
4123 return (void*)entry_vkCreatePipelineLayout;
4124 }
4125 if (!strcmp(name, "vkDestroyPipelineLayout"))
4126 {
4127 return (void*)entry_vkDestroyPipelineLayout;
4128 }
4129 if (!strcmp(name, "vkCreateSampler"))
4130 {
4131 return (void*)entry_vkCreateSampler;
4132 }
4133 if (!strcmp(name, "vkDestroySampler"))
4134 {
4135 return (void*)entry_vkDestroySampler;
4136 }
4137 if (!strcmp(name, "vkCreateDescriptorSetLayout"))
4138 {
4139 return (void*)entry_vkCreateDescriptorSetLayout;
4140 }
4141 if (!strcmp(name, "vkDestroyDescriptorSetLayout"))
4142 {
4143 return (void*)entry_vkDestroyDescriptorSetLayout;
4144 }
4145 if (!strcmp(name, "vkCreateDescriptorPool"))
4146 {
4147 return (void*)entry_vkCreateDescriptorPool;
4148 }
4149 if (!strcmp(name, "vkDestroyDescriptorPool"))
4150 {
4151 return (void*)entry_vkDestroyDescriptorPool;
4152 }
4153 if (!strcmp(name, "vkResetDescriptorPool"))
4154 {
4155 return (void*)entry_vkResetDescriptorPool;
4156 }
4157 if (!strcmp(name, "vkAllocateDescriptorSets"))
4158 {
4159 return (void*)entry_vkAllocateDescriptorSets;
4160 }
4161 if (!strcmp(name, "vkFreeDescriptorSets"))
4162 {
4163 return (void*)entry_vkFreeDescriptorSets;
4164 }
4165 if (!strcmp(name, "vkUpdateDescriptorSets"))
4166 {
4167 return (void*)entry_vkUpdateDescriptorSets;
4168 }
4169 if (!strcmp(name, "vkCreateFramebuffer"))
4170 {
4171 return (void*)entry_vkCreateFramebuffer;
4172 }
4173 if (!strcmp(name, "vkDestroyFramebuffer"))
4174 {
4175 return (void*)entry_vkDestroyFramebuffer;
4176 }
4177 if (!strcmp(name, "vkCreateRenderPass"))
4178 {
4179 return (void*)entry_vkCreateRenderPass;
4180 }
4181 if (!strcmp(name, "vkDestroyRenderPass"))
4182 {
4183 return (void*)entry_vkDestroyRenderPass;
4184 }
4185 if (!strcmp(name, "vkGetRenderAreaGranularity"))
4186 {
4187 return (void*)entry_vkGetRenderAreaGranularity;
4188 }
4189 if (!strcmp(name, "vkCreateCommandPool"))
4190 {
4191 return (void*)entry_vkCreateCommandPool;
4192 }
4193 if (!strcmp(name, "vkDestroyCommandPool"))
4194 {
4195 return (void*)entry_vkDestroyCommandPool;
4196 }
4197 if (!strcmp(name, "vkResetCommandPool"))
4198 {
4199 return (void*)entry_vkResetCommandPool;
4200 }
4201 if (!strcmp(name, "vkAllocateCommandBuffers"))
4202 {
4203 return (void*)entry_vkAllocateCommandBuffers;
4204 }
4205 if (!strcmp(name, "vkFreeCommandBuffers"))
4206 {
4207 return (void*)entry_vkFreeCommandBuffers;
4208 }
4209 if (!strcmp(name, "vkBeginCommandBuffer"))
4210 {
4211 return (void*)entry_vkBeginCommandBuffer;
4212 }
4213 if (!strcmp(name, "vkEndCommandBuffer"))
4214 {
4215 return (void*)entry_vkEndCommandBuffer;
4216 }
4217 if (!strcmp(name, "vkResetCommandBuffer"))
4218 {
4219 return (void*)entry_vkResetCommandBuffer;
4220 }
4221 if (!strcmp(name, "vkCmdBindPipeline"))
4222 {
4223 return (void*)entry_vkCmdBindPipeline;
4224 }
4225 if (!strcmp(name, "vkCmdSetViewport"))
4226 {
4227 return (void*)entry_vkCmdSetViewport;
4228 }
4229 if (!strcmp(name, "vkCmdSetScissor"))
4230 {
4231 return (void*)entry_vkCmdSetScissor;
4232 }
4233 if (!strcmp(name, "vkCmdSetLineWidth"))
4234 {
4235 return (void*)entry_vkCmdSetLineWidth;
4236 }
4237 if (!strcmp(name, "vkCmdSetDepthBias"))
4238 {
4239 return (void*)entry_vkCmdSetDepthBias;
4240 }
4241 if (!strcmp(name, "vkCmdSetBlendConstants"))
4242 {
4243 return (void*)entry_vkCmdSetBlendConstants;
4244 }
4245 if (!strcmp(name, "vkCmdSetDepthBounds"))
4246 {
4247 return (void*)entry_vkCmdSetDepthBounds;
4248 }
4249 if (!strcmp(name, "vkCmdSetStencilCompareMask"))
4250 {
4251 return (void*)entry_vkCmdSetStencilCompareMask;
4252 }
4253 if (!strcmp(name, "vkCmdSetStencilWriteMask"))
4254 {
4255 return (void*)entry_vkCmdSetStencilWriteMask;
4256 }
4257 if (!strcmp(name, "vkCmdSetStencilReference"))
4258 {
4259 return (void*)entry_vkCmdSetStencilReference;
4260 }
4261 if (!strcmp(name, "vkCmdBindDescriptorSets"))
4262 {
4263 return (void*)entry_vkCmdBindDescriptorSets;
4264 }
4265 if (!strcmp(name, "vkCmdBindIndexBuffer"))
4266 {
4267 return (void*)entry_vkCmdBindIndexBuffer;
4268 }
4269 if (!strcmp(name, "vkCmdBindVertexBuffers"))
4270 {
4271 return (void*)entry_vkCmdBindVertexBuffers;
4272 }
4273 if (!strcmp(name, "vkCmdDraw"))
4274 {
4275 return (void*)entry_vkCmdDraw;
4276 }
4277 if (!strcmp(name, "vkCmdDrawIndexed"))
4278 {
4279 return (void*)entry_vkCmdDrawIndexed;
4280 }
4281 if (!strcmp(name, "vkCmdDrawIndirect"))
4282 {
4283 return (void*)entry_vkCmdDrawIndirect;
4284 }
4285 if (!strcmp(name, "vkCmdDrawIndexedIndirect"))
4286 {
4287 return (void*)entry_vkCmdDrawIndexedIndirect;
4288 }
4289 if (!strcmp(name, "vkCmdDispatch"))
4290 {
4291 return (void*)entry_vkCmdDispatch;
4292 }
4293 if (!strcmp(name, "vkCmdDispatchIndirect"))
4294 {
4295 return (void*)entry_vkCmdDispatchIndirect;
4296 }
4297 if (!strcmp(name, "vkCmdCopyBuffer"))
4298 {
4299 return (void*)entry_vkCmdCopyBuffer;
4300 }
4301 if (!strcmp(name, "vkCmdCopyImage"))
4302 {
4303 return (void*)entry_vkCmdCopyImage;
4304 }
4305 if (!strcmp(name, "vkCmdBlitImage"))
4306 {
4307 return (void*)entry_vkCmdBlitImage;
4308 }
4309 if (!strcmp(name, "vkCmdCopyBufferToImage"))
4310 {
4311 return (void*)entry_vkCmdCopyBufferToImage;
4312 }
4313 if (!strcmp(name, "vkCmdCopyImageToBuffer"))
4314 {
4315 return (void*)entry_vkCmdCopyImageToBuffer;
4316 }
4317 if (!strcmp(name, "vkCmdUpdateBuffer"))
4318 {
4319 return (void*)entry_vkCmdUpdateBuffer;
4320 }
4321 if (!strcmp(name, "vkCmdFillBuffer"))
4322 {
4323 return (void*)entry_vkCmdFillBuffer;
4324 }
4325 if (!strcmp(name, "vkCmdClearColorImage"))
4326 {
4327 return (void*)entry_vkCmdClearColorImage;
4328 }
4329 if (!strcmp(name, "vkCmdClearDepthStencilImage"))
4330 {
4331 return (void*)entry_vkCmdClearDepthStencilImage;
4332 }
4333 if (!strcmp(name, "vkCmdClearAttachments"))
4334 {
4335 return (void*)entry_vkCmdClearAttachments;
4336 }
4337 if (!strcmp(name, "vkCmdResolveImage"))
4338 {
4339 return (void*)entry_vkCmdResolveImage;
4340 }
4341 if (!strcmp(name, "vkCmdSetEvent"))
4342 {
4343 return (void*)entry_vkCmdSetEvent;
4344 }
4345 if (!strcmp(name, "vkCmdResetEvent"))
4346 {
4347 return (void*)entry_vkCmdResetEvent;
4348 }
4349 if (!strcmp(name, "vkCmdWaitEvents"))
4350 {
4351 return (void*)entry_vkCmdWaitEvents;
4352 }
4353 if (!strcmp(name, "vkCmdPipelineBarrier"))
4354 {
4355 return (void*)entry_vkCmdPipelineBarrier;
4356 }
4357 if (!strcmp(name, "vkCmdBeginQuery"))
4358 {
4359 return (void*)entry_vkCmdBeginQuery;
4360 }
4361 if (!strcmp(name, "vkCmdEndQuery"))
4362 {
4363 return (void*)entry_vkCmdEndQuery;
4364 }
4365 if (!strcmp(name, "vkCmdResetQueryPool"))
4366 {
4367 return (void*)entry_vkCmdResetQueryPool;
4368 }
4369 if (!strcmp(name, "vkCmdWriteTimestamp"))
4370 {
4371 return (void*)entry_vkCmdWriteTimestamp;
4372 }
4373 if (!strcmp(name, "vkCmdCopyQueryPoolResults"))
4374 {
4375 return (void*)entry_vkCmdCopyQueryPoolResults;
4376 }
4377 if (!strcmp(name, "vkCmdPushConstants"))
4378 {
4379 return (void*)entry_vkCmdPushConstants;
4380 }
4381 if (!strcmp(name, "vkCmdBeginRenderPass"))
4382 {
4383 return (void*)entry_vkCmdBeginRenderPass;
4384 }
4385 if (!strcmp(name, "vkCmdNextSubpass"))
4386 {
4387 return (void*)entry_vkCmdNextSubpass;
4388 }
4389 if (!strcmp(name, "vkCmdEndRenderPass"))
4390 {
4391 return (void*)entry_vkCmdEndRenderPass;
4392 }
4393 if (!strcmp(name, "vkCmdExecuteCommands"))
4394 {
4395 return (void*)entry_vkCmdExecuteCommands;
4396 }
4397#endif
4398#ifdef VK_VERSION_1_1
4399 if (!strcmp(name, "vkEnumerateInstanceVersion"))
4400 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004401 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004402 }
4403 if (!strcmp(name, "vkBindBufferMemory2"))
4404 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004405 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004406 }
4407 if (!strcmp(name, "vkBindImageMemory2"))
4408 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004409 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004410 }
4411 if (!strcmp(name, "vkGetDeviceGroupPeerMemoryFeatures"))
4412 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004413 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004414 }
4415 if (!strcmp(name, "vkCmdSetDeviceMask"))
4416 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004417 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004418 }
4419 if (!strcmp(name, "vkCmdDispatchBase"))
4420 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004421 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004422 }
4423 if (!strcmp(name, "vkEnumeratePhysicalDeviceGroups"))
4424 {
Lingfeng Yang113689e2018-11-11 16:48:50 -08004425 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004426 }
4427 if (!strcmp(name, "vkGetImageMemoryRequirements2"))
4428 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004429 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004430 }
4431 if (!strcmp(name, "vkGetBufferMemoryRequirements2"))
4432 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004433 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004434 }
4435 if (!strcmp(name, "vkGetImageSparseMemoryRequirements2"))
4436 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004437 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004438 }
4439 if (!strcmp(name, "vkGetPhysicalDeviceFeatures2"))
4440 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004441 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004442 }
4443 if (!strcmp(name, "vkGetPhysicalDeviceProperties2"))
4444 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004445 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004446 }
4447 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties2"))
4448 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004449 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004450 }
4451 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties2"))
4452 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004453 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004454 }
4455 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties2"))
4456 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004457 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004458 }
4459 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties2"))
4460 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004461 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004462 }
4463 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties2"))
4464 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004465 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004466 }
4467 if (!strcmp(name, "vkTrimCommandPool"))
4468 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004469 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004470 }
4471 if (!strcmp(name, "vkGetDeviceQueue2"))
4472 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004473 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004474 }
4475 if (!strcmp(name, "vkCreateSamplerYcbcrConversion"))
4476 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004477 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004478 }
4479 if (!strcmp(name, "vkDestroySamplerYcbcrConversion"))
4480 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004481 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004482 }
4483 if (!strcmp(name, "vkCreateDescriptorUpdateTemplate"))
4484 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004485 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004486 }
4487 if (!strcmp(name, "vkDestroyDescriptorUpdateTemplate"))
4488 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004489 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004490 }
4491 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplate"))
4492 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004493 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004494 }
4495 if (!strcmp(name, "vkGetPhysicalDeviceExternalBufferProperties"))
4496 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004497 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004498 }
4499 if (!strcmp(name, "vkGetPhysicalDeviceExternalFenceProperties"))
4500 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004501 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004502 }
4503 if (!strcmp(name, "vkGetPhysicalDeviceExternalSemaphoreProperties"))
4504 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004505 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004506 }
4507 if (!strcmp(name, "vkGetDescriptorSetLayoutSupport"))
4508 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004509 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004510 }
4511#endif
4512#ifdef VK_KHR_surface
4513 if (!strcmp(name, "vkDestroySurfaceKHR"))
4514 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004515 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004516 }
4517 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceSupportKHR"))
4518 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004519 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004520 }
4521 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR"))
4522 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004523 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004524 }
4525 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceFormatsKHR"))
4526 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004527 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004528 }
4529 if (!strcmp(name, "vkGetPhysicalDeviceSurfacePresentModesKHR"))
4530 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004531 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004532 }
4533#endif
4534#ifdef VK_KHR_swapchain
4535 if (!strcmp(name, "vkCreateSwapchainKHR"))
4536 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004537 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004538 }
4539 if (!strcmp(name, "vkDestroySwapchainKHR"))
4540 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004541 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004542 }
4543 if (!strcmp(name, "vkGetSwapchainImagesKHR"))
4544 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004545 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004546 }
4547 if (!strcmp(name, "vkAcquireNextImageKHR"))
4548 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004549 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004550 }
4551 if (!strcmp(name, "vkQueuePresentKHR"))
4552 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004553 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004554 }
4555 if (!strcmp(name, "vkGetDeviceGroupPresentCapabilitiesKHR"))
4556 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004557 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004558 }
4559 if (!strcmp(name, "vkGetDeviceGroupSurfacePresentModesKHR"))
4560 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004561 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004562 }
4563 if (!strcmp(name, "vkGetPhysicalDevicePresentRectanglesKHR"))
4564 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004565 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004566 }
4567 if (!strcmp(name, "vkAcquireNextImage2KHR"))
4568 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004569 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004570 }
4571#endif
4572#ifdef VK_KHR_display
4573 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPropertiesKHR"))
4574 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004575 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004576 }
4577 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR"))
4578 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004579 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004580 }
4581 if (!strcmp(name, "vkGetDisplayPlaneSupportedDisplaysKHR"))
4582 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004583 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004584 }
4585 if (!strcmp(name, "vkGetDisplayModePropertiesKHR"))
4586 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004587 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004588 }
4589 if (!strcmp(name, "vkCreateDisplayModeKHR"))
4590 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004591 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004592 }
4593 if (!strcmp(name, "vkGetDisplayPlaneCapabilitiesKHR"))
4594 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004595 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004596 }
4597 if (!strcmp(name, "vkCreateDisplayPlaneSurfaceKHR"))
4598 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004599 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004600 }
4601#endif
4602#ifdef VK_KHR_display_swapchain
4603 if (!strcmp(name, "vkCreateSharedSwapchainsKHR"))
4604 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004605 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004606 }
4607#endif
4608#ifdef VK_KHR_xlib_surface
4609 if (!strcmp(name, "vkCreateXlibSurfaceKHR"))
4610 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004611 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004612 }
4613 if (!strcmp(name, "vkGetPhysicalDeviceXlibPresentationSupportKHR"))
4614 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004615 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004616 }
4617#endif
4618#ifdef VK_KHR_xcb_surface
4619 if (!strcmp(name, "vkCreateXcbSurfaceKHR"))
4620 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004621 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004622 }
4623 if (!strcmp(name, "vkGetPhysicalDeviceXcbPresentationSupportKHR"))
4624 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004625 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004626 }
4627#endif
4628#ifdef VK_KHR_wayland_surface
4629 if (!strcmp(name, "vkCreateWaylandSurfaceKHR"))
4630 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004631 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004632 }
4633 if (!strcmp(name, "vkGetPhysicalDeviceWaylandPresentationSupportKHR"))
4634 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004635 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004636 }
4637#endif
4638#ifdef VK_KHR_mir_surface
4639 if (!strcmp(name, "vkCreateMirSurfaceKHR"))
4640 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004641 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004642 }
4643 if (!strcmp(name, "vkGetPhysicalDeviceMirPresentationSupportKHR"))
4644 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004645 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004646 }
4647#endif
4648#ifdef VK_KHR_android_surface
4649 if (!strcmp(name, "vkCreateAndroidSurfaceKHR"))
4650 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004651 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004652 }
4653#endif
4654#ifdef VK_KHR_win32_surface
4655 if (!strcmp(name, "vkCreateWin32SurfaceKHR"))
4656 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004657 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004658 }
4659 if (!strcmp(name, "vkGetPhysicalDeviceWin32PresentationSupportKHR"))
4660 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004661 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004662 }
4663#endif
4664#ifdef VK_KHR_get_physical_device_properties2
4665 if (!strcmp(name, "vkGetPhysicalDeviceFeatures2KHR"))
4666 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004667 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004668 }
4669 if (!strcmp(name, "vkGetPhysicalDeviceProperties2KHR"))
4670 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004671 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004672 }
4673 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties2KHR"))
4674 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004675 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004676 }
4677 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties2KHR"))
4678 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004679 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004680 }
4681 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties2KHR"))
4682 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004683 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004684 }
4685 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties2KHR"))
4686 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004687 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004688 }
4689 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR"))
4690 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004691 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004692 }
4693#endif
4694#ifdef VK_KHR_device_group
4695 if (!strcmp(name, "vkGetDeviceGroupPeerMemoryFeaturesKHR"))
4696 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004697 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004698 }
4699 if (!strcmp(name, "vkCmdSetDeviceMaskKHR"))
4700 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004701 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004702 }
4703 if (!strcmp(name, "vkCmdDispatchBaseKHR"))
4704 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004705 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004706 }
4707#endif
4708#ifdef VK_KHR_maintenance1
4709 if (!strcmp(name, "vkTrimCommandPoolKHR"))
4710 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004711 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004712 }
4713#endif
4714#ifdef VK_KHR_device_group_creation
4715 if (!strcmp(name, "vkEnumeratePhysicalDeviceGroupsKHR"))
4716 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004717 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004718 }
4719#endif
4720#ifdef VK_KHR_external_memory_capabilities
4721 if (!strcmp(name, "vkGetPhysicalDeviceExternalBufferPropertiesKHR"))
4722 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004723 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004724 }
4725#endif
4726#ifdef VK_KHR_external_memory_win32
4727 if (!strcmp(name, "vkGetMemoryWin32HandleKHR"))
4728 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004729 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004730 }
4731 if (!strcmp(name, "vkGetMemoryWin32HandlePropertiesKHR"))
4732 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004733 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004734 }
4735#endif
4736#ifdef VK_KHR_external_memory_fd
4737 if (!strcmp(name, "vkGetMemoryFdKHR"))
4738 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004739 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004740 }
4741 if (!strcmp(name, "vkGetMemoryFdPropertiesKHR"))
4742 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004743 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004744 }
4745#endif
4746#ifdef VK_KHR_external_semaphore_capabilities
4747 if (!strcmp(name, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR"))
4748 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004749 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004750 }
4751#endif
4752#ifdef VK_KHR_external_semaphore_win32
4753 if (!strcmp(name, "vkImportSemaphoreWin32HandleKHR"))
4754 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004755 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004756 }
4757 if (!strcmp(name, "vkGetSemaphoreWin32HandleKHR"))
4758 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004759 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004760 }
4761#endif
4762#ifdef VK_KHR_external_semaphore_fd
4763 if (!strcmp(name, "vkImportSemaphoreFdKHR"))
4764 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004765 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004766 }
4767 if (!strcmp(name, "vkGetSemaphoreFdKHR"))
4768 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004769 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004770 }
4771#endif
4772#ifdef VK_KHR_push_descriptor
4773 if (!strcmp(name, "vkCmdPushDescriptorSetKHR"))
4774 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004775 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004776 }
4777 if (!strcmp(name, "vkCmdPushDescriptorSetWithTemplateKHR"))
4778 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004779 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004780 }
4781#endif
4782#ifdef VK_KHR_descriptor_update_template
4783 if (!strcmp(name, "vkCreateDescriptorUpdateTemplateKHR"))
4784 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004785 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004786 }
4787 if (!strcmp(name, "vkDestroyDescriptorUpdateTemplateKHR"))
4788 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004789 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004790 }
4791 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplateKHR"))
4792 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004793 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004794 }
4795#endif
4796#ifdef VK_KHR_create_renderpass2
4797 if (!strcmp(name, "vkCreateRenderPass2KHR"))
4798 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004799 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004800 }
4801 if (!strcmp(name, "vkCmdBeginRenderPass2KHR"))
4802 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004803 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004804 }
4805 if (!strcmp(name, "vkCmdNextSubpass2KHR"))
4806 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004807 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004808 }
4809 if (!strcmp(name, "vkCmdEndRenderPass2KHR"))
4810 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004811 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004812 }
4813#endif
4814#ifdef VK_KHR_shared_presentable_image
4815 if (!strcmp(name, "vkGetSwapchainStatusKHR"))
4816 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004817 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004818 }
4819#endif
4820#ifdef VK_KHR_external_fence_capabilities
4821 if (!strcmp(name, "vkGetPhysicalDeviceExternalFencePropertiesKHR"))
4822 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004823 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004824 }
4825#endif
4826#ifdef VK_KHR_external_fence_win32
4827 if (!strcmp(name, "vkImportFenceWin32HandleKHR"))
4828 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004829 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004830 }
4831 if (!strcmp(name, "vkGetFenceWin32HandleKHR"))
4832 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004833 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004834 }
4835#endif
4836#ifdef VK_KHR_external_fence_fd
4837 if (!strcmp(name, "vkImportFenceFdKHR"))
4838 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004839 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004840 }
4841 if (!strcmp(name, "vkGetFenceFdKHR"))
4842 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004843 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004844 }
4845#endif
4846#ifdef VK_KHR_get_surface_capabilities2
4847 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2KHR"))
4848 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004849 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004850 }
4851 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceFormats2KHR"))
4852 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004853 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004854 }
4855#endif
4856#ifdef VK_KHR_get_display_properties2
4857 if (!strcmp(name, "vkGetPhysicalDeviceDisplayProperties2KHR"))
4858 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004859 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004860 }
4861 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR"))
4862 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004863 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004864 }
4865 if (!strcmp(name, "vkGetDisplayModeProperties2KHR"))
4866 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004867 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004868 }
4869 if (!strcmp(name, "vkGetDisplayPlaneCapabilities2KHR"))
4870 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004871 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004872 }
4873#endif
4874#ifdef VK_KHR_get_memory_requirements2
4875 if (!strcmp(name, "vkGetImageMemoryRequirements2KHR"))
4876 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004877 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004878 }
4879 if (!strcmp(name, "vkGetBufferMemoryRequirements2KHR"))
4880 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004881 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004882 }
4883 if (!strcmp(name, "vkGetImageSparseMemoryRequirements2KHR"))
4884 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004885 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004886 }
4887#endif
4888#ifdef VK_KHR_sampler_ycbcr_conversion
4889 if (!strcmp(name, "vkCreateSamplerYcbcrConversionKHR"))
4890 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004891 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004892 }
4893 if (!strcmp(name, "vkDestroySamplerYcbcrConversionKHR"))
4894 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004895 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004896 }
4897#endif
4898#ifdef VK_KHR_bind_memory2
4899 if (!strcmp(name, "vkBindBufferMemory2KHR"))
4900 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004901 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004902 }
4903 if (!strcmp(name, "vkBindImageMemory2KHR"))
4904 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004905 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004906 }
4907#endif
4908#ifdef VK_KHR_maintenance3
4909 if (!strcmp(name, "vkGetDescriptorSetLayoutSupportKHR"))
4910 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004911 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004912 }
4913#endif
4914#ifdef VK_KHR_draw_indirect_count
4915 if (!strcmp(name, "vkCmdDrawIndirectCountKHR"))
4916 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004917 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004918 }
4919 if (!strcmp(name, "vkCmdDrawIndexedIndirectCountKHR"))
4920 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004921 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004922 }
4923#endif
Lingfeng Yang808a6312018-11-13 21:06:15 -08004924#ifdef VK_ANDROID_native_buffer
4925 if (!strcmp(name, "vkGetSwapchainGrallocUsageANDROID"))
4926 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004927 return nullptr;
Lingfeng Yang808a6312018-11-13 21:06:15 -08004928 }
4929 if (!strcmp(name, "vkAcquireImageANDROID"))
4930 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004931 return nullptr;
Lingfeng Yang808a6312018-11-13 21:06:15 -08004932 }
4933 if (!strcmp(name, "vkQueueSignalReleaseImageANDROID"))
4934 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004935 return nullptr;
Lingfeng Yang808a6312018-11-13 21:06:15 -08004936 }
4937#endif
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004938#ifdef VK_EXT_debug_report
4939 if (!strcmp(name, "vkCreateDebugReportCallbackEXT"))
4940 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004941 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004942 }
4943 if (!strcmp(name, "vkDestroyDebugReportCallbackEXT"))
4944 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004945 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004946 }
4947 if (!strcmp(name, "vkDebugReportMessageEXT"))
4948 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004949 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004950 }
4951#endif
4952#ifdef VK_EXT_debug_marker
4953 if (!strcmp(name, "vkDebugMarkerSetObjectTagEXT"))
4954 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004955 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004956 }
4957 if (!strcmp(name, "vkDebugMarkerSetObjectNameEXT"))
4958 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004959 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004960 }
4961 if (!strcmp(name, "vkCmdDebugMarkerBeginEXT"))
4962 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004963 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004964 }
4965 if (!strcmp(name, "vkCmdDebugMarkerEndEXT"))
4966 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004967 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004968 }
4969 if (!strcmp(name, "vkCmdDebugMarkerInsertEXT"))
4970 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004971 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004972 }
4973#endif
4974#ifdef VK_AMD_draw_indirect_count
4975 if (!strcmp(name, "vkCmdDrawIndirectCountAMD"))
4976 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004977 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004978 }
4979 if (!strcmp(name, "vkCmdDrawIndexedIndirectCountAMD"))
4980 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004981 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004982 }
4983#endif
4984#ifdef VK_AMD_shader_info
4985 if (!strcmp(name, "vkGetShaderInfoAMD"))
4986 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004987 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004988 }
4989#endif
4990#ifdef VK_NV_external_memory_capabilities
4991 if (!strcmp(name, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV"))
4992 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004993 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08004994 }
4995#endif
4996#ifdef VK_NV_external_memory_win32
4997 if (!strcmp(name, "vkGetMemoryWin32HandleNV"))
4998 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08004999 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005000 }
5001#endif
5002#ifdef VK_NN_vi_surface
5003 if (!strcmp(name, "vkCreateViSurfaceNN"))
5004 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005005 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005006 }
5007#endif
5008#ifdef VK_EXT_conditional_rendering
5009 if (!strcmp(name, "vkCmdBeginConditionalRenderingEXT"))
5010 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005011 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005012 }
5013 if (!strcmp(name, "vkCmdEndConditionalRenderingEXT"))
5014 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005015 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005016 }
5017#endif
5018#ifdef VK_NVX_device_generated_commands
5019 if (!strcmp(name, "vkCmdProcessCommandsNVX"))
5020 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005021 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005022 }
5023 if (!strcmp(name, "vkCmdReserveSpaceForCommandsNVX"))
5024 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005025 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005026 }
5027 if (!strcmp(name, "vkCreateIndirectCommandsLayoutNVX"))
5028 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005029 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005030 }
5031 if (!strcmp(name, "vkDestroyIndirectCommandsLayoutNVX"))
5032 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005033 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005034 }
5035 if (!strcmp(name, "vkCreateObjectTableNVX"))
5036 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005037 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005038 }
5039 if (!strcmp(name, "vkDestroyObjectTableNVX"))
5040 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005041 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005042 }
5043 if (!strcmp(name, "vkRegisterObjectsNVX"))
5044 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005045 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005046 }
5047 if (!strcmp(name, "vkUnregisterObjectsNVX"))
5048 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005049 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005050 }
5051 if (!strcmp(name, "vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX"))
5052 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005053 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005054 }
5055#endif
5056#ifdef VK_NV_clip_space_w_scaling
5057 if (!strcmp(name, "vkCmdSetViewportWScalingNV"))
5058 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005059 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005060 }
5061#endif
5062#ifdef VK_EXT_direct_mode_display
5063 if (!strcmp(name, "vkReleaseDisplayEXT"))
5064 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005065 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005066 }
5067#endif
5068#ifdef VK_EXT_acquire_xlib_display
5069 if (!strcmp(name, "vkAcquireXlibDisplayEXT"))
5070 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005071 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005072 }
5073 if (!strcmp(name, "vkGetRandROutputDisplayEXT"))
5074 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005075 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005076 }
5077#endif
5078#ifdef VK_EXT_display_surface_counter
5079 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2EXT"))
5080 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005081 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005082 }
5083#endif
5084#ifdef VK_EXT_display_control
5085 if (!strcmp(name, "vkDisplayPowerControlEXT"))
5086 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005087 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005088 }
5089 if (!strcmp(name, "vkRegisterDeviceEventEXT"))
5090 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005091 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005092 }
5093 if (!strcmp(name, "vkRegisterDisplayEventEXT"))
5094 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005095 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005096 }
5097 if (!strcmp(name, "vkGetSwapchainCounterEXT"))
5098 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005099 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005100 }
5101#endif
5102#ifdef VK_GOOGLE_display_timing
5103 if (!strcmp(name, "vkGetRefreshCycleDurationGOOGLE"))
5104 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005105 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005106 }
5107 if (!strcmp(name, "vkGetPastPresentationTimingGOOGLE"))
5108 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005109 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005110 }
5111#endif
5112#ifdef VK_EXT_discard_rectangles
5113 if (!strcmp(name, "vkCmdSetDiscardRectangleEXT"))
5114 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005115 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005116 }
5117#endif
5118#ifdef VK_EXT_hdr_metadata
5119 if (!strcmp(name, "vkSetHdrMetadataEXT"))
5120 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005121 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005122 }
5123#endif
5124#ifdef VK_MVK_ios_surface
5125 if (!strcmp(name, "vkCreateIOSSurfaceMVK"))
5126 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005127 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005128 }
5129#endif
5130#ifdef VK_MVK_macos_surface
5131 if (!strcmp(name, "vkCreateMacOSSurfaceMVK"))
5132 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005133 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005134 }
5135#endif
5136#ifdef VK_EXT_debug_utils
5137 if (!strcmp(name, "vkSetDebugUtilsObjectNameEXT"))
5138 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005139 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005140 }
5141 if (!strcmp(name, "vkSetDebugUtilsObjectTagEXT"))
5142 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005143 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005144 }
5145 if (!strcmp(name, "vkQueueBeginDebugUtilsLabelEXT"))
5146 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005147 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005148 }
5149 if (!strcmp(name, "vkQueueEndDebugUtilsLabelEXT"))
5150 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005151 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005152 }
5153 if (!strcmp(name, "vkQueueInsertDebugUtilsLabelEXT"))
5154 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005155 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005156 }
5157 if (!strcmp(name, "vkCmdBeginDebugUtilsLabelEXT"))
5158 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005159 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005160 }
5161 if (!strcmp(name, "vkCmdEndDebugUtilsLabelEXT"))
5162 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005163 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005164 }
5165 if (!strcmp(name, "vkCmdInsertDebugUtilsLabelEXT"))
5166 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005167 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005168 }
5169 if (!strcmp(name, "vkCreateDebugUtilsMessengerEXT"))
5170 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005171 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005172 }
5173 if (!strcmp(name, "vkDestroyDebugUtilsMessengerEXT"))
5174 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005175 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005176 }
5177 if (!strcmp(name, "vkSubmitDebugUtilsMessageEXT"))
5178 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005179 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005180 }
5181#endif
5182#ifdef VK_ANDROID_external_memory_android_hardware_buffer
5183 if (!strcmp(name, "vkGetAndroidHardwareBufferPropertiesANDROID"))
5184 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005185 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005186 }
5187 if (!strcmp(name, "vkGetMemoryAndroidHardwareBufferANDROID"))
5188 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005189 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005190 }
5191#endif
5192#ifdef VK_EXT_sample_locations
5193 if (!strcmp(name, "vkCmdSetSampleLocationsEXT"))
5194 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005195 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005196 }
5197 if (!strcmp(name, "vkGetPhysicalDeviceMultisamplePropertiesEXT"))
5198 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005199 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005200 }
5201#endif
5202#ifdef VK_EXT_validation_cache
5203 if (!strcmp(name, "vkCreateValidationCacheEXT"))
5204 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005205 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005206 }
5207 if (!strcmp(name, "vkDestroyValidationCacheEXT"))
5208 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005209 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005210 }
5211 if (!strcmp(name, "vkMergeValidationCachesEXT"))
5212 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005213 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005214 }
5215 if (!strcmp(name, "vkGetValidationCacheDataEXT"))
5216 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005217 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005218 }
5219#endif
5220#ifdef VK_EXT_external_memory_host
5221 if (!strcmp(name, "vkGetMemoryHostPointerPropertiesEXT"))
5222 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005223 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005224 }
5225#endif
5226#ifdef VK_AMD_buffer_marker
5227 if (!strcmp(name, "vkCmdWriteBufferMarkerAMD"))
5228 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005229 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005230 }
5231#endif
5232#ifdef VK_NV_device_diagnostic_checkpoints
5233 if (!strcmp(name, "vkCmdSetCheckpointNV"))
5234 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005235 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005236 }
5237 if (!strcmp(name, "vkGetQueueCheckpointDataNV"))
5238 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005239 return nullptr;
Lingfeng Yang0b81df22018-11-05 21:40:30 -08005240 }
5241#endif
Lingfeng Yang5c63afd2018-12-22 01:21:14 -08005242#ifdef VK_GOOGLE_address_space
5243 if (!strcmp(name, "vkMapMemoryIntoAddressSpaceGOOGLE"))
5244 {
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005245 return nullptr;
5246 }
5247#endif
Lingfeng Yangae7e1b32019-02-19 14:07:39 -08005248#ifdef VK_GOOGLE_color_buffer
5249 if (!strcmp(name, "vkRegisterImageColorBufferGOOGLE"))
5250 {
5251 return nullptr;
5252 }
5253 if (!strcmp(name, "vkRegisterBufferColorBufferGOOGLE"))
5254 {
5255 return nullptr;
5256 }
5257#endif
Lingfeng Yang05d5ea32019-03-23 00:12:39 -07005258#ifdef VK_GOOGLE_sized_descriptor_update_template
5259 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplateSizedGOOGLE"))
5260 {
5261 return nullptr;
5262 }
5263#endif
Lingfeng Yangc53e7472019-03-27 08:50:55 -07005264#ifdef VK_GOOGLE_async_command_buffers
5265 if (!strcmp(name, "vkBeginCommandBufferAsyncGOOGLE"))
5266 {
5267 return nullptr;
5268 }
5269 if (!strcmp(name, "vkEndCommandBufferAsyncGOOGLE"))
5270 {
5271 return nullptr;
5272 }
5273 if (!strcmp(name, "vkResetCommandBufferAsyncGOOGLE"))
5274 {
5275 return nullptr;
5276 }
Lingfeng Yang39a276e2019-06-17 13:27:22 -07005277 if (!strcmp(name, "vkCommandBufferHostSyncGOOGLE"))
5278 {
5279 return nullptr;
5280 }
Lingfeng Yangc53e7472019-03-27 08:50:55 -07005281#endif
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08005282 return nullptr;
5283}
5284void* goldfish_vulkan_get_instance_proc_address(VkInstance instance, const char* name){
5285 auto resources = ResourceTracker::get();
5286 bool has1_1OrHigher = resources->getApiVersionFromInstance(instance) >= VK_API_VERSION_1_1;
5287#ifdef VK_VERSION_1_0
5288 if (!strcmp(name, "vkCreateInstance"))
5289 {
5290 return (void*)entry_vkCreateInstance;
5291 }
5292 if (!strcmp(name, "vkDestroyInstance"))
5293 {
5294 return (void*)entry_vkDestroyInstance;
5295 }
5296 if (!strcmp(name, "vkEnumeratePhysicalDevices"))
5297 {
5298 return (void*)entry_vkEnumeratePhysicalDevices;
5299 }
5300 if (!strcmp(name, "vkGetPhysicalDeviceFeatures"))
5301 {
5302 return (void*)entry_vkGetPhysicalDeviceFeatures;
5303 }
5304 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties"))
5305 {
5306 return (void*)entry_vkGetPhysicalDeviceFormatProperties;
5307 }
5308 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties"))
5309 {
5310 return (void*)entry_vkGetPhysicalDeviceImageFormatProperties;
5311 }
5312 if (!strcmp(name, "vkGetPhysicalDeviceProperties"))
5313 {
5314 return (void*)entry_vkGetPhysicalDeviceProperties;
5315 }
5316 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties"))
5317 {
5318 return (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties;
5319 }
5320 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties"))
5321 {
5322 return (void*)entry_vkGetPhysicalDeviceMemoryProperties;
5323 }
5324 if (!strcmp(name, "vkGetInstanceProcAddr"))
5325 {
5326 return (void*)entry_vkGetInstanceProcAddr;
5327 }
5328 if (!strcmp(name, "vkGetDeviceProcAddr"))
5329 {
5330 return (void*)entry_vkGetDeviceProcAddr;
5331 }
5332 if (!strcmp(name, "vkCreateDevice"))
5333 {
5334 return (void*)entry_vkCreateDevice;
5335 }
5336 if (!strcmp(name, "vkDestroyDevice"))
5337 {
5338 return (void*)entry_vkDestroyDevice;
5339 }
5340 if (!strcmp(name, "vkEnumerateInstanceExtensionProperties"))
5341 {
5342 return (void*)entry_vkEnumerateInstanceExtensionProperties;
5343 }
5344 if (!strcmp(name, "vkEnumerateDeviceExtensionProperties"))
5345 {
5346 return (void*)entry_vkEnumerateDeviceExtensionProperties;
5347 }
5348 if (!strcmp(name, "vkEnumerateInstanceLayerProperties"))
5349 {
5350 return (void*)entry_vkEnumerateInstanceLayerProperties;
5351 }
5352 if (!strcmp(name, "vkEnumerateDeviceLayerProperties"))
5353 {
5354 return (void*)entry_vkEnumerateDeviceLayerProperties;
5355 }
5356 if (!strcmp(name, "vkGetDeviceQueue"))
5357 {
5358 return (void*)entry_vkGetDeviceQueue;
5359 }
5360 if (!strcmp(name, "vkQueueSubmit"))
5361 {
5362 return (void*)entry_vkQueueSubmit;
5363 }
5364 if (!strcmp(name, "vkQueueWaitIdle"))
5365 {
5366 return (void*)entry_vkQueueWaitIdle;
5367 }
5368 if (!strcmp(name, "vkDeviceWaitIdle"))
5369 {
5370 return (void*)entry_vkDeviceWaitIdle;
5371 }
5372 if (!strcmp(name, "vkAllocateMemory"))
5373 {
5374 return (void*)entry_vkAllocateMemory;
5375 }
5376 if (!strcmp(name, "vkFreeMemory"))
5377 {
5378 return (void*)entry_vkFreeMemory;
5379 }
5380 if (!strcmp(name, "vkMapMemory"))
5381 {
5382 return (void*)entry_vkMapMemory;
5383 }
5384 if (!strcmp(name, "vkUnmapMemory"))
5385 {
5386 return (void*)entry_vkUnmapMemory;
5387 }
5388 if (!strcmp(name, "vkFlushMappedMemoryRanges"))
5389 {
5390 return (void*)entry_vkFlushMappedMemoryRanges;
5391 }
5392 if (!strcmp(name, "vkInvalidateMappedMemoryRanges"))
5393 {
5394 return (void*)entry_vkInvalidateMappedMemoryRanges;
5395 }
5396 if (!strcmp(name, "vkGetDeviceMemoryCommitment"))
5397 {
5398 return (void*)entry_vkGetDeviceMemoryCommitment;
5399 }
5400 if (!strcmp(name, "vkBindBufferMemory"))
5401 {
5402 return (void*)entry_vkBindBufferMemory;
5403 }
5404 if (!strcmp(name, "vkBindImageMemory"))
5405 {
5406 return (void*)entry_vkBindImageMemory;
5407 }
5408 if (!strcmp(name, "vkGetBufferMemoryRequirements"))
5409 {
5410 return (void*)entry_vkGetBufferMemoryRequirements;
5411 }
5412 if (!strcmp(name, "vkGetImageMemoryRequirements"))
5413 {
5414 return (void*)entry_vkGetImageMemoryRequirements;
5415 }
5416 if (!strcmp(name, "vkGetImageSparseMemoryRequirements"))
5417 {
5418 return (void*)entry_vkGetImageSparseMemoryRequirements;
5419 }
5420 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties"))
5421 {
5422 return (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties;
5423 }
5424 if (!strcmp(name, "vkQueueBindSparse"))
5425 {
5426 return (void*)entry_vkQueueBindSparse;
5427 }
5428 if (!strcmp(name, "vkCreateFence"))
5429 {
5430 return (void*)entry_vkCreateFence;
5431 }
5432 if (!strcmp(name, "vkDestroyFence"))
5433 {
5434 return (void*)entry_vkDestroyFence;
5435 }
5436 if (!strcmp(name, "vkResetFences"))
5437 {
5438 return (void*)entry_vkResetFences;
5439 }
5440 if (!strcmp(name, "vkGetFenceStatus"))
5441 {
5442 return (void*)entry_vkGetFenceStatus;
5443 }
5444 if (!strcmp(name, "vkWaitForFences"))
5445 {
5446 return (void*)entry_vkWaitForFences;
5447 }
5448 if (!strcmp(name, "vkCreateSemaphore"))
5449 {
5450 return (void*)entry_vkCreateSemaphore;
5451 }
5452 if (!strcmp(name, "vkDestroySemaphore"))
5453 {
5454 return (void*)entry_vkDestroySemaphore;
5455 }
5456 if (!strcmp(name, "vkCreateEvent"))
5457 {
5458 return (void*)entry_vkCreateEvent;
5459 }
5460 if (!strcmp(name, "vkDestroyEvent"))
5461 {
5462 return (void*)entry_vkDestroyEvent;
5463 }
5464 if (!strcmp(name, "vkGetEventStatus"))
5465 {
5466 return (void*)entry_vkGetEventStatus;
5467 }
5468 if (!strcmp(name, "vkSetEvent"))
5469 {
5470 return (void*)entry_vkSetEvent;
5471 }
5472 if (!strcmp(name, "vkResetEvent"))
5473 {
5474 return (void*)entry_vkResetEvent;
5475 }
5476 if (!strcmp(name, "vkCreateQueryPool"))
5477 {
5478 return (void*)entry_vkCreateQueryPool;
5479 }
5480 if (!strcmp(name, "vkDestroyQueryPool"))
5481 {
5482 return (void*)entry_vkDestroyQueryPool;
5483 }
5484 if (!strcmp(name, "vkGetQueryPoolResults"))
5485 {
5486 return (void*)entry_vkGetQueryPoolResults;
5487 }
5488 if (!strcmp(name, "vkCreateBuffer"))
5489 {
5490 return (void*)entry_vkCreateBuffer;
5491 }
5492 if (!strcmp(name, "vkDestroyBuffer"))
5493 {
5494 return (void*)entry_vkDestroyBuffer;
5495 }
5496 if (!strcmp(name, "vkCreateBufferView"))
5497 {
5498 return (void*)entry_vkCreateBufferView;
5499 }
5500 if (!strcmp(name, "vkDestroyBufferView"))
5501 {
5502 return (void*)entry_vkDestroyBufferView;
5503 }
5504 if (!strcmp(name, "vkCreateImage"))
5505 {
5506 return (void*)entry_vkCreateImage;
5507 }
5508 if (!strcmp(name, "vkDestroyImage"))
5509 {
5510 return (void*)entry_vkDestroyImage;
5511 }
5512 if (!strcmp(name, "vkGetImageSubresourceLayout"))
5513 {
5514 return (void*)entry_vkGetImageSubresourceLayout;
5515 }
5516 if (!strcmp(name, "vkCreateImageView"))
5517 {
5518 return (void*)entry_vkCreateImageView;
5519 }
5520 if (!strcmp(name, "vkDestroyImageView"))
5521 {
5522 return (void*)entry_vkDestroyImageView;
5523 }
5524 if (!strcmp(name, "vkCreateShaderModule"))
5525 {
5526 return (void*)entry_vkCreateShaderModule;
5527 }
5528 if (!strcmp(name, "vkDestroyShaderModule"))
5529 {
5530 return (void*)entry_vkDestroyShaderModule;
5531 }
5532 if (!strcmp(name, "vkCreatePipelineCache"))
5533 {
5534 return (void*)entry_vkCreatePipelineCache;
5535 }
5536 if (!strcmp(name, "vkDestroyPipelineCache"))
5537 {
5538 return (void*)entry_vkDestroyPipelineCache;
5539 }
5540 if (!strcmp(name, "vkGetPipelineCacheData"))
5541 {
5542 return (void*)entry_vkGetPipelineCacheData;
5543 }
5544 if (!strcmp(name, "vkMergePipelineCaches"))
5545 {
5546 return (void*)entry_vkMergePipelineCaches;
5547 }
5548 if (!strcmp(name, "vkCreateGraphicsPipelines"))
5549 {
5550 return (void*)entry_vkCreateGraphicsPipelines;
5551 }
5552 if (!strcmp(name, "vkCreateComputePipelines"))
5553 {
5554 return (void*)entry_vkCreateComputePipelines;
5555 }
5556 if (!strcmp(name, "vkDestroyPipeline"))
5557 {
5558 return (void*)entry_vkDestroyPipeline;
5559 }
5560 if (!strcmp(name, "vkCreatePipelineLayout"))
5561 {
5562 return (void*)entry_vkCreatePipelineLayout;
5563 }
5564 if (!strcmp(name, "vkDestroyPipelineLayout"))
5565 {
5566 return (void*)entry_vkDestroyPipelineLayout;
5567 }
5568 if (!strcmp(name, "vkCreateSampler"))
5569 {
5570 return (void*)entry_vkCreateSampler;
5571 }
5572 if (!strcmp(name, "vkDestroySampler"))
5573 {
5574 return (void*)entry_vkDestroySampler;
5575 }
5576 if (!strcmp(name, "vkCreateDescriptorSetLayout"))
5577 {
5578 return (void*)entry_vkCreateDescriptorSetLayout;
5579 }
5580 if (!strcmp(name, "vkDestroyDescriptorSetLayout"))
5581 {
5582 return (void*)entry_vkDestroyDescriptorSetLayout;
5583 }
5584 if (!strcmp(name, "vkCreateDescriptorPool"))
5585 {
5586 return (void*)entry_vkCreateDescriptorPool;
5587 }
5588 if (!strcmp(name, "vkDestroyDescriptorPool"))
5589 {
5590 return (void*)entry_vkDestroyDescriptorPool;
5591 }
5592 if (!strcmp(name, "vkResetDescriptorPool"))
5593 {
5594 return (void*)entry_vkResetDescriptorPool;
5595 }
5596 if (!strcmp(name, "vkAllocateDescriptorSets"))
5597 {
5598 return (void*)entry_vkAllocateDescriptorSets;
5599 }
5600 if (!strcmp(name, "vkFreeDescriptorSets"))
5601 {
5602 return (void*)entry_vkFreeDescriptorSets;
5603 }
5604 if (!strcmp(name, "vkUpdateDescriptorSets"))
5605 {
5606 return (void*)entry_vkUpdateDescriptorSets;
5607 }
5608 if (!strcmp(name, "vkCreateFramebuffer"))
5609 {
5610 return (void*)entry_vkCreateFramebuffer;
5611 }
5612 if (!strcmp(name, "vkDestroyFramebuffer"))
5613 {
5614 return (void*)entry_vkDestroyFramebuffer;
5615 }
5616 if (!strcmp(name, "vkCreateRenderPass"))
5617 {
5618 return (void*)entry_vkCreateRenderPass;
5619 }
5620 if (!strcmp(name, "vkDestroyRenderPass"))
5621 {
5622 return (void*)entry_vkDestroyRenderPass;
5623 }
5624 if (!strcmp(name, "vkGetRenderAreaGranularity"))
5625 {
5626 return (void*)entry_vkGetRenderAreaGranularity;
5627 }
5628 if (!strcmp(name, "vkCreateCommandPool"))
5629 {
5630 return (void*)entry_vkCreateCommandPool;
5631 }
5632 if (!strcmp(name, "vkDestroyCommandPool"))
5633 {
5634 return (void*)entry_vkDestroyCommandPool;
5635 }
5636 if (!strcmp(name, "vkResetCommandPool"))
5637 {
5638 return (void*)entry_vkResetCommandPool;
5639 }
5640 if (!strcmp(name, "vkAllocateCommandBuffers"))
5641 {
5642 return (void*)entry_vkAllocateCommandBuffers;
5643 }
5644 if (!strcmp(name, "vkFreeCommandBuffers"))
5645 {
5646 return (void*)entry_vkFreeCommandBuffers;
5647 }
5648 if (!strcmp(name, "vkBeginCommandBuffer"))
5649 {
5650 return (void*)entry_vkBeginCommandBuffer;
5651 }
5652 if (!strcmp(name, "vkEndCommandBuffer"))
5653 {
5654 return (void*)entry_vkEndCommandBuffer;
5655 }
5656 if (!strcmp(name, "vkResetCommandBuffer"))
5657 {
5658 return (void*)entry_vkResetCommandBuffer;
5659 }
5660 if (!strcmp(name, "vkCmdBindPipeline"))
5661 {
5662 return (void*)entry_vkCmdBindPipeline;
5663 }
5664 if (!strcmp(name, "vkCmdSetViewport"))
5665 {
5666 return (void*)entry_vkCmdSetViewport;
5667 }
5668 if (!strcmp(name, "vkCmdSetScissor"))
5669 {
5670 return (void*)entry_vkCmdSetScissor;
5671 }
5672 if (!strcmp(name, "vkCmdSetLineWidth"))
5673 {
5674 return (void*)entry_vkCmdSetLineWidth;
5675 }
5676 if (!strcmp(name, "vkCmdSetDepthBias"))
5677 {
5678 return (void*)entry_vkCmdSetDepthBias;
5679 }
5680 if (!strcmp(name, "vkCmdSetBlendConstants"))
5681 {
5682 return (void*)entry_vkCmdSetBlendConstants;
5683 }
5684 if (!strcmp(name, "vkCmdSetDepthBounds"))
5685 {
5686 return (void*)entry_vkCmdSetDepthBounds;
5687 }
5688 if (!strcmp(name, "vkCmdSetStencilCompareMask"))
5689 {
5690 return (void*)entry_vkCmdSetStencilCompareMask;
5691 }
5692 if (!strcmp(name, "vkCmdSetStencilWriteMask"))
5693 {
5694 return (void*)entry_vkCmdSetStencilWriteMask;
5695 }
5696 if (!strcmp(name, "vkCmdSetStencilReference"))
5697 {
5698 return (void*)entry_vkCmdSetStencilReference;
5699 }
5700 if (!strcmp(name, "vkCmdBindDescriptorSets"))
5701 {
5702 return (void*)entry_vkCmdBindDescriptorSets;
5703 }
5704 if (!strcmp(name, "vkCmdBindIndexBuffer"))
5705 {
5706 return (void*)entry_vkCmdBindIndexBuffer;
5707 }
5708 if (!strcmp(name, "vkCmdBindVertexBuffers"))
5709 {
5710 return (void*)entry_vkCmdBindVertexBuffers;
5711 }
5712 if (!strcmp(name, "vkCmdDraw"))
5713 {
5714 return (void*)entry_vkCmdDraw;
5715 }
5716 if (!strcmp(name, "vkCmdDrawIndexed"))
5717 {
5718 return (void*)entry_vkCmdDrawIndexed;
5719 }
5720 if (!strcmp(name, "vkCmdDrawIndirect"))
5721 {
5722 return (void*)entry_vkCmdDrawIndirect;
5723 }
5724 if (!strcmp(name, "vkCmdDrawIndexedIndirect"))
5725 {
5726 return (void*)entry_vkCmdDrawIndexedIndirect;
5727 }
5728 if (!strcmp(name, "vkCmdDispatch"))
5729 {
5730 return (void*)entry_vkCmdDispatch;
5731 }
5732 if (!strcmp(name, "vkCmdDispatchIndirect"))
5733 {
5734 return (void*)entry_vkCmdDispatchIndirect;
5735 }
5736 if (!strcmp(name, "vkCmdCopyBuffer"))
5737 {
5738 return (void*)entry_vkCmdCopyBuffer;
5739 }
5740 if (!strcmp(name, "vkCmdCopyImage"))
5741 {
5742 return (void*)entry_vkCmdCopyImage;
5743 }
5744 if (!strcmp(name, "vkCmdBlitImage"))
5745 {
5746 return (void*)entry_vkCmdBlitImage;
5747 }
5748 if (!strcmp(name, "vkCmdCopyBufferToImage"))
5749 {
5750 return (void*)entry_vkCmdCopyBufferToImage;
5751 }
5752 if (!strcmp(name, "vkCmdCopyImageToBuffer"))
5753 {
5754 return (void*)entry_vkCmdCopyImageToBuffer;
5755 }
5756 if (!strcmp(name, "vkCmdUpdateBuffer"))
5757 {
5758 return (void*)entry_vkCmdUpdateBuffer;
5759 }
5760 if (!strcmp(name, "vkCmdFillBuffer"))
5761 {
5762 return (void*)entry_vkCmdFillBuffer;
5763 }
5764 if (!strcmp(name, "vkCmdClearColorImage"))
5765 {
5766 return (void*)entry_vkCmdClearColorImage;
5767 }
5768 if (!strcmp(name, "vkCmdClearDepthStencilImage"))
5769 {
5770 return (void*)entry_vkCmdClearDepthStencilImage;
5771 }
5772 if (!strcmp(name, "vkCmdClearAttachments"))
5773 {
5774 return (void*)entry_vkCmdClearAttachments;
5775 }
5776 if (!strcmp(name, "vkCmdResolveImage"))
5777 {
5778 return (void*)entry_vkCmdResolveImage;
5779 }
5780 if (!strcmp(name, "vkCmdSetEvent"))
5781 {
5782 return (void*)entry_vkCmdSetEvent;
5783 }
5784 if (!strcmp(name, "vkCmdResetEvent"))
5785 {
5786 return (void*)entry_vkCmdResetEvent;
5787 }
5788 if (!strcmp(name, "vkCmdWaitEvents"))
5789 {
5790 return (void*)entry_vkCmdWaitEvents;
5791 }
5792 if (!strcmp(name, "vkCmdPipelineBarrier"))
5793 {
5794 return (void*)entry_vkCmdPipelineBarrier;
5795 }
5796 if (!strcmp(name, "vkCmdBeginQuery"))
5797 {
5798 return (void*)entry_vkCmdBeginQuery;
5799 }
5800 if (!strcmp(name, "vkCmdEndQuery"))
5801 {
5802 return (void*)entry_vkCmdEndQuery;
5803 }
5804 if (!strcmp(name, "vkCmdResetQueryPool"))
5805 {
5806 return (void*)entry_vkCmdResetQueryPool;
5807 }
5808 if (!strcmp(name, "vkCmdWriteTimestamp"))
5809 {
5810 return (void*)entry_vkCmdWriteTimestamp;
5811 }
5812 if (!strcmp(name, "vkCmdCopyQueryPoolResults"))
5813 {
5814 return (void*)entry_vkCmdCopyQueryPoolResults;
5815 }
5816 if (!strcmp(name, "vkCmdPushConstants"))
5817 {
5818 return (void*)entry_vkCmdPushConstants;
5819 }
5820 if (!strcmp(name, "vkCmdBeginRenderPass"))
5821 {
5822 return (void*)entry_vkCmdBeginRenderPass;
5823 }
5824 if (!strcmp(name, "vkCmdNextSubpass"))
5825 {
5826 return (void*)entry_vkCmdNextSubpass;
5827 }
5828 if (!strcmp(name, "vkCmdEndRenderPass"))
5829 {
5830 return (void*)entry_vkCmdEndRenderPass;
5831 }
5832 if (!strcmp(name, "vkCmdExecuteCommands"))
5833 {
5834 return (void*)entry_vkCmdExecuteCommands;
5835 }
5836#endif
5837#ifdef VK_VERSION_1_1
5838 if (!strcmp(name, "vkEnumerateInstanceVersion"))
5839 {
5840 return has1_1OrHigher ? (void*)entry_vkEnumerateInstanceVersion : nullptr;
5841 }
5842 if (!strcmp(name, "vkBindBufferMemory2"))
5843 {
5844 return has1_1OrHigher ? (void*)entry_vkBindBufferMemory2 : nullptr;
5845 }
5846 if (!strcmp(name, "vkBindImageMemory2"))
5847 {
5848 return has1_1OrHigher ? (void*)entry_vkBindImageMemory2 : nullptr;
5849 }
5850 if (!strcmp(name, "vkGetDeviceGroupPeerMemoryFeatures"))
5851 {
5852 return has1_1OrHigher ? (void*)entry_vkGetDeviceGroupPeerMemoryFeatures : nullptr;
5853 }
5854 if (!strcmp(name, "vkCmdSetDeviceMask"))
5855 {
5856 return has1_1OrHigher ? (void*)entry_vkCmdSetDeviceMask : nullptr;
5857 }
5858 if (!strcmp(name, "vkCmdDispatchBase"))
5859 {
5860 return has1_1OrHigher ? (void*)entry_vkCmdDispatchBase : nullptr;
5861 }
5862 if (!strcmp(name, "vkEnumeratePhysicalDeviceGroups"))
5863 {
5864 return nullptr;
5865 }
5866 if (!strcmp(name, "vkGetImageMemoryRequirements2"))
5867 {
5868 return has1_1OrHigher ? (void*)entry_vkGetImageMemoryRequirements2 : nullptr;
5869 }
5870 if (!strcmp(name, "vkGetBufferMemoryRequirements2"))
5871 {
5872 return has1_1OrHigher ? (void*)entry_vkGetBufferMemoryRequirements2 : nullptr;
5873 }
5874 if (!strcmp(name, "vkGetImageSparseMemoryRequirements2"))
5875 {
5876 return has1_1OrHigher ? (void*)entry_vkGetImageSparseMemoryRequirements2 : nullptr;
5877 }
5878 if (!strcmp(name, "vkGetPhysicalDeviceFeatures2"))
5879 {
5880 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceFeatures2 : nullptr;
5881 }
5882 if (!strcmp(name, "vkGetPhysicalDeviceProperties2"))
5883 {
5884 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceProperties2 : nullptr;
5885 }
5886 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties2"))
5887 {
5888 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceFormatProperties2 : nullptr;
5889 }
5890 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties2"))
5891 {
5892 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceImageFormatProperties2 : nullptr;
5893 }
5894 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties2"))
5895 {
5896 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties2 : nullptr;
5897 }
5898 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties2"))
5899 {
5900 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceMemoryProperties2 : nullptr;
5901 }
5902 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties2"))
5903 {
5904 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties2 : nullptr;
5905 }
5906 if (!strcmp(name, "vkTrimCommandPool"))
5907 {
5908 return has1_1OrHigher ? (void*)entry_vkTrimCommandPool : nullptr;
5909 }
5910 if (!strcmp(name, "vkGetDeviceQueue2"))
5911 {
5912 return has1_1OrHigher ? (void*)entry_vkGetDeviceQueue2 : nullptr;
5913 }
5914 if (!strcmp(name, "vkCreateSamplerYcbcrConversion"))
5915 {
5916 return has1_1OrHigher ? (void*)entry_vkCreateSamplerYcbcrConversion : nullptr;
5917 }
5918 if (!strcmp(name, "vkDestroySamplerYcbcrConversion"))
5919 {
5920 return has1_1OrHigher ? (void*)entry_vkDestroySamplerYcbcrConversion : nullptr;
5921 }
5922 if (!strcmp(name, "vkCreateDescriptorUpdateTemplate"))
5923 {
5924 return has1_1OrHigher ? (void*)entry_vkCreateDescriptorUpdateTemplate : nullptr;
5925 }
5926 if (!strcmp(name, "vkDestroyDescriptorUpdateTemplate"))
5927 {
5928 return has1_1OrHigher ? (void*)entry_vkDestroyDescriptorUpdateTemplate : nullptr;
5929 }
5930 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplate"))
5931 {
5932 return has1_1OrHigher ? (void*)entry_vkUpdateDescriptorSetWithTemplate : nullptr;
5933 }
5934 if (!strcmp(name, "vkGetPhysicalDeviceExternalBufferProperties"))
5935 {
5936 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceExternalBufferProperties : nullptr;
5937 }
5938 if (!strcmp(name, "vkGetPhysicalDeviceExternalFenceProperties"))
5939 {
5940 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceExternalFenceProperties : nullptr;
5941 }
5942 if (!strcmp(name, "vkGetPhysicalDeviceExternalSemaphoreProperties"))
5943 {
5944 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceExternalSemaphoreProperties : nullptr;
5945 }
5946 if (!strcmp(name, "vkGetDescriptorSetLayoutSupport"))
5947 {
5948 return has1_1OrHigher ? (void*)entry_vkGetDescriptorSetLayoutSupport : nullptr;
5949 }
5950#endif
5951#ifdef VK_KHR_surface
5952 if (!strcmp(name, "vkDestroySurfaceKHR"))
5953 {
5954 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_surface");
5955 return hasExt ? (void*)entry_vkDestroySurfaceKHR : nullptr;
5956 }
5957 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceSupportKHR"))
5958 {
5959 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_surface");
5960 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceSupportKHR : nullptr;
5961 }
5962 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR"))
5963 {
5964 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_surface");
5965 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceCapabilitiesKHR : nullptr;
5966 }
5967 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceFormatsKHR"))
5968 {
5969 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_surface");
5970 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceFormatsKHR : nullptr;
5971 }
5972 if (!strcmp(name, "vkGetPhysicalDeviceSurfacePresentModesKHR"))
5973 {
5974 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_surface");
5975 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfacePresentModesKHR : nullptr;
5976 }
5977#endif
5978#ifdef VK_KHR_swapchain
5979 if (!strcmp(name, "vkCreateSwapchainKHR"))
5980 {
5981 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5982 return hasExt ? (void*)entry_vkCreateSwapchainKHR : nullptr;
5983 }
5984 if (!strcmp(name, "vkDestroySwapchainKHR"))
5985 {
5986 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5987 return hasExt ? (void*)entry_vkDestroySwapchainKHR : nullptr;
5988 }
5989 if (!strcmp(name, "vkGetSwapchainImagesKHR"))
5990 {
5991 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5992 return hasExt ? (void*)entry_vkGetSwapchainImagesKHR : nullptr;
5993 }
5994 if (!strcmp(name, "vkAcquireNextImageKHR"))
5995 {
5996 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
5997 return hasExt ? (void*)entry_vkAcquireNextImageKHR : nullptr;
5998 }
5999 if (!strcmp(name, "vkQueuePresentKHR"))
6000 {
6001 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
6002 return hasExt ? (void*)entry_vkQueuePresentKHR : nullptr;
6003 }
6004 if (!strcmp(name, "vkGetDeviceGroupPresentCapabilitiesKHR"))
6005 {
6006 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
6007 return hasExt ? (void*)entry_vkGetDeviceGroupPresentCapabilitiesKHR : nullptr;
6008 }
6009 if (!strcmp(name, "vkGetDeviceGroupSurfacePresentModesKHR"))
6010 {
6011 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
6012 return hasExt ? (void*)entry_vkGetDeviceGroupSurfacePresentModesKHR : nullptr;
6013 }
6014 if (!strcmp(name, "vkGetPhysicalDevicePresentRectanglesKHR"))
6015 {
6016 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
6017 return hasExt ? (void*)entry_vkGetPhysicalDevicePresentRectanglesKHR : nullptr;
6018 }
6019 if (!strcmp(name, "vkAcquireNextImage2KHR"))
6020 {
6021 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
6022 return hasExt ? (void*)entry_vkAcquireNextImage2KHR : nullptr;
6023 }
6024#endif
6025#ifdef VK_KHR_display
6026 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPropertiesKHR"))
6027 {
6028 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
6029 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayPropertiesKHR : nullptr;
6030 }
6031 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR"))
6032 {
6033 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
6034 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayPlanePropertiesKHR : nullptr;
6035 }
6036 if (!strcmp(name, "vkGetDisplayPlaneSupportedDisplaysKHR"))
6037 {
6038 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
6039 return hasExt ? (void*)entry_vkGetDisplayPlaneSupportedDisplaysKHR : nullptr;
6040 }
6041 if (!strcmp(name, "vkGetDisplayModePropertiesKHR"))
6042 {
6043 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
6044 return hasExt ? (void*)entry_vkGetDisplayModePropertiesKHR : nullptr;
6045 }
6046 if (!strcmp(name, "vkCreateDisplayModeKHR"))
6047 {
6048 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
6049 return hasExt ? (void*)entry_vkCreateDisplayModeKHR : nullptr;
6050 }
6051 if (!strcmp(name, "vkGetDisplayPlaneCapabilitiesKHR"))
6052 {
6053 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
6054 return hasExt ? (void*)entry_vkGetDisplayPlaneCapabilitiesKHR : nullptr;
6055 }
6056 if (!strcmp(name, "vkCreateDisplayPlaneSurfaceKHR"))
6057 {
6058 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
6059 return hasExt ? (void*)entry_vkCreateDisplayPlaneSurfaceKHR : nullptr;
6060 }
6061#endif
6062#ifdef VK_KHR_display_swapchain
6063 if (!strcmp(name, "vkCreateSharedSwapchainsKHR"))
6064 {
6065 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display_swapchain");
6066 return hasExt ? (void*)entry_vkCreateSharedSwapchainsKHR : nullptr;
6067 }
6068#endif
6069#ifdef VK_KHR_xlib_surface
6070 if (!strcmp(name, "vkCreateXlibSurfaceKHR"))
6071 {
6072 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_xlib_surface");
6073 return hasExt ? (void*)entry_vkCreateXlibSurfaceKHR : nullptr;
6074 }
6075 if (!strcmp(name, "vkGetPhysicalDeviceXlibPresentationSupportKHR"))
6076 {
6077 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_xlib_surface");
6078 return hasExt ? (void*)entry_vkGetPhysicalDeviceXlibPresentationSupportKHR : nullptr;
6079 }
6080#endif
6081#ifdef VK_KHR_xcb_surface
6082 if (!strcmp(name, "vkCreateXcbSurfaceKHR"))
6083 {
6084 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_xcb_surface");
6085 return hasExt ? (void*)entry_vkCreateXcbSurfaceKHR : nullptr;
6086 }
6087 if (!strcmp(name, "vkGetPhysicalDeviceXcbPresentationSupportKHR"))
6088 {
6089 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_xcb_surface");
6090 return hasExt ? (void*)entry_vkGetPhysicalDeviceXcbPresentationSupportKHR : nullptr;
6091 }
6092#endif
6093#ifdef VK_KHR_wayland_surface
6094 if (!strcmp(name, "vkCreateWaylandSurfaceKHR"))
6095 {
6096 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_wayland_surface");
6097 return hasExt ? (void*)entry_vkCreateWaylandSurfaceKHR : nullptr;
6098 }
6099 if (!strcmp(name, "vkGetPhysicalDeviceWaylandPresentationSupportKHR"))
6100 {
6101 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_wayland_surface");
6102 return hasExt ? (void*)entry_vkGetPhysicalDeviceWaylandPresentationSupportKHR : nullptr;
6103 }
6104#endif
6105#ifdef VK_KHR_mir_surface
6106 if (!strcmp(name, "vkCreateMirSurfaceKHR"))
6107 {
6108 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_mir_surface");
6109 return hasExt ? (void*)entry_vkCreateMirSurfaceKHR : nullptr;
6110 }
6111 if (!strcmp(name, "vkGetPhysicalDeviceMirPresentationSupportKHR"))
6112 {
6113 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_mir_surface");
6114 return hasExt ? (void*)entry_vkGetPhysicalDeviceMirPresentationSupportKHR : nullptr;
6115 }
6116#endif
6117#ifdef VK_KHR_android_surface
6118 if (!strcmp(name, "vkCreateAndroidSurfaceKHR"))
6119 {
6120 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_android_surface");
6121 return hasExt ? (void*)entry_vkCreateAndroidSurfaceKHR : nullptr;
6122 }
6123#endif
6124#ifdef VK_KHR_win32_surface
6125 if (!strcmp(name, "vkCreateWin32SurfaceKHR"))
6126 {
6127 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_win32_surface");
6128 return hasExt ? (void*)entry_vkCreateWin32SurfaceKHR : nullptr;
6129 }
6130 if (!strcmp(name, "vkGetPhysicalDeviceWin32PresentationSupportKHR"))
6131 {
6132 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_win32_surface");
6133 return hasExt ? (void*)entry_vkGetPhysicalDeviceWin32PresentationSupportKHR : nullptr;
6134 }
6135#endif
6136#ifdef VK_KHR_get_physical_device_properties2
6137 if (!strcmp(name, "vkGetPhysicalDeviceFeatures2KHR"))
6138 {
6139 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
6140 return hasExt ? (void*)entry_vkGetPhysicalDeviceFeatures2KHR : nullptr;
6141 }
6142 if (!strcmp(name, "vkGetPhysicalDeviceProperties2KHR"))
6143 {
6144 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
6145 return hasExt ? (void*)entry_vkGetPhysicalDeviceProperties2KHR : nullptr;
6146 }
6147 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties2KHR"))
6148 {
6149 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
6150 return hasExt ? (void*)entry_vkGetPhysicalDeviceFormatProperties2KHR : nullptr;
6151 }
6152 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties2KHR"))
6153 {
6154 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
6155 return hasExt ? (void*)entry_vkGetPhysicalDeviceImageFormatProperties2KHR : nullptr;
6156 }
6157 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties2KHR"))
6158 {
6159 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
6160 return hasExt ? (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties2KHR : nullptr;
6161 }
6162 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties2KHR"))
6163 {
6164 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
6165 return hasExt ? (void*)entry_vkGetPhysicalDeviceMemoryProperties2KHR : nullptr;
6166 }
6167 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR"))
6168 {
6169 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
6170 return hasExt ? (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties2KHR : nullptr;
6171 }
6172#endif
6173#ifdef VK_KHR_device_group
6174 if (!strcmp(name, "vkGetDeviceGroupPeerMemoryFeaturesKHR"))
6175 {
6176 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_device_group");
6177 return hasExt ? (void*)entry_vkGetDeviceGroupPeerMemoryFeaturesKHR : nullptr;
6178 }
6179 if (!strcmp(name, "vkCmdSetDeviceMaskKHR"))
6180 {
6181 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_device_group");
6182 return hasExt ? (void*)entry_vkCmdSetDeviceMaskKHR : nullptr;
6183 }
6184 if (!strcmp(name, "vkCmdDispatchBaseKHR"))
6185 {
6186 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_device_group");
6187 return hasExt ? (void*)entry_vkCmdDispatchBaseKHR : nullptr;
6188 }
6189#endif
6190#ifdef VK_KHR_maintenance1
6191 if (!strcmp(name, "vkTrimCommandPoolKHR"))
6192 {
6193 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_maintenance1");
6194 return hasExt ? (void*)entry_vkTrimCommandPoolKHR : nullptr;
6195 }
6196#endif
6197#ifdef VK_KHR_device_group_creation
6198 if (!strcmp(name, "vkEnumeratePhysicalDeviceGroupsKHR"))
6199 {
6200 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_device_group_creation");
6201 return hasExt ? (void*)entry_vkEnumeratePhysicalDeviceGroupsKHR : nullptr;
6202 }
6203#endif
6204#ifdef VK_KHR_external_memory_capabilities
6205 if (!strcmp(name, "vkGetPhysicalDeviceExternalBufferPropertiesKHR"))
6206 {
6207 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_memory_capabilities");
6208 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalBufferPropertiesKHR : nullptr;
6209 }
6210#endif
6211#ifdef VK_KHR_external_memory_win32
6212 if (!strcmp(name, "vkGetMemoryWin32HandleKHR"))
6213 {
6214 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_memory_win32");
6215 return hasExt ? (void*)entry_vkGetMemoryWin32HandleKHR : nullptr;
6216 }
6217 if (!strcmp(name, "vkGetMemoryWin32HandlePropertiesKHR"))
6218 {
6219 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_memory_win32");
6220 return hasExt ? (void*)entry_vkGetMemoryWin32HandlePropertiesKHR : nullptr;
6221 }
6222#endif
6223#ifdef VK_KHR_external_memory_fd
6224 if (!strcmp(name, "vkGetMemoryFdKHR"))
6225 {
6226 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_memory_fd");
6227 return hasExt ? (void*)entry_vkGetMemoryFdKHR : nullptr;
6228 }
6229 if (!strcmp(name, "vkGetMemoryFdPropertiesKHR"))
6230 {
6231 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_memory_fd");
6232 return hasExt ? (void*)entry_vkGetMemoryFdPropertiesKHR : nullptr;
6233 }
6234#endif
6235#ifdef VK_KHR_external_semaphore_capabilities
6236 if (!strcmp(name, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR"))
6237 {
6238 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_semaphore_capabilities");
6239 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR : nullptr;
6240 }
6241#endif
6242#ifdef VK_KHR_external_semaphore_win32
6243 if (!strcmp(name, "vkImportSemaphoreWin32HandleKHR"))
6244 {
6245 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_semaphore_win32");
6246 return hasExt ? (void*)entry_vkImportSemaphoreWin32HandleKHR : nullptr;
6247 }
6248 if (!strcmp(name, "vkGetSemaphoreWin32HandleKHR"))
6249 {
6250 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_semaphore_win32");
6251 return hasExt ? (void*)entry_vkGetSemaphoreWin32HandleKHR : nullptr;
6252 }
6253#endif
6254#ifdef VK_KHR_external_semaphore_fd
6255 if (!strcmp(name, "vkImportSemaphoreFdKHR"))
6256 {
6257 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_semaphore_fd");
6258 return hasExt ? (void*)entry_vkImportSemaphoreFdKHR : nullptr;
6259 }
6260 if (!strcmp(name, "vkGetSemaphoreFdKHR"))
6261 {
6262 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_semaphore_fd");
6263 return hasExt ? (void*)entry_vkGetSemaphoreFdKHR : nullptr;
6264 }
6265#endif
6266#ifdef VK_KHR_push_descriptor
6267 if (!strcmp(name, "vkCmdPushDescriptorSetKHR"))
6268 {
6269 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_push_descriptor");
6270 return hasExt ? (void*)entry_vkCmdPushDescriptorSetKHR : nullptr;
6271 }
6272 if (!strcmp(name, "vkCmdPushDescriptorSetWithTemplateKHR"))
6273 {
6274 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_push_descriptor");
6275 return hasExt ? (void*)entry_vkCmdPushDescriptorSetWithTemplateKHR : nullptr;
6276 }
6277#endif
6278#ifdef VK_KHR_descriptor_update_template
6279 if (!strcmp(name, "vkCreateDescriptorUpdateTemplateKHR"))
6280 {
6281 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_descriptor_update_template");
6282 return hasExt ? (void*)entry_vkCreateDescriptorUpdateTemplateKHR : nullptr;
6283 }
6284 if (!strcmp(name, "vkDestroyDescriptorUpdateTemplateKHR"))
6285 {
6286 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_descriptor_update_template");
6287 return hasExt ? (void*)entry_vkDestroyDescriptorUpdateTemplateKHR : nullptr;
6288 }
6289 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplateKHR"))
6290 {
6291 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_descriptor_update_template");
6292 return hasExt ? (void*)entry_vkUpdateDescriptorSetWithTemplateKHR : nullptr;
6293 }
6294#endif
6295#ifdef VK_KHR_create_renderpass2
6296 if (!strcmp(name, "vkCreateRenderPass2KHR"))
6297 {
6298 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_create_renderpass2");
6299 return hasExt ? (void*)entry_vkCreateRenderPass2KHR : nullptr;
6300 }
6301 if (!strcmp(name, "vkCmdBeginRenderPass2KHR"))
6302 {
6303 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_create_renderpass2");
6304 return hasExt ? (void*)entry_vkCmdBeginRenderPass2KHR : nullptr;
6305 }
6306 if (!strcmp(name, "vkCmdNextSubpass2KHR"))
6307 {
6308 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_create_renderpass2");
6309 return hasExt ? (void*)entry_vkCmdNextSubpass2KHR : nullptr;
6310 }
6311 if (!strcmp(name, "vkCmdEndRenderPass2KHR"))
6312 {
6313 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_create_renderpass2");
6314 return hasExt ? (void*)entry_vkCmdEndRenderPass2KHR : nullptr;
6315 }
6316#endif
6317#ifdef VK_KHR_shared_presentable_image
6318 if (!strcmp(name, "vkGetSwapchainStatusKHR"))
6319 {
6320 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_shared_presentable_image");
6321 return hasExt ? (void*)entry_vkGetSwapchainStatusKHR : nullptr;
6322 }
6323#endif
6324#ifdef VK_KHR_external_fence_capabilities
6325 if (!strcmp(name, "vkGetPhysicalDeviceExternalFencePropertiesKHR"))
6326 {
6327 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_fence_capabilities");
6328 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalFencePropertiesKHR : nullptr;
6329 }
6330#endif
6331#ifdef VK_KHR_external_fence_win32
6332 if (!strcmp(name, "vkImportFenceWin32HandleKHR"))
6333 {
6334 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_fence_win32");
6335 return hasExt ? (void*)entry_vkImportFenceWin32HandleKHR : nullptr;
6336 }
6337 if (!strcmp(name, "vkGetFenceWin32HandleKHR"))
6338 {
6339 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_fence_win32");
6340 return hasExt ? (void*)entry_vkGetFenceWin32HandleKHR : nullptr;
6341 }
6342#endif
6343#ifdef VK_KHR_external_fence_fd
6344 if (!strcmp(name, "vkImportFenceFdKHR"))
6345 {
6346 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_fence_fd");
6347 return hasExt ? (void*)entry_vkImportFenceFdKHR : nullptr;
6348 }
6349 if (!strcmp(name, "vkGetFenceFdKHR"))
6350 {
6351 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_fence_fd");
6352 return hasExt ? (void*)entry_vkGetFenceFdKHR : nullptr;
6353 }
6354#endif
6355#ifdef VK_KHR_get_surface_capabilities2
6356 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2KHR"))
6357 {
6358 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_surface_capabilities2");
6359 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceCapabilities2KHR : nullptr;
6360 }
6361 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceFormats2KHR"))
6362 {
6363 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_surface_capabilities2");
6364 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceFormats2KHR : nullptr;
6365 }
6366#endif
6367#ifdef VK_KHR_get_display_properties2
6368 if (!strcmp(name, "vkGetPhysicalDeviceDisplayProperties2KHR"))
6369 {
6370 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_display_properties2");
6371 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayProperties2KHR : nullptr;
6372 }
6373 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR"))
6374 {
6375 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_display_properties2");
6376 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayPlaneProperties2KHR : nullptr;
6377 }
6378 if (!strcmp(name, "vkGetDisplayModeProperties2KHR"))
6379 {
6380 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_display_properties2");
6381 return hasExt ? (void*)entry_vkGetDisplayModeProperties2KHR : nullptr;
6382 }
6383 if (!strcmp(name, "vkGetDisplayPlaneCapabilities2KHR"))
6384 {
6385 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_display_properties2");
6386 return hasExt ? (void*)entry_vkGetDisplayPlaneCapabilities2KHR : nullptr;
6387 }
6388#endif
6389#ifdef VK_KHR_get_memory_requirements2
6390 if (!strcmp(name, "vkGetImageMemoryRequirements2KHR"))
6391 {
6392 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_memory_requirements2");
6393 return hasExt ? (void*)entry_vkGetImageMemoryRequirements2KHR : nullptr;
6394 }
6395 if (!strcmp(name, "vkGetBufferMemoryRequirements2KHR"))
6396 {
6397 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_memory_requirements2");
6398 return hasExt ? (void*)entry_vkGetBufferMemoryRequirements2KHR : nullptr;
6399 }
6400 if (!strcmp(name, "vkGetImageSparseMemoryRequirements2KHR"))
6401 {
6402 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_memory_requirements2");
6403 return hasExt ? (void*)entry_vkGetImageSparseMemoryRequirements2KHR : nullptr;
6404 }
6405#endif
6406#ifdef VK_KHR_sampler_ycbcr_conversion
6407 if (!strcmp(name, "vkCreateSamplerYcbcrConversionKHR"))
6408 {
6409 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_sampler_ycbcr_conversion");
6410 return hasExt ? (void*)entry_vkCreateSamplerYcbcrConversionKHR : nullptr;
6411 }
6412 if (!strcmp(name, "vkDestroySamplerYcbcrConversionKHR"))
6413 {
6414 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_sampler_ycbcr_conversion");
6415 return hasExt ? (void*)entry_vkDestroySamplerYcbcrConversionKHR : nullptr;
6416 }
6417#endif
6418#ifdef VK_KHR_bind_memory2
6419 if (!strcmp(name, "vkBindBufferMemory2KHR"))
6420 {
6421 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_bind_memory2");
6422 return hasExt ? (void*)entry_vkBindBufferMemory2KHR : nullptr;
6423 }
6424 if (!strcmp(name, "vkBindImageMemory2KHR"))
6425 {
6426 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_bind_memory2");
6427 return hasExt ? (void*)entry_vkBindImageMemory2KHR : nullptr;
6428 }
6429#endif
6430#ifdef VK_KHR_maintenance3
6431 if (!strcmp(name, "vkGetDescriptorSetLayoutSupportKHR"))
6432 {
6433 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_maintenance3");
6434 return hasExt ? (void*)entry_vkGetDescriptorSetLayoutSupportKHR : nullptr;
6435 }
6436#endif
6437#ifdef VK_KHR_draw_indirect_count
6438 if (!strcmp(name, "vkCmdDrawIndirectCountKHR"))
6439 {
6440 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_draw_indirect_count");
6441 return hasExt ? (void*)entry_vkCmdDrawIndirectCountKHR : nullptr;
6442 }
6443 if (!strcmp(name, "vkCmdDrawIndexedIndirectCountKHR"))
6444 {
6445 bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_draw_indirect_count");
6446 return hasExt ? (void*)entry_vkCmdDrawIndexedIndirectCountKHR : nullptr;
6447 }
6448#endif
6449#ifdef VK_ANDROID_native_buffer
6450 if (!strcmp(name, "vkGetSwapchainGrallocUsageANDROID"))
6451 {
6452 bool hasExt = resources->hasInstanceExtension(instance, "VK_ANDROID_native_buffer");
6453 return hasExt ? (void*)entry_vkGetSwapchainGrallocUsageANDROID : nullptr;
6454 }
6455 if (!strcmp(name, "vkAcquireImageANDROID"))
6456 {
6457 bool hasExt = resources->hasInstanceExtension(instance, "VK_ANDROID_native_buffer");
6458 return hasExt ? (void*)entry_vkAcquireImageANDROID : nullptr;
6459 }
6460 if (!strcmp(name, "vkQueueSignalReleaseImageANDROID"))
6461 {
6462 bool hasExt = resources->hasInstanceExtension(instance, "VK_ANDROID_native_buffer");
6463 return hasExt ? (void*)entry_vkQueueSignalReleaseImageANDROID : nullptr;
6464 }
6465#endif
6466#ifdef VK_EXT_debug_report
6467 if (!strcmp(name, "vkCreateDebugReportCallbackEXT"))
6468 {
6469 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_report");
6470 return hasExt ? (void*)entry_vkCreateDebugReportCallbackEXT : nullptr;
6471 }
6472 if (!strcmp(name, "vkDestroyDebugReportCallbackEXT"))
6473 {
6474 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_report");
6475 return hasExt ? (void*)entry_vkDestroyDebugReportCallbackEXT : nullptr;
6476 }
6477 if (!strcmp(name, "vkDebugReportMessageEXT"))
6478 {
6479 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_report");
6480 return hasExt ? (void*)entry_vkDebugReportMessageEXT : nullptr;
6481 }
6482#endif
6483#ifdef VK_EXT_debug_marker
6484 if (!strcmp(name, "vkDebugMarkerSetObjectTagEXT"))
6485 {
6486 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_marker");
6487 return hasExt ? (void*)entry_vkDebugMarkerSetObjectTagEXT : nullptr;
6488 }
6489 if (!strcmp(name, "vkDebugMarkerSetObjectNameEXT"))
6490 {
6491 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_marker");
6492 return hasExt ? (void*)entry_vkDebugMarkerSetObjectNameEXT : nullptr;
6493 }
6494 if (!strcmp(name, "vkCmdDebugMarkerBeginEXT"))
6495 {
6496 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_marker");
6497 return hasExt ? (void*)entry_vkCmdDebugMarkerBeginEXT : nullptr;
6498 }
6499 if (!strcmp(name, "vkCmdDebugMarkerEndEXT"))
6500 {
6501 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_marker");
6502 return hasExt ? (void*)entry_vkCmdDebugMarkerEndEXT : nullptr;
6503 }
6504 if (!strcmp(name, "vkCmdDebugMarkerInsertEXT"))
6505 {
6506 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_marker");
6507 return hasExt ? (void*)entry_vkCmdDebugMarkerInsertEXT : nullptr;
6508 }
6509#endif
6510#ifdef VK_AMD_draw_indirect_count
6511 if (!strcmp(name, "vkCmdDrawIndirectCountAMD"))
6512 {
6513 bool hasExt = resources->hasInstanceExtension(instance, "VK_AMD_draw_indirect_count");
6514 return hasExt ? (void*)entry_vkCmdDrawIndirectCountAMD : nullptr;
6515 }
6516 if (!strcmp(name, "vkCmdDrawIndexedIndirectCountAMD"))
6517 {
6518 bool hasExt = resources->hasInstanceExtension(instance, "VK_AMD_draw_indirect_count");
6519 return hasExt ? (void*)entry_vkCmdDrawIndexedIndirectCountAMD : nullptr;
6520 }
6521#endif
6522#ifdef VK_AMD_shader_info
6523 if (!strcmp(name, "vkGetShaderInfoAMD"))
6524 {
6525 bool hasExt = resources->hasInstanceExtension(instance, "VK_AMD_shader_info");
6526 return hasExt ? (void*)entry_vkGetShaderInfoAMD : nullptr;
6527 }
6528#endif
6529#ifdef VK_NV_external_memory_capabilities
6530 if (!strcmp(name, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV"))
6531 {
6532 bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_external_memory_capabilities");
6533 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalImageFormatPropertiesNV : nullptr;
6534 }
6535#endif
6536#ifdef VK_NV_external_memory_win32
6537 if (!strcmp(name, "vkGetMemoryWin32HandleNV"))
6538 {
6539 bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_external_memory_win32");
6540 return hasExt ? (void*)entry_vkGetMemoryWin32HandleNV : nullptr;
6541 }
6542#endif
6543#ifdef VK_NN_vi_surface
6544 if (!strcmp(name, "vkCreateViSurfaceNN"))
6545 {
6546 bool hasExt = resources->hasInstanceExtension(instance, "VK_NN_vi_surface");
6547 return hasExt ? (void*)entry_vkCreateViSurfaceNN : nullptr;
6548 }
6549#endif
6550#ifdef VK_EXT_conditional_rendering
6551 if (!strcmp(name, "vkCmdBeginConditionalRenderingEXT"))
6552 {
6553 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_conditional_rendering");
6554 return hasExt ? (void*)entry_vkCmdBeginConditionalRenderingEXT : nullptr;
6555 }
6556 if (!strcmp(name, "vkCmdEndConditionalRenderingEXT"))
6557 {
6558 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_conditional_rendering");
6559 return hasExt ? (void*)entry_vkCmdEndConditionalRenderingEXT : nullptr;
6560 }
6561#endif
6562#ifdef VK_NVX_device_generated_commands
6563 if (!strcmp(name, "vkCmdProcessCommandsNVX"))
6564 {
6565 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6566 return hasExt ? (void*)entry_vkCmdProcessCommandsNVX : nullptr;
6567 }
6568 if (!strcmp(name, "vkCmdReserveSpaceForCommandsNVX"))
6569 {
6570 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6571 return hasExt ? (void*)entry_vkCmdReserveSpaceForCommandsNVX : nullptr;
6572 }
6573 if (!strcmp(name, "vkCreateIndirectCommandsLayoutNVX"))
6574 {
6575 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6576 return hasExt ? (void*)entry_vkCreateIndirectCommandsLayoutNVX : nullptr;
6577 }
6578 if (!strcmp(name, "vkDestroyIndirectCommandsLayoutNVX"))
6579 {
6580 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6581 return hasExt ? (void*)entry_vkDestroyIndirectCommandsLayoutNVX : nullptr;
6582 }
6583 if (!strcmp(name, "vkCreateObjectTableNVX"))
6584 {
6585 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6586 return hasExt ? (void*)entry_vkCreateObjectTableNVX : nullptr;
6587 }
6588 if (!strcmp(name, "vkDestroyObjectTableNVX"))
6589 {
6590 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6591 return hasExt ? (void*)entry_vkDestroyObjectTableNVX : nullptr;
6592 }
6593 if (!strcmp(name, "vkRegisterObjectsNVX"))
6594 {
6595 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6596 return hasExt ? (void*)entry_vkRegisterObjectsNVX : nullptr;
6597 }
6598 if (!strcmp(name, "vkUnregisterObjectsNVX"))
6599 {
6600 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6601 return hasExt ? (void*)entry_vkUnregisterObjectsNVX : nullptr;
6602 }
6603 if (!strcmp(name, "vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX"))
6604 {
6605 bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
6606 return hasExt ? (void*)entry_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX : nullptr;
6607 }
6608#endif
6609#ifdef VK_NV_clip_space_w_scaling
6610 if (!strcmp(name, "vkCmdSetViewportWScalingNV"))
6611 {
6612 bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_clip_space_w_scaling");
6613 return hasExt ? (void*)entry_vkCmdSetViewportWScalingNV : nullptr;
6614 }
6615#endif
6616#ifdef VK_EXT_direct_mode_display
6617 if (!strcmp(name, "vkReleaseDisplayEXT"))
6618 {
6619 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_direct_mode_display");
6620 return hasExt ? (void*)entry_vkReleaseDisplayEXT : nullptr;
6621 }
6622#endif
6623#ifdef VK_EXT_acquire_xlib_display
6624 if (!strcmp(name, "vkAcquireXlibDisplayEXT"))
6625 {
6626 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_acquire_xlib_display");
6627 return hasExt ? (void*)entry_vkAcquireXlibDisplayEXT : nullptr;
6628 }
6629 if (!strcmp(name, "vkGetRandROutputDisplayEXT"))
6630 {
6631 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_acquire_xlib_display");
6632 return hasExt ? (void*)entry_vkGetRandROutputDisplayEXT : nullptr;
6633 }
6634#endif
6635#ifdef VK_EXT_display_surface_counter
6636 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2EXT"))
6637 {
6638 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_display_surface_counter");
6639 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceCapabilities2EXT : nullptr;
6640 }
6641#endif
6642#ifdef VK_EXT_display_control
6643 if (!strcmp(name, "vkDisplayPowerControlEXT"))
6644 {
6645 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_display_control");
6646 return hasExt ? (void*)entry_vkDisplayPowerControlEXT : nullptr;
6647 }
6648 if (!strcmp(name, "vkRegisterDeviceEventEXT"))
6649 {
6650 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_display_control");
6651 return hasExt ? (void*)entry_vkRegisterDeviceEventEXT : nullptr;
6652 }
6653 if (!strcmp(name, "vkRegisterDisplayEventEXT"))
6654 {
6655 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_display_control");
6656 return hasExt ? (void*)entry_vkRegisterDisplayEventEXT : nullptr;
6657 }
6658 if (!strcmp(name, "vkGetSwapchainCounterEXT"))
6659 {
6660 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_display_control");
6661 return hasExt ? (void*)entry_vkGetSwapchainCounterEXT : nullptr;
6662 }
6663#endif
6664#ifdef VK_GOOGLE_display_timing
6665 if (!strcmp(name, "vkGetRefreshCycleDurationGOOGLE"))
6666 {
6667 bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_display_timing");
6668 return hasExt ? (void*)entry_vkGetRefreshCycleDurationGOOGLE : nullptr;
6669 }
6670 if (!strcmp(name, "vkGetPastPresentationTimingGOOGLE"))
6671 {
6672 bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_display_timing");
6673 return hasExt ? (void*)entry_vkGetPastPresentationTimingGOOGLE : nullptr;
6674 }
6675#endif
6676#ifdef VK_EXT_discard_rectangles
6677 if (!strcmp(name, "vkCmdSetDiscardRectangleEXT"))
6678 {
6679 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_discard_rectangles");
6680 return hasExt ? (void*)entry_vkCmdSetDiscardRectangleEXT : nullptr;
6681 }
6682#endif
6683#ifdef VK_EXT_hdr_metadata
6684 if (!strcmp(name, "vkSetHdrMetadataEXT"))
6685 {
6686 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_hdr_metadata");
6687 return hasExt ? (void*)entry_vkSetHdrMetadataEXT : nullptr;
6688 }
6689#endif
6690#ifdef VK_MVK_ios_surface
6691 if (!strcmp(name, "vkCreateIOSSurfaceMVK"))
6692 {
6693 bool hasExt = resources->hasInstanceExtension(instance, "VK_MVK_ios_surface");
6694 return hasExt ? (void*)entry_vkCreateIOSSurfaceMVK : nullptr;
6695 }
6696#endif
6697#ifdef VK_MVK_macos_surface
6698 if (!strcmp(name, "vkCreateMacOSSurfaceMVK"))
6699 {
6700 bool hasExt = resources->hasInstanceExtension(instance, "VK_MVK_macos_surface");
6701 return hasExt ? (void*)entry_vkCreateMacOSSurfaceMVK : nullptr;
6702 }
6703#endif
6704#ifdef VK_EXT_debug_utils
6705 if (!strcmp(name, "vkSetDebugUtilsObjectNameEXT"))
6706 {
6707 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6708 return hasExt ? (void*)entry_vkSetDebugUtilsObjectNameEXT : nullptr;
6709 }
6710 if (!strcmp(name, "vkSetDebugUtilsObjectTagEXT"))
6711 {
6712 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6713 return hasExt ? (void*)entry_vkSetDebugUtilsObjectTagEXT : nullptr;
6714 }
6715 if (!strcmp(name, "vkQueueBeginDebugUtilsLabelEXT"))
6716 {
6717 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6718 return hasExt ? (void*)entry_vkQueueBeginDebugUtilsLabelEXT : nullptr;
6719 }
6720 if (!strcmp(name, "vkQueueEndDebugUtilsLabelEXT"))
6721 {
6722 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6723 return hasExt ? (void*)entry_vkQueueEndDebugUtilsLabelEXT : nullptr;
6724 }
6725 if (!strcmp(name, "vkQueueInsertDebugUtilsLabelEXT"))
6726 {
6727 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6728 return hasExt ? (void*)entry_vkQueueInsertDebugUtilsLabelEXT : nullptr;
6729 }
6730 if (!strcmp(name, "vkCmdBeginDebugUtilsLabelEXT"))
6731 {
6732 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6733 return hasExt ? (void*)entry_vkCmdBeginDebugUtilsLabelEXT : nullptr;
6734 }
6735 if (!strcmp(name, "vkCmdEndDebugUtilsLabelEXT"))
6736 {
6737 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6738 return hasExt ? (void*)entry_vkCmdEndDebugUtilsLabelEXT : nullptr;
6739 }
6740 if (!strcmp(name, "vkCmdInsertDebugUtilsLabelEXT"))
6741 {
6742 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6743 return hasExt ? (void*)entry_vkCmdInsertDebugUtilsLabelEXT : nullptr;
6744 }
6745 if (!strcmp(name, "vkCreateDebugUtilsMessengerEXT"))
6746 {
6747 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6748 return hasExt ? (void*)entry_vkCreateDebugUtilsMessengerEXT : nullptr;
6749 }
6750 if (!strcmp(name, "vkDestroyDebugUtilsMessengerEXT"))
6751 {
6752 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6753 return hasExt ? (void*)entry_vkDestroyDebugUtilsMessengerEXT : nullptr;
6754 }
6755 if (!strcmp(name, "vkSubmitDebugUtilsMessageEXT"))
6756 {
6757 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
6758 return hasExt ? (void*)entry_vkSubmitDebugUtilsMessageEXT : nullptr;
6759 }
6760#endif
6761#ifdef VK_ANDROID_external_memory_android_hardware_buffer
6762 if (!strcmp(name, "vkGetAndroidHardwareBufferPropertiesANDROID"))
6763 {
6764 bool hasExt = resources->hasInstanceExtension(instance, "VK_ANDROID_external_memory_android_hardware_buffer");
6765 return hasExt ? (void*)entry_vkGetAndroidHardwareBufferPropertiesANDROID : nullptr;
6766 }
6767 if (!strcmp(name, "vkGetMemoryAndroidHardwareBufferANDROID"))
6768 {
6769 bool hasExt = resources->hasInstanceExtension(instance, "VK_ANDROID_external_memory_android_hardware_buffer");
6770 return hasExt ? (void*)entry_vkGetMemoryAndroidHardwareBufferANDROID : nullptr;
6771 }
6772#endif
6773#ifdef VK_EXT_sample_locations
6774 if (!strcmp(name, "vkCmdSetSampleLocationsEXT"))
6775 {
6776 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_sample_locations");
6777 return hasExt ? (void*)entry_vkCmdSetSampleLocationsEXT : nullptr;
6778 }
6779 if (!strcmp(name, "vkGetPhysicalDeviceMultisamplePropertiesEXT"))
6780 {
6781 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_sample_locations");
6782 return hasExt ? (void*)entry_vkGetPhysicalDeviceMultisamplePropertiesEXT : nullptr;
6783 }
6784#endif
6785#ifdef VK_EXT_validation_cache
6786 if (!strcmp(name, "vkCreateValidationCacheEXT"))
6787 {
6788 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_validation_cache");
6789 return hasExt ? (void*)entry_vkCreateValidationCacheEXT : nullptr;
6790 }
6791 if (!strcmp(name, "vkDestroyValidationCacheEXT"))
6792 {
6793 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_validation_cache");
6794 return hasExt ? (void*)entry_vkDestroyValidationCacheEXT : nullptr;
6795 }
6796 if (!strcmp(name, "vkMergeValidationCachesEXT"))
6797 {
6798 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_validation_cache");
6799 return hasExt ? (void*)entry_vkMergeValidationCachesEXT : nullptr;
6800 }
6801 if (!strcmp(name, "vkGetValidationCacheDataEXT"))
6802 {
6803 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_validation_cache");
6804 return hasExt ? (void*)entry_vkGetValidationCacheDataEXT : nullptr;
6805 }
6806#endif
6807#ifdef VK_EXT_external_memory_host
6808 if (!strcmp(name, "vkGetMemoryHostPointerPropertiesEXT"))
6809 {
6810 bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_external_memory_host");
6811 return hasExt ? (void*)entry_vkGetMemoryHostPointerPropertiesEXT : nullptr;
6812 }
6813#endif
6814#ifdef VK_AMD_buffer_marker
6815 if (!strcmp(name, "vkCmdWriteBufferMarkerAMD"))
6816 {
6817 bool hasExt = resources->hasInstanceExtension(instance, "VK_AMD_buffer_marker");
6818 return hasExt ? (void*)entry_vkCmdWriteBufferMarkerAMD : nullptr;
6819 }
6820#endif
6821#ifdef VK_NV_device_diagnostic_checkpoints
6822 if (!strcmp(name, "vkCmdSetCheckpointNV"))
6823 {
6824 bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_device_diagnostic_checkpoints");
6825 return hasExt ? (void*)entry_vkCmdSetCheckpointNV : nullptr;
6826 }
6827 if (!strcmp(name, "vkGetQueueCheckpointDataNV"))
6828 {
6829 bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_device_diagnostic_checkpoints");
6830 return hasExt ? (void*)entry_vkGetQueueCheckpointDataNV : nullptr;
6831 }
6832#endif
6833#ifdef VK_GOOGLE_address_space
6834 if (!strcmp(name, "vkMapMemoryIntoAddressSpaceGOOGLE"))
6835 {
6836 bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_address_space");
6837 return hasExt ? (void*)entry_vkMapMemoryIntoAddressSpaceGOOGLE : nullptr;
6838 }
6839#endif
Lingfeng Yangae7e1b32019-02-19 14:07:39 -08006840#ifdef VK_GOOGLE_color_buffer
6841 if (!strcmp(name, "vkRegisterImageColorBufferGOOGLE"))
6842 {
6843 bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_color_buffer");
6844 return hasExt ? (void*)entry_vkRegisterImageColorBufferGOOGLE : nullptr;
6845 }
6846 if (!strcmp(name, "vkRegisterBufferColorBufferGOOGLE"))
6847 {
6848 bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_color_buffer");
6849 return hasExt ? (void*)entry_vkRegisterBufferColorBufferGOOGLE : nullptr;
6850 }
6851#endif
Lingfeng Yang05d5ea32019-03-23 00:12:39 -07006852#ifdef VK_GOOGLE_sized_descriptor_update_template
6853 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplateSizedGOOGLE"))
6854 {
6855 bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_sized_descriptor_update_template");
6856 return hasExt ? (void*)entry_vkUpdateDescriptorSetWithTemplateSizedGOOGLE : nullptr;
6857 }
6858#endif
Lingfeng Yangc53e7472019-03-27 08:50:55 -07006859#ifdef VK_GOOGLE_async_command_buffers
6860 if (!strcmp(name, "vkBeginCommandBufferAsyncGOOGLE"))
6861 {
6862 bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_async_command_buffers");
6863 return hasExt ? (void*)entry_vkBeginCommandBufferAsyncGOOGLE : nullptr;
6864 }
6865 if (!strcmp(name, "vkEndCommandBufferAsyncGOOGLE"))
6866 {
6867 bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_async_command_buffers");
6868 return hasExt ? (void*)entry_vkEndCommandBufferAsyncGOOGLE : nullptr;
6869 }
6870 if (!strcmp(name, "vkResetCommandBufferAsyncGOOGLE"))
6871 {
6872 bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_async_command_buffers");
6873 return hasExt ? (void*)entry_vkResetCommandBufferAsyncGOOGLE : nullptr;
6874 }
Lingfeng Yang39a276e2019-06-17 13:27:22 -07006875 if (!strcmp(name, "vkCommandBufferHostSyncGOOGLE"))
6876 {
6877 bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_async_command_buffers");
6878 return hasExt ? (void*)entry_vkCommandBufferHostSyncGOOGLE : nullptr;
6879 }
Lingfeng Yangc53e7472019-03-27 08:50:55 -07006880#endif
Lingfeng Yangf0654ff2019-02-02 12:21:24 -08006881 return nullptr;
6882}
6883void* goldfish_vulkan_get_device_proc_address(VkDevice device, const char* name){
6884 auto resources = ResourceTracker::get();
6885 bool has1_1OrHigher = resources->getApiVersionFromDevice(device) >= VK_API_VERSION_1_1;
6886#ifdef VK_VERSION_1_0
6887 if (!strcmp(name, "vkCreateInstance"))
6888 {
6889 return (void*)entry_vkCreateInstance;
6890 }
6891 if (!strcmp(name, "vkDestroyInstance"))
6892 {
6893 return (void*)entry_vkDestroyInstance;
6894 }
6895 if (!strcmp(name, "vkEnumeratePhysicalDevices"))
6896 {
6897 return (void*)entry_vkEnumeratePhysicalDevices;
6898 }
6899 if (!strcmp(name, "vkGetPhysicalDeviceFeatures"))
6900 {
6901 return (void*)entry_vkGetPhysicalDeviceFeatures;
6902 }
6903 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties"))
6904 {
6905 return (void*)entry_vkGetPhysicalDeviceFormatProperties;
6906 }
6907 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties"))
6908 {
6909 return (void*)entry_vkGetPhysicalDeviceImageFormatProperties;
6910 }
6911 if (!strcmp(name, "vkGetPhysicalDeviceProperties"))
6912 {
6913 return (void*)entry_vkGetPhysicalDeviceProperties;
6914 }
6915 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties"))
6916 {
6917 return (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties;
6918 }
6919 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties"))
6920 {
6921 return (void*)entry_vkGetPhysicalDeviceMemoryProperties;
6922 }
6923 if (!strcmp(name, "vkGetInstanceProcAddr"))
6924 {
6925 return (void*)entry_vkGetInstanceProcAddr;
6926 }
6927 if (!strcmp(name, "vkGetDeviceProcAddr"))
6928 {
6929 return (void*)entry_vkGetDeviceProcAddr;
6930 }
6931 if (!strcmp(name, "vkCreateDevice"))
6932 {
6933 return (void*)entry_vkCreateDevice;
6934 }
6935 if (!strcmp(name, "vkDestroyDevice"))
6936 {
6937 return (void*)entry_vkDestroyDevice;
6938 }
6939 if (!strcmp(name, "vkEnumerateInstanceExtensionProperties"))
6940 {
6941 return (void*)entry_vkEnumerateInstanceExtensionProperties;
6942 }
6943 if (!strcmp(name, "vkEnumerateDeviceExtensionProperties"))
6944 {
6945 return (void*)entry_vkEnumerateDeviceExtensionProperties;
6946 }
6947 if (!strcmp(name, "vkEnumerateInstanceLayerProperties"))
6948 {
6949 return (void*)entry_vkEnumerateInstanceLayerProperties;
6950 }
6951 if (!strcmp(name, "vkEnumerateDeviceLayerProperties"))
6952 {
6953 return (void*)entry_vkEnumerateDeviceLayerProperties;
6954 }
6955 if (!strcmp(name, "vkGetDeviceQueue"))
6956 {
6957 return (void*)entry_vkGetDeviceQueue;
6958 }
6959 if (!strcmp(name, "vkQueueSubmit"))
6960 {
6961 return (void*)entry_vkQueueSubmit;
6962 }
6963 if (!strcmp(name, "vkQueueWaitIdle"))
6964 {
6965 return (void*)entry_vkQueueWaitIdle;
6966 }
6967 if (!strcmp(name, "vkDeviceWaitIdle"))
6968 {
6969 return (void*)entry_vkDeviceWaitIdle;
6970 }
6971 if (!strcmp(name, "vkAllocateMemory"))
6972 {
6973 return (void*)entry_vkAllocateMemory;
6974 }
6975 if (!strcmp(name, "vkFreeMemory"))
6976 {
6977 return (void*)entry_vkFreeMemory;
6978 }
6979 if (!strcmp(name, "vkMapMemory"))
6980 {
6981 return (void*)entry_vkMapMemory;
6982 }
6983 if (!strcmp(name, "vkUnmapMemory"))
6984 {
6985 return (void*)entry_vkUnmapMemory;
6986 }
6987 if (!strcmp(name, "vkFlushMappedMemoryRanges"))
6988 {
6989 return (void*)entry_vkFlushMappedMemoryRanges;
6990 }
6991 if (!strcmp(name, "vkInvalidateMappedMemoryRanges"))
6992 {
6993 return (void*)entry_vkInvalidateMappedMemoryRanges;
6994 }
6995 if (!strcmp(name, "vkGetDeviceMemoryCommitment"))
6996 {
6997 return (void*)entry_vkGetDeviceMemoryCommitment;
6998 }
6999 if (!strcmp(name, "vkBindBufferMemory"))
7000 {
7001 return (void*)entry_vkBindBufferMemory;
7002 }
7003 if (!strcmp(name, "vkBindImageMemory"))
7004 {
7005 return (void*)entry_vkBindImageMemory;
7006 }
7007 if (!strcmp(name, "vkGetBufferMemoryRequirements"))
7008 {
7009 return (void*)entry_vkGetBufferMemoryRequirements;
7010 }
7011 if (!strcmp(name, "vkGetImageMemoryRequirements"))
7012 {
7013 return (void*)entry_vkGetImageMemoryRequirements;
7014 }
7015 if (!strcmp(name, "vkGetImageSparseMemoryRequirements"))
7016 {
7017 return (void*)entry_vkGetImageSparseMemoryRequirements;
7018 }
7019 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties"))
7020 {
7021 return (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties;
7022 }
7023 if (!strcmp(name, "vkQueueBindSparse"))
7024 {
7025 return (void*)entry_vkQueueBindSparse;
7026 }
7027 if (!strcmp(name, "vkCreateFence"))
7028 {
7029 return (void*)entry_vkCreateFence;
7030 }
7031 if (!strcmp(name, "vkDestroyFence"))
7032 {
7033 return (void*)entry_vkDestroyFence;
7034 }
7035 if (!strcmp(name, "vkResetFences"))
7036 {
7037 return (void*)entry_vkResetFences;
7038 }
7039 if (!strcmp(name, "vkGetFenceStatus"))
7040 {
7041 return (void*)entry_vkGetFenceStatus;
7042 }
7043 if (!strcmp(name, "vkWaitForFences"))
7044 {
7045 return (void*)entry_vkWaitForFences;
7046 }
7047 if (!strcmp(name, "vkCreateSemaphore"))
7048 {
7049 return (void*)entry_vkCreateSemaphore;
7050 }
7051 if (!strcmp(name, "vkDestroySemaphore"))
7052 {
7053 return (void*)entry_vkDestroySemaphore;
7054 }
7055 if (!strcmp(name, "vkCreateEvent"))
7056 {
7057 return (void*)entry_vkCreateEvent;
7058 }
7059 if (!strcmp(name, "vkDestroyEvent"))
7060 {
7061 return (void*)entry_vkDestroyEvent;
7062 }
7063 if (!strcmp(name, "vkGetEventStatus"))
7064 {
7065 return (void*)entry_vkGetEventStatus;
7066 }
7067 if (!strcmp(name, "vkSetEvent"))
7068 {
7069 return (void*)entry_vkSetEvent;
7070 }
7071 if (!strcmp(name, "vkResetEvent"))
7072 {
7073 return (void*)entry_vkResetEvent;
7074 }
7075 if (!strcmp(name, "vkCreateQueryPool"))
7076 {
7077 return (void*)entry_vkCreateQueryPool;
7078 }
7079 if (!strcmp(name, "vkDestroyQueryPool"))
7080 {
7081 return (void*)entry_vkDestroyQueryPool;
7082 }
7083 if (!strcmp(name, "vkGetQueryPoolResults"))
7084 {
7085 return (void*)entry_vkGetQueryPoolResults;
7086 }
7087 if (!strcmp(name, "vkCreateBuffer"))
7088 {
7089 return (void*)entry_vkCreateBuffer;
7090 }
7091 if (!strcmp(name, "vkDestroyBuffer"))
7092 {
7093 return (void*)entry_vkDestroyBuffer;
7094 }
7095 if (!strcmp(name, "vkCreateBufferView"))
7096 {
7097 return (void*)entry_vkCreateBufferView;
7098 }
7099 if (!strcmp(name, "vkDestroyBufferView"))
7100 {
7101 return (void*)entry_vkDestroyBufferView;
7102 }
7103 if (!strcmp(name, "vkCreateImage"))
7104 {
7105 return (void*)entry_vkCreateImage;
7106 }
7107 if (!strcmp(name, "vkDestroyImage"))
7108 {
7109 return (void*)entry_vkDestroyImage;
7110 }
7111 if (!strcmp(name, "vkGetImageSubresourceLayout"))
7112 {
7113 return (void*)entry_vkGetImageSubresourceLayout;
7114 }
7115 if (!strcmp(name, "vkCreateImageView"))
7116 {
7117 return (void*)entry_vkCreateImageView;
7118 }
7119 if (!strcmp(name, "vkDestroyImageView"))
7120 {
7121 return (void*)entry_vkDestroyImageView;
7122 }
7123 if (!strcmp(name, "vkCreateShaderModule"))
7124 {
7125 return (void*)entry_vkCreateShaderModule;
7126 }
7127 if (!strcmp(name, "vkDestroyShaderModule"))
7128 {
7129 return (void*)entry_vkDestroyShaderModule;
7130 }
7131 if (!strcmp(name, "vkCreatePipelineCache"))
7132 {
7133 return (void*)entry_vkCreatePipelineCache;
7134 }
7135 if (!strcmp(name, "vkDestroyPipelineCache"))
7136 {
7137 return (void*)entry_vkDestroyPipelineCache;
7138 }
7139 if (!strcmp(name, "vkGetPipelineCacheData"))
7140 {
7141 return (void*)entry_vkGetPipelineCacheData;
7142 }
7143 if (!strcmp(name, "vkMergePipelineCaches"))
7144 {
7145 return (void*)entry_vkMergePipelineCaches;
7146 }
7147 if (!strcmp(name, "vkCreateGraphicsPipelines"))
7148 {
7149 return (void*)entry_vkCreateGraphicsPipelines;
7150 }
7151 if (!strcmp(name, "vkCreateComputePipelines"))
7152 {
7153 return (void*)entry_vkCreateComputePipelines;
7154 }
7155 if (!strcmp(name, "vkDestroyPipeline"))
7156 {
7157 return (void*)entry_vkDestroyPipeline;
7158 }
7159 if (!strcmp(name, "vkCreatePipelineLayout"))
7160 {
7161 return (void*)entry_vkCreatePipelineLayout;
7162 }
7163 if (!strcmp(name, "vkDestroyPipelineLayout"))
7164 {
7165 return (void*)entry_vkDestroyPipelineLayout;
7166 }
7167 if (!strcmp(name, "vkCreateSampler"))
7168 {
7169 return (void*)entry_vkCreateSampler;
7170 }
7171 if (!strcmp(name, "vkDestroySampler"))
7172 {
7173 return (void*)entry_vkDestroySampler;
7174 }
7175 if (!strcmp(name, "vkCreateDescriptorSetLayout"))
7176 {
7177 return (void*)entry_vkCreateDescriptorSetLayout;
7178 }
7179 if (!strcmp(name, "vkDestroyDescriptorSetLayout"))
7180 {
7181 return (void*)entry_vkDestroyDescriptorSetLayout;
7182 }
7183 if (!strcmp(name, "vkCreateDescriptorPool"))
7184 {
7185 return (void*)entry_vkCreateDescriptorPool;
7186 }
7187 if (!strcmp(name, "vkDestroyDescriptorPool"))
7188 {
7189 return (void*)entry_vkDestroyDescriptorPool;
7190 }
7191 if (!strcmp(name, "vkResetDescriptorPool"))
7192 {
7193 return (void*)entry_vkResetDescriptorPool;
7194 }
7195 if (!strcmp(name, "vkAllocateDescriptorSets"))
7196 {
7197 return (void*)entry_vkAllocateDescriptorSets;
7198 }
7199 if (!strcmp(name, "vkFreeDescriptorSets"))
7200 {
7201 return (void*)entry_vkFreeDescriptorSets;
7202 }
7203 if (!strcmp(name, "vkUpdateDescriptorSets"))
7204 {
7205 return (void*)entry_vkUpdateDescriptorSets;
7206 }
7207 if (!strcmp(name, "vkCreateFramebuffer"))
7208 {
7209 return (void*)entry_vkCreateFramebuffer;
7210 }
7211 if (!strcmp(name, "vkDestroyFramebuffer"))
7212 {
7213 return (void*)entry_vkDestroyFramebuffer;
7214 }
7215 if (!strcmp(name, "vkCreateRenderPass"))
7216 {
7217 return (void*)entry_vkCreateRenderPass;
7218 }
7219 if (!strcmp(name, "vkDestroyRenderPass"))
7220 {
7221 return (void*)entry_vkDestroyRenderPass;
7222 }
7223 if (!strcmp(name, "vkGetRenderAreaGranularity"))
7224 {
7225 return (void*)entry_vkGetRenderAreaGranularity;
7226 }
7227 if (!strcmp(name, "vkCreateCommandPool"))
7228 {
7229 return (void*)entry_vkCreateCommandPool;
7230 }
7231 if (!strcmp(name, "vkDestroyCommandPool"))
7232 {
7233 return (void*)entry_vkDestroyCommandPool;
7234 }
7235 if (!strcmp(name, "vkResetCommandPool"))
7236 {
7237 return (void*)entry_vkResetCommandPool;
7238 }
7239 if (!strcmp(name, "vkAllocateCommandBuffers"))
7240 {
7241 return (void*)entry_vkAllocateCommandBuffers;
7242 }
7243 if (!strcmp(name, "vkFreeCommandBuffers"))
7244 {
7245 return (void*)entry_vkFreeCommandBuffers;
7246 }
7247 if (!strcmp(name, "vkBeginCommandBuffer"))
7248 {
7249 return (void*)entry_vkBeginCommandBuffer;
7250 }
7251 if (!strcmp(name, "vkEndCommandBuffer"))
7252 {
7253 return (void*)entry_vkEndCommandBuffer;
7254 }
7255 if (!strcmp(name, "vkResetCommandBuffer"))
7256 {
7257 return (void*)entry_vkResetCommandBuffer;
7258 }
7259 if (!strcmp(name, "vkCmdBindPipeline"))
7260 {
7261 return (void*)entry_vkCmdBindPipeline;
7262 }
7263 if (!strcmp(name, "vkCmdSetViewport"))
7264 {
7265 return (void*)entry_vkCmdSetViewport;
7266 }
7267 if (!strcmp(name, "vkCmdSetScissor"))
7268 {
7269 return (void*)entry_vkCmdSetScissor;
7270 }
7271 if (!strcmp(name, "vkCmdSetLineWidth"))
7272 {
7273 return (void*)entry_vkCmdSetLineWidth;
7274 }
7275 if (!strcmp(name, "vkCmdSetDepthBias"))
7276 {
7277 return (void*)entry_vkCmdSetDepthBias;
7278 }
7279 if (!strcmp(name, "vkCmdSetBlendConstants"))
7280 {
7281 return (void*)entry_vkCmdSetBlendConstants;
7282 }
7283 if (!strcmp(name, "vkCmdSetDepthBounds"))
7284 {
7285 return (void*)entry_vkCmdSetDepthBounds;
7286 }
7287 if (!strcmp(name, "vkCmdSetStencilCompareMask"))
7288 {
7289 return (void*)entry_vkCmdSetStencilCompareMask;
7290 }
7291 if (!strcmp(name, "vkCmdSetStencilWriteMask"))
7292 {
7293 return (void*)entry_vkCmdSetStencilWriteMask;
7294 }
7295 if (!strcmp(name, "vkCmdSetStencilReference"))
7296 {
7297 return (void*)entry_vkCmdSetStencilReference;
7298 }
7299 if (!strcmp(name, "vkCmdBindDescriptorSets"))
7300 {
7301 return (void*)entry_vkCmdBindDescriptorSets;
7302 }
7303 if (!strcmp(name, "vkCmdBindIndexBuffer"))
7304 {
7305 return (void*)entry_vkCmdBindIndexBuffer;
7306 }
7307 if (!strcmp(name, "vkCmdBindVertexBuffers"))
7308 {
7309 return (void*)entry_vkCmdBindVertexBuffers;
7310 }
7311 if (!strcmp(name, "vkCmdDraw"))
7312 {
7313 return (void*)entry_vkCmdDraw;
7314 }
7315 if (!strcmp(name, "vkCmdDrawIndexed"))
7316 {
7317 return (void*)entry_vkCmdDrawIndexed;
7318 }
7319 if (!strcmp(name, "vkCmdDrawIndirect"))
7320 {
7321 return (void*)entry_vkCmdDrawIndirect;
7322 }
7323 if (!strcmp(name, "vkCmdDrawIndexedIndirect"))
7324 {
7325 return (void*)entry_vkCmdDrawIndexedIndirect;
7326 }
7327 if (!strcmp(name, "vkCmdDispatch"))
7328 {
7329 return (void*)entry_vkCmdDispatch;
7330 }
7331 if (!strcmp(name, "vkCmdDispatchIndirect"))
7332 {
7333 return (void*)entry_vkCmdDispatchIndirect;
7334 }
7335 if (!strcmp(name, "vkCmdCopyBuffer"))
7336 {
7337 return (void*)entry_vkCmdCopyBuffer;
7338 }
7339 if (!strcmp(name, "vkCmdCopyImage"))
7340 {
7341 return (void*)entry_vkCmdCopyImage;
7342 }
7343 if (!strcmp(name, "vkCmdBlitImage"))
7344 {
7345 return (void*)entry_vkCmdBlitImage;
7346 }
7347 if (!strcmp(name, "vkCmdCopyBufferToImage"))
7348 {
7349 return (void*)entry_vkCmdCopyBufferToImage;
7350 }
7351 if (!strcmp(name, "vkCmdCopyImageToBuffer"))
7352 {
7353 return (void*)entry_vkCmdCopyImageToBuffer;
7354 }
7355 if (!strcmp(name, "vkCmdUpdateBuffer"))
7356 {
7357 return (void*)entry_vkCmdUpdateBuffer;
7358 }
7359 if (!strcmp(name, "vkCmdFillBuffer"))
7360 {
7361 return (void*)entry_vkCmdFillBuffer;
7362 }
7363 if (!strcmp(name, "vkCmdClearColorImage"))
7364 {
7365 return (void*)entry_vkCmdClearColorImage;
7366 }
7367 if (!strcmp(name, "vkCmdClearDepthStencilImage"))
7368 {
7369 return (void*)entry_vkCmdClearDepthStencilImage;
7370 }
7371 if (!strcmp(name, "vkCmdClearAttachments"))
7372 {
7373 return (void*)entry_vkCmdClearAttachments;
7374 }
7375 if (!strcmp(name, "vkCmdResolveImage"))
7376 {
7377 return (void*)entry_vkCmdResolveImage;
7378 }
7379 if (!strcmp(name, "vkCmdSetEvent"))
7380 {
7381 return (void*)entry_vkCmdSetEvent;
7382 }
7383 if (!strcmp(name, "vkCmdResetEvent"))
7384 {
7385 return (void*)entry_vkCmdResetEvent;
7386 }
7387 if (!strcmp(name, "vkCmdWaitEvents"))
7388 {
7389 return (void*)entry_vkCmdWaitEvents;
7390 }
7391 if (!strcmp(name, "vkCmdPipelineBarrier"))
7392 {
7393 return (void*)entry_vkCmdPipelineBarrier;
7394 }
7395 if (!strcmp(name, "vkCmdBeginQuery"))
7396 {
7397 return (void*)entry_vkCmdBeginQuery;
7398 }
7399 if (!strcmp(name, "vkCmdEndQuery"))
7400 {
7401 return (void*)entry_vkCmdEndQuery;
7402 }
7403 if (!strcmp(name, "vkCmdResetQueryPool"))
7404 {
7405 return (void*)entry_vkCmdResetQueryPool;
7406 }
7407 if (!strcmp(name, "vkCmdWriteTimestamp"))
7408 {
7409 return (void*)entry_vkCmdWriteTimestamp;
7410 }
7411 if (!strcmp(name, "vkCmdCopyQueryPoolResults"))
7412 {
7413 return (void*)entry_vkCmdCopyQueryPoolResults;
7414 }
7415 if (!strcmp(name, "vkCmdPushConstants"))
7416 {
7417 return (void*)entry_vkCmdPushConstants;
7418 }
7419 if (!strcmp(name, "vkCmdBeginRenderPass"))
7420 {
7421 return (void*)entry_vkCmdBeginRenderPass;
7422 }
7423 if (!strcmp(name, "vkCmdNextSubpass"))
7424 {
7425 return (void*)entry_vkCmdNextSubpass;
7426 }
7427 if (!strcmp(name, "vkCmdEndRenderPass"))
7428 {
7429 return (void*)entry_vkCmdEndRenderPass;
7430 }
7431 if (!strcmp(name, "vkCmdExecuteCommands"))
7432 {
7433 return (void*)entry_vkCmdExecuteCommands;
7434 }
7435#endif
7436#ifdef VK_VERSION_1_1
7437 if (!strcmp(name, "vkEnumerateInstanceVersion"))
7438 {
7439 return has1_1OrHigher ? (void*)entry_vkEnumerateInstanceVersion : nullptr;
7440 }
7441 if (!strcmp(name, "vkBindBufferMemory2"))
7442 {
7443 return has1_1OrHigher ? (void*)entry_vkBindBufferMemory2 : nullptr;
7444 }
7445 if (!strcmp(name, "vkBindImageMemory2"))
7446 {
7447 return has1_1OrHigher ? (void*)entry_vkBindImageMemory2 : nullptr;
7448 }
7449 if (!strcmp(name, "vkGetDeviceGroupPeerMemoryFeatures"))
7450 {
7451 return has1_1OrHigher ? (void*)entry_vkGetDeviceGroupPeerMemoryFeatures : nullptr;
7452 }
7453 if (!strcmp(name, "vkCmdSetDeviceMask"))
7454 {
7455 return has1_1OrHigher ? (void*)entry_vkCmdSetDeviceMask : nullptr;
7456 }
7457 if (!strcmp(name, "vkCmdDispatchBase"))
7458 {
7459 return has1_1OrHigher ? (void*)entry_vkCmdDispatchBase : nullptr;
7460 }
7461 if (!strcmp(name, "vkEnumeratePhysicalDeviceGroups"))
7462 {
7463 return nullptr;
7464 }
7465 if (!strcmp(name, "vkGetImageMemoryRequirements2"))
7466 {
7467 return has1_1OrHigher ? (void*)entry_vkGetImageMemoryRequirements2 : nullptr;
7468 }
7469 if (!strcmp(name, "vkGetBufferMemoryRequirements2"))
7470 {
7471 return has1_1OrHigher ? (void*)entry_vkGetBufferMemoryRequirements2 : nullptr;
7472 }
7473 if (!strcmp(name, "vkGetImageSparseMemoryRequirements2"))
7474 {
7475 return has1_1OrHigher ? (void*)entry_vkGetImageSparseMemoryRequirements2 : nullptr;
7476 }
7477 if (!strcmp(name, "vkGetPhysicalDeviceFeatures2"))
7478 {
7479 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceFeatures2 : nullptr;
7480 }
7481 if (!strcmp(name, "vkGetPhysicalDeviceProperties2"))
7482 {
7483 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceProperties2 : nullptr;
7484 }
7485 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties2"))
7486 {
7487 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceFormatProperties2 : nullptr;
7488 }
7489 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties2"))
7490 {
7491 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceImageFormatProperties2 : nullptr;
7492 }
7493 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties2"))
7494 {
7495 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties2 : nullptr;
7496 }
7497 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties2"))
7498 {
7499 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceMemoryProperties2 : nullptr;
7500 }
7501 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties2"))
7502 {
7503 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties2 : nullptr;
7504 }
7505 if (!strcmp(name, "vkTrimCommandPool"))
7506 {
7507 return has1_1OrHigher ? (void*)entry_vkTrimCommandPool : nullptr;
7508 }
7509 if (!strcmp(name, "vkGetDeviceQueue2"))
7510 {
7511 return has1_1OrHigher ? (void*)entry_vkGetDeviceQueue2 : nullptr;
7512 }
7513 if (!strcmp(name, "vkCreateSamplerYcbcrConversion"))
7514 {
7515 return has1_1OrHigher ? (void*)entry_vkCreateSamplerYcbcrConversion : nullptr;
7516 }
7517 if (!strcmp(name, "vkDestroySamplerYcbcrConversion"))
7518 {
7519 return has1_1OrHigher ? (void*)entry_vkDestroySamplerYcbcrConversion : nullptr;
7520 }
7521 if (!strcmp(name, "vkCreateDescriptorUpdateTemplate"))
7522 {
7523 return has1_1OrHigher ? (void*)entry_vkCreateDescriptorUpdateTemplate : nullptr;
7524 }
7525 if (!strcmp(name, "vkDestroyDescriptorUpdateTemplate"))
7526 {
7527 return has1_1OrHigher ? (void*)entry_vkDestroyDescriptorUpdateTemplate : nullptr;
7528 }
7529 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplate"))
7530 {
7531 return has1_1OrHigher ? (void*)entry_vkUpdateDescriptorSetWithTemplate : nullptr;
7532 }
7533 if (!strcmp(name, "vkGetPhysicalDeviceExternalBufferProperties"))
7534 {
7535 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceExternalBufferProperties : nullptr;
7536 }
7537 if (!strcmp(name, "vkGetPhysicalDeviceExternalFenceProperties"))
7538 {
7539 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceExternalFenceProperties : nullptr;
7540 }
7541 if (!strcmp(name, "vkGetPhysicalDeviceExternalSemaphoreProperties"))
7542 {
7543 return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceExternalSemaphoreProperties : nullptr;
7544 }
7545 if (!strcmp(name, "vkGetDescriptorSetLayoutSupport"))
7546 {
7547 return has1_1OrHigher ? (void*)entry_vkGetDescriptorSetLayoutSupport : nullptr;
7548 }
7549#endif
7550#ifdef VK_KHR_surface
7551 if (!strcmp(name, "vkDestroySurfaceKHR"))
7552 {
7553 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_surface");
7554 return hasExt ? (void*)entry_vkDestroySurfaceKHR : nullptr;
7555 }
7556 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceSupportKHR"))
7557 {
7558 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_surface");
7559 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceSupportKHR : nullptr;
7560 }
7561 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR"))
7562 {
7563 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_surface");
7564 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceCapabilitiesKHR : nullptr;
7565 }
7566 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceFormatsKHR"))
7567 {
7568 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_surface");
7569 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceFormatsKHR : nullptr;
7570 }
7571 if (!strcmp(name, "vkGetPhysicalDeviceSurfacePresentModesKHR"))
7572 {
7573 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_surface");
7574 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfacePresentModesKHR : nullptr;
7575 }
7576#endif
7577#ifdef VK_KHR_swapchain
7578 if (!strcmp(name, "vkCreateSwapchainKHR"))
7579 {
7580 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7581 return hasExt ? (void*)entry_vkCreateSwapchainKHR : nullptr;
7582 }
7583 if (!strcmp(name, "vkDestroySwapchainKHR"))
7584 {
7585 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7586 return hasExt ? (void*)entry_vkDestroySwapchainKHR : nullptr;
7587 }
7588 if (!strcmp(name, "vkGetSwapchainImagesKHR"))
7589 {
7590 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7591 return hasExt ? (void*)entry_vkGetSwapchainImagesKHR : nullptr;
7592 }
7593 if (!strcmp(name, "vkAcquireNextImageKHR"))
7594 {
7595 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7596 return hasExt ? (void*)entry_vkAcquireNextImageKHR : nullptr;
7597 }
7598 if (!strcmp(name, "vkQueuePresentKHR"))
7599 {
7600 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7601 return hasExt ? (void*)entry_vkQueuePresentKHR : nullptr;
7602 }
7603 if (!strcmp(name, "vkGetDeviceGroupPresentCapabilitiesKHR"))
7604 {
7605 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7606 return hasExt ? (void*)entry_vkGetDeviceGroupPresentCapabilitiesKHR : nullptr;
7607 }
7608 if (!strcmp(name, "vkGetDeviceGroupSurfacePresentModesKHR"))
7609 {
7610 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7611 return hasExt ? (void*)entry_vkGetDeviceGroupSurfacePresentModesKHR : nullptr;
7612 }
7613 if (!strcmp(name, "vkGetPhysicalDevicePresentRectanglesKHR"))
7614 {
7615 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7616 return hasExt ? (void*)entry_vkGetPhysicalDevicePresentRectanglesKHR : nullptr;
7617 }
7618 if (!strcmp(name, "vkAcquireNextImage2KHR"))
7619 {
7620 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
7621 return hasExt ? (void*)entry_vkAcquireNextImage2KHR : nullptr;
7622 }
7623#endif
7624#ifdef VK_KHR_display
7625 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPropertiesKHR"))
7626 {
7627 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
7628 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayPropertiesKHR : nullptr;
7629 }
7630 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR"))
7631 {
7632 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
7633 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayPlanePropertiesKHR : nullptr;
7634 }
7635 if (!strcmp(name, "vkGetDisplayPlaneSupportedDisplaysKHR"))
7636 {
7637 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
7638 return hasExt ? (void*)entry_vkGetDisplayPlaneSupportedDisplaysKHR : nullptr;
7639 }
7640 if (!strcmp(name, "vkGetDisplayModePropertiesKHR"))
7641 {
7642 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
7643 return hasExt ? (void*)entry_vkGetDisplayModePropertiesKHR : nullptr;
7644 }
7645 if (!strcmp(name, "vkCreateDisplayModeKHR"))
7646 {
7647 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
7648 return hasExt ? (void*)entry_vkCreateDisplayModeKHR : nullptr;
7649 }
7650 if (!strcmp(name, "vkGetDisplayPlaneCapabilitiesKHR"))
7651 {
7652 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
7653 return hasExt ? (void*)entry_vkGetDisplayPlaneCapabilitiesKHR : nullptr;
7654 }
7655 if (!strcmp(name, "vkCreateDisplayPlaneSurfaceKHR"))
7656 {
7657 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
7658 return hasExt ? (void*)entry_vkCreateDisplayPlaneSurfaceKHR : nullptr;
7659 }
7660#endif
7661#ifdef VK_KHR_display_swapchain
7662 if (!strcmp(name, "vkCreateSharedSwapchainsKHR"))
7663 {
7664 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display_swapchain");
7665 return hasExt ? (void*)entry_vkCreateSharedSwapchainsKHR : nullptr;
7666 }
7667#endif
7668#ifdef VK_KHR_xlib_surface
7669 if (!strcmp(name, "vkCreateXlibSurfaceKHR"))
7670 {
7671 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_xlib_surface");
7672 return hasExt ? (void*)entry_vkCreateXlibSurfaceKHR : nullptr;
7673 }
7674 if (!strcmp(name, "vkGetPhysicalDeviceXlibPresentationSupportKHR"))
7675 {
7676 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_xlib_surface");
7677 return hasExt ? (void*)entry_vkGetPhysicalDeviceXlibPresentationSupportKHR : nullptr;
7678 }
7679#endif
7680#ifdef VK_KHR_xcb_surface
7681 if (!strcmp(name, "vkCreateXcbSurfaceKHR"))
7682 {
7683 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_xcb_surface");
7684 return hasExt ? (void*)entry_vkCreateXcbSurfaceKHR : nullptr;
7685 }
7686 if (!strcmp(name, "vkGetPhysicalDeviceXcbPresentationSupportKHR"))
7687 {
7688 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_xcb_surface");
7689 return hasExt ? (void*)entry_vkGetPhysicalDeviceXcbPresentationSupportKHR : nullptr;
7690 }
7691#endif
7692#ifdef VK_KHR_wayland_surface
7693 if (!strcmp(name, "vkCreateWaylandSurfaceKHR"))
7694 {
7695 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_wayland_surface");
7696 return hasExt ? (void*)entry_vkCreateWaylandSurfaceKHR : nullptr;
7697 }
7698 if (!strcmp(name, "vkGetPhysicalDeviceWaylandPresentationSupportKHR"))
7699 {
7700 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_wayland_surface");
7701 return hasExt ? (void*)entry_vkGetPhysicalDeviceWaylandPresentationSupportKHR : nullptr;
7702 }
7703#endif
7704#ifdef VK_KHR_mir_surface
7705 if (!strcmp(name, "vkCreateMirSurfaceKHR"))
7706 {
7707 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_mir_surface");
7708 return hasExt ? (void*)entry_vkCreateMirSurfaceKHR : nullptr;
7709 }
7710 if (!strcmp(name, "vkGetPhysicalDeviceMirPresentationSupportKHR"))
7711 {
7712 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_mir_surface");
7713 return hasExt ? (void*)entry_vkGetPhysicalDeviceMirPresentationSupportKHR : nullptr;
7714 }
7715#endif
7716#ifdef VK_KHR_android_surface
7717 if (!strcmp(name, "vkCreateAndroidSurfaceKHR"))
7718 {
7719 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_android_surface");
7720 return hasExt ? (void*)entry_vkCreateAndroidSurfaceKHR : nullptr;
7721 }
7722#endif
7723#ifdef VK_KHR_win32_surface
7724 if (!strcmp(name, "vkCreateWin32SurfaceKHR"))
7725 {
7726 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_win32_surface");
7727 return hasExt ? (void*)entry_vkCreateWin32SurfaceKHR : nullptr;
7728 }
7729 if (!strcmp(name, "vkGetPhysicalDeviceWin32PresentationSupportKHR"))
7730 {
7731 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_win32_surface");
7732 return hasExt ? (void*)entry_vkGetPhysicalDeviceWin32PresentationSupportKHR : nullptr;
7733 }
7734#endif
7735#ifdef VK_KHR_get_physical_device_properties2
7736 if (!strcmp(name, "vkGetPhysicalDeviceFeatures2KHR"))
7737 {
7738 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
7739 return hasExt ? (void*)entry_vkGetPhysicalDeviceFeatures2KHR : nullptr;
7740 }
7741 if (!strcmp(name, "vkGetPhysicalDeviceProperties2KHR"))
7742 {
7743 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
7744 return hasExt ? (void*)entry_vkGetPhysicalDeviceProperties2KHR : nullptr;
7745 }
7746 if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties2KHR"))
7747 {
7748 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
7749 return hasExt ? (void*)entry_vkGetPhysicalDeviceFormatProperties2KHR : nullptr;
7750 }
7751 if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties2KHR"))
7752 {
7753 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
7754 return hasExt ? (void*)entry_vkGetPhysicalDeviceImageFormatProperties2KHR : nullptr;
7755 }
7756 if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties2KHR"))
7757 {
7758 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
7759 return hasExt ? (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties2KHR : nullptr;
7760 }
7761 if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties2KHR"))
7762 {
7763 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
7764 return hasExt ? (void*)entry_vkGetPhysicalDeviceMemoryProperties2KHR : nullptr;
7765 }
7766 if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR"))
7767 {
7768 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
7769 return hasExt ? (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties2KHR : nullptr;
7770 }
7771#endif
7772#ifdef VK_KHR_device_group
7773 if (!strcmp(name, "vkGetDeviceGroupPeerMemoryFeaturesKHR"))
7774 {
7775 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_device_group");
7776 return hasExt ? (void*)entry_vkGetDeviceGroupPeerMemoryFeaturesKHR : nullptr;
7777 }
7778 if (!strcmp(name, "vkCmdSetDeviceMaskKHR"))
7779 {
7780 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_device_group");
7781 return hasExt ? (void*)entry_vkCmdSetDeviceMaskKHR : nullptr;
7782 }
7783 if (!strcmp(name, "vkCmdDispatchBaseKHR"))
7784 {
7785 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_device_group");
7786 return hasExt ? (void*)entry_vkCmdDispatchBaseKHR : nullptr;
7787 }
7788#endif
7789#ifdef VK_KHR_maintenance1
7790 if (!strcmp(name, "vkTrimCommandPoolKHR"))
7791 {
7792 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_maintenance1");
7793 return hasExt ? (void*)entry_vkTrimCommandPoolKHR : nullptr;
7794 }
7795#endif
7796#ifdef VK_KHR_device_group_creation
7797 if (!strcmp(name, "vkEnumeratePhysicalDeviceGroupsKHR"))
7798 {
7799 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_device_group_creation");
7800 return hasExt ? (void*)entry_vkEnumeratePhysicalDeviceGroupsKHR : nullptr;
7801 }
7802#endif
7803#ifdef VK_KHR_external_memory_capabilities
7804 if (!strcmp(name, "vkGetPhysicalDeviceExternalBufferPropertiesKHR"))
7805 {
7806 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_memory_capabilities");
7807 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalBufferPropertiesKHR : nullptr;
7808 }
7809#endif
7810#ifdef VK_KHR_external_memory_win32
7811 if (!strcmp(name, "vkGetMemoryWin32HandleKHR"))
7812 {
7813 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_memory_win32");
7814 return hasExt ? (void*)entry_vkGetMemoryWin32HandleKHR : nullptr;
7815 }
7816 if (!strcmp(name, "vkGetMemoryWin32HandlePropertiesKHR"))
7817 {
7818 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_memory_win32");
7819 return hasExt ? (void*)entry_vkGetMemoryWin32HandlePropertiesKHR : nullptr;
7820 }
7821#endif
7822#ifdef VK_KHR_external_memory_fd
7823 if (!strcmp(name, "vkGetMemoryFdKHR"))
7824 {
7825 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_memory_fd");
7826 return hasExt ? (void*)entry_vkGetMemoryFdKHR : nullptr;
7827 }
7828 if (!strcmp(name, "vkGetMemoryFdPropertiesKHR"))
7829 {
7830 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_memory_fd");
7831 return hasExt ? (void*)entry_vkGetMemoryFdPropertiesKHR : nullptr;
7832 }
7833#endif
7834#ifdef VK_KHR_external_semaphore_capabilities
7835 if (!strcmp(name, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR"))
7836 {
7837 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_semaphore_capabilities");
7838 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR : nullptr;
7839 }
7840#endif
7841#ifdef VK_KHR_external_semaphore_win32
7842 if (!strcmp(name, "vkImportSemaphoreWin32HandleKHR"))
7843 {
7844 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_semaphore_win32");
7845 return hasExt ? (void*)entry_vkImportSemaphoreWin32HandleKHR : nullptr;
7846 }
7847 if (!strcmp(name, "vkGetSemaphoreWin32HandleKHR"))
7848 {
7849 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_semaphore_win32");
7850 return hasExt ? (void*)entry_vkGetSemaphoreWin32HandleKHR : nullptr;
7851 }
7852#endif
7853#ifdef VK_KHR_external_semaphore_fd
7854 if (!strcmp(name, "vkImportSemaphoreFdKHR"))
7855 {
7856 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_semaphore_fd");
7857 return hasExt ? (void*)entry_vkImportSemaphoreFdKHR : nullptr;
7858 }
7859 if (!strcmp(name, "vkGetSemaphoreFdKHR"))
7860 {
7861 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_semaphore_fd");
7862 return hasExt ? (void*)entry_vkGetSemaphoreFdKHR : nullptr;
7863 }
7864#endif
7865#ifdef VK_KHR_push_descriptor
7866 if (!strcmp(name, "vkCmdPushDescriptorSetKHR"))
7867 {
7868 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_push_descriptor");
7869 return hasExt ? (void*)entry_vkCmdPushDescriptorSetKHR : nullptr;
7870 }
7871 if (!strcmp(name, "vkCmdPushDescriptorSetWithTemplateKHR"))
7872 {
7873 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_push_descriptor");
7874 return hasExt ? (void*)entry_vkCmdPushDescriptorSetWithTemplateKHR : nullptr;
7875 }
7876#endif
7877#ifdef VK_KHR_descriptor_update_template
7878 if (!strcmp(name, "vkCreateDescriptorUpdateTemplateKHR"))
7879 {
7880 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_descriptor_update_template");
7881 return hasExt ? (void*)entry_vkCreateDescriptorUpdateTemplateKHR : nullptr;
7882 }
7883 if (!strcmp(name, "vkDestroyDescriptorUpdateTemplateKHR"))
7884 {
7885 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_descriptor_update_template");
7886 return hasExt ? (void*)entry_vkDestroyDescriptorUpdateTemplateKHR : nullptr;
7887 }
7888 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplateKHR"))
7889 {
7890 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_descriptor_update_template");
7891 return hasExt ? (void*)entry_vkUpdateDescriptorSetWithTemplateKHR : nullptr;
7892 }
7893#endif
7894#ifdef VK_KHR_create_renderpass2
7895 if (!strcmp(name, "vkCreateRenderPass2KHR"))
7896 {
7897 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_create_renderpass2");
7898 return hasExt ? (void*)entry_vkCreateRenderPass2KHR : nullptr;
7899 }
7900 if (!strcmp(name, "vkCmdBeginRenderPass2KHR"))
7901 {
7902 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_create_renderpass2");
7903 return hasExt ? (void*)entry_vkCmdBeginRenderPass2KHR : nullptr;
7904 }
7905 if (!strcmp(name, "vkCmdNextSubpass2KHR"))
7906 {
7907 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_create_renderpass2");
7908 return hasExt ? (void*)entry_vkCmdNextSubpass2KHR : nullptr;
7909 }
7910 if (!strcmp(name, "vkCmdEndRenderPass2KHR"))
7911 {
7912 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_create_renderpass2");
7913 return hasExt ? (void*)entry_vkCmdEndRenderPass2KHR : nullptr;
7914 }
7915#endif
7916#ifdef VK_KHR_shared_presentable_image
7917 if (!strcmp(name, "vkGetSwapchainStatusKHR"))
7918 {
7919 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_shared_presentable_image");
7920 return hasExt ? (void*)entry_vkGetSwapchainStatusKHR : nullptr;
7921 }
7922#endif
7923#ifdef VK_KHR_external_fence_capabilities
7924 if (!strcmp(name, "vkGetPhysicalDeviceExternalFencePropertiesKHR"))
7925 {
7926 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_fence_capabilities");
7927 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalFencePropertiesKHR : nullptr;
7928 }
7929#endif
7930#ifdef VK_KHR_external_fence_win32
7931 if (!strcmp(name, "vkImportFenceWin32HandleKHR"))
7932 {
7933 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_fence_win32");
7934 return hasExt ? (void*)entry_vkImportFenceWin32HandleKHR : nullptr;
7935 }
7936 if (!strcmp(name, "vkGetFenceWin32HandleKHR"))
7937 {
7938 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_fence_win32");
7939 return hasExt ? (void*)entry_vkGetFenceWin32HandleKHR : nullptr;
7940 }
7941#endif
7942#ifdef VK_KHR_external_fence_fd
7943 if (!strcmp(name, "vkImportFenceFdKHR"))
7944 {
7945 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_fence_fd");
7946 return hasExt ? (void*)entry_vkImportFenceFdKHR : nullptr;
7947 }
7948 if (!strcmp(name, "vkGetFenceFdKHR"))
7949 {
7950 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_fence_fd");
7951 return hasExt ? (void*)entry_vkGetFenceFdKHR : nullptr;
7952 }
7953#endif
7954#ifdef VK_KHR_get_surface_capabilities2
7955 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2KHR"))
7956 {
7957 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_surface_capabilities2");
7958 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceCapabilities2KHR : nullptr;
7959 }
7960 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceFormats2KHR"))
7961 {
7962 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_surface_capabilities2");
7963 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceFormats2KHR : nullptr;
7964 }
7965#endif
7966#ifdef VK_KHR_get_display_properties2
7967 if (!strcmp(name, "vkGetPhysicalDeviceDisplayProperties2KHR"))
7968 {
7969 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_display_properties2");
7970 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayProperties2KHR : nullptr;
7971 }
7972 if (!strcmp(name, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR"))
7973 {
7974 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_display_properties2");
7975 return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayPlaneProperties2KHR : nullptr;
7976 }
7977 if (!strcmp(name, "vkGetDisplayModeProperties2KHR"))
7978 {
7979 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_display_properties2");
7980 return hasExt ? (void*)entry_vkGetDisplayModeProperties2KHR : nullptr;
7981 }
7982 if (!strcmp(name, "vkGetDisplayPlaneCapabilities2KHR"))
7983 {
7984 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_display_properties2");
7985 return hasExt ? (void*)entry_vkGetDisplayPlaneCapabilities2KHR : nullptr;
7986 }
7987#endif
7988#ifdef VK_KHR_get_memory_requirements2
7989 if (!strcmp(name, "vkGetImageMemoryRequirements2KHR"))
7990 {
7991 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_memory_requirements2");
7992 return hasExt ? (void*)entry_vkGetImageMemoryRequirements2KHR : nullptr;
7993 }
7994 if (!strcmp(name, "vkGetBufferMemoryRequirements2KHR"))
7995 {
7996 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_memory_requirements2");
7997 return hasExt ? (void*)entry_vkGetBufferMemoryRequirements2KHR : nullptr;
7998 }
7999 if (!strcmp(name, "vkGetImageSparseMemoryRequirements2KHR"))
8000 {
8001 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_memory_requirements2");
8002 return hasExt ? (void*)entry_vkGetImageSparseMemoryRequirements2KHR : nullptr;
8003 }
8004#endif
8005#ifdef VK_KHR_sampler_ycbcr_conversion
8006 if (!strcmp(name, "vkCreateSamplerYcbcrConversionKHR"))
8007 {
8008 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_sampler_ycbcr_conversion");
8009 return hasExt ? (void*)entry_vkCreateSamplerYcbcrConversionKHR : nullptr;
8010 }
8011 if (!strcmp(name, "vkDestroySamplerYcbcrConversionKHR"))
8012 {
8013 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_sampler_ycbcr_conversion");
8014 return hasExt ? (void*)entry_vkDestroySamplerYcbcrConversionKHR : nullptr;
8015 }
8016#endif
8017#ifdef VK_KHR_bind_memory2
8018 if (!strcmp(name, "vkBindBufferMemory2KHR"))
8019 {
8020 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_bind_memory2");
8021 return hasExt ? (void*)entry_vkBindBufferMemory2KHR : nullptr;
8022 }
8023 if (!strcmp(name, "vkBindImageMemory2KHR"))
8024 {
8025 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_bind_memory2");
8026 return hasExt ? (void*)entry_vkBindImageMemory2KHR : nullptr;
8027 }
8028#endif
8029#ifdef VK_KHR_maintenance3
8030 if (!strcmp(name, "vkGetDescriptorSetLayoutSupportKHR"))
8031 {
8032 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_maintenance3");
8033 return hasExt ? (void*)entry_vkGetDescriptorSetLayoutSupportKHR : nullptr;
8034 }
8035#endif
8036#ifdef VK_KHR_draw_indirect_count
8037 if (!strcmp(name, "vkCmdDrawIndirectCountKHR"))
8038 {
8039 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_draw_indirect_count");
8040 return hasExt ? (void*)entry_vkCmdDrawIndirectCountKHR : nullptr;
8041 }
8042 if (!strcmp(name, "vkCmdDrawIndexedIndirectCountKHR"))
8043 {
8044 bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_draw_indirect_count");
8045 return hasExt ? (void*)entry_vkCmdDrawIndexedIndirectCountKHR : nullptr;
8046 }
8047#endif
8048#ifdef VK_ANDROID_native_buffer
8049 if (!strcmp(name, "vkGetSwapchainGrallocUsageANDROID"))
8050 {
8051 bool hasExt = resources->hasDeviceExtension(device, "VK_ANDROID_native_buffer");
8052 return hasExt ? (void*)entry_vkGetSwapchainGrallocUsageANDROID : nullptr;
8053 }
8054 if (!strcmp(name, "vkAcquireImageANDROID"))
8055 {
8056 bool hasExt = resources->hasDeviceExtension(device, "VK_ANDROID_native_buffer");
8057 return hasExt ? (void*)entry_vkAcquireImageANDROID : nullptr;
8058 }
8059 if (!strcmp(name, "vkQueueSignalReleaseImageANDROID"))
8060 {
8061 bool hasExt = resources->hasDeviceExtension(device, "VK_ANDROID_native_buffer");
8062 return hasExt ? (void*)entry_vkQueueSignalReleaseImageANDROID : nullptr;
8063 }
8064#endif
8065#ifdef VK_EXT_debug_report
8066 if (!strcmp(name, "vkCreateDebugReportCallbackEXT"))
8067 {
8068 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_report");
8069 return hasExt ? (void*)entry_vkCreateDebugReportCallbackEXT : nullptr;
8070 }
8071 if (!strcmp(name, "vkDestroyDebugReportCallbackEXT"))
8072 {
8073 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_report");
8074 return hasExt ? (void*)entry_vkDestroyDebugReportCallbackEXT : nullptr;
8075 }
8076 if (!strcmp(name, "vkDebugReportMessageEXT"))
8077 {
8078 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_report");
8079 return hasExt ? (void*)entry_vkDebugReportMessageEXT : nullptr;
8080 }
8081#endif
8082#ifdef VK_EXT_debug_marker
8083 if (!strcmp(name, "vkDebugMarkerSetObjectTagEXT"))
8084 {
8085 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_marker");
8086 return hasExt ? (void*)entry_vkDebugMarkerSetObjectTagEXT : nullptr;
8087 }
8088 if (!strcmp(name, "vkDebugMarkerSetObjectNameEXT"))
8089 {
8090 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_marker");
8091 return hasExt ? (void*)entry_vkDebugMarkerSetObjectNameEXT : nullptr;
8092 }
8093 if (!strcmp(name, "vkCmdDebugMarkerBeginEXT"))
8094 {
8095 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_marker");
8096 return hasExt ? (void*)entry_vkCmdDebugMarkerBeginEXT : nullptr;
8097 }
8098 if (!strcmp(name, "vkCmdDebugMarkerEndEXT"))
8099 {
8100 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_marker");
8101 return hasExt ? (void*)entry_vkCmdDebugMarkerEndEXT : nullptr;
8102 }
8103 if (!strcmp(name, "vkCmdDebugMarkerInsertEXT"))
8104 {
8105 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_marker");
8106 return hasExt ? (void*)entry_vkCmdDebugMarkerInsertEXT : nullptr;
8107 }
8108#endif
8109#ifdef VK_AMD_draw_indirect_count
8110 if (!strcmp(name, "vkCmdDrawIndirectCountAMD"))
8111 {
8112 bool hasExt = resources->hasDeviceExtension(device, "VK_AMD_draw_indirect_count");
8113 return hasExt ? (void*)entry_vkCmdDrawIndirectCountAMD : nullptr;
8114 }
8115 if (!strcmp(name, "vkCmdDrawIndexedIndirectCountAMD"))
8116 {
8117 bool hasExt = resources->hasDeviceExtension(device, "VK_AMD_draw_indirect_count");
8118 return hasExt ? (void*)entry_vkCmdDrawIndexedIndirectCountAMD : nullptr;
8119 }
8120#endif
8121#ifdef VK_AMD_shader_info
8122 if (!strcmp(name, "vkGetShaderInfoAMD"))
8123 {
8124 bool hasExt = resources->hasDeviceExtension(device, "VK_AMD_shader_info");
8125 return hasExt ? (void*)entry_vkGetShaderInfoAMD : nullptr;
8126 }
8127#endif
8128#ifdef VK_NV_external_memory_capabilities
8129 if (!strcmp(name, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV"))
8130 {
8131 bool hasExt = resources->hasDeviceExtension(device, "VK_NV_external_memory_capabilities");
8132 return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalImageFormatPropertiesNV : nullptr;
8133 }
8134#endif
8135#ifdef VK_NV_external_memory_win32
8136 if (!strcmp(name, "vkGetMemoryWin32HandleNV"))
8137 {
8138 bool hasExt = resources->hasDeviceExtension(device, "VK_NV_external_memory_win32");
8139 return hasExt ? (void*)entry_vkGetMemoryWin32HandleNV : nullptr;
8140 }
8141#endif
8142#ifdef VK_NN_vi_surface
8143 if (!strcmp(name, "vkCreateViSurfaceNN"))
8144 {
8145 bool hasExt = resources->hasDeviceExtension(device, "VK_NN_vi_surface");
8146 return hasExt ? (void*)entry_vkCreateViSurfaceNN : nullptr;
8147 }
8148#endif
8149#ifdef VK_EXT_conditional_rendering
8150 if (!strcmp(name, "vkCmdBeginConditionalRenderingEXT"))
8151 {
8152 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_conditional_rendering");
8153 return hasExt ? (void*)entry_vkCmdBeginConditionalRenderingEXT : nullptr;
8154 }
8155 if (!strcmp(name, "vkCmdEndConditionalRenderingEXT"))
8156 {
8157 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_conditional_rendering");
8158 return hasExt ? (void*)entry_vkCmdEndConditionalRenderingEXT : nullptr;
8159 }
8160#endif
8161#ifdef VK_NVX_device_generated_commands
8162 if (!strcmp(name, "vkCmdProcessCommandsNVX"))
8163 {
8164 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
8165 return hasExt ? (void*)entry_vkCmdProcessCommandsNVX : nullptr;
8166 }
8167 if (!strcmp(name, "vkCmdReserveSpaceForCommandsNVX"))
8168 {
8169 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
8170 return hasExt ? (void*)entry_vkCmdReserveSpaceForCommandsNVX : nullptr;
8171 }
8172 if (!strcmp(name, "vkCreateIndirectCommandsLayoutNVX"))
8173 {
8174 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
8175 return hasExt ? (void*)entry_vkCreateIndirectCommandsLayoutNVX : nullptr;
8176 }
8177 if (!strcmp(name, "vkDestroyIndirectCommandsLayoutNVX"))
8178 {
8179 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
8180 return hasExt ? (void*)entry_vkDestroyIndirectCommandsLayoutNVX : nullptr;
8181 }
8182 if (!strcmp(name, "vkCreateObjectTableNVX"))
8183 {
8184 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
8185 return hasExt ? (void*)entry_vkCreateObjectTableNVX : nullptr;
8186 }
8187 if (!strcmp(name, "vkDestroyObjectTableNVX"))
8188 {
8189 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
8190 return hasExt ? (void*)entry_vkDestroyObjectTableNVX : nullptr;
8191 }
8192 if (!strcmp(name, "vkRegisterObjectsNVX"))
8193 {
8194 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
8195 return hasExt ? (void*)entry_vkRegisterObjectsNVX : nullptr;
8196 }
8197 if (!strcmp(name, "vkUnregisterObjectsNVX"))
8198 {
8199 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
8200 return hasExt ? (void*)entry_vkUnregisterObjectsNVX : nullptr;
8201 }
8202 if (!strcmp(name, "vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX"))
8203 {
8204 bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
8205 return hasExt ? (void*)entry_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX : nullptr;
8206 }
8207#endif
8208#ifdef VK_NV_clip_space_w_scaling
8209 if (!strcmp(name, "vkCmdSetViewportWScalingNV"))
8210 {
8211 bool hasExt = resources->hasDeviceExtension(device, "VK_NV_clip_space_w_scaling");
8212 return hasExt ? (void*)entry_vkCmdSetViewportWScalingNV : nullptr;
8213 }
8214#endif
8215#ifdef VK_EXT_direct_mode_display
8216 if (!strcmp(name, "vkReleaseDisplayEXT"))
8217 {
8218 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_direct_mode_display");
8219 return hasExt ? (void*)entry_vkReleaseDisplayEXT : nullptr;
8220 }
8221#endif
8222#ifdef VK_EXT_acquire_xlib_display
8223 if (!strcmp(name, "vkAcquireXlibDisplayEXT"))
8224 {
8225 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_acquire_xlib_display");
8226 return hasExt ? (void*)entry_vkAcquireXlibDisplayEXT : nullptr;
8227 }
8228 if (!strcmp(name, "vkGetRandROutputDisplayEXT"))
8229 {
8230 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_acquire_xlib_display");
8231 return hasExt ? (void*)entry_vkGetRandROutputDisplayEXT : nullptr;
8232 }
8233#endif
8234#ifdef VK_EXT_display_surface_counter
8235 if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2EXT"))
8236 {
8237 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_display_surface_counter");
8238 return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceCapabilities2EXT : nullptr;
8239 }
8240#endif
8241#ifdef VK_EXT_display_control
8242 if (!strcmp(name, "vkDisplayPowerControlEXT"))
8243 {
8244 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_display_control");
8245 return hasExt ? (void*)entry_vkDisplayPowerControlEXT : nullptr;
8246 }
8247 if (!strcmp(name, "vkRegisterDeviceEventEXT"))
8248 {
8249 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_display_control");
8250 return hasExt ? (void*)entry_vkRegisterDeviceEventEXT : nullptr;
8251 }
8252 if (!strcmp(name, "vkRegisterDisplayEventEXT"))
8253 {
8254 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_display_control");
8255 return hasExt ? (void*)entry_vkRegisterDisplayEventEXT : nullptr;
8256 }
8257 if (!strcmp(name, "vkGetSwapchainCounterEXT"))
8258 {
8259 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_display_control");
8260 return hasExt ? (void*)entry_vkGetSwapchainCounterEXT : nullptr;
8261 }
8262#endif
8263#ifdef VK_GOOGLE_display_timing
8264 if (!strcmp(name, "vkGetRefreshCycleDurationGOOGLE"))
8265 {
8266 bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_display_timing");
8267 return hasExt ? (void*)entry_vkGetRefreshCycleDurationGOOGLE : nullptr;
8268 }
8269 if (!strcmp(name, "vkGetPastPresentationTimingGOOGLE"))
8270 {
8271 bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_display_timing");
8272 return hasExt ? (void*)entry_vkGetPastPresentationTimingGOOGLE : nullptr;
8273 }
8274#endif
8275#ifdef VK_EXT_discard_rectangles
8276 if (!strcmp(name, "vkCmdSetDiscardRectangleEXT"))
8277 {
8278 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_discard_rectangles");
8279 return hasExt ? (void*)entry_vkCmdSetDiscardRectangleEXT : nullptr;
8280 }
8281#endif
8282#ifdef VK_EXT_hdr_metadata
8283 if (!strcmp(name, "vkSetHdrMetadataEXT"))
8284 {
8285 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_hdr_metadata");
8286 return hasExt ? (void*)entry_vkSetHdrMetadataEXT : nullptr;
8287 }
8288#endif
8289#ifdef VK_MVK_ios_surface
8290 if (!strcmp(name, "vkCreateIOSSurfaceMVK"))
8291 {
8292 bool hasExt = resources->hasDeviceExtension(device, "VK_MVK_ios_surface");
8293 return hasExt ? (void*)entry_vkCreateIOSSurfaceMVK : nullptr;
8294 }
8295#endif
8296#ifdef VK_MVK_macos_surface
8297 if (!strcmp(name, "vkCreateMacOSSurfaceMVK"))
8298 {
8299 bool hasExt = resources->hasDeviceExtension(device, "VK_MVK_macos_surface");
8300 return hasExt ? (void*)entry_vkCreateMacOSSurfaceMVK : nullptr;
8301 }
8302#endif
8303#ifdef VK_EXT_debug_utils
8304 if (!strcmp(name, "vkSetDebugUtilsObjectNameEXT"))
8305 {
8306 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8307 return hasExt ? (void*)entry_vkSetDebugUtilsObjectNameEXT : nullptr;
8308 }
8309 if (!strcmp(name, "vkSetDebugUtilsObjectTagEXT"))
8310 {
8311 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8312 return hasExt ? (void*)entry_vkSetDebugUtilsObjectTagEXT : nullptr;
8313 }
8314 if (!strcmp(name, "vkQueueBeginDebugUtilsLabelEXT"))
8315 {
8316 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8317 return hasExt ? (void*)entry_vkQueueBeginDebugUtilsLabelEXT : nullptr;
8318 }
8319 if (!strcmp(name, "vkQueueEndDebugUtilsLabelEXT"))
8320 {
8321 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8322 return hasExt ? (void*)entry_vkQueueEndDebugUtilsLabelEXT : nullptr;
8323 }
8324 if (!strcmp(name, "vkQueueInsertDebugUtilsLabelEXT"))
8325 {
8326 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8327 return hasExt ? (void*)entry_vkQueueInsertDebugUtilsLabelEXT : nullptr;
8328 }
8329 if (!strcmp(name, "vkCmdBeginDebugUtilsLabelEXT"))
8330 {
8331 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8332 return hasExt ? (void*)entry_vkCmdBeginDebugUtilsLabelEXT : nullptr;
8333 }
8334 if (!strcmp(name, "vkCmdEndDebugUtilsLabelEXT"))
8335 {
8336 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8337 return hasExt ? (void*)entry_vkCmdEndDebugUtilsLabelEXT : nullptr;
8338 }
8339 if (!strcmp(name, "vkCmdInsertDebugUtilsLabelEXT"))
8340 {
8341 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8342 return hasExt ? (void*)entry_vkCmdInsertDebugUtilsLabelEXT : nullptr;
8343 }
8344 if (!strcmp(name, "vkCreateDebugUtilsMessengerEXT"))
8345 {
8346 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8347 return hasExt ? (void*)entry_vkCreateDebugUtilsMessengerEXT : nullptr;
8348 }
8349 if (!strcmp(name, "vkDestroyDebugUtilsMessengerEXT"))
8350 {
8351 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8352 return hasExt ? (void*)entry_vkDestroyDebugUtilsMessengerEXT : nullptr;
8353 }
8354 if (!strcmp(name, "vkSubmitDebugUtilsMessageEXT"))
8355 {
8356 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
8357 return hasExt ? (void*)entry_vkSubmitDebugUtilsMessageEXT : nullptr;
8358 }
8359#endif
8360#ifdef VK_ANDROID_external_memory_android_hardware_buffer
8361 if (!strcmp(name, "vkGetAndroidHardwareBufferPropertiesANDROID"))
8362 {
8363 bool hasExt = resources->hasDeviceExtension(device, "VK_ANDROID_external_memory_android_hardware_buffer");
8364 return hasExt ? (void*)entry_vkGetAndroidHardwareBufferPropertiesANDROID : nullptr;
8365 }
8366 if (!strcmp(name, "vkGetMemoryAndroidHardwareBufferANDROID"))
8367 {
8368 bool hasExt = resources->hasDeviceExtension(device, "VK_ANDROID_external_memory_android_hardware_buffer");
8369 return hasExt ? (void*)entry_vkGetMemoryAndroidHardwareBufferANDROID : nullptr;
8370 }
8371#endif
8372#ifdef VK_EXT_sample_locations
8373 if (!strcmp(name, "vkCmdSetSampleLocationsEXT"))
8374 {
8375 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_sample_locations");
8376 return hasExt ? (void*)entry_vkCmdSetSampleLocationsEXT : nullptr;
8377 }
8378 if (!strcmp(name, "vkGetPhysicalDeviceMultisamplePropertiesEXT"))
8379 {
8380 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_sample_locations");
8381 return hasExt ? (void*)entry_vkGetPhysicalDeviceMultisamplePropertiesEXT : nullptr;
8382 }
8383#endif
8384#ifdef VK_EXT_validation_cache
8385 if (!strcmp(name, "vkCreateValidationCacheEXT"))
8386 {
8387 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_validation_cache");
8388 return hasExt ? (void*)entry_vkCreateValidationCacheEXT : nullptr;
8389 }
8390 if (!strcmp(name, "vkDestroyValidationCacheEXT"))
8391 {
8392 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_validation_cache");
8393 return hasExt ? (void*)entry_vkDestroyValidationCacheEXT : nullptr;
8394 }
8395 if (!strcmp(name, "vkMergeValidationCachesEXT"))
8396 {
8397 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_validation_cache");
8398 return hasExt ? (void*)entry_vkMergeValidationCachesEXT : nullptr;
8399 }
8400 if (!strcmp(name, "vkGetValidationCacheDataEXT"))
8401 {
8402 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_validation_cache");
8403 return hasExt ? (void*)entry_vkGetValidationCacheDataEXT : nullptr;
8404 }
8405#endif
8406#ifdef VK_EXT_external_memory_host
8407 if (!strcmp(name, "vkGetMemoryHostPointerPropertiesEXT"))
8408 {
8409 bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_external_memory_host");
8410 return hasExt ? (void*)entry_vkGetMemoryHostPointerPropertiesEXT : nullptr;
8411 }
8412#endif
8413#ifdef VK_AMD_buffer_marker
8414 if (!strcmp(name, "vkCmdWriteBufferMarkerAMD"))
8415 {
8416 bool hasExt = resources->hasDeviceExtension(device, "VK_AMD_buffer_marker");
8417 return hasExt ? (void*)entry_vkCmdWriteBufferMarkerAMD : nullptr;
8418 }
8419#endif
8420#ifdef VK_NV_device_diagnostic_checkpoints
8421 if (!strcmp(name, "vkCmdSetCheckpointNV"))
8422 {
8423 bool hasExt = resources->hasDeviceExtension(device, "VK_NV_device_diagnostic_checkpoints");
8424 return hasExt ? (void*)entry_vkCmdSetCheckpointNV : nullptr;
8425 }
8426 if (!strcmp(name, "vkGetQueueCheckpointDataNV"))
8427 {
8428 bool hasExt = resources->hasDeviceExtension(device, "VK_NV_device_diagnostic_checkpoints");
8429 return hasExt ? (void*)entry_vkGetQueueCheckpointDataNV : nullptr;
8430 }
8431#endif
8432#ifdef VK_GOOGLE_address_space
8433 if (!strcmp(name, "vkMapMemoryIntoAddressSpaceGOOGLE"))
8434 {
8435 bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_address_space");
8436 return hasExt ? (void*)entry_vkMapMemoryIntoAddressSpaceGOOGLE : nullptr;
Lingfeng Yang5c63afd2018-12-22 01:21:14 -08008437 }
8438#endif
Lingfeng Yangae7e1b32019-02-19 14:07:39 -08008439#ifdef VK_GOOGLE_color_buffer
8440 if (!strcmp(name, "vkRegisterImageColorBufferGOOGLE"))
8441 {
8442 bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_color_buffer");
8443 return hasExt ? (void*)entry_vkRegisterImageColorBufferGOOGLE : nullptr;
8444 }
8445 if (!strcmp(name, "vkRegisterBufferColorBufferGOOGLE"))
8446 {
8447 bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_color_buffer");
8448 return hasExt ? (void*)entry_vkRegisterBufferColorBufferGOOGLE : nullptr;
8449 }
8450#endif
Lingfeng Yang05d5ea32019-03-23 00:12:39 -07008451#ifdef VK_GOOGLE_sized_descriptor_update_template
8452 if (!strcmp(name, "vkUpdateDescriptorSetWithTemplateSizedGOOGLE"))
8453 {
8454 bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_sized_descriptor_update_template");
8455 return hasExt ? (void*)entry_vkUpdateDescriptorSetWithTemplateSizedGOOGLE : nullptr;
8456 }
8457#endif
Lingfeng Yangc53e7472019-03-27 08:50:55 -07008458#ifdef VK_GOOGLE_async_command_buffers
8459 if (!strcmp(name, "vkBeginCommandBufferAsyncGOOGLE"))
8460 {
8461 bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_async_command_buffers");
8462 return hasExt ? (void*)entry_vkBeginCommandBufferAsyncGOOGLE : nullptr;
8463 }
8464 if (!strcmp(name, "vkEndCommandBufferAsyncGOOGLE"))
8465 {
8466 bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_async_command_buffers");
8467 return hasExt ? (void*)entry_vkEndCommandBufferAsyncGOOGLE : nullptr;
8468 }
8469 if (!strcmp(name, "vkResetCommandBufferAsyncGOOGLE"))
8470 {
8471 bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_async_command_buffers");
8472 return hasExt ? (void*)entry_vkResetCommandBufferAsyncGOOGLE : nullptr;
8473 }
Lingfeng Yang39a276e2019-06-17 13:27:22 -07008474 if (!strcmp(name, "vkCommandBufferHostSyncGOOGLE"))
8475 {
8476 bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_async_command_buffers");
8477 return hasExt ? (void*)entry_vkCommandBufferHostSyncGOOGLE : nullptr;
8478 }
Lingfeng Yangc53e7472019-03-27 08:50:55 -07008479#endif
Lingfeng Yang0b81df22018-11-05 21:40:30 -08008480 return nullptr;
8481}
8482
8483} // namespace goldfish_vk