| // Copyright (C) 2018 The Android Open Source Project |
| // Copyright (C) 2018 Google Inc. |
| // |
| // Licensed under the Apache License, Version 2.0 (the "License"); |
| // you may not use this file except in compliance with the License. |
| // You may obtain a copy of the License at |
| // |
| // http://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, software |
| // distributed under the License is distributed on an "AS IS" BASIS, |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| // See the License for the specific language governing permissions and |
| // limitations under the License. |
| |
| // Autogenerated module func_table |
| // (impl) generated by registry/vulkan/scripts/genvk.py -registry registry/vulkan/xml/vk.xml cereal -o ../../device/generic/vulkan-cereal/stream-servers/vulkan/cereal |
| // Please do not modify directly; |
| // re-run gfxstream-protocols/scripts/generate-vulkan-sources.sh, |
| // or directly from Python by defining: |
| // VULKAN_REGISTRY_XML_DIR : Directory containing vk.xml |
| // VULKAN_REGISTRY_SCRIPTS_DIR : Directory containing genvk.py |
| // CEREAL_OUTPUT_DIR: Where to put the generated sources. |
| // python3 $VULKAN_REGISTRY_SCRIPTS_DIR/genvk.py -registry $VULKAN_REGISTRY_XML_DIR/vk.xml cereal -o $CEREAL_OUTPUT_DIR |
| |
| #include "func_table.h" |
| |
| |
| #include "VkEncoder.h" |
| #include "../OpenglSystemCommon/HostConnection.h" |
| #include "ResourceTracker.h" |
| |
| #include "goldfish_vk_private_defs.h" |
| |
| #include <log/log.h> |
| #include <cstring> |
| |
| // Stuff we are not going to use but if included, |
| // will cause compile errors. These are Android Vulkan |
| // required extensions, but the approach will be to |
| // implement them completely on the guest side. |
| #undef VK_KHR_android_surface |
| |
| |
| namespace goldfish_vk { |
| |
| static void sOnInvalidDynamicallyCheckedCall(const char* apiname, const char* neededFeature) |
| { |
| ALOGE("invalid call to %s: %s not supported", apiname, neededFeature); |
| abort(); |
| } |
| #ifdef VK_VERSION_1_0 |
| static VkResult entry_vkCreateInstance( |
| const VkInstanceCreateInfo* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkInstance* pInstance) |
| { |
| AEMU_SCOPED_TRACE("vkCreateInstance"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateInstance_VkResult_return = (VkResult)0; |
| vkCreateInstance_VkResult_return = vkEnc->vkCreateInstance(pCreateInfo, pAllocator, pInstance, true /* do lock */); |
| return vkCreateInstance_VkResult_return; |
| } |
| static void entry_vkDestroyInstance( |
| VkInstance instance, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AEMU_SCOPED_TRACE("vkDestroyInstance"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkDestroyInstance(instance, pAllocator, true /* do lock */); |
| } |
| static VkResult entry_vkEnumeratePhysicalDevices( |
| VkInstance instance, |
| uint32_t* pPhysicalDeviceCount, |
| VkPhysicalDevice* pPhysicalDevices) |
| { |
| AEMU_SCOPED_TRACE("vkEnumeratePhysicalDevices"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkEnumeratePhysicalDevices_VkResult_return = (VkResult)0; |
| auto resources = ResourceTracker::get(); |
| vkEnumeratePhysicalDevices_VkResult_return = resources->on_vkEnumeratePhysicalDevices(vkEnc, VK_SUCCESS, instance, pPhysicalDeviceCount, pPhysicalDevices); |
| return vkEnumeratePhysicalDevices_VkResult_return; |
| } |
| static void entry_vkGetPhysicalDeviceFeatures( |
| VkPhysicalDevice physicalDevice, |
| VkPhysicalDeviceFeatures* pFeatures) |
| { |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFeatures"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkGetPhysicalDeviceFeatures(physicalDevice, pFeatures, true /* do lock */); |
| } |
| static void entry_vkGetPhysicalDeviceFormatProperties( |
| VkPhysicalDevice physicalDevice, |
| VkFormat format, |
| VkFormatProperties* pFormatProperties) |
| { |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFormatProperties"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkGetPhysicalDeviceFormatProperties(physicalDevice, format, pFormatProperties, true /* do lock */); |
| } |
| static VkResult entry_vkGetPhysicalDeviceImageFormatProperties( |
| VkPhysicalDevice physicalDevice, |
| VkFormat format, |
| VkImageType type, |
| VkImageTiling tiling, |
| VkImageUsageFlags usage, |
| VkImageCreateFlags flags, |
| VkImageFormatProperties* pImageFormatProperties) |
| { |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceImageFormatProperties"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetPhysicalDeviceImageFormatProperties_VkResult_return = (VkResult)0; |
| vkGetPhysicalDeviceImageFormatProperties_VkResult_return = vkEnc->vkGetPhysicalDeviceImageFormatProperties(physicalDevice, format, type, tiling, usage, flags, pImageFormatProperties, true /* do lock */); |
| return vkGetPhysicalDeviceImageFormatProperties_VkResult_return; |
| } |
| static void entry_vkGetPhysicalDeviceProperties( |
| VkPhysicalDevice physicalDevice, |
| VkPhysicalDeviceProperties* pProperties) |
| { |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceProperties"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkGetPhysicalDeviceProperties(physicalDevice, pProperties, true /* do lock */); |
| } |
| static void entry_vkGetPhysicalDeviceQueueFamilyProperties( |
| VkPhysicalDevice physicalDevice, |
| uint32_t* pQueueFamilyPropertyCount, |
| VkQueueFamilyProperties* pQueueFamilyProperties) |
| { |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceQueueFamilyProperties"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkGetPhysicalDeviceQueueFamilyProperties(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties, true /* do lock */); |
| } |
| static void entry_vkGetPhysicalDeviceMemoryProperties( |
| VkPhysicalDevice physicalDevice, |
| VkPhysicalDeviceMemoryProperties* pMemoryProperties) |
| { |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMemoryProperties"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkGetPhysicalDeviceMemoryProperties(physicalDevice, pMemoryProperties, true /* do lock */); |
| } |
| static PFN_vkVoidFunction entry_vkGetInstanceProcAddr( |
| VkInstance instance, |
| const char* pName) |
| { |
| AEMU_SCOPED_TRACE("vkGetInstanceProcAddr"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| PFN_vkVoidFunction vkGetInstanceProcAddr_PFN_vkVoidFunction_return = (PFN_vkVoidFunction)0; |
| vkGetInstanceProcAddr_PFN_vkVoidFunction_return = vkEnc->vkGetInstanceProcAddr(instance, pName, true /* do lock */); |
| return vkGetInstanceProcAddr_PFN_vkVoidFunction_return; |
| } |
| static PFN_vkVoidFunction entry_vkGetDeviceProcAddr( |
| VkDevice device, |
| const char* pName) |
| { |
| AEMU_SCOPED_TRACE("vkGetDeviceProcAddr"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| PFN_vkVoidFunction vkGetDeviceProcAddr_PFN_vkVoidFunction_return = (PFN_vkVoidFunction)0; |
| vkGetDeviceProcAddr_PFN_vkVoidFunction_return = vkEnc->vkGetDeviceProcAddr(device, pName, true /* do lock */); |
| return vkGetDeviceProcAddr_PFN_vkVoidFunction_return; |
| } |
| static VkResult entry_vkCreateDevice( |
| VkPhysicalDevice physicalDevice, |
| const VkDeviceCreateInfo* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkDevice* pDevice) |
| { |
| AEMU_SCOPED_TRACE("vkCreateDevice"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateDevice_VkResult_return = (VkResult)0; |
| vkCreateDevice_VkResult_return = vkEnc->vkCreateDevice(physicalDevice, pCreateInfo, pAllocator, pDevice, true /* do lock */); |
| return vkCreateDevice_VkResult_return; |
| } |
| static void entry_vkDestroyDevice( |
| VkDevice device, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AEMU_SCOPED_TRACE("vkDestroyDevice"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkDestroyDevice(device, pAllocator, true /* do lock */); |
| } |
| static VkResult entry_vkEnumerateInstanceExtensionProperties( |
| const char* pLayerName, |
| uint32_t* pPropertyCount, |
| VkExtensionProperties* pProperties) |
| { |
| AEMU_SCOPED_TRACE("vkEnumerateInstanceExtensionProperties"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkEnumerateInstanceExtensionProperties_VkResult_return = (VkResult)0; |
| auto resources = ResourceTracker::get(); |
| vkEnumerateInstanceExtensionProperties_VkResult_return = resources->on_vkEnumerateInstanceExtensionProperties(vkEnc, VK_SUCCESS, pLayerName, pPropertyCount, pProperties); |
| return vkEnumerateInstanceExtensionProperties_VkResult_return; |
| } |
| static VkResult entry_vkEnumerateDeviceExtensionProperties( |
| VkPhysicalDevice physicalDevice, |
| const char* pLayerName, |
| uint32_t* pPropertyCount, |
| VkExtensionProperties* pProperties) |
| { |
| AEMU_SCOPED_TRACE("vkEnumerateDeviceExtensionProperties"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkEnumerateDeviceExtensionProperties_VkResult_return = (VkResult)0; |
| auto resources = ResourceTracker::get(); |
| vkEnumerateDeviceExtensionProperties_VkResult_return = resources->on_vkEnumerateDeviceExtensionProperties(vkEnc, VK_SUCCESS, physicalDevice, pLayerName, pPropertyCount, pProperties); |
| return vkEnumerateDeviceExtensionProperties_VkResult_return; |
| } |
| static VkResult entry_vkEnumerateInstanceLayerProperties( |
| uint32_t* pPropertyCount, |
| VkLayerProperties* pProperties) |
| { |
| AEMU_SCOPED_TRACE("vkEnumerateInstanceLayerProperties"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkEnumerateInstanceLayerProperties_VkResult_return = (VkResult)0; |
| vkEnumerateInstanceLayerProperties_VkResult_return = vkEnc->vkEnumerateInstanceLayerProperties(pPropertyCount, pProperties, true /* do lock */); |
| return vkEnumerateInstanceLayerProperties_VkResult_return; |
| } |
| static VkResult entry_vkEnumerateDeviceLayerProperties( |
| VkPhysicalDevice physicalDevice, |
| uint32_t* pPropertyCount, |
| VkLayerProperties* pProperties) |
| { |
| AEMU_SCOPED_TRACE("vkEnumerateDeviceLayerProperties"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkEnumerateDeviceLayerProperties_VkResult_return = (VkResult)0; |
| vkEnumerateDeviceLayerProperties_VkResult_return = vkEnc->vkEnumerateDeviceLayerProperties(physicalDevice, pPropertyCount, pProperties, true /* do lock */); |
| return vkEnumerateDeviceLayerProperties_VkResult_return; |
| } |
| static void entry_vkGetDeviceQueue( |
| VkDevice device, |
| uint32_t queueFamilyIndex, |
| uint32_t queueIndex, |
| VkQueue* pQueue) |
| { |
| AEMU_SCOPED_TRACE("vkGetDeviceQueue"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkGetDeviceQueue(device, queueFamilyIndex, queueIndex, pQueue, true /* do lock */); |
| } |
| static VkResult entry_vkQueueSubmit( |
| VkQueue queue, |
| uint32_t submitCount, |
| const VkSubmitInfo* pSubmits, |
| VkFence fence) |
| { |
| AEMU_SCOPED_TRACE("vkQueueSubmit"); |
| auto vkEnc = ResourceTracker::getQueueEncoder(queue); |
| VkResult vkQueueSubmit_VkResult_return = (VkResult)0; |
| auto resources = ResourceTracker::get(); |
| vkQueueSubmit_VkResult_return = resources->on_vkQueueSubmit(vkEnc, VK_SUCCESS, queue, submitCount, pSubmits, fence); |
| return vkQueueSubmit_VkResult_return; |
| } |
| static VkResult entry_vkQueueWaitIdle( |
| VkQueue queue) |
| { |
| AEMU_SCOPED_TRACE("vkQueueWaitIdle"); |
| auto vkEnc = ResourceTracker::getQueueEncoder(queue); |
| VkResult vkQueueWaitIdle_VkResult_return = (VkResult)0; |
| auto resources = ResourceTracker::get(); |
| vkQueueWaitIdle_VkResult_return = resources->on_vkQueueWaitIdle(vkEnc, VK_SUCCESS, queue); |
| return vkQueueWaitIdle_VkResult_return; |
| } |
| static VkResult entry_vkDeviceWaitIdle( |
| VkDevice device) |
| { |
| AEMU_SCOPED_TRACE("vkDeviceWaitIdle"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkDeviceWaitIdle_VkResult_return = (VkResult)0; |
| vkDeviceWaitIdle_VkResult_return = vkEnc->vkDeviceWaitIdle(device, true /* do lock */); |
| return vkDeviceWaitIdle_VkResult_return; |
| } |
| static VkResult entry_vkAllocateMemory( |
| VkDevice device, |
| const VkMemoryAllocateInfo* pAllocateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkDeviceMemory* pMemory) |
| { |
| AEMU_SCOPED_TRACE("vkAllocateMemory"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkAllocateMemory_VkResult_return = (VkResult)0; |
| auto resources = ResourceTracker::get(); |
| vkAllocateMemory_VkResult_return = resources->on_vkAllocateMemory(vkEnc, VK_SUCCESS, device, pAllocateInfo, pAllocator, pMemory); |
| return vkAllocateMemory_VkResult_return; |
| } |
| static void entry_vkFreeMemory( |
| VkDevice device, |
| VkDeviceMemory memory, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AEMU_SCOPED_TRACE("vkFreeMemory"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| auto resources = ResourceTracker::get(); |
| resources->on_vkFreeMemory(vkEnc, device, memory, pAllocator); |
| } |
| static VkResult entry_vkMapMemory( |
| VkDevice device, |
| VkDeviceMemory memory, |
| VkDeviceSize offset, |
| VkDeviceSize size, |
| VkMemoryMapFlags flags, |
| void** ppData) |
| { |
| AEMU_SCOPED_TRACE("vkMapMemory"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkMapMemory_VkResult_return = (VkResult)0; |
| vkMapMemory_VkResult_return = vkEnc->vkMapMemory(device, memory, offset, size, flags, ppData, true /* do lock */); |
| return vkMapMemory_VkResult_return; |
| } |
| static void entry_vkUnmapMemory( |
| VkDevice device, |
| VkDeviceMemory memory) |
| { |
| AEMU_SCOPED_TRACE("vkUnmapMemory"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkUnmapMemory(device, memory, true /* do lock */); |
| } |
| static VkResult entry_vkFlushMappedMemoryRanges( |
| VkDevice device, |
| uint32_t memoryRangeCount, |
| const VkMappedMemoryRange* pMemoryRanges) |
| { |
| AEMU_SCOPED_TRACE("vkFlushMappedMemoryRanges"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkFlushMappedMemoryRanges_VkResult_return = (VkResult)0; |
| vkFlushMappedMemoryRanges_VkResult_return = vkEnc->vkFlushMappedMemoryRanges(device, memoryRangeCount, pMemoryRanges, true /* do lock */); |
| return vkFlushMappedMemoryRanges_VkResult_return; |
| } |
| static VkResult entry_vkInvalidateMappedMemoryRanges( |
| VkDevice device, |
| uint32_t memoryRangeCount, |
| const VkMappedMemoryRange* pMemoryRanges) |
| { |
| AEMU_SCOPED_TRACE("vkInvalidateMappedMemoryRanges"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkInvalidateMappedMemoryRanges_VkResult_return = (VkResult)0; |
| vkInvalidateMappedMemoryRanges_VkResult_return = vkEnc->vkInvalidateMappedMemoryRanges(device, memoryRangeCount, pMemoryRanges, true /* do lock */); |
| return vkInvalidateMappedMemoryRanges_VkResult_return; |
| } |
| static void entry_vkGetDeviceMemoryCommitment( |
| VkDevice device, |
| VkDeviceMemory memory, |
| VkDeviceSize* pCommittedMemoryInBytes) |
| { |
| AEMU_SCOPED_TRACE("vkGetDeviceMemoryCommitment"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkGetDeviceMemoryCommitment(device, memory, pCommittedMemoryInBytes, true /* do lock */); |
| } |
| static VkResult entry_vkBindBufferMemory( |
| VkDevice device, |
| VkBuffer buffer, |
| VkDeviceMemory memory, |
| VkDeviceSize memoryOffset) |
| { |
| AEMU_SCOPED_TRACE("vkBindBufferMemory"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkBindBufferMemory_VkResult_return = (VkResult)0; |
| auto resources = ResourceTracker::get(); |
| vkBindBufferMemory_VkResult_return = resources->on_vkBindBufferMemory(vkEnc, VK_SUCCESS, device, buffer, memory, memoryOffset); |
| return vkBindBufferMemory_VkResult_return; |
| } |
| static VkResult entry_vkBindImageMemory( |
| VkDevice device, |
| VkImage image, |
| VkDeviceMemory memory, |
| VkDeviceSize memoryOffset) |
| { |
| AEMU_SCOPED_TRACE("vkBindImageMemory"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkBindImageMemory_VkResult_return = (VkResult)0; |
| auto resources = ResourceTracker::get(); |
| vkBindImageMemory_VkResult_return = resources->on_vkBindImageMemory(vkEnc, VK_SUCCESS, device, image, memory, memoryOffset); |
| return vkBindImageMemory_VkResult_return; |
| } |
| static void entry_vkGetBufferMemoryRequirements( |
| VkDevice device, |
| VkBuffer buffer, |
| VkMemoryRequirements* pMemoryRequirements) |
| { |
| AEMU_SCOPED_TRACE("vkGetBufferMemoryRequirements"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| auto resources = ResourceTracker::get(); |
| resources->on_vkGetBufferMemoryRequirements(vkEnc, device, buffer, pMemoryRequirements); |
| } |
| static void entry_vkGetImageMemoryRequirements( |
| VkDevice device, |
| VkImage image, |
| VkMemoryRequirements* pMemoryRequirements) |
| { |
| AEMU_SCOPED_TRACE("vkGetImageMemoryRequirements"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| auto resources = ResourceTracker::get(); |
| resources->on_vkGetImageMemoryRequirements(vkEnc, device, image, pMemoryRequirements); |
| } |
| static void entry_vkGetImageSparseMemoryRequirements( |
| VkDevice device, |
| VkImage image, |
| uint32_t* pSparseMemoryRequirementCount, |
| VkSparseImageMemoryRequirements* pSparseMemoryRequirements) |
| { |
| AEMU_SCOPED_TRACE("vkGetImageSparseMemoryRequirements"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkGetImageSparseMemoryRequirements(device, image, pSparseMemoryRequirementCount, pSparseMemoryRequirements, true /* do lock */); |
| } |
| static void entry_vkGetPhysicalDeviceSparseImageFormatProperties( |
| VkPhysicalDevice physicalDevice, |
| VkFormat format, |
| VkImageType type, |
| VkSampleCountFlagBits samples, |
| VkImageUsageFlags usage, |
| VkImageTiling tiling, |
| uint32_t* pPropertyCount, |
| VkSparseImageFormatProperties* pProperties) |
| { |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSparseImageFormatProperties"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkGetPhysicalDeviceSparseImageFormatProperties(physicalDevice, format, type, samples, usage, tiling, pPropertyCount, pProperties, true /* do lock */); |
| } |
| static VkResult entry_vkQueueBindSparse( |
| VkQueue queue, |
| uint32_t bindInfoCount, |
| const VkBindSparseInfo* pBindInfo, |
| VkFence fence) |
| { |
| AEMU_SCOPED_TRACE("vkQueueBindSparse"); |
| auto vkEnc = ResourceTracker::getQueueEncoder(queue); |
| VkResult vkQueueBindSparse_VkResult_return = (VkResult)0; |
| vkQueueBindSparse_VkResult_return = vkEnc->vkQueueBindSparse(queue, bindInfoCount, pBindInfo, fence, true /* do lock */); |
| return vkQueueBindSparse_VkResult_return; |
| } |
| static VkResult entry_vkCreateFence( |
| VkDevice device, |
| const VkFenceCreateInfo* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkFence* pFence) |
| { |
| AEMU_SCOPED_TRACE("vkCreateFence"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateFence_VkResult_return = (VkResult)0; |
| auto resources = ResourceTracker::get(); |
| vkCreateFence_VkResult_return = resources->on_vkCreateFence(vkEnc, VK_SUCCESS, device, pCreateInfo, pAllocator, pFence); |
| return vkCreateFence_VkResult_return; |
| } |
| static void entry_vkDestroyFence( |
| VkDevice device, |
| VkFence fence, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AEMU_SCOPED_TRACE("vkDestroyFence"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkDestroyFence(device, fence, pAllocator, true /* do lock */); |
| } |
| static VkResult entry_vkResetFences( |
| VkDevice device, |
| uint32_t fenceCount, |
| const VkFence* pFences) |
| { |
| AEMU_SCOPED_TRACE("vkResetFences"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkResetFences_VkResult_return = (VkResult)0; |
| auto resources = ResourceTracker::get(); |
| vkResetFences_VkResult_return = resources->on_vkResetFences(vkEnc, VK_SUCCESS, device, fenceCount, pFences); |
| return vkResetFences_VkResult_return; |
| } |
| static VkResult entry_vkGetFenceStatus( |
| VkDevice device, |
| VkFence fence) |
| { |
| AEMU_SCOPED_TRACE("vkGetFenceStatus"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetFenceStatus_VkResult_return = (VkResult)0; |
| vkGetFenceStatus_VkResult_return = vkEnc->vkGetFenceStatus(device, fence, true /* do lock */); |
| return vkGetFenceStatus_VkResult_return; |
| } |
| static VkResult entry_vkWaitForFences( |
| VkDevice device, |
| uint32_t fenceCount, |
| const VkFence* pFences, |
| VkBool32 waitAll, |
| uint64_t timeout) |
| { |
| AEMU_SCOPED_TRACE("vkWaitForFences"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkWaitForFences_VkResult_return = (VkResult)0; |
| auto resources = ResourceTracker::get(); |
| vkWaitForFences_VkResult_return = resources->on_vkWaitForFences(vkEnc, VK_SUCCESS, device, fenceCount, pFences, waitAll, timeout); |
| return vkWaitForFences_VkResult_return; |
| } |
| static VkResult entry_vkCreateSemaphore( |
| VkDevice device, |
| const VkSemaphoreCreateInfo* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkSemaphore* pSemaphore) |
| { |
| AEMU_SCOPED_TRACE("vkCreateSemaphore"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateSemaphore_VkResult_return = (VkResult)0; |
| auto resources = ResourceTracker::get(); |
| vkCreateSemaphore_VkResult_return = resources->on_vkCreateSemaphore(vkEnc, VK_SUCCESS, device, pCreateInfo, pAllocator, pSemaphore); |
| return vkCreateSemaphore_VkResult_return; |
| } |
| static void entry_vkDestroySemaphore( |
| VkDevice device, |
| VkSemaphore semaphore, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AEMU_SCOPED_TRACE("vkDestroySemaphore"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| auto resources = ResourceTracker::get(); |
| resources->on_vkDestroySemaphore(vkEnc, device, semaphore, pAllocator); |
| } |
| static VkResult entry_vkCreateEvent( |
| VkDevice device, |
| const VkEventCreateInfo* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkEvent* pEvent) |
| { |
| AEMU_SCOPED_TRACE("vkCreateEvent"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateEvent_VkResult_return = (VkResult)0; |
| vkCreateEvent_VkResult_return = vkEnc->vkCreateEvent(device, pCreateInfo, pAllocator, pEvent, true /* do lock */); |
| return vkCreateEvent_VkResult_return; |
| } |
| static void entry_vkDestroyEvent( |
| VkDevice device, |
| VkEvent event, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AEMU_SCOPED_TRACE("vkDestroyEvent"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkDestroyEvent(device, event, pAllocator, true /* do lock */); |
| } |
| static VkResult entry_vkGetEventStatus( |
| VkDevice device, |
| VkEvent event) |
| { |
| AEMU_SCOPED_TRACE("vkGetEventStatus"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetEventStatus_VkResult_return = (VkResult)0; |
| vkGetEventStatus_VkResult_return = vkEnc->vkGetEventStatus(device, event, true /* do lock */); |
| return vkGetEventStatus_VkResult_return; |
| } |
| static VkResult entry_vkSetEvent( |
| VkDevice device, |
| VkEvent event) |
| { |
| AEMU_SCOPED_TRACE("vkSetEvent"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkSetEvent_VkResult_return = (VkResult)0; |
| vkSetEvent_VkResult_return = vkEnc->vkSetEvent(device, event, true /* do lock */); |
| return vkSetEvent_VkResult_return; |
| } |
| static VkResult entry_vkResetEvent( |
| VkDevice device, |
| VkEvent event) |
| { |
| AEMU_SCOPED_TRACE("vkResetEvent"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkResetEvent_VkResult_return = (VkResult)0; |
| vkResetEvent_VkResult_return = vkEnc->vkResetEvent(device, event, true /* do lock */); |
| return vkResetEvent_VkResult_return; |
| } |
| static VkResult entry_vkCreateQueryPool( |
| VkDevice device, |
| const VkQueryPoolCreateInfo* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkQueryPool* pQueryPool) |
| { |
| AEMU_SCOPED_TRACE("vkCreateQueryPool"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateQueryPool_VkResult_return = (VkResult)0; |
| vkCreateQueryPool_VkResult_return = vkEnc->vkCreateQueryPool(device, pCreateInfo, pAllocator, pQueryPool, true /* do lock */); |
| return vkCreateQueryPool_VkResult_return; |
| } |
| static void entry_vkDestroyQueryPool( |
| VkDevice device, |
| VkQueryPool queryPool, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AEMU_SCOPED_TRACE("vkDestroyQueryPool"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkDestroyQueryPool(device, queryPool, pAllocator, true /* do lock */); |
| } |
| static VkResult entry_vkGetQueryPoolResults( |
| VkDevice device, |
| VkQueryPool queryPool, |
| uint32_t firstQuery, |
| uint32_t queryCount, |
| size_t dataSize, |
| void* pData, |
| VkDeviceSize stride, |
| VkQueryResultFlags flags) |
| { |
| AEMU_SCOPED_TRACE("vkGetQueryPoolResults"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetQueryPoolResults_VkResult_return = (VkResult)0; |
| vkGetQueryPoolResults_VkResult_return = vkEnc->vkGetQueryPoolResults(device, queryPool, firstQuery, queryCount, dataSize, pData, stride, flags, true /* do lock */); |
| return vkGetQueryPoolResults_VkResult_return; |
| } |
| static VkResult entry_vkCreateBuffer( |
| VkDevice device, |
| const VkBufferCreateInfo* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkBuffer* pBuffer) |
| { |
| AEMU_SCOPED_TRACE("vkCreateBuffer"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateBuffer_VkResult_return = (VkResult)0; |
| auto resources = ResourceTracker::get(); |
| vkCreateBuffer_VkResult_return = resources->on_vkCreateBuffer(vkEnc, VK_SUCCESS, device, pCreateInfo, pAllocator, pBuffer); |
| return vkCreateBuffer_VkResult_return; |
| } |
| static void entry_vkDestroyBuffer( |
| VkDevice device, |
| VkBuffer buffer, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AEMU_SCOPED_TRACE("vkDestroyBuffer"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| auto resources = ResourceTracker::get(); |
| resources->on_vkDestroyBuffer(vkEnc, device, buffer, pAllocator); |
| } |
| static VkResult entry_vkCreateBufferView( |
| VkDevice device, |
| const VkBufferViewCreateInfo* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkBufferView* pView) |
| { |
| AEMU_SCOPED_TRACE("vkCreateBufferView"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateBufferView_VkResult_return = (VkResult)0; |
| vkCreateBufferView_VkResult_return = vkEnc->vkCreateBufferView(device, pCreateInfo, pAllocator, pView, true /* do lock */); |
| return vkCreateBufferView_VkResult_return; |
| } |
| static void entry_vkDestroyBufferView( |
| VkDevice device, |
| VkBufferView bufferView, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AEMU_SCOPED_TRACE("vkDestroyBufferView"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkDestroyBufferView(device, bufferView, pAllocator, true /* do lock */); |
| } |
| static VkResult entry_vkCreateImage( |
| VkDevice device, |
| const VkImageCreateInfo* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkImage* pImage) |
| { |
| AEMU_SCOPED_TRACE("vkCreateImage"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateImage_VkResult_return = (VkResult)0; |
| auto resources = ResourceTracker::get(); |
| vkCreateImage_VkResult_return = resources->on_vkCreateImage(vkEnc, VK_SUCCESS, device, pCreateInfo, pAllocator, pImage); |
| return vkCreateImage_VkResult_return; |
| } |
| static void entry_vkDestroyImage( |
| VkDevice device, |
| VkImage image, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AEMU_SCOPED_TRACE("vkDestroyImage"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| auto resources = ResourceTracker::get(); |
| resources->on_vkDestroyImage(vkEnc, device, image, pAllocator); |
| } |
| static void entry_vkGetImageSubresourceLayout( |
| VkDevice device, |
| VkImage image, |
| const VkImageSubresource* pSubresource, |
| VkSubresourceLayout* pLayout) |
| { |
| AEMU_SCOPED_TRACE("vkGetImageSubresourceLayout"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkGetImageSubresourceLayout(device, image, pSubresource, pLayout, true /* do lock */); |
| } |
| static VkResult entry_vkCreateImageView( |
| VkDevice device, |
| const VkImageViewCreateInfo* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkImageView* pView) |
| { |
| AEMU_SCOPED_TRACE("vkCreateImageView"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateImageView_VkResult_return = (VkResult)0; |
| auto resources = ResourceTracker::get(); |
| vkCreateImageView_VkResult_return = resources->on_vkCreateImageView(vkEnc, VK_SUCCESS, device, pCreateInfo, pAllocator, pView); |
| return vkCreateImageView_VkResult_return; |
| } |
| static void entry_vkDestroyImageView( |
| VkDevice device, |
| VkImageView imageView, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AEMU_SCOPED_TRACE("vkDestroyImageView"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkDestroyImageView(device, imageView, pAllocator, true /* do lock */); |
| } |
| static VkResult entry_vkCreateShaderModule( |
| VkDevice device, |
| const VkShaderModuleCreateInfo* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkShaderModule* pShaderModule) |
| { |
| AEMU_SCOPED_TRACE("vkCreateShaderModule"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateShaderModule_VkResult_return = (VkResult)0; |
| vkCreateShaderModule_VkResult_return = vkEnc->vkCreateShaderModule(device, pCreateInfo, pAllocator, pShaderModule, true /* do lock */); |
| return vkCreateShaderModule_VkResult_return; |
| } |
| static void entry_vkDestroyShaderModule( |
| VkDevice device, |
| VkShaderModule shaderModule, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AEMU_SCOPED_TRACE("vkDestroyShaderModule"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkDestroyShaderModule(device, shaderModule, pAllocator, true /* do lock */); |
| } |
| static VkResult entry_vkCreatePipelineCache( |
| VkDevice device, |
| const VkPipelineCacheCreateInfo* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkPipelineCache* pPipelineCache) |
| { |
| AEMU_SCOPED_TRACE("vkCreatePipelineCache"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreatePipelineCache_VkResult_return = (VkResult)0; |
| vkCreatePipelineCache_VkResult_return = vkEnc->vkCreatePipelineCache(device, pCreateInfo, pAllocator, pPipelineCache, true /* do lock */); |
| return vkCreatePipelineCache_VkResult_return; |
| } |
| static void entry_vkDestroyPipelineCache( |
| VkDevice device, |
| VkPipelineCache pipelineCache, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AEMU_SCOPED_TRACE("vkDestroyPipelineCache"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkDestroyPipelineCache(device, pipelineCache, pAllocator, true /* do lock */); |
| } |
| static VkResult entry_vkGetPipelineCacheData( |
| VkDevice device, |
| VkPipelineCache pipelineCache, |
| size_t* pDataSize, |
| void* pData) |
| { |
| AEMU_SCOPED_TRACE("vkGetPipelineCacheData"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetPipelineCacheData_VkResult_return = (VkResult)0; |
| vkGetPipelineCacheData_VkResult_return = vkEnc->vkGetPipelineCacheData(device, pipelineCache, pDataSize, pData, true /* do lock */); |
| return vkGetPipelineCacheData_VkResult_return; |
| } |
| static VkResult entry_vkMergePipelineCaches( |
| VkDevice device, |
| VkPipelineCache dstCache, |
| uint32_t srcCacheCount, |
| const VkPipelineCache* pSrcCaches) |
| { |
| AEMU_SCOPED_TRACE("vkMergePipelineCaches"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkMergePipelineCaches_VkResult_return = (VkResult)0; |
| vkMergePipelineCaches_VkResult_return = vkEnc->vkMergePipelineCaches(device, dstCache, srcCacheCount, pSrcCaches, true /* do lock */); |
| return vkMergePipelineCaches_VkResult_return; |
| } |
| static VkResult entry_vkCreateGraphicsPipelines( |
| VkDevice device, |
| VkPipelineCache pipelineCache, |
| uint32_t createInfoCount, |
| const VkGraphicsPipelineCreateInfo* pCreateInfos, |
| const VkAllocationCallbacks* pAllocator, |
| VkPipeline* pPipelines) |
| { |
| AEMU_SCOPED_TRACE("vkCreateGraphicsPipelines"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateGraphicsPipelines_VkResult_return = (VkResult)0; |
| auto resources = ResourceTracker::get(); |
| vkCreateGraphicsPipelines_VkResult_return = resources->on_vkCreateGraphicsPipelines(vkEnc, VK_SUCCESS, device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines); |
| return vkCreateGraphicsPipelines_VkResult_return; |
| } |
| static VkResult entry_vkCreateComputePipelines( |
| VkDevice device, |
| VkPipelineCache pipelineCache, |
| uint32_t createInfoCount, |
| const VkComputePipelineCreateInfo* pCreateInfos, |
| const VkAllocationCallbacks* pAllocator, |
| VkPipeline* pPipelines) |
| { |
| AEMU_SCOPED_TRACE("vkCreateComputePipelines"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateComputePipelines_VkResult_return = (VkResult)0; |
| vkCreateComputePipelines_VkResult_return = vkEnc->vkCreateComputePipelines(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines, true /* do lock */); |
| return vkCreateComputePipelines_VkResult_return; |
| } |
| static void entry_vkDestroyPipeline( |
| VkDevice device, |
| VkPipeline pipeline, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AEMU_SCOPED_TRACE("vkDestroyPipeline"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkDestroyPipeline(device, pipeline, pAllocator, true /* do lock */); |
| } |
| static VkResult entry_vkCreatePipelineLayout( |
| VkDevice device, |
| const VkPipelineLayoutCreateInfo* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkPipelineLayout* pPipelineLayout) |
| { |
| AEMU_SCOPED_TRACE("vkCreatePipelineLayout"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreatePipelineLayout_VkResult_return = (VkResult)0; |
| vkCreatePipelineLayout_VkResult_return = vkEnc->vkCreatePipelineLayout(device, pCreateInfo, pAllocator, pPipelineLayout, true /* do lock */); |
| return vkCreatePipelineLayout_VkResult_return; |
| } |
| static void entry_vkDestroyPipelineLayout( |
| VkDevice device, |
| VkPipelineLayout pipelineLayout, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AEMU_SCOPED_TRACE("vkDestroyPipelineLayout"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkDestroyPipelineLayout(device, pipelineLayout, pAllocator, true /* do lock */); |
| } |
| static VkResult entry_vkCreateSampler( |
| VkDevice device, |
| const VkSamplerCreateInfo* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkSampler* pSampler) |
| { |
| AEMU_SCOPED_TRACE("vkCreateSampler"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateSampler_VkResult_return = (VkResult)0; |
| auto resources = ResourceTracker::get(); |
| vkCreateSampler_VkResult_return = resources->on_vkCreateSampler(vkEnc, VK_SUCCESS, device, pCreateInfo, pAllocator, pSampler); |
| return vkCreateSampler_VkResult_return; |
| } |
| static void entry_vkDestroySampler( |
| VkDevice device, |
| VkSampler sampler, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AEMU_SCOPED_TRACE("vkDestroySampler"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkDestroySampler(device, sampler, pAllocator, true /* do lock */); |
| } |
| static VkResult entry_vkCreateDescriptorSetLayout( |
| VkDevice device, |
| const VkDescriptorSetLayoutCreateInfo* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkDescriptorSetLayout* pSetLayout) |
| { |
| AEMU_SCOPED_TRACE("vkCreateDescriptorSetLayout"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateDescriptorSetLayout_VkResult_return = (VkResult)0; |
| auto resources = ResourceTracker::get(); |
| vkCreateDescriptorSetLayout_VkResult_return = resources->on_vkCreateDescriptorSetLayout(vkEnc, VK_SUCCESS, device, pCreateInfo, pAllocator, pSetLayout); |
| return vkCreateDescriptorSetLayout_VkResult_return; |
| } |
| static void entry_vkDestroyDescriptorSetLayout( |
| VkDevice device, |
| VkDescriptorSetLayout descriptorSetLayout, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AEMU_SCOPED_TRACE("vkDestroyDescriptorSetLayout"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| auto resources = ResourceTracker::get(); |
| resources->on_vkDestroyDescriptorSetLayout(vkEnc, device, descriptorSetLayout, pAllocator); |
| } |
| static VkResult entry_vkCreateDescriptorPool( |
| VkDevice device, |
| const VkDescriptorPoolCreateInfo* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkDescriptorPool* pDescriptorPool) |
| { |
| AEMU_SCOPED_TRACE("vkCreateDescriptorPool"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateDescriptorPool_VkResult_return = (VkResult)0; |
| auto resources = ResourceTracker::get(); |
| vkCreateDescriptorPool_VkResult_return = resources->on_vkCreateDescriptorPool(vkEnc, VK_SUCCESS, device, pCreateInfo, pAllocator, pDescriptorPool); |
| return vkCreateDescriptorPool_VkResult_return; |
| } |
| static void entry_vkDestroyDescriptorPool( |
| VkDevice device, |
| VkDescriptorPool descriptorPool, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AEMU_SCOPED_TRACE("vkDestroyDescriptorPool"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| auto resources = ResourceTracker::get(); |
| resources->on_vkDestroyDescriptorPool(vkEnc, device, descriptorPool, pAllocator); |
| } |
| static VkResult entry_vkResetDescriptorPool( |
| VkDevice device, |
| VkDescriptorPool descriptorPool, |
| VkDescriptorPoolResetFlags flags) |
| { |
| AEMU_SCOPED_TRACE("vkResetDescriptorPool"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkResetDescriptorPool_VkResult_return = (VkResult)0; |
| auto resources = ResourceTracker::get(); |
| vkResetDescriptorPool_VkResult_return = resources->on_vkResetDescriptorPool(vkEnc, VK_SUCCESS, device, descriptorPool, flags); |
| return vkResetDescriptorPool_VkResult_return; |
| } |
| static VkResult entry_vkAllocateDescriptorSets( |
| VkDevice device, |
| const VkDescriptorSetAllocateInfo* pAllocateInfo, |
| VkDescriptorSet* pDescriptorSets) |
| { |
| AEMU_SCOPED_TRACE("vkAllocateDescriptorSets"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkAllocateDescriptorSets_VkResult_return = (VkResult)0; |
| auto resources = ResourceTracker::get(); |
| vkAllocateDescriptorSets_VkResult_return = resources->on_vkAllocateDescriptorSets(vkEnc, VK_SUCCESS, device, pAllocateInfo, pDescriptorSets); |
| return vkAllocateDescriptorSets_VkResult_return; |
| } |
| static VkResult entry_vkFreeDescriptorSets( |
| VkDevice device, |
| VkDescriptorPool descriptorPool, |
| uint32_t descriptorSetCount, |
| const VkDescriptorSet* pDescriptorSets) |
| { |
| AEMU_SCOPED_TRACE("vkFreeDescriptorSets"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkFreeDescriptorSets_VkResult_return = (VkResult)0; |
| auto resources = ResourceTracker::get(); |
| vkFreeDescriptorSets_VkResult_return = resources->on_vkFreeDescriptorSets(vkEnc, VK_SUCCESS, device, descriptorPool, descriptorSetCount, pDescriptorSets); |
| return vkFreeDescriptorSets_VkResult_return; |
| } |
| static void entry_vkUpdateDescriptorSets( |
| VkDevice device, |
| uint32_t descriptorWriteCount, |
| const VkWriteDescriptorSet* pDescriptorWrites, |
| uint32_t descriptorCopyCount, |
| const VkCopyDescriptorSet* pDescriptorCopies) |
| { |
| AEMU_SCOPED_TRACE("vkUpdateDescriptorSets"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| auto resources = ResourceTracker::get(); |
| resources->on_vkUpdateDescriptorSets(vkEnc, device, descriptorWriteCount, pDescriptorWrites, descriptorCopyCount, pDescriptorCopies); |
| } |
| static VkResult entry_vkCreateFramebuffer( |
| VkDevice device, |
| const VkFramebufferCreateInfo* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkFramebuffer* pFramebuffer) |
| { |
| AEMU_SCOPED_TRACE("vkCreateFramebuffer"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateFramebuffer_VkResult_return = (VkResult)0; |
| vkCreateFramebuffer_VkResult_return = vkEnc->vkCreateFramebuffer(device, pCreateInfo, pAllocator, pFramebuffer, true /* do lock */); |
| return vkCreateFramebuffer_VkResult_return; |
| } |
| static void entry_vkDestroyFramebuffer( |
| VkDevice device, |
| VkFramebuffer framebuffer, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AEMU_SCOPED_TRACE("vkDestroyFramebuffer"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkDestroyFramebuffer(device, framebuffer, pAllocator, true /* do lock */); |
| } |
| static VkResult entry_vkCreateRenderPass( |
| VkDevice device, |
| const VkRenderPassCreateInfo* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkRenderPass* pRenderPass) |
| { |
| AEMU_SCOPED_TRACE("vkCreateRenderPass"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateRenderPass_VkResult_return = (VkResult)0; |
| vkCreateRenderPass_VkResult_return = vkEnc->vkCreateRenderPass(device, pCreateInfo, pAllocator, pRenderPass, true /* do lock */); |
| return vkCreateRenderPass_VkResult_return; |
| } |
| static void entry_vkDestroyRenderPass( |
| VkDevice device, |
| VkRenderPass renderPass, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AEMU_SCOPED_TRACE("vkDestroyRenderPass"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkDestroyRenderPass(device, renderPass, pAllocator, true /* do lock */); |
| } |
| static void entry_vkGetRenderAreaGranularity( |
| VkDevice device, |
| VkRenderPass renderPass, |
| VkExtent2D* pGranularity) |
| { |
| AEMU_SCOPED_TRACE("vkGetRenderAreaGranularity"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkGetRenderAreaGranularity(device, renderPass, pGranularity, true /* do lock */); |
| } |
| static VkResult entry_vkCreateCommandPool( |
| VkDevice device, |
| const VkCommandPoolCreateInfo* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkCommandPool* pCommandPool) |
| { |
| AEMU_SCOPED_TRACE("vkCreateCommandPool"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateCommandPool_VkResult_return = (VkResult)0; |
| vkCreateCommandPool_VkResult_return = vkEnc->vkCreateCommandPool(device, pCreateInfo, pAllocator, pCommandPool, true /* do lock */); |
| return vkCreateCommandPool_VkResult_return; |
| } |
| static void entry_vkDestroyCommandPool( |
| VkDevice device, |
| VkCommandPool commandPool, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AEMU_SCOPED_TRACE("vkDestroyCommandPool"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkDestroyCommandPool(device, commandPool, pAllocator, true /* do lock */); |
| } |
| static VkResult entry_vkResetCommandPool( |
| VkDevice device, |
| VkCommandPool commandPool, |
| VkCommandPoolResetFlags flags) |
| { |
| AEMU_SCOPED_TRACE("vkResetCommandPool"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkResetCommandPool_VkResult_return = (VkResult)0; |
| vkResetCommandPool_VkResult_return = vkEnc->vkResetCommandPool(device, commandPool, flags, true /* do lock */); |
| if (vkResetCommandPool_VkResult_return == VK_SUCCESS) { |
| ResourceTracker::get()->resetCommandPoolStagingInfo(commandPool); |
| } |
| return vkResetCommandPool_VkResult_return; |
| } |
| static VkResult entry_vkAllocateCommandBuffers( |
| VkDevice device, |
| const VkCommandBufferAllocateInfo* pAllocateInfo, |
| VkCommandBuffer* pCommandBuffers) |
| { |
| AEMU_SCOPED_TRACE("vkAllocateCommandBuffers"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkAllocateCommandBuffers_VkResult_return = (VkResult)0; |
| auto resources = ResourceTracker::get(); |
| vkAllocateCommandBuffers_VkResult_return = resources->on_vkAllocateCommandBuffers(vkEnc, VK_SUCCESS, device, pAllocateInfo, pCommandBuffers); |
| if (vkAllocateCommandBuffers_VkResult_return == VK_SUCCESS) { |
| ResourceTracker::get()->addToCommandPool(pAllocateInfo->commandPool, pAllocateInfo->commandBufferCount, pCommandBuffers); |
| } |
| return vkAllocateCommandBuffers_VkResult_return; |
| } |
| static void entry_vkFreeCommandBuffers( |
| VkDevice device, |
| VkCommandPool commandPool, |
| uint32_t commandBufferCount, |
| const VkCommandBuffer* pCommandBuffers) |
| { |
| AEMU_SCOPED_TRACE("vkFreeCommandBuffers"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkFreeCommandBuffers(device, commandPool, commandBufferCount, pCommandBuffers, true /* do lock */); |
| } |
| static VkResult entry_vkBeginCommandBuffer( |
| VkCommandBuffer commandBuffer, |
| const VkCommandBufferBeginInfo* pBeginInfo) |
| { |
| AEMU_SCOPED_TRACE("vkBeginCommandBuffer"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| VkResult vkBeginCommandBuffer_VkResult_return = (VkResult)0; |
| auto resources = ResourceTracker::get(); |
| vkBeginCommandBuffer_VkResult_return = resources->on_vkBeginCommandBuffer(vkEnc, VK_SUCCESS, commandBuffer, pBeginInfo); |
| return vkBeginCommandBuffer_VkResult_return; |
| } |
| static VkResult entry_vkEndCommandBuffer( |
| VkCommandBuffer commandBuffer) |
| { |
| AEMU_SCOPED_TRACE("vkEndCommandBuffer"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| VkResult vkEndCommandBuffer_VkResult_return = (VkResult)0; |
| auto resources = ResourceTracker::get(); |
| vkEndCommandBuffer_VkResult_return = resources->on_vkEndCommandBuffer(vkEnc, VK_SUCCESS, commandBuffer); |
| return vkEndCommandBuffer_VkResult_return; |
| } |
| static VkResult entry_vkResetCommandBuffer( |
| VkCommandBuffer commandBuffer, |
| VkCommandBufferResetFlags flags) |
| { |
| AEMU_SCOPED_TRACE("vkResetCommandBuffer"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| VkResult vkResetCommandBuffer_VkResult_return = (VkResult)0; |
| auto resources = ResourceTracker::get(); |
| vkResetCommandBuffer_VkResult_return = resources->on_vkResetCommandBuffer(vkEnc, VK_SUCCESS, commandBuffer, flags); |
| return vkResetCommandBuffer_VkResult_return; |
| } |
| static void entry_vkCmdBindPipeline( |
| VkCommandBuffer commandBuffer, |
| VkPipelineBindPoint pipelineBindPoint, |
| VkPipeline pipeline) |
| { |
| AEMU_SCOPED_TRACE("vkCmdBindPipeline"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdBindPipeline(commandBuffer, pipelineBindPoint, pipeline, true /* do lock */); |
| } |
| static void entry_vkCmdSetViewport( |
| VkCommandBuffer commandBuffer, |
| uint32_t firstViewport, |
| uint32_t viewportCount, |
| const VkViewport* pViewports) |
| { |
| AEMU_SCOPED_TRACE("vkCmdSetViewport"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSetViewport(commandBuffer, firstViewport, viewportCount, pViewports, true /* do lock */); |
| } |
| static void entry_vkCmdSetScissor( |
| VkCommandBuffer commandBuffer, |
| uint32_t firstScissor, |
| uint32_t scissorCount, |
| const VkRect2D* pScissors) |
| { |
| AEMU_SCOPED_TRACE("vkCmdSetScissor"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSetScissor(commandBuffer, firstScissor, scissorCount, pScissors, true /* do lock */); |
| } |
| static void entry_vkCmdSetLineWidth( |
| VkCommandBuffer commandBuffer, |
| float lineWidth) |
| { |
| AEMU_SCOPED_TRACE("vkCmdSetLineWidth"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSetLineWidth(commandBuffer, lineWidth, true /* do lock */); |
| } |
| static void entry_vkCmdSetDepthBias( |
| VkCommandBuffer commandBuffer, |
| float depthBiasConstantFactor, |
| float depthBiasClamp, |
| float depthBiasSlopeFactor) |
| { |
| AEMU_SCOPED_TRACE("vkCmdSetDepthBias"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSetDepthBias(commandBuffer, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor, true /* do lock */); |
| } |
| static void entry_vkCmdSetBlendConstants( |
| VkCommandBuffer commandBuffer, |
| const float blendConstants[4]) |
| { |
| AEMU_SCOPED_TRACE("vkCmdSetBlendConstants"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSetBlendConstants(commandBuffer, blendConstants, true /* do lock */); |
| } |
| static void entry_vkCmdSetDepthBounds( |
| VkCommandBuffer commandBuffer, |
| float minDepthBounds, |
| float maxDepthBounds) |
| { |
| AEMU_SCOPED_TRACE("vkCmdSetDepthBounds"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSetDepthBounds(commandBuffer, minDepthBounds, maxDepthBounds, true /* do lock */); |
| } |
| static void entry_vkCmdSetStencilCompareMask( |
| VkCommandBuffer commandBuffer, |
| VkStencilFaceFlags faceMask, |
| uint32_t compareMask) |
| { |
| AEMU_SCOPED_TRACE("vkCmdSetStencilCompareMask"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSetStencilCompareMask(commandBuffer, faceMask, compareMask, true /* do lock */); |
| } |
| static void entry_vkCmdSetStencilWriteMask( |
| VkCommandBuffer commandBuffer, |
| VkStencilFaceFlags faceMask, |
| uint32_t writeMask) |
| { |
| AEMU_SCOPED_TRACE("vkCmdSetStencilWriteMask"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSetStencilWriteMask(commandBuffer, faceMask, writeMask, true /* do lock */); |
| } |
| static void entry_vkCmdSetStencilReference( |
| VkCommandBuffer commandBuffer, |
| VkStencilFaceFlags faceMask, |
| uint32_t reference) |
| { |
| AEMU_SCOPED_TRACE("vkCmdSetStencilReference"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSetStencilReference(commandBuffer, faceMask, reference, true /* do lock */); |
| } |
| static void entry_vkCmdBindDescriptorSets( |
| VkCommandBuffer commandBuffer, |
| VkPipelineBindPoint pipelineBindPoint, |
| VkPipelineLayout layout, |
| uint32_t firstSet, |
| uint32_t descriptorSetCount, |
| const VkDescriptorSet* pDescriptorSets, |
| uint32_t dynamicOffsetCount, |
| const uint32_t* pDynamicOffsets) |
| { |
| AEMU_SCOPED_TRACE("vkCmdBindDescriptorSets"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| auto resources = ResourceTracker::get(); |
| resources->on_vkCmdBindDescriptorSets(vkEnc, commandBuffer, pipelineBindPoint, layout, firstSet, descriptorSetCount, pDescriptorSets, dynamicOffsetCount, pDynamicOffsets); |
| } |
| static void entry_vkCmdBindIndexBuffer( |
| VkCommandBuffer commandBuffer, |
| VkBuffer buffer, |
| VkDeviceSize offset, |
| VkIndexType indexType) |
| { |
| AEMU_SCOPED_TRACE("vkCmdBindIndexBuffer"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdBindIndexBuffer(commandBuffer, buffer, offset, indexType, true /* do lock */); |
| } |
| static void entry_vkCmdBindVertexBuffers( |
| VkCommandBuffer commandBuffer, |
| uint32_t firstBinding, |
| uint32_t bindingCount, |
| const VkBuffer* pBuffers, |
| const VkDeviceSize* pOffsets) |
| { |
| AEMU_SCOPED_TRACE("vkCmdBindVertexBuffers"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdBindVertexBuffers(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, true /* do lock */); |
| } |
| static void entry_vkCmdDraw( |
| VkCommandBuffer commandBuffer, |
| uint32_t vertexCount, |
| uint32_t instanceCount, |
| uint32_t firstVertex, |
| uint32_t firstInstance) |
| { |
| AEMU_SCOPED_TRACE("vkCmdDraw"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdDraw(commandBuffer, vertexCount, instanceCount, firstVertex, firstInstance, true /* do lock */); |
| } |
| static void entry_vkCmdDrawIndexed( |
| VkCommandBuffer commandBuffer, |
| uint32_t indexCount, |
| uint32_t instanceCount, |
| uint32_t firstIndex, |
| int32_t vertexOffset, |
| uint32_t firstInstance) |
| { |
| AEMU_SCOPED_TRACE("vkCmdDrawIndexed"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdDrawIndexed(commandBuffer, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance, true /* do lock */); |
| } |
| static void entry_vkCmdDrawIndirect( |
| VkCommandBuffer commandBuffer, |
| VkBuffer buffer, |
| VkDeviceSize offset, |
| uint32_t drawCount, |
| uint32_t stride) |
| { |
| AEMU_SCOPED_TRACE("vkCmdDrawIndirect"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdDrawIndirect(commandBuffer, buffer, offset, drawCount, stride, true /* do lock */); |
| } |
| static void entry_vkCmdDrawIndexedIndirect( |
| VkCommandBuffer commandBuffer, |
| VkBuffer buffer, |
| VkDeviceSize offset, |
| uint32_t drawCount, |
| uint32_t stride) |
| { |
| AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirect"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdDrawIndexedIndirect(commandBuffer, buffer, offset, drawCount, stride, true /* do lock */); |
| } |
| static void entry_vkCmdDispatch( |
| VkCommandBuffer commandBuffer, |
| uint32_t groupCountX, |
| uint32_t groupCountY, |
| uint32_t groupCountZ) |
| { |
| AEMU_SCOPED_TRACE("vkCmdDispatch"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdDispatch(commandBuffer, groupCountX, groupCountY, groupCountZ, true /* do lock */); |
| } |
| static void entry_vkCmdDispatchIndirect( |
| VkCommandBuffer commandBuffer, |
| VkBuffer buffer, |
| VkDeviceSize offset) |
| { |
| AEMU_SCOPED_TRACE("vkCmdDispatchIndirect"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdDispatchIndirect(commandBuffer, buffer, offset, true /* do lock */); |
| } |
| static void entry_vkCmdCopyBuffer( |
| VkCommandBuffer commandBuffer, |
| VkBuffer srcBuffer, |
| VkBuffer dstBuffer, |
| uint32_t regionCount, |
| const VkBufferCopy* pRegions) |
| { |
| AEMU_SCOPED_TRACE("vkCmdCopyBuffer"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdCopyBuffer(commandBuffer, srcBuffer, dstBuffer, regionCount, pRegions, true /* do lock */); |
| } |
| static void entry_vkCmdCopyImage( |
| VkCommandBuffer commandBuffer, |
| VkImage srcImage, |
| VkImageLayout srcImageLayout, |
| VkImage dstImage, |
| VkImageLayout dstImageLayout, |
| uint32_t regionCount, |
| const VkImageCopy* pRegions) |
| { |
| AEMU_SCOPED_TRACE("vkCmdCopyImage"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdCopyImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions, true /* do lock */); |
| } |
| static void entry_vkCmdBlitImage( |
| VkCommandBuffer commandBuffer, |
| VkImage srcImage, |
| VkImageLayout srcImageLayout, |
| VkImage dstImage, |
| VkImageLayout dstImageLayout, |
| uint32_t regionCount, |
| const VkImageBlit* pRegions, |
| VkFilter filter) |
| { |
| AEMU_SCOPED_TRACE("vkCmdBlitImage"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdBlitImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions, filter, true /* do lock */); |
| } |
| static void entry_vkCmdCopyBufferToImage( |
| VkCommandBuffer commandBuffer, |
| VkBuffer srcBuffer, |
| VkImage dstImage, |
| VkImageLayout dstImageLayout, |
| uint32_t regionCount, |
| const VkBufferImageCopy* pRegions) |
| { |
| AEMU_SCOPED_TRACE("vkCmdCopyBufferToImage"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdCopyBufferToImage(commandBuffer, srcBuffer, dstImage, dstImageLayout, regionCount, pRegions, true /* do lock */); |
| } |
| static void entry_vkCmdCopyImageToBuffer( |
| VkCommandBuffer commandBuffer, |
| VkImage srcImage, |
| VkImageLayout srcImageLayout, |
| VkBuffer dstBuffer, |
| uint32_t regionCount, |
| const VkBufferImageCopy* pRegions) |
| { |
| AEMU_SCOPED_TRACE("vkCmdCopyImageToBuffer"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdCopyImageToBuffer(commandBuffer, srcImage, srcImageLayout, dstBuffer, regionCount, pRegions, true /* do lock */); |
| } |
| static void entry_vkCmdUpdateBuffer( |
| VkCommandBuffer commandBuffer, |
| VkBuffer dstBuffer, |
| VkDeviceSize dstOffset, |
| VkDeviceSize dataSize, |
| const void* pData) |
| { |
| AEMU_SCOPED_TRACE("vkCmdUpdateBuffer"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdUpdateBuffer(commandBuffer, dstBuffer, dstOffset, dataSize, pData, true /* do lock */); |
| } |
| static void entry_vkCmdFillBuffer( |
| VkCommandBuffer commandBuffer, |
| VkBuffer dstBuffer, |
| VkDeviceSize dstOffset, |
| VkDeviceSize size, |
| uint32_t data) |
| { |
| AEMU_SCOPED_TRACE("vkCmdFillBuffer"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdFillBuffer(commandBuffer, dstBuffer, dstOffset, size, data, true /* do lock */); |
| } |
| static void entry_vkCmdClearColorImage( |
| VkCommandBuffer commandBuffer, |
| VkImage image, |
| VkImageLayout imageLayout, |
| const VkClearColorValue* pColor, |
| uint32_t rangeCount, |
| const VkImageSubresourceRange* pRanges) |
| { |
| AEMU_SCOPED_TRACE("vkCmdClearColorImage"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdClearColorImage(commandBuffer, image, imageLayout, pColor, rangeCount, pRanges, true /* do lock */); |
| } |
| static void entry_vkCmdClearDepthStencilImage( |
| VkCommandBuffer commandBuffer, |
| VkImage image, |
| VkImageLayout imageLayout, |
| const VkClearDepthStencilValue* pDepthStencil, |
| uint32_t rangeCount, |
| const VkImageSubresourceRange* pRanges) |
| { |
| AEMU_SCOPED_TRACE("vkCmdClearDepthStencilImage"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdClearDepthStencilImage(commandBuffer, image, imageLayout, pDepthStencil, rangeCount, pRanges, true /* do lock */); |
| } |
| static void entry_vkCmdClearAttachments( |
| VkCommandBuffer commandBuffer, |
| uint32_t attachmentCount, |
| const VkClearAttachment* pAttachments, |
| uint32_t rectCount, |
| const VkClearRect* pRects) |
| { |
| AEMU_SCOPED_TRACE("vkCmdClearAttachments"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdClearAttachments(commandBuffer, attachmentCount, pAttachments, rectCount, pRects, true /* do lock */); |
| } |
| static void entry_vkCmdResolveImage( |
| VkCommandBuffer commandBuffer, |
| VkImage srcImage, |
| VkImageLayout srcImageLayout, |
| VkImage dstImage, |
| VkImageLayout dstImageLayout, |
| uint32_t regionCount, |
| const VkImageResolve* pRegions) |
| { |
| AEMU_SCOPED_TRACE("vkCmdResolveImage"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdResolveImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions, true /* do lock */); |
| } |
| static void entry_vkCmdSetEvent( |
| VkCommandBuffer commandBuffer, |
| VkEvent event, |
| VkPipelineStageFlags stageMask) |
| { |
| AEMU_SCOPED_TRACE("vkCmdSetEvent"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSetEvent(commandBuffer, event, stageMask, true /* do lock */); |
| } |
| static void entry_vkCmdResetEvent( |
| VkCommandBuffer commandBuffer, |
| VkEvent event, |
| VkPipelineStageFlags stageMask) |
| { |
| AEMU_SCOPED_TRACE("vkCmdResetEvent"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdResetEvent(commandBuffer, event, stageMask, true /* do lock */); |
| } |
| static void 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) |
| { |
| AEMU_SCOPED_TRACE("vkCmdWaitEvents"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdWaitEvents(commandBuffer, eventCount, pEvents, srcStageMask, dstStageMask, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers, true /* do lock */); |
| } |
| static void 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) |
| { |
| AEMU_SCOPED_TRACE("vkCmdPipelineBarrier"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| auto resources = ResourceTracker::get(); |
| resources->on_vkCmdPipelineBarrier(vkEnc, commandBuffer, srcStageMask, dstStageMask, dependencyFlags, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers); |
| } |
| static void entry_vkCmdBeginQuery( |
| VkCommandBuffer commandBuffer, |
| VkQueryPool queryPool, |
| uint32_t query, |
| VkQueryControlFlags flags) |
| { |
| AEMU_SCOPED_TRACE("vkCmdBeginQuery"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdBeginQuery(commandBuffer, queryPool, query, flags, true /* do lock */); |
| } |
| static void entry_vkCmdEndQuery( |
| VkCommandBuffer commandBuffer, |
| VkQueryPool queryPool, |
| uint32_t query) |
| { |
| AEMU_SCOPED_TRACE("vkCmdEndQuery"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdEndQuery(commandBuffer, queryPool, query, true /* do lock */); |
| } |
| static void entry_vkCmdResetQueryPool( |
| VkCommandBuffer commandBuffer, |
| VkQueryPool queryPool, |
| uint32_t firstQuery, |
| uint32_t queryCount) |
| { |
| AEMU_SCOPED_TRACE("vkCmdResetQueryPool"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdResetQueryPool(commandBuffer, queryPool, firstQuery, queryCount, true /* do lock */); |
| } |
| static void entry_vkCmdWriteTimestamp( |
| VkCommandBuffer commandBuffer, |
| VkPipelineStageFlagBits pipelineStage, |
| VkQueryPool queryPool, |
| uint32_t query) |
| { |
| AEMU_SCOPED_TRACE("vkCmdWriteTimestamp"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdWriteTimestamp(commandBuffer, pipelineStage, queryPool, query, true /* do lock */); |
| } |
| static void entry_vkCmdCopyQueryPoolResults( |
| VkCommandBuffer commandBuffer, |
| VkQueryPool queryPool, |
| uint32_t firstQuery, |
| uint32_t queryCount, |
| VkBuffer dstBuffer, |
| VkDeviceSize dstOffset, |
| VkDeviceSize stride, |
| VkQueryResultFlags flags) |
| { |
| AEMU_SCOPED_TRACE("vkCmdCopyQueryPoolResults"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdCopyQueryPoolResults(commandBuffer, queryPool, firstQuery, queryCount, dstBuffer, dstOffset, stride, flags, true /* do lock */); |
| } |
| static void entry_vkCmdPushConstants( |
| VkCommandBuffer commandBuffer, |
| VkPipelineLayout layout, |
| VkShaderStageFlags stageFlags, |
| uint32_t offset, |
| uint32_t size, |
| const void* pValues) |
| { |
| AEMU_SCOPED_TRACE("vkCmdPushConstants"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdPushConstants(commandBuffer, layout, stageFlags, offset, size, pValues, true /* do lock */); |
| } |
| static void entry_vkCmdBeginRenderPass( |
| VkCommandBuffer commandBuffer, |
| const VkRenderPassBeginInfo* pRenderPassBegin, |
| VkSubpassContents contents) |
| { |
| AEMU_SCOPED_TRACE("vkCmdBeginRenderPass"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdBeginRenderPass(commandBuffer, pRenderPassBegin, contents, true /* do lock */); |
| } |
| static void entry_vkCmdNextSubpass( |
| VkCommandBuffer commandBuffer, |
| VkSubpassContents contents) |
| { |
| AEMU_SCOPED_TRACE("vkCmdNextSubpass"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdNextSubpass(commandBuffer, contents, true /* do lock */); |
| } |
| static void entry_vkCmdEndRenderPass( |
| VkCommandBuffer commandBuffer) |
| { |
| AEMU_SCOPED_TRACE("vkCmdEndRenderPass"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdEndRenderPass(commandBuffer, true /* do lock */); |
| } |
| static void entry_vkCmdExecuteCommands( |
| VkCommandBuffer commandBuffer, |
| uint32_t commandBufferCount, |
| const VkCommandBuffer* pCommandBuffers) |
| { |
| AEMU_SCOPED_TRACE("vkCmdExecuteCommands"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| auto resources = ResourceTracker::get(); |
| resources->on_vkCmdExecuteCommands(vkEnc, commandBuffer, commandBufferCount, pCommandBuffers); |
| } |
| #endif |
| #ifdef VK_VERSION_1_1 |
| static VkResult entry_vkEnumerateInstanceVersion( |
| uint32_t* pApiVersion) |
| { |
| AEMU_SCOPED_TRACE("vkEnumerateInstanceVersion"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkEnumerateInstanceVersion_VkResult_return = (VkResult)0; |
| vkEnumerateInstanceVersion_VkResult_return = vkEnc->vkEnumerateInstanceVersion(pApiVersion, true /* do lock */); |
| return vkEnumerateInstanceVersion_VkResult_return; |
| } |
| static VkResult entry_vkBindBufferMemory2( |
| VkDevice device, |
| uint32_t bindInfoCount, |
| const VkBindBufferMemoryInfo* pBindInfos) |
| { |
| AEMU_SCOPED_TRACE("vkBindBufferMemory2"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkBindBufferMemory2_VkResult_return = (VkResult)0; |
| auto resources = ResourceTracker::get(); |
| vkBindBufferMemory2_VkResult_return = resources->on_vkBindBufferMemory2(vkEnc, VK_SUCCESS, device, bindInfoCount, pBindInfos); |
| return vkBindBufferMemory2_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkBindBufferMemory2( |
| VkDevice device, |
| uint32_t bindInfoCount, |
| const VkBindBufferMemoryInfo* pBindInfos) |
| { |
| auto resources = ResourceTracker::get(); |
| if (resources->getApiVersionFromDevice(device) < VK_API_VERSION_1_1) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkBindBufferMemory2", "VK_VERSION_1_1"); |
| } |
| AEMU_SCOPED_TRACE("vkBindBufferMemory2"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkBindBufferMemory2_VkResult_return = (VkResult)0; |
| vkBindBufferMemory2_VkResult_return = resources->on_vkBindBufferMemory2(vkEnc, VK_SUCCESS, device, bindInfoCount, pBindInfos); |
| return vkBindBufferMemory2_VkResult_return; |
| } |
| static VkResult entry_vkBindImageMemory2( |
| VkDevice device, |
| uint32_t bindInfoCount, |
| const VkBindImageMemoryInfo* pBindInfos) |
| { |
| AEMU_SCOPED_TRACE("vkBindImageMemory2"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkBindImageMemory2_VkResult_return = (VkResult)0; |
| auto resources = ResourceTracker::get(); |
| vkBindImageMemory2_VkResult_return = resources->on_vkBindImageMemory2(vkEnc, VK_SUCCESS, device, bindInfoCount, pBindInfos); |
| return vkBindImageMemory2_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkBindImageMemory2( |
| VkDevice device, |
| uint32_t bindInfoCount, |
| const VkBindImageMemoryInfo* pBindInfos) |
| { |
| auto resources = ResourceTracker::get(); |
| if (resources->getApiVersionFromDevice(device) < VK_API_VERSION_1_1) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkBindImageMemory2", "VK_VERSION_1_1"); |
| } |
| AEMU_SCOPED_TRACE("vkBindImageMemory2"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkBindImageMemory2_VkResult_return = (VkResult)0; |
| vkBindImageMemory2_VkResult_return = resources->on_vkBindImageMemory2(vkEnc, VK_SUCCESS, device, bindInfoCount, pBindInfos); |
| return vkBindImageMemory2_VkResult_return; |
| } |
| static void entry_vkGetDeviceGroupPeerMemoryFeatures( |
| VkDevice device, |
| uint32_t heapIndex, |
| uint32_t localDeviceIndex, |
| uint32_t remoteDeviceIndex, |
| VkPeerMemoryFeatureFlags* pPeerMemoryFeatures) |
| { |
| AEMU_SCOPED_TRACE("vkGetDeviceGroupPeerMemoryFeatures"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkGetDeviceGroupPeerMemoryFeatures(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures, true /* do lock */); |
| } |
| static void dynCheck_entry_vkGetDeviceGroupPeerMemoryFeatures( |
| VkDevice device, |
| uint32_t heapIndex, |
| uint32_t localDeviceIndex, |
| uint32_t remoteDeviceIndex, |
| VkPeerMemoryFeatureFlags* pPeerMemoryFeatures) |
| { |
| auto resources = ResourceTracker::get(); |
| if (resources->getApiVersionFromDevice(device) < VK_API_VERSION_1_1) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetDeviceGroupPeerMemoryFeatures", "VK_VERSION_1_1"); |
| } |
| AEMU_SCOPED_TRACE("vkGetDeviceGroupPeerMemoryFeatures"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkGetDeviceGroupPeerMemoryFeatures(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures, true /* do lock */); |
| } |
| static void entry_vkCmdSetDeviceMask( |
| VkCommandBuffer commandBuffer, |
| uint32_t deviceMask) |
| { |
| AEMU_SCOPED_TRACE("vkCmdSetDeviceMask"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSetDeviceMask(commandBuffer, deviceMask, true /* do lock */); |
| } |
| static void entry_vkCmdDispatchBase( |
| VkCommandBuffer commandBuffer, |
| uint32_t baseGroupX, |
| uint32_t baseGroupY, |
| uint32_t baseGroupZ, |
| uint32_t groupCountX, |
| uint32_t groupCountY, |
| uint32_t groupCountZ) |
| { |
| AEMU_SCOPED_TRACE("vkCmdDispatchBase"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdDispatchBase(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ, true /* do lock */); |
| } |
| static VkResult entry_vkEnumeratePhysicalDeviceGroups( |
| VkInstance instance, |
| uint32_t* pPhysicalDeviceGroupCount, |
| VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties) |
| { |
| AEMU_SCOPED_TRACE("vkEnumeratePhysicalDeviceGroups"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkEnumeratePhysicalDeviceGroups_VkResult_return = (VkResult)0; |
| vkEnumeratePhysicalDeviceGroups_VkResult_return = vkEnc->vkEnumeratePhysicalDeviceGroups(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties, true /* do lock */); |
| return vkEnumeratePhysicalDeviceGroups_VkResult_return; |
| } |
| static void entry_vkGetImageMemoryRequirements2( |
| VkDevice device, |
| const VkImageMemoryRequirementsInfo2* pInfo, |
| VkMemoryRequirements2* pMemoryRequirements) |
| { |
| AEMU_SCOPED_TRACE("vkGetImageMemoryRequirements2"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| auto resources = ResourceTracker::get(); |
| resources->on_vkGetImageMemoryRequirements2(vkEnc, device, pInfo, pMemoryRequirements); |
| } |
| static void dynCheck_entry_vkGetImageMemoryRequirements2( |
| VkDevice device, |
| const VkImageMemoryRequirementsInfo2* pInfo, |
| VkMemoryRequirements2* pMemoryRequirements) |
| { |
| auto resources = ResourceTracker::get(); |
| if (resources->getApiVersionFromDevice(device) < VK_API_VERSION_1_1) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetImageMemoryRequirements2", "VK_VERSION_1_1"); |
| } |
| AEMU_SCOPED_TRACE("vkGetImageMemoryRequirements2"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| resources->on_vkGetImageMemoryRequirements2(vkEnc, device, pInfo, pMemoryRequirements); |
| } |
| static void entry_vkGetBufferMemoryRequirements2( |
| VkDevice device, |
| const VkBufferMemoryRequirementsInfo2* pInfo, |
| VkMemoryRequirements2* pMemoryRequirements) |
| { |
| AEMU_SCOPED_TRACE("vkGetBufferMemoryRequirements2"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| auto resources = ResourceTracker::get(); |
| resources->on_vkGetBufferMemoryRequirements2(vkEnc, device, pInfo, pMemoryRequirements); |
| } |
| static void dynCheck_entry_vkGetBufferMemoryRequirements2( |
| VkDevice device, |
| const VkBufferMemoryRequirementsInfo2* pInfo, |
| VkMemoryRequirements2* pMemoryRequirements) |
| { |
| auto resources = ResourceTracker::get(); |
| if (resources->getApiVersionFromDevice(device) < VK_API_VERSION_1_1) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetBufferMemoryRequirements2", "VK_VERSION_1_1"); |
| } |
| AEMU_SCOPED_TRACE("vkGetBufferMemoryRequirements2"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| resources->on_vkGetBufferMemoryRequirements2(vkEnc, device, pInfo, pMemoryRequirements); |
| } |
| static void entry_vkGetImageSparseMemoryRequirements2( |
| VkDevice device, |
| const VkImageSparseMemoryRequirementsInfo2* pInfo, |
| uint32_t* pSparseMemoryRequirementCount, |
| VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) |
| { |
| AEMU_SCOPED_TRACE("vkGetImageSparseMemoryRequirements2"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkGetImageSparseMemoryRequirements2(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements, true /* do lock */); |
| } |
| static void dynCheck_entry_vkGetImageSparseMemoryRequirements2( |
| VkDevice device, |
| const VkImageSparseMemoryRequirementsInfo2* pInfo, |
| uint32_t* pSparseMemoryRequirementCount, |
| VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) |
| { |
| auto resources = ResourceTracker::get(); |
| if (resources->getApiVersionFromDevice(device) < VK_API_VERSION_1_1) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetImageSparseMemoryRequirements2", "VK_VERSION_1_1"); |
| } |
| AEMU_SCOPED_TRACE("vkGetImageSparseMemoryRequirements2"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkGetImageSparseMemoryRequirements2(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements, true /* do lock */); |
| } |
| static void entry_vkGetPhysicalDeviceFeatures2( |
| VkPhysicalDevice physicalDevice, |
| VkPhysicalDeviceFeatures2* pFeatures) |
| { |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFeatures2"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkGetPhysicalDeviceFeatures2(physicalDevice, pFeatures, true /* do lock */); |
| } |
| static void entry_vkGetPhysicalDeviceProperties2( |
| VkPhysicalDevice physicalDevice, |
| VkPhysicalDeviceProperties2* pProperties) |
| { |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceProperties2"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkGetPhysicalDeviceProperties2(physicalDevice, pProperties, true /* do lock */); |
| } |
| static void entry_vkGetPhysicalDeviceFormatProperties2( |
| VkPhysicalDevice physicalDevice, |
| VkFormat format, |
| VkFormatProperties2* pFormatProperties) |
| { |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFormatProperties2"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkGetPhysicalDeviceFormatProperties2(physicalDevice, format, pFormatProperties, true /* do lock */); |
| } |
| static VkResult entry_vkGetPhysicalDeviceImageFormatProperties2( |
| VkPhysicalDevice physicalDevice, |
| const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, |
| VkImageFormatProperties2* pImageFormatProperties) |
| { |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceImageFormatProperties2"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetPhysicalDeviceImageFormatProperties2_VkResult_return = (VkResult)0; |
| auto resources = ResourceTracker::get(); |
| vkGetPhysicalDeviceImageFormatProperties2_VkResult_return = resources->on_vkGetPhysicalDeviceImageFormatProperties2(vkEnc, VK_SUCCESS, physicalDevice, pImageFormatInfo, pImageFormatProperties); |
| return vkGetPhysicalDeviceImageFormatProperties2_VkResult_return; |
| } |
| static void entry_vkGetPhysicalDeviceQueueFamilyProperties2( |
| VkPhysicalDevice physicalDevice, |
| uint32_t* pQueueFamilyPropertyCount, |
| VkQueueFamilyProperties2* pQueueFamilyProperties) |
| { |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceQueueFamilyProperties2"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkGetPhysicalDeviceQueueFamilyProperties2(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties, true /* do lock */); |
| } |
| static void entry_vkGetPhysicalDeviceMemoryProperties2( |
| VkPhysicalDevice physicalDevice, |
| VkPhysicalDeviceMemoryProperties2* pMemoryProperties) |
| { |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMemoryProperties2"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkGetPhysicalDeviceMemoryProperties2(physicalDevice, pMemoryProperties, true /* do lock */); |
| } |
| static void entry_vkGetPhysicalDeviceSparseImageFormatProperties2( |
| VkPhysicalDevice physicalDevice, |
| const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, |
| uint32_t* pPropertyCount, |
| VkSparseImageFormatProperties2* pProperties) |
| { |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSparseImageFormatProperties2"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkGetPhysicalDeviceSparseImageFormatProperties2(physicalDevice, pFormatInfo, pPropertyCount, pProperties, true /* do lock */); |
| } |
| static void entry_vkTrimCommandPool( |
| VkDevice device, |
| VkCommandPool commandPool, |
| VkCommandPoolTrimFlags flags) |
| { |
| AEMU_SCOPED_TRACE("vkTrimCommandPool"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkTrimCommandPool(device, commandPool, flags, true /* do lock */); |
| } |
| static void dynCheck_entry_vkTrimCommandPool( |
| VkDevice device, |
| VkCommandPool commandPool, |
| VkCommandPoolTrimFlags flags) |
| { |
| auto resources = ResourceTracker::get(); |
| if (resources->getApiVersionFromDevice(device) < VK_API_VERSION_1_1) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkTrimCommandPool", "VK_VERSION_1_1"); |
| } |
| AEMU_SCOPED_TRACE("vkTrimCommandPool"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkTrimCommandPool(device, commandPool, flags, true /* do lock */); |
| } |
| static void entry_vkGetDeviceQueue2( |
| VkDevice device, |
| const VkDeviceQueueInfo2* pQueueInfo, |
| VkQueue* pQueue) |
| { |
| AEMU_SCOPED_TRACE("vkGetDeviceQueue2"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkGetDeviceQueue2(device, pQueueInfo, pQueue, true /* do lock */); |
| } |
| static void dynCheck_entry_vkGetDeviceQueue2( |
| VkDevice device, |
| const VkDeviceQueueInfo2* pQueueInfo, |
| VkQueue* pQueue) |
| { |
| auto resources = ResourceTracker::get(); |
| if (resources->getApiVersionFromDevice(device) < VK_API_VERSION_1_1) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetDeviceQueue2", "VK_VERSION_1_1"); |
| } |
| AEMU_SCOPED_TRACE("vkGetDeviceQueue2"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkGetDeviceQueue2(device, pQueueInfo, pQueue, true /* do lock */); |
| } |
| static VkResult entry_vkCreateSamplerYcbcrConversion( |
| VkDevice device, |
| const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkSamplerYcbcrConversion* pYcbcrConversion) |
| { |
| AEMU_SCOPED_TRACE("vkCreateSamplerYcbcrConversion"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateSamplerYcbcrConversion_VkResult_return = (VkResult)0; |
| auto resources = ResourceTracker::get(); |
| vkCreateSamplerYcbcrConversion_VkResult_return = resources->on_vkCreateSamplerYcbcrConversion(vkEnc, VK_SUCCESS, device, pCreateInfo, pAllocator, pYcbcrConversion); |
| return vkCreateSamplerYcbcrConversion_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkCreateSamplerYcbcrConversion( |
| VkDevice device, |
| const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkSamplerYcbcrConversion* pYcbcrConversion) |
| { |
| auto resources = ResourceTracker::get(); |
| if (resources->getApiVersionFromDevice(device) < VK_API_VERSION_1_1) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCreateSamplerYcbcrConversion", "VK_VERSION_1_1"); |
| } |
| AEMU_SCOPED_TRACE("vkCreateSamplerYcbcrConversion"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateSamplerYcbcrConversion_VkResult_return = (VkResult)0; |
| vkCreateSamplerYcbcrConversion_VkResult_return = resources->on_vkCreateSamplerYcbcrConversion(vkEnc, VK_SUCCESS, device, pCreateInfo, pAllocator, pYcbcrConversion); |
| return vkCreateSamplerYcbcrConversion_VkResult_return; |
| } |
| static void entry_vkDestroySamplerYcbcrConversion( |
| VkDevice device, |
| VkSamplerYcbcrConversion ycbcrConversion, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AEMU_SCOPED_TRACE("vkDestroySamplerYcbcrConversion"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| auto resources = ResourceTracker::get(); |
| resources->on_vkDestroySamplerYcbcrConversion(vkEnc, device, ycbcrConversion, pAllocator); |
| } |
| static void dynCheck_entry_vkDestroySamplerYcbcrConversion( |
| VkDevice device, |
| VkSamplerYcbcrConversion ycbcrConversion, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| auto resources = ResourceTracker::get(); |
| if (resources->getApiVersionFromDevice(device) < VK_API_VERSION_1_1) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkDestroySamplerYcbcrConversion", "VK_VERSION_1_1"); |
| } |
| AEMU_SCOPED_TRACE("vkDestroySamplerYcbcrConversion"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| resources->on_vkDestroySamplerYcbcrConversion(vkEnc, device, ycbcrConversion, pAllocator); |
| } |
| static VkResult entry_vkCreateDescriptorUpdateTemplate( |
| VkDevice device, |
| const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate) |
| { |
| AEMU_SCOPED_TRACE("vkCreateDescriptorUpdateTemplate"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateDescriptorUpdateTemplate_VkResult_return = (VkResult)0; |
| vkCreateDescriptorUpdateTemplate_VkResult_return = vkEnc->vkCreateDescriptorUpdateTemplate(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate, true /* do lock */); |
| return vkCreateDescriptorUpdateTemplate_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkCreateDescriptorUpdateTemplate( |
| VkDevice device, |
| const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate) |
| { |
| auto resources = ResourceTracker::get(); |
| if (resources->getApiVersionFromDevice(device) < VK_API_VERSION_1_1) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCreateDescriptorUpdateTemplate", "VK_VERSION_1_1"); |
| } |
| AEMU_SCOPED_TRACE("vkCreateDescriptorUpdateTemplate"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateDescriptorUpdateTemplate_VkResult_return = (VkResult)0; |
| vkCreateDescriptorUpdateTemplate_VkResult_return = vkEnc->vkCreateDescriptorUpdateTemplate(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate, true /* do lock */); |
| return vkCreateDescriptorUpdateTemplate_VkResult_return; |
| } |
| static void entry_vkDestroyDescriptorUpdateTemplate( |
| VkDevice device, |
| VkDescriptorUpdateTemplate descriptorUpdateTemplate, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AEMU_SCOPED_TRACE("vkDestroyDescriptorUpdateTemplate"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkDestroyDescriptorUpdateTemplate(device, descriptorUpdateTemplate, pAllocator, true /* do lock */); |
| } |
| static void dynCheck_entry_vkDestroyDescriptorUpdateTemplate( |
| VkDevice device, |
| VkDescriptorUpdateTemplate descriptorUpdateTemplate, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| auto resources = ResourceTracker::get(); |
| if (resources->getApiVersionFromDevice(device) < VK_API_VERSION_1_1) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkDestroyDescriptorUpdateTemplate", "VK_VERSION_1_1"); |
| } |
| AEMU_SCOPED_TRACE("vkDestroyDescriptorUpdateTemplate"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkDestroyDescriptorUpdateTemplate(device, descriptorUpdateTemplate, pAllocator, true /* do lock */); |
| } |
| static void entry_vkUpdateDescriptorSetWithTemplate( |
| VkDevice device, |
| VkDescriptorSet descriptorSet, |
| VkDescriptorUpdateTemplate descriptorUpdateTemplate, |
| const void* pData) |
| { |
| AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplate"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| auto resources = ResourceTracker::get(); |
| resources->on_vkUpdateDescriptorSetWithTemplate(vkEnc, device, descriptorSet, descriptorUpdateTemplate, pData); |
| } |
| static void dynCheck_entry_vkUpdateDescriptorSetWithTemplate( |
| VkDevice device, |
| VkDescriptorSet descriptorSet, |
| VkDescriptorUpdateTemplate descriptorUpdateTemplate, |
| const void* pData) |
| { |
| auto resources = ResourceTracker::get(); |
| if (resources->getApiVersionFromDevice(device) < VK_API_VERSION_1_1) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkUpdateDescriptorSetWithTemplate", "VK_VERSION_1_1"); |
| } |
| AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplate"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| resources->on_vkUpdateDescriptorSetWithTemplate(vkEnc, device, descriptorSet, descriptorUpdateTemplate, pData); |
| } |
| static void entry_vkGetPhysicalDeviceExternalBufferProperties( |
| VkPhysicalDevice physicalDevice, |
| const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, |
| VkExternalBufferProperties* pExternalBufferProperties) |
| { |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalBufferProperties"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkGetPhysicalDeviceExternalBufferProperties(physicalDevice, pExternalBufferInfo, pExternalBufferProperties, true /* do lock */); |
| } |
| static void entry_vkGetPhysicalDeviceExternalFenceProperties( |
| VkPhysicalDevice physicalDevice, |
| const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, |
| VkExternalFenceProperties* pExternalFenceProperties) |
| { |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalFenceProperties"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| auto resources = ResourceTracker::get(); |
| resources->on_vkGetPhysicalDeviceExternalFenceProperties(vkEnc, physicalDevice, pExternalFenceInfo, pExternalFenceProperties); |
| } |
| static void entry_vkGetPhysicalDeviceExternalSemaphoreProperties( |
| VkPhysicalDevice physicalDevice, |
| const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, |
| VkExternalSemaphoreProperties* pExternalSemaphoreProperties) |
| { |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalSemaphoreProperties"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkGetPhysicalDeviceExternalSemaphoreProperties(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties, true /* do lock */); |
| } |
| static void entry_vkGetDescriptorSetLayoutSupport( |
| VkDevice device, |
| const VkDescriptorSetLayoutCreateInfo* pCreateInfo, |
| VkDescriptorSetLayoutSupport* pSupport) |
| { |
| AEMU_SCOPED_TRACE("vkGetDescriptorSetLayoutSupport"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkGetDescriptorSetLayoutSupport(device, pCreateInfo, pSupport, true /* do lock */); |
| } |
| static void dynCheck_entry_vkGetDescriptorSetLayoutSupport( |
| VkDevice device, |
| const VkDescriptorSetLayoutCreateInfo* pCreateInfo, |
| VkDescriptorSetLayoutSupport* pSupport) |
| { |
| auto resources = ResourceTracker::get(); |
| if (resources->getApiVersionFromDevice(device) < VK_API_VERSION_1_1) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetDescriptorSetLayoutSupport", "VK_VERSION_1_1"); |
| } |
| AEMU_SCOPED_TRACE("vkGetDescriptorSetLayoutSupport"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkGetDescriptorSetLayoutSupport(device, pCreateInfo, pSupport, true /* do lock */); |
| } |
| #endif |
| #ifdef VK_VERSION_1_2 |
| static void entry_vkCmdDrawIndirectCount( |
| VkCommandBuffer commandBuffer, |
| VkBuffer buffer, |
| VkDeviceSize offset, |
| VkBuffer countBuffer, |
| VkDeviceSize countBufferOffset, |
| uint32_t maxDrawCount, |
| uint32_t stride) |
| { |
| AEMU_SCOPED_TRACE("vkCmdDrawIndirectCount"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdDrawIndirectCount(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, true /* do lock */); |
| } |
| static void entry_vkCmdDrawIndexedIndirectCount( |
| VkCommandBuffer commandBuffer, |
| VkBuffer buffer, |
| VkDeviceSize offset, |
| VkBuffer countBuffer, |
| VkDeviceSize countBufferOffset, |
| uint32_t maxDrawCount, |
| uint32_t stride) |
| { |
| AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirectCount"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdDrawIndexedIndirectCount(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, true /* do lock */); |
| } |
| static VkResult entry_vkCreateRenderPass2( |
| VkDevice device, |
| const VkRenderPassCreateInfo2* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkRenderPass* pRenderPass) |
| { |
| AEMU_SCOPED_TRACE("vkCreateRenderPass2"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateRenderPass2_VkResult_return = (VkResult)0; |
| vkCreateRenderPass2_VkResult_return = vkEnc->vkCreateRenderPass2(device, pCreateInfo, pAllocator, pRenderPass, true /* do lock */); |
| return vkCreateRenderPass2_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkCreateRenderPass2( |
| VkDevice device, |
| const VkRenderPassCreateInfo2* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkRenderPass* pRenderPass) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_VERSION_1_2")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCreateRenderPass2", "VK_VERSION_1_2"); |
| } |
| AEMU_SCOPED_TRACE("vkCreateRenderPass2"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateRenderPass2_VkResult_return = (VkResult)0; |
| vkCreateRenderPass2_VkResult_return = vkEnc->vkCreateRenderPass2(device, pCreateInfo, pAllocator, pRenderPass, true /* do lock */); |
| return vkCreateRenderPass2_VkResult_return; |
| } |
| static void entry_vkCmdBeginRenderPass2( |
| VkCommandBuffer commandBuffer, |
| const VkRenderPassBeginInfo* pRenderPassBegin, |
| const VkSubpassBeginInfo* pSubpassBeginInfo) |
| { |
| AEMU_SCOPED_TRACE("vkCmdBeginRenderPass2"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdBeginRenderPass2(commandBuffer, pRenderPassBegin, pSubpassBeginInfo, true /* do lock */); |
| } |
| static void entry_vkCmdNextSubpass2( |
| VkCommandBuffer commandBuffer, |
| const VkSubpassBeginInfo* pSubpassBeginInfo, |
| const VkSubpassEndInfo* pSubpassEndInfo) |
| { |
| AEMU_SCOPED_TRACE("vkCmdNextSubpass2"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdNextSubpass2(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo, true /* do lock */); |
| } |
| static void entry_vkCmdEndRenderPass2( |
| VkCommandBuffer commandBuffer, |
| const VkSubpassEndInfo* pSubpassEndInfo) |
| { |
| AEMU_SCOPED_TRACE("vkCmdEndRenderPass2"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdEndRenderPass2(commandBuffer, pSubpassEndInfo, true /* do lock */); |
| } |
| static void entry_vkResetQueryPool( |
| VkDevice device, |
| VkQueryPool queryPool, |
| uint32_t firstQuery, |
| uint32_t queryCount) |
| { |
| AEMU_SCOPED_TRACE("vkResetQueryPool"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkResetQueryPool(device, queryPool, firstQuery, queryCount, true /* do lock */); |
| } |
| static void dynCheck_entry_vkResetQueryPool( |
| VkDevice device, |
| VkQueryPool queryPool, |
| uint32_t firstQuery, |
| uint32_t queryCount) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_VERSION_1_2")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkResetQueryPool", "VK_VERSION_1_2"); |
| } |
| AEMU_SCOPED_TRACE("vkResetQueryPool"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkResetQueryPool(device, queryPool, firstQuery, queryCount, true /* do lock */); |
| } |
| static VkResult entry_vkGetSemaphoreCounterValue( |
| VkDevice device, |
| VkSemaphore semaphore, |
| uint64_t* pValue) |
| { |
| AEMU_SCOPED_TRACE("vkGetSemaphoreCounterValue"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetSemaphoreCounterValue_VkResult_return = (VkResult)0; |
| vkGetSemaphoreCounterValue_VkResult_return = vkEnc->vkGetSemaphoreCounterValue(device, semaphore, pValue, true /* do lock */); |
| return vkGetSemaphoreCounterValue_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkGetSemaphoreCounterValue( |
| VkDevice device, |
| VkSemaphore semaphore, |
| uint64_t* pValue) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_VERSION_1_2")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetSemaphoreCounterValue", "VK_VERSION_1_2"); |
| } |
| AEMU_SCOPED_TRACE("vkGetSemaphoreCounterValue"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetSemaphoreCounterValue_VkResult_return = (VkResult)0; |
| vkGetSemaphoreCounterValue_VkResult_return = vkEnc->vkGetSemaphoreCounterValue(device, semaphore, pValue, true /* do lock */); |
| return vkGetSemaphoreCounterValue_VkResult_return; |
| } |
| static VkResult entry_vkWaitSemaphores( |
| VkDevice device, |
| const VkSemaphoreWaitInfo* pWaitInfo, |
| uint64_t timeout) |
| { |
| AEMU_SCOPED_TRACE("vkWaitSemaphores"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkWaitSemaphores_VkResult_return = (VkResult)0; |
| vkWaitSemaphores_VkResult_return = vkEnc->vkWaitSemaphores(device, pWaitInfo, timeout, true /* do lock */); |
| return vkWaitSemaphores_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkWaitSemaphores( |
| VkDevice device, |
| const VkSemaphoreWaitInfo* pWaitInfo, |
| uint64_t timeout) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_VERSION_1_2")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkWaitSemaphores", "VK_VERSION_1_2"); |
| } |
| AEMU_SCOPED_TRACE("vkWaitSemaphores"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkWaitSemaphores_VkResult_return = (VkResult)0; |
| vkWaitSemaphores_VkResult_return = vkEnc->vkWaitSemaphores(device, pWaitInfo, timeout, true /* do lock */); |
| return vkWaitSemaphores_VkResult_return; |
| } |
| static VkResult entry_vkSignalSemaphore( |
| VkDevice device, |
| const VkSemaphoreSignalInfo* pSignalInfo) |
| { |
| AEMU_SCOPED_TRACE("vkSignalSemaphore"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkSignalSemaphore_VkResult_return = (VkResult)0; |
| vkSignalSemaphore_VkResult_return = vkEnc->vkSignalSemaphore(device, pSignalInfo, true /* do lock */); |
| return vkSignalSemaphore_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkSignalSemaphore( |
| VkDevice device, |
| const VkSemaphoreSignalInfo* pSignalInfo) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_VERSION_1_2")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkSignalSemaphore", "VK_VERSION_1_2"); |
| } |
| AEMU_SCOPED_TRACE("vkSignalSemaphore"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkSignalSemaphore_VkResult_return = (VkResult)0; |
| vkSignalSemaphore_VkResult_return = vkEnc->vkSignalSemaphore(device, pSignalInfo, true /* do lock */); |
| return vkSignalSemaphore_VkResult_return; |
| } |
| static VkDeviceAddress entry_vkGetBufferDeviceAddress( |
| VkDevice device, |
| const VkBufferDeviceAddressInfo* pInfo) |
| { |
| AEMU_SCOPED_TRACE("vkGetBufferDeviceAddress"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkDeviceAddress vkGetBufferDeviceAddress_VkDeviceAddress_return = (VkDeviceAddress)0; |
| vkGetBufferDeviceAddress_VkDeviceAddress_return = vkEnc->vkGetBufferDeviceAddress(device, pInfo, true /* do lock */); |
| return vkGetBufferDeviceAddress_VkDeviceAddress_return; |
| } |
| static VkDeviceAddress dynCheck_entry_vkGetBufferDeviceAddress( |
| VkDevice device, |
| const VkBufferDeviceAddressInfo* pInfo) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_VERSION_1_2")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetBufferDeviceAddress", "VK_VERSION_1_2"); |
| } |
| AEMU_SCOPED_TRACE("vkGetBufferDeviceAddress"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkDeviceAddress vkGetBufferDeviceAddress_VkDeviceAddress_return = (VkDeviceAddress)0; |
| vkGetBufferDeviceAddress_VkDeviceAddress_return = vkEnc->vkGetBufferDeviceAddress(device, pInfo, true /* do lock */); |
| return vkGetBufferDeviceAddress_VkDeviceAddress_return; |
| } |
| static uint64_t entry_vkGetBufferOpaqueCaptureAddress( |
| VkDevice device, |
| const VkBufferDeviceAddressInfo* pInfo) |
| { |
| AEMU_SCOPED_TRACE("vkGetBufferOpaqueCaptureAddress"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| uint64_t vkGetBufferOpaqueCaptureAddress_uint64_t_return = (uint64_t)0; |
| vkGetBufferOpaqueCaptureAddress_uint64_t_return = vkEnc->vkGetBufferOpaqueCaptureAddress(device, pInfo, true /* do lock */); |
| return vkGetBufferOpaqueCaptureAddress_uint64_t_return; |
| } |
| static uint64_t dynCheck_entry_vkGetBufferOpaqueCaptureAddress( |
| VkDevice device, |
| const VkBufferDeviceAddressInfo* pInfo) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_VERSION_1_2")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetBufferOpaqueCaptureAddress", "VK_VERSION_1_2"); |
| } |
| AEMU_SCOPED_TRACE("vkGetBufferOpaqueCaptureAddress"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| uint64_t vkGetBufferOpaqueCaptureAddress_uint64_t_return = (uint64_t)0; |
| vkGetBufferOpaqueCaptureAddress_uint64_t_return = vkEnc->vkGetBufferOpaqueCaptureAddress(device, pInfo, true /* do lock */); |
| return vkGetBufferOpaqueCaptureAddress_uint64_t_return; |
| } |
| static uint64_t entry_vkGetDeviceMemoryOpaqueCaptureAddress( |
| VkDevice device, |
| const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo) |
| { |
| AEMU_SCOPED_TRACE("vkGetDeviceMemoryOpaqueCaptureAddress"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| uint64_t vkGetDeviceMemoryOpaqueCaptureAddress_uint64_t_return = (uint64_t)0; |
| vkGetDeviceMemoryOpaqueCaptureAddress_uint64_t_return = vkEnc->vkGetDeviceMemoryOpaqueCaptureAddress(device, pInfo, true /* do lock */); |
| return vkGetDeviceMemoryOpaqueCaptureAddress_uint64_t_return; |
| } |
| static uint64_t dynCheck_entry_vkGetDeviceMemoryOpaqueCaptureAddress( |
| VkDevice device, |
| const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_VERSION_1_2")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetDeviceMemoryOpaqueCaptureAddress", "VK_VERSION_1_2"); |
| } |
| AEMU_SCOPED_TRACE("vkGetDeviceMemoryOpaqueCaptureAddress"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| uint64_t vkGetDeviceMemoryOpaqueCaptureAddress_uint64_t_return = (uint64_t)0; |
| vkGetDeviceMemoryOpaqueCaptureAddress_uint64_t_return = vkEnc->vkGetDeviceMemoryOpaqueCaptureAddress(device, pInfo, true /* do lock */); |
| return vkGetDeviceMemoryOpaqueCaptureAddress_uint64_t_return; |
| } |
| #endif |
| #ifdef VK_KHR_surface |
| static void entry_vkDestroySurfaceKHR( |
| VkInstance instance, |
| VkSurfaceKHR surface, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AEMU_SCOPED_TRACE("vkDestroySurfaceKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkDestroySurfaceKHR(instance, surface, pAllocator, true /* do lock */); |
| } |
| static VkResult entry_vkGetPhysicalDeviceSurfaceSupportKHR( |
| VkPhysicalDevice physicalDevice, |
| uint32_t queueFamilyIndex, |
| VkSurfaceKHR surface, |
| VkBool32* pSupported) |
| { |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceSupportKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetPhysicalDeviceSurfaceSupportKHR_VkResult_return = (VkResult)0; |
| vkGetPhysicalDeviceSurfaceSupportKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceSupportKHR(physicalDevice, queueFamilyIndex, surface, pSupported, true /* do lock */); |
| return vkGetPhysicalDeviceSurfaceSupportKHR_VkResult_return; |
| } |
| static VkResult entry_vkGetPhysicalDeviceSurfaceCapabilitiesKHR( |
| VkPhysicalDevice physicalDevice, |
| VkSurfaceKHR surface, |
| VkSurfaceCapabilitiesKHR* pSurfaceCapabilities) |
| { |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceCapabilitiesKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR_VkResult_return = (VkResult)0; |
| vkGetPhysicalDeviceSurfaceCapabilitiesKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceCapabilitiesKHR(physicalDevice, surface, pSurfaceCapabilities, true /* do lock */); |
| return vkGetPhysicalDeviceSurfaceCapabilitiesKHR_VkResult_return; |
| } |
| static VkResult entry_vkGetPhysicalDeviceSurfaceFormatsKHR( |
| VkPhysicalDevice physicalDevice, |
| VkSurfaceKHR surface, |
| uint32_t* pSurfaceFormatCount, |
| VkSurfaceFormatKHR* pSurfaceFormats) |
| { |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceFormatsKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetPhysicalDeviceSurfaceFormatsKHR_VkResult_return = (VkResult)0; |
| vkGetPhysicalDeviceSurfaceFormatsKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceFormatsKHR(physicalDevice, surface, pSurfaceFormatCount, pSurfaceFormats, true /* do lock */); |
| return vkGetPhysicalDeviceSurfaceFormatsKHR_VkResult_return; |
| } |
| static VkResult entry_vkGetPhysicalDeviceSurfacePresentModesKHR( |
| VkPhysicalDevice physicalDevice, |
| VkSurfaceKHR surface, |
| uint32_t* pPresentModeCount, |
| VkPresentModeKHR* pPresentModes) |
| { |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfacePresentModesKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetPhysicalDeviceSurfacePresentModesKHR_VkResult_return = (VkResult)0; |
| vkGetPhysicalDeviceSurfacePresentModesKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfacePresentModesKHR(physicalDevice, surface, pPresentModeCount, pPresentModes, true /* do lock */); |
| return vkGetPhysicalDeviceSurfacePresentModesKHR_VkResult_return; |
| } |
| #endif |
| #ifdef VK_KHR_swapchain |
| static VkResult entry_vkCreateSwapchainKHR( |
| VkDevice device, |
| const VkSwapchainCreateInfoKHR* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkSwapchainKHR* pSwapchain) |
| { |
| AEMU_SCOPED_TRACE("vkCreateSwapchainKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateSwapchainKHR_VkResult_return = (VkResult)0; |
| vkCreateSwapchainKHR_VkResult_return = vkEnc->vkCreateSwapchainKHR(device, pCreateInfo, pAllocator, pSwapchain, true /* do lock */); |
| return vkCreateSwapchainKHR_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkCreateSwapchainKHR( |
| VkDevice device, |
| const VkSwapchainCreateInfoKHR* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkSwapchainKHR* pSwapchain) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_swapchain")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCreateSwapchainKHR", "VK_KHR_swapchain"); |
| } |
| AEMU_SCOPED_TRACE("vkCreateSwapchainKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateSwapchainKHR_VkResult_return = (VkResult)0; |
| vkCreateSwapchainKHR_VkResult_return = vkEnc->vkCreateSwapchainKHR(device, pCreateInfo, pAllocator, pSwapchain, true /* do lock */); |
| return vkCreateSwapchainKHR_VkResult_return; |
| } |
| static void entry_vkDestroySwapchainKHR( |
| VkDevice device, |
| VkSwapchainKHR swapchain, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AEMU_SCOPED_TRACE("vkDestroySwapchainKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkDestroySwapchainKHR(device, swapchain, pAllocator, true /* do lock */); |
| } |
| static void dynCheck_entry_vkDestroySwapchainKHR( |
| VkDevice device, |
| VkSwapchainKHR swapchain, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_swapchain")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkDestroySwapchainKHR", "VK_KHR_swapchain"); |
| } |
| AEMU_SCOPED_TRACE("vkDestroySwapchainKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkDestroySwapchainKHR(device, swapchain, pAllocator, true /* do lock */); |
| } |
| static VkResult entry_vkGetSwapchainImagesKHR( |
| VkDevice device, |
| VkSwapchainKHR swapchain, |
| uint32_t* pSwapchainImageCount, |
| VkImage* pSwapchainImages) |
| { |
| AEMU_SCOPED_TRACE("vkGetSwapchainImagesKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetSwapchainImagesKHR_VkResult_return = (VkResult)0; |
| vkGetSwapchainImagesKHR_VkResult_return = vkEnc->vkGetSwapchainImagesKHR(device, swapchain, pSwapchainImageCount, pSwapchainImages, true /* do lock */); |
| return vkGetSwapchainImagesKHR_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkGetSwapchainImagesKHR( |
| VkDevice device, |
| VkSwapchainKHR swapchain, |
| uint32_t* pSwapchainImageCount, |
| VkImage* pSwapchainImages) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_swapchain")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetSwapchainImagesKHR", "VK_KHR_swapchain"); |
| } |
| AEMU_SCOPED_TRACE("vkGetSwapchainImagesKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetSwapchainImagesKHR_VkResult_return = (VkResult)0; |
| vkGetSwapchainImagesKHR_VkResult_return = vkEnc->vkGetSwapchainImagesKHR(device, swapchain, pSwapchainImageCount, pSwapchainImages, true /* do lock */); |
| return vkGetSwapchainImagesKHR_VkResult_return; |
| } |
| static VkResult entry_vkAcquireNextImageKHR( |
| VkDevice device, |
| VkSwapchainKHR swapchain, |
| uint64_t timeout, |
| VkSemaphore semaphore, |
| VkFence fence, |
| uint32_t* pImageIndex) |
| { |
| AEMU_SCOPED_TRACE("vkAcquireNextImageKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkAcquireNextImageKHR_VkResult_return = (VkResult)0; |
| vkAcquireNextImageKHR_VkResult_return = vkEnc->vkAcquireNextImageKHR(device, swapchain, timeout, semaphore, fence, pImageIndex, true /* do lock */); |
| return vkAcquireNextImageKHR_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkAcquireNextImageKHR( |
| VkDevice device, |
| VkSwapchainKHR swapchain, |
| uint64_t timeout, |
| VkSemaphore semaphore, |
| VkFence fence, |
| uint32_t* pImageIndex) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_swapchain")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkAcquireNextImageKHR", "VK_KHR_swapchain"); |
| } |
| AEMU_SCOPED_TRACE("vkAcquireNextImageKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkAcquireNextImageKHR_VkResult_return = (VkResult)0; |
| vkAcquireNextImageKHR_VkResult_return = vkEnc->vkAcquireNextImageKHR(device, swapchain, timeout, semaphore, fence, pImageIndex, true /* do lock */); |
| return vkAcquireNextImageKHR_VkResult_return; |
| } |
| static VkResult entry_vkQueuePresentKHR( |
| VkQueue queue, |
| const VkPresentInfoKHR* pPresentInfo) |
| { |
| AEMU_SCOPED_TRACE("vkQueuePresentKHR"); |
| auto vkEnc = ResourceTracker::getQueueEncoder(queue); |
| VkResult vkQueuePresentKHR_VkResult_return = (VkResult)0; |
| vkQueuePresentKHR_VkResult_return = vkEnc->vkQueuePresentKHR(queue, pPresentInfo, true /* do lock */); |
| return vkQueuePresentKHR_VkResult_return; |
| } |
| static VkResult entry_vkGetDeviceGroupPresentCapabilitiesKHR( |
| VkDevice device, |
| VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities) |
| { |
| AEMU_SCOPED_TRACE("vkGetDeviceGroupPresentCapabilitiesKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetDeviceGroupPresentCapabilitiesKHR_VkResult_return = (VkResult)0; |
| vkGetDeviceGroupPresentCapabilitiesKHR_VkResult_return = vkEnc->vkGetDeviceGroupPresentCapabilitiesKHR(device, pDeviceGroupPresentCapabilities, true /* do lock */); |
| return vkGetDeviceGroupPresentCapabilitiesKHR_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkGetDeviceGroupPresentCapabilitiesKHR( |
| VkDevice device, |
| VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_swapchain")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetDeviceGroupPresentCapabilitiesKHR", "VK_KHR_swapchain"); |
| } |
| AEMU_SCOPED_TRACE("vkGetDeviceGroupPresentCapabilitiesKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetDeviceGroupPresentCapabilitiesKHR_VkResult_return = (VkResult)0; |
| vkGetDeviceGroupPresentCapabilitiesKHR_VkResult_return = vkEnc->vkGetDeviceGroupPresentCapabilitiesKHR(device, pDeviceGroupPresentCapabilities, true /* do lock */); |
| return vkGetDeviceGroupPresentCapabilitiesKHR_VkResult_return; |
| } |
| static VkResult entry_vkGetDeviceGroupSurfacePresentModesKHR( |
| VkDevice device, |
| VkSurfaceKHR surface, |
| VkDeviceGroupPresentModeFlagsKHR* pModes) |
| { |
| AEMU_SCOPED_TRACE("vkGetDeviceGroupSurfacePresentModesKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetDeviceGroupSurfacePresentModesKHR_VkResult_return = (VkResult)0; |
| vkGetDeviceGroupSurfacePresentModesKHR_VkResult_return = vkEnc->vkGetDeviceGroupSurfacePresentModesKHR(device, surface, pModes, true /* do lock */); |
| return vkGetDeviceGroupSurfacePresentModesKHR_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkGetDeviceGroupSurfacePresentModesKHR( |
| VkDevice device, |
| VkSurfaceKHR surface, |
| VkDeviceGroupPresentModeFlagsKHR* pModes) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_swapchain")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetDeviceGroupSurfacePresentModesKHR", "VK_KHR_swapchain"); |
| } |
| AEMU_SCOPED_TRACE("vkGetDeviceGroupSurfacePresentModesKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetDeviceGroupSurfacePresentModesKHR_VkResult_return = (VkResult)0; |
| vkGetDeviceGroupSurfacePresentModesKHR_VkResult_return = vkEnc->vkGetDeviceGroupSurfacePresentModesKHR(device, surface, pModes, true /* do lock */); |
| return vkGetDeviceGroupSurfacePresentModesKHR_VkResult_return; |
| } |
| static VkResult entry_vkGetPhysicalDevicePresentRectanglesKHR( |
| VkPhysicalDevice physicalDevice, |
| VkSurfaceKHR surface, |
| uint32_t* pRectCount, |
| VkRect2D* pRects) |
| { |
| AEMU_SCOPED_TRACE("vkGetPhysicalDevicePresentRectanglesKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetPhysicalDevicePresentRectanglesKHR_VkResult_return = (VkResult)0; |
| vkGetPhysicalDevicePresentRectanglesKHR_VkResult_return = vkEnc->vkGetPhysicalDevicePresentRectanglesKHR(physicalDevice, surface, pRectCount, pRects, true /* do lock */); |
| return vkGetPhysicalDevicePresentRectanglesKHR_VkResult_return; |
| } |
| static VkResult entry_vkAcquireNextImage2KHR( |
| VkDevice device, |
| const VkAcquireNextImageInfoKHR* pAcquireInfo, |
| uint32_t* pImageIndex) |
| { |
| AEMU_SCOPED_TRACE("vkAcquireNextImage2KHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkAcquireNextImage2KHR_VkResult_return = (VkResult)0; |
| vkAcquireNextImage2KHR_VkResult_return = vkEnc->vkAcquireNextImage2KHR(device, pAcquireInfo, pImageIndex, true /* do lock */); |
| return vkAcquireNextImage2KHR_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkAcquireNextImage2KHR( |
| VkDevice device, |
| const VkAcquireNextImageInfoKHR* pAcquireInfo, |
| uint32_t* pImageIndex) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_swapchain")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkAcquireNextImage2KHR", "VK_KHR_swapchain"); |
| } |
| AEMU_SCOPED_TRACE("vkAcquireNextImage2KHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkAcquireNextImage2KHR_VkResult_return = (VkResult)0; |
| vkAcquireNextImage2KHR_VkResult_return = vkEnc->vkAcquireNextImage2KHR(device, pAcquireInfo, pImageIndex, true /* do lock */); |
| return vkAcquireNextImage2KHR_VkResult_return; |
| } |
| #endif |
| #ifdef VK_KHR_display |
| static VkResult entry_vkGetPhysicalDeviceDisplayPropertiesKHR( |
| VkPhysicalDevice physicalDevice, |
| uint32_t* pPropertyCount, |
| VkDisplayPropertiesKHR* pProperties) |
| { |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayPropertiesKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetPhysicalDeviceDisplayPropertiesKHR_VkResult_return = (VkResult)0; |
| vkGetPhysicalDeviceDisplayPropertiesKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceDisplayPropertiesKHR(physicalDevice, pPropertyCount, pProperties, true /* do lock */); |
| return vkGetPhysicalDeviceDisplayPropertiesKHR_VkResult_return; |
| } |
| static VkResult entry_vkGetPhysicalDeviceDisplayPlanePropertiesKHR( |
| VkPhysicalDevice physicalDevice, |
| uint32_t* pPropertyCount, |
| VkDisplayPlanePropertiesKHR* pProperties) |
| { |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayPlanePropertiesKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetPhysicalDeviceDisplayPlanePropertiesKHR_VkResult_return = (VkResult)0; |
| vkGetPhysicalDeviceDisplayPlanePropertiesKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceDisplayPlanePropertiesKHR(physicalDevice, pPropertyCount, pProperties, true /* do lock */); |
| return vkGetPhysicalDeviceDisplayPlanePropertiesKHR_VkResult_return; |
| } |
| static VkResult entry_vkGetDisplayPlaneSupportedDisplaysKHR( |
| VkPhysicalDevice physicalDevice, |
| uint32_t planeIndex, |
| uint32_t* pDisplayCount, |
| VkDisplayKHR* pDisplays) |
| { |
| AEMU_SCOPED_TRACE("vkGetDisplayPlaneSupportedDisplaysKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetDisplayPlaneSupportedDisplaysKHR_VkResult_return = (VkResult)0; |
| vkGetDisplayPlaneSupportedDisplaysKHR_VkResult_return = vkEnc->vkGetDisplayPlaneSupportedDisplaysKHR(physicalDevice, planeIndex, pDisplayCount, pDisplays, true /* do lock */); |
| return vkGetDisplayPlaneSupportedDisplaysKHR_VkResult_return; |
| } |
| static VkResult entry_vkGetDisplayModePropertiesKHR( |
| VkPhysicalDevice physicalDevice, |
| VkDisplayKHR display, |
| uint32_t* pPropertyCount, |
| VkDisplayModePropertiesKHR* pProperties) |
| { |
| AEMU_SCOPED_TRACE("vkGetDisplayModePropertiesKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetDisplayModePropertiesKHR_VkResult_return = (VkResult)0; |
| vkGetDisplayModePropertiesKHR_VkResult_return = vkEnc->vkGetDisplayModePropertiesKHR(physicalDevice, display, pPropertyCount, pProperties, true /* do lock */); |
| return vkGetDisplayModePropertiesKHR_VkResult_return; |
| } |
| static VkResult entry_vkCreateDisplayModeKHR( |
| VkPhysicalDevice physicalDevice, |
| VkDisplayKHR display, |
| const VkDisplayModeCreateInfoKHR* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkDisplayModeKHR* pMode) |
| { |
| AEMU_SCOPED_TRACE("vkCreateDisplayModeKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateDisplayModeKHR_VkResult_return = (VkResult)0; |
| vkCreateDisplayModeKHR_VkResult_return = vkEnc->vkCreateDisplayModeKHR(physicalDevice, display, pCreateInfo, pAllocator, pMode, true /* do lock */); |
| return vkCreateDisplayModeKHR_VkResult_return; |
| } |
| static VkResult entry_vkGetDisplayPlaneCapabilitiesKHR( |
| VkPhysicalDevice physicalDevice, |
| VkDisplayModeKHR mode, |
| uint32_t planeIndex, |
| VkDisplayPlaneCapabilitiesKHR* pCapabilities) |
| { |
| AEMU_SCOPED_TRACE("vkGetDisplayPlaneCapabilitiesKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetDisplayPlaneCapabilitiesKHR_VkResult_return = (VkResult)0; |
| vkGetDisplayPlaneCapabilitiesKHR_VkResult_return = vkEnc->vkGetDisplayPlaneCapabilitiesKHR(physicalDevice, mode, planeIndex, pCapabilities, true /* do lock */); |
| return vkGetDisplayPlaneCapabilitiesKHR_VkResult_return; |
| } |
| static VkResult entry_vkCreateDisplayPlaneSurfaceKHR( |
| VkInstance instance, |
| const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkSurfaceKHR* pSurface) |
| { |
| AEMU_SCOPED_TRACE("vkCreateDisplayPlaneSurfaceKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateDisplayPlaneSurfaceKHR_VkResult_return = (VkResult)0; |
| vkCreateDisplayPlaneSurfaceKHR_VkResult_return = vkEnc->vkCreateDisplayPlaneSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface, true /* do lock */); |
| return vkCreateDisplayPlaneSurfaceKHR_VkResult_return; |
| } |
| #endif |
| #ifdef VK_KHR_display_swapchain |
| static VkResult entry_vkCreateSharedSwapchainsKHR( |
| VkDevice device, |
| uint32_t swapchainCount, |
| const VkSwapchainCreateInfoKHR* pCreateInfos, |
| const VkAllocationCallbacks* pAllocator, |
| VkSwapchainKHR* pSwapchains) |
| { |
| AEMU_SCOPED_TRACE("vkCreateSharedSwapchainsKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateSharedSwapchainsKHR_VkResult_return = (VkResult)0; |
| vkCreateSharedSwapchainsKHR_VkResult_return = vkEnc->vkCreateSharedSwapchainsKHR(device, swapchainCount, pCreateInfos, pAllocator, pSwapchains, true /* do lock */); |
| return vkCreateSharedSwapchainsKHR_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkCreateSharedSwapchainsKHR( |
| VkDevice device, |
| uint32_t swapchainCount, |
| const VkSwapchainCreateInfoKHR* pCreateInfos, |
| const VkAllocationCallbacks* pAllocator, |
| VkSwapchainKHR* pSwapchains) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_display_swapchain")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCreateSharedSwapchainsKHR", "VK_KHR_display_swapchain"); |
| } |
| AEMU_SCOPED_TRACE("vkCreateSharedSwapchainsKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateSharedSwapchainsKHR_VkResult_return = (VkResult)0; |
| vkCreateSharedSwapchainsKHR_VkResult_return = vkEnc->vkCreateSharedSwapchainsKHR(device, swapchainCount, pCreateInfos, pAllocator, pSwapchains, true /* do lock */); |
| return vkCreateSharedSwapchainsKHR_VkResult_return; |
| } |
| #endif |
| #ifdef VK_KHR_xlib_surface |
| static VkResult entry_vkCreateXlibSurfaceKHR( |
| VkInstance instance, |
| const VkXlibSurfaceCreateInfoKHR* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkSurfaceKHR* pSurface) |
| { |
| AEMU_SCOPED_TRACE("vkCreateXlibSurfaceKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateXlibSurfaceKHR_VkResult_return = (VkResult)0; |
| vkCreateXlibSurfaceKHR_VkResult_return = vkEnc->vkCreateXlibSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface, true /* do lock */); |
| return vkCreateXlibSurfaceKHR_VkResult_return; |
| } |
| static VkBool32 entry_vkGetPhysicalDeviceXlibPresentationSupportKHR( |
| VkPhysicalDevice physicalDevice, |
| uint32_t queueFamilyIndex, |
| Display* dpy, |
| VisualID visualID) |
| { |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceXlibPresentationSupportKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkBool32 vkGetPhysicalDeviceXlibPresentationSupportKHR_VkBool32_return = (VkBool32)0; |
| vkGetPhysicalDeviceXlibPresentationSupportKHR_VkBool32_return = vkEnc->vkGetPhysicalDeviceXlibPresentationSupportKHR(physicalDevice, queueFamilyIndex, dpy, visualID, true /* do lock */); |
| return vkGetPhysicalDeviceXlibPresentationSupportKHR_VkBool32_return; |
| } |
| #endif |
| #ifdef VK_KHR_xcb_surface |
| static VkResult entry_vkCreateXcbSurfaceKHR( |
| VkInstance instance, |
| const VkXcbSurfaceCreateInfoKHR* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkSurfaceKHR* pSurface) |
| { |
| AEMU_SCOPED_TRACE("vkCreateXcbSurfaceKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateXcbSurfaceKHR_VkResult_return = (VkResult)0; |
| vkCreateXcbSurfaceKHR_VkResult_return = vkEnc->vkCreateXcbSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface, true /* do lock */); |
| return vkCreateXcbSurfaceKHR_VkResult_return; |
| } |
| static VkBool32 entry_vkGetPhysicalDeviceXcbPresentationSupportKHR( |
| VkPhysicalDevice physicalDevice, |
| uint32_t queueFamilyIndex, |
| xcb_connection_t* connection, |
| xcb_visualid_t visual_id) |
| { |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceXcbPresentationSupportKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkBool32 vkGetPhysicalDeviceXcbPresentationSupportKHR_VkBool32_return = (VkBool32)0; |
| vkGetPhysicalDeviceXcbPresentationSupportKHR_VkBool32_return = vkEnc->vkGetPhysicalDeviceXcbPresentationSupportKHR(physicalDevice, queueFamilyIndex, connection, visual_id, true /* do lock */); |
| return vkGetPhysicalDeviceXcbPresentationSupportKHR_VkBool32_return; |
| } |
| #endif |
| #ifdef VK_KHR_wayland_surface |
| static VkResult entry_vkCreateWaylandSurfaceKHR( |
| VkInstance instance, |
| const VkWaylandSurfaceCreateInfoKHR* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkSurfaceKHR* pSurface) |
| { |
| AEMU_SCOPED_TRACE("vkCreateWaylandSurfaceKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateWaylandSurfaceKHR_VkResult_return = (VkResult)0; |
| vkCreateWaylandSurfaceKHR_VkResult_return = vkEnc->vkCreateWaylandSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface, true /* do lock */); |
| return vkCreateWaylandSurfaceKHR_VkResult_return; |
| } |
| static VkBool32 entry_vkGetPhysicalDeviceWaylandPresentationSupportKHR( |
| VkPhysicalDevice physicalDevice, |
| uint32_t queueFamilyIndex, |
| wl_display* display) |
| { |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceWaylandPresentationSupportKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkBool32 vkGetPhysicalDeviceWaylandPresentationSupportKHR_VkBool32_return = (VkBool32)0; |
| vkGetPhysicalDeviceWaylandPresentationSupportKHR_VkBool32_return = vkEnc->vkGetPhysicalDeviceWaylandPresentationSupportKHR(physicalDevice, queueFamilyIndex, display, true /* do lock */); |
| return vkGetPhysicalDeviceWaylandPresentationSupportKHR_VkBool32_return; |
| } |
| #endif |
| #ifdef VK_KHR_android_surface |
| static VkResult entry_vkCreateAndroidSurfaceKHR( |
| VkInstance instance, |
| const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkSurfaceKHR* pSurface) |
| { |
| AEMU_SCOPED_TRACE("vkCreateAndroidSurfaceKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateAndroidSurfaceKHR_VkResult_return = (VkResult)0; |
| vkCreateAndroidSurfaceKHR_VkResult_return = vkEnc->vkCreateAndroidSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface, true /* do lock */); |
| return vkCreateAndroidSurfaceKHR_VkResult_return; |
| } |
| #endif |
| #ifdef VK_KHR_win32_surface |
| static VkResult entry_vkCreateWin32SurfaceKHR( |
| VkInstance instance, |
| const VkWin32SurfaceCreateInfoKHR* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkSurfaceKHR* pSurface) |
| { |
| AEMU_SCOPED_TRACE("vkCreateWin32SurfaceKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateWin32SurfaceKHR_VkResult_return = (VkResult)0; |
| vkCreateWin32SurfaceKHR_VkResult_return = vkEnc->vkCreateWin32SurfaceKHR(instance, pCreateInfo, pAllocator, pSurface, true /* do lock */); |
| return vkCreateWin32SurfaceKHR_VkResult_return; |
| } |
| static VkBool32 entry_vkGetPhysicalDeviceWin32PresentationSupportKHR( |
| VkPhysicalDevice physicalDevice, |
| uint32_t queueFamilyIndex) |
| { |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceWin32PresentationSupportKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkBool32 vkGetPhysicalDeviceWin32PresentationSupportKHR_VkBool32_return = (VkBool32)0; |
| vkGetPhysicalDeviceWin32PresentationSupportKHR_VkBool32_return = vkEnc->vkGetPhysicalDeviceWin32PresentationSupportKHR(physicalDevice, queueFamilyIndex, true /* do lock */); |
| return vkGetPhysicalDeviceWin32PresentationSupportKHR_VkBool32_return; |
| } |
| #endif |
| #ifdef VK_KHR_sampler_mirror_clamp_to_edge |
| #endif |
| #ifdef VK_KHR_video_queue |
| static VkResult entry_vkGetPhysicalDeviceVideoCapabilitiesKHR( |
| VkPhysicalDevice physicalDevice, |
| const VkVideoProfileKHR* pVideoProfile, |
| VkVideoCapabilitiesKHR* pCapabilities) |
| { |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceVideoCapabilitiesKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetPhysicalDeviceVideoCapabilitiesKHR_VkResult_return = (VkResult)0; |
| vkGetPhysicalDeviceVideoCapabilitiesKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceVideoCapabilitiesKHR(physicalDevice, pVideoProfile, pCapabilities, true /* do lock */); |
| return vkGetPhysicalDeviceVideoCapabilitiesKHR_VkResult_return; |
| } |
| static VkResult entry_vkGetPhysicalDeviceVideoFormatPropertiesKHR( |
| VkPhysicalDevice physicalDevice, |
| const VkPhysicalDeviceVideoFormatInfoKHR* pVideoFormatInfo, |
| uint32_t* pVideoFormatPropertyCount, |
| VkVideoFormatPropertiesKHR* pVideoFormatProperties) |
| { |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceVideoFormatPropertiesKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetPhysicalDeviceVideoFormatPropertiesKHR_VkResult_return = (VkResult)0; |
| vkGetPhysicalDeviceVideoFormatPropertiesKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceVideoFormatPropertiesKHR(physicalDevice, pVideoFormatInfo, pVideoFormatPropertyCount, pVideoFormatProperties, true /* do lock */); |
| return vkGetPhysicalDeviceVideoFormatPropertiesKHR_VkResult_return; |
| } |
| static VkResult entry_vkCreateVideoSessionKHR( |
| VkDevice device, |
| const VkVideoSessionCreateInfoKHR* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkVideoSessionKHR* pVideoSession) |
| { |
| AEMU_SCOPED_TRACE("vkCreateVideoSessionKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateVideoSessionKHR_VkResult_return = (VkResult)0; |
| vkCreateVideoSessionKHR_VkResult_return = vkEnc->vkCreateVideoSessionKHR(device, pCreateInfo, pAllocator, pVideoSession, true /* do lock */); |
| return vkCreateVideoSessionKHR_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkCreateVideoSessionKHR( |
| VkDevice device, |
| const VkVideoSessionCreateInfoKHR* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkVideoSessionKHR* pVideoSession) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_video_queue")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCreateVideoSessionKHR", "VK_KHR_video_queue"); |
| } |
| AEMU_SCOPED_TRACE("vkCreateVideoSessionKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateVideoSessionKHR_VkResult_return = (VkResult)0; |
| vkCreateVideoSessionKHR_VkResult_return = vkEnc->vkCreateVideoSessionKHR(device, pCreateInfo, pAllocator, pVideoSession, true /* do lock */); |
| return vkCreateVideoSessionKHR_VkResult_return; |
| } |
| static void entry_vkDestroyVideoSessionKHR( |
| VkDevice device, |
| VkVideoSessionKHR videoSession, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AEMU_SCOPED_TRACE("vkDestroyVideoSessionKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkDestroyVideoSessionKHR(device, videoSession, pAllocator, true /* do lock */); |
| } |
| static void dynCheck_entry_vkDestroyVideoSessionKHR( |
| VkDevice device, |
| VkVideoSessionKHR videoSession, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_video_queue")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkDestroyVideoSessionKHR", "VK_KHR_video_queue"); |
| } |
| AEMU_SCOPED_TRACE("vkDestroyVideoSessionKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkDestroyVideoSessionKHR(device, videoSession, pAllocator, true /* do lock */); |
| } |
| static VkResult entry_vkGetVideoSessionMemoryRequirementsKHR( |
| VkDevice device, |
| VkVideoSessionKHR videoSession, |
| uint32_t* pVideoSessionMemoryRequirementsCount, |
| VkVideoGetMemoryPropertiesKHR* pVideoSessionMemoryRequirements) |
| { |
| AEMU_SCOPED_TRACE("vkGetVideoSessionMemoryRequirementsKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetVideoSessionMemoryRequirementsKHR_VkResult_return = (VkResult)0; |
| vkGetVideoSessionMemoryRequirementsKHR_VkResult_return = vkEnc->vkGetVideoSessionMemoryRequirementsKHR(device, videoSession, pVideoSessionMemoryRequirementsCount, pVideoSessionMemoryRequirements, true /* do lock */); |
| return vkGetVideoSessionMemoryRequirementsKHR_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkGetVideoSessionMemoryRequirementsKHR( |
| VkDevice device, |
| VkVideoSessionKHR videoSession, |
| uint32_t* pVideoSessionMemoryRequirementsCount, |
| VkVideoGetMemoryPropertiesKHR* pVideoSessionMemoryRequirements) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_video_queue")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetVideoSessionMemoryRequirementsKHR", "VK_KHR_video_queue"); |
| } |
| AEMU_SCOPED_TRACE("vkGetVideoSessionMemoryRequirementsKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetVideoSessionMemoryRequirementsKHR_VkResult_return = (VkResult)0; |
| vkGetVideoSessionMemoryRequirementsKHR_VkResult_return = vkEnc->vkGetVideoSessionMemoryRequirementsKHR(device, videoSession, pVideoSessionMemoryRequirementsCount, pVideoSessionMemoryRequirements, true /* do lock */); |
| return vkGetVideoSessionMemoryRequirementsKHR_VkResult_return; |
| } |
| static VkResult entry_vkBindVideoSessionMemoryKHR( |
| VkDevice device, |
| VkVideoSessionKHR videoSession, |
| uint32_t videoSessionBindMemoryCount, |
| const VkVideoBindMemoryKHR* pVideoSessionBindMemories) |
| { |
| AEMU_SCOPED_TRACE("vkBindVideoSessionMemoryKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkBindVideoSessionMemoryKHR_VkResult_return = (VkResult)0; |
| vkBindVideoSessionMemoryKHR_VkResult_return = vkEnc->vkBindVideoSessionMemoryKHR(device, videoSession, videoSessionBindMemoryCount, pVideoSessionBindMemories, true /* do lock */); |
| return vkBindVideoSessionMemoryKHR_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkBindVideoSessionMemoryKHR( |
| VkDevice device, |
| VkVideoSessionKHR videoSession, |
| uint32_t videoSessionBindMemoryCount, |
| const VkVideoBindMemoryKHR* pVideoSessionBindMemories) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_video_queue")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkBindVideoSessionMemoryKHR", "VK_KHR_video_queue"); |
| } |
| AEMU_SCOPED_TRACE("vkBindVideoSessionMemoryKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkBindVideoSessionMemoryKHR_VkResult_return = (VkResult)0; |
| vkBindVideoSessionMemoryKHR_VkResult_return = vkEnc->vkBindVideoSessionMemoryKHR(device, videoSession, videoSessionBindMemoryCount, pVideoSessionBindMemories, true /* do lock */); |
| return vkBindVideoSessionMemoryKHR_VkResult_return; |
| } |
| static VkResult entry_vkCreateVideoSessionParametersKHR( |
| VkDevice device, |
| const VkVideoSessionParametersCreateInfoKHR* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkVideoSessionParametersKHR* pVideoSessionParameters) |
| { |
| AEMU_SCOPED_TRACE("vkCreateVideoSessionParametersKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateVideoSessionParametersKHR_VkResult_return = (VkResult)0; |
| vkCreateVideoSessionParametersKHR_VkResult_return = vkEnc->vkCreateVideoSessionParametersKHR(device, pCreateInfo, pAllocator, pVideoSessionParameters, true /* do lock */); |
| return vkCreateVideoSessionParametersKHR_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkCreateVideoSessionParametersKHR( |
| VkDevice device, |
| const VkVideoSessionParametersCreateInfoKHR* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkVideoSessionParametersKHR* pVideoSessionParameters) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_video_queue")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCreateVideoSessionParametersKHR", "VK_KHR_video_queue"); |
| } |
| AEMU_SCOPED_TRACE("vkCreateVideoSessionParametersKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateVideoSessionParametersKHR_VkResult_return = (VkResult)0; |
| vkCreateVideoSessionParametersKHR_VkResult_return = vkEnc->vkCreateVideoSessionParametersKHR(device, pCreateInfo, pAllocator, pVideoSessionParameters, true /* do lock */); |
| return vkCreateVideoSessionParametersKHR_VkResult_return; |
| } |
| static VkResult entry_vkUpdateVideoSessionParametersKHR( |
| VkDevice device, |
| VkVideoSessionParametersKHR videoSessionParameters, |
| const VkVideoSessionParametersUpdateInfoKHR* pUpdateInfo) |
| { |
| AEMU_SCOPED_TRACE("vkUpdateVideoSessionParametersKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkUpdateVideoSessionParametersKHR_VkResult_return = (VkResult)0; |
| vkUpdateVideoSessionParametersKHR_VkResult_return = vkEnc->vkUpdateVideoSessionParametersKHR(device, videoSessionParameters, pUpdateInfo, true /* do lock */); |
| return vkUpdateVideoSessionParametersKHR_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkUpdateVideoSessionParametersKHR( |
| VkDevice device, |
| VkVideoSessionParametersKHR videoSessionParameters, |
| const VkVideoSessionParametersUpdateInfoKHR* pUpdateInfo) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_video_queue")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkUpdateVideoSessionParametersKHR", "VK_KHR_video_queue"); |
| } |
| AEMU_SCOPED_TRACE("vkUpdateVideoSessionParametersKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkUpdateVideoSessionParametersKHR_VkResult_return = (VkResult)0; |
| vkUpdateVideoSessionParametersKHR_VkResult_return = vkEnc->vkUpdateVideoSessionParametersKHR(device, videoSessionParameters, pUpdateInfo, true /* do lock */); |
| return vkUpdateVideoSessionParametersKHR_VkResult_return; |
| } |
| static void entry_vkDestroyVideoSessionParametersKHR( |
| VkDevice device, |
| VkVideoSessionParametersKHR videoSessionParameters, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AEMU_SCOPED_TRACE("vkDestroyVideoSessionParametersKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkDestroyVideoSessionParametersKHR(device, videoSessionParameters, pAllocator, true /* do lock */); |
| } |
| static void dynCheck_entry_vkDestroyVideoSessionParametersKHR( |
| VkDevice device, |
| VkVideoSessionParametersKHR videoSessionParameters, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_video_queue")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkDestroyVideoSessionParametersKHR", "VK_KHR_video_queue"); |
| } |
| AEMU_SCOPED_TRACE("vkDestroyVideoSessionParametersKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkDestroyVideoSessionParametersKHR(device, videoSessionParameters, pAllocator, true /* do lock */); |
| } |
| static void entry_vkCmdBeginVideoCodingKHR( |
| VkCommandBuffer commandBuffer, |
| const VkVideoBeginCodingInfoKHR* pBeginInfo) |
| { |
| AEMU_SCOPED_TRACE("vkCmdBeginVideoCodingKHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdBeginVideoCodingKHR(commandBuffer, pBeginInfo, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdBeginVideoCodingKHR( |
| VkCommandBuffer commandBuffer, |
| const VkVideoBeginCodingInfoKHR* pBeginInfo) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_KHR_video_queue")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdBeginVideoCodingKHR", "VK_KHR_video_queue"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdBeginVideoCodingKHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdBeginVideoCodingKHR(commandBuffer, pBeginInfo, true /* do lock */); |
| } |
| static void entry_vkCmdEndVideoCodingKHR( |
| VkCommandBuffer commandBuffer, |
| const VkVideoEndCodingInfoKHR* pEndCodingInfo) |
| { |
| AEMU_SCOPED_TRACE("vkCmdEndVideoCodingKHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdEndVideoCodingKHR(commandBuffer, pEndCodingInfo, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdEndVideoCodingKHR( |
| VkCommandBuffer commandBuffer, |
| const VkVideoEndCodingInfoKHR* pEndCodingInfo) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_KHR_video_queue")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdEndVideoCodingKHR", "VK_KHR_video_queue"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdEndVideoCodingKHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdEndVideoCodingKHR(commandBuffer, pEndCodingInfo, true /* do lock */); |
| } |
| static void entry_vkCmdControlVideoCodingKHR( |
| VkCommandBuffer commandBuffer, |
| const VkVideoCodingControlInfoKHR* pCodingControlInfo) |
| { |
| AEMU_SCOPED_TRACE("vkCmdControlVideoCodingKHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdControlVideoCodingKHR(commandBuffer, pCodingControlInfo, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdControlVideoCodingKHR( |
| VkCommandBuffer commandBuffer, |
| const VkVideoCodingControlInfoKHR* pCodingControlInfo) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_KHR_video_queue")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdControlVideoCodingKHR", "VK_KHR_video_queue"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdControlVideoCodingKHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdControlVideoCodingKHR(commandBuffer, pCodingControlInfo, true /* do lock */); |
| } |
| #endif |
| #ifdef VK_KHR_video_decode_queue |
| static void entry_vkCmdDecodeVideoKHR( |
| VkCommandBuffer commandBuffer, |
| const VkVideoDecodeInfoKHR* pFrameInfo) |
| { |
| AEMU_SCOPED_TRACE("vkCmdDecodeVideoKHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdDecodeVideoKHR(commandBuffer, pFrameInfo, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdDecodeVideoKHR( |
| VkCommandBuffer commandBuffer, |
| const VkVideoDecodeInfoKHR* pFrameInfo) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_KHR_video_decode_queue")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdDecodeVideoKHR", "VK_KHR_video_decode_queue"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdDecodeVideoKHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdDecodeVideoKHR(commandBuffer, pFrameInfo, true /* do lock */); |
| } |
| #endif |
| #ifdef VK_KHR_dynamic_rendering |
| static void entry_vkCmdBeginRenderingKHR( |
| VkCommandBuffer commandBuffer, |
| const VkRenderingInfoKHR* pRenderingInfo) |
| { |
| AEMU_SCOPED_TRACE("vkCmdBeginRenderingKHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdBeginRenderingKHR(commandBuffer, pRenderingInfo, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdBeginRenderingKHR( |
| VkCommandBuffer commandBuffer, |
| const VkRenderingInfoKHR* pRenderingInfo) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_KHR_dynamic_rendering")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdBeginRenderingKHR", "VK_KHR_dynamic_rendering"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdBeginRenderingKHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdBeginRenderingKHR(commandBuffer, pRenderingInfo, true /* do lock */); |
| } |
| static void entry_vkCmdEndRenderingKHR( |
| VkCommandBuffer commandBuffer) |
| { |
| AEMU_SCOPED_TRACE("vkCmdEndRenderingKHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdEndRenderingKHR(commandBuffer, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdEndRenderingKHR( |
| VkCommandBuffer commandBuffer) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_KHR_dynamic_rendering")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdEndRenderingKHR", "VK_KHR_dynamic_rendering"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdEndRenderingKHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdEndRenderingKHR(commandBuffer, true /* do lock */); |
| } |
| #endif |
| #ifdef VK_KHR_multiview |
| #endif |
| #ifdef VK_KHR_get_physical_device_properties2 |
| static void entry_vkGetPhysicalDeviceFeatures2KHR( |
| VkPhysicalDevice physicalDevice, |
| VkPhysicalDeviceFeatures2* pFeatures) |
| { |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFeatures2KHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkGetPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures, true /* do lock */); |
| } |
| static void entry_vkGetPhysicalDeviceProperties2KHR( |
| VkPhysicalDevice physicalDevice, |
| VkPhysicalDeviceProperties2* pProperties) |
| { |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceProperties2KHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkGetPhysicalDeviceProperties2KHR(physicalDevice, pProperties, true /* do lock */); |
| } |
| static void entry_vkGetPhysicalDeviceFormatProperties2KHR( |
| VkPhysicalDevice physicalDevice, |
| VkFormat format, |
| VkFormatProperties2* pFormatProperties) |
| { |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFormatProperties2KHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice, format, pFormatProperties, true /* do lock */); |
| } |
| static VkResult entry_vkGetPhysicalDeviceImageFormatProperties2KHR( |
| VkPhysicalDevice physicalDevice, |
| const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, |
| VkImageFormatProperties2* pImageFormatProperties) |
| { |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceImageFormatProperties2KHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetPhysicalDeviceImageFormatProperties2KHR_VkResult_return = (VkResult)0; |
| auto resources = ResourceTracker::get(); |
| vkGetPhysicalDeviceImageFormatProperties2KHR_VkResult_return = resources->on_vkGetPhysicalDeviceImageFormatProperties2KHR(vkEnc, VK_SUCCESS, physicalDevice, pImageFormatInfo, pImageFormatProperties); |
| return vkGetPhysicalDeviceImageFormatProperties2KHR_VkResult_return; |
| } |
| static void entry_vkGetPhysicalDeviceQueueFamilyProperties2KHR( |
| VkPhysicalDevice physicalDevice, |
| uint32_t* pQueueFamilyPropertyCount, |
| VkQueueFamilyProperties2* pQueueFamilyProperties) |
| { |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceQueueFamilyProperties2KHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties, true /* do lock */); |
| } |
| static void entry_vkGetPhysicalDeviceMemoryProperties2KHR( |
| VkPhysicalDevice physicalDevice, |
| VkPhysicalDeviceMemoryProperties2* pMemoryProperties) |
| { |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMemoryProperties2KHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice, pMemoryProperties, true /* do lock */); |
| } |
| static void entry_vkGetPhysicalDeviceSparseImageFormatProperties2KHR( |
| VkPhysicalDevice physicalDevice, |
| const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, |
| uint32_t* pPropertyCount, |
| VkSparseImageFormatProperties2* pProperties) |
| { |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSparseImageFormatProperties2KHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties, true /* do lock */); |
| } |
| #endif |
| #ifdef VK_KHR_device_group |
| static void entry_vkGetDeviceGroupPeerMemoryFeaturesKHR( |
| VkDevice device, |
| uint32_t heapIndex, |
| uint32_t localDeviceIndex, |
| uint32_t remoteDeviceIndex, |
| VkPeerMemoryFeatureFlags* pPeerMemoryFeatures) |
| { |
| AEMU_SCOPED_TRACE("vkGetDeviceGroupPeerMemoryFeaturesKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures, true /* do lock */); |
| } |
| static void dynCheck_entry_vkGetDeviceGroupPeerMemoryFeaturesKHR( |
| VkDevice device, |
| uint32_t heapIndex, |
| uint32_t localDeviceIndex, |
| uint32_t remoteDeviceIndex, |
| VkPeerMemoryFeatureFlags* pPeerMemoryFeatures) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_device_group")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetDeviceGroupPeerMemoryFeaturesKHR", "VK_KHR_device_group"); |
| } |
| AEMU_SCOPED_TRACE("vkGetDeviceGroupPeerMemoryFeaturesKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures, true /* do lock */); |
| } |
| static void entry_vkCmdSetDeviceMaskKHR( |
| VkCommandBuffer commandBuffer, |
| uint32_t deviceMask) |
| { |
| AEMU_SCOPED_TRACE("vkCmdSetDeviceMaskKHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdSetDeviceMaskKHR( |
| VkCommandBuffer commandBuffer, |
| uint32_t deviceMask) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_KHR_device_group")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdSetDeviceMaskKHR", "VK_KHR_device_group"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdSetDeviceMaskKHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask, true /* do lock */); |
| } |
| static void entry_vkCmdDispatchBaseKHR( |
| VkCommandBuffer commandBuffer, |
| uint32_t baseGroupX, |
| uint32_t baseGroupY, |
| uint32_t baseGroupZ, |
| uint32_t groupCountX, |
| uint32_t groupCountY, |
| uint32_t groupCountZ) |
| { |
| AEMU_SCOPED_TRACE("vkCmdDispatchBaseKHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdDispatchBaseKHR( |
| VkCommandBuffer commandBuffer, |
| uint32_t baseGroupX, |
| uint32_t baseGroupY, |
| uint32_t baseGroupZ, |
| uint32_t groupCountX, |
| uint32_t groupCountY, |
| uint32_t groupCountZ) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_KHR_device_group")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdDispatchBaseKHR", "VK_KHR_device_group"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdDispatchBaseKHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ, true /* do lock */); |
| } |
| #endif |
| #ifdef VK_KHR_shader_draw_parameters |
| #endif |
| #ifdef VK_KHR_maintenance1 |
| static void entry_vkTrimCommandPoolKHR( |
| VkDevice device, |
| VkCommandPool commandPool, |
| VkCommandPoolTrimFlags flags) |
| { |
| AEMU_SCOPED_TRACE("vkTrimCommandPoolKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkTrimCommandPoolKHR(device, commandPool, flags, true /* do lock */); |
| } |
| static void dynCheck_entry_vkTrimCommandPoolKHR( |
| VkDevice device, |
| VkCommandPool commandPool, |
| VkCommandPoolTrimFlags flags) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_maintenance1")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkTrimCommandPoolKHR", "VK_KHR_maintenance1"); |
| } |
| AEMU_SCOPED_TRACE("vkTrimCommandPoolKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkTrimCommandPoolKHR(device, commandPool, flags, true /* do lock */); |
| } |
| #endif |
| #ifdef VK_KHR_device_group_creation |
| static VkResult entry_vkEnumeratePhysicalDeviceGroupsKHR( |
| VkInstance instance, |
| uint32_t* pPhysicalDeviceGroupCount, |
| VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties) |
| { |
| AEMU_SCOPED_TRACE("vkEnumeratePhysicalDeviceGroupsKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkEnumeratePhysicalDeviceGroupsKHR_VkResult_return = (VkResult)0; |
| vkEnumeratePhysicalDeviceGroupsKHR_VkResult_return = vkEnc->vkEnumeratePhysicalDeviceGroupsKHR(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties, true /* do lock */); |
| return vkEnumeratePhysicalDeviceGroupsKHR_VkResult_return; |
| } |
| #endif |
| #ifdef VK_KHR_external_memory_capabilities |
| static void entry_vkGetPhysicalDeviceExternalBufferPropertiesKHR( |
| VkPhysicalDevice physicalDevice, |
| const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, |
| VkExternalBufferProperties* pExternalBufferProperties) |
| { |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalBufferPropertiesKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkGetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties, true /* do lock */); |
| } |
| #endif |
| #ifdef VK_KHR_external_memory |
| #endif |
| #ifdef VK_KHR_external_memory_win32 |
| static VkResult entry_vkGetMemoryWin32HandleKHR( |
| VkDevice device, |
| const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, |
| HANDLE* pHandle) |
| { |
| AEMU_SCOPED_TRACE("vkGetMemoryWin32HandleKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetMemoryWin32HandleKHR_VkResult_return = (VkResult)0; |
| vkGetMemoryWin32HandleKHR_VkResult_return = vkEnc->vkGetMemoryWin32HandleKHR(device, pGetWin32HandleInfo, pHandle, true /* do lock */); |
| return vkGetMemoryWin32HandleKHR_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkGetMemoryWin32HandleKHR( |
| VkDevice device, |
| const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, |
| HANDLE* pHandle) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_external_memory_win32")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetMemoryWin32HandleKHR", "VK_KHR_external_memory_win32"); |
| } |
| AEMU_SCOPED_TRACE("vkGetMemoryWin32HandleKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetMemoryWin32HandleKHR_VkResult_return = (VkResult)0; |
| vkGetMemoryWin32HandleKHR_VkResult_return = vkEnc->vkGetMemoryWin32HandleKHR(device, pGetWin32HandleInfo, pHandle, true /* do lock */); |
| return vkGetMemoryWin32HandleKHR_VkResult_return; |
| } |
| static VkResult entry_vkGetMemoryWin32HandlePropertiesKHR( |
| VkDevice device, |
| VkExternalMemoryHandleTypeFlagBits handleType, |
| HANDLE handle, |
| VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties) |
| { |
| AEMU_SCOPED_TRACE("vkGetMemoryWin32HandlePropertiesKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetMemoryWin32HandlePropertiesKHR_VkResult_return = (VkResult)0; |
| vkGetMemoryWin32HandlePropertiesKHR_VkResult_return = vkEnc->vkGetMemoryWin32HandlePropertiesKHR(device, handleType, handle, pMemoryWin32HandleProperties, true /* do lock */); |
| return vkGetMemoryWin32HandlePropertiesKHR_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkGetMemoryWin32HandlePropertiesKHR( |
| VkDevice device, |
| VkExternalMemoryHandleTypeFlagBits handleType, |
| HANDLE handle, |
| VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_external_memory_win32")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetMemoryWin32HandlePropertiesKHR", "VK_KHR_external_memory_win32"); |
| } |
| AEMU_SCOPED_TRACE("vkGetMemoryWin32HandlePropertiesKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetMemoryWin32HandlePropertiesKHR_VkResult_return = (VkResult)0; |
| vkGetMemoryWin32HandlePropertiesKHR_VkResult_return = vkEnc->vkGetMemoryWin32HandlePropertiesKHR(device, handleType, handle, pMemoryWin32HandleProperties, true /* do lock */); |
| return vkGetMemoryWin32HandlePropertiesKHR_VkResult_return; |
| } |
| #endif |
| #ifdef VK_KHR_external_memory_fd |
| static VkResult entry_vkGetMemoryFdKHR( |
| VkDevice device, |
| const VkMemoryGetFdInfoKHR* pGetFdInfo, |
| int* pFd) |
| { |
| AEMU_SCOPED_TRACE("vkGetMemoryFdKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetMemoryFdKHR_VkResult_return = (VkResult)0; |
| vkGetMemoryFdKHR_VkResult_return = vkEnc->vkGetMemoryFdKHR(device, pGetFdInfo, pFd, true /* do lock */); |
| return vkGetMemoryFdKHR_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkGetMemoryFdKHR( |
| VkDevice device, |
| const VkMemoryGetFdInfoKHR* pGetFdInfo, |
| int* pFd) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_external_memory_fd")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetMemoryFdKHR", "VK_KHR_external_memory_fd"); |
| } |
| AEMU_SCOPED_TRACE("vkGetMemoryFdKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetMemoryFdKHR_VkResult_return = (VkResult)0; |
| vkGetMemoryFdKHR_VkResult_return = vkEnc->vkGetMemoryFdKHR(device, pGetFdInfo, pFd, true /* do lock */); |
| return vkGetMemoryFdKHR_VkResult_return; |
| } |
| static VkResult entry_vkGetMemoryFdPropertiesKHR( |
| VkDevice device, |
| VkExternalMemoryHandleTypeFlagBits handleType, |
| int fd, |
| VkMemoryFdPropertiesKHR* pMemoryFdProperties) |
| { |
| AEMU_SCOPED_TRACE("vkGetMemoryFdPropertiesKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetMemoryFdPropertiesKHR_VkResult_return = (VkResult)0; |
| vkGetMemoryFdPropertiesKHR_VkResult_return = vkEnc->vkGetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties, true /* do lock */); |
| return vkGetMemoryFdPropertiesKHR_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkGetMemoryFdPropertiesKHR( |
| VkDevice device, |
| VkExternalMemoryHandleTypeFlagBits handleType, |
| int fd, |
| VkMemoryFdPropertiesKHR* pMemoryFdProperties) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_external_memory_fd")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetMemoryFdPropertiesKHR", "VK_KHR_external_memory_fd"); |
| } |
| AEMU_SCOPED_TRACE("vkGetMemoryFdPropertiesKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetMemoryFdPropertiesKHR_VkResult_return = (VkResult)0; |
| vkGetMemoryFdPropertiesKHR_VkResult_return = vkEnc->vkGetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties, true /* do lock */); |
| return vkGetMemoryFdPropertiesKHR_VkResult_return; |
| } |
| #endif |
| #ifdef VK_KHR_win32_keyed_mutex |
| #endif |
| #ifdef VK_KHR_external_semaphore_capabilities |
| static void entry_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( |
| VkPhysicalDevice physicalDevice, |
| const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, |
| VkExternalSemaphoreProperties* pExternalSemaphoreProperties) |
| { |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalSemaphorePropertiesKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties, true /* do lock */); |
| } |
| #endif |
| #ifdef VK_KHR_external_semaphore |
| #endif |
| #ifdef VK_KHR_external_semaphore_win32 |
| static VkResult entry_vkImportSemaphoreWin32HandleKHR( |
| VkDevice device, |
| const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo) |
| { |
| AEMU_SCOPED_TRACE("vkImportSemaphoreWin32HandleKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkImportSemaphoreWin32HandleKHR_VkResult_return = (VkResult)0; |
| vkImportSemaphoreWin32HandleKHR_VkResult_return = vkEnc->vkImportSemaphoreWin32HandleKHR(device, pImportSemaphoreWin32HandleInfo, true /* do lock */); |
| return vkImportSemaphoreWin32HandleKHR_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkImportSemaphoreWin32HandleKHR( |
| VkDevice device, |
| const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_external_semaphore_win32")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkImportSemaphoreWin32HandleKHR", "VK_KHR_external_semaphore_win32"); |
| } |
| AEMU_SCOPED_TRACE("vkImportSemaphoreWin32HandleKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkImportSemaphoreWin32HandleKHR_VkResult_return = (VkResult)0; |
| vkImportSemaphoreWin32HandleKHR_VkResult_return = vkEnc->vkImportSemaphoreWin32HandleKHR(device, pImportSemaphoreWin32HandleInfo, true /* do lock */); |
| return vkImportSemaphoreWin32HandleKHR_VkResult_return; |
| } |
| static VkResult entry_vkGetSemaphoreWin32HandleKHR( |
| VkDevice device, |
| const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, |
| HANDLE* pHandle) |
| { |
| AEMU_SCOPED_TRACE("vkGetSemaphoreWin32HandleKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetSemaphoreWin32HandleKHR_VkResult_return = (VkResult)0; |
| vkGetSemaphoreWin32HandleKHR_VkResult_return = vkEnc->vkGetSemaphoreWin32HandleKHR(device, pGetWin32HandleInfo, pHandle, true /* do lock */); |
| return vkGetSemaphoreWin32HandleKHR_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkGetSemaphoreWin32HandleKHR( |
| VkDevice device, |
| const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, |
| HANDLE* pHandle) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_external_semaphore_win32")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetSemaphoreWin32HandleKHR", "VK_KHR_external_semaphore_win32"); |
| } |
| AEMU_SCOPED_TRACE("vkGetSemaphoreWin32HandleKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetSemaphoreWin32HandleKHR_VkResult_return = (VkResult)0; |
| vkGetSemaphoreWin32HandleKHR_VkResult_return = vkEnc->vkGetSemaphoreWin32HandleKHR(device, pGetWin32HandleInfo, pHandle, true /* do lock */); |
| return vkGetSemaphoreWin32HandleKHR_VkResult_return; |
| } |
| #endif |
| #ifdef VK_KHR_external_semaphore_fd |
| static VkResult entry_vkImportSemaphoreFdKHR( |
| VkDevice device, |
| const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo) |
| { |
| AEMU_SCOPED_TRACE("vkImportSemaphoreFdKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkImportSemaphoreFdKHR_VkResult_return = (VkResult)0; |
| auto resources = ResourceTracker::get(); |
| vkImportSemaphoreFdKHR_VkResult_return = resources->on_vkImportSemaphoreFdKHR(vkEnc, VK_SUCCESS, device, pImportSemaphoreFdInfo); |
| return vkImportSemaphoreFdKHR_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkImportSemaphoreFdKHR( |
| VkDevice device, |
| const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_external_semaphore_fd")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkImportSemaphoreFdKHR", "VK_KHR_external_semaphore_fd"); |
| } |
| AEMU_SCOPED_TRACE("vkImportSemaphoreFdKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkImportSemaphoreFdKHR_VkResult_return = (VkResult)0; |
| vkImportSemaphoreFdKHR_VkResult_return = resources->on_vkImportSemaphoreFdKHR(vkEnc, VK_SUCCESS, device, pImportSemaphoreFdInfo); |
| return vkImportSemaphoreFdKHR_VkResult_return; |
| } |
| static VkResult entry_vkGetSemaphoreFdKHR( |
| VkDevice device, |
| const VkSemaphoreGetFdInfoKHR* pGetFdInfo, |
| int* pFd) |
| { |
| AEMU_SCOPED_TRACE("vkGetSemaphoreFdKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetSemaphoreFdKHR_VkResult_return = (VkResult)0; |
| auto resources = ResourceTracker::get(); |
| vkGetSemaphoreFdKHR_VkResult_return = resources->on_vkGetSemaphoreFdKHR(vkEnc, VK_SUCCESS, device, pGetFdInfo, pFd); |
| return vkGetSemaphoreFdKHR_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkGetSemaphoreFdKHR( |
| VkDevice device, |
| const VkSemaphoreGetFdInfoKHR* pGetFdInfo, |
| int* pFd) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_external_semaphore_fd")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetSemaphoreFdKHR", "VK_KHR_external_semaphore_fd"); |
| } |
| AEMU_SCOPED_TRACE("vkGetSemaphoreFdKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetSemaphoreFdKHR_VkResult_return = (VkResult)0; |
| vkGetSemaphoreFdKHR_VkResult_return = resources->on_vkGetSemaphoreFdKHR(vkEnc, VK_SUCCESS, device, pGetFdInfo, pFd); |
| return vkGetSemaphoreFdKHR_VkResult_return; |
| } |
| #endif |
| #ifdef VK_KHR_push_descriptor |
| static void entry_vkCmdPushDescriptorSetKHR( |
| VkCommandBuffer commandBuffer, |
| VkPipelineBindPoint pipelineBindPoint, |
| VkPipelineLayout layout, |
| uint32_t set, |
| uint32_t descriptorWriteCount, |
| const VkWriteDescriptorSet* pDescriptorWrites) |
| { |
| AEMU_SCOPED_TRACE("vkCmdPushDescriptorSetKHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdPushDescriptorSetKHR( |
| VkCommandBuffer commandBuffer, |
| VkPipelineBindPoint pipelineBindPoint, |
| VkPipelineLayout layout, |
| uint32_t set, |
| uint32_t descriptorWriteCount, |
| const VkWriteDescriptorSet* pDescriptorWrites) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_KHR_push_descriptor")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdPushDescriptorSetKHR", "VK_KHR_push_descriptor"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdPushDescriptorSetKHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites, true /* do lock */); |
| } |
| static void entry_vkCmdPushDescriptorSetWithTemplateKHR( |
| VkCommandBuffer commandBuffer, |
| VkDescriptorUpdateTemplate descriptorUpdateTemplate, |
| VkPipelineLayout layout, |
| uint32_t set, |
| const void* pData) |
| { |
| AEMU_SCOPED_TRACE("vkCmdPushDescriptorSetWithTemplateKHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdPushDescriptorSetWithTemplateKHR( |
| VkCommandBuffer commandBuffer, |
| VkDescriptorUpdateTemplate descriptorUpdateTemplate, |
| VkPipelineLayout layout, |
| uint32_t set, |
| const void* pData) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_KHR_push_descriptor")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdPushDescriptorSetWithTemplateKHR", "VK_KHR_push_descriptor"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdPushDescriptorSetWithTemplateKHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData, true /* do lock */); |
| } |
| #endif |
| #ifdef VK_KHR_shader_float16_int8 |
| #endif |
| #ifdef VK_KHR_16bit_storage |
| #endif |
| #ifdef VK_KHR_incremental_present |
| #endif |
| #ifdef VK_KHR_descriptor_update_template |
| static VkResult entry_vkCreateDescriptorUpdateTemplateKHR( |
| VkDevice device, |
| const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate) |
| { |
| AEMU_SCOPED_TRACE("vkCreateDescriptorUpdateTemplateKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateDescriptorUpdateTemplateKHR_VkResult_return = (VkResult)0; |
| vkCreateDescriptorUpdateTemplateKHR_VkResult_return = vkEnc->vkCreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate, true /* do lock */); |
| return vkCreateDescriptorUpdateTemplateKHR_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkCreateDescriptorUpdateTemplateKHR( |
| VkDevice device, |
| const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_descriptor_update_template")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCreateDescriptorUpdateTemplateKHR", "VK_KHR_descriptor_update_template"); |
| } |
| AEMU_SCOPED_TRACE("vkCreateDescriptorUpdateTemplateKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateDescriptorUpdateTemplateKHR_VkResult_return = (VkResult)0; |
| vkCreateDescriptorUpdateTemplateKHR_VkResult_return = vkEnc->vkCreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate, true /* do lock */); |
| return vkCreateDescriptorUpdateTemplateKHR_VkResult_return; |
| } |
| static void entry_vkDestroyDescriptorUpdateTemplateKHR( |
| VkDevice device, |
| VkDescriptorUpdateTemplate descriptorUpdateTemplate, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AEMU_SCOPED_TRACE("vkDestroyDescriptorUpdateTemplateKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkDestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator, true /* do lock */); |
| } |
| static void dynCheck_entry_vkDestroyDescriptorUpdateTemplateKHR( |
| VkDevice device, |
| VkDescriptorUpdateTemplate descriptorUpdateTemplate, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_descriptor_update_template")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkDestroyDescriptorUpdateTemplateKHR", "VK_KHR_descriptor_update_template"); |
| } |
| AEMU_SCOPED_TRACE("vkDestroyDescriptorUpdateTemplateKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkDestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator, true /* do lock */); |
| } |
| static void entry_vkUpdateDescriptorSetWithTemplateKHR( |
| VkDevice device, |
| VkDescriptorSet descriptorSet, |
| VkDescriptorUpdateTemplate descriptorUpdateTemplate, |
| const void* pData) |
| { |
| AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplateKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkUpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData, true /* do lock */); |
| } |
| static void dynCheck_entry_vkUpdateDescriptorSetWithTemplateKHR( |
| VkDevice device, |
| VkDescriptorSet descriptorSet, |
| VkDescriptorUpdateTemplate descriptorUpdateTemplate, |
| const void* pData) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_descriptor_update_template")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkUpdateDescriptorSetWithTemplateKHR", "VK_KHR_descriptor_update_template"); |
| } |
| AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplateKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkUpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData, true /* do lock */); |
| } |
| #endif |
| #ifdef VK_KHR_imageless_framebuffer |
| #endif |
| #ifdef VK_KHR_create_renderpass2 |
| static VkResult entry_vkCreateRenderPass2KHR( |
| VkDevice device, |
| const VkRenderPassCreateInfo2* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkRenderPass* pRenderPass) |
| { |
| AEMU_SCOPED_TRACE("vkCreateRenderPass2KHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateRenderPass2KHR_VkResult_return = (VkResult)0; |
| vkCreateRenderPass2KHR_VkResult_return = vkEnc->vkCreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass, true /* do lock */); |
| return vkCreateRenderPass2KHR_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkCreateRenderPass2KHR( |
| VkDevice device, |
| const VkRenderPassCreateInfo2* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkRenderPass* pRenderPass) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_create_renderpass2")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCreateRenderPass2KHR", "VK_KHR_create_renderpass2"); |
| } |
| AEMU_SCOPED_TRACE("vkCreateRenderPass2KHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateRenderPass2KHR_VkResult_return = (VkResult)0; |
| vkCreateRenderPass2KHR_VkResult_return = vkEnc->vkCreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass, true /* do lock */); |
| return vkCreateRenderPass2KHR_VkResult_return; |
| } |
| static void entry_vkCmdBeginRenderPass2KHR( |
| VkCommandBuffer commandBuffer, |
| const VkRenderPassBeginInfo* pRenderPassBegin, |
| const VkSubpassBeginInfo* pSubpassBeginInfo) |
| { |
| AEMU_SCOPED_TRACE("vkCmdBeginRenderPass2KHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdBeginRenderPass2KHR( |
| VkCommandBuffer commandBuffer, |
| const VkRenderPassBeginInfo* pRenderPassBegin, |
| const VkSubpassBeginInfo* pSubpassBeginInfo) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_KHR_create_renderpass2")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdBeginRenderPass2KHR", "VK_KHR_create_renderpass2"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdBeginRenderPass2KHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo, true /* do lock */); |
| } |
| static void entry_vkCmdNextSubpass2KHR( |
| VkCommandBuffer commandBuffer, |
| const VkSubpassBeginInfo* pSubpassBeginInfo, |
| const VkSubpassEndInfo* pSubpassEndInfo) |
| { |
| AEMU_SCOPED_TRACE("vkCmdNextSubpass2KHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdNextSubpass2KHR( |
| VkCommandBuffer commandBuffer, |
| const VkSubpassBeginInfo* pSubpassBeginInfo, |
| const VkSubpassEndInfo* pSubpassEndInfo) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_KHR_create_renderpass2")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdNextSubpass2KHR", "VK_KHR_create_renderpass2"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdNextSubpass2KHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo, true /* do lock */); |
| } |
| static void entry_vkCmdEndRenderPass2KHR( |
| VkCommandBuffer commandBuffer, |
| const VkSubpassEndInfo* pSubpassEndInfo) |
| { |
| AEMU_SCOPED_TRACE("vkCmdEndRenderPass2KHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdEndRenderPass2KHR( |
| VkCommandBuffer commandBuffer, |
| const VkSubpassEndInfo* pSubpassEndInfo) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_KHR_create_renderpass2")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdEndRenderPass2KHR", "VK_KHR_create_renderpass2"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdEndRenderPass2KHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo, true /* do lock */); |
| } |
| #endif |
| #ifdef VK_KHR_shared_presentable_image |
| static VkResult entry_vkGetSwapchainStatusKHR( |
| VkDevice device, |
| VkSwapchainKHR swapchain) |
| { |
| AEMU_SCOPED_TRACE("vkGetSwapchainStatusKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetSwapchainStatusKHR_VkResult_return = (VkResult)0; |
| vkGetSwapchainStatusKHR_VkResult_return = vkEnc->vkGetSwapchainStatusKHR(device, swapchain, true /* do lock */); |
| return vkGetSwapchainStatusKHR_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkGetSwapchainStatusKHR( |
| VkDevice device, |
| VkSwapchainKHR swapchain) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_shared_presentable_image")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetSwapchainStatusKHR", "VK_KHR_shared_presentable_image"); |
| } |
| AEMU_SCOPED_TRACE("vkGetSwapchainStatusKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetSwapchainStatusKHR_VkResult_return = (VkResult)0; |
| vkGetSwapchainStatusKHR_VkResult_return = vkEnc->vkGetSwapchainStatusKHR(device, swapchain, true /* do lock */); |
| return vkGetSwapchainStatusKHR_VkResult_return; |
| } |
| #endif |
| #ifdef VK_KHR_external_fence_capabilities |
| static void entry_vkGetPhysicalDeviceExternalFencePropertiesKHR( |
| VkPhysicalDevice physicalDevice, |
| const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, |
| VkExternalFenceProperties* pExternalFenceProperties) |
| { |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalFencePropertiesKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| auto resources = ResourceTracker::get(); |
| resources->on_vkGetPhysicalDeviceExternalFencePropertiesKHR(vkEnc, physicalDevice, pExternalFenceInfo, pExternalFenceProperties); |
| } |
| #endif |
| #ifdef VK_KHR_external_fence |
| #endif |
| #ifdef VK_KHR_external_fence_win32 |
| static VkResult entry_vkImportFenceWin32HandleKHR( |
| VkDevice device, |
| const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo) |
| { |
| AEMU_SCOPED_TRACE("vkImportFenceWin32HandleKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkImportFenceWin32HandleKHR_VkResult_return = (VkResult)0; |
| vkImportFenceWin32HandleKHR_VkResult_return = vkEnc->vkImportFenceWin32HandleKHR(device, pImportFenceWin32HandleInfo, true /* do lock */); |
| return vkImportFenceWin32HandleKHR_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkImportFenceWin32HandleKHR( |
| VkDevice device, |
| const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_external_fence_win32")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkImportFenceWin32HandleKHR", "VK_KHR_external_fence_win32"); |
| } |
| AEMU_SCOPED_TRACE("vkImportFenceWin32HandleKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkImportFenceWin32HandleKHR_VkResult_return = (VkResult)0; |
| vkImportFenceWin32HandleKHR_VkResult_return = vkEnc->vkImportFenceWin32HandleKHR(device, pImportFenceWin32HandleInfo, true /* do lock */); |
| return vkImportFenceWin32HandleKHR_VkResult_return; |
| } |
| static VkResult entry_vkGetFenceWin32HandleKHR( |
| VkDevice device, |
| const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, |
| HANDLE* pHandle) |
| { |
| AEMU_SCOPED_TRACE("vkGetFenceWin32HandleKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetFenceWin32HandleKHR_VkResult_return = (VkResult)0; |
| vkGetFenceWin32HandleKHR_VkResult_return = vkEnc->vkGetFenceWin32HandleKHR(device, pGetWin32HandleInfo, pHandle, true /* do lock */); |
| return vkGetFenceWin32HandleKHR_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkGetFenceWin32HandleKHR( |
| VkDevice device, |
| const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, |
| HANDLE* pHandle) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_external_fence_win32")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetFenceWin32HandleKHR", "VK_KHR_external_fence_win32"); |
| } |
| AEMU_SCOPED_TRACE("vkGetFenceWin32HandleKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetFenceWin32HandleKHR_VkResult_return = (VkResult)0; |
| vkGetFenceWin32HandleKHR_VkResult_return = vkEnc->vkGetFenceWin32HandleKHR(device, pGetWin32HandleInfo, pHandle, true /* do lock */); |
| return vkGetFenceWin32HandleKHR_VkResult_return; |
| } |
| #endif |
| #ifdef VK_KHR_external_fence_fd |
| static VkResult entry_vkImportFenceFdKHR( |
| VkDevice device, |
| const VkImportFenceFdInfoKHR* pImportFenceFdInfo) |
| { |
| AEMU_SCOPED_TRACE("vkImportFenceFdKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkImportFenceFdKHR_VkResult_return = (VkResult)0; |
| auto resources = ResourceTracker::get(); |
| vkImportFenceFdKHR_VkResult_return = resources->on_vkImportFenceFdKHR(vkEnc, VK_SUCCESS, device, pImportFenceFdInfo); |
| return vkImportFenceFdKHR_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkImportFenceFdKHR( |
| VkDevice device, |
| const VkImportFenceFdInfoKHR* pImportFenceFdInfo) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_external_fence_fd")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkImportFenceFdKHR", "VK_KHR_external_fence_fd"); |
| } |
| AEMU_SCOPED_TRACE("vkImportFenceFdKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkImportFenceFdKHR_VkResult_return = (VkResult)0; |
| vkImportFenceFdKHR_VkResult_return = resources->on_vkImportFenceFdKHR(vkEnc, VK_SUCCESS, device, pImportFenceFdInfo); |
| return vkImportFenceFdKHR_VkResult_return; |
| } |
| static VkResult entry_vkGetFenceFdKHR( |
| VkDevice device, |
| const VkFenceGetFdInfoKHR* pGetFdInfo, |
| int* pFd) |
| { |
| AEMU_SCOPED_TRACE("vkGetFenceFdKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetFenceFdKHR_VkResult_return = (VkResult)0; |
| auto resources = ResourceTracker::get(); |
| vkGetFenceFdKHR_VkResult_return = resources->on_vkGetFenceFdKHR(vkEnc, VK_SUCCESS, device, pGetFdInfo, pFd); |
| return vkGetFenceFdKHR_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkGetFenceFdKHR( |
| VkDevice device, |
| const VkFenceGetFdInfoKHR* pGetFdInfo, |
| int* pFd) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_external_fence_fd")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetFenceFdKHR", "VK_KHR_external_fence_fd"); |
| } |
| AEMU_SCOPED_TRACE("vkGetFenceFdKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetFenceFdKHR_VkResult_return = (VkResult)0; |
| vkGetFenceFdKHR_VkResult_return = resources->on_vkGetFenceFdKHR(vkEnc, VK_SUCCESS, device, pGetFdInfo, pFd); |
| return vkGetFenceFdKHR_VkResult_return; |
| } |
| #endif |
| #ifdef VK_KHR_performance_query |
| static VkResult entry_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( |
| VkPhysicalDevice physicalDevice, |
| uint32_t queueFamilyIndex, |
| uint32_t* pCounterCount, |
| VkPerformanceCounterKHR* pCounters, |
| VkPerformanceCounterDescriptionKHR* pCounterDescriptions) |
| { |
| AEMU_SCOPED_TRACE("vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR_VkResult_return = (VkResult)0; |
| vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR_VkResult_return = vkEnc->vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions, true /* do lock */); |
| return vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR_VkResult_return; |
| } |
| static void entry_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR( |
| VkPhysicalDevice physicalDevice, |
| const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo, |
| uint32_t* pNumPasses) |
| { |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(physicalDevice, pPerformanceQueryCreateInfo, pNumPasses, true /* do lock */); |
| } |
| static VkResult entry_vkAcquireProfilingLockKHR( |
| VkDevice device, |
| const VkAcquireProfilingLockInfoKHR* pInfo) |
| { |
| AEMU_SCOPED_TRACE("vkAcquireProfilingLockKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkAcquireProfilingLockKHR_VkResult_return = (VkResult)0; |
| vkAcquireProfilingLockKHR_VkResult_return = vkEnc->vkAcquireProfilingLockKHR(device, pInfo, true /* do lock */); |
| return vkAcquireProfilingLockKHR_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkAcquireProfilingLockKHR( |
| VkDevice device, |
| const VkAcquireProfilingLockInfoKHR* pInfo) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_performance_query")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkAcquireProfilingLockKHR", "VK_KHR_performance_query"); |
| } |
| AEMU_SCOPED_TRACE("vkAcquireProfilingLockKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkAcquireProfilingLockKHR_VkResult_return = (VkResult)0; |
| vkAcquireProfilingLockKHR_VkResult_return = vkEnc->vkAcquireProfilingLockKHR(device, pInfo, true /* do lock */); |
| return vkAcquireProfilingLockKHR_VkResult_return; |
| } |
| static void entry_vkReleaseProfilingLockKHR( |
| VkDevice device) |
| { |
| AEMU_SCOPED_TRACE("vkReleaseProfilingLockKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkReleaseProfilingLockKHR(device, true /* do lock */); |
| } |
| static void dynCheck_entry_vkReleaseProfilingLockKHR( |
| VkDevice device) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_performance_query")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkReleaseProfilingLockKHR", "VK_KHR_performance_query"); |
| } |
| AEMU_SCOPED_TRACE("vkReleaseProfilingLockKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkReleaseProfilingLockKHR(device, true /* do lock */); |
| } |
| #endif |
| #ifdef VK_KHR_maintenance2 |
| #endif |
| #ifdef VK_KHR_get_surface_capabilities2 |
| static VkResult entry_vkGetPhysicalDeviceSurfaceCapabilities2KHR( |
| VkPhysicalDevice physicalDevice, |
| const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, |
| VkSurfaceCapabilities2KHR* pSurfaceCapabilities) |
| { |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceCapabilities2KHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetPhysicalDeviceSurfaceCapabilities2KHR_VkResult_return = (VkResult)0; |
| vkGetPhysicalDeviceSurfaceCapabilities2KHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, pSurfaceInfo, pSurfaceCapabilities, true /* do lock */); |
| return vkGetPhysicalDeviceSurfaceCapabilities2KHR_VkResult_return; |
| } |
| static VkResult entry_vkGetPhysicalDeviceSurfaceFormats2KHR( |
| VkPhysicalDevice physicalDevice, |
| const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, |
| uint32_t* pSurfaceFormatCount, |
| VkSurfaceFormat2KHR* pSurfaceFormats) |
| { |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceFormats2KHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetPhysicalDeviceSurfaceFormats2KHR_VkResult_return = (VkResult)0; |
| vkGetPhysicalDeviceSurfaceFormats2KHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceFormats2KHR(physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats, true /* do lock */); |
| return vkGetPhysicalDeviceSurfaceFormats2KHR_VkResult_return; |
| } |
| #endif |
| #ifdef VK_KHR_variable_pointers |
| #endif |
| #ifdef VK_KHR_get_display_properties2 |
| static VkResult entry_vkGetPhysicalDeviceDisplayProperties2KHR( |
| VkPhysicalDevice physicalDevice, |
| uint32_t* pPropertyCount, |
| VkDisplayProperties2KHR* pProperties) |
| { |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayProperties2KHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetPhysicalDeviceDisplayProperties2KHR_VkResult_return = (VkResult)0; |
| vkGetPhysicalDeviceDisplayProperties2KHR_VkResult_return = vkEnc->vkGetPhysicalDeviceDisplayProperties2KHR(physicalDevice, pPropertyCount, pProperties, true /* do lock */); |
| return vkGetPhysicalDeviceDisplayProperties2KHR_VkResult_return; |
| } |
| static VkResult entry_vkGetPhysicalDeviceDisplayPlaneProperties2KHR( |
| VkPhysicalDevice physicalDevice, |
| uint32_t* pPropertyCount, |
| VkDisplayPlaneProperties2KHR* pProperties) |
| { |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayPlaneProperties2KHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetPhysicalDeviceDisplayPlaneProperties2KHR_VkResult_return = (VkResult)0; |
| vkGetPhysicalDeviceDisplayPlaneProperties2KHR_VkResult_return = vkEnc->vkGetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice, pPropertyCount, pProperties, true /* do lock */); |
| return vkGetPhysicalDeviceDisplayPlaneProperties2KHR_VkResult_return; |
| } |
| static VkResult entry_vkGetDisplayModeProperties2KHR( |
| VkPhysicalDevice physicalDevice, |
| VkDisplayKHR display, |
| uint32_t* pPropertyCount, |
| VkDisplayModeProperties2KHR* pProperties) |
| { |
| AEMU_SCOPED_TRACE("vkGetDisplayModeProperties2KHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetDisplayModeProperties2KHR_VkResult_return = (VkResult)0; |
| vkGetDisplayModeProperties2KHR_VkResult_return = vkEnc->vkGetDisplayModeProperties2KHR(physicalDevice, display, pPropertyCount, pProperties, true /* do lock */); |
| return vkGetDisplayModeProperties2KHR_VkResult_return; |
| } |
| static VkResult entry_vkGetDisplayPlaneCapabilities2KHR( |
| VkPhysicalDevice physicalDevice, |
| const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo, |
| VkDisplayPlaneCapabilities2KHR* pCapabilities) |
| { |
| AEMU_SCOPED_TRACE("vkGetDisplayPlaneCapabilities2KHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetDisplayPlaneCapabilities2KHR_VkResult_return = (VkResult)0; |
| vkGetDisplayPlaneCapabilities2KHR_VkResult_return = vkEnc->vkGetDisplayPlaneCapabilities2KHR(physicalDevice, pDisplayPlaneInfo, pCapabilities, true /* do lock */); |
| return vkGetDisplayPlaneCapabilities2KHR_VkResult_return; |
| } |
| #endif |
| #ifdef VK_KHR_dedicated_allocation |
| #endif |
| #ifdef VK_KHR_storage_buffer_storage_class |
| #endif |
| #ifdef VK_KHR_relaxed_block_layout |
| #endif |
| #ifdef VK_KHR_get_memory_requirements2 |
| static void entry_vkGetImageMemoryRequirements2KHR( |
| VkDevice device, |
| const VkImageMemoryRequirementsInfo2* pInfo, |
| VkMemoryRequirements2* pMemoryRequirements) |
| { |
| AEMU_SCOPED_TRACE("vkGetImageMemoryRequirements2KHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| auto resources = ResourceTracker::get(); |
| resources->on_vkGetImageMemoryRequirements2KHR(vkEnc, device, pInfo, pMemoryRequirements); |
| } |
| static void dynCheck_entry_vkGetImageMemoryRequirements2KHR( |
| VkDevice device, |
| const VkImageMemoryRequirementsInfo2* pInfo, |
| VkMemoryRequirements2* pMemoryRequirements) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_get_memory_requirements2")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetImageMemoryRequirements2KHR", "VK_KHR_get_memory_requirements2"); |
| } |
| AEMU_SCOPED_TRACE("vkGetImageMemoryRequirements2KHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| resources->on_vkGetImageMemoryRequirements2KHR(vkEnc, device, pInfo, pMemoryRequirements); |
| } |
| static void entry_vkGetBufferMemoryRequirements2KHR( |
| VkDevice device, |
| const VkBufferMemoryRequirementsInfo2* pInfo, |
| VkMemoryRequirements2* pMemoryRequirements) |
| { |
| AEMU_SCOPED_TRACE("vkGetBufferMemoryRequirements2KHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| auto resources = ResourceTracker::get(); |
| resources->on_vkGetBufferMemoryRequirements2KHR(vkEnc, device, pInfo, pMemoryRequirements); |
| } |
| static void dynCheck_entry_vkGetBufferMemoryRequirements2KHR( |
| VkDevice device, |
| const VkBufferMemoryRequirementsInfo2* pInfo, |
| VkMemoryRequirements2* pMemoryRequirements) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_get_memory_requirements2")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetBufferMemoryRequirements2KHR", "VK_KHR_get_memory_requirements2"); |
| } |
| AEMU_SCOPED_TRACE("vkGetBufferMemoryRequirements2KHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| resources->on_vkGetBufferMemoryRequirements2KHR(vkEnc, device, pInfo, pMemoryRequirements); |
| } |
| static void entry_vkGetImageSparseMemoryRequirements2KHR( |
| VkDevice device, |
| const VkImageSparseMemoryRequirementsInfo2* pInfo, |
| uint32_t* pSparseMemoryRequirementCount, |
| VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) |
| { |
| AEMU_SCOPED_TRACE("vkGetImageSparseMemoryRequirements2KHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkGetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements, true /* do lock */); |
| } |
| static void dynCheck_entry_vkGetImageSparseMemoryRequirements2KHR( |
| VkDevice device, |
| const VkImageSparseMemoryRequirementsInfo2* pInfo, |
| uint32_t* pSparseMemoryRequirementCount, |
| VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_get_memory_requirements2")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetImageSparseMemoryRequirements2KHR", "VK_KHR_get_memory_requirements2"); |
| } |
| AEMU_SCOPED_TRACE("vkGetImageSparseMemoryRequirements2KHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkGetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements, true /* do lock */); |
| } |
| #endif |
| #ifdef VK_KHR_image_format_list |
| #endif |
| #ifdef VK_KHR_sampler_ycbcr_conversion |
| static VkResult entry_vkCreateSamplerYcbcrConversionKHR( |
| VkDevice device, |
| const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkSamplerYcbcrConversion* pYcbcrConversion) |
| { |
| AEMU_SCOPED_TRACE("vkCreateSamplerYcbcrConversionKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateSamplerYcbcrConversionKHR_VkResult_return = (VkResult)0; |
| auto resources = ResourceTracker::get(); |
| vkCreateSamplerYcbcrConversionKHR_VkResult_return = resources->on_vkCreateSamplerYcbcrConversionKHR(vkEnc, VK_SUCCESS, device, pCreateInfo, pAllocator, pYcbcrConversion); |
| return vkCreateSamplerYcbcrConversionKHR_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkCreateSamplerYcbcrConversionKHR( |
| VkDevice device, |
| const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkSamplerYcbcrConversion* pYcbcrConversion) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_sampler_ycbcr_conversion")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCreateSamplerYcbcrConversionKHR", "VK_KHR_sampler_ycbcr_conversion"); |
| } |
| AEMU_SCOPED_TRACE("vkCreateSamplerYcbcrConversionKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateSamplerYcbcrConversionKHR_VkResult_return = (VkResult)0; |
| vkCreateSamplerYcbcrConversionKHR_VkResult_return = resources->on_vkCreateSamplerYcbcrConversionKHR(vkEnc, VK_SUCCESS, device, pCreateInfo, pAllocator, pYcbcrConversion); |
| return vkCreateSamplerYcbcrConversionKHR_VkResult_return; |
| } |
| static void entry_vkDestroySamplerYcbcrConversionKHR( |
| VkDevice device, |
| VkSamplerYcbcrConversion ycbcrConversion, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AEMU_SCOPED_TRACE("vkDestroySamplerYcbcrConversionKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| auto resources = ResourceTracker::get(); |
| resources->on_vkDestroySamplerYcbcrConversionKHR(vkEnc, device, ycbcrConversion, pAllocator); |
| } |
| static void dynCheck_entry_vkDestroySamplerYcbcrConversionKHR( |
| VkDevice device, |
| VkSamplerYcbcrConversion ycbcrConversion, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_sampler_ycbcr_conversion")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkDestroySamplerYcbcrConversionKHR", "VK_KHR_sampler_ycbcr_conversion"); |
| } |
| AEMU_SCOPED_TRACE("vkDestroySamplerYcbcrConversionKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| resources->on_vkDestroySamplerYcbcrConversionKHR(vkEnc, device, ycbcrConversion, pAllocator); |
| } |
| #endif |
| #ifdef VK_KHR_bind_memory2 |
| static VkResult entry_vkBindBufferMemory2KHR( |
| VkDevice device, |
| uint32_t bindInfoCount, |
| const VkBindBufferMemoryInfo* pBindInfos) |
| { |
| AEMU_SCOPED_TRACE("vkBindBufferMemory2KHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkBindBufferMemory2KHR_VkResult_return = (VkResult)0; |
| auto resources = ResourceTracker::get(); |
| vkBindBufferMemory2KHR_VkResult_return = resources->on_vkBindBufferMemory2KHR(vkEnc, VK_SUCCESS, device, bindInfoCount, pBindInfos); |
| return vkBindBufferMemory2KHR_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkBindBufferMemory2KHR( |
| VkDevice device, |
| uint32_t bindInfoCount, |
| const VkBindBufferMemoryInfo* pBindInfos) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_bind_memory2")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkBindBufferMemory2KHR", "VK_KHR_bind_memory2"); |
| } |
| AEMU_SCOPED_TRACE("vkBindBufferMemory2KHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkBindBufferMemory2KHR_VkResult_return = (VkResult)0; |
| vkBindBufferMemory2KHR_VkResult_return = resources->on_vkBindBufferMemory2KHR(vkEnc, VK_SUCCESS, device, bindInfoCount, pBindInfos); |
| return vkBindBufferMemory2KHR_VkResult_return; |
| } |
| static VkResult entry_vkBindImageMemory2KHR( |
| VkDevice device, |
| uint32_t bindInfoCount, |
| const VkBindImageMemoryInfo* pBindInfos) |
| { |
| AEMU_SCOPED_TRACE("vkBindImageMemory2KHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkBindImageMemory2KHR_VkResult_return = (VkResult)0; |
| auto resources = ResourceTracker::get(); |
| vkBindImageMemory2KHR_VkResult_return = resources->on_vkBindImageMemory2KHR(vkEnc, VK_SUCCESS, device, bindInfoCount, pBindInfos); |
| return vkBindImageMemory2KHR_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkBindImageMemory2KHR( |
| VkDevice device, |
| uint32_t bindInfoCount, |
| const VkBindImageMemoryInfo* pBindInfos) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_bind_memory2")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkBindImageMemory2KHR", "VK_KHR_bind_memory2"); |
| } |
| AEMU_SCOPED_TRACE("vkBindImageMemory2KHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkBindImageMemory2KHR_VkResult_return = (VkResult)0; |
| vkBindImageMemory2KHR_VkResult_return = resources->on_vkBindImageMemory2KHR(vkEnc, VK_SUCCESS, device, bindInfoCount, pBindInfos); |
| return vkBindImageMemory2KHR_VkResult_return; |
| } |
| #endif |
| #ifdef VK_KHR_portability_subset |
| #endif |
| #ifdef VK_KHR_maintenance3 |
| static void entry_vkGetDescriptorSetLayoutSupportKHR( |
| VkDevice device, |
| const VkDescriptorSetLayoutCreateInfo* pCreateInfo, |
| VkDescriptorSetLayoutSupport* pSupport) |
| { |
| AEMU_SCOPED_TRACE("vkGetDescriptorSetLayoutSupportKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkGetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport, true /* do lock */); |
| } |
| static void dynCheck_entry_vkGetDescriptorSetLayoutSupportKHR( |
| VkDevice device, |
| const VkDescriptorSetLayoutCreateInfo* pCreateInfo, |
| VkDescriptorSetLayoutSupport* pSupport) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_maintenance3")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetDescriptorSetLayoutSupportKHR", "VK_KHR_maintenance3"); |
| } |
| AEMU_SCOPED_TRACE("vkGetDescriptorSetLayoutSupportKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkGetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport, true /* do lock */); |
| } |
| #endif |
| #ifdef VK_KHR_draw_indirect_count |
| static void entry_vkCmdDrawIndirectCountKHR( |
| VkCommandBuffer commandBuffer, |
| VkBuffer buffer, |
| VkDeviceSize offset, |
| VkBuffer countBuffer, |
| VkDeviceSize countBufferOffset, |
| uint32_t maxDrawCount, |
| uint32_t stride) |
| { |
| AEMU_SCOPED_TRACE("vkCmdDrawIndirectCountKHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdDrawIndirectCountKHR( |
| VkCommandBuffer commandBuffer, |
| VkBuffer buffer, |
| VkDeviceSize offset, |
| VkBuffer countBuffer, |
| VkDeviceSize countBufferOffset, |
| uint32_t maxDrawCount, |
| uint32_t stride) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_KHR_draw_indirect_count")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdDrawIndirectCountKHR", "VK_KHR_draw_indirect_count"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdDrawIndirectCountKHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, true /* do lock */); |
| } |
| static void entry_vkCmdDrawIndexedIndirectCountKHR( |
| VkCommandBuffer commandBuffer, |
| VkBuffer buffer, |
| VkDeviceSize offset, |
| VkBuffer countBuffer, |
| VkDeviceSize countBufferOffset, |
| uint32_t maxDrawCount, |
| uint32_t stride) |
| { |
| AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirectCountKHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdDrawIndexedIndirectCountKHR( |
| VkCommandBuffer commandBuffer, |
| VkBuffer buffer, |
| VkDeviceSize offset, |
| VkBuffer countBuffer, |
| VkDeviceSize countBufferOffset, |
| uint32_t maxDrawCount, |
| uint32_t stride) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_KHR_draw_indirect_count")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdDrawIndexedIndirectCountKHR", "VK_KHR_draw_indirect_count"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirectCountKHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, true /* do lock */); |
| } |
| #endif |
| #ifdef VK_KHR_shader_subgroup_extended_types |
| #endif |
| #ifdef VK_KHR_8bit_storage |
| #endif |
| #ifdef VK_KHR_shader_atomic_int64 |
| #endif |
| #ifdef VK_KHR_shader_clock |
| #endif |
| #ifdef VK_KHR_driver_properties |
| #endif |
| #ifdef VK_KHR_shader_float_controls |
| #endif |
| #ifdef VK_KHR_depth_stencil_resolve |
| #endif |
| #ifdef VK_KHR_swapchain_mutable_format |
| #endif |
| #ifdef VK_KHR_timeline_semaphore |
| static VkResult entry_vkGetSemaphoreCounterValueKHR( |
| VkDevice device, |
| VkSemaphore semaphore, |
| uint64_t* pValue) |
| { |
| AEMU_SCOPED_TRACE("vkGetSemaphoreCounterValueKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetSemaphoreCounterValueKHR_VkResult_return = (VkResult)0; |
| vkGetSemaphoreCounterValueKHR_VkResult_return = vkEnc->vkGetSemaphoreCounterValueKHR(device, semaphore, pValue, true /* do lock */); |
| return vkGetSemaphoreCounterValueKHR_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkGetSemaphoreCounterValueKHR( |
| VkDevice device, |
| VkSemaphore semaphore, |
| uint64_t* pValue) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_timeline_semaphore")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetSemaphoreCounterValueKHR", "VK_KHR_timeline_semaphore"); |
| } |
| AEMU_SCOPED_TRACE("vkGetSemaphoreCounterValueKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetSemaphoreCounterValueKHR_VkResult_return = (VkResult)0; |
| vkGetSemaphoreCounterValueKHR_VkResult_return = vkEnc->vkGetSemaphoreCounterValueKHR(device, semaphore, pValue, true /* do lock */); |
| return vkGetSemaphoreCounterValueKHR_VkResult_return; |
| } |
| static VkResult entry_vkWaitSemaphoresKHR( |
| VkDevice device, |
| const VkSemaphoreWaitInfo* pWaitInfo, |
| uint64_t timeout) |
| { |
| AEMU_SCOPED_TRACE("vkWaitSemaphoresKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkWaitSemaphoresKHR_VkResult_return = (VkResult)0; |
| vkWaitSemaphoresKHR_VkResult_return = vkEnc->vkWaitSemaphoresKHR(device, pWaitInfo, timeout, true /* do lock */); |
| return vkWaitSemaphoresKHR_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkWaitSemaphoresKHR( |
| VkDevice device, |
| const VkSemaphoreWaitInfo* pWaitInfo, |
| uint64_t timeout) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_timeline_semaphore")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkWaitSemaphoresKHR", "VK_KHR_timeline_semaphore"); |
| } |
| AEMU_SCOPED_TRACE("vkWaitSemaphoresKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkWaitSemaphoresKHR_VkResult_return = (VkResult)0; |
| vkWaitSemaphoresKHR_VkResult_return = vkEnc->vkWaitSemaphoresKHR(device, pWaitInfo, timeout, true /* do lock */); |
| return vkWaitSemaphoresKHR_VkResult_return; |
| } |
| static VkResult entry_vkSignalSemaphoreKHR( |
| VkDevice device, |
| const VkSemaphoreSignalInfo* pSignalInfo) |
| { |
| AEMU_SCOPED_TRACE("vkSignalSemaphoreKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkSignalSemaphoreKHR_VkResult_return = (VkResult)0; |
| vkSignalSemaphoreKHR_VkResult_return = vkEnc->vkSignalSemaphoreKHR(device, pSignalInfo, true /* do lock */); |
| return vkSignalSemaphoreKHR_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkSignalSemaphoreKHR( |
| VkDevice device, |
| const VkSemaphoreSignalInfo* pSignalInfo) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_timeline_semaphore")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkSignalSemaphoreKHR", "VK_KHR_timeline_semaphore"); |
| } |
| AEMU_SCOPED_TRACE("vkSignalSemaphoreKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkSignalSemaphoreKHR_VkResult_return = (VkResult)0; |
| vkSignalSemaphoreKHR_VkResult_return = vkEnc->vkSignalSemaphoreKHR(device, pSignalInfo, true /* do lock */); |
| return vkSignalSemaphoreKHR_VkResult_return; |
| } |
| #endif |
| #ifdef VK_KHR_vulkan_memory_model |
| #endif |
| #ifdef VK_KHR_shader_terminate_invocation |
| #endif |
| #ifdef VK_KHR_fragment_shading_rate |
| static VkResult entry_vkGetPhysicalDeviceFragmentShadingRatesKHR( |
| VkPhysicalDevice physicalDevice, |
| uint32_t* pFragmentShadingRateCount, |
| VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates) |
| { |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFragmentShadingRatesKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetPhysicalDeviceFragmentShadingRatesKHR_VkResult_return = (VkResult)0; |
| vkGetPhysicalDeviceFragmentShadingRatesKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceFragmentShadingRatesKHR(physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates, true /* do lock */); |
| return vkGetPhysicalDeviceFragmentShadingRatesKHR_VkResult_return; |
| } |
| static void entry_vkCmdSetFragmentShadingRateKHR( |
| VkCommandBuffer commandBuffer, |
| const VkExtent2D* pFragmentSize, |
| const VkFragmentShadingRateCombinerOpKHR combinerOps[2]) |
| { |
| AEMU_SCOPED_TRACE("vkCmdSetFragmentShadingRateKHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdSetFragmentShadingRateKHR( |
| VkCommandBuffer commandBuffer, |
| const VkExtent2D* pFragmentSize, |
| const VkFragmentShadingRateCombinerOpKHR combinerOps[2]) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_KHR_fragment_shading_rate")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdSetFragmentShadingRateKHR", "VK_KHR_fragment_shading_rate"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdSetFragmentShadingRateKHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSetFragmentShadingRateKHR(commandBuffer, pFragmentSize, combinerOps, true /* do lock */); |
| } |
| #endif |
| #ifdef VK_KHR_spirv_1_4 |
| #endif |
| #ifdef VK_KHR_surface_protected_capabilities |
| #endif |
| #ifdef VK_KHR_separate_depth_stencil_layouts |
| #endif |
| #ifdef VK_KHR_present_wait |
| static VkResult entry_vkWaitForPresentKHR( |
| VkDevice device, |
| VkSwapchainKHR swapchain, |
| uint64_t presentId, |
| uint64_t timeout) |
| { |
| AEMU_SCOPED_TRACE("vkWaitForPresentKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkWaitForPresentKHR_VkResult_return = (VkResult)0; |
| vkWaitForPresentKHR_VkResult_return = vkEnc->vkWaitForPresentKHR(device, swapchain, presentId, timeout, true /* do lock */); |
| return vkWaitForPresentKHR_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkWaitForPresentKHR( |
| VkDevice device, |
| VkSwapchainKHR swapchain, |
| uint64_t presentId, |
| uint64_t timeout) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_present_wait")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkWaitForPresentKHR", "VK_KHR_present_wait"); |
| } |
| AEMU_SCOPED_TRACE("vkWaitForPresentKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkWaitForPresentKHR_VkResult_return = (VkResult)0; |
| vkWaitForPresentKHR_VkResult_return = vkEnc->vkWaitForPresentKHR(device, swapchain, presentId, timeout, true /* do lock */); |
| return vkWaitForPresentKHR_VkResult_return; |
| } |
| #endif |
| #ifdef VK_KHR_uniform_buffer_standard_layout |
| #endif |
| #ifdef VK_KHR_buffer_device_address |
| static VkDeviceAddress entry_vkGetBufferDeviceAddressKHR( |
| VkDevice device, |
| const VkBufferDeviceAddressInfo* pInfo) |
| { |
| AEMU_SCOPED_TRACE("vkGetBufferDeviceAddressKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkDeviceAddress vkGetBufferDeviceAddressKHR_VkDeviceAddress_return = (VkDeviceAddress)0; |
| vkGetBufferDeviceAddressKHR_VkDeviceAddress_return = vkEnc->vkGetBufferDeviceAddressKHR(device, pInfo, true /* do lock */); |
| return vkGetBufferDeviceAddressKHR_VkDeviceAddress_return; |
| } |
| static VkDeviceAddress dynCheck_entry_vkGetBufferDeviceAddressKHR( |
| VkDevice device, |
| const VkBufferDeviceAddressInfo* pInfo) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_buffer_device_address")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetBufferDeviceAddressKHR", "VK_KHR_buffer_device_address"); |
| } |
| AEMU_SCOPED_TRACE("vkGetBufferDeviceAddressKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkDeviceAddress vkGetBufferDeviceAddressKHR_VkDeviceAddress_return = (VkDeviceAddress)0; |
| vkGetBufferDeviceAddressKHR_VkDeviceAddress_return = vkEnc->vkGetBufferDeviceAddressKHR(device, pInfo, true /* do lock */); |
| return vkGetBufferDeviceAddressKHR_VkDeviceAddress_return; |
| } |
| static uint64_t entry_vkGetBufferOpaqueCaptureAddressKHR( |
| VkDevice device, |
| const VkBufferDeviceAddressInfo* pInfo) |
| { |
| AEMU_SCOPED_TRACE("vkGetBufferOpaqueCaptureAddressKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| uint64_t vkGetBufferOpaqueCaptureAddressKHR_uint64_t_return = (uint64_t)0; |
| vkGetBufferOpaqueCaptureAddressKHR_uint64_t_return = vkEnc->vkGetBufferOpaqueCaptureAddressKHR(device, pInfo, true /* do lock */); |
| return vkGetBufferOpaqueCaptureAddressKHR_uint64_t_return; |
| } |
| static uint64_t dynCheck_entry_vkGetBufferOpaqueCaptureAddressKHR( |
| VkDevice device, |
| const VkBufferDeviceAddressInfo* pInfo) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_buffer_device_address")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetBufferOpaqueCaptureAddressKHR", "VK_KHR_buffer_device_address"); |
| } |
| AEMU_SCOPED_TRACE("vkGetBufferOpaqueCaptureAddressKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| uint64_t vkGetBufferOpaqueCaptureAddressKHR_uint64_t_return = (uint64_t)0; |
| vkGetBufferOpaqueCaptureAddressKHR_uint64_t_return = vkEnc->vkGetBufferOpaqueCaptureAddressKHR(device, pInfo, true /* do lock */); |
| return vkGetBufferOpaqueCaptureAddressKHR_uint64_t_return; |
| } |
| static uint64_t entry_vkGetDeviceMemoryOpaqueCaptureAddressKHR( |
| VkDevice device, |
| const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo) |
| { |
| AEMU_SCOPED_TRACE("vkGetDeviceMemoryOpaqueCaptureAddressKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| uint64_t vkGetDeviceMemoryOpaqueCaptureAddressKHR_uint64_t_return = (uint64_t)0; |
| vkGetDeviceMemoryOpaqueCaptureAddressKHR_uint64_t_return = vkEnc->vkGetDeviceMemoryOpaqueCaptureAddressKHR(device, pInfo, true /* do lock */); |
| return vkGetDeviceMemoryOpaqueCaptureAddressKHR_uint64_t_return; |
| } |
| static uint64_t dynCheck_entry_vkGetDeviceMemoryOpaqueCaptureAddressKHR( |
| VkDevice device, |
| const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_buffer_device_address")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetDeviceMemoryOpaqueCaptureAddressKHR", "VK_KHR_buffer_device_address"); |
| } |
| AEMU_SCOPED_TRACE("vkGetDeviceMemoryOpaqueCaptureAddressKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| uint64_t vkGetDeviceMemoryOpaqueCaptureAddressKHR_uint64_t_return = (uint64_t)0; |
| vkGetDeviceMemoryOpaqueCaptureAddressKHR_uint64_t_return = vkEnc->vkGetDeviceMemoryOpaqueCaptureAddressKHR(device, pInfo, true /* do lock */); |
| return vkGetDeviceMemoryOpaqueCaptureAddressKHR_uint64_t_return; |
| } |
| #endif |
| #ifdef VK_KHR_deferred_host_operations |
| static VkResult entry_vkCreateDeferredOperationKHR( |
| VkDevice device, |
| const VkAllocationCallbacks* pAllocator, |
| VkDeferredOperationKHR* pDeferredOperation) |
| { |
| AEMU_SCOPED_TRACE("vkCreateDeferredOperationKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateDeferredOperationKHR_VkResult_return = (VkResult)0; |
| vkCreateDeferredOperationKHR_VkResult_return = vkEnc->vkCreateDeferredOperationKHR(device, pAllocator, pDeferredOperation, true /* do lock */); |
| return vkCreateDeferredOperationKHR_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkCreateDeferredOperationKHR( |
| VkDevice device, |
| const VkAllocationCallbacks* pAllocator, |
| VkDeferredOperationKHR* pDeferredOperation) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_deferred_host_operations")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCreateDeferredOperationKHR", "VK_KHR_deferred_host_operations"); |
| } |
| AEMU_SCOPED_TRACE("vkCreateDeferredOperationKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateDeferredOperationKHR_VkResult_return = (VkResult)0; |
| vkCreateDeferredOperationKHR_VkResult_return = vkEnc->vkCreateDeferredOperationKHR(device, pAllocator, pDeferredOperation, true /* do lock */); |
| return vkCreateDeferredOperationKHR_VkResult_return; |
| } |
| static void entry_vkDestroyDeferredOperationKHR( |
| VkDevice device, |
| VkDeferredOperationKHR operation, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AEMU_SCOPED_TRACE("vkDestroyDeferredOperationKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkDestroyDeferredOperationKHR(device, operation, pAllocator, true /* do lock */); |
| } |
| static void dynCheck_entry_vkDestroyDeferredOperationKHR( |
| VkDevice device, |
| VkDeferredOperationKHR operation, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_deferred_host_operations")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkDestroyDeferredOperationKHR", "VK_KHR_deferred_host_operations"); |
| } |
| AEMU_SCOPED_TRACE("vkDestroyDeferredOperationKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkDestroyDeferredOperationKHR(device, operation, pAllocator, true /* do lock */); |
| } |
| static uint32_t entry_vkGetDeferredOperationMaxConcurrencyKHR( |
| VkDevice device, |
| VkDeferredOperationKHR operation) |
| { |
| AEMU_SCOPED_TRACE("vkGetDeferredOperationMaxConcurrencyKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| uint32_t vkGetDeferredOperationMaxConcurrencyKHR_uint32_t_return = (uint32_t)0; |
| vkGetDeferredOperationMaxConcurrencyKHR_uint32_t_return = vkEnc->vkGetDeferredOperationMaxConcurrencyKHR(device, operation, true /* do lock */); |
| return vkGetDeferredOperationMaxConcurrencyKHR_uint32_t_return; |
| } |
| static uint32_t dynCheck_entry_vkGetDeferredOperationMaxConcurrencyKHR( |
| VkDevice device, |
| VkDeferredOperationKHR operation) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_deferred_host_operations")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetDeferredOperationMaxConcurrencyKHR", "VK_KHR_deferred_host_operations"); |
| } |
| AEMU_SCOPED_TRACE("vkGetDeferredOperationMaxConcurrencyKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| uint32_t vkGetDeferredOperationMaxConcurrencyKHR_uint32_t_return = (uint32_t)0; |
| vkGetDeferredOperationMaxConcurrencyKHR_uint32_t_return = vkEnc->vkGetDeferredOperationMaxConcurrencyKHR(device, operation, true /* do lock */); |
| return vkGetDeferredOperationMaxConcurrencyKHR_uint32_t_return; |
| } |
| static VkResult entry_vkGetDeferredOperationResultKHR( |
| VkDevice device, |
| VkDeferredOperationKHR operation) |
| { |
| AEMU_SCOPED_TRACE("vkGetDeferredOperationResultKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetDeferredOperationResultKHR_VkResult_return = (VkResult)0; |
| vkGetDeferredOperationResultKHR_VkResult_return = vkEnc->vkGetDeferredOperationResultKHR(device, operation, true /* do lock */); |
| return vkGetDeferredOperationResultKHR_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkGetDeferredOperationResultKHR( |
| VkDevice device, |
| VkDeferredOperationKHR operation) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_deferred_host_operations")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetDeferredOperationResultKHR", "VK_KHR_deferred_host_operations"); |
| } |
| AEMU_SCOPED_TRACE("vkGetDeferredOperationResultKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetDeferredOperationResultKHR_VkResult_return = (VkResult)0; |
| vkGetDeferredOperationResultKHR_VkResult_return = vkEnc->vkGetDeferredOperationResultKHR(device, operation, true /* do lock */); |
| return vkGetDeferredOperationResultKHR_VkResult_return; |
| } |
| static VkResult entry_vkDeferredOperationJoinKHR( |
| VkDevice device, |
| VkDeferredOperationKHR operation) |
| { |
| AEMU_SCOPED_TRACE("vkDeferredOperationJoinKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkDeferredOperationJoinKHR_VkResult_return = (VkResult)0; |
| vkDeferredOperationJoinKHR_VkResult_return = vkEnc->vkDeferredOperationJoinKHR(device, operation, true /* do lock */); |
| return vkDeferredOperationJoinKHR_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkDeferredOperationJoinKHR( |
| VkDevice device, |
| VkDeferredOperationKHR operation) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_deferred_host_operations")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkDeferredOperationJoinKHR", "VK_KHR_deferred_host_operations"); |
| } |
| AEMU_SCOPED_TRACE("vkDeferredOperationJoinKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkDeferredOperationJoinKHR_VkResult_return = (VkResult)0; |
| vkDeferredOperationJoinKHR_VkResult_return = vkEnc->vkDeferredOperationJoinKHR(device, operation, true /* do lock */); |
| return vkDeferredOperationJoinKHR_VkResult_return; |
| } |
| #endif |
| #ifdef VK_KHR_pipeline_executable_properties |
| static VkResult entry_vkGetPipelineExecutablePropertiesKHR( |
| VkDevice device, |
| const VkPipelineInfoKHR* pPipelineInfo, |
| uint32_t* pExecutableCount, |
| VkPipelineExecutablePropertiesKHR* pProperties) |
| { |
| AEMU_SCOPED_TRACE("vkGetPipelineExecutablePropertiesKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetPipelineExecutablePropertiesKHR_VkResult_return = (VkResult)0; |
| vkGetPipelineExecutablePropertiesKHR_VkResult_return = vkEnc->vkGetPipelineExecutablePropertiesKHR(device, pPipelineInfo, pExecutableCount, pProperties, true /* do lock */); |
| return vkGetPipelineExecutablePropertiesKHR_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkGetPipelineExecutablePropertiesKHR( |
| VkDevice device, |
| const VkPipelineInfoKHR* pPipelineInfo, |
| uint32_t* pExecutableCount, |
| VkPipelineExecutablePropertiesKHR* pProperties) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_pipeline_executable_properties")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetPipelineExecutablePropertiesKHR", "VK_KHR_pipeline_executable_properties"); |
| } |
| AEMU_SCOPED_TRACE("vkGetPipelineExecutablePropertiesKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetPipelineExecutablePropertiesKHR_VkResult_return = (VkResult)0; |
| vkGetPipelineExecutablePropertiesKHR_VkResult_return = vkEnc->vkGetPipelineExecutablePropertiesKHR(device, pPipelineInfo, pExecutableCount, pProperties, true /* do lock */); |
| return vkGetPipelineExecutablePropertiesKHR_VkResult_return; |
| } |
| static VkResult entry_vkGetPipelineExecutableStatisticsKHR( |
| VkDevice device, |
| const VkPipelineExecutableInfoKHR* pExecutableInfo, |
| uint32_t* pStatisticCount, |
| VkPipelineExecutableStatisticKHR* pStatistics) |
| { |
| AEMU_SCOPED_TRACE("vkGetPipelineExecutableStatisticsKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetPipelineExecutableStatisticsKHR_VkResult_return = (VkResult)0; |
| vkGetPipelineExecutableStatisticsKHR_VkResult_return = vkEnc->vkGetPipelineExecutableStatisticsKHR(device, pExecutableInfo, pStatisticCount, pStatistics, true /* do lock */); |
| return vkGetPipelineExecutableStatisticsKHR_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkGetPipelineExecutableStatisticsKHR( |
| VkDevice device, |
| const VkPipelineExecutableInfoKHR* pExecutableInfo, |
| uint32_t* pStatisticCount, |
| VkPipelineExecutableStatisticKHR* pStatistics) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_pipeline_executable_properties")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetPipelineExecutableStatisticsKHR", "VK_KHR_pipeline_executable_properties"); |
| } |
| AEMU_SCOPED_TRACE("vkGetPipelineExecutableStatisticsKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetPipelineExecutableStatisticsKHR_VkResult_return = (VkResult)0; |
| vkGetPipelineExecutableStatisticsKHR_VkResult_return = vkEnc->vkGetPipelineExecutableStatisticsKHR(device, pExecutableInfo, pStatisticCount, pStatistics, true /* do lock */); |
| return vkGetPipelineExecutableStatisticsKHR_VkResult_return; |
| } |
| static VkResult entry_vkGetPipelineExecutableInternalRepresentationsKHR( |
| VkDevice device, |
| const VkPipelineExecutableInfoKHR* pExecutableInfo, |
| uint32_t* pInternalRepresentationCount, |
| VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations) |
| { |
| AEMU_SCOPED_TRACE("vkGetPipelineExecutableInternalRepresentationsKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetPipelineExecutableInternalRepresentationsKHR_VkResult_return = (VkResult)0; |
| vkGetPipelineExecutableInternalRepresentationsKHR_VkResult_return = vkEnc->vkGetPipelineExecutableInternalRepresentationsKHR(device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations, true /* do lock */); |
| return vkGetPipelineExecutableInternalRepresentationsKHR_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkGetPipelineExecutableInternalRepresentationsKHR( |
| VkDevice device, |
| const VkPipelineExecutableInfoKHR* pExecutableInfo, |
| uint32_t* pInternalRepresentationCount, |
| VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_pipeline_executable_properties")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetPipelineExecutableInternalRepresentationsKHR", "VK_KHR_pipeline_executable_properties"); |
| } |
| AEMU_SCOPED_TRACE("vkGetPipelineExecutableInternalRepresentationsKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetPipelineExecutableInternalRepresentationsKHR_VkResult_return = (VkResult)0; |
| vkGetPipelineExecutableInternalRepresentationsKHR_VkResult_return = vkEnc->vkGetPipelineExecutableInternalRepresentationsKHR(device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations, true /* do lock */); |
| return vkGetPipelineExecutableInternalRepresentationsKHR_VkResult_return; |
| } |
| #endif |
| #ifdef VK_KHR_shader_integer_dot_product |
| #endif |
| #ifdef VK_KHR_pipeline_library |
| #endif |
| #ifdef VK_KHR_shader_non_semantic_info |
| #endif |
| #ifdef VK_KHR_present_id |
| #endif |
| #ifdef VK_KHR_video_encode_queue |
| static void entry_vkCmdEncodeVideoKHR( |
| VkCommandBuffer commandBuffer, |
| const VkVideoEncodeInfoKHR* pEncodeInfo) |
| { |
| AEMU_SCOPED_TRACE("vkCmdEncodeVideoKHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdEncodeVideoKHR(commandBuffer, pEncodeInfo, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdEncodeVideoKHR( |
| VkCommandBuffer commandBuffer, |
| const VkVideoEncodeInfoKHR* pEncodeInfo) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_KHR_video_encode_queue")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdEncodeVideoKHR", "VK_KHR_video_encode_queue"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdEncodeVideoKHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdEncodeVideoKHR(commandBuffer, pEncodeInfo, true /* do lock */); |
| } |
| #endif |
| #ifdef VK_KHR_synchronization2 |
| static void entry_vkCmdSetEvent2KHR( |
| VkCommandBuffer commandBuffer, |
| VkEvent event, |
| const VkDependencyInfoKHR* pDependencyInfo) |
| { |
| AEMU_SCOPED_TRACE("vkCmdSetEvent2KHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSetEvent2KHR(commandBuffer, event, pDependencyInfo, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdSetEvent2KHR( |
| VkCommandBuffer commandBuffer, |
| VkEvent event, |
| const VkDependencyInfoKHR* pDependencyInfo) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_KHR_synchronization2")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdSetEvent2KHR", "VK_KHR_synchronization2"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdSetEvent2KHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSetEvent2KHR(commandBuffer, event, pDependencyInfo, true /* do lock */); |
| } |
| static void entry_vkCmdResetEvent2KHR( |
| VkCommandBuffer commandBuffer, |
| VkEvent event, |
| VkPipelineStageFlags2KHR stageMask) |
| { |
| AEMU_SCOPED_TRACE("vkCmdResetEvent2KHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdResetEvent2KHR(commandBuffer, event, stageMask, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdResetEvent2KHR( |
| VkCommandBuffer commandBuffer, |
| VkEvent event, |
| VkPipelineStageFlags2KHR stageMask) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_KHR_synchronization2")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdResetEvent2KHR", "VK_KHR_synchronization2"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdResetEvent2KHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdResetEvent2KHR(commandBuffer, event, stageMask, true /* do lock */); |
| } |
| static void entry_vkCmdWaitEvents2KHR( |
| VkCommandBuffer commandBuffer, |
| uint32_t eventCount, |
| const VkEvent* pEvents, |
| const VkDependencyInfoKHR* pDependencyInfos) |
| { |
| AEMU_SCOPED_TRACE("vkCmdWaitEvents2KHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdWaitEvents2KHR(commandBuffer, eventCount, pEvents, pDependencyInfos, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdWaitEvents2KHR( |
| VkCommandBuffer commandBuffer, |
| uint32_t eventCount, |
| const VkEvent* pEvents, |
| const VkDependencyInfoKHR* pDependencyInfos) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_KHR_synchronization2")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdWaitEvents2KHR", "VK_KHR_synchronization2"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdWaitEvents2KHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdWaitEvents2KHR(commandBuffer, eventCount, pEvents, pDependencyInfos, true /* do lock */); |
| } |
| static void entry_vkCmdPipelineBarrier2KHR( |
| VkCommandBuffer commandBuffer, |
| const VkDependencyInfoKHR* pDependencyInfo) |
| { |
| AEMU_SCOPED_TRACE("vkCmdPipelineBarrier2KHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdPipelineBarrier2KHR(commandBuffer, pDependencyInfo, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdPipelineBarrier2KHR( |
| VkCommandBuffer commandBuffer, |
| const VkDependencyInfoKHR* pDependencyInfo) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_KHR_synchronization2")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdPipelineBarrier2KHR", "VK_KHR_synchronization2"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdPipelineBarrier2KHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdPipelineBarrier2KHR(commandBuffer, pDependencyInfo, true /* do lock */); |
| } |
| static void entry_vkCmdWriteTimestamp2KHR( |
| VkCommandBuffer commandBuffer, |
| VkPipelineStageFlags2KHR stage, |
| VkQueryPool queryPool, |
| uint32_t query) |
| { |
| AEMU_SCOPED_TRACE("vkCmdWriteTimestamp2KHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdWriteTimestamp2KHR(commandBuffer, stage, queryPool, query, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdWriteTimestamp2KHR( |
| VkCommandBuffer commandBuffer, |
| VkPipelineStageFlags2KHR stage, |
| VkQueryPool queryPool, |
| uint32_t query) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_KHR_synchronization2")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdWriteTimestamp2KHR", "VK_KHR_synchronization2"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdWriteTimestamp2KHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdWriteTimestamp2KHR(commandBuffer, stage, queryPool, query, true /* do lock */); |
| } |
| static VkResult entry_vkQueueSubmit2KHR( |
| VkQueue queue, |
| uint32_t submitCount, |
| const VkSubmitInfo2KHR* pSubmits, |
| VkFence fence) |
| { |
| AEMU_SCOPED_TRACE("vkQueueSubmit2KHR"); |
| auto vkEnc = ResourceTracker::getQueueEncoder(queue); |
| VkResult vkQueueSubmit2KHR_VkResult_return = (VkResult)0; |
| vkQueueSubmit2KHR_VkResult_return = vkEnc->vkQueueSubmit2KHR(queue, submitCount, pSubmits, fence, true /* do lock */); |
| return vkQueueSubmit2KHR_VkResult_return; |
| } |
| static void entry_vkCmdWriteBufferMarker2AMD( |
| VkCommandBuffer commandBuffer, |
| VkPipelineStageFlags2KHR stage, |
| VkBuffer dstBuffer, |
| VkDeviceSize dstOffset, |
| uint32_t marker) |
| { |
| AEMU_SCOPED_TRACE("vkCmdWriteBufferMarker2AMD"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdWriteBufferMarker2AMD(commandBuffer, stage, dstBuffer, dstOffset, marker, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdWriteBufferMarker2AMD( |
| VkCommandBuffer commandBuffer, |
| VkPipelineStageFlags2KHR stage, |
| VkBuffer dstBuffer, |
| VkDeviceSize dstOffset, |
| uint32_t marker) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_KHR_synchronization2")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdWriteBufferMarker2AMD", "VK_KHR_synchronization2"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdWriteBufferMarker2AMD"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdWriteBufferMarker2AMD(commandBuffer, stage, dstBuffer, dstOffset, marker, true /* do lock */); |
| } |
| static void entry_vkGetQueueCheckpointData2NV( |
| VkQueue queue, |
| uint32_t* pCheckpointDataCount, |
| VkCheckpointData2NV* pCheckpointData) |
| { |
| AEMU_SCOPED_TRACE("vkGetQueueCheckpointData2NV"); |
| auto vkEnc = ResourceTracker::getQueueEncoder(queue); |
| vkEnc->vkGetQueueCheckpointData2NV(queue, pCheckpointDataCount, pCheckpointData, true /* do lock */); |
| } |
| #endif |
| #ifdef VK_KHR_shader_subgroup_uniform_control_flow |
| #endif |
| #ifdef VK_KHR_zero_initialize_workgroup_memory |
| #endif |
| #ifdef VK_KHR_workgroup_memory_explicit_layout |
| #endif |
| #ifdef VK_KHR_copy_commands2 |
| static void entry_vkCmdCopyBuffer2KHR( |
| VkCommandBuffer commandBuffer, |
| const VkCopyBufferInfo2KHR* pCopyBufferInfo) |
| { |
| AEMU_SCOPED_TRACE("vkCmdCopyBuffer2KHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdCopyBuffer2KHR(commandBuffer, pCopyBufferInfo, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdCopyBuffer2KHR( |
| VkCommandBuffer commandBuffer, |
| const VkCopyBufferInfo2KHR* pCopyBufferInfo) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_KHR_copy_commands2")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdCopyBuffer2KHR", "VK_KHR_copy_commands2"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdCopyBuffer2KHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdCopyBuffer2KHR(commandBuffer, pCopyBufferInfo, true /* do lock */); |
| } |
| static void entry_vkCmdCopyImage2KHR( |
| VkCommandBuffer commandBuffer, |
| const VkCopyImageInfo2KHR* pCopyImageInfo) |
| { |
| AEMU_SCOPED_TRACE("vkCmdCopyImage2KHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdCopyImage2KHR(commandBuffer, pCopyImageInfo, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdCopyImage2KHR( |
| VkCommandBuffer commandBuffer, |
| const VkCopyImageInfo2KHR* pCopyImageInfo) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_KHR_copy_commands2")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdCopyImage2KHR", "VK_KHR_copy_commands2"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdCopyImage2KHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdCopyImage2KHR(commandBuffer, pCopyImageInfo, true /* do lock */); |
| } |
| static void entry_vkCmdCopyBufferToImage2KHR( |
| VkCommandBuffer commandBuffer, |
| const VkCopyBufferToImageInfo2KHR* pCopyBufferToImageInfo) |
| { |
| AEMU_SCOPED_TRACE("vkCmdCopyBufferToImage2KHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdCopyBufferToImage2KHR(commandBuffer, pCopyBufferToImageInfo, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdCopyBufferToImage2KHR( |
| VkCommandBuffer commandBuffer, |
| const VkCopyBufferToImageInfo2KHR* pCopyBufferToImageInfo) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_KHR_copy_commands2")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdCopyBufferToImage2KHR", "VK_KHR_copy_commands2"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdCopyBufferToImage2KHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdCopyBufferToImage2KHR(commandBuffer, pCopyBufferToImageInfo, true /* do lock */); |
| } |
| static void entry_vkCmdCopyImageToBuffer2KHR( |
| VkCommandBuffer commandBuffer, |
| const VkCopyImageToBufferInfo2KHR* pCopyImageToBufferInfo) |
| { |
| AEMU_SCOPED_TRACE("vkCmdCopyImageToBuffer2KHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdCopyImageToBuffer2KHR(commandBuffer, pCopyImageToBufferInfo, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdCopyImageToBuffer2KHR( |
| VkCommandBuffer commandBuffer, |
| const VkCopyImageToBufferInfo2KHR* pCopyImageToBufferInfo) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_KHR_copy_commands2")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdCopyImageToBuffer2KHR", "VK_KHR_copy_commands2"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdCopyImageToBuffer2KHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdCopyImageToBuffer2KHR(commandBuffer, pCopyImageToBufferInfo, true /* do lock */); |
| } |
| static void entry_vkCmdBlitImage2KHR( |
| VkCommandBuffer commandBuffer, |
| const VkBlitImageInfo2KHR* pBlitImageInfo) |
| { |
| AEMU_SCOPED_TRACE("vkCmdBlitImage2KHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdBlitImage2KHR(commandBuffer, pBlitImageInfo, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdBlitImage2KHR( |
| VkCommandBuffer commandBuffer, |
| const VkBlitImageInfo2KHR* pBlitImageInfo) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_KHR_copy_commands2")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdBlitImage2KHR", "VK_KHR_copy_commands2"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdBlitImage2KHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdBlitImage2KHR(commandBuffer, pBlitImageInfo, true /* do lock */); |
| } |
| static void entry_vkCmdResolveImage2KHR( |
| VkCommandBuffer commandBuffer, |
| const VkResolveImageInfo2KHR* pResolveImageInfo) |
| { |
| AEMU_SCOPED_TRACE("vkCmdResolveImage2KHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdResolveImage2KHR(commandBuffer, pResolveImageInfo, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdResolveImage2KHR( |
| VkCommandBuffer commandBuffer, |
| const VkResolveImageInfo2KHR* pResolveImageInfo) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_KHR_copy_commands2")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdResolveImage2KHR", "VK_KHR_copy_commands2"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdResolveImage2KHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdResolveImage2KHR(commandBuffer, pResolveImageInfo, true /* do lock */); |
| } |
| #endif |
| #ifdef VK_KHR_format_feature_flags2 |
| #endif |
| #ifdef VK_KHR_maintenance4 |
| static void entry_vkGetDeviceBufferMemoryRequirementsKHR( |
| VkDevice device, |
| const VkDeviceBufferMemoryRequirementsKHR* pInfo, |
| VkMemoryRequirements2* pMemoryRequirements) |
| { |
| AEMU_SCOPED_TRACE("vkGetDeviceBufferMemoryRequirementsKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkGetDeviceBufferMemoryRequirementsKHR(device, pInfo, pMemoryRequirements, true /* do lock */); |
| } |
| static void dynCheck_entry_vkGetDeviceBufferMemoryRequirementsKHR( |
| VkDevice device, |
| const VkDeviceBufferMemoryRequirementsKHR* pInfo, |
| VkMemoryRequirements2* pMemoryRequirements) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_maintenance4")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetDeviceBufferMemoryRequirementsKHR", "VK_KHR_maintenance4"); |
| } |
| AEMU_SCOPED_TRACE("vkGetDeviceBufferMemoryRequirementsKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkGetDeviceBufferMemoryRequirementsKHR(device, pInfo, pMemoryRequirements, true /* do lock */); |
| } |
| static void entry_vkGetDeviceImageMemoryRequirementsKHR( |
| VkDevice device, |
| const VkDeviceImageMemoryRequirementsKHR* pInfo, |
| VkMemoryRequirements2* pMemoryRequirements) |
| { |
| AEMU_SCOPED_TRACE("vkGetDeviceImageMemoryRequirementsKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkGetDeviceImageMemoryRequirementsKHR(device, pInfo, pMemoryRequirements, true /* do lock */); |
| } |
| static void dynCheck_entry_vkGetDeviceImageMemoryRequirementsKHR( |
| VkDevice device, |
| const VkDeviceImageMemoryRequirementsKHR* pInfo, |
| VkMemoryRequirements2* pMemoryRequirements) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_maintenance4")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetDeviceImageMemoryRequirementsKHR", "VK_KHR_maintenance4"); |
| } |
| AEMU_SCOPED_TRACE("vkGetDeviceImageMemoryRequirementsKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkGetDeviceImageMemoryRequirementsKHR(device, pInfo, pMemoryRequirements, true /* do lock */); |
| } |
| static void entry_vkGetDeviceImageSparseMemoryRequirementsKHR( |
| VkDevice device, |
| const VkDeviceImageMemoryRequirementsKHR* pInfo, |
| uint32_t* pSparseMemoryRequirementCount, |
| VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) |
| { |
| AEMU_SCOPED_TRACE("vkGetDeviceImageSparseMemoryRequirementsKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkGetDeviceImageSparseMemoryRequirementsKHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements, true /* do lock */); |
| } |
| static void dynCheck_entry_vkGetDeviceImageSparseMemoryRequirementsKHR( |
| VkDevice device, |
| const VkDeviceImageMemoryRequirementsKHR* pInfo, |
| uint32_t* pSparseMemoryRequirementCount, |
| VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_maintenance4")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetDeviceImageSparseMemoryRequirementsKHR", "VK_KHR_maintenance4"); |
| } |
| AEMU_SCOPED_TRACE("vkGetDeviceImageSparseMemoryRequirementsKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkGetDeviceImageSparseMemoryRequirementsKHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements, true /* do lock */); |
| } |
| #endif |
| #ifdef VK_ANDROID_native_buffer |
| static VkResult entry_vkGetSwapchainGrallocUsageANDROID( |
| VkDevice device, |
| VkFormat format, |
| VkImageUsageFlags imageUsage, |
| int* grallocUsage) |
| { |
| AEMU_SCOPED_TRACE("vkGetSwapchainGrallocUsageANDROID"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetSwapchainGrallocUsageANDROID_VkResult_return = (VkResult)0; |
| vkGetSwapchainGrallocUsageANDROID_VkResult_return = vkEnc->vkGetSwapchainGrallocUsageANDROID(device, format, imageUsage, grallocUsage, true /* do lock */); |
| return vkGetSwapchainGrallocUsageANDROID_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkGetSwapchainGrallocUsageANDROID( |
| VkDevice device, |
| VkFormat format, |
| VkImageUsageFlags imageUsage, |
| int* grallocUsage) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_ANDROID_native_buffer")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetSwapchainGrallocUsageANDROID", "VK_ANDROID_native_buffer"); |
| } |
| AEMU_SCOPED_TRACE("vkGetSwapchainGrallocUsageANDROID"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetSwapchainGrallocUsageANDROID_VkResult_return = (VkResult)0; |
| vkGetSwapchainGrallocUsageANDROID_VkResult_return = vkEnc->vkGetSwapchainGrallocUsageANDROID(device, format, imageUsage, grallocUsage, true /* do lock */); |
| return vkGetSwapchainGrallocUsageANDROID_VkResult_return; |
| } |
| static VkResult entry_vkAcquireImageANDROID( |
| VkDevice device, |
| VkImage image, |
| int nativeFenceFd, |
| VkSemaphore semaphore, |
| VkFence fence) |
| { |
| AEMU_SCOPED_TRACE("vkAcquireImageANDROID"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkAcquireImageANDROID_VkResult_return = (VkResult)0; |
| vkAcquireImageANDROID_VkResult_return = vkEnc->vkAcquireImageANDROID(device, image, nativeFenceFd, semaphore, fence, true /* do lock */); |
| return vkAcquireImageANDROID_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkAcquireImageANDROID( |
| VkDevice device, |
| VkImage image, |
| int nativeFenceFd, |
| VkSemaphore semaphore, |
| VkFence fence) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_ANDROID_native_buffer")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkAcquireImageANDROID", "VK_ANDROID_native_buffer"); |
| } |
| AEMU_SCOPED_TRACE("vkAcquireImageANDROID"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkAcquireImageANDROID_VkResult_return = (VkResult)0; |
| vkAcquireImageANDROID_VkResult_return = vkEnc->vkAcquireImageANDROID(device, image, nativeFenceFd, semaphore, fence, true /* do lock */); |
| return vkAcquireImageANDROID_VkResult_return; |
| } |
| static VkResult entry_vkQueueSignalReleaseImageANDROID( |
| VkQueue queue, |
| uint32_t waitSemaphoreCount, |
| const VkSemaphore* pWaitSemaphores, |
| VkImage image, |
| int* pNativeFenceFd) |
| { |
| AEMU_SCOPED_TRACE("vkQueueSignalReleaseImageANDROID"); |
| auto vkEnc = ResourceTracker::getQueueEncoder(queue); |
| VkResult vkQueueSignalReleaseImageANDROID_VkResult_return = (VkResult)0; |
| auto resources = ResourceTracker::get(); |
| vkQueueSignalReleaseImageANDROID_VkResult_return = resources->on_vkQueueSignalReleaseImageANDROID(vkEnc, VK_SUCCESS, queue, waitSemaphoreCount, pWaitSemaphores, image, pNativeFenceFd); |
| return vkQueueSignalReleaseImageANDROID_VkResult_return; |
| } |
| #endif |
| #ifdef VK_EXT_debug_report |
| static VkResult entry_vkCreateDebugReportCallbackEXT( |
| VkInstance instance, |
| const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkDebugReportCallbackEXT* pCallback) |
| { |
| AEMU_SCOPED_TRACE("vkCreateDebugReportCallbackEXT"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateDebugReportCallbackEXT_VkResult_return = (VkResult)0; |
| vkCreateDebugReportCallbackEXT_VkResult_return = vkEnc->vkCreateDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback, true /* do lock */); |
| return vkCreateDebugReportCallbackEXT_VkResult_return; |
| } |
| static void entry_vkDestroyDebugReportCallbackEXT( |
| VkInstance instance, |
| VkDebugReportCallbackEXT callback, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AEMU_SCOPED_TRACE("vkDestroyDebugReportCallbackEXT"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkDestroyDebugReportCallbackEXT(instance, callback, pAllocator, true /* do lock */); |
| } |
| static void entry_vkDebugReportMessageEXT( |
| VkInstance instance, |
| VkDebugReportFlagsEXT flags, |
| VkDebugReportObjectTypeEXT objectType, |
| uint64_t object, |
| size_t location, |
| int32_t messageCode, |
| const char* pLayerPrefix, |
| const char* pMessage) |
| { |
| AEMU_SCOPED_TRACE("vkDebugReportMessageEXT"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkDebugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage, true /* do lock */); |
| } |
| #endif |
| #ifdef VK_NV_glsl_shader |
| #endif |
| #ifdef VK_EXT_depth_range_unrestricted |
| #endif |
| #ifdef VK_IMG_filter_cubic |
| #endif |
| #ifdef VK_AMD_rasterization_order |
| #endif |
| #ifdef VK_AMD_shader_trinary_minmax |
| #endif |
| #ifdef VK_AMD_shader_explicit_vertex_parameter |
| #endif |
| #ifdef VK_EXT_debug_marker |
| static VkResult entry_vkDebugMarkerSetObjectTagEXT( |
| VkDevice device, |
| const VkDebugMarkerObjectTagInfoEXT* pTagInfo) |
| { |
| AEMU_SCOPED_TRACE("vkDebugMarkerSetObjectTagEXT"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkDebugMarkerSetObjectTagEXT_VkResult_return = (VkResult)0; |
| vkDebugMarkerSetObjectTagEXT_VkResult_return = vkEnc->vkDebugMarkerSetObjectTagEXT(device, pTagInfo, true /* do lock */); |
| return vkDebugMarkerSetObjectTagEXT_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkDebugMarkerSetObjectTagEXT( |
| VkDevice device, |
| const VkDebugMarkerObjectTagInfoEXT* pTagInfo) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_EXT_debug_marker")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkDebugMarkerSetObjectTagEXT", "VK_EXT_debug_marker"); |
| } |
| AEMU_SCOPED_TRACE("vkDebugMarkerSetObjectTagEXT"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkDebugMarkerSetObjectTagEXT_VkResult_return = (VkResult)0; |
| vkDebugMarkerSetObjectTagEXT_VkResult_return = vkEnc->vkDebugMarkerSetObjectTagEXT(device, pTagInfo, true /* do lock */); |
| return vkDebugMarkerSetObjectTagEXT_VkResult_return; |
| } |
| static VkResult entry_vkDebugMarkerSetObjectNameEXT( |
| VkDevice device, |
| const VkDebugMarkerObjectNameInfoEXT* pNameInfo) |
| { |
| AEMU_SCOPED_TRACE("vkDebugMarkerSetObjectNameEXT"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkDebugMarkerSetObjectNameEXT_VkResult_return = (VkResult)0; |
| vkDebugMarkerSetObjectNameEXT_VkResult_return = vkEnc->vkDebugMarkerSetObjectNameEXT(device, pNameInfo, true /* do lock */); |
| return vkDebugMarkerSetObjectNameEXT_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkDebugMarkerSetObjectNameEXT( |
| VkDevice device, |
| const VkDebugMarkerObjectNameInfoEXT* pNameInfo) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_EXT_debug_marker")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkDebugMarkerSetObjectNameEXT", "VK_EXT_debug_marker"); |
| } |
| AEMU_SCOPED_TRACE("vkDebugMarkerSetObjectNameEXT"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkDebugMarkerSetObjectNameEXT_VkResult_return = (VkResult)0; |
| vkDebugMarkerSetObjectNameEXT_VkResult_return = vkEnc->vkDebugMarkerSetObjectNameEXT(device, pNameInfo, true /* do lock */); |
| return vkDebugMarkerSetObjectNameEXT_VkResult_return; |
| } |
| static void entry_vkCmdDebugMarkerBeginEXT( |
| VkCommandBuffer commandBuffer, |
| const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) |
| { |
| AEMU_SCOPED_TRACE("vkCmdDebugMarkerBeginEXT"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdDebugMarkerBeginEXT( |
| VkCommandBuffer commandBuffer, |
| const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_EXT_debug_marker")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdDebugMarkerBeginEXT", "VK_EXT_debug_marker"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdDebugMarkerBeginEXT"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo, true /* do lock */); |
| } |
| static void entry_vkCmdDebugMarkerEndEXT( |
| VkCommandBuffer commandBuffer) |
| { |
| AEMU_SCOPED_TRACE("vkCmdDebugMarkerEndEXT"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdDebugMarkerEndEXT(commandBuffer, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdDebugMarkerEndEXT( |
| VkCommandBuffer commandBuffer) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_EXT_debug_marker")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdDebugMarkerEndEXT", "VK_EXT_debug_marker"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdDebugMarkerEndEXT"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdDebugMarkerEndEXT(commandBuffer, true /* do lock */); |
| } |
| static void entry_vkCmdDebugMarkerInsertEXT( |
| VkCommandBuffer commandBuffer, |
| const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) |
| { |
| AEMU_SCOPED_TRACE("vkCmdDebugMarkerInsertEXT"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdDebugMarkerInsertEXT( |
| VkCommandBuffer commandBuffer, |
| const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_EXT_debug_marker")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdDebugMarkerInsertEXT", "VK_EXT_debug_marker"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdDebugMarkerInsertEXT"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo, true /* do lock */); |
| } |
| #endif |
| #ifdef VK_AMD_gcn_shader |
| #endif |
| #ifdef VK_NV_dedicated_allocation |
| #endif |
| #ifdef VK_EXT_transform_feedback |
| static void entry_vkCmdBindTransformFeedbackBuffersEXT( |
| VkCommandBuffer commandBuffer, |
| uint32_t firstBinding, |
| uint32_t bindingCount, |
| const VkBuffer* pBuffers, |
| const VkDeviceSize* pOffsets, |
| const VkDeviceSize* pSizes) |
| { |
| AEMU_SCOPED_TRACE("vkCmdBindTransformFeedbackBuffersEXT"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdBindTransformFeedbackBuffersEXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdBindTransformFeedbackBuffersEXT( |
| VkCommandBuffer commandBuffer, |
| uint32_t firstBinding, |
| uint32_t bindingCount, |
| const VkBuffer* pBuffers, |
| const VkDeviceSize* pOffsets, |
| const VkDeviceSize* pSizes) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_EXT_transform_feedback")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdBindTransformFeedbackBuffersEXT", "VK_EXT_transform_feedback"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdBindTransformFeedbackBuffersEXT"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdBindTransformFeedbackBuffersEXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, true /* do lock */); |
| } |
| static void entry_vkCmdBeginTransformFeedbackEXT( |
| VkCommandBuffer commandBuffer, |
| uint32_t firstCounterBuffer, |
| uint32_t counterBufferCount, |
| const VkBuffer* pCounterBuffers, |
| const VkDeviceSize* pCounterBufferOffsets) |
| { |
| AEMU_SCOPED_TRACE("vkCmdBeginTransformFeedbackEXT"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdBeginTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdBeginTransformFeedbackEXT( |
| VkCommandBuffer commandBuffer, |
| uint32_t firstCounterBuffer, |
| uint32_t counterBufferCount, |
| const VkBuffer* pCounterBuffers, |
| const VkDeviceSize* pCounterBufferOffsets) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_EXT_transform_feedback")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdBeginTransformFeedbackEXT", "VK_EXT_transform_feedback"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdBeginTransformFeedbackEXT"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdBeginTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, true /* do lock */); |
| } |
| static void entry_vkCmdEndTransformFeedbackEXT( |
| VkCommandBuffer commandBuffer, |
| uint32_t firstCounterBuffer, |
| uint32_t counterBufferCount, |
| const VkBuffer* pCounterBuffers, |
| const VkDeviceSize* pCounterBufferOffsets) |
| { |
| AEMU_SCOPED_TRACE("vkCmdEndTransformFeedbackEXT"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdEndTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdEndTransformFeedbackEXT( |
| VkCommandBuffer commandBuffer, |
| uint32_t firstCounterBuffer, |
| uint32_t counterBufferCount, |
| const VkBuffer* pCounterBuffers, |
| const VkDeviceSize* pCounterBufferOffsets) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_EXT_transform_feedback")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdEndTransformFeedbackEXT", "VK_EXT_transform_feedback"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdEndTransformFeedbackEXT"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdEndTransformFeedbackEXT(commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets, true /* do lock */); |
| } |
| static void entry_vkCmdBeginQueryIndexedEXT( |
| VkCommandBuffer commandBuffer, |
| VkQueryPool queryPool, |
| uint32_t query, |
| VkQueryControlFlags flags, |
| uint32_t index) |
| { |
| AEMU_SCOPED_TRACE("vkCmdBeginQueryIndexedEXT"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdBeginQueryIndexedEXT(commandBuffer, queryPool, query, flags, index, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdBeginQueryIndexedEXT( |
| VkCommandBuffer commandBuffer, |
| VkQueryPool queryPool, |
| uint32_t query, |
| VkQueryControlFlags flags, |
| uint32_t index) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_EXT_transform_feedback")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdBeginQueryIndexedEXT", "VK_EXT_transform_feedback"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdBeginQueryIndexedEXT"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdBeginQueryIndexedEXT(commandBuffer, queryPool, query, flags, index, true /* do lock */); |
| } |
| static void entry_vkCmdEndQueryIndexedEXT( |
| VkCommandBuffer commandBuffer, |
| VkQueryPool queryPool, |
| uint32_t query, |
| uint32_t index) |
| { |
| AEMU_SCOPED_TRACE("vkCmdEndQueryIndexedEXT"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdEndQueryIndexedEXT(commandBuffer, queryPool, query, index, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdEndQueryIndexedEXT( |
| VkCommandBuffer commandBuffer, |
| VkQueryPool queryPool, |
| uint32_t query, |
| uint32_t index) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_EXT_transform_feedback")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdEndQueryIndexedEXT", "VK_EXT_transform_feedback"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdEndQueryIndexedEXT"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdEndQueryIndexedEXT(commandBuffer, queryPool, query, index, true /* do lock */); |
| } |
| static void entry_vkCmdDrawIndirectByteCountEXT( |
| VkCommandBuffer commandBuffer, |
| uint32_t instanceCount, |
| uint32_t firstInstance, |
| VkBuffer counterBuffer, |
| VkDeviceSize counterBufferOffset, |
| uint32_t counterOffset, |
| uint32_t vertexStride) |
| { |
| AEMU_SCOPED_TRACE("vkCmdDrawIndirectByteCountEXT"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdDrawIndirectByteCountEXT( |
| VkCommandBuffer commandBuffer, |
| uint32_t instanceCount, |
| uint32_t firstInstance, |
| VkBuffer counterBuffer, |
| VkDeviceSize counterBufferOffset, |
| uint32_t counterOffset, |
| uint32_t vertexStride) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_EXT_transform_feedback")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdDrawIndirectByteCountEXT", "VK_EXT_transform_feedback"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdDrawIndirectByteCountEXT"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdDrawIndirectByteCountEXT(commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride, true /* do lock */); |
| } |
| #endif |
| #ifdef VK_NVX_binary_import |
| static VkResult entry_vkCreateCuModuleNVX( |
| VkDevice device, |
| const VkCuModuleCreateInfoNVX* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkCuModuleNVX* pModule) |
| { |
| AEMU_SCOPED_TRACE("vkCreateCuModuleNVX"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateCuModuleNVX_VkResult_return = (VkResult)0; |
| vkCreateCuModuleNVX_VkResult_return = vkEnc->vkCreateCuModuleNVX(device, pCreateInfo, pAllocator, pModule, true /* do lock */); |
| return vkCreateCuModuleNVX_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkCreateCuModuleNVX( |
| VkDevice device, |
| const VkCuModuleCreateInfoNVX* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkCuModuleNVX* pModule) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_NVX_binary_import")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCreateCuModuleNVX", "VK_NVX_binary_import"); |
| } |
| AEMU_SCOPED_TRACE("vkCreateCuModuleNVX"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateCuModuleNVX_VkResult_return = (VkResult)0; |
| vkCreateCuModuleNVX_VkResult_return = vkEnc->vkCreateCuModuleNVX(device, pCreateInfo, pAllocator, pModule, true /* do lock */); |
| return vkCreateCuModuleNVX_VkResult_return; |
| } |
| static VkResult entry_vkCreateCuFunctionNVX( |
| VkDevice device, |
| const VkCuFunctionCreateInfoNVX* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkCuFunctionNVX* pFunction) |
| { |
| AEMU_SCOPED_TRACE("vkCreateCuFunctionNVX"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateCuFunctionNVX_VkResult_return = (VkResult)0; |
| vkCreateCuFunctionNVX_VkResult_return = vkEnc->vkCreateCuFunctionNVX(device, pCreateInfo, pAllocator, pFunction, true /* do lock */); |
| return vkCreateCuFunctionNVX_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkCreateCuFunctionNVX( |
| VkDevice device, |
| const VkCuFunctionCreateInfoNVX* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkCuFunctionNVX* pFunction) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_NVX_binary_import")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCreateCuFunctionNVX", "VK_NVX_binary_import"); |
| } |
| AEMU_SCOPED_TRACE("vkCreateCuFunctionNVX"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateCuFunctionNVX_VkResult_return = (VkResult)0; |
| vkCreateCuFunctionNVX_VkResult_return = vkEnc->vkCreateCuFunctionNVX(device, pCreateInfo, pAllocator, pFunction, true /* do lock */); |
| return vkCreateCuFunctionNVX_VkResult_return; |
| } |
| static void entry_vkDestroyCuModuleNVX( |
| VkDevice device, |
| VkCuModuleNVX module, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AEMU_SCOPED_TRACE("vkDestroyCuModuleNVX"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkDestroyCuModuleNVX(device, module, pAllocator, true /* do lock */); |
| } |
| static void dynCheck_entry_vkDestroyCuModuleNVX( |
| VkDevice device, |
| VkCuModuleNVX module, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_NVX_binary_import")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkDestroyCuModuleNVX", "VK_NVX_binary_import"); |
| } |
| AEMU_SCOPED_TRACE("vkDestroyCuModuleNVX"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkDestroyCuModuleNVX(device, module, pAllocator, true /* do lock */); |
| } |
| static void entry_vkDestroyCuFunctionNVX( |
| VkDevice device, |
| VkCuFunctionNVX function, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AEMU_SCOPED_TRACE("vkDestroyCuFunctionNVX"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkDestroyCuFunctionNVX(device, function, pAllocator, true /* do lock */); |
| } |
| static void dynCheck_entry_vkDestroyCuFunctionNVX( |
| VkDevice device, |
| VkCuFunctionNVX function, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_NVX_binary_import")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkDestroyCuFunctionNVX", "VK_NVX_binary_import"); |
| } |
| AEMU_SCOPED_TRACE("vkDestroyCuFunctionNVX"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkDestroyCuFunctionNVX(device, function, pAllocator, true /* do lock */); |
| } |
| static void entry_vkCmdCuLaunchKernelNVX( |
| VkCommandBuffer commandBuffer, |
| const VkCuLaunchInfoNVX* pLaunchInfo) |
| { |
| AEMU_SCOPED_TRACE("vkCmdCuLaunchKernelNVX"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdCuLaunchKernelNVX(commandBuffer, pLaunchInfo, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdCuLaunchKernelNVX( |
| VkCommandBuffer commandBuffer, |
| const VkCuLaunchInfoNVX* pLaunchInfo) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_NVX_binary_import")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdCuLaunchKernelNVX", "VK_NVX_binary_import"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdCuLaunchKernelNVX"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdCuLaunchKernelNVX(commandBuffer, pLaunchInfo, true /* do lock */); |
| } |
| #endif |
| #ifdef VK_NVX_image_view_handle |
| static uint32_t entry_vkGetImageViewHandleNVX( |
| VkDevice device, |
| const VkImageViewHandleInfoNVX* pInfo) |
| { |
| AEMU_SCOPED_TRACE("vkGetImageViewHandleNVX"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| uint32_t vkGetImageViewHandleNVX_uint32_t_return = (uint32_t)0; |
| vkGetImageViewHandleNVX_uint32_t_return = vkEnc->vkGetImageViewHandleNVX(device, pInfo, true /* do lock */); |
| return vkGetImageViewHandleNVX_uint32_t_return; |
| } |
| static uint32_t dynCheck_entry_vkGetImageViewHandleNVX( |
| VkDevice device, |
| const VkImageViewHandleInfoNVX* pInfo) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_NVX_image_view_handle")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetImageViewHandleNVX", "VK_NVX_image_view_handle"); |
| } |
| AEMU_SCOPED_TRACE("vkGetImageViewHandleNVX"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| uint32_t vkGetImageViewHandleNVX_uint32_t_return = (uint32_t)0; |
| vkGetImageViewHandleNVX_uint32_t_return = vkEnc->vkGetImageViewHandleNVX(device, pInfo, true /* do lock */); |
| return vkGetImageViewHandleNVX_uint32_t_return; |
| } |
| static VkResult entry_vkGetImageViewAddressNVX( |
| VkDevice device, |
| VkImageView imageView, |
| VkImageViewAddressPropertiesNVX* pProperties) |
| { |
| AEMU_SCOPED_TRACE("vkGetImageViewAddressNVX"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetImageViewAddressNVX_VkResult_return = (VkResult)0; |
| vkGetImageViewAddressNVX_VkResult_return = vkEnc->vkGetImageViewAddressNVX(device, imageView, pProperties, true /* do lock */); |
| return vkGetImageViewAddressNVX_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkGetImageViewAddressNVX( |
| VkDevice device, |
| VkImageView imageView, |
| VkImageViewAddressPropertiesNVX* pProperties) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_NVX_image_view_handle")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetImageViewAddressNVX", "VK_NVX_image_view_handle"); |
| } |
| AEMU_SCOPED_TRACE("vkGetImageViewAddressNVX"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetImageViewAddressNVX_VkResult_return = (VkResult)0; |
| vkGetImageViewAddressNVX_VkResult_return = vkEnc->vkGetImageViewAddressNVX(device, imageView, pProperties, true /* do lock */); |
| return vkGetImageViewAddressNVX_VkResult_return; |
| } |
| #endif |
| #ifdef VK_AMD_draw_indirect_count |
| static void entry_vkCmdDrawIndirectCountAMD( |
| VkCommandBuffer commandBuffer, |
| VkBuffer buffer, |
| VkDeviceSize offset, |
| VkBuffer countBuffer, |
| VkDeviceSize countBufferOffset, |
| uint32_t maxDrawCount, |
| uint32_t stride) |
| { |
| AEMU_SCOPED_TRACE("vkCmdDrawIndirectCountAMD"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdDrawIndirectCountAMD( |
| VkCommandBuffer commandBuffer, |
| VkBuffer buffer, |
| VkDeviceSize offset, |
| VkBuffer countBuffer, |
| VkDeviceSize countBufferOffset, |
| uint32_t maxDrawCount, |
| uint32_t stride) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_AMD_draw_indirect_count")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdDrawIndirectCountAMD", "VK_AMD_draw_indirect_count"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdDrawIndirectCountAMD"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, true /* do lock */); |
| } |
| static void entry_vkCmdDrawIndexedIndirectCountAMD( |
| VkCommandBuffer commandBuffer, |
| VkBuffer buffer, |
| VkDeviceSize offset, |
| VkBuffer countBuffer, |
| VkDeviceSize countBufferOffset, |
| uint32_t maxDrawCount, |
| uint32_t stride) |
| { |
| AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirectCountAMD"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdDrawIndexedIndirectCountAMD( |
| VkCommandBuffer commandBuffer, |
| VkBuffer buffer, |
| VkDeviceSize offset, |
| VkBuffer countBuffer, |
| VkDeviceSize countBufferOffset, |
| uint32_t maxDrawCount, |
| uint32_t stride) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_AMD_draw_indirect_count")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdDrawIndexedIndirectCountAMD", "VK_AMD_draw_indirect_count"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirectCountAMD"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, true /* do lock */); |
| } |
| #endif |
| #ifdef VK_AMD_negative_viewport_height |
| #endif |
| #ifdef VK_AMD_gpu_shader_half_float |
| #endif |
| #ifdef VK_AMD_shader_ballot |
| #endif |
| #ifdef VK_EXT_video_encode_h264 |
| #endif |
| #ifdef VK_EXT_video_encode_h265 |
| #endif |
| #ifdef VK_EXT_video_decode_h264 |
| #endif |
| #ifdef VK_AMD_texture_gather_bias_lod |
| #endif |
| #ifdef VK_AMD_shader_info |
| static VkResult entry_vkGetShaderInfoAMD( |
| VkDevice device, |
| VkPipeline pipeline, |
| VkShaderStageFlagBits shaderStage, |
| VkShaderInfoTypeAMD infoType, |
| size_t* pInfoSize, |
| void* pInfo) |
| { |
| AEMU_SCOPED_TRACE("vkGetShaderInfoAMD"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetShaderInfoAMD_VkResult_return = (VkResult)0; |
| vkGetShaderInfoAMD_VkResult_return = vkEnc->vkGetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo, true /* do lock */); |
| return vkGetShaderInfoAMD_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkGetShaderInfoAMD( |
| VkDevice device, |
| VkPipeline pipeline, |
| VkShaderStageFlagBits shaderStage, |
| VkShaderInfoTypeAMD infoType, |
| size_t* pInfoSize, |
| void* pInfo) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_AMD_shader_info")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetShaderInfoAMD", "VK_AMD_shader_info"); |
| } |
| AEMU_SCOPED_TRACE("vkGetShaderInfoAMD"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetShaderInfoAMD_VkResult_return = (VkResult)0; |
| vkGetShaderInfoAMD_VkResult_return = vkEnc->vkGetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo, true /* do lock */); |
| return vkGetShaderInfoAMD_VkResult_return; |
| } |
| #endif |
| #ifdef VK_AMD_shader_image_load_store_lod |
| #endif |
| #ifdef VK_GGP_stream_descriptor_surface |
| static VkResult entry_vkCreateStreamDescriptorSurfaceGGP( |
| VkInstance instance, |
| const VkStreamDescriptorSurfaceCreateInfoGGP* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkSurfaceKHR* pSurface) |
| { |
| AEMU_SCOPED_TRACE("vkCreateStreamDescriptorSurfaceGGP"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateStreamDescriptorSurfaceGGP_VkResult_return = (VkResult)0; |
| vkCreateStreamDescriptorSurfaceGGP_VkResult_return = vkEnc->vkCreateStreamDescriptorSurfaceGGP(instance, pCreateInfo, pAllocator, pSurface, true /* do lock */); |
| return vkCreateStreamDescriptorSurfaceGGP_VkResult_return; |
| } |
| #endif |
| #ifdef VK_NV_corner_sampled_image |
| #endif |
| #ifdef VK_IMG_format_pvrtc |
| #endif |
| #ifdef VK_NV_external_memory_capabilities |
| static VkResult entry_vkGetPhysicalDeviceExternalImageFormatPropertiesNV( |
| VkPhysicalDevice physicalDevice, |
| VkFormat format, |
| VkImageType type, |
| VkImageTiling tiling, |
| VkImageUsageFlags usage, |
| VkImageCreateFlags flags, |
| VkExternalMemoryHandleTypeFlagsNV externalHandleType, |
| VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties) |
| { |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalImageFormatPropertiesNV"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetPhysicalDeviceExternalImageFormatPropertiesNV_VkResult_return = (VkResult)0; |
| vkGetPhysicalDeviceExternalImageFormatPropertiesNV_VkResult_return = vkEnc->vkGetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties, true /* do lock */); |
| return vkGetPhysicalDeviceExternalImageFormatPropertiesNV_VkResult_return; |
| } |
| #endif |
| #ifdef VK_NV_external_memory |
| #endif |
| #ifdef VK_NV_external_memory_win32 |
| static VkResult entry_vkGetMemoryWin32HandleNV( |
| VkDevice device, |
| VkDeviceMemory memory, |
| VkExternalMemoryHandleTypeFlagsNV handleType, |
| HANDLE* pHandle) |
| { |
| AEMU_SCOPED_TRACE("vkGetMemoryWin32HandleNV"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetMemoryWin32HandleNV_VkResult_return = (VkResult)0; |
| vkGetMemoryWin32HandleNV_VkResult_return = vkEnc->vkGetMemoryWin32HandleNV(device, memory, handleType, pHandle, true /* do lock */); |
| return vkGetMemoryWin32HandleNV_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkGetMemoryWin32HandleNV( |
| VkDevice device, |
| VkDeviceMemory memory, |
| VkExternalMemoryHandleTypeFlagsNV handleType, |
| HANDLE* pHandle) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_NV_external_memory_win32")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetMemoryWin32HandleNV", "VK_NV_external_memory_win32"); |
| } |
| AEMU_SCOPED_TRACE("vkGetMemoryWin32HandleNV"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetMemoryWin32HandleNV_VkResult_return = (VkResult)0; |
| vkGetMemoryWin32HandleNV_VkResult_return = vkEnc->vkGetMemoryWin32HandleNV(device, memory, handleType, pHandle, true /* do lock */); |
| return vkGetMemoryWin32HandleNV_VkResult_return; |
| } |
| #endif |
| #ifdef VK_NV_win32_keyed_mutex |
| #endif |
| #ifdef VK_EXT_validation_flags |
| #endif |
| #ifdef VK_NN_vi_surface |
| static VkResult entry_vkCreateViSurfaceNN( |
| VkInstance instance, |
| const VkViSurfaceCreateInfoNN* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkSurfaceKHR* pSurface) |
| { |
| AEMU_SCOPED_TRACE("vkCreateViSurfaceNN"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateViSurfaceNN_VkResult_return = (VkResult)0; |
| vkCreateViSurfaceNN_VkResult_return = vkEnc->vkCreateViSurfaceNN(instance, pCreateInfo, pAllocator, pSurface, true /* do lock */); |
| return vkCreateViSurfaceNN_VkResult_return; |
| } |
| #endif |
| #ifdef VK_EXT_shader_subgroup_ballot |
| #endif |
| #ifdef VK_EXT_shader_subgroup_vote |
| #endif |
| #ifdef VK_EXT_texture_compression_astc_hdr |
| #endif |
| #ifdef VK_EXT_astc_decode_mode |
| #endif |
| #ifdef VK_EXT_conditional_rendering |
| static void entry_vkCmdBeginConditionalRenderingEXT( |
| VkCommandBuffer commandBuffer, |
| const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin) |
| { |
| AEMU_SCOPED_TRACE("vkCmdBeginConditionalRenderingEXT"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdBeginConditionalRenderingEXT( |
| VkCommandBuffer commandBuffer, |
| const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_EXT_conditional_rendering")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdBeginConditionalRenderingEXT", "VK_EXT_conditional_rendering"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdBeginConditionalRenderingEXT"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin, true /* do lock */); |
| } |
| static void entry_vkCmdEndConditionalRenderingEXT( |
| VkCommandBuffer commandBuffer) |
| { |
| AEMU_SCOPED_TRACE("vkCmdEndConditionalRenderingEXT"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdEndConditionalRenderingEXT(commandBuffer, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdEndConditionalRenderingEXT( |
| VkCommandBuffer commandBuffer) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_EXT_conditional_rendering")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdEndConditionalRenderingEXT", "VK_EXT_conditional_rendering"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdEndConditionalRenderingEXT"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdEndConditionalRenderingEXT(commandBuffer, true /* do lock */); |
| } |
| #endif |
| #ifdef VK_NV_clip_space_w_scaling |
| static void entry_vkCmdSetViewportWScalingNV( |
| VkCommandBuffer commandBuffer, |
| uint32_t firstViewport, |
| uint32_t viewportCount, |
| const VkViewportWScalingNV* pViewportWScalings) |
| { |
| AEMU_SCOPED_TRACE("vkCmdSetViewportWScalingNV"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdSetViewportWScalingNV( |
| VkCommandBuffer commandBuffer, |
| uint32_t firstViewport, |
| uint32_t viewportCount, |
| const VkViewportWScalingNV* pViewportWScalings) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_NV_clip_space_w_scaling")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdSetViewportWScalingNV", "VK_NV_clip_space_w_scaling"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdSetViewportWScalingNV"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings, true /* do lock */); |
| } |
| #endif |
| #ifdef VK_EXT_direct_mode_display |
| static VkResult entry_vkReleaseDisplayEXT( |
| VkPhysicalDevice physicalDevice, |
| VkDisplayKHR display) |
| { |
| AEMU_SCOPED_TRACE("vkReleaseDisplayEXT"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkReleaseDisplayEXT_VkResult_return = (VkResult)0; |
| vkReleaseDisplayEXT_VkResult_return = vkEnc->vkReleaseDisplayEXT(physicalDevice, display, true /* do lock */); |
| return vkReleaseDisplayEXT_VkResult_return; |
| } |
| #endif |
| #ifdef VK_EXT_acquire_xlib_display |
| static VkResult entry_vkAcquireXlibDisplayEXT( |
| VkPhysicalDevice physicalDevice, |
| Display* dpy, |
| VkDisplayKHR display) |
| { |
| AEMU_SCOPED_TRACE("vkAcquireXlibDisplayEXT"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkAcquireXlibDisplayEXT_VkResult_return = (VkResult)0; |
| vkAcquireXlibDisplayEXT_VkResult_return = vkEnc->vkAcquireXlibDisplayEXT(physicalDevice, dpy, display, true /* do lock */); |
| return vkAcquireXlibDisplayEXT_VkResult_return; |
| } |
| static VkResult entry_vkGetRandROutputDisplayEXT( |
| VkPhysicalDevice physicalDevice, |
| Display* dpy, |
| RROutput rrOutput, |
| VkDisplayKHR* pDisplay) |
| { |
| AEMU_SCOPED_TRACE("vkGetRandROutputDisplayEXT"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetRandROutputDisplayEXT_VkResult_return = (VkResult)0; |
| vkGetRandROutputDisplayEXT_VkResult_return = vkEnc->vkGetRandROutputDisplayEXT(physicalDevice, dpy, rrOutput, pDisplay, true /* do lock */); |
| return vkGetRandROutputDisplayEXT_VkResult_return; |
| } |
| #endif |
| #ifdef VK_EXT_display_surface_counter |
| static VkResult entry_vkGetPhysicalDeviceSurfaceCapabilities2EXT( |
| VkPhysicalDevice physicalDevice, |
| VkSurfaceKHR surface, |
| VkSurfaceCapabilities2EXT* pSurfaceCapabilities) |
| { |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceCapabilities2EXT"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetPhysicalDeviceSurfaceCapabilities2EXT_VkResult_return = (VkResult)0; |
| vkGetPhysicalDeviceSurfaceCapabilities2EXT_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities, true /* do lock */); |
| return vkGetPhysicalDeviceSurfaceCapabilities2EXT_VkResult_return; |
| } |
| #endif |
| #ifdef VK_EXT_display_control |
| static VkResult entry_vkDisplayPowerControlEXT( |
| VkDevice device, |
| VkDisplayKHR display, |
| const VkDisplayPowerInfoEXT* pDisplayPowerInfo) |
| { |
| AEMU_SCOPED_TRACE("vkDisplayPowerControlEXT"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkDisplayPowerControlEXT_VkResult_return = (VkResult)0; |
| vkDisplayPowerControlEXT_VkResult_return = vkEnc->vkDisplayPowerControlEXT(device, display, pDisplayPowerInfo, true /* do lock */); |
| return vkDisplayPowerControlEXT_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkDisplayPowerControlEXT( |
| VkDevice device, |
| VkDisplayKHR display, |
| const VkDisplayPowerInfoEXT* pDisplayPowerInfo) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_EXT_display_control")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkDisplayPowerControlEXT", "VK_EXT_display_control"); |
| } |
| AEMU_SCOPED_TRACE("vkDisplayPowerControlEXT"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkDisplayPowerControlEXT_VkResult_return = (VkResult)0; |
| vkDisplayPowerControlEXT_VkResult_return = vkEnc->vkDisplayPowerControlEXT(device, display, pDisplayPowerInfo, true /* do lock */); |
| return vkDisplayPowerControlEXT_VkResult_return; |
| } |
| static VkResult entry_vkRegisterDeviceEventEXT( |
| VkDevice device, |
| const VkDeviceEventInfoEXT* pDeviceEventInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkFence* pFence) |
| { |
| AEMU_SCOPED_TRACE("vkRegisterDeviceEventEXT"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkRegisterDeviceEventEXT_VkResult_return = (VkResult)0; |
| vkRegisterDeviceEventEXT_VkResult_return = vkEnc->vkRegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence, true /* do lock */); |
| return vkRegisterDeviceEventEXT_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkRegisterDeviceEventEXT( |
| VkDevice device, |
| const VkDeviceEventInfoEXT* pDeviceEventInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkFence* pFence) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_EXT_display_control")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkRegisterDeviceEventEXT", "VK_EXT_display_control"); |
| } |
| AEMU_SCOPED_TRACE("vkRegisterDeviceEventEXT"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkRegisterDeviceEventEXT_VkResult_return = (VkResult)0; |
| vkRegisterDeviceEventEXT_VkResult_return = vkEnc->vkRegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence, true /* do lock */); |
| return vkRegisterDeviceEventEXT_VkResult_return; |
| } |
| static VkResult entry_vkRegisterDisplayEventEXT( |
| VkDevice device, |
| VkDisplayKHR display, |
| const VkDisplayEventInfoEXT* pDisplayEventInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkFence* pFence) |
| { |
| AEMU_SCOPED_TRACE("vkRegisterDisplayEventEXT"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkRegisterDisplayEventEXT_VkResult_return = (VkResult)0; |
| vkRegisterDisplayEventEXT_VkResult_return = vkEnc->vkRegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence, true /* do lock */); |
| return vkRegisterDisplayEventEXT_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkRegisterDisplayEventEXT( |
| VkDevice device, |
| VkDisplayKHR display, |
| const VkDisplayEventInfoEXT* pDisplayEventInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkFence* pFence) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_EXT_display_control")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkRegisterDisplayEventEXT", "VK_EXT_display_control"); |
| } |
| AEMU_SCOPED_TRACE("vkRegisterDisplayEventEXT"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkRegisterDisplayEventEXT_VkResult_return = (VkResult)0; |
| vkRegisterDisplayEventEXT_VkResult_return = vkEnc->vkRegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence, true /* do lock */); |
| return vkRegisterDisplayEventEXT_VkResult_return; |
| } |
| static VkResult entry_vkGetSwapchainCounterEXT( |
| VkDevice device, |
| VkSwapchainKHR swapchain, |
| VkSurfaceCounterFlagBitsEXT counter, |
| uint64_t* pCounterValue) |
| { |
| AEMU_SCOPED_TRACE("vkGetSwapchainCounterEXT"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetSwapchainCounterEXT_VkResult_return = (VkResult)0; |
| vkGetSwapchainCounterEXT_VkResult_return = vkEnc->vkGetSwapchainCounterEXT(device, swapchain, counter, pCounterValue, true /* do lock */); |
| return vkGetSwapchainCounterEXT_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkGetSwapchainCounterEXT( |
| VkDevice device, |
| VkSwapchainKHR swapchain, |
| VkSurfaceCounterFlagBitsEXT counter, |
| uint64_t* pCounterValue) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_EXT_display_control")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetSwapchainCounterEXT", "VK_EXT_display_control"); |
| } |
| AEMU_SCOPED_TRACE("vkGetSwapchainCounterEXT"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetSwapchainCounterEXT_VkResult_return = (VkResult)0; |
| vkGetSwapchainCounterEXT_VkResult_return = vkEnc->vkGetSwapchainCounterEXT(device, swapchain, counter, pCounterValue, true /* do lock */); |
| return vkGetSwapchainCounterEXT_VkResult_return; |
| } |
| #endif |
| #ifdef VK_GOOGLE_display_timing |
| static VkResult entry_vkGetRefreshCycleDurationGOOGLE( |
| VkDevice device, |
| VkSwapchainKHR swapchain, |
| VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties) |
| { |
| AEMU_SCOPED_TRACE("vkGetRefreshCycleDurationGOOGLE"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetRefreshCycleDurationGOOGLE_VkResult_return = (VkResult)0; |
| vkGetRefreshCycleDurationGOOGLE_VkResult_return = vkEnc->vkGetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties, true /* do lock */); |
| return vkGetRefreshCycleDurationGOOGLE_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkGetRefreshCycleDurationGOOGLE( |
| VkDevice device, |
| VkSwapchainKHR swapchain, |
| VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_GOOGLE_display_timing")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetRefreshCycleDurationGOOGLE", "VK_GOOGLE_display_timing"); |
| } |
| AEMU_SCOPED_TRACE("vkGetRefreshCycleDurationGOOGLE"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetRefreshCycleDurationGOOGLE_VkResult_return = (VkResult)0; |
| vkGetRefreshCycleDurationGOOGLE_VkResult_return = vkEnc->vkGetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties, true /* do lock */); |
| return vkGetRefreshCycleDurationGOOGLE_VkResult_return; |
| } |
| static VkResult entry_vkGetPastPresentationTimingGOOGLE( |
| VkDevice device, |
| VkSwapchainKHR swapchain, |
| uint32_t* pPresentationTimingCount, |
| VkPastPresentationTimingGOOGLE* pPresentationTimings) |
| { |
| AEMU_SCOPED_TRACE("vkGetPastPresentationTimingGOOGLE"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetPastPresentationTimingGOOGLE_VkResult_return = (VkResult)0; |
| vkGetPastPresentationTimingGOOGLE_VkResult_return = vkEnc->vkGetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings, true /* do lock */); |
| return vkGetPastPresentationTimingGOOGLE_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkGetPastPresentationTimingGOOGLE( |
| VkDevice device, |
| VkSwapchainKHR swapchain, |
| uint32_t* pPresentationTimingCount, |
| VkPastPresentationTimingGOOGLE* pPresentationTimings) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_GOOGLE_display_timing")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetPastPresentationTimingGOOGLE", "VK_GOOGLE_display_timing"); |
| } |
| AEMU_SCOPED_TRACE("vkGetPastPresentationTimingGOOGLE"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetPastPresentationTimingGOOGLE_VkResult_return = (VkResult)0; |
| vkGetPastPresentationTimingGOOGLE_VkResult_return = vkEnc->vkGetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings, true /* do lock */); |
| return vkGetPastPresentationTimingGOOGLE_VkResult_return; |
| } |
| #endif |
| #ifdef VK_NV_sample_mask_override_coverage |
| #endif |
| #ifdef VK_NV_geometry_shader_passthrough |
| #endif |
| #ifdef VK_NV_viewport_array2 |
| #endif |
| #ifdef VK_NVX_multiview_per_view_attributes |
| #endif |
| #ifdef VK_NV_viewport_swizzle |
| #endif |
| #ifdef VK_EXT_discard_rectangles |
| static void entry_vkCmdSetDiscardRectangleEXT( |
| VkCommandBuffer commandBuffer, |
| uint32_t firstDiscardRectangle, |
| uint32_t discardRectangleCount, |
| const VkRect2D* pDiscardRectangles) |
| { |
| AEMU_SCOPED_TRACE("vkCmdSetDiscardRectangleEXT"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdSetDiscardRectangleEXT( |
| VkCommandBuffer commandBuffer, |
| uint32_t firstDiscardRectangle, |
| uint32_t discardRectangleCount, |
| const VkRect2D* pDiscardRectangles) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_EXT_discard_rectangles")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdSetDiscardRectangleEXT", "VK_EXT_discard_rectangles"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdSetDiscardRectangleEXT"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles, true /* do lock */); |
| } |
| #endif |
| #ifdef VK_EXT_conservative_rasterization |
| #endif |
| #ifdef VK_EXT_depth_clip_enable |
| #endif |
| #ifdef VK_EXT_swapchain_colorspace |
| #endif |
| #ifdef VK_EXT_hdr_metadata |
| static void entry_vkSetHdrMetadataEXT( |
| VkDevice device, |
| uint32_t swapchainCount, |
| const VkSwapchainKHR* pSwapchains, |
| const VkHdrMetadataEXT* pMetadata) |
| { |
| AEMU_SCOPED_TRACE("vkSetHdrMetadataEXT"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkSetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata, true /* do lock */); |
| } |
| static void dynCheck_entry_vkSetHdrMetadataEXT( |
| VkDevice device, |
| uint32_t swapchainCount, |
| const VkSwapchainKHR* pSwapchains, |
| const VkHdrMetadataEXT* pMetadata) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_EXT_hdr_metadata")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkSetHdrMetadataEXT", "VK_EXT_hdr_metadata"); |
| } |
| AEMU_SCOPED_TRACE("vkSetHdrMetadataEXT"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkSetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata, true /* do lock */); |
| } |
| #endif |
| #ifdef VK_MVK_ios_surface |
| static VkResult entry_vkCreateIOSSurfaceMVK( |
| VkInstance instance, |
| const VkIOSSurfaceCreateInfoMVK* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkSurfaceKHR* pSurface) |
| { |
| AEMU_SCOPED_TRACE("vkCreateIOSSurfaceMVK"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateIOSSurfaceMVK_VkResult_return = (VkResult)0; |
| vkCreateIOSSurfaceMVK_VkResult_return = vkEnc->vkCreateIOSSurfaceMVK(instance, pCreateInfo, pAllocator, pSurface, true /* do lock */); |
| return vkCreateIOSSurfaceMVK_VkResult_return; |
| } |
| #endif |
| #ifdef VK_MVK_macos_surface |
| static VkResult entry_vkCreateMacOSSurfaceMVK( |
| VkInstance instance, |
| const VkMacOSSurfaceCreateInfoMVK* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkSurfaceKHR* pSurface) |
| { |
| AEMU_SCOPED_TRACE("vkCreateMacOSSurfaceMVK"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateMacOSSurfaceMVK_VkResult_return = (VkResult)0; |
| vkCreateMacOSSurfaceMVK_VkResult_return = vkEnc->vkCreateMacOSSurfaceMVK(instance, pCreateInfo, pAllocator, pSurface, true /* do lock */); |
| return vkCreateMacOSSurfaceMVK_VkResult_return; |
| } |
| #endif |
| #ifdef VK_MVK_moltenvk |
| static void entry_vkGetMTLDeviceMVK( |
| VkPhysicalDevice physicalDevice, |
| void** pMTLDevice) |
| { |
| AEMU_SCOPED_TRACE("vkGetMTLDeviceMVK"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkGetMTLDeviceMVK(physicalDevice, pMTLDevice, true /* do lock */); |
| } |
| static VkResult entry_vkSetMTLTextureMVK( |
| VkImage image, |
| void* mtlTexture) |
| { |
| AEMU_SCOPED_TRACE("vkSetMTLTextureMVK"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkSetMTLTextureMVK_VkResult_return = (VkResult)0; |
| vkSetMTLTextureMVK_VkResult_return = vkEnc->vkSetMTLTextureMVK(image, mtlTexture, true /* do lock */); |
| return vkSetMTLTextureMVK_VkResult_return; |
| } |
| static void entry_vkGetMTLTextureMVK( |
| VkImage image, |
| void** pMTLTexture) |
| { |
| AEMU_SCOPED_TRACE("vkGetMTLTextureMVK"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkGetMTLTextureMVK(image, pMTLTexture, true /* do lock */); |
| } |
| static void entry_vkGetMTLBufferMVK( |
| VkBuffer buffer, |
| void** pMTLBuffer) |
| { |
| AEMU_SCOPED_TRACE("vkGetMTLBufferMVK"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkGetMTLBufferMVK(buffer, pMTLBuffer, true /* do lock */); |
| } |
| static VkResult entry_vkUseIOSurfaceMVK( |
| VkImage image, |
| void* ioSurface) |
| { |
| AEMU_SCOPED_TRACE("vkUseIOSurfaceMVK"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkUseIOSurfaceMVK_VkResult_return = (VkResult)0; |
| vkUseIOSurfaceMVK_VkResult_return = vkEnc->vkUseIOSurfaceMVK(image, ioSurface, true /* do lock */); |
| return vkUseIOSurfaceMVK_VkResult_return; |
| } |
| static void entry_vkGetIOSurfaceMVK( |
| VkImage image, |
| void** pIOSurface) |
| { |
| AEMU_SCOPED_TRACE("vkGetIOSurfaceMVK"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkGetIOSurfaceMVK(image, pIOSurface, true /* do lock */); |
| } |
| #endif |
| #ifdef VK_EXT_external_memory_dma_buf |
| #endif |
| #ifdef VK_EXT_queue_family_foreign |
| #endif |
| #ifdef VK_EXT_debug_utils |
| static VkResult entry_vkSetDebugUtilsObjectNameEXT( |
| VkDevice device, |
| const VkDebugUtilsObjectNameInfoEXT* pNameInfo) |
| { |
| AEMU_SCOPED_TRACE("vkSetDebugUtilsObjectNameEXT"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkSetDebugUtilsObjectNameEXT_VkResult_return = (VkResult)0; |
| vkSetDebugUtilsObjectNameEXT_VkResult_return = vkEnc->vkSetDebugUtilsObjectNameEXT(device, pNameInfo, true /* do lock */); |
| return vkSetDebugUtilsObjectNameEXT_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkSetDebugUtilsObjectNameEXT( |
| VkDevice device, |
| const VkDebugUtilsObjectNameInfoEXT* pNameInfo) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_EXT_debug_utils")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkSetDebugUtilsObjectNameEXT", "VK_EXT_debug_utils"); |
| } |
| AEMU_SCOPED_TRACE("vkSetDebugUtilsObjectNameEXT"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkSetDebugUtilsObjectNameEXT_VkResult_return = (VkResult)0; |
| vkSetDebugUtilsObjectNameEXT_VkResult_return = vkEnc->vkSetDebugUtilsObjectNameEXT(device, pNameInfo, true /* do lock */); |
| return vkSetDebugUtilsObjectNameEXT_VkResult_return; |
| } |
| static VkResult entry_vkSetDebugUtilsObjectTagEXT( |
| VkDevice device, |
| const VkDebugUtilsObjectTagInfoEXT* pTagInfo) |
| { |
| AEMU_SCOPED_TRACE("vkSetDebugUtilsObjectTagEXT"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkSetDebugUtilsObjectTagEXT_VkResult_return = (VkResult)0; |
| vkSetDebugUtilsObjectTagEXT_VkResult_return = vkEnc->vkSetDebugUtilsObjectTagEXT(device, pTagInfo, true /* do lock */); |
| return vkSetDebugUtilsObjectTagEXT_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkSetDebugUtilsObjectTagEXT( |
| VkDevice device, |
| const VkDebugUtilsObjectTagInfoEXT* pTagInfo) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_EXT_debug_utils")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkSetDebugUtilsObjectTagEXT", "VK_EXT_debug_utils"); |
| } |
| AEMU_SCOPED_TRACE("vkSetDebugUtilsObjectTagEXT"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkSetDebugUtilsObjectTagEXT_VkResult_return = (VkResult)0; |
| vkSetDebugUtilsObjectTagEXT_VkResult_return = vkEnc->vkSetDebugUtilsObjectTagEXT(device, pTagInfo, true /* do lock */); |
| return vkSetDebugUtilsObjectTagEXT_VkResult_return; |
| } |
| static void entry_vkQueueBeginDebugUtilsLabelEXT( |
| VkQueue queue, |
| const VkDebugUtilsLabelEXT* pLabelInfo) |
| { |
| AEMU_SCOPED_TRACE("vkQueueBeginDebugUtilsLabelEXT"); |
| auto vkEnc = ResourceTracker::getQueueEncoder(queue); |
| vkEnc->vkQueueBeginDebugUtilsLabelEXT(queue, pLabelInfo, true /* do lock */); |
| } |
| static void entry_vkQueueEndDebugUtilsLabelEXT( |
| VkQueue queue) |
| { |
| AEMU_SCOPED_TRACE("vkQueueEndDebugUtilsLabelEXT"); |
| auto vkEnc = ResourceTracker::getQueueEncoder(queue); |
| vkEnc->vkQueueEndDebugUtilsLabelEXT(queue, true /* do lock */); |
| } |
| static void entry_vkQueueInsertDebugUtilsLabelEXT( |
| VkQueue queue, |
| const VkDebugUtilsLabelEXT* pLabelInfo) |
| { |
| AEMU_SCOPED_TRACE("vkQueueInsertDebugUtilsLabelEXT"); |
| auto vkEnc = ResourceTracker::getQueueEncoder(queue); |
| vkEnc->vkQueueInsertDebugUtilsLabelEXT(queue, pLabelInfo, true /* do lock */); |
| } |
| static void entry_vkCmdBeginDebugUtilsLabelEXT( |
| VkCommandBuffer commandBuffer, |
| const VkDebugUtilsLabelEXT* pLabelInfo) |
| { |
| AEMU_SCOPED_TRACE("vkCmdBeginDebugUtilsLabelEXT"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo, true /* do lock */); |
| } |
| static void entry_vkCmdEndDebugUtilsLabelEXT( |
| VkCommandBuffer commandBuffer) |
| { |
| AEMU_SCOPED_TRACE("vkCmdEndDebugUtilsLabelEXT"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdEndDebugUtilsLabelEXT(commandBuffer, true /* do lock */); |
| } |
| static void entry_vkCmdInsertDebugUtilsLabelEXT( |
| VkCommandBuffer commandBuffer, |
| const VkDebugUtilsLabelEXT* pLabelInfo) |
| { |
| AEMU_SCOPED_TRACE("vkCmdInsertDebugUtilsLabelEXT"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo, true /* do lock */); |
| } |
| static VkResult entry_vkCreateDebugUtilsMessengerEXT( |
| VkInstance instance, |
| const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkDebugUtilsMessengerEXT* pMessenger) |
| { |
| AEMU_SCOPED_TRACE("vkCreateDebugUtilsMessengerEXT"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateDebugUtilsMessengerEXT_VkResult_return = (VkResult)0; |
| vkCreateDebugUtilsMessengerEXT_VkResult_return = vkEnc->vkCreateDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, pMessenger, true /* do lock */); |
| return vkCreateDebugUtilsMessengerEXT_VkResult_return; |
| } |
| static void entry_vkDestroyDebugUtilsMessengerEXT( |
| VkInstance instance, |
| VkDebugUtilsMessengerEXT messenger, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AEMU_SCOPED_TRACE("vkDestroyDebugUtilsMessengerEXT"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkDestroyDebugUtilsMessengerEXT(instance, messenger, pAllocator, true /* do lock */); |
| } |
| static void entry_vkSubmitDebugUtilsMessageEXT( |
| VkInstance instance, |
| VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, |
| VkDebugUtilsMessageTypeFlagsEXT messageTypes, |
| const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData) |
| { |
| AEMU_SCOPED_TRACE("vkSubmitDebugUtilsMessageEXT"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkSubmitDebugUtilsMessageEXT(instance, messageSeverity, messageTypes, pCallbackData, true /* do lock */); |
| } |
| #endif |
| #ifdef VK_ANDROID_external_memory_android_hardware_buffer |
| static VkResult entry_vkGetAndroidHardwareBufferPropertiesANDROID( |
| VkDevice device, |
| const AHardwareBuffer* buffer, |
| VkAndroidHardwareBufferPropertiesANDROID* pProperties) |
| { |
| AEMU_SCOPED_TRACE("vkGetAndroidHardwareBufferPropertiesANDROID"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetAndroidHardwareBufferPropertiesANDROID_VkResult_return = (VkResult)0; |
| auto resources = ResourceTracker::get(); |
| vkGetAndroidHardwareBufferPropertiesANDROID_VkResult_return = resources->on_vkGetAndroidHardwareBufferPropertiesANDROID(vkEnc, VK_SUCCESS, device, buffer, pProperties); |
| return vkGetAndroidHardwareBufferPropertiesANDROID_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkGetAndroidHardwareBufferPropertiesANDROID( |
| VkDevice device, |
| const AHardwareBuffer* buffer, |
| VkAndroidHardwareBufferPropertiesANDROID* pProperties) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_ANDROID_external_memory_android_hardware_buffer")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetAndroidHardwareBufferPropertiesANDROID", "VK_ANDROID_external_memory_android_hardware_buffer"); |
| } |
| AEMU_SCOPED_TRACE("vkGetAndroidHardwareBufferPropertiesANDROID"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetAndroidHardwareBufferPropertiesANDROID_VkResult_return = (VkResult)0; |
| vkGetAndroidHardwareBufferPropertiesANDROID_VkResult_return = resources->on_vkGetAndroidHardwareBufferPropertiesANDROID(vkEnc, VK_SUCCESS, device, buffer, pProperties); |
| return vkGetAndroidHardwareBufferPropertiesANDROID_VkResult_return; |
| } |
| static VkResult entry_vkGetMemoryAndroidHardwareBufferANDROID( |
| VkDevice device, |
| const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo, |
| AHardwareBuffer** pBuffer) |
| { |
| AEMU_SCOPED_TRACE("vkGetMemoryAndroidHardwareBufferANDROID"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetMemoryAndroidHardwareBufferANDROID_VkResult_return = (VkResult)0; |
| auto resources = ResourceTracker::get(); |
| vkGetMemoryAndroidHardwareBufferANDROID_VkResult_return = resources->on_vkGetMemoryAndroidHardwareBufferANDROID(vkEnc, VK_SUCCESS, device, pInfo, pBuffer); |
| return vkGetMemoryAndroidHardwareBufferANDROID_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkGetMemoryAndroidHardwareBufferANDROID( |
| VkDevice device, |
| const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo, |
| AHardwareBuffer** pBuffer) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_ANDROID_external_memory_android_hardware_buffer")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetMemoryAndroidHardwareBufferANDROID", "VK_ANDROID_external_memory_android_hardware_buffer"); |
| } |
| AEMU_SCOPED_TRACE("vkGetMemoryAndroidHardwareBufferANDROID"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetMemoryAndroidHardwareBufferANDROID_VkResult_return = (VkResult)0; |
| vkGetMemoryAndroidHardwareBufferANDROID_VkResult_return = resources->on_vkGetMemoryAndroidHardwareBufferANDROID(vkEnc, VK_SUCCESS, device, pInfo, pBuffer); |
| return vkGetMemoryAndroidHardwareBufferANDROID_VkResult_return; |
| } |
| #endif |
| #ifdef VK_EXT_sampler_filter_minmax |
| #endif |
| #ifdef VK_AMD_gpu_shader_int16 |
| #endif |
| #ifdef VK_AMD_mixed_attachment_samples |
| #endif |
| #ifdef VK_AMD_shader_fragment_mask |
| #endif |
| #ifdef VK_EXT_inline_uniform_block |
| #endif |
| #ifdef VK_EXT_shader_stencil_export |
| #endif |
| #ifdef VK_EXT_sample_locations |
| static void entry_vkCmdSetSampleLocationsEXT( |
| VkCommandBuffer commandBuffer, |
| const VkSampleLocationsInfoEXT* pSampleLocationsInfo) |
| { |
| AEMU_SCOPED_TRACE("vkCmdSetSampleLocationsEXT"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdSetSampleLocationsEXT( |
| VkCommandBuffer commandBuffer, |
| const VkSampleLocationsInfoEXT* pSampleLocationsInfo) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_EXT_sample_locations")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdSetSampleLocationsEXT", "VK_EXT_sample_locations"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdSetSampleLocationsEXT"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo, true /* do lock */); |
| } |
| static void entry_vkGetPhysicalDeviceMultisamplePropertiesEXT( |
| VkPhysicalDevice physicalDevice, |
| VkSampleCountFlagBits samples, |
| VkMultisamplePropertiesEXT* pMultisampleProperties) |
| { |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMultisamplePropertiesEXT"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkGetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties, true /* do lock */); |
| } |
| #endif |
| #ifdef VK_EXT_blend_operation_advanced |
| #endif |
| #ifdef VK_NV_fragment_coverage_to_color |
| #endif |
| #ifdef VK_NV_framebuffer_mixed_samples |
| #endif |
| #ifdef VK_NV_fill_rectangle |
| #endif |
| #ifdef VK_NV_shader_sm_builtins |
| #endif |
| #ifdef VK_EXT_post_depth_coverage |
| #endif |
| #ifdef VK_EXT_image_drm_format_modifier |
| static VkResult entry_vkGetImageDrmFormatModifierPropertiesEXT( |
| VkDevice device, |
| VkImage image, |
| VkImageDrmFormatModifierPropertiesEXT* pProperties) |
| { |
| AEMU_SCOPED_TRACE("vkGetImageDrmFormatModifierPropertiesEXT"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetImageDrmFormatModifierPropertiesEXT_VkResult_return = (VkResult)0; |
| vkGetImageDrmFormatModifierPropertiesEXT_VkResult_return = vkEnc->vkGetImageDrmFormatModifierPropertiesEXT(device, image, pProperties, true /* do lock */); |
| return vkGetImageDrmFormatModifierPropertiesEXT_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkGetImageDrmFormatModifierPropertiesEXT( |
| VkDevice device, |
| VkImage image, |
| VkImageDrmFormatModifierPropertiesEXT* pProperties) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_EXT_image_drm_format_modifier")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetImageDrmFormatModifierPropertiesEXT", "VK_EXT_image_drm_format_modifier"); |
| } |
| AEMU_SCOPED_TRACE("vkGetImageDrmFormatModifierPropertiesEXT"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetImageDrmFormatModifierPropertiesEXT_VkResult_return = (VkResult)0; |
| vkGetImageDrmFormatModifierPropertiesEXT_VkResult_return = vkEnc->vkGetImageDrmFormatModifierPropertiesEXT(device, image, pProperties, true /* do lock */); |
| return vkGetImageDrmFormatModifierPropertiesEXT_VkResult_return; |
| } |
| #endif |
| #ifdef VK_EXT_validation_cache |
| static VkResult entry_vkCreateValidationCacheEXT( |
| VkDevice device, |
| const VkValidationCacheCreateInfoEXT* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkValidationCacheEXT* pValidationCache) |
| { |
| AEMU_SCOPED_TRACE("vkCreateValidationCacheEXT"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateValidationCacheEXT_VkResult_return = (VkResult)0; |
| vkCreateValidationCacheEXT_VkResult_return = vkEnc->vkCreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache, true /* do lock */); |
| return vkCreateValidationCacheEXT_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkCreateValidationCacheEXT( |
| VkDevice device, |
| const VkValidationCacheCreateInfoEXT* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkValidationCacheEXT* pValidationCache) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_EXT_validation_cache")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCreateValidationCacheEXT", "VK_EXT_validation_cache"); |
| } |
| AEMU_SCOPED_TRACE("vkCreateValidationCacheEXT"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateValidationCacheEXT_VkResult_return = (VkResult)0; |
| vkCreateValidationCacheEXT_VkResult_return = vkEnc->vkCreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache, true /* do lock */); |
| return vkCreateValidationCacheEXT_VkResult_return; |
| } |
| static void entry_vkDestroyValidationCacheEXT( |
| VkDevice device, |
| VkValidationCacheEXT validationCache, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AEMU_SCOPED_TRACE("vkDestroyValidationCacheEXT"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkDestroyValidationCacheEXT(device, validationCache, pAllocator, true /* do lock */); |
| } |
| static void dynCheck_entry_vkDestroyValidationCacheEXT( |
| VkDevice device, |
| VkValidationCacheEXT validationCache, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_EXT_validation_cache")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkDestroyValidationCacheEXT", "VK_EXT_validation_cache"); |
| } |
| AEMU_SCOPED_TRACE("vkDestroyValidationCacheEXT"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkDestroyValidationCacheEXT(device, validationCache, pAllocator, true /* do lock */); |
| } |
| static VkResult entry_vkMergeValidationCachesEXT( |
| VkDevice device, |
| VkValidationCacheEXT dstCache, |
| uint32_t srcCacheCount, |
| const VkValidationCacheEXT* pSrcCaches) |
| { |
| AEMU_SCOPED_TRACE("vkMergeValidationCachesEXT"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkMergeValidationCachesEXT_VkResult_return = (VkResult)0; |
| vkMergeValidationCachesEXT_VkResult_return = vkEnc->vkMergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches, true /* do lock */); |
| return vkMergeValidationCachesEXT_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkMergeValidationCachesEXT( |
| VkDevice device, |
| VkValidationCacheEXT dstCache, |
| uint32_t srcCacheCount, |
| const VkValidationCacheEXT* pSrcCaches) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_EXT_validation_cache")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkMergeValidationCachesEXT", "VK_EXT_validation_cache"); |
| } |
| AEMU_SCOPED_TRACE("vkMergeValidationCachesEXT"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkMergeValidationCachesEXT_VkResult_return = (VkResult)0; |
| vkMergeValidationCachesEXT_VkResult_return = vkEnc->vkMergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches, true /* do lock */); |
| return vkMergeValidationCachesEXT_VkResult_return; |
| } |
| static VkResult entry_vkGetValidationCacheDataEXT( |
| VkDevice device, |
| VkValidationCacheEXT validationCache, |
| size_t* pDataSize, |
| void* pData) |
| { |
| AEMU_SCOPED_TRACE("vkGetValidationCacheDataEXT"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetValidationCacheDataEXT_VkResult_return = (VkResult)0; |
| vkGetValidationCacheDataEXT_VkResult_return = vkEnc->vkGetValidationCacheDataEXT(device, validationCache, pDataSize, pData, true /* do lock */); |
| return vkGetValidationCacheDataEXT_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkGetValidationCacheDataEXT( |
| VkDevice device, |
| VkValidationCacheEXT validationCache, |
| size_t* pDataSize, |
| void* pData) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_EXT_validation_cache")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetValidationCacheDataEXT", "VK_EXT_validation_cache"); |
| } |
| AEMU_SCOPED_TRACE("vkGetValidationCacheDataEXT"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetValidationCacheDataEXT_VkResult_return = (VkResult)0; |
| vkGetValidationCacheDataEXT_VkResult_return = vkEnc->vkGetValidationCacheDataEXT(device, validationCache, pDataSize, pData, true /* do lock */); |
| return vkGetValidationCacheDataEXT_VkResult_return; |
| } |
| #endif |
| #ifdef VK_EXT_descriptor_indexing |
| #endif |
| #ifdef VK_EXT_shader_viewport_index_layer |
| #endif |
| #ifdef VK_NV_shading_rate_image |
| static void entry_vkCmdBindShadingRateImageNV( |
| VkCommandBuffer commandBuffer, |
| VkImageView imageView, |
| VkImageLayout imageLayout) |
| { |
| AEMU_SCOPED_TRACE("vkCmdBindShadingRateImageNV"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdBindShadingRateImageNV(commandBuffer, imageView, imageLayout, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdBindShadingRateImageNV( |
| VkCommandBuffer commandBuffer, |
| VkImageView imageView, |
| VkImageLayout imageLayout) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_NV_shading_rate_image")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdBindShadingRateImageNV", "VK_NV_shading_rate_image"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdBindShadingRateImageNV"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdBindShadingRateImageNV(commandBuffer, imageView, imageLayout, true /* do lock */); |
| } |
| static void entry_vkCmdSetViewportShadingRatePaletteNV( |
| VkCommandBuffer commandBuffer, |
| uint32_t firstViewport, |
| uint32_t viewportCount, |
| const VkShadingRatePaletteNV* pShadingRatePalettes) |
| { |
| AEMU_SCOPED_TRACE("vkCmdSetViewportShadingRatePaletteNV"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSetViewportShadingRatePaletteNV(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdSetViewportShadingRatePaletteNV( |
| VkCommandBuffer commandBuffer, |
| uint32_t firstViewport, |
| uint32_t viewportCount, |
| const VkShadingRatePaletteNV* pShadingRatePalettes) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_NV_shading_rate_image")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdSetViewportShadingRatePaletteNV", "VK_NV_shading_rate_image"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdSetViewportShadingRatePaletteNV"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSetViewportShadingRatePaletteNV(commandBuffer, firstViewport, viewportCount, pShadingRatePalettes, true /* do lock */); |
| } |
| static void entry_vkCmdSetCoarseSampleOrderNV( |
| VkCommandBuffer commandBuffer, |
| VkCoarseSampleOrderTypeNV sampleOrderType, |
| uint32_t customSampleOrderCount, |
| const VkCoarseSampleOrderCustomNV* pCustomSampleOrders) |
| { |
| AEMU_SCOPED_TRACE("vkCmdSetCoarseSampleOrderNV"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSetCoarseSampleOrderNV(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdSetCoarseSampleOrderNV( |
| VkCommandBuffer commandBuffer, |
| VkCoarseSampleOrderTypeNV sampleOrderType, |
| uint32_t customSampleOrderCount, |
| const VkCoarseSampleOrderCustomNV* pCustomSampleOrders) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_NV_shading_rate_image")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdSetCoarseSampleOrderNV", "VK_NV_shading_rate_image"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdSetCoarseSampleOrderNV"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSetCoarseSampleOrderNV(commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders, true /* do lock */); |
| } |
| #endif |
| #ifdef VK_NV_ray_tracing |
| static VkResult entry_vkCreateAccelerationStructureNV( |
| VkDevice device, |
| const VkAccelerationStructureCreateInfoNV* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkAccelerationStructureNV* pAccelerationStructure) |
| { |
| AEMU_SCOPED_TRACE("vkCreateAccelerationStructureNV"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateAccelerationStructureNV_VkResult_return = (VkResult)0; |
| vkCreateAccelerationStructureNV_VkResult_return = vkEnc->vkCreateAccelerationStructureNV(device, pCreateInfo, pAllocator, pAccelerationStructure, true /* do lock */); |
| return vkCreateAccelerationStructureNV_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkCreateAccelerationStructureNV( |
| VkDevice device, |
| const VkAccelerationStructureCreateInfoNV* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkAccelerationStructureNV* pAccelerationStructure) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_NV_ray_tracing")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCreateAccelerationStructureNV", "VK_NV_ray_tracing"); |
| } |
| AEMU_SCOPED_TRACE("vkCreateAccelerationStructureNV"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateAccelerationStructureNV_VkResult_return = (VkResult)0; |
| vkCreateAccelerationStructureNV_VkResult_return = vkEnc->vkCreateAccelerationStructureNV(device, pCreateInfo, pAllocator, pAccelerationStructure, true /* do lock */); |
| return vkCreateAccelerationStructureNV_VkResult_return; |
| } |
| static void entry_vkDestroyAccelerationStructureNV( |
| VkDevice device, |
| VkAccelerationStructureNV accelerationStructure, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AEMU_SCOPED_TRACE("vkDestroyAccelerationStructureNV"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkDestroyAccelerationStructureNV(device, accelerationStructure, pAllocator, true /* do lock */); |
| } |
| static void dynCheck_entry_vkDestroyAccelerationStructureNV( |
| VkDevice device, |
| VkAccelerationStructureNV accelerationStructure, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_NV_ray_tracing")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkDestroyAccelerationStructureNV", "VK_NV_ray_tracing"); |
| } |
| AEMU_SCOPED_TRACE("vkDestroyAccelerationStructureNV"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkDestroyAccelerationStructureNV(device, accelerationStructure, pAllocator, true /* do lock */); |
| } |
| static void entry_vkGetAccelerationStructureMemoryRequirementsNV( |
| VkDevice device, |
| const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo, |
| VkMemoryRequirements2KHR* pMemoryRequirements) |
| { |
| AEMU_SCOPED_TRACE("vkGetAccelerationStructureMemoryRequirementsNV"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkGetAccelerationStructureMemoryRequirementsNV(device, pInfo, pMemoryRequirements, true /* do lock */); |
| } |
| static void dynCheck_entry_vkGetAccelerationStructureMemoryRequirementsNV( |
| VkDevice device, |
| const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo, |
| VkMemoryRequirements2KHR* pMemoryRequirements) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_NV_ray_tracing")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetAccelerationStructureMemoryRequirementsNV", "VK_NV_ray_tracing"); |
| } |
| AEMU_SCOPED_TRACE("vkGetAccelerationStructureMemoryRequirementsNV"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkGetAccelerationStructureMemoryRequirementsNV(device, pInfo, pMemoryRequirements, true /* do lock */); |
| } |
| static VkResult entry_vkBindAccelerationStructureMemoryNV( |
| VkDevice device, |
| uint32_t bindInfoCount, |
| const VkBindAccelerationStructureMemoryInfoNV* pBindInfos) |
| { |
| AEMU_SCOPED_TRACE("vkBindAccelerationStructureMemoryNV"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkBindAccelerationStructureMemoryNV_VkResult_return = (VkResult)0; |
| vkBindAccelerationStructureMemoryNV_VkResult_return = vkEnc->vkBindAccelerationStructureMemoryNV(device, bindInfoCount, pBindInfos, true /* do lock */); |
| return vkBindAccelerationStructureMemoryNV_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkBindAccelerationStructureMemoryNV( |
| VkDevice device, |
| uint32_t bindInfoCount, |
| const VkBindAccelerationStructureMemoryInfoNV* pBindInfos) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_NV_ray_tracing")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkBindAccelerationStructureMemoryNV", "VK_NV_ray_tracing"); |
| } |
| AEMU_SCOPED_TRACE("vkBindAccelerationStructureMemoryNV"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkBindAccelerationStructureMemoryNV_VkResult_return = (VkResult)0; |
| vkBindAccelerationStructureMemoryNV_VkResult_return = vkEnc->vkBindAccelerationStructureMemoryNV(device, bindInfoCount, pBindInfos, true /* do lock */); |
| return vkBindAccelerationStructureMemoryNV_VkResult_return; |
| } |
| static void entry_vkCmdBuildAccelerationStructureNV( |
| VkCommandBuffer commandBuffer, |
| const VkAccelerationStructureInfoNV* pInfo, |
| VkBuffer instanceData, |
| VkDeviceSize instanceOffset, |
| VkBool32 update, |
| VkAccelerationStructureNV dst, |
| VkAccelerationStructureNV src, |
| VkBuffer scratch, |
| VkDeviceSize scratchOffset) |
| { |
| AEMU_SCOPED_TRACE("vkCmdBuildAccelerationStructureNV"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdBuildAccelerationStructureNV(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdBuildAccelerationStructureNV( |
| VkCommandBuffer commandBuffer, |
| const VkAccelerationStructureInfoNV* pInfo, |
| VkBuffer instanceData, |
| VkDeviceSize instanceOffset, |
| VkBool32 update, |
| VkAccelerationStructureNV dst, |
| VkAccelerationStructureNV src, |
| VkBuffer scratch, |
| VkDeviceSize scratchOffset) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_NV_ray_tracing")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdBuildAccelerationStructureNV", "VK_NV_ray_tracing"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdBuildAccelerationStructureNV"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdBuildAccelerationStructureNV(commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset, true /* do lock */); |
| } |
| static void entry_vkCmdCopyAccelerationStructureNV( |
| VkCommandBuffer commandBuffer, |
| VkAccelerationStructureNV dst, |
| VkAccelerationStructureNV src, |
| VkCopyAccelerationStructureModeKHR mode) |
| { |
| AEMU_SCOPED_TRACE("vkCmdCopyAccelerationStructureNV"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdCopyAccelerationStructureNV(commandBuffer, dst, src, mode, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdCopyAccelerationStructureNV( |
| VkCommandBuffer commandBuffer, |
| VkAccelerationStructureNV dst, |
| VkAccelerationStructureNV src, |
| VkCopyAccelerationStructureModeKHR mode) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_NV_ray_tracing")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdCopyAccelerationStructureNV", "VK_NV_ray_tracing"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdCopyAccelerationStructureNV"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdCopyAccelerationStructureNV(commandBuffer, dst, src, mode, true /* do lock */); |
| } |
| static void entry_vkCmdTraceRaysNV( |
| VkCommandBuffer commandBuffer, |
| VkBuffer raygenShaderBindingTableBuffer, |
| VkDeviceSize raygenShaderBindingOffset, |
| VkBuffer missShaderBindingTableBuffer, |
| VkDeviceSize missShaderBindingOffset, |
| VkDeviceSize missShaderBindingStride, |
| VkBuffer hitShaderBindingTableBuffer, |
| VkDeviceSize hitShaderBindingOffset, |
| VkDeviceSize hitShaderBindingStride, |
| VkBuffer callableShaderBindingTableBuffer, |
| VkDeviceSize callableShaderBindingOffset, |
| VkDeviceSize callableShaderBindingStride, |
| uint32_t width, |
| uint32_t height, |
| uint32_t depth) |
| { |
| AEMU_SCOPED_TRACE("vkCmdTraceRaysNV"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdTraceRaysNV(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdTraceRaysNV( |
| VkCommandBuffer commandBuffer, |
| VkBuffer raygenShaderBindingTableBuffer, |
| VkDeviceSize raygenShaderBindingOffset, |
| VkBuffer missShaderBindingTableBuffer, |
| VkDeviceSize missShaderBindingOffset, |
| VkDeviceSize missShaderBindingStride, |
| VkBuffer hitShaderBindingTableBuffer, |
| VkDeviceSize hitShaderBindingOffset, |
| VkDeviceSize hitShaderBindingStride, |
| VkBuffer callableShaderBindingTableBuffer, |
| VkDeviceSize callableShaderBindingOffset, |
| VkDeviceSize callableShaderBindingStride, |
| uint32_t width, |
| uint32_t height, |
| uint32_t depth) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_NV_ray_tracing")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdTraceRaysNV", "VK_NV_ray_tracing"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdTraceRaysNV"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdTraceRaysNV(commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth, true /* do lock */); |
| } |
| static VkResult entry_vkCreateRayTracingPipelinesNV( |
| VkDevice device, |
| VkPipelineCache pipelineCache, |
| uint32_t createInfoCount, |
| const VkRayTracingPipelineCreateInfoNV* pCreateInfos, |
| const VkAllocationCallbacks* pAllocator, |
| VkPipeline* pPipelines) |
| { |
| AEMU_SCOPED_TRACE("vkCreateRayTracingPipelinesNV"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateRayTracingPipelinesNV_VkResult_return = (VkResult)0; |
| vkCreateRayTracingPipelinesNV_VkResult_return = vkEnc->vkCreateRayTracingPipelinesNV(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines, true /* do lock */); |
| return vkCreateRayTracingPipelinesNV_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkCreateRayTracingPipelinesNV( |
| VkDevice device, |
| VkPipelineCache pipelineCache, |
| uint32_t createInfoCount, |
| const VkRayTracingPipelineCreateInfoNV* pCreateInfos, |
| const VkAllocationCallbacks* pAllocator, |
| VkPipeline* pPipelines) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_NV_ray_tracing")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCreateRayTracingPipelinesNV", "VK_NV_ray_tracing"); |
| } |
| AEMU_SCOPED_TRACE("vkCreateRayTracingPipelinesNV"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateRayTracingPipelinesNV_VkResult_return = (VkResult)0; |
| vkCreateRayTracingPipelinesNV_VkResult_return = vkEnc->vkCreateRayTracingPipelinesNV(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines, true /* do lock */); |
| return vkCreateRayTracingPipelinesNV_VkResult_return; |
| } |
| static VkResult entry_vkGetRayTracingShaderGroupHandlesKHR( |
| VkDevice device, |
| VkPipeline pipeline, |
| uint32_t firstGroup, |
| uint32_t groupCount, |
| size_t dataSize, |
| void* pData) |
| { |
| AEMU_SCOPED_TRACE("vkGetRayTracingShaderGroupHandlesKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetRayTracingShaderGroupHandlesKHR_VkResult_return = (VkResult)0; |
| vkGetRayTracingShaderGroupHandlesKHR_VkResult_return = vkEnc->vkGetRayTracingShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData, true /* do lock */); |
| return vkGetRayTracingShaderGroupHandlesKHR_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkGetRayTracingShaderGroupHandlesKHR( |
| VkDevice device, |
| VkPipeline pipeline, |
| uint32_t firstGroup, |
| uint32_t groupCount, |
| size_t dataSize, |
| void* pData) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_NV_ray_tracing")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetRayTracingShaderGroupHandlesKHR", "VK_NV_ray_tracing"); |
| } |
| AEMU_SCOPED_TRACE("vkGetRayTracingShaderGroupHandlesKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetRayTracingShaderGroupHandlesKHR_VkResult_return = (VkResult)0; |
| vkGetRayTracingShaderGroupHandlesKHR_VkResult_return = vkEnc->vkGetRayTracingShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData, true /* do lock */); |
| return vkGetRayTracingShaderGroupHandlesKHR_VkResult_return; |
| } |
| static VkResult entry_vkGetRayTracingShaderGroupHandlesNV( |
| VkDevice device, |
| VkPipeline pipeline, |
| uint32_t firstGroup, |
| uint32_t groupCount, |
| size_t dataSize, |
| void* pData) |
| { |
| AEMU_SCOPED_TRACE("vkGetRayTracingShaderGroupHandlesNV"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetRayTracingShaderGroupHandlesNV_VkResult_return = (VkResult)0; |
| vkGetRayTracingShaderGroupHandlesNV_VkResult_return = vkEnc->vkGetRayTracingShaderGroupHandlesNV(device, pipeline, firstGroup, groupCount, dataSize, pData, true /* do lock */); |
| return vkGetRayTracingShaderGroupHandlesNV_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkGetRayTracingShaderGroupHandlesNV( |
| VkDevice device, |
| VkPipeline pipeline, |
| uint32_t firstGroup, |
| uint32_t groupCount, |
| size_t dataSize, |
| void* pData) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_NV_ray_tracing")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetRayTracingShaderGroupHandlesNV", "VK_NV_ray_tracing"); |
| } |
| AEMU_SCOPED_TRACE("vkGetRayTracingShaderGroupHandlesNV"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetRayTracingShaderGroupHandlesNV_VkResult_return = (VkResult)0; |
| vkGetRayTracingShaderGroupHandlesNV_VkResult_return = vkEnc->vkGetRayTracingShaderGroupHandlesNV(device, pipeline, firstGroup, groupCount, dataSize, pData, true /* do lock */); |
| return vkGetRayTracingShaderGroupHandlesNV_VkResult_return; |
| } |
| static VkResult entry_vkGetAccelerationStructureHandleNV( |
| VkDevice device, |
| VkAccelerationStructureNV accelerationStructure, |
| size_t dataSize, |
| void* pData) |
| { |
| AEMU_SCOPED_TRACE("vkGetAccelerationStructureHandleNV"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetAccelerationStructureHandleNV_VkResult_return = (VkResult)0; |
| vkGetAccelerationStructureHandleNV_VkResult_return = vkEnc->vkGetAccelerationStructureHandleNV(device, accelerationStructure, dataSize, pData, true /* do lock */); |
| return vkGetAccelerationStructureHandleNV_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkGetAccelerationStructureHandleNV( |
| VkDevice device, |
| VkAccelerationStructureNV accelerationStructure, |
| size_t dataSize, |
| void* pData) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_NV_ray_tracing")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetAccelerationStructureHandleNV", "VK_NV_ray_tracing"); |
| } |
| AEMU_SCOPED_TRACE("vkGetAccelerationStructureHandleNV"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetAccelerationStructureHandleNV_VkResult_return = (VkResult)0; |
| vkGetAccelerationStructureHandleNV_VkResult_return = vkEnc->vkGetAccelerationStructureHandleNV(device, accelerationStructure, dataSize, pData, true /* do lock */); |
| return vkGetAccelerationStructureHandleNV_VkResult_return; |
| } |
| static void entry_vkCmdWriteAccelerationStructuresPropertiesNV( |
| VkCommandBuffer commandBuffer, |
| uint32_t accelerationStructureCount, |
| const VkAccelerationStructureNV* pAccelerationStructures, |
| VkQueryType queryType, |
| VkQueryPool queryPool, |
| uint32_t firstQuery) |
| { |
| AEMU_SCOPED_TRACE("vkCmdWriteAccelerationStructuresPropertiesNV"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdWriteAccelerationStructuresPropertiesNV(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdWriteAccelerationStructuresPropertiesNV( |
| VkCommandBuffer commandBuffer, |
| uint32_t accelerationStructureCount, |
| const VkAccelerationStructureNV* pAccelerationStructures, |
| VkQueryType queryType, |
| VkQueryPool queryPool, |
| uint32_t firstQuery) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_NV_ray_tracing")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdWriteAccelerationStructuresPropertiesNV", "VK_NV_ray_tracing"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdWriteAccelerationStructuresPropertiesNV"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdWriteAccelerationStructuresPropertiesNV(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery, true /* do lock */); |
| } |
| static VkResult entry_vkCompileDeferredNV( |
| VkDevice device, |
| VkPipeline pipeline, |
| uint32_t shader) |
| { |
| AEMU_SCOPED_TRACE("vkCompileDeferredNV"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCompileDeferredNV_VkResult_return = (VkResult)0; |
| vkCompileDeferredNV_VkResult_return = vkEnc->vkCompileDeferredNV(device, pipeline, shader, true /* do lock */); |
| return vkCompileDeferredNV_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkCompileDeferredNV( |
| VkDevice device, |
| VkPipeline pipeline, |
| uint32_t shader) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_NV_ray_tracing")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCompileDeferredNV", "VK_NV_ray_tracing"); |
| } |
| AEMU_SCOPED_TRACE("vkCompileDeferredNV"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCompileDeferredNV_VkResult_return = (VkResult)0; |
| vkCompileDeferredNV_VkResult_return = vkEnc->vkCompileDeferredNV(device, pipeline, shader, true /* do lock */); |
| return vkCompileDeferredNV_VkResult_return; |
| } |
| #endif |
| #ifdef VK_NV_representative_fragment_test |
| #endif |
| #ifdef VK_EXT_filter_cubic |
| #endif |
| #ifdef VK_QCOM_render_pass_shader_resolve |
| #endif |
| #ifdef VK_EXT_global_priority |
| #endif |
| #ifdef VK_EXT_external_memory_host |
| static VkResult entry_vkGetMemoryHostPointerPropertiesEXT( |
| VkDevice device, |
| VkExternalMemoryHandleTypeFlagBits handleType, |
| const void* pHostPointer, |
| VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties) |
| { |
| AEMU_SCOPED_TRACE("vkGetMemoryHostPointerPropertiesEXT"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetMemoryHostPointerPropertiesEXT_VkResult_return = (VkResult)0; |
| vkGetMemoryHostPointerPropertiesEXT_VkResult_return = vkEnc->vkGetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties, true /* do lock */); |
| return vkGetMemoryHostPointerPropertiesEXT_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkGetMemoryHostPointerPropertiesEXT( |
| VkDevice device, |
| VkExternalMemoryHandleTypeFlagBits handleType, |
| const void* pHostPointer, |
| VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_EXT_external_memory_host")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetMemoryHostPointerPropertiesEXT", "VK_EXT_external_memory_host"); |
| } |
| AEMU_SCOPED_TRACE("vkGetMemoryHostPointerPropertiesEXT"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetMemoryHostPointerPropertiesEXT_VkResult_return = (VkResult)0; |
| vkGetMemoryHostPointerPropertiesEXT_VkResult_return = vkEnc->vkGetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties, true /* do lock */); |
| return vkGetMemoryHostPointerPropertiesEXT_VkResult_return; |
| } |
| #endif |
| #ifdef VK_AMD_buffer_marker |
| static void entry_vkCmdWriteBufferMarkerAMD( |
| VkCommandBuffer commandBuffer, |
| VkPipelineStageFlagBits pipelineStage, |
| VkBuffer dstBuffer, |
| VkDeviceSize dstOffset, |
| uint32_t marker) |
| { |
| AEMU_SCOPED_TRACE("vkCmdWriteBufferMarkerAMD"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdWriteBufferMarkerAMD( |
| VkCommandBuffer commandBuffer, |
| VkPipelineStageFlagBits pipelineStage, |
| VkBuffer dstBuffer, |
| VkDeviceSize dstOffset, |
| uint32_t marker) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_AMD_buffer_marker")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdWriteBufferMarkerAMD", "VK_AMD_buffer_marker"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdWriteBufferMarkerAMD"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker, true /* do lock */); |
| } |
| #endif |
| #ifdef VK_AMD_pipeline_compiler_control |
| #endif |
| #ifdef VK_EXT_calibrated_timestamps |
| static VkResult entry_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( |
| VkPhysicalDevice physicalDevice, |
| uint32_t* pTimeDomainCount, |
| VkTimeDomainEXT* pTimeDomains) |
| { |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceCalibrateableTimeDomainsEXT"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetPhysicalDeviceCalibrateableTimeDomainsEXT_VkResult_return = (VkResult)0; |
| vkGetPhysicalDeviceCalibrateableTimeDomainsEXT_VkResult_return = vkEnc->vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(physicalDevice, pTimeDomainCount, pTimeDomains, true /* do lock */); |
| return vkGetPhysicalDeviceCalibrateableTimeDomainsEXT_VkResult_return; |
| } |
| static VkResult entry_vkGetCalibratedTimestampsEXT( |
| VkDevice device, |
| uint32_t timestampCount, |
| const VkCalibratedTimestampInfoEXT* pTimestampInfos, |
| uint64_t* pTimestamps, |
| uint64_t* pMaxDeviation) |
| { |
| AEMU_SCOPED_TRACE("vkGetCalibratedTimestampsEXT"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetCalibratedTimestampsEXT_VkResult_return = (VkResult)0; |
| vkGetCalibratedTimestampsEXT_VkResult_return = vkEnc->vkGetCalibratedTimestampsEXT(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation, true /* do lock */); |
| return vkGetCalibratedTimestampsEXT_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkGetCalibratedTimestampsEXT( |
| VkDevice device, |
| uint32_t timestampCount, |
| const VkCalibratedTimestampInfoEXT* pTimestampInfos, |
| uint64_t* pTimestamps, |
| uint64_t* pMaxDeviation) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_EXT_calibrated_timestamps")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetCalibratedTimestampsEXT", "VK_EXT_calibrated_timestamps"); |
| } |
| AEMU_SCOPED_TRACE("vkGetCalibratedTimestampsEXT"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetCalibratedTimestampsEXT_VkResult_return = (VkResult)0; |
| vkGetCalibratedTimestampsEXT_VkResult_return = vkEnc->vkGetCalibratedTimestampsEXT(device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation, true /* do lock */); |
| return vkGetCalibratedTimestampsEXT_VkResult_return; |
| } |
| #endif |
| #ifdef VK_AMD_shader_core_properties |
| #endif |
| #ifdef VK_EXT_video_decode_h265 |
| #endif |
| #ifdef VK_AMD_memory_overallocation_behavior |
| #endif |
| #ifdef VK_EXT_vertex_attribute_divisor |
| #endif |
| #ifdef VK_GGP_frame_token |
| #endif |
| #ifdef VK_EXT_pipeline_creation_feedback |
| #endif |
| #ifdef VK_NV_shader_subgroup_partitioned |
| #endif |
| #ifdef VK_NV_compute_shader_derivatives |
| #endif |
| #ifdef VK_NV_mesh_shader |
| static void entry_vkCmdDrawMeshTasksNV( |
| VkCommandBuffer commandBuffer, |
| uint32_t taskCount, |
| uint32_t firstTask) |
| { |
| AEMU_SCOPED_TRACE("vkCmdDrawMeshTasksNV"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdDrawMeshTasksNV(commandBuffer, taskCount, firstTask, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdDrawMeshTasksNV( |
| VkCommandBuffer commandBuffer, |
| uint32_t taskCount, |
| uint32_t firstTask) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_NV_mesh_shader")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdDrawMeshTasksNV", "VK_NV_mesh_shader"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdDrawMeshTasksNV"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdDrawMeshTasksNV(commandBuffer, taskCount, firstTask, true /* do lock */); |
| } |
| static void entry_vkCmdDrawMeshTasksIndirectNV( |
| VkCommandBuffer commandBuffer, |
| VkBuffer buffer, |
| VkDeviceSize offset, |
| uint32_t drawCount, |
| uint32_t stride) |
| { |
| AEMU_SCOPED_TRACE("vkCmdDrawMeshTasksIndirectNV"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdDrawMeshTasksIndirectNV(commandBuffer, buffer, offset, drawCount, stride, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdDrawMeshTasksIndirectNV( |
| VkCommandBuffer commandBuffer, |
| VkBuffer buffer, |
| VkDeviceSize offset, |
| uint32_t drawCount, |
| uint32_t stride) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_NV_mesh_shader")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdDrawMeshTasksIndirectNV", "VK_NV_mesh_shader"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdDrawMeshTasksIndirectNV"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdDrawMeshTasksIndirectNV(commandBuffer, buffer, offset, drawCount, stride, true /* do lock */); |
| } |
| static void entry_vkCmdDrawMeshTasksIndirectCountNV( |
| VkCommandBuffer commandBuffer, |
| VkBuffer buffer, |
| VkDeviceSize offset, |
| VkBuffer countBuffer, |
| VkDeviceSize countBufferOffset, |
| uint32_t maxDrawCount, |
| uint32_t stride) |
| { |
| AEMU_SCOPED_TRACE("vkCmdDrawMeshTasksIndirectCountNV"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdDrawMeshTasksIndirectCountNV(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdDrawMeshTasksIndirectCountNV( |
| VkCommandBuffer commandBuffer, |
| VkBuffer buffer, |
| VkDeviceSize offset, |
| VkBuffer countBuffer, |
| VkDeviceSize countBufferOffset, |
| uint32_t maxDrawCount, |
| uint32_t stride) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_NV_mesh_shader")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdDrawMeshTasksIndirectCountNV", "VK_NV_mesh_shader"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdDrawMeshTasksIndirectCountNV"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdDrawMeshTasksIndirectCountNV(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride, true /* do lock */); |
| } |
| #endif |
| #ifdef VK_NV_fragment_shader_barycentric |
| #endif |
| #ifdef VK_NV_shader_image_footprint |
| #endif |
| #ifdef VK_NV_scissor_exclusive |
| static void entry_vkCmdSetExclusiveScissorNV( |
| VkCommandBuffer commandBuffer, |
| uint32_t firstExclusiveScissor, |
| uint32_t exclusiveScissorCount, |
| const VkRect2D* pExclusiveScissors) |
| { |
| AEMU_SCOPED_TRACE("vkCmdSetExclusiveScissorNV"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSetExclusiveScissorNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdSetExclusiveScissorNV( |
| VkCommandBuffer commandBuffer, |
| uint32_t firstExclusiveScissor, |
| uint32_t exclusiveScissorCount, |
| const VkRect2D* pExclusiveScissors) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_NV_scissor_exclusive")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdSetExclusiveScissorNV", "VK_NV_scissor_exclusive"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdSetExclusiveScissorNV"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSetExclusiveScissorNV(commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors, true /* do lock */); |
| } |
| #endif |
| #ifdef VK_NV_device_diagnostic_checkpoints |
| static void entry_vkCmdSetCheckpointNV( |
| VkCommandBuffer commandBuffer, |
| const void* pCheckpointMarker) |
| { |
| AEMU_SCOPED_TRACE("vkCmdSetCheckpointNV"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdSetCheckpointNV( |
| VkCommandBuffer commandBuffer, |
| const void* pCheckpointMarker) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_NV_device_diagnostic_checkpoints")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdSetCheckpointNV", "VK_NV_device_diagnostic_checkpoints"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdSetCheckpointNV"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker, true /* do lock */); |
| } |
| static void entry_vkGetQueueCheckpointDataNV( |
| VkQueue queue, |
| uint32_t* pCheckpointDataCount, |
| VkCheckpointDataNV* pCheckpointData) |
| { |
| AEMU_SCOPED_TRACE("vkGetQueueCheckpointDataNV"); |
| auto vkEnc = ResourceTracker::getQueueEncoder(queue); |
| vkEnc->vkGetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData, true /* do lock */); |
| } |
| #endif |
| #ifdef VK_INTEL_shader_integer_functions2 |
| #endif |
| #ifdef VK_INTEL_performance_query |
| static VkResult entry_vkInitializePerformanceApiINTEL( |
| VkDevice device, |
| const VkInitializePerformanceApiInfoINTEL* pInitializeInfo) |
| { |
| AEMU_SCOPED_TRACE("vkInitializePerformanceApiINTEL"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkInitializePerformanceApiINTEL_VkResult_return = (VkResult)0; |
| vkInitializePerformanceApiINTEL_VkResult_return = vkEnc->vkInitializePerformanceApiINTEL(device, pInitializeInfo, true /* do lock */); |
| return vkInitializePerformanceApiINTEL_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkInitializePerformanceApiINTEL( |
| VkDevice device, |
| const VkInitializePerformanceApiInfoINTEL* pInitializeInfo) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_INTEL_performance_query")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkInitializePerformanceApiINTEL", "VK_INTEL_performance_query"); |
| } |
| AEMU_SCOPED_TRACE("vkInitializePerformanceApiINTEL"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkInitializePerformanceApiINTEL_VkResult_return = (VkResult)0; |
| vkInitializePerformanceApiINTEL_VkResult_return = vkEnc->vkInitializePerformanceApiINTEL(device, pInitializeInfo, true /* do lock */); |
| return vkInitializePerformanceApiINTEL_VkResult_return; |
| } |
| static void entry_vkUninitializePerformanceApiINTEL( |
| VkDevice device) |
| { |
| AEMU_SCOPED_TRACE("vkUninitializePerformanceApiINTEL"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkUninitializePerformanceApiINTEL(device, true /* do lock */); |
| } |
| static void dynCheck_entry_vkUninitializePerformanceApiINTEL( |
| VkDevice device) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_INTEL_performance_query")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkUninitializePerformanceApiINTEL", "VK_INTEL_performance_query"); |
| } |
| AEMU_SCOPED_TRACE("vkUninitializePerformanceApiINTEL"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkUninitializePerformanceApiINTEL(device, true /* do lock */); |
| } |
| static VkResult entry_vkCmdSetPerformanceMarkerINTEL( |
| VkCommandBuffer commandBuffer, |
| const VkPerformanceMarkerInfoINTEL* pMarkerInfo) |
| { |
| AEMU_SCOPED_TRACE("vkCmdSetPerformanceMarkerINTEL"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| VkResult vkCmdSetPerformanceMarkerINTEL_VkResult_return = (VkResult)0; |
| vkCmdSetPerformanceMarkerINTEL_VkResult_return = vkEnc->vkCmdSetPerformanceMarkerINTEL(commandBuffer, pMarkerInfo, true /* do lock */); |
| return vkCmdSetPerformanceMarkerINTEL_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkCmdSetPerformanceMarkerINTEL( |
| VkCommandBuffer commandBuffer, |
| const VkPerformanceMarkerInfoINTEL* pMarkerInfo) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_INTEL_performance_query")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdSetPerformanceMarkerINTEL", "VK_INTEL_performance_query"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdSetPerformanceMarkerINTEL"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| VkResult vkCmdSetPerformanceMarkerINTEL_VkResult_return = (VkResult)0; |
| vkCmdSetPerformanceMarkerINTEL_VkResult_return = vkEnc->vkCmdSetPerformanceMarkerINTEL(commandBuffer, pMarkerInfo, true /* do lock */); |
| return vkCmdSetPerformanceMarkerINTEL_VkResult_return; |
| } |
| static VkResult entry_vkCmdSetPerformanceStreamMarkerINTEL( |
| VkCommandBuffer commandBuffer, |
| const VkPerformanceStreamMarkerInfoINTEL* pMarkerInfo) |
| { |
| AEMU_SCOPED_TRACE("vkCmdSetPerformanceStreamMarkerINTEL"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| VkResult vkCmdSetPerformanceStreamMarkerINTEL_VkResult_return = (VkResult)0; |
| vkCmdSetPerformanceStreamMarkerINTEL_VkResult_return = vkEnc->vkCmdSetPerformanceStreamMarkerINTEL(commandBuffer, pMarkerInfo, true /* do lock */); |
| return vkCmdSetPerformanceStreamMarkerINTEL_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkCmdSetPerformanceStreamMarkerINTEL( |
| VkCommandBuffer commandBuffer, |
| const VkPerformanceStreamMarkerInfoINTEL* pMarkerInfo) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_INTEL_performance_query")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdSetPerformanceStreamMarkerINTEL", "VK_INTEL_performance_query"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdSetPerformanceStreamMarkerINTEL"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| VkResult vkCmdSetPerformanceStreamMarkerINTEL_VkResult_return = (VkResult)0; |
| vkCmdSetPerformanceStreamMarkerINTEL_VkResult_return = vkEnc->vkCmdSetPerformanceStreamMarkerINTEL(commandBuffer, pMarkerInfo, true /* do lock */); |
| return vkCmdSetPerformanceStreamMarkerINTEL_VkResult_return; |
| } |
| static VkResult entry_vkCmdSetPerformanceOverrideINTEL( |
| VkCommandBuffer commandBuffer, |
| const VkPerformanceOverrideInfoINTEL* pOverrideInfo) |
| { |
| AEMU_SCOPED_TRACE("vkCmdSetPerformanceOverrideINTEL"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| VkResult vkCmdSetPerformanceOverrideINTEL_VkResult_return = (VkResult)0; |
| vkCmdSetPerformanceOverrideINTEL_VkResult_return = vkEnc->vkCmdSetPerformanceOverrideINTEL(commandBuffer, pOverrideInfo, true /* do lock */); |
| return vkCmdSetPerformanceOverrideINTEL_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkCmdSetPerformanceOverrideINTEL( |
| VkCommandBuffer commandBuffer, |
| const VkPerformanceOverrideInfoINTEL* pOverrideInfo) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_INTEL_performance_query")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdSetPerformanceOverrideINTEL", "VK_INTEL_performance_query"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdSetPerformanceOverrideINTEL"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| VkResult vkCmdSetPerformanceOverrideINTEL_VkResult_return = (VkResult)0; |
| vkCmdSetPerformanceOverrideINTEL_VkResult_return = vkEnc->vkCmdSetPerformanceOverrideINTEL(commandBuffer, pOverrideInfo, true /* do lock */); |
| return vkCmdSetPerformanceOverrideINTEL_VkResult_return; |
| } |
| static VkResult entry_vkAcquirePerformanceConfigurationINTEL( |
| VkDevice device, |
| const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo, |
| VkPerformanceConfigurationINTEL* pConfiguration) |
| { |
| AEMU_SCOPED_TRACE("vkAcquirePerformanceConfigurationINTEL"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkAcquirePerformanceConfigurationINTEL_VkResult_return = (VkResult)0; |
| vkAcquirePerformanceConfigurationINTEL_VkResult_return = vkEnc->vkAcquirePerformanceConfigurationINTEL(device, pAcquireInfo, pConfiguration, true /* do lock */); |
| return vkAcquirePerformanceConfigurationINTEL_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkAcquirePerformanceConfigurationINTEL( |
| VkDevice device, |
| const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo, |
| VkPerformanceConfigurationINTEL* pConfiguration) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_INTEL_performance_query")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkAcquirePerformanceConfigurationINTEL", "VK_INTEL_performance_query"); |
| } |
| AEMU_SCOPED_TRACE("vkAcquirePerformanceConfigurationINTEL"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkAcquirePerformanceConfigurationINTEL_VkResult_return = (VkResult)0; |
| vkAcquirePerformanceConfigurationINTEL_VkResult_return = vkEnc->vkAcquirePerformanceConfigurationINTEL(device, pAcquireInfo, pConfiguration, true /* do lock */); |
| return vkAcquirePerformanceConfigurationINTEL_VkResult_return; |
| } |
| static VkResult entry_vkReleasePerformanceConfigurationINTEL( |
| VkDevice device, |
| VkPerformanceConfigurationINTEL configuration) |
| { |
| AEMU_SCOPED_TRACE("vkReleasePerformanceConfigurationINTEL"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkReleasePerformanceConfigurationINTEL_VkResult_return = (VkResult)0; |
| vkReleasePerformanceConfigurationINTEL_VkResult_return = vkEnc->vkReleasePerformanceConfigurationINTEL(device, configuration, true /* do lock */); |
| return vkReleasePerformanceConfigurationINTEL_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkReleasePerformanceConfigurationINTEL( |
| VkDevice device, |
| VkPerformanceConfigurationINTEL configuration) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_INTEL_performance_query")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkReleasePerformanceConfigurationINTEL", "VK_INTEL_performance_query"); |
| } |
| AEMU_SCOPED_TRACE("vkReleasePerformanceConfigurationINTEL"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkReleasePerformanceConfigurationINTEL_VkResult_return = (VkResult)0; |
| vkReleasePerformanceConfigurationINTEL_VkResult_return = vkEnc->vkReleasePerformanceConfigurationINTEL(device, configuration, true /* do lock */); |
| return vkReleasePerformanceConfigurationINTEL_VkResult_return; |
| } |
| static VkResult entry_vkQueueSetPerformanceConfigurationINTEL( |
| VkQueue queue, |
| VkPerformanceConfigurationINTEL configuration) |
| { |
| AEMU_SCOPED_TRACE("vkQueueSetPerformanceConfigurationINTEL"); |
| auto vkEnc = ResourceTracker::getQueueEncoder(queue); |
| VkResult vkQueueSetPerformanceConfigurationINTEL_VkResult_return = (VkResult)0; |
| vkQueueSetPerformanceConfigurationINTEL_VkResult_return = vkEnc->vkQueueSetPerformanceConfigurationINTEL(queue, configuration, true /* do lock */); |
| return vkQueueSetPerformanceConfigurationINTEL_VkResult_return; |
| } |
| static VkResult entry_vkGetPerformanceParameterINTEL( |
| VkDevice device, |
| VkPerformanceParameterTypeINTEL parameter, |
| VkPerformanceValueINTEL* pValue) |
| { |
| AEMU_SCOPED_TRACE("vkGetPerformanceParameterINTEL"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetPerformanceParameterINTEL_VkResult_return = (VkResult)0; |
| vkGetPerformanceParameterINTEL_VkResult_return = vkEnc->vkGetPerformanceParameterINTEL(device, parameter, pValue, true /* do lock */); |
| return vkGetPerformanceParameterINTEL_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkGetPerformanceParameterINTEL( |
| VkDevice device, |
| VkPerformanceParameterTypeINTEL parameter, |
| VkPerformanceValueINTEL* pValue) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_INTEL_performance_query")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetPerformanceParameterINTEL", "VK_INTEL_performance_query"); |
| } |
| AEMU_SCOPED_TRACE("vkGetPerformanceParameterINTEL"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetPerformanceParameterINTEL_VkResult_return = (VkResult)0; |
| vkGetPerformanceParameterINTEL_VkResult_return = vkEnc->vkGetPerformanceParameterINTEL(device, parameter, pValue, true /* do lock */); |
| return vkGetPerformanceParameterINTEL_VkResult_return; |
| } |
| #endif |
| #ifdef VK_EXT_pci_bus_info |
| #endif |
| #ifdef VK_AMD_display_native_hdr |
| static void entry_vkSetLocalDimmingAMD( |
| VkDevice device, |
| VkSwapchainKHR swapChain, |
| VkBool32 localDimmingEnable) |
| { |
| AEMU_SCOPED_TRACE("vkSetLocalDimmingAMD"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkSetLocalDimmingAMD(device, swapChain, localDimmingEnable, true /* do lock */); |
| } |
| static void dynCheck_entry_vkSetLocalDimmingAMD( |
| VkDevice device, |
| VkSwapchainKHR swapChain, |
| VkBool32 localDimmingEnable) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_AMD_display_native_hdr")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkSetLocalDimmingAMD", "VK_AMD_display_native_hdr"); |
| } |
| AEMU_SCOPED_TRACE("vkSetLocalDimmingAMD"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkSetLocalDimmingAMD(device, swapChain, localDimmingEnable, true /* do lock */); |
| } |
| #endif |
| #ifdef VK_FUCHSIA_imagepipe_surface |
| static VkResult entry_vkCreateImagePipeSurfaceFUCHSIA( |
| VkInstance instance, |
| const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkSurfaceKHR* pSurface) |
| { |
| AEMU_SCOPED_TRACE("vkCreateImagePipeSurfaceFUCHSIA"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateImagePipeSurfaceFUCHSIA_VkResult_return = (VkResult)0; |
| vkCreateImagePipeSurfaceFUCHSIA_VkResult_return = vkEnc->vkCreateImagePipeSurfaceFUCHSIA(instance, pCreateInfo, pAllocator, pSurface, true /* do lock */); |
| return vkCreateImagePipeSurfaceFUCHSIA_VkResult_return; |
| } |
| #endif |
| #ifdef VK_EXT_metal_surface |
| static VkResult entry_vkCreateMetalSurfaceEXT( |
| VkInstance instance, |
| const VkMetalSurfaceCreateInfoEXT* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkSurfaceKHR* pSurface) |
| { |
| AEMU_SCOPED_TRACE("vkCreateMetalSurfaceEXT"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateMetalSurfaceEXT_VkResult_return = (VkResult)0; |
| vkCreateMetalSurfaceEXT_VkResult_return = vkEnc->vkCreateMetalSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface, true /* do lock */); |
| return vkCreateMetalSurfaceEXT_VkResult_return; |
| } |
| #endif |
| #ifdef VK_EXT_fragment_density_map |
| #endif |
| #ifdef VK_EXT_scalar_block_layout |
| #endif |
| #ifdef VK_GOOGLE_hlsl_functionality1 |
| #endif |
| #ifdef VK_GOOGLE_decorate_string |
| #endif |
| #ifdef VK_EXT_subgroup_size_control |
| #endif |
| #ifdef VK_AMD_shader_core_properties2 |
| #endif |
| #ifdef VK_AMD_device_coherent_memory |
| #endif |
| #ifdef VK_EXT_shader_image_atomic_int64 |
| #endif |
| #ifdef VK_EXT_memory_budget |
| #endif |
| #ifdef VK_EXT_memory_priority |
| #endif |
| #ifdef VK_NV_dedicated_allocation_image_aliasing |
| #endif |
| #ifdef VK_EXT_buffer_device_address |
| static VkDeviceAddress entry_vkGetBufferDeviceAddressEXT( |
| VkDevice device, |
| const VkBufferDeviceAddressInfo* pInfo) |
| { |
| AEMU_SCOPED_TRACE("vkGetBufferDeviceAddressEXT"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkDeviceAddress vkGetBufferDeviceAddressEXT_VkDeviceAddress_return = (VkDeviceAddress)0; |
| vkGetBufferDeviceAddressEXT_VkDeviceAddress_return = vkEnc->vkGetBufferDeviceAddressEXT(device, pInfo, true /* do lock */); |
| return vkGetBufferDeviceAddressEXT_VkDeviceAddress_return; |
| } |
| static VkDeviceAddress dynCheck_entry_vkGetBufferDeviceAddressEXT( |
| VkDevice device, |
| const VkBufferDeviceAddressInfo* pInfo) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_EXT_buffer_device_address")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetBufferDeviceAddressEXT", "VK_EXT_buffer_device_address"); |
| } |
| AEMU_SCOPED_TRACE("vkGetBufferDeviceAddressEXT"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkDeviceAddress vkGetBufferDeviceAddressEXT_VkDeviceAddress_return = (VkDeviceAddress)0; |
| vkGetBufferDeviceAddressEXT_VkDeviceAddress_return = vkEnc->vkGetBufferDeviceAddressEXT(device, pInfo, true /* do lock */); |
| return vkGetBufferDeviceAddressEXT_VkDeviceAddress_return; |
| } |
| #endif |
| #ifdef VK_EXT_tooling_info |
| static VkResult entry_vkGetPhysicalDeviceToolPropertiesEXT( |
| VkPhysicalDevice physicalDevice, |
| uint32_t* pToolCount, |
| VkPhysicalDeviceToolPropertiesEXT* pToolProperties) |
| { |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceToolPropertiesEXT"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetPhysicalDeviceToolPropertiesEXT_VkResult_return = (VkResult)0; |
| vkGetPhysicalDeviceToolPropertiesEXT_VkResult_return = vkEnc->vkGetPhysicalDeviceToolPropertiesEXT(physicalDevice, pToolCount, pToolProperties, true /* do lock */); |
| return vkGetPhysicalDeviceToolPropertiesEXT_VkResult_return; |
| } |
| #endif |
| #ifdef VK_EXT_separate_stencil_usage |
| #endif |
| #ifdef VK_EXT_validation_features |
| #endif |
| #ifdef VK_NV_cooperative_matrix |
| static VkResult entry_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( |
| VkPhysicalDevice physicalDevice, |
| uint32_t* pPropertyCount, |
| VkCooperativeMatrixPropertiesNV* pProperties) |
| { |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceCooperativeMatrixPropertiesNV"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetPhysicalDeviceCooperativeMatrixPropertiesNV_VkResult_return = (VkResult)0; |
| vkGetPhysicalDeviceCooperativeMatrixPropertiesNV_VkResult_return = vkEnc->vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(physicalDevice, pPropertyCount, pProperties, true /* do lock */); |
| return vkGetPhysicalDeviceCooperativeMatrixPropertiesNV_VkResult_return; |
| } |
| #endif |
| #ifdef VK_NV_coverage_reduction_mode |
| static VkResult entry_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( |
| VkPhysicalDevice physicalDevice, |
| uint32_t* pCombinationCount, |
| VkFramebufferMixedSamplesCombinationNV* pCombinations) |
| { |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV_VkResult_return = (VkResult)0; |
| vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV_VkResult_return = vkEnc->vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(physicalDevice, pCombinationCount, pCombinations, true /* do lock */); |
| return vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV_VkResult_return; |
| } |
| #endif |
| #ifdef VK_EXT_fragment_shader_interlock |
| #endif |
| #ifdef VK_EXT_ycbcr_image_arrays |
| #endif |
| #ifdef VK_EXT_provoking_vertex |
| #endif |
| #ifdef VK_EXT_full_screen_exclusive |
| static VkResult entry_vkGetPhysicalDeviceSurfacePresentModes2EXT( |
| VkPhysicalDevice physicalDevice, |
| const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, |
| uint32_t* pPresentModeCount, |
| VkPresentModeKHR* pPresentModes) |
| { |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfacePresentModes2EXT"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetPhysicalDeviceSurfacePresentModes2EXT_VkResult_return = (VkResult)0; |
| vkGetPhysicalDeviceSurfacePresentModes2EXT_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfacePresentModes2EXT(physicalDevice, pSurfaceInfo, pPresentModeCount, pPresentModes, true /* do lock */); |
| return vkGetPhysicalDeviceSurfacePresentModes2EXT_VkResult_return; |
| } |
| static VkResult entry_vkAcquireFullScreenExclusiveModeEXT( |
| VkDevice device, |
| VkSwapchainKHR swapchain) |
| { |
| AEMU_SCOPED_TRACE("vkAcquireFullScreenExclusiveModeEXT"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkAcquireFullScreenExclusiveModeEXT_VkResult_return = (VkResult)0; |
| vkAcquireFullScreenExclusiveModeEXT_VkResult_return = vkEnc->vkAcquireFullScreenExclusiveModeEXT(device, swapchain, true /* do lock */); |
| return vkAcquireFullScreenExclusiveModeEXT_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkAcquireFullScreenExclusiveModeEXT( |
| VkDevice device, |
| VkSwapchainKHR swapchain) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_EXT_full_screen_exclusive")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkAcquireFullScreenExclusiveModeEXT", "VK_EXT_full_screen_exclusive"); |
| } |
| AEMU_SCOPED_TRACE("vkAcquireFullScreenExclusiveModeEXT"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkAcquireFullScreenExclusiveModeEXT_VkResult_return = (VkResult)0; |
| vkAcquireFullScreenExclusiveModeEXT_VkResult_return = vkEnc->vkAcquireFullScreenExclusiveModeEXT(device, swapchain, true /* do lock */); |
| return vkAcquireFullScreenExclusiveModeEXT_VkResult_return; |
| } |
| static VkResult entry_vkReleaseFullScreenExclusiveModeEXT( |
| VkDevice device, |
| VkSwapchainKHR swapchain) |
| { |
| AEMU_SCOPED_TRACE("vkReleaseFullScreenExclusiveModeEXT"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkReleaseFullScreenExclusiveModeEXT_VkResult_return = (VkResult)0; |
| vkReleaseFullScreenExclusiveModeEXT_VkResult_return = vkEnc->vkReleaseFullScreenExclusiveModeEXT(device, swapchain, true /* do lock */); |
| return vkReleaseFullScreenExclusiveModeEXT_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkReleaseFullScreenExclusiveModeEXT( |
| VkDevice device, |
| VkSwapchainKHR swapchain) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_EXT_full_screen_exclusive")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkReleaseFullScreenExclusiveModeEXT", "VK_EXT_full_screen_exclusive"); |
| } |
| AEMU_SCOPED_TRACE("vkReleaseFullScreenExclusiveModeEXT"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkReleaseFullScreenExclusiveModeEXT_VkResult_return = (VkResult)0; |
| vkReleaseFullScreenExclusiveModeEXT_VkResult_return = vkEnc->vkReleaseFullScreenExclusiveModeEXT(device, swapchain, true /* do lock */); |
| return vkReleaseFullScreenExclusiveModeEXT_VkResult_return; |
| } |
| static VkResult entry_vkGetDeviceGroupSurfacePresentModes2EXT( |
| VkDevice device, |
| const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, |
| VkDeviceGroupPresentModeFlagsKHR* pModes) |
| { |
| AEMU_SCOPED_TRACE("vkGetDeviceGroupSurfacePresentModes2EXT"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetDeviceGroupSurfacePresentModes2EXT_VkResult_return = (VkResult)0; |
| vkGetDeviceGroupSurfacePresentModes2EXT_VkResult_return = vkEnc->vkGetDeviceGroupSurfacePresentModes2EXT(device, pSurfaceInfo, pModes, true /* do lock */); |
| return vkGetDeviceGroupSurfacePresentModes2EXT_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkGetDeviceGroupSurfacePresentModes2EXT( |
| VkDevice device, |
| const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, |
| VkDeviceGroupPresentModeFlagsKHR* pModes) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_EXT_full_screen_exclusive")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetDeviceGroupSurfacePresentModes2EXT", "VK_EXT_full_screen_exclusive"); |
| } |
| AEMU_SCOPED_TRACE("vkGetDeviceGroupSurfacePresentModes2EXT"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetDeviceGroupSurfacePresentModes2EXT_VkResult_return = (VkResult)0; |
| vkGetDeviceGroupSurfacePresentModes2EXT_VkResult_return = vkEnc->vkGetDeviceGroupSurfacePresentModes2EXT(device, pSurfaceInfo, pModes, true /* do lock */); |
| return vkGetDeviceGroupSurfacePresentModes2EXT_VkResult_return; |
| } |
| #endif |
| #ifdef VK_EXT_headless_surface |
| static VkResult entry_vkCreateHeadlessSurfaceEXT( |
| VkInstance instance, |
| const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkSurfaceKHR* pSurface) |
| { |
| AEMU_SCOPED_TRACE("vkCreateHeadlessSurfaceEXT"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateHeadlessSurfaceEXT_VkResult_return = (VkResult)0; |
| vkCreateHeadlessSurfaceEXT_VkResult_return = vkEnc->vkCreateHeadlessSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface, true /* do lock */); |
| return vkCreateHeadlessSurfaceEXT_VkResult_return; |
| } |
| #endif |
| #ifdef VK_EXT_line_rasterization |
| static void entry_vkCmdSetLineStippleEXT( |
| VkCommandBuffer commandBuffer, |
| uint32_t lineStippleFactor, |
| uint16_t lineStipplePattern) |
| { |
| AEMU_SCOPED_TRACE("vkCmdSetLineStippleEXT"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdSetLineStippleEXT( |
| VkCommandBuffer commandBuffer, |
| uint32_t lineStippleFactor, |
| uint16_t lineStipplePattern) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_EXT_line_rasterization")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdSetLineStippleEXT", "VK_EXT_line_rasterization"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdSetLineStippleEXT"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSetLineStippleEXT(commandBuffer, lineStippleFactor, lineStipplePattern, true /* do lock */); |
| } |
| #endif |
| #ifdef VK_EXT_shader_atomic_float |
| #endif |
| #ifdef VK_EXT_host_query_reset |
| static void entry_vkResetQueryPoolEXT( |
| VkDevice device, |
| VkQueryPool queryPool, |
| uint32_t firstQuery, |
| uint32_t queryCount) |
| { |
| AEMU_SCOPED_TRACE("vkResetQueryPoolEXT"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkResetQueryPoolEXT(device, queryPool, firstQuery, queryCount, true /* do lock */); |
| } |
| static void dynCheck_entry_vkResetQueryPoolEXT( |
| VkDevice device, |
| VkQueryPool queryPool, |
| uint32_t firstQuery, |
| uint32_t queryCount) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_EXT_host_query_reset")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkResetQueryPoolEXT", "VK_EXT_host_query_reset"); |
| } |
| AEMU_SCOPED_TRACE("vkResetQueryPoolEXT"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkResetQueryPoolEXT(device, queryPool, firstQuery, queryCount, true /* do lock */); |
| } |
| #endif |
| #ifdef VK_EXT_index_type_uint8 |
| #endif |
| #ifdef VK_EXT_extended_dynamic_state |
| static void entry_vkCmdSetCullModeEXT( |
| VkCommandBuffer commandBuffer, |
| VkCullModeFlags cullMode) |
| { |
| AEMU_SCOPED_TRACE("vkCmdSetCullModeEXT"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSetCullModeEXT(commandBuffer, cullMode, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdSetCullModeEXT( |
| VkCommandBuffer commandBuffer, |
| VkCullModeFlags cullMode) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdSetCullModeEXT", "VK_EXT_extended_dynamic_state"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdSetCullModeEXT"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSetCullModeEXT(commandBuffer, cullMode, true /* do lock */); |
| } |
| static void entry_vkCmdSetFrontFaceEXT( |
| VkCommandBuffer commandBuffer, |
| VkFrontFace frontFace) |
| { |
| AEMU_SCOPED_TRACE("vkCmdSetFrontFaceEXT"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSetFrontFaceEXT(commandBuffer, frontFace, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdSetFrontFaceEXT( |
| VkCommandBuffer commandBuffer, |
| VkFrontFace frontFace) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdSetFrontFaceEXT", "VK_EXT_extended_dynamic_state"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdSetFrontFaceEXT"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSetFrontFaceEXT(commandBuffer, frontFace, true /* do lock */); |
| } |
| static void entry_vkCmdSetPrimitiveTopologyEXT( |
| VkCommandBuffer commandBuffer, |
| VkPrimitiveTopology primitiveTopology) |
| { |
| AEMU_SCOPED_TRACE("vkCmdSetPrimitiveTopologyEXT"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSetPrimitiveTopologyEXT(commandBuffer, primitiveTopology, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdSetPrimitiveTopologyEXT( |
| VkCommandBuffer commandBuffer, |
| VkPrimitiveTopology primitiveTopology) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdSetPrimitiveTopologyEXT", "VK_EXT_extended_dynamic_state"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdSetPrimitiveTopologyEXT"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSetPrimitiveTopologyEXT(commandBuffer, primitiveTopology, true /* do lock */); |
| } |
| static void entry_vkCmdSetViewportWithCountEXT( |
| VkCommandBuffer commandBuffer, |
| uint32_t viewportCount, |
| const VkViewport* pViewports) |
| { |
| AEMU_SCOPED_TRACE("vkCmdSetViewportWithCountEXT"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSetViewportWithCountEXT(commandBuffer, viewportCount, pViewports, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdSetViewportWithCountEXT( |
| VkCommandBuffer commandBuffer, |
| uint32_t viewportCount, |
| const VkViewport* pViewports) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdSetViewportWithCountEXT", "VK_EXT_extended_dynamic_state"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdSetViewportWithCountEXT"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSetViewportWithCountEXT(commandBuffer, viewportCount, pViewports, true /* do lock */); |
| } |
| static void entry_vkCmdSetScissorWithCountEXT( |
| VkCommandBuffer commandBuffer, |
| uint32_t scissorCount, |
| const VkRect2D* pScissors) |
| { |
| AEMU_SCOPED_TRACE("vkCmdSetScissorWithCountEXT"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSetScissorWithCountEXT(commandBuffer, scissorCount, pScissors, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdSetScissorWithCountEXT( |
| VkCommandBuffer commandBuffer, |
| uint32_t scissorCount, |
| const VkRect2D* pScissors) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdSetScissorWithCountEXT", "VK_EXT_extended_dynamic_state"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdSetScissorWithCountEXT"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSetScissorWithCountEXT(commandBuffer, scissorCount, pScissors, true /* do lock */); |
| } |
| static void entry_vkCmdBindVertexBuffers2EXT( |
| VkCommandBuffer commandBuffer, |
| uint32_t firstBinding, |
| uint32_t bindingCount, |
| const VkBuffer* pBuffers, |
| const VkDeviceSize* pOffsets, |
| const VkDeviceSize* pSizes, |
| const VkDeviceSize* pStrides) |
| { |
| AEMU_SCOPED_TRACE("vkCmdBindVertexBuffers2EXT"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdBindVertexBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdBindVertexBuffers2EXT( |
| VkCommandBuffer commandBuffer, |
| uint32_t firstBinding, |
| uint32_t bindingCount, |
| const VkBuffer* pBuffers, |
| const VkDeviceSize* pOffsets, |
| const VkDeviceSize* pSizes, |
| const VkDeviceSize* pStrides) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdBindVertexBuffers2EXT", "VK_EXT_extended_dynamic_state"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdBindVertexBuffers2EXT"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdBindVertexBuffers2EXT(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides, true /* do lock */); |
| } |
| static void entry_vkCmdSetDepthTestEnableEXT( |
| VkCommandBuffer commandBuffer, |
| VkBool32 depthTestEnable) |
| { |
| AEMU_SCOPED_TRACE("vkCmdSetDepthTestEnableEXT"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSetDepthTestEnableEXT(commandBuffer, depthTestEnable, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdSetDepthTestEnableEXT( |
| VkCommandBuffer commandBuffer, |
| VkBool32 depthTestEnable) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdSetDepthTestEnableEXT", "VK_EXT_extended_dynamic_state"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdSetDepthTestEnableEXT"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSetDepthTestEnableEXT(commandBuffer, depthTestEnable, true /* do lock */); |
| } |
| static void entry_vkCmdSetDepthWriteEnableEXT( |
| VkCommandBuffer commandBuffer, |
| VkBool32 depthWriteEnable) |
| { |
| AEMU_SCOPED_TRACE("vkCmdSetDepthWriteEnableEXT"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSetDepthWriteEnableEXT(commandBuffer, depthWriteEnable, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdSetDepthWriteEnableEXT( |
| VkCommandBuffer commandBuffer, |
| VkBool32 depthWriteEnable) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdSetDepthWriteEnableEXT", "VK_EXT_extended_dynamic_state"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdSetDepthWriteEnableEXT"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSetDepthWriteEnableEXT(commandBuffer, depthWriteEnable, true /* do lock */); |
| } |
| static void entry_vkCmdSetDepthCompareOpEXT( |
| VkCommandBuffer commandBuffer, |
| VkCompareOp depthCompareOp) |
| { |
| AEMU_SCOPED_TRACE("vkCmdSetDepthCompareOpEXT"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSetDepthCompareOpEXT(commandBuffer, depthCompareOp, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdSetDepthCompareOpEXT( |
| VkCommandBuffer commandBuffer, |
| VkCompareOp depthCompareOp) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdSetDepthCompareOpEXT", "VK_EXT_extended_dynamic_state"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdSetDepthCompareOpEXT"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSetDepthCompareOpEXT(commandBuffer, depthCompareOp, true /* do lock */); |
| } |
| static void entry_vkCmdSetDepthBoundsTestEnableEXT( |
| VkCommandBuffer commandBuffer, |
| VkBool32 depthBoundsTestEnable) |
| { |
| AEMU_SCOPED_TRACE("vkCmdSetDepthBoundsTestEnableEXT"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSetDepthBoundsTestEnableEXT(commandBuffer, depthBoundsTestEnable, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdSetDepthBoundsTestEnableEXT( |
| VkCommandBuffer commandBuffer, |
| VkBool32 depthBoundsTestEnable) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdSetDepthBoundsTestEnableEXT", "VK_EXT_extended_dynamic_state"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdSetDepthBoundsTestEnableEXT"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSetDepthBoundsTestEnableEXT(commandBuffer, depthBoundsTestEnable, true /* do lock */); |
| } |
| static void entry_vkCmdSetStencilTestEnableEXT( |
| VkCommandBuffer commandBuffer, |
| VkBool32 stencilTestEnable) |
| { |
| AEMU_SCOPED_TRACE("vkCmdSetStencilTestEnableEXT"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSetStencilTestEnableEXT(commandBuffer, stencilTestEnable, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdSetStencilTestEnableEXT( |
| VkCommandBuffer commandBuffer, |
| VkBool32 stencilTestEnable) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdSetStencilTestEnableEXT", "VK_EXT_extended_dynamic_state"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdSetStencilTestEnableEXT"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSetStencilTestEnableEXT(commandBuffer, stencilTestEnable, true /* do lock */); |
| } |
| static void entry_vkCmdSetStencilOpEXT( |
| VkCommandBuffer commandBuffer, |
| VkStencilFaceFlags faceMask, |
| VkStencilOp failOp, |
| VkStencilOp passOp, |
| VkStencilOp depthFailOp, |
| VkCompareOp compareOp) |
| { |
| AEMU_SCOPED_TRACE("vkCmdSetStencilOpEXT"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdSetStencilOpEXT( |
| VkCommandBuffer commandBuffer, |
| VkStencilFaceFlags faceMask, |
| VkStencilOp failOp, |
| VkStencilOp passOp, |
| VkStencilOp depthFailOp, |
| VkCompareOp compareOp) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdSetStencilOpEXT", "VK_EXT_extended_dynamic_state"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdSetStencilOpEXT"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSetStencilOpEXT(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp, true /* do lock */); |
| } |
| #endif |
| #ifdef VK_EXT_shader_atomic_float2 |
| #endif |
| #ifdef VK_EXT_shader_demote_to_helper_invocation |
| #endif |
| #ifdef VK_NV_device_generated_commands |
| static void entry_vkGetGeneratedCommandsMemoryRequirementsNV( |
| VkDevice device, |
| const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo, |
| VkMemoryRequirements2* pMemoryRequirements) |
| { |
| AEMU_SCOPED_TRACE("vkGetGeneratedCommandsMemoryRequirementsNV"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkGetGeneratedCommandsMemoryRequirementsNV(device, pInfo, pMemoryRequirements, true /* do lock */); |
| } |
| static void dynCheck_entry_vkGetGeneratedCommandsMemoryRequirementsNV( |
| VkDevice device, |
| const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo, |
| VkMemoryRequirements2* pMemoryRequirements) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_NV_device_generated_commands")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetGeneratedCommandsMemoryRequirementsNV", "VK_NV_device_generated_commands"); |
| } |
| AEMU_SCOPED_TRACE("vkGetGeneratedCommandsMemoryRequirementsNV"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkGetGeneratedCommandsMemoryRequirementsNV(device, pInfo, pMemoryRequirements, true /* do lock */); |
| } |
| static void entry_vkCmdPreprocessGeneratedCommandsNV( |
| VkCommandBuffer commandBuffer, |
| const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo) |
| { |
| AEMU_SCOPED_TRACE("vkCmdPreprocessGeneratedCommandsNV"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdPreprocessGeneratedCommandsNV(commandBuffer, pGeneratedCommandsInfo, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdPreprocessGeneratedCommandsNV( |
| VkCommandBuffer commandBuffer, |
| const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_NV_device_generated_commands")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdPreprocessGeneratedCommandsNV", "VK_NV_device_generated_commands"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdPreprocessGeneratedCommandsNV"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdPreprocessGeneratedCommandsNV(commandBuffer, pGeneratedCommandsInfo, true /* do lock */); |
| } |
| static void entry_vkCmdExecuteGeneratedCommandsNV( |
| VkCommandBuffer commandBuffer, |
| VkBool32 isPreprocessed, |
| const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo) |
| { |
| AEMU_SCOPED_TRACE("vkCmdExecuteGeneratedCommandsNV"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdExecuteGeneratedCommandsNV(commandBuffer, isPreprocessed, pGeneratedCommandsInfo, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdExecuteGeneratedCommandsNV( |
| VkCommandBuffer commandBuffer, |
| VkBool32 isPreprocessed, |
| const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_NV_device_generated_commands")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdExecuteGeneratedCommandsNV", "VK_NV_device_generated_commands"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdExecuteGeneratedCommandsNV"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdExecuteGeneratedCommandsNV(commandBuffer, isPreprocessed, pGeneratedCommandsInfo, true /* do lock */); |
| } |
| static void entry_vkCmdBindPipelineShaderGroupNV( |
| VkCommandBuffer commandBuffer, |
| VkPipelineBindPoint pipelineBindPoint, |
| VkPipeline pipeline, |
| uint32_t groupIndex) |
| { |
| AEMU_SCOPED_TRACE("vkCmdBindPipelineShaderGroupNV"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdBindPipelineShaderGroupNV(commandBuffer, pipelineBindPoint, pipeline, groupIndex, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdBindPipelineShaderGroupNV( |
| VkCommandBuffer commandBuffer, |
| VkPipelineBindPoint pipelineBindPoint, |
| VkPipeline pipeline, |
| uint32_t groupIndex) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_NV_device_generated_commands")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdBindPipelineShaderGroupNV", "VK_NV_device_generated_commands"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdBindPipelineShaderGroupNV"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdBindPipelineShaderGroupNV(commandBuffer, pipelineBindPoint, pipeline, groupIndex, true /* do lock */); |
| } |
| static VkResult entry_vkCreateIndirectCommandsLayoutNV( |
| VkDevice device, |
| const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkIndirectCommandsLayoutNV* pIndirectCommandsLayout) |
| { |
| AEMU_SCOPED_TRACE("vkCreateIndirectCommandsLayoutNV"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateIndirectCommandsLayoutNV_VkResult_return = (VkResult)0; |
| vkCreateIndirectCommandsLayoutNV_VkResult_return = vkEnc->vkCreateIndirectCommandsLayoutNV(device, pCreateInfo, pAllocator, pIndirectCommandsLayout, true /* do lock */); |
| return vkCreateIndirectCommandsLayoutNV_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkCreateIndirectCommandsLayoutNV( |
| VkDevice device, |
| const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkIndirectCommandsLayoutNV* pIndirectCommandsLayout) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_NV_device_generated_commands")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCreateIndirectCommandsLayoutNV", "VK_NV_device_generated_commands"); |
| } |
| AEMU_SCOPED_TRACE("vkCreateIndirectCommandsLayoutNV"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateIndirectCommandsLayoutNV_VkResult_return = (VkResult)0; |
| vkCreateIndirectCommandsLayoutNV_VkResult_return = vkEnc->vkCreateIndirectCommandsLayoutNV(device, pCreateInfo, pAllocator, pIndirectCommandsLayout, true /* do lock */); |
| return vkCreateIndirectCommandsLayoutNV_VkResult_return; |
| } |
| static void entry_vkDestroyIndirectCommandsLayoutNV( |
| VkDevice device, |
| VkIndirectCommandsLayoutNV indirectCommandsLayout, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AEMU_SCOPED_TRACE("vkDestroyIndirectCommandsLayoutNV"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkDestroyIndirectCommandsLayoutNV(device, indirectCommandsLayout, pAllocator, true /* do lock */); |
| } |
| static void dynCheck_entry_vkDestroyIndirectCommandsLayoutNV( |
| VkDevice device, |
| VkIndirectCommandsLayoutNV indirectCommandsLayout, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_NV_device_generated_commands")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkDestroyIndirectCommandsLayoutNV", "VK_NV_device_generated_commands"); |
| } |
| AEMU_SCOPED_TRACE("vkDestroyIndirectCommandsLayoutNV"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkDestroyIndirectCommandsLayoutNV(device, indirectCommandsLayout, pAllocator, true /* do lock */); |
| } |
| #endif |
| #ifdef VK_NV_inherited_viewport_scissor |
| #endif |
| #ifdef VK_EXT_texel_buffer_alignment |
| #endif |
| #ifdef VK_QCOM_render_pass_transform |
| #endif |
| #ifdef VK_EXT_device_memory_report |
| #endif |
| #ifdef VK_EXT_acquire_drm_display |
| static VkResult entry_vkAcquireDrmDisplayEXT( |
| VkPhysicalDevice physicalDevice, |
| int32_t drmFd, |
| VkDisplayKHR display) |
| { |
| AEMU_SCOPED_TRACE("vkAcquireDrmDisplayEXT"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkAcquireDrmDisplayEXT_VkResult_return = (VkResult)0; |
| vkAcquireDrmDisplayEXT_VkResult_return = vkEnc->vkAcquireDrmDisplayEXT(physicalDevice, drmFd, display, true /* do lock */); |
| return vkAcquireDrmDisplayEXT_VkResult_return; |
| } |
| static VkResult entry_vkGetDrmDisplayEXT( |
| VkPhysicalDevice physicalDevice, |
| int32_t drmFd, |
| uint32_t connectorId, |
| VkDisplayKHR* display) |
| { |
| AEMU_SCOPED_TRACE("vkGetDrmDisplayEXT"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetDrmDisplayEXT_VkResult_return = (VkResult)0; |
| vkGetDrmDisplayEXT_VkResult_return = vkEnc->vkGetDrmDisplayEXT(physicalDevice, drmFd, connectorId, display, true /* do lock */); |
| return vkGetDrmDisplayEXT_VkResult_return; |
| } |
| #endif |
| #ifdef VK_EXT_robustness2 |
| #endif |
| #ifdef VK_EXT_custom_border_color |
| #endif |
| #ifdef VK_GOOGLE_user_type |
| #endif |
| #ifdef VK_EXT_private_data |
| static VkResult entry_vkCreatePrivateDataSlotEXT( |
| VkDevice device, |
| const VkPrivateDataSlotCreateInfoEXT* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkPrivateDataSlotEXT* pPrivateDataSlot) |
| { |
| AEMU_SCOPED_TRACE("vkCreatePrivateDataSlotEXT"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreatePrivateDataSlotEXT_VkResult_return = (VkResult)0; |
| vkCreatePrivateDataSlotEXT_VkResult_return = vkEnc->vkCreatePrivateDataSlotEXT(device, pCreateInfo, pAllocator, pPrivateDataSlot, true /* do lock */); |
| return vkCreatePrivateDataSlotEXT_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkCreatePrivateDataSlotEXT( |
| VkDevice device, |
| const VkPrivateDataSlotCreateInfoEXT* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkPrivateDataSlotEXT* pPrivateDataSlot) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_EXT_private_data")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCreatePrivateDataSlotEXT", "VK_EXT_private_data"); |
| } |
| AEMU_SCOPED_TRACE("vkCreatePrivateDataSlotEXT"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreatePrivateDataSlotEXT_VkResult_return = (VkResult)0; |
| vkCreatePrivateDataSlotEXT_VkResult_return = vkEnc->vkCreatePrivateDataSlotEXT(device, pCreateInfo, pAllocator, pPrivateDataSlot, true /* do lock */); |
| return vkCreatePrivateDataSlotEXT_VkResult_return; |
| } |
| static void entry_vkDestroyPrivateDataSlotEXT( |
| VkDevice device, |
| VkPrivateDataSlotEXT privateDataSlot, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AEMU_SCOPED_TRACE("vkDestroyPrivateDataSlotEXT"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkDestroyPrivateDataSlotEXT(device, privateDataSlot, pAllocator, true /* do lock */); |
| } |
| static void dynCheck_entry_vkDestroyPrivateDataSlotEXT( |
| VkDevice device, |
| VkPrivateDataSlotEXT privateDataSlot, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_EXT_private_data")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkDestroyPrivateDataSlotEXT", "VK_EXT_private_data"); |
| } |
| AEMU_SCOPED_TRACE("vkDestroyPrivateDataSlotEXT"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkDestroyPrivateDataSlotEXT(device, privateDataSlot, pAllocator, true /* do lock */); |
| } |
| static VkResult entry_vkSetPrivateDataEXT( |
| VkDevice device, |
| VkObjectType objectType, |
| uint64_t objectHandle, |
| VkPrivateDataSlotEXT privateDataSlot, |
| uint64_t data) |
| { |
| AEMU_SCOPED_TRACE("vkSetPrivateDataEXT"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkSetPrivateDataEXT_VkResult_return = (VkResult)0; |
| vkSetPrivateDataEXT_VkResult_return = vkEnc->vkSetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, data, true /* do lock */); |
| return vkSetPrivateDataEXT_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkSetPrivateDataEXT( |
| VkDevice device, |
| VkObjectType objectType, |
| uint64_t objectHandle, |
| VkPrivateDataSlotEXT privateDataSlot, |
| uint64_t data) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_EXT_private_data")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkSetPrivateDataEXT", "VK_EXT_private_data"); |
| } |
| AEMU_SCOPED_TRACE("vkSetPrivateDataEXT"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkSetPrivateDataEXT_VkResult_return = (VkResult)0; |
| vkSetPrivateDataEXT_VkResult_return = vkEnc->vkSetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, data, true /* do lock */); |
| return vkSetPrivateDataEXT_VkResult_return; |
| } |
| static void entry_vkGetPrivateDataEXT( |
| VkDevice device, |
| VkObjectType objectType, |
| uint64_t objectHandle, |
| VkPrivateDataSlotEXT privateDataSlot, |
| uint64_t* pData) |
| { |
| AEMU_SCOPED_TRACE("vkGetPrivateDataEXT"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkGetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, pData, true /* do lock */); |
| } |
| static void dynCheck_entry_vkGetPrivateDataEXT( |
| VkDevice device, |
| VkObjectType objectType, |
| uint64_t objectHandle, |
| VkPrivateDataSlotEXT privateDataSlot, |
| uint64_t* pData) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_EXT_private_data")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetPrivateDataEXT", "VK_EXT_private_data"); |
| } |
| AEMU_SCOPED_TRACE("vkGetPrivateDataEXT"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkGetPrivateDataEXT(device, objectType, objectHandle, privateDataSlot, pData, true /* do lock */); |
| } |
| #endif |
| #ifdef VK_EXT_pipeline_creation_cache_control |
| #endif |
| #ifdef VK_NV_device_diagnostics_config |
| #endif |
| #ifdef VK_QCOM_render_pass_store_ops |
| #endif |
| #ifdef VK_NV_fragment_shading_rate_enums |
| static void entry_vkCmdSetFragmentShadingRateEnumNV( |
| VkCommandBuffer commandBuffer, |
| VkFragmentShadingRateNV shadingRate, |
| const VkFragmentShadingRateCombinerOpKHR combinerOps[2]) |
| { |
| AEMU_SCOPED_TRACE("vkCmdSetFragmentShadingRateEnumNV"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSetFragmentShadingRateEnumNV(commandBuffer, shadingRate, combinerOps, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdSetFragmentShadingRateEnumNV( |
| VkCommandBuffer commandBuffer, |
| VkFragmentShadingRateNV shadingRate, |
| const VkFragmentShadingRateCombinerOpKHR combinerOps[2]) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_NV_fragment_shading_rate_enums")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdSetFragmentShadingRateEnumNV", "VK_NV_fragment_shading_rate_enums"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdSetFragmentShadingRateEnumNV"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSetFragmentShadingRateEnumNV(commandBuffer, shadingRate, combinerOps, true /* do lock */); |
| } |
| #endif |
| #ifdef VK_NV_ray_tracing_motion_blur |
| #endif |
| #ifdef VK_EXT_ycbcr_2plane_444_formats |
| #endif |
| #ifdef VK_EXT_fragment_density_map2 |
| #endif |
| #ifdef VK_QCOM_rotated_copy_commands |
| #endif |
| #ifdef VK_EXT_image_robustness |
| #endif |
| #ifdef VK_EXT_4444_formats |
| #endif |
| #ifdef VK_EXT_rgba10x6_formats |
| #endif |
| #ifdef VK_NV_acquire_winrt_display |
| static VkResult entry_vkAcquireWinrtDisplayNV( |
| VkPhysicalDevice physicalDevice, |
| VkDisplayKHR display) |
| { |
| AEMU_SCOPED_TRACE("vkAcquireWinrtDisplayNV"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkAcquireWinrtDisplayNV_VkResult_return = (VkResult)0; |
| vkAcquireWinrtDisplayNV_VkResult_return = vkEnc->vkAcquireWinrtDisplayNV(physicalDevice, display, true /* do lock */); |
| return vkAcquireWinrtDisplayNV_VkResult_return; |
| } |
| static VkResult entry_vkGetWinrtDisplayNV( |
| VkPhysicalDevice physicalDevice, |
| uint32_t deviceRelativeId, |
| VkDisplayKHR* pDisplay) |
| { |
| AEMU_SCOPED_TRACE("vkGetWinrtDisplayNV"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetWinrtDisplayNV_VkResult_return = (VkResult)0; |
| vkGetWinrtDisplayNV_VkResult_return = vkEnc->vkGetWinrtDisplayNV(physicalDevice, deviceRelativeId, pDisplay, true /* do lock */); |
| return vkGetWinrtDisplayNV_VkResult_return; |
| } |
| #endif |
| #ifdef VK_EXT_directfb_surface |
| static VkResult entry_vkCreateDirectFBSurfaceEXT( |
| VkInstance instance, |
| const VkDirectFBSurfaceCreateInfoEXT* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkSurfaceKHR* pSurface) |
| { |
| AEMU_SCOPED_TRACE("vkCreateDirectFBSurfaceEXT"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateDirectFBSurfaceEXT_VkResult_return = (VkResult)0; |
| vkCreateDirectFBSurfaceEXT_VkResult_return = vkEnc->vkCreateDirectFBSurfaceEXT(instance, pCreateInfo, pAllocator, pSurface, true /* do lock */); |
| return vkCreateDirectFBSurfaceEXT_VkResult_return; |
| } |
| static VkBool32 entry_vkGetPhysicalDeviceDirectFBPresentationSupportEXT( |
| VkPhysicalDevice physicalDevice, |
| uint32_t queueFamilyIndex, |
| IDirectFB* dfb) |
| { |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDirectFBPresentationSupportEXT"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkBool32 vkGetPhysicalDeviceDirectFBPresentationSupportEXT_VkBool32_return = (VkBool32)0; |
| vkGetPhysicalDeviceDirectFBPresentationSupportEXT_VkBool32_return = vkEnc->vkGetPhysicalDeviceDirectFBPresentationSupportEXT(physicalDevice, queueFamilyIndex, dfb, true /* do lock */); |
| return vkGetPhysicalDeviceDirectFBPresentationSupportEXT_VkBool32_return; |
| } |
| #endif |
| #ifdef VK_VALVE_mutable_descriptor_type |
| #endif |
| #ifdef VK_EXT_vertex_input_dynamic_state |
| static void entry_vkCmdSetVertexInputEXT( |
| VkCommandBuffer commandBuffer, |
| uint32_t vertexBindingDescriptionCount, |
| const VkVertexInputBindingDescription2EXT* pVertexBindingDescriptions, |
| uint32_t vertexAttributeDescriptionCount, |
| const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions) |
| { |
| AEMU_SCOPED_TRACE("vkCmdSetVertexInputEXT"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdSetVertexInputEXT( |
| VkCommandBuffer commandBuffer, |
| uint32_t vertexBindingDescriptionCount, |
| const VkVertexInputBindingDescription2EXT* pVertexBindingDescriptions, |
| uint32_t vertexAttributeDescriptionCount, |
| const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_EXT_vertex_input_dynamic_state")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdSetVertexInputEXT", "VK_EXT_vertex_input_dynamic_state"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdSetVertexInputEXT"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSetVertexInputEXT(commandBuffer, vertexBindingDescriptionCount, pVertexBindingDescriptions, vertexAttributeDescriptionCount, pVertexAttributeDescriptions, true /* do lock */); |
| } |
| #endif |
| #ifdef VK_EXT_physical_device_drm |
| #endif |
| #ifdef VK_EXT_primitive_topology_list_restart |
| #endif |
| #ifdef VK_FUCHSIA_external_memory |
| static VkResult entry_vkGetMemoryZirconHandleFUCHSIA( |
| VkDevice device, |
| const VkMemoryGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo, |
| zx_handle_t* pZirconHandle) |
| { |
| AEMU_SCOPED_TRACE("vkGetMemoryZirconHandleFUCHSIA"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetMemoryZirconHandleFUCHSIA_VkResult_return = (VkResult)0; |
| vkGetMemoryZirconHandleFUCHSIA_VkResult_return = vkEnc->vkGetMemoryZirconHandleFUCHSIA(device, pGetZirconHandleInfo, pZirconHandle, true /* do lock */); |
| return vkGetMemoryZirconHandleFUCHSIA_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkGetMemoryZirconHandleFUCHSIA( |
| VkDevice device, |
| const VkMemoryGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo, |
| zx_handle_t* pZirconHandle) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_FUCHSIA_external_memory")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetMemoryZirconHandleFUCHSIA", "VK_FUCHSIA_external_memory"); |
| } |
| AEMU_SCOPED_TRACE("vkGetMemoryZirconHandleFUCHSIA"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetMemoryZirconHandleFUCHSIA_VkResult_return = (VkResult)0; |
| vkGetMemoryZirconHandleFUCHSIA_VkResult_return = vkEnc->vkGetMemoryZirconHandleFUCHSIA(device, pGetZirconHandleInfo, pZirconHandle, true /* do lock */); |
| return vkGetMemoryZirconHandleFUCHSIA_VkResult_return; |
| } |
| static VkResult entry_vkGetMemoryZirconHandlePropertiesFUCHSIA( |
| VkDevice device, |
| VkExternalMemoryHandleTypeFlagBits handleType, |
| zx_handle_t zirconHandle, |
| VkMemoryZirconHandlePropertiesFUCHSIA* pMemoryZirconHandleProperties) |
| { |
| AEMU_SCOPED_TRACE("vkGetMemoryZirconHandlePropertiesFUCHSIA"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetMemoryZirconHandlePropertiesFUCHSIA_VkResult_return = (VkResult)0; |
| vkGetMemoryZirconHandlePropertiesFUCHSIA_VkResult_return = vkEnc->vkGetMemoryZirconHandlePropertiesFUCHSIA(device, handleType, zirconHandle, pMemoryZirconHandleProperties, true /* do lock */); |
| return vkGetMemoryZirconHandlePropertiesFUCHSIA_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkGetMemoryZirconHandlePropertiesFUCHSIA( |
| VkDevice device, |
| VkExternalMemoryHandleTypeFlagBits handleType, |
| zx_handle_t zirconHandle, |
| VkMemoryZirconHandlePropertiesFUCHSIA* pMemoryZirconHandleProperties) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_FUCHSIA_external_memory")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetMemoryZirconHandlePropertiesFUCHSIA", "VK_FUCHSIA_external_memory"); |
| } |
| AEMU_SCOPED_TRACE("vkGetMemoryZirconHandlePropertiesFUCHSIA"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetMemoryZirconHandlePropertiesFUCHSIA_VkResult_return = (VkResult)0; |
| vkGetMemoryZirconHandlePropertiesFUCHSIA_VkResult_return = vkEnc->vkGetMemoryZirconHandlePropertiesFUCHSIA(device, handleType, zirconHandle, pMemoryZirconHandleProperties, true /* do lock */); |
| return vkGetMemoryZirconHandlePropertiesFUCHSIA_VkResult_return; |
| } |
| #endif |
| #ifdef VK_FUCHSIA_external_semaphore |
| static VkResult entry_vkImportSemaphoreZirconHandleFUCHSIA( |
| VkDevice device, |
| const VkImportSemaphoreZirconHandleInfoFUCHSIA* pImportSemaphoreZirconHandleInfo) |
| { |
| AEMU_SCOPED_TRACE("vkImportSemaphoreZirconHandleFUCHSIA"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkImportSemaphoreZirconHandleFUCHSIA_VkResult_return = (VkResult)0; |
| vkImportSemaphoreZirconHandleFUCHSIA_VkResult_return = vkEnc->vkImportSemaphoreZirconHandleFUCHSIA(device, pImportSemaphoreZirconHandleInfo, true /* do lock */); |
| return vkImportSemaphoreZirconHandleFUCHSIA_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkImportSemaphoreZirconHandleFUCHSIA( |
| VkDevice device, |
| const VkImportSemaphoreZirconHandleInfoFUCHSIA* pImportSemaphoreZirconHandleInfo) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_FUCHSIA_external_semaphore")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkImportSemaphoreZirconHandleFUCHSIA", "VK_FUCHSIA_external_semaphore"); |
| } |
| AEMU_SCOPED_TRACE("vkImportSemaphoreZirconHandleFUCHSIA"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkImportSemaphoreZirconHandleFUCHSIA_VkResult_return = (VkResult)0; |
| vkImportSemaphoreZirconHandleFUCHSIA_VkResult_return = vkEnc->vkImportSemaphoreZirconHandleFUCHSIA(device, pImportSemaphoreZirconHandleInfo, true /* do lock */); |
| return vkImportSemaphoreZirconHandleFUCHSIA_VkResult_return; |
| } |
| static VkResult entry_vkGetSemaphoreZirconHandleFUCHSIA( |
| VkDevice device, |
| const VkSemaphoreGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo, |
| zx_handle_t* pZirconHandle) |
| { |
| AEMU_SCOPED_TRACE("vkGetSemaphoreZirconHandleFUCHSIA"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetSemaphoreZirconHandleFUCHSIA_VkResult_return = (VkResult)0; |
| vkGetSemaphoreZirconHandleFUCHSIA_VkResult_return = vkEnc->vkGetSemaphoreZirconHandleFUCHSIA(device, pGetZirconHandleInfo, pZirconHandle, true /* do lock */); |
| return vkGetSemaphoreZirconHandleFUCHSIA_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkGetSemaphoreZirconHandleFUCHSIA( |
| VkDevice device, |
| const VkSemaphoreGetZirconHandleInfoFUCHSIA* pGetZirconHandleInfo, |
| zx_handle_t* pZirconHandle) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_FUCHSIA_external_semaphore")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetSemaphoreZirconHandleFUCHSIA", "VK_FUCHSIA_external_semaphore"); |
| } |
| AEMU_SCOPED_TRACE("vkGetSemaphoreZirconHandleFUCHSIA"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetSemaphoreZirconHandleFUCHSIA_VkResult_return = (VkResult)0; |
| vkGetSemaphoreZirconHandleFUCHSIA_VkResult_return = vkEnc->vkGetSemaphoreZirconHandleFUCHSIA(device, pGetZirconHandleInfo, pZirconHandle, true /* do lock */); |
| return vkGetSemaphoreZirconHandleFUCHSIA_VkResult_return; |
| } |
| #endif |
| #ifdef VK_FUCHSIA_buffer_collection |
| static VkResult entry_vkCreateBufferCollectionFUCHSIA( |
| VkDevice device, |
| const VkBufferCollectionCreateInfoFUCHSIA* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkBufferCollectionFUCHSIA* pCollection) |
| { |
| AEMU_SCOPED_TRACE("vkCreateBufferCollectionFUCHSIA"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateBufferCollectionFUCHSIA_VkResult_return = (VkResult)0; |
| vkCreateBufferCollectionFUCHSIA_VkResult_return = vkEnc->vkCreateBufferCollectionFUCHSIA(device, pCreateInfo, pAllocator, pCollection, true /* do lock */); |
| return vkCreateBufferCollectionFUCHSIA_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkCreateBufferCollectionFUCHSIA( |
| VkDevice device, |
| const VkBufferCollectionCreateInfoFUCHSIA* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkBufferCollectionFUCHSIA* pCollection) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_FUCHSIA_buffer_collection")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCreateBufferCollectionFUCHSIA", "VK_FUCHSIA_buffer_collection"); |
| } |
| AEMU_SCOPED_TRACE("vkCreateBufferCollectionFUCHSIA"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateBufferCollectionFUCHSIA_VkResult_return = (VkResult)0; |
| vkCreateBufferCollectionFUCHSIA_VkResult_return = vkEnc->vkCreateBufferCollectionFUCHSIA(device, pCreateInfo, pAllocator, pCollection, true /* do lock */); |
| return vkCreateBufferCollectionFUCHSIA_VkResult_return; |
| } |
| static VkResult entry_vkSetBufferCollectionImageConstraintsFUCHSIA( |
| VkDevice device, |
| VkBufferCollectionFUCHSIA collection, |
| const VkImageConstraintsInfoFUCHSIA* pImageConstraintsInfo) |
| { |
| AEMU_SCOPED_TRACE("vkSetBufferCollectionImageConstraintsFUCHSIA"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkSetBufferCollectionImageConstraintsFUCHSIA_VkResult_return = (VkResult)0; |
| vkSetBufferCollectionImageConstraintsFUCHSIA_VkResult_return = vkEnc->vkSetBufferCollectionImageConstraintsFUCHSIA(device, collection, pImageConstraintsInfo, true /* do lock */); |
| return vkSetBufferCollectionImageConstraintsFUCHSIA_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkSetBufferCollectionImageConstraintsFUCHSIA( |
| VkDevice device, |
| VkBufferCollectionFUCHSIA collection, |
| const VkImageConstraintsInfoFUCHSIA* pImageConstraintsInfo) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_FUCHSIA_buffer_collection")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkSetBufferCollectionImageConstraintsFUCHSIA", "VK_FUCHSIA_buffer_collection"); |
| } |
| AEMU_SCOPED_TRACE("vkSetBufferCollectionImageConstraintsFUCHSIA"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkSetBufferCollectionImageConstraintsFUCHSIA_VkResult_return = (VkResult)0; |
| vkSetBufferCollectionImageConstraintsFUCHSIA_VkResult_return = vkEnc->vkSetBufferCollectionImageConstraintsFUCHSIA(device, collection, pImageConstraintsInfo, true /* do lock */); |
| return vkSetBufferCollectionImageConstraintsFUCHSIA_VkResult_return; |
| } |
| static VkResult entry_vkSetBufferCollectionBufferConstraintsFUCHSIA( |
| VkDevice device, |
| VkBufferCollectionFUCHSIA collection, |
| const VkBufferConstraintsInfoFUCHSIA* pBufferConstraintsInfo) |
| { |
| AEMU_SCOPED_TRACE("vkSetBufferCollectionBufferConstraintsFUCHSIA"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkSetBufferCollectionBufferConstraintsFUCHSIA_VkResult_return = (VkResult)0; |
| vkSetBufferCollectionBufferConstraintsFUCHSIA_VkResult_return = vkEnc->vkSetBufferCollectionBufferConstraintsFUCHSIA(device, collection, pBufferConstraintsInfo, true /* do lock */); |
| return vkSetBufferCollectionBufferConstraintsFUCHSIA_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkSetBufferCollectionBufferConstraintsFUCHSIA( |
| VkDevice device, |
| VkBufferCollectionFUCHSIA collection, |
| const VkBufferConstraintsInfoFUCHSIA* pBufferConstraintsInfo) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_FUCHSIA_buffer_collection")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkSetBufferCollectionBufferConstraintsFUCHSIA", "VK_FUCHSIA_buffer_collection"); |
| } |
| AEMU_SCOPED_TRACE("vkSetBufferCollectionBufferConstraintsFUCHSIA"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkSetBufferCollectionBufferConstraintsFUCHSIA_VkResult_return = (VkResult)0; |
| vkSetBufferCollectionBufferConstraintsFUCHSIA_VkResult_return = vkEnc->vkSetBufferCollectionBufferConstraintsFUCHSIA(device, collection, pBufferConstraintsInfo, true /* do lock */); |
| return vkSetBufferCollectionBufferConstraintsFUCHSIA_VkResult_return; |
| } |
| static void entry_vkDestroyBufferCollectionFUCHSIA( |
| VkDevice device, |
| VkBufferCollectionFUCHSIA collection, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AEMU_SCOPED_TRACE("vkDestroyBufferCollectionFUCHSIA"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkDestroyBufferCollectionFUCHSIA(device, collection, pAllocator, true /* do lock */); |
| } |
| static void dynCheck_entry_vkDestroyBufferCollectionFUCHSIA( |
| VkDevice device, |
| VkBufferCollectionFUCHSIA collection, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_FUCHSIA_buffer_collection")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkDestroyBufferCollectionFUCHSIA", "VK_FUCHSIA_buffer_collection"); |
| } |
| AEMU_SCOPED_TRACE("vkDestroyBufferCollectionFUCHSIA"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkDestroyBufferCollectionFUCHSIA(device, collection, pAllocator, true /* do lock */); |
| } |
| static VkResult entry_vkGetBufferCollectionPropertiesFUCHSIA( |
| VkDevice device, |
| VkBufferCollectionFUCHSIA collection, |
| VkBufferCollectionPropertiesFUCHSIA* pProperties) |
| { |
| AEMU_SCOPED_TRACE("vkGetBufferCollectionPropertiesFUCHSIA"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetBufferCollectionPropertiesFUCHSIA_VkResult_return = (VkResult)0; |
| vkGetBufferCollectionPropertiesFUCHSIA_VkResult_return = vkEnc->vkGetBufferCollectionPropertiesFUCHSIA(device, collection, pProperties, true /* do lock */); |
| return vkGetBufferCollectionPropertiesFUCHSIA_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkGetBufferCollectionPropertiesFUCHSIA( |
| VkDevice device, |
| VkBufferCollectionFUCHSIA collection, |
| VkBufferCollectionPropertiesFUCHSIA* pProperties) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_FUCHSIA_buffer_collection")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetBufferCollectionPropertiesFUCHSIA", "VK_FUCHSIA_buffer_collection"); |
| } |
| AEMU_SCOPED_TRACE("vkGetBufferCollectionPropertiesFUCHSIA"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetBufferCollectionPropertiesFUCHSIA_VkResult_return = (VkResult)0; |
| vkGetBufferCollectionPropertiesFUCHSIA_VkResult_return = vkEnc->vkGetBufferCollectionPropertiesFUCHSIA(device, collection, pProperties, true /* do lock */); |
| return vkGetBufferCollectionPropertiesFUCHSIA_VkResult_return; |
| } |
| #endif |
| #ifdef VK_HUAWEI_subpass_shading |
| static VkResult entry_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI( |
| VkDevice device, |
| VkRenderPass renderpass, |
| VkExtent2D* pMaxWorkgroupSize) |
| { |
| AEMU_SCOPED_TRACE("vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI_VkResult_return = (VkResult)0; |
| vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI_VkResult_return = vkEnc->vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device, renderpass, pMaxWorkgroupSize, true /* do lock */); |
| return vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI( |
| VkDevice device, |
| VkRenderPass renderpass, |
| VkExtent2D* pMaxWorkgroupSize) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_HUAWEI_subpass_shading")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI", "VK_HUAWEI_subpass_shading"); |
| } |
| AEMU_SCOPED_TRACE("vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI_VkResult_return = (VkResult)0; |
| vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI_VkResult_return = vkEnc->vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(device, renderpass, pMaxWorkgroupSize, true /* do lock */); |
| return vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI_VkResult_return; |
| } |
| static void entry_vkCmdSubpassShadingHUAWEI( |
| VkCommandBuffer commandBuffer) |
| { |
| AEMU_SCOPED_TRACE("vkCmdSubpassShadingHUAWEI"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSubpassShadingHUAWEI(commandBuffer, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdSubpassShadingHUAWEI( |
| VkCommandBuffer commandBuffer) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_HUAWEI_subpass_shading")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdSubpassShadingHUAWEI", "VK_HUAWEI_subpass_shading"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdSubpassShadingHUAWEI"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSubpassShadingHUAWEI(commandBuffer, true /* do lock */); |
| } |
| #endif |
| #ifdef VK_HUAWEI_invocation_mask |
| static void entry_vkCmdBindInvocationMaskHUAWEI( |
| VkCommandBuffer commandBuffer, |
| VkImageView imageView, |
| VkImageLayout imageLayout) |
| { |
| AEMU_SCOPED_TRACE("vkCmdBindInvocationMaskHUAWEI"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdBindInvocationMaskHUAWEI(commandBuffer, imageView, imageLayout, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdBindInvocationMaskHUAWEI( |
| VkCommandBuffer commandBuffer, |
| VkImageView imageView, |
| VkImageLayout imageLayout) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_HUAWEI_invocation_mask")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdBindInvocationMaskHUAWEI", "VK_HUAWEI_invocation_mask"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdBindInvocationMaskHUAWEI"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdBindInvocationMaskHUAWEI(commandBuffer, imageView, imageLayout, true /* do lock */); |
| } |
| #endif |
| #ifdef VK_NV_external_memory_rdma |
| static VkResult entry_vkGetMemoryRemoteAddressNV( |
| VkDevice device, |
| const VkMemoryGetRemoteAddressInfoNV* pMemoryGetRemoteAddressInfo, |
| VkRemoteAddressNV* pAddress) |
| { |
| AEMU_SCOPED_TRACE("vkGetMemoryRemoteAddressNV"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetMemoryRemoteAddressNV_VkResult_return = (VkResult)0; |
| vkGetMemoryRemoteAddressNV_VkResult_return = vkEnc->vkGetMemoryRemoteAddressNV(device, pMemoryGetRemoteAddressInfo, pAddress, true /* do lock */); |
| return vkGetMemoryRemoteAddressNV_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkGetMemoryRemoteAddressNV( |
| VkDevice device, |
| const VkMemoryGetRemoteAddressInfoNV* pMemoryGetRemoteAddressInfo, |
| VkRemoteAddressNV* pAddress) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_NV_external_memory_rdma")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetMemoryRemoteAddressNV", "VK_NV_external_memory_rdma"); |
| } |
| AEMU_SCOPED_TRACE("vkGetMemoryRemoteAddressNV"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetMemoryRemoteAddressNV_VkResult_return = (VkResult)0; |
| vkGetMemoryRemoteAddressNV_VkResult_return = vkEnc->vkGetMemoryRemoteAddressNV(device, pMemoryGetRemoteAddressInfo, pAddress, true /* do lock */); |
| return vkGetMemoryRemoteAddressNV_VkResult_return; |
| } |
| #endif |
| #ifdef VK_EXT_extended_dynamic_state2 |
| static void entry_vkCmdSetPatchControlPointsEXT( |
| VkCommandBuffer commandBuffer, |
| uint32_t patchControlPoints) |
| { |
| AEMU_SCOPED_TRACE("vkCmdSetPatchControlPointsEXT"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdSetPatchControlPointsEXT( |
| VkCommandBuffer commandBuffer, |
| uint32_t patchControlPoints) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state2")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdSetPatchControlPointsEXT", "VK_EXT_extended_dynamic_state2"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdSetPatchControlPointsEXT"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSetPatchControlPointsEXT(commandBuffer, patchControlPoints, true /* do lock */); |
| } |
| static void entry_vkCmdSetRasterizerDiscardEnableEXT( |
| VkCommandBuffer commandBuffer, |
| VkBool32 rasterizerDiscardEnable) |
| { |
| AEMU_SCOPED_TRACE("vkCmdSetRasterizerDiscardEnableEXT"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSetRasterizerDiscardEnableEXT(commandBuffer, rasterizerDiscardEnable, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdSetRasterizerDiscardEnableEXT( |
| VkCommandBuffer commandBuffer, |
| VkBool32 rasterizerDiscardEnable) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state2")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdSetRasterizerDiscardEnableEXT", "VK_EXT_extended_dynamic_state2"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdSetRasterizerDiscardEnableEXT"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSetRasterizerDiscardEnableEXT(commandBuffer, rasterizerDiscardEnable, true /* do lock */); |
| } |
| static void entry_vkCmdSetDepthBiasEnableEXT( |
| VkCommandBuffer commandBuffer, |
| VkBool32 depthBiasEnable) |
| { |
| AEMU_SCOPED_TRACE("vkCmdSetDepthBiasEnableEXT"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSetDepthBiasEnableEXT(commandBuffer, depthBiasEnable, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdSetDepthBiasEnableEXT( |
| VkCommandBuffer commandBuffer, |
| VkBool32 depthBiasEnable) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state2")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdSetDepthBiasEnableEXT", "VK_EXT_extended_dynamic_state2"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdSetDepthBiasEnableEXT"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSetDepthBiasEnableEXT(commandBuffer, depthBiasEnable, true /* do lock */); |
| } |
| static void entry_vkCmdSetLogicOpEXT( |
| VkCommandBuffer commandBuffer, |
| VkLogicOp logicOp) |
| { |
| AEMU_SCOPED_TRACE("vkCmdSetLogicOpEXT"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSetLogicOpEXT(commandBuffer, logicOp, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdSetLogicOpEXT( |
| VkCommandBuffer commandBuffer, |
| VkLogicOp logicOp) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state2")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdSetLogicOpEXT", "VK_EXT_extended_dynamic_state2"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdSetLogicOpEXT"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSetLogicOpEXT(commandBuffer, logicOp, true /* do lock */); |
| } |
| static void entry_vkCmdSetPrimitiveRestartEnableEXT( |
| VkCommandBuffer commandBuffer, |
| VkBool32 primitiveRestartEnable) |
| { |
| AEMU_SCOPED_TRACE("vkCmdSetPrimitiveRestartEnableEXT"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSetPrimitiveRestartEnableEXT(commandBuffer, primitiveRestartEnable, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdSetPrimitiveRestartEnableEXT( |
| VkCommandBuffer commandBuffer, |
| VkBool32 primitiveRestartEnable) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state2")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdSetPrimitiveRestartEnableEXT", "VK_EXT_extended_dynamic_state2"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdSetPrimitiveRestartEnableEXT"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSetPrimitiveRestartEnableEXT(commandBuffer, primitiveRestartEnable, true /* do lock */); |
| } |
| #endif |
| #ifdef VK_QNX_screen_surface |
| static VkResult entry_vkCreateScreenSurfaceQNX( |
| VkInstance instance, |
| const VkScreenSurfaceCreateInfoQNX* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkSurfaceKHR* pSurface) |
| { |
| AEMU_SCOPED_TRACE("vkCreateScreenSurfaceQNX"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateScreenSurfaceQNX_VkResult_return = (VkResult)0; |
| vkCreateScreenSurfaceQNX_VkResult_return = vkEnc->vkCreateScreenSurfaceQNX(instance, pCreateInfo, pAllocator, pSurface, true /* do lock */); |
| return vkCreateScreenSurfaceQNX_VkResult_return; |
| } |
| static VkBool32 entry_vkGetPhysicalDeviceScreenPresentationSupportQNX( |
| VkPhysicalDevice physicalDevice, |
| uint32_t queueFamilyIndex, |
| _screen_window* window) |
| { |
| AEMU_SCOPED_TRACE("vkGetPhysicalDeviceScreenPresentationSupportQNX"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkBool32 vkGetPhysicalDeviceScreenPresentationSupportQNX_VkBool32_return = (VkBool32)0; |
| vkGetPhysicalDeviceScreenPresentationSupportQNX_VkBool32_return = vkEnc->vkGetPhysicalDeviceScreenPresentationSupportQNX(physicalDevice, queueFamilyIndex, window, true /* do lock */); |
| return vkGetPhysicalDeviceScreenPresentationSupportQNX_VkBool32_return; |
| } |
| #endif |
| #ifdef VK_EXT_color_write_enable |
| static void entry_vkCmdSetColorWriteEnableEXT( |
| VkCommandBuffer commandBuffer, |
| uint32_t attachmentCount, |
| const VkBool32* pColorWriteEnables) |
| { |
| AEMU_SCOPED_TRACE("vkCmdSetColorWriteEnableEXT"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdSetColorWriteEnableEXT( |
| VkCommandBuffer commandBuffer, |
| uint32_t attachmentCount, |
| const VkBool32* pColorWriteEnables) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_EXT_color_write_enable")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdSetColorWriteEnableEXT", "VK_EXT_color_write_enable"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdSetColorWriteEnableEXT"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSetColorWriteEnableEXT(commandBuffer, attachmentCount, pColorWriteEnables, true /* do lock */); |
| } |
| #endif |
| #ifdef VK_GOOGLE_gfxstream |
| static VkResult entry_vkRegisterImageColorBufferGOOGLE( |
| VkDevice device, |
| VkImage image, |
| uint32_t colorBuffer) |
| { |
| AEMU_SCOPED_TRACE("vkRegisterImageColorBufferGOOGLE"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkRegisterImageColorBufferGOOGLE_VkResult_return = (VkResult)0; |
| vkRegisterImageColorBufferGOOGLE_VkResult_return = vkEnc->vkRegisterImageColorBufferGOOGLE(device, image, colorBuffer, true /* do lock */); |
| return vkRegisterImageColorBufferGOOGLE_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkRegisterImageColorBufferGOOGLE( |
| VkDevice device, |
| VkImage image, |
| uint32_t colorBuffer) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_GOOGLE_gfxstream")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkRegisterImageColorBufferGOOGLE", "VK_GOOGLE_gfxstream"); |
| } |
| AEMU_SCOPED_TRACE("vkRegisterImageColorBufferGOOGLE"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkRegisterImageColorBufferGOOGLE_VkResult_return = (VkResult)0; |
| vkRegisterImageColorBufferGOOGLE_VkResult_return = vkEnc->vkRegisterImageColorBufferGOOGLE(device, image, colorBuffer, true /* do lock */); |
| return vkRegisterImageColorBufferGOOGLE_VkResult_return; |
| } |
| static VkResult entry_vkRegisterBufferColorBufferGOOGLE( |
| VkDevice device, |
| VkBuffer buffer, |
| uint32_t colorBuffer) |
| { |
| AEMU_SCOPED_TRACE("vkRegisterBufferColorBufferGOOGLE"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkRegisterBufferColorBufferGOOGLE_VkResult_return = (VkResult)0; |
| vkRegisterBufferColorBufferGOOGLE_VkResult_return = vkEnc->vkRegisterBufferColorBufferGOOGLE(device, buffer, colorBuffer, true /* do lock */); |
| return vkRegisterBufferColorBufferGOOGLE_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkRegisterBufferColorBufferGOOGLE( |
| VkDevice device, |
| VkBuffer buffer, |
| uint32_t colorBuffer) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_GOOGLE_gfxstream")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkRegisterBufferColorBufferGOOGLE", "VK_GOOGLE_gfxstream"); |
| } |
| AEMU_SCOPED_TRACE("vkRegisterBufferColorBufferGOOGLE"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkRegisterBufferColorBufferGOOGLE_VkResult_return = (VkResult)0; |
| vkRegisterBufferColorBufferGOOGLE_VkResult_return = vkEnc->vkRegisterBufferColorBufferGOOGLE(device, buffer, colorBuffer, true /* do lock */); |
| return vkRegisterBufferColorBufferGOOGLE_VkResult_return; |
| } |
| static VkResult entry_vkMapMemoryIntoAddressSpaceGOOGLE( |
| VkDevice device, |
| VkDeviceMemory memory, |
| uint64_t* pAddress) |
| { |
| AEMU_SCOPED_TRACE("vkMapMemoryIntoAddressSpaceGOOGLE"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return = (VkResult)0; |
| vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return = vkEnc->vkMapMemoryIntoAddressSpaceGOOGLE(device, memory, pAddress, true /* do lock */); |
| return vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkMapMemoryIntoAddressSpaceGOOGLE( |
| VkDevice device, |
| VkDeviceMemory memory, |
| uint64_t* pAddress) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_GOOGLE_gfxstream")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkMapMemoryIntoAddressSpaceGOOGLE", "VK_GOOGLE_gfxstream"); |
| } |
| AEMU_SCOPED_TRACE("vkMapMemoryIntoAddressSpaceGOOGLE"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return = (VkResult)0; |
| vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return = vkEnc->vkMapMemoryIntoAddressSpaceGOOGLE(device, memory, pAddress, true /* do lock */); |
| return vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return; |
| } |
| static void entry_vkUpdateDescriptorSetWithTemplateSizedGOOGLE( |
| VkDevice device, |
| VkDescriptorSet descriptorSet, |
| VkDescriptorUpdateTemplate descriptorUpdateTemplate, |
| uint32_t imageInfoCount, |
| uint32_t bufferInfoCount, |
| uint32_t bufferViewCount, |
| const uint32_t* pImageInfoEntryIndices, |
| const uint32_t* pBufferInfoEntryIndices, |
| const uint32_t* pBufferViewEntryIndices, |
| const VkDescriptorImageInfo* pImageInfos, |
| const VkDescriptorBufferInfo* pBufferInfos, |
| const VkBufferView* pBufferViews) |
| { |
| AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplateSizedGOOGLE"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkUpdateDescriptorSetWithTemplateSizedGOOGLE(device, descriptorSet, descriptorUpdateTemplate, imageInfoCount, bufferInfoCount, bufferViewCount, pImageInfoEntryIndices, pBufferInfoEntryIndices, pBufferViewEntryIndices, pImageInfos, pBufferInfos, pBufferViews, true /* do lock */); |
| } |
| static void dynCheck_entry_vkUpdateDescriptorSetWithTemplateSizedGOOGLE( |
| VkDevice device, |
| VkDescriptorSet descriptorSet, |
| VkDescriptorUpdateTemplate descriptorUpdateTemplate, |
| uint32_t imageInfoCount, |
| uint32_t bufferInfoCount, |
| uint32_t bufferViewCount, |
| const uint32_t* pImageInfoEntryIndices, |
| const uint32_t* pBufferInfoEntryIndices, |
| const uint32_t* pBufferViewEntryIndices, |
| const VkDescriptorImageInfo* pImageInfos, |
| const VkDescriptorBufferInfo* pBufferInfos, |
| const VkBufferView* pBufferViews) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_GOOGLE_gfxstream")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkUpdateDescriptorSetWithTemplateSizedGOOGLE", "VK_GOOGLE_gfxstream"); |
| } |
| AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplateSizedGOOGLE"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkUpdateDescriptorSetWithTemplateSizedGOOGLE(device, descriptorSet, descriptorUpdateTemplate, imageInfoCount, bufferInfoCount, bufferViewCount, pImageInfoEntryIndices, pBufferInfoEntryIndices, pBufferViewEntryIndices, pImageInfos, pBufferInfos, pBufferViews, true /* do lock */); |
| } |
| static void entry_vkBeginCommandBufferAsyncGOOGLE( |
| VkCommandBuffer commandBuffer, |
| const VkCommandBufferBeginInfo* pBeginInfo) |
| { |
| AEMU_SCOPED_TRACE("vkBeginCommandBufferAsyncGOOGLE"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkBeginCommandBufferAsyncGOOGLE(commandBuffer, pBeginInfo, true /* do lock */); |
| } |
| static void entry_vkEndCommandBufferAsyncGOOGLE( |
| VkCommandBuffer commandBuffer) |
| { |
| AEMU_SCOPED_TRACE("vkEndCommandBufferAsyncGOOGLE"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkEndCommandBufferAsyncGOOGLE(commandBuffer, true /* do lock */); |
| } |
| static void entry_vkResetCommandBufferAsyncGOOGLE( |
| VkCommandBuffer commandBuffer, |
| VkCommandBufferResetFlags flags) |
| { |
| AEMU_SCOPED_TRACE("vkResetCommandBufferAsyncGOOGLE"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkResetCommandBufferAsyncGOOGLE(commandBuffer, flags, true /* do lock */); |
| } |
| static void entry_vkCommandBufferHostSyncGOOGLE( |
| VkCommandBuffer commandBuffer, |
| uint32_t needHostSync, |
| uint32_t sequenceNumber) |
| { |
| AEMU_SCOPED_TRACE("vkCommandBufferHostSyncGOOGLE"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCommandBufferHostSyncGOOGLE(commandBuffer, needHostSync, sequenceNumber, true /* do lock */); |
| } |
| static VkResult entry_vkCreateImageWithRequirementsGOOGLE( |
| VkDevice device, |
| const VkImageCreateInfo* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkImage* pImage, |
| VkMemoryRequirements* pMemoryRequirements) |
| { |
| AEMU_SCOPED_TRACE("vkCreateImageWithRequirementsGOOGLE"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateImageWithRequirementsGOOGLE_VkResult_return = (VkResult)0; |
| vkCreateImageWithRequirementsGOOGLE_VkResult_return = vkEnc->vkCreateImageWithRequirementsGOOGLE(device, pCreateInfo, pAllocator, pImage, pMemoryRequirements, true /* do lock */); |
| return vkCreateImageWithRequirementsGOOGLE_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkCreateImageWithRequirementsGOOGLE( |
| VkDevice device, |
| const VkImageCreateInfo* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkImage* pImage, |
| VkMemoryRequirements* pMemoryRequirements) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_GOOGLE_gfxstream")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCreateImageWithRequirementsGOOGLE", "VK_GOOGLE_gfxstream"); |
| } |
| AEMU_SCOPED_TRACE("vkCreateImageWithRequirementsGOOGLE"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateImageWithRequirementsGOOGLE_VkResult_return = (VkResult)0; |
| vkCreateImageWithRequirementsGOOGLE_VkResult_return = vkEnc->vkCreateImageWithRequirementsGOOGLE(device, pCreateInfo, pAllocator, pImage, pMemoryRequirements, true /* do lock */); |
| return vkCreateImageWithRequirementsGOOGLE_VkResult_return; |
| } |
| static VkResult entry_vkCreateBufferWithRequirementsGOOGLE( |
| VkDevice device, |
| const VkBufferCreateInfo* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkBuffer* pBuffer, |
| VkMemoryRequirements* pMemoryRequirements) |
| { |
| AEMU_SCOPED_TRACE("vkCreateBufferWithRequirementsGOOGLE"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateBufferWithRequirementsGOOGLE_VkResult_return = (VkResult)0; |
| vkCreateBufferWithRequirementsGOOGLE_VkResult_return = vkEnc->vkCreateBufferWithRequirementsGOOGLE(device, pCreateInfo, pAllocator, pBuffer, pMemoryRequirements, true /* do lock */); |
| return vkCreateBufferWithRequirementsGOOGLE_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkCreateBufferWithRequirementsGOOGLE( |
| VkDevice device, |
| const VkBufferCreateInfo* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkBuffer* pBuffer, |
| VkMemoryRequirements* pMemoryRequirements) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_GOOGLE_gfxstream")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCreateBufferWithRequirementsGOOGLE", "VK_GOOGLE_gfxstream"); |
| } |
| AEMU_SCOPED_TRACE("vkCreateBufferWithRequirementsGOOGLE"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateBufferWithRequirementsGOOGLE_VkResult_return = (VkResult)0; |
| vkCreateBufferWithRequirementsGOOGLE_VkResult_return = vkEnc->vkCreateBufferWithRequirementsGOOGLE(device, pCreateInfo, pAllocator, pBuffer, pMemoryRequirements, true /* do lock */); |
| return vkCreateBufferWithRequirementsGOOGLE_VkResult_return; |
| } |
| static VkResult entry_vkGetMemoryHostAddressInfoGOOGLE( |
| VkDevice device, |
| VkDeviceMemory memory, |
| uint64_t* pAddress, |
| uint64_t* pSize, |
| uint64_t* pHostmemId) |
| { |
| AEMU_SCOPED_TRACE("vkGetMemoryHostAddressInfoGOOGLE"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetMemoryHostAddressInfoGOOGLE_VkResult_return = (VkResult)0; |
| vkGetMemoryHostAddressInfoGOOGLE_VkResult_return = vkEnc->vkGetMemoryHostAddressInfoGOOGLE(device, memory, pAddress, pSize, pHostmemId, true /* do lock */); |
| return vkGetMemoryHostAddressInfoGOOGLE_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkGetMemoryHostAddressInfoGOOGLE( |
| VkDevice device, |
| VkDeviceMemory memory, |
| uint64_t* pAddress, |
| uint64_t* pSize, |
| uint64_t* pHostmemId) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_GOOGLE_gfxstream")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetMemoryHostAddressInfoGOOGLE", "VK_GOOGLE_gfxstream"); |
| } |
| AEMU_SCOPED_TRACE("vkGetMemoryHostAddressInfoGOOGLE"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetMemoryHostAddressInfoGOOGLE_VkResult_return = (VkResult)0; |
| vkGetMemoryHostAddressInfoGOOGLE_VkResult_return = vkEnc->vkGetMemoryHostAddressInfoGOOGLE(device, memory, pAddress, pSize, pHostmemId, true /* do lock */); |
| return vkGetMemoryHostAddressInfoGOOGLE_VkResult_return; |
| } |
| static VkResult entry_vkFreeMemorySyncGOOGLE( |
| VkDevice device, |
| VkDeviceMemory memory, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AEMU_SCOPED_TRACE("vkFreeMemorySyncGOOGLE"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkFreeMemorySyncGOOGLE_VkResult_return = (VkResult)0; |
| vkFreeMemorySyncGOOGLE_VkResult_return = vkEnc->vkFreeMemorySyncGOOGLE(device, memory, pAllocator, true /* do lock */); |
| return vkFreeMemorySyncGOOGLE_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkFreeMemorySyncGOOGLE( |
| VkDevice device, |
| VkDeviceMemory memory, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_GOOGLE_gfxstream")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkFreeMemorySyncGOOGLE", "VK_GOOGLE_gfxstream"); |
| } |
| AEMU_SCOPED_TRACE("vkFreeMemorySyncGOOGLE"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkFreeMemorySyncGOOGLE_VkResult_return = (VkResult)0; |
| vkFreeMemorySyncGOOGLE_VkResult_return = vkEnc->vkFreeMemorySyncGOOGLE(device, memory, pAllocator, true /* do lock */); |
| return vkFreeMemorySyncGOOGLE_VkResult_return; |
| } |
| static void entry_vkQueueHostSyncGOOGLE( |
| VkQueue queue, |
| uint32_t needHostSync, |
| uint32_t sequenceNumber) |
| { |
| AEMU_SCOPED_TRACE("vkQueueHostSyncGOOGLE"); |
| auto vkEnc = ResourceTracker::getQueueEncoder(queue); |
| vkEnc->vkQueueHostSyncGOOGLE(queue, needHostSync, sequenceNumber, true /* do lock */); |
| } |
| static void entry_vkQueueSubmitAsyncGOOGLE( |
| VkQueue queue, |
| uint32_t submitCount, |
| const VkSubmitInfo* pSubmits, |
| VkFence fence) |
| { |
| AEMU_SCOPED_TRACE("vkQueueSubmitAsyncGOOGLE"); |
| auto vkEnc = ResourceTracker::getQueueEncoder(queue); |
| vkEnc->vkQueueSubmitAsyncGOOGLE(queue, submitCount, pSubmits, fence, true /* do lock */); |
| } |
| static void entry_vkQueueWaitIdleAsyncGOOGLE( |
| VkQueue queue) |
| { |
| AEMU_SCOPED_TRACE("vkQueueWaitIdleAsyncGOOGLE"); |
| auto vkEnc = ResourceTracker::getQueueEncoder(queue); |
| vkEnc->vkQueueWaitIdleAsyncGOOGLE(queue, true /* do lock */); |
| } |
| static void entry_vkQueueBindSparseAsyncGOOGLE( |
| VkQueue queue, |
| uint32_t bindInfoCount, |
| const VkBindSparseInfo* pBindInfo, |
| VkFence fence) |
| { |
| AEMU_SCOPED_TRACE("vkQueueBindSparseAsyncGOOGLE"); |
| auto vkEnc = ResourceTracker::getQueueEncoder(queue); |
| vkEnc->vkQueueBindSparseAsyncGOOGLE(queue, bindInfoCount, pBindInfo, fence, true /* do lock */); |
| } |
| static void entry_vkGetLinearImageLayoutGOOGLE( |
| VkDevice device, |
| VkFormat format, |
| VkDeviceSize* pOffset, |
| VkDeviceSize* pRowPitchAlignment) |
| { |
| AEMU_SCOPED_TRACE("vkGetLinearImageLayoutGOOGLE"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkGetLinearImageLayoutGOOGLE(device, format, pOffset, pRowPitchAlignment, true /* do lock */); |
| } |
| static void dynCheck_entry_vkGetLinearImageLayoutGOOGLE( |
| VkDevice device, |
| VkFormat format, |
| VkDeviceSize* pOffset, |
| VkDeviceSize* pRowPitchAlignment) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_GOOGLE_gfxstream")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetLinearImageLayoutGOOGLE", "VK_GOOGLE_gfxstream"); |
| } |
| AEMU_SCOPED_TRACE("vkGetLinearImageLayoutGOOGLE"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkGetLinearImageLayoutGOOGLE(device, format, pOffset, pRowPitchAlignment, true /* do lock */); |
| } |
| static void entry_vkGetLinearImageLayout2GOOGLE( |
| VkDevice device, |
| const VkImageCreateInfo* pCreateInfo, |
| VkDeviceSize* pOffset, |
| VkDeviceSize* pRowPitchAlignment) |
| { |
| AEMU_SCOPED_TRACE("vkGetLinearImageLayout2GOOGLE"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkGetLinearImageLayout2GOOGLE(device, pCreateInfo, pOffset, pRowPitchAlignment, true /* do lock */); |
| } |
| static void dynCheck_entry_vkGetLinearImageLayout2GOOGLE( |
| VkDevice device, |
| const VkImageCreateInfo* pCreateInfo, |
| VkDeviceSize* pOffset, |
| VkDeviceSize* pRowPitchAlignment) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_GOOGLE_gfxstream")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetLinearImageLayout2GOOGLE", "VK_GOOGLE_gfxstream"); |
| } |
| AEMU_SCOPED_TRACE("vkGetLinearImageLayout2GOOGLE"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkGetLinearImageLayout2GOOGLE(device, pCreateInfo, pOffset, pRowPitchAlignment, true /* do lock */); |
| } |
| static void entry_vkQueueFlushCommandsGOOGLE( |
| VkQueue queue, |
| VkCommandBuffer commandBuffer, |
| VkDeviceSize dataSize, |
| const void* pData) |
| { |
| AEMU_SCOPED_TRACE("vkQueueFlushCommandsGOOGLE"); |
| auto vkEnc = ResourceTracker::getQueueEncoder(queue); |
| vkEnc->vkQueueFlushCommandsGOOGLE(queue, commandBuffer, dataSize, pData, true /* do lock */); |
| } |
| static void entry_vkQueueCommitDescriptorSetUpdatesGOOGLE( |
| VkQueue queue, |
| uint32_t descriptorPoolCount, |
| const VkDescriptorPool* pDescriptorPools, |
| uint32_t descriptorSetCount, |
| const VkDescriptorSetLayout* pSetLayouts, |
| const uint64_t* pDescriptorSetPoolIds, |
| const uint32_t* pDescriptorSetWhichPool, |
| const uint32_t* pDescriptorSetPendingAllocation, |
| const uint32_t* pDescriptorWriteStartingIndices, |
| uint32_t pendingDescriptorWriteCount, |
| const VkWriteDescriptorSet* pPendingDescriptorWrites) |
| { |
| AEMU_SCOPED_TRACE("vkQueueCommitDescriptorSetUpdatesGOOGLE"); |
| auto vkEnc = ResourceTracker::getQueueEncoder(queue); |
| vkEnc->vkQueueCommitDescriptorSetUpdatesGOOGLE(queue, descriptorPoolCount, pDescriptorPools, descriptorSetCount, pSetLayouts, pDescriptorSetPoolIds, pDescriptorSetWhichPool, pDescriptorSetPendingAllocation, pDescriptorWriteStartingIndices, pendingDescriptorWriteCount, pPendingDescriptorWrites, true /* do lock */); |
| } |
| static void entry_vkCollectDescriptorPoolIdsGOOGLE( |
| VkDevice device, |
| VkDescriptorPool descriptorPool, |
| uint32_t* pPoolIdCount, |
| uint64_t* pPoolIds) |
| { |
| AEMU_SCOPED_TRACE("vkCollectDescriptorPoolIdsGOOGLE"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkCollectDescriptorPoolIdsGOOGLE(device, descriptorPool, pPoolIdCount, pPoolIds, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCollectDescriptorPoolIdsGOOGLE( |
| VkDevice device, |
| VkDescriptorPool descriptorPool, |
| uint32_t* pPoolIdCount, |
| uint64_t* pPoolIds) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_GOOGLE_gfxstream")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCollectDescriptorPoolIdsGOOGLE", "VK_GOOGLE_gfxstream"); |
| } |
| AEMU_SCOPED_TRACE("vkCollectDescriptorPoolIdsGOOGLE"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkCollectDescriptorPoolIdsGOOGLE(device, descriptorPool, pPoolIdCount, pPoolIds, true /* do lock */); |
| } |
| static void entry_vkQueueSignalReleaseImageANDROIDAsyncGOOGLE( |
| VkQueue queue, |
| uint32_t waitSemaphoreCount, |
| const VkSemaphore* pWaitSemaphores, |
| VkImage image) |
| { |
| AEMU_SCOPED_TRACE("vkQueueSignalReleaseImageANDROIDAsyncGOOGLE"); |
| auto vkEnc = ResourceTracker::getQueueEncoder(queue); |
| vkEnc->vkQueueSignalReleaseImageANDROIDAsyncGOOGLE(queue, waitSemaphoreCount, pWaitSemaphores, image, true /* do lock */); |
| } |
| #endif |
| #ifdef VK_EXT_global_priority_query |
| #endif |
| #ifdef VK_EXT_multi_draw |
| static void entry_vkCmdDrawMultiEXT( |
| VkCommandBuffer commandBuffer, |
| uint32_t drawCount, |
| const VkMultiDrawInfoEXT* pVertexInfo, |
| uint32_t instanceCount, |
| uint32_t firstInstance, |
| uint32_t stride) |
| { |
| AEMU_SCOPED_TRACE("vkCmdDrawMultiEXT"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdDrawMultiEXT(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdDrawMultiEXT( |
| VkCommandBuffer commandBuffer, |
| uint32_t drawCount, |
| const VkMultiDrawInfoEXT* pVertexInfo, |
| uint32_t instanceCount, |
| uint32_t firstInstance, |
| uint32_t stride) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_EXT_multi_draw")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdDrawMultiEXT", "VK_EXT_multi_draw"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdDrawMultiEXT"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdDrawMultiEXT(commandBuffer, drawCount, pVertexInfo, instanceCount, firstInstance, stride, true /* do lock */); |
| } |
| static void entry_vkCmdDrawMultiIndexedEXT( |
| VkCommandBuffer commandBuffer, |
| uint32_t drawCount, |
| const VkMultiDrawIndexedInfoEXT* pIndexInfo, |
| uint32_t instanceCount, |
| uint32_t firstInstance, |
| uint32_t stride, |
| const int32_t* pVertexOffset) |
| { |
| AEMU_SCOPED_TRACE("vkCmdDrawMultiIndexedEXT"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdDrawMultiIndexedEXT(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdDrawMultiIndexedEXT( |
| VkCommandBuffer commandBuffer, |
| uint32_t drawCount, |
| const VkMultiDrawIndexedInfoEXT* pIndexInfo, |
| uint32_t instanceCount, |
| uint32_t firstInstance, |
| uint32_t stride, |
| const int32_t* pVertexOffset) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_EXT_multi_draw")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdDrawMultiIndexedEXT", "VK_EXT_multi_draw"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdDrawMultiIndexedEXT"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdDrawMultiIndexedEXT(commandBuffer, drawCount, pIndexInfo, instanceCount, firstInstance, stride, pVertexOffset, true /* do lock */); |
| } |
| #endif |
| #ifdef VK_EXT_load_store_op_none |
| #endif |
| #ifdef VK_EXT_border_color_swizzle |
| #endif |
| #ifdef VK_EXT_pageable_device_local_memory |
| static void entry_vkSetDeviceMemoryPriorityEXT( |
| VkDevice device, |
| VkDeviceMemory memory, |
| float priority) |
| { |
| AEMU_SCOPED_TRACE("vkSetDeviceMemoryPriorityEXT"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkSetDeviceMemoryPriorityEXT(device, memory, priority, true /* do lock */); |
| } |
| static void dynCheck_entry_vkSetDeviceMemoryPriorityEXT( |
| VkDevice device, |
| VkDeviceMemory memory, |
| float priority) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_EXT_pageable_device_local_memory")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkSetDeviceMemoryPriorityEXT", "VK_EXT_pageable_device_local_memory"); |
| } |
| AEMU_SCOPED_TRACE("vkSetDeviceMemoryPriorityEXT"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkSetDeviceMemoryPriorityEXT(device, memory, priority, true /* do lock */); |
| } |
| #endif |
| #ifdef VK_KHR_acceleration_structure |
| static VkResult entry_vkCreateAccelerationStructureKHR( |
| VkDevice device, |
| const VkAccelerationStructureCreateInfoKHR* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkAccelerationStructureKHR* pAccelerationStructure) |
| { |
| AEMU_SCOPED_TRACE("vkCreateAccelerationStructureKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateAccelerationStructureKHR_VkResult_return = (VkResult)0; |
| vkCreateAccelerationStructureKHR_VkResult_return = vkEnc->vkCreateAccelerationStructureKHR(device, pCreateInfo, pAllocator, pAccelerationStructure, true /* do lock */); |
| return vkCreateAccelerationStructureKHR_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkCreateAccelerationStructureKHR( |
| VkDevice device, |
| const VkAccelerationStructureCreateInfoKHR* pCreateInfo, |
| const VkAllocationCallbacks* pAllocator, |
| VkAccelerationStructureKHR* pAccelerationStructure) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_acceleration_structure")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCreateAccelerationStructureKHR", "VK_KHR_acceleration_structure"); |
| } |
| AEMU_SCOPED_TRACE("vkCreateAccelerationStructureKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateAccelerationStructureKHR_VkResult_return = (VkResult)0; |
| vkCreateAccelerationStructureKHR_VkResult_return = vkEnc->vkCreateAccelerationStructureKHR(device, pCreateInfo, pAllocator, pAccelerationStructure, true /* do lock */); |
| return vkCreateAccelerationStructureKHR_VkResult_return; |
| } |
| static void entry_vkDestroyAccelerationStructureKHR( |
| VkDevice device, |
| VkAccelerationStructureKHR accelerationStructure, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| AEMU_SCOPED_TRACE("vkDestroyAccelerationStructureKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkDestroyAccelerationStructureKHR(device, accelerationStructure, pAllocator, true /* do lock */); |
| } |
| static void dynCheck_entry_vkDestroyAccelerationStructureKHR( |
| VkDevice device, |
| VkAccelerationStructureKHR accelerationStructure, |
| const VkAllocationCallbacks* pAllocator) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_acceleration_structure")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkDestroyAccelerationStructureKHR", "VK_KHR_acceleration_structure"); |
| } |
| AEMU_SCOPED_TRACE("vkDestroyAccelerationStructureKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkDestroyAccelerationStructureKHR(device, accelerationStructure, pAllocator, true /* do lock */); |
| } |
| static void entry_vkCmdBuildAccelerationStructuresKHR( |
| VkCommandBuffer commandBuffer, |
| uint32_t infoCount, |
| const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, |
| const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos) |
| { |
| AEMU_SCOPED_TRACE("vkCmdBuildAccelerationStructuresKHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdBuildAccelerationStructuresKHR(commandBuffer, infoCount, pInfos, ppBuildRangeInfos, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdBuildAccelerationStructuresKHR( |
| VkCommandBuffer commandBuffer, |
| uint32_t infoCount, |
| const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, |
| const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_KHR_acceleration_structure")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdBuildAccelerationStructuresKHR", "VK_KHR_acceleration_structure"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdBuildAccelerationStructuresKHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdBuildAccelerationStructuresKHR(commandBuffer, infoCount, pInfos, ppBuildRangeInfos, true /* do lock */); |
| } |
| static void entry_vkCmdBuildAccelerationStructuresIndirectKHR( |
| VkCommandBuffer commandBuffer, |
| uint32_t infoCount, |
| const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, |
| const VkDeviceAddress* pIndirectDeviceAddresses, |
| const uint32_t* pIndirectStrides, |
| const uint32_t* const* ppMaxPrimitiveCounts) |
| { |
| AEMU_SCOPED_TRACE("vkCmdBuildAccelerationStructuresIndirectKHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdBuildAccelerationStructuresIndirectKHR(commandBuffer, infoCount, pInfos, pIndirectDeviceAddresses, pIndirectStrides, ppMaxPrimitiveCounts, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdBuildAccelerationStructuresIndirectKHR( |
| VkCommandBuffer commandBuffer, |
| uint32_t infoCount, |
| const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, |
| const VkDeviceAddress* pIndirectDeviceAddresses, |
| const uint32_t* pIndirectStrides, |
| const uint32_t* const* ppMaxPrimitiveCounts) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_KHR_acceleration_structure")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdBuildAccelerationStructuresIndirectKHR", "VK_KHR_acceleration_structure"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdBuildAccelerationStructuresIndirectKHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdBuildAccelerationStructuresIndirectKHR(commandBuffer, infoCount, pInfos, pIndirectDeviceAddresses, pIndirectStrides, ppMaxPrimitiveCounts, true /* do lock */); |
| } |
| static VkResult entry_vkBuildAccelerationStructuresKHR( |
| VkDevice device, |
| VkDeferredOperationKHR deferredOperation, |
| uint32_t infoCount, |
| const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, |
| const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos) |
| { |
| AEMU_SCOPED_TRACE("vkBuildAccelerationStructuresKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkBuildAccelerationStructuresKHR_VkResult_return = (VkResult)0; |
| vkBuildAccelerationStructuresKHR_VkResult_return = vkEnc->vkBuildAccelerationStructuresKHR(device, deferredOperation, infoCount, pInfos, ppBuildRangeInfos, true /* do lock */); |
| return vkBuildAccelerationStructuresKHR_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkBuildAccelerationStructuresKHR( |
| VkDevice device, |
| VkDeferredOperationKHR deferredOperation, |
| uint32_t infoCount, |
| const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, |
| const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_acceleration_structure")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkBuildAccelerationStructuresKHR", "VK_KHR_acceleration_structure"); |
| } |
| AEMU_SCOPED_TRACE("vkBuildAccelerationStructuresKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkBuildAccelerationStructuresKHR_VkResult_return = (VkResult)0; |
| vkBuildAccelerationStructuresKHR_VkResult_return = vkEnc->vkBuildAccelerationStructuresKHR(device, deferredOperation, infoCount, pInfos, ppBuildRangeInfos, true /* do lock */); |
| return vkBuildAccelerationStructuresKHR_VkResult_return; |
| } |
| static VkResult entry_vkCopyAccelerationStructureKHR( |
| VkDevice device, |
| VkDeferredOperationKHR deferredOperation, |
| const VkCopyAccelerationStructureInfoKHR* pInfo) |
| { |
| AEMU_SCOPED_TRACE("vkCopyAccelerationStructureKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCopyAccelerationStructureKHR_VkResult_return = (VkResult)0; |
| vkCopyAccelerationStructureKHR_VkResult_return = vkEnc->vkCopyAccelerationStructureKHR(device, deferredOperation, pInfo, true /* do lock */); |
| return vkCopyAccelerationStructureKHR_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkCopyAccelerationStructureKHR( |
| VkDevice device, |
| VkDeferredOperationKHR deferredOperation, |
| const VkCopyAccelerationStructureInfoKHR* pInfo) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_acceleration_structure")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCopyAccelerationStructureKHR", "VK_KHR_acceleration_structure"); |
| } |
| AEMU_SCOPED_TRACE("vkCopyAccelerationStructureKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCopyAccelerationStructureKHR_VkResult_return = (VkResult)0; |
| vkCopyAccelerationStructureKHR_VkResult_return = vkEnc->vkCopyAccelerationStructureKHR(device, deferredOperation, pInfo, true /* do lock */); |
| return vkCopyAccelerationStructureKHR_VkResult_return; |
| } |
| static VkResult entry_vkCopyAccelerationStructureToMemoryKHR( |
| VkDevice device, |
| VkDeferredOperationKHR deferredOperation, |
| const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo) |
| { |
| AEMU_SCOPED_TRACE("vkCopyAccelerationStructureToMemoryKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCopyAccelerationStructureToMemoryKHR_VkResult_return = (VkResult)0; |
| vkCopyAccelerationStructureToMemoryKHR_VkResult_return = vkEnc->vkCopyAccelerationStructureToMemoryKHR(device, deferredOperation, pInfo, true /* do lock */); |
| return vkCopyAccelerationStructureToMemoryKHR_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkCopyAccelerationStructureToMemoryKHR( |
| VkDevice device, |
| VkDeferredOperationKHR deferredOperation, |
| const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_acceleration_structure")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCopyAccelerationStructureToMemoryKHR", "VK_KHR_acceleration_structure"); |
| } |
| AEMU_SCOPED_TRACE("vkCopyAccelerationStructureToMemoryKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCopyAccelerationStructureToMemoryKHR_VkResult_return = (VkResult)0; |
| vkCopyAccelerationStructureToMemoryKHR_VkResult_return = vkEnc->vkCopyAccelerationStructureToMemoryKHR(device, deferredOperation, pInfo, true /* do lock */); |
| return vkCopyAccelerationStructureToMemoryKHR_VkResult_return; |
| } |
| static VkResult entry_vkCopyMemoryToAccelerationStructureKHR( |
| VkDevice device, |
| VkDeferredOperationKHR deferredOperation, |
| const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo) |
| { |
| AEMU_SCOPED_TRACE("vkCopyMemoryToAccelerationStructureKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCopyMemoryToAccelerationStructureKHR_VkResult_return = (VkResult)0; |
| vkCopyMemoryToAccelerationStructureKHR_VkResult_return = vkEnc->vkCopyMemoryToAccelerationStructureKHR(device, deferredOperation, pInfo, true /* do lock */); |
| return vkCopyMemoryToAccelerationStructureKHR_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkCopyMemoryToAccelerationStructureKHR( |
| VkDevice device, |
| VkDeferredOperationKHR deferredOperation, |
| const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_acceleration_structure")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCopyMemoryToAccelerationStructureKHR", "VK_KHR_acceleration_structure"); |
| } |
| AEMU_SCOPED_TRACE("vkCopyMemoryToAccelerationStructureKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCopyMemoryToAccelerationStructureKHR_VkResult_return = (VkResult)0; |
| vkCopyMemoryToAccelerationStructureKHR_VkResult_return = vkEnc->vkCopyMemoryToAccelerationStructureKHR(device, deferredOperation, pInfo, true /* do lock */); |
| return vkCopyMemoryToAccelerationStructureKHR_VkResult_return; |
| } |
| static VkResult entry_vkWriteAccelerationStructuresPropertiesKHR( |
| VkDevice device, |
| uint32_t accelerationStructureCount, |
| const VkAccelerationStructureKHR* pAccelerationStructures, |
| VkQueryType queryType, |
| size_t dataSize, |
| void* pData, |
| size_t stride) |
| { |
| AEMU_SCOPED_TRACE("vkWriteAccelerationStructuresPropertiesKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkWriteAccelerationStructuresPropertiesKHR_VkResult_return = (VkResult)0; |
| vkWriteAccelerationStructuresPropertiesKHR_VkResult_return = vkEnc->vkWriteAccelerationStructuresPropertiesKHR(device, accelerationStructureCount, pAccelerationStructures, queryType, dataSize, pData, stride, true /* do lock */); |
| return vkWriteAccelerationStructuresPropertiesKHR_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkWriteAccelerationStructuresPropertiesKHR( |
| VkDevice device, |
| uint32_t accelerationStructureCount, |
| const VkAccelerationStructureKHR* pAccelerationStructures, |
| VkQueryType queryType, |
| size_t dataSize, |
| void* pData, |
| size_t stride) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_acceleration_structure")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkWriteAccelerationStructuresPropertiesKHR", "VK_KHR_acceleration_structure"); |
| } |
| AEMU_SCOPED_TRACE("vkWriteAccelerationStructuresPropertiesKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkWriteAccelerationStructuresPropertiesKHR_VkResult_return = (VkResult)0; |
| vkWriteAccelerationStructuresPropertiesKHR_VkResult_return = vkEnc->vkWriteAccelerationStructuresPropertiesKHR(device, accelerationStructureCount, pAccelerationStructures, queryType, dataSize, pData, stride, true /* do lock */); |
| return vkWriteAccelerationStructuresPropertiesKHR_VkResult_return; |
| } |
| static void entry_vkCmdCopyAccelerationStructureKHR( |
| VkCommandBuffer commandBuffer, |
| const VkCopyAccelerationStructureInfoKHR* pInfo) |
| { |
| AEMU_SCOPED_TRACE("vkCmdCopyAccelerationStructureKHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdCopyAccelerationStructureKHR(commandBuffer, pInfo, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdCopyAccelerationStructureKHR( |
| VkCommandBuffer commandBuffer, |
| const VkCopyAccelerationStructureInfoKHR* pInfo) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_KHR_acceleration_structure")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdCopyAccelerationStructureKHR", "VK_KHR_acceleration_structure"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdCopyAccelerationStructureKHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdCopyAccelerationStructureKHR(commandBuffer, pInfo, true /* do lock */); |
| } |
| static void entry_vkCmdCopyAccelerationStructureToMemoryKHR( |
| VkCommandBuffer commandBuffer, |
| const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo) |
| { |
| AEMU_SCOPED_TRACE("vkCmdCopyAccelerationStructureToMemoryKHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdCopyAccelerationStructureToMemoryKHR(commandBuffer, pInfo, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdCopyAccelerationStructureToMemoryKHR( |
| VkCommandBuffer commandBuffer, |
| const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_KHR_acceleration_structure")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdCopyAccelerationStructureToMemoryKHR", "VK_KHR_acceleration_structure"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdCopyAccelerationStructureToMemoryKHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdCopyAccelerationStructureToMemoryKHR(commandBuffer, pInfo, true /* do lock */); |
| } |
| static void entry_vkCmdCopyMemoryToAccelerationStructureKHR( |
| VkCommandBuffer commandBuffer, |
| const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo) |
| { |
| AEMU_SCOPED_TRACE("vkCmdCopyMemoryToAccelerationStructureKHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdCopyMemoryToAccelerationStructureKHR(commandBuffer, pInfo, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdCopyMemoryToAccelerationStructureKHR( |
| VkCommandBuffer commandBuffer, |
| const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_KHR_acceleration_structure")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdCopyMemoryToAccelerationStructureKHR", "VK_KHR_acceleration_structure"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdCopyMemoryToAccelerationStructureKHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdCopyMemoryToAccelerationStructureKHR(commandBuffer, pInfo, true /* do lock */); |
| } |
| static VkDeviceAddress entry_vkGetAccelerationStructureDeviceAddressKHR( |
| VkDevice device, |
| const VkAccelerationStructureDeviceAddressInfoKHR* pInfo) |
| { |
| AEMU_SCOPED_TRACE("vkGetAccelerationStructureDeviceAddressKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkDeviceAddress vkGetAccelerationStructureDeviceAddressKHR_VkDeviceAddress_return = (VkDeviceAddress)0; |
| vkGetAccelerationStructureDeviceAddressKHR_VkDeviceAddress_return = vkEnc->vkGetAccelerationStructureDeviceAddressKHR(device, pInfo, true /* do lock */); |
| return vkGetAccelerationStructureDeviceAddressKHR_VkDeviceAddress_return; |
| } |
| static VkDeviceAddress dynCheck_entry_vkGetAccelerationStructureDeviceAddressKHR( |
| VkDevice device, |
| const VkAccelerationStructureDeviceAddressInfoKHR* pInfo) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_acceleration_structure")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetAccelerationStructureDeviceAddressKHR", "VK_KHR_acceleration_structure"); |
| } |
| AEMU_SCOPED_TRACE("vkGetAccelerationStructureDeviceAddressKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkDeviceAddress vkGetAccelerationStructureDeviceAddressKHR_VkDeviceAddress_return = (VkDeviceAddress)0; |
| vkGetAccelerationStructureDeviceAddressKHR_VkDeviceAddress_return = vkEnc->vkGetAccelerationStructureDeviceAddressKHR(device, pInfo, true /* do lock */); |
| return vkGetAccelerationStructureDeviceAddressKHR_VkDeviceAddress_return; |
| } |
| static void entry_vkCmdWriteAccelerationStructuresPropertiesKHR( |
| VkCommandBuffer commandBuffer, |
| uint32_t accelerationStructureCount, |
| const VkAccelerationStructureKHR* pAccelerationStructures, |
| VkQueryType queryType, |
| VkQueryPool queryPool, |
| uint32_t firstQuery) |
| { |
| AEMU_SCOPED_TRACE("vkCmdWriteAccelerationStructuresPropertiesKHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdWriteAccelerationStructuresPropertiesKHR(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdWriteAccelerationStructuresPropertiesKHR( |
| VkCommandBuffer commandBuffer, |
| uint32_t accelerationStructureCount, |
| const VkAccelerationStructureKHR* pAccelerationStructures, |
| VkQueryType queryType, |
| VkQueryPool queryPool, |
| uint32_t firstQuery) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_KHR_acceleration_structure")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdWriteAccelerationStructuresPropertiesKHR", "VK_KHR_acceleration_structure"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdWriteAccelerationStructuresPropertiesKHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdWriteAccelerationStructuresPropertiesKHR(commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery, true /* do lock */); |
| } |
| static void entry_vkGetDeviceAccelerationStructureCompatibilityKHR( |
| VkDevice device, |
| const VkAccelerationStructureVersionInfoKHR* pVersionInfo, |
| VkAccelerationStructureCompatibilityKHR* pCompatibility) |
| { |
| AEMU_SCOPED_TRACE("vkGetDeviceAccelerationStructureCompatibilityKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkGetDeviceAccelerationStructureCompatibilityKHR(device, pVersionInfo, pCompatibility, true /* do lock */); |
| } |
| static void dynCheck_entry_vkGetDeviceAccelerationStructureCompatibilityKHR( |
| VkDevice device, |
| const VkAccelerationStructureVersionInfoKHR* pVersionInfo, |
| VkAccelerationStructureCompatibilityKHR* pCompatibility) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_acceleration_structure")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetDeviceAccelerationStructureCompatibilityKHR", "VK_KHR_acceleration_structure"); |
| } |
| AEMU_SCOPED_TRACE("vkGetDeviceAccelerationStructureCompatibilityKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkGetDeviceAccelerationStructureCompatibilityKHR(device, pVersionInfo, pCompatibility, true /* do lock */); |
| } |
| static void entry_vkGetAccelerationStructureBuildSizesKHR( |
| VkDevice device, |
| VkAccelerationStructureBuildTypeKHR buildType, |
| const VkAccelerationStructureBuildGeometryInfoKHR* pBuildInfo, |
| const uint32_t* pMaxPrimitiveCounts, |
| VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo) |
| { |
| AEMU_SCOPED_TRACE("vkGetAccelerationStructureBuildSizesKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkGetAccelerationStructureBuildSizesKHR(device, buildType, pBuildInfo, pMaxPrimitiveCounts, pSizeInfo, true /* do lock */); |
| } |
| static void dynCheck_entry_vkGetAccelerationStructureBuildSizesKHR( |
| VkDevice device, |
| VkAccelerationStructureBuildTypeKHR buildType, |
| const VkAccelerationStructureBuildGeometryInfoKHR* pBuildInfo, |
| const uint32_t* pMaxPrimitiveCounts, |
| VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_acceleration_structure")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetAccelerationStructureBuildSizesKHR", "VK_KHR_acceleration_structure"); |
| } |
| AEMU_SCOPED_TRACE("vkGetAccelerationStructureBuildSizesKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| vkEnc->vkGetAccelerationStructureBuildSizesKHR(device, buildType, pBuildInfo, pMaxPrimitiveCounts, pSizeInfo, true /* do lock */); |
| } |
| #endif |
| #ifdef VK_KHR_ray_tracing_pipeline |
| static void entry_vkCmdTraceRaysKHR( |
| VkCommandBuffer commandBuffer, |
| const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, |
| const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, |
| const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, |
| const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, |
| uint32_t width, |
| uint32_t height, |
| uint32_t depth) |
| { |
| AEMU_SCOPED_TRACE("vkCmdTraceRaysKHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdTraceRaysKHR(commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, width, height, depth, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdTraceRaysKHR( |
| VkCommandBuffer commandBuffer, |
| const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, |
| const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, |
| const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, |
| const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, |
| uint32_t width, |
| uint32_t height, |
| uint32_t depth) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_KHR_ray_tracing_pipeline")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdTraceRaysKHR", "VK_KHR_ray_tracing_pipeline"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdTraceRaysKHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdTraceRaysKHR(commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, width, height, depth, true /* do lock */); |
| } |
| static VkResult entry_vkCreateRayTracingPipelinesKHR( |
| VkDevice device, |
| VkDeferredOperationKHR deferredOperation, |
| VkPipelineCache pipelineCache, |
| uint32_t createInfoCount, |
| const VkRayTracingPipelineCreateInfoKHR* pCreateInfos, |
| const VkAllocationCallbacks* pAllocator, |
| VkPipeline* pPipelines) |
| { |
| AEMU_SCOPED_TRACE("vkCreateRayTracingPipelinesKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateRayTracingPipelinesKHR_VkResult_return = (VkResult)0; |
| vkCreateRayTracingPipelinesKHR_VkResult_return = vkEnc->vkCreateRayTracingPipelinesKHR(device, deferredOperation, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines, true /* do lock */); |
| return vkCreateRayTracingPipelinesKHR_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkCreateRayTracingPipelinesKHR( |
| VkDevice device, |
| VkDeferredOperationKHR deferredOperation, |
| VkPipelineCache pipelineCache, |
| uint32_t createInfoCount, |
| const VkRayTracingPipelineCreateInfoKHR* pCreateInfos, |
| const VkAllocationCallbacks* pAllocator, |
| VkPipeline* pPipelines) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_ray_tracing_pipeline")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCreateRayTracingPipelinesKHR", "VK_KHR_ray_tracing_pipeline"); |
| } |
| AEMU_SCOPED_TRACE("vkCreateRayTracingPipelinesKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkCreateRayTracingPipelinesKHR_VkResult_return = (VkResult)0; |
| vkCreateRayTracingPipelinesKHR_VkResult_return = vkEnc->vkCreateRayTracingPipelinesKHR(device, deferredOperation, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines, true /* do lock */); |
| return vkCreateRayTracingPipelinesKHR_VkResult_return; |
| } |
| static VkResult entry_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( |
| VkDevice device, |
| VkPipeline pipeline, |
| uint32_t firstGroup, |
| uint32_t groupCount, |
| size_t dataSize, |
| void* pData) |
| { |
| AEMU_SCOPED_TRACE("vkGetRayTracingCaptureReplayShaderGroupHandlesKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetRayTracingCaptureReplayShaderGroupHandlesKHR_VkResult_return = (VkResult)0; |
| vkGetRayTracingCaptureReplayShaderGroupHandlesKHR_VkResult_return = vkEnc->vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData, true /* do lock */); |
| return vkGetRayTracingCaptureReplayShaderGroupHandlesKHR_VkResult_return; |
| } |
| static VkResult dynCheck_entry_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( |
| VkDevice device, |
| VkPipeline pipeline, |
| uint32_t firstGroup, |
| uint32_t groupCount, |
| size_t dataSize, |
| void* pData) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_ray_tracing_pipeline")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetRayTracingCaptureReplayShaderGroupHandlesKHR", "VK_KHR_ray_tracing_pipeline"); |
| } |
| AEMU_SCOPED_TRACE("vkGetRayTracingCaptureReplayShaderGroupHandlesKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkResult vkGetRayTracingCaptureReplayShaderGroupHandlesKHR_VkResult_return = (VkResult)0; |
| vkGetRayTracingCaptureReplayShaderGroupHandlesKHR_VkResult_return = vkEnc->vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(device, pipeline, firstGroup, groupCount, dataSize, pData, true /* do lock */); |
| return vkGetRayTracingCaptureReplayShaderGroupHandlesKHR_VkResult_return; |
| } |
| static void entry_vkCmdTraceRaysIndirectKHR( |
| VkCommandBuffer commandBuffer, |
| const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, |
| const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, |
| const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, |
| const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, |
| VkDeviceAddress indirectDeviceAddress) |
| { |
| AEMU_SCOPED_TRACE("vkCmdTraceRaysIndirectKHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdTraceRaysIndirectKHR(commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, indirectDeviceAddress, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdTraceRaysIndirectKHR( |
| VkCommandBuffer commandBuffer, |
| const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, |
| const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, |
| const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, |
| const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, |
| VkDeviceAddress indirectDeviceAddress) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_KHR_ray_tracing_pipeline")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdTraceRaysIndirectKHR", "VK_KHR_ray_tracing_pipeline"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdTraceRaysIndirectKHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdTraceRaysIndirectKHR(commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, indirectDeviceAddress, true /* do lock */); |
| } |
| static VkDeviceSize entry_vkGetRayTracingShaderGroupStackSizeKHR( |
| VkDevice device, |
| VkPipeline pipeline, |
| uint32_t group, |
| VkShaderGroupShaderKHR groupShader) |
| { |
| AEMU_SCOPED_TRACE("vkGetRayTracingShaderGroupStackSizeKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkDeviceSize vkGetRayTracingShaderGroupStackSizeKHR_VkDeviceSize_return = (VkDeviceSize)0; |
| vkGetRayTracingShaderGroupStackSizeKHR_VkDeviceSize_return = vkEnc->vkGetRayTracingShaderGroupStackSizeKHR(device, pipeline, group, groupShader, true /* do lock */); |
| return vkGetRayTracingShaderGroupStackSizeKHR_VkDeviceSize_return; |
| } |
| static VkDeviceSize dynCheck_entry_vkGetRayTracingShaderGroupStackSizeKHR( |
| VkDevice device, |
| VkPipeline pipeline, |
| uint32_t group, |
| VkShaderGroupShaderKHR groupShader) |
| { |
| auto resources = ResourceTracker::get(); |
| if (!resources->hasDeviceExtension(device, "VK_KHR_ray_tracing_pipeline")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkGetRayTracingShaderGroupStackSizeKHR", "VK_KHR_ray_tracing_pipeline"); |
| } |
| AEMU_SCOPED_TRACE("vkGetRayTracingShaderGroupStackSizeKHR"); |
| auto vkEnc = ResourceTracker::getThreadLocalEncoder(); |
| VkDeviceSize vkGetRayTracingShaderGroupStackSizeKHR_VkDeviceSize_return = (VkDeviceSize)0; |
| vkGetRayTracingShaderGroupStackSizeKHR_VkDeviceSize_return = vkEnc->vkGetRayTracingShaderGroupStackSizeKHR(device, pipeline, group, groupShader, true /* do lock */); |
| return vkGetRayTracingShaderGroupStackSizeKHR_VkDeviceSize_return; |
| } |
| static void entry_vkCmdSetRayTracingPipelineStackSizeKHR( |
| VkCommandBuffer commandBuffer, |
| uint32_t pipelineStackSize) |
| { |
| AEMU_SCOPED_TRACE("vkCmdSetRayTracingPipelineStackSizeKHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSetRayTracingPipelineStackSizeKHR(commandBuffer, pipelineStackSize, true /* do lock */); |
| } |
| static void dynCheck_entry_vkCmdSetRayTracingPipelineStackSizeKHR( |
| VkCommandBuffer commandBuffer, |
| uint32_t pipelineStackSize) |
| { |
| auto resources = ResourceTracker::get(); |
| VkDevice device = resources->getDevice(commandBuffer);; |
| if (!resources->hasDeviceExtension(device, "VK_KHR_ray_tracing_pipeline")) |
| { |
| sOnInvalidDynamicallyCheckedCall("vkCmdSetRayTracingPipelineStackSizeKHR", "VK_KHR_ray_tracing_pipeline"); |
| } |
| AEMU_SCOPED_TRACE("vkCmdSetRayTracingPipelineStackSizeKHR"); |
| auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer); |
| vkEnc->vkCmdSetRayTracingPipelineStackSizeKHR(commandBuffer, pipelineStackSize, true /* do lock */); |
| } |
| #endif |
| #ifdef VK_KHR_ray_query |
| #endif |
| void* goldfish_vulkan_get_proc_address(const char* name){ |
| #ifdef VK_VERSION_1_0 |
| if (!strcmp(name, "vkCreateInstance")) |
| { |
| return (void*)entry_vkCreateInstance; |
| } |
| if (!strcmp(name, "vkDestroyInstance")) |
| { |
| return (void*)entry_vkDestroyInstance; |
| } |
| if (!strcmp(name, "vkEnumeratePhysicalDevices")) |
| { |
| return (void*)entry_vkEnumeratePhysicalDevices; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceFeatures")) |
| { |
| return (void*)entry_vkGetPhysicalDeviceFeatures; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties")) |
| { |
| return (void*)entry_vkGetPhysicalDeviceFormatProperties; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties")) |
| { |
| return (void*)entry_vkGetPhysicalDeviceImageFormatProperties; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceProperties")) |
| { |
| return (void*)entry_vkGetPhysicalDeviceProperties; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties")) |
| { |
| return (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties")) |
| { |
| return (void*)entry_vkGetPhysicalDeviceMemoryProperties; |
| } |
| if (!strcmp(name, "vkGetInstanceProcAddr")) |
| { |
| return (void*)entry_vkGetInstanceProcAddr; |
| } |
| if (!strcmp(name, "vkGetDeviceProcAddr")) |
| { |
| return (void*)entry_vkGetDeviceProcAddr; |
| } |
| if (!strcmp(name, "vkCreateDevice")) |
| { |
| return (void*)entry_vkCreateDevice; |
| } |
| if (!strcmp(name, "vkDestroyDevice")) |
| { |
| return (void*)entry_vkDestroyDevice; |
| } |
| if (!strcmp(name, "vkEnumerateInstanceExtensionProperties")) |
| { |
| return (void*)entry_vkEnumerateInstanceExtensionProperties; |
| } |
| if (!strcmp(name, "vkEnumerateDeviceExtensionProperties")) |
| { |
| return (void*)entry_vkEnumerateDeviceExtensionProperties; |
| } |
| if (!strcmp(name, "vkEnumerateInstanceLayerProperties")) |
| { |
| return (void*)entry_vkEnumerateInstanceLayerProperties; |
| } |
| if (!strcmp(name, "vkEnumerateDeviceLayerProperties")) |
| { |
| return (void*)entry_vkEnumerateDeviceLayerProperties; |
| } |
| if (!strcmp(name, "vkGetDeviceQueue")) |
| { |
| return (void*)entry_vkGetDeviceQueue; |
| } |
| if (!strcmp(name, "vkQueueSubmit")) |
| { |
| return (void*)entry_vkQueueSubmit; |
| } |
| if (!strcmp(name, "vkQueueWaitIdle")) |
| { |
| return (void*)entry_vkQueueWaitIdle; |
| } |
| if (!strcmp(name, "vkDeviceWaitIdle")) |
| { |
| return (void*)entry_vkDeviceWaitIdle; |
| } |
| if (!strcmp(name, "vkAllocateMemory")) |
| { |
| return (void*)entry_vkAllocateMemory; |
| } |
| if (!strcmp(name, "vkFreeMemory")) |
| { |
| return (void*)entry_vkFreeMemory; |
| } |
| if (!strcmp(name, "vkMapMemory")) |
| { |
| return (void*)entry_vkMapMemory; |
| } |
| if (!strcmp(name, "vkUnmapMemory")) |
| { |
| return (void*)entry_vkUnmapMemory; |
| } |
| if (!strcmp(name, "vkFlushMappedMemoryRanges")) |
| { |
| return (void*)entry_vkFlushMappedMemoryRanges; |
| } |
| if (!strcmp(name, "vkInvalidateMappedMemoryRanges")) |
| { |
| return (void*)entry_vkInvalidateMappedMemoryRanges; |
| } |
| if (!strcmp(name, "vkGetDeviceMemoryCommitment")) |
| { |
| return (void*)entry_vkGetDeviceMemoryCommitment; |
| } |
| if (!strcmp(name, "vkBindBufferMemory")) |
| { |
| return (void*)entry_vkBindBufferMemory; |
| } |
| if (!strcmp(name, "vkBindImageMemory")) |
| { |
| return (void*)entry_vkBindImageMemory; |
| } |
| if (!strcmp(name, "vkGetBufferMemoryRequirements")) |
| { |
| return (void*)entry_vkGetBufferMemoryRequirements; |
| } |
| if (!strcmp(name, "vkGetImageMemoryRequirements")) |
| { |
| return (void*)entry_vkGetImageMemoryRequirements; |
| } |
| if (!strcmp(name, "vkGetImageSparseMemoryRequirements")) |
| { |
| return (void*)entry_vkGetImageSparseMemoryRequirements; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties")) |
| { |
| return (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties; |
| } |
| if (!strcmp(name, "vkQueueBindSparse")) |
| { |
| return (void*)entry_vkQueueBindSparse; |
| } |
| if (!strcmp(name, "vkCreateFence")) |
| { |
| return (void*)entry_vkCreateFence; |
| } |
| if (!strcmp(name, "vkDestroyFence")) |
| { |
| return (void*)entry_vkDestroyFence; |
| } |
| if (!strcmp(name, "vkResetFences")) |
| { |
| return (void*)entry_vkResetFences; |
| } |
| if (!strcmp(name, "vkGetFenceStatus")) |
| { |
| return (void*)entry_vkGetFenceStatus; |
| } |
| if (!strcmp(name, "vkWaitForFences")) |
| { |
| return (void*)entry_vkWaitForFences; |
| } |
| if (!strcmp(name, "vkCreateSemaphore")) |
| { |
| return (void*)entry_vkCreateSemaphore; |
| } |
| if (!strcmp(name, "vkDestroySemaphore")) |
| { |
| return (void*)entry_vkDestroySemaphore; |
| } |
| if (!strcmp(name, "vkCreateEvent")) |
| { |
| return (void*)entry_vkCreateEvent; |
| } |
| if (!strcmp(name, "vkDestroyEvent")) |
| { |
| return (void*)entry_vkDestroyEvent; |
| } |
| if (!strcmp(name, "vkGetEventStatus")) |
| { |
| return (void*)entry_vkGetEventStatus; |
| } |
| if (!strcmp(name, "vkSetEvent")) |
| { |
| return (void*)entry_vkSetEvent; |
| } |
| if (!strcmp(name, "vkResetEvent")) |
| { |
| return (void*)entry_vkResetEvent; |
| } |
| if (!strcmp(name, "vkCreateQueryPool")) |
| { |
| return (void*)entry_vkCreateQueryPool; |
| } |
| if (!strcmp(name, "vkDestroyQueryPool")) |
| { |
| return (void*)entry_vkDestroyQueryPool; |
| } |
| if (!strcmp(name, "vkGetQueryPoolResults")) |
| { |
| return (void*)entry_vkGetQueryPoolResults; |
| } |
| if (!strcmp(name, "vkCreateBuffer")) |
| { |
| return (void*)entry_vkCreateBuffer; |
| } |
| if (!strcmp(name, "vkDestroyBuffer")) |
| { |
| return (void*)entry_vkDestroyBuffer; |
| } |
| if (!strcmp(name, "vkCreateBufferView")) |
| { |
| return (void*)entry_vkCreateBufferView; |
| } |
| if (!strcmp(name, "vkDestroyBufferView")) |
| { |
| return (void*)entry_vkDestroyBufferView; |
| } |
| if (!strcmp(name, "vkCreateImage")) |
| { |
| return (void*)entry_vkCreateImage; |
| } |
| if (!strcmp(name, "vkDestroyImage")) |
| { |
| return (void*)entry_vkDestroyImage; |
| } |
| if (!strcmp(name, "vkGetImageSubresourceLayout")) |
| { |
| return (void*)entry_vkGetImageSubresourceLayout; |
| } |
| if (!strcmp(name, "vkCreateImageView")) |
| { |
| return (void*)entry_vkCreateImageView; |
| } |
| if (!strcmp(name, "vkDestroyImageView")) |
| { |
| return (void*)entry_vkDestroyImageView; |
| } |
| if (!strcmp(name, "vkCreateShaderModule")) |
| { |
| return (void*)entry_vkCreateShaderModule; |
| } |
| if (!strcmp(name, "vkDestroyShaderModule")) |
| { |
| return (void*)entry_vkDestroyShaderModule; |
| } |
| if (!strcmp(name, "vkCreatePipelineCache")) |
| { |
| return (void*)entry_vkCreatePipelineCache; |
| } |
| if (!strcmp(name, "vkDestroyPipelineCache")) |
| { |
| return (void*)entry_vkDestroyPipelineCache; |
| } |
| if (!strcmp(name, "vkGetPipelineCacheData")) |
| { |
| return (void*)entry_vkGetPipelineCacheData; |
| } |
| if (!strcmp(name, "vkMergePipelineCaches")) |
| { |
| return (void*)entry_vkMergePipelineCaches; |
| } |
| if (!strcmp(name, "vkCreateGraphicsPipelines")) |
| { |
| return (void*)entry_vkCreateGraphicsPipelines; |
| } |
| if (!strcmp(name, "vkCreateComputePipelines")) |
| { |
| return (void*)entry_vkCreateComputePipelines; |
| } |
| if (!strcmp(name, "vkDestroyPipeline")) |
| { |
| return (void*)entry_vkDestroyPipeline; |
| } |
| if (!strcmp(name, "vkCreatePipelineLayout")) |
| { |
| return (void*)entry_vkCreatePipelineLayout; |
| } |
| if (!strcmp(name, "vkDestroyPipelineLayout")) |
| { |
| return (void*)entry_vkDestroyPipelineLayout; |
| } |
| if (!strcmp(name, "vkCreateSampler")) |
| { |
| return (void*)entry_vkCreateSampler; |
| } |
| if (!strcmp(name, "vkDestroySampler")) |
| { |
| return (void*)entry_vkDestroySampler; |
| } |
| if (!strcmp(name, "vkCreateDescriptorSetLayout")) |
| { |
| return (void*)entry_vkCreateDescriptorSetLayout; |
| } |
| if (!strcmp(name, "vkDestroyDescriptorSetLayout")) |
| { |
| return (void*)entry_vkDestroyDescriptorSetLayout; |
| } |
| if (!strcmp(name, "vkCreateDescriptorPool")) |
| { |
| return (void*)entry_vkCreateDescriptorPool; |
| } |
| if (!strcmp(name, "vkDestroyDescriptorPool")) |
| { |
| return (void*)entry_vkDestroyDescriptorPool; |
| } |
| if (!strcmp(name, "vkResetDescriptorPool")) |
| { |
| return (void*)entry_vkResetDescriptorPool; |
| } |
| if (!strcmp(name, "vkAllocateDescriptorSets")) |
| { |
| return (void*)entry_vkAllocateDescriptorSets; |
| } |
| if (!strcmp(name, "vkFreeDescriptorSets")) |
| { |
| return (void*)entry_vkFreeDescriptorSets; |
| } |
| if (!strcmp(name, "vkUpdateDescriptorSets")) |
| { |
| return (void*)entry_vkUpdateDescriptorSets; |
| } |
| if (!strcmp(name, "vkCreateFramebuffer")) |
| { |
| return (void*)entry_vkCreateFramebuffer; |
| } |
| if (!strcmp(name, "vkDestroyFramebuffer")) |
| { |
| return (void*)entry_vkDestroyFramebuffer; |
| } |
| if (!strcmp(name, "vkCreateRenderPass")) |
| { |
| return (void*)entry_vkCreateRenderPass; |
| } |
| if (!strcmp(name, "vkDestroyRenderPass")) |
| { |
| return (void*)entry_vkDestroyRenderPass; |
| } |
| if (!strcmp(name, "vkGetRenderAreaGranularity")) |
| { |
| return (void*)entry_vkGetRenderAreaGranularity; |
| } |
| if (!strcmp(name, "vkCreateCommandPool")) |
| { |
| return (void*)entry_vkCreateCommandPool; |
| } |
| if (!strcmp(name, "vkDestroyCommandPool")) |
| { |
| return (void*)entry_vkDestroyCommandPool; |
| } |
| if (!strcmp(name, "vkResetCommandPool")) |
| { |
| return (void*)entry_vkResetCommandPool; |
| } |
| if (!strcmp(name, "vkAllocateCommandBuffers")) |
| { |
| return (void*)entry_vkAllocateCommandBuffers; |
| } |
| if (!strcmp(name, "vkFreeCommandBuffers")) |
| { |
| return (void*)entry_vkFreeCommandBuffers; |
| } |
| if (!strcmp(name, "vkBeginCommandBuffer")) |
| { |
| return (void*)entry_vkBeginCommandBuffer; |
| } |
| if (!strcmp(name, "vkEndCommandBuffer")) |
| { |
| return (void*)entry_vkEndCommandBuffer; |
| } |
| if (!strcmp(name, "vkResetCommandBuffer")) |
| { |
| return (void*)entry_vkResetCommandBuffer; |
| } |
| if (!strcmp(name, "vkCmdBindPipeline")) |
| { |
| return (void*)entry_vkCmdBindPipeline; |
| } |
| if (!strcmp(name, "vkCmdSetViewport")) |
| { |
| return (void*)entry_vkCmdSetViewport; |
| } |
| if (!strcmp(name, "vkCmdSetScissor")) |
| { |
| return (void*)entry_vkCmdSetScissor; |
| } |
| if (!strcmp(name, "vkCmdSetLineWidth")) |
| { |
| return (void*)entry_vkCmdSetLineWidth; |
| } |
| if (!strcmp(name, "vkCmdSetDepthBias")) |
| { |
| return (void*)entry_vkCmdSetDepthBias; |
| } |
| if (!strcmp(name, "vkCmdSetBlendConstants")) |
| { |
| return (void*)entry_vkCmdSetBlendConstants; |
| } |
| if (!strcmp(name, "vkCmdSetDepthBounds")) |
| { |
| return (void*)entry_vkCmdSetDepthBounds; |
| } |
| if (!strcmp(name, "vkCmdSetStencilCompareMask")) |
| { |
| return (void*)entry_vkCmdSetStencilCompareMask; |
| } |
| if (!strcmp(name, "vkCmdSetStencilWriteMask")) |
| { |
| return (void*)entry_vkCmdSetStencilWriteMask; |
| } |
| if (!strcmp(name, "vkCmdSetStencilReference")) |
| { |
| return (void*)entry_vkCmdSetStencilReference; |
| } |
| if (!strcmp(name, "vkCmdBindDescriptorSets")) |
| { |
| return (void*)entry_vkCmdBindDescriptorSets; |
| } |
| if (!strcmp(name, "vkCmdBindIndexBuffer")) |
| { |
| return (void*)entry_vkCmdBindIndexBuffer; |
| } |
| if (!strcmp(name, "vkCmdBindVertexBuffers")) |
| { |
| return (void*)entry_vkCmdBindVertexBuffers; |
| } |
| if (!strcmp(name, "vkCmdDraw")) |
| { |
| return (void*)entry_vkCmdDraw; |
| } |
| if (!strcmp(name, "vkCmdDrawIndexed")) |
| { |
| return (void*)entry_vkCmdDrawIndexed; |
| } |
| if (!strcmp(name, "vkCmdDrawIndirect")) |
| { |
| return (void*)entry_vkCmdDrawIndirect; |
| } |
| if (!strcmp(name, "vkCmdDrawIndexedIndirect")) |
| { |
| return (void*)entry_vkCmdDrawIndexedIndirect; |
| } |
| if (!strcmp(name, "vkCmdDispatch")) |
| { |
| return (void*)entry_vkCmdDispatch; |
| } |
| if (!strcmp(name, "vkCmdDispatchIndirect")) |
| { |
| return (void*)entry_vkCmdDispatchIndirect; |
| } |
| if (!strcmp(name, "vkCmdCopyBuffer")) |
| { |
| return (void*)entry_vkCmdCopyBuffer; |
| } |
| if (!strcmp(name, "vkCmdCopyImage")) |
| { |
| return (void*)entry_vkCmdCopyImage; |
| } |
| if (!strcmp(name, "vkCmdBlitImage")) |
| { |
| return (void*)entry_vkCmdBlitImage; |
| } |
| if (!strcmp(name, "vkCmdCopyBufferToImage")) |
| { |
| return (void*)entry_vkCmdCopyBufferToImage; |
| } |
| if (!strcmp(name, "vkCmdCopyImageToBuffer")) |
| { |
| return (void*)entry_vkCmdCopyImageToBuffer; |
| } |
| if (!strcmp(name, "vkCmdUpdateBuffer")) |
| { |
| return (void*)entry_vkCmdUpdateBuffer; |
| } |
| if (!strcmp(name, "vkCmdFillBuffer")) |
| { |
| return (void*)entry_vkCmdFillBuffer; |
| } |
| if (!strcmp(name, "vkCmdClearColorImage")) |
| { |
| return (void*)entry_vkCmdClearColorImage; |
| } |
| if (!strcmp(name, "vkCmdClearDepthStencilImage")) |
| { |
| return (void*)entry_vkCmdClearDepthStencilImage; |
| } |
| if (!strcmp(name, "vkCmdClearAttachments")) |
| { |
| return (void*)entry_vkCmdClearAttachments; |
| } |
| if (!strcmp(name, "vkCmdResolveImage")) |
| { |
| return (void*)entry_vkCmdResolveImage; |
| } |
| if (!strcmp(name, "vkCmdSetEvent")) |
| { |
| return (void*)entry_vkCmdSetEvent; |
| } |
| if (!strcmp(name, "vkCmdResetEvent")) |
| { |
| return (void*)entry_vkCmdResetEvent; |
| } |
| if (!strcmp(name, "vkCmdWaitEvents")) |
| { |
| return (void*)entry_vkCmdWaitEvents; |
| } |
| if (!strcmp(name, "vkCmdPipelineBarrier")) |
| { |
| return (void*)entry_vkCmdPipelineBarrier; |
| } |
| if (!strcmp(name, "vkCmdBeginQuery")) |
| { |
| return (void*)entry_vkCmdBeginQuery; |
| } |
| if (!strcmp(name, "vkCmdEndQuery")) |
| { |
| return (void*)entry_vkCmdEndQuery; |
| } |
| if (!strcmp(name, "vkCmdResetQueryPool")) |
| { |
| return (void*)entry_vkCmdResetQueryPool; |
| } |
| if (!strcmp(name, "vkCmdWriteTimestamp")) |
| { |
| return (void*)entry_vkCmdWriteTimestamp; |
| } |
| if (!strcmp(name, "vkCmdCopyQueryPoolResults")) |
| { |
| return (void*)entry_vkCmdCopyQueryPoolResults; |
| } |
| if (!strcmp(name, "vkCmdPushConstants")) |
| { |
| return (void*)entry_vkCmdPushConstants; |
| } |
| if (!strcmp(name, "vkCmdBeginRenderPass")) |
| { |
| return (void*)entry_vkCmdBeginRenderPass; |
| } |
| if (!strcmp(name, "vkCmdNextSubpass")) |
| { |
| return (void*)entry_vkCmdNextSubpass; |
| } |
| if (!strcmp(name, "vkCmdEndRenderPass")) |
| { |
| return (void*)entry_vkCmdEndRenderPass; |
| } |
| if (!strcmp(name, "vkCmdExecuteCommands")) |
| { |
| return (void*)entry_vkCmdExecuteCommands; |
| } |
| #endif |
| #ifdef VK_VERSION_1_1 |
| if (!strcmp(name, "vkEnumerateInstanceVersion")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkBindBufferMemory2")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkBindImageMemory2")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetDeviceGroupPeerMemoryFeatures")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdSetDeviceMask")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdDispatchBase")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkEnumeratePhysicalDeviceGroups")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetImageMemoryRequirements2")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetBufferMemoryRequirements2")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetImageSparseMemoryRequirements2")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceFeatures2")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceProperties2")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties2")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties2")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties2")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties2")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties2")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkTrimCommandPool")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetDeviceQueue2")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCreateSamplerYcbcrConversion")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkDestroySamplerYcbcrConversion")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCreateDescriptorUpdateTemplate")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkDestroyDescriptorUpdateTemplate")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkUpdateDescriptorSetWithTemplate")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceExternalBufferProperties")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceExternalFenceProperties")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceExternalSemaphoreProperties")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetDescriptorSetLayoutSupport")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_VERSION_1_2 |
| if (!strcmp(name, "vkCmdDrawIndirectCount")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdDrawIndexedIndirectCount")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCreateRenderPass2")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdBeginRenderPass2")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdNextSubpass2")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdEndRenderPass2")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkResetQueryPool")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetSemaphoreCounterValue")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkWaitSemaphores")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkSignalSemaphore")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetBufferDeviceAddress")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetBufferOpaqueCaptureAddress")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetDeviceMemoryOpaqueCaptureAddress")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_surface |
| if (!strcmp(name, "vkDestroySurfaceKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceSurfaceSupportKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceSurfaceFormatsKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceSurfacePresentModesKHR")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_swapchain |
| if (!strcmp(name, "vkCreateSwapchainKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkDestroySwapchainKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetSwapchainImagesKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkAcquireNextImageKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkQueuePresentKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetDeviceGroupPresentCapabilitiesKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetDeviceGroupSurfacePresentModesKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDevicePresentRectanglesKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkAcquireNextImage2KHR")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_display |
| if (!strcmp(name, "vkGetPhysicalDeviceDisplayPropertiesKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetDisplayPlaneSupportedDisplaysKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetDisplayModePropertiesKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCreateDisplayModeKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetDisplayPlaneCapabilitiesKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCreateDisplayPlaneSurfaceKHR")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_display_swapchain |
| if (!strcmp(name, "vkCreateSharedSwapchainsKHR")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_xlib_surface |
| if (!strcmp(name, "vkCreateXlibSurfaceKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceXlibPresentationSupportKHR")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_xcb_surface |
| if (!strcmp(name, "vkCreateXcbSurfaceKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceXcbPresentationSupportKHR")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_wayland_surface |
| if (!strcmp(name, "vkCreateWaylandSurfaceKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceWaylandPresentationSupportKHR")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_android_surface |
| if (!strcmp(name, "vkCreateAndroidSurfaceKHR")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_win32_surface |
| if (!strcmp(name, "vkCreateWin32SurfaceKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceWin32PresentationSupportKHR")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_video_queue |
| if (!strcmp(name, "vkGetPhysicalDeviceVideoCapabilitiesKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceVideoFormatPropertiesKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCreateVideoSessionKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkDestroyVideoSessionKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetVideoSessionMemoryRequirementsKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkBindVideoSessionMemoryKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCreateVideoSessionParametersKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkUpdateVideoSessionParametersKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkDestroyVideoSessionParametersKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdBeginVideoCodingKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdEndVideoCodingKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdControlVideoCodingKHR")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_video_decode_queue |
| if (!strcmp(name, "vkCmdDecodeVideoKHR")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_dynamic_rendering |
| if (!strcmp(name, "vkCmdBeginRenderingKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdEndRenderingKHR")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_get_physical_device_properties2 |
| if (!strcmp(name, "vkGetPhysicalDeviceFeatures2KHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceProperties2KHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties2KHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties2KHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties2KHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties2KHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_device_group |
| if (!strcmp(name, "vkGetDeviceGroupPeerMemoryFeaturesKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdSetDeviceMaskKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdDispatchBaseKHR")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_maintenance1 |
| if (!strcmp(name, "vkTrimCommandPoolKHR")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_device_group_creation |
| if (!strcmp(name, "vkEnumeratePhysicalDeviceGroupsKHR")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_external_memory_capabilities |
| if (!strcmp(name, "vkGetPhysicalDeviceExternalBufferPropertiesKHR")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_external_memory_win32 |
| if (!strcmp(name, "vkGetMemoryWin32HandleKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetMemoryWin32HandlePropertiesKHR")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_external_memory_fd |
| if (!strcmp(name, "vkGetMemoryFdKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetMemoryFdPropertiesKHR")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_external_semaphore_capabilities |
| if (!strcmp(name, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_external_semaphore_win32 |
| if (!strcmp(name, "vkImportSemaphoreWin32HandleKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetSemaphoreWin32HandleKHR")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_external_semaphore_fd |
| if (!strcmp(name, "vkImportSemaphoreFdKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetSemaphoreFdKHR")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_push_descriptor |
| if (!strcmp(name, "vkCmdPushDescriptorSetKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdPushDescriptorSetWithTemplateKHR")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_descriptor_update_template |
| if (!strcmp(name, "vkCreateDescriptorUpdateTemplateKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkDestroyDescriptorUpdateTemplateKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkUpdateDescriptorSetWithTemplateKHR")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_create_renderpass2 |
| if (!strcmp(name, "vkCreateRenderPass2KHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdBeginRenderPass2KHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdNextSubpass2KHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdEndRenderPass2KHR")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_shared_presentable_image |
| if (!strcmp(name, "vkGetSwapchainStatusKHR")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_external_fence_capabilities |
| if (!strcmp(name, "vkGetPhysicalDeviceExternalFencePropertiesKHR")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_external_fence_win32 |
| if (!strcmp(name, "vkImportFenceWin32HandleKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetFenceWin32HandleKHR")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_external_fence_fd |
| if (!strcmp(name, "vkImportFenceFdKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetFenceFdKHR")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_performance_query |
| if (!strcmp(name, "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkAcquireProfilingLockKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkReleaseProfilingLockKHR")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_get_surface_capabilities2 |
| if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2KHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceSurfaceFormats2KHR")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_get_display_properties2 |
| if (!strcmp(name, "vkGetPhysicalDeviceDisplayProperties2KHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetDisplayModeProperties2KHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetDisplayPlaneCapabilities2KHR")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_get_memory_requirements2 |
| if (!strcmp(name, "vkGetImageMemoryRequirements2KHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetBufferMemoryRequirements2KHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetImageSparseMemoryRequirements2KHR")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_sampler_ycbcr_conversion |
| if (!strcmp(name, "vkCreateSamplerYcbcrConversionKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkDestroySamplerYcbcrConversionKHR")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_bind_memory2 |
| if (!strcmp(name, "vkBindBufferMemory2KHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkBindImageMemory2KHR")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_maintenance3 |
| if (!strcmp(name, "vkGetDescriptorSetLayoutSupportKHR")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_draw_indirect_count |
| if (!strcmp(name, "vkCmdDrawIndirectCountKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdDrawIndexedIndirectCountKHR")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_timeline_semaphore |
| if (!strcmp(name, "vkGetSemaphoreCounterValueKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkWaitSemaphoresKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkSignalSemaphoreKHR")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_fragment_shading_rate |
| if (!strcmp(name, "vkGetPhysicalDeviceFragmentShadingRatesKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdSetFragmentShadingRateKHR")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_present_wait |
| if (!strcmp(name, "vkWaitForPresentKHR")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_buffer_device_address |
| if (!strcmp(name, "vkGetBufferDeviceAddressKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetBufferOpaqueCaptureAddressKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetDeviceMemoryOpaqueCaptureAddressKHR")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_deferred_host_operations |
| if (!strcmp(name, "vkCreateDeferredOperationKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkDestroyDeferredOperationKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetDeferredOperationMaxConcurrencyKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetDeferredOperationResultKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkDeferredOperationJoinKHR")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_pipeline_executable_properties |
| if (!strcmp(name, "vkGetPipelineExecutablePropertiesKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetPipelineExecutableStatisticsKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetPipelineExecutableInternalRepresentationsKHR")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_video_encode_queue |
| if (!strcmp(name, "vkCmdEncodeVideoKHR")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_synchronization2 |
| if (!strcmp(name, "vkCmdSetEvent2KHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdResetEvent2KHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdWaitEvents2KHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdPipelineBarrier2KHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdWriteTimestamp2KHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkQueueSubmit2KHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdWriteBufferMarker2AMD")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetQueueCheckpointData2NV")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_copy_commands2 |
| if (!strcmp(name, "vkCmdCopyBuffer2KHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdCopyImage2KHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdCopyBufferToImage2KHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdCopyImageToBuffer2KHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdBlitImage2KHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdResolveImage2KHR")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_maintenance4 |
| if (!strcmp(name, "vkGetDeviceBufferMemoryRequirementsKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetDeviceImageMemoryRequirementsKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetDeviceImageSparseMemoryRequirementsKHR")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_ANDROID_native_buffer |
| if (!strcmp(name, "vkGetSwapchainGrallocUsageANDROID")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkAcquireImageANDROID")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkQueueSignalReleaseImageANDROID")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_debug_report |
| if (!strcmp(name, "vkCreateDebugReportCallbackEXT")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkDestroyDebugReportCallbackEXT")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkDebugReportMessageEXT")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_debug_marker |
| if (!strcmp(name, "vkDebugMarkerSetObjectTagEXT")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkDebugMarkerSetObjectNameEXT")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdDebugMarkerBeginEXT")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdDebugMarkerEndEXT")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdDebugMarkerInsertEXT")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_transform_feedback |
| if (!strcmp(name, "vkCmdBindTransformFeedbackBuffersEXT")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdBeginTransformFeedbackEXT")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdEndTransformFeedbackEXT")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdBeginQueryIndexedEXT")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdEndQueryIndexedEXT")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdDrawIndirectByteCountEXT")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_NVX_binary_import |
| if (!strcmp(name, "vkCreateCuModuleNVX")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCreateCuFunctionNVX")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkDestroyCuModuleNVX")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkDestroyCuFunctionNVX")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdCuLaunchKernelNVX")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_NVX_image_view_handle |
| if (!strcmp(name, "vkGetImageViewHandleNVX")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetImageViewAddressNVX")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_AMD_draw_indirect_count |
| if (!strcmp(name, "vkCmdDrawIndirectCountAMD")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdDrawIndexedIndirectCountAMD")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_AMD_shader_info |
| if (!strcmp(name, "vkGetShaderInfoAMD")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_GGP_stream_descriptor_surface |
| if (!strcmp(name, "vkCreateStreamDescriptorSurfaceGGP")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_NV_external_memory_capabilities |
| if (!strcmp(name, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_NV_external_memory_win32 |
| if (!strcmp(name, "vkGetMemoryWin32HandleNV")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_NN_vi_surface |
| if (!strcmp(name, "vkCreateViSurfaceNN")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_conditional_rendering |
| if (!strcmp(name, "vkCmdBeginConditionalRenderingEXT")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdEndConditionalRenderingEXT")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_NV_clip_space_w_scaling |
| if (!strcmp(name, "vkCmdSetViewportWScalingNV")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_direct_mode_display |
| if (!strcmp(name, "vkReleaseDisplayEXT")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_acquire_xlib_display |
| if (!strcmp(name, "vkAcquireXlibDisplayEXT")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetRandROutputDisplayEXT")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_display_surface_counter |
| if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2EXT")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_display_control |
| if (!strcmp(name, "vkDisplayPowerControlEXT")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkRegisterDeviceEventEXT")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkRegisterDisplayEventEXT")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetSwapchainCounterEXT")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_GOOGLE_display_timing |
| if (!strcmp(name, "vkGetRefreshCycleDurationGOOGLE")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetPastPresentationTimingGOOGLE")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_discard_rectangles |
| if (!strcmp(name, "vkCmdSetDiscardRectangleEXT")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_hdr_metadata |
| if (!strcmp(name, "vkSetHdrMetadataEXT")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_MVK_ios_surface |
| if (!strcmp(name, "vkCreateIOSSurfaceMVK")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_MVK_macos_surface |
| if (!strcmp(name, "vkCreateMacOSSurfaceMVK")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_MVK_moltenvk |
| if (!strcmp(name, "vkGetMTLDeviceMVK")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkSetMTLTextureMVK")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetMTLTextureMVK")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetMTLBufferMVK")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkUseIOSurfaceMVK")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetIOSurfaceMVK")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_debug_utils |
| if (!strcmp(name, "vkSetDebugUtilsObjectNameEXT")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkSetDebugUtilsObjectTagEXT")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkQueueBeginDebugUtilsLabelEXT")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkQueueEndDebugUtilsLabelEXT")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkQueueInsertDebugUtilsLabelEXT")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdBeginDebugUtilsLabelEXT")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdEndDebugUtilsLabelEXT")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdInsertDebugUtilsLabelEXT")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCreateDebugUtilsMessengerEXT")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkDestroyDebugUtilsMessengerEXT")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkSubmitDebugUtilsMessageEXT")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_ANDROID_external_memory_android_hardware_buffer |
| if (!strcmp(name, "vkGetAndroidHardwareBufferPropertiesANDROID")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetMemoryAndroidHardwareBufferANDROID")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_sample_locations |
| if (!strcmp(name, "vkCmdSetSampleLocationsEXT")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceMultisamplePropertiesEXT")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_image_drm_format_modifier |
| if (!strcmp(name, "vkGetImageDrmFormatModifierPropertiesEXT")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_validation_cache |
| if (!strcmp(name, "vkCreateValidationCacheEXT")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkDestroyValidationCacheEXT")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkMergeValidationCachesEXT")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetValidationCacheDataEXT")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_NV_shading_rate_image |
| if (!strcmp(name, "vkCmdBindShadingRateImageNV")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdSetViewportShadingRatePaletteNV")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdSetCoarseSampleOrderNV")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_NV_ray_tracing |
| if (!strcmp(name, "vkCreateAccelerationStructureNV")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkDestroyAccelerationStructureNV")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetAccelerationStructureMemoryRequirementsNV")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkBindAccelerationStructureMemoryNV")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdBuildAccelerationStructureNV")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdCopyAccelerationStructureNV")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdTraceRaysNV")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCreateRayTracingPipelinesNV")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetRayTracingShaderGroupHandlesKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetRayTracingShaderGroupHandlesNV")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetAccelerationStructureHandleNV")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdWriteAccelerationStructuresPropertiesNV")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCompileDeferredNV")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_external_memory_host |
| if (!strcmp(name, "vkGetMemoryHostPointerPropertiesEXT")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_AMD_buffer_marker |
| if (!strcmp(name, "vkCmdWriteBufferMarkerAMD")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_calibrated_timestamps |
| if (!strcmp(name, "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetCalibratedTimestampsEXT")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_NV_mesh_shader |
| if (!strcmp(name, "vkCmdDrawMeshTasksNV")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdDrawMeshTasksIndirectNV")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdDrawMeshTasksIndirectCountNV")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_NV_scissor_exclusive |
| if (!strcmp(name, "vkCmdSetExclusiveScissorNV")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_NV_device_diagnostic_checkpoints |
| if (!strcmp(name, "vkCmdSetCheckpointNV")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetQueueCheckpointDataNV")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_INTEL_performance_query |
| if (!strcmp(name, "vkInitializePerformanceApiINTEL")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkUninitializePerformanceApiINTEL")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdSetPerformanceMarkerINTEL")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdSetPerformanceStreamMarkerINTEL")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdSetPerformanceOverrideINTEL")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkAcquirePerformanceConfigurationINTEL")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkReleasePerformanceConfigurationINTEL")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkQueueSetPerformanceConfigurationINTEL")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetPerformanceParameterINTEL")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_AMD_display_native_hdr |
| if (!strcmp(name, "vkSetLocalDimmingAMD")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_FUCHSIA_imagepipe_surface |
| if (!strcmp(name, "vkCreateImagePipeSurfaceFUCHSIA")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_metal_surface |
| if (!strcmp(name, "vkCreateMetalSurfaceEXT")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_buffer_device_address |
| if (!strcmp(name, "vkGetBufferDeviceAddressEXT")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_tooling_info |
| if (!strcmp(name, "vkGetPhysicalDeviceToolPropertiesEXT")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_NV_cooperative_matrix |
| if (!strcmp(name, "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_NV_coverage_reduction_mode |
| if (!strcmp(name, "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_full_screen_exclusive |
| if (!strcmp(name, "vkGetPhysicalDeviceSurfacePresentModes2EXT")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkAcquireFullScreenExclusiveModeEXT")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkReleaseFullScreenExclusiveModeEXT")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetDeviceGroupSurfacePresentModes2EXT")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_headless_surface |
| if (!strcmp(name, "vkCreateHeadlessSurfaceEXT")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_line_rasterization |
| if (!strcmp(name, "vkCmdSetLineStippleEXT")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_host_query_reset |
| if (!strcmp(name, "vkResetQueryPoolEXT")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_extended_dynamic_state |
| if (!strcmp(name, "vkCmdSetCullModeEXT")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdSetFrontFaceEXT")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdSetPrimitiveTopologyEXT")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdSetViewportWithCountEXT")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdSetScissorWithCountEXT")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdBindVertexBuffers2EXT")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdSetDepthTestEnableEXT")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdSetDepthWriteEnableEXT")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdSetDepthCompareOpEXT")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdSetDepthBoundsTestEnableEXT")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdSetStencilTestEnableEXT")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdSetStencilOpEXT")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_NV_device_generated_commands |
| if (!strcmp(name, "vkGetGeneratedCommandsMemoryRequirementsNV")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdPreprocessGeneratedCommandsNV")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdExecuteGeneratedCommandsNV")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdBindPipelineShaderGroupNV")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCreateIndirectCommandsLayoutNV")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkDestroyIndirectCommandsLayoutNV")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_acquire_drm_display |
| if (!strcmp(name, "vkAcquireDrmDisplayEXT")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetDrmDisplayEXT")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_private_data |
| if (!strcmp(name, "vkCreatePrivateDataSlotEXT")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkDestroyPrivateDataSlotEXT")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkSetPrivateDataEXT")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetPrivateDataEXT")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_NV_fragment_shading_rate_enums |
| if (!strcmp(name, "vkCmdSetFragmentShadingRateEnumNV")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_NV_acquire_winrt_display |
| if (!strcmp(name, "vkAcquireWinrtDisplayNV")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetWinrtDisplayNV")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_directfb_surface |
| if (!strcmp(name, "vkCreateDirectFBSurfaceEXT")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceDirectFBPresentationSupportEXT")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_vertex_input_dynamic_state |
| if (!strcmp(name, "vkCmdSetVertexInputEXT")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_FUCHSIA_external_memory |
| if (!strcmp(name, "vkGetMemoryZirconHandleFUCHSIA")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetMemoryZirconHandlePropertiesFUCHSIA")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_FUCHSIA_external_semaphore |
| if (!strcmp(name, "vkImportSemaphoreZirconHandleFUCHSIA")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetSemaphoreZirconHandleFUCHSIA")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_FUCHSIA_buffer_collection |
| if (!strcmp(name, "vkCreateBufferCollectionFUCHSIA")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkSetBufferCollectionImageConstraintsFUCHSIA")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkSetBufferCollectionBufferConstraintsFUCHSIA")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkDestroyBufferCollectionFUCHSIA")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetBufferCollectionPropertiesFUCHSIA")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_HUAWEI_subpass_shading |
| if (!strcmp(name, "vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdSubpassShadingHUAWEI")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_HUAWEI_invocation_mask |
| if (!strcmp(name, "vkCmdBindInvocationMaskHUAWEI")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_NV_external_memory_rdma |
| if (!strcmp(name, "vkGetMemoryRemoteAddressNV")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_extended_dynamic_state2 |
| if (!strcmp(name, "vkCmdSetPatchControlPointsEXT")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdSetRasterizerDiscardEnableEXT")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdSetDepthBiasEnableEXT")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdSetLogicOpEXT")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdSetPrimitiveRestartEnableEXT")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_QNX_screen_surface |
| if (!strcmp(name, "vkCreateScreenSurfaceQNX")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceScreenPresentationSupportQNX")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_color_write_enable |
| if (!strcmp(name, "vkCmdSetColorWriteEnableEXT")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_GOOGLE_gfxstream |
| if (!strcmp(name, "vkRegisterImageColorBufferGOOGLE")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkRegisterBufferColorBufferGOOGLE")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkMapMemoryIntoAddressSpaceGOOGLE")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkUpdateDescriptorSetWithTemplateSizedGOOGLE")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkBeginCommandBufferAsyncGOOGLE")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkEndCommandBufferAsyncGOOGLE")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkResetCommandBufferAsyncGOOGLE")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCommandBufferHostSyncGOOGLE")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCreateImageWithRequirementsGOOGLE")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCreateBufferWithRequirementsGOOGLE")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetMemoryHostAddressInfoGOOGLE")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkFreeMemorySyncGOOGLE")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkQueueHostSyncGOOGLE")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkQueueSubmitAsyncGOOGLE")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkQueueWaitIdleAsyncGOOGLE")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkQueueBindSparseAsyncGOOGLE")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetLinearImageLayoutGOOGLE")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetLinearImageLayout2GOOGLE")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkQueueFlushCommandsGOOGLE")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkQueueCommitDescriptorSetUpdatesGOOGLE")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCollectDescriptorPoolIdsGOOGLE")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkQueueSignalReleaseImageANDROIDAsyncGOOGLE")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_multi_draw |
| if (!strcmp(name, "vkCmdDrawMultiEXT")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdDrawMultiIndexedEXT")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_pageable_device_local_memory |
| if (!strcmp(name, "vkSetDeviceMemoryPriorityEXT")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_acceleration_structure |
| if (!strcmp(name, "vkCreateAccelerationStructureKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkDestroyAccelerationStructureKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdBuildAccelerationStructuresKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdBuildAccelerationStructuresIndirectKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkBuildAccelerationStructuresKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCopyAccelerationStructureKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCopyAccelerationStructureToMemoryKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCopyMemoryToAccelerationStructureKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkWriteAccelerationStructuresPropertiesKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdCopyAccelerationStructureKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdCopyAccelerationStructureToMemoryKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdCopyMemoryToAccelerationStructureKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetAccelerationStructureDeviceAddressKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdWriteAccelerationStructuresPropertiesKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetDeviceAccelerationStructureCompatibilityKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetAccelerationStructureBuildSizesKHR")) |
| { |
| return nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_ray_tracing_pipeline |
| if (!strcmp(name, "vkCmdTraceRaysKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCreateRayTracingPipelinesKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdTraceRaysIndirectKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetRayTracingShaderGroupStackSizeKHR")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkCmdSetRayTracingPipelineStackSizeKHR")) |
| { |
| return nullptr; |
| } |
| #endif |
| return nullptr; |
| } |
| void* goldfish_vulkan_get_instance_proc_address(VkInstance instance, const char* name){ |
| auto resources = ResourceTracker::get(); |
| bool has1_1OrHigher = resources->getApiVersionFromInstance(instance) >= VK_API_VERSION_1_1; |
| bool has1_2OrHigher = resources->getApiVersionFromInstance(instance) >= VK_API_VERSION_1_2; |
| #ifdef VK_VERSION_1_0 |
| if (!strcmp(name, "vkCreateInstance")) |
| { |
| return (void*)entry_vkCreateInstance; |
| } |
| if (!strcmp(name, "vkDestroyInstance")) |
| { |
| return (void*)entry_vkDestroyInstance; |
| } |
| if (!strcmp(name, "vkEnumeratePhysicalDevices")) |
| { |
| return (void*)entry_vkEnumeratePhysicalDevices; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceFeatures")) |
| { |
| return (void*)entry_vkGetPhysicalDeviceFeatures; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties")) |
| { |
| return (void*)entry_vkGetPhysicalDeviceFormatProperties; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties")) |
| { |
| return (void*)entry_vkGetPhysicalDeviceImageFormatProperties; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceProperties")) |
| { |
| return (void*)entry_vkGetPhysicalDeviceProperties; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties")) |
| { |
| return (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties")) |
| { |
| return (void*)entry_vkGetPhysicalDeviceMemoryProperties; |
| } |
| if (!strcmp(name, "vkGetInstanceProcAddr")) |
| { |
| return (void*)entry_vkGetInstanceProcAddr; |
| } |
| if (!strcmp(name, "vkGetDeviceProcAddr")) |
| { |
| return (void*)entry_vkGetDeviceProcAddr; |
| } |
| if (!strcmp(name, "vkCreateDevice")) |
| { |
| return (void*)entry_vkCreateDevice; |
| } |
| if (!strcmp(name, "vkDestroyDevice")) |
| { |
| return (void*)entry_vkDestroyDevice; |
| } |
| if (!strcmp(name, "vkEnumerateInstanceExtensionProperties")) |
| { |
| return (void*)entry_vkEnumerateInstanceExtensionProperties; |
| } |
| if (!strcmp(name, "vkEnumerateDeviceExtensionProperties")) |
| { |
| return (void*)entry_vkEnumerateDeviceExtensionProperties; |
| } |
| if (!strcmp(name, "vkEnumerateInstanceLayerProperties")) |
| { |
| return (void*)entry_vkEnumerateInstanceLayerProperties; |
| } |
| if (!strcmp(name, "vkEnumerateDeviceLayerProperties")) |
| { |
| return (void*)entry_vkEnumerateDeviceLayerProperties; |
| } |
| if (!strcmp(name, "vkGetDeviceQueue")) |
| { |
| return (void*)entry_vkGetDeviceQueue; |
| } |
| if (!strcmp(name, "vkQueueSubmit")) |
| { |
| return (void*)entry_vkQueueSubmit; |
| } |
| if (!strcmp(name, "vkQueueWaitIdle")) |
| { |
| return (void*)entry_vkQueueWaitIdle; |
| } |
| if (!strcmp(name, "vkDeviceWaitIdle")) |
| { |
| return (void*)entry_vkDeviceWaitIdle; |
| } |
| if (!strcmp(name, "vkAllocateMemory")) |
| { |
| return (void*)entry_vkAllocateMemory; |
| } |
| if (!strcmp(name, "vkFreeMemory")) |
| { |
| return (void*)entry_vkFreeMemory; |
| } |
| if (!strcmp(name, "vkMapMemory")) |
| { |
| return (void*)entry_vkMapMemory; |
| } |
| if (!strcmp(name, "vkUnmapMemory")) |
| { |
| return (void*)entry_vkUnmapMemory; |
| } |
| if (!strcmp(name, "vkFlushMappedMemoryRanges")) |
| { |
| return (void*)entry_vkFlushMappedMemoryRanges; |
| } |
| if (!strcmp(name, "vkInvalidateMappedMemoryRanges")) |
| { |
| return (void*)entry_vkInvalidateMappedMemoryRanges; |
| } |
| if (!strcmp(name, "vkGetDeviceMemoryCommitment")) |
| { |
| return (void*)entry_vkGetDeviceMemoryCommitment; |
| } |
| if (!strcmp(name, "vkBindBufferMemory")) |
| { |
| return (void*)entry_vkBindBufferMemory; |
| } |
| if (!strcmp(name, "vkBindImageMemory")) |
| { |
| return (void*)entry_vkBindImageMemory; |
| } |
| if (!strcmp(name, "vkGetBufferMemoryRequirements")) |
| { |
| return (void*)entry_vkGetBufferMemoryRequirements; |
| } |
| if (!strcmp(name, "vkGetImageMemoryRequirements")) |
| { |
| return (void*)entry_vkGetImageMemoryRequirements; |
| } |
| if (!strcmp(name, "vkGetImageSparseMemoryRequirements")) |
| { |
| return (void*)entry_vkGetImageSparseMemoryRequirements; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties")) |
| { |
| return (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties; |
| } |
| if (!strcmp(name, "vkQueueBindSparse")) |
| { |
| return (void*)entry_vkQueueBindSparse; |
| } |
| if (!strcmp(name, "vkCreateFence")) |
| { |
| return (void*)entry_vkCreateFence; |
| } |
| if (!strcmp(name, "vkDestroyFence")) |
| { |
| return (void*)entry_vkDestroyFence; |
| } |
| if (!strcmp(name, "vkResetFences")) |
| { |
| return (void*)entry_vkResetFences; |
| } |
| if (!strcmp(name, "vkGetFenceStatus")) |
| { |
| return (void*)entry_vkGetFenceStatus; |
| } |
| if (!strcmp(name, "vkWaitForFences")) |
| { |
| return (void*)entry_vkWaitForFences; |
| } |
| if (!strcmp(name, "vkCreateSemaphore")) |
| { |
| return (void*)entry_vkCreateSemaphore; |
| } |
| if (!strcmp(name, "vkDestroySemaphore")) |
| { |
| return (void*)entry_vkDestroySemaphore; |
| } |
| if (!strcmp(name, "vkCreateEvent")) |
| { |
| return (void*)entry_vkCreateEvent; |
| } |
| if (!strcmp(name, "vkDestroyEvent")) |
| { |
| return (void*)entry_vkDestroyEvent; |
| } |
| if (!strcmp(name, "vkGetEventStatus")) |
| { |
| return (void*)entry_vkGetEventStatus; |
| } |
| if (!strcmp(name, "vkSetEvent")) |
| { |
| return (void*)entry_vkSetEvent; |
| } |
| if (!strcmp(name, "vkResetEvent")) |
| { |
| return (void*)entry_vkResetEvent; |
| } |
| if (!strcmp(name, "vkCreateQueryPool")) |
| { |
| return (void*)entry_vkCreateQueryPool; |
| } |
| if (!strcmp(name, "vkDestroyQueryPool")) |
| { |
| return (void*)entry_vkDestroyQueryPool; |
| } |
| if (!strcmp(name, "vkGetQueryPoolResults")) |
| { |
| return (void*)entry_vkGetQueryPoolResults; |
| } |
| if (!strcmp(name, "vkCreateBuffer")) |
| { |
| return (void*)entry_vkCreateBuffer; |
| } |
| if (!strcmp(name, "vkDestroyBuffer")) |
| { |
| return (void*)entry_vkDestroyBuffer; |
| } |
| if (!strcmp(name, "vkCreateBufferView")) |
| { |
| return (void*)entry_vkCreateBufferView; |
| } |
| if (!strcmp(name, "vkDestroyBufferView")) |
| { |
| return (void*)entry_vkDestroyBufferView; |
| } |
| if (!strcmp(name, "vkCreateImage")) |
| { |
| return (void*)entry_vkCreateImage; |
| } |
| if (!strcmp(name, "vkDestroyImage")) |
| { |
| return (void*)entry_vkDestroyImage; |
| } |
| if (!strcmp(name, "vkGetImageSubresourceLayout")) |
| { |
| return (void*)entry_vkGetImageSubresourceLayout; |
| } |
| if (!strcmp(name, "vkCreateImageView")) |
| { |
| return (void*)entry_vkCreateImageView; |
| } |
| if (!strcmp(name, "vkDestroyImageView")) |
| { |
| return (void*)entry_vkDestroyImageView; |
| } |
| if (!strcmp(name, "vkCreateShaderModule")) |
| { |
| return (void*)entry_vkCreateShaderModule; |
| } |
| if (!strcmp(name, "vkDestroyShaderModule")) |
| { |
| return (void*)entry_vkDestroyShaderModule; |
| } |
| if (!strcmp(name, "vkCreatePipelineCache")) |
| { |
| return (void*)entry_vkCreatePipelineCache; |
| } |
| if (!strcmp(name, "vkDestroyPipelineCache")) |
| { |
| return (void*)entry_vkDestroyPipelineCache; |
| } |
| if (!strcmp(name, "vkGetPipelineCacheData")) |
| { |
| return (void*)entry_vkGetPipelineCacheData; |
| } |
| if (!strcmp(name, "vkMergePipelineCaches")) |
| { |
| return (void*)entry_vkMergePipelineCaches; |
| } |
| if (!strcmp(name, "vkCreateGraphicsPipelines")) |
| { |
| return (void*)entry_vkCreateGraphicsPipelines; |
| } |
| if (!strcmp(name, "vkCreateComputePipelines")) |
| { |
| return (void*)entry_vkCreateComputePipelines; |
| } |
| if (!strcmp(name, "vkDestroyPipeline")) |
| { |
| return (void*)entry_vkDestroyPipeline; |
| } |
| if (!strcmp(name, "vkCreatePipelineLayout")) |
| { |
| return (void*)entry_vkCreatePipelineLayout; |
| } |
| if (!strcmp(name, "vkDestroyPipelineLayout")) |
| { |
| return (void*)entry_vkDestroyPipelineLayout; |
| } |
| if (!strcmp(name, "vkCreateSampler")) |
| { |
| return (void*)entry_vkCreateSampler; |
| } |
| if (!strcmp(name, "vkDestroySampler")) |
| { |
| return (void*)entry_vkDestroySampler; |
| } |
| if (!strcmp(name, "vkCreateDescriptorSetLayout")) |
| { |
| return (void*)entry_vkCreateDescriptorSetLayout; |
| } |
| if (!strcmp(name, "vkDestroyDescriptorSetLayout")) |
| { |
| return (void*)entry_vkDestroyDescriptorSetLayout; |
| } |
| if (!strcmp(name, "vkCreateDescriptorPool")) |
| { |
| return (void*)entry_vkCreateDescriptorPool; |
| } |
| if (!strcmp(name, "vkDestroyDescriptorPool")) |
| { |
| return (void*)entry_vkDestroyDescriptorPool; |
| } |
| if (!strcmp(name, "vkResetDescriptorPool")) |
| { |
| return (void*)entry_vkResetDescriptorPool; |
| } |
| if (!strcmp(name, "vkAllocateDescriptorSets")) |
| { |
| return (void*)entry_vkAllocateDescriptorSets; |
| } |
| if (!strcmp(name, "vkFreeDescriptorSets")) |
| { |
| return (void*)entry_vkFreeDescriptorSets; |
| } |
| if (!strcmp(name, "vkUpdateDescriptorSets")) |
| { |
| return (void*)entry_vkUpdateDescriptorSets; |
| } |
| if (!strcmp(name, "vkCreateFramebuffer")) |
| { |
| return (void*)entry_vkCreateFramebuffer; |
| } |
| if (!strcmp(name, "vkDestroyFramebuffer")) |
| { |
| return (void*)entry_vkDestroyFramebuffer; |
| } |
| if (!strcmp(name, "vkCreateRenderPass")) |
| { |
| return (void*)entry_vkCreateRenderPass; |
| } |
| if (!strcmp(name, "vkDestroyRenderPass")) |
| { |
| return (void*)entry_vkDestroyRenderPass; |
| } |
| if (!strcmp(name, "vkGetRenderAreaGranularity")) |
| { |
| return (void*)entry_vkGetRenderAreaGranularity; |
| } |
| if (!strcmp(name, "vkCreateCommandPool")) |
| { |
| return (void*)entry_vkCreateCommandPool; |
| } |
| if (!strcmp(name, "vkDestroyCommandPool")) |
| { |
| return (void*)entry_vkDestroyCommandPool; |
| } |
| if (!strcmp(name, "vkResetCommandPool")) |
| { |
| return (void*)entry_vkResetCommandPool; |
| } |
| if (!strcmp(name, "vkAllocateCommandBuffers")) |
| { |
| return (void*)entry_vkAllocateCommandBuffers; |
| } |
| if (!strcmp(name, "vkFreeCommandBuffers")) |
| { |
| return (void*)entry_vkFreeCommandBuffers; |
| } |
| if (!strcmp(name, "vkBeginCommandBuffer")) |
| { |
| return (void*)entry_vkBeginCommandBuffer; |
| } |
| if (!strcmp(name, "vkEndCommandBuffer")) |
| { |
| return (void*)entry_vkEndCommandBuffer; |
| } |
| if (!strcmp(name, "vkResetCommandBuffer")) |
| { |
| return (void*)entry_vkResetCommandBuffer; |
| } |
| if (!strcmp(name, "vkCmdBindPipeline")) |
| { |
| return (void*)entry_vkCmdBindPipeline; |
| } |
| if (!strcmp(name, "vkCmdSetViewport")) |
| { |
| return (void*)entry_vkCmdSetViewport; |
| } |
| if (!strcmp(name, "vkCmdSetScissor")) |
| { |
| return (void*)entry_vkCmdSetScissor; |
| } |
| if (!strcmp(name, "vkCmdSetLineWidth")) |
| { |
| return (void*)entry_vkCmdSetLineWidth; |
| } |
| if (!strcmp(name, "vkCmdSetDepthBias")) |
| { |
| return (void*)entry_vkCmdSetDepthBias; |
| } |
| if (!strcmp(name, "vkCmdSetBlendConstants")) |
| { |
| return (void*)entry_vkCmdSetBlendConstants; |
| } |
| if (!strcmp(name, "vkCmdSetDepthBounds")) |
| { |
| return (void*)entry_vkCmdSetDepthBounds; |
| } |
| if (!strcmp(name, "vkCmdSetStencilCompareMask")) |
| { |
| return (void*)entry_vkCmdSetStencilCompareMask; |
| } |
| if (!strcmp(name, "vkCmdSetStencilWriteMask")) |
| { |
| return (void*)entry_vkCmdSetStencilWriteMask; |
| } |
| if (!strcmp(name, "vkCmdSetStencilReference")) |
| { |
| return (void*)entry_vkCmdSetStencilReference; |
| } |
| if (!strcmp(name, "vkCmdBindDescriptorSets")) |
| { |
| return (void*)entry_vkCmdBindDescriptorSets; |
| } |
| if (!strcmp(name, "vkCmdBindIndexBuffer")) |
| { |
| return (void*)entry_vkCmdBindIndexBuffer; |
| } |
| if (!strcmp(name, "vkCmdBindVertexBuffers")) |
| { |
| return (void*)entry_vkCmdBindVertexBuffers; |
| } |
| if (!strcmp(name, "vkCmdDraw")) |
| { |
| return (void*)entry_vkCmdDraw; |
| } |
| if (!strcmp(name, "vkCmdDrawIndexed")) |
| { |
| return (void*)entry_vkCmdDrawIndexed; |
| } |
| if (!strcmp(name, "vkCmdDrawIndirect")) |
| { |
| return (void*)entry_vkCmdDrawIndirect; |
| } |
| if (!strcmp(name, "vkCmdDrawIndexedIndirect")) |
| { |
| return (void*)entry_vkCmdDrawIndexedIndirect; |
| } |
| if (!strcmp(name, "vkCmdDispatch")) |
| { |
| return (void*)entry_vkCmdDispatch; |
| } |
| if (!strcmp(name, "vkCmdDispatchIndirect")) |
| { |
| return (void*)entry_vkCmdDispatchIndirect; |
| } |
| if (!strcmp(name, "vkCmdCopyBuffer")) |
| { |
| return (void*)entry_vkCmdCopyBuffer; |
| } |
| if (!strcmp(name, "vkCmdCopyImage")) |
| { |
| return (void*)entry_vkCmdCopyImage; |
| } |
| if (!strcmp(name, "vkCmdBlitImage")) |
| { |
| return (void*)entry_vkCmdBlitImage; |
| } |
| if (!strcmp(name, "vkCmdCopyBufferToImage")) |
| { |
| return (void*)entry_vkCmdCopyBufferToImage; |
| } |
| if (!strcmp(name, "vkCmdCopyImageToBuffer")) |
| { |
| return (void*)entry_vkCmdCopyImageToBuffer; |
| } |
| if (!strcmp(name, "vkCmdUpdateBuffer")) |
| { |
| return (void*)entry_vkCmdUpdateBuffer; |
| } |
| if (!strcmp(name, "vkCmdFillBuffer")) |
| { |
| return (void*)entry_vkCmdFillBuffer; |
| } |
| if (!strcmp(name, "vkCmdClearColorImage")) |
| { |
| return (void*)entry_vkCmdClearColorImage; |
| } |
| if (!strcmp(name, "vkCmdClearDepthStencilImage")) |
| { |
| return (void*)entry_vkCmdClearDepthStencilImage; |
| } |
| if (!strcmp(name, "vkCmdClearAttachments")) |
| { |
| return (void*)entry_vkCmdClearAttachments; |
| } |
| if (!strcmp(name, "vkCmdResolveImage")) |
| { |
| return (void*)entry_vkCmdResolveImage; |
| } |
| if (!strcmp(name, "vkCmdSetEvent")) |
| { |
| return (void*)entry_vkCmdSetEvent; |
| } |
| if (!strcmp(name, "vkCmdResetEvent")) |
| { |
| return (void*)entry_vkCmdResetEvent; |
| } |
| if (!strcmp(name, "vkCmdWaitEvents")) |
| { |
| return (void*)entry_vkCmdWaitEvents; |
| } |
| if (!strcmp(name, "vkCmdPipelineBarrier")) |
| { |
| return (void*)entry_vkCmdPipelineBarrier; |
| } |
| if (!strcmp(name, "vkCmdBeginQuery")) |
| { |
| return (void*)entry_vkCmdBeginQuery; |
| } |
| if (!strcmp(name, "vkCmdEndQuery")) |
| { |
| return (void*)entry_vkCmdEndQuery; |
| } |
| if (!strcmp(name, "vkCmdResetQueryPool")) |
| { |
| return (void*)entry_vkCmdResetQueryPool; |
| } |
| if (!strcmp(name, "vkCmdWriteTimestamp")) |
| { |
| return (void*)entry_vkCmdWriteTimestamp; |
| } |
| if (!strcmp(name, "vkCmdCopyQueryPoolResults")) |
| { |
| return (void*)entry_vkCmdCopyQueryPoolResults; |
| } |
| if (!strcmp(name, "vkCmdPushConstants")) |
| { |
| return (void*)entry_vkCmdPushConstants; |
| } |
| if (!strcmp(name, "vkCmdBeginRenderPass")) |
| { |
| return (void*)entry_vkCmdBeginRenderPass; |
| } |
| if (!strcmp(name, "vkCmdNextSubpass")) |
| { |
| return (void*)entry_vkCmdNextSubpass; |
| } |
| if (!strcmp(name, "vkCmdEndRenderPass")) |
| { |
| return (void*)entry_vkCmdEndRenderPass; |
| } |
| if (!strcmp(name, "vkCmdExecuteCommands")) |
| { |
| return (void*)entry_vkCmdExecuteCommands; |
| } |
| #endif |
| #ifdef VK_VERSION_1_1 |
| if (!strcmp(name, "vkEnumerateInstanceVersion")) |
| { |
| return has1_1OrHigher ? (void*)entry_vkEnumerateInstanceVersion : nullptr; |
| } |
| if (!strcmp(name, "vkBindBufferMemory2")) |
| { |
| return (void*)dynCheck_entry_vkBindBufferMemory2; |
| } |
| if (!strcmp(name, "vkBindImageMemory2")) |
| { |
| return (void*)dynCheck_entry_vkBindImageMemory2; |
| } |
| if (!strcmp(name, "vkGetDeviceGroupPeerMemoryFeatures")) |
| { |
| return (void*)dynCheck_entry_vkGetDeviceGroupPeerMemoryFeatures; |
| } |
| if (!strcmp(name, "vkCmdSetDeviceMask")) |
| { |
| return has1_1OrHigher ? (void*)entry_vkCmdSetDeviceMask : nullptr; |
| } |
| if (!strcmp(name, "vkCmdDispatchBase")) |
| { |
| return has1_1OrHigher ? (void*)entry_vkCmdDispatchBase : nullptr; |
| } |
| if (!strcmp(name, "vkEnumeratePhysicalDeviceGroups")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetImageMemoryRequirements2")) |
| { |
| return (void*)dynCheck_entry_vkGetImageMemoryRequirements2; |
| } |
| if (!strcmp(name, "vkGetBufferMemoryRequirements2")) |
| { |
| return (void*)dynCheck_entry_vkGetBufferMemoryRequirements2; |
| } |
| if (!strcmp(name, "vkGetImageSparseMemoryRequirements2")) |
| { |
| return (void*)dynCheck_entry_vkGetImageSparseMemoryRequirements2; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceFeatures2")) |
| { |
| return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceFeatures2 : nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceProperties2")) |
| { |
| return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceProperties2 : nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties2")) |
| { |
| return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceFormatProperties2 : nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties2")) |
| { |
| return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceImageFormatProperties2 : nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties2")) |
| { |
| return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties2 : nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties2")) |
| { |
| return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceMemoryProperties2 : nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties2")) |
| { |
| return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties2 : nullptr; |
| } |
| if (!strcmp(name, "vkTrimCommandPool")) |
| { |
| return (void*)dynCheck_entry_vkTrimCommandPool; |
| } |
| if (!strcmp(name, "vkGetDeviceQueue2")) |
| { |
| return (void*)dynCheck_entry_vkGetDeviceQueue2; |
| } |
| if (!strcmp(name, "vkCreateSamplerYcbcrConversion")) |
| { |
| return (void*)dynCheck_entry_vkCreateSamplerYcbcrConversion; |
| } |
| if (!strcmp(name, "vkDestroySamplerYcbcrConversion")) |
| { |
| return (void*)dynCheck_entry_vkDestroySamplerYcbcrConversion; |
| } |
| if (!strcmp(name, "vkCreateDescriptorUpdateTemplate")) |
| { |
| return (void*)dynCheck_entry_vkCreateDescriptorUpdateTemplate; |
| } |
| if (!strcmp(name, "vkDestroyDescriptorUpdateTemplate")) |
| { |
| return (void*)dynCheck_entry_vkDestroyDescriptorUpdateTemplate; |
| } |
| if (!strcmp(name, "vkUpdateDescriptorSetWithTemplate")) |
| { |
| return (void*)dynCheck_entry_vkUpdateDescriptorSetWithTemplate; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceExternalBufferProperties")) |
| { |
| return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceExternalBufferProperties : nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceExternalFenceProperties")) |
| { |
| return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceExternalFenceProperties : nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceExternalSemaphoreProperties")) |
| { |
| return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceExternalSemaphoreProperties : nullptr; |
| } |
| if (!strcmp(name, "vkGetDescriptorSetLayoutSupport")) |
| { |
| return (void*)dynCheck_entry_vkGetDescriptorSetLayoutSupport; |
| } |
| #endif |
| #ifdef VK_VERSION_1_2 |
| if (!strcmp(name, "vkCmdDrawIndirectCount")) |
| { |
| return has1_2OrHigher ? (void*)entry_vkCmdDrawIndirectCount : nullptr; |
| } |
| if (!strcmp(name, "vkCmdDrawIndexedIndirectCount")) |
| { |
| return has1_2OrHigher ? (void*)entry_vkCmdDrawIndexedIndirectCount : nullptr; |
| } |
| if (!strcmp(name, "vkCreateRenderPass2")) |
| { |
| return (void*)dynCheck_entry_vkCreateRenderPass2; |
| } |
| if (!strcmp(name, "vkCmdBeginRenderPass2")) |
| { |
| return has1_2OrHigher ? (void*)entry_vkCmdBeginRenderPass2 : nullptr; |
| } |
| if (!strcmp(name, "vkCmdNextSubpass2")) |
| { |
| return has1_2OrHigher ? (void*)entry_vkCmdNextSubpass2 : nullptr; |
| } |
| if (!strcmp(name, "vkCmdEndRenderPass2")) |
| { |
| return has1_2OrHigher ? (void*)entry_vkCmdEndRenderPass2 : nullptr; |
| } |
| if (!strcmp(name, "vkResetQueryPool")) |
| { |
| return (void*)dynCheck_entry_vkResetQueryPool; |
| } |
| if (!strcmp(name, "vkGetSemaphoreCounterValue")) |
| { |
| return (void*)dynCheck_entry_vkGetSemaphoreCounterValue; |
| } |
| if (!strcmp(name, "vkWaitSemaphores")) |
| { |
| return (void*)dynCheck_entry_vkWaitSemaphores; |
| } |
| if (!strcmp(name, "vkSignalSemaphore")) |
| { |
| return (void*)dynCheck_entry_vkSignalSemaphore; |
| } |
| if (!strcmp(name, "vkGetBufferDeviceAddress")) |
| { |
| return (void*)dynCheck_entry_vkGetBufferDeviceAddress; |
| } |
| if (!strcmp(name, "vkGetBufferOpaqueCaptureAddress")) |
| { |
| return (void*)dynCheck_entry_vkGetBufferOpaqueCaptureAddress; |
| } |
| if (!strcmp(name, "vkGetDeviceMemoryOpaqueCaptureAddress")) |
| { |
| return (void*)dynCheck_entry_vkGetDeviceMemoryOpaqueCaptureAddress; |
| } |
| #endif |
| #ifdef VK_KHR_surface |
| if (!strcmp(name, "vkDestroySurfaceKHR")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_surface"); |
| return hasExt ? (void*)entry_vkDestroySurfaceKHR : nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceSurfaceSupportKHR")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_surface"); |
| return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceSupportKHR : nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_surface"); |
| return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceCapabilitiesKHR : nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceSurfaceFormatsKHR")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_surface"); |
| return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceFormatsKHR : nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceSurfacePresentModesKHR")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_surface"); |
| return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfacePresentModesKHR : nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_swapchain |
| if (!strcmp(name, "vkCreateSwapchainKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCreateSwapchainKHR; |
| } |
| if (!strcmp(name, "vkDestroySwapchainKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkDestroySwapchainKHR; |
| } |
| if (!strcmp(name, "vkGetSwapchainImagesKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkGetSwapchainImagesKHR; |
| } |
| if (!strcmp(name, "vkAcquireNextImageKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkAcquireNextImageKHR; |
| } |
| if (!strcmp(name, "vkQueuePresentKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)entry_vkQueuePresentKHR; |
| } |
| if (!strcmp(name, "vkGetDeviceGroupPresentCapabilitiesKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkGetDeviceGroupPresentCapabilitiesKHR; |
| } |
| if (!strcmp(name, "vkGetDeviceGroupSurfacePresentModesKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkGetDeviceGroupSurfacePresentModesKHR; |
| } |
| if (!strcmp(name, "vkGetPhysicalDevicePresentRectanglesKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)entry_vkGetPhysicalDevicePresentRectanglesKHR; |
| } |
| if (!strcmp(name, "vkAcquireNextImage2KHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkAcquireNextImage2KHR; |
| } |
| #endif |
| #ifdef VK_KHR_display |
| if (!strcmp(name, "vkGetPhysicalDeviceDisplayPropertiesKHR")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display"); |
| return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayPropertiesKHR : nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display"); |
| return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayPlanePropertiesKHR : nullptr; |
| } |
| if (!strcmp(name, "vkGetDisplayPlaneSupportedDisplaysKHR")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display"); |
| return hasExt ? (void*)entry_vkGetDisplayPlaneSupportedDisplaysKHR : nullptr; |
| } |
| if (!strcmp(name, "vkGetDisplayModePropertiesKHR")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display"); |
| return hasExt ? (void*)entry_vkGetDisplayModePropertiesKHR : nullptr; |
| } |
| if (!strcmp(name, "vkCreateDisplayModeKHR")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display"); |
| return hasExt ? (void*)entry_vkCreateDisplayModeKHR : nullptr; |
| } |
| if (!strcmp(name, "vkGetDisplayPlaneCapabilitiesKHR")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display"); |
| return hasExt ? (void*)entry_vkGetDisplayPlaneCapabilitiesKHR : nullptr; |
| } |
| if (!strcmp(name, "vkCreateDisplayPlaneSurfaceKHR")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display"); |
| return hasExt ? (void*)entry_vkCreateDisplayPlaneSurfaceKHR : nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_display_swapchain |
| if (!strcmp(name, "vkCreateSharedSwapchainsKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCreateSharedSwapchainsKHR; |
| } |
| #endif |
| #ifdef VK_KHR_xlib_surface |
| if (!strcmp(name, "vkCreateXlibSurfaceKHR")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_xlib_surface"); |
| return hasExt ? (void*)entry_vkCreateXlibSurfaceKHR : nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceXlibPresentationSupportKHR")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_xlib_surface"); |
| return hasExt ? (void*)entry_vkGetPhysicalDeviceXlibPresentationSupportKHR : nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_xcb_surface |
| if (!strcmp(name, "vkCreateXcbSurfaceKHR")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_xcb_surface"); |
| return hasExt ? (void*)entry_vkCreateXcbSurfaceKHR : nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceXcbPresentationSupportKHR")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_xcb_surface"); |
| return hasExt ? (void*)entry_vkGetPhysicalDeviceXcbPresentationSupportKHR : nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_wayland_surface |
| if (!strcmp(name, "vkCreateWaylandSurfaceKHR")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_wayland_surface"); |
| return hasExt ? (void*)entry_vkCreateWaylandSurfaceKHR : nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceWaylandPresentationSupportKHR")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_wayland_surface"); |
| return hasExt ? (void*)entry_vkGetPhysicalDeviceWaylandPresentationSupportKHR : nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_android_surface |
| if (!strcmp(name, "vkCreateAndroidSurfaceKHR")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_android_surface"); |
| return hasExt ? (void*)entry_vkCreateAndroidSurfaceKHR : nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_win32_surface |
| if (!strcmp(name, "vkCreateWin32SurfaceKHR")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_win32_surface"); |
| return hasExt ? (void*)entry_vkCreateWin32SurfaceKHR : nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceWin32PresentationSupportKHR")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_win32_surface"); |
| return hasExt ? (void*)entry_vkGetPhysicalDeviceWin32PresentationSupportKHR : nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_video_queue |
| if (!strcmp(name, "vkGetPhysicalDeviceVideoCapabilitiesKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)entry_vkGetPhysicalDeviceVideoCapabilitiesKHR; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceVideoFormatPropertiesKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)entry_vkGetPhysicalDeviceVideoFormatPropertiesKHR; |
| } |
| if (!strcmp(name, "vkCreateVideoSessionKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCreateVideoSessionKHR; |
| } |
| if (!strcmp(name, "vkDestroyVideoSessionKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkDestroyVideoSessionKHR; |
| } |
| if (!strcmp(name, "vkGetVideoSessionMemoryRequirementsKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkGetVideoSessionMemoryRequirementsKHR; |
| } |
| if (!strcmp(name, "vkBindVideoSessionMemoryKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkBindVideoSessionMemoryKHR; |
| } |
| if (!strcmp(name, "vkCreateVideoSessionParametersKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCreateVideoSessionParametersKHR; |
| } |
| if (!strcmp(name, "vkUpdateVideoSessionParametersKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkUpdateVideoSessionParametersKHR; |
| } |
| if (!strcmp(name, "vkDestroyVideoSessionParametersKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkDestroyVideoSessionParametersKHR; |
| } |
| if (!strcmp(name, "vkCmdBeginVideoCodingKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdBeginVideoCodingKHR; |
| } |
| if (!strcmp(name, "vkCmdEndVideoCodingKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdEndVideoCodingKHR; |
| } |
| if (!strcmp(name, "vkCmdControlVideoCodingKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdControlVideoCodingKHR; |
| } |
| #endif |
| #ifdef VK_KHR_video_decode_queue |
| if (!strcmp(name, "vkCmdDecodeVideoKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdDecodeVideoKHR; |
| } |
| #endif |
| #ifdef VK_KHR_dynamic_rendering |
| if (!strcmp(name, "vkCmdBeginRenderingKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdBeginRenderingKHR; |
| } |
| if (!strcmp(name, "vkCmdEndRenderingKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdEndRenderingKHR; |
| } |
| #endif |
| #ifdef VK_KHR_get_physical_device_properties2 |
| if (!strcmp(name, "vkGetPhysicalDeviceFeatures2KHR")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2"); |
| return hasExt ? (void*)entry_vkGetPhysicalDeviceFeatures2KHR : nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceProperties2KHR")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2"); |
| return hasExt ? (void*)entry_vkGetPhysicalDeviceProperties2KHR : nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties2KHR")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2"); |
| return hasExt ? (void*)entry_vkGetPhysicalDeviceFormatProperties2KHR : nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties2KHR")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2"); |
| return hasExt ? (void*)entry_vkGetPhysicalDeviceImageFormatProperties2KHR : nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties2KHR")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2"); |
| return hasExt ? (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties2KHR : nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties2KHR")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2"); |
| return hasExt ? (void*)entry_vkGetPhysicalDeviceMemoryProperties2KHR : nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2"); |
| return hasExt ? (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties2KHR : nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_device_group |
| if (!strcmp(name, "vkGetDeviceGroupPeerMemoryFeaturesKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkGetDeviceGroupPeerMemoryFeaturesKHR; |
| } |
| if (!strcmp(name, "vkCmdSetDeviceMaskKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdSetDeviceMaskKHR; |
| } |
| if (!strcmp(name, "vkCmdDispatchBaseKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdDispatchBaseKHR; |
| } |
| #endif |
| #ifdef VK_KHR_maintenance1 |
| if (!strcmp(name, "vkTrimCommandPoolKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkTrimCommandPoolKHR; |
| } |
| #endif |
| #ifdef VK_KHR_device_group_creation |
| if (!strcmp(name, "vkEnumeratePhysicalDeviceGroupsKHR")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_device_group_creation"); |
| return hasExt ? (void*)entry_vkEnumeratePhysicalDeviceGroupsKHR : nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_external_memory_capabilities |
| if (!strcmp(name, "vkGetPhysicalDeviceExternalBufferPropertiesKHR")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_memory_capabilities"); |
| return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalBufferPropertiesKHR : nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_external_memory_win32 |
| if (!strcmp(name, "vkGetMemoryWin32HandleKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkGetMemoryWin32HandleKHR; |
| } |
| if (!strcmp(name, "vkGetMemoryWin32HandlePropertiesKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkGetMemoryWin32HandlePropertiesKHR; |
| } |
| #endif |
| #ifdef VK_KHR_external_memory_fd |
| if (!strcmp(name, "vkGetMemoryFdKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkGetMemoryFdKHR; |
| } |
| if (!strcmp(name, "vkGetMemoryFdPropertiesKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkGetMemoryFdPropertiesKHR; |
| } |
| #endif |
| #ifdef VK_KHR_external_semaphore_capabilities |
| if (!strcmp(name, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_semaphore_capabilities"); |
| return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR : nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_external_semaphore_win32 |
| if (!strcmp(name, "vkImportSemaphoreWin32HandleKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkImportSemaphoreWin32HandleKHR; |
| } |
| if (!strcmp(name, "vkGetSemaphoreWin32HandleKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkGetSemaphoreWin32HandleKHR; |
| } |
| #endif |
| #ifdef VK_KHR_external_semaphore_fd |
| if (!strcmp(name, "vkImportSemaphoreFdKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkImportSemaphoreFdKHR; |
| } |
| if (!strcmp(name, "vkGetSemaphoreFdKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkGetSemaphoreFdKHR; |
| } |
| #endif |
| #ifdef VK_KHR_push_descriptor |
| if (!strcmp(name, "vkCmdPushDescriptorSetKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdPushDescriptorSetKHR; |
| } |
| if (!strcmp(name, "vkCmdPushDescriptorSetWithTemplateKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdPushDescriptorSetWithTemplateKHR; |
| } |
| #endif |
| #ifdef VK_KHR_descriptor_update_template |
| if (!strcmp(name, "vkCreateDescriptorUpdateTemplateKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCreateDescriptorUpdateTemplateKHR; |
| } |
| if (!strcmp(name, "vkDestroyDescriptorUpdateTemplateKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkDestroyDescriptorUpdateTemplateKHR; |
| } |
| if (!strcmp(name, "vkUpdateDescriptorSetWithTemplateKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkUpdateDescriptorSetWithTemplateKHR; |
| } |
| #endif |
| #ifdef VK_KHR_create_renderpass2 |
| if (!strcmp(name, "vkCreateRenderPass2KHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCreateRenderPass2KHR; |
| } |
| if (!strcmp(name, "vkCmdBeginRenderPass2KHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdBeginRenderPass2KHR; |
| } |
| if (!strcmp(name, "vkCmdNextSubpass2KHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdNextSubpass2KHR; |
| } |
| if (!strcmp(name, "vkCmdEndRenderPass2KHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdEndRenderPass2KHR; |
| } |
| #endif |
| #ifdef VK_KHR_shared_presentable_image |
| if (!strcmp(name, "vkGetSwapchainStatusKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkGetSwapchainStatusKHR; |
| } |
| #endif |
| #ifdef VK_KHR_external_fence_capabilities |
| if (!strcmp(name, "vkGetPhysicalDeviceExternalFencePropertiesKHR")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_fence_capabilities"); |
| return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalFencePropertiesKHR : nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_external_fence_win32 |
| if (!strcmp(name, "vkImportFenceWin32HandleKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkImportFenceWin32HandleKHR; |
| } |
| if (!strcmp(name, "vkGetFenceWin32HandleKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkGetFenceWin32HandleKHR; |
| } |
| #endif |
| #ifdef VK_KHR_external_fence_fd |
| if (!strcmp(name, "vkImportFenceFdKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkImportFenceFdKHR; |
| } |
| if (!strcmp(name, "vkGetFenceFdKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkGetFenceFdKHR; |
| } |
| #endif |
| #ifdef VK_KHR_performance_query |
| if (!strcmp(name, "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)entry_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)entry_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR; |
| } |
| if (!strcmp(name, "vkAcquireProfilingLockKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkAcquireProfilingLockKHR; |
| } |
| if (!strcmp(name, "vkReleaseProfilingLockKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkReleaseProfilingLockKHR; |
| } |
| #endif |
| #ifdef VK_KHR_get_surface_capabilities2 |
| if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2KHR")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_surface_capabilities2"); |
| return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceCapabilities2KHR : nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceSurfaceFormats2KHR")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_surface_capabilities2"); |
| return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceFormats2KHR : nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_get_display_properties2 |
| if (!strcmp(name, "vkGetPhysicalDeviceDisplayProperties2KHR")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_display_properties2"); |
| return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayProperties2KHR : nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_display_properties2"); |
| return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayPlaneProperties2KHR : nullptr; |
| } |
| if (!strcmp(name, "vkGetDisplayModeProperties2KHR")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_display_properties2"); |
| return hasExt ? (void*)entry_vkGetDisplayModeProperties2KHR : nullptr; |
| } |
| if (!strcmp(name, "vkGetDisplayPlaneCapabilities2KHR")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_display_properties2"); |
| return hasExt ? (void*)entry_vkGetDisplayPlaneCapabilities2KHR : nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_get_memory_requirements2 |
| if (!strcmp(name, "vkGetImageMemoryRequirements2KHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkGetImageMemoryRequirements2KHR; |
| } |
| if (!strcmp(name, "vkGetBufferMemoryRequirements2KHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkGetBufferMemoryRequirements2KHR; |
| } |
| if (!strcmp(name, "vkGetImageSparseMemoryRequirements2KHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkGetImageSparseMemoryRequirements2KHR; |
| } |
| #endif |
| #ifdef VK_KHR_sampler_ycbcr_conversion |
| if (!strcmp(name, "vkCreateSamplerYcbcrConversionKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCreateSamplerYcbcrConversionKHR; |
| } |
| if (!strcmp(name, "vkDestroySamplerYcbcrConversionKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkDestroySamplerYcbcrConversionKHR; |
| } |
| #endif |
| #ifdef VK_KHR_bind_memory2 |
| if (!strcmp(name, "vkBindBufferMemory2KHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkBindBufferMemory2KHR; |
| } |
| if (!strcmp(name, "vkBindImageMemory2KHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkBindImageMemory2KHR; |
| } |
| #endif |
| #ifdef VK_KHR_maintenance3 |
| if (!strcmp(name, "vkGetDescriptorSetLayoutSupportKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkGetDescriptorSetLayoutSupportKHR; |
| } |
| #endif |
| #ifdef VK_KHR_draw_indirect_count |
| if (!strcmp(name, "vkCmdDrawIndirectCountKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdDrawIndirectCountKHR; |
| } |
| if (!strcmp(name, "vkCmdDrawIndexedIndirectCountKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdDrawIndexedIndirectCountKHR; |
| } |
| #endif |
| #ifdef VK_KHR_timeline_semaphore |
| if (!strcmp(name, "vkGetSemaphoreCounterValueKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkGetSemaphoreCounterValueKHR; |
| } |
| if (!strcmp(name, "vkWaitSemaphoresKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkWaitSemaphoresKHR; |
| } |
| if (!strcmp(name, "vkSignalSemaphoreKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkSignalSemaphoreKHR; |
| } |
| #endif |
| #ifdef VK_KHR_fragment_shading_rate |
| if (!strcmp(name, "vkGetPhysicalDeviceFragmentShadingRatesKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)entry_vkGetPhysicalDeviceFragmentShadingRatesKHR; |
| } |
| if (!strcmp(name, "vkCmdSetFragmentShadingRateKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdSetFragmentShadingRateKHR; |
| } |
| #endif |
| #ifdef VK_KHR_present_wait |
| if (!strcmp(name, "vkWaitForPresentKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkWaitForPresentKHR; |
| } |
| #endif |
| #ifdef VK_KHR_buffer_device_address |
| if (!strcmp(name, "vkGetBufferDeviceAddressKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkGetBufferDeviceAddressKHR; |
| } |
| if (!strcmp(name, "vkGetBufferOpaqueCaptureAddressKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkGetBufferOpaqueCaptureAddressKHR; |
| } |
| if (!strcmp(name, "vkGetDeviceMemoryOpaqueCaptureAddressKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkGetDeviceMemoryOpaqueCaptureAddressKHR; |
| } |
| #endif |
| #ifdef VK_KHR_deferred_host_operations |
| if (!strcmp(name, "vkCreateDeferredOperationKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCreateDeferredOperationKHR; |
| } |
| if (!strcmp(name, "vkDestroyDeferredOperationKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkDestroyDeferredOperationKHR; |
| } |
| if (!strcmp(name, "vkGetDeferredOperationMaxConcurrencyKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkGetDeferredOperationMaxConcurrencyKHR; |
| } |
| if (!strcmp(name, "vkGetDeferredOperationResultKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkGetDeferredOperationResultKHR; |
| } |
| if (!strcmp(name, "vkDeferredOperationJoinKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkDeferredOperationJoinKHR; |
| } |
| #endif |
| #ifdef VK_KHR_pipeline_executable_properties |
| if (!strcmp(name, "vkGetPipelineExecutablePropertiesKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkGetPipelineExecutablePropertiesKHR; |
| } |
| if (!strcmp(name, "vkGetPipelineExecutableStatisticsKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkGetPipelineExecutableStatisticsKHR; |
| } |
| if (!strcmp(name, "vkGetPipelineExecutableInternalRepresentationsKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkGetPipelineExecutableInternalRepresentationsKHR; |
| } |
| #endif |
| #ifdef VK_KHR_video_encode_queue |
| if (!strcmp(name, "vkCmdEncodeVideoKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdEncodeVideoKHR; |
| } |
| #endif |
| #ifdef VK_KHR_synchronization2 |
| if (!strcmp(name, "vkCmdSetEvent2KHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdSetEvent2KHR; |
| } |
| if (!strcmp(name, "vkCmdResetEvent2KHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdResetEvent2KHR; |
| } |
| if (!strcmp(name, "vkCmdWaitEvents2KHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdWaitEvents2KHR; |
| } |
| if (!strcmp(name, "vkCmdPipelineBarrier2KHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdPipelineBarrier2KHR; |
| } |
| if (!strcmp(name, "vkCmdWriteTimestamp2KHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdWriteTimestamp2KHR; |
| } |
| if (!strcmp(name, "vkQueueSubmit2KHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)entry_vkQueueSubmit2KHR; |
| } |
| if (!strcmp(name, "vkCmdWriteBufferMarker2AMD")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdWriteBufferMarker2AMD; |
| } |
| if (!strcmp(name, "vkGetQueueCheckpointData2NV")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)entry_vkGetQueueCheckpointData2NV; |
| } |
| #endif |
| #ifdef VK_KHR_copy_commands2 |
| if (!strcmp(name, "vkCmdCopyBuffer2KHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdCopyBuffer2KHR; |
| } |
| if (!strcmp(name, "vkCmdCopyImage2KHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdCopyImage2KHR; |
| } |
| if (!strcmp(name, "vkCmdCopyBufferToImage2KHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdCopyBufferToImage2KHR; |
| } |
| if (!strcmp(name, "vkCmdCopyImageToBuffer2KHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdCopyImageToBuffer2KHR; |
| } |
| if (!strcmp(name, "vkCmdBlitImage2KHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdBlitImage2KHR; |
| } |
| if (!strcmp(name, "vkCmdResolveImage2KHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdResolveImage2KHR; |
| } |
| #endif |
| #ifdef VK_KHR_maintenance4 |
| if (!strcmp(name, "vkGetDeviceBufferMemoryRequirementsKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkGetDeviceBufferMemoryRequirementsKHR; |
| } |
| if (!strcmp(name, "vkGetDeviceImageMemoryRequirementsKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkGetDeviceImageMemoryRequirementsKHR; |
| } |
| if (!strcmp(name, "vkGetDeviceImageSparseMemoryRequirementsKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkGetDeviceImageSparseMemoryRequirementsKHR; |
| } |
| #endif |
| #ifdef VK_ANDROID_native_buffer |
| if (!strcmp(name, "vkGetSwapchainGrallocUsageANDROID")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkGetSwapchainGrallocUsageANDROID; |
| } |
| if (!strcmp(name, "vkAcquireImageANDROID")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkAcquireImageANDROID; |
| } |
| if (!strcmp(name, "vkQueueSignalReleaseImageANDROID")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)entry_vkQueueSignalReleaseImageANDROID; |
| } |
| #endif |
| #ifdef VK_EXT_debug_report |
| if (!strcmp(name, "vkCreateDebugReportCallbackEXT")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_report"); |
| return hasExt ? (void*)entry_vkCreateDebugReportCallbackEXT : nullptr; |
| } |
| if (!strcmp(name, "vkDestroyDebugReportCallbackEXT")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_report"); |
| return hasExt ? (void*)entry_vkDestroyDebugReportCallbackEXT : nullptr; |
| } |
| if (!strcmp(name, "vkDebugReportMessageEXT")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_report"); |
| return hasExt ? (void*)entry_vkDebugReportMessageEXT : nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_debug_marker |
| if (!strcmp(name, "vkDebugMarkerSetObjectTagEXT")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkDebugMarkerSetObjectTagEXT; |
| } |
| if (!strcmp(name, "vkDebugMarkerSetObjectNameEXT")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkDebugMarkerSetObjectNameEXT; |
| } |
| if (!strcmp(name, "vkCmdDebugMarkerBeginEXT")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdDebugMarkerBeginEXT; |
| } |
| if (!strcmp(name, "vkCmdDebugMarkerEndEXT")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdDebugMarkerEndEXT; |
| } |
| if (!strcmp(name, "vkCmdDebugMarkerInsertEXT")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdDebugMarkerInsertEXT; |
| } |
| #endif |
| #ifdef VK_EXT_transform_feedback |
| if (!strcmp(name, "vkCmdBindTransformFeedbackBuffersEXT")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdBindTransformFeedbackBuffersEXT; |
| } |
| if (!strcmp(name, "vkCmdBeginTransformFeedbackEXT")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdBeginTransformFeedbackEXT; |
| } |
| if (!strcmp(name, "vkCmdEndTransformFeedbackEXT")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdEndTransformFeedbackEXT; |
| } |
| if (!strcmp(name, "vkCmdBeginQueryIndexedEXT")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdBeginQueryIndexedEXT; |
| } |
| if (!strcmp(name, "vkCmdEndQueryIndexedEXT")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdEndQueryIndexedEXT; |
| } |
| if (!strcmp(name, "vkCmdDrawIndirectByteCountEXT")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdDrawIndirectByteCountEXT; |
| } |
| #endif |
| #ifdef VK_NVX_binary_import |
| if (!strcmp(name, "vkCreateCuModuleNVX")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCreateCuModuleNVX; |
| } |
| if (!strcmp(name, "vkCreateCuFunctionNVX")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCreateCuFunctionNVX; |
| } |
| if (!strcmp(name, "vkDestroyCuModuleNVX")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkDestroyCuModuleNVX; |
| } |
| if (!strcmp(name, "vkDestroyCuFunctionNVX")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkDestroyCuFunctionNVX; |
| } |
| if (!strcmp(name, "vkCmdCuLaunchKernelNVX")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdCuLaunchKernelNVX; |
| } |
| #endif |
| #ifdef VK_NVX_image_view_handle |
| if (!strcmp(name, "vkGetImageViewHandleNVX")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkGetImageViewHandleNVX; |
| } |
| if (!strcmp(name, "vkGetImageViewAddressNVX")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkGetImageViewAddressNVX; |
| } |
| #endif |
| #ifdef VK_AMD_draw_indirect_count |
| if (!strcmp(name, "vkCmdDrawIndirectCountAMD")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdDrawIndirectCountAMD; |
| } |
| if (!strcmp(name, "vkCmdDrawIndexedIndirectCountAMD")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdDrawIndexedIndirectCountAMD; |
| } |
| #endif |
| #ifdef VK_AMD_shader_info |
| if (!strcmp(name, "vkGetShaderInfoAMD")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkGetShaderInfoAMD; |
| } |
| #endif |
| #ifdef VK_GGP_stream_descriptor_surface |
| if (!strcmp(name, "vkCreateStreamDescriptorSurfaceGGP")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_GGP_stream_descriptor_surface"); |
| return hasExt ? (void*)entry_vkCreateStreamDescriptorSurfaceGGP : nullptr; |
| } |
| #endif |
| #ifdef VK_NV_external_memory_capabilities |
| if (!strcmp(name, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_external_memory_capabilities"); |
| return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalImageFormatPropertiesNV : nullptr; |
| } |
| #endif |
| #ifdef VK_NV_external_memory_win32 |
| if (!strcmp(name, "vkGetMemoryWin32HandleNV")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkGetMemoryWin32HandleNV; |
| } |
| #endif |
| #ifdef VK_NN_vi_surface |
| if (!strcmp(name, "vkCreateViSurfaceNN")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_NN_vi_surface"); |
| return hasExt ? (void*)entry_vkCreateViSurfaceNN : nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_conditional_rendering |
| if (!strcmp(name, "vkCmdBeginConditionalRenderingEXT")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdBeginConditionalRenderingEXT; |
| } |
| if (!strcmp(name, "vkCmdEndConditionalRenderingEXT")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdEndConditionalRenderingEXT; |
| } |
| #endif |
| #ifdef VK_NV_clip_space_w_scaling |
| if (!strcmp(name, "vkCmdSetViewportWScalingNV")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdSetViewportWScalingNV; |
| } |
| #endif |
| #ifdef VK_EXT_direct_mode_display |
| if (!strcmp(name, "vkReleaseDisplayEXT")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_direct_mode_display"); |
| return hasExt ? (void*)entry_vkReleaseDisplayEXT : nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_acquire_xlib_display |
| if (!strcmp(name, "vkAcquireXlibDisplayEXT")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_acquire_xlib_display"); |
| return hasExt ? (void*)entry_vkAcquireXlibDisplayEXT : nullptr; |
| } |
| if (!strcmp(name, "vkGetRandROutputDisplayEXT")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_acquire_xlib_display"); |
| return hasExt ? (void*)entry_vkGetRandROutputDisplayEXT : nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_display_surface_counter |
| if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2EXT")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_display_surface_counter"); |
| return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceCapabilities2EXT : nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_display_control |
| if (!strcmp(name, "vkDisplayPowerControlEXT")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkDisplayPowerControlEXT; |
| } |
| if (!strcmp(name, "vkRegisterDeviceEventEXT")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkRegisterDeviceEventEXT; |
| } |
| if (!strcmp(name, "vkRegisterDisplayEventEXT")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkRegisterDisplayEventEXT; |
| } |
| if (!strcmp(name, "vkGetSwapchainCounterEXT")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkGetSwapchainCounterEXT; |
| } |
| #endif |
| #ifdef VK_GOOGLE_display_timing |
| if (!strcmp(name, "vkGetRefreshCycleDurationGOOGLE")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkGetRefreshCycleDurationGOOGLE; |
| } |
| if (!strcmp(name, "vkGetPastPresentationTimingGOOGLE")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkGetPastPresentationTimingGOOGLE; |
| } |
| #endif |
| #ifdef VK_EXT_discard_rectangles |
| if (!strcmp(name, "vkCmdSetDiscardRectangleEXT")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdSetDiscardRectangleEXT; |
| } |
| #endif |
| #ifdef VK_EXT_hdr_metadata |
| if (!strcmp(name, "vkSetHdrMetadataEXT")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkSetHdrMetadataEXT; |
| } |
| #endif |
| #ifdef VK_MVK_ios_surface |
| if (!strcmp(name, "vkCreateIOSSurfaceMVK")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_MVK_ios_surface"); |
| return hasExt ? (void*)entry_vkCreateIOSSurfaceMVK : nullptr; |
| } |
| #endif |
| #ifdef VK_MVK_macos_surface |
| if (!strcmp(name, "vkCreateMacOSSurfaceMVK")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_MVK_macos_surface"); |
| return hasExt ? (void*)entry_vkCreateMacOSSurfaceMVK : nullptr; |
| } |
| #endif |
| #ifdef VK_MVK_moltenvk |
| if (!strcmp(name, "vkGetMTLDeviceMVK")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_MVK_moltenvk"); |
| return hasExt ? (void*)entry_vkGetMTLDeviceMVK : nullptr; |
| } |
| if (!strcmp(name, "vkSetMTLTextureMVK")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_MVK_moltenvk"); |
| return hasExt ? (void*)entry_vkSetMTLTextureMVK : nullptr; |
| } |
| if (!strcmp(name, "vkGetMTLTextureMVK")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_MVK_moltenvk"); |
| return hasExt ? (void*)entry_vkGetMTLTextureMVK : nullptr; |
| } |
| if (!strcmp(name, "vkGetMTLBufferMVK")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_MVK_moltenvk"); |
| return hasExt ? (void*)entry_vkGetMTLBufferMVK : nullptr; |
| } |
| if (!strcmp(name, "vkUseIOSurfaceMVK")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_MVK_moltenvk"); |
| return hasExt ? (void*)entry_vkUseIOSurfaceMVK : nullptr; |
| } |
| if (!strcmp(name, "vkGetIOSurfaceMVK")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_MVK_moltenvk"); |
| return hasExt ? (void*)entry_vkGetIOSurfaceMVK : nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_debug_utils |
| if (!strcmp(name, "vkSetDebugUtilsObjectNameEXT")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils"); |
| return hasExt ? (void*)dynCheck_entry_vkSetDebugUtilsObjectNameEXT : nullptr; |
| } |
| if (!strcmp(name, "vkSetDebugUtilsObjectTagEXT")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils"); |
| return hasExt ? (void*)dynCheck_entry_vkSetDebugUtilsObjectTagEXT : nullptr; |
| } |
| if (!strcmp(name, "vkQueueBeginDebugUtilsLabelEXT")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils"); |
| return hasExt ? (void*)entry_vkQueueBeginDebugUtilsLabelEXT : nullptr; |
| } |
| if (!strcmp(name, "vkQueueEndDebugUtilsLabelEXT")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils"); |
| return hasExt ? (void*)entry_vkQueueEndDebugUtilsLabelEXT : nullptr; |
| } |
| if (!strcmp(name, "vkQueueInsertDebugUtilsLabelEXT")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils"); |
| return hasExt ? (void*)entry_vkQueueInsertDebugUtilsLabelEXT : nullptr; |
| } |
| if (!strcmp(name, "vkCmdBeginDebugUtilsLabelEXT")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils"); |
| return hasExt ? (void*)entry_vkCmdBeginDebugUtilsLabelEXT : nullptr; |
| } |
| if (!strcmp(name, "vkCmdEndDebugUtilsLabelEXT")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils"); |
| return hasExt ? (void*)entry_vkCmdEndDebugUtilsLabelEXT : nullptr; |
| } |
| if (!strcmp(name, "vkCmdInsertDebugUtilsLabelEXT")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils"); |
| return hasExt ? (void*)entry_vkCmdInsertDebugUtilsLabelEXT : nullptr; |
| } |
| if (!strcmp(name, "vkCreateDebugUtilsMessengerEXT")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils"); |
| return hasExt ? (void*)entry_vkCreateDebugUtilsMessengerEXT : nullptr; |
| } |
| if (!strcmp(name, "vkDestroyDebugUtilsMessengerEXT")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils"); |
| return hasExt ? (void*)entry_vkDestroyDebugUtilsMessengerEXT : nullptr; |
| } |
| if (!strcmp(name, "vkSubmitDebugUtilsMessageEXT")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils"); |
| return hasExt ? (void*)entry_vkSubmitDebugUtilsMessageEXT : nullptr; |
| } |
| #endif |
| #ifdef VK_ANDROID_external_memory_android_hardware_buffer |
| if (!strcmp(name, "vkGetAndroidHardwareBufferPropertiesANDROID")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkGetAndroidHardwareBufferPropertiesANDROID; |
| } |
| if (!strcmp(name, "vkGetMemoryAndroidHardwareBufferANDROID")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkGetMemoryAndroidHardwareBufferANDROID; |
| } |
| #endif |
| #ifdef VK_EXT_sample_locations |
| if (!strcmp(name, "vkCmdSetSampleLocationsEXT")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdSetSampleLocationsEXT; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceMultisamplePropertiesEXT")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)entry_vkGetPhysicalDeviceMultisamplePropertiesEXT; |
| } |
| #endif |
| #ifdef VK_EXT_image_drm_format_modifier |
| if (!strcmp(name, "vkGetImageDrmFormatModifierPropertiesEXT")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkGetImageDrmFormatModifierPropertiesEXT; |
| } |
| #endif |
| #ifdef VK_EXT_validation_cache |
| if (!strcmp(name, "vkCreateValidationCacheEXT")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCreateValidationCacheEXT; |
| } |
| if (!strcmp(name, "vkDestroyValidationCacheEXT")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkDestroyValidationCacheEXT; |
| } |
| if (!strcmp(name, "vkMergeValidationCachesEXT")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkMergeValidationCachesEXT; |
| } |
| if (!strcmp(name, "vkGetValidationCacheDataEXT")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkGetValidationCacheDataEXT; |
| } |
| #endif |
| #ifdef VK_NV_shading_rate_image |
| if (!strcmp(name, "vkCmdBindShadingRateImageNV")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdBindShadingRateImageNV; |
| } |
| if (!strcmp(name, "vkCmdSetViewportShadingRatePaletteNV")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdSetViewportShadingRatePaletteNV; |
| } |
| if (!strcmp(name, "vkCmdSetCoarseSampleOrderNV")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdSetCoarseSampleOrderNV; |
| } |
| #endif |
| #ifdef VK_NV_ray_tracing |
| if (!strcmp(name, "vkCreateAccelerationStructureNV")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCreateAccelerationStructureNV; |
| } |
| if (!strcmp(name, "vkDestroyAccelerationStructureNV")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkDestroyAccelerationStructureNV; |
| } |
| if (!strcmp(name, "vkGetAccelerationStructureMemoryRequirementsNV")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkGetAccelerationStructureMemoryRequirementsNV; |
| } |
| if (!strcmp(name, "vkBindAccelerationStructureMemoryNV")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkBindAccelerationStructureMemoryNV; |
| } |
| if (!strcmp(name, "vkCmdBuildAccelerationStructureNV")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdBuildAccelerationStructureNV; |
| } |
| if (!strcmp(name, "vkCmdCopyAccelerationStructureNV")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdCopyAccelerationStructureNV; |
| } |
| if (!strcmp(name, "vkCmdTraceRaysNV")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdTraceRaysNV; |
| } |
| if (!strcmp(name, "vkCreateRayTracingPipelinesNV")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCreateRayTracingPipelinesNV; |
| } |
| if (!strcmp(name, "vkGetRayTracingShaderGroupHandlesKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkGetRayTracingShaderGroupHandlesKHR; |
| } |
| if (!strcmp(name, "vkGetRayTracingShaderGroupHandlesNV")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkGetRayTracingShaderGroupHandlesNV; |
| } |
| if (!strcmp(name, "vkGetAccelerationStructureHandleNV")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkGetAccelerationStructureHandleNV; |
| } |
| if (!strcmp(name, "vkCmdWriteAccelerationStructuresPropertiesNV")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdWriteAccelerationStructuresPropertiesNV; |
| } |
| if (!strcmp(name, "vkCompileDeferredNV")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCompileDeferredNV; |
| } |
| #endif |
| #ifdef VK_EXT_external_memory_host |
| if (!strcmp(name, "vkGetMemoryHostPointerPropertiesEXT")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkGetMemoryHostPointerPropertiesEXT; |
| } |
| #endif |
| #ifdef VK_AMD_buffer_marker |
| if (!strcmp(name, "vkCmdWriteBufferMarkerAMD")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdWriteBufferMarkerAMD; |
| } |
| #endif |
| #ifdef VK_EXT_calibrated_timestamps |
| if (!strcmp(name, "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)entry_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT; |
| } |
| if (!strcmp(name, "vkGetCalibratedTimestampsEXT")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkGetCalibratedTimestampsEXT; |
| } |
| #endif |
| #ifdef VK_NV_mesh_shader |
| if (!strcmp(name, "vkCmdDrawMeshTasksNV")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdDrawMeshTasksNV; |
| } |
| if (!strcmp(name, "vkCmdDrawMeshTasksIndirectNV")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdDrawMeshTasksIndirectNV; |
| } |
| if (!strcmp(name, "vkCmdDrawMeshTasksIndirectCountNV")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdDrawMeshTasksIndirectCountNV; |
| } |
| #endif |
| #ifdef VK_NV_scissor_exclusive |
| if (!strcmp(name, "vkCmdSetExclusiveScissorNV")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdSetExclusiveScissorNV; |
| } |
| #endif |
| #ifdef VK_NV_device_diagnostic_checkpoints |
| if (!strcmp(name, "vkCmdSetCheckpointNV")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdSetCheckpointNV; |
| } |
| if (!strcmp(name, "vkGetQueueCheckpointDataNV")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)entry_vkGetQueueCheckpointDataNV; |
| } |
| #endif |
| #ifdef VK_INTEL_performance_query |
| if (!strcmp(name, "vkInitializePerformanceApiINTEL")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkInitializePerformanceApiINTEL; |
| } |
| if (!strcmp(name, "vkUninitializePerformanceApiINTEL")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkUninitializePerformanceApiINTEL; |
| } |
| if (!strcmp(name, "vkCmdSetPerformanceMarkerINTEL")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdSetPerformanceMarkerINTEL; |
| } |
| if (!strcmp(name, "vkCmdSetPerformanceStreamMarkerINTEL")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdSetPerformanceStreamMarkerINTEL; |
| } |
| if (!strcmp(name, "vkCmdSetPerformanceOverrideINTEL")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdSetPerformanceOverrideINTEL; |
| } |
| if (!strcmp(name, "vkAcquirePerformanceConfigurationINTEL")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkAcquirePerformanceConfigurationINTEL; |
| } |
| if (!strcmp(name, "vkReleasePerformanceConfigurationINTEL")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkReleasePerformanceConfigurationINTEL; |
| } |
| if (!strcmp(name, "vkQueueSetPerformanceConfigurationINTEL")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)entry_vkQueueSetPerformanceConfigurationINTEL; |
| } |
| if (!strcmp(name, "vkGetPerformanceParameterINTEL")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkGetPerformanceParameterINTEL; |
| } |
| #endif |
| #ifdef VK_AMD_display_native_hdr |
| if (!strcmp(name, "vkSetLocalDimmingAMD")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkSetLocalDimmingAMD; |
| } |
| #endif |
| #ifdef VK_FUCHSIA_imagepipe_surface |
| if (!strcmp(name, "vkCreateImagePipeSurfaceFUCHSIA")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_FUCHSIA_imagepipe_surface"); |
| return hasExt ? (void*)entry_vkCreateImagePipeSurfaceFUCHSIA : nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_metal_surface |
| if (!strcmp(name, "vkCreateMetalSurfaceEXT")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_metal_surface"); |
| return hasExt ? (void*)entry_vkCreateMetalSurfaceEXT : nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_buffer_device_address |
| if (!strcmp(name, "vkGetBufferDeviceAddressEXT")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkGetBufferDeviceAddressEXT; |
| } |
| #endif |
| #ifdef VK_EXT_tooling_info |
| if (!strcmp(name, "vkGetPhysicalDeviceToolPropertiesEXT")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)entry_vkGetPhysicalDeviceToolPropertiesEXT; |
| } |
| #endif |
| #ifdef VK_NV_cooperative_matrix |
| if (!strcmp(name, "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)entry_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV; |
| } |
| #endif |
| #ifdef VK_NV_coverage_reduction_mode |
| if (!strcmp(name, "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)entry_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV; |
| } |
| #endif |
| #ifdef VK_EXT_full_screen_exclusive |
| if (!strcmp(name, "vkGetPhysicalDeviceSurfacePresentModes2EXT")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)entry_vkGetPhysicalDeviceSurfacePresentModes2EXT; |
| } |
| if (!strcmp(name, "vkAcquireFullScreenExclusiveModeEXT")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkAcquireFullScreenExclusiveModeEXT; |
| } |
| if (!strcmp(name, "vkReleaseFullScreenExclusiveModeEXT")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkReleaseFullScreenExclusiveModeEXT; |
| } |
| if (!strcmp(name, "vkGetDeviceGroupSurfacePresentModes2EXT")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkGetDeviceGroupSurfacePresentModes2EXT; |
| } |
| #endif |
| #ifdef VK_EXT_headless_surface |
| if (!strcmp(name, "vkCreateHeadlessSurfaceEXT")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_headless_surface"); |
| return hasExt ? (void*)entry_vkCreateHeadlessSurfaceEXT : nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_line_rasterization |
| if (!strcmp(name, "vkCmdSetLineStippleEXT")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdSetLineStippleEXT; |
| } |
| #endif |
| #ifdef VK_EXT_host_query_reset |
| if (!strcmp(name, "vkResetQueryPoolEXT")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkResetQueryPoolEXT; |
| } |
| #endif |
| #ifdef VK_EXT_extended_dynamic_state |
| if (!strcmp(name, "vkCmdSetCullModeEXT")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdSetCullModeEXT; |
| } |
| if (!strcmp(name, "vkCmdSetFrontFaceEXT")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdSetFrontFaceEXT; |
| } |
| if (!strcmp(name, "vkCmdSetPrimitiveTopologyEXT")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdSetPrimitiveTopologyEXT; |
| } |
| if (!strcmp(name, "vkCmdSetViewportWithCountEXT")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdSetViewportWithCountEXT; |
| } |
| if (!strcmp(name, "vkCmdSetScissorWithCountEXT")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdSetScissorWithCountEXT; |
| } |
| if (!strcmp(name, "vkCmdBindVertexBuffers2EXT")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdBindVertexBuffers2EXT; |
| } |
| if (!strcmp(name, "vkCmdSetDepthTestEnableEXT")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdSetDepthTestEnableEXT; |
| } |
| if (!strcmp(name, "vkCmdSetDepthWriteEnableEXT")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdSetDepthWriteEnableEXT; |
| } |
| if (!strcmp(name, "vkCmdSetDepthCompareOpEXT")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdSetDepthCompareOpEXT; |
| } |
| if (!strcmp(name, "vkCmdSetDepthBoundsTestEnableEXT")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdSetDepthBoundsTestEnableEXT; |
| } |
| if (!strcmp(name, "vkCmdSetStencilTestEnableEXT")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdSetStencilTestEnableEXT; |
| } |
| if (!strcmp(name, "vkCmdSetStencilOpEXT")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdSetStencilOpEXT; |
| } |
| #endif |
| #ifdef VK_NV_device_generated_commands |
| if (!strcmp(name, "vkGetGeneratedCommandsMemoryRequirementsNV")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkGetGeneratedCommandsMemoryRequirementsNV; |
| } |
| if (!strcmp(name, "vkCmdPreprocessGeneratedCommandsNV")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdPreprocessGeneratedCommandsNV; |
| } |
| if (!strcmp(name, "vkCmdExecuteGeneratedCommandsNV")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdExecuteGeneratedCommandsNV; |
| } |
| if (!strcmp(name, "vkCmdBindPipelineShaderGroupNV")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdBindPipelineShaderGroupNV; |
| } |
| if (!strcmp(name, "vkCreateIndirectCommandsLayoutNV")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCreateIndirectCommandsLayoutNV; |
| } |
| if (!strcmp(name, "vkDestroyIndirectCommandsLayoutNV")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkDestroyIndirectCommandsLayoutNV; |
| } |
| #endif |
| #ifdef VK_EXT_acquire_drm_display |
| if (!strcmp(name, "vkAcquireDrmDisplayEXT")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_acquire_drm_display"); |
| return hasExt ? (void*)entry_vkAcquireDrmDisplayEXT : nullptr; |
| } |
| if (!strcmp(name, "vkGetDrmDisplayEXT")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_acquire_drm_display"); |
| return hasExt ? (void*)entry_vkGetDrmDisplayEXT : nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_private_data |
| if (!strcmp(name, "vkCreatePrivateDataSlotEXT")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCreatePrivateDataSlotEXT; |
| } |
| if (!strcmp(name, "vkDestroyPrivateDataSlotEXT")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkDestroyPrivateDataSlotEXT; |
| } |
| if (!strcmp(name, "vkSetPrivateDataEXT")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkSetPrivateDataEXT; |
| } |
| if (!strcmp(name, "vkGetPrivateDataEXT")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkGetPrivateDataEXT; |
| } |
| #endif |
| #ifdef VK_NV_fragment_shading_rate_enums |
| if (!strcmp(name, "vkCmdSetFragmentShadingRateEnumNV")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdSetFragmentShadingRateEnumNV; |
| } |
| #endif |
| #ifdef VK_NV_acquire_winrt_display |
| if (!strcmp(name, "vkAcquireWinrtDisplayNV")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)entry_vkAcquireWinrtDisplayNV; |
| } |
| if (!strcmp(name, "vkGetWinrtDisplayNV")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)entry_vkGetWinrtDisplayNV; |
| } |
| #endif |
| #ifdef VK_EXT_directfb_surface |
| if (!strcmp(name, "vkCreateDirectFBSurfaceEXT")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_directfb_surface"); |
| return hasExt ? (void*)entry_vkCreateDirectFBSurfaceEXT : nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceDirectFBPresentationSupportEXT")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_directfb_surface"); |
| return hasExt ? (void*)entry_vkGetPhysicalDeviceDirectFBPresentationSupportEXT : nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_vertex_input_dynamic_state |
| if (!strcmp(name, "vkCmdSetVertexInputEXT")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdSetVertexInputEXT; |
| } |
| #endif |
| #ifdef VK_FUCHSIA_external_memory |
| if (!strcmp(name, "vkGetMemoryZirconHandleFUCHSIA")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkGetMemoryZirconHandleFUCHSIA; |
| } |
| if (!strcmp(name, "vkGetMemoryZirconHandlePropertiesFUCHSIA")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkGetMemoryZirconHandlePropertiesFUCHSIA; |
| } |
| #endif |
| #ifdef VK_FUCHSIA_external_semaphore |
| if (!strcmp(name, "vkImportSemaphoreZirconHandleFUCHSIA")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkImportSemaphoreZirconHandleFUCHSIA; |
| } |
| if (!strcmp(name, "vkGetSemaphoreZirconHandleFUCHSIA")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkGetSemaphoreZirconHandleFUCHSIA; |
| } |
| #endif |
| #ifdef VK_FUCHSIA_buffer_collection |
| if (!strcmp(name, "vkCreateBufferCollectionFUCHSIA")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCreateBufferCollectionFUCHSIA; |
| } |
| if (!strcmp(name, "vkSetBufferCollectionImageConstraintsFUCHSIA")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkSetBufferCollectionImageConstraintsFUCHSIA; |
| } |
| if (!strcmp(name, "vkSetBufferCollectionBufferConstraintsFUCHSIA")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkSetBufferCollectionBufferConstraintsFUCHSIA; |
| } |
| if (!strcmp(name, "vkDestroyBufferCollectionFUCHSIA")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkDestroyBufferCollectionFUCHSIA; |
| } |
| if (!strcmp(name, "vkGetBufferCollectionPropertiesFUCHSIA")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkGetBufferCollectionPropertiesFUCHSIA; |
| } |
| #endif |
| #ifdef VK_HUAWEI_subpass_shading |
| if (!strcmp(name, "vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI; |
| } |
| if (!strcmp(name, "vkCmdSubpassShadingHUAWEI")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdSubpassShadingHUAWEI; |
| } |
| #endif |
| #ifdef VK_HUAWEI_invocation_mask |
| if (!strcmp(name, "vkCmdBindInvocationMaskHUAWEI")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdBindInvocationMaskHUAWEI; |
| } |
| #endif |
| #ifdef VK_NV_external_memory_rdma |
| if (!strcmp(name, "vkGetMemoryRemoteAddressNV")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkGetMemoryRemoteAddressNV; |
| } |
| #endif |
| #ifdef VK_EXT_extended_dynamic_state2 |
| if (!strcmp(name, "vkCmdSetPatchControlPointsEXT")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdSetPatchControlPointsEXT; |
| } |
| if (!strcmp(name, "vkCmdSetRasterizerDiscardEnableEXT")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdSetRasterizerDiscardEnableEXT; |
| } |
| if (!strcmp(name, "vkCmdSetDepthBiasEnableEXT")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdSetDepthBiasEnableEXT; |
| } |
| if (!strcmp(name, "vkCmdSetLogicOpEXT")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdSetLogicOpEXT; |
| } |
| if (!strcmp(name, "vkCmdSetPrimitiveRestartEnableEXT")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdSetPrimitiveRestartEnableEXT; |
| } |
| #endif |
| #ifdef VK_QNX_screen_surface |
| if (!strcmp(name, "vkCreateScreenSurfaceQNX")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_QNX_screen_surface"); |
| return hasExt ? (void*)entry_vkCreateScreenSurfaceQNX : nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceScreenPresentationSupportQNX")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_QNX_screen_surface"); |
| return hasExt ? (void*)entry_vkGetPhysicalDeviceScreenPresentationSupportQNX : nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_color_write_enable |
| if (!strcmp(name, "vkCmdSetColorWriteEnableEXT")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdSetColorWriteEnableEXT; |
| } |
| #endif |
| #ifdef VK_GOOGLE_gfxstream |
| if (!strcmp(name, "vkRegisterImageColorBufferGOOGLE")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_gfxstream"); |
| return hasExt ? (void*)dynCheck_entry_vkRegisterImageColorBufferGOOGLE : nullptr; |
| } |
| if (!strcmp(name, "vkRegisterBufferColorBufferGOOGLE")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_gfxstream"); |
| return hasExt ? (void*)dynCheck_entry_vkRegisterBufferColorBufferGOOGLE : nullptr; |
| } |
| if (!strcmp(name, "vkMapMemoryIntoAddressSpaceGOOGLE")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_gfxstream"); |
| return hasExt ? (void*)dynCheck_entry_vkMapMemoryIntoAddressSpaceGOOGLE : nullptr; |
| } |
| if (!strcmp(name, "vkUpdateDescriptorSetWithTemplateSizedGOOGLE")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_gfxstream"); |
| return hasExt ? (void*)dynCheck_entry_vkUpdateDescriptorSetWithTemplateSizedGOOGLE : nullptr; |
| } |
| if (!strcmp(name, "vkBeginCommandBufferAsyncGOOGLE")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_gfxstream"); |
| return hasExt ? (void*)entry_vkBeginCommandBufferAsyncGOOGLE : nullptr; |
| } |
| if (!strcmp(name, "vkEndCommandBufferAsyncGOOGLE")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_gfxstream"); |
| return hasExt ? (void*)entry_vkEndCommandBufferAsyncGOOGLE : nullptr; |
| } |
| if (!strcmp(name, "vkResetCommandBufferAsyncGOOGLE")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_gfxstream"); |
| return hasExt ? (void*)entry_vkResetCommandBufferAsyncGOOGLE : nullptr; |
| } |
| if (!strcmp(name, "vkCommandBufferHostSyncGOOGLE")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_gfxstream"); |
| return hasExt ? (void*)entry_vkCommandBufferHostSyncGOOGLE : nullptr; |
| } |
| if (!strcmp(name, "vkCreateImageWithRequirementsGOOGLE")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_gfxstream"); |
| return hasExt ? (void*)dynCheck_entry_vkCreateImageWithRequirementsGOOGLE : nullptr; |
| } |
| if (!strcmp(name, "vkCreateBufferWithRequirementsGOOGLE")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_gfxstream"); |
| return hasExt ? (void*)dynCheck_entry_vkCreateBufferWithRequirementsGOOGLE : nullptr; |
| } |
| if (!strcmp(name, "vkGetMemoryHostAddressInfoGOOGLE")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_gfxstream"); |
| return hasExt ? (void*)dynCheck_entry_vkGetMemoryHostAddressInfoGOOGLE : nullptr; |
| } |
| if (!strcmp(name, "vkFreeMemorySyncGOOGLE")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_gfxstream"); |
| return hasExt ? (void*)dynCheck_entry_vkFreeMemorySyncGOOGLE : nullptr; |
| } |
| if (!strcmp(name, "vkQueueHostSyncGOOGLE")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_gfxstream"); |
| return hasExt ? (void*)entry_vkQueueHostSyncGOOGLE : nullptr; |
| } |
| if (!strcmp(name, "vkQueueSubmitAsyncGOOGLE")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_gfxstream"); |
| return hasExt ? (void*)entry_vkQueueSubmitAsyncGOOGLE : nullptr; |
| } |
| if (!strcmp(name, "vkQueueWaitIdleAsyncGOOGLE")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_gfxstream"); |
| return hasExt ? (void*)entry_vkQueueWaitIdleAsyncGOOGLE : nullptr; |
| } |
| if (!strcmp(name, "vkQueueBindSparseAsyncGOOGLE")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_gfxstream"); |
| return hasExt ? (void*)entry_vkQueueBindSparseAsyncGOOGLE : nullptr; |
| } |
| if (!strcmp(name, "vkGetLinearImageLayoutGOOGLE")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_gfxstream"); |
| return hasExt ? (void*)dynCheck_entry_vkGetLinearImageLayoutGOOGLE : nullptr; |
| } |
| if (!strcmp(name, "vkGetLinearImageLayout2GOOGLE")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_gfxstream"); |
| return hasExt ? (void*)dynCheck_entry_vkGetLinearImageLayout2GOOGLE : nullptr; |
| } |
| if (!strcmp(name, "vkQueueFlushCommandsGOOGLE")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_gfxstream"); |
| return hasExt ? (void*)entry_vkQueueFlushCommandsGOOGLE : nullptr; |
| } |
| if (!strcmp(name, "vkQueueCommitDescriptorSetUpdatesGOOGLE")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_gfxstream"); |
| return hasExt ? (void*)entry_vkQueueCommitDescriptorSetUpdatesGOOGLE : nullptr; |
| } |
| if (!strcmp(name, "vkCollectDescriptorPoolIdsGOOGLE")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_gfxstream"); |
| return hasExt ? (void*)dynCheck_entry_vkCollectDescriptorPoolIdsGOOGLE : nullptr; |
| } |
| if (!strcmp(name, "vkQueueSignalReleaseImageANDROIDAsyncGOOGLE")) |
| { |
| bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_gfxstream"); |
| return hasExt ? (void*)entry_vkQueueSignalReleaseImageANDROIDAsyncGOOGLE : nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_multi_draw |
| if (!strcmp(name, "vkCmdDrawMultiEXT")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdDrawMultiEXT; |
| } |
| if (!strcmp(name, "vkCmdDrawMultiIndexedEXT")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdDrawMultiIndexedEXT; |
| } |
| #endif |
| #ifdef VK_EXT_pageable_device_local_memory |
| if (!strcmp(name, "vkSetDeviceMemoryPriorityEXT")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkSetDeviceMemoryPriorityEXT; |
| } |
| #endif |
| #ifdef VK_KHR_acceleration_structure |
| if (!strcmp(name, "vkCreateAccelerationStructureKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCreateAccelerationStructureKHR; |
| } |
| if (!strcmp(name, "vkDestroyAccelerationStructureKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkDestroyAccelerationStructureKHR; |
| } |
| if (!strcmp(name, "vkCmdBuildAccelerationStructuresKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdBuildAccelerationStructuresKHR; |
| } |
| if (!strcmp(name, "vkCmdBuildAccelerationStructuresIndirectKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdBuildAccelerationStructuresIndirectKHR; |
| } |
| if (!strcmp(name, "vkBuildAccelerationStructuresKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkBuildAccelerationStructuresKHR; |
| } |
| if (!strcmp(name, "vkCopyAccelerationStructureKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCopyAccelerationStructureKHR; |
| } |
| if (!strcmp(name, "vkCopyAccelerationStructureToMemoryKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCopyAccelerationStructureToMemoryKHR; |
| } |
| if (!strcmp(name, "vkCopyMemoryToAccelerationStructureKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCopyMemoryToAccelerationStructureKHR; |
| } |
| if (!strcmp(name, "vkWriteAccelerationStructuresPropertiesKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkWriteAccelerationStructuresPropertiesKHR; |
| } |
| if (!strcmp(name, "vkCmdCopyAccelerationStructureKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdCopyAccelerationStructureKHR; |
| } |
| if (!strcmp(name, "vkCmdCopyAccelerationStructureToMemoryKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdCopyAccelerationStructureToMemoryKHR; |
| } |
| if (!strcmp(name, "vkCmdCopyMemoryToAccelerationStructureKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdCopyMemoryToAccelerationStructureKHR; |
| } |
| if (!strcmp(name, "vkGetAccelerationStructureDeviceAddressKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkGetAccelerationStructureDeviceAddressKHR; |
| } |
| if (!strcmp(name, "vkCmdWriteAccelerationStructuresPropertiesKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdWriteAccelerationStructuresPropertiesKHR; |
| } |
| if (!strcmp(name, "vkGetDeviceAccelerationStructureCompatibilityKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkGetDeviceAccelerationStructureCompatibilityKHR; |
| } |
| if (!strcmp(name, "vkGetAccelerationStructureBuildSizesKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkGetAccelerationStructureBuildSizesKHR; |
| } |
| #endif |
| #ifdef VK_KHR_ray_tracing_pipeline |
| if (!strcmp(name, "vkCmdTraceRaysKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdTraceRaysKHR; |
| } |
| if (!strcmp(name, "vkCreateRayTracingPipelinesKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCreateRayTracingPipelinesKHR; |
| } |
| if (!strcmp(name, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR; |
| } |
| if (!strcmp(name, "vkCmdTraceRaysIndirectKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdTraceRaysIndirectKHR; |
| } |
| if (!strcmp(name, "vkGetRayTracingShaderGroupStackSizeKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkGetRayTracingShaderGroupStackSizeKHR; |
| } |
| if (!strcmp(name, "vkCmdSetRayTracingPipelineStackSizeKHR")) |
| { |
| // TODO(b/236246382): Check support for device extension; |
| return (void*)dynCheck_entry_vkCmdSetRayTracingPipelineStackSizeKHR; |
| } |
| #endif |
| return nullptr; |
| } |
| void* goldfish_vulkan_get_device_proc_address(VkDevice device, const char* name){ |
| auto resources = ResourceTracker::get(); |
| bool has1_1OrHigher = resources->getApiVersionFromDevice(device) >= VK_API_VERSION_1_1; |
| #ifdef VK_VERSION_1_0 |
| if (!strcmp(name, "vkCreateInstance")) |
| { |
| return (void*)entry_vkCreateInstance; |
| } |
| if (!strcmp(name, "vkDestroyInstance")) |
| { |
| return (void*)entry_vkDestroyInstance; |
| } |
| if (!strcmp(name, "vkEnumeratePhysicalDevices")) |
| { |
| return (void*)entry_vkEnumeratePhysicalDevices; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceFeatures")) |
| { |
| return (void*)entry_vkGetPhysicalDeviceFeatures; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties")) |
| { |
| return (void*)entry_vkGetPhysicalDeviceFormatProperties; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties")) |
| { |
| return (void*)entry_vkGetPhysicalDeviceImageFormatProperties; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceProperties")) |
| { |
| return (void*)entry_vkGetPhysicalDeviceProperties; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties")) |
| { |
| return (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties")) |
| { |
| return (void*)entry_vkGetPhysicalDeviceMemoryProperties; |
| } |
| if (!strcmp(name, "vkGetInstanceProcAddr")) |
| { |
| return (void*)entry_vkGetInstanceProcAddr; |
| } |
| if (!strcmp(name, "vkGetDeviceProcAddr")) |
| { |
| return (void*)entry_vkGetDeviceProcAddr; |
| } |
| if (!strcmp(name, "vkCreateDevice")) |
| { |
| return (void*)entry_vkCreateDevice; |
| } |
| if (!strcmp(name, "vkDestroyDevice")) |
| { |
| return (void*)entry_vkDestroyDevice; |
| } |
| if (!strcmp(name, "vkEnumerateInstanceExtensionProperties")) |
| { |
| return (void*)entry_vkEnumerateInstanceExtensionProperties; |
| } |
| if (!strcmp(name, "vkEnumerateDeviceExtensionProperties")) |
| { |
| return (void*)entry_vkEnumerateDeviceExtensionProperties; |
| } |
| if (!strcmp(name, "vkEnumerateInstanceLayerProperties")) |
| { |
| return (void*)entry_vkEnumerateInstanceLayerProperties; |
| } |
| if (!strcmp(name, "vkEnumerateDeviceLayerProperties")) |
| { |
| return (void*)entry_vkEnumerateDeviceLayerProperties; |
| } |
| if (!strcmp(name, "vkGetDeviceQueue")) |
| { |
| return (void*)entry_vkGetDeviceQueue; |
| } |
| if (!strcmp(name, "vkQueueSubmit")) |
| { |
| return (void*)entry_vkQueueSubmit; |
| } |
| if (!strcmp(name, "vkQueueWaitIdle")) |
| { |
| return (void*)entry_vkQueueWaitIdle; |
| } |
| if (!strcmp(name, "vkDeviceWaitIdle")) |
| { |
| return (void*)entry_vkDeviceWaitIdle; |
| } |
| if (!strcmp(name, "vkAllocateMemory")) |
| { |
| return (void*)entry_vkAllocateMemory; |
| } |
| if (!strcmp(name, "vkFreeMemory")) |
| { |
| return (void*)entry_vkFreeMemory; |
| } |
| if (!strcmp(name, "vkMapMemory")) |
| { |
| return (void*)entry_vkMapMemory; |
| } |
| if (!strcmp(name, "vkUnmapMemory")) |
| { |
| return (void*)entry_vkUnmapMemory; |
| } |
| if (!strcmp(name, "vkFlushMappedMemoryRanges")) |
| { |
| return (void*)entry_vkFlushMappedMemoryRanges; |
| } |
| if (!strcmp(name, "vkInvalidateMappedMemoryRanges")) |
| { |
| return (void*)entry_vkInvalidateMappedMemoryRanges; |
| } |
| if (!strcmp(name, "vkGetDeviceMemoryCommitment")) |
| { |
| return (void*)entry_vkGetDeviceMemoryCommitment; |
| } |
| if (!strcmp(name, "vkBindBufferMemory")) |
| { |
| return (void*)entry_vkBindBufferMemory; |
| } |
| if (!strcmp(name, "vkBindImageMemory")) |
| { |
| return (void*)entry_vkBindImageMemory; |
| } |
| if (!strcmp(name, "vkGetBufferMemoryRequirements")) |
| { |
| return (void*)entry_vkGetBufferMemoryRequirements; |
| } |
| if (!strcmp(name, "vkGetImageMemoryRequirements")) |
| { |
| return (void*)entry_vkGetImageMemoryRequirements; |
| } |
| if (!strcmp(name, "vkGetImageSparseMemoryRequirements")) |
| { |
| return (void*)entry_vkGetImageSparseMemoryRequirements; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties")) |
| { |
| return (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties; |
| } |
| if (!strcmp(name, "vkQueueBindSparse")) |
| { |
| return (void*)entry_vkQueueBindSparse; |
| } |
| if (!strcmp(name, "vkCreateFence")) |
| { |
| return (void*)entry_vkCreateFence; |
| } |
| if (!strcmp(name, "vkDestroyFence")) |
| { |
| return (void*)entry_vkDestroyFence; |
| } |
| if (!strcmp(name, "vkResetFences")) |
| { |
| return (void*)entry_vkResetFences; |
| } |
| if (!strcmp(name, "vkGetFenceStatus")) |
| { |
| return (void*)entry_vkGetFenceStatus; |
| } |
| if (!strcmp(name, "vkWaitForFences")) |
| { |
| return (void*)entry_vkWaitForFences; |
| } |
| if (!strcmp(name, "vkCreateSemaphore")) |
| { |
| return (void*)entry_vkCreateSemaphore; |
| } |
| if (!strcmp(name, "vkDestroySemaphore")) |
| { |
| return (void*)entry_vkDestroySemaphore; |
| } |
| if (!strcmp(name, "vkCreateEvent")) |
| { |
| return (void*)entry_vkCreateEvent; |
| } |
| if (!strcmp(name, "vkDestroyEvent")) |
| { |
| return (void*)entry_vkDestroyEvent; |
| } |
| if (!strcmp(name, "vkGetEventStatus")) |
| { |
| return (void*)entry_vkGetEventStatus; |
| } |
| if (!strcmp(name, "vkSetEvent")) |
| { |
| return (void*)entry_vkSetEvent; |
| } |
| if (!strcmp(name, "vkResetEvent")) |
| { |
| return (void*)entry_vkResetEvent; |
| } |
| if (!strcmp(name, "vkCreateQueryPool")) |
| { |
| return (void*)entry_vkCreateQueryPool; |
| } |
| if (!strcmp(name, "vkDestroyQueryPool")) |
| { |
| return (void*)entry_vkDestroyQueryPool; |
| } |
| if (!strcmp(name, "vkGetQueryPoolResults")) |
| { |
| return (void*)entry_vkGetQueryPoolResults; |
| } |
| if (!strcmp(name, "vkCreateBuffer")) |
| { |
| return (void*)entry_vkCreateBuffer; |
| } |
| if (!strcmp(name, "vkDestroyBuffer")) |
| { |
| return (void*)entry_vkDestroyBuffer; |
| } |
| if (!strcmp(name, "vkCreateBufferView")) |
| { |
| return (void*)entry_vkCreateBufferView; |
| } |
| if (!strcmp(name, "vkDestroyBufferView")) |
| { |
| return (void*)entry_vkDestroyBufferView; |
| } |
| if (!strcmp(name, "vkCreateImage")) |
| { |
| return (void*)entry_vkCreateImage; |
| } |
| if (!strcmp(name, "vkDestroyImage")) |
| { |
| return (void*)entry_vkDestroyImage; |
| } |
| if (!strcmp(name, "vkGetImageSubresourceLayout")) |
| { |
| return (void*)entry_vkGetImageSubresourceLayout; |
| } |
| if (!strcmp(name, "vkCreateImageView")) |
| { |
| return (void*)entry_vkCreateImageView; |
| } |
| if (!strcmp(name, "vkDestroyImageView")) |
| { |
| return (void*)entry_vkDestroyImageView; |
| } |
| if (!strcmp(name, "vkCreateShaderModule")) |
| { |
| return (void*)entry_vkCreateShaderModule; |
| } |
| if (!strcmp(name, "vkDestroyShaderModule")) |
| { |
| return (void*)entry_vkDestroyShaderModule; |
| } |
| if (!strcmp(name, "vkCreatePipelineCache")) |
| { |
| return (void*)entry_vkCreatePipelineCache; |
| } |
| if (!strcmp(name, "vkDestroyPipelineCache")) |
| { |
| return (void*)entry_vkDestroyPipelineCache; |
| } |
| if (!strcmp(name, "vkGetPipelineCacheData")) |
| { |
| return (void*)entry_vkGetPipelineCacheData; |
| } |
| if (!strcmp(name, "vkMergePipelineCaches")) |
| { |
| return (void*)entry_vkMergePipelineCaches; |
| } |
| if (!strcmp(name, "vkCreateGraphicsPipelines")) |
| { |
| return (void*)entry_vkCreateGraphicsPipelines; |
| } |
| if (!strcmp(name, "vkCreateComputePipelines")) |
| { |
| return (void*)entry_vkCreateComputePipelines; |
| } |
| if (!strcmp(name, "vkDestroyPipeline")) |
| { |
| return (void*)entry_vkDestroyPipeline; |
| } |
| if (!strcmp(name, "vkCreatePipelineLayout")) |
| { |
| return (void*)entry_vkCreatePipelineLayout; |
| } |
| if (!strcmp(name, "vkDestroyPipelineLayout")) |
| { |
| return (void*)entry_vkDestroyPipelineLayout; |
| } |
| if (!strcmp(name, "vkCreateSampler")) |
| { |
| return (void*)entry_vkCreateSampler; |
| } |
| if (!strcmp(name, "vkDestroySampler")) |
| { |
| return (void*)entry_vkDestroySampler; |
| } |
| if (!strcmp(name, "vkCreateDescriptorSetLayout")) |
| { |
| return (void*)entry_vkCreateDescriptorSetLayout; |
| } |
| if (!strcmp(name, "vkDestroyDescriptorSetLayout")) |
| { |
| return (void*)entry_vkDestroyDescriptorSetLayout; |
| } |
| if (!strcmp(name, "vkCreateDescriptorPool")) |
| { |
| return (void*)entry_vkCreateDescriptorPool; |
| } |
| if (!strcmp(name, "vkDestroyDescriptorPool")) |
| { |
| return (void*)entry_vkDestroyDescriptorPool; |
| } |
| if (!strcmp(name, "vkResetDescriptorPool")) |
| { |
| return (void*)entry_vkResetDescriptorPool; |
| } |
| if (!strcmp(name, "vkAllocateDescriptorSets")) |
| { |
| return (void*)entry_vkAllocateDescriptorSets; |
| } |
| if (!strcmp(name, "vkFreeDescriptorSets")) |
| { |
| return (void*)entry_vkFreeDescriptorSets; |
| } |
| if (!strcmp(name, "vkUpdateDescriptorSets")) |
| { |
| return (void*)entry_vkUpdateDescriptorSets; |
| } |
| if (!strcmp(name, "vkCreateFramebuffer")) |
| { |
| return (void*)entry_vkCreateFramebuffer; |
| } |
| if (!strcmp(name, "vkDestroyFramebuffer")) |
| { |
| return (void*)entry_vkDestroyFramebuffer; |
| } |
| if (!strcmp(name, "vkCreateRenderPass")) |
| { |
| return (void*)entry_vkCreateRenderPass; |
| } |
| if (!strcmp(name, "vkDestroyRenderPass")) |
| { |
| return (void*)entry_vkDestroyRenderPass; |
| } |
| if (!strcmp(name, "vkGetRenderAreaGranularity")) |
| { |
| return (void*)entry_vkGetRenderAreaGranularity; |
| } |
| if (!strcmp(name, "vkCreateCommandPool")) |
| { |
| return (void*)entry_vkCreateCommandPool; |
| } |
| if (!strcmp(name, "vkDestroyCommandPool")) |
| { |
| return (void*)entry_vkDestroyCommandPool; |
| } |
| if (!strcmp(name, "vkResetCommandPool")) |
| { |
| return (void*)entry_vkResetCommandPool; |
| } |
| if (!strcmp(name, "vkAllocateCommandBuffers")) |
| { |
| return (void*)entry_vkAllocateCommandBuffers; |
| } |
| if (!strcmp(name, "vkFreeCommandBuffers")) |
| { |
| return (void*)entry_vkFreeCommandBuffers; |
| } |
| if (!strcmp(name, "vkBeginCommandBuffer")) |
| { |
| return (void*)entry_vkBeginCommandBuffer; |
| } |
| if (!strcmp(name, "vkEndCommandBuffer")) |
| { |
| return (void*)entry_vkEndCommandBuffer; |
| } |
| if (!strcmp(name, "vkResetCommandBuffer")) |
| { |
| return (void*)entry_vkResetCommandBuffer; |
| } |
| if (!strcmp(name, "vkCmdBindPipeline")) |
| { |
| return (void*)entry_vkCmdBindPipeline; |
| } |
| if (!strcmp(name, "vkCmdSetViewport")) |
| { |
| return (void*)entry_vkCmdSetViewport; |
| } |
| if (!strcmp(name, "vkCmdSetScissor")) |
| { |
| return (void*)entry_vkCmdSetScissor; |
| } |
| if (!strcmp(name, "vkCmdSetLineWidth")) |
| { |
| return (void*)entry_vkCmdSetLineWidth; |
| } |
| if (!strcmp(name, "vkCmdSetDepthBias")) |
| { |
| return (void*)entry_vkCmdSetDepthBias; |
| } |
| if (!strcmp(name, "vkCmdSetBlendConstants")) |
| { |
| return (void*)entry_vkCmdSetBlendConstants; |
| } |
| if (!strcmp(name, "vkCmdSetDepthBounds")) |
| { |
| return (void*)entry_vkCmdSetDepthBounds; |
| } |
| if (!strcmp(name, "vkCmdSetStencilCompareMask")) |
| { |
| return (void*)entry_vkCmdSetStencilCompareMask; |
| } |
| if (!strcmp(name, "vkCmdSetStencilWriteMask")) |
| { |
| return (void*)entry_vkCmdSetStencilWriteMask; |
| } |
| if (!strcmp(name, "vkCmdSetStencilReference")) |
| { |
| return (void*)entry_vkCmdSetStencilReference; |
| } |
| if (!strcmp(name, "vkCmdBindDescriptorSets")) |
| { |
| return (void*)entry_vkCmdBindDescriptorSets; |
| } |
| if (!strcmp(name, "vkCmdBindIndexBuffer")) |
| { |
| return (void*)entry_vkCmdBindIndexBuffer; |
| } |
| if (!strcmp(name, "vkCmdBindVertexBuffers")) |
| { |
| return (void*)entry_vkCmdBindVertexBuffers; |
| } |
| if (!strcmp(name, "vkCmdDraw")) |
| { |
| return (void*)entry_vkCmdDraw; |
| } |
| if (!strcmp(name, "vkCmdDrawIndexed")) |
| { |
| return (void*)entry_vkCmdDrawIndexed; |
| } |
| if (!strcmp(name, "vkCmdDrawIndirect")) |
| { |
| return (void*)entry_vkCmdDrawIndirect; |
| } |
| if (!strcmp(name, "vkCmdDrawIndexedIndirect")) |
| { |
| return (void*)entry_vkCmdDrawIndexedIndirect; |
| } |
| if (!strcmp(name, "vkCmdDispatch")) |
| { |
| return (void*)entry_vkCmdDispatch; |
| } |
| if (!strcmp(name, "vkCmdDispatchIndirect")) |
| { |
| return (void*)entry_vkCmdDispatchIndirect; |
| } |
| if (!strcmp(name, "vkCmdCopyBuffer")) |
| { |
| return (void*)entry_vkCmdCopyBuffer; |
| } |
| if (!strcmp(name, "vkCmdCopyImage")) |
| { |
| return (void*)entry_vkCmdCopyImage; |
| } |
| if (!strcmp(name, "vkCmdBlitImage")) |
| { |
| return (void*)entry_vkCmdBlitImage; |
| } |
| if (!strcmp(name, "vkCmdCopyBufferToImage")) |
| { |
| return (void*)entry_vkCmdCopyBufferToImage; |
| } |
| if (!strcmp(name, "vkCmdCopyImageToBuffer")) |
| { |
| return (void*)entry_vkCmdCopyImageToBuffer; |
| } |
| if (!strcmp(name, "vkCmdUpdateBuffer")) |
| { |
| return (void*)entry_vkCmdUpdateBuffer; |
| } |
| if (!strcmp(name, "vkCmdFillBuffer")) |
| { |
| return (void*)entry_vkCmdFillBuffer; |
| } |
| if (!strcmp(name, "vkCmdClearColorImage")) |
| { |
| return (void*)entry_vkCmdClearColorImage; |
| } |
| if (!strcmp(name, "vkCmdClearDepthStencilImage")) |
| { |
| return (void*)entry_vkCmdClearDepthStencilImage; |
| } |
| if (!strcmp(name, "vkCmdClearAttachments")) |
| { |
| return (void*)entry_vkCmdClearAttachments; |
| } |
| if (!strcmp(name, "vkCmdResolveImage")) |
| { |
| return (void*)entry_vkCmdResolveImage; |
| } |
| if (!strcmp(name, "vkCmdSetEvent")) |
| { |
| return (void*)entry_vkCmdSetEvent; |
| } |
| if (!strcmp(name, "vkCmdResetEvent")) |
| { |
| return (void*)entry_vkCmdResetEvent; |
| } |
| if (!strcmp(name, "vkCmdWaitEvents")) |
| { |
| return (void*)entry_vkCmdWaitEvents; |
| } |
| if (!strcmp(name, "vkCmdPipelineBarrier")) |
| { |
| return (void*)entry_vkCmdPipelineBarrier; |
| } |
| if (!strcmp(name, "vkCmdBeginQuery")) |
| { |
| return (void*)entry_vkCmdBeginQuery; |
| } |
| if (!strcmp(name, "vkCmdEndQuery")) |
| { |
| return (void*)entry_vkCmdEndQuery; |
| } |
| if (!strcmp(name, "vkCmdResetQueryPool")) |
| { |
| return (void*)entry_vkCmdResetQueryPool; |
| } |
| if (!strcmp(name, "vkCmdWriteTimestamp")) |
| { |
| return (void*)entry_vkCmdWriteTimestamp; |
| } |
| if (!strcmp(name, "vkCmdCopyQueryPoolResults")) |
| { |
| return (void*)entry_vkCmdCopyQueryPoolResults; |
| } |
| if (!strcmp(name, "vkCmdPushConstants")) |
| { |
| return (void*)entry_vkCmdPushConstants; |
| } |
| if (!strcmp(name, "vkCmdBeginRenderPass")) |
| { |
| return (void*)entry_vkCmdBeginRenderPass; |
| } |
| if (!strcmp(name, "vkCmdNextSubpass")) |
| { |
| return (void*)entry_vkCmdNextSubpass; |
| } |
| if (!strcmp(name, "vkCmdEndRenderPass")) |
| { |
| return (void*)entry_vkCmdEndRenderPass; |
| } |
| if (!strcmp(name, "vkCmdExecuteCommands")) |
| { |
| return (void*)entry_vkCmdExecuteCommands; |
| } |
| #endif |
| #ifdef VK_VERSION_1_1 |
| if (!strcmp(name, "vkEnumerateInstanceVersion")) |
| { |
| return has1_1OrHigher ? (void*)entry_vkEnumerateInstanceVersion : nullptr; |
| } |
| if (!strcmp(name, "vkBindBufferMemory2")) |
| { |
| return has1_1OrHigher ? (void*)entry_vkBindBufferMemory2 : nullptr; |
| } |
| if (!strcmp(name, "vkBindImageMemory2")) |
| { |
| return has1_1OrHigher ? (void*)entry_vkBindImageMemory2 : nullptr; |
| } |
| if (!strcmp(name, "vkGetDeviceGroupPeerMemoryFeatures")) |
| { |
| return has1_1OrHigher ? (void*)entry_vkGetDeviceGroupPeerMemoryFeatures : nullptr; |
| } |
| if (!strcmp(name, "vkCmdSetDeviceMask")) |
| { |
| return has1_1OrHigher ? (void*)entry_vkCmdSetDeviceMask : nullptr; |
| } |
| if (!strcmp(name, "vkCmdDispatchBase")) |
| { |
| return has1_1OrHigher ? (void*)entry_vkCmdDispatchBase : nullptr; |
| } |
| if (!strcmp(name, "vkEnumeratePhysicalDeviceGroups")) |
| { |
| return nullptr; |
| } |
| if (!strcmp(name, "vkGetImageMemoryRequirements2")) |
| { |
| return has1_1OrHigher ? (void*)entry_vkGetImageMemoryRequirements2 : nullptr; |
| } |
| if (!strcmp(name, "vkGetBufferMemoryRequirements2")) |
| { |
| return has1_1OrHigher ? (void*)entry_vkGetBufferMemoryRequirements2 : nullptr; |
| } |
| if (!strcmp(name, "vkGetImageSparseMemoryRequirements2")) |
| { |
| return has1_1OrHigher ? (void*)entry_vkGetImageSparseMemoryRequirements2 : nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceFeatures2")) |
| { |
| return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceFeatures2 : nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceProperties2")) |
| { |
| return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceProperties2 : nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties2")) |
| { |
| return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceFormatProperties2 : nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties2")) |
| { |
| return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceImageFormatProperties2 : nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties2")) |
| { |
| return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties2 : nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties2")) |
| { |
| return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceMemoryProperties2 : nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties2")) |
| { |
| return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties2 : nullptr; |
| } |
| if (!strcmp(name, "vkTrimCommandPool")) |
| { |
| return has1_1OrHigher ? (void*)entry_vkTrimCommandPool : nullptr; |
| } |
| if (!strcmp(name, "vkGetDeviceQueue2")) |
| { |
| return has1_1OrHigher ? (void*)entry_vkGetDeviceQueue2 : nullptr; |
| } |
| if (!strcmp(name, "vkCreateSamplerYcbcrConversion")) |
| { |
| return has1_1OrHigher ? (void*)entry_vkCreateSamplerYcbcrConversion : nullptr; |
| } |
| if (!strcmp(name, "vkDestroySamplerYcbcrConversion")) |
| { |
| return has1_1OrHigher ? (void*)entry_vkDestroySamplerYcbcrConversion : nullptr; |
| } |
| if (!strcmp(name, "vkCreateDescriptorUpdateTemplate")) |
| { |
| return has1_1OrHigher ? (void*)entry_vkCreateDescriptorUpdateTemplate : nullptr; |
| } |
| if (!strcmp(name, "vkDestroyDescriptorUpdateTemplate")) |
| { |
| return has1_1OrHigher ? (void*)entry_vkDestroyDescriptorUpdateTemplate : nullptr; |
| } |
| if (!strcmp(name, "vkUpdateDescriptorSetWithTemplate")) |
| { |
| return has1_1OrHigher ? (void*)entry_vkUpdateDescriptorSetWithTemplate : nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceExternalBufferProperties")) |
| { |
| return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceExternalBufferProperties : nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceExternalFenceProperties")) |
| { |
| return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceExternalFenceProperties : nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceExternalSemaphoreProperties")) |
| { |
| return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceExternalSemaphoreProperties : nullptr; |
| } |
| if (!strcmp(name, "vkGetDescriptorSetLayoutSupport")) |
| { |
| return has1_1OrHigher ? (void*)entry_vkGetDescriptorSetLayoutSupport : nullptr; |
| } |
| #endif |
| #ifdef VK_VERSION_1_2 |
| if (!strcmp(name, "vkCmdDrawIndirectCount")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_VERSION_1_2"); |
| return hasExt ? (void*)entry_vkCmdDrawIndirectCount : nullptr; |
| } |
| if (!strcmp(name, "vkCmdDrawIndexedIndirectCount")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_VERSION_1_2"); |
| return hasExt ? (void*)entry_vkCmdDrawIndexedIndirectCount : nullptr; |
| } |
| if (!strcmp(name, "vkCreateRenderPass2")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_VERSION_1_2"); |
| return hasExt ? (void*)entry_vkCreateRenderPass2 : nullptr; |
| } |
| if (!strcmp(name, "vkCmdBeginRenderPass2")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_VERSION_1_2"); |
| return hasExt ? (void*)entry_vkCmdBeginRenderPass2 : nullptr; |
| } |
| if (!strcmp(name, "vkCmdNextSubpass2")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_VERSION_1_2"); |
| return hasExt ? (void*)entry_vkCmdNextSubpass2 : nullptr; |
| } |
| if (!strcmp(name, "vkCmdEndRenderPass2")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_VERSION_1_2"); |
| return hasExt ? (void*)entry_vkCmdEndRenderPass2 : nullptr; |
| } |
| if (!strcmp(name, "vkResetQueryPool")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_VERSION_1_2"); |
| return hasExt ? (void*)entry_vkResetQueryPool : nullptr; |
| } |
| if (!strcmp(name, "vkGetSemaphoreCounterValue")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_VERSION_1_2"); |
| return hasExt ? (void*)entry_vkGetSemaphoreCounterValue : nullptr; |
| } |
| if (!strcmp(name, "vkWaitSemaphores")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_VERSION_1_2"); |
| return hasExt ? (void*)entry_vkWaitSemaphores : nullptr; |
| } |
| if (!strcmp(name, "vkSignalSemaphore")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_VERSION_1_2"); |
| return hasExt ? (void*)entry_vkSignalSemaphore : nullptr; |
| } |
| if (!strcmp(name, "vkGetBufferDeviceAddress")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_VERSION_1_2"); |
| return hasExt ? (void*)entry_vkGetBufferDeviceAddress : nullptr; |
| } |
| if (!strcmp(name, "vkGetBufferOpaqueCaptureAddress")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_VERSION_1_2"); |
| return hasExt ? (void*)entry_vkGetBufferOpaqueCaptureAddress : nullptr; |
| } |
| if (!strcmp(name, "vkGetDeviceMemoryOpaqueCaptureAddress")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_VERSION_1_2"); |
| return hasExt ? (void*)entry_vkGetDeviceMemoryOpaqueCaptureAddress : nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_surface |
| if (!strcmp(name, "vkDestroySurfaceKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_surface"); |
| return hasExt ? (void*)entry_vkDestroySurfaceKHR : nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceSurfaceSupportKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_surface"); |
| return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceSupportKHR : nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_surface"); |
| return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceCapabilitiesKHR : nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceSurfaceFormatsKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_surface"); |
| return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceFormatsKHR : nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceSurfacePresentModesKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_surface"); |
| return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfacePresentModesKHR : nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_swapchain |
| if (!strcmp(name, "vkCreateSwapchainKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain"); |
| return hasExt ? (void*)entry_vkCreateSwapchainKHR : nullptr; |
| } |
| if (!strcmp(name, "vkDestroySwapchainKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain"); |
| return hasExt ? (void*)entry_vkDestroySwapchainKHR : nullptr; |
| } |
| if (!strcmp(name, "vkGetSwapchainImagesKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain"); |
| return hasExt ? (void*)entry_vkGetSwapchainImagesKHR : nullptr; |
| } |
| if (!strcmp(name, "vkAcquireNextImageKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain"); |
| return hasExt ? (void*)entry_vkAcquireNextImageKHR : nullptr; |
| } |
| if (!strcmp(name, "vkQueuePresentKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain"); |
| return hasExt ? (void*)entry_vkQueuePresentKHR : nullptr; |
| } |
| if (!strcmp(name, "vkGetDeviceGroupPresentCapabilitiesKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain"); |
| return hasExt ? (void*)entry_vkGetDeviceGroupPresentCapabilitiesKHR : nullptr; |
| } |
| if (!strcmp(name, "vkGetDeviceGroupSurfacePresentModesKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain"); |
| return hasExt ? (void*)entry_vkGetDeviceGroupSurfacePresentModesKHR : nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDevicePresentRectanglesKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain"); |
| return hasExt ? (void*)entry_vkGetPhysicalDevicePresentRectanglesKHR : nullptr; |
| } |
| if (!strcmp(name, "vkAcquireNextImage2KHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain"); |
| return hasExt ? (void*)entry_vkAcquireNextImage2KHR : nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_display |
| if (!strcmp(name, "vkGetPhysicalDeviceDisplayPropertiesKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display"); |
| return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayPropertiesKHR : nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display"); |
| return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayPlanePropertiesKHR : nullptr; |
| } |
| if (!strcmp(name, "vkGetDisplayPlaneSupportedDisplaysKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display"); |
| return hasExt ? (void*)entry_vkGetDisplayPlaneSupportedDisplaysKHR : nullptr; |
| } |
| if (!strcmp(name, "vkGetDisplayModePropertiesKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display"); |
| return hasExt ? (void*)entry_vkGetDisplayModePropertiesKHR : nullptr; |
| } |
| if (!strcmp(name, "vkCreateDisplayModeKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display"); |
| return hasExt ? (void*)entry_vkCreateDisplayModeKHR : nullptr; |
| } |
| if (!strcmp(name, "vkGetDisplayPlaneCapabilitiesKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display"); |
| return hasExt ? (void*)entry_vkGetDisplayPlaneCapabilitiesKHR : nullptr; |
| } |
| if (!strcmp(name, "vkCreateDisplayPlaneSurfaceKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display"); |
| return hasExt ? (void*)entry_vkCreateDisplayPlaneSurfaceKHR : nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_display_swapchain |
| if (!strcmp(name, "vkCreateSharedSwapchainsKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display_swapchain"); |
| return hasExt ? (void*)entry_vkCreateSharedSwapchainsKHR : nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_xlib_surface |
| if (!strcmp(name, "vkCreateXlibSurfaceKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_xlib_surface"); |
| return hasExt ? (void*)entry_vkCreateXlibSurfaceKHR : nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceXlibPresentationSupportKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_xlib_surface"); |
| return hasExt ? (void*)entry_vkGetPhysicalDeviceXlibPresentationSupportKHR : nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_xcb_surface |
| if (!strcmp(name, "vkCreateXcbSurfaceKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_xcb_surface"); |
| return hasExt ? (void*)entry_vkCreateXcbSurfaceKHR : nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceXcbPresentationSupportKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_xcb_surface"); |
| return hasExt ? (void*)entry_vkGetPhysicalDeviceXcbPresentationSupportKHR : nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_wayland_surface |
| if (!strcmp(name, "vkCreateWaylandSurfaceKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_wayland_surface"); |
| return hasExt ? (void*)entry_vkCreateWaylandSurfaceKHR : nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceWaylandPresentationSupportKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_wayland_surface"); |
| return hasExt ? (void*)entry_vkGetPhysicalDeviceWaylandPresentationSupportKHR : nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_android_surface |
| if (!strcmp(name, "vkCreateAndroidSurfaceKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_android_surface"); |
| return hasExt ? (void*)entry_vkCreateAndroidSurfaceKHR : nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_win32_surface |
| if (!strcmp(name, "vkCreateWin32SurfaceKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_win32_surface"); |
| return hasExt ? (void*)entry_vkCreateWin32SurfaceKHR : nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceWin32PresentationSupportKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_win32_surface"); |
| return hasExt ? (void*)entry_vkGetPhysicalDeviceWin32PresentationSupportKHR : nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_video_queue |
| if (!strcmp(name, "vkGetPhysicalDeviceVideoCapabilitiesKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_video_queue"); |
| return hasExt ? (void*)entry_vkGetPhysicalDeviceVideoCapabilitiesKHR : nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceVideoFormatPropertiesKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_video_queue"); |
| return hasExt ? (void*)entry_vkGetPhysicalDeviceVideoFormatPropertiesKHR : nullptr; |
| } |
| if (!strcmp(name, "vkCreateVideoSessionKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_video_queue"); |
| return hasExt ? (void*)entry_vkCreateVideoSessionKHR : nullptr; |
| } |
| if (!strcmp(name, "vkDestroyVideoSessionKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_video_queue"); |
| return hasExt ? (void*)entry_vkDestroyVideoSessionKHR : nullptr; |
| } |
| if (!strcmp(name, "vkGetVideoSessionMemoryRequirementsKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_video_queue"); |
| return hasExt ? (void*)entry_vkGetVideoSessionMemoryRequirementsKHR : nullptr; |
| } |
| if (!strcmp(name, "vkBindVideoSessionMemoryKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_video_queue"); |
| return hasExt ? (void*)entry_vkBindVideoSessionMemoryKHR : nullptr; |
| } |
| if (!strcmp(name, "vkCreateVideoSessionParametersKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_video_queue"); |
| return hasExt ? (void*)entry_vkCreateVideoSessionParametersKHR : nullptr; |
| } |
| if (!strcmp(name, "vkUpdateVideoSessionParametersKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_video_queue"); |
| return hasExt ? (void*)entry_vkUpdateVideoSessionParametersKHR : nullptr; |
| } |
| if (!strcmp(name, "vkDestroyVideoSessionParametersKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_video_queue"); |
| return hasExt ? (void*)entry_vkDestroyVideoSessionParametersKHR : nullptr; |
| } |
| if (!strcmp(name, "vkCmdBeginVideoCodingKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_video_queue"); |
| return hasExt ? (void*)entry_vkCmdBeginVideoCodingKHR : nullptr; |
| } |
| if (!strcmp(name, "vkCmdEndVideoCodingKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_video_queue"); |
| return hasExt ? (void*)entry_vkCmdEndVideoCodingKHR : nullptr; |
| } |
| if (!strcmp(name, "vkCmdControlVideoCodingKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_video_queue"); |
| return hasExt ? (void*)entry_vkCmdControlVideoCodingKHR : nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_video_decode_queue |
| if (!strcmp(name, "vkCmdDecodeVideoKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_video_decode_queue"); |
| return hasExt ? (void*)entry_vkCmdDecodeVideoKHR : nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_dynamic_rendering |
| if (!strcmp(name, "vkCmdBeginRenderingKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_dynamic_rendering"); |
| return hasExt ? (void*)entry_vkCmdBeginRenderingKHR : nullptr; |
| } |
| if (!strcmp(name, "vkCmdEndRenderingKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_dynamic_rendering"); |
| return hasExt ? (void*)entry_vkCmdEndRenderingKHR : nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_get_physical_device_properties2 |
| if (!strcmp(name, "vkGetPhysicalDeviceFeatures2KHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2"); |
| return hasExt ? (void*)entry_vkGetPhysicalDeviceFeatures2KHR : nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceProperties2KHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2"); |
| return hasExt ? (void*)entry_vkGetPhysicalDeviceProperties2KHR : nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties2KHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2"); |
| return hasExt ? (void*)entry_vkGetPhysicalDeviceFormatProperties2KHR : nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties2KHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2"); |
| return hasExt ? (void*)entry_vkGetPhysicalDeviceImageFormatProperties2KHR : nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties2KHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2"); |
| return hasExt ? (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties2KHR : nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties2KHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2"); |
| return hasExt ? (void*)entry_vkGetPhysicalDeviceMemoryProperties2KHR : nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2"); |
| return hasExt ? (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties2KHR : nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_device_group |
| if (!strcmp(name, "vkGetDeviceGroupPeerMemoryFeaturesKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_device_group"); |
| return hasExt ? (void*)entry_vkGetDeviceGroupPeerMemoryFeaturesKHR : nullptr; |
| } |
| if (!strcmp(name, "vkCmdSetDeviceMaskKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_device_group"); |
| return hasExt ? (void*)entry_vkCmdSetDeviceMaskKHR : nullptr; |
| } |
| if (!strcmp(name, "vkCmdDispatchBaseKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_device_group"); |
| return hasExt ? (void*)entry_vkCmdDispatchBaseKHR : nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_maintenance1 |
| if (!strcmp(name, "vkTrimCommandPoolKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_maintenance1"); |
| return hasExt ? (void*)entry_vkTrimCommandPoolKHR : nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_device_group_creation |
| if (!strcmp(name, "vkEnumeratePhysicalDeviceGroupsKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_device_group_creation"); |
| return hasExt ? (void*)entry_vkEnumeratePhysicalDeviceGroupsKHR : nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_external_memory_capabilities |
| if (!strcmp(name, "vkGetPhysicalDeviceExternalBufferPropertiesKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_memory_capabilities"); |
| return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalBufferPropertiesKHR : nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_external_memory_win32 |
| if (!strcmp(name, "vkGetMemoryWin32HandleKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_memory_win32"); |
| return hasExt ? (void*)entry_vkGetMemoryWin32HandleKHR : nullptr; |
| } |
| if (!strcmp(name, "vkGetMemoryWin32HandlePropertiesKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_memory_win32"); |
| return hasExt ? (void*)entry_vkGetMemoryWin32HandlePropertiesKHR : nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_external_memory_fd |
| if (!strcmp(name, "vkGetMemoryFdKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_memory_fd"); |
| return hasExt ? (void*)entry_vkGetMemoryFdKHR : nullptr; |
| } |
| if (!strcmp(name, "vkGetMemoryFdPropertiesKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_memory_fd"); |
| return hasExt ? (void*)entry_vkGetMemoryFdPropertiesKHR : nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_external_semaphore_capabilities |
| if (!strcmp(name, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_semaphore_capabilities"); |
| return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR : nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_external_semaphore_win32 |
| if (!strcmp(name, "vkImportSemaphoreWin32HandleKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_semaphore_win32"); |
| return hasExt ? (void*)entry_vkImportSemaphoreWin32HandleKHR : nullptr; |
| } |
| if (!strcmp(name, "vkGetSemaphoreWin32HandleKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_semaphore_win32"); |
| return hasExt ? (void*)entry_vkGetSemaphoreWin32HandleKHR : nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_external_semaphore_fd |
| if (!strcmp(name, "vkImportSemaphoreFdKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_semaphore_fd"); |
| return hasExt ? (void*)entry_vkImportSemaphoreFdKHR : nullptr; |
| } |
| if (!strcmp(name, "vkGetSemaphoreFdKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_semaphore_fd"); |
| return hasExt ? (void*)entry_vkGetSemaphoreFdKHR : nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_push_descriptor |
| if (!strcmp(name, "vkCmdPushDescriptorSetKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_push_descriptor"); |
| return hasExt ? (void*)entry_vkCmdPushDescriptorSetKHR : nullptr; |
| } |
| if (!strcmp(name, "vkCmdPushDescriptorSetWithTemplateKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_push_descriptor"); |
| return hasExt ? (void*)entry_vkCmdPushDescriptorSetWithTemplateKHR : nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_descriptor_update_template |
| if (!strcmp(name, "vkCreateDescriptorUpdateTemplateKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_descriptor_update_template"); |
| return hasExt ? (void*)entry_vkCreateDescriptorUpdateTemplateKHR : nullptr; |
| } |
| if (!strcmp(name, "vkDestroyDescriptorUpdateTemplateKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_descriptor_update_template"); |
| return hasExt ? (void*)entry_vkDestroyDescriptorUpdateTemplateKHR : nullptr; |
| } |
| if (!strcmp(name, "vkUpdateDescriptorSetWithTemplateKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_descriptor_update_template"); |
| return hasExt ? (void*)entry_vkUpdateDescriptorSetWithTemplateKHR : nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_create_renderpass2 |
| if (!strcmp(name, "vkCreateRenderPass2KHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_create_renderpass2"); |
| return hasExt ? (void*)entry_vkCreateRenderPass2KHR : nullptr; |
| } |
| if (!strcmp(name, "vkCmdBeginRenderPass2KHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_create_renderpass2"); |
| return hasExt ? (void*)entry_vkCmdBeginRenderPass2KHR : nullptr; |
| } |
| if (!strcmp(name, "vkCmdNextSubpass2KHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_create_renderpass2"); |
| return hasExt ? (void*)entry_vkCmdNextSubpass2KHR : nullptr; |
| } |
| if (!strcmp(name, "vkCmdEndRenderPass2KHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_create_renderpass2"); |
| return hasExt ? (void*)entry_vkCmdEndRenderPass2KHR : nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_shared_presentable_image |
| if (!strcmp(name, "vkGetSwapchainStatusKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_shared_presentable_image"); |
| return hasExt ? (void*)entry_vkGetSwapchainStatusKHR : nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_external_fence_capabilities |
| if (!strcmp(name, "vkGetPhysicalDeviceExternalFencePropertiesKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_fence_capabilities"); |
| return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalFencePropertiesKHR : nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_external_fence_win32 |
| if (!strcmp(name, "vkImportFenceWin32HandleKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_fence_win32"); |
| return hasExt ? (void*)entry_vkImportFenceWin32HandleKHR : nullptr; |
| } |
| if (!strcmp(name, "vkGetFenceWin32HandleKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_fence_win32"); |
| return hasExt ? (void*)entry_vkGetFenceWin32HandleKHR : nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_external_fence_fd |
| if (!strcmp(name, "vkImportFenceFdKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_fence_fd"); |
| return hasExt ? (void*)entry_vkImportFenceFdKHR : nullptr; |
| } |
| if (!strcmp(name, "vkGetFenceFdKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_fence_fd"); |
| return hasExt ? (void*)entry_vkGetFenceFdKHR : nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_performance_query |
| if (!strcmp(name, "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_performance_query"); |
| return hasExt ? (void*)entry_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR : nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_performance_query"); |
| return hasExt ? (void*)entry_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR : nullptr; |
| } |
| if (!strcmp(name, "vkAcquireProfilingLockKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_performance_query"); |
| return hasExt ? (void*)entry_vkAcquireProfilingLockKHR : nullptr; |
| } |
| if (!strcmp(name, "vkReleaseProfilingLockKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_performance_query"); |
| return hasExt ? (void*)entry_vkReleaseProfilingLockKHR : nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_get_surface_capabilities2 |
| if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2KHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_surface_capabilities2"); |
| return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceCapabilities2KHR : nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceSurfaceFormats2KHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_surface_capabilities2"); |
| return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceFormats2KHR : nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_get_display_properties2 |
| if (!strcmp(name, "vkGetPhysicalDeviceDisplayProperties2KHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_display_properties2"); |
| return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayProperties2KHR : nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_display_properties2"); |
| return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayPlaneProperties2KHR : nullptr; |
| } |
| if (!strcmp(name, "vkGetDisplayModeProperties2KHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_display_properties2"); |
| return hasExt ? (void*)entry_vkGetDisplayModeProperties2KHR : nullptr; |
| } |
| if (!strcmp(name, "vkGetDisplayPlaneCapabilities2KHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_display_properties2"); |
| return hasExt ? (void*)entry_vkGetDisplayPlaneCapabilities2KHR : nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_get_memory_requirements2 |
| if (!strcmp(name, "vkGetImageMemoryRequirements2KHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_memory_requirements2"); |
| return hasExt ? (void*)entry_vkGetImageMemoryRequirements2KHR : nullptr; |
| } |
| if (!strcmp(name, "vkGetBufferMemoryRequirements2KHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_memory_requirements2"); |
| return hasExt ? (void*)entry_vkGetBufferMemoryRequirements2KHR : nullptr; |
| } |
| if (!strcmp(name, "vkGetImageSparseMemoryRequirements2KHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_memory_requirements2"); |
| return hasExt ? (void*)entry_vkGetImageSparseMemoryRequirements2KHR : nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_sampler_ycbcr_conversion |
| if (!strcmp(name, "vkCreateSamplerYcbcrConversionKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_sampler_ycbcr_conversion"); |
| return hasExt ? (void*)entry_vkCreateSamplerYcbcrConversionKHR : nullptr; |
| } |
| if (!strcmp(name, "vkDestroySamplerYcbcrConversionKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_sampler_ycbcr_conversion"); |
| return hasExt ? (void*)entry_vkDestroySamplerYcbcrConversionKHR : nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_bind_memory2 |
| if (!strcmp(name, "vkBindBufferMemory2KHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_bind_memory2"); |
| return hasExt ? (void*)entry_vkBindBufferMemory2KHR : nullptr; |
| } |
| if (!strcmp(name, "vkBindImageMemory2KHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_bind_memory2"); |
| return hasExt ? (void*)entry_vkBindImageMemory2KHR : nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_maintenance3 |
| if (!strcmp(name, "vkGetDescriptorSetLayoutSupportKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_maintenance3"); |
| return hasExt ? (void*)entry_vkGetDescriptorSetLayoutSupportKHR : nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_draw_indirect_count |
| if (!strcmp(name, "vkCmdDrawIndirectCountKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_draw_indirect_count"); |
| return hasExt ? (void*)entry_vkCmdDrawIndirectCountKHR : nullptr; |
| } |
| if (!strcmp(name, "vkCmdDrawIndexedIndirectCountKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_draw_indirect_count"); |
| return hasExt ? (void*)entry_vkCmdDrawIndexedIndirectCountKHR : nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_timeline_semaphore |
| if (!strcmp(name, "vkGetSemaphoreCounterValueKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_timeline_semaphore"); |
| return hasExt ? (void*)entry_vkGetSemaphoreCounterValueKHR : nullptr; |
| } |
| if (!strcmp(name, "vkWaitSemaphoresKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_timeline_semaphore"); |
| return hasExt ? (void*)entry_vkWaitSemaphoresKHR : nullptr; |
| } |
| if (!strcmp(name, "vkSignalSemaphoreKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_timeline_semaphore"); |
| return hasExt ? (void*)entry_vkSignalSemaphoreKHR : nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_fragment_shading_rate |
| if (!strcmp(name, "vkGetPhysicalDeviceFragmentShadingRatesKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_fragment_shading_rate"); |
| return hasExt ? (void*)entry_vkGetPhysicalDeviceFragmentShadingRatesKHR : nullptr; |
| } |
| if (!strcmp(name, "vkCmdSetFragmentShadingRateKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_fragment_shading_rate"); |
| return hasExt ? (void*)entry_vkCmdSetFragmentShadingRateKHR : nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_present_wait |
| if (!strcmp(name, "vkWaitForPresentKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_present_wait"); |
| return hasExt ? (void*)entry_vkWaitForPresentKHR : nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_buffer_device_address |
| if (!strcmp(name, "vkGetBufferDeviceAddressKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_buffer_device_address"); |
| return hasExt ? (void*)entry_vkGetBufferDeviceAddressKHR : nullptr; |
| } |
| if (!strcmp(name, "vkGetBufferOpaqueCaptureAddressKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_buffer_device_address"); |
| return hasExt ? (void*)entry_vkGetBufferOpaqueCaptureAddressKHR : nullptr; |
| } |
| if (!strcmp(name, "vkGetDeviceMemoryOpaqueCaptureAddressKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_buffer_device_address"); |
| return hasExt ? (void*)entry_vkGetDeviceMemoryOpaqueCaptureAddressKHR : nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_deferred_host_operations |
| if (!strcmp(name, "vkCreateDeferredOperationKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_deferred_host_operations"); |
| return hasExt ? (void*)entry_vkCreateDeferredOperationKHR : nullptr; |
| } |
| if (!strcmp(name, "vkDestroyDeferredOperationKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_deferred_host_operations"); |
| return hasExt ? (void*)entry_vkDestroyDeferredOperationKHR : nullptr; |
| } |
| if (!strcmp(name, "vkGetDeferredOperationMaxConcurrencyKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_deferred_host_operations"); |
| return hasExt ? (void*)entry_vkGetDeferredOperationMaxConcurrencyKHR : nullptr; |
| } |
| if (!strcmp(name, "vkGetDeferredOperationResultKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_deferred_host_operations"); |
| return hasExt ? (void*)entry_vkGetDeferredOperationResultKHR : nullptr; |
| } |
| if (!strcmp(name, "vkDeferredOperationJoinKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_deferred_host_operations"); |
| return hasExt ? (void*)entry_vkDeferredOperationJoinKHR : nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_pipeline_executable_properties |
| if (!strcmp(name, "vkGetPipelineExecutablePropertiesKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_pipeline_executable_properties"); |
| return hasExt ? (void*)entry_vkGetPipelineExecutablePropertiesKHR : nullptr; |
| } |
| if (!strcmp(name, "vkGetPipelineExecutableStatisticsKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_pipeline_executable_properties"); |
| return hasExt ? (void*)entry_vkGetPipelineExecutableStatisticsKHR : nullptr; |
| } |
| if (!strcmp(name, "vkGetPipelineExecutableInternalRepresentationsKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_pipeline_executable_properties"); |
| return hasExt ? (void*)entry_vkGetPipelineExecutableInternalRepresentationsKHR : nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_video_encode_queue |
| if (!strcmp(name, "vkCmdEncodeVideoKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_video_encode_queue"); |
| return hasExt ? (void*)entry_vkCmdEncodeVideoKHR : nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_synchronization2 |
| if (!strcmp(name, "vkCmdSetEvent2KHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_synchronization2"); |
| return hasExt ? (void*)entry_vkCmdSetEvent2KHR : nullptr; |
| } |
| if (!strcmp(name, "vkCmdResetEvent2KHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_synchronization2"); |
| return hasExt ? (void*)entry_vkCmdResetEvent2KHR : nullptr; |
| } |
| if (!strcmp(name, "vkCmdWaitEvents2KHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_synchronization2"); |
| return hasExt ? (void*)entry_vkCmdWaitEvents2KHR : nullptr; |
| } |
| if (!strcmp(name, "vkCmdPipelineBarrier2KHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_synchronization2"); |
| return hasExt ? (void*)entry_vkCmdPipelineBarrier2KHR : nullptr; |
| } |
| if (!strcmp(name, "vkCmdWriteTimestamp2KHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_synchronization2"); |
| return hasExt ? (void*)entry_vkCmdWriteTimestamp2KHR : nullptr; |
| } |
| if (!strcmp(name, "vkQueueSubmit2KHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_synchronization2"); |
| return hasExt ? (void*)entry_vkQueueSubmit2KHR : nullptr; |
| } |
| if (!strcmp(name, "vkCmdWriteBufferMarker2AMD")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_synchronization2"); |
| return hasExt ? (void*)entry_vkCmdWriteBufferMarker2AMD : nullptr; |
| } |
| if (!strcmp(name, "vkGetQueueCheckpointData2NV")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_synchronization2"); |
| return hasExt ? (void*)entry_vkGetQueueCheckpointData2NV : nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_copy_commands2 |
| if (!strcmp(name, "vkCmdCopyBuffer2KHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_copy_commands2"); |
| return hasExt ? (void*)entry_vkCmdCopyBuffer2KHR : nullptr; |
| } |
| if (!strcmp(name, "vkCmdCopyImage2KHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_copy_commands2"); |
| return hasExt ? (void*)entry_vkCmdCopyImage2KHR : nullptr; |
| } |
| if (!strcmp(name, "vkCmdCopyBufferToImage2KHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_copy_commands2"); |
| return hasExt ? (void*)entry_vkCmdCopyBufferToImage2KHR : nullptr; |
| } |
| if (!strcmp(name, "vkCmdCopyImageToBuffer2KHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_copy_commands2"); |
| return hasExt ? (void*)entry_vkCmdCopyImageToBuffer2KHR : nullptr; |
| } |
| if (!strcmp(name, "vkCmdBlitImage2KHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_copy_commands2"); |
| return hasExt ? (void*)entry_vkCmdBlitImage2KHR : nullptr; |
| } |
| if (!strcmp(name, "vkCmdResolveImage2KHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_copy_commands2"); |
| return hasExt ? (void*)entry_vkCmdResolveImage2KHR : nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_maintenance4 |
| if (!strcmp(name, "vkGetDeviceBufferMemoryRequirementsKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_maintenance4"); |
| return hasExt ? (void*)entry_vkGetDeviceBufferMemoryRequirementsKHR : nullptr; |
| } |
| if (!strcmp(name, "vkGetDeviceImageMemoryRequirementsKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_maintenance4"); |
| return hasExt ? (void*)entry_vkGetDeviceImageMemoryRequirementsKHR : nullptr; |
| } |
| if (!strcmp(name, "vkGetDeviceImageSparseMemoryRequirementsKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_maintenance4"); |
| return hasExt ? (void*)entry_vkGetDeviceImageSparseMemoryRequirementsKHR : nullptr; |
| } |
| #endif |
| #ifdef VK_ANDROID_native_buffer |
| if (!strcmp(name, "vkGetSwapchainGrallocUsageANDROID")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_ANDROID_native_buffer"); |
| return hasExt ? (void*)entry_vkGetSwapchainGrallocUsageANDROID : nullptr; |
| } |
| if (!strcmp(name, "vkAcquireImageANDROID")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_ANDROID_native_buffer"); |
| return hasExt ? (void*)entry_vkAcquireImageANDROID : nullptr; |
| } |
| if (!strcmp(name, "vkQueueSignalReleaseImageANDROID")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_ANDROID_native_buffer"); |
| return hasExt ? (void*)entry_vkQueueSignalReleaseImageANDROID : nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_debug_report |
| if (!strcmp(name, "vkCreateDebugReportCallbackEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_report"); |
| return hasExt ? (void*)entry_vkCreateDebugReportCallbackEXT : nullptr; |
| } |
| if (!strcmp(name, "vkDestroyDebugReportCallbackEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_report"); |
| return hasExt ? (void*)entry_vkDestroyDebugReportCallbackEXT : nullptr; |
| } |
| if (!strcmp(name, "vkDebugReportMessageEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_report"); |
| return hasExt ? (void*)entry_vkDebugReportMessageEXT : nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_debug_marker |
| if (!strcmp(name, "vkDebugMarkerSetObjectTagEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_marker"); |
| return hasExt ? (void*)entry_vkDebugMarkerSetObjectTagEXT : nullptr; |
| } |
| if (!strcmp(name, "vkDebugMarkerSetObjectNameEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_marker"); |
| return hasExt ? (void*)entry_vkDebugMarkerSetObjectNameEXT : nullptr; |
| } |
| if (!strcmp(name, "vkCmdDebugMarkerBeginEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_marker"); |
| return hasExt ? (void*)entry_vkCmdDebugMarkerBeginEXT : nullptr; |
| } |
| if (!strcmp(name, "vkCmdDebugMarkerEndEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_marker"); |
| return hasExt ? (void*)entry_vkCmdDebugMarkerEndEXT : nullptr; |
| } |
| if (!strcmp(name, "vkCmdDebugMarkerInsertEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_marker"); |
| return hasExt ? (void*)entry_vkCmdDebugMarkerInsertEXT : nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_transform_feedback |
| if (!strcmp(name, "vkCmdBindTransformFeedbackBuffersEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_transform_feedback"); |
| return hasExt ? (void*)entry_vkCmdBindTransformFeedbackBuffersEXT : nullptr; |
| } |
| if (!strcmp(name, "vkCmdBeginTransformFeedbackEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_transform_feedback"); |
| return hasExt ? (void*)entry_vkCmdBeginTransformFeedbackEXT : nullptr; |
| } |
| if (!strcmp(name, "vkCmdEndTransformFeedbackEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_transform_feedback"); |
| return hasExt ? (void*)entry_vkCmdEndTransformFeedbackEXT : nullptr; |
| } |
| if (!strcmp(name, "vkCmdBeginQueryIndexedEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_transform_feedback"); |
| return hasExt ? (void*)entry_vkCmdBeginQueryIndexedEXT : nullptr; |
| } |
| if (!strcmp(name, "vkCmdEndQueryIndexedEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_transform_feedback"); |
| return hasExt ? (void*)entry_vkCmdEndQueryIndexedEXT : nullptr; |
| } |
| if (!strcmp(name, "vkCmdDrawIndirectByteCountEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_transform_feedback"); |
| return hasExt ? (void*)entry_vkCmdDrawIndirectByteCountEXT : nullptr; |
| } |
| #endif |
| #ifdef VK_NVX_binary_import |
| if (!strcmp(name, "vkCreateCuModuleNVX")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_binary_import"); |
| return hasExt ? (void*)entry_vkCreateCuModuleNVX : nullptr; |
| } |
| if (!strcmp(name, "vkCreateCuFunctionNVX")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_binary_import"); |
| return hasExt ? (void*)entry_vkCreateCuFunctionNVX : nullptr; |
| } |
| if (!strcmp(name, "vkDestroyCuModuleNVX")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_binary_import"); |
| return hasExt ? (void*)entry_vkDestroyCuModuleNVX : nullptr; |
| } |
| if (!strcmp(name, "vkDestroyCuFunctionNVX")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_binary_import"); |
| return hasExt ? (void*)entry_vkDestroyCuFunctionNVX : nullptr; |
| } |
| if (!strcmp(name, "vkCmdCuLaunchKernelNVX")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_binary_import"); |
| return hasExt ? (void*)entry_vkCmdCuLaunchKernelNVX : nullptr; |
| } |
| #endif |
| #ifdef VK_NVX_image_view_handle |
| if (!strcmp(name, "vkGetImageViewHandleNVX")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_image_view_handle"); |
| return hasExt ? (void*)entry_vkGetImageViewHandleNVX : nullptr; |
| } |
| if (!strcmp(name, "vkGetImageViewAddressNVX")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_image_view_handle"); |
| return hasExt ? (void*)entry_vkGetImageViewAddressNVX : nullptr; |
| } |
| #endif |
| #ifdef VK_AMD_draw_indirect_count |
| if (!strcmp(name, "vkCmdDrawIndirectCountAMD")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_AMD_draw_indirect_count"); |
| return hasExt ? (void*)entry_vkCmdDrawIndirectCountAMD : nullptr; |
| } |
| if (!strcmp(name, "vkCmdDrawIndexedIndirectCountAMD")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_AMD_draw_indirect_count"); |
| return hasExt ? (void*)entry_vkCmdDrawIndexedIndirectCountAMD : nullptr; |
| } |
| #endif |
| #ifdef VK_AMD_shader_info |
| if (!strcmp(name, "vkGetShaderInfoAMD")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_AMD_shader_info"); |
| return hasExt ? (void*)entry_vkGetShaderInfoAMD : nullptr; |
| } |
| #endif |
| #ifdef VK_GGP_stream_descriptor_surface |
| if (!strcmp(name, "vkCreateStreamDescriptorSurfaceGGP")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_GGP_stream_descriptor_surface"); |
| return hasExt ? (void*)entry_vkCreateStreamDescriptorSurfaceGGP : nullptr; |
| } |
| #endif |
| #ifdef VK_NV_external_memory_capabilities |
| if (!strcmp(name, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_NV_external_memory_capabilities"); |
| return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalImageFormatPropertiesNV : nullptr; |
| } |
| #endif |
| #ifdef VK_NV_external_memory_win32 |
| if (!strcmp(name, "vkGetMemoryWin32HandleNV")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_NV_external_memory_win32"); |
| return hasExt ? (void*)entry_vkGetMemoryWin32HandleNV : nullptr; |
| } |
| #endif |
| #ifdef VK_NN_vi_surface |
| if (!strcmp(name, "vkCreateViSurfaceNN")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_NN_vi_surface"); |
| return hasExt ? (void*)entry_vkCreateViSurfaceNN : nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_conditional_rendering |
| if (!strcmp(name, "vkCmdBeginConditionalRenderingEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_conditional_rendering"); |
| return hasExt ? (void*)entry_vkCmdBeginConditionalRenderingEXT : nullptr; |
| } |
| if (!strcmp(name, "vkCmdEndConditionalRenderingEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_conditional_rendering"); |
| return hasExt ? (void*)entry_vkCmdEndConditionalRenderingEXT : nullptr; |
| } |
| #endif |
| #ifdef VK_NV_clip_space_w_scaling |
| if (!strcmp(name, "vkCmdSetViewportWScalingNV")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_NV_clip_space_w_scaling"); |
| return hasExt ? (void*)entry_vkCmdSetViewportWScalingNV : nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_direct_mode_display |
| if (!strcmp(name, "vkReleaseDisplayEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_direct_mode_display"); |
| return hasExt ? (void*)entry_vkReleaseDisplayEXT : nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_acquire_xlib_display |
| if (!strcmp(name, "vkAcquireXlibDisplayEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_acquire_xlib_display"); |
| return hasExt ? (void*)entry_vkAcquireXlibDisplayEXT : nullptr; |
| } |
| if (!strcmp(name, "vkGetRandROutputDisplayEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_acquire_xlib_display"); |
| return hasExt ? (void*)entry_vkGetRandROutputDisplayEXT : nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_display_surface_counter |
| if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2EXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_display_surface_counter"); |
| return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceCapabilities2EXT : nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_display_control |
| if (!strcmp(name, "vkDisplayPowerControlEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_display_control"); |
| return hasExt ? (void*)entry_vkDisplayPowerControlEXT : nullptr; |
| } |
| if (!strcmp(name, "vkRegisterDeviceEventEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_display_control"); |
| return hasExt ? (void*)entry_vkRegisterDeviceEventEXT : nullptr; |
| } |
| if (!strcmp(name, "vkRegisterDisplayEventEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_display_control"); |
| return hasExt ? (void*)entry_vkRegisterDisplayEventEXT : nullptr; |
| } |
| if (!strcmp(name, "vkGetSwapchainCounterEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_display_control"); |
| return hasExt ? (void*)entry_vkGetSwapchainCounterEXT : nullptr; |
| } |
| #endif |
| #ifdef VK_GOOGLE_display_timing |
| if (!strcmp(name, "vkGetRefreshCycleDurationGOOGLE")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_display_timing"); |
| return hasExt ? (void*)entry_vkGetRefreshCycleDurationGOOGLE : nullptr; |
| } |
| if (!strcmp(name, "vkGetPastPresentationTimingGOOGLE")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_display_timing"); |
| return hasExt ? (void*)entry_vkGetPastPresentationTimingGOOGLE : nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_discard_rectangles |
| if (!strcmp(name, "vkCmdSetDiscardRectangleEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_discard_rectangles"); |
| return hasExt ? (void*)entry_vkCmdSetDiscardRectangleEXT : nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_hdr_metadata |
| if (!strcmp(name, "vkSetHdrMetadataEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_hdr_metadata"); |
| return hasExt ? (void*)entry_vkSetHdrMetadataEXT : nullptr; |
| } |
| #endif |
| #ifdef VK_MVK_ios_surface |
| if (!strcmp(name, "vkCreateIOSSurfaceMVK")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_MVK_ios_surface"); |
| return hasExt ? (void*)entry_vkCreateIOSSurfaceMVK : nullptr; |
| } |
| #endif |
| #ifdef VK_MVK_macos_surface |
| if (!strcmp(name, "vkCreateMacOSSurfaceMVK")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_MVK_macos_surface"); |
| return hasExt ? (void*)entry_vkCreateMacOSSurfaceMVK : nullptr; |
| } |
| #endif |
| #ifdef VK_MVK_moltenvk |
| if (!strcmp(name, "vkGetMTLDeviceMVK")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_MVK_moltenvk"); |
| return hasExt ? (void*)entry_vkGetMTLDeviceMVK : nullptr; |
| } |
| if (!strcmp(name, "vkSetMTLTextureMVK")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_MVK_moltenvk"); |
| return hasExt ? (void*)entry_vkSetMTLTextureMVK : nullptr; |
| } |
| if (!strcmp(name, "vkGetMTLTextureMVK")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_MVK_moltenvk"); |
| return hasExt ? (void*)entry_vkGetMTLTextureMVK : nullptr; |
| } |
| if (!strcmp(name, "vkGetMTLBufferMVK")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_MVK_moltenvk"); |
| return hasExt ? (void*)entry_vkGetMTLBufferMVK : nullptr; |
| } |
| if (!strcmp(name, "vkUseIOSurfaceMVK")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_MVK_moltenvk"); |
| return hasExt ? (void*)entry_vkUseIOSurfaceMVK : nullptr; |
| } |
| if (!strcmp(name, "vkGetIOSurfaceMVK")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_MVK_moltenvk"); |
| return hasExt ? (void*)entry_vkGetIOSurfaceMVK : nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_debug_utils |
| if (!strcmp(name, "vkSetDebugUtilsObjectNameEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils"); |
| return hasExt ? (void*)entry_vkSetDebugUtilsObjectNameEXT : nullptr; |
| } |
| if (!strcmp(name, "vkSetDebugUtilsObjectTagEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils"); |
| return hasExt ? (void*)entry_vkSetDebugUtilsObjectTagEXT : nullptr; |
| } |
| if (!strcmp(name, "vkQueueBeginDebugUtilsLabelEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils"); |
| return hasExt ? (void*)entry_vkQueueBeginDebugUtilsLabelEXT : nullptr; |
| } |
| if (!strcmp(name, "vkQueueEndDebugUtilsLabelEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils"); |
| return hasExt ? (void*)entry_vkQueueEndDebugUtilsLabelEXT : nullptr; |
| } |
| if (!strcmp(name, "vkQueueInsertDebugUtilsLabelEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils"); |
| return hasExt ? (void*)entry_vkQueueInsertDebugUtilsLabelEXT : nullptr; |
| } |
| if (!strcmp(name, "vkCmdBeginDebugUtilsLabelEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils"); |
| return hasExt ? (void*)entry_vkCmdBeginDebugUtilsLabelEXT : nullptr; |
| } |
| if (!strcmp(name, "vkCmdEndDebugUtilsLabelEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils"); |
| return hasExt ? (void*)entry_vkCmdEndDebugUtilsLabelEXT : nullptr; |
| } |
| if (!strcmp(name, "vkCmdInsertDebugUtilsLabelEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils"); |
| return hasExt ? (void*)entry_vkCmdInsertDebugUtilsLabelEXT : nullptr; |
| } |
| if (!strcmp(name, "vkCreateDebugUtilsMessengerEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils"); |
| return hasExt ? (void*)entry_vkCreateDebugUtilsMessengerEXT : nullptr; |
| } |
| if (!strcmp(name, "vkDestroyDebugUtilsMessengerEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils"); |
| return hasExt ? (void*)entry_vkDestroyDebugUtilsMessengerEXT : nullptr; |
| } |
| if (!strcmp(name, "vkSubmitDebugUtilsMessageEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils"); |
| return hasExt ? (void*)entry_vkSubmitDebugUtilsMessageEXT : nullptr; |
| } |
| #endif |
| #ifdef VK_ANDROID_external_memory_android_hardware_buffer |
| if (!strcmp(name, "vkGetAndroidHardwareBufferPropertiesANDROID")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_ANDROID_external_memory_android_hardware_buffer"); |
| return hasExt ? (void*)entry_vkGetAndroidHardwareBufferPropertiesANDROID : nullptr; |
| } |
| if (!strcmp(name, "vkGetMemoryAndroidHardwareBufferANDROID")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_ANDROID_external_memory_android_hardware_buffer"); |
| return hasExt ? (void*)entry_vkGetMemoryAndroidHardwareBufferANDROID : nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_sample_locations |
| if (!strcmp(name, "vkCmdSetSampleLocationsEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_sample_locations"); |
| return hasExt ? (void*)entry_vkCmdSetSampleLocationsEXT : nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceMultisamplePropertiesEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_sample_locations"); |
| return hasExt ? (void*)entry_vkGetPhysicalDeviceMultisamplePropertiesEXT : nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_image_drm_format_modifier |
| if (!strcmp(name, "vkGetImageDrmFormatModifierPropertiesEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_image_drm_format_modifier"); |
| return hasExt ? (void*)entry_vkGetImageDrmFormatModifierPropertiesEXT : nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_validation_cache |
| if (!strcmp(name, "vkCreateValidationCacheEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_validation_cache"); |
| return hasExt ? (void*)entry_vkCreateValidationCacheEXT : nullptr; |
| } |
| if (!strcmp(name, "vkDestroyValidationCacheEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_validation_cache"); |
| return hasExt ? (void*)entry_vkDestroyValidationCacheEXT : nullptr; |
| } |
| if (!strcmp(name, "vkMergeValidationCachesEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_validation_cache"); |
| return hasExt ? (void*)entry_vkMergeValidationCachesEXT : nullptr; |
| } |
| if (!strcmp(name, "vkGetValidationCacheDataEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_validation_cache"); |
| return hasExt ? (void*)entry_vkGetValidationCacheDataEXT : nullptr; |
| } |
| #endif |
| #ifdef VK_NV_shading_rate_image |
| if (!strcmp(name, "vkCmdBindShadingRateImageNV")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_NV_shading_rate_image"); |
| return hasExt ? (void*)entry_vkCmdBindShadingRateImageNV : nullptr; |
| } |
| if (!strcmp(name, "vkCmdSetViewportShadingRatePaletteNV")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_NV_shading_rate_image"); |
| return hasExt ? (void*)entry_vkCmdSetViewportShadingRatePaletteNV : nullptr; |
| } |
| if (!strcmp(name, "vkCmdSetCoarseSampleOrderNV")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_NV_shading_rate_image"); |
| return hasExt ? (void*)entry_vkCmdSetCoarseSampleOrderNV : nullptr; |
| } |
| #endif |
| #ifdef VK_NV_ray_tracing |
| if (!strcmp(name, "vkCreateAccelerationStructureNV")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_NV_ray_tracing"); |
| return hasExt ? (void*)entry_vkCreateAccelerationStructureNV : nullptr; |
| } |
| if (!strcmp(name, "vkDestroyAccelerationStructureNV")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_NV_ray_tracing"); |
| return hasExt ? (void*)entry_vkDestroyAccelerationStructureNV : nullptr; |
| } |
| if (!strcmp(name, "vkGetAccelerationStructureMemoryRequirementsNV")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_NV_ray_tracing"); |
| return hasExt ? (void*)entry_vkGetAccelerationStructureMemoryRequirementsNV : nullptr; |
| } |
| if (!strcmp(name, "vkBindAccelerationStructureMemoryNV")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_NV_ray_tracing"); |
| return hasExt ? (void*)entry_vkBindAccelerationStructureMemoryNV : nullptr; |
| } |
| if (!strcmp(name, "vkCmdBuildAccelerationStructureNV")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_NV_ray_tracing"); |
| return hasExt ? (void*)entry_vkCmdBuildAccelerationStructureNV : nullptr; |
| } |
| if (!strcmp(name, "vkCmdCopyAccelerationStructureNV")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_NV_ray_tracing"); |
| return hasExt ? (void*)entry_vkCmdCopyAccelerationStructureNV : nullptr; |
| } |
| if (!strcmp(name, "vkCmdTraceRaysNV")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_NV_ray_tracing"); |
| return hasExt ? (void*)entry_vkCmdTraceRaysNV : nullptr; |
| } |
| if (!strcmp(name, "vkCreateRayTracingPipelinesNV")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_NV_ray_tracing"); |
| return hasExt ? (void*)entry_vkCreateRayTracingPipelinesNV : nullptr; |
| } |
| if (!strcmp(name, "vkGetRayTracingShaderGroupHandlesKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_NV_ray_tracing"); |
| return hasExt ? (void*)entry_vkGetRayTracingShaderGroupHandlesKHR : nullptr; |
| } |
| if (!strcmp(name, "vkGetRayTracingShaderGroupHandlesNV")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_NV_ray_tracing"); |
| return hasExt ? (void*)entry_vkGetRayTracingShaderGroupHandlesNV : nullptr; |
| } |
| if (!strcmp(name, "vkGetAccelerationStructureHandleNV")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_NV_ray_tracing"); |
| return hasExt ? (void*)entry_vkGetAccelerationStructureHandleNV : nullptr; |
| } |
| if (!strcmp(name, "vkCmdWriteAccelerationStructuresPropertiesNV")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_NV_ray_tracing"); |
| return hasExt ? (void*)entry_vkCmdWriteAccelerationStructuresPropertiesNV : nullptr; |
| } |
| if (!strcmp(name, "vkCompileDeferredNV")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_NV_ray_tracing"); |
| return hasExt ? (void*)entry_vkCompileDeferredNV : nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_external_memory_host |
| if (!strcmp(name, "vkGetMemoryHostPointerPropertiesEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_external_memory_host"); |
| return hasExt ? (void*)entry_vkGetMemoryHostPointerPropertiesEXT : nullptr; |
| } |
| #endif |
| #ifdef VK_AMD_buffer_marker |
| if (!strcmp(name, "vkCmdWriteBufferMarkerAMD")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_AMD_buffer_marker"); |
| return hasExt ? (void*)entry_vkCmdWriteBufferMarkerAMD : nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_calibrated_timestamps |
| if (!strcmp(name, "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_calibrated_timestamps"); |
| return hasExt ? (void*)entry_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT : nullptr; |
| } |
| if (!strcmp(name, "vkGetCalibratedTimestampsEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_calibrated_timestamps"); |
| return hasExt ? (void*)entry_vkGetCalibratedTimestampsEXT : nullptr; |
| } |
| #endif |
| #ifdef VK_NV_mesh_shader |
| if (!strcmp(name, "vkCmdDrawMeshTasksNV")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_NV_mesh_shader"); |
| return hasExt ? (void*)entry_vkCmdDrawMeshTasksNV : nullptr; |
| } |
| if (!strcmp(name, "vkCmdDrawMeshTasksIndirectNV")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_NV_mesh_shader"); |
| return hasExt ? (void*)entry_vkCmdDrawMeshTasksIndirectNV : nullptr; |
| } |
| if (!strcmp(name, "vkCmdDrawMeshTasksIndirectCountNV")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_NV_mesh_shader"); |
| return hasExt ? (void*)entry_vkCmdDrawMeshTasksIndirectCountNV : nullptr; |
| } |
| #endif |
| #ifdef VK_NV_scissor_exclusive |
| if (!strcmp(name, "vkCmdSetExclusiveScissorNV")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_NV_scissor_exclusive"); |
| return hasExt ? (void*)entry_vkCmdSetExclusiveScissorNV : nullptr; |
| } |
| #endif |
| #ifdef VK_NV_device_diagnostic_checkpoints |
| if (!strcmp(name, "vkCmdSetCheckpointNV")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_NV_device_diagnostic_checkpoints"); |
| return hasExt ? (void*)entry_vkCmdSetCheckpointNV : nullptr; |
| } |
| if (!strcmp(name, "vkGetQueueCheckpointDataNV")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_NV_device_diagnostic_checkpoints"); |
| return hasExt ? (void*)entry_vkGetQueueCheckpointDataNV : nullptr; |
| } |
| #endif |
| #ifdef VK_INTEL_performance_query |
| if (!strcmp(name, "vkInitializePerformanceApiINTEL")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_INTEL_performance_query"); |
| return hasExt ? (void*)entry_vkInitializePerformanceApiINTEL : nullptr; |
| } |
| if (!strcmp(name, "vkUninitializePerformanceApiINTEL")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_INTEL_performance_query"); |
| return hasExt ? (void*)entry_vkUninitializePerformanceApiINTEL : nullptr; |
| } |
| if (!strcmp(name, "vkCmdSetPerformanceMarkerINTEL")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_INTEL_performance_query"); |
| return hasExt ? (void*)entry_vkCmdSetPerformanceMarkerINTEL : nullptr; |
| } |
| if (!strcmp(name, "vkCmdSetPerformanceStreamMarkerINTEL")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_INTEL_performance_query"); |
| return hasExt ? (void*)entry_vkCmdSetPerformanceStreamMarkerINTEL : nullptr; |
| } |
| if (!strcmp(name, "vkCmdSetPerformanceOverrideINTEL")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_INTEL_performance_query"); |
| return hasExt ? (void*)entry_vkCmdSetPerformanceOverrideINTEL : nullptr; |
| } |
| if (!strcmp(name, "vkAcquirePerformanceConfigurationINTEL")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_INTEL_performance_query"); |
| return hasExt ? (void*)entry_vkAcquirePerformanceConfigurationINTEL : nullptr; |
| } |
| if (!strcmp(name, "vkReleasePerformanceConfigurationINTEL")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_INTEL_performance_query"); |
| return hasExt ? (void*)entry_vkReleasePerformanceConfigurationINTEL : nullptr; |
| } |
| if (!strcmp(name, "vkQueueSetPerformanceConfigurationINTEL")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_INTEL_performance_query"); |
| return hasExt ? (void*)entry_vkQueueSetPerformanceConfigurationINTEL : nullptr; |
| } |
| if (!strcmp(name, "vkGetPerformanceParameterINTEL")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_INTEL_performance_query"); |
| return hasExt ? (void*)entry_vkGetPerformanceParameterINTEL : nullptr; |
| } |
| #endif |
| #ifdef VK_AMD_display_native_hdr |
| if (!strcmp(name, "vkSetLocalDimmingAMD")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_AMD_display_native_hdr"); |
| return hasExt ? (void*)entry_vkSetLocalDimmingAMD : nullptr; |
| } |
| #endif |
| #ifdef VK_FUCHSIA_imagepipe_surface |
| if (!strcmp(name, "vkCreateImagePipeSurfaceFUCHSIA")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_FUCHSIA_imagepipe_surface"); |
| return hasExt ? (void*)entry_vkCreateImagePipeSurfaceFUCHSIA : nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_metal_surface |
| if (!strcmp(name, "vkCreateMetalSurfaceEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_metal_surface"); |
| return hasExt ? (void*)entry_vkCreateMetalSurfaceEXT : nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_buffer_device_address |
| if (!strcmp(name, "vkGetBufferDeviceAddressEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_buffer_device_address"); |
| return hasExt ? (void*)entry_vkGetBufferDeviceAddressEXT : nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_tooling_info |
| if (!strcmp(name, "vkGetPhysicalDeviceToolPropertiesEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_tooling_info"); |
| return hasExt ? (void*)entry_vkGetPhysicalDeviceToolPropertiesEXT : nullptr; |
| } |
| #endif |
| #ifdef VK_NV_cooperative_matrix |
| if (!strcmp(name, "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_NV_cooperative_matrix"); |
| return hasExt ? (void*)entry_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV : nullptr; |
| } |
| #endif |
| #ifdef VK_NV_coverage_reduction_mode |
| if (!strcmp(name, "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_NV_coverage_reduction_mode"); |
| return hasExt ? (void*)entry_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV : nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_full_screen_exclusive |
| if (!strcmp(name, "vkGetPhysicalDeviceSurfacePresentModes2EXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_full_screen_exclusive"); |
| return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfacePresentModes2EXT : nullptr; |
| } |
| if (!strcmp(name, "vkAcquireFullScreenExclusiveModeEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_full_screen_exclusive"); |
| return hasExt ? (void*)entry_vkAcquireFullScreenExclusiveModeEXT : nullptr; |
| } |
| if (!strcmp(name, "vkReleaseFullScreenExclusiveModeEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_full_screen_exclusive"); |
| return hasExt ? (void*)entry_vkReleaseFullScreenExclusiveModeEXT : nullptr; |
| } |
| if (!strcmp(name, "vkGetDeviceGroupSurfacePresentModes2EXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_full_screen_exclusive"); |
| return hasExt ? (void*)entry_vkGetDeviceGroupSurfacePresentModes2EXT : nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_headless_surface |
| if (!strcmp(name, "vkCreateHeadlessSurfaceEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_headless_surface"); |
| return hasExt ? (void*)entry_vkCreateHeadlessSurfaceEXT : nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_line_rasterization |
| if (!strcmp(name, "vkCmdSetLineStippleEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_line_rasterization"); |
| return hasExt ? (void*)entry_vkCmdSetLineStippleEXT : nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_host_query_reset |
| if (!strcmp(name, "vkResetQueryPoolEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_host_query_reset"); |
| return hasExt ? (void*)entry_vkResetQueryPoolEXT : nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_extended_dynamic_state |
| if (!strcmp(name, "vkCmdSetCullModeEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state"); |
| return hasExt ? (void*)entry_vkCmdSetCullModeEXT : nullptr; |
| } |
| if (!strcmp(name, "vkCmdSetFrontFaceEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state"); |
| return hasExt ? (void*)entry_vkCmdSetFrontFaceEXT : nullptr; |
| } |
| if (!strcmp(name, "vkCmdSetPrimitiveTopologyEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state"); |
| return hasExt ? (void*)entry_vkCmdSetPrimitiveTopologyEXT : nullptr; |
| } |
| if (!strcmp(name, "vkCmdSetViewportWithCountEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state"); |
| return hasExt ? (void*)entry_vkCmdSetViewportWithCountEXT : nullptr; |
| } |
| if (!strcmp(name, "vkCmdSetScissorWithCountEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state"); |
| return hasExt ? (void*)entry_vkCmdSetScissorWithCountEXT : nullptr; |
| } |
| if (!strcmp(name, "vkCmdBindVertexBuffers2EXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state"); |
| return hasExt ? (void*)entry_vkCmdBindVertexBuffers2EXT : nullptr; |
| } |
| if (!strcmp(name, "vkCmdSetDepthTestEnableEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state"); |
| return hasExt ? (void*)entry_vkCmdSetDepthTestEnableEXT : nullptr; |
| } |
| if (!strcmp(name, "vkCmdSetDepthWriteEnableEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state"); |
| return hasExt ? (void*)entry_vkCmdSetDepthWriteEnableEXT : nullptr; |
| } |
| if (!strcmp(name, "vkCmdSetDepthCompareOpEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state"); |
| return hasExt ? (void*)entry_vkCmdSetDepthCompareOpEXT : nullptr; |
| } |
| if (!strcmp(name, "vkCmdSetDepthBoundsTestEnableEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state"); |
| return hasExt ? (void*)entry_vkCmdSetDepthBoundsTestEnableEXT : nullptr; |
| } |
| if (!strcmp(name, "vkCmdSetStencilTestEnableEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state"); |
| return hasExt ? (void*)entry_vkCmdSetStencilTestEnableEXT : nullptr; |
| } |
| if (!strcmp(name, "vkCmdSetStencilOpEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state"); |
| return hasExt ? (void*)entry_vkCmdSetStencilOpEXT : nullptr; |
| } |
| #endif |
| #ifdef VK_NV_device_generated_commands |
| if (!strcmp(name, "vkGetGeneratedCommandsMemoryRequirementsNV")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_NV_device_generated_commands"); |
| return hasExt ? (void*)entry_vkGetGeneratedCommandsMemoryRequirementsNV : nullptr; |
| } |
| if (!strcmp(name, "vkCmdPreprocessGeneratedCommandsNV")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_NV_device_generated_commands"); |
| return hasExt ? (void*)entry_vkCmdPreprocessGeneratedCommandsNV : nullptr; |
| } |
| if (!strcmp(name, "vkCmdExecuteGeneratedCommandsNV")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_NV_device_generated_commands"); |
| return hasExt ? (void*)entry_vkCmdExecuteGeneratedCommandsNV : nullptr; |
| } |
| if (!strcmp(name, "vkCmdBindPipelineShaderGroupNV")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_NV_device_generated_commands"); |
| return hasExt ? (void*)entry_vkCmdBindPipelineShaderGroupNV : nullptr; |
| } |
| if (!strcmp(name, "vkCreateIndirectCommandsLayoutNV")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_NV_device_generated_commands"); |
| return hasExt ? (void*)entry_vkCreateIndirectCommandsLayoutNV : nullptr; |
| } |
| if (!strcmp(name, "vkDestroyIndirectCommandsLayoutNV")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_NV_device_generated_commands"); |
| return hasExt ? (void*)entry_vkDestroyIndirectCommandsLayoutNV : nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_acquire_drm_display |
| if (!strcmp(name, "vkAcquireDrmDisplayEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_acquire_drm_display"); |
| return hasExt ? (void*)entry_vkAcquireDrmDisplayEXT : nullptr; |
| } |
| if (!strcmp(name, "vkGetDrmDisplayEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_acquire_drm_display"); |
| return hasExt ? (void*)entry_vkGetDrmDisplayEXT : nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_private_data |
| if (!strcmp(name, "vkCreatePrivateDataSlotEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_private_data"); |
| return hasExt ? (void*)entry_vkCreatePrivateDataSlotEXT : nullptr; |
| } |
| if (!strcmp(name, "vkDestroyPrivateDataSlotEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_private_data"); |
| return hasExt ? (void*)entry_vkDestroyPrivateDataSlotEXT : nullptr; |
| } |
| if (!strcmp(name, "vkSetPrivateDataEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_private_data"); |
| return hasExt ? (void*)entry_vkSetPrivateDataEXT : nullptr; |
| } |
| if (!strcmp(name, "vkGetPrivateDataEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_private_data"); |
| return hasExt ? (void*)entry_vkGetPrivateDataEXT : nullptr; |
| } |
| #endif |
| #ifdef VK_NV_fragment_shading_rate_enums |
| if (!strcmp(name, "vkCmdSetFragmentShadingRateEnumNV")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_NV_fragment_shading_rate_enums"); |
| return hasExt ? (void*)entry_vkCmdSetFragmentShadingRateEnumNV : nullptr; |
| } |
| #endif |
| #ifdef VK_NV_acquire_winrt_display |
| if (!strcmp(name, "vkAcquireWinrtDisplayNV")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_NV_acquire_winrt_display"); |
| return hasExt ? (void*)entry_vkAcquireWinrtDisplayNV : nullptr; |
| } |
| if (!strcmp(name, "vkGetWinrtDisplayNV")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_NV_acquire_winrt_display"); |
| return hasExt ? (void*)entry_vkGetWinrtDisplayNV : nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_directfb_surface |
| if (!strcmp(name, "vkCreateDirectFBSurfaceEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_directfb_surface"); |
| return hasExt ? (void*)entry_vkCreateDirectFBSurfaceEXT : nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceDirectFBPresentationSupportEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_directfb_surface"); |
| return hasExt ? (void*)entry_vkGetPhysicalDeviceDirectFBPresentationSupportEXT : nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_vertex_input_dynamic_state |
| if (!strcmp(name, "vkCmdSetVertexInputEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_vertex_input_dynamic_state"); |
| return hasExt ? (void*)entry_vkCmdSetVertexInputEXT : nullptr; |
| } |
| #endif |
| #ifdef VK_FUCHSIA_external_memory |
| if (!strcmp(name, "vkGetMemoryZirconHandleFUCHSIA")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_FUCHSIA_external_memory"); |
| return hasExt ? (void*)entry_vkGetMemoryZirconHandleFUCHSIA : nullptr; |
| } |
| if (!strcmp(name, "vkGetMemoryZirconHandlePropertiesFUCHSIA")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_FUCHSIA_external_memory"); |
| return hasExt ? (void*)entry_vkGetMemoryZirconHandlePropertiesFUCHSIA : nullptr; |
| } |
| #endif |
| #ifdef VK_FUCHSIA_external_semaphore |
| if (!strcmp(name, "vkImportSemaphoreZirconHandleFUCHSIA")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_FUCHSIA_external_semaphore"); |
| return hasExt ? (void*)entry_vkImportSemaphoreZirconHandleFUCHSIA : nullptr; |
| } |
| if (!strcmp(name, "vkGetSemaphoreZirconHandleFUCHSIA")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_FUCHSIA_external_semaphore"); |
| return hasExt ? (void*)entry_vkGetSemaphoreZirconHandleFUCHSIA : nullptr; |
| } |
| #endif |
| #ifdef VK_FUCHSIA_buffer_collection |
| if (!strcmp(name, "vkCreateBufferCollectionFUCHSIA")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_FUCHSIA_buffer_collection"); |
| return hasExt ? (void*)entry_vkCreateBufferCollectionFUCHSIA : nullptr; |
| } |
| if (!strcmp(name, "vkSetBufferCollectionImageConstraintsFUCHSIA")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_FUCHSIA_buffer_collection"); |
| return hasExt ? (void*)entry_vkSetBufferCollectionImageConstraintsFUCHSIA : nullptr; |
| } |
| if (!strcmp(name, "vkSetBufferCollectionBufferConstraintsFUCHSIA")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_FUCHSIA_buffer_collection"); |
| return hasExt ? (void*)entry_vkSetBufferCollectionBufferConstraintsFUCHSIA : nullptr; |
| } |
| if (!strcmp(name, "vkDestroyBufferCollectionFUCHSIA")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_FUCHSIA_buffer_collection"); |
| return hasExt ? (void*)entry_vkDestroyBufferCollectionFUCHSIA : nullptr; |
| } |
| if (!strcmp(name, "vkGetBufferCollectionPropertiesFUCHSIA")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_FUCHSIA_buffer_collection"); |
| return hasExt ? (void*)entry_vkGetBufferCollectionPropertiesFUCHSIA : nullptr; |
| } |
| #endif |
| #ifdef VK_HUAWEI_subpass_shading |
| if (!strcmp(name, "vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_HUAWEI_subpass_shading"); |
| return hasExt ? (void*)entry_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI : nullptr; |
| } |
| if (!strcmp(name, "vkCmdSubpassShadingHUAWEI")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_HUAWEI_subpass_shading"); |
| return hasExt ? (void*)entry_vkCmdSubpassShadingHUAWEI : nullptr; |
| } |
| #endif |
| #ifdef VK_HUAWEI_invocation_mask |
| if (!strcmp(name, "vkCmdBindInvocationMaskHUAWEI")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_HUAWEI_invocation_mask"); |
| return hasExt ? (void*)entry_vkCmdBindInvocationMaskHUAWEI : nullptr; |
| } |
| #endif |
| #ifdef VK_NV_external_memory_rdma |
| if (!strcmp(name, "vkGetMemoryRemoteAddressNV")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_NV_external_memory_rdma"); |
| return hasExt ? (void*)entry_vkGetMemoryRemoteAddressNV : nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_extended_dynamic_state2 |
| if (!strcmp(name, "vkCmdSetPatchControlPointsEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state2"); |
| return hasExt ? (void*)entry_vkCmdSetPatchControlPointsEXT : nullptr; |
| } |
| if (!strcmp(name, "vkCmdSetRasterizerDiscardEnableEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state2"); |
| return hasExt ? (void*)entry_vkCmdSetRasterizerDiscardEnableEXT : nullptr; |
| } |
| if (!strcmp(name, "vkCmdSetDepthBiasEnableEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state2"); |
| return hasExt ? (void*)entry_vkCmdSetDepthBiasEnableEXT : nullptr; |
| } |
| if (!strcmp(name, "vkCmdSetLogicOpEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state2"); |
| return hasExt ? (void*)entry_vkCmdSetLogicOpEXT : nullptr; |
| } |
| if (!strcmp(name, "vkCmdSetPrimitiveRestartEnableEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_extended_dynamic_state2"); |
| return hasExt ? (void*)entry_vkCmdSetPrimitiveRestartEnableEXT : nullptr; |
| } |
| #endif |
| #ifdef VK_QNX_screen_surface |
| if (!strcmp(name, "vkCreateScreenSurfaceQNX")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_QNX_screen_surface"); |
| return hasExt ? (void*)entry_vkCreateScreenSurfaceQNX : nullptr; |
| } |
| if (!strcmp(name, "vkGetPhysicalDeviceScreenPresentationSupportQNX")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_QNX_screen_surface"); |
| return hasExt ? (void*)entry_vkGetPhysicalDeviceScreenPresentationSupportQNX : nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_color_write_enable |
| if (!strcmp(name, "vkCmdSetColorWriteEnableEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_color_write_enable"); |
| return hasExt ? (void*)entry_vkCmdSetColorWriteEnableEXT : nullptr; |
| } |
| #endif |
| #ifdef VK_GOOGLE_gfxstream |
| if (!strcmp(name, "vkRegisterImageColorBufferGOOGLE")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_gfxstream"); |
| return hasExt ? (void*)entry_vkRegisterImageColorBufferGOOGLE : nullptr; |
| } |
| if (!strcmp(name, "vkRegisterBufferColorBufferGOOGLE")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_gfxstream"); |
| return hasExt ? (void*)entry_vkRegisterBufferColorBufferGOOGLE : nullptr; |
| } |
| if (!strcmp(name, "vkMapMemoryIntoAddressSpaceGOOGLE")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_gfxstream"); |
| return hasExt ? (void*)entry_vkMapMemoryIntoAddressSpaceGOOGLE : nullptr; |
| } |
| if (!strcmp(name, "vkUpdateDescriptorSetWithTemplateSizedGOOGLE")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_gfxstream"); |
| return hasExt ? (void*)entry_vkUpdateDescriptorSetWithTemplateSizedGOOGLE : nullptr; |
| } |
| if (!strcmp(name, "vkBeginCommandBufferAsyncGOOGLE")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_gfxstream"); |
| return hasExt ? (void*)entry_vkBeginCommandBufferAsyncGOOGLE : nullptr; |
| } |
| if (!strcmp(name, "vkEndCommandBufferAsyncGOOGLE")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_gfxstream"); |
| return hasExt ? (void*)entry_vkEndCommandBufferAsyncGOOGLE : nullptr; |
| } |
| if (!strcmp(name, "vkResetCommandBufferAsyncGOOGLE")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_gfxstream"); |
| return hasExt ? (void*)entry_vkResetCommandBufferAsyncGOOGLE : nullptr; |
| } |
| if (!strcmp(name, "vkCommandBufferHostSyncGOOGLE")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_gfxstream"); |
| return hasExt ? (void*)entry_vkCommandBufferHostSyncGOOGLE : nullptr; |
| } |
| if (!strcmp(name, "vkCreateImageWithRequirementsGOOGLE")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_gfxstream"); |
| return hasExt ? (void*)entry_vkCreateImageWithRequirementsGOOGLE : nullptr; |
| } |
| if (!strcmp(name, "vkCreateBufferWithRequirementsGOOGLE")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_gfxstream"); |
| return hasExt ? (void*)entry_vkCreateBufferWithRequirementsGOOGLE : nullptr; |
| } |
| if (!strcmp(name, "vkGetMemoryHostAddressInfoGOOGLE")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_gfxstream"); |
| return hasExt ? (void*)entry_vkGetMemoryHostAddressInfoGOOGLE : nullptr; |
| } |
| if (!strcmp(name, "vkFreeMemorySyncGOOGLE")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_gfxstream"); |
| return hasExt ? (void*)entry_vkFreeMemorySyncGOOGLE : nullptr; |
| } |
| if (!strcmp(name, "vkQueueHostSyncGOOGLE")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_gfxstream"); |
| return hasExt ? (void*)entry_vkQueueHostSyncGOOGLE : nullptr; |
| } |
| if (!strcmp(name, "vkQueueSubmitAsyncGOOGLE")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_gfxstream"); |
| return hasExt ? (void*)entry_vkQueueSubmitAsyncGOOGLE : nullptr; |
| } |
| if (!strcmp(name, "vkQueueWaitIdleAsyncGOOGLE")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_gfxstream"); |
| return hasExt ? (void*)entry_vkQueueWaitIdleAsyncGOOGLE : nullptr; |
| } |
| if (!strcmp(name, "vkQueueBindSparseAsyncGOOGLE")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_gfxstream"); |
| return hasExt ? (void*)entry_vkQueueBindSparseAsyncGOOGLE : nullptr; |
| } |
| if (!strcmp(name, "vkGetLinearImageLayoutGOOGLE")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_gfxstream"); |
| return hasExt ? (void*)entry_vkGetLinearImageLayoutGOOGLE : nullptr; |
| } |
| if (!strcmp(name, "vkGetLinearImageLayout2GOOGLE")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_gfxstream"); |
| return hasExt ? (void*)entry_vkGetLinearImageLayout2GOOGLE : nullptr; |
| } |
| if (!strcmp(name, "vkQueueFlushCommandsGOOGLE")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_gfxstream"); |
| return hasExt ? (void*)entry_vkQueueFlushCommandsGOOGLE : nullptr; |
| } |
| if (!strcmp(name, "vkQueueCommitDescriptorSetUpdatesGOOGLE")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_gfxstream"); |
| return hasExt ? (void*)entry_vkQueueCommitDescriptorSetUpdatesGOOGLE : nullptr; |
| } |
| if (!strcmp(name, "vkCollectDescriptorPoolIdsGOOGLE")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_gfxstream"); |
| return hasExt ? (void*)entry_vkCollectDescriptorPoolIdsGOOGLE : nullptr; |
| } |
| if (!strcmp(name, "vkQueueSignalReleaseImageANDROIDAsyncGOOGLE")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_gfxstream"); |
| return hasExt ? (void*)entry_vkQueueSignalReleaseImageANDROIDAsyncGOOGLE : nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_multi_draw |
| if (!strcmp(name, "vkCmdDrawMultiEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_multi_draw"); |
| return hasExt ? (void*)entry_vkCmdDrawMultiEXT : nullptr; |
| } |
| if (!strcmp(name, "vkCmdDrawMultiIndexedEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_multi_draw"); |
| return hasExt ? (void*)entry_vkCmdDrawMultiIndexedEXT : nullptr; |
| } |
| #endif |
| #ifdef VK_EXT_pageable_device_local_memory |
| if (!strcmp(name, "vkSetDeviceMemoryPriorityEXT")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_pageable_device_local_memory"); |
| return hasExt ? (void*)entry_vkSetDeviceMemoryPriorityEXT : nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_acceleration_structure |
| if (!strcmp(name, "vkCreateAccelerationStructureKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_acceleration_structure"); |
| return hasExt ? (void*)entry_vkCreateAccelerationStructureKHR : nullptr; |
| } |
| if (!strcmp(name, "vkDestroyAccelerationStructureKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_acceleration_structure"); |
| return hasExt ? (void*)entry_vkDestroyAccelerationStructureKHR : nullptr; |
| } |
| if (!strcmp(name, "vkCmdBuildAccelerationStructuresKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_acceleration_structure"); |
| return hasExt ? (void*)entry_vkCmdBuildAccelerationStructuresKHR : nullptr; |
| } |
| if (!strcmp(name, "vkCmdBuildAccelerationStructuresIndirectKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_acceleration_structure"); |
| return hasExt ? (void*)entry_vkCmdBuildAccelerationStructuresIndirectKHR : nullptr; |
| } |
| if (!strcmp(name, "vkBuildAccelerationStructuresKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_acceleration_structure"); |
| return hasExt ? (void*)entry_vkBuildAccelerationStructuresKHR : nullptr; |
| } |
| if (!strcmp(name, "vkCopyAccelerationStructureKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_acceleration_structure"); |
| return hasExt ? (void*)entry_vkCopyAccelerationStructureKHR : nullptr; |
| } |
| if (!strcmp(name, "vkCopyAccelerationStructureToMemoryKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_acceleration_structure"); |
| return hasExt ? (void*)entry_vkCopyAccelerationStructureToMemoryKHR : nullptr; |
| } |
| if (!strcmp(name, "vkCopyMemoryToAccelerationStructureKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_acceleration_structure"); |
| return hasExt ? (void*)entry_vkCopyMemoryToAccelerationStructureKHR : nullptr; |
| } |
| if (!strcmp(name, "vkWriteAccelerationStructuresPropertiesKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_acceleration_structure"); |
| return hasExt ? (void*)entry_vkWriteAccelerationStructuresPropertiesKHR : nullptr; |
| } |
| if (!strcmp(name, "vkCmdCopyAccelerationStructureKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_acceleration_structure"); |
| return hasExt ? (void*)entry_vkCmdCopyAccelerationStructureKHR : nullptr; |
| } |
| if (!strcmp(name, "vkCmdCopyAccelerationStructureToMemoryKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_acceleration_structure"); |
| return hasExt ? (void*)entry_vkCmdCopyAccelerationStructureToMemoryKHR : nullptr; |
| } |
| if (!strcmp(name, "vkCmdCopyMemoryToAccelerationStructureKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_acceleration_structure"); |
| return hasExt ? (void*)entry_vkCmdCopyMemoryToAccelerationStructureKHR : nullptr; |
| } |
| if (!strcmp(name, "vkGetAccelerationStructureDeviceAddressKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_acceleration_structure"); |
| return hasExt ? (void*)entry_vkGetAccelerationStructureDeviceAddressKHR : nullptr; |
| } |
| if (!strcmp(name, "vkCmdWriteAccelerationStructuresPropertiesKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_acceleration_structure"); |
| return hasExt ? (void*)entry_vkCmdWriteAccelerationStructuresPropertiesKHR : nullptr; |
| } |
| if (!strcmp(name, "vkGetDeviceAccelerationStructureCompatibilityKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_acceleration_structure"); |
| return hasExt ? (void*)entry_vkGetDeviceAccelerationStructureCompatibilityKHR : nullptr; |
| } |
| if (!strcmp(name, "vkGetAccelerationStructureBuildSizesKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_acceleration_structure"); |
| return hasExt ? (void*)entry_vkGetAccelerationStructureBuildSizesKHR : nullptr; |
| } |
| #endif |
| #ifdef VK_KHR_ray_tracing_pipeline |
| if (!strcmp(name, "vkCmdTraceRaysKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_ray_tracing_pipeline"); |
| return hasExt ? (void*)entry_vkCmdTraceRaysKHR : nullptr; |
| } |
| if (!strcmp(name, "vkCreateRayTracingPipelinesKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_ray_tracing_pipeline"); |
| return hasExt ? (void*)entry_vkCreateRayTracingPipelinesKHR : nullptr; |
| } |
| if (!strcmp(name, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_ray_tracing_pipeline"); |
| return hasExt ? (void*)entry_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR : nullptr; |
| } |
| if (!strcmp(name, "vkCmdTraceRaysIndirectKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_ray_tracing_pipeline"); |
| return hasExt ? (void*)entry_vkCmdTraceRaysIndirectKHR : nullptr; |
| } |
| if (!strcmp(name, "vkGetRayTracingShaderGroupStackSizeKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_ray_tracing_pipeline"); |
| return hasExt ? (void*)entry_vkGetRayTracingShaderGroupStackSizeKHR : nullptr; |
| } |
| if (!strcmp(name, "vkCmdSetRayTracingPipelineStackSizeKHR")) |
| { |
| bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_ray_tracing_pipeline"); |
| return hasExt ? (void*)entry_vkCmdSetRayTracingPipelineStackSizeKHR : nullptr; |
| } |
| #endif |
| return nullptr; |
| } |
| |
| } // namespace goldfish_vk |