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 //
18 // (impl) generated by codegen/vulkan/scripts/genvk.py -registry codegen/vulkan/xml/vk.xml
19 // -registryGfxstream codegen/vulkan/xml/vk_gfxstream.xml cereal -o host/vulkan/cereal
20 //
21 // Please do not modify directly;
22 // re-run gfxstream-protocols/scripts/generate-vulkan-sources.sh,
23 // or directly from Python by defining:
24 // VULKAN_REGISTRY_XML_DIR : Directory containing vk.xml
25 // VULKAN_REGISTRY_SCRIPTS_DIR : Directory containing genvk.py
26 // CEREAL_OUTPUT_DIR: Where to put the generated sources.
27 //
28 // python3 $VULKAN_REGISTRY_SCRIPTS_DIR/genvk.py -registry $VULKAN_REGISTRY_XML_DIR/vk.xml cereal -o
29 // $CEREAL_OUTPUT_DIR
30 //
31
32 #include "func_table.h"
33
34 #include <log/log.h>
35
36 #include <cstring>
37
38 #include "../OpenglSystemCommon/HostConnection.h"
39 #include "ResourceTracker.h"
40 #include "VkEncoder.h"
41 #include "goldfish_vk_private_defs.h"
42
43 // Stuff we are not going to use but if included,
44 // will cause compile errors. These are Android Vulkan
45 // required extensions, but the approach will be to
46 // implement them completely on the guest side.
47 #undef VK_KHR_android_surface
48 #if defined(LINUX_GUEST_BUILD)
49 #undef VK_ANDROID_native_buffer
50 #endif
51
52 namespace gfxstream {
53 namespace vk {
54
sOnInvalidDynamicallyCheckedCall(const char * apiname,const char * neededFeature)55 static void sOnInvalidDynamicallyCheckedCall(const char* apiname, const char* neededFeature) {
56 ALOGE("invalid call to %s: %s not supported", apiname, neededFeature);
57 abort();
58 }
59 #ifdef VK_VERSION_1_0
entry_vkCreateInstance(const VkInstanceCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkInstance * pInstance)60 static VkResult entry_vkCreateInstance(const VkInstanceCreateInfo* pCreateInfo,
61 const VkAllocationCallbacks* pAllocator,
62 VkInstance* pInstance) {
63 AEMU_SCOPED_TRACE("vkCreateInstance");
64 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
65 VkResult vkCreateInstance_VkResult_return = (VkResult)0;
66 vkCreateInstance_VkResult_return =
67 vkEnc->vkCreateInstance(pCreateInfo, pAllocator, pInstance, true /* do lock */);
68 return vkCreateInstance_VkResult_return;
69 }
entry_vkDestroyInstance(VkInstance instance,const VkAllocationCallbacks * pAllocator)70 static void entry_vkDestroyInstance(VkInstance instance, const VkAllocationCallbacks* pAllocator) {
71 AEMU_SCOPED_TRACE("vkDestroyInstance");
72 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
73 vkEnc->vkDestroyInstance(instance, pAllocator, true /* do lock */);
74 }
entry_vkEnumeratePhysicalDevices(VkInstance instance,uint32_t * pPhysicalDeviceCount,VkPhysicalDevice * pPhysicalDevices)75 static VkResult entry_vkEnumeratePhysicalDevices(VkInstance instance,
76 uint32_t* pPhysicalDeviceCount,
77 VkPhysicalDevice* pPhysicalDevices) {
78 AEMU_SCOPED_TRACE("vkEnumeratePhysicalDevices");
79 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
80 VkResult vkEnumeratePhysicalDevices_VkResult_return = (VkResult)0;
81 auto resources = ResourceTracker::get();
82 vkEnumeratePhysicalDevices_VkResult_return = resources->on_vkEnumeratePhysicalDevices(
83 vkEnc, VK_SUCCESS, instance, pPhysicalDeviceCount, pPhysicalDevices);
84 return vkEnumeratePhysicalDevices_VkResult_return;
85 }
entry_vkGetPhysicalDeviceFeatures(VkPhysicalDevice physicalDevice,VkPhysicalDeviceFeatures * pFeatures)86 static void entry_vkGetPhysicalDeviceFeatures(VkPhysicalDevice physicalDevice,
87 VkPhysicalDeviceFeatures* pFeatures) {
88 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFeatures");
89 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
90 vkEnc->vkGetPhysicalDeviceFeatures(physicalDevice, pFeatures, true /* do lock */);
91 }
entry_vkGetPhysicalDeviceFormatProperties(VkPhysicalDevice physicalDevice,VkFormat format,VkFormatProperties * pFormatProperties)92 static void entry_vkGetPhysicalDeviceFormatProperties(VkPhysicalDevice physicalDevice,
93 VkFormat format,
94 VkFormatProperties* pFormatProperties) {
95 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFormatProperties");
96 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
97 vkEnc->vkGetPhysicalDeviceFormatProperties(physicalDevice, format, pFormatProperties,
98 true /* do lock */);
99 }
entry_vkGetPhysicalDeviceImageFormatProperties(VkPhysicalDevice physicalDevice,VkFormat format,VkImageType type,VkImageTiling tiling,VkImageUsageFlags usage,VkImageCreateFlags flags,VkImageFormatProperties * pImageFormatProperties)100 static VkResult entry_vkGetPhysicalDeviceImageFormatProperties(
101 VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling,
102 VkImageUsageFlags usage, VkImageCreateFlags flags,
103 VkImageFormatProperties* pImageFormatProperties) {
104 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceImageFormatProperties");
105 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
106 VkResult vkGetPhysicalDeviceImageFormatProperties_VkResult_return = (VkResult)0;
107 vkGetPhysicalDeviceImageFormatProperties_VkResult_return =
108 vkEnc->vkGetPhysicalDeviceImageFormatProperties(physicalDevice, format, type, tiling, usage,
109 flags, pImageFormatProperties,
110 true /* do lock */);
111 return vkGetPhysicalDeviceImageFormatProperties_VkResult_return;
112 }
entry_vkGetPhysicalDeviceProperties(VkPhysicalDevice physicalDevice,VkPhysicalDeviceProperties * pProperties)113 static void entry_vkGetPhysicalDeviceProperties(VkPhysicalDevice physicalDevice,
114 VkPhysicalDeviceProperties* pProperties) {
115 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceProperties");
116 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
117 vkEnc->vkGetPhysicalDeviceProperties(physicalDevice, pProperties, true /* do lock */);
118 }
entry_vkGetPhysicalDeviceQueueFamilyProperties(VkPhysicalDevice physicalDevice,uint32_t * pQueueFamilyPropertyCount,VkQueueFamilyProperties * pQueueFamilyProperties)119 static void entry_vkGetPhysicalDeviceQueueFamilyProperties(
120 VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount,
121 VkQueueFamilyProperties* pQueueFamilyProperties) {
122 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceQueueFamilyProperties");
123 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
124 vkEnc->vkGetPhysicalDeviceQueueFamilyProperties(physicalDevice, pQueueFamilyPropertyCount,
125 pQueueFamilyProperties, true /* do lock */);
126 }
entry_vkGetPhysicalDeviceMemoryProperties(VkPhysicalDevice physicalDevice,VkPhysicalDeviceMemoryProperties * pMemoryProperties)127 static void entry_vkGetPhysicalDeviceMemoryProperties(
128 VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties) {
129 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMemoryProperties");
130 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
131 vkEnc->vkGetPhysicalDeviceMemoryProperties(physicalDevice, pMemoryProperties,
132 true /* do lock */);
133 }
entry_vkGetInstanceProcAddr(VkInstance instance,const char * pName)134 static PFN_vkVoidFunction entry_vkGetInstanceProcAddr(VkInstance instance, const char* pName) {
135 AEMU_SCOPED_TRACE("vkGetInstanceProcAddr");
136 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
137 PFN_vkVoidFunction vkGetInstanceProcAddr_PFN_vkVoidFunction_return = (PFN_vkVoidFunction)0;
138 vkGetInstanceProcAddr_PFN_vkVoidFunction_return =
139 vkEnc->vkGetInstanceProcAddr(instance, pName, true /* do lock */);
140 return vkGetInstanceProcAddr_PFN_vkVoidFunction_return;
141 }
entry_vkGetDeviceProcAddr(VkDevice device,const char * pName)142 static PFN_vkVoidFunction entry_vkGetDeviceProcAddr(VkDevice device, const char* pName) {
143 AEMU_SCOPED_TRACE("vkGetDeviceProcAddr");
144 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
145 PFN_vkVoidFunction vkGetDeviceProcAddr_PFN_vkVoidFunction_return = (PFN_vkVoidFunction)0;
146 vkGetDeviceProcAddr_PFN_vkVoidFunction_return =
147 vkEnc->vkGetDeviceProcAddr(device, pName, true /* do lock */);
148 return vkGetDeviceProcAddr_PFN_vkVoidFunction_return;
149 }
entry_vkCreateDevice(VkPhysicalDevice physicalDevice,const VkDeviceCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDevice * pDevice)150 static VkResult entry_vkCreateDevice(VkPhysicalDevice physicalDevice,
151 const VkDeviceCreateInfo* pCreateInfo,
152 const VkAllocationCallbacks* pAllocator, VkDevice* pDevice) {
153 AEMU_SCOPED_TRACE("vkCreateDevice");
154 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
155 VkResult vkCreateDevice_VkResult_return = (VkResult)0;
156 vkCreateDevice_VkResult_return =
157 vkEnc->vkCreateDevice(physicalDevice, pCreateInfo, pAllocator, pDevice, true /* do lock */);
158 return vkCreateDevice_VkResult_return;
159 }
entry_vkDestroyDevice(VkDevice device,const VkAllocationCallbacks * pAllocator)160 static void entry_vkDestroyDevice(VkDevice device, const VkAllocationCallbacks* pAllocator) {
161 AEMU_SCOPED_TRACE("vkDestroyDevice");
162 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
163 vkEnc->vkDestroyDevice(device, pAllocator, true /* do lock */);
164 }
entry_vkEnumerateInstanceExtensionProperties(const char * pLayerName,uint32_t * pPropertyCount,VkExtensionProperties * pProperties)165 static VkResult entry_vkEnumerateInstanceExtensionProperties(const char* pLayerName,
166 uint32_t* pPropertyCount,
167 VkExtensionProperties* pProperties) {
168 AEMU_SCOPED_TRACE("vkEnumerateInstanceExtensionProperties");
169 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
170 VkResult vkEnumerateInstanceExtensionProperties_VkResult_return = (VkResult)0;
171 auto resources = ResourceTracker::get();
172 vkEnumerateInstanceExtensionProperties_VkResult_return =
173 resources->on_vkEnumerateInstanceExtensionProperties(vkEnc, VK_SUCCESS, pLayerName,
174 pPropertyCount, pProperties);
175 return vkEnumerateInstanceExtensionProperties_VkResult_return;
176 }
entry_vkEnumerateDeviceExtensionProperties(VkPhysicalDevice physicalDevice,const char * pLayerName,uint32_t * pPropertyCount,VkExtensionProperties * pProperties)177 static VkResult entry_vkEnumerateDeviceExtensionProperties(VkPhysicalDevice physicalDevice,
178 const char* pLayerName,
179 uint32_t* pPropertyCount,
180 VkExtensionProperties* pProperties) {
181 AEMU_SCOPED_TRACE("vkEnumerateDeviceExtensionProperties");
182 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
183 VkResult vkEnumerateDeviceExtensionProperties_VkResult_return = (VkResult)0;
184 auto resources = ResourceTracker::get();
185 vkEnumerateDeviceExtensionProperties_VkResult_return =
186 resources->on_vkEnumerateDeviceExtensionProperties(vkEnc, VK_SUCCESS, physicalDevice,
187 pLayerName, pPropertyCount, pProperties);
188 return vkEnumerateDeviceExtensionProperties_VkResult_return;
189 }
entry_vkEnumerateInstanceLayerProperties(uint32_t * pPropertyCount,VkLayerProperties * pProperties)190 static VkResult entry_vkEnumerateInstanceLayerProperties(uint32_t* pPropertyCount,
191 VkLayerProperties* pProperties) {
192 AEMU_SCOPED_TRACE("vkEnumerateInstanceLayerProperties");
193 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
194 VkResult vkEnumerateInstanceLayerProperties_VkResult_return = (VkResult)0;
195 vkEnumerateInstanceLayerProperties_VkResult_return =
196 vkEnc->vkEnumerateInstanceLayerProperties(pPropertyCount, pProperties, true /* do lock */);
197 return vkEnumerateInstanceLayerProperties_VkResult_return;
198 }
entry_vkEnumerateDeviceLayerProperties(VkPhysicalDevice physicalDevice,uint32_t * pPropertyCount,VkLayerProperties * pProperties)199 static VkResult entry_vkEnumerateDeviceLayerProperties(VkPhysicalDevice physicalDevice,
200 uint32_t* pPropertyCount,
201 VkLayerProperties* pProperties) {
202 AEMU_SCOPED_TRACE("vkEnumerateDeviceLayerProperties");
203 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
204 VkResult vkEnumerateDeviceLayerProperties_VkResult_return = (VkResult)0;
205 vkEnumerateDeviceLayerProperties_VkResult_return = vkEnc->vkEnumerateDeviceLayerProperties(
206 physicalDevice, pPropertyCount, pProperties, true /* do lock */);
207 return vkEnumerateDeviceLayerProperties_VkResult_return;
208 }
entry_vkGetDeviceQueue(VkDevice device,uint32_t queueFamilyIndex,uint32_t queueIndex,VkQueue * pQueue)209 static void entry_vkGetDeviceQueue(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex,
210 VkQueue* pQueue) {
211 AEMU_SCOPED_TRACE("vkGetDeviceQueue");
212 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
213 vkEnc->vkGetDeviceQueue(device, queueFamilyIndex, queueIndex, pQueue, true /* do lock */);
214 }
entry_vkQueueSubmit(VkQueue queue,uint32_t submitCount,const VkSubmitInfo * pSubmits,VkFence fence)215 static VkResult entry_vkQueueSubmit(VkQueue queue, uint32_t submitCount,
216 const VkSubmitInfo* pSubmits, VkFence fence) {
217 AEMU_SCOPED_TRACE("vkQueueSubmit");
218 auto vkEnc = ResourceTracker::getQueueEncoder(queue);
219 VkResult vkQueueSubmit_VkResult_return = (VkResult)0;
220 auto resources = ResourceTracker::get();
221 vkQueueSubmit_VkResult_return =
222 resources->on_vkQueueSubmit(vkEnc, VK_SUCCESS, queue, submitCount, pSubmits, fence);
223 return vkQueueSubmit_VkResult_return;
224 }
entry_vkQueueWaitIdle(VkQueue queue)225 static VkResult entry_vkQueueWaitIdle(VkQueue queue) {
226 AEMU_SCOPED_TRACE("vkQueueWaitIdle");
227 auto vkEnc = ResourceTracker::getQueueEncoder(queue);
228 VkResult vkQueueWaitIdle_VkResult_return = (VkResult)0;
229 auto resources = ResourceTracker::get();
230 vkQueueWaitIdle_VkResult_return = resources->on_vkQueueWaitIdle(vkEnc, VK_SUCCESS, queue);
231 return vkQueueWaitIdle_VkResult_return;
232 }
entry_vkDeviceWaitIdle(VkDevice device)233 static VkResult entry_vkDeviceWaitIdle(VkDevice device) {
234 AEMU_SCOPED_TRACE("vkDeviceWaitIdle");
235 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
236 VkResult vkDeviceWaitIdle_VkResult_return = (VkResult)0;
237 vkDeviceWaitIdle_VkResult_return = vkEnc->vkDeviceWaitIdle(device, true /* do lock */);
238 return vkDeviceWaitIdle_VkResult_return;
239 }
entry_vkAllocateMemory(VkDevice device,const VkMemoryAllocateInfo * pAllocateInfo,const VkAllocationCallbacks * pAllocator,VkDeviceMemory * pMemory)240 static VkResult entry_vkAllocateMemory(VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo,
241 const VkAllocationCallbacks* pAllocator,
242 VkDeviceMemory* pMemory) {
243 AEMU_SCOPED_TRACE("vkAllocateMemory");
244 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
245 VkResult vkAllocateMemory_VkResult_return = (VkResult)0;
246 auto resources = ResourceTracker::get();
247 vkAllocateMemory_VkResult_return = resources->on_vkAllocateMemory(
248 vkEnc, VK_SUCCESS, device, pAllocateInfo, pAllocator, pMemory);
249 return vkAllocateMemory_VkResult_return;
250 }
entry_vkFreeMemory(VkDevice device,VkDeviceMemory memory,const VkAllocationCallbacks * pAllocator)251 static void entry_vkFreeMemory(VkDevice device, VkDeviceMemory memory,
252 const VkAllocationCallbacks* pAllocator) {
253 AEMU_SCOPED_TRACE("vkFreeMemory");
254 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
255 auto resources = ResourceTracker::get();
256 resources->on_vkFreeMemory(vkEnc, device, memory, pAllocator);
257 }
entry_vkMapMemory(VkDevice device,VkDeviceMemory memory,VkDeviceSize offset,VkDeviceSize size,VkMemoryMapFlags flags,void ** ppData)258 static VkResult entry_vkMapMemory(VkDevice device, VkDeviceMemory memory, VkDeviceSize offset,
259 VkDeviceSize size, VkMemoryMapFlags flags, void** ppData) {
260 AEMU_SCOPED_TRACE("vkMapMemory");
261 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
262 VkResult vkMapMemory_VkResult_return = (VkResult)0;
263 vkMapMemory_VkResult_return =
264 vkEnc->vkMapMemory(device, memory, offset, size, flags, ppData, true /* do lock */);
265 return vkMapMemory_VkResult_return;
266 }
entry_vkUnmapMemory(VkDevice device,VkDeviceMemory memory)267 static void entry_vkUnmapMemory(VkDevice device, VkDeviceMemory memory) {
268 AEMU_SCOPED_TRACE("vkUnmapMemory");
269 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
270 vkEnc->vkUnmapMemory(device, memory, true /* do lock */);
271 }
entry_vkFlushMappedMemoryRanges(VkDevice device,uint32_t memoryRangeCount,const VkMappedMemoryRange * pMemoryRanges)272 static VkResult entry_vkFlushMappedMemoryRanges(VkDevice device, uint32_t memoryRangeCount,
273 const VkMappedMemoryRange* pMemoryRanges) {
274 AEMU_SCOPED_TRACE("vkFlushMappedMemoryRanges");
275 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
276 VkResult vkFlushMappedMemoryRanges_VkResult_return = (VkResult)0;
277 vkFlushMappedMemoryRanges_VkResult_return = vkEnc->vkFlushMappedMemoryRanges(
278 device, memoryRangeCount, pMemoryRanges, true /* do lock */);
279 return vkFlushMappedMemoryRanges_VkResult_return;
280 }
entry_vkInvalidateMappedMemoryRanges(VkDevice device,uint32_t memoryRangeCount,const VkMappedMemoryRange * pMemoryRanges)281 static VkResult entry_vkInvalidateMappedMemoryRanges(VkDevice device, uint32_t memoryRangeCount,
282 const VkMappedMemoryRange* pMemoryRanges) {
283 AEMU_SCOPED_TRACE("vkInvalidateMappedMemoryRanges");
284 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
285 VkResult vkInvalidateMappedMemoryRanges_VkResult_return = (VkResult)0;
286 vkInvalidateMappedMemoryRanges_VkResult_return = vkEnc->vkInvalidateMappedMemoryRanges(
287 device, memoryRangeCount, pMemoryRanges, true /* do lock */);
288 return vkInvalidateMappedMemoryRanges_VkResult_return;
289 }
entry_vkGetDeviceMemoryCommitment(VkDevice device,VkDeviceMemory memory,VkDeviceSize * pCommittedMemoryInBytes)290 static void entry_vkGetDeviceMemoryCommitment(VkDevice device, VkDeviceMemory memory,
291 VkDeviceSize* pCommittedMemoryInBytes) {
292 AEMU_SCOPED_TRACE("vkGetDeviceMemoryCommitment");
293 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
294 vkEnc->vkGetDeviceMemoryCommitment(device, memory, pCommittedMemoryInBytes, true /* do lock */);
295 }
entry_vkBindBufferMemory(VkDevice device,VkBuffer buffer,VkDeviceMemory memory,VkDeviceSize memoryOffset)296 static VkResult entry_vkBindBufferMemory(VkDevice device, VkBuffer buffer, VkDeviceMemory memory,
297 VkDeviceSize memoryOffset) {
298 AEMU_SCOPED_TRACE("vkBindBufferMemory");
299 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
300 VkResult vkBindBufferMemory_VkResult_return = (VkResult)0;
301 auto resources = ResourceTracker::get();
302 vkBindBufferMemory_VkResult_return =
303 resources->on_vkBindBufferMemory(vkEnc, VK_SUCCESS, device, buffer, memory, memoryOffset);
304 return vkBindBufferMemory_VkResult_return;
305 }
entry_vkBindImageMemory(VkDevice device,VkImage image,VkDeviceMemory memory,VkDeviceSize memoryOffset)306 static VkResult entry_vkBindImageMemory(VkDevice device, VkImage image, VkDeviceMemory memory,
307 VkDeviceSize memoryOffset) {
308 AEMU_SCOPED_TRACE("vkBindImageMemory");
309 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
310 VkResult vkBindImageMemory_VkResult_return = (VkResult)0;
311 auto resources = ResourceTracker::get();
312 vkBindImageMemory_VkResult_return =
313 resources->on_vkBindImageMemory(vkEnc, VK_SUCCESS, device, image, memory, memoryOffset);
314 return vkBindImageMemory_VkResult_return;
315 }
entry_vkGetBufferMemoryRequirements(VkDevice device,VkBuffer buffer,VkMemoryRequirements * pMemoryRequirements)316 static void entry_vkGetBufferMemoryRequirements(VkDevice device, VkBuffer buffer,
317 VkMemoryRequirements* pMemoryRequirements) {
318 AEMU_SCOPED_TRACE("vkGetBufferMemoryRequirements");
319 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
320 auto resources = ResourceTracker::get();
321 resources->on_vkGetBufferMemoryRequirements(vkEnc, device, buffer, pMemoryRequirements);
322 }
entry_vkGetImageMemoryRequirements(VkDevice device,VkImage image,VkMemoryRequirements * pMemoryRequirements)323 static void entry_vkGetImageMemoryRequirements(VkDevice device, VkImage image,
324 VkMemoryRequirements* pMemoryRequirements) {
325 AEMU_SCOPED_TRACE("vkGetImageMemoryRequirements");
326 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
327 auto resources = ResourceTracker::get();
328 resources->on_vkGetImageMemoryRequirements(vkEnc, device, image, pMemoryRequirements);
329 }
entry_vkGetImageSparseMemoryRequirements(VkDevice device,VkImage image,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements * pSparseMemoryRequirements)330 static void entry_vkGetImageSparseMemoryRequirements(
331 VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount,
332 VkSparseImageMemoryRequirements* pSparseMemoryRequirements) {
333 AEMU_SCOPED_TRACE("vkGetImageSparseMemoryRequirements");
334 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
335 vkEnc->vkGetImageSparseMemoryRequirements(device, image, pSparseMemoryRequirementCount,
336 pSparseMemoryRequirements, true /* do lock */);
337 }
entry_vkGetPhysicalDeviceSparseImageFormatProperties(VkPhysicalDevice physicalDevice,VkFormat format,VkImageType type,VkSampleCountFlagBits samples,VkImageUsageFlags usage,VkImageTiling tiling,uint32_t * pPropertyCount,VkSparseImageFormatProperties * pProperties)338 static void entry_vkGetPhysicalDeviceSparseImageFormatProperties(
339 VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type,
340 VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling,
341 uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties) {
342 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSparseImageFormatProperties");
343 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
344 vkEnc->vkGetPhysicalDeviceSparseImageFormatProperties(physicalDevice, format, type, samples,
345 usage, tiling, pPropertyCount,
346 pProperties, true /* do lock */);
347 }
entry_vkQueueBindSparse(VkQueue queue,uint32_t bindInfoCount,const VkBindSparseInfo * pBindInfo,VkFence fence)348 static VkResult entry_vkQueueBindSparse(VkQueue queue, uint32_t bindInfoCount,
349 const VkBindSparseInfo* pBindInfo, VkFence fence) {
350 AEMU_SCOPED_TRACE("vkQueueBindSparse");
351 auto vkEnc = ResourceTracker::getQueueEncoder(queue);
352 VkResult vkQueueBindSparse_VkResult_return = (VkResult)0;
353 vkQueueBindSparse_VkResult_return =
354 vkEnc->vkQueueBindSparse(queue, bindInfoCount, pBindInfo, fence, true /* do lock */);
355 return vkQueueBindSparse_VkResult_return;
356 }
entry_vkCreateFence(VkDevice device,const VkFenceCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkFence * pFence)357 static VkResult entry_vkCreateFence(VkDevice device, const VkFenceCreateInfo* pCreateInfo,
358 const VkAllocationCallbacks* pAllocator, VkFence* pFence) {
359 AEMU_SCOPED_TRACE("vkCreateFence");
360 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
361 VkResult vkCreateFence_VkResult_return = (VkResult)0;
362 auto resources = ResourceTracker::get();
363 vkCreateFence_VkResult_return =
364 resources->on_vkCreateFence(vkEnc, VK_SUCCESS, device, pCreateInfo, pAllocator, pFence);
365 return vkCreateFence_VkResult_return;
366 }
entry_vkDestroyFence(VkDevice device,VkFence fence,const VkAllocationCallbacks * pAllocator)367 static void entry_vkDestroyFence(VkDevice device, VkFence fence,
368 const VkAllocationCallbacks* pAllocator) {
369 AEMU_SCOPED_TRACE("vkDestroyFence");
370 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
371 vkEnc->vkDestroyFence(device, fence, pAllocator, true /* do lock */);
372 }
entry_vkResetFences(VkDevice device,uint32_t fenceCount,const VkFence * pFences)373 static VkResult entry_vkResetFences(VkDevice device, uint32_t fenceCount, const VkFence* pFences) {
374 AEMU_SCOPED_TRACE("vkResetFences");
375 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
376 VkResult vkResetFences_VkResult_return = (VkResult)0;
377 auto resources = ResourceTracker::get();
378 vkResetFences_VkResult_return =
379 resources->on_vkResetFences(vkEnc, VK_SUCCESS, device, fenceCount, pFences);
380 return vkResetFences_VkResult_return;
381 }
entry_vkGetFenceStatus(VkDevice device,VkFence fence)382 static VkResult entry_vkGetFenceStatus(VkDevice device, VkFence fence) {
383 AEMU_SCOPED_TRACE("vkGetFenceStatus");
384 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
385 VkResult vkGetFenceStatus_VkResult_return = (VkResult)0;
386 vkGetFenceStatus_VkResult_return = vkEnc->vkGetFenceStatus(device, fence, true /* do lock */);
387 return vkGetFenceStatus_VkResult_return;
388 }
entry_vkWaitForFences(VkDevice device,uint32_t fenceCount,const VkFence * pFences,VkBool32 waitAll,uint64_t timeout)389 static VkResult entry_vkWaitForFences(VkDevice device, uint32_t fenceCount, const VkFence* pFences,
390 VkBool32 waitAll, uint64_t timeout) {
391 AEMU_SCOPED_TRACE("vkWaitForFences");
392 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
393 VkResult vkWaitForFences_VkResult_return = (VkResult)0;
394 auto resources = ResourceTracker::get();
395 vkWaitForFences_VkResult_return = resources->on_vkWaitForFences(
396 vkEnc, VK_SUCCESS, device, fenceCount, pFences, waitAll, timeout);
397 return vkWaitForFences_VkResult_return;
398 }
entry_vkCreateSemaphore(VkDevice device,const VkSemaphoreCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSemaphore * pSemaphore)399 static VkResult entry_vkCreateSemaphore(VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo,
400 const VkAllocationCallbacks* pAllocator,
401 VkSemaphore* pSemaphore) {
402 AEMU_SCOPED_TRACE("vkCreateSemaphore");
403 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
404 VkResult vkCreateSemaphore_VkResult_return = (VkResult)0;
405 auto resources = ResourceTracker::get();
406 vkCreateSemaphore_VkResult_return = resources->on_vkCreateSemaphore(
407 vkEnc, VK_SUCCESS, device, pCreateInfo, pAllocator, pSemaphore);
408 return vkCreateSemaphore_VkResult_return;
409 }
entry_vkDestroySemaphore(VkDevice device,VkSemaphore semaphore,const VkAllocationCallbacks * pAllocator)410 static void entry_vkDestroySemaphore(VkDevice device, VkSemaphore semaphore,
411 const VkAllocationCallbacks* pAllocator) {
412 AEMU_SCOPED_TRACE("vkDestroySemaphore");
413 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
414 auto resources = ResourceTracker::get();
415 resources->on_vkDestroySemaphore(vkEnc, device, semaphore, pAllocator);
416 }
entry_vkCreateEvent(VkDevice device,const VkEventCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkEvent * pEvent)417 static VkResult entry_vkCreateEvent(VkDevice device, const VkEventCreateInfo* pCreateInfo,
418 const VkAllocationCallbacks* pAllocator, VkEvent* pEvent) {
419 AEMU_SCOPED_TRACE("vkCreateEvent");
420 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
421 VkResult vkCreateEvent_VkResult_return = (VkResult)0;
422 vkCreateEvent_VkResult_return =
423 vkEnc->vkCreateEvent(device, pCreateInfo, pAllocator, pEvent, true /* do lock */);
424 return vkCreateEvent_VkResult_return;
425 }
entry_vkDestroyEvent(VkDevice device,VkEvent event,const VkAllocationCallbacks * pAllocator)426 static void entry_vkDestroyEvent(VkDevice device, VkEvent event,
427 const VkAllocationCallbacks* pAllocator) {
428 AEMU_SCOPED_TRACE("vkDestroyEvent");
429 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
430 vkEnc->vkDestroyEvent(device, event, pAllocator, true /* do lock */);
431 }
entry_vkGetEventStatus(VkDevice device,VkEvent event)432 static VkResult entry_vkGetEventStatus(VkDevice device, VkEvent event) {
433 AEMU_SCOPED_TRACE("vkGetEventStatus");
434 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
435 VkResult vkGetEventStatus_VkResult_return = (VkResult)0;
436 vkGetEventStatus_VkResult_return = vkEnc->vkGetEventStatus(device, event, true /* do lock */);
437 return vkGetEventStatus_VkResult_return;
438 }
entry_vkSetEvent(VkDevice device,VkEvent event)439 static VkResult entry_vkSetEvent(VkDevice device, VkEvent event) {
440 AEMU_SCOPED_TRACE("vkSetEvent");
441 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
442 VkResult vkSetEvent_VkResult_return = (VkResult)0;
443 vkSetEvent_VkResult_return = vkEnc->vkSetEvent(device, event, true /* do lock */);
444 return vkSetEvent_VkResult_return;
445 }
entry_vkResetEvent(VkDevice device,VkEvent event)446 static VkResult entry_vkResetEvent(VkDevice device, VkEvent event) {
447 AEMU_SCOPED_TRACE("vkResetEvent");
448 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
449 VkResult vkResetEvent_VkResult_return = (VkResult)0;
450 vkResetEvent_VkResult_return = vkEnc->vkResetEvent(device, event, true /* do lock */);
451 return vkResetEvent_VkResult_return;
452 }
entry_vkCreateQueryPool(VkDevice device,const VkQueryPoolCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkQueryPool * pQueryPool)453 static VkResult entry_vkCreateQueryPool(VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo,
454 const VkAllocationCallbacks* pAllocator,
455 VkQueryPool* pQueryPool) {
456 AEMU_SCOPED_TRACE("vkCreateQueryPool");
457 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
458 VkResult vkCreateQueryPool_VkResult_return = (VkResult)0;
459 vkCreateQueryPool_VkResult_return =
460 vkEnc->vkCreateQueryPool(device, pCreateInfo, pAllocator, pQueryPool, true /* do lock */);
461 return vkCreateQueryPool_VkResult_return;
462 }
entry_vkDestroyQueryPool(VkDevice device,VkQueryPool queryPool,const VkAllocationCallbacks * pAllocator)463 static void entry_vkDestroyQueryPool(VkDevice device, VkQueryPool queryPool,
464 const VkAllocationCallbacks* pAllocator) {
465 AEMU_SCOPED_TRACE("vkDestroyQueryPool");
466 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
467 vkEnc->vkDestroyQueryPool(device, queryPool, pAllocator, true /* do lock */);
468 }
entry_vkGetQueryPoolResults(VkDevice device,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,size_t dataSize,void * pData,VkDeviceSize stride,VkQueryResultFlags flags)469 static VkResult entry_vkGetQueryPoolResults(VkDevice device, VkQueryPool queryPool,
470 uint32_t firstQuery, uint32_t queryCount,
471 size_t dataSize, void* pData, VkDeviceSize stride,
472 VkQueryResultFlags flags) {
473 AEMU_SCOPED_TRACE("vkGetQueryPoolResults");
474 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
475 VkResult vkGetQueryPoolResults_VkResult_return = (VkResult)0;
476 vkGetQueryPoolResults_VkResult_return =
477 vkEnc->vkGetQueryPoolResults(device, queryPool, firstQuery, queryCount, dataSize, pData,
478 stride, flags, true /* do lock */);
479 return vkGetQueryPoolResults_VkResult_return;
480 }
entry_vkCreateBuffer(VkDevice device,const VkBufferCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkBuffer * pBuffer)481 static VkResult entry_vkCreateBuffer(VkDevice device, const VkBufferCreateInfo* pCreateInfo,
482 const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer) {
483 AEMU_SCOPED_TRACE("vkCreateBuffer");
484 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
485 VkResult vkCreateBuffer_VkResult_return = (VkResult)0;
486 auto resources = ResourceTracker::get();
487 vkCreateBuffer_VkResult_return =
488 resources->on_vkCreateBuffer(vkEnc, VK_SUCCESS, device, pCreateInfo, pAllocator, pBuffer);
489 return vkCreateBuffer_VkResult_return;
490 }
entry_vkDestroyBuffer(VkDevice device,VkBuffer buffer,const VkAllocationCallbacks * pAllocator)491 static void entry_vkDestroyBuffer(VkDevice device, VkBuffer buffer,
492 const VkAllocationCallbacks* pAllocator) {
493 AEMU_SCOPED_TRACE("vkDestroyBuffer");
494 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
495 auto resources = ResourceTracker::get();
496 resources->on_vkDestroyBuffer(vkEnc, device, buffer, pAllocator);
497 }
entry_vkCreateBufferView(VkDevice device,const VkBufferViewCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkBufferView * pView)498 static VkResult entry_vkCreateBufferView(VkDevice device, const VkBufferViewCreateInfo* pCreateInfo,
499 const VkAllocationCallbacks* pAllocator,
500 VkBufferView* pView) {
501 AEMU_SCOPED_TRACE("vkCreateBufferView");
502 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
503 VkResult vkCreateBufferView_VkResult_return = (VkResult)0;
504 vkCreateBufferView_VkResult_return =
505 vkEnc->vkCreateBufferView(device, pCreateInfo, pAllocator, pView, true /* do lock */);
506 return vkCreateBufferView_VkResult_return;
507 }
entry_vkDestroyBufferView(VkDevice device,VkBufferView bufferView,const VkAllocationCallbacks * pAllocator)508 static void entry_vkDestroyBufferView(VkDevice device, VkBufferView bufferView,
509 const VkAllocationCallbacks* pAllocator) {
510 AEMU_SCOPED_TRACE("vkDestroyBufferView");
511 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
512 vkEnc->vkDestroyBufferView(device, bufferView, pAllocator, true /* do lock */);
513 }
entry_vkCreateImage(VkDevice device,const VkImageCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkImage * pImage)514 static VkResult entry_vkCreateImage(VkDevice device, const VkImageCreateInfo* pCreateInfo,
515 const VkAllocationCallbacks* pAllocator, VkImage* pImage) {
516 AEMU_SCOPED_TRACE("vkCreateImage");
517 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
518 VkResult vkCreateImage_VkResult_return = (VkResult)0;
519 auto resources = ResourceTracker::get();
520 vkCreateImage_VkResult_return =
521 resources->on_vkCreateImage(vkEnc, VK_SUCCESS, device, pCreateInfo, pAllocator, pImage);
522 return vkCreateImage_VkResult_return;
523 }
entry_vkDestroyImage(VkDevice device,VkImage image,const VkAllocationCallbacks * pAllocator)524 static void entry_vkDestroyImage(VkDevice device, VkImage image,
525 const VkAllocationCallbacks* pAllocator) {
526 AEMU_SCOPED_TRACE("vkDestroyImage");
527 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
528 auto resources = ResourceTracker::get();
529 resources->on_vkDestroyImage(vkEnc, device, image, pAllocator);
530 }
entry_vkGetImageSubresourceLayout(VkDevice device,VkImage image,const VkImageSubresource * pSubresource,VkSubresourceLayout * pLayout)531 static void entry_vkGetImageSubresourceLayout(VkDevice device, VkImage image,
532 const VkImageSubresource* pSubresource,
533 VkSubresourceLayout* pLayout) {
534 AEMU_SCOPED_TRACE("vkGetImageSubresourceLayout");
535 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
536 vkEnc->vkGetImageSubresourceLayout(device, image, pSubresource, pLayout, true /* do lock */);
537 }
entry_vkCreateImageView(VkDevice device,const VkImageViewCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkImageView * pView)538 static VkResult entry_vkCreateImageView(VkDevice device, const VkImageViewCreateInfo* pCreateInfo,
539 const VkAllocationCallbacks* pAllocator,
540 VkImageView* pView) {
541 AEMU_SCOPED_TRACE("vkCreateImageView");
542 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
543 VkResult vkCreateImageView_VkResult_return = (VkResult)0;
544 auto resources = ResourceTracker::get();
545 vkCreateImageView_VkResult_return =
546 resources->on_vkCreateImageView(vkEnc, VK_SUCCESS, device, pCreateInfo, pAllocator, pView);
547 return vkCreateImageView_VkResult_return;
548 }
entry_vkDestroyImageView(VkDevice device,VkImageView imageView,const VkAllocationCallbacks * pAllocator)549 static void entry_vkDestroyImageView(VkDevice device, VkImageView imageView,
550 const VkAllocationCallbacks* pAllocator) {
551 AEMU_SCOPED_TRACE("vkDestroyImageView");
552 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
553 vkEnc->vkDestroyImageView(device, imageView, pAllocator, true /* do lock */);
554 }
entry_vkCreateShaderModule(VkDevice device,const VkShaderModuleCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkShaderModule * pShaderModule)555 static VkResult entry_vkCreateShaderModule(VkDevice device,
556 const VkShaderModuleCreateInfo* pCreateInfo,
557 const VkAllocationCallbacks* pAllocator,
558 VkShaderModule* pShaderModule) {
559 AEMU_SCOPED_TRACE("vkCreateShaderModule");
560 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
561 VkResult vkCreateShaderModule_VkResult_return = (VkResult)0;
562 vkCreateShaderModule_VkResult_return = vkEnc->vkCreateShaderModule(
563 device, pCreateInfo, pAllocator, pShaderModule, true /* do lock */);
564 return vkCreateShaderModule_VkResult_return;
565 }
entry_vkDestroyShaderModule(VkDevice device,VkShaderModule shaderModule,const VkAllocationCallbacks * pAllocator)566 static void entry_vkDestroyShaderModule(VkDevice device, VkShaderModule shaderModule,
567 const VkAllocationCallbacks* pAllocator) {
568 AEMU_SCOPED_TRACE("vkDestroyShaderModule");
569 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
570 vkEnc->vkDestroyShaderModule(device, shaderModule, pAllocator, true /* do lock */);
571 }
entry_vkCreatePipelineCache(VkDevice device,const VkPipelineCacheCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkPipelineCache * pPipelineCache)572 static VkResult entry_vkCreatePipelineCache(VkDevice device,
573 const VkPipelineCacheCreateInfo* pCreateInfo,
574 const VkAllocationCallbacks* pAllocator,
575 VkPipelineCache* pPipelineCache) {
576 AEMU_SCOPED_TRACE("vkCreatePipelineCache");
577 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
578 VkResult vkCreatePipelineCache_VkResult_return = (VkResult)0;
579 vkCreatePipelineCache_VkResult_return = vkEnc->vkCreatePipelineCache(
580 device, pCreateInfo, pAllocator, pPipelineCache, true /* do lock */);
581 return vkCreatePipelineCache_VkResult_return;
582 }
entry_vkDestroyPipelineCache(VkDevice device,VkPipelineCache pipelineCache,const VkAllocationCallbacks * pAllocator)583 static void entry_vkDestroyPipelineCache(VkDevice device, VkPipelineCache pipelineCache,
584 const VkAllocationCallbacks* pAllocator) {
585 AEMU_SCOPED_TRACE("vkDestroyPipelineCache");
586 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
587 vkEnc->vkDestroyPipelineCache(device, pipelineCache, pAllocator, true /* do lock */);
588 }
entry_vkGetPipelineCacheData(VkDevice device,VkPipelineCache pipelineCache,size_t * pDataSize,void * pData)589 static VkResult entry_vkGetPipelineCacheData(VkDevice device, VkPipelineCache pipelineCache,
590 size_t* pDataSize, void* pData) {
591 AEMU_SCOPED_TRACE("vkGetPipelineCacheData");
592 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
593 VkResult vkGetPipelineCacheData_VkResult_return = (VkResult)0;
594 vkGetPipelineCacheData_VkResult_return =
595 vkEnc->vkGetPipelineCacheData(device, pipelineCache, pDataSize, pData, true /* do lock */);
596 return vkGetPipelineCacheData_VkResult_return;
597 }
entry_vkMergePipelineCaches(VkDevice device,VkPipelineCache dstCache,uint32_t srcCacheCount,const VkPipelineCache * pSrcCaches)598 static VkResult entry_vkMergePipelineCaches(VkDevice device, VkPipelineCache dstCache,
599 uint32_t srcCacheCount,
600 const VkPipelineCache* pSrcCaches) {
601 AEMU_SCOPED_TRACE("vkMergePipelineCaches");
602 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
603 VkResult vkMergePipelineCaches_VkResult_return = (VkResult)0;
604 vkMergePipelineCaches_VkResult_return = vkEnc->vkMergePipelineCaches(
605 device, dstCache, srcCacheCount, pSrcCaches, true /* do lock */);
606 return vkMergePipelineCaches_VkResult_return;
607 }
entry_vkCreateGraphicsPipelines(VkDevice device,VkPipelineCache pipelineCache,uint32_t createInfoCount,const VkGraphicsPipelineCreateInfo * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkPipeline * pPipelines)608 static VkResult entry_vkCreateGraphicsPipelines(VkDevice device, VkPipelineCache pipelineCache,
609 uint32_t createInfoCount,
610 const VkGraphicsPipelineCreateInfo* pCreateInfos,
611 const VkAllocationCallbacks* pAllocator,
612 VkPipeline* pPipelines) {
613 AEMU_SCOPED_TRACE("vkCreateGraphicsPipelines");
614 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
615 VkResult vkCreateGraphicsPipelines_VkResult_return = (VkResult)0;
616 auto resources = ResourceTracker::get();
617 vkCreateGraphicsPipelines_VkResult_return = resources->on_vkCreateGraphicsPipelines(
618 vkEnc, VK_SUCCESS, device, pipelineCache, createInfoCount, pCreateInfos, pAllocator,
619 pPipelines);
620 return vkCreateGraphicsPipelines_VkResult_return;
621 }
entry_vkCreateComputePipelines(VkDevice device,VkPipelineCache pipelineCache,uint32_t createInfoCount,const VkComputePipelineCreateInfo * pCreateInfos,const VkAllocationCallbacks * pAllocator,VkPipeline * pPipelines)622 static VkResult entry_vkCreateComputePipelines(VkDevice device, VkPipelineCache pipelineCache,
623 uint32_t createInfoCount,
624 const VkComputePipelineCreateInfo* pCreateInfos,
625 const VkAllocationCallbacks* pAllocator,
626 VkPipeline* pPipelines) {
627 AEMU_SCOPED_TRACE("vkCreateComputePipelines");
628 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
629 VkResult vkCreateComputePipelines_VkResult_return = (VkResult)0;
630 vkCreateComputePipelines_VkResult_return =
631 vkEnc->vkCreateComputePipelines(device, pipelineCache, createInfoCount, pCreateInfos,
632 pAllocator, pPipelines, true /* do lock */);
633 return vkCreateComputePipelines_VkResult_return;
634 }
entry_vkDestroyPipeline(VkDevice device,VkPipeline pipeline,const VkAllocationCallbacks * pAllocator)635 static void entry_vkDestroyPipeline(VkDevice device, VkPipeline pipeline,
636 const VkAllocationCallbacks* pAllocator) {
637 AEMU_SCOPED_TRACE("vkDestroyPipeline");
638 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
639 vkEnc->vkDestroyPipeline(device, pipeline, pAllocator, true /* do lock */);
640 }
entry_vkCreatePipelineLayout(VkDevice device,const VkPipelineLayoutCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkPipelineLayout * pPipelineLayout)641 static VkResult entry_vkCreatePipelineLayout(VkDevice device,
642 const VkPipelineLayoutCreateInfo* pCreateInfo,
643 const VkAllocationCallbacks* pAllocator,
644 VkPipelineLayout* pPipelineLayout) {
645 AEMU_SCOPED_TRACE("vkCreatePipelineLayout");
646 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
647 VkResult vkCreatePipelineLayout_VkResult_return = (VkResult)0;
648 vkCreatePipelineLayout_VkResult_return = vkEnc->vkCreatePipelineLayout(
649 device, pCreateInfo, pAllocator, pPipelineLayout, true /* do lock */);
650 return vkCreatePipelineLayout_VkResult_return;
651 }
entry_vkDestroyPipelineLayout(VkDevice device,VkPipelineLayout pipelineLayout,const VkAllocationCallbacks * pAllocator)652 static void entry_vkDestroyPipelineLayout(VkDevice device, VkPipelineLayout pipelineLayout,
653 const VkAllocationCallbacks* pAllocator) {
654 AEMU_SCOPED_TRACE("vkDestroyPipelineLayout");
655 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
656 vkEnc->vkDestroyPipelineLayout(device, pipelineLayout, pAllocator, true /* do lock */);
657 }
entry_vkCreateSampler(VkDevice device,const VkSamplerCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSampler * pSampler)658 static VkResult entry_vkCreateSampler(VkDevice device, const VkSamplerCreateInfo* pCreateInfo,
659 const VkAllocationCallbacks* pAllocator,
660 VkSampler* pSampler) {
661 AEMU_SCOPED_TRACE("vkCreateSampler");
662 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
663 VkResult vkCreateSampler_VkResult_return = (VkResult)0;
664 auto resources = ResourceTracker::get();
665 vkCreateSampler_VkResult_return =
666 resources->on_vkCreateSampler(vkEnc, VK_SUCCESS, device, pCreateInfo, pAllocator, pSampler);
667 return vkCreateSampler_VkResult_return;
668 }
entry_vkDestroySampler(VkDevice device,VkSampler sampler,const VkAllocationCallbacks * pAllocator)669 static void entry_vkDestroySampler(VkDevice device, VkSampler sampler,
670 const VkAllocationCallbacks* pAllocator) {
671 AEMU_SCOPED_TRACE("vkDestroySampler");
672 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
673 vkEnc->vkDestroySampler(device, sampler, pAllocator, true /* do lock */);
674 }
entry_vkCreateDescriptorSetLayout(VkDevice device,const VkDescriptorSetLayoutCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorSetLayout * pSetLayout)675 static VkResult entry_vkCreateDescriptorSetLayout(
676 VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
677 const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout) {
678 AEMU_SCOPED_TRACE("vkCreateDescriptorSetLayout");
679 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
680 VkResult vkCreateDescriptorSetLayout_VkResult_return = (VkResult)0;
681 auto resources = ResourceTracker::get();
682 vkCreateDescriptorSetLayout_VkResult_return = resources->on_vkCreateDescriptorSetLayout(
683 vkEnc, VK_SUCCESS, device, pCreateInfo, pAllocator, pSetLayout);
684 return vkCreateDescriptorSetLayout_VkResult_return;
685 }
entry_vkDestroyDescriptorSetLayout(VkDevice device,VkDescriptorSetLayout descriptorSetLayout,const VkAllocationCallbacks * pAllocator)686 static void entry_vkDestroyDescriptorSetLayout(VkDevice device,
687 VkDescriptorSetLayout descriptorSetLayout,
688 const VkAllocationCallbacks* pAllocator) {
689 AEMU_SCOPED_TRACE("vkDestroyDescriptorSetLayout");
690 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
691 auto resources = ResourceTracker::get();
692 resources->on_vkDestroyDescriptorSetLayout(vkEnc, device, descriptorSetLayout, pAllocator);
693 }
entry_vkCreateDescriptorPool(VkDevice device,const VkDescriptorPoolCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorPool * pDescriptorPool)694 static VkResult entry_vkCreateDescriptorPool(VkDevice device,
695 const VkDescriptorPoolCreateInfo* pCreateInfo,
696 const VkAllocationCallbacks* pAllocator,
697 VkDescriptorPool* pDescriptorPool) {
698 AEMU_SCOPED_TRACE("vkCreateDescriptorPool");
699 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
700 VkResult vkCreateDescriptorPool_VkResult_return = (VkResult)0;
701 auto resources = ResourceTracker::get();
702 vkCreateDescriptorPool_VkResult_return = resources->on_vkCreateDescriptorPool(
703 vkEnc, VK_SUCCESS, device, pCreateInfo, pAllocator, pDescriptorPool);
704 return vkCreateDescriptorPool_VkResult_return;
705 }
entry_vkDestroyDescriptorPool(VkDevice device,VkDescriptorPool descriptorPool,const VkAllocationCallbacks * pAllocator)706 static void entry_vkDestroyDescriptorPool(VkDevice device, VkDescriptorPool descriptorPool,
707 const VkAllocationCallbacks* pAllocator) {
708 AEMU_SCOPED_TRACE("vkDestroyDescriptorPool");
709 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
710 auto resources = ResourceTracker::get();
711 resources->on_vkDestroyDescriptorPool(vkEnc, device, descriptorPool, pAllocator);
712 }
entry_vkResetDescriptorPool(VkDevice device,VkDescriptorPool descriptorPool,VkDescriptorPoolResetFlags flags)713 static VkResult entry_vkResetDescriptorPool(VkDevice device, VkDescriptorPool descriptorPool,
714 VkDescriptorPoolResetFlags flags) {
715 AEMU_SCOPED_TRACE("vkResetDescriptorPool");
716 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
717 VkResult vkResetDescriptorPool_VkResult_return = (VkResult)0;
718 auto resources = ResourceTracker::get();
719 vkResetDescriptorPool_VkResult_return =
720 resources->on_vkResetDescriptorPool(vkEnc, VK_SUCCESS, device, descriptorPool, flags);
721 return vkResetDescriptorPool_VkResult_return;
722 }
entry_vkAllocateDescriptorSets(VkDevice device,const VkDescriptorSetAllocateInfo * pAllocateInfo,VkDescriptorSet * pDescriptorSets)723 static VkResult entry_vkAllocateDescriptorSets(VkDevice device,
724 const VkDescriptorSetAllocateInfo* pAllocateInfo,
725 VkDescriptorSet* pDescriptorSets) {
726 AEMU_SCOPED_TRACE("vkAllocateDescriptorSets");
727 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
728 VkResult vkAllocateDescriptorSets_VkResult_return = (VkResult)0;
729 auto resources = ResourceTracker::get();
730 vkAllocateDescriptorSets_VkResult_return = resources->on_vkAllocateDescriptorSets(
731 vkEnc, VK_SUCCESS, device, pAllocateInfo, pDescriptorSets);
732 return vkAllocateDescriptorSets_VkResult_return;
733 }
entry_vkFreeDescriptorSets(VkDevice device,VkDescriptorPool descriptorPool,uint32_t descriptorSetCount,const VkDescriptorSet * pDescriptorSets)734 static VkResult entry_vkFreeDescriptorSets(VkDevice device, VkDescriptorPool descriptorPool,
735 uint32_t descriptorSetCount,
736 const VkDescriptorSet* pDescriptorSets) {
737 AEMU_SCOPED_TRACE("vkFreeDescriptorSets");
738 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
739 VkResult vkFreeDescriptorSets_VkResult_return = (VkResult)0;
740 auto resources = ResourceTracker::get();
741 vkFreeDescriptorSets_VkResult_return = resources->on_vkFreeDescriptorSets(
742 vkEnc, VK_SUCCESS, device, descriptorPool, descriptorSetCount, pDescriptorSets);
743 return vkFreeDescriptorSets_VkResult_return;
744 }
entry_vkUpdateDescriptorSets(VkDevice device,uint32_t descriptorWriteCount,const VkWriteDescriptorSet * pDescriptorWrites,uint32_t descriptorCopyCount,const VkCopyDescriptorSet * pDescriptorCopies)745 static void entry_vkUpdateDescriptorSets(VkDevice device, uint32_t descriptorWriteCount,
746 const VkWriteDescriptorSet* pDescriptorWrites,
747 uint32_t descriptorCopyCount,
748 const VkCopyDescriptorSet* pDescriptorCopies) {
749 AEMU_SCOPED_TRACE("vkUpdateDescriptorSets");
750 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
751 auto resources = ResourceTracker::get();
752 resources->on_vkUpdateDescriptorSets(vkEnc, device, descriptorWriteCount, pDescriptorWrites,
753 descriptorCopyCount, pDescriptorCopies);
754 }
entry_vkCreateFramebuffer(VkDevice device,const VkFramebufferCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkFramebuffer * pFramebuffer)755 static VkResult entry_vkCreateFramebuffer(VkDevice device,
756 const VkFramebufferCreateInfo* pCreateInfo,
757 const VkAllocationCallbacks* pAllocator,
758 VkFramebuffer* pFramebuffer) {
759 AEMU_SCOPED_TRACE("vkCreateFramebuffer");
760 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
761 VkResult vkCreateFramebuffer_VkResult_return = (VkResult)0;
762 vkCreateFramebuffer_VkResult_return = vkEnc->vkCreateFramebuffer(
763 device, pCreateInfo, pAllocator, pFramebuffer, true /* do lock */);
764 return vkCreateFramebuffer_VkResult_return;
765 }
entry_vkDestroyFramebuffer(VkDevice device,VkFramebuffer framebuffer,const VkAllocationCallbacks * pAllocator)766 static void entry_vkDestroyFramebuffer(VkDevice device, VkFramebuffer framebuffer,
767 const VkAllocationCallbacks* pAllocator) {
768 AEMU_SCOPED_TRACE("vkDestroyFramebuffer");
769 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
770 vkEnc->vkDestroyFramebuffer(device, framebuffer, pAllocator, true /* do lock */);
771 }
entry_vkCreateRenderPass(VkDevice device,const VkRenderPassCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkRenderPass * pRenderPass)772 static VkResult entry_vkCreateRenderPass(VkDevice device, const VkRenderPassCreateInfo* pCreateInfo,
773 const VkAllocationCallbacks* pAllocator,
774 VkRenderPass* pRenderPass) {
775 AEMU_SCOPED_TRACE("vkCreateRenderPass");
776 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
777 VkResult vkCreateRenderPass_VkResult_return = (VkResult)0;
778 vkCreateRenderPass_VkResult_return =
779 vkEnc->vkCreateRenderPass(device, pCreateInfo, pAllocator, pRenderPass, true /* do lock */);
780 return vkCreateRenderPass_VkResult_return;
781 }
entry_vkDestroyRenderPass(VkDevice device,VkRenderPass renderPass,const VkAllocationCallbacks * pAllocator)782 static void entry_vkDestroyRenderPass(VkDevice device, VkRenderPass renderPass,
783 const VkAllocationCallbacks* pAllocator) {
784 AEMU_SCOPED_TRACE("vkDestroyRenderPass");
785 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
786 vkEnc->vkDestroyRenderPass(device, renderPass, pAllocator, true /* do lock */);
787 }
entry_vkGetRenderAreaGranularity(VkDevice device,VkRenderPass renderPass,VkExtent2D * pGranularity)788 static void entry_vkGetRenderAreaGranularity(VkDevice device, VkRenderPass renderPass,
789 VkExtent2D* pGranularity) {
790 AEMU_SCOPED_TRACE("vkGetRenderAreaGranularity");
791 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
792 vkEnc->vkGetRenderAreaGranularity(device, renderPass, pGranularity, true /* do lock */);
793 }
entry_vkCreateCommandPool(VkDevice device,const VkCommandPoolCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkCommandPool * pCommandPool)794 static VkResult entry_vkCreateCommandPool(VkDevice device,
795 const VkCommandPoolCreateInfo* pCreateInfo,
796 const VkAllocationCallbacks* pAllocator,
797 VkCommandPool* pCommandPool) {
798 AEMU_SCOPED_TRACE("vkCreateCommandPool");
799 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
800 VkResult vkCreateCommandPool_VkResult_return = (VkResult)0;
801 vkCreateCommandPool_VkResult_return = vkEnc->vkCreateCommandPool(
802 device, pCreateInfo, pAllocator, pCommandPool, true /* do lock */);
803 return vkCreateCommandPool_VkResult_return;
804 }
entry_vkDestroyCommandPool(VkDevice device,VkCommandPool commandPool,const VkAllocationCallbacks * pAllocator)805 static void entry_vkDestroyCommandPool(VkDevice device, VkCommandPool commandPool,
806 const VkAllocationCallbacks* pAllocator) {
807 AEMU_SCOPED_TRACE("vkDestroyCommandPool");
808 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
809 vkEnc->vkDestroyCommandPool(device, commandPool, pAllocator, true /* do lock */);
810 }
entry_vkResetCommandPool(VkDevice device,VkCommandPool commandPool,VkCommandPoolResetFlags flags)811 static VkResult entry_vkResetCommandPool(VkDevice device, VkCommandPool commandPool,
812 VkCommandPoolResetFlags flags) {
813 AEMU_SCOPED_TRACE("vkResetCommandPool");
814 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
815 VkResult vkResetCommandPool_VkResult_return = (VkResult)0;
816 vkResetCommandPool_VkResult_return =
817 vkEnc->vkResetCommandPool(device, commandPool, flags, true /* do lock */);
818 if (vkResetCommandPool_VkResult_return == VK_SUCCESS) {
819 ResourceTracker::get()->resetCommandPoolStagingInfo(commandPool);
820 }
821 return vkResetCommandPool_VkResult_return;
822 }
entry_vkAllocateCommandBuffers(VkDevice device,const VkCommandBufferAllocateInfo * pAllocateInfo,VkCommandBuffer * pCommandBuffers)823 static VkResult entry_vkAllocateCommandBuffers(VkDevice device,
824 const VkCommandBufferAllocateInfo* pAllocateInfo,
825 VkCommandBuffer* pCommandBuffers) {
826 AEMU_SCOPED_TRACE("vkAllocateCommandBuffers");
827 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
828 VkResult vkAllocateCommandBuffers_VkResult_return = (VkResult)0;
829 auto resources = ResourceTracker::get();
830 vkAllocateCommandBuffers_VkResult_return = resources->on_vkAllocateCommandBuffers(
831 vkEnc, VK_SUCCESS, device, pAllocateInfo, pCommandBuffers);
832 if (vkAllocateCommandBuffers_VkResult_return == VK_SUCCESS) {
833 ResourceTracker::get()->addToCommandPool(
834 pAllocateInfo->commandPool, pAllocateInfo->commandBufferCount, pCommandBuffers);
835 }
836 return vkAllocateCommandBuffers_VkResult_return;
837 }
entry_vkFreeCommandBuffers(VkDevice device,VkCommandPool commandPool,uint32_t commandBufferCount,const VkCommandBuffer * pCommandBuffers)838 static void entry_vkFreeCommandBuffers(VkDevice device, VkCommandPool commandPool,
839 uint32_t commandBufferCount,
840 const VkCommandBuffer* pCommandBuffers) {
841 AEMU_SCOPED_TRACE("vkFreeCommandBuffers");
842 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
843 vkEnc->vkFreeCommandBuffers(device, commandPool, commandBufferCount, pCommandBuffers,
844 true /* do lock */);
845 }
entry_vkBeginCommandBuffer(VkCommandBuffer commandBuffer,const VkCommandBufferBeginInfo * pBeginInfo)846 static VkResult entry_vkBeginCommandBuffer(VkCommandBuffer commandBuffer,
847 const VkCommandBufferBeginInfo* pBeginInfo) {
848 AEMU_SCOPED_TRACE("vkBeginCommandBuffer");
849 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
850 VkResult vkBeginCommandBuffer_VkResult_return = (VkResult)0;
851 auto resources = ResourceTracker::get();
852 vkBeginCommandBuffer_VkResult_return =
853 resources->on_vkBeginCommandBuffer(vkEnc, VK_SUCCESS, commandBuffer, pBeginInfo);
854 return vkBeginCommandBuffer_VkResult_return;
855 }
entry_vkEndCommandBuffer(VkCommandBuffer commandBuffer)856 static VkResult entry_vkEndCommandBuffer(VkCommandBuffer commandBuffer) {
857 AEMU_SCOPED_TRACE("vkEndCommandBuffer");
858 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
859 VkResult vkEndCommandBuffer_VkResult_return = (VkResult)0;
860 auto resources = ResourceTracker::get();
861 vkEndCommandBuffer_VkResult_return =
862 resources->on_vkEndCommandBuffer(vkEnc, VK_SUCCESS, commandBuffer);
863 return vkEndCommandBuffer_VkResult_return;
864 }
entry_vkResetCommandBuffer(VkCommandBuffer commandBuffer,VkCommandBufferResetFlags flags)865 static VkResult entry_vkResetCommandBuffer(VkCommandBuffer commandBuffer,
866 VkCommandBufferResetFlags flags) {
867 AEMU_SCOPED_TRACE("vkResetCommandBuffer");
868 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
869 VkResult vkResetCommandBuffer_VkResult_return = (VkResult)0;
870 auto resources = ResourceTracker::get();
871 vkResetCommandBuffer_VkResult_return =
872 resources->on_vkResetCommandBuffer(vkEnc, VK_SUCCESS, commandBuffer, flags);
873 return vkResetCommandBuffer_VkResult_return;
874 }
entry_vkCmdBindPipeline(VkCommandBuffer commandBuffer,VkPipelineBindPoint pipelineBindPoint,VkPipeline pipeline)875 static void entry_vkCmdBindPipeline(VkCommandBuffer commandBuffer,
876 VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline) {
877 AEMU_SCOPED_TRACE("vkCmdBindPipeline");
878 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
879 vkEnc->vkCmdBindPipeline(commandBuffer, pipelineBindPoint, pipeline, true /* do lock */);
880 }
entry_vkCmdSetViewport(VkCommandBuffer commandBuffer,uint32_t firstViewport,uint32_t viewportCount,const VkViewport * pViewports)881 static void entry_vkCmdSetViewport(VkCommandBuffer commandBuffer, uint32_t firstViewport,
882 uint32_t viewportCount, const VkViewport* pViewports) {
883 AEMU_SCOPED_TRACE("vkCmdSetViewport");
884 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
885 vkEnc->vkCmdSetViewport(commandBuffer, firstViewport, viewportCount, pViewports,
886 true /* do lock */);
887 }
entry_vkCmdSetScissor(VkCommandBuffer commandBuffer,uint32_t firstScissor,uint32_t scissorCount,const VkRect2D * pScissors)888 static void entry_vkCmdSetScissor(VkCommandBuffer commandBuffer, uint32_t firstScissor,
889 uint32_t scissorCount, const VkRect2D* pScissors) {
890 AEMU_SCOPED_TRACE("vkCmdSetScissor");
891 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
892 vkEnc->vkCmdSetScissor(commandBuffer, firstScissor, scissorCount, pScissors,
893 true /* do lock */);
894 }
entry_vkCmdSetLineWidth(VkCommandBuffer commandBuffer,float lineWidth)895 static void entry_vkCmdSetLineWidth(VkCommandBuffer commandBuffer, float lineWidth) {
896 AEMU_SCOPED_TRACE("vkCmdSetLineWidth");
897 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
898 vkEnc->vkCmdSetLineWidth(commandBuffer, lineWidth, true /* do lock */);
899 }
entry_vkCmdSetDepthBias(VkCommandBuffer commandBuffer,float depthBiasConstantFactor,float depthBiasClamp,float depthBiasSlopeFactor)900 static void entry_vkCmdSetDepthBias(VkCommandBuffer commandBuffer, float depthBiasConstantFactor,
901 float depthBiasClamp, float depthBiasSlopeFactor) {
902 AEMU_SCOPED_TRACE("vkCmdSetDepthBias");
903 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
904 vkEnc->vkCmdSetDepthBias(commandBuffer, depthBiasConstantFactor, depthBiasClamp,
905 depthBiasSlopeFactor, true /* do lock */);
906 }
entry_vkCmdSetBlendConstants(VkCommandBuffer commandBuffer,const float blendConstants[4])907 static void entry_vkCmdSetBlendConstants(VkCommandBuffer commandBuffer,
908 const float blendConstants[4]) {
909 AEMU_SCOPED_TRACE("vkCmdSetBlendConstants");
910 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
911 vkEnc->vkCmdSetBlendConstants(commandBuffer, blendConstants, true /* do lock */);
912 }
entry_vkCmdSetDepthBounds(VkCommandBuffer commandBuffer,float minDepthBounds,float maxDepthBounds)913 static void entry_vkCmdSetDepthBounds(VkCommandBuffer commandBuffer, float minDepthBounds,
914 float maxDepthBounds) {
915 AEMU_SCOPED_TRACE("vkCmdSetDepthBounds");
916 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
917 vkEnc->vkCmdSetDepthBounds(commandBuffer, minDepthBounds, maxDepthBounds, true /* do lock */);
918 }
entry_vkCmdSetStencilCompareMask(VkCommandBuffer commandBuffer,VkStencilFaceFlags faceMask,uint32_t compareMask)919 static void entry_vkCmdSetStencilCompareMask(VkCommandBuffer commandBuffer,
920 VkStencilFaceFlags faceMask, uint32_t compareMask) {
921 AEMU_SCOPED_TRACE("vkCmdSetStencilCompareMask");
922 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
923 vkEnc->vkCmdSetStencilCompareMask(commandBuffer, faceMask, compareMask, true /* do lock */);
924 }
entry_vkCmdSetStencilWriteMask(VkCommandBuffer commandBuffer,VkStencilFaceFlags faceMask,uint32_t writeMask)925 static void entry_vkCmdSetStencilWriteMask(VkCommandBuffer commandBuffer,
926 VkStencilFaceFlags faceMask, uint32_t writeMask) {
927 AEMU_SCOPED_TRACE("vkCmdSetStencilWriteMask");
928 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
929 vkEnc->vkCmdSetStencilWriteMask(commandBuffer, faceMask, writeMask, true /* do lock */);
930 }
entry_vkCmdSetStencilReference(VkCommandBuffer commandBuffer,VkStencilFaceFlags faceMask,uint32_t reference)931 static void entry_vkCmdSetStencilReference(VkCommandBuffer commandBuffer,
932 VkStencilFaceFlags faceMask, uint32_t reference) {
933 AEMU_SCOPED_TRACE("vkCmdSetStencilReference");
934 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
935 vkEnc->vkCmdSetStencilReference(commandBuffer, faceMask, reference, true /* do lock */);
936 }
entry_vkCmdBindDescriptorSets(VkCommandBuffer commandBuffer,VkPipelineBindPoint pipelineBindPoint,VkPipelineLayout layout,uint32_t firstSet,uint32_t descriptorSetCount,const VkDescriptorSet * pDescriptorSets,uint32_t dynamicOffsetCount,const uint32_t * pDynamicOffsets)937 static void entry_vkCmdBindDescriptorSets(
938 VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout,
939 uint32_t firstSet, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets,
940 uint32_t dynamicOffsetCount, const uint32_t* pDynamicOffsets) {
941 AEMU_SCOPED_TRACE("vkCmdBindDescriptorSets");
942 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
943 auto resources = ResourceTracker::get();
944 resources->on_vkCmdBindDescriptorSets(vkEnc, commandBuffer, pipelineBindPoint, layout, firstSet,
945 descriptorSetCount, pDescriptorSets, dynamicOffsetCount,
946 pDynamicOffsets);
947 }
entry_vkCmdBindIndexBuffer(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkIndexType indexType)948 static void entry_vkCmdBindIndexBuffer(VkCommandBuffer commandBuffer, VkBuffer buffer,
949 VkDeviceSize offset, VkIndexType indexType) {
950 AEMU_SCOPED_TRACE("vkCmdBindIndexBuffer");
951 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
952 vkEnc->vkCmdBindIndexBuffer(commandBuffer, buffer, offset, indexType, true /* do lock */);
953 }
entry_vkCmdBindVertexBuffers(VkCommandBuffer commandBuffer,uint32_t firstBinding,uint32_t bindingCount,const VkBuffer * pBuffers,const VkDeviceSize * pOffsets)954 static void entry_vkCmdBindVertexBuffers(VkCommandBuffer commandBuffer, uint32_t firstBinding,
955 uint32_t bindingCount, const VkBuffer* pBuffers,
956 const VkDeviceSize* pOffsets) {
957 AEMU_SCOPED_TRACE("vkCmdBindVertexBuffers");
958 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
959 vkEnc->vkCmdBindVertexBuffers(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets,
960 true /* do lock */);
961 }
entry_vkCmdDraw(VkCommandBuffer commandBuffer,uint32_t vertexCount,uint32_t instanceCount,uint32_t firstVertex,uint32_t firstInstance)962 static void entry_vkCmdDraw(VkCommandBuffer commandBuffer, uint32_t vertexCount,
963 uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance) {
964 AEMU_SCOPED_TRACE("vkCmdDraw");
965 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
966 vkEnc->vkCmdDraw(commandBuffer, vertexCount, instanceCount, firstVertex, firstInstance,
967 true /* do lock */);
968 }
entry_vkCmdDrawIndexed(VkCommandBuffer commandBuffer,uint32_t indexCount,uint32_t instanceCount,uint32_t firstIndex,int32_t vertexOffset,uint32_t firstInstance)969 static void entry_vkCmdDrawIndexed(VkCommandBuffer commandBuffer, uint32_t indexCount,
970 uint32_t instanceCount, uint32_t firstIndex,
971 int32_t vertexOffset, uint32_t firstInstance) {
972 AEMU_SCOPED_TRACE("vkCmdDrawIndexed");
973 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
974 vkEnc->vkCmdDrawIndexed(commandBuffer, indexCount, instanceCount, firstIndex, vertexOffset,
975 firstInstance, true /* do lock */);
976 }
entry_vkCmdDrawIndirect(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,uint32_t drawCount,uint32_t stride)977 static void entry_vkCmdDrawIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer,
978 VkDeviceSize offset, uint32_t drawCount, uint32_t stride) {
979 AEMU_SCOPED_TRACE("vkCmdDrawIndirect");
980 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
981 vkEnc->vkCmdDrawIndirect(commandBuffer, buffer, offset, drawCount, stride, true /* do lock */);
982 }
entry_vkCmdDrawIndexedIndirect(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,uint32_t drawCount,uint32_t stride)983 static void entry_vkCmdDrawIndexedIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer,
984 VkDeviceSize offset, uint32_t drawCount,
985 uint32_t stride) {
986 AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirect");
987 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
988 vkEnc->vkCmdDrawIndexedIndirect(commandBuffer, buffer, offset, drawCount, stride,
989 true /* do lock */);
990 }
entry_vkCmdDispatch(VkCommandBuffer commandBuffer,uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ)991 static void entry_vkCmdDispatch(VkCommandBuffer commandBuffer, uint32_t groupCountX,
992 uint32_t groupCountY, uint32_t groupCountZ) {
993 AEMU_SCOPED_TRACE("vkCmdDispatch");
994 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
995 vkEnc->vkCmdDispatch(commandBuffer, groupCountX, groupCountY, groupCountZ, true /* do lock */);
996 }
entry_vkCmdDispatchIndirect(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset)997 static void entry_vkCmdDispatchIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer,
998 VkDeviceSize offset) {
999 AEMU_SCOPED_TRACE("vkCmdDispatchIndirect");
1000 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1001 vkEnc->vkCmdDispatchIndirect(commandBuffer, buffer, offset, true /* do lock */);
1002 }
entry_vkCmdCopyBuffer(VkCommandBuffer commandBuffer,VkBuffer srcBuffer,VkBuffer dstBuffer,uint32_t regionCount,const VkBufferCopy * pRegions)1003 static void entry_vkCmdCopyBuffer(VkCommandBuffer commandBuffer, VkBuffer srcBuffer,
1004 VkBuffer dstBuffer, uint32_t regionCount,
1005 const VkBufferCopy* pRegions) {
1006 AEMU_SCOPED_TRACE("vkCmdCopyBuffer");
1007 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1008 vkEnc->vkCmdCopyBuffer(commandBuffer, srcBuffer, dstBuffer, regionCount, pRegions,
1009 true /* do lock */);
1010 }
entry_vkCmdCopyImage(VkCommandBuffer commandBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkImage dstImage,VkImageLayout dstImageLayout,uint32_t regionCount,const VkImageCopy * pRegions)1011 static void entry_vkCmdCopyImage(VkCommandBuffer commandBuffer, VkImage srcImage,
1012 VkImageLayout srcImageLayout, VkImage dstImage,
1013 VkImageLayout dstImageLayout, uint32_t regionCount,
1014 const VkImageCopy* pRegions) {
1015 AEMU_SCOPED_TRACE("vkCmdCopyImage");
1016 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1017 vkEnc->vkCmdCopyImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout,
1018 regionCount, pRegions, true /* do lock */);
1019 }
entry_vkCmdBlitImage(VkCommandBuffer commandBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkImage dstImage,VkImageLayout dstImageLayout,uint32_t regionCount,const VkImageBlit * pRegions,VkFilter filter)1020 static void entry_vkCmdBlitImage(VkCommandBuffer commandBuffer, VkImage srcImage,
1021 VkImageLayout srcImageLayout, VkImage dstImage,
1022 VkImageLayout dstImageLayout, uint32_t regionCount,
1023 const VkImageBlit* pRegions, VkFilter filter) {
1024 AEMU_SCOPED_TRACE("vkCmdBlitImage");
1025 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1026 vkEnc->vkCmdBlitImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout,
1027 regionCount, pRegions, filter, true /* do lock */);
1028 }
entry_vkCmdCopyBufferToImage(VkCommandBuffer commandBuffer,VkBuffer srcBuffer,VkImage dstImage,VkImageLayout dstImageLayout,uint32_t regionCount,const VkBufferImageCopy * pRegions)1029 static void entry_vkCmdCopyBufferToImage(VkCommandBuffer commandBuffer, VkBuffer srcBuffer,
1030 VkImage dstImage, VkImageLayout dstImageLayout,
1031 uint32_t regionCount, const VkBufferImageCopy* pRegions) {
1032 AEMU_SCOPED_TRACE("vkCmdCopyBufferToImage");
1033 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1034 vkEnc->vkCmdCopyBufferToImage(commandBuffer, srcBuffer, dstImage, dstImageLayout, regionCount,
1035 pRegions, true /* do lock */);
1036 }
entry_vkCmdCopyImageToBuffer(VkCommandBuffer commandBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkBuffer dstBuffer,uint32_t regionCount,const VkBufferImageCopy * pRegions)1037 static void entry_vkCmdCopyImageToBuffer(VkCommandBuffer commandBuffer, VkImage srcImage,
1038 VkImageLayout srcImageLayout, VkBuffer dstBuffer,
1039 uint32_t regionCount, const VkBufferImageCopy* pRegions) {
1040 AEMU_SCOPED_TRACE("vkCmdCopyImageToBuffer");
1041 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1042 vkEnc->vkCmdCopyImageToBuffer(commandBuffer, srcImage, srcImageLayout, dstBuffer, regionCount,
1043 pRegions, true /* do lock */);
1044 }
entry_vkCmdUpdateBuffer(VkCommandBuffer commandBuffer,VkBuffer dstBuffer,VkDeviceSize dstOffset,VkDeviceSize dataSize,const void * pData)1045 static void entry_vkCmdUpdateBuffer(VkCommandBuffer commandBuffer, VkBuffer dstBuffer,
1046 VkDeviceSize dstOffset, VkDeviceSize dataSize,
1047 const void* pData) {
1048 AEMU_SCOPED_TRACE("vkCmdUpdateBuffer");
1049 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1050 vkEnc->vkCmdUpdateBuffer(commandBuffer, dstBuffer, dstOffset, dataSize, pData,
1051 true /* do lock */);
1052 }
entry_vkCmdFillBuffer(VkCommandBuffer commandBuffer,VkBuffer dstBuffer,VkDeviceSize dstOffset,VkDeviceSize size,uint32_t data)1053 static void entry_vkCmdFillBuffer(VkCommandBuffer commandBuffer, VkBuffer dstBuffer,
1054 VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data) {
1055 AEMU_SCOPED_TRACE("vkCmdFillBuffer");
1056 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1057 vkEnc->vkCmdFillBuffer(commandBuffer, dstBuffer, dstOffset, size, data, true /* do lock */);
1058 }
entry_vkCmdClearColorImage(VkCommandBuffer commandBuffer,VkImage image,VkImageLayout imageLayout,const VkClearColorValue * pColor,uint32_t rangeCount,const VkImageSubresourceRange * pRanges)1059 static void entry_vkCmdClearColorImage(VkCommandBuffer commandBuffer, VkImage image,
1060 VkImageLayout imageLayout, const VkClearColorValue* pColor,
1061 uint32_t rangeCount,
1062 const VkImageSubresourceRange* pRanges) {
1063 AEMU_SCOPED_TRACE("vkCmdClearColorImage");
1064 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1065 vkEnc->vkCmdClearColorImage(commandBuffer, image, imageLayout, pColor, rangeCount, pRanges,
1066 true /* do lock */);
1067 }
entry_vkCmdClearDepthStencilImage(VkCommandBuffer commandBuffer,VkImage image,VkImageLayout imageLayout,const VkClearDepthStencilValue * pDepthStencil,uint32_t rangeCount,const VkImageSubresourceRange * pRanges)1068 static void entry_vkCmdClearDepthStencilImage(VkCommandBuffer commandBuffer, VkImage image,
1069 VkImageLayout imageLayout,
1070 const VkClearDepthStencilValue* pDepthStencil,
1071 uint32_t rangeCount,
1072 const VkImageSubresourceRange* pRanges) {
1073 AEMU_SCOPED_TRACE("vkCmdClearDepthStencilImage");
1074 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1075 vkEnc->vkCmdClearDepthStencilImage(commandBuffer, image, imageLayout, pDepthStencil, rangeCount,
1076 pRanges, true /* do lock */);
1077 }
entry_vkCmdClearAttachments(VkCommandBuffer commandBuffer,uint32_t attachmentCount,const VkClearAttachment * pAttachments,uint32_t rectCount,const VkClearRect * pRects)1078 static void entry_vkCmdClearAttachments(VkCommandBuffer commandBuffer, uint32_t attachmentCount,
1079 const VkClearAttachment* pAttachments, uint32_t rectCount,
1080 const VkClearRect* pRects) {
1081 AEMU_SCOPED_TRACE("vkCmdClearAttachments");
1082 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1083 vkEnc->vkCmdClearAttachments(commandBuffer, attachmentCount, pAttachments, rectCount, pRects,
1084 true /* do lock */);
1085 }
entry_vkCmdResolveImage(VkCommandBuffer commandBuffer,VkImage srcImage,VkImageLayout srcImageLayout,VkImage dstImage,VkImageLayout dstImageLayout,uint32_t regionCount,const VkImageResolve * pRegions)1086 static void entry_vkCmdResolveImage(VkCommandBuffer commandBuffer, VkImage srcImage,
1087 VkImageLayout srcImageLayout, VkImage dstImage,
1088 VkImageLayout dstImageLayout, uint32_t regionCount,
1089 const VkImageResolve* pRegions) {
1090 AEMU_SCOPED_TRACE("vkCmdResolveImage");
1091 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1092 vkEnc->vkCmdResolveImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout,
1093 regionCount, pRegions, true /* do lock */);
1094 }
entry_vkCmdSetEvent(VkCommandBuffer commandBuffer,VkEvent event,VkPipelineStageFlags stageMask)1095 static void entry_vkCmdSetEvent(VkCommandBuffer commandBuffer, VkEvent event,
1096 VkPipelineStageFlags stageMask) {
1097 AEMU_SCOPED_TRACE("vkCmdSetEvent");
1098 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1099 vkEnc->vkCmdSetEvent(commandBuffer, event, stageMask, true /* do lock */);
1100 }
entry_vkCmdResetEvent(VkCommandBuffer commandBuffer,VkEvent event,VkPipelineStageFlags stageMask)1101 static void entry_vkCmdResetEvent(VkCommandBuffer commandBuffer, VkEvent event,
1102 VkPipelineStageFlags stageMask) {
1103 AEMU_SCOPED_TRACE("vkCmdResetEvent");
1104 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1105 vkEnc->vkCmdResetEvent(commandBuffer, event, stageMask, true /* do lock */);
1106 }
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)1107 static void entry_vkCmdWaitEvents(VkCommandBuffer commandBuffer, uint32_t eventCount,
1108 const VkEvent* pEvents, VkPipelineStageFlags srcStageMask,
1109 VkPipelineStageFlags dstStageMask, uint32_t memoryBarrierCount,
1110 const VkMemoryBarrier* pMemoryBarriers,
1111 uint32_t bufferMemoryBarrierCount,
1112 const VkBufferMemoryBarrier* pBufferMemoryBarriers,
1113 uint32_t imageMemoryBarrierCount,
1114 const VkImageMemoryBarrier* pImageMemoryBarriers) {
1115 AEMU_SCOPED_TRACE("vkCmdWaitEvents");
1116 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1117 vkEnc->vkCmdWaitEvents(commandBuffer, eventCount, pEvents, srcStageMask, dstStageMask,
1118 memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount,
1119 pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers,
1120 true /* do lock */);
1121 }
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)1122 static void entry_vkCmdPipelineBarrier(
1123 VkCommandBuffer commandBuffer, VkPipelineStageFlags srcStageMask,
1124 VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags,
1125 uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers,
1126 uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers,
1127 uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers) {
1128 AEMU_SCOPED_TRACE("vkCmdPipelineBarrier");
1129 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1130 auto resources = ResourceTracker::get();
1131 resources->on_vkCmdPipelineBarrier(vkEnc, commandBuffer, srcStageMask, dstStageMask,
1132 dependencyFlags, memoryBarrierCount, pMemoryBarriers,
1133 bufferMemoryBarrierCount, pBufferMemoryBarriers,
1134 imageMemoryBarrierCount, pImageMemoryBarriers);
1135 }
entry_vkCmdBeginQuery(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t query,VkQueryControlFlags flags)1136 static void entry_vkCmdBeginQuery(VkCommandBuffer commandBuffer, VkQueryPool queryPool,
1137 uint32_t query, VkQueryControlFlags flags) {
1138 AEMU_SCOPED_TRACE("vkCmdBeginQuery");
1139 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1140 vkEnc->vkCmdBeginQuery(commandBuffer, queryPool, query, flags, true /* do lock */);
1141 }
entry_vkCmdEndQuery(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t query)1142 static void entry_vkCmdEndQuery(VkCommandBuffer commandBuffer, VkQueryPool queryPool,
1143 uint32_t query) {
1144 AEMU_SCOPED_TRACE("vkCmdEndQuery");
1145 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1146 vkEnc->vkCmdEndQuery(commandBuffer, queryPool, query, true /* do lock */);
1147 }
entry_vkCmdResetQueryPool(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount)1148 static void entry_vkCmdResetQueryPool(VkCommandBuffer commandBuffer, VkQueryPool queryPool,
1149 uint32_t firstQuery, uint32_t queryCount) {
1150 AEMU_SCOPED_TRACE("vkCmdResetQueryPool");
1151 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1152 vkEnc->vkCmdResetQueryPool(commandBuffer, queryPool, firstQuery, queryCount,
1153 true /* do lock */);
1154 }
entry_vkCmdWriteTimestamp(VkCommandBuffer commandBuffer,VkPipelineStageFlagBits pipelineStage,VkQueryPool queryPool,uint32_t query)1155 static void entry_vkCmdWriteTimestamp(VkCommandBuffer commandBuffer,
1156 VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool,
1157 uint32_t query) {
1158 AEMU_SCOPED_TRACE("vkCmdWriteTimestamp");
1159 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1160 vkEnc->vkCmdWriteTimestamp(commandBuffer, pipelineStage, queryPool, query, true /* do lock */);
1161 }
entry_vkCmdCopyQueryPoolResults(VkCommandBuffer commandBuffer,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,VkBuffer dstBuffer,VkDeviceSize dstOffset,VkDeviceSize stride,VkQueryResultFlags flags)1162 static void entry_vkCmdCopyQueryPoolResults(VkCommandBuffer commandBuffer, VkQueryPool queryPool,
1163 uint32_t firstQuery, uint32_t queryCount,
1164 VkBuffer dstBuffer, VkDeviceSize dstOffset,
1165 VkDeviceSize stride, VkQueryResultFlags flags) {
1166 AEMU_SCOPED_TRACE("vkCmdCopyQueryPoolResults");
1167 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1168 vkEnc->vkCmdCopyQueryPoolResults(commandBuffer, queryPool, firstQuery, queryCount, dstBuffer,
1169 dstOffset, stride, flags, true /* do lock */);
1170 }
entry_vkCmdPushConstants(VkCommandBuffer commandBuffer,VkPipelineLayout layout,VkShaderStageFlags stageFlags,uint32_t offset,uint32_t size,const void * pValues)1171 static void entry_vkCmdPushConstants(VkCommandBuffer commandBuffer, VkPipelineLayout layout,
1172 VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size,
1173 const void* pValues) {
1174 AEMU_SCOPED_TRACE("vkCmdPushConstants");
1175 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1176 vkEnc->vkCmdPushConstants(commandBuffer, layout, stageFlags, offset, size, pValues,
1177 true /* do lock */);
1178 }
entry_vkCmdBeginRenderPass(VkCommandBuffer commandBuffer,const VkRenderPassBeginInfo * pRenderPassBegin,VkSubpassContents contents)1179 static void entry_vkCmdBeginRenderPass(VkCommandBuffer commandBuffer,
1180 const VkRenderPassBeginInfo* pRenderPassBegin,
1181 VkSubpassContents contents) {
1182 AEMU_SCOPED_TRACE("vkCmdBeginRenderPass");
1183 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1184 vkEnc->vkCmdBeginRenderPass(commandBuffer, pRenderPassBegin, contents, true /* do lock */);
1185 }
entry_vkCmdNextSubpass(VkCommandBuffer commandBuffer,VkSubpassContents contents)1186 static void entry_vkCmdNextSubpass(VkCommandBuffer commandBuffer, VkSubpassContents contents) {
1187 AEMU_SCOPED_TRACE("vkCmdNextSubpass");
1188 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1189 vkEnc->vkCmdNextSubpass(commandBuffer, contents, true /* do lock */);
1190 }
entry_vkCmdEndRenderPass(VkCommandBuffer commandBuffer)1191 static void entry_vkCmdEndRenderPass(VkCommandBuffer commandBuffer) {
1192 AEMU_SCOPED_TRACE("vkCmdEndRenderPass");
1193 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1194 vkEnc->vkCmdEndRenderPass(commandBuffer, true /* do lock */);
1195 }
entry_vkCmdExecuteCommands(VkCommandBuffer commandBuffer,uint32_t commandBufferCount,const VkCommandBuffer * pCommandBuffers)1196 static void entry_vkCmdExecuteCommands(VkCommandBuffer commandBuffer, uint32_t commandBufferCount,
1197 const VkCommandBuffer* pCommandBuffers) {
1198 AEMU_SCOPED_TRACE("vkCmdExecuteCommands");
1199 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1200 auto resources = ResourceTracker::get();
1201 resources->on_vkCmdExecuteCommands(vkEnc, commandBuffer, commandBufferCount, pCommandBuffers);
1202 }
1203 #endif
1204 #ifdef VK_VERSION_1_1
entry_vkEnumerateInstanceVersion(uint32_t * pApiVersion)1205 static VkResult entry_vkEnumerateInstanceVersion(uint32_t* pApiVersion) {
1206 AEMU_SCOPED_TRACE("vkEnumerateInstanceVersion");
1207 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1208 VkResult vkEnumerateInstanceVersion_VkResult_return = (VkResult)0;
1209 vkEnumerateInstanceVersion_VkResult_return =
1210 vkEnc->vkEnumerateInstanceVersion(pApiVersion, true /* do lock */);
1211 return vkEnumerateInstanceVersion_VkResult_return;
1212 }
entry_vkBindBufferMemory2(VkDevice device,uint32_t bindInfoCount,const VkBindBufferMemoryInfo * pBindInfos)1213 static VkResult entry_vkBindBufferMemory2(VkDevice device, uint32_t bindInfoCount,
1214 const VkBindBufferMemoryInfo* pBindInfos) {
1215 AEMU_SCOPED_TRACE("vkBindBufferMemory2");
1216 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1217 VkResult vkBindBufferMemory2_VkResult_return = (VkResult)0;
1218 auto resources = ResourceTracker::get();
1219 vkBindBufferMemory2_VkResult_return =
1220 resources->on_vkBindBufferMemory2(vkEnc, VK_SUCCESS, device, bindInfoCount, pBindInfos);
1221 return vkBindBufferMemory2_VkResult_return;
1222 }
dynCheck_entry_vkBindBufferMemory2(VkDevice device,uint32_t bindInfoCount,const VkBindBufferMemoryInfo * pBindInfos)1223 static VkResult dynCheck_entry_vkBindBufferMemory2(VkDevice device, uint32_t bindInfoCount,
1224 const VkBindBufferMemoryInfo* pBindInfos) {
1225 auto resources = ResourceTracker::get();
1226 if (resources->getApiVersionFromDevice(device) < VK_API_VERSION_1_1) {
1227 sOnInvalidDynamicallyCheckedCall("vkBindBufferMemory2", "VK_VERSION_1_1");
1228 }
1229 AEMU_SCOPED_TRACE("vkBindBufferMemory2");
1230 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1231 VkResult vkBindBufferMemory2_VkResult_return = (VkResult)0;
1232 vkBindBufferMemory2_VkResult_return =
1233 resources->on_vkBindBufferMemory2(vkEnc, VK_SUCCESS, device, bindInfoCount, pBindInfos);
1234 return vkBindBufferMemory2_VkResult_return;
1235 }
entry_vkBindImageMemory2(VkDevice device,uint32_t bindInfoCount,const VkBindImageMemoryInfo * pBindInfos)1236 static VkResult entry_vkBindImageMemory2(VkDevice device, uint32_t bindInfoCount,
1237 const VkBindImageMemoryInfo* pBindInfos) {
1238 AEMU_SCOPED_TRACE("vkBindImageMemory2");
1239 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1240 VkResult vkBindImageMemory2_VkResult_return = (VkResult)0;
1241 auto resources = ResourceTracker::get();
1242 vkBindImageMemory2_VkResult_return =
1243 resources->on_vkBindImageMemory2(vkEnc, VK_SUCCESS, device, bindInfoCount, pBindInfos);
1244 return vkBindImageMemory2_VkResult_return;
1245 }
dynCheck_entry_vkBindImageMemory2(VkDevice device,uint32_t bindInfoCount,const VkBindImageMemoryInfo * pBindInfos)1246 static VkResult dynCheck_entry_vkBindImageMemory2(VkDevice device, uint32_t bindInfoCount,
1247 const VkBindImageMemoryInfo* pBindInfos) {
1248 auto resources = ResourceTracker::get();
1249 if (resources->getApiVersionFromDevice(device) < VK_API_VERSION_1_1) {
1250 sOnInvalidDynamicallyCheckedCall("vkBindImageMemory2", "VK_VERSION_1_1");
1251 }
1252 AEMU_SCOPED_TRACE("vkBindImageMemory2");
1253 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1254 VkResult vkBindImageMemory2_VkResult_return = (VkResult)0;
1255 vkBindImageMemory2_VkResult_return =
1256 resources->on_vkBindImageMemory2(vkEnc, VK_SUCCESS, device, bindInfoCount, pBindInfos);
1257 return vkBindImageMemory2_VkResult_return;
1258 }
entry_vkGetDeviceGroupPeerMemoryFeatures(VkDevice device,uint32_t heapIndex,uint32_t localDeviceIndex,uint32_t remoteDeviceIndex,VkPeerMemoryFeatureFlags * pPeerMemoryFeatures)1259 static void entry_vkGetDeviceGroupPeerMemoryFeatures(
1260 VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex,
1261 VkPeerMemoryFeatureFlags* pPeerMemoryFeatures) {
1262 AEMU_SCOPED_TRACE("vkGetDeviceGroupPeerMemoryFeatures");
1263 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1264 vkEnc->vkGetDeviceGroupPeerMemoryFeatures(device, heapIndex, localDeviceIndex,
1265 remoteDeviceIndex, pPeerMemoryFeatures,
1266 true /* do lock */);
1267 }
dynCheck_entry_vkGetDeviceGroupPeerMemoryFeatures(VkDevice device,uint32_t heapIndex,uint32_t localDeviceIndex,uint32_t remoteDeviceIndex,VkPeerMemoryFeatureFlags * pPeerMemoryFeatures)1268 static void dynCheck_entry_vkGetDeviceGroupPeerMemoryFeatures(
1269 VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex,
1270 VkPeerMemoryFeatureFlags* pPeerMemoryFeatures) {
1271 auto resources = ResourceTracker::get();
1272 if (resources->getApiVersionFromDevice(device) < VK_API_VERSION_1_1) {
1273 sOnInvalidDynamicallyCheckedCall("vkGetDeviceGroupPeerMemoryFeatures", "VK_VERSION_1_1");
1274 }
1275 AEMU_SCOPED_TRACE("vkGetDeviceGroupPeerMemoryFeatures");
1276 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1277 vkEnc->vkGetDeviceGroupPeerMemoryFeatures(device, heapIndex, localDeviceIndex,
1278 remoteDeviceIndex, pPeerMemoryFeatures,
1279 true /* do lock */);
1280 }
entry_vkCmdSetDeviceMask(VkCommandBuffer commandBuffer,uint32_t deviceMask)1281 static void entry_vkCmdSetDeviceMask(VkCommandBuffer commandBuffer, uint32_t deviceMask) {
1282 AEMU_SCOPED_TRACE("vkCmdSetDeviceMask");
1283 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1284 vkEnc->vkCmdSetDeviceMask(commandBuffer, deviceMask, true /* do lock */);
1285 }
entry_vkCmdDispatchBase(VkCommandBuffer commandBuffer,uint32_t baseGroupX,uint32_t baseGroupY,uint32_t baseGroupZ,uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ)1286 static void entry_vkCmdDispatchBase(VkCommandBuffer commandBuffer, uint32_t baseGroupX,
1287 uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX,
1288 uint32_t groupCountY, uint32_t groupCountZ) {
1289 AEMU_SCOPED_TRACE("vkCmdDispatchBase");
1290 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1291 vkEnc->vkCmdDispatchBase(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX,
1292 groupCountY, groupCountZ, true /* do lock */);
1293 }
entry_vkEnumeratePhysicalDeviceGroups(VkInstance instance,uint32_t * pPhysicalDeviceGroupCount,VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties)1294 static VkResult entry_vkEnumeratePhysicalDeviceGroups(
1295 VkInstance instance, uint32_t* pPhysicalDeviceGroupCount,
1296 VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties) {
1297 AEMU_SCOPED_TRACE("vkEnumeratePhysicalDeviceGroups");
1298 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1299 VkResult vkEnumeratePhysicalDeviceGroups_VkResult_return = (VkResult)0;
1300 vkEnumeratePhysicalDeviceGroups_VkResult_return = vkEnc->vkEnumeratePhysicalDeviceGroups(
1301 instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties, true /* do lock */);
1302 return vkEnumeratePhysicalDeviceGroups_VkResult_return;
1303 }
entry_vkGetImageMemoryRequirements2(VkDevice device,const VkImageMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements)1304 static void entry_vkGetImageMemoryRequirements2(VkDevice device,
1305 const VkImageMemoryRequirementsInfo2* pInfo,
1306 VkMemoryRequirements2* pMemoryRequirements) {
1307 AEMU_SCOPED_TRACE("vkGetImageMemoryRequirements2");
1308 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1309 auto resources = ResourceTracker::get();
1310 resources->on_vkGetImageMemoryRequirements2(vkEnc, device, pInfo, pMemoryRequirements);
1311 }
dynCheck_entry_vkGetImageMemoryRequirements2(VkDevice device,const VkImageMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements)1312 static void dynCheck_entry_vkGetImageMemoryRequirements2(
1313 VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo,
1314 VkMemoryRequirements2* pMemoryRequirements) {
1315 auto resources = ResourceTracker::get();
1316 if (resources->getApiVersionFromDevice(device) < VK_API_VERSION_1_1) {
1317 sOnInvalidDynamicallyCheckedCall("vkGetImageMemoryRequirements2", "VK_VERSION_1_1");
1318 }
1319 AEMU_SCOPED_TRACE("vkGetImageMemoryRequirements2");
1320 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1321 resources->on_vkGetImageMemoryRequirements2(vkEnc, device, pInfo, pMemoryRequirements);
1322 }
entry_vkGetBufferMemoryRequirements2(VkDevice device,const VkBufferMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements)1323 static void entry_vkGetBufferMemoryRequirements2(VkDevice device,
1324 const VkBufferMemoryRequirementsInfo2* pInfo,
1325 VkMemoryRequirements2* pMemoryRequirements) {
1326 AEMU_SCOPED_TRACE("vkGetBufferMemoryRequirements2");
1327 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1328 auto resources = ResourceTracker::get();
1329 resources->on_vkGetBufferMemoryRequirements2(vkEnc, device, pInfo, pMemoryRequirements);
1330 }
dynCheck_entry_vkGetBufferMemoryRequirements2(VkDevice device,const VkBufferMemoryRequirementsInfo2 * pInfo,VkMemoryRequirements2 * pMemoryRequirements)1331 static void dynCheck_entry_vkGetBufferMemoryRequirements2(
1332 VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo,
1333 VkMemoryRequirements2* pMemoryRequirements) {
1334 auto resources = ResourceTracker::get();
1335 if (resources->getApiVersionFromDevice(device) < VK_API_VERSION_1_1) {
1336 sOnInvalidDynamicallyCheckedCall("vkGetBufferMemoryRequirements2", "VK_VERSION_1_1");
1337 }
1338 AEMU_SCOPED_TRACE("vkGetBufferMemoryRequirements2");
1339 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1340 resources->on_vkGetBufferMemoryRequirements2(vkEnc, device, pInfo, pMemoryRequirements);
1341 }
entry_vkGetImageSparseMemoryRequirements2(VkDevice device,const VkImageSparseMemoryRequirementsInfo2 * pInfo,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements)1342 static void entry_vkGetImageSparseMemoryRequirements2(
1343 VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo,
1344 uint32_t* pSparseMemoryRequirementCount,
1345 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) {
1346 AEMU_SCOPED_TRACE("vkGetImageSparseMemoryRequirements2");
1347 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1348 vkEnc->vkGetImageSparseMemoryRequirements2(device, pInfo, pSparseMemoryRequirementCount,
1349 pSparseMemoryRequirements, true /* do lock */);
1350 }
dynCheck_entry_vkGetImageSparseMemoryRequirements2(VkDevice device,const VkImageSparseMemoryRequirementsInfo2 * pInfo,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements)1351 static void dynCheck_entry_vkGetImageSparseMemoryRequirements2(
1352 VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo,
1353 uint32_t* pSparseMemoryRequirementCount,
1354 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) {
1355 auto resources = ResourceTracker::get();
1356 if (resources->getApiVersionFromDevice(device) < VK_API_VERSION_1_1) {
1357 sOnInvalidDynamicallyCheckedCall("vkGetImageSparseMemoryRequirements2", "VK_VERSION_1_1");
1358 }
1359 AEMU_SCOPED_TRACE("vkGetImageSparseMemoryRequirements2");
1360 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1361 vkEnc->vkGetImageSparseMemoryRequirements2(device, pInfo, pSparseMemoryRequirementCount,
1362 pSparseMemoryRequirements, true /* do lock */);
1363 }
entry_vkGetPhysicalDeviceFeatures2(VkPhysicalDevice physicalDevice,VkPhysicalDeviceFeatures2 * pFeatures)1364 static void entry_vkGetPhysicalDeviceFeatures2(VkPhysicalDevice physicalDevice,
1365 VkPhysicalDeviceFeatures2* pFeatures) {
1366 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFeatures2");
1367 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1368 vkEnc->vkGetPhysicalDeviceFeatures2(physicalDevice, pFeatures, true /* do lock */);
1369 }
entry_vkGetPhysicalDeviceProperties2(VkPhysicalDevice physicalDevice,VkPhysicalDeviceProperties2 * pProperties)1370 static void entry_vkGetPhysicalDeviceProperties2(VkPhysicalDevice physicalDevice,
1371 VkPhysicalDeviceProperties2* pProperties) {
1372 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceProperties2");
1373 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1374 vkEnc->vkGetPhysicalDeviceProperties2(physicalDevice, pProperties, true /* do lock */);
1375 }
entry_vkGetPhysicalDeviceFormatProperties2(VkPhysicalDevice physicalDevice,VkFormat format,VkFormatProperties2 * pFormatProperties)1376 static void entry_vkGetPhysicalDeviceFormatProperties2(VkPhysicalDevice physicalDevice,
1377 VkFormat format,
1378 VkFormatProperties2* pFormatProperties) {
1379 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFormatProperties2");
1380 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1381 vkEnc->vkGetPhysicalDeviceFormatProperties2(physicalDevice, format, pFormatProperties,
1382 true /* do lock */);
1383 }
entry_vkGetPhysicalDeviceImageFormatProperties2(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo,VkImageFormatProperties2 * pImageFormatProperties)1384 static VkResult entry_vkGetPhysicalDeviceImageFormatProperties2(
1385 VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
1386 VkImageFormatProperties2* pImageFormatProperties) {
1387 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceImageFormatProperties2");
1388 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1389 VkResult vkGetPhysicalDeviceImageFormatProperties2_VkResult_return = (VkResult)0;
1390 auto resources = ResourceTracker::get();
1391 vkGetPhysicalDeviceImageFormatProperties2_VkResult_return =
1392 resources->on_vkGetPhysicalDeviceImageFormatProperties2(
1393 vkEnc, VK_SUCCESS, physicalDevice, pImageFormatInfo, pImageFormatProperties);
1394 return vkGetPhysicalDeviceImageFormatProperties2_VkResult_return;
1395 }
entry_vkGetPhysicalDeviceQueueFamilyProperties2(VkPhysicalDevice physicalDevice,uint32_t * pQueueFamilyPropertyCount,VkQueueFamilyProperties2 * pQueueFamilyProperties)1396 static void entry_vkGetPhysicalDeviceQueueFamilyProperties2(
1397 VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount,
1398 VkQueueFamilyProperties2* pQueueFamilyProperties) {
1399 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceQueueFamilyProperties2");
1400 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1401 vkEnc->vkGetPhysicalDeviceQueueFamilyProperties2(physicalDevice, pQueueFamilyPropertyCount,
1402 pQueueFamilyProperties, true /* do lock */);
1403 }
entry_vkGetPhysicalDeviceMemoryProperties2(VkPhysicalDevice physicalDevice,VkPhysicalDeviceMemoryProperties2 * pMemoryProperties)1404 static void entry_vkGetPhysicalDeviceMemoryProperties2(
1405 VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties) {
1406 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMemoryProperties2");
1407 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1408 vkEnc->vkGetPhysicalDeviceMemoryProperties2(physicalDevice, pMemoryProperties,
1409 true /* do lock */);
1410 }
entry_vkGetPhysicalDeviceSparseImageFormatProperties2(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo,uint32_t * pPropertyCount,VkSparseImageFormatProperties2 * pProperties)1411 static void entry_vkGetPhysicalDeviceSparseImageFormatProperties2(
1412 VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
1413 uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties) {
1414 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSparseImageFormatProperties2");
1415 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1416 vkEnc->vkGetPhysicalDeviceSparseImageFormatProperties2(
1417 physicalDevice, pFormatInfo, pPropertyCount, pProperties, true /* do lock */);
1418 }
entry_vkTrimCommandPool(VkDevice device,VkCommandPool commandPool,VkCommandPoolTrimFlags flags)1419 static void entry_vkTrimCommandPool(VkDevice device, VkCommandPool commandPool,
1420 VkCommandPoolTrimFlags flags) {
1421 AEMU_SCOPED_TRACE("vkTrimCommandPool");
1422 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1423 vkEnc->vkTrimCommandPool(device, commandPool, flags, true /* do lock */);
1424 }
dynCheck_entry_vkTrimCommandPool(VkDevice device,VkCommandPool commandPool,VkCommandPoolTrimFlags flags)1425 static void dynCheck_entry_vkTrimCommandPool(VkDevice device, VkCommandPool commandPool,
1426 VkCommandPoolTrimFlags flags) {
1427 auto resources = ResourceTracker::get();
1428 if (resources->getApiVersionFromDevice(device) < VK_API_VERSION_1_1) {
1429 sOnInvalidDynamicallyCheckedCall("vkTrimCommandPool", "VK_VERSION_1_1");
1430 }
1431 AEMU_SCOPED_TRACE("vkTrimCommandPool");
1432 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1433 vkEnc->vkTrimCommandPool(device, commandPool, flags, true /* do lock */);
1434 }
entry_vkGetDeviceQueue2(VkDevice device,const VkDeviceQueueInfo2 * pQueueInfo,VkQueue * pQueue)1435 static void entry_vkGetDeviceQueue2(VkDevice device, const VkDeviceQueueInfo2* pQueueInfo,
1436 VkQueue* pQueue) {
1437 AEMU_SCOPED_TRACE("vkGetDeviceQueue2");
1438 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1439 vkEnc->vkGetDeviceQueue2(device, pQueueInfo, pQueue, true /* do lock */);
1440 }
dynCheck_entry_vkGetDeviceQueue2(VkDevice device,const VkDeviceQueueInfo2 * pQueueInfo,VkQueue * pQueue)1441 static void dynCheck_entry_vkGetDeviceQueue2(VkDevice device, const VkDeviceQueueInfo2* pQueueInfo,
1442 VkQueue* pQueue) {
1443 auto resources = ResourceTracker::get();
1444 if (resources->getApiVersionFromDevice(device) < VK_API_VERSION_1_1) {
1445 sOnInvalidDynamicallyCheckedCall("vkGetDeviceQueue2", "VK_VERSION_1_1");
1446 }
1447 AEMU_SCOPED_TRACE("vkGetDeviceQueue2");
1448 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1449 vkEnc->vkGetDeviceQueue2(device, pQueueInfo, pQueue, true /* do lock */);
1450 }
entry_vkCreateSamplerYcbcrConversion(VkDevice device,const VkSamplerYcbcrConversionCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSamplerYcbcrConversion * pYcbcrConversion)1451 static VkResult entry_vkCreateSamplerYcbcrConversion(
1452 VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
1453 const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion) {
1454 AEMU_SCOPED_TRACE("vkCreateSamplerYcbcrConversion");
1455 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1456 VkResult vkCreateSamplerYcbcrConversion_VkResult_return = (VkResult)0;
1457 auto resources = ResourceTracker::get();
1458 vkCreateSamplerYcbcrConversion_VkResult_return = resources->on_vkCreateSamplerYcbcrConversion(
1459 vkEnc, VK_SUCCESS, device, pCreateInfo, pAllocator, pYcbcrConversion);
1460 return vkCreateSamplerYcbcrConversion_VkResult_return;
1461 }
dynCheck_entry_vkCreateSamplerYcbcrConversion(VkDevice device,const VkSamplerYcbcrConversionCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSamplerYcbcrConversion * pYcbcrConversion)1462 static VkResult dynCheck_entry_vkCreateSamplerYcbcrConversion(
1463 VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
1464 const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion) {
1465 auto resources = ResourceTracker::get();
1466 if (resources->getApiVersionFromDevice(device) < VK_API_VERSION_1_1) {
1467 sOnInvalidDynamicallyCheckedCall("vkCreateSamplerYcbcrConversion", "VK_VERSION_1_1");
1468 }
1469 AEMU_SCOPED_TRACE("vkCreateSamplerYcbcrConversion");
1470 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1471 VkResult vkCreateSamplerYcbcrConversion_VkResult_return = (VkResult)0;
1472 vkCreateSamplerYcbcrConversion_VkResult_return = resources->on_vkCreateSamplerYcbcrConversion(
1473 vkEnc, VK_SUCCESS, device, pCreateInfo, pAllocator, pYcbcrConversion);
1474 return vkCreateSamplerYcbcrConversion_VkResult_return;
1475 }
entry_vkDestroySamplerYcbcrConversion(VkDevice device,VkSamplerYcbcrConversion ycbcrConversion,const VkAllocationCallbacks * pAllocator)1476 static void entry_vkDestroySamplerYcbcrConversion(VkDevice device,
1477 VkSamplerYcbcrConversion ycbcrConversion,
1478 const VkAllocationCallbacks* pAllocator) {
1479 AEMU_SCOPED_TRACE("vkDestroySamplerYcbcrConversion");
1480 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1481 auto resources = ResourceTracker::get();
1482 resources->on_vkDestroySamplerYcbcrConversion(vkEnc, device, ycbcrConversion, pAllocator);
1483 }
dynCheck_entry_vkDestroySamplerYcbcrConversion(VkDevice device,VkSamplerYcbcrConversion ycbcrConversion,const VkAllocationCallbacks * pAllocator)1484 static void dynCheck_entry_vkDestroySamplerYcbcrConversion(
1485 VkDevice device, VkSamplerYcbcrConversion ycbcrConversion,
1486 const VkAllocationCallbacks* pAllocator) {
1487 auto resources = ResourceTracker::get();
1488 if (resources->getApiVersionFromDevice(device) < VK_API_VERSION_1_1) {
1489 sOnInvalidDynamicallyCheckedCall("vkDestroySamplerYcbcrConversion", "VK_VERSION_1_1");
1490 }
1491 AEMU_SCOPED_TRACE("vkDestroySamplerYcbcrConversion");
1492 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1493 resources->on_vkDestroySamplerYcbcrConversion(vkEnc, device, ycbcrConversion, pAllocator);
1494 }
entry_vkCreateDescriptorUpdateTemplate(VkDevice device,const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate)1495 static VkResult entry_vkCreateDescriptorUpdateTemplate(
1496 VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
1497 const VkAllocationCallbacks* pAllocator,
1498 VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate) {
1499 AEMU_SCOPED_TRACE("vkCreateDescriptorUpdateTemplate");
1500 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1501 VkResult vkCreateDescriptorUpdateTemplate_VkResult_return = (VkResult)0;
1502 vkCreateDescriptorUpdateTemplate_VkResult_return = vkEnc->vkCreateDescriptorUpdateTemplate(
1503 device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate, true /* do lock */);
1504 return vkCreateDescriptorUpdateTemplate_VkResult_return;
1505 }
dynCheck_entry_vkCreateDescriptorUpdateTemplate(VkDevice device,const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate)1506 static VkResult dynCheck_entry_vkCreateDescriptorUpdateTemplate(
1507 VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
1508 const VkAllocationCallbacks* pAllocator,
1509 VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate) {
1510 auto resources = ResourceTracker::get();
1511 if (resources->getApiVersionFromDevice(device) < VK_API_VERSION_1_1) {
1512 sOnInvalidDynamicallyCheckedCall("vkCreateDescriptorUpdateTemplate", "VK_VERSION_1_1");
1513 }
1514 AEMU_SCOPED_TRACE("vkCreateDescriptorUpdateTemplate");
1515 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1516 VkResult vkCreateDescriptorUpdateTemplate_VkResult_return = (VkResult)0;
1517 vkCreateDescriptorUpdateTemplate_VkResult_return = vkEnc->vkCreateDescriptorUpdateTemplate(
1518 device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate, true /* do lock */);
1519 return vkCreateDescriptorUpdateTemplate_VkResult_return;
1520 }
entry_vkDestroyDescriptorUpdateTemplate(VkDevice device,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const VkAllocationCallbacks * pAllocator)1521 static void entry_vkDestroyDescriptorUpdateTemplate(
1522 VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate,
1523 const VkAllocationCallbacks* pAllocator) {
1524 AEMU_SCOPED_TRACE("vkDestroyDescriptorUpdateTemplate");
1525 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1526 vkEnc->vkDestroyDescriptorUpdateTemplate(device, descriptorUpdateTemplate, pAllocator,
1527 true /* do lock */);
1528 }
dynCheck_entry_vkDestroyDescriptorUpdateTemplate(VkDevice device,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const VkAllocationCallbacks * pAllocator)1529 static void dynCheck_entry_vkDestroyDescriptorUpdateTemplate(
1530 VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate,
1531 const VkAllocationCallbacks* pAllocator) {
1532 auto resources = ResourceTracker::get();
1533 if (resources->getApiVersionFromDevice(device) < VK_API_VERSION_1_1) {
1534 sOnInvalidDynamicallyCheckedCall("vkDestroyDescriptorUpdateTemplate", "VK_VERSION_1_1");
1535 }
1536 AEMU_SCOPED_TRACE("vkDestroyDescriptorUpdateTemplate");
1537 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1538 vkEnc->vkDestroyDescriptorUpdateTemplate(device, descriptorUpdateTemplate, pAllocator,
1539 true /* do lock */);
1540 }
entry_vkUpdateDescriptorSetWithTemplate(VkDevice device,VkDescriptorSet descriptorSet,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const void * pData)1541 static void entry_vkUpdateDescriptorSetWithTemplate(
1542 VkDevice device, VkDescriptorSet descriptorSet,
1543 VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData) {
1544 AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplate");
1545 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1546 auto resources = ResourceTracker::get();
1547 resources->on_vkUpdateDescriptorSetWithTemplate(vkEnc, device, descriptorSet,
1548 descriptorUpdateTemplate, pData);
1549 }
dynCheck_entry_vkUpdateDescriptorSetWithTemplate(VkDevice device,VkDescriptorSet descriptorSet,VkDescriptorUpdateTemplate descriptorUpdateTemplate,const void * pData)1550 static void dynCheck_entry_vkUpdateDescriptorSetWithTemplate(
1551 VkDevice device, VkDescriptorSet descriptorSet,
1552 VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData) {
1553 auto resources = ResourceTracker::get();
1554 if (resources->getApiVersionFromDevice(device) < VK_API_VERSION_1_1) {
1555 sOnInvalidDynamicallyCheckedCall("vkUpdateDescriptorSetWithTemplate", "VK_VERSION_1_1");
1556 }
1557 AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplate");
1558 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1559 resources->on_vkUpdateDescriptorSetWithTemplate(vkEnc, device, descriptorSet,
1560 descriptorUpdateTemplate, pData);
1561 }
entry_vkGetPhysicalDeviceExternalBufferProperties(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo,VkExternalBufferProperties * pExternalBufferProperties)1562 static void entry_vkGetPhysicalDeviceExternalBufferProperties(
1563 VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
1564 VkExternalBufferProperties* pExternalBufferProperties) {
1565 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalBufferProperties");
1566 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1567 auto resources = ResourceTracker::get();
1568 resources->on_vkGetPhysicalDeviceExternalBufferProperties(
1569 vkEnc, physicalDevice, pExternalBufferInfo, pExternalBufferProperties);
1570 }
entry_vkGetPhysicalDeviceExternalFenceProperties(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo,VkExternalFenceProperties * pExternalFenceProperties)1571 static void entry_vkGetPhysicalDeviceExternalFenceProperties(
1572 VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
1573 VkExternalFenceProperties* pExternalFenceProperties) {
1574 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalFenceProperties");
1575 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1576 auto resources = ResourceTracker::get();
1577 resources->on_vkGetPhysicalDeviceExternalFenceProperties(
1578 vkEnc, physicalDevice, pExternalFenceInfo, pExternalFenceProperties);
1579 }
entry_vkGetPhysicalDeviceExternalSemaphoreProperties(VkPhysicalDevice physicalDevice,const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo,VkExternalSemaphoreProperties * pExternalSemaphoreProperties)1580 static void entry_vkGetPhysicalDeviceExternalSemaphoreProperties(
1581 VkPhysicalDevice physicalDevice,
1582 const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
1583 VkExternalSemaphoreProperties* pExternalSemaphoreProperties) {
1584 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalSemaphoreProperties");
1585 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1586 vkEnc->vkGetPhysicalDeviceExternalSemaphoreProperties(
1587 physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties, true /* do lock */);
1588 }
entry_vkGetDescriptorSetLayoutSupport(VkDevice device,const VkDescriptorSetLayoutCreateInfo * pCreateInfo,VkDescriptorSetLayoutSupport * pSupport)1589 static void entry_vkGetDescriptorSetLayoutSupport(
1590 VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
1591 VkDescriptorSetLayoutSupport* pSupport) {
1592 AEMU_SCOPED_TRACE("vkGetDescriptorSetLayoutSupport");
1593 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1594 vkEnc->vkGetDescriptorSetLayoutSupport(device, pCreateInfo, pSupport, true /* do lock */);
1595 }
dynCheck_entry_vkGetDescriptorSetLayoutSupport(VkDevice device,const VkDescriptorSetLayoutCreateInfo * pCreateInfo,VkDescriptorSetLayoutSupport * pSupport)1596 static void dynCheck_entry_vkGetDescriptorSetLayoutSupport(
1597 VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
1598 VkDescriptorSetLayoutSupport* pSupport) {
1599 auto resources = ResourceTracker::get();
1600 if (resources->getApiVersionFromDevice(device) < VK_API_VERSION_1_1) {
1601 sOnInvalidDynamicallyCheckedCall("vkGetDescriptorSetLayoutSupport", "VK_VERSION_1_1");
1602 }
1603 AEMU_SCOPED_TRACE("vkGetDescriptorSetLayoutSupport");
1604 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1605 vkEnc->vkGetDescriptorSetLayoutSupport(device, pCreateInfo, pSupport, true /* do lock */);
1606 }
1607 #endif
1608 #ifdef VK_VERSION_1_2
entry_vkCmdDrawIndirectCount(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride)1609 static void entry_vkCmdDrawIndirectCount(VkCommandBuffer commandBuffer, VkBuffer buffer,
1610 VkDeviceSize offset, VkBuffer countBuffer,
1611 VkDeviceSize countBufferOffset, uint32_t maxDrawCount,
1612 uint32_t stride) {
1613 AEMU_SCOPED_TRACE("vkCmdDrawIndirectCount");
1614 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1615 vkEnc->vkCmdDrawIndirectCount(commandBuffer, buffer, offset, countBuffer, countBufferOffset,
1616 maxDrawCount, stride, true /* do lock */);
1617 }
entry_vkCmdDrawIndexedIndirectCount(VkCommandBuffer commandBuffer,VkBuffer buffer,VkDeviceSize offset,VkBuffer countBuffer,VkDeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride)1618 static void entry_vkCmdDrawIndexedIndirectCount(VkCommandBuffer commandBuffer, VkBuffer buffer,
1619 VkDeviceSize offset, VkBuffer countBuffer,
1620 VkDeviceSize countBufferOffset,
1621 uint32_t maxDrawCount, uint32_t stride) {
1622 AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirectCount");
1623 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1624 vkEnc->vkCmdDrawIndexedIndirectCount(commandBuffer, buffer, offset, countBuffer,
1625 countBufferOffset, maxDrawCount, stride,
1626 true /* do lock */);
1627 }
entry_vkCreateRenderPass2(VkDevice device,const VkRenderPassCreateInfo2 * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkRenderPass * pRenderPass)1628 static VkResult entry_vkCreateRenderPass2(VkDevice device,
1629 const VkRenderPassCreateInfo2* pCreateInfo,
1630 const VkAllocationCallbacks* pAllocator,
1631 VkRenderPass* pRenderPass) {
1632 AEMU_SCOPED_TRACE("vkCreateRenderPass2");
1633 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1634 VkResult vkCreateRenderPass2_VkResult_return = (VkResult)0;
1635 vkCreateRenderPass2_VkResult_return = vkEnc->vkCreateRenderPass2(
1636 device, pCreateInfo, pAllocator, pRenderPass, true /* do lock */);
1637 return vkCreateRenderPass2_VkResult_return;
1638 }
dynCheck_entry_vkCreateRenderPass2(VkDevice device,const VkRenderPassCreateInfo2 * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkRenderPass * pRenderPass)1639 static VkResult dynCheck_entry_vkCreateRenderPass2(VkDevice device,
1640 const VkRenderPassCreateInfo2* pCreateInfo,
1641 const VkAllocationCallbacks* pAllocator,
1642 VkRenderPass* pRenderPass) {
1643 auto resources = ResourceTracker::get();
1644 if (resources->getApiVersionFromDevice(device) < VK_API_VERSION_1_2) {
1645 sOnInvalidDynamicallyCheckedCall("vkCreateRenderPass2", "VK_VERSION_1_2");
1646 }
1647 AEMU_SCOPED_TRACE("vkCreateRenderPass2");
1648 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1649 VkResult vkCreateRenderPass2_VkResult_return = (VkResult)0;
1650 vkCreateRenderPass2_VkResult_return = vkEnc->vkCreateRenderPass2(
1651 device, pCreateInfo, pAllocator, pRenderPass, true /* do lock */);
1652 return vkCreateRenderPass2_VkResult_return;
1653 }
entry_vkCmdBeginRenderPass2(VkCommandBuffer commandBuffer,const VkRenderPassBeginInfo * pRenderPassBegin,const VkSubpassBeginInfo * pSubpassBeginInfo)1654 static void entry_vkCmdBeginRenderPass2(VkCommandBuffer commandBuffer,
1655 const VkRenderPassBeginInfo* pRenderPassBegin,
1656 const VkSubpassBeginInfo* pSubpassBeginInfo) {
1657 AEMU_SCOPED_TRACE("vkCmdBeginRenderPass2");
1658 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1659 vkEnc->vkCmdBeginRenderPass2(commandBuffer, pRenderPassBegin, pSubpassBeginInfo,
1660 true /* do lock */);
1661 }
entry_vkCmdNextSubpass2(VkCommandBuffer commandBuffer,const VkSubpassBeginInfo * pSubpassBeginInfo,const VkSubpassEndInfo * pSubpassEndInfo)1662 static void entry_vkCmdNextSubpass2(VkCommandBuffer commandBuffer,
1663 const VkSubpassBeginInfo* pSubpassBeginInfo,
1664 const VkSubpassEndInfo* pSubpassEndInfo) {
1665 AEMU_SCOPED_TRACE("vkCmdNextSubpass2");
1666 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1667 vkEnc->vkCmdNextSubpass2(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo, true /* do lock */);
1668 }
entry_vkCmdEndRenderPass2(VkCommandBuffer commandBuffer,const VkSubpassEndInfo * pSubpassEndInfo)1669 static void entry_vkCmdEndRenderPass2(VkCommandBuffer commandBuffer,
1670 const VkSubpassEndInfo* pSubpassEndInfo) {
1671 AEMU_SCOPED_TRACE("vkCmdEndRenderPass2");
1672 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1673 vkEnc->vkCmdEndRenderPass2(commandBuffer, pSubpassEndInfo, true /* do lock */);
1674 }
entry_vkResetQueryPool(VkDevice device,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount)1675 static void entry_vkResetQueryPool(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery,
1676 uint32_t queryCount) {
1677 AEMU_SCOPED_TRACE("vkResetQueryPool");
1678 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1679 vkEnc->vkResetQueryPool(device, queryPool, firstQuery, queryCount, true /* do lock */);
1680 }
dynCheck_entry_vkResetQueryPool(VkDevice device,VkQueryPool queryPool,uint32_t firstQuery,uint32_t queryCount)1681 static void dynCheck_entry_vkResetQueryPool(VkDevice device, VkQueryPool queryPool,
1682 uint32_t firstQuery, uint32_t queryCount) {
1683 auto resources = ResourceTracker::get();
1684 if (resources->getApiVersionFromDevice(device) < VK_API_VERSION_1_2) {
1685 sOnInvalidDynamicallyCheckedCall("vkResetQueryPool", "VK_VERSION_1_2");
1686 }
1687 AEMU_SCOPED_TRACE("vkResetQueryPool");
1688 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1689 vkEnc->vkResetQueryPool(device, queryPool, firstQuery, queryCount, true /* do lock */);
1690 }
entry_vkGetSemaphoreCounterValue(VkDevice device,VkSemaphore semaphore,uint64_t * pValue)1691 static VkResult entry_vkGetSemaphoreCounterValue(VkDevice device, VkSemaphore semaphore,
1692 uint64_t* pValue) {
1693 AEMU_SCOPED_TRACE("vkGetSemaphoreCounterValue");
1694 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1695 VkResult vkGetSemaphoreCounterValue_VkResult_return = (VkResult)0;
1696 vkGetSemaphoreCounterValue_VkResult_return =
1697 vkEnc->vkGetSemaphoreCounterValue(device, semaphore, pValue, true /* do lock */);
1698 return vkGetSemaphoreCounterValue_VkResult_return;
1699 }
dynCheck_entry_vkGetSemaphoreCounterValue(VkDevice device,VkSemaphore semaphore,uint64_t * pValue)1700 static VkResult dynCheck_entry_vkGetSemaphoreCounterValue(VkDevice device, VkSemaphore semaphore,
1701 uint64_t* pValue) {
1702 auto resources = ResourceTracker::get();
1703 if (resources->getApiVersionFromDevice(device) < VK_API_VERSION_1_2) {
1704 sOnInvalidDynamicallyCheckedCall("vkGetSemaphoreCounterValue", "VK_VERSION_1_2");
1705 }
1706 AEMU_SCOPED_TRACE("vkGetSemaphoreCounterValue");
1707 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1708 VkResult vkGetSemaphoreCounterValue_VkResult_return = (VkResult)0;
1709 vkGetSemaphoreCounterValue_VkResult_return =
1710 vkEnc->vkGetSemaphoreCounterValue(device, semaphore, pValue, true /* do lock */);
1711 return vkGetSemaphoreCounterValue_VkResult_return;
1712 }
entry_vkWaitSemaphores(VkDevice device,const VkSemaphoreWaitInfo * pWaitInfo,uint64_t timeout)1713 static VkResult entry_vkWaitSemaphores(VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo,
1714 uint64_t timeout) {
1715 AEMU_SCOPED_TRACE("vkWaitSemaphores");
1716 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1717 VkResult vkWaitSemaphores_VkResult_return = (VkResult)0;
1718 vkWaitSemaphores_VkResult_return =
1719 vkEnc->vkWaitSemaphores(device, pWaitInfo, timeout, true /* do lock */);
1720 return vkWaitSemaphores_VkResult_return;
1721 }
dynCheck_entry_vkWaitSemaphores(VkDevice device,const VkSemaphoreWaitInfo * pWaitInfo,uint64_t timeout)1722 static VkResult dynCheck_entry_vkWaitSemaphores(VkDevice device,
1723 const VkSemaphoreWaitInfo* pWaitInfo,
1724 uint64_t timeout) {
1725 auto resources = ResourceTracker::get();
1726 if (resources->getApiVersionFromDevice(device) < VK_API_VERSION_1_2) {
1727 sOnInvalidDynamicallyCheckedCall("vkWaitSemaphores", "VK_VERSION_1_2");
1728 }
1729 AEMU_SCOPED_TRACE("vkWaitSemaphores");
1730 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1731 VkResult vkWaitSemaphores_VkResult_return = (VkResult)0;
1732 vkWaitSemaphores_VkResult_return =
1733 vkEnc->vkWaitSemaphores(device, pWaitInfo, timeout, true /* do lock */);
1734 return vkWaitSemaphores_VkResult_return;
1735 }
entry_vkSignalSemaphore(VkDevice device,const VkSemaphoreSignalInfo * pSignalInfo)1736 static VkResult entry_vkSignalSemaphore(VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo) {
1737 AEMU_SCOPED_TRACE("vkSignalSemaphore");
1738 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1739 VkResult vkSignalSemaphore_VkResult_return = (VkResult)0;
1740 vkSignalSemaphore_VkResult_return =
1741 vkEnc->vkSignalSemaphore(device, pSignalInfo, true /* do lock */);
1742 return vkSignalSemaphore_VkResult_return;
1743 }
dynCheck_entry_vkSignalSemaphore(VkDevice device,const VkSemaphoreSignalInfo * pSignalInfo)1744 static VkResult dynCheck_entry_vkSignalSemaphore(VkDevice device,
1745 const VkSemaphoreSignalInfo* pSignalInfo) {
1746 auto resources = ResourceTracker::get();
1747 if (resources->getApiVersionFromDevice(device) < VK_API_VERSION_1_2) {
1748 sOnInvalidDynamicallyCheckedCall("vkSignalSemaphore", "VK_VERSION_1_2");
1749 }
1750 AEMU_SCOPED_TRACE("vkSignalSemaphore");
1751 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1752 VkResult vkSignalSemaphore_VkResult_return = (VkResult)0;
1753 vkSignalSemaphore_VkResult_return =
1754 vkEnc->vkSignalSemaphore(device, pSignalInfo, true /* do lock */);
1755 return vkSignalSemaphore_VkResult_return;
1756 }
entry_vkGetBufferDeviceAddress(VkDevice device,const VkBufferDeviceAddressInfo * pInfo)1757 static VkDeviceAddress entry_vkGetBufferDeviceAddress(VkDevice device,
1758 const VkBufferDeviceAddressInfo* pInfo) {
1759 AEMU_SCOPED_TRACE("vkGetBufferDeviceAddress");
1760 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1761 VkDeviceAddress vkGetBufferDeviceAddress_VkDeviceAddress_return = (VkDeviceAddress)0;
1762 vkGetBufferDeviceAddress_VkDeviceAddress_return =
1763 vkEnc->vkGetBufferDeviceAddress(device, pInfo, true /* do lock */);
1764 return vkGetBufferDeviceAddress_VkDeviceAddress_return;
1765 }
dynCheck_entry_vkGetBufferDeviceAddress(VkDevice device,const VkBufferDeviceAddressInfo * pInfo)1766 static VkDeviceAddress dynCheck_entry_vkGetBufferDeviceAddress(
1767 VkDevice device, const VkBufferDeviceAddressInfo* pInfo) {
1768 auto resources = ResourceTracker::get();
1769 if (resources->getApiVersionFromDevice(device) < VK_API_VERSION_1_2) {
1770 sOnInvalidDynamicallyCheckedCall("vkGetBufferDeviceAddress", "VK_VERSION_1_2");
1771 }
1772 AEMU_SCOPED_TRACE("vkGetBufferDeviceAddress");
1773 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1774 VkDeviceAddress vkGetBufferDeviceAddress_VkDeviceAddress_return = (VkDeviceAddress)0;
1775 vkGetBufferDeviceAddress_VkDeviceAddress_return =
1776 vkEnc->vkGetBufferDeviceAddress(device, pInfo, true /* do lock */);
1777 return vkGetBufferDeviceAddress_VkDeviceAddress_return;
1778 }
entry_vkGetBufferOpaqueCaptureAddress(VkDevice device,const VkBufferDeviceAddressInfo * pInfo)1779 static uint64_t entry_vkGetBufferOpaqueCaptureAddress(VkDevice device,
1780 const VkBufferDeviceAddressInfo* pInfo) {
1781 AEMU_SCOPED_TRACE("vkGetBufferOpaqueCaptureAddress");
1782 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1783 uint64_t vkGetBufferOpaqueCaptureAddress_uint64_t_return = (uint64_t)0;
1784 vkGetBufferOpaqueCaptureAddress_uint64_t_return =
1785 vkEnc->vkGetBufferOpaqueCaptureAddress(device, pInfo, true /* do lock */);
1786 return vkGetBufferOpaqueCaptureAddress_uint64_t_return;
1787 }
dynCheck_entry_vkGetBufferOpaqueCaptureAddress(VkDevice device,const VkBufferDeviceAddressInfo * pInfo)1788 static uint64_t dynCheck_entry_vkGetBufferOpaqueCaptureAddress(
1789 VkDevice device, const VkBufferDeviceAddressInfo* pInfo) {
1790 auto resources = ResourceTracker::get();
1791 if (resources->getApiVersionFromDevice(device) < VK_API_VERSION_1_2) {
1792 sOnInvalidDynamicallyCheckedCall("vkGetBufferOpaqueCaptureAddress", "VK_VERSION_1_2");
1793 }
1794 AEMU_SCOPED_TRACE("vkGetBufferOpaqueCaptureAddress");
1795 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1796 uint64_t vkGetBufferOpaqueCaptureAddress_uint64_t_return = (uint64_t)0;
1797 vkGetBufferOpaqueCaptureAddress_uint64_t_return =
1798 vkEnc->vkGetBufferOpaqueCaptureAddress(device, pInfo, true /* do lock */);
1799 return vkGetBufferOpaqueCaptureAddress_uint64_t_return;
1800 }
entry_vkGetDeviceMemoryOpaqueCaptureAddress(VkDevice device,const VkDeviceMemoryOpaqueCaptureAddressInfo * pInfo)1801 static uint64_t entry_vkGetDeviceMemoryOpaqueCaptureAddress(
1802 VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo) {
1803 AEMU_SCOPED_TRACE("vkGetDeviceMemoryOpaqueCaptureAddress");
1804 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1805 uint64_t vkGetDeviceMemoryOpaqueCaptureAddress_uint64_t_return = (uint64_t)0;
1806 vkGetDeviceMemoryOpaqueCaptureAddress_uint64_t_return =
1807 vkEnc->vkGetDeviceMemoryOpaqueCaptureAddress(device, pInfo, true /* do lock */);
1808 return vkGetDeviceMemoryOpaqueCaptureAddress_uint64_t_return;
1809 }
dynCheck_entry_vkGetDeviceMemoryOpaqueCaptureAddress(VkDevice device,const VkDeviceMemoryOpaqueCaptureAddressInfo * pInfo)1810 static uint64_t dynCheck_entry_vkGetDeviceMemoryOpaqueCaptureAddress(
1811 VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo) {
1812 auto resources = ResourceTracker::get();
1813 if (resources->getApiVersionFromDevice(device) < VK_API_VERSION_1_2) {
1814 sOnInvalidDynamicallyCheckedCall("vkGetDeviceMemoryOpaqueCaptureAddress", "VK_VERSION_1_2");
1815 }
1816 AEMU_SCOPED_TRACE("vkGetDeviceMemoryOpaqueCaptureAddress");
1817 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1818 uint64_t vkGetDeviceMemoryOpaqueCaptureAddress_uint64_t_return = (uint64_t)0;
1819 vkGetDeviceMemoryOpaqueCaptureAddress_uint64_t_return =
1820 vkEnc->vkGetDeviceMemoryOpaqueCaptureAddress(device, pInfo, true /* do lock */);
1821 return vkGetDeviceMemoryOpaqueCaptureAddress_uint64_t_return;
1822 }
1823 #endif
1824 #ifdef VK_VERSION_1_3
entry_vkGetPhysicalDeviceToolProperties(VkPhysicalDevice physicalDevice,uint32_t * pToolCount,VkPhysicalDeviceToolProperties * pToolProperties)1825 static VkResult entry_vkGetPhysicalDeviceToolProperties(
1826 VkPhysicalDevice physicalDevice, uint32_t* pToolCount,
1827 VkPhysicalDeviceToolProperties* pToolProperties) {
1828 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceToolProperties");
1829 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1830 VkResult vkGetPhysicalDeviceToolProperties_VkResult_return = (VkResult)0;
1831 vkGetPhysicalDeviceToolProperties_VkResult_return = vkEnc->vkGetPhysicalDeviceToolProperties(
1832 physicalDevice, pToolCount, pToolProperties, true /* do lock */);
1833 return vkGetPhysicalDeviceToolProperties_VkResult_return;
1834 }
entry_vkCreatePrivateDataSlot(VkDevice device,const VkPrivateDataSlotCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkPrivateDataSlot * pPrivateDataSlot)1835 static VkResult entry_vkCreatePrivateDataSlot(VkDevice device,
1836 const VkPrivateDataSlotCreateInfo* pCreateInfo,
1837 const VkAllocationCallbacks* pAllocator,
1838 VkPrivateDataSlot* pPrivateDataSlot) {
1839 AEMU_SCOPED_TRACE("vkCreatePrivateDataSlot");
1840 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1841 VkResult vkCreatePrivateDataSlot_VkResult_return = (VkResult)0;
1842 vkCreatePrivateDataSlot_VkResult_return = vkEnc->vkCreatePrivateDataSlot(
1843 device, pCreateInfo, pAllocator, pPrivateDataSlot, true /* do lock */);
1844 return vkCreatePrivateDataSlot_VkResult_return;
1845 }
dynCheck_entry_vkCreatePrivateDataSlot(VkDevice device,const VkPrivateDataSlotCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkPrivateDataSlot * pPrivateDataSlot)1846 static VkResult dynCheck_entry_vkCreatePrivateDataSlot(
1847 VkDevice device, const VkPrivateDataSlotCreateInfo* pCreateInfo,
1848 const VkAllocationCallbacks* pAllocator, VkPrivateDataSlot* pPrivateDataSlot) {
1849 auto resources = ResourceTracker::get();
1850 if (resources->getApiVersionFromDevice(device) < VK_API_VERSION_1_3) {
1851 sOnInvalidDynamicallyCheckedCall("vkCreatePrivateDataSlot", "VK_VERSION_1_3");
1852 }
1853 AEMU_SCOPED_TRACE("vkCreatePrivateDataSlot");
1854 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1855 VkResult vkCreatePrivateDataSlot_VkResult_return = (VkResult)0;
1856 vkCreatePrivateDataSlot_VkResult_return = vkEnc->vkCreatePrivateDataSlot(
1857 device, pCreateInfo, pAllocator, pPrivateDataSlot, true /* do lock */);
1858 return vkCreatePrivateDataSlot_VkResult_return;
1859 }
entry_vkDestroyPrivateDataSlot(VkDevice device,VkPrivateDataSlot privateDataSlot,const VkAllocationCallbacks * pAllocator)1860 static void entry_vkDestroyPrivateDataSlot(VkDevice device, VkPrivateDataSlot privateDataSlot,
1861 const VkAllocationCallbacks* pAllocator) {
1862 AEMU_SCOPED_TRACE("vkDestroyPrivateDataSlot");
1863 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1864 vkEnc->vkDestroyPrivateDataSlot(device, privateDataSlot, pAllocator, true /* do lock */);
1865 }
dynCheck_entry_vkDestroyPrivateDataSlot(VkDevice device,VkPrivateDataSlot privateDataSlot,const VkAllocationCallbacks * pAllocator)1866 static void dynCheck_entry_vkDestroyPrivateDataSlot(VkDevice device,
1867 VkPrivateDataSlot privateDataSlot,
1868 const VkAllocationCallbacks* pAllocator) {
1869 auto resources = ResourceTracker::get();
1870 if (resources->getApiVersionFromDevice(device) < VK_API_VERSION_1_3) {
1871 sOnInvalidDynamicallyCheckedCall("vkDestroyPrivateDataSlot", "VK_VERSION_1_3");
1872 }
1873 AEMU_SCOPED_TRACE("vkDestroyPrivateDataSlot");
1874 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1875 vkEnc->vkDestroyPrivateDataSlot(device, privateDataSlot, pAllocator, true /* do lock */);
1876 }
entry_vkSetPrivateData(VkDevice device,VkObjectType objectType,uint64_t objectHandle,VkPrivateDataSlot privateDataSlot,uint64_t data)1877 static VkResult entry_vkSetPrivateData(VkDevice device, VkObjectType objectType,
1878 uint64_t objectHandle, VkPrivateDataSlot privateDataSlot,
1879 uint64_t data) {
1880 AEMU_SCOPED_TRACE("vkSetPrivateData");
1881 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1882 VkResult vkSetPrivateData_VkResult_return = (VkResult)0;
1883 vkSetPrivateData_VkResult_return = vkEnc->vkSetPrivateData(
1884 device, objectType, objectHandle, privateDataSlot, data, true /* do lock */);
1885 return vkSetPrivateData_VkResult_return;
1886 }
dynCheck_entry_vkSetPrivateData(VkDevice device,VkObjectType objectType,uint64_t objectHandle,VkPrivateDataSlot privateDataSlot,uint64_t data)1887 static VkResult dynCheck_entry_vkSetPrivateData(VkDevice device, VkObjectType objectType,
1888 uint64_t objectHandle,
1889 VkPrivateDataSlot privateDataSlot, uint64_t data) {
1890 auto resources = ResourceTracker::get();
1891 if (resources->getApiVersionFromDevice(device) < VK_API_VERSION_1_3) {
1892 sOnInvalidDynamicallyCheckedCall("vkSetPrivateData", "VK_VERSION_1_3");
1893 }
1894 AEMU_SCOPED_TRACE("vkSetPrivateData");
1895 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1896 VkResult vkSetPrivateData_VkResult_return = (VkResult)0;
1897 vkSetPrivateData_VkResult_return = vkEnc->vkSetPrivateData(
1898 device, objectType, objectHandle, privateDataSlot, data, true /* do lock */);
1899 return vkSetPrivateData_VkResult_return;
1900 }
entry_vkGetPrivateData(VkDevice device,VkObjectType objectType,uint64_t objectHandle,VkPrivateDataSlot privateDataSlot,uint64_t * pData)1901 static void entry_vkGetPrivateData(VkDevice device, VkObjectType objectType, uint64_t objectHandle,
1902 VkPrivateDataSlot privateDataSlot, uint64_t* pData) {
1903 AEMU_SCOPED_TRACE("vkGetPrivateData");
1904 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1905 vkEnc->vkGetPrivateData(device, objectType, objectHandle, privateDataSlot, pData,
1906 true /* do lock */);
1907 }
dynCheck_entry_vkGetPrivateData(VkDevice device,VkObjectType objectType,uint64_t objectHandle,VkPrivateDataSlot privateDataSlot,uint64_t * pData)1908 static void dynCheck_entry_vkGetPrivateData(VkDevice device, VkObjectType objectType,
1909 uint64_t objectHandle,
1910 VkPrivateDataSlot privateDataSlot, uint64_t* pData) {
1911 auto resources = ResourceTracker::get();
1912 if (resources->getApiVersionFromDevice(device) < VK_API_VERSION_1_3) {
1913 sOnInvalidDynamicallyCheckedCall("vkGetPrivateData", "VK_VERSION_1_3");
1914 }
1915 AEMU_SCOPED_TRACE("vkGetPrivateData");
1916 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
1917 vkEnc->vkGetPrivateData(device, objectType, objectHandle, privateDataSlot, pData,
1918 true /* do lock */);
1919 }
entry_vkCmdSetEvent2(VkCommandBuffer commandBuffer,VkEvent event,const VkDependencyInfo * pDependencyInfo)1920 static void entry_vkCmdSetEvent2(VkCommandBuffer commandBuffer, VkEvent event,
1921 const VkDependencyInfo* pDependencyInfo) {
1922 AEMU_SCOPED_TRACE("vkCmdSetEvent2");
1923 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1924 vkEnc->vkCmdSetEvent2(commandBuffer, event, pDependencyInfo, true /* do lock */);
1925 }
entry_vkCmdResetEvent2(VkCommandBuffer commandBuffer,VkEvent event,VkPipelineStageFlags2 stageMask)1926 static void entry_vkCmdResetEvent2(VkCommandBuffer commandBuffer, VkEvent event,
1927 VkPipelineStageFlags2 stageMask) {
1928 AEMU_SCOPED_TRACE("vkCmdResetEvent2");
1929 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1930 vkEnc->vkCmdResetEvent2(commandBuffer, event, stageMask, true /* do lock */);
1931 }
entry_vkCmdWaitEvents2(VkCommandBuffer commandBuffer,uint32_t eventCount,const VkEvent * pEvents,const VkDependencyInfo * pDependencyInfos)1932 static void entry_vkCmdWaitEvents2(VkCommandBuffer commandBuffer, uint32_t eventCount,
1933 const VkEvent* pEvents,
1934 const VkDependencyInfo* pDependencyInfos) {
1935 AEMU_SCOPED_TRACE("vkCmdWaitEvents2");
1936 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1937 vkEnc->vkCmdWaitEvents2(commandBuffer, eventCount, pEvents, pDependencyInfos,
1938 true /* do lock */);
1939 }
entry_vkCmdPipelineBarrier2(VkCommandBuffer commandBuffer,const VkDependencyInfo * pDependencyInfo)1940 static void entry_vkCmdPipelineBarrier2(VkCommandBuffer commandBuffer,
1941 const VkDependencyInfo* pDependencyInfo) {
1942 AEMU_SCOPED_TRACE("vkCmdPipelineBarrier2");
1943 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1944 vkEnc->vkCmdPipelineBarrier2(commandBuffer, pDependencyInfo, true /* do lock */);
1945 }
entry_vkCmdWriteTimestamp2(VkCommandBuffer commandBuffer,VkPipelineStageFlags2 stage,VkQueryPool queryPool,uint32_t query)1946 static void entry_vkCmdWriteTimestamp2(VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage,
1947 VkQueryPool queryPool, uint32_t query) {
1948 AEMU_SCOPED_TRACE("vkCmdWriteTimestamp2");
1949 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1950 vkEnc->vkCmdWriteTimestamp2(commandBuffer, stage, queryPool, query, true /* do lock */);
1951 }
entry_vkQueueSubmit2(VkQueue queue,uint32_t submitCount,const VkSubmitInfo2 * pSubmits,VkFence fence)1952 static VkResult entry_vkQueueSubmit2(VkQueue queue, uint32_t submitCount,
1953 const VkSubmitInfo2* pSubmits, VkFence fence) {
1954 AEMU_SCOPED_TRACE("vkQueueSubmit2");
1955 auto vkEnc = ResourceTracker::getQueueEncoder(queue);
1956 VkResult vkQueueSubmit2_VkResult_return = (VkResult)0;
1957 auto resources = ResourceTracker::get();
1958 vkQueueSubmit2_VkResult_return =
1959 resources->on_vkQueueSubmit2(vkEnc, VK_SUCCESS, queue, submitCount, pSubmits, fence);
1960 return vkQueueSubmit2_VkResult_return;
1961 }
entry_vkCmdCopyBuffer2(VkCommandBuffer commandBuffer,const VkCopyBufferInfo2 * pCopyBufferInfo)1962 static void entry_vkCmdCopyBuffer2(VkCommandBuffer commandBuffer,
1963 const VkCopyBufferInfo2* pCopyBufferInfo) {
1964 AEMU_SCOPED_TRACE("vkCmdCopyBuffer2");
1965 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1966 vkEnc->vkCmdCopyBuffer2(commandBuffer, pCopyBufferInfo, true /* do lock */);
1967 }
entry_vkCmdCopyImage2(VkCommandBuffer commandBuffer,const VkCopyImageInfo2 * pCopyImageInfo)1968 static void entry_vkCmdCopyImage2(VkCommandBuffer commandBuffer,
1969 const VkCopyImageInfo2* pCopyImageInfo) {
1970 AEMU_SCOPED_TRACE("vkCmdCopyImage2");
1971 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1972 vkEnc->vkCmdCopyImage2(commandBuffer, pCopyImageInfo, true /* do lock */);
1973 }
entry_vkCmdCopyBufferToImage2(VkCommandBuffer commandBuffer,const VkCopyBufferToImageInfo2 * pCopyBufferToImageInfo)1974 static void entry_vkCmdCopyBufferToImage2(VkCommandBuffer commandBuffer,
1975 const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo) {
1976 AEMU_SCOPED_TRACE("vkCmdCopyBufferToImage2");
1977 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1978 vkEnc->vkCmdCopyBufferToImage2(commandBuffer, pCopyBufferToImageInfo, true /* do lock */);
1979 }
entry_vkCmdCopyImageToBuffer2(VkCommandBuffer commandBuffer,const VkCopyImageToBufferInfo2 * pCopyImageToBufferInfo)1980 static void entry_vkCmdCopyImageToBuffer2(VkCommandBuffer commandBuffer,
1981 const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo) {
1982 AEMU_SCOPED_TRACE("vkCmdCopyImageToBuffer2");
1983 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1984 vkEnc->vkCmdCopyImageToBuffer2(commandBuffer, pCopyImageToBufferInfo, true /* do lock */);
1985 }
entry_vkCmdBlitImage2(VkCommandBuffer commandBuffer,const VkBlitImageInfo2 * pBlitImageInfo)1986 static void entry_vkCmdBlitImage2(VkCommandBuffer commandBuffer,
1987 const VkBlitImageInfo2* pBlitImageInfo) {
1988 AEMU_SCOPED_TRACE("vkCmdBlitImage2");
1989 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1990 vkEnc->vkCmdBlitImage2(commandBuffer, pBlitImageInfo, true /* do lock */);
1991 }
entry_vkCmdResolveImage2(VkCommandBuffer commandBuffer,const VkResolveImageInfo2 * pResolveImageInfo)1992 static void entry_vkCmdResolveImage2(VkCommandBuffer commandBuffer,
1993 const VkResolveImageInfo2* pResolveImageInfo) {
1994 AEMU_SCOPED_TRACE("vkCmdResolveImage2");
1995 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
1996 vkEnc->vkCmdResolveImage2(commandBuffer, pResolveImageInfo, true /* do lock */);
1997 }
entry_vkCmdBeginRendering(VkCommandBuffer commandBuffer,const VkRenderingInfo * pRenderingInfo)1998 static void entry_vkCmdBeginRendering(VkCommandBuffer commandBuffer,
1999 const VkRenderingInfo* pRenderingInfo) {
2000 AEMU_SCOPED_TRACE("vkCmdBeginRendering");
2001 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
2002 vkEnc->vkCmdBeginRendering(commandBuffer, pRenderingInfo, true /* do lock */);
2003 }
entry_vkCmdEndRendering(VkCommandBuffer commandBuffer)2004 static void entry_vkCmdEndRendering(VkCommandBuffer commandBuffer) {
2005 AEMU_SCOPED_TRACE("vkCmdEndRendering");
2006 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
2007 vkEnc->vkCmdEndRendering(commandBuffer, true /* do lock */);
2008 }
entry_vkCmdSetCullMode(VkCommandBuffer commandBuffer,VkCullModeFlags cullMode)2009 static void entry_vkCmdSetCullMode(VkCommandBuffer commandBuffer, VkCullModeFlags cullMode) {
2010 AEMU_SCOPED_TRACE("vkCmdSetCullMode");
2011 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
2012 vkEnc->vkCmdSetCullMode(commandBuffer, cullMode, true /* do lock */);
2013 }
entry_vkCmdSetFrontFace(VkCommandBuffer commandBuffer,VkFrontFace frontFace)2014 static void entry_vkCmdSetFrontFace(VkCommandBuffer commandBuffer, VkFrontFace frontFace) {
2015 AEMU_SCOPED_TRACE("vkCmdSetFrontFace");
2016 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
2017 vkEnc->vkCmdSetFrontFace(commandBuffer, frontFace, true /* do lock */);
2018 }
entry_vkCmdSetPrimitiveTopology(VkCommandBuffer commandBuffer,VkPrimitiveTopology primitiveTopology)2019 static void entry_vkCmdSetPrimitiveTopology(VkCommandBuffer commandBuffer,
2020 VkPrimitiveTopology primitiveTopology) {
2021 AEMU_SCOPED_TRACE("vkCmdSetPrimitiveTopology");
2022 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
2023 vkEnc->vkCmdSetPrimitiveTopology(commandBuffer, primitiveTopology, true /* do lock */);
2024 }
entry_vkCmdSetViewportWithCount(VkCommandBuffer commandBuffer,uint32_t viewportCount,const VkViewport * pViewports)2025 static void entry_vkCmdSetViewportWithCount(VkCommandBuffer commandBuffer, uint32_t viewportCount,
2026 const VkViewport* pViewports) {
2027 AEMU_SCOPED_TRACE("vkCmdSetViewportWithCount");
2028 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
2029 vkEnc->vkCmdSetViewportWithCount(commandBuffer, viewportCount, pViewports, true /* do lock */);
2030 }
entry_vkCmdSetScissorWithCount(VkCommandBuffer commandBuffer,uint32_t scissorCount,const VkRect2D * pScissors)2031 static void entry_vkCmdSetScissorWithCount(VkCommandBuffer commandBuffer, uint32_t scissorCount,
2032 const VkRect2D* pScissors) {
2033 AEMU_SCOPED_TRACE("vkCmdSetScissorWithCount");
2034 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
2035 vkEnc->vkCmdSetScissorWithCount(commandBuffer, scissorCount, pScissors, true /* do lock */);
2036 }
entry_vkCmdBindVertexBuffers2(VkCommandBuffer commandBuffer,uint32_t firstBinding,uint32_t bindingCount,const VkBuffer * pBuffers,const VkDeviceSize * pOffsets,const VkDeviceSize * pSizes,const VkDeviceSize * pStrides)2037 static void entry_vkCmdBindVertexBuffers2(VkCommandBuffer commandBuffer, uint32_t firstBinding,
2038 uint32_t bindingCount, const VkBuffer* pBuffers,
2039 const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes,
2040 const VkDeviceSize* pStrides) {
2041 AEMU_SCOPED_TRACE("vkCmdBindVertexBuffers2");
2042 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
2043 vkEnc->vkCmdBindVertexBuffers2(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets,
2044 pSizes, pStrides, true /* do lock */);
2045 }
entry_vkCmdSetDepthTestEnable(VkCommandBuffer commandBuffer,VkBool32 depthTestEnable)2046 static void entry_vkCmdSetDepthTestEnable(VkCommandBuffer commandBuffer, VkBool32 depthTestEnable) {
2047 AEMU_SCOPED_TRACE("vkCmdSetDepthTestEnable");
2048 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
2049 vkEnc->vkCmdSetDepthTestEnable(commandBuffer, depthTestEnable, true /* do lock */);
2050 }
entry_vkCmdSetDepthWriteEnable(VkCommandBuffer commandBuffer,VkBool32 depthWriteEnable)2051 static void entry_vkCmdSetDepthWriteEnable(VkCommandBuffer commandBuffer,
2052 VkBool32 depthWriteEnable) {
2053 AEMU_SCOPED_TRACE("vkCmdSetDepthWriteEnable");
2054 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
2055 vkEnc->vkCmdSetDepthWriteEnable(commandBuffer, depthWriteEnable, true /* do lock */);
2056 }
entry_vkCmdSetDepthCompareOp(VkCommandBuffer commandBuffer,VkCompareOp depthCompareOp)2057 static void entry_vkCmdSetDepthCompareOp(VkCommandBuffer commandBuffer,
2058 VkCompareOp depthCompareOp) {
2059 AEMU_SCOPED_TRACE("vkCmdSetDepthCompareOp");
2060 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
2061 vkEnc->vkCmdSetDepthCompareOp(commandBuffer, depthCompareOp, true /* do lock */);
2062 }
entry_vkCmdSetDepthBoundsTestEnable(VkCommandBuffer commandBuffer,VkBool32 depthBoundsTestEnable)2063 static void entry_vkCmdSetDepthBoundsTestEnable(VkCommandBuffer commandBuffer,
2064 VkBool32 depthBoundsTestEnable) {
2065 AEMU_SCOPED_TRACE("vkCmdSetDepthBoundsTestEnable");
2066 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
2067 vkEnc->vkCmdSetDepthBoundsTestEnable(commandBuffer, depthBoundsTestEnable, true /* do lock */);
2068 }
entry_vkCmdSetStencilTestEnable(VkCommandBuffer commandBuffer,VkBool32 stencilTestEnable)2069 static void entry_vkCmdSetStencilTestEnable(VkCommandBuffer commandBuffer,
2070 VkBool32 stencilTestEnable) {
2071 AEMU_SCOPED_TRACE("vkCmdSetStencilTestEnable");
2072 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
2073 vkEnc->vkCmdSetStencilTestEnable(commandBuffer, stencilTestEnable, true /* do lock */);
2074 }
entry_vkCmdSetStencilOp(VkCommandBuffer commandBuffer,VkStencilFaceFlags faceMask,VkStencilOp failOp,VkStencilOp passOp,VkStencilOp depthFailOp,VkCompareOp compareOp)2075 static void entry_vkCmdSetStencilOp(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask,
2076 VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp,
2077 VkCompareOp compareOp) {
2078 AEMU_SCOPED_TRACE("vkCmdSetStencilOp");
2079 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
2080 vkEnc->vkCmdSetStencilOp(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp,
2081 true /* do lock */);
2082 }
entry_vkCmdSetRasterizerDiscardEnable(VkCommandBuffer commandBuffer,VkBool32 rasterizerDiscardEnable)2083 static void entry_vkCmdSetRasterizerDiscardEnable(VkCommandBuffer commandBuffer,
2084 VkBool32 rasterizerDiscardEnable) {
2085 AEMU_SCOPED_TRACE("vkCmdSetRasterizerDiscardEnable");
2086 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
2087 vkEnc->vkCmdSetRasterizerDiscardEnable(commandBuffer, rasterizerDiscardEnable,
2088 true /* do lock */);
2089 }
entry_vkCmdSetDepthBiasEnable(VkCommandBuffer commandBuffer,VkBool32 depthBiasEnable)2090 static void entry_vkCmdSetDepthBiasEnable(VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable) {
2091 AEMU_SCOPED_TRACE("vkCmdSetDepthBiasEnable");
2092 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
2093 vkEnc->vkCmdSetDepthBiasEnable(commandBuffer, depthBiasEnable, true /* do lock */);
2094 }
entry_vkCmdSetPrimitiveRestartEnable(VkCommandBuffer commandBuffer,VkBool32 primitiveRestartEnable)2095 static void entry_vkCmdSetPrimitiveRestartEnable(VkCommandBuffer commandBuffer,
2096 VkBool32 primitiveRestartEnable) {
2097 AEMU_SCOPED_TRACE("vkCmdSetPrimitiveRestartEnable");
2098 auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
2099 vkEnc->vkCmdSetPrimitiveRestartEnable(commandBuffer, primitiveRestartEnable,
2100 true /* do lock */);
2101 }
entry_vkGetDeviceBufferMemoryRequirements(VkDevice device,const VkDeviceBufferMemoryRequirements * pInfo,VkMemoryRequirements2 * pMemoryRequirements)2102 static void entry_vkGetDeviceBufferMemoryRequirements(VkDevice device,
2103 const VkDeviceBufferMemoryRequirements* pInfo,
2104 VkMemoryRequirements2* pMemoryRequirements) {
2105 AEMU_SCOPED_TRACE("vkGetDeviceBufferMemoryRequirements");
2106 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2107 vkEnc->vkGetDeviceBufferMemoryRequirements(device, pInfo, pMemoryRequirements,
2108 true /* do lock */);
2109 }
dynCheck_entry_vkGetDeviceBufferMemoryRequirements(VkDevice device,const VkDeviceBufferMemoryRequirements * pInfo,VkMemoryRequirements2 * pMemoryRequirements)2110 static void dynCheck_entry_vkGetDeviceBufferMemoryRequirements(
2111 VkDevice device, const VkDeviceBufferMemoryRequirements* pInfo,
2112 VkMemoryRequirements2* pMemoryRequirements) {
2113 auto resources = ResourceTracker::get();
2114 if (resources->getApiVersionFromDevice(device) < VK_API_VERSION_1_3) {
2115 sOnInvalidDynamicallyCheckedCall("vkGetDeviceBufferMemoryRequirements", "VK_VERSION_1_3");
2116 }
2117 AEMU_SCOPED_TRACE("vkGetDeviceBufferMemoryRequirements");
2118 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2119 vkEnc->vkGetDeviceBufferMemoryRequirements(device, pInfo, pMemoryRequirements,
2120 true /* do lock */);
2121 }
entry_vkGetDeviceImageMemoryRequirements(VkDevice device,const VkDeviceImageMemoryRequirements * pInfo,VkMemoryRequirements2 * pMemoryRequirements)2122 static void entry_vkGetDeviceImageMemoryRequirements(VkDevice device,
2123 const VkDeviceImageMemoryRequirements* pInfo,
2124 VkMemoryRequirements2* pMemoryRequirements) {
2125 AEMU_SCOPED_TRACE("vkGetDeviceImageMemoryRequirements");
2126 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2127 vkEnc->vkGetDeviceImageMemoryRequirements(device, pInfo, pMemoryRequirements,
2128 true /* do lock */);
2129 }
dynCheck_entry_vkGetDeviceImageMemoryRequirements(VkDevice device,const VkDeviceImageMemoryRequirements * pInfo,VkMemoryRequirements2 * pMemoryRequirements)2130 static void dynCheck_entry_vkGetDeviceImageMemoryRequirements(
2131 VkDevice device, const VkDeviceImageMemoryRequirements* pInfo,
2132 VkMemoryRequirements2* pMemoryRequirements) {
2133 auto resources = ResourceTracker::get();
2134 if (resources->getApiVersionFromDevice(device) < VK_API_VERSION_1_3) {
2135 sOnInvalidDynamicallyCheckedCall("vkGetDeviceImageMemoryRequirements", "VK_VERSION_1_3");
2136 }
2137 AEMU_SCOPED_TRACE("vkGetDeviceImageMemoryRequirements");
2138 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2139 vkEnc->vkGetDeviceImageMemoryRequirements(device, pInfo, pMemoryRequirements,
2140 true /* do lock */);
2141 }
entry_vkGetDeviceImageSparseMemoryRequirements(VkDevice device,const VkDeviceImageMemoryRequirements * pInfo,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements)2142 static void entry_vkGetDeviceImageSparseMemoryRequirements(
2143 VkDevice device, const VkDeviceImageMemoryRequirements* pInfo,
2144 uint32_t* pSparseMemoryRequirementCount,
2145 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) {
2146 AEMU_SCOPED_TRACE("vkGetDeviceImageSparseMemoryRequirements");
2147 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2148 vkEnc->vkGetDeviceImageSparseMemoryRequirements(device, pInfo, pSparseMemoryRequirementCount,
2149 pSparseMemoryRequirements, true /* do lock */);
2150 }
dynCheck_entry_vkGetDeviceImageSparseMemoryRequirements(VkDevice device,const VkDeviceImageMemoryRequirements * pInfo,uint32_t * pSparseMemoryRequirementCount,VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements)2151 static void dynCheck_entry_vkGetDeviceImageSparseMemoryRequirements(
2152 VkDevice device, const VkDeviceImageMemoryRequirements* pInfo,
2153 uint32_t* pSparseMemoryRequirementCount,
2154 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) {
2155 auto resources = ResourceTracker::get();
2156 if (resources->getApiVersionFromDevice(device) < VK_API_VERSION_1_3) {
2157 sOnInvalidDynamicallyCheckedCall("vkGetDeviceImageSparseMemoryRequirements",
2158 "VK_VERSION_1_3");
2159 }
2160 AEMU_SCOPED_TRACE("vkGetDeviceImageSparseMemoryRequirements");
2161 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2162 vkEnc->vkGetDeviceImageSparseMemoryRequirements(device, pInfo, pSparseMemoryRequirementCount,
2163 pSparseMemoryRequirements, true /* do lock */);
2164 }
2165 #endif
2166 #ifdef VK_KHR_surface
entry_vkDestroySurfaceKHR(VkInstance instance,VkSurfaceKHR surface,const VkAllocationCallbacks * pAllocator)2167 static void entry_vkDestroySurfaceKHR(VkInstance instance, VkSurfaceKHR surface,
2168 const VkAllocationCallbacks* pAllocator) {
2169 AEMU_SCOPED_TRACE("vkDestroySurfaceKHR");
2170 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2171 vkEnc->vkDestroySurfaceKHR(instance, surface, pAllocator, true /* do lock */);
2172 }
entry_vkGetPhysicalDeviceSurfaceSupportKHR(VkPhysicalDevice physicalDevice,uint32_t queueFamilyIndex,VkSurfaceKHR surface,VkBool32 * pSupported)2173 static VkResult entry_vkGetPhysicalDeviceSurfaceSupportKHR(VkPhysicalDevice physicalDevice,
2174 uint32_t queueFamilyIndex,
2175 VkSurfaceKHR surface,
2176 VkBool32* pSupported) {
2177 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceSupportKHR");
2178 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2179 VkResult vkGetPhysicalDeviceSurfaceSupportKHR_VkResult_return = (VkResult)0;
2180 vkGetPhysicalDeviceSurfaceSupportKHR_VkResult_return =
2181 vkEnc->vkGetPhysicalDeviceSurfaceSupportKHR(physicalDevice, queueFamilyIndex, surface,
2182 pSupported, true /* do lock */);
2183 return vkGetPhysicalDeviceSurfaceSupportKHR_VkResult_return;
2184 }
entry_vkGetPhysicalDeviceSurfaceCapabilitiesKHR(VkPhysicalDevice physicalDevice,VkSurfaceKHR surface,VkSurfaceCapabilitiesKHR * pSurfaceCapabilities)2185 static VkResult entry_vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
2186 VkPhysicalDevice physicalDevice, VkSurfaceKHR surface,
2187 VkSurfaceCapabilitiesKHR* pSurfaceCapabilities) {
2188 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceCapabilitiesKHR");
2189 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2190 VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR_VkResult_return = (VkResult)0;
2191 vkGetPhysicalDeviceSurfaceCapabilitiesKHR_VkResult_return =
2192 vkEnc->vkGetPhysicalDeviceSurfaceCapabilitiesKHR(physicalDevice, surface,
2193 pSurfaceCapabilities, true /* do lock */);
2194 return vkGetPhysicalDeviceSurfaceCapabilitiesKHR_VkResult_return;
2195 }
entry_vkGetPhysicalDeviceSurfaceFormatsKHR(VkPhysicalDevice physicalDevice,VkSurfaceKHR surface,uint32_t * pSurfaceFormatCount,VkSurfaceFormatKHR * pSurfaceFormats)2196 static VkResult entry_vkGetPhysicalDeviceSurfaceFormatsKHR(VkPhysicalDevice physicalDevice,
2197 VkSurfaceKHR surface,
2198 uint32_t* pSurfaceFormatCount,
2199 VkSurfaceFormatKHR* pSurfaceFormats) {
2200 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceFormatsKHR");
2201 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2202 VkResult vkGetPhysicalDeviceSurfaceFormatsKHR_VkResult_return = (VkResult)0;
2203 vkGetPhysicalDeviceSurfaceFormatsKHR_VkResult_return =
2204 vkEnc->vkGetPhysicalDeviceSurfaceFormatsKHR(physicalDevice, surface, pSurfaceFormatCount,
2205 pSurfaceFormats, true /* do lock */);
2206 return vkGetPhysicalDeviceSurfaceFormatsKHR_VkResult_return;
2207 }
entry_vkGetPhysicalDeviceSurfacePresentModesKHR(VkPhysicalDevice physicalDevice,VkSurfaceKHR surface,uint32_t * pPresentModeCount,VkPresentModeKHR * pPresentModes)2208 static VkResult entry_vkGetPhysicalDeviceSurfacePresentModesKHR(VkPhysicalDevice physicalDevice,
2209 VkSurfaceKHR surface,
2210 uint32_t* pPresentModeCount,
2211 VkPresentModeKHR* pPresentModes) {
2212 AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfacePresentModesKHR");
2213 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2214 VkResult vkGetPhysicalDeviceSurfacePresentModesKHR_VkResult_return = (VkResult)0;
2215 vkGetPhysicalDeviceSurfacePresentModesKHR_VkResult_return =
2216 vkEnc->vkGetPhysicalDeviceSurfacePresentModesKHR(physicalDevice, surface, pPresentModeCount,
2217 pPresentModes, true /* do lock */);
2218 return vkGetPhysicalDeviceSurfacePresentModesKHR_VkResult_return;
2219 }
2220 #endif
2221 #ifdef VK_KHR_swapchain
entry_vkCreateSwapchainKHR(VkDevice device,const VkSwapchainCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSwapchainKHR * pSwapchain)2222 static VkResult entry_vkCreateSwapchainKHR(VkDevice device,
2223 const VkSwapchainCreateInfoKHR* pCreateInfo,
2224 const VkAllocationCallbacks* pAllocator,
2225 VkSwapchainKHR* pSwapchain) {
2226 AEMU_SCOPED_TRACE("vkCreateSwapchainKHR");
2227 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2228 VkResult vkCreateSwapchainKHR_VkResult_return = (VkResult)0;
2229 vkCreateSwapchainKHR_VkResult_return = vkEnc->vkCreateSwapchainKHR(
2230 device, pCreateInfo, pAllocator, pSwapchain, true /* do lock */);
2231 return vkCreateSwapchainKHR_VkResult_return;
2232 }
dynCheck_entry_vkCreateSwapchainKHR(VkDevice device,const VkSwapchainCreateInfoKHR * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkSwapchainKHR * pSwapchain)2233 static VkResult dynCheck_entry_vkCreateSwapchainKHR(VkDevice device,
2234 const VkSwapchainCreateInfoKHR* pCreateInfo,
2235 const VkAllocationCallbacks* pAllocator,
2236 VkSwapchainKHR* pSwapchain) {
2237 auto resources = ResourceTracker::get();
2238 if (!resources->hasDeviceExtension(device, "VK_KHR_swapchain")) {
2239 sOnInvalidDynamicallyCheckedCall("vkCreateSwapchainKHR", "VK_KHR_swapchain");
2240 }
2241 AEMU_SCOPED_TRACE("vkCreateSwapchainKHR");
2242 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2243 VkResult vkCreateSwapchainKHR_VkResult_return = (VkResult)0;
2244 vkCreateSwapchainKHR_VkResult_return = vkEnc->vkCreateSwapchainKHR(
2245 device, pCreateInfo, pAllocator, pSwapchain, true /* do lock */);
2246 return vkCreateSwapchainKHR_VkResult_return;
2247 }
entry_vkDestroySwapchainKHR(VkDevice device,VkSwapchainKHR swapchain,const VkAllocationCallbacks * pAllocator)2248 static void entry_vkDestroySwapchainKHR(VkDevice device, VkSwapchainKHR swapchain,
2249 const VkAllocationCallbacks* pAllocator) {
2250 AEMU_SCOPED_TRACE("vkDestroySwapchainKHR");
2251 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2252 vkEnc->vkDestroySwapchainKHR(device, swapchain, pAllocator, true /* do lock */);
2253 }
dynCheck_entry_vkDestroySwapchainKHR(VkDevice device,VkSwapchainKHR swapchain,const VkAllocationCallbacks * pAllocator)2254 static void dynCheck_entry_vkDestroySwapchainKHR(VkDevice device, VkSwapchainKHR swapchain,
2255 const VkAllocationCallbacks* pAllocator) {
2256 auto resources = ResourceTracker::get();
2257 if (!resources->hasDeviceExtension(device, "VK_KHR_swapchain")) {
2258 sOnInvalidDynamicallyCheckedCall("vkDestroySwapchainKHR", "VK_KHR_swapchain");
2259 }
2260 AEMU_SCOPED_TRACE("vkDestroySwapchainKHR");
2261 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2262 vkEnc->vkDestroySwapchainKHR(device, swapchain, pAllocator, true /* do lock */);
2263 }
entry_vkGetSwapchainImagesKHR(VkDevice device,VkSwapchainKHR swapchain,uint32_t * pSwapchainImageCount,VkImage * pSwapchainImages)2264 static VkResult entry_vkGetSwapchainImagesKHR(VkDevice device, VkSwapchainKHR swapchain,
2265 uint32_t* pSwapchainImageCount,
2266 VkImage* pSwapchainImages) {
2267 AEMU_SCOPED_TRACE("vkGetSwapchainImagesKHR");
2268 auto vkEnc = ResourceTracker::getThreadLocalEncoder();
2269 VkResult vkGetSwapchainImagesKHR_VkResult_return = (VkResult)0;
2270 vkGetSwapchainImagesKHR_VkResult_return = vkEnc->vkGetSwapchainImagesKHR(
2271 device, swapchain, pSwapchainImageCount, pSwapchainImages, true /* do lock */);
2272 return vkGetSwapchainImagesKHR_VkResult_return;
2273 }
dynCheck_entry_vkGetSwapchainImagesKHR(VkDevice device,VkSwapchainKHR swapchain,uint32_t * pSwapchainImageCount,VkImage * pSwapchainImages)2274