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