blob: 83bf6f47e26defbee5f3a38bd7c46f74c8cec06b [file] [log] [blame]
// 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 ../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 <log/log.h>
#include <cstring>
#include "../OpenglSystemCommon/HostConnection.h"
#include "ResourceTracker.h"
#include "VkEncoder.h"
#include "goldfish_vk_private_defs.h"
// 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 gfxstream {
namespace 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_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 */);
}
static void entry_vkQueueFlushCommandsFromAuxMemoryGOOGLE(VkQueue queue,
VkCommandBuffer commandBuffer,
VkDeviceMemory deviceMemory,
VkDeviceSize dataOffset,
VkDeviceSize dataSize) {
AEMU_SCOPED_TRACE("vkQueueFlushCommandsFromAuxMemoryGOOGLE");
auto vkEnc = ResourceTracker::getQueueEncoder(queue);
vkEnc->vkQueueFlushCommandsFromAuxMemoryGOOGLE(queue, commandBuffer, deviceMemory, dataOffset,
dataSize, true /* do lock */);
}
static VkResult entry_vkGetBlobGOOGLE(VkDevice device, VkDeviceMemory memory) {
AEMU_SCOPED_TRACE("vkGetBlobGOOGLE");
auto vkEnc = ResourceTracker::getThreadLocalEncoder();
VkResult vkGetBlobGOOGLE_VkResult_return = (VkResult)0;
vkGetBlobGOOGLE_VkResult_return = vkEnc->vkGetBlobGOOGLE(device, memory, true /* do lock */);
return vkGetBlobGOOGLE_VkResult_return;
}
static VkResult dynCheck_entry_vkGetBlobGOOGLE(VkDevice device, VkDeviceMemory memory) {
auto resources = ResourceTracker::get();
if (!resources->hasDeviceExtension(device, "VK_GOOGLE_gfxstream")) {
sOnInvalidDynamicallyCheckedCall("vkGetBlobGOOGLE", "VK_GOOGLE_gfxstream");
}
AEMU_SCOPED_TRACE("vkGetBlobGOOGLE");
auto vkEnc = ResourceTracker::getThreadLocalEncoder();
VkResult vkGetBlobGOOGLE_VkResult_return = (VkResult)0;
vkGetBlobGOOGLE_VkResult_return = vkEnc->vkGetBlobGOOGLE(device, memory, true /* do lock */);
return vkGetBlobGOOGLE_VkResult_return;
}
#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, "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;
}
if (!strcmp(name, "vkQueueFlushCommandsFromAuxMemoryGOOGLE")) {
return nullptr;
}
if (!strcmp(name, "vkGetBlobGOOGLE")) {
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, "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;
}
if (!strcmp(name, "vkQueueFlushCommandsFromAuxMemoryGOOGLE")) {
bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_gfxstream");
return hasExt ? (void*)entry_vkQueueFlushCommandsFromAuxMemoryGOOGLE : nullptr;
}
if (!strcmp(name, "vkGetBlobGOOGLE")) {
bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_gfxstream");
return hasExt ? (void*)dynCheck_entry_vkGetBlobGOOGLE : 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, "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;
}
if (!strcmp(name, "vkQueueFlushCommandsFromAuxMemoryGOOGLE")) {
bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_gfxstream");
return hasExt ? (void*)entry_vkQueueFlushCommandsFromAuxMemoryGOOGLE : nullptr;
}
if (!strcmp(name, "vkGetBlobGOOGLE")) {
bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_gfxstream");
return hasExt ? (void*)entry_vkGetBlobGOOGLE : 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 vk
} // namespace gfxstream