1 // 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 "../OpenglSystemCommon/HostConnection.h"
30 #include "ResourceTracker.h"
31
32 #include "goldfish_vk_private_defs.h"
33
34 #include <log/log.h>
35
36 // Stuff we are not going to use but if included,
37 // will cause compile errors. These are Android Vulkan
38 // required extensions, but the approach will be to
39 // implement them completely on the guest side.
40 #undef VK_KHR_android_surface
41
42
43 namespace goldfish_vk {
44
sOnInvalidDynamicallyCheckedCall(const char * apiname,const char * neededFeature)45 static void sOnInvalidDynamicallyCheckedCall(const char* apiname, const char* neededFeature)
46 {
47 ALOGE("invalid call to %s: %s not supported", apiname, neededFeature);
48 abort();
49 }
50 #ifdef VK_VERSION_1_0
entry_vkCreateInstance(const VkInstanceCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkInstance * pInstance)51 static VkResult entry_vkCreateInstance(
52 const VkInstanceCreateInfo* pCreateInfo,
53 const VkAllocationCallbacks* pAllocator,
54 VkInstance* pInstance)
55 {
56 AEMU_SCOPED_TRACE("vkCreateInstance");
57 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
58 VkResult vkCreateInstance_VkResult_return = (VkResult)0;
59 vkCreateInstance_VkResult_return = vkEnc->vkCreateInstance(pCreateInfo, pAllocator, pInstance, true /* do lock */);
60 return vkCreateInstance_VkResult_return;
61 }
entry_vkDestroyInstance(VkInstance instance,const VkAllocationCallbacks * pAllocator)62 static void entry_vkDestroyInstance(
63 VkInstance instance,
64 const VkAllocationCallbacks* pAllocator)
65 {
66 AEMU_SCOPED_TRACE("vkDestroyInstance");
67 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
68 vkEnc->vkDestroyInstance(instance, pAllocator, true /* do lock */);
69 }
entry_vkEnumeratePhysicalDevices(VkInstance instance,uint32_t * pPhysicalDeviceCount,VkPhysicalDevice * pPhysicalDevices)70 static VkResult entry_vkEnumeratePhysicalDevices(
71 VkInstance instance,
72 uint32_t* pPhysicalDeviceCount,
73 VkPhysicalDevice* pPhysicalDevices)
74 {
75 AEMU_SCOPED_TRACE("vkEnumeratePhysicalDevices");
76 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
77 VkResult vkEnumeratePhysicalDevices_VkResult_return = (VkResult)0;
78 auto resources = ResourceTracker::get();
79 vkEnumeratePhysicalDevices_VkResult_return = resources->on_vkEnumeratePhysicalDevices(vkEnc, VK_SUCCESS, instance, pPhysicalDeviceCount, pPhysicalDevices);
80 return vkEnumeratePhysicalDevices_VkResult_return;
81 }
entry_vkGetPhysicalDeviceFeatures(VkPhysicalDevice physicalDevice,VkPhysicalDeviceFeatures * pFeatures)82 static void entry_vkGetPhysicalDeviceFeatures(
83 VkPhysicalDevice physicalDevice,
84 VkPhysicalDeviceFeatures* pFeatures)
85 {
86 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFeatures");
87 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
88 vkEnc->vkGetPhysicalDeviceFeatures(physicalDevice, pFeatures, true /* do lock */);
89 }
entry_vkGetPhysicalDeviceFormatProperties(VkPhysicalDevice physicalDevice,VkFormat format,VkFormatProperties * pFormatProperties)90 static void entry_vkGetPhysicalDeviceFormatProperties(
91 VkPhysicalDevice physicalDevice,
92 VkFormat format,
93 VkFormatProperties* pFormatProperties)
94 {
95 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFormatProperties");
96 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
97 vkEnc->vkGetPhysicalDeviceFormatProperties(physicalDevice, format, pFormatProperties, true /* do lock */);
98 }
entry_vkGetPhysicalDeviceImageFormatProperties(VkPhysicalDevice physicalDevice,VkFormat format,VkImageType type,VkImageTiling tiling,VkImageUsageFlags usage,VkImageCreateFlags flags,VkImageFormatProperties * pImageFormatProperties)99 static VkResult entry_vkGetPhysicalDeviceImageFormatProperties(
100 VkPhysicalDevice physicalDevice,
101 VkFormat format,
102 VkImageType type,
103 VkImageTiling tiling,
104 VkImageUsageFlags usage,
105 VkImageCreateFlags flags,
106 VkImageFormatProperties* pImageFormatProperties)
107 {
108 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceImageFormatProperties");
109 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
110 VkResult vkGetPhysicalDeviceImageFormatProperties_VkResult_return = (VkResult)0;
111 vkGetPhysicalDeviceImageFormatProperties_VkResult_return = vkEnc->vkGetPhysicalDeviceImageFormatProperties(physicalDevice, format, type, tiling, usage, flags, pImageFormatProperties, true /* do lock */);
112 return vkGetPhysicalDeviceImageFormatProperties_VkResult_return;
113 }
entry_vkGetPhysicalDeviceProperties(VkPhysicalDevice physicalDevice,VkPhysicalDeviceProperties * pProperties)114 static void entry_vkGetPhysicalDeviceProperties(
115 VkPhysicalDevice physicalDevice,
116 VkPhysicalDeviceProperties* pProperties)
117 {
118 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceProperties");
119 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
120 vkEnc->vkGetPhysicalDeviceProperties(physicalDevice, pProperties, true /* do lock */);
121 }
entry_vkGetPhysicalDeviceQueueFamilyProperties(VkPhysicalDevice physicalDevice,uint32_t * pQueueFamilyPropertyCount,VkQueueFamilyProperties * pQueueFamilyProperties)122 static void entry_vkGetPhysicalDeviceQueueFamilyProperties(
123 VkPhysicalDevice physicalDevice,
124 uint32_t* pQueueFamilyPropertyCount,
125 VkQueueFamilyProperties* pQueueFamilyProperties)
126 {
127 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceQueueFamilyProperties");
128 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
129 vkEnc->vkGetPhysicalDeviceQueueFamilyProperties(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties, true /* do lock */);
130 }
entry_vkGetPhysicalDeviceMemoryProperties(VkPhysicalDevice physicalDevice,VkPhysicalDeviceMemoryProperties * pMemoryProperties)131 static void entry_vkGetPhysicalDeviceMemoryProperties(
132 VkPhysicalDevice physicalDevice,
133 VkPhysicalDeviceMemoryProperties* pMemoryProperties)
134 {
135 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMemoryProperties");
136 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
137 vkEnc->vkGetPhysicalDeviceMemoryProperties(physicalDevice, pMemoryProperties, true /* do lock */);
138 }
entry_vkGetInstanceProcAddr(VkInstance instance,const char * pName)139 static PFN_vkVoidFunction entry_vkGetInstanceProcAddr(
140 VkInstance instance,
141 const char* pName)
142 {
143 AEMU_SCOPED_TRACE("vkGetInstanceProcAddr");
144 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
145 PFN_vkVoidFunction vkGetInstanceProcAddr_PFN_vkVoidFunction_return = (PFN_vkVoidFunction)0;
146 vkGetInstanceProcAddr_PFN_vkVoidFunction_return = vkEnc->vkGetInstanceProcAddr(instance, pName, true /* do lock */);
147 return vkGetInstanceProcAddr_PFN_vkVoidFunction_return;
148 }
entry_vkGetDeviceProcAddr(VkDevice device,const char * pName)149 static PFN_vkVoidFunction entry_vkGetDeviceProcAddr(
150 VkDevice device,
151 const char* pName)
152 {
153 AEMU_SCOPED_TRACE("vkGetDeviceProcAddr");
154 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
155 PFN_vkVoidFunction vkGetDeviceProcAddr_PFN_vkVoidFunction_return = (PFN_vkVoidFunction)0;
156 vkGetDeviceProcAddr_PFN_vkVoidFunction_return = vkEnc->vkGetDeviceProcAddr(device, pName, true /* do lock */);
157 return vkGetDeviceProcAddr_PFN_vkVoidFunction_return;
158 }
entry_vkCreateDevice(VkPhysicalDevice physicalDevice,const VkDeviceCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDevice * pDevice)159 static VkResult entry_vkCreateDevice(
160 VkPhysicalDevice physicalDevice,
161 const VkDeviceCreateInfo* pCreateInfo,
162 const VkAllocationCallbacks* pAllocator,
163 VkDevice* pDevice)
164 {
165 AEMU_SCOPED_TRACE("vkCreateDevice");
166 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
167 VkResult vkCreateDevice_VkResult_return = (VkResult)0;
168 vkCreateDevice_VkResult_return = vkEnc->vkCreateDevice(physicalDevice, pCreateInfo, pAllocator, pDevice, true /* do lock */);
169 return vkCreateDevice_VkResult_return;
170 }
entry_vkDestroyDevice(VkDevice device,const VkAllocationCallbacks * pAllocator)171 static void entry_vkDestroyDevice(
172 VkDevice device,
173 const VkAllocationCallbacks* pAllocator)
174 {
175 AEMU_SCOPED_TRACE("vkDestroyDevice");
176 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
177 vkEnc->vkDestroyDevice(device, pAllocator, true /* do lock */);
178 }
entry_vkEnumerateInstanceExtensionProperties(const char * pLayerName,uint32_t * pPropertyCount,VkExtensionProperties * pProperties)179 static VkResult entry_vkEnumerateInstanceExtensionProperties(
180 const char* pLayerName,
181 uint32_t* pPropertyCount,
182 VkExtensionProperties* pProperties)
183 {
184 AEMU_SCOPED_TRACE("vkEnumerateInstanceExtensionProperties");
185 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
186 VkResult vkEnumerateInstanceExtensionProperties_VkResult_return = (VkResult)0;
187 auto resources = ResourceTracker::get();
188 vkEnumerateInstanceExtensionProperties_VkResult_return = resources->on_vkEnumerateInstanceExtensionProperties(vkEnc, VK_SUCCESS, pLayerName, pPropertyCount, pProperties);
189 return vkEnumerateInstanceExtensionProperties_VkResult_return;
190 }
entry_vkEnumerateDeviceExtensionProperties(VkPhysicalDevice physicalDevice,const char * pLayerName,uint32_t * pPropertyCount,VkExtensionProperties * pProperties)191 static VkResult entry_vkEnumerateDeviceExtensionProperties(
192 VkPhysicalDevice physicalDevice,
193 const char* pLayerName,
194 uint32_t* pPropertyCount,
195 VkExtensionProperties* pProperties)
196 {
197 AEMU_SCOPED_TRACE("vkEnumerateDeviceExtensionProperties");
198 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
199 VkResult vkEnumerateDeviceExtensionProperties_VkResult_return = (VkResult)0;
200 auto resources = ResourceTracker::get();
201 vkEnumerateDeviceExtensionProperties_VkResult_return = resources->on_vkEnumerateDeviceExtensionProperties(vkEnc, VK_SUCCESS, physicalDevice, pLayerName, pPropertyCount, pProperties);
202 return vkEnumerateDeviceExtensionProperties_VkResult_return;
203 }
entry_vkEnumerateInstanceLayerProperties(uint32_t * pPropertyCount,VkLayerProperties * pProperties)204 static VkResult entry_vkEnumerateInstanceLayerProperties(
205 uint32_t* pPropertyCount,
206 VkLayerProperties* pProperties)
207 {
208 AEMU_SCOPED_TRACE("vkEnumerateInstanceLayerProperties");
209 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
210 VkResult vkEnumerateInstanceLayerProperties_VkResult_return = (VkResult)0;
211 vkEnumerateInstanceLayerProperties_VkResult_return = vkEnc->vkEnumerateInstanceLayerProperties(pPropertyCount, pProperties, true /* do lock */);
212 return vkEnumerateInstanceLayerProperties_VkResult_return;
213 }
entry_vkEnumerateDeviceLayerProperties(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkLayerProperties * pProperties)214 static VkResult entry_vkEnumerateDeviceLayerProperties(
215 VkPhysicalDevice physicalDevice,
216 uint32_t* pPropertyCount,
217 VkLayerProperties* pProperties)
218 {
219 AEMU_SCOPED_TRACE("vkEnumerateDeviceLayerProperties");
220 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
221 VkResult vkEnumerateDeviceLayerProperties_VkResult_return = (VkResult)0;
222 vkEnumerateDeviceLayerProperties_VkResult_return = vkEnc->vkEnumerateDeviceLayerProperties(physicalDevice, pPropertyCount, pProperties, true /* do lock */);
223 return vkEnumerateDeviceLayerProperties_VkResult_return;
224 }
entry_vkGetDeviceQueue(VkDevice device,uint32_t queueFamilyIndex,uint32_t queueIndex,VkQueue * pQueue)225 static void entry_vkGetDeviceQueue(
226 VkDevice device,
227 uint32_t queueFamilyIndex,
228 uint32_t queueIndex,
229 VkQueue* pQueue)
230 {
231 AEMU_SCOPED_TRACE("vkGetDeviceQueue");
232 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
233 vkEnc->vkGetDeviceQueue(device, queueFamilyIndex, queueIndex, pQueue, true /* do lock */);
234 }
entry_vkQueueSubmit(VkQueue queue,uint32_t submitCount,const VkSubmitInfo * pSubmits,VkFence fence)235 static VkResult entry_vkQueueSubmit(
236 VkQueue queue,
237 uint32_t submitCount,
238 const VkSubmitInfo* pSubmits,
239 VkFence fence)
240 {
241 AEMU_SCOPED_TRACE("vkQueueSubmit");
242 auto vkEnc = ResourceTracker::getQueueEncoder(queue);
243 VkResult vkQueueSubmit_VkResult_return = (VkResult)0;
244 auto resources = ResourceTracker::get();
245 vkQueueSubmit_VkResult_return = resources->on_vkQueueSubmit(vkEnc, VK_SUCCESS, queue, submitCount, pSubmits, fence);
246 return vkQueueSubmit_VkResult_return;
247 }
entry_vkQueueWaitIdle(VkQueue queue)248 static VkResult entry_vkQueueWaitIdle(
249 VkQueue queue)
250 {
251 AEMU_SCOPED_TRACE("vkQueueWaitIdle");
252 auto vkEnc = ResourceTracker::getQueueEncoder(queue);
253 VkResult vkQueueWaitIdle_VkResult_return = (VkResult)0;
254 auto resources = ResourceTracker::get();
255 vkQueueWaitIdle_VkResult_return = resources->on_vkQueueWaitIdle(vkEnc, VK_SUCCESS, queue);
256 return vkQueueWaitIdle_VkResult_return;
257 }
entry_vkDeviceWaitIdle(VkDevice device)258 static VkResult entry_vkDeviceWaitIdle(
259 VkDevice device)
260 {
261 AEMU_SCOPED_TRACE("vkDeviceWaitIdle");
262 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
263 VkResult vkDeviceWaitIdle_VkResult_return = (VkResult)0;
264 vkDeviceWaitIdle_VkResult_return = vkEnc->vkDeviceWaitIdle(device, true /* do lock */);
265 return vkDeviceWaitIdle_VkResult_return;
266 }
entry_vkAllocateMemory(VkDevice device,const VkMemoryAllocateInfo * pAllocateInfo,const VkAllocationCallbacks * pAllocator,VkDeviceMemory * pMemory)267 static VkResult entry_vkAllocateMemory(
268 VkDevice device,
269 const VkMemoryAllocateInfo* pAllocateInfo,
270 const VkAllocationCallbacks* pAllocator,
271 VkDeviceMemory* pMemory)
272 {
273 AEMU_SCOPED_TRACE("vkAllocateMemory");
274 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
275 VkResult vkAllocateMemory_VkResult_return = (VkResult)0;
276 auto resources = ResourceTracker::get();
277 vkAllocateMemory_VkResult_return = resources->on_vkAllocateMemory(vkEnc, VK_SUCCESS, device, pAllocateInfo, pAllocator, pMemory);
278 return vkAllocateMemory_VkResult_return;
279 }
entry_vkFreeMemory(VkDevice device,VkDeviceMemory memory,const VkAllocationCallbacks * pAllocator)280 static void entry_vkFreeMemory(
281 VkDevice device,
282 VkDeviceMemory memory,
283 const VkAllocationCallbacks* pAllocator)
284 {
285 AEMU_SCOPED_TRACE("vkFreeMemory");
286 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
287 auto resources = ResourceTracker::get();
288 resources->on_vkFreeMemory(vkEnc, device, memory, pAllocator);
289 }
entry_vkMapMemory(VkDevice device,VkDeviceMemory memory,VkDeviceSize offset,VkDeviceSize size,VkMemoryMapFlags flags,void ** ppData)290 static VkResult entry_vkMapMemory(
291 VkDevice device,
292 VkDeviceMemory memory,
293 VkDeviceSize offset,
294 VkDeviceSize size,
295 VkMemoryMapFlags flags,
296 void** ppData)
297 {
298 AEMU_SCOPED_TRACE("vkMapMemory");
299 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
300 VkResult vkMapMemory_VkResult_return = (VkResult)0;
301 vkMapMemory_VkResult_return = vkEnc->vkMapMemory(device, memory, offset, size, flags, ppData, true /* do lock */);
302 return vkMapMemory_VkResult_return;
303 }
entry_vkUnmapMemory(VkDevice device,VkDeviceMemory memory)304 static void entry_vkUnmapMemory(
305 VkDevice device,
306 VkDeviceMemory memory)
307 {
308 AEMU_SCOPED_TRACE("vkUnmapMemory");
309 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
310 vkEnc->vkUnmapMemory(device, memory, true /* do lock */);
311 }
entry_vkFlushMappedMemoryRanges(VkDevice device,uint32_t memoryRangeCount,const VkMappedMemoryRange * pMemoryRanges)312 static VkResult entry_vkFlushMappedMemoryRanges(
313 VkDevice device,
314 uint32_t memoryRangeCount,
315 const VkMappedMemoryRange* pMemoryRanges)
316 {
317 AEMU_SCOPED_TRACE("vkFlushMappedMemoryRanges");
318 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
319 VkResult vkFlushMappedMemoryRanges_VkResult_return = (VkResult)0;
320 vkFlushMappedMemoryRanges_VkResult_return = vkEnc->vkFlushMappedMemoryRanges(device, memoryRangeCount, pMemoryRanges, true /* do lock */);
321 return vkFlushMappedMemoryRanges_VkResult_return;
322 }
entry_vkInvalidateMappedMemoryRanges(VkDevice device,uint32_t memoryRangeCount,const VkMappedMemoryRange * pMemoryRanges)323 static VkResult entry_vkInvalidateMappedMemoryRanges(
324 VkDevice device,
325 uint32_t memoryRangeCount,
326 const VkMappedMemoryRange* pMemoryRanges)
327 {
328 AEMU_SCOPED_TRACE("vkInvalidateMappedMemoryRanges");
329 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
330 VkResult vkInvalidateMappedMemoryRanges_VkResult_return = (VkResult)0;
331 vkInvalidateMappedMemoryRanges_VkResult_return = vkEnc->vkInvalidateMappedMemoryRanges(device, memoryRangeCount, pMemoryRanges, true /* do lock */);
332 return vkInvalidateMappedMemoryRanges_VkResult_return;
333 }
entry_vkGetDeviceMemoryCommitment(VkDevice device,VkDeviceMemory memory,VkDeviceSize * pCommittedMemoryInBytes)334 static void entry_vkGetDeviceMemoryCommitment(
335 VkDevice device,
336 VkDeviceMemory memory,
337 VkDeviceSize* pCommittedMemoryInBytes)
338 {
339 AEMU_SCOPED_TRACE("vkGetDeviceMemoryCommitment");
340 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
341 vkEnc->vkGetDeviceMemoryCommitment(device, memory, pCommittedMemoryInBytes, true /* do lock */);
342 }
entry_vkBindBufferMemory(VkDevice device,VkBuffer buffer,VkDeviceMemory memory,VkDeviceSize memoryOffset)343 static VkResult entry_vkBindBufferMemory(
344 VkDevice device,
345 VkBuffer buffer,
346 VkDeviceMemory memory,
347 VkDeviceSize memoryOffset)
348 {
349 AEMU_SCOPED_TRACE("vkBindBufferMemory");
350 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
351 VkResult vkBindBufferMemory_VkResult_return = (VkResult)0;
352 auto resources = ResourceTracker::get();
353 vkBindBufferMemory_VkResult_return = resources->on_vkBindBufferMemory(vkEnc, VK_SUCCESS, device, buffer, memory, memoryOffset);
354 return vkBindBufferMemory_VkResult_return;
355 }
entry_vkBindImageMemory(VkDevice device,VkImage image,VkDeviceMemory memory,VkDeviceSize memoryOffset)356 static VkResult entry_vkBindImageMemory(
357 VkDevice device,
358 VkImage image,
359 VkDeviceMemory memory,
360 VkDeviceSize memoryOffset)
361 {
362 AEMU_SCOPED_TRACE("vkBindImageMemory");
363 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
364 VkResult vkBindImageMemory_VkResult_return = (VkResult)0;
365 auto resources = ResourceTracker::get();
366 vkBindImageMemory_VkResult_return = resources->on_vkBindImageMemory(vkEnc, VK_SUCCESS, device, image, memory, memoryOffset);
367 return vkBindImageMemory_VkResult_return;
368 }
entry_vkGetBufferMemoryRequirements(VkDevice device,VkBuffer buffer,VkMemoryRequirements * pMemoryRequirements)369 static void entry_vkGetBufferMemoryRequirements(
370 VkDevice device,
371 VkBuffer buffer,
372 VkMemoryRequirements* pMemoryRequirements)
373 {
374 AEMU_SCOPED_TRACE("vkGetBufferMemoryRequirements");
375 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
376 auto resources = ResourceTracker::get();
377 resources->on_vkGetBufferMemoryRequirements(vkEnc, device, buffer, pMemoryRequirements);
378 }
entry_vkGetImageMemoryRequirements(VkDevice device,VkImage image,VkMemoryRequirements * pMemoryRequirements)379 static void entry_vkGetImageMemoryRequirements(
380 VkDevice device,
381 VkImage image,
382 VkMemoryRequirements* pMemoryRequirements)
383 {
384 AEMU_SCOPED_TRACE("vkGetImageMemoryRequirements");
385 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
386 auto resources = ResourceTracker::get();
387 resources->on_vkGetImageMemoryRequirements(vkEnc, device, image, pMemoryRequirements);
388 }
entry_vkGetImageSparseMemoryRequirements(VkDevice device,VkImage image,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements * pSparseMemoryRequirements)389 static void entry_vkGetImageSparseMemoryRequirements(
390 VkDevice device,
391 VkImage image,
392 uint32_t* pSparseMemoryRequirementCount,
393 VkSparseImageMemoryRequirements* pSparseMemoryRequirements)
394 {
395 AEMU_SCOPED_TRACE("vkGetImageSparseMemoryRequirements");
396 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
397 vkEnc->vkGetImageSparseMemoryRequirements(device, image, pSparseMemoryRequirementCount, pSparseMemoryRequirements, true /* do lock */);
398 }
entry_vkGetPhysicalDeviceSparseImageFormatProperties(VkPhysicalDevice physicalDevice,VkFormat format,VkImageType type,VkSampleCountFlagBits samples,VkImageUsageFlags usage,VkImageTiling tiling,uint32_t * pPropertyCount,VkSparseImageFormatProperties * pProperties)399 static void entry_vkGetPhysicalDeviceSparseImageFormatProperties(
400 VkPhysicalDevice physicalDevice,
401 VkFormat format,
402 VkImageType type,
403 VkSampleCountFlagBits samples,
404 VkImageUsageFlags usage,
405 VkImageTiling tiling,
406 uint32_t* pPropertyCount,
407 VkSparseImageFormatProperties* pProperties)
408 {
409 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSparseImageFormatProperties");
410 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
411 vkEnc->vkGetPhysicalDeviceSparseImageFormatProperties(physicalDevice, format, type, samples, usage, tiling, pPropertyCount, pProperties, true /* do lock */);
412 }
entry_vkQueueBindSparse(VkQueue queue,uint32_t bindInfoCount,const VkBindSparseInfo * pBindInfo,VkFence fence)413 static VkResult entry_vkQueueBindSparse(
414 VkQueue queue,
415 uint32_t bindInfoCount,
416 const VkBindSparseInfo* pBindInfo,
417 VkFence fence)
418 {
419 AEMU_SCOPED_TRACE("vkQueueBindSparse");
420 auto vkEnc = ResourceTracker::getQueueEncoder(queue);
421 VkResult vkQueueBindSparse_VkResult_return = (VkResult)0;
422 vkQueueBindSparse_VkResult_return = vkEnc->vkQueueBindSparse(queue, bindInfoCount, pBindInfo, fence, true /* do lock */);
423 return vkQueueBindSparse_VkResult_return;
424 }
entry_vkCreateFence(VkDevice device,const VkFenceCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkFence * pFence)425 static VkResult entry_vkCreateFence(
426 VkDevice device,
427 const VkFenceCreateInfo* pCreateInfo,
428 const VkAllocationCallbacks* pAllocator,
429 VkFence* pFence)
430 {
431 AEMU_SCOPED_TRACE("vkCreateFence");
432 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
433 VkResult vkCreateFence_VkResult_return = (VkResult)0;
434 auto resources = ResourceTracker::get();
435 vkCreateFence_VkResult_return = resources->on_vkCreateFence(vkEnc, VK_SUCCESS, device, pCreateInfo, pAllocator, pFence);
436 return vkCreateFence_VkResult_return;
437 }
entry_vkDestroyFence(VkDevice device,VkFence fence,const VkAllocationCallbacks * pAllocator)438 static void entry_vkDestroyFence(
439 VkDevice device,
440 VkFence fence,
441 const VkAllocationCallbacks* pAllocator)
442 {
443 AEMU_SCOPED_TRACE("vkDestroyFence");
444 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
445 vkEnc->vkDestroyFence(device, fence, pAllocator, true /* do lock */);
446 }
entry_vkResetFences(VkDevice device,uint32_t fenceCount,const VkFence * pFences)447 static VkResult entry_vkResetFences(
448 VkDevice device,
449 uint32_t fenceCount,
450 const VkFence* pFences)
451 {
452 AEMU_SCOPED_TRACE("vkResetFences");
453 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
454 VkResult vkResetFences_VkResult_return = (VkResult)0;
455 auto resources = ResourceTracker::get();
456 vkResetFences_VkResult_return = resources->on_vkResetFences(vkEnc, VK_SUCCESS, device, fenceCount, pFences);
457 return vkResetFences_VkResult_return;
458 }
entry_vkGetFenceStatus(VkDevice device,VkFence fence)459 static VkResult entry_vkGetFenceStatus(
460 VkDevice device,
461 VkFence fence)
462 {
463 AEMU_SCOPED_TRACE("vkGetFenceStatus");
464 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
465 VkResult vkGetFenceStatus_VkResult_return = (VkResult)0;
466 vkGetFenceStatus_VkResult_return = vkEnc->vkGetFenceStatus(device, fence, true /* do lock */);
467 return vkGetFenceStatus_VkResult_return;
468 }
entry_vkWaitForFences(VkDevice device,uint32_t fenceCount,const VkFence * pFences,VkBool32 waitAll,uint64_t timeout)469 static VkResult entry_vkWaitForFences(
470 VkDevice device,
471 uint32_t fenceCount,
472 const VkFence* pFences,
473 VkBool32 waitAll,
474 uint64_t timeout)
475 {
476 AEMU_SCOPED_TRACE("vkWaitForFences");
477 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
478 VkResult vkWaitForFences_VkResult_return = (VkResult)0;
479 auto resources = ResourceTracker::get();
480 vkWaitForFences_VkResult_return = resources->on_vkWaitForFences(vkEnc, VK_SUCCESS, device, fenceCount, pFences, waitAll, timeout);
481 return vkWaitForFences_VkResult_return;
482 }
entry_vkCreateSemaphore(VkDevice device,const VkSemaphoreCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSemaphore * pSemaphore)483 static VkResult entry_vkCreateSemaphore(
484 VkDevice device,
485 const VkSemaphoreCreateInfo* pCreateInfo,
486 const VkAllocationCallbacks* pAllocator,
487 VkSemaphore* pSemaphore)
488 {
489 AEMU_SCOPED_TRACE("vkCreateSemaphore");
490 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
491 VkResult vkCreateSemaphore_VkResult_return = (VkResult)0;
492 auto resources = ResourceTracker::get();
493 vkCreateSemaphore_VkResult_return = resources->on_vkCreateSemaphore(vkEnc, VK_SUCCESS, device, pCreateInfo, pAllocator, pSemaphore);
494 return vkCreateSemaphore_VkResult_return;
495 }
entry_vkDestroySemaphore(VkDevice device,VkSemaphore semaphore,const VkAllocationCallbacks * pAllocator)496 static void entry_vkDestroySemaphore(
497 VkDevice device,
498 VkSemaphore semaphore,
499 const VkAllocationCallbacks* pAllocator)
500 {
501 AEMU_SCOPED_TRACE("vkDestroySemaphore");
502 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
503 auto resources = ResourceTracker::get();
504 resources->on_vkDestroySemaphore(vkEnc, device, semaphore, pAllocator);
505 }
entry_vkCreateEvent(VkDevice device,const VkEventCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkEvent * pEvent)506 static VkResult entry_vkCreateEvent(
507 VkDevice device,
508 const VkEventCreateInfo* pCreateInfo,
509 const VkAllocationCallbacks* pAllocator,
510 VkEvent* pEvent)
511 {
512 AEMU_SCOPED_TRACE("vkCreateEvent");
513 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
514 VkResult vkCreateEvent_VkResult_return = (VkResult)0;
515 vkCreateEvent_VkResult_return = vkEnc->vkCreateEvent(device, pCreateInfo, pAllocator, pEvent, true /* do lock */);
516 return vkCreateEvent_VkResult_return;
517 }
entry_vkDestroyEvent(VkDevice device,VkEvent event,const VkAllocationCallbacks * pAllocator)518 static void entry_vkDestroyEvent(
519 VkDevice device,
520 VkEvent event,
521 const VkAllocationCallbacks* pAllocator)
522 {
523 AEMU_SCOPED_TRACE("vkDestroyEvent");
524 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
525 vkEnc->vkDestroyEvent(device, event, pAllocator, true /* do lock */);
526 }
entry_vkGetEventStatus(VkDevice device,VkEvent event)527 static VkResult entry_vkGetEventStatus(
528 VkDevice device,
529 VkEvent event)
530 {
531 AEMU_SCOPED_TRACE("vkGetEventStatus");
532 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
533 VkResult vkGetEventStatus_VkResult_return = (VkResult)0;
534 vkGetEventStatus_VkResult_return = vkEnc->vkGetEventStatus(device, event, true /* do lock */);
535 return vkGetEventStatus_VkResult_return;
536 }
entry_vkSetEvent(VkDevice device,VkEvent event)537 static VkResult entry_vkSetEvent(
538 VkDevice device,
539 VkEvent event)
540 {
541 AEMU_SCOPED_TRACE("vkSetEvent");
542 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
543 VkResult vkSetEvent_VkResult_return = (VkResult)0;
544 vkSetEvent_VkResult_return = vkEnc->vkSetEvent(device, event, true /* do lock */);
545 return vkSetEvent_VkResult_return;
546 }
entry_vkResetEvent(VkDevice device,VkEvent event)547 static VkResult entry_vkResetEvent(
548 VkDevice device,
549 VkEvent event)
550 {
551 AEMU_SCOPED_TRACE("vkResetEvent");
552 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
553 VkResult vkResetEvent_VkResult_return = (VkResult)0;
554 vkResetEvent_VkResult_return = vkEnc->vkResetEvent(device, event, true /* do lock */);
555 return vkResetEvent_VkResult_return;
556 }
entry_vkCreateQueryPool(VkDevice device,const VkQueryPoolCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkQueryPool * pQueryPool)557 static VkResult entry_vkCreateQueryPool(
558 VkDevice device,
559 const VkQueryPoolCreateInfo* pCreateInfo,
560 const VkAllocationCallbacks* pAllocator,
561 VkQueryPool* pQueryPool)
562 {
563 AEMU_SCOPED_TRACE("vkCreateQueryPool");
564 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
565 VkResult vkCreateQueryPool_VkResult_return = (VkResult)0;
566 vkCreateQueryPool_VkResult_return = vkEnc->vkCreateQueryPool(device, pCreateInfo, pAllocator, pQueryPool, true /* do lock */);
567 return vkCreateQueryPool_VkResult_return;
568 }
entry_vkDestroyQueryPool(VkDevice device,VkQueryPool queryPool,const VkAllocationCallbacks * pAllocator)569 static void entry_vkDestroyQueryPool(
570 VkDevice device,
571 VkQueryPool queryPool,
572 const VkAllocationCallbacks* pAllocator)
573 {
574 AEMU_SCOPED_TRACE("vkDestroyQueryPool");
575 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
576 vkEnc->vkDestroyQueryPool(device, queryPool, pAllocator, true /* do lock */);
577 }
entry_vkGetQueryPoolResults(VkDevice device,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,size_t dataSize,void * pData,VkDeviceSize stride,VkQueryResultFlags flags)578 static VkResult entry_vkGetQueryPoolResults(
579 VkDevice device,
580 VkQueryPool queryPool,
581 uint32_t firstQuery,
582 uint32_t queryCount,
583 size_t dataSize,
584 void* pData,
585 VkDeviceSize stride,
586 VkQueryResultFlags flags)
587 {
588 AEMU_SCOPED_TRACE("vkGetQueryPoolResults");
589 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
590 VkResult vkGetQueryPoolResults_VkResult_return = (VkResult)0;
591 vkGetQueryPoolResults_VkResult_return = vkEnc->vkGetQueryPoolResults(device, queryPool, firstQuery, queryCount, dataSize, pData, stride, flags, true /* do lock */);
592 return vkGetQueryPoolResults_VkResult_return;
593 }
entry_vkCreateBuffer(VkDevice device,const VkBufferCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkBuffer * pBuffer)594 static VkResult entry_vkCreateBuffer(
595 VkDevice device,
596 const VkBufferCreateInfo* pCreateInfo,
597 const VkAllocationCallbacks* pAllocator,
598 VkBuffer* pBuffer)
599 {
600 AEMU_SCOPED_TRACE("vkCreateBuffer");
601 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
602 VkResult vkCreateBuffer_VkResult_return = (VkResult)0;
603 auto resources = ResourceTracker::get();
604 vkCreateBuffer_VkResult_return = resources->on_vkCreateBuffer(vkEnc, VK_SUCCESS, device, pCreateInfo, pAllocator, pBuffer);
605 return vkCreateBuffer_VkResult_return;
606 }
entry_vkDestroyBuffer(VkDevice device,VkBuffer buffer,const VkAllocationCallbacks * pAllocator)607 static void entry_vkDestroyBuffer(
608 VkDevice device,
609 VkBuffer buffer,
610 const VkAllocationCallbacks* pAllocator)
611 {
612 AEMU_SCOPED_TRACE("vkDestroyBuffer");
613 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
614 auto resources = ResourceTracker::get();
615 resources->on_vkDestroyBuffer(vkEnc, device, buffer, pAllocator);
616 }
entry_vkCreateBufferView(VkDevice device,const VkBufferViewCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkBufferView * pView)617 static VkResult entry_vkCreateBufferView(
618 VkDevice device,
619 const VkBufferViewCreateInfo* pCreateInfo,
620 const VkAllocationCallbacks* pAllocator,
621 VkBufferView* pView)
622 {
623 AEMU_SCOPED_TRACE("vkCreateBufferView");
624 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
625 VkResult vkCreateBufferView_VkResult_return = (VkResult)0;
626 vkCreateBufferView_VkResult_return = vkEnc->vkCreateBufferView(device, pCreateInfo, pAllocator, pView, true /* do lock */);
627 return vkCreateBufferView_VkResult_return;
628 }
entry_vkDestroyBufferView(VkDevice device,VkBufferView bufferView,const VkAllocationCallbacks * pAllocator)629 static void entry_vkDestroyBufferView(
630 VkDevice device,
631 VkBufferView bufferView,
632 const VkAllocationCallbacks* pAllocator)
633 {
634 AEMU_SCOPED_TRACE("vkDestroyBufferView");
635 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
636 vkEnc->vkDestroyBufferView(device, bufferView, pAllocator, true /* do lock */);
637 }
entry_vkCreateImage(VkDevice device,const VkImageCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkImage * pImage)638 static VkResult entry_vkCreateImage(
639 VkDevice device,
640 const VkImageCreateInfo* pCreateInfo,
641 const VkAllocationCallbacks* pAllocator,
642 VkImage* pImage)
643 {
644 AEMU_SCOPED_TRACE("vkCreateImage");
645 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
646 VkResult vkCreateImage_VkResult_return = (VkResult)0;
647 auto resources = ResourceTracker::get();
648 vkCreateImage_VkResult_return = resources->on_vkCreateImage(vkEnc, VK_SUCCESS, device, pCreateInfo, pAllocator, pImage);
649 return vkCreateImage_VkResult_return;
650 }
entry_vkDestroyImage(VkDevice device,VkImage image,const VkAllocationCallbacks * pAllocator)651 static void entry_vkDestroyImage(
652 VkDevice device,
653 VkImage image,
654 const VkAllocationCallbacks* pAllocator)
655 {
656 AEMU_SCOPED_TRACE("vkDestroyImage");
657 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
658 auto resources = ResourceTracker::get();
659 resources->on_vkDestroyImage(vkEnc, device, image, pAllocator);
660 }
entry_vkGetImageSubresourceLayout(VkDevice device,VkImage image,const VkImageSubresource * pSubresource,VkSubresourceLayout * pLayout)661 static void entry_vkGetImageSubresourceLayout(
662 VkDevice device,
663 VkImage image,
664 const VkImageSubresource* pSubresource,
665 VkSubresourceLayout* pLayout)
666 {
667 AEMU_SCOPED_TRACE("vkGetImageSubresourceLayout");
668 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
669 vkEnc->vkGetImageSubresourceLayout(device, image, pSubresource, pLayout, true /* do lock */);
670 }
entry_vkCreateImageView(VkDevice device,const VkImageViewCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkImageView * pView)671 static VkResult entry_vkCreateImageView(
672 VkDevice device,
673 const VkImageViewCreateInfo* pCreateInfo,
674 const VkAllocationCallbacks* pAllocator,
675 VkImageView* pView)
676 {
677 AEMU_SCOPED_TRACE("vkCreateImageView");
678 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
679 VkResult vkCreateImageView_VkResult_return = (VkResult)0;
680 auto resources = ResourceTracker::get();
681 vkCreateImageView_VkResult_return = resources->on_vkCreateImageView(vkEnc, VK_SUCCESS, device, pCreateInfo, pAllocator, pView);
682 return vkCreateImageView_VkResult_return;
683 }
entry_vkDestroyImageView(VkDevice device,VkImageView imageView,const VkAllocationCallbacks * pAllocator)684 static void entry_vkDestroyImageView(
685 VkDevice device,
686 VkImageView imageView,
687 const VkAllocationCallbacks* pAllocator)
688 {
689 AEMU_SCOPED_TRACE("vkDestroyImageView");
690 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
691 vkEnc->vkDestroyImageView(device, imageView, pAllocator, true /* do lock */);
692 }
entry_vkCreateShaderModule(VkDevice device,const VkShaderModuleCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkShaderModule * pShaderModule)693 static VkResult entry_vkCreateShaderModule(
694 VkDevice device,
695 const VkShaderModuleCreateInfo* pCreateInfo,
696 const VkAllocationCallbacks* pAllocator,
697 VkShaderModule* pShaderModule)
698 {
699 AEMU_SCOPED_TRACE("vkCreateShaderModule");
700 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
701 VkResult vkCreateShaderModule_VkResult_return = (VkResult)0;
702 vkCreateShaderModule_VkResult_return = vkEnc->vkCreateShaderModule(device, pCreateInfo, pAllocator, pShaderModule, true /* do lock */);
703 return vkCreateShaderModule_VkResult_return;
704 }
entry_vkDestroyShaderModule(VkDevice device,VkShaderModule shaderModule,const VkAllocationCallbacks * pAllocator)705 static void entry_vkDestroyShaderModule(
706 VkDevice device,
707 VkShaderModule shaderModule,
708 const VkAllocationCallbacks* pAllocator)
709 {
710 AEMU_SCOPED_TRACE("vkDestroyShaderModule");
711 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
712 vkEnc->vkDestroyShaderModule(device, shaderModule, pAllocator, true /* do lock */);
713 }
entry_vkCreatePipelineCache(VkDevice device,const VkPipelineCacheCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkPipelineCache * pPipelineCache)714 static VkResult entry_vkCreatePipelineCache(
715 VkDevice device,
716 const VkPipelineCacheCreateInfo* pCreateInfo,
717 const VkAllocationCallbacks* pAllocator,
718 VkPipelineCache* pPipelineCache)
719 {
720 AEMU_SCOPED_TRACE("vkCreatePipelineCache");
721 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
722 VkResult vkCreatePipelineCache_VkResult_return = (VkResult)0;
723 vkCreatePipelineCache_VkResult_return = vkEnc->vkCreatePipelineCache(device, pCreateInfo, pAllocator, pPipelineCache, true /* do lock */);
724 return vkCreatePipelineCache_VkResult_return;
725 }
entry_vkDestroyPipelineCache(VkDevice device,VkPipelineCache pipelineCache,const VkAllocationCallbacks * pAllocator)726 static void entry_vkDestroyPipelineCache(
727 VkDevice device,
728 VkPipelineCache pipelineCache,
729 const VkAllocationCallbacks* pAllocator)
730 {
731 AEMU_SCOPED_TRACE("vkDestroyPipelineCache");
732 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
733 vkEnc->vkDestroyPipelineCache(device, pipelineCache, pAllocator, true /* do lock */);
734 }
entry_vkGetPipelineCacheData(VkDevice device,VkPipelineCache pipelineCache,size_t * pDataSize,void * pData)735 static VkResult entry_vkGetPipelineCacheData(
736 VkDevice device,
737 VkPipelineCache pipelineCache,
738 size_t* pDataSize,
739 void* pData)
740 {
741 AEMU_SCOPED_TRACE("vkGetPipelineCacheData");
742 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
743 VkResult vkGetPipelineCacheData_VkResult_return = (VkResult)0;
744 vkGetPipelineCacheData_VkResult_return = vkEnc->vkGetPipelineCacheData(device, pipelineCache, pDataSize, pData, true /* do lock */);
745 return vkGetPipelineCacheData_VkResult_return;
746 }
entry_vkMergePipelineCaches(VkDevice device,VkPipelineCache dstCache,uint32_t srcCacheCount,const VkPipelineCache * pSrcCaches)747 static VkResult entry_vkMergePipelineCaches(
748 VkDevice device,
749 VkPipelineCache dstCache,
750 uint32_t srcCacheCount,
751 const VkPipelineCache* pSrcCaches)
752 {
753 AEMU_SCOPED_TRACE("vkMergePipelineCaches");
754 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
755 VkResult vkMergePipelineCaches_VkResult_return = (VkResult)0;
756 vkMergePipelineCaches_VkResult_return = vkEnc->vkMergePipelineCaches(device, dstCache, srcCacheCount, pSrcCaches, true /* do lock */);
757 return vkMergePipelineCaches_VkResult_return;
758 }
entry_vkCreateGraphicsPipelines(VkDevice device,VkPipelineCache pipelineCache,uint32_t createInfoCount,const VkGraphicsPipelineCreateInfo * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkPipeline * pPipelines)759 static VkResult entry_vkCreateGraphicsPipelines(
760 VkDevice device,
761 VkPipelineCache pipelineCache,
762 uint32_t createInfoCount,
763 const VkGraphicsPipelineCreateInfo* pCreateInfos,
764 const VkAllocationCallbacks* pAllocator,
765 VkPipeline* pPipelines)
766 {
767 AEMU_SCOPED_TRACE("vkCreateGraphicsPipelines");
768 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
769 VkResult vkCreateGraphicsPipelines_VkResult_return = (VkResult)0;
770 vkCreateGraphicsPipelines_VkResult_return = vkEnc->vkCreateGraphicsPipelines(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines, true /* do lock */);
771 return vkCreateGraphicsPipelines_VkResult_return;
772 }
entry_vkCreateComputePipelines(VkDevice device,VkPipelineCache pipelineCache,uint32_t createInfoCount,const VkComputePipelineCreateInfo * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkPipeline * pPipelines)773 static VkResult entry_vkCreateComputePipelines(
774 VkDevice device,
775 VkPipelineCache pipelineCache,
776 uint32_t createInfoCount,
777 const VkComputePipelineCreateInfo* pCreateInfos,
778 const VkAllocationCallbacks* pAllocator,
779 VkPipeline* pPipelines)
780 {
781 AEMU_SCOPED_TRACE("vkCreateComputePipelines");
782 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
783 VkResult vkCreateComputePipelines_VkResult_return = (VkResult)0;
784 vkCreateComputePipelines_VkResult_return = vkEnc->vkCreateComputePipelines(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines, true /* do lock */);
785 return vkCreateComputePipelines_VkResult_return;
786 }
entry_vkDestroyPipeline(VkDevice device,VkPipeline pipeline,const VkAllocationCallbacks * pAllocator)787 static void entry_vkDestroyPipeline(
788 VkDevice device,
789 VkPipeline pipeline,
790 const VkAllocationCallbacks* pAllocator)
791 {
792 AEMU_SCOPED_TRACE("vkDestroyPipeline");
793 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
794 vkEnc->vkDestroyPipeline(device, pipeline, pAllocator, true /* do lock */);
795 }
entry_vkCreatePipelineLayout(VkDevice device,const VkPipelineLayoutCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkPipelineLayout * pPipelineLayout)796 static VkResult entry_vkCreatePipelineLayout(
797 VkDevice device,
798 const VkPipelineLayoutCreateInfo* pCreateInfo,
799 const VkAllocationCallbacks* pAllocator,
800 VkPipelineLayout* pPipelineLayout)
801 {
802 AEMU_SCOPED_TRACE("vkCreatePipelineLayout");
803 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
804 VkResult vkCreatePipelineLayout_VkResult_return = (VkResult)0;
805 vkCreatePipelineLayout_VkResult_return = vkEnc->vkCreatePipelineLayout(device, pCreateInfo, pAllocator, pPipelineLayout, true /* do lock */);
806 return vkCreatePipelineLayout_VkResult_return;
807 }
entry_vkDestroyPipelineLayout(VkDevice device,VkPipelineLayout pipelineLayout,const VkAllocationCallbacks * pAllocator)808 static void entry_vkDestroyPipelineLayout(
809 VkDevice device,
810 VkPipelineLayout pipelineLayout,
811 const VkAllocationCallbacks* pAllocator)
812 {
813 AEMU_SCOPED_TRACE("vkDestroyPipelineLayout");
814 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
815 vkEnc->vkDestroyPipelineLayout(device, pipelineLayout, pAllocator, true /* do lock */);
816 }
entry_vkCreateSampler(VkDevice device,const VkSamplerCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSampler * pSampler)817 static VkResult entry_vkCreateSampler(
818 VkDevice device,
819 const VkSamplerCreateInfo* pCreateInfo,
820 const VkAllocationCallbacks* pAllocator,
821 VkSampler* pSampler)
822 {
823 AEMU_SCOPED_TRACE("vkCreateSampler");
824 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
825 VkResult vkCreateSampler_VkResult_return = (VkResult)0;
826 auto resources = ResourceTracker::get();
827 vkCreateSampler_VkResult_return = resources->on_vkCreateSampler(vkEnc, VK_SUCCESS, device, pCreateInfo, pAllocator, pSampler);
828 return vkCreateSampler_VkResult_return;
829 }
entry_vkDestroySampler(VkDevice device,VkSampler sampler,const VkAllocationCallbacks * pAllocator)830 static void entry_vkDestroySampler(
831 VkDevice device,
832 VkSampler sampler,
833 const VkAllocationCallbacks* pAllocator)
834 {
835 AEMU_SCOPED_TRACE("vkDestroySampler");
836 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
837 vkEnc->vkDestroySampler(device, sampler, pAllocator, true /* do lock */);
838 }
entry_vkCreateDescriptorSetLayout(VkDevice device,const VkDescriptorSetLayoutCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorSetLayout * pSetLayout)839 static VkResult entry_vkCreateDescriptorSetLayout(
840 VkDevice device,
841 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
842 const VkAllocationCallbacks* pAllocator,
843 VkDescriptorSetLayout* pSetLayout)
844 {
845 AEMU_SCOPED_TRACE("vkCreateDescriptorSetLayout");
846 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
847 VkResult vkCreateDescriptorSetLayout_VkResult_return = (VkResult)0;
848 auto resources = ResourceTracker::get();
849 vkCreateDescriptorSetLayout_VkResult_return = resources->on_vkCreateDescriptorSetLayout(vkEnc, VK_SUCCESS, device, pCreateInfo, pAllocator, pSetLayout);
850 return vkCreateDescriptorSetLayout_VkResult_return;
851 }
entry_vkDestroyDescriptorSetLayout(VkDevice device,VkDescriptorSetLayout descriptorSetLayout,const VkAllocationCallbacks * pAllocator)852 static void entry_vkDestroyDescriptorSetLayout(
853 VkDevice device,
854 VkDescriptorSetLayout descriptorSetLayout,
855 const VkAllocationCallbacks* pAllocator)
856 {
857 AEMU_SCOPED_TRACE("vkDestroyDescriptorSetLayout");
858 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
859 auto resources = ResourceTracker::get();
860 resources->on_vkDestroyDescriptorSetLayout(vkEnc, device, descriptorSetLayout, pAllocator);
861 }
entry_vkCreateDescriptorPool(VkDevice device,const VkDescriptorPoolCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorPool * pDescriptorPool)862 static VkResult entry_vkCreateDescriptorPool(
863 VkDevice device,
864 const VkDescriptorPoolCreateInfo* pCreateInfo,
865 const VkAllocationCallbacks* pAllocator,
866 VkDescriptorPool* pDescriptorPool)
867 {
868 AEMU_SCOPED_TRACE("vkCreateDescriptorPool");
869 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
870 VkResult vkCreateDescriptorPool_VkResult_return = (VkResult)0;
871 auto resources = ResourceTracker::get();
872 vkCreateDescriptorPool_VkResult_return = resources->on_vkCreateDescriptorPool(vkEnc, VK_SUCCESS, device, pCreateInfo, pAllocator, pDescriptorPool);
873 return vkCreateDescriptorPool_VkResult_return;
874 }
entry_vkDestroyDescriptorPool(VkDevice device,VkDescriptorPool descriptorPool,const VkAllocationCallbacks * pAllocator)875 static void entry_vkDestroyDescriptorPool(
876 VkDevice device,
877 VkDescriptorPool descriptorPool,
878 const VkAllocationCallbacks* pAllocator)
879 {
880 AEMU_SCOPED_TRACE("vkDestroyDescriptorPool");
881 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
882 auto resources = ResourceTracker::get();
883 resources->on_vkDestroyDescriptorPool(vkEnc, device, descriptorPool, pAllocator);
884 }
entry_vkResetDescriptorPool(VkDevice device,VkDescriptorPool descriptorPool,VkDescriptorPoolResetFlags flags)885 static VkResult entry_vkResetDescriptorPool(
886 VkDevice device,
887 VkDescriptorPool descriptorPool,
888 VkDescriptorPoolResetFlags flags)
889 {
890 AEMU_SCOPED_TRACE("vkResetDescriptorPool");
891 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
892 VkResult vkResetDescriptorPool_VkResult_return = (VkResult)0;
893 auto resources = ResourceTracker::get();
894 vkResetDescriptorPool_VkResult_return = resources->on_vkResetDescriptorPool(vkEnc, VK_SUCCESS, device, descriptorPool, flags);
895 return vkResetDescriptorPool_VkResult_return;
896 }
entry_vkAllocateDescriptorSets(VkDevice device,const VkDescriptorSetAllocateInfo * pAllocateInfo,VkDescriptorSet * pDescriptorSets)897 static VkResult entry_vkAllocateDescriptorSets(
898 VkDevice device,
899 const VkDescriptorSetAllocateInfo* pAllocateInfo,
900 VkDescriptorSet* pDescriptorSets)
901 {
902 AEMU_SCOPED_TRACE("vkAllocateDescriptorSets");
903 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
904 VkResult vkAllocateDescriptorSets_VkResult_return = (VkResult)0;
905 auto resources = ResourceTracker::get();
906 vkAllocateDescriptorSets_VkResult_return = resources->on_vkAllocateDescriptorSets(vkEnc, VK_SUCCESS, device, pAllocateInfo, pDescriptorSets);
907 return vkAllocateDescriptorSets_VkResult_return;
908 }
entry_vkFreeDescriptorSets(VkDevice device,VkDescriptorPool descriptorPool,uint32_t descriptorSetCount,const VkDescriptorSet * pDescriptorSets)909 static VkResult entry_vkFreeDescriptorSets(
910 VkDevice device,
911 VkDescriptorPool descriptorPool,
912 uint32_t descriptorSetCount,
913 const VkDescriptorSet* pDescriptorSets)
914 {
915 AEMU_SCOPED_TRACE("vkFreeDescriptorSets");
916 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
917 VkResult vkFreeDescriptorSets_VkResult_return = (VkResult)0;
918 auto resources = ResourceTracker::get();
919 vkFreeDescriptorSets_VkResult_return = resources->on_vkFreeDescriptorSets(vkEnc, VK_SUCCESS, device, descriptorPool, descriptorSetCount, pDescriptorSets);
920 return vkFreeDescriptorSets_VkResult_return;
921 }
entry_vkUpdateDescriptorSets(VkDevice device,uint32_t descriptorWriteCount,const VkWriteDescriptorSet * pDescriptorWrites,uint32_t descriptorCopyCount,const VkCopyDescriptorSet * pDescriptorCopies)922 static void entry_vkUpdateDescriptorSets(
923 VkDevice device,
924 uint32_t descriptorWriteCount,
925 const VkWriteDescriptorSet* pDescriptorWrites,
926 uint32_t descriptorCopyCount,
927 const VkCopyDescriptorSet* pDescriptorCopies)
928 {
929 AEMU_SCOPED_TRACE("vkUpdateDescriptorSets");
930 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
931 auto resources = ResourceTracker::get();
932 resources->on_vkUpdateDescriptorSets(vkEnc, device, descriptorWriteCount, pDescriptorWrites, descriptorCopyCount, pDescriptorCopies);
933 }
entry_vkCreateFramebuffer(VkDevice device,const VkFramebufferCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkFramebuffer * pFramebuffer)934 static VkResult entry_vkCreateFramebuffer(
935 VkDevice device,
936 const VkFramebufferCreateInfo* pCreateInfo,
937 const VkAllocationCallbacks* pAllocator,
938 VkFramebuffer* pFramebuffer)
939 {
940 AEMU_SCOPED_TRACE("vkCreateFramebuffer");
941 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
942 VkResult vkCreateFramebuffer_VkResult_return = (VkResult)0;
943 vkCreateFramebuffer_VkResult_return = vkEnc->vkCreateFramebuffer(device, pCreateInfo, pAllocator, pFramebuffer, true /* do lock */);
944 return vkCreateFramebuffer_VkResult_return;
945 }
entry_vkDestroyFramebuffer(VkDevice device,VkFramebuffer framebuffer,const VkAllocationCallbacks * pAllocator)946 static void entry_vkDestroyFramebuffer(
947 VkDevice device,
948 VkFramebuffer framebuffer,
949 const VkAllocationCallbacks* pAllocator)
950 {
951 AEMU_SCOPED_TRACE("vkDestroyFramebuffer");
952 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
953 vkEnc->vkDestroyFramebuffer(device, framebuffer, pAllocator, true /* do lock */);
954 }
entry_vkCreateRenderPass(VkDevice device,const VkRenderPassCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkRenderPass * pRenderPass)955 static VkResult entry_vkCreateRenderPass(
956 VkDevice device,
957 const VkRenderPassCreateInfo* pCreateInfo,
958 const VkAllocationCallbacks* pAllocator,
959 VkRenderPass* pRenderPass)
960 {
961 AEMU_SCOPED_TRACE("vkCreateRenderPass");
962 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
963 VkResult vkCreateRenderPass_VkResult_return = (VkResult)0;
964 vkCreateRenderPass_VkResult_return = vkEnc->vkCreateRenderPass(device, pCreateInfo, pAllocator, pRenderPass, true /* do lock */);
965 return vkCreateRenderPass_VkResult_return;
966 }
entry_vkDestroyRenderPass(VkDevice device,VkRenderPass renderPass,const VkAllocationCallbacks * pAllocator)967 static void entry_vkDestroyRenderPass(
968 VkDevice device,
969 VkRenderPass renderPass,
970 const VkAllocationCallbacks* pAllocator)
971 {
972 AEMU_SCOPED_TRACE("vkDestroyRenderPass");
973 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
974 vkEnc->vkDestroyRenderPass(device, renderPass, pAllocator, true /* do lock */);
975 }
entry_vkGetRenderAreaGranularity(VkDevice device,VkRenderPass renderPass,VkExtent2D * pGranularity)976 static void entry_vkGetRenderAreaGranularity(
977 VkDevice device,
978 VkRenderPass renderPass,
979 VkExtent2D* pGranularity)
980 {
981 AEMU_SCOPED_TRACE("vkGetRenderAreaGranularity");
982 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
983 vkEnc->vkGetRenderAreaGranularity(device, renderPass, pGranularity, true /* do lock */);
984 }
entry_vkCreateCommandPool(VkDevice device,const VkCommandPoolCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkCommandPool * pCommandPool)985 static VkResult entry_vkCreateCommandPool(
986 VkDevice device,
987 const VkCommandPoolCreateInfo* pCreateInfo,
988 const VkAllocationCallbacks* pAllocator,
989 VkCommandPool* pCommandPool)
990 {
991 AEMU_SCOPED_TRACE("vkCreateCommandPool");
992 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
993 VkResult vkCreateCommandPool_VkResult_return = (VkResult)0;
994 vkCreateCommandPool_VkResult_return = vkEnc->vkCreateCommandPool(device, pCreateInfo, pAllocator, pCommandPool, true /* do lock */);
995 return vkCreateCommandPool_VkResult_return;
996 }
entry_vkDestroyCommandPool(VkDevice device,VkCommandPool commandPool,const VkAllocationCallbacks * pAllocator)997 static void entry_vkDestroyCommandPool(
998 VkDevice device,
999 VkCommandPool commandPool,
1000 const VkAllocationCallbacks* pAllocator)
1001 {
1002 AEMU_SCOPED_TRACE("vkDestroyCommandPool");
1003 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1004 vkEnc->vkDestroyCommandPool(device, commandPool, pAllocator, true /* do lock */);
1005 }
entry_vkResetCommandPool(VkDevice device,VkCommandPool commandPool,VkCommandPoolResetFlags flags)1006 static VkResult entry_vkResetCommandPool(
1007 VkDevice device,
1008 VkCommandPool commandPool,
1009 VkCommandPoolResetFlags flags)
1010 {
1011 AEMU_SCOPED_TRACE("vkResetCommandPool");
1012 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1013 VkResult vkResetCommandPool_VkResult_return = (VkResult)0;
1014 vkResetCommandPool_VkResult_return = vkEnc->vkResetCommandPool(device, commandPool, flags, true /* do lock */);
1015 if (vkResetCommandPool_VkResult_return == VK_SUCCESS) {
1016 ResourceTracker::get()->resetCommandPoolStagingInfo(commandPool);
1017 }
1018 return vkResetCommandPool_VkResult_return;
1019 }
entry_vkAllocateCommandBuffers(VkDevice device,const VkCommandBufferAllocateInfo * pAllocateInfo,VkCommandBuffer * pCommandBuffers)1020 static VkResult entry_vkAllocateCommandBuffers(
1021 VkDevice device,
1022 const VkCommandBufferAllocateInfo* pAllocateInfo,
1023 VkCommandBuffer* pCommandBuffers)
1024 {
1025 AEMU_SCOPED_TRACE("vkAllocateCommandBuffers");
1026 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1027 VkResult vkAllocateCommandBuffers_VkResult_return = (VkResult)0;
1028 auto resources = ResourceTracker::get();
1029 vkAllocateCommandBuffers_VkResult_return = resources->on_vkAllocateCommandBuffers(vkEnc, VK_SUCCESS, device, pAllocateInfo, pCommandBuffers);
1030 if (vkAllocateCommandBuffers_VkResult_return == VK_SUCCESS) {
1031 ResourceTracker::get()->addToCommandPool(pAllocateInfo->commandPool, pAllocateInfo->commandBufferCount, pCommandBuffers);
1032 }
1033 return vkAllocateCommandBuffers_VkResult_return;
1034 }
entry_vkFreeCommandBuffers(VkDevice device,VkCommandPool commandPool,uint32_t commandBufferCount,const VkCommandBuffer * pCommandBuffers)1035 static void entry_vkFreeCommandBuffers(
1036 VkDevice device,
1037 VkCommandPool commandPool,
1038 uint32_t commandBufferCount,
1039 const VkCommandBuffer* pCommandBuffers)
1040 {
1041 AEMU_SCOPED_TRACE("vkFreeCommandBuffers");
1042 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1043 vkEnc->vkFreeCommandBuffers(device, commandPool, commandBufferCount, pCommandBuffers, true /* do lock */);
1044 }
entry_vkBeginCommandBuffer(VkCommandBuffer commandBuffer,const VkCommandBufferBeginInfo * pBeginInfo)1045 static VkResult entry_vkBeginCommandBuffer(
1046 VkCommandBuffer commandBuffer,
1047 const VkCommandBufferBeginInfo* pBeginInfo)
1048 {
1049 AEMU_SCOPED_TRACE("vkBeginCommandBuffer");
1050 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1051 VkResult vkBeginCommandBuffer_VkResult_return = (VkResult)0;
1052 auto resources = ResourceTracker::get();
1053 vkBeginCommandBuffer_VkResult_return = resources->on_vkBeginCommandBuffer(vkEnc, VK_SUCCESS, commandBuffer, pBeginInfo);
1054 return vkBeginCommandBuffer_VkResult_return;
1055 }
entry_vkEndCommandBuffer(VkCommandBuffer commandBuffer)1056 static VkResult entry_vkEndCommandBuffer(
1057 VkCommandBuffer commandBuffer)
1058 {
1059 AEMU_SCOPED_TRACE("vkEndCommandBuffer");
1060 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1061 VkResult vkEndCommandBuffer_VkResult_return = (VkResult)0;
1062 auto resources = ResourceTracker::get();
1063 vkEndCommandBuffer_VkResult_return = resources->on_vkEndCommandBuffer(vkEnc, VK_SUCCESS, commandBuffer);
1064 return vkEndCommandBuffer_VkResult_return;
1065 }
entry_vkResetCommandBuffer(VkCommandBuffer commandBuffer,VkCommandBufferResetFlags flags)1066 static VkResult entry_vkResetCommandBuffer(
1067 VkCommandBuffer commandBuffer,
1068 VkCommandBufferResetFlags flags)
1069 {
1070 AEMU_SCOPED_TRACE("vkResetCommandBuffer");
1071 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1072 VkResult vkResetCommandBuffer_VkResult_return = (VkResult)0;
1073 auto resources = ResourceTracker::get();
1074 vkResetCommandBuffer_VkResult_return = resources->on_vkResetCommandBuffer(vkEnc, VK_SUCCESS, commandBuffer, flags);
1075 return vkResetCommandBuffer_VkResult_return;
1076 }
entry_vkCmdBindPipeline(VkCommandBuffer commandBuffer,VkPipelineBindPoint pipelineBindPoint,VkPipeline pipeline)1077 static void entry_vkCmdBindPipeline(
1078 VkCommandBuffer commandBuffer,
1079 VkPipelineBindPoint pipelineBindPoint,
1080 VkPipeline pipeline)
1081 {
1082 AEMU_SCOPED_TRACE("vkCmdBindPipeline");
1083 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1084 vkEnc->vkCmdBindPipeline(commandBuffer, pipelineBindPoint, pipeline, true /* do lock */);
1085 }
entry_vkCmdSetViewport(VkCommandBuffer commandBuffer,uint32_t firstViewport,uint32_t viewportCount,const VkViewport * pViewports)1086 static void entry_vkCmdSetViewport(
1087 VkCommandBuffer commandBuffer,
1088 uint32_t firstViewport,
1089 uint32_t viewportCount,
1090 const VkViewport* pViewports)
1091 {
1092 AEMU_SCOPED_TRACE("vkCmdSetViewport");
1093 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1094 vkEnc->vkCmdSetViewport(commandBuffer, firstViewport, viewportCount, pViewports, true /* do lock */);
1095 }
entry_vkCmdSetScissor(VkCommandBuffer commandBuffer,uint32_t firstScissor,uint32_t scissorCount,const VkRect2D * pScissors)1096 static void entry_vkCmdSetScissor(
1097 VkCommandBuffer commandBuffer,
1098 uint32_t firstScissor,
1099 uint32_t scissorCount,
1100 const VkRect2D* pScissors)
1101 {
1102 AEMU_SCOPED_TRACE("vkCmdSetScissor");
1103 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1104 vkEnc->vkCmdSetScissor(commandBuffer, firstScissor, scissorCount, pScissors, true /* do lock */);
1105 }
entry_vkCmdSetLineWidth(VkCommandBuffer commandBuffer,float lineWidth)1106 static void entry_vkCmdSetLineWidth(
1107 VkCommandBuffer commandBuffer,
1108 float lineWidth)
1109 {
1110 AEMU_SCOPED_TRACE("vkCmdSetLineWidth");
1111 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1112 vkEnc->vkCmdSetLineWidth(commandBuffer, lineWidth, true /* do lock */);
1113 }
entry_vkCmdSetDepthBias(VkCommandBuffer commandBuffer,float depthBiasConstantFactor,float depthBiasClamp,float depthBiasSlopeFactor)1114 static void entry_vkCmdSetDepthBias(
1115 VkCommandBuffer commandBuffer,
1116 float depthBiasConstantFactor,
1117 float depthBiasClamp,
1118 float depthBiasSlopeFactor)
1119 {
1120 AEMU_SCOPED_TRACE("vkCmdSetDepthBias");
1121 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1122 vkEnc->vkCmdSetDepthBias(commandBuffer, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor, true /* do lock */);
1123 }
entry_vkCmdSetBlendConstants(VkCommandBuffer commandBuffer,const float blendConstants[4])1124 static void entry_vkCmdSetBlendConstants(
1125 VkCommandBuffer commandBuffer,
1126 const float blendConstants[4])
1127 {
1128 AEMU_SCOPED_TRACE("vkCmdSetBlendConstants");
1129 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1130 vkEnc->vkCmdSetBlendConstants(commandBuffer, blendConstants, true /* do lock */);
1131 }
entry_vkCmdSetDepthBounds(VkCommandBuffer commandBuffer,float minDepthBounds,float maxDepthBounds)1132 static void entry_vkCmdSetDepthBounds(
1133 VkCommandBuffer commandBuffer,
1134 float minDepthBounds,
1135 float maxDepthBounds)
1136 {
1137 AEMU_SCOPED_TRACE("vkCmdSetDepthBounds");
1138 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1139 vkEnc->vkCmdSetDepthBounds(commandBuffer, minDepthBounds, maxDepthBounds, true /* do lock */);
1140 }
entry_vkCmdSetStencilCompareMask(VkCommandBuffer commandBuffer,VkStencilFaceFlags faceMask,uint32_t compareMask)1141 static void entry_vkCmdSetStencilCompareMask(
1142 VkCommandBuffer commandBuffer,
1143 VkStencilFaceFlags faceMask,
1144 uint32_t compareMask)
1145 {
1146 AEMU_SCOPED_TRACE("vkCmdSetStencilCompareMask");
1147 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1148 vkEnc->vkCmdSetStencilCompareMask(commandBuffer, faceMask, compareMask, true /* do lock */);
1149 }
entry_vkCmdSetStencilWriteMask(VkCommandBuffer commandBuffer,VkStencilFaceFlags faceMask,uint32_t writeMask)1150 static void entry_vkCmdSetStencilWriteMask(
1151 VkCommandBuffer commandBuffer,
1152 VkStencilFaceFlags faceMask,
1153 uint32_t writeMask)
1154 {
1155 AEMU_SCOPED_TRACE("vkCmdSetStencilWriteMask");
1156 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1157 vkEnc->vkCmdSetStencilWriteMask(commandBuffer, faceMask, writeMask, true /* do lock */);
1158 }
entry_vkCmdSetStencilReference(VkCommandBuffer commandBuffer,VkStencilFaceFlags faceMask,uint32_t reference)1159 static void entry_vkCmdSetStencilReference(
1160 VkCommandBuffer commandBuffer,
1161 VkStencilFaceFlags faceMask,
1162 uint32_t reference)
1163 {
1164 AEMU_SCOPED_TRACE("vkCmdSetStencilReference");
1165 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1166 vkEnc->vkCmdSetStencilReference(commandBuffer, faceMask, reference, true /* do lock */);
1167 }
entry_vkCmdBindDescriptorSets(VkCommandBuffer commandBuffer,VkPipelineBindPoint pipelineBindPoint,VkPipelineLayout layout,uint32_t firstSet,uint32_t descriptorSetCount,const VkDescriptorSet * pDescriptorSets,uint32_t dynamicOffsetCount,const uint32_t * pDynamicOffsets)1168 static void entry_vkCmdBindDescriptorSets(
1169 VkCommandBuffer commandBuffer,
1170 VkPipelineBindPoint pipelineBindPoint,
1171 VkPipelineLayout layout,
1172 uint32_t firstSet,
1173 uint32_t descriptorSetCount,
1174 const VkDescriptorSet* pDescriptorSets,
1175 uint32_t dynamicOffsetCount,
1176 const uint32_t* pDynamicOffsets)
1177 {
1178 AEMU_SCOPED_TRACE("vkCmdBindDescriptorSets");
1179 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1180 auto resources = ResourceTracker::get();
1181 resources->on_vkCmdBindDescriptorSets(vkEnc, commandBuffer, pipelineBindPoint, layout, firstSet, descriptorSetCount, pDescriptorSets, dynamicOffsetCount, pDynamicOffsets);
1182 }
entry_vkCmdBindIndexBuffer(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkIndexType indexType)1183 static void entry_vkCmdBindIndexBuffer(
1184 VkCommandBuffer commandBuffer,
1185 VkBuffer buffer,
1186 VkDeviceSize offset,
1187 VkIndexType indexType)
1188 {
1189 AEMU_SCOPED_TRACE("vkCmdBindIndexBuffer");
1190 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1191 vkEnc->vkCmdBindIndexBuffer(commandBuffer, buffer, offset, indexType, true /* do lock */);
1192 }
entry_vkCmdBindVertexBuffers(VkCommandBuffer commandBuffer,uint32_t firstBinding,uint32_t bindingCount,const VkBuffer * pBuffers,const VkDeviceSize * pOffsets)1193 static void entry_vkCmdBindVertexBuffers(
1194 VkCommandBuffer commandBuffer,
1195 uint32_t firstBinding,
1196 uint32_t bindingCount,
1197 const VkBuffer* pBuffers,
1198 const VkDeviceSize* pOffsets)
1199 {
1200 AEMU_SCOPED_TRACE("vkCmdBindVertexBuffers");
1201 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1202 vkEnc->vkCmdBindVertexBuffers(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, true /* do lock */);
1203 }
entry_vkCmdDraw(VkCommandBuffer commandBuffer,uint32_t vertexCount,uint32_t instanceCount,uint32_t firstVertex,uint32_t firstInstance)1204 static void entry_vkCmdDraw(
1205 VkCommandBuffer commandBuffer,
1206 uint32_t vertexCount,
1207 uint32_t instanceCount,
1208 uint32_t firstVertex,
1209 uint32_t firstInstance)
1210 {
1211 AEMU_SCOPED_TRACE("vkCmdDraw");
1212 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1213 vkEnc->vkCmdDraw(commandBuffer, vertexCount, instanceCount, firstVertex, firstInstance, true /* do lock */);
1214 }
entry_vkCmdDrawIndexed(VkCommandBuffer commandBuffer,uint32_t indexCount,uint32_t instanceCount,uint32_t firstIndex,int32_t vertexOffset,uint32_t firstInstance)1215 static void entry_vkCmdDrawIndexed(
1216 VkCommandBuffer commandBuffer,
1217 uint32_t indexCount,
1218 uint32_t instanceCount,
1219 uint32_t firstIndex,
1220 int32_t vertexOffset,
1221 uint32_t firstInstance)
1222 {
1223 AEMU_SCOPED_TRACE("vkCmdDrawIndexed");
1224 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1225 vkEnc->vkCmdDrawIndexed(commandBuffer, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance, true /* do lock */);
1226 }
entry_vkCmdDrawIndirect(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,uint32_t drawCount,uint32_t stride)1227 static void entry_vkCmdDrawIndirect(
1228 VkCommandBuffer commandBuffer,
1229 VkBuffer buffer,
1230 VkDeviceSize offset,
1231 uint32_t drawCount,
1232 uint32_t stride)
1233 {
1234 AEMU_SCOPED_TRACE("vkCmdDrawIndirect");
1235 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1236 vkEnc->vkCmdDrawIndirect(commandBuffer, buffer, offset, drawCount, stride, true /* do lock */);
1237 }
entry_vkCmdDrawIndexedIndirect(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,uint32_t drawCount,uint32_t stride)1238 static void entry_vkCmdDrawIndexedIndirect(
1239 VkCommandBuffer commandBuffer,
1240 VkBuffer buffer,
1241 VkDeviceSize offset,
1242 uint32_t drawCount,
1243 uint32_t stride)
1244 {
1245 AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirect");
1246 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1247 vkEnc->vkCmdDrawIndexedIndirect(commandBuffer, buffer, offset, drawCount, stride, true /* do lock */);
1248 }
entry_vkCmdDispatch(VkCommandBuffer commandBuffer,uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ)1249 static void entry_vkCmdDispatch(
1250 VkCommandBuffer commandBuffer,
1251 uint32_t groupCountX,
1252 uint32_t groupCountY,
1253 uint32_t groupCountZ)
1254 {
1255 AEMU_SCOPED_TRACE("vkCmdDispatch");
1256 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1257 vkEnc->vkCmdDispatch(commandBuffer, groupCountX, groupCountY, groupCountZ, true /* do lock */);
1258 }
entry_vkCmdDispatchIndirect(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset)1259 static void entry_vkCmdDispatchIndirect(
1260 VkCommandBuffer commandBuffer,
1261 VkBuffer buffer,
1262 VkDeviceSize offset)
1263 {
1264 AEMU_SCOPED_TRACE("vkCmdDispatchIndirect");
1265 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1266 vkEnc->vkCmdDispatchIndirect(commandBuffer, buffer, offset, true /* do lock */);
1267 }
entry_vkCmdCopyBuffer(VkCommandBuffer commandBuffer,VkBuffer srcBuffer,VkBuffer dstBuffer,uint32_t regionCount,const VkBufferCopy * pRegions)1268 static void entry_vkCmdCopyBuffer(
1269 VkCommandBuffer commandBuffer,
1270 VkBuffer srcBuffer,
1271 VkBuffer dstBuffer,
1272 uint32_t regionCount,
1273 const VkBufferCopy* pRegions)
1274 {
1275 AEMU_SCOPED_TRACE("vkCmdCopyBuffer");
1276 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1277 vkEnc->vkCmdCopyBuffer(commandBuffer, srcBuffer, dstBuffer, regionCount, pRegions, true /* do lock */);
1278 }
entry_vkCmdCopyImage(VkCommandBuffer commandBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkImage dstImage,VkImageLayout dstImageLayout,uint32_t regionCount,const VkImageCopy * pRegions)1279 static void entry_vkCmdCopyImage(
1280 VkCommandBuffer commandBuffer,
1281 VkImage srcImage,
1282 VkImageLayout srcImageLayout,
1283 VkImage dstImage,
1284 VkImageLayout dstImageLayout,
1285 uint32_t regionCount,
1286 const VkImageCopy* pRegions)
1287 {
1288 AEMU_SCOPED_TRACE("vkCmdCopyImage");
1289 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1290 vkEnc->vkCmdCopyImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions, true /* do lock */);
1291 }
entry_vkCmdBlitImage(VkCommandBuffer commandBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkImage dstImage,VkImageLayout dstImageLayout,uint32_t regionCount,const VkImageBlit * pRegions,VkFilter filter)1292 static void entry_vkCmdBlitImage(
1293 VkCommandBuffer commandBuffer,
1294 VkImage srcImage,
1295 VkImageLayout srcImageLayout,
1296 VkImage dstImage,
1297 VkImageLayout dstImageLayout,
1298 uint32_t regionCount,
1299 const VkImageBlit* pRegions,
1300 VkFilter filter)
1301 {
1302 AEMU_SCOPED_TRACE("vkCmdBlitImage");
1303 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1304 vkEnc->vkCmdBlitImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions, filter, true /* do lock */);
1305 }
entry_vkCmdCopyBufferToImage(VkCommandBuffer commandBuffer,VkBuffer srcBuffer,VkImage dstImage,VkImageLayout dstImageLayout,uint32_t regionCount,const VkBufferImageCopy * pRegions)1306 static void entry_vkCmdCopyBufferToImage(
1307 VkCommandBuffer commandBuffer,
1308 VkBuffer srcBuffer,
1309 VkImage dstImage,
1310 VkImageLayout dstImageLayout,
1311 uint32_t regionCount,
1312 const VkBufferImageCopy* pRegions)
1313 {
1314 AEMU_SCOPED_TRACE("vkCmdCopyBufferToImage");
1315 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1316 vkEnc->vkCmdCopyBufferToImage(commandBuffer, srcBuffer, dstImage, dstImageLayout, regionCount, pRegions, true /* do lock */);
1317 }
entry_vkCmdCopyImageToBuffer(VkCommandBuffer commandBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkBuffer dstBuffer,uint32_t regionCount,const VkBufferImageCopy * pRegions)1318 static void entry_vkCmdCopyImageToBuffer(
1319 VkCommandBuffer commandBuffer,
1320 VkImage srcImage,
1321 VkImageLayout srcImageLayout,
1322 VkBuffer dstBuffer,
1323 uint32_t regionCount,
1324 const VkBufferImageCopy* pRegions)
1325 {
1326 AEMU_SCOPED_TRACE("vkCmdCopyImageToBuffer");
1327 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1328 vkEnc->vkCmdCopyImageToBuffer(commandBuffer, srcImage, srcImageLayout, dstBuffer, regionCount, pRegions, true /* do lock */);
1329 }
entry_vkCmdUpdateBuffer(VkCommandBuffer commandBuffer,VkBuffer dstBuffer,VkDeviceSize dstOffset,VkDeviceSize dataSize,const void * pData)1330 static void entry_vkCmdUpdateBuffer(
1331 VkCommandBuffer commandBuffer,
1332 VkBuffer dstBuffer,
1333 VkDeviceSize dstOffset,
1334 VkDeviceSize dataSize,
1335 const void* pData)
1336 {
1337 AEMU_SCOPED_TRACE("vkCmdUpdateBuffer");
1338 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1339 vkEnc->vkCmdUpdateBuffer(commandBuffer, dstBuffer, dstOffset, dataSize, pData, true /* do lock */);
1340 }
entry_vkCmdFillBuffer(VkCommandBuffer commandBuffer,VkBuffer dstBuffer,VkDeviceSize dstOffset,VkDeviceSize size,uint32_t data)1341 static void entry_vkCmdFillBuffer(
1342 VkCommandBuffer commandBuffer,
1343 VkBuffer dstBuffer,
1344 VkDeviceSize dstOffset,
1345 VkDeviceSize size,
1346 uint32_t data)
1347 {
1348 AEMU_SCOPED_TRACE("vkCmdFillBuffer");
1349 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1350 vkEnc->vkCmdFillBuffer(commandBuffer, dstBuffer, dstOffset, size, data, true /* do lock */);
1351 }
entry_vkCmdClearColorImage(VkCommandBuffer commandBuffer,VkImage image,VkImageLayout imageLayout,const VkClearColorValue * pColor,uint32_t rangeCount,const VkImageSubresourceRange * pRanges)1352 static void entry_vkCmdClearColorImage(
1353 VkCommandBuffer commandBuffer,
1354 VkImage image,
1355 VkImageLayout imageLayout,
1356 const VkClearColorValue* pColor,
1357 uint32_t rangeCount,
1358 const VkImageSubresourceRange* pRanges)
1359 {
1360 AEMU_SCOPED_TRACE("vkCmdClearColorImage");
1361 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1362 vkEnc->vkCmdClearColorImage(commandBuffer, image, imageLayout, pColor, rangeCount, pRanges, true /* do lock */);
1363 }
entry_vkCmdClearDepthStencilImage(VkCommandBuffer commandBuffer,VkImage image,VkImageLayout imageLayout,const VkClearDepthStencilValue * pDepthStencil,uint32_t rangeCount,const VkImageSubresourceRange * pRanges)1364 static void entry_vkCmdClearDepthStencilImage(
1365 VkCommandBuffer commandBuffer,
1366 VkImage image,
1367 VkImageLayout imageLayout,
1368 const VkClearDepthStencilValue* pDepthStencil,
1369 uint32_t rangeCount,
1370 const VkImageSubresourceRange* pRanges)
1371 {
1372 AEMU_SCOPED_TRACE("vkCmdClearDepthStencilImage");
1373 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1374 vkEnc->vkCmdClearDepthStencilImage(commandBuffer, image, imageLayout, pDepthStencil, rangeCount, pRanges, true /* do lock */);
1375 }
entry_vkCmdClearAttachments(VkCommandBuffer commandBuffer,uint32_t attachmentCount,const VkClearAttachment * pAttachments,uint32_t rectCount,const VkClearRect * pRects)1376 static void entry_vkCmdClearAttachments(
1377 VkCommandBuffer commandBuffer,
1378 uint32_t attachmentCount,
1379 const VkClearAttachment* pAttachments,
1380 uint32_t rectCount,
1381 const VkClearRect* pRects)
1382 {
1383 AEMU_SCOPED_TRACE("vkCmdClearAttachments");
1384 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1385 vkEnc->vkCmdClearAttachments(commandBuffer, attachmentCount, pAttachments, rectCount, pRects, true /* do lock */);
1386 }
entry_vkCmdResolveImage(VkCommandBuffer commandBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkImage dstImage,VkImageLayout dstImageLayout,uint32_t regionCount,const VkImageResolve * pRegions)1387 static void entry_vkCmdResolveImage(
1388 VkCommandBuffer commandBuffer,
1389 VkImage srcImage,
1390 VkImageLayout srcImageLayout,
1391 VkImage dstImage,
1392 VkImageLayout dstImageLayout,
1393 uint32_t regionCount,
1394 const VkImageResolve* pRegions)
1395 {
1396 AEMU_SCOPED_TRACE("vkCmdResolveImage");
1397 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1398 vkEnc->vkCmdResolveImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions, true /* do lock */);
1399 }
entry_vkCmdSetEvent(VkCommandBuffer commandBuffer,VkEvent event,VkPipelineStageFlags stageMask)1400 static void entry_vkCmdSetEvent(
1401 VkCommandBuffer commandBuffer,
1402 VkEvent event,
1403 VkPipelineStageFlags stageMask)
1404 {
1405 AEMU_SCOPED_TRACE("vkCmdSetEvent");
1406 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1407 vkEnc->vkCmdSetEvent(commandBuffer, event, stageMask, true /* do lock */);
1408 }
entry_vkCmdResetEvent(VkCommandBuffer commandBuffer,VkEvent event,VkPipelineStageFlags stageMask)1409 static void entry_vkCmdResetEvent(
1410 VkCommandBuffer commandBuffer,
1411 VkEvent event,
1412 VkPipelineStageFlags stageMask)
1413 {
1414 AEMU_SCOPED_TRACE("vkCmdResetEvent");
1415 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1416 vkEnc->vkCmdResetEvent(commandBuffer, event, stageMask, true /* do lock */);
1417 }
entry_vkCmdWaitEvents(VkCommandBuffer commandBuffer,uint32_t eventCount,const VkEvent * pEvents,VkPipelineStageFlags srcStageMask,VkPipelineStageFlags dstStageMask,uint32_t memoryBarrierCount,const VkMemoryBarrier * pMemoryBarriers,uint32_t bufferMemoryBarrierCount,const VkBufferMemoryBarrier * pBufferMemoryBarriers,uint32_t imageMemoryBarrierCount,const VkImageMemoryBarrier * pImageMemoryBarriers)1418 static void entry_vkCmdWaitEvents(
1419 VkCommandBuffer commandBuffer,
1420 uint32_t eventCount,
1421 const VkEvent* pEvents,
1422 VkPipelineStageFlags srcStageMask,
1423 VkPipelineStageFlags dstStageMask,
1424 uint32_t memoryBarrierCount,
1425 const VkMemoryBarrier* pMemoryBarriers,
1426 uint32_t bufferMemoryBarrierCount,
1427 const VkBufferMemoryBarrier* pBufferMemoryBarriers,
1428 uint32_t imageMemoryBarrierCount,
1429 const VkImageMemoryBarrier* pImageMemoryBarriers)
1430 {
1431 AEMU_SCOPED_TRACE("vkCmdWaitEvents");
1432 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1433 vkEnc->vkCmdWaitEvents(commandBuffer, eventCount, pEvents, srcStageMask, dstStageMask, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers, true /* do lock */);
1434 }
entry_vkCmdPipelineBarrier(VkCommandBuffer commandBuffer,VkPipelineStageFlags srcStageMask,VkPipelineStageFlags dstStageMask,VkDependencyFlags dependencyFlags,uint32_t memoryBarrierCount,const VkMemoryBarrier * pMemoryBarriers,uint32_t bufferMemoryBarrierCount,const VkBufferMemoryBarrier * pBufferMemoryBarriers,uint32_t imageMemoryBarrierCount,const VkImageMemoryBarrier * pImageMemoryBarriers)1435 static void entry_vkCmdPipelineBarrier(
1436 VkCommandBuffer commandBuffer,
1437 VkPipelineStageFlags srcStageMask,
1438 VkPipelineStageFlags dstStageMask,
1439 VkDependencyFlags dependencyFlags,
1440 uint32_t memoryBarrierCount,
1441 const VkMemoryBarrier* pMemoryBarriers,
1442 uint32_t bufferMemoryBarrierCount,
1443 const VkBufferMemoryBarrier* pBufferMemoryBarriers,
1444 uint32_t imageMemoryBarrierCount,
1445 const VkImageMemoryBarrier* pImageMemoryBarriers)
1446 {
1447 AEMU_SCOPED_TRACE("vkCmdPipelineBarrier");
1448 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1449 vkEnc->vkCmdPipelineBarrier(commandBuffer, srcStageMask, dstStageMask, dependencyFlags, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers, true /* do lock */);
1450 }
entry_vkCmdBeginQuery(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t query,VkQueryControlFlags flags)1451 static void entry_vkCmdBeginQuery(
1452 VkCommandBuffer commandBuffer,
1453 VkQueryPool queryPool,
1454 uint32_t query,
1455 VkQueryControlFlags flags)
1456 {
1457 AEMU_SCOPED_TRACE("vkCmdBeginQuery");
1458 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1459 vkEnc->vkCmdBeginQuery(commandBuffer, queryPool, query, flags, true /* do lock */);
1460 }
entry_vkCmdEndQuery(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t query)1461 static void entry_vkCmdEndQuery(
1462 VkCommandBuffer commandBuffer,
1463 VkQueryPool queryPool,
1464 uint32_t query)
1465 {
1466 AEMU_SCOPED_TRACE("vkCmdEndQuery");
1467 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1468 vkEnc->vkCmdEndQuery(commandBuffer, queryPool, query, true /* do lock */);
1469 }
entry_vkCmdResetQueryPool(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount)1470 static void entry_vkCmdResetQueryPool(
1471 VkCommandBuffer commandBuffer,
1472 VkQueryPool queryPool,
1473 uint32_t firstQuery,
1474 uint32_t queryCount)
1475 {
1476 AEMU_SCOPED_TRACE("vkCmdResetQueryPool");
1477 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1478 vkEnc->vkCmdResetQueryPool(commandBuffer, queryPool, firstQuery, queryCount, true /* do lock */);
1479 }
entry_vkCmdWriteTimestamp(VkCommandBuffer commandBuffer,VkPipelineStageFlagBits pipelineStage,VkQueryPool queryPool,uint32_t query)1480 static void entry_vkCmdWriteTimestamp(
1481 VkCommandBuffer commandBuffer,
1482 VkPipelineStageFlagBits pipelineStage,
1483 VkQueryPool queryPool,
1484 uint32_t query)
1485 {
1486 AEMU_SCOPED_TRACE("vkCmdWriteTimestamp");
1487 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1488 vkEnc->vkCmdWriteTimestamp(commandBuffer, pipelineStage, queryPool, query, true /* do lock */);
1489 }
entry_vkCmdCopyQueryPoolResults(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,VkBuffer dstBuffer,VkDeviceSize dstOffset,VkDeviceSize stride,VkQueryResultFlags flags)1490 static void entry_vkCmdCopyQueryPoolResults(
1491 VkCommandBuffer commandBuffer,
1492 VkQueryPool queryPool,
1493 uint32_t firstQuery,
1494 uint32_t queryCount,
1495 VkBuffer dstBuffer,
1496 VkDeviceSize dstOffset,
1497 VkDeviceSize stride,
1498 VkQueryResultFlags flags)
1499 {
1500 AEMU_SCOPED_TRACE("vkCmdCopyQueryPoolResults");
1501 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1502 vkEnc->vkCmdCopyQueryPoolResults(commandBuffer, queryPool, firstQuery, queryCount, dstBuffer, dstOffset, stride, flags, true /* do lock */);
1503 }
entry_vkCmdPushConstants(VkCommandBuffer commandBuffer,VkPipelineLayout layout,VkShaderStageFlags stageFlags,uint32_t offset,uint32_t size,const void * pValues)1504 static void entry_vkCmdPushConstants(
1505 VkCommandBuffer commandBuffer,
1506 VkPipelineLayout layout,
1507 VkShaderStageFlags stageFlags,
1508 uint32_t offset,
1509 uint32_t size,
1510 const void* pValues)
1511 {
1512 AEMU_SCOPED_TRACE("vkCmdPushConstants");
1513 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1514 vkEnc->vkCmdPushConstants(commandBuffer, layout, stageFlags, offset, size, pValues, true /* do lock */);
1515 }
entry_vkCmdBeginRenderPass(VkCommandBuffer commandBuffer,const VkRenderPassBeginInfo * pRenderPassBegin,VkSubpassContents contents)1516 static void entry_vkCmdBeginRenderPass(
1517 VkCommandBuffer commandBuffer,
1518 const VkRenderPassBeginInfo* pRenderPassBegin,
1519 VkSubpassContents contents)
1520 {
1521 AEMU_SCOPED_TRACE("vkCmdBeginRenderPass");
1522 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1523 vkEnc->vkCmdBeginRenderPass(commandBuffer, pRenderPassBegin, contents, true /* do lock */);
1524 }
entry_vkCmdNextSubpass(VkCommandBuffer commandBuffer,VkSubpassContents contents)1525 static void entry_vkCmdNextSubpass(
1526 VkCommandBuffer commandBuffer,
1527 VkSubpassContents contents)
1528 {
1529 AEMU_SCOPED_TRACE("vkCmdNextSubpass");
1530 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1531 vkEnc->vkCmdNextSubpass(commandBuffer, contents, true /* do lock */);
1532 }
entry_vkCmdEndRenderPass(VkCommandBuffer commandBuffer)1533 static void entry_vkCmdEndRenderPass(
1534 VkCommandBuffer commandBuffer)
1535 {
1536 AEMU_SCOPED_TRACE("vkCmdEndRenderPass");
1537 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1538 vkEnc->vkCmdEndRenderPass(commandBuffer, true /* do lock */);
1539 }
entry_vkCmdExecuteCommands(VkCommandBuffer commandBuffer,uint32_t commandBufferCount,const VkCommandBuffer * pCommandBuffers)1540 static void entry_vkCmdExecuteCommands(
1541 VkCommandBuffer commandBuffer,
1542 uint32_t commandBufferCount,
1543 const VkCommandBuffer* pCommandBuffers)
1544 {
1545 AEMU_SCOPED_TRACE("vkCmdExecuteCommands");
1546 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1547 auto resources = ResourceTracker::get();
1548 resources->on_vkCmdExecuteCommands(vkEnc, commandBuffer, commandBufferCount, pCommandBuffers);
1549 }
1550 #endif
1551 #ifdef VK_VERSION_1_1
entry_vkEnumerateInstanceVersion(uint32_t * pApiVersion)1552 static VkResult entry_vkEnumerateInstanceVersion(
1553 uint32_t* pApiVersion)
1554 {
1555 AEMU_SCOPED_TRACE("vkEnumerateInstanceVersion");
1556 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1557 VkResult vkEnumerateInstanceVersion_VkResult_return = (VkResult)0;
1558 vkEnumerateInstanceVersion_VkResult_return = vkEnc->vkEnumerateInstanceVersion(pApiVersion, true /* do lock */);
1559 return vkEnumerateInstanceVersion_VkResult_return;
1560 }
entry_vkBindBufferMemory2(VkDevice device,uint32_t bindInfoCount,const VkBindBufferMemoryInfo * pBindInfos)1561 static VkResult entry_vkBindBufferMemory2(
1562 VkDevice device,
1563 uint32_t bindInfoCount,
1564 const VkBindBufferMemoryInfo* pBindInfos)
1565 {
1566 AEMU_SCOPED_TRACE("vkBindBufferMemory2");
1567 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1568 VkResult vkBindBufferMemory2_VkResult_return = (VkResult)0;
1569 auto resources = ResourceTracker::get();
1570 vkBindBufferMemory2_VkResult_return = resources->on_vkBindBufferMemory2(vkEnc, VK_SUCCESS, device, bindInfoCount, pBindInfos);
1571 return vkBindBufferMemory2_VkResult_return;
1572 }
dynCheck_entry_vkBindBufferMemory2(VkDevice device,uint32_t bindInfoCount,const VkBindBufferMemoryInfo * pBindInfos)1573 static VkResult dynCheck_entry_vkBindBufferMemory2(
1574 VkDevice device,
1575 uint32_t bindInfoCount,
1576 const VkBindBufferMemoryInfo* pBindInfos)
1577 {
1578 auto resources = ResourceTracker::get();
1579 if (resources->getApiVersionFromDevice(device) < VK_API_VERSION_1_1)
1580 {
1581 sOnInvalidDynamicallyCheckedCall("vkBindBufferMemory2", "VK_VERSION_1_1");
1582 }
1583 AEMU_SCOPED_TRACE("vkBindBufferMemory2");
1584 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1585 VkResult vkBindBufferMemory2_VkResult_return = (VkResult)0;
1586 vkBindBufferMemory2_VkResult_return = resources->on_vkBindBufferMemory2(vkEnc, VK_SUCCESS, device, bindInfoCount, pBindInfos);
1587 return vkBindBufferMemory2_VkResult_return;
1588 }
entry_vkBindImageMemory2(VkDevice device,uint32_t bindInfoCount,const VkBindImageMemoryInfo * pBindInfos)1589 static VkResult entry_vkBindImageMemory2(
1590 VkDevice device,
1591 uint32_t bindInfoCount,
1592 const VkBindImageMemoryInfo* pBindInfos)
1593 {
1594 AEMU_SCOPED_TRACE("vkBindImageMemory2");
1595 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1596 VkResult vkBindImageMemory2_VkResult_return = (VkResult)0;
1597 auto resources = ResourceTracker::get();
1598 vkBindImageMemory2_VkResult_return = resources->on_vkBindImageMemory2(vkEnc, VK_SUCCESS, device, bindInfoCount, pBindInfos);
1599 return vkBindImageMemory2_VkResult_return;
1600 }
dynCheck_entry_vkBindImageMemory2(VkDevice device,uint32_t bindInfoCount,const VkBindImageMemoryInfo * pBindInfos)1601 static VkResult dynCheck_entry_vkBindImageMemory2(
1602 VkDevice device,
1603 uint32_t bindInfoCount,
1604 const VkBindImageMemoryInfo* pBindInfos)
1605 {
1606 auto resources = ResourceTracker::get();
1607 if (resources->getApiVersionFromDevice(device) < VK_API_VERSION_1_1)
1608 {
1609 sOnInvalidDynamicallyCheckedCall("vkBindImageMemory2", "VK_VERSION_1_1");
1610 }
1611 AEMU_SCOPED_TRACE("vkBindImageMemory2");
1612 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1613 VkResult vkBindImageMemory2_VkResult_return = (VkResult)0;
1614 vkBindImageMemory2_VkResult_return = resources->on_vkBindImageMemory2(vkEnc, VK_SUCCESS, device, bindInfoCount, pBindInfos);
1615 return vkBindImageMemory2_VkResult_return;
1616 }
entry_vkGetDeviceGroupPeerMemoryFeatures(VkDevice device,uint32_t heapIndex,uint32_t localDeviceIndex,uint32_t remoteDeviceIndex,VkPeerMemoryFeatureFlags * pPeerMemoryFeatures)1617 static void entry_vkGetDeviceGroupPeerMemoryFeatures(
1618 VkDevice device,
1619 uint32_t heapIndex,
1620 uint32_t localDeviceIndex,
1621 uint32_t remoteDeviceIndex,
1622 VkPeerMemoryFeatureFlags* pPeerMemoryFeatures)
1623 {
1624 AEMU_SCOPED_TRACE("vkGetDeviceGroupPeerMemoryFeatures");
1625 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1626 vkEnc->vkGetDeviceGroupPeerMemoryFeatures(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures, true /* do lock */);
1627 }
dynCheck_entry_vkGetDeviceGroupPeerMemoryFeatures(VkDevice device,uint32_t heapIndex,uint32_t localDeviceIndex,uint32_t remoteDeviceIndex,VkPeerMemoryFeatureFlags * pPeerMemoryFeatures)1628 static void dynCheck_entry_vkGetDeviceGroupPeerMemoryFeatures(
1629 VkDevice device,
1630 uint32_t heapIndex,
1631 uint32_t localDeviceIndex,
1632 uint32_t remoteDeviceIndex,
1633 VkPeerMemoryFeatureFlags* pPeerMemoryFeatures)
1634 {
1635 auto resources = ResourceTracker::get();
1636 if (resources->getApiVersionFromDevice(device) < VK_API_VERSION_1_1)
1637 {
1638 sOnInvalidDynamicallyCheckedCall("vkGetDeviceGroupPeerMemoryFeatures", "VK_VERSION_1_1");
1639 }
1640 AEMU_SCOPED_TRACE("vkGetDeviceGroupPeerMemoryFeatures");
1641 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1642 vkEnc->vkGetDeviceGroupPeerMemoryFeatures(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures, true /* do lock */);
1643 }
entry_vkCmdSetDeviceMask(VkCommandBuffer commandBuffer,uint32_t deviceMask)1644 static void entry_vkCmdSetDeviceMask(
1645 VkCommandBuffer commandBuffer,
1646 uint32_t deviceMask)
1647 {
1648 AEMU_SCOPED_TRACE("vkCmdSetDeviceMask");
1649 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1650 vkEnc->vkCmdSetDeviceMask(commandBuffer, deviceMask, true /* do lock */);
1651 }
entry_vkCmdDispatchBase(VkCommandBuffer commandBuffer,uint32_t baseGroupX,uint32_t baseGroupY,uint32_t baseGroupZ,uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ)1652 static void entry_vkCmdDispatchBase(
1653 VkCommandBuffer commandBuffer,
1654 uint32_t baseGroupX,
1655 uint32_t baseGroupY,
1656 uint32_t baseGroupZ,
1657 uint32_t groupCountX,
1658 uint32_t groupCountY,
1659 uint32_t groupCountZ)
1660 {
1661 AEMU_SCOPED_TRACE("vkCmdDispatchBase");
1662 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1663 vkEnc->vkCmdDispatchBase(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ, true /* do lock */);
1664 }
entry_vkEnumeratePhysicalDeviceGroups(VkInstance instance,uint32_t * pPhysicalDeviceGroupCount,VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties)1665 static VkResult entry_vkEnumeratePhysicalDeviceGroups(
1666 VkInstance instance,
1667 uint32_t* pPhysicalDeviceGroupCount,
1668 VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties)
1669 {
1670 AEMU_SCOPED_TRACE("vkEnumeratePhysicalDeviceGroups");
1671 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1672 VkResult vkEnumeratePhysicalDeviceGroups_VkResult_return = (VkResult)0;
1673 vkEnumeratePhysicalDeviceGroups_VkResult_return = vkEnc->vkEnumeratePhysicalDeviceGroups(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties, true /* do lock */);
1674 return vkEnumeratePhysicalDeviceGroups_VkResult_return;
1675 }
entry_vkGetImageMemoryRequirements2(VkDevice device,const VkImageMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements)1676 static void entry_vkGetImageMemoryRequirements2(
1677 VkDevice device,
1678 const VkImageMemoryRequirementsInfo2* pInfo,
1679 VkMemoryRequirements2* pMemoryRequirements)
1680 {
1681 AEMU_SCOPED_TRACE("vkGetImageMemoryRequirements2");
1682 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1683 auto resources = ResourceTracker::get();
1684 resources->on_vkGetImageMemoryRequirements2(vkEnc, device, pInfo, pMemoryRequirements);
1685 }
dynCheck_entry_vkGetImageMemoryRequirements2(VkDevice device,const VkImageMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements)1686 static void dynCheck_entry_vkGetImageMemoryRequirements2(
1687 VkDevice device,
1688 const VkImageMemoryRequirementsInfo2* pInfo,
1689 VkMemoryRequirements2* pMemoryRequirements)
1690 {
1691 auto resources = ResourceTracker::get();
1692 if (resources->getApiVersionFromDevice(device) < VK_API_VERSION_1_1)
1693 {
1694 sOnInvalidDynamicallyCheckedCall("vkGetImageMemoryRequirements2", "VK_VERSION_1_1");
1695 }
1696 AEMU_SCOPED_TRACE("vkGetImageMemoryRequirements2");
1697 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1698 resources->on_vkGetImageMemoryRequirements2(vkEnc, device, pInfo, pMemoryRequirements);
1699 }
entry_vkGetBufferMemoryRequirements2(VkDevice device,const VkBufferMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements)1700 static void entry_vkGetBufferMemoryRequirements2(
1701 VkDevice device,
1702 const VkBufferMemoryRequirementsInfo2* pInfo,
1703 VkMemoryRequirements2* pMemoryRequirements)
1704 {
1705 AEMU_SCOPED_TRACE("vkGetBufferMemoryRequirements2");
1706 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1707 auto resources = ResourceTracker::get();
1708 resources->on_vkGetBufferMemoryRequirements2(vkEnc, device, pInfo, pMemoryRequirements);
1709 }
dynCheck_entry_vkGetBufferMemoryRequirements2(VkDevice device,const VkBufferMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements)1710 static void dynCheck_entry_vkGetBufferMemoryRequirements2(
1711 VkDevice device,
1712 const VkBufferMemoryRequirementsInfo2* pInfo,
1713 VkMemoryRequirements2* pMemoryRequirements)
1714 {
1715 auto resources = ResourceTracker::get();
1716 if (resources->getApiVersionFromDevice(device) < VK_API_VERSION_1_1)
1717 {
1718 sOnInvalidDynamicallyCheckedCall("vkGetBufferMemoryRequirements2", "VK_VERSION_1_1");
1719 }
1720 AEMU_SCOPED_TRACE("vkGetBufferMemoryRequirements2");
1721 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1722 resources->on_vkGetBufferMemoryRequirements2(vkEnc, device, pInfo, pMemoryRequirements);
1723 }
entry_vkGetImageSparseMemoryRequirements2(VkDevice device,const VkImageSparseMemoryRequirementsInfo2 * pInfo,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements)1724 static void entry_vkGetImageSparseMemoryRequirements2(
1725 VkDevice device,
1726 const VkImageSparseMemoryRequirementsInfo2* pInfo,
1727 uint32_t* pSparseMemoryRequirementCount,
1728 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements)
1729 {
1730 AEMU_SCOPED_TRACE("vkGetImageSparseMemoryRequirements2");
1731 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1732 vkEnc->vkGetImageSparseMemoryRequirements2(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements, true /* do lock */);
1733 }
dynCheck_entry_vkGetImageSparseMemoryRequirements2(VkDevice device,const VkImageSparseMemoryRequirementsInfo2 * pInfo,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements)1734 static void dynCheck_entry_vkGetImageSparseMemoryRequirements2(
1735 VkDevice device,
1736 const VkImageSparseMemoryRequirementsInfo2* pInfo,
1737 uint32_t* pSparseMemoryRequirementCount,
1738 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements)
1739 {
1740 auto resources = ResourceTracker::get();
1741 if (resources->getApiVersionFromDevice(device) < VK_API_VERSION_1_1)
1742 {
1743 sOnInvalidDynamicallyCheckedCall("vkGetImageSparseMemoryRequirements2", "VK_VERSION_1_1");
1744 }
1745 AEMU_SCOPED_TRACE("vkGetImageSparseMemoryRequirements2");
1746 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1747 vkEnc->vkGetImageSparseMemoryRequirements2(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements, true /* do lock */);
1748 }
entry_vkGetPhysicalDeviceFeatures2(VkPhysicalDevice physicalDevice,VkPhysicalDeviceFeatures2 * pFeatures)1749 static void entry_vkGetPhysicalDeviceFeatures2(
1750 VkPhysicalDevice physicalDevice,
1751 VkPhysicalDeviceFeatures2* pFeatures)
1752 {
1753 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFeatures2");
1754 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1755 vkEnc->vkGetPhysicalDeviceFeatures2(physicalDevice, pFeatures, true /* do lock */);
1756 }
entry_vkGetPhysicalDeviceProperties2(VkPhysicalDevice physicalDevice,VkPhysicalDeviceProperties2 * pProperties)1757 static void entry_vkGetPhysicalDeviceProperties2(
1758 VkPhysicalDevice physicalDevice,
1759 VkPhysicalDeviceProperties2* pProperties)
1760 {
1761 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceProperties2");
1762 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1763 vkEnc->vkGetPhysicalDeviceProperties2(physicalDevice, pProperties, true /* do lock */);
1764 }
entry_vkGetPhysicalDeviceFormatProperties2(VkPhysicalDevice physicalDevice,VkFormat format,VkFormatProperties2 * pFormatProperties)1765 static void entry_vkGetPhysicalDeviceFormatProperties2(
1766 VkPhysicalDevice physicalDevice,
1767 VkFormat format,
1768 VkFormatProperties2* pFormatProperties)
1769 {
1770 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFormatProperties2");
1771 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1772 vkEnc->vkGetPhysicalDeviceFormatProperties2(physicalDevice, format, pFormatProperties, true /* do lock */);
1773 }
entry_vkGetPhysicalDeviceImageFormatProperties2(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo,VkImageFormatProperties2 * pImageFormatProperties)1774 static VkResult entry_vkGetPhysicalDeviceImageFormatProperties2(
1775 VkPhysicalDevice physicalDevice,
1776 const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
1777 VkImageFormatProperties2* pImageFormatProperties)
1778 {
1779 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceImageFormatProperties2");
1780 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1781 VkResult vkGetPhysicalDeviceImageFormatProperties2_VkResult_return = (VkResult)0;
1782 auto resources = ResourceTracker::get();
1783 vkGetPhysicalDeviceImageFormatProperties2_VkResult_return = resources->on_vkGetPhysicalDeviceImageFormatProperties2(vkEnc, VK_SUCCESS, physicalDevice, pImageFormatInfo, pImageFormatProperties);
1784 return vkGetPhysicalDeviceImageFormatProperties2_VkResult_return;
1785 }
entry_vkGetPhysicalDeviceQueueFamilyProperties2(VkPhysicalDevice physicalDevice,uint32_t * pQueueFamilyPropertyCount,VkQueueFamilyProperties2 * pQueueFamilyProperties)1786 static void entry_vkGetPhysicalDeviceQueueFamilyProperties2(
1787 VkPhysicalDevice physicalDevice,
1788 uint32_t* pQueueFamilyPropertyCount,
1789 VkQueueFamilyProperties2* pQueueFamilyProperties)
1790 {
1791 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceQueueFamilyProperties2");
1792 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1793 vkEnc->vkGetPhysicalDeviceQueueFamilyProperties2(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties, true /* do lock */);
1794 }
entry_vkGetPhysicalDeviceMemoryProperties2(VkPhysicalDevice physicalDevice,VkPhysicalDeviceMemoryProperties2 * pMemoryProperties)1795 static void entry_vkGetPhysicalDeviceMemoryProperties2(
1796 VkPhysicalDevice physicalDevice,
1797 VkPhysicalDeviceMemoryProperties2* pMemoryProperties)
1798 {
1799 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMemoryProperties2");
1800 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1801 vkEnc->vkGetPhysicalDeviceMemoryProperties2(physicalDevice, pMemoryProperties, true /* do lock */);
1802 }
entry_vkGetPhysicalDeviceSparseImageFormatProperties2(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo,uint32_t * pPropertyCount,VkSparseImageFormatProperties2 * pProperties)1803 static void entry_vkGetPhysicalDeviceSparseImageFormatProperties2(
1804 VkPhysicalDevice physicalDevice,
1805 const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
1806 uint32_t* pPropertyCount,
1807 VkSparseImageFormatProperties2* pProperties)
1808 {
1809 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSparseImageFormatProperties2");
1810 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1811 vkEnc->vkGetPhysicalDeviceSparseImageFormatProperties2(physicalDevice, pFormatInfo, pPropertyCount, pProperties, true /* do lock */);
1812 }
entry_vkTrimCommandPool(VkDevice device,VkCommandPool commandPool,VkCommandPoolTrimFlags flags)1813 static void entry_vkTrimCommandPool(
1814 VkDevice device,
1815 VkCommandPool commandPool,
1816 VkCommandPoolTrimFlags flags)
1817 {
1818 AEMU_SCOPED_TRACE("vkTrimCommandPool");
1819 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1820 vkEnc->vkTrimCommandPool(device, commandPool, flags, true /* do lock */);
1821 }
dynCheck_entry_vkTrimCommandPool(VkDevice device,VkCommandPool commandPool,VkCommandPoolTrimFlags flags)1822 static void dynCheck_entry_vkTrimCommandPool(
1823 VkDevice device,
1824 VkCommandPool commandPool,
1825 VkCommandPoolTrimFlags flags)
1826 {
1827 auto resources = ResourceTracker::get();
1828 if (resources->getApiVersionFromDevice(device) < VK_API_VERSION_1_1)
1829 {
1830 sOnInvalidDynamicallyCheckedCall("vkTrimCommandPool", "VK_VERSION_1_1");
1831 }
1832 AEMU_SCOPED_TRACE("vkTrimCommandPool");
1833 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1834 vkEnc->vkTrimCommandPool(device, commandPool, flags, true /* do lock */);
1835 }
entry_vkGetDeviceQueue2(VkDevice device,const VkDeviceQueueInfo2 * pQueueInfo,VkQueue * pQueue)1836 static void entry_vkGetDeviceQueue2(
1837 VkDevice device,
1838 const VkDeviceQueueInfo2* pQueueInfo,
1839 VkQueue* pQueue)
1840 {
1841 AEMU_SCOPED_TRACE("vkGetDeviceQueue2");
1842 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1843 vkEnc->vkGetDeviceQueue2(device, pQueueInfo, pQueue, true /* do lock */);
1844 }
dynCheck_entry_vkGetDeviceQueue2(VkDevice device,const VkDeviceQueueInfo2 * pQueueInfo,VkQueue * pQueue)1845 static void dynCheck_entry_vkGetDeviceQueue2(
1846 VkDevice device,
1847 const VkDeviceQueueInfo2* pQueueInfo,
1848 VkQueue* pQueue)
1849 {
1850 auto resources = ResourceTracker::get();
1851 if (resources->getApiVersionFromDevice(device) < VK_API_VERSION_1_1)
1852 {
1853 sOnInvalidDynamicallyCheckedCall("vkGetDeviceQueue2", "VK_VERSION_1_1");
1854 }
1855 AEMU_SCOPED_TRACE("vkGetDeviceQueue2");
1856 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1857 vkEnc->vkGetDeviceQueue2(device, pQueueInfo, pQueue, true /* do lock */);
1858 }
entry_vkCreateSamplerYcbcrConversion(VkDevice device,const VkSamplerYcbcrConversionCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSamplerYcbcrConversion * pYcbcrConversion)1859 static VkResult entry_vkCreateSamplerYcbcrConversion(
1860 VkDevice device,
1861 const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
1862 const VkAllocationCallbacks* pAllocator,
1863 VkSamplerYcbcrConversion* pYcbcrConversion)
1864 {
1865 AEMU_SCOPED_TRACE("vkCreateSamplerYcbcrConversion");
1866 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1867 VkResult vkCreateSamplerYcbcrConversion_VkResult_return = (VkResult)0;
1868 auto resources = ResourceTracker::get();
1869 vkCreateSamplerYcbcrConversion_VkResult_return = resources->on_vkCreateSamplerYcbcrConversion(vkEnc, VK_SUCCESS, device, pCreateInfo, pAllocator, pYcbcrConversion);
1870 return vkCreateSamplerYcbcrConversion_VkResult_return;
1871 }
dynCheck_entry_vkCreateSamplerYcbcrConversion(VkDevice device,const VkSamplerYcbcrConversionCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSamplerYcbcrConversion * pYcbcrConversion)1872 static VkResult dynCheck_entry_vkCreateSamplerYcbcrConversion(
1873 VkDevice device,
1874 const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
1875 const VkAllocationCallbacks* pAllocator,
1876 VkSamplerYcbcrConversion* pYcbcrConversion)
1877 {
1878 auto resources = ResourceTracker::get();
1879 if (resources->getApiVersionFromDevice(device) < VK_API_VERSION_1_1)
1880 {
1881 sOnInvalidDynamicallyCheckedCall("vkCreateSamplerYcbcrConversion", "VK_VERSION_1_1");
1882 }
1883 AEMU_SCOPED_TRACE("vkCreateSamplerYcbcrConversion");
1884 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1885 VkResult vkCreateSamplerYcbcrConversion_VkResult_return = (VkResult)0;
1886 vkCreateSamplerYcbcrConversion_VkResult_return = resources->on_vkCreateSamplerYcbcrConversion(vkEnc, VK_SUCCESS, device, pCreateInfo, pAllocator, pYcbcrConversion);
1887 return vkCreateSamplerYcbcrConversion_VkResult_return;
1888 }
entry_vkDestroySamplerYcbcrConversion(VkDevice device,VkSamplerYcbcrConversion ycbcrConversion,const VkAllocationCallbacks * pAllocator)1889 static void entry_vkDestroySamplerYcbcrConversion(
1890 VkDevice device,
1891 VkSamplerYcbcrConversion ycbcrConversion,
1892 const VkAllocationCallbacks* pAllocator)
1893 {
1894 AEMU_SCOPED_TRACE("vkDestroySamplerYcbcrConversion");
1895 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1896 auto resources = ResourceTracker::get();
1897 resources->on_vkDestroySamplerYcbcrConversion(vkEnc, device, ycbcrConversion, pAllocator);
1898 }
dynCheck_entry_vkDestroySamplerYcbcrConversion(VkDevice device,VkSamplerYcbcrConversion ycbcrConversion,const VkAllocationCallbacks * pAllocator)1899 static void dynCheck_entry_vkDestroySamplerYcbcrConversion(
1900 VkDevice device,
1901 VkSamplerYcbcrConversion ycbcrConversion,
1902 const VkAllocationCallbacks* pAllocator)
1903 {
1904 auto resources = ResourceTracker::get();
1905 if (resources->getApiVersionFromDevice(device) < VK_API_VERSION_1_1)
1906 {
1907 sOnInvalidDynamicallyCheckedCall("vkDestroySamplerYcbcrConversion", "VK_VERSION_1_1");
1908 }
1909 AEMU_SCOPED_TRACE("vkDestroySamplerYcbcrConversion");
1910 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1911 resources->on_vkDestroySamplerYcbcrConversion(vkEnc, device, ycbcrConversion, pAllocator);
1912 }
entry_vkCreateDescriptorUpdateTemplate(VkDevice device,const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate)1913 static VkResult entry_vkCreateDescriptorUpdateTemplate(
1914 VkDevice device,
1915 const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
1916 const VkAllocationCallbacks* pAllocator,
1917 VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate)
1918 {
1919 AEMU_SCOPED_TRACE("vkCreateDescriptorUpdateTemplate");
1920 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1921 VkResult vkCreateDescriptorUpdateTemplate_VkResult_return = (VkResult)0;
1922 vkCreateDescriptorUpdateTemplate_VkResult_return = vkEnc->vkCreateDescriptorUpdateTemplate(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate, true /* do lock */);
1923 return vkCreateDescriptorUpdateTemplate_VkResult_return;
1924 }
dynCheck_entry_vkCreateDescriptorUpdateTemplate(VkDevice device,const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate)1925 static VkResult dynCheck_entry_vkCreateDescriptorUpdateTemplate(
1926 VkDevice device,
1927 const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
1928 const VkAllocationCallbacks* pAllocator,
1929 VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate)
1930 {
1931 auto resources = ResourceTracker::get();
1932 if (resources->getApiVersionFromDevice(device) < VK_API_VERSION_1_1)
1933 {
1934 sOnInvalidDynamicallyCheckedCall("vkCreateDescriptorUpdateTemplate", "VK_VERSION_1_1");
1935 }
1936 AEMU_SCOPED_TRACE("vkCreateDescriptorUpdateTemplate");
1937 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1938 VkResult vkCreateDescriptorUpdateTemplate_VkResult_return = (VkResult)0;
1939 vkCreateDescriptorUpdateTemplate_VkResult_return = vkEnc->vkCreateDescriptorUpdateTemplate(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate, true /* do lock */);
1940 return vkCreateDescriptorUpdateTemplate_VkResult_return;
1941 }
entry_vkDestroyDescriptorUpdateTemplate(VkDevice device,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const VkAllocationCallbacks * pAllocator)1942 static void entry_vkDestroyDescriptorUpdateTemplate(
1943 VkDevice device,
1944 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
1945 const VkAllocationCallbacks* pAllocator)
1946 {
1947 AEMU_SCOPED_TRACE("vkDestroyDescriptorUpdateTemplate");
1948 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1949 vkEnc->vkDestroyDescriptorUpdateTemplate(device, descriptorUpdateTemplate, pAllocator, true /* do lock */);
1950 }
dynCheck_entry_vkDestroyDescriptorUpdateTemplate(VkDevice device,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const VkAllocationCallbacks * pAllocator)1951 static void dynCheck_entry_vkDestroyDescriptorUpdateTemplate(
1952 VkDevice device,
1953 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
1954 const VkAllocationCallbacks* pAllocator)
1955 {
1956 auto resources = ResourceTracker::get();
1957 if (resources->getApiVersionFromDevice(device) < VK_API_VERSION_1_1)
1958 {
1959 sOnInvalidDynamicallyCheckedCall("vkDestroyDescriptorUpdateTemplate", "VK_VERSION_1_1");
1960 }
1961 AEMU_SCOPED_TRACE("vkDestroyDescriptorUpdateTemplate");
1962 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1963 vkEnc->vkDestroyDescriptorUpdateTemplate(device, descriptorUpdateTemplate, pAllocator, true /* do lock */);
1964 }
entry_vkUpdateDescriptorSetWithTemplate(VkDevice device,VkDescriptorSet descriptorSet,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const void * pData)1965 static void entry_vkUpdateDescriptorSetWithTemplate(
1966 VkDevice device,
1967 VkDescriptorSet descriptorSet,
1968 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
1969 const void* pData)
1970 {
1971 AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplate");
1972 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1973 auto resources = ResourceTracker::get();
1974 resources->on_vkUpdateDescriptorSetWithTemplate(vkEnc, device, descriptorSet, descriptorUpdateTemplate, pData);
1975 }
dynCheck_entry_vkUpdateDescriptorSetWithTemplate(VkDevice device,VkDescriptorSet descriptorSet,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const void * pData)1976 static void dynCheck_entry_vkUpdateDescriptorSetWithTemplate(
1977 VkDevice device,
1978 VkDescriptorSet descriptorSet,
1979 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
1980 const void* pData)
1981 {
1982 auto resources = ResourceTracker::get();
1983 if (resources->getApiVersionFromDevice(device) < VK_API_VERSION_1_1)
1984 {
1985 sOnInvalidDynamicallyCheckedCall("vkUpdateDescriptorSetWithTemplate", "VK_VERSION_1_1");
1986 }
1987 AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplate");
1988 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1989 resources->on_vkUpdateDescriptorSetWithTemplate(vkEnc, device, descriptorSet, descriptorUpdateTemplate, pData);
1990 }
entry_vkGetPhysicalDeviceExternalBufferProperties(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo,VkExternalBufferProperties * pExternalBufferProperties)1991 static void entry_vkGetPhysicalDeviceExternalBufferProperties(
1992 VkPhysicalDevice physicalDevice,
1993 const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
1994 VkExternalBufferProperties* pExternalBufferProperties)
1995 {
1996 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalBufferProperties");
1997 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1998 vkEnc->vkGetPhysicalDeviceExternalBufferProperties(physicalDevice, pExternalBufferInfo, pExternalBufferProperties, true /* do lock */);
1999 }
entry_vkGetPhysicalDeviceExternalFenceProperties(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo,VkExternalFenceProperties * pExternalFenceProperties)2000 static void entry_vkGetPhysicalDeviceExternalFenceProperties(
2001 VkPhysicalDevice physicalDevice,
2002 const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
2003 VkExternalFenceProperties* pExternalFenceProperties)
2004 {
2005 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalFenceProperties");
2006 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2007 auto resources = ResourceTracker::get();
2008 resources->on_vkGetPhysicalDeviceExternalFenceProperties(vkEnc, physicalDevice, pExternalFenceInfo, pExternalFenceProperties);
2009 }
entry_vkGetPhysicalDeviceExternalSemaphoreProperties(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo,VkExternalSemaphoreProperties * pExternalSemaphoreProperties)2010 static void entry_vkGetPhysicalDeviceExternalSemaphoreProperties(
2011 VkPhysicalDevice physicalDevice,
2012 const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
2013 VkExternalSemaphoreProperties* pExternalSemaphoreProperties)
2014 {
2015 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalSemaphoreProperties");
2016 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2017 vkEnc->vkGetPhysicalDeviceExternalSemaphoreProperties(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties, true /* do lock */);
2018 }
entry_vkGetDescriptorSetLayoutSupport(VkDevice device,const VkDescriptorSetLayoutCreateInfo * pCreateInfo,VkDescriptorSetLayoutSupport * pSupport)2019 static void entry_vkGetDescriptorSetLayoutSupport(
2020 VkDevice device,
2021 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
2022 VkDescriptorSetLayoutSupport* pSupport)
2023 {
2024 AEMU_SCOPED_TRACE("vkGetDescriptorSetLayoutSupport");
2025 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2026 vkEnc->vkGetDescriptorSetLayoutSupport(device, pCreateInfo, pSupport, true /* do lock */);
2027 }
dynCheck_entry_vkGetDescriptorSetLayoutSupport(VkDevice device,const VkDescriptorSetLayoutCreateInfo * pCreateInfo,VkDescriptorSetLayoutSupport * pSupport)2028 static void dynCheck_entry_vkGetDescriptorSetLayoutSupport(
2029 VkDevice device,
2030 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
2031 VkDescriptorSetLayoutSupport* pSupport)
2032 {
2033 auto resources = ResourceTracker::get();
2034 if (resources->getApiVersionFromDevice(device) < VK_API_VERSION_1_1)
2035 {
2036 sOnInvalidDynamicallyCheckedCall("vkGetDescriptorSetLayoutSupport", "VK_VERSION_1_1");
2037 }
2038 AEMU_SCOPED_TRACE("vkGetDescriptorSetLayoutSupport");
2039 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2040 vkEnc->vkGetDescriptorSetLayoutSupport(device, pCreateInfo, pSupport, true /* do lock */);
2041 }
2042 #endif
2043 #ifdef VK_VERSION_1_2
entry_vkCmdDrawIndirectCount(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride)2044 static void entry_vkCmdDrawIndirectCount(
2045 VkCommandBuffer commandBuffer,
2046 VkBuffer buffer,
2047 VkDeviceSize offset,
2048 VkBuffer countBuffer,
2049 VkDeviceSize countBufferOffset,
2050 uint32_t maxDrawCount,
2051 uint32_t stride)
2052 {
2053 AEMU_SCOPED_TRACE("vkCmdDrawIndirectCount");
2054 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
2055 vkEnc->vkCmdDrawIndirectCount(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, true /* do lock */);
2056 }
entry_vkCmdDrawIndexedIndirectCount(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride)2057 static void entry_vkCmdDrawIndexedIndirectCount(
2058 VkCommandBuffer commandBuffer,
2059 VkBuffer buffer,
2060 VkDeviceSize offset,
2061 VkBuffer countBuffer,
2062 VkDeviceSize countBufferOffset,
2063 uint32_t maxDrawCount,
2064 uint32_t stride)
2065 {
2066 AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirectCount");
2067 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
2068 vkEnc->vkCmdDrawIndexedIndirectCount(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, true /* do lock */);
2069 }
entry_vkCreateRenderPass2(VkDevice device,const VkRenderPassCreateInfo2 * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkRenderPass * pRenderPass)2070 static VkResult entry_vkCreateRenderPass2(
2071 VkDevice device,
2072 const VkRenderPassCreateInfo2* pCreateInfo,
2073 const VkAllocationCallbacks* pAllocator,
2074 VkRenderPass* pRenderPass)
2075 {
2076 AEMU_SCOPED_TRACE("vkCreateRenderPass2");
2077 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2078 VkResult vkCreateRenderPass2_VkResult_return = (VkResult)0;
2079 vkCreateRenderPass2_VkResult_return = vkEnc->vkCreateRenderPass2(device, pCreateInfo, pAllocator, pRenderPass, true /* do lock */);
2080 return vkCreateRenderPass2_VkResult_return;
2081 }
dynCheck_entry_vkCreateRenderPass2(VkDevice device,const VkRenderPassCreateInfo2 * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkRenderPass * pRenderPass)2082 static VkResult dynCheck_entry_vkCreateRenderPass2(
2083 VkDevice device,
2084 const VkRenderPassCreateInfo2* pCreateInfo,
2085 const VkAllocationCallbacks* pAllocator,
2086 VkRenderPass* pRenderPass)
2087 {
2088 auto resources = ResourceTracker::get();
2089 if (!resources->hasDeviceExtension(device, "VK_VERSION_1_2"))
2090 {
2091 sOnInvalidDynamicallyCheckedCall("vkCreateRenderPass2", "VK_VERSION_1_2");
2092 }
2093 AEMU_SCOPED_TRACE("vkCreateRenderPass2");
2094 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2095 VkResult vkCreateRenderPass2_VkResult_return = (VkResult)0;
2096 vkCreateRenderPass2_VkResult_return = vkEnc->vkCreateRenderPass2(device, pCreateInfo, pAllocator, pRenderPass, true /* do lock */);
2097 return vkCreateRenderPass2_VkResult_return;
2098 }
entry_vkCmdBeginRenderPass2(VkCommandBuffer commandBuffer,const VkRenderPassBeginInfo * pRenderPassBegin,const VkSubpassBeginInfo * pSubpassBeginInfo)2099 static void entry_vkCmdBeginRenderPass2(
2100 VkCommandBuffer commandBuffer,
2101 const VkRenderPassBeginInfo* pRenderPassBegin,
2102 const VkSubpassBeginInfo* pSubpassBeginInfo)
2103 {
2104 AEMU_SCOPED_TRACE("vkCmdBeginRenderPass2");
2105 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
2106 vkEnc->vkCmdBeginRenderPass2(commandBuffer, pRenderPassBegin, pSubpassBeginInfo, true /* do lock */);
2107 }
entry_vkCmdNextSubpass2(VkCommandBuffer commandBuffer,const VkSubpassBeginInfo * pSubpassBeginInfo,const VkSubpassEndInfo * pSubpassEndInfo)2108 static void entry_vkCmdNextSubpass2(
2109 VkCommandBuffer commandBuffer,
2110 const VkSubpassBeginInfo* pSubpassBeginInfo,
2111 const VkSubpassEndInfo* pSubpassEndInfo)
2112 {
2113 AEMU_SCOPED_TRACE("vkCmdNextSubpass2");
2114 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
2115 vkEnc->vkCmdNextSubpass2(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo, true /* do lock */);
2116 }
entry_vkCmdEndRenderPass2(VkCommandBuffer commandBuffer,const VkSubpassEndInfo * pSubpassEndInfo)2117 static void entry_vkCmdEndRenderPass2(
2118 VkCommandBuffer commandBuffer,
2119 const VkSubpassEndInfo* pSubpassEndInfo)
2120 {
2121 AEMU_SCOPED_TRACE("vkCmdEndRenderPass2");
2122 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
2123 vkEnc->vkCmdEndRenderPass2(commandBuffer, pSubpassEndInfo, true /* do lock */);
2124 }
entry_vkResetQueryPool(VkDevice device,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount)2125 static void entry_vkResetQueryPool(
2126 VkDevice device,
2127 VkQueryPool queryPool,
2128 uint32_t firstQuery,
2129 uint32_t queryCount)
2130 {
2131 AEMU_SCOPED_TRACE("vkResetQueryPool");
2132 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2133 vkEnc->vkResetQueryPool(device, queryPool, firstQuery, queryCount, true /* do lock */);
2134 }
dynCheck_entry_vkResetQueryPool(VkDevice device,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount)2135 static void dynCheck_entry_vkResetQueryPool(
2136 VkDevice device,
2137 VkQueryPool queryPool,
2138 uint32_t firstQuery,
2139 uint32_t queryCount)
2140 {
2141 auto resources = ResourceTracker::get();
2142 if (!resources->hasDeviceExtension(device, "VK_VERSION_1_2"))
2143 {
2144 sOnInvalidDynamicallyCheckedCall("vkResetQueryPool", "VK_VERSION_1_2");
2145 }
2146 AEMU_SCOPED_TRACE("vkResetQueryPool");
2147 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2148 vkEnc->vkResetQueryPool(device, queryPool, firstQuery, queryCount, true /* do lock */);
2149 }
entry_vkGetSemaphoreCounterValue(VkDevice device,VkSemaphore semaphore,uint64_t * pValue)2150 static VkResult entry_vkGetSemaphoreCounterValue(
2151 VkDevice device,
2152 VkSemaphore semaphore,
2153 uint64_t* pValue)
2154 {
2155 AEMU_SCOPED_TRACE("vkGetSemaphoreCounterValue");
2156 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2157 VkResult vkGetSemaphoreCounterValue_VkResult_return = (VkResult)0;
2158 vkGetSemaphoreCounterValue_VkResult_return = vkEnc->vkGetSemaphoreCounterValue(device, semaphore, pValue, true /* do lock */);
2159 return vkGetSemaphoreCounterValue_VkResult_return;
2160 }
dynCheck_entry_vkGetSemaphoreCounterValue(VkDevice device,VkSemaphore semaphore,uint64_t * pValue)2161 static VkResult dynCheck_entry_vkGetSemaphoreCounterValue(
2162 VkDevice device,
2163 VkSemaphore semaphore,
2164 uint64_t* pValue)
2165 {
2166 auto resources = ResourceTracker::get();
2167 if (!resources->hasDeviceExtension(device, "VK_VERSION_1_2"))
2168 {
2169 sOnInvalidDynamicallyCheckedCall("vkGetSemaphoreCounterValue", "VK_VERSION_1_2");
2170 }
2171 AEMU_SCOPED_TRACE("vkGetSemaphoreCounterValue");
2172 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2173 VkResult vkGetSemaphoreCounterValue_VkResult_return = (VkResult)0;
2174 vkGetSemaphoreCounterValue_VkResult_return = vkEnc->vkGetSemaphoreCounterValue(device, semaphore, pValue, true /* do lock */);
2175 return vkGetSemaphoreCounterValue_VkResult_return;
2176 }
entry_vkWaitSemaphores(VkDevice device,const VkSemaphoreWaitInfo * pWaitInfo,uint64_t timeout)2177 static VkResult entry_vkWaitSemaphores(
2178 VkDevice device,
2179 const VkSemaphoreWaitInfo* pWaitInfo,
2180 uint64_t timeout)
2181 {
2182 AEMU_SCOPED_TRACE("vkWaitSemaphores");
2183 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2184 VkResult vkWaitSemaphores_VkResult_return = (VkResult)0;
2185 vkWaitSemaphores_VkResult_return = vkEnc->vkWaitSemaphores(device, pWaitInfo, timeout, true /* do lock */);
2186 return vkWaitSemaphores_VkResult_return;
2187 }
dynCheck_entry_vkWaitSemaphores(VkDevice device,const VkSemaphoreWaitInfo * pWaitInfo,uint64_t timeout)2188 static VkResult dynCheck_entry_vkWaitSemaphores(
2189 VkDevice device,
2190 const VkSemaphoreWaitInfo* pWaitInfo,
2191 uint64_t timeout)
2192 {
2193 auto resources = ResourceTracker::get();
2194 if (!resources->hasDeviceExtension(device, "VK_VERSION_1_2"))
2195 {
2196 sOnInvalidDynamicallyCheckedCall("vkWaitSemaphores", "VK_VERSION_1_2");
2197 }
2198 AEMU_SCOPED_TRACE("vkWaitSemaphores");
2199 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2200 VkResult vkWaitSemaphores_VkResult_return = (VkResult)0;
2201 vkWaitSemaphores_VkResult_return = vkEnc->vkWaitSemaphores(device, pWaitInfo, timeout, true /* do lock */);
2202 return vkWaitSemaphores_VkResult_return;
2203 }
entry_vkSignalSemaphore(VkDevice device,const VkSemaphoreSignalInfo * pSignalInfo)2204 static VkResult entry_vkSignalSemaphore(
2205 VkDevice device,
2206 const VkSemaphoreSignalInfo* pSignalInfo)
2207 {
2208 AEMU_SCOPED_TRACE("vkSignalSemaphore");
2209 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2210 VkResult vkSignalSemaphore_VkResult_return = (VkResult)0;
2211 vkSignalSemaphore_VkResult_return = vkEnc->vkSignalSemaphore(device, pSignalInfo, true /* do lock */);
2212 return vkSignalSemaphore_VkResult_return;
2213 }
dynCheck_entry_vkSignalSemaphore(VkDevice device,const VkSemaphoreSignalInfo * pSignalInfo)2214 static VkResult dynCheck_entry_vkSignalSemaphore(
2215 VkDevice device,
2216 const VkSemaphoreSignalInfo* pSignalInfo)
2217 {
2218 auto resources = ResourceTracker::get();
2219 if (!resources->hasDeviceExtension(device, "VK_VERSION_1_2"))
2220 {
2221 sOnInvalidDynamicallyCheckedCall("vkSignalSemaphore", "VK_VERSION_1_2");
2222 }
2223 AEMU_SCOPED_TRACE("vkSignalSemaphore");
2224 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2225 VkResult vkSignalSemaphore_VkResult_return = (VkResult)0;
2226 vkSignalSemaphore_VkResult_return = vkEnc->vkSignalSemaphore(device, pSignalInfo, true /* do lock */);
2227 return vkSignalSemaphore_VkResult_return;
2228 }
entry_vkGetBufferDeviceAddress(VkDevice device,const VkBufferDeviceAddressInfo * pInfo)2229 static VkDeviceAddress entry_vkGetBufferDeviceAddress(
2230 VkDevice device,
2231 const VkBufferDeviceAddressInfo* pInfo)
2232 {
2233 AEMU_SCOPED_TRACE("vkGetBufferDeviceAddress");
2234 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2235 VkDeviceAddress vkGetBufferDeviceAddress_VkDeviceAddress_return = (VkDeviceAddress)0;
2236 vkGetBufferDeviceAddress_VkDeviceAddress_return = vkEnc->vkGetBufferDeviceAddress(device, pInfo, true /* do lock */);
2237 return vkGetBufferDeviceAddress_VkDeviceAddress_return;
2238 }
dynCheck_entry_vkGetBufferDeviceAddress(VkDevice device,const VkBufferDeviceAddressInfo * pInfo)2239 static VkDeviceAddress dynCheck_entry_vkGetBufferDeviceAddress(
2240 VkDevice device,
2241 const VkBufferDeviceAddressInfo* pInfo)
2242 {
2243 auto resources = ResourceTracker::get();
2244 if (!resources->hasDeviceExtension(device, "VK_VERSION_1_2"))
2245 {
2246 sOnInvalidDynamicallyCheckedCall("vkGetBufferDeviceAddress", "VK_VERSION_1_2");
2247 }
2248 AEMU_SCOPED_TRACE("vkGetBufferDeviceAddress");
2249 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2250 VkDeviceAddress vkGetBufferDeviceAddress_VkDeviceAddress_return = (VkDeviceAddress)0;
2251 vkGetBufferDeviceAddress_VkDeviceAddress_return = vkEnc->vkGetBufferDeviceAddress(device, pInfo, true /* do lock */);
2252 return vkGetBufferDeviceAddress_VkDeviceAddress_return;
2253 }
entry_vkGetBufferOpaqueCaptureAddress(VkDevice device,const VkBufferDeviceAddressInfo * pInfo)2254 static uint64_t entry_vkGetBufferOpaqueCaptureAddress(
2255 VkDevice device,
2256 const VkBufferDeviceAddressInfo* pInfo)
2257 {
2258 AEMU_SCOPED_TRACE("vkGetBufferOpaqueCaptureAddress");
2259 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2260 uint64_t vkGetBufferOpaqueCaptureAddress_uint64_t_return = (uint64_t)0;
2261 vkGetBufferOpaqueCaptureAddress_uint64_t_return = vkEnc->vkGetBufferOpaqueCaptureAddress(device, pInfo, true /* do lock */);
2262 return vkGetBufferOpaqueCaptureAddress_uint64_t_return;
2263 }
dynCheck_entry_vkGetBufferOpaqueCaptureAddress(VkDevice device,const VkBufferDeviceAddressInfo * pInfo)2264 static uint64_t dynCheck_entry_vkGetBufferOpaqueCaptureAddress(
2265 VkDevice device,
2266 const VkBufferDeviceAddressInfo* pInfo)
2267 {
2268 auto resources = ResourceTracker::get();
2269 if (!resources->hasDeviceExtension(device, "VK_VERSION_1_2"))
2270 {
2271 sOnInvalidDynamicallyCheckedCall("vkGetBufferOpaqueCaptureAddress", "VK_VERSION_1_2");
2272 }
2273 AEMU_SCOPED_TRACE("vkGetBufferOpaqueCaptureAddress");
2274 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2275 uint64_t vkGetBufferOpaqueCaptureAddress_uint64_t_return = (uint64_t)0;
2276 vkGetBufferOpaqueCaptureAddress_uint64_t_return = vkEnc->vkGetBufferOpaqueCaptureAddress(device, pInfo, true /* do lock */);
2277 return vkGetBufferOpaqueCaptureAddress_uint64_t_return;
2278 }
entry_vkGetDeviceMemoryOpaqueCaptureAddress(VkDevice device,const VkDeviceMemoryOpaqueCaptureAddressInfo * pInfo)2279 static uint64_t entry_vkGetDeviceMemoryOpaqueCaptureAddress(
2280 VkDevice device,
2281 const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo)
2282 {
2283 AEMU_SCOPED_TRACE("vkGetDeviceMemoryOpaqueCaptureAddress");
2284 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2285 uint64_t vkGetDeviceMemoryOpaqueCaptureAddress_uint64_t_return = (uint64_t)0;
2286 vkGetDeviceMemoryOpaqueCaptureAddress_uint64_t_return = vkEnc->vkGetDeviceMemoryOpaqueCaptureAddress(device, pInfo, true /* do lock */);
2287 return vkGetDeviceMemoryOpaqueCaptureAddress_uint64_t_return;
2288 }
dynCheck_entry_vkGetDeviceMemoryOpaqueCaptureAddress(VkDevice device,const VkDeviceMemoryOpaqueCaptureAddressInfo * pInfo)2289 static uint64_t dynCheck_entry_vkGetDeviceMemoryOpaqueCaptureAddress(
2290 VkDevice device,
2291 const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo)
2292 {
2293 auto resources = ResourceTracker::get();
2294 if (!resources->hasDeviceExtension(device, "VK_VERSION_1_2"))
2295 {
2296 sOnInvalidDynamicallyCheckedCall("vkGetDeviceMemoryOpaqueCaptureAddress", "VK_VERSION_1_2");
2297 }
2298 AEMU_SCOPED_TRACE("vkGetDeviceMemoryOpaqueCaptureAddress");
2299 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2300 uint64_t vkGetDeviceMemoryOpaqueCaptureAddress_uint64_t_return = (uint64_t)0;
2301 vkGetDeviceMemoryOpaqueCaptureAddress_uint64_t_return = vkEnc->vkGetDeviceMemoryOpaqueCaptureAddress(device, pInfo, true /* do lock */);
2302 return vkGetDeviceMemoryOpaqueCaptureAddress_uint64_t_return;
2303 }
2304 #endif
2305 #ifdef VK_KHR_surface
entry_vkDestroySurfaceKHR(VkInstance instance,VkSurfaceKHR surface,const VkAllocationCallbacks * pAllocator)2306 static void entry_vkDestroySurfaceKHR(
2307 VkInstance instance,
2308 VkSurfaceKHR surface,
2309 const VkAllocationCallbacks* pAllocator)
2310 {
2311 AEMU_SCOPED_TRACE("vkDestroySurfaceKHR");
2312 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2313 vkEnc->vkDestroySurfaceKHR(instance, surface, pAllocator, true /* do lock */);
2314 }
entry_vkGetPhysicalDeviceSurfaceSupportKHR(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex,VkSurfaceKHR surface,VkBool32 * pSupported)2315 static VkResult entry_vkGetPhysicalDeviceSurfaceSupportKHR(
2316 VkPhysicalDevice physicalDevice,
2317 uint32_t queueFamilyIndex,
2318 VkSurfaceKHR surface,
2319 VkBool32* pSupported)
2320 {
2321 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceSupportKHR");
2322 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2323 VkResult vkGetPhysicalDeviceSurfaceSupportKHR_VkResult_return = (VkResult)0;
2324 vkGetPhysicalDeviceSurfaceSupportKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceSupportKHR(physicalDevice, queueFamilyIndex, surface, pSupported, true /* do lock */);
2325 return vkGetPhysicalDeviceSurfaceSupportKHR_VkResult_return;
2326 }
entry_vkGetPhysicalDeviceSurfaceCapabilitiesKHR(VkPhysicalDevice physicalDevice,VkSurfaceKHR surface,VkSurfaceCapabilitiesKHR * pSurfaceCapabilities)2327 static VkResult entry_vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
2328 VkPhysicalDevice physicalDevice,
2329 VkSurfaceKHR surface,
2330 VkSurfaceCapabilitiesKHR* pSurfaceCapabilities)
2331 {
2332 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceCapabilitiesKHR");
2333 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2334 VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR_VkResult_return = (VkResult)0;
2335 vkGetPhysicalDeviceSurfaceCapabilitiesKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceCapabilitiesKHR(physicalDevice, surface, pSurfaceCapabilities, true /* do lock */);
2336 return vkGetPhysicalDeviceSurfaceCapabilitiesKHR_VkResult_return;
2337 }
entry_vkGetPhysicalDeviceSurfaceFormatsKHR(VkPhysicalDevice physicalDevice,VkSurfaceKHR surface,uint32_t * pSurfaceFormatCount,VkSurfaceFormatKHR * pSurfaceFormats)2338 static VkResult entry_vkGetPhysicalDeviceSurfaceFormatsKHR(
2339 VkPhysicalDevice physicalDevice,
2340 VkSurfaceKHR surface,
2341 uint32_t* pSurfaceFormatCount,
2342 VkSurfaceFormatKHR* pSurfaceFormats)
2343 {
2344 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceFormatsKHR");
2345 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2346 VkResult vkGetPhysicalDeviceSurfaceFormatsKHR_VkResult_return = (VkResult)0;
2347 vkGetPhysicalDeviceSurfaceFormatsKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceFormatsKHR(physicalDevice, surface, pSurfaceFormatCount, pSurfaceFormats, true /* do lock */);
2348 return vkGetPhysicalDeviceSurfaceFormatsKHR_VkResult_return;
2349 }
entry_vkGetPhysicalDeviceSurfacePresentModesKHR(VkPhysicalDevice physicalDevice,VkSurfaceKHR surface,uint32_t * pPresentModeCount,VkPresentModeKHR * pPresentModes)2350 static VkResult entry_vkGetPhysicalDeviceSurfacePresentModesKHR(
2351 VkPhysicalDevice physicalDevice,
2352 VkSurfaceKHR surface,
2353 uint32_t* pPresentModeCount,
2354 VkPresentModeKHR* pPresentModes)
2355 {
2356 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfacePresentModesKHR");
2357 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2358 VkResult vkGetPhysicalDeviceSurfacePresentModesKHR_VkResult_return = (VkResult)0;
2359 vkGetPhysicalDeviceSurfacePresentModesKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfacePresentModesKHR(physicalDevice, surface, pPresentModeCount, pPresentModes, true /* do lock */);
2360 return vkGetPhysicalDeviceSurfacePresentModesKHR_VkResult_return;
2361 }
2362 #endif
2363 #ifdef VK_KHR_swapchain
entry_vkCreateSwapchainKHR(VkDevice device,const VkSwapchainCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSwapchainKHR * pSwapchain)2364 static VkResult entry_vkCreateSwapchainKHR(
2365 VkDevice device,
2366 const VkSwapchainCreateInfoKHR* pCreateInfo,
2367 const VkAllocationCallbacks* pAllocator,
2368 VkSwapchainKHR* pSwapchain)
2369 {
2370 AEMU_SCOPED_TRACE("vkCreateSwapchainKHR");
2371 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2372 VkResult vkCreateSwapchainKHR_VkResult_return = (VkResult)0;
2373 vkCreateSwapchainKHR_VkResult_return = vkEnc->vkCreateSwapchainKHR(device, pCreateInfo, pAllocator, pSwapchain, true /* do lock */);
2374 return vkCreateSwapchainKHR_VkResult_return;
2375 }
dynCheck_entry_vkCreateSwapchainKHR(VkDevice device,const VkSwapchainCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSwapchainKHR * pSwapchain)2376 static VkResult dynCheck_entry_vkCreateSwapchainKHR(
2377 VkDevice device,
2378 const VkSwapchainCreateInfoKHR* pCreateInfo,
2379 const VkAllocationCallbacks* pAllocator,
2380 VkSwapchainKHR* pSwapchain)
2381 {
2382 auto resources = ResourceTracker::get();
2383 if (!resources->hasDeviceExtension(device, "VK_KHR_swapchain"))
2384 {
2385 sOnInvalidDynamicallyCheckedCall("vkCreateSwapchainKHR", "VK_KHR_swapchain");
2386 }
2387 AEMU_SCOPED_TRACE("vkCreateSwapchainKHR");
2388 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2389 VkResult vkCreateSwapchainKHR_VkResult_return = (VkResult)0;
2390 vkCreateSwapchainKHR_VkResult_return = vkEnc->vkCreateSwapchainKHR(device, pCreateInfo, pAllocator, pSwapchain, true /* do lock */);
2391 return vkCreateSwapchainKHR_VkResult_return;
2392 }
entry_vkDestroySwapchainKHR(VkDevice device,VkSwapchainKHR swapchain,const VkAllocationCallbacks * pAllocator)2393 static void entry_vkDestroySwapchainKHR(
2394 VkDevice device,
2395 VkSwapchainKHR swapchain,
2396 const VkAllocationCallbacks* pAllocator)
2397 {
2398 AEMU_SCOPED_TRACE("vkDestroySwapchainKHR");
2399 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2400 vkEnc->vkDestroySwapchainKHR(device, swapchain, pAllocator, true /* do lock */);
2401 }
dynCheck_entry_vkDestroySwapchainKHR(VkDevice device,VkSwapchainKHR swapchain,const VkAllocationCallbacks * pAllocator)2402 static void dynCheck_entry_vkDestroySwapchainKHR(
2403 VkDevice device,
2404 VkSwapchainKHR swapchain,
2405 const VkAllocationCallbacks* pAllocator)
2406 {
2407 auto resources = ResourceTracker::get();
2408 if (!resources->hasDeviceExtension(device, "VK_KHR_swapchain"))
2409 {
2410 sOnInvalidDynamicallyCheckedCall("vkDestroySwapchainKHR", "VK_KHR_swapchain");
2411 }
2412 AEMU_SCOPED_TRACE("vkDestroySwapchainKHR");
2413 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2414 vkEnc->vkDestroySwapchainKHR(device, swapchain, pAllocator, true /* do lock */);
2415 }
entry_vkGetSwapchainImagesKHR(VkDevice device,VkSwapchainKHR swapchain,uint32_t * pSwapchainImageCount,VkImage * pSwapchainImages)2416 static VkResult entry_vkGetSwapchainImagesKHR(
2417 VkDevice device,
2418 VkSwapchainKHR swapchain,
2419 uint32_t* pSwapchainImageCount,
2420 VkImage* pSwapchainImages)
2421 {
2422 AEMU_SCOPED_TRACE("vkGetSwapchainImagesKHR");
2423 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2424 VkResult vkGetSwapchainImagesKHR_VkResult_return = (VkResult)0;
2425 vkGetSwapchainImagesKHR_VkResult_return = vkEnc->vkGetSwapchainImagesKHR(device, swapchain, pSwapchainImageCount, pSwapchainImages, true /* do lock */);
2426 return vkGetSwapchainImagesKHR_VkResult_return;
2427 }
dynCheck_entry_vkGetSwapchainImagesKHR(VkDevice device,VkSwapchainKHR swapchain,uint32_t * pSwapchainImageCount,VkImage * pSwapchainImages)2428 static VkResult dynCheck_entry_vkGetSwapchainImagesKHR(
2429 VkDevice device,
2430 VkSwapchainKHR swapchain,
2431 uint32_t* pSwapchainImageCount,
2432 VkImage* pSwapchainImages)
2433 {
2434 auto resources = ResourceTracker::get();
2435 if (!resources->hasDeviceExtension(device, "VK_KHR_swapchain"))
2436 {
2437 sOnInvalidDynamicallyCheckedCall("vkGetSwapchainImagesKHR", "VK_KHR_swapchain");
2438 }
2439 AEMU_SCOPED_TRACE("vkGetSwapchainImagesKHR");
2440 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2441 VkResult vkGetSwapchainImagesKHR_VkResult_return = (VkResult)0;
2442 vkGetSwapchainImagesKHR_VkResult_return = vkEnc->vkGetSwapchainImagesKHR(device, swapchain, pSwapchainImageCount, pSwapchainImages, true /* do lock */);
2443 return vkGetSwapchainImagesKHR_VkResult_return;
2444 }
entry_vkAcquireNextImageKHR(VkDevice device,VkSwapchainKHR swapchain,uint64_t timeout,VkSemaphore semaphore,VkFence fence,uint32_t * pImageIndex)2445 static VkResult entry_vkAcquireNextImageKHR(
2446 VkDevice device,
2447 VkSwapchainKHR swapchain,
2448 uint64_t timeout,
2449 VkSemaphore semaphore,
2450 VkFence fence,
2451 uint32_t* pImageIndex)
2452 {
2453 AEMU_SCOPED_TRACE("vkAcquireNextImageKHR");
2454 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2455 VkResult vkAcquireNextImageKHR_VkResult_return = (VkResult)0;
2456 vkAcquireNextImageKHR_VkResult_return = vkEnc->vkAcquireNextImageKHR(device, swapchain, timeout, semaphore, fence, pImageIndex, true /* do lock */);
2457 return vkAcquireNextImageKHR_VkResult_return;
2458 }
dynCheck_entry_vkAcquireNextImageKHR(VkDevice device,VkSwapchainKHR swapchain,uint64_t timeout,VkSemaphore semaphore,VkFence fence,uint32_t * pImageIndex)2459 static VkResult dynCheck_entry_vkAcquireNextImageKHR(
2460 VkDevice device,
2461 VkSwapchainKHR swapchain,
2462 uint64_t timeout,
2463 VkSemaphore semaphore,
2464 VkFence fence,
2465 uint32_t* pImageIndex)
2466 {
2467 auto resources = ResourceTracker::get();
2468 if (!resources->hasDeviceExtension(device, "VK_KHR_swapchain"))
2469 {
2470 sOnInvalidDynamicallyCheckedCall("vkAcquireNextImageKHR", "VK_KHR_swapchain");
2471 }
2472 AEMU_SCOPED_TRACE("vkAcquireNextImageKHR");
2473 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2474 VkResult vkAcquireNextImageKHR_VkResult_return = (VkResult)0;
2475 vkAcquireNextImageKHR_VkResult_return = vkEnc->vkAcquireNextImageKHR(device, swapchain, timeout, semaphore, fence, pImageIndex, true /* do lock */);
2476 return vkAcquireNextImageKHR_VkResult_return;
2477 }
entry_vkQueuePresentKHR(VkQueue queue,const VkPresentInfoKHR * pPresentInfo)2478 static VkResult entry_vkQueuePresentKHR(
2479 VkQueue queue,
2480 const VkPresentInfoKHR* pPresentInfo)
2481 {
2482 AEMU_SCOPED_TRACE("vkQueuePresentKHR");
2483 auto vkEnc = ResourceTracker::getQueueEncoder(queue);
2484 VkResult vkQueuePresentKHR_VkResult_return = (VkResult)0;
2485 vkQueuePresentKHR_VkResult_return = vkEnc->vkQueuePresentKHR(queue, pPresentInfo, true /* do lock */);
2486 return vkQueuePresentKHR_VkResult_return;
2487 }
entry_vkGetDeviceGroupPresentCapabilitiesKHR(VkDevice device,VkDeviceGroupPresentCapabilitiesKHR * pDeviceGroupPresentCapabilities)2488 static VkResult entry_vkGetDeviceGroupPresentCapabilitiesKHR(
2489 VkDevice device,
2490 VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities)
2491 {
2492 AEMU_SCOPED_TRACE("vkGetDeviceGroupPresentCapabilitiesKHR");
2493 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2494 VkResult vkGetDeviceGroupPresentCapabilitiesKHR_VkResult_return = (VkResult)0;
2495 vkGetDeviceGroupPresentCapabilitiesKHR_VkResult_return = vkEnc->vkGetDeviceGroupPresentCapabilitiesKHR(device, pDeviceGroupPresentCapabilities, true /* do lock */);
2496 return vkGetDeviceGroupPresentCapabilitiesKHR_VkResult_return;
2497 }
dynCheck_entry_vkGetDeviceGroupPresentCapabilitiesKHR(VkDevice device,VkDeviceGroupPresentCapabilitiesKHR * pDeviceGroupPresentCapabilities)2498 static VkResult dynCheck_entry_vkGetDeviceGroupPresentCapabilitiesKHR(
2499 VkDevice device,
2500 VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities)
2501 {
2502 auto resources = ResourceTracker::get();
2503 if (!resources->hasDeviceExtension(device, "VK_KHR_swapchain"))
2504 {
2505 sOnInvalidDynamicallyCheckedCall("vkGetDeviceGroupPresentCapabilitiesKHR", "VK_KHR_swapchain");
2506 }
2507 AEMU_SCOPED_TRACE("vkGetDeviceGroupPresentCapabilitiesKHR");
2508 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2509 VkResult vkGetDeviceGroupPresentCapabilitiesKHR_VkResult_return = (VkResult)0;
2510 vkGetDeviceGroupPresentCapabilitiesKHR_VkResult_return = vkEnc->vkGetDeviceGroupPresentCapabilitiesKHR(device, pDeviceGroupPresentCapabilities, true /* do lock */);
2511 return vkGetDeviceGroupPresentCapabilitiesKHR_VkResult_return;
2512 }
entry_vkGetDeviceGroupSurfacePresentModesKHR(VkDevice device,VkSurfaceKHR surface,VkDeviceGroupPresentModeFlagsKHR * pModes)2513 static VkResult entry_vkGetDeviceGroupSurfacePresentModesKHR(
2514 VkDevice device,
2515 VkSurfaceKHR surface,
2516 VkDeviceGroupPresentModeFlagsKHR* pModes)
2517 {
2518 AEMU_SCOPED_TRACE("vkGetDeviceGroupSurfacePresentModesKHR");
2519 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2520 VkResult vkGetDeviceGroupSurfacePresentModesKHR_VkResult_return = (VkResult)0;
2521 vkGetDeviceGroupSurfacePresentModesKHR_VkResult_return = vkEnc->vkGetDeviceGroupSurfacePresentModesKHR(device, surface, pModes, true /* do lock */);
2522 return vkGetDeviceGroupSurfacePresentModesKHR_VkResult_return;
2523 }
dynCheck_entry_vkGetDeviceGroupSurfacePresentModesKHR(VkDevice device,VkSurfaceKHR surface,VkDeviceGroupPresentModeFlagsKHR * pModes)2524 static VkResult dynCheck_entry_vkGetDeviceGroupSurfacePresentModesKHR(
2525 VkDevice device,
2526 VkSurfaceKHR surface,
2527 VkDeviceGroupPresentModeFlagsKHR* pModes)
2528 {
2529 auto resources = ResourceTracker::get();
2530 if (!resources->hasDeviceExtension(device, "VK_KHR_swapchain"))
2531 {
2532 sOnInvalidDynamicallyCheckedCall("vkGetDeviceGroupSurfacePresentModesKHR", "VK_KHR_swapchain");
2533 }
2534 AEMU_SCOPED_TRACE("vkGetDeviceGroupSurfacePresentModesKHR");
2535 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2536 VkResult vkGetDeviceGroupSurfacePresentModesKHR_VkResult_return = (VkResult)0;
2537 vkGetDeviceGroupSurfacePresentModesKHR_VkResult_return = vkEnc->vkGetDeviceGroupSurfacePresentModesKHR(device, surface, pModes, true /* do lock */);
2538 return vkGetDeviceGroupSurfacePresentModesKHR_VkResult_return;
2539 }
entry_vkGetPhysicalDevicePresentRectanglesKHR(VkPhysicalDevice physicalDevice,VkSurfaceKHR surface,uint32_t * pRectCount,VkRect2D * pRects)2540 static VkResult entry_vkGetPhysicalDevicePresentRectanglesKHR(
2541 VkPhysicalDevice physicalDevice,
2542 VkSurfaceKHR surface,
2543 uint32_t* pRectCount,
2544 VkRect2D* pRects)
2545 {
2546 AEMU_SCOPED_TRACE("vkGetPhysicalDevicePresentRectanglesKHR");
2547 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2548 VkResult vkGetPhysicalDevicePresentRectanglesKHR_VkResult_return = (VkResult)0;
2549 vkGetPhysicalDevicePresentRectanglesKHR_VkResult_return = vkEnc->vkGetPhysicalDevicePresentRectanglesKHR(physicalDevice, surface, pRectCount, pRects, true /* do lock */);
2550 return vkGetPhysicalDevicePresentRectanglesKHR_VkResult_return;
2551 }
entry_vkAcquireNextImage2KHR(VkDevice device,const VkAcquireNextImageInfoKHR * pAcquireInfo,uint32_t * pImageIndex)2552 static VkResult entry_vkAcquireNextImage2KHR(
2553 VkDevice device,
2554 const VkAcquireNextImageInfoKHR* pAcquireInfo,
2555 uint32_t* pImageIndex)
2556 {
2557 AEMU_SCOPED_TRACE("vkAcquireNextImage2KHR");
2558 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2559 VkResult vkAcquireNextImage2KHR_VkResult_return = (VkResult)0;
2560 vkAcquireNextImage2KHR_VkResult_return = vkEnc->vkAcquireNextImage2KHR(device, pAcquireInfo, pImageIndex, true /* do lock */);
2561 return vkAcquireNextImage2KHR_VkResult_return;
2562 }
dynCheck_entry_vkAcquireNextImage2KHR(VkDevice device,const VkAcquireNextImageInfoKHR * pAcquireInfo,uint32_t * pImageIndex)2563 static VkResult dynCheck_entry_vkAcquireNextImage2KHR(
2564 VkDevice device,
2565 const VkAcquireNextImageInfoKHR* pAcquireInfo,
2566 uint32_t* pImageIndex)
2567 {
2568 auto resources = ResourceTracker::get();
2569 if (!resources->hasDeviceExtension(device, "VK_KHR_swapchain"))
2570 {
2571 sOnInvalidDynamicallyCheckedCall("vkAcquireNextImage2KHR", "VK_KHR_swapchain");
2572 }
2573 AEMU_SCOPED_TRACE("vkAcquireNextImage2KHR");
2574 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2575 VkResult vkAcquireNextImage2KHR_VkResult_return = (VkResult)0;
2576 vkAcquireNextImage2KHR_VkResult_return = vkEnc->vkAcquireNextImage2KHR(device, pAcquireInfo, pImageIndex, true /* do lock */);
2577 return vkAcquireNextImage2KHR_VkResult_return;
2578 }
2579 #endif
2580 #ifdef VK_KHR_display
entry_vkGetPhysicalDeviceDisplayPropertiesKHR(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkDisplayPropertiesKHR * pProperties)2581 static VkResult entry_vkGetPhysicalDeviceDisplayPropertiesKHR(
2582 VkPhysicalDevice physicalDevice,
2583 uint32_t* pPropertyCount,
2584 VkDisplayPropertiesKHR* pProperties)
2585 {
2586 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayPropertiesKHR");
2587 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2588 VkResult vkGetPhysicalDeviceDisplayPropertiesKHR_VkResult_return = (VkResult)0;
2589 vkGetPhysicalDeviceDisplayPropertiesKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceDisplayPropertiesKHR(physicalDevice, pPropertyCount, pProperties, true /* do lock */);
2590 return vkGetPhysicalDeviceDisplayPropertiesKHR_VkResult_return;
2591 }
entry_vkGetPhysicalDeviceDisplayPlanePropertiesKHR(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkDisplayPlanePropertiesKHR * pProperties)2592 static VkResult entry_vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
2593 VkPhysicalDevice physicalDevice,
2594 uint32_t* pPropertyCount,
2595 VkDisplayPlanePropertiesKHR* pProperties)
2596 {
2597 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayPlanePropertiesKHR");
2598 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2599 VkResult vkGetPhysicalDeviceDisplayPlanePropertiesKHR_VkResult_return = (VkResult)0;
2600 vkGetPhysicalDeviceDisplayPlanePropertiesKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceDisplayPlanePropertiesKHR(physicalDevice, pPropertyCount, pProperties, true /* do lock */);
2601 return vkGetPhysicalDeviceDisplayPlanePropertiesKHR_VkResult_return;
2602 }
entry_vkGetDisplayPlaneSupportedDisplaysKHR(VkPhysicalDevice physicalDevice,uint32_t planeIndex,uint32_t * pDisplayCount,VkDisplayKHR * pDisplays)2603 static VkResult entry_vkGetDisplayPlaneSupportedDisplaysKHR(
2604 VkPhysicalDevice physicalDevice,
2605 uint32_t planeIndex,
2606 uint32_t* pDisplayCount,
2607 VkDisplayKHR* pDisplays)
2608 {
2609 AEMU_SCOPED_TRACE("vkGetDisplayPlaneSupportedDisplaysKHR");
2610 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2611 VkResult vkGetDisplayPlaneSupportedDisplaysKHR_VkResult_return = (VkResult)0;
2612 vkGetDisplayPlaneSupportedDisplaysKHR_VkResult_return = vkEnc->vkGetDisplayPlaneSupportedDisplaysKHR(physicalDevice, planeIndex, pDisplayCount, pDisplays, true /* do lock */);
2613 return vkGetDisplayPlaneSupportedDisplaysKHR_VkResult_return;
2614 }
entry_vkGetDisplayModePropertiesKHR(VkPhysicalDevice physicalDevice,VkDisplayKHR display,uint32_t * pPropertyCount,VkDisplayModePropertiesKHR * pProperties)2615 static VkResult entry_vkGetDisplayModePropertiesKHR(
2616 VkPhysicalDevice physicalDevice,
2617 VkDisplayKHR display,
2618 uint32_t* pPropertyCount,
2619 VkDisplayModePropertiesKHR* pProperties)
2620 {
2621 AEMU_SCOPED_TRACE("vkGetDisplayModePropertiesKHR");
2622 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2623 VkResult vkGetDisplayModePropertiesKHR_VkResult_return = (VkResult)0;
2624 vkGetDisplayModePropertiesKHR_VkResult_return = vkEnc->vkGetDisplayModePropertiesKHR(physicalDevice, display, pPropertyCount, pProperties, true /* do lock */);
2625 return vkGetDisplayModePropertiesKHR_VkResult_return;
2626 }
entry_vkCreateDisplayModeKHR(VkPhysicalDevice physicalDevice,VkDisplayKHR display,const VkDisplayModeCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDisplayModeKHR * pMode)2627 static VkResult entry_vkCreateDisplayModeKHR(
2628 VkPhysicalDevice physicalDevice,
2629 VkDisplayKHR display,
2630 const VkDisplayModeCreateInfoKHR* pCreateInfo,
2631 const VkAllocationCallbacks* pAllocator,
2632 VkDisplayModeKHR* pMode)
2633 {
2634 AEMU_SCOPED_TRACE("vkCreateDisplayModeKHR");
2635 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2636 VkResult vkCreateDisplayModeKHR_VkResult_return = (VkResult)0;
2637 vkCreateDisplayModeKHR_VkResult_return = vkEnc->vkCreateDisplayModeKHR(physicalDevice, display, pCreateInfo, pAllocator, pMode, true /* do lock */);
2638 return vkCreateDisplayModeKHR_VkResult_return;
2639 }
entry_vkGetDisplayPlaneCapabilitiesKHR(VkPhysicalDevice physicalDevice,VkDisplayModeKHR mode,uint32_t planeIndex,VkDisplayPlaneCapabilitiesKHR * pCapabilities)2640 static VkResult entry_vkGetDisplayPlaneCapabilitiesKHR(
2641 VkPhysicalDevice physicalDevice,
2642 VkDisplayModeKHR mode,
2643 uint32_t planeIndex,
2644 VkDisplayPlaneCapabilitiesKHR* pCapabilities)
2645 {
2646 AEMU_SCOPED_TRACE("vkGetDisplayPlaneCapabilitiesKHR");
2647 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2648 VkResult vkGetDisplayPlaneCapabilitiesKHR_VkResult_return = (VkResult)0;
2649 vkGetDisplayPlaneCapabilitiesKHR_VkResult_return = vkEnc->vkGetDisplayPlaneCapabilitiesKHR(physicalDevice, mode, planeIndex, pCapabilities, true /* do lock */);
2650 return vkGetDisplayPlaneCapabilitiesKHR_VkResult_return;
2651 }
entry_vkCreateDisplayPlaneSurfaceKHR(VkInstance instance,const VkDisplaySurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface)2652 static VkResult entry_vkCreateDisplayPlaneSurfaceKHR(
2653 VkInstance instance,
2654 const VkDisplaySurfaceCreateInfoKHR* pCreateInfo,
2655 const VkAllocationCallbacks* pAllocator,
2656 VkSurfaceKHR* pSurface)
2657 {
2658 AEMU_SCOPED_TRACE("vkCreateDisplayPlaneSurfaceKHR");
2659 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2660 VkResult vkCreateDisplayPlaneSurfaceKHR_VkResult_return = (VkResult)0;
2661 vkCreateDisplayPlaneSurfaceKHR_VkResult_return = vkEnc->vkCreateDisplayPlaneSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface, true /* do lock */);
2662 return vkCreateDisplayPlaneSurfaceKHR_VkResult_return;
2663 }
2664 #endif
2665 #ifdef VK_KHR_display_swapchain
entry_vkCreateSharedSwapchainsKHR(VkDevice device,uint32_t swapchainCount,const VkSwapchainCreateInfoKHR * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkSwapchainKHR * pSwapchains)2666 static VkResult entry_vkCreateSharedSwapchainsKHR(
2667 VkDevice device,
2668 uint32_t swapchainCount,
2669 const VkSwapchainCreateInfoKHR* pCreateInfos,
2670 const VkAllocationCallbacks* pAllocator,
2671 VkSwapchainKHR* pSwapchains)
2672 {
2673 AEMU_SCOPED_TRACE("vkCreateSharedSwapchainsKHR");
2674 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2675 VkResult vkCreateSharedSwapchainsKHR_VkResult_return = (VkResult)0;
2676 vkCreateSharedSwapchainsKHR_VkResult_return = vkEnc->vkCreateSharedSwapchainsKHR(device, swapchainCount, pCreateInfos, pAllocator, pSwapchains, true /* do lock */);
2677 return vkCreateSharedSwapchainsKHR_VkResult_return;
2678 }
dynCheck_entry_vkCreateSharedSwapchainsKHR(VkDevice device,uint32_t swapchainCount,const VkSwapchainCreateInfoKHR * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkSwapchainKHR * pSwapchains)2679 static VkResult dynCheck_entry_vkCreateSharedSwapchainsKHR(
2680 VkDevice device,
2681 uint32_t swapchainCount,
2682 const VkSwapchainCreateInfoKHR* pCreateInfos,
2683 const VkAllocationCallbacks* pAllocator,
2684 VkSwapchainKHR* pSwapchains)
2685 {
2686 auto resources = ResourceTracker::get();
2687 if (!resources->hasDeviceExtension(device, "VK_KHR_display_swapchain"))
2688 {
2689 sOnInvalidDynamicallyCheckedCall("vkCreateSharedSwapchainsKHR", "VK_KHR_display_swapchain");
2690 }
2691 AEMU_SCOPED_TRACE("vkCreateSharedSwapchainsKHR");
2692 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2693 VkResult vkCreateSharedSwapchainsKHR_VkResult_return = (VkResult)0;
2694 vkCreateSharedSwapchainsKHR_VkResult_return = vkEnc->vkCreateSharedSwapchainsKHR(device, swapchainCount, pCreateInfos, pAllocator, pSwapchains, true /* do lock */);
2695 return vkCreateSharedSwapchainsKHR_VkResult_return;
2696 }
2697 #endif
2698 #ifdef VK_KHR_xlib_surface
entry_vkCreateXlibSurfaceKHR(VkInstance instance,const VkXlibSurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface)2699 static VkResult entry_vkCreateXlibSurfaceKHR(
2700 VkInstance instance,
2701 const VkXlibSurfaceCreateInfoKHR* pCreateInfo,
2702 const VkAllocationCallbacks* pAllocator,
2703 VkSurfaceKHR* pSurface)
2704 {
2705 AEMU_SCOPED_TRACE("vkCreateXlibSurfaceKHR");
2706 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2707 VkResult vkCreateXlibSurfaceKHR_VkResult_return = (VkResult)0;
2708 vkCreateXlibSurfaceKHR_VkResult_return = vkEnc->vkCreateXlibSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface, true /* do lock */);
2709 return vkCreateXlibSurfaceKHR_VkResult_return;
2710 }
entry_vkGetPhysicalDeviceXlibPresentationSupportKHR(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex,Display * dpy,VisualID visualID)2711 static VkBool32 entry_vkGetPhysicalDeviceXlibPresentationSupportKHR(
2712 VkPhysicalDevice physicalDevice,
2713 uint32_t queueFamilyIndex,
2714 Display* dpy,
2715 VisualID visualID)
2716 {
2717 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceXlibPresentationSupportKHR");
2718 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2719 VkBool32 vkGetPhysicalDeviceXlibPresentationSupportKHR_VkBool32_return = (VkBool32)0;
2720 vkGetPhysicalDeviceXlibPresentationSupportKHR_VkBool32_return = vkEnc->vkGetPhysicalDeviceXlibPresentationSupportKHR(physicalDevice, queueFamilyIndex, dpy, visualID, true /* do lock */);
2721 return vkGetPhysicalDeviceXlibPresentationSupportKHR_VkBool32_return;
2722 }
2723 #endif
2724 #ifdef VK_KHR_xcb_surface
entry_vkCreateXcbSurfaceKHR(VkInstance instance,const VkXcbSurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface)2725 static VkResult entry_vkCreateXcbSurfaceKHR(
2726 VkInstance instance,
2727 const VkXcbSurfaceCreateInfoKHR* pCreateInfo,
2728 const VkAllocationCallbacks* pAllocator,
2729 VkSurfaceKHR* pSurface)
2730 {
2731 AEMU_SCOPED_TRACE("vkCreateXcbSurfaceKHR");
2732 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2733 VkResult vkCreateXcbSurfaceKHR_VkResult_return = (VkResult)0;
2734 vkCreateXcbSurfaceKHR_VkResult_return = vkEnc->vkCreateXcbSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface, true /* do lock */);
2735 return vkCreateXcbSurfaceKHR_VkResult_return;
2736 }
entry_vkGetPhysicalDeviceXcbPresentationSupportKHR(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex,xcb_connection_t * connection,xcb_visualid_t visual_id)2737 static VkBool32 entry_vkGetPhysicalDeviceXcbPresentationSupportKHR(
2738 VkPhysicalDevice physicalDevice,
2739 uint32_t queueFamilyIndex,
2740 xcb_connection_t* connection,
2741 xcb_visualid_t visual_id)
2742 {
2743 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceXcbPresentationSupportKHR");
2744 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2745 VkBool32 vkGetPhysicalDeviceXcbPresentationSupportKHR_VkBool32_return = (VkBool32)0;
2746 vkGetPhysicalDeviceXcbPresentationSupportKHR_VkBool32_return = vkEnc->vkGetPhysicalDeviceXcbPresentationSupportKHR(physicalDevice, queueFamilyIndex, connection, visual_id, true /* do lock */);
2747 return vkGetPhysicalDeviceXcbPresentationSupportKHR_VkBool32_return;
2748 }
2749 #endif
2750 #ifdef VK_KHR_wayland_surface
entry_vkCreateWaylandSurfaceKHR(VkInstance instance,const VkWaylandSurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface)2751 static VkResult entry_vkCreateWaylandSurfaceKHR(
2752 VkInstance instance,
2753 const VkWaylandSurfaceCreateInfoKHR* pCreateInfo,
2754 const VkAllocationCallbacks* pAllocator,
2755 VkSurfaceKHR* pSurface)
2756 {
2757 AEMU_SCOPED_TRACE("vkCreateWaylandSurfaceKHR");
2758 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2759 VkResult vkCreateWaylandSurfaceKHR_VkResult_return = (VkResult)0;
2760 vkCreateWaylandSurfaceKHR_VkResult_return = vkEnc->vkCreateWaylandSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface, true /* do lock */);
2761 return vkCreateWaylandSurfaceKHR_VkResult_return;
2762 }
entry_vkGetPhysicalDeviceWaylandPresentationSupportKHR(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex,wl_display * display)2763 static VkBool32 entry_vkGetPhysicalDeviceWaylandPresentationSupportKHR(
2764 VkPhysicalDevice physicalDevice,
2765 uint32_t queueFamilyIndex,
2766 wl_display* display)
2767 {
2768 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceWaylandPresentationSupportKHR");
2769 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2770 VkBool32 vkGetPhysicalDeviceWaylandPresentationSupportKHR_VkBool32_return = (VkBool32)0;
2771 vkGetPhysicalDeviceWaylandPresentationSupportKHR_VkBool32_return = vkEnc->vkGetPhysicalDeviceWaylandPresentationSupportKHR(physicalDevice, queueFamilyIndex, display, true /* do lock */);
2772 return vkGetPhysicalDeviceWaylandPresentationSupportKHR_VkBool32_return;
2773 }
2774 #endif
2775 #ifdef VK_KHR_android_surface
entry_vkCreateAndroidSurfaceKHR(VkInstance instance,const VkAndroidSurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface)2776 static VkResult entry_vkCreateAndroidSurfaceKHR(
2777 VkInstance instance,
2778 const VkAndroidSurfaceCreateInfoKHR* pCreateInfo,
2779 const VkAllocationCallbacks* pAllocator,
2780 VkSurfaceKHR* pSurface)
2781 {
2782 AEMU_SCOPED_TRACE("vkCreateAndroidSurfaceKHR");
2783 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2784 VkResult vkCreateAndroidSurfaceKHR_VkResult_return = (VkResult)0;
2785 vkCreateAndroidSurfaceKHR_VkResult_return = vkEnc->vkCreateAndroidSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface, true /* do lock */);
2786 return vkCreateAndroidSurfaceKHR_VkResult_return;
2787 }
2788 #endif
2789 #ifdef VK_KHR_win32_surface
entry_vkCreateWin32SurfaceKHR(VkInstance instance,const VkWin32SurfaceCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSurfaceKHR * pSurface)2790 static VkResult entry_vkCreateWin32SurfaceKHR(
2791 VkInstance instance,
2792 const VkWin32SurfaceCreateInfoKHR* pCreateInfo,
2793 const VkAllocationCallbacks* pAllocator,
2794 VkSurfaceKHR* pSurface)
2795 {
2796 AEMU_SCOPED_TRACE("vkCreateWin32SurfaceKHR");
2797 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2798 VkResult vkCreateWin32SurfaceKHR_VkResult_return = (VkResult)0;
2799 vkCreateWin32SurfaceKHR_VkResult_return = vkEnc->vkCreateWin32SurfaceKHR(instance, pCreateInfo, pAllocator, pSurface, true /* do lock */);
2800 return vkCreateWin32SurfaceKHR_VkResult_return;
2801 }
entry_vkGetPhysicalDeviceWin32PresentationSupportKHR(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex)2802 static VkBool32 entry_vkGetPhysicalDeviceWin32PresentationSupportKHR(
2803 VkPhysicalDevice physicalDevice,
2804 uint32_t queueFamilyIndex)
2805 {
2806 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceWin32PresentationSupportKHR");
2807 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2808 VkBool32 vkGetPhysicalDeviceWin32PresentationSupportKHR_VkBool32_return = (VkBool32)0;
2809 vkGetPhysicalDeviceWin32PresentationSupportKHR_VkBool32_return = vkEnc->vkGetPhysicalDeviceWin32PresentationSupportKHR(physicalDevice, queueFamilyIndex, true /* do lock */);
2810 return vkGetPhysicalDeviceWin32PresentationSupportKHR_VkBool32_return;
2811 }
2812 #endif
2813 #ifdef VK_KHR_sampler_mirror_clamp_to_edge
2814 #endif
2815 #ifdef VK_KHR_multiview
2816 #endif
2817 #ifdef VK_KHR_get_physical_device_properties2
entry_vkGetPhysicalDeviceFeatures2KHR(VkPhysicalDevice physicalDevice,VkPhysicalDeviceFeatures2 * pFeatures)2818 static void entry_vkGetPhysicalDeviceFeatures2KHR(
2819 VkPhysicalDevice physicalDevice,
2820 VkPhysicalDeviceFeatures2* pFeatures)
2821 {
2822 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFeatures2KHR");
2823 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2824 vkEnc->vkGetPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures, true /* do lock */);
2825 }
entry_vkGetPhysicalDeviceProperties2KHR(VkPhysicalDevice physicalDevice,VkPhysicalDeviceProperties2 * pProperties)2826 static void entry_vkGetPhysicalDeviceProperties2KHR(
2827 VkPhysicalDevice physicalDevice,
2828 VkPhysicalDeviceProperties2* pProperties)
2829 {
2830 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceProperties2KHR");
2831 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2832 vkEnc->vkGetPhysicalDeviceProperties2KHR(physicalDevice, pProperties, true /* do lock */);
2833 }
entry_vkGetPhysicalDeviceFormatProperties2KHR(VkPhysicalDevice physicalDevice,VkFormat format,VkFormatProperties2 * pFormatProperties)2834 static void entry_vkGetPhysicalDeviceFormatProperties2KHR(
2835 VkPhysicalDevice physicalDevice,
2836 VkFormat format,
2837 VkFormatProperties2* pFormatProperties)
2838 {
2839 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFormatProperties2KHR");
2840 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2841 vkEnc->vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice, format, pFormatProperties, true /* do lock */);
2842 }
entry_vkGetPhysicalDeviceImageFormatProperties2KHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo,VkImageFormatProperties2 * pImageFormatProperties)2843 static VkResult entry_vkGetPhysicalDeviceImageFormatProperties2KHR(
2844 VkPhysicalDevice physicalDevice,
2845 const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
2846 VkImageFormatProperties2* pImageFormatProperties)
2847 {
2848 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceImageFormatProperties2KHR");
2849 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2850 VkResult vkGetPhysicalDeviceImageFormatProperties2KHR_VkResult_return = (VkResult)0;
2851 auto resources = ResourceTracker::get();
2852 vkGetPhysicalDeviceImageFormatProperties2KHR_VkResult_return = resources->on_vkGetPhysicalDeviceImageFormatProperties2KHR(vkEnc, VK_SUCCESS, physicalDevice, pImageFormatInfo, pImageFormatProperties);
2853 return vkGetPhysicalDeviceImageFormatProperties2KHR_VkResult_return;
2854 }
entry_vkGetPhysicalDeviceQueueFamilyProperties2KHR(VkPhysicalDevice physicalDevice,uint32_t * pQueueFamilyPropertyCount,VkQueueFamilyProperties2 * pQueueFamilyProperties)2855 static void entry_vkGetPhysicalDeviceQueueFamilyProperties2KHR(
2856 VkPhysicalDevice physicalDevice,
2857 uint32_t* pQueueFamilyPropertyCount,
2858 VkQueueFamilyProperties2* pQueueFamilyProperties)
2859 {
2860 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceQueueFamilyProperties2KHR");
2861 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2862 vkEnc->vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties, true /* do lock */);
2863 }
entry_vkGetPhysicalDeviceMemoryProperties2KHR(VkPhysicalDevice physicalDevice,VkPhysicalDeviceMemoryProperties2 * pMemoryProperties)2864 static void entry_vkGetPhysicalDeviceMemoryProperties2KHR(
2865 VkPhysicalDevice physicalDevice,
2866 VkPhysicalDeviceMemoryProperties2* pMemoryProperties)
2867 {
2868 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMemoryProperties2KHR");
2869 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2870 vkEnc->vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice, pMemoryProperties, true /* do lock */);
2871 }
entry_vkGetPhysicalDeviceSparseImageFormatProperties2KHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo,uint32_t * pPropertyCount,VkSparseImageFormatProperties2 * pProperties)2872 static void entry_vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
2873 VkPhysicalDevice physicalDevice,
2874 const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
2875 uint32_t* pPropertyCount,
2876 VkSparseImageFormatProperties2* pProperties)
2877 {
2878 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSparseImageFormatProperties2KHR");
2879 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2880 vkEnc->vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties, true /* do lock */);
2881 }
2882 #endif
2883 #ifdef VK_KHR_device_group
entry_vkGetDeviceGroupPeerMemoryFeaturesKHR(VkDevice device,uint32_t heapIndex,uint32_t localDeviceIndex,uint32_t remoteDeviceIndex,VkPeerMemoryFeatureFlags * pPeerMemoryFeatures)2884 static void entry_vkGetDeviceGroupPeerMemoryFeaturesKHR(
2885 VkDevice device,
2886 uint32_t heapIndex,
2887 uint32_t localDeviceIndex,
2888 uint32_t remoteDeviceIndex,
2889 VkPeerMemoryFeatureFlags* pPeerMemoryFeatures)
2890 {
2891 AEMU_SCOPED_TRACE("vkGetDeviceGroupPeerMemoryFeaturesKHR");
2892 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2893 vkEnc->vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures, true /* do lock */);
2894 }
dynCheck_entry_vkGetDeviceGroupPeerMemoryFeaturesKHR(VkDevice device,uint32_t heapIndex,uint32_t localDeviceIndex,uint32_t remoteDeviceIndex,VkPeerMemoryFeatureFlags * pPeerMemoryFeatures)2895 static void dynCheck_entry_vkGetDeviceGroupPeerMemoryFeaturesKHR(
2896 VkDevice device,
2897 uint32_t heapIndex,
2898 uint32_t localDeviceIndex,
2899 uint32_t remoteDeviceIndex,
2900 VkPeerMemoryFeatureFlags* pPeerMemoryFeatures)
2901 {
2902 auto resources = ResourceTracker::get();
2903 if (!resources->hasDeviceExtension(device, "VK_KHR_device_group"))
2904 {
2905 sOnInvalidDynamicallyCheckedCall("vkGetDeviceGroupPeerMemoryFeaturesKHR", "VK_KHR_device_group");
2906 }
2907 AEMU_SCOPED_TRACE("vkGetDeviceGroupPeerMemoryFeaturesKHR");
2908 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2909 vkEnc->vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures, true /* do lock */);
2910 }
entry_vkCmdSetDeviceMaskKHR(VkCommandBuffer commandBuffer,uint32_t deviceMask)2911 static void entry_vkCmdSetDeviceMaskKHR(
2912 VkCommandBuffer commandBuffer,
2913 uint32_t deviceMask)
2914 {
2915 AEMU_SCOPED_TRACE("vkCmdSetDeviceMaskKHR");
2916 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
2917 vkEnc->vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask, true /* do lock */);
2918 }
entry_vkCmdDispatchBaseKHR(VkCommandBuffer commandBuffer,uint32_t baseGroupX,uint32_t baseGroupY,uint32_t baseGroupZ,uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ)2919 static void entry_vkCmdDispatchBaseKHR(
2920 VkCommandBuffer commandBuffer,
2921 uint32_t baseGroupX,
2922 uint32_t baseGroupY,
2923 uint32_t baseGroupZ,
2924 uint32_t groupCountX,
2925 uint32_t groupCountY,
2926 uint32_t groupCountZ)
2927 {
2928 AEMU_SCOPED_TRACE("vkCmdDispatchBaseKHR");
2929 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
2930 vkEnc->vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ, true /* do lock */);
2931 }
2932 #endif
2933 #ifdef VK_KHR_shader_draw_parameters
2934 #endif
2935 #ifdef VK_KHR_maintenance1
entry_vkTrimCommandPoolKHR(VkDevice device,VkCommandPool commandPool,VkCommandPoolTrimFlags flags)2936 static void entry_vkTrimCommandPoolKHR(
2937 VkDevice device,
2938 VkCommandPool commandPool,
2939 VkCommandPoolTrimFlags flags)
2940 {
2941 AEMU_SCOPED_TRACE("vkTrimCommandPoolKHR");
2942 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2943 vkEnc->vkTrimCommandPoolKHR(device, commandPool, flags, true /* do lock */);
2944 }
dynCheck_entry_vkTrimCommandPoolKHR(VkDevice device,VkCommandPool commandPool,VkCommandPoolTrimFlags flags)2945 static void dynCheck_entry_vkTrimCommandPoolKHR(
2946 VkDevice device,
2947 VkCommandPool commandPool,
2948 VkCommandPoolTrimFlags flags)
2949 {
2950 auto resources = ResourceTracker::get();
2951 if (!resources->hasDeviceExtension(device, "VK_KHR_maintenance1"))
2952 {
2953 sOnInvalidDynamicallyCheckedCall("vkTrimCommandPoolKHR", "VK_KHR_maintenance1");
2954 }
2955 AEMU_SCOPED_TRACE("vkTrimCommandPoolKHR");
2956 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2957 vkEnc->vkTrimCommandPoolKHR(device, commandPool, flags, true /* do lock */);
2958 }
2959 #endif
2960 #ifdef VK_KHR_device_group_creation
entry_vkEnumeratePhysicalDeviceGroupsKHR(VkInstance instance,uint32_t * pPhysicalDeviceGroupCount,VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties)2961 static VkResult entry_vkEnumeratePhysicalDeviceGroupsKHR(
2962 VkInstance instance,
2963 uint32_t* pPhysicalDeviceGroupCount,
2964 VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties)
2965 {
2966 AEMU_SCOPED_TRACE("vkEnumeratePhysicalDeviceGroupsKHR");
2967 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2968 VkResult vkEnumeratePhysicalDeviceGroupsKHR_VkResult_return = (VkResult)0;
2969 vkEnumeratePhysicalDeviceGroupsKHR_VkResult_return = vkEnc->vkEnumeratePhysicalDeviceGroupsKHR(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties, true /* do lock */);
2970 return vkEnumeratePhysicalDeviceGroupsKHR_VkResult_return;
2971 }
2972 #endif
2973 #ifdef VK_KHR_external_memory_capabilities
entry_vkGetPhysicalDeviceExternalBufferPropertiesKHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo,VkExternalBufferProperties * pExternalBufferProperties)2974 static void entry_vkGetPhysicalDeviceExternalBufferPropertiesKHR(
2975 VkPhysicalDevice physicalDevice,
2976 const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
2977 VkExternalBufferProperties* pExternalBufferProperties)
2978 {
2979 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalBufferPropertiesKHR");
2980 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2981 vkEnc->vkGetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties, true /* do lock */);
2982 }
2983 #endif
2984 #ifdef VK_KHR_external_memory
2985 #endif
2986 #ifdef VK_KHR_external_memory_win32
entry_vkGetMemoryWin32HandleKHR(VkDevice device,const VkMemoryGetWin32HandleInfoKHR * pGetWin32HandleInfo,HANDLE * pHandle)2987 static VkResult entry_vkGetMemoryWin32HandleKHR(
2988 VkDevice device,
2989 const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo,
2990 HANDLE* pHandle)
2991 {
2992 AEMU_SCOPED_TRACE("vkGetMemoryWin32HandleKHR");
2993 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2994 VkResult vkGetMemoryWin32HandleKHR_VkResult_return = (VkResult)0;
2995 vkGetMemoryWin32HandleKHR_VkResult_return = vkEnc->vkGetMemoryWin32HandleKHR(device, pGetWin32HandleInfo, pHandle, true /* do lock */);
2996 return vkGetMemoryWin32HandleKHR_VkResult_return;
2997 }
dynCheck_entry_vkGetMemoryWin32HandleKHR(VkDevice device,const VkMemoryGetWin32HandleInfoKHR * pGetWin32HandleInfo,HANDLE * pHandle)2998 static VkResult dynCheck_entry_vkGetMemoryWin32HandleKHR(
2999 VkDevice device,
3000 const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo,
3001 HANDLE* pHandle)
3002 {
3003 auto resources = ResourceTracker::get();
3004 if (!resources->hasDeviceExtension(device, "VK_KHR_external_memory_win32"))
3005 {
3006 sOnInvalidDynamicallyCheckedCall("vkGetMemoryWin32HandleKHR", "VK_KHR_external_memory_win32");
3007 }
3008 AEMU_SCOPED_TRACE("vkGetMemoryWin32HandleKHR");
3009 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
3010 VkResult vkGetMemoryWin32HandleKHR_VkResult_return = (VkResult)0;
3011 vkGetMemoryWin32HandleKHR_VkResult_return = vkEnc->vkGetMemoryWin32HandleKHR(device, pGetWin32HandleInfo, pHandle, true /* do lock */);
3012 return vkGetMemoryWin32HandleKHR_VkResult_return;
3013 }
entry_vkGetMemoryWin32HandlePropertiesKHR(VkDevice device,VkExternalMemoryHandleTypeFlagBits handleType,HANDLE handle,VkMemoryWin32HandlePropertiesKHR * pMemoryWin32HandleProperties)3014 static VkResult entry_vkGetMemoryWin32HandlePropertiesKHR(
3015 VkDevice device,
3016 VkExternalMemoryHandleTypeFlagBits handleType,
3017 HANDLE handle,
3018 VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties)
3019 {
3020 AEMU_SCOPED_TRACE("vkGetMemoryWin32HandlePropertiesKHR");
3021 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
3022 VkResult vkGetMemoryWin32HandlePropertiesKHR_VkResult_return = (VkResult)0;
3023 vkGetMemoryWin32HandlePropertiesKHR_VkResult_return = vkEnc->vkGetMemoryWin32HandlePropertiesKHR(device, handleType, handle, pMemoryWin32HandleProperties, true /* do lock */);
3024 return vkGetMemoryWin32HandlePropertiesKHR_VkResult_return;
3025 }
dynCheck_entry_vkGetMemoryWin32HandlePropertiesKHR(VkDevice device,VkExternalMemoryHandleTypeFlagBits handleType,HANDLE handle,VkMemoryWin32HandlePropertiesKHR * pMemoryWin32HandleProperties)3026 static VkResult dynCheck_entry_vkGetMemoryWin32HandlePropertiesKHR(
3027 VkDevice device,
3028 VkExternalMemoryHandleTypeFlagBits handleType,
3029 HANDLE handle,
3030 VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties)
3031 {
3032 auto resources = ResourceTracker::get();
3033 if (!resources->hasDeviceExtension(device, "VK_KHR_external_memory_win32"))
3034 {
3035 sOnInvalidDynamicallyCheckedCall("vkGetMemoryWin32HandlePropertiesKHR", "VK_KHR_external_memory_win32");
3036 }
3037 AEMU_SCOPED_TRACE("vkGetMemoryWin32HandlePropertiesKHR");
3038 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
3039 VkResult vkGetMemoryWin32HandlePropertiesKHR_VkResult_return = (VkResult)0;
3040 vkGetMemoryWin32HandlePropertiesKHR_VkResult_return = vkEnc->vkGetMemoryWin32HandlePropertiesKHR(device, handleType, handle, pMemoryWin32HandleProperties, true /* do lock */);
3041 return vkGetMemoryWin32HandlePropertiesKHR_VkResult_return;
3042 }
3043 #endif
3044 #ifdef VK_KHR_external_memory_fd
entry_vkGetMemoryFdKHR(VkDevice device,const VkMemoryGetFdInfoKHR * pGetFdInfo,int * pFd)3045 static VkResult entry_vkGetMemoryFdKHR(
3046 VkDevice device,
3047 const VkMemoryGetFdInfoKHR* pGetFdInfo,
3048 int* pFd)
3049 {
3050 AEMU_SCOPED_TRACE("vkGetMemoryFdKHR");
3051 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
3052 VkResult vkGetMemoryFdKHR_VkResult_return = (VkResult)0;
3053 vkGetMemoryFdKHR_VkResult_return = vkEnc->vkGetMemoryFdKHR(device, pGetFdInfo, pFd, true /* do lock */);
3054 return vkGetMemoryFdKHR_VkResult_return;
3055 }
dynCheck_entry_vkGetMemoryFdKHR(VkDevice device,const VkMemoryGetFdInfoKHR * pGetFdInfo,int * pFd)3056 static VkResult dynCheck_entry_vkGetMemoryFdKHR(
3057 VkDevice device,
3058 const VkMemoryGetFdInfoKHR* pGetFdInfo,
3059 int* pFd)
3060 {
3061 auto resources = ResourceTracker::get();
3062 if (!resources->hasDeviceExtension(device, "VK_KHR_external_memory_fd"))
3063 {
3064 sOnInvalidDynamicallyCheckedCall("vkGetMemoryFdKHR", "VK_KHR_external_memory_fd");
3065 }
3066 AEMU_SCOPED_TRACE("vkGetMemoryFdKHR");
3067 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
3068 VkResult vkGetMemoryFdKHR_VkResult_return = (VkResult)0;
3069 vkGetMemoryFdKHR_VkResult_return = vkEnc->vkGetMemoryFdKHR(device, pGetFdInfo, pFd, true /* do lock */);
3070 return vkGetMemoryFdKHR_VkResult_return;
3071 }
entry_vkGetMemoryFdPropertiesKHR(VkDevice device,VkExternalMemoryHandleTypeFlagBits handleType,int fd,VkMemoryFdPropertiesKHR * pMemoryFdProperties)3072 static VkResult entry_vkGetMemoryFdPropertiesKHR(
3073 VkDevice device,
3074 VkExternalMemoryHandleTypeFlagBits handleType,
3075 int fd,
3076 VkMemoryFdPropertiesKHR* pMemoryFdProperties)
3077 {
3078 AEMU_SCOPED_TRACE("vkGetMemoryFdPropertiesKHR");
3079 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
3080 VkResult vkGetMemoryFdPropertiesKHR_VkResult_return = (VkResult)0;
3081 vkGetMemoryFdPropertiesKHR_VkResult_return = vkEnc->vkGetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties, true /* do lock */);
3082 return vkGetMemoryFdPropertiesKHR_VkResult_return;
3083 }
dynCheck_entry_vkGetMemoryFdPropertiesKHR(VkDevice device,VkExternalMemoryHandleTypeFlagBits handleType,int fd,VkMemoryFdPropertiesKHR * pMemoryFdProperties)3084 static VkResult dynCheck_entry_vkGetMemoryFdPropertiesKHR(
3085 VkDevice device,
3086 VkExternalMemoryHandleTypeFlagBits handleType,
3087 int fd,
3088 VkMemoryFdPropertiesKHR* pMemoryFdProperties)
3089 {
3090 auto resources = ResourceTracker::get();
3091 if (!resources->hasDeviceExtension(device, "VK_KHR_external_memory_fd"))
3092 {
3093 sOnInvalidDynamicallyCheckedCall("vkGetMemoryFdPropertiesKHR", "VK_KHR_external_memory_fd");
3094 }
3095 AEMU_SCOPED_TRACE("vkGetMemoryFdPropertiesKHR");
3096 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
3097 VkResult vkGetMemoryFdPropertiesKHR_VkResult_return = (VkResult)0;
3098 vkGetMemoryFdPropertiesKHR_VkResult_return = vkEnc->vkGetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties, true /* do lock */);
3099 return vkGetMemoryFdPropertiesKHR_VkResult_return;
3100 }
3101 #endif
3102 #ifdef VK_KHR_win32_keyed_mutex
3103 #endif
3104 #ifdef VK_KHR_external_semaphore_capabilities
entry_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo,VkExternalSemaphoreProperties * pExternalSemaphoreProperties)3105 static void entry_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
3106 VkPhysicalDevice physicalDevice,
3107 const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
3108 VkExternalSemaphoreProperties* pExternalSemaphoreProperties)
3109 {
3110 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalSemaphorePropertiesKHR");
3111 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
3112 vkEnc->vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties, true /* do lock */);
3113 }
3114 #endif
3115 #ifdef VK_KHR_external_semaphore
3116 #endif
3117 #ifdef VK_KHR_external_semaphore_win32
entry_vkImportSemaphoreWin32HandleKHR(VkDevice device,const VkImportSemaphoreWin32HandleInfoKHR * pImportSemaphoreWin32HandleInfo)3118 static VkResult entry_vkImportSemaphoreWin32HandleKHR(
3119 VkDevice device,
3120 const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo)
3121 {
3122 AEMU_SCOPED_TRACE("vkImportSemaphoreWin32HandleKHR");
3123 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
3124 VkResult vkImportSemaphoreWin32HandleKHR_VkResult_return = (VkResult)0;
3125 vkImportSemaphoreWin32HandleKHR_VkResult_return = vkEnc->vkImportSemaphoreWin32HandleKHR(device, pImportSemaphoreWin32HandleInfo, true /* do lock */);
3126 return vkImportSemaphoreWin32HandleKHR_VkResult_return;
3127 }
dynCheck_entry_vkImportSemaphoreWin32HandleKHR(VkDevice device,const VkImportSemaphoreWin32HandleInfoKHR * pImportSemaphoreWin32HandleInfo)3128 static VkResult dynCheck_entry_vkImportSemaphoreWin32HandleKHR(
3129 VkDevice device,
3130 const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo)
3131 {
3132 auto resources = ResourceTracker::get();
3133 if (!resources->hasDeviceExtension(device, "VK_KHR_external_semaphore_win32"))
3134 {
3135 sOnInvalidDynamicallyCheckedCall("vkImportSemaphoreWin32HandleKHR", "VK_KHR_external_semaphore_win32");
3136 }
3137 AEMU_SCOPED_TRACE("vkImportSemaphoreWin32HandleKHR");
3138 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
3139 VkResult vkImportSemaphoreWin32HandleKHR_VkResult_return = (VkResult)0;
3140 vkImportSemaphoreWin32HandleKHR_VkResult_return = vkEnc->vkImportSemaphoreWin32HandleKHR(device, pImportSemaphoreWin32HandleInfo, true /* do lock */);
3141 return vkImportSemaphoreWin32HandleKHR_VkResult_return;
3142 }
entry_vkGetSemaphoreWin32HandleKHR(VkDevice device,const VkSemaphoreGetWin32HandleInfoKHR * pGetWin32HandleInfo,HANDLE * pHandle)3143 static VkResult entry_vkGetSemaphoreWin32HandleKHR(
3144 VkDevice device,
3145 const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo,
3146 HANDLE* pHandle)
3147 {
3148 AEMU_SCOPED_TRACE("vkGetSemaphoreWin32HandleKHR");
3149 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
3150 VkResult vkGetSemaphoreWin32HandleKHR_VkResult_return = (VkResult)0;
3151 vkGetSemaphoreWin32HandleKHR_VkResult_return = vkEnc->vkGetSemaphoreWin32HandleKHR(device, pGetWin32HandleInfo, pHandle, true /* do lock */);
3152 return vkGetSemaphoreWin32HandleKHR_VkResult_return;
3153 }
dynCheck_entry_vkGetSemaphoreWin32HandleKHR(VkDevice device,const VkSemaphoreGetWin32HandleInfoKHR * pGetWin32HandleInfo,HANDLE * pHandle)3154 static VkResult dynCheck_entry_vkGetSemaphoreWin32HandleKHR(
3155 VkDevice device,
3156 const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo,
3157 HANDLE* pHandle)
3158 {
3159 auto resources = ResourceTracker::get();
3160 if (!resources->hasDeviceExtension(device, "VK_KHR_external_semaphore_win32"))
3161 {
3162 sOnInvalidDynamicallyCheckedCall("vkGetSemaphoreWin32HandleKHR", "VK_KHR_external_semaphore_win32");
3163 }
3164 AEMU_SCOPED_TRACE("vkGetSemaphoreWin32HandleKHR");
3165 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
3166 VkResult vkGetSemaphoreWin32HandleKHR_VkResult_return = (VkResult)0;
3167 vkGetSemaphoreWin32HandleKHR_VkResult_return = vkEnc->vkGetSemaphoreWin32HandleKHR(device, pGetWin32HandleInfo, pHandle, true /* do lock */);
3168 return vkGetSemaphoreWin32HandleKHR_VkResult_return;
3169 }
3170 #endif
3171 #ifdef VK_KHR_external_semaphore_fd
entry_vkImportSemaphoreFdKHR(VkDevice device,const VkImportSemaphoreFdInfoKHR * pImportSemaphoreFdInfo)3172 static VkResult entry_vkImportSemaphoreFdKHR(
3173 VkDevice device,
3174 const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo)
3175 {
3176 AEMU_SCOPED_TRACE("vkImportSemaphoreFdKHR");
3177 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
3178 VkResult vkImportSemaphoreFdKHR_VkResult_return = (VkResult)0;
3179 auto resources = ResourceTracker::get();
3180 vkImportSemaphoreFdKHR_VkResult_return = resources->on_vkImportSemaphoreFdKHR(vkEnc, VK_SUCCESS, device, pImportSemaphoreFdInfo);
3181 return vkImportSemaphoreFdKHR_VkResult_return;
3182 }
dynCheck_entry_vkImportSemaphoreFdKHR(VkDevice device,const VkImportSemaphoreFdInfoKHR * pImportSemaphoreFdInfo)3183 static VkResult dynCheck_entry_vkImportSemaphoreFdKHR(
3184 VkDevice device,
3185 const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo)
3186 {
3187 auto resources = ResourceTracker::get();
3188 if (!resources->hasDeviceExtension(device, "VK_KHR_external_semaphore_fd"))
3189 {
3190 sOnInvalidDynamicallyCheckedCall("vkImportSemaphoreFdKHR", "VK_KHR_external_semaphore_fd");
3191 }
3192 AEMU_SCOPED_TRACE("vkImportSemaphoreFdKHR");
3193 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
3194 VkResult vkImportSemaphoreFdKHR_VkResult_return = (VkResult)0;
3195 vkImportSemaphoreFdKHR_VkResult_return = resources->on_vkImportSemaphoreFdKHR(vkEnc, VK_SUCCESS, device, pImportSemaphoreFdInfo);
3196 return vkImportSemaphoreFdKHR_VkResult_return;
3197 }
entry_vkGetSemaphoreFdKHR(VkDevice device,const VkSemaphoreGetFdInfoKHR * pGetFdInfo,int * pFd)3198 static VkResult entry_vkGetSemaphoreFdKHR(
3199 VkDevice device,
3200 const VkSemaphoreGetFdInfoKHR* pGetFdInfo,
3201 int* pFd)
3202 {
3203 AEMU_SCOPED_TRACE("vkGetSemaphoreFdKHR");
3204 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
3205 VkResult vkGetSemaphoreFdKHR_VkResult_return = (VkResult)0;
3206 auto resources = ResourceTracker::get();
3207 vkGetSemaphoreFdKHR_VkResult_return = resources->on_vkGetSemaphoreFdKHR(vkEnc, VK_SUCCESS, device, pGetFdInfo, pFd);
3208 return vkGetSemaphoreFdKHR_VkResult_return;
3209 }
dynCheck_entry_vkGetSemaphoreFdKHR(VkDevice device,const VkSemaphoreGetFdInfoKHR * pGetFdInfo,int * pFd)3210