blob: 6b0978651d4ecbe086ceadfd9a0969361dad2f55 [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 codegen/vulkan/vulkan-docs-next/scripts/genvk.py -registry
// codegen/vulkan/vulkan-docs-next/xml/vk.xml -registryGfxstream
// codegen/vulkan/vulkan-docs-next/xml/vk_gfxstream.xml cereal -o host/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
#if defined(LINUX_GUEST_BUILD)
#undef VK_ANDROID_native_buffer
#endif
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();
auto resources = ResourceTracker::get();
resources->on_vkGetPhysicalDeviceExternalBufferProperties(
vkEnc, physicalDevice, pExternalBufferInfo, pExternalBufferProperties);
}
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->getApiVersionFromDevice(device) < VK_API_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->getApiVersionFromDevice(device) < VK_API_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->getApiVersionFromDevice(device) < VK_API_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->getApiVersionFromDevice(device) < VK_API_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->getApiVersionFromDevice(device) < VK_API_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->getApiVersionFromDevice(device) < VK_API_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->getApiVersionFromDevice(device) < VK_API_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->getApiVersionFromDevice(device) < VK_API_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_VERSION_1_3
static VkResult entry_vkGetPhysicalDeviceToolProperties(
VkPhysicalDevice physicalDevice, uint32_t* pToolCount,
VkPhysicalDeviceToolProperties* pToolProperties) {
AEMU_SCOPED_TRACE("vkGetPhysicalDeviceToolProperties");
auto vkEnc = ResourceTracker::getThreadLocalEncoder();
VkResult vkGetPhysicalDeviceToolProperties_VkResult_return = (VkResult)0;
vkGetPhysicalDeviceToolProperties_VkResult_return = vkEnc->vkGetPhysicalDeviceToolProperties(
physicalDevice, pToolCount, pToolProperties, true /* do lock */);
return vkGetPhysicalDeviceToolProperties_VkResult_return;
}
static VkResult entry_vkCreatePrivateDataSlot(VkDevice device,
const VkPrivateDataSlotCreateInfo* pCreateInfo,
const VkAllocationCallbacks* pAllocator,
VkPrivateDataSlot* pPrivateDataSlot) {
AEMU_SCOPED_TRACE("vkCreatePrivateDataSlot");
auto vkEnc = ResourceTracker::getThreadLocalEncoder();
VkResult vkCreatePrivateDataSlot_VkResult_return = (VkResult)0;
vkCreatePrivateDataSlot_VkResult_return = vkEnc->vkCreatePrivateDataSlot(
device, pCreateInfo, pAllocator, pPrivateDataSlot, true /* do lock */);
return vkCreatePrivateDataSlot_VkResult_return;
}
static VkResult dynCheck_entry_vkCreatePrivateDataSlot(
VkDevice device, const VkPrivateDataSlotCreateInfo* pCreateInfo,
const VkAllocationCallbacks* pAllocator, VkPrivateDataSlot* pPrivateDataSlot) {
auto resources = ResourceTracker::get();
if (resources->getApiVersionFromDevice(device) < VK_API_VERSION_1_3) {
sOnInvalidDynamicallyCheckedCall("vkCreatePrivateDataSlot", "VK_VERSION_1_3");
}
AEMU_SCOPED_TRACE("vkCreatePrivateDataSlot");
auto vkEnc = ResourceTracker::getThreadLocalEncoder();
VkResult vkCreatePrivateDataSlot_VkResult_return = (VkResult)0;
vkCreatePrivateDataSlot_VkResult_return = vkEnc->vkCreatePrivateDataSlot(
device, pCreateInfo, pAllocator, pPrivateDataSlot, true /* do lock */);
return vkCreatePrivateDataSlot_VkResult_return;
}
static void entry_vkDestroyPrivateDataSlot(VkDevice device, VkPrivateDataSlot privateDataSlot,
const VkAllocationCallbacks* pAllocator) {
AEMU_SCOPED_TRACE("vkDestroyPrivateDataSlot");
auto vkEnc = ResourceTracker::getThreadLocalEncoder();
vkEnc->vkDestroyPrivateDataSlot(device, privateDataSlot, pAllocator, true /* do lock */);
}
static void dynCheck_entry_vkDestroyPrivateDataSlot(VkDevice device,
VkPrivateDataSlot privateDataSlot,
const VkAllocationCallbacks* pAllocator) {
auto resources = ResourceTracker::get();
if (resources->getApiVersionFromDevice(device) < VK_API_VERSION_1_3) {
sOnInvalidDynamicallyCheckedCall("vkDestroyPrivateDataSlot", "VK_VERSION_1_3");
}
AEMU_SCOPED_TRACE("vkDestroyPrivateDataSlot");
auto vkEnc = ResourceTracker::getThreadLocalEncoder();
vkEnc->vkDestroyPrivateDataSlot(device, privateDataSlot, pAllocator, true /* do lock */);
}
static VkResult entry_vkSetPrivateData(VkDevice device, VkObjectType objectType,
uint64_t objectHandle, VkPrivateDataSlot privateDataSlot,
uint64_t data) {
AEMU_SCOPED_TRACE("vkSetPrivateData");
auto vkEnc = ResourceTracker::getThreadLocalEncoder();
VkResult vkSetPrivateData_VkResult_return = (VkResult)0;
vkSetPrivateData_VkResult_return = vkEnc->vkSetPrivateData(
device, objectType, objectHandle, privateDataSlot, data, true /* do lock */);
return vkSetPrivateData_VkResult_return;
}
static VkResult dynCheck_entry_vkSetPrivateData(VkDevice device, VkObjectType objectType,
uint64_t objectHandle,
VkPrivateDataSlot privateDataSlot, uint64_t data) {
auto resources = ResourceTracker::get();
if (resources->getApiVersionFromDevice(device) < VK_API_VERSION_1_3) {
sOnInvalidDynamicallyCheckedCall("vkSetPrivateData", "VK_VERSION_1_3");
}
AEMU_SCOPED_TRACE("vkSetPrivateData");
auto vkEnc = ResourceTracker::getThreadLocalEncoder();
VkResult vkSetPrivateData_VkResult_return = (VkResult)0;
vkSetPrivateData_VkResult_return = vkEnc->vkSetPrivateData(
device, objectType, objectHandle, privateDataSlot, data, true /* do lock */);
return vkSetPrivateData_VkResult_return;
}
static void entry_vkGetPrivateData(VkDevice device, VkObjectType objectType, uint64_t objectHandle,
VkPrivateDataSlot privateDataSlot, uint64_t* pData) {
AEMU_SCOPED_TRACE("vkGetPrivateData");
auto vkEnc = ResourceTracker::getThreadLocalEncoder();
vkEnc->vkGetPrivateData(device, objectType, objectHandle, privateDataSlot, pData,
true /* do lock */);
}
static void dynCheck_entry_vkGetPrivateData(VkDevice device, VkObjectType objectType,
uint64_t objectHandle,
VkPrivateDataSlot privateDataSlot, uint64_t* pData) {
auto resources = ResourceTracker::get();
if (resources->getApiVersionFromDevice(device) < VK_API_VERSION_1_3) {
sOnInvalidDynamicallyCheckedCall("vkGetPrivateData", "VK_VERSION_1_3");
}
AEMU_SCOPED_TRACE("vkGetPrivateData");
auto vkEnc = ResourceTracker::getThreadLocalEncoder();
vkEnc->vkGetPrivateData(device, objectType, objectHandle, privateDataSlot, pData,
true /* do lock */);
}
static void entry_vkCmdSetEvent2(VkCommandBuffer commandBuffer, VkEvent event,
const VkDependencyInfo* pDependencyInfo) {
AEMU_SCOPED_TRACE("vkCmdSetEvent2");
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdSetEvent2(commandBuffer, event, pDependencyInfo, true /* do lock */);
}
static void entry_vkCmdResetEvent2(VkCommandBuffer commandBuffer, VkEvent event,
VkPipelineStageFlags2 stageMask) {
AEMU_SCOPED_TRACE("vkCmdResetEvent2");
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdResetEvent2(commandBuffer, event, stageMask, true /* do lock */);
}
static void entry_vkCmdWaitEvents2(VkCommandBuffer commandBuffer, uint32_t eventCount,
const VkEvent* pEvents,
const VkDependencyInfo* pDependencyInfos) {
AEMU_SCOPED_TRACE("vkCmdWaitEvents2");
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdWaitEvents2(commandBuffer, eventCount, pEvents, pDependencyInfos,
true /* do lock */);
}
static void entry_vkCmdPipelineBarrier2(VkCommandBuffer commandBuffer,
const VkDependencyInfo* pDependencyInfo) {
AEMU_SCOPED_TRACE("vkCmdPipelineBarrier2");
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdPipelineBarrier2(commandBuffer, pDependencyInfo, true /* do lock */);
}
static void entry_vkCmdWriteTimestamp2(VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage,
VkQueryPool queryPool, uint32_t query) {
AEMU_SCOPED_TRACE("vkCmdWriteTimestamp2");
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdWriteTimestamp2(commandBuffer, stage, queryPool, query, true /* do lock */);
}
static VkResult entry_vkQueueSubmit2(VkQueue queue, uint32_t submitCount,
const VkSubmitInfo2* pSubmits, VkFence fence) {
AEMU_SCOPED_TRACE("vkQueueSubmit2");
auto vkEnc = ResourceTracker::getQueueEncoder(queue);
VkResult vkQueueSubmit2_VkResult_return = (VkResult)0;
auto resources = ResourceTracker::get();
vkQueueSubmit2_VkResult_return =
resources->on_vkQueueSubmit2(vkEnc, VK_SUCCESS, queue, submitCount, pSubmits, fence);
return vkQueueSubmit2_VkResult_return;
}
static void entry_vkCmdCopyBuffer2(VkCommandBuffer commandBuffer,
const VkCopyBufferInfo2* pCopyBufferInfo) {
AEMU_SCOPED_TRACE("vkCmdCopyBuffer2");
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdCopyBuffer2(commandBuffer, pCopyBufferInfo, true /* do lock */);
}
static void entry_vkCmdCopyImage2(VkCommandBuffer commandBuffer,
const VkCopyImageInfo2* pCopyImageInfo) {
AEMU_SCOPED_TRACE("vkCmdCopyImage2");
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdCopyImage2(commandBuffer, pCopyImageInfo, true /* do lock */);
}
static void entry_vkCmdCopyBufferToImage2(VkCommandBuffer commandBuffer,
const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo) {
AEMU_SCOPED_TRACE("vkCmdCopyBufferToImage2");
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdCopyBufferToImage2(commandBuffer, pCopyBufferToImageInfo, true /* do lock */);
}
static void entry_vkCmdCopyImageToBuffer2(VkCommandBuffer commandBuffer,
const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo) {
AEMU_SCOPED_TRACE("vkCmdCopyImageToBuffer2");
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdCopyImageToBuffer2(commandBuffer, pCopyImageToBufferInfo, true /* do lock */);
}
static void entry_vkCmdBlitImage2(VkCommandBuffer commandBuffer,
const VkBlitImageInfo2* pBlitImageInfo) {
AEMU_SCOPED_TRACE("vkCmdBlitImage2");
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdBlitImage2(commandBuffer, pBlitImageInfo, true /* do lock */);
}
static void entry_vkCmdResolveImage2(VkCommandBuffer commandBuffer,
const VkResolveImageInfo2* pResolveImageInfo) {
AEMU_SCOPED_TRACE("vkCmdResolveImage2");
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdResolveImage2(commandBuffer, pResolveImageInfo, true /* do lock */);
}
static void entry_vkCmdBeginRendering(VkCommandBuffer commandBuffer,
const VkRenderingInfo* pRenderingInfo) {
AEMU_SCOPED_TRACE("vkCmdBeginRendering");
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdBeginRendering(commandBuffer, pRenderingInfo, true /* do lock */);
}
static void entry_vkCmdEndRendering(VkCommandBuffer commandBuffer) {
AEMU_SCOPED_TRACE("vkCmdEndRendering");
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdEndRendering(commandBuffer, true /* do lock */);
}
static void entry_vkCmdSetCullMode(VkCommandBuffer commandBuffer, VkCullModeFlags cullMode) {
AEMU_SCOPED_TRACE("vkCmdSetCullMode");
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdSetCullMode(commandBuffer, cullMode, true /* do lock */);
}
static void entry_vkCmdSetFrontFace(VkCommandBuffer commandBuffer, VkFrontFace frontFace) {
AEMU_SCOPED_TRACE("vkCmdSetFrontFace");
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdSetFrontFace(commandBuffer, frontFace, true /* do lock */);
}
static void entry_vkCmdSetPrimitiveTopology(VkCommandBuffer commandBuffer,
VkPrimitiveTopology primitiveTopology) {
AEMU_SCOPED_TRACE("vkCmdSetPrimitiveTopology");
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdSetPrimitiveTopology(commandBuffer, primitiveTopology, true /* do lock */);
}
static void entry_vkCmdSetViewportWithCount(VkCommandBuffer commandBuffer, uint32_t viewportCount,
const VkViewport* pViewports) {
AEMU_SCOPED_TRACE("vkCmdSetViewportWithCount");
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdSetViewportWithCount(commandBuffer, viewportCount, pViewports, true /* do lock */);
}
static void entry_vkCmdSetScissorWithCount(VkCommandBuffer commandBuffer, uint32_t scissorCount,
const VkRect2D* pScissors) {
AEMU_SCOPED_TRACE("vkCmdSetScissorWithCount");
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdSetScissorWithCount(commandBuffer, scissorCount, pScissors, true /* do lock */);
}
static void entry_vkCmdBindVertexBuffers2(VkCommandBuffer commandBuffer, uint32_t firstBinding,
uint32_t bindingCount, const VkBuffer* pBuffers,
const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes,
const VkDeviceSize* pStrides) {
AEMU_SCOPED_TRACE("vkCmdBindVertexBuffers2");
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdBindVertexBuffers2(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets,
pSizes, pStrides, true /* do lock */);
}
static void entry_vkCmdSetDepthTestEnable(VkCommandBuffer commandBuffer, VkBool32 depthTestEnable) {
AEMU_SCOPED_TRACE("vkCmdSetDepthTestEnable");
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdSetDepthTestEnable(commandBuffer, depthTestEnable, true /* do lock */);
}
static void entry_vkCmdSetDepthWriteEnable(VkCommandBuffer commandBuffer,
VkBool32 depthWriteEnable) {
AEMU_SCOPED_TRACE("vkCmdSetDepthWriteEnable");
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdSetDepthWriteEnable(commandBuffer, depthWriteEnable, true /* do lock */);
}
static void entry_vkCmdSetDepthCompareOp(VkCommandBuffer commandBuffer,
VkCompareOp depthCompareOp) {
AEMU_SCOPED_TRACE("vkCmdSetDepthCompareOp");
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdSetDepthCompareOp(commandBuffer, depthCompareOp, true /* do lock */);
}
static void entry_vkCmdSetDepthBoundsTestEnable(VkCommandBuffer commandBuffer,
VkBool32 depthBoundsTestEnable) {
AEMU_SCOPED_TRACE("vkCmdSetDepthBoundsTestEnable");
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdSetDepthBoundsTestEnable(commandBuffer, depthBoundsTestEnable, true /* do lock */);
}
static void entry_vkCmdSetStencilTestEnable(VkCommandBuffer commandBuffer,
VkBool32 stencilTestEnable) {
AEMU_SCOPED_TRACE("vkCmdSetStencilTestEnable");
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdSetStencilTestEnable(commandBuffer, stencilTestEnable, true /* do lock */);
}
static void entry_vkCmdSetStencilOp(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask,
VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp,
VkCompareOp compareOp) {
AEMU_SCOPED_TRACE("vkCmdSetStencilOp");
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdSetStencilOp(commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp,
true /* do lock */);
}
static void entry_vkCmdSetRasterizerDiscardEnable(VkCommandBuffer commandBuffer,
VkBool32 rasterizerDiscardEnable) {
AEMU_SCOPED_TRACE("vkCmdSetRasterizerDiscardEnable");
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdSetRasterizerDiscardEnable(commandBuffer, rasterizerDiscardEnable,
true /* do lock */);
}
static void entry_vkCmdSetDepthBiasEnable(VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable) {
AEMU_SCOPED_TRACE("vkCmdSetDepthBiasEnable");
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdSetDepthBiasEnable(commandBuffer, depthBiasEnable, true /* do lock */);
}
static void entry_vkCmdSetPrimitiveRestartEnable(VkCommandBuffer commandBuffer,
VkBool32 primitiveRestartEnable) {
AEMU_SCOPED_TRACE("vkCmdSetPrimitiveRestartEnable");
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdSetPrimitiveRestartEnable(commandBuffer, primitiveRestartEnable,
true /* do lock */);
}
static void entry_vkGetDeviceBufferMemoryRequirements(VkDevice device,
const VkDeviceBufferMemoryRequirements* pInfo,
VkMemoryRequirements2* pMemoryRequirements) {
AEMU_SCOPED_TRACE("vkGetDeviceBufferMemoryRequirements");
auto vkEnc = ResourceTracker::getThreadLocalEncoder();
vkEnc->vkGetDeviceBufferMemoryRequirements(device, pInfo, pMemoryRequirements,
true /* do lock */);
}
static void dynCheck_entry_vkGetDeviceBufferMemoryRequirements(
VkDevice device, const VkDeviceBufferMemoryRequirements* pInfo,
VkMemoryRequirements2* pMemoryRequirements) {
auto resources = ResourceTracker::get();
if (resources->getApiVersionFromDevice(device) < VK_API_VERSION_1_3) {
sOnInvalidDynamicallyCheckedCall("vkGetDeviceBufferMemoryRequirements", "VK_VERSION_1_3");
}
AEMU_SCOPED_TRACE("vkGetDeviceBufferMemoryRequirements");
auto vkEnc = ResourceTracker::getThreadLocalEncoder();
vkEnc->vkGetDeviceBufferMemoryRequirements(device, pInfo, pMemoryRequirements,
true /* do lock */);
}
static void entry_vkGetDeviceImageMemoryRequirements(VkDevice device,
const VkDeviceImageMemoryRequirements* pInfo,
VkMemoryRequirements2* pMemoryRequirements) {
AEMU_SCOPED_TRACE("vkGetDeviceImageMemoryRequirements");
auto vkEnc = ResourceTracker::getThreadLocalEncoder();
vkEnc->vkGetDeviceImageMemoryRequirements(device, pInfo, pMemoryRequirements,
true /* do lock */);
}
static void dynCheck_entry_vkGetDeviceImageMemoryRequirements(
VkDevice device, const VkDeviceImageMemoryRequirements* pInfo,
VkMemoryRequirements2* pMemoryRequirements) {
auto resources = ResourceTracker::get();
if (resources->getApiVersionFromDevice(device) < VK_API_VERSION_1_3) {
sOnInvalidDynamicallyCheckedCall("vkGetDeviceImageMemoryRequirements", "VK_VERSION_1_3");
}
AEMU_SCOPED_TRACE("vkGetDeviceImageMemoryRequirements");
auto vkEnc = ResourceTracker::getThreadLocalEncoder();
vkEnc->vkGetDeviceImageMemoryRequirements(device, pInfo, pMemoryRequirements,
true /* do lock */);
}
static void entry_vkGetDeviceImageSparseMemoryRequirements(
VkDevice device, const VkDeviceImageMemoryRequirements* pInfo,
uint32_t* pSparseMemoryRequirementCount,
VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) {
AEMU_SCOPED_TRACE("vkGetDeviceImageSparseMemoryRequirements");
auto vkEnc = ResourceTracker::getThreadLocalEncoder();
vkEnc->vkGetDeviceImageSparseMemoryRequirements(device, pInfo, pSparseMemoryRequirementCount,
pSparseMemoryRequirements, true /* do lock */);
}
static void dynCheck_entry_vkGetDeviceImageSparseMemoryRequirements(
VkDevice device, const VkDeviceImageMemoryRequirements* pInfo,
uint32_t* pSparseMemoryRequirementCount,
VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) {
auto resources = ResourceTracker::get();
if (resources->getApiVersionFromDevice(device) < VK_API_VERSION_1_3) {
sOnInvalidDynamicallyCheckedCall("vkGetDeviceImageSparseMemoryRequirements",
"VK_VERSION_1_3");
}
AEMU_SCOPED_TRACE("vkGetDeviceImageSparseMemoryRequirements");
auto vkEnc = ResourceTracker::getThreadLocalEncoder();
vkEnc->vkGetDeviceImageSparseMemoryRequirements(device, pInfo, pSparseMemoryRequirementCount,
pSparseMemoryRequirements, true /* do lock */);
}
#endif
#ifdef VK_KHR_surface
#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_xcb_surface
#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
#endif
#ifdef VK_KHR_dynamic_rendering
static void entry_vkCmdBeginRenderingKHR(VkCommandBuffer commandBuffer,
const VkRenderingInfo* 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 VkRenderingInfo* 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_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_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_external_memory_capabilities
static void entry_vkGetPhysicalDeviceExternalBufferPropertiesKHR(
VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
VkExternalBufferProperties* pExternalBufferProperties) {
AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalBufferPropertiesKHR");
auto vkEnc = ResourceTracker::getThreadLocalEncoder();
auto resources = ResourceTracker::get();
resources->on_vkGetPhysicalDeviceExternalBufferPropertiesKHR(
vkEnc, physicalDevice, pExternalBufferInfo, pExternalBufferProperties);
}
#endif
#ifdef VK_KHR_external_memory
#endif
#ifdef VK_KHR_external_memory_win32
#endif
#ifdef VK_KHR_external_memory_fd
#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
#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_shader_float16_int8
#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_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_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_maintenance2
#endif
#ifdef VK_KHR_dedicated_allocation
#endif
#ifdef VK_KHR_storage_buffer_storage_class
#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_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_shader_subgroup_extended_types
#endif
#ifdef VK_KHR_vulkan_memory_model
#endif
#ifdef VK_KHR_shader_terminate_invocation
#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_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_shader_non_semantic_info
#endif
#ifdef VK_KHR_synchronization2
static void entry_vkCmdSetEvent2KHR(VkCommandBuffer commandBuffer, VkEvent event,
const VkDependencyInfo* 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 VkDependencyInfo* 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,
VkPipelineStageFlags2 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,
VkPipelineStageFlags2 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 VkDependencyInfo* 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 VkDependencyInfo* 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 VkDependencyInfo* 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 VkDependencyInfo* 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,
VkPipelineStageFlags2 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,
VkPipelineStageFlags2 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 VkSubmitInfo2* 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,
VkPipelineStageFlags2 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,
VkPipelineStageFlags2 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_zero_initialize_workgroup_memory
#endif
#ifdef VK_KHR_copy_commands2
static void entry_vkCmdCopyBuffer2KHR(VkCommandBuffer commandBuffer,
const VkCopyBufferInfo2* 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 VkCopyBufferInfo2* 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 VkCopyImageInfo2* 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 VkCopyImageInfo2* 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 VkCopyBufferToImageInfo2* 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 VkCopyBufferToImageInfo2* 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 VkCopyImageToBufferInfo2* 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 VkCopyImageToBufferInfo2* 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 VkBlitImageInfo2* 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 VkBlitImageInfo2* 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 VkResolveImageInfo2* 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 VkResolveImageInfo2* 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 VkDeviceBufferMemoryRequirements* 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 VkDeviceBufferMemoryRequirements* 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 VkDeviceImageMemoryRequirements* 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 VkDeviceImageMemoryRequirements* 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 VkDeviceImageMemoryRequirements* 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 VkDeviceImageMemoryRequirements* 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_KHR_maintenance5
static void entry_vkCmdBindIndexBuffer2KHR(VkCommandBuffer commandBuffer, VkBuffer buffer,
VkDeviceSize offset, VkDeviceSize size,
VkIndexType indexType) {
AEMU_SCOPED_TRACE("vkCmdBindIndexBuffer2KHR");
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdBindIndexBuffer2KHR(commandBuffer, buffer, offset, size, indexType,
true /* do lock */);
}
static void dynCheck_entry_vkCmdBindIndexBuffer2KHR(VkCommandBuffer commandBuffer, VkBuffer buffer,
VkDeviceSize offset, VkDeviceSize size,
VkIndexType indexType) {
auto resources = ResourceTracker::get();
VkDevice device = resources->getDevice(commandBuffer);
;
if (!resources->hasDeviceExtension(device, "VK_KHR_maintenance5")) {
sOnInvalidDynamicallyCheckedCall("vkCmdBindIndexBuffer2KHR", "VK_KHR_maintenance5");
}
AEMU_SCOPED_TRACE("vkCmdBindIndexBuffer2KHR");
auto vkEnc = ResourceTracker::getCommandBufferEncoder(commandBuffer);
vkEnc->vkCmdBindIndexBuffer2KHR(commandBuffer, buffer, offset, size, indexType,
true /* do lock */);
}
static void entry_vkGetRenderingAreaGranularityKHR(VkDevice device,
const VkRenderingAreaInfoKHR* pRenderingAreaInfo,
VkExtent2D* pGranularity) {
AEMU_SCOPED_TRACE("vkGetRenderingAreaGranularityKHR");
auto vkEnc = ResourceTracker::getThreadLocalEncoder();
vkEnc->vkGetRenderingAreaGranularityKHR(device, pRenderingAreaInfo, pGranularity,
true /* do lock */);
}
static void dynCheck_entry_vkGetRenderingAreaGranularityKHR(
VkDevice device, const VkRenderingAreaInfoKHR* pRenderingAreaInfo, VkExtent2D* pGranularity) {
auto resources = ResourceTracker::get();
if (!resources->hasDeviceExtension(device, "VK_KHR_maintenance5")) {
sOnInvalidDynamicallyCheckedCall("vkGetRenderingAreaGranularityKHR", "VK_KHR_maintenance5");
}
AEMU_SCOPED_TRACE("vkGetRenderingAreaGranularityKHR");
auto vkEnc = ResourceTracker::getThreadLocalEncoder();
vkEnc->vkGetRenderingAreaGranularityKHR(device, pRenderingAreaInfo, pGranularity,
true /* do lock */);
}
static void entry_vkGetDeviceImageSubresourceLayoutKHR(VkDevice device,
const VkDeviceImageSubresourceInfoKHR* pInfo,
VkSubresourceLayout2KHR* pLayout) {
AEMU_SCOPED_TRACE("vkGetDeviceImageSubresourceLayoutKHR");
auto vkEnc = ResourceTracker::getThreadLocalEncoder();
vkEnc->vkGetDeviceImageSubresourceLayoutKHR(device, pInfo, pLayout, true /* do lock */);
}
static void dynCheck_entry_vkGetDeviceImageSubresourceLayoutKHR(
VkDevice device, const VkDeviceImageSubresourceInfoKHR* pInfo,
VkSubresourceLayout2KHR* pLayout) {
auto resources = ResourceTracker::get();
if (!resources->hasDeviceExtension(device, "VK_KHR_maintenance5")) {
sOnInvalidDynamicallyCheckedCall("vkGetDeviceImageSubresourceLayoutKHR",
"VK_KHR_maintenance5");
}
AEMU_SCOPED_TRACE("vkGetDeviceImageSubresourceLayoutKHR");
auto vkEnc = ResourceTracker::getThreadLocalEncoder();
vkEnc->vkGetDeviceImageSubresourceLayoutKHR(device, pInfo, pLayout, true /* do lock */);
}
static void entry_vkGetImageSubresourceLayout2KHR(VkDevice device, VkImage image,
const VkImageSubresource2KHR* pSubresource,
VkSubresourceLayout2KHR* pLayout) {
AEMU_SCOPED_TRACE("vkGetImageSubresourceLayout2KHR");
auto vkEnc = ResourceTracker::getThreadLocalEncoder();
vkEnc->vkGetImageSubresourceLayout2KHR(device, image, pSubresource, pLayout,
true /* do lock */);
}
static void dynCheck_entry_vkGetImageSubresourceLayout2KHR(
VkDevice device, VkImage image, const VkImageSubresource2KHR* pSubresource,
VkSubresourceLayout2KHR* pLayout) {
auto resources = ResourceTracker::get();
if (!resources->hasDeviceExtension(device, "VK_KHR_maintenance5")) {
sOnInvalidDynamicallyCheckedCall("vkGetImageSubresourceLayout2KHR", "VK_KHR_maintenance5");
}
AEMU_SCOPED_TRACE("vkGetImageSubresourceLayout2KHR");
auto vkEnc = ResourceTracker::getThreadLocalEncoder();
vkEnc->vkGetImageSubresourceLayout2KHR(device, image, pSubresource, pLayout,
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;
}
static VkResult entry_vkGetSwapchainGrallocUsage2ANDROID(
VkDevice device, VkFormat format, VkImageUsageFlags imageUsage,
VkSwapchainImageUsageFlagsANDROID swapchainImageUsage, uint64_t* grallocConsumerUsage,
uint64_t* grallocProducerUsage) {
AEMU_SCOPED_TRACE("vkGetSwapchainGrallocUsage2ANDROID");
auto vkEnc = ResourceTracker::getThreadLocalEncoder();
VkResult vkGetSwapchainGrallocUsage2ANDROID_VkResult_return = (VkResult)0;
vkGetSwapchainGrallocUsage2ANDROID_VkResult_return = vkEnc->vkGetSwapchainGrallocUsage2ANDROID(
device, format, imageUsage, swapchainImageUsage, grallocConsumerUsage, grallocProducerUsage,
true /* do lock */);
return vkGetSwapchainGrallocUsage2ANDROID_VkResult_return;
}
static VkResult dynCheck_entry_vkGetSwapchainGrallocUsage2ANDROID(
VkDevice device, VkFormat format, VkImageUsageFlags imageUsage,
VkSwapchainImageUsageFlagsANDROID swapchainImageUsage, uint64_t* grallocConsumerUsage,
uint64_t* grallocProducerUsage) {
auto resources = ResourceTracker::get();
if (!resources->hasDeviceExtension(device, "VK_ANDROID_native_buffer")) {
sOnInvalidDynamicallyCheckedCall("vkGetSwapchainGrallocUsage2ANDROID",
"VK_ANDROID_native_buffer");
}
AEMU_SCOPED_TRACE("vkGetSwapchainGrallocUsage2ANDROID");
auto vkEnc = ResourceTracker::getThreadLocalEncoder();
VkResult vkGetSwapchainGrallocUsage2ANDROID_VkResult_return = (VkResult)0;
vkGetSwapchainGrallocUsage2ANDROID_VkResult_return = vkEnc->vkGetSwapchainGrallocUsage2ANDROID(
device, format, imageUsage, swapchainImageUsage, grallocConsumerUsage, grallocProducerUsage,
true /* do lock */);
return vkGetSwapchainGrallocUsage2ANDROID_VkResult_return;
}
#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_AMD_gpu_shader_half_float
#endif
#ifdef VK_EXT_texture_compression_astc_hdr
#endif
#ifdef VK_EXT_swapchain_colorspace
#endif
#ifdef VK_EXT_queue_family_foreign
#endif
#ifdef VK_EXT_debug_utils
#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_inline_uniform_block
#endif
#ifdef VK_EXT_shader_stencil_export
#endif
#ifdef VK_EXT_pipeline_creation_feedback
#endif
#ifdef VK_NV_shader_subgroup_partitioned
#endif
#ifdef VK_EXT_metal_surface
#endif
#ifdef VK_EXT_subgroup_size_control
#endif
#ifdef VK_EXT_tooling_info
static VkResult entry_vkGetPhysicalDeviceToolPropertiesEXT(
VkPhysicalDevice physicalDevice, uint32_t* pToolCount,
VkPhysicalDeviceToolProperties* 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_provoking_vertex
#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_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_host_image_copy
static VkResult entry_vkCopyMemoryToImageEXT(
VkDevice device, const VkCopyMemoryToImageInfoEXT* pCopyMemoryToImageInfo) {
AEMU_SCOPED_TRACE("vkCopyMemoryToImageEXT");
auto vkEnc = ResourceTracker::getThreadLocalEncoder();
VkResult vkCopyMemoryToImageEXT_VkResult_return = (VkResult)0;
vkCopyMemoryToImageEXT_VkResult_return =
vkEnc->vkCopyMemoryToImageEXT(device, pCopyMemoryToImageInfo, true /* do lock */);
return vkCopyMemoryToImageEXT_VkResult_return;
}
static VkResult dynCheck_entry_vkCopyMemoryToImageEXT(
VkDevice device, const VkCopyMemoryToImageInfoEXT* pCopyMemoryToImageInfo) {
auto resources = ResourceTracker::get();
if (!resources->hasDeviceExtension(device, "VK_EXT_host_image_copy")) {
sOnInvalidDynamicallyCheckedCall("vkCopyMemoryToImageEXT", "VK_EXT_host_image_copy");
}
AEMU_SCOPED_TRACE("vkCopyMemoryToImageEXT");
auto vkEnc = ResourceTracker::getThreadLocalEncoder();
VkResult vkCopyMemoryToImageEXT_VkResult_return = (VkResult)0;
vkCopyMemoryToImageEXT_VkResult_return =
vkEnc->vkCopyMemoryToImageEXT(device, pCopyMemoryToImageInfo, true /* do lock */);
return vkCopyMemoryToImageEXT_VkResult_return;
}
static VkResult entry_vkCopyImageToMemoryEXT(
VkDevice device, const VkCopyImageToMemoryInfoEXT* pCopyImageToMemoryInfo) {
AEMU_SCOPED_TRACE("vkCopyImageToMemoryEXT");
auto vkEnc = ResourceTracker::getThreadLocalEncoder();
VkResult vkCopyImageToMemoryEXT_VkResult_return = (VkResult)0;
vkCopyImageToMemoryEXT_VkResult_return =
vkEnc->vkCopyImageToMemoryEXT(device, pCopyImageToMemoryInfo, true /* do lock */);
return vkCopyImageToMemoryEXT_VkResult_return;
}
static VkResult dynCheck_entry_vkCopyImageToMemoryEXT(
VkDevice device, const VkCopyImageToMemoryInfoEXT* pCopyImageToMemoryInfo) {
auto resources = ResourceTracker::get();
if (!resources->hasDeviceExtension(device, "VK_EXT_host_image_copy")) {
sOnInvalidDynamicallyCheckedCall("vkCopyImageToMemoryEXT", "VK_EXT_host_image_copy");
}
AEMU_SCOPED_TRACE("vkCopyImageToMemoryEXT");
auto vkEnc = ResourceTracker::getThreadLocalEncoder();
VkResult vkCopyImageToMemoryEXT_VkResult_return = (VkResult)0;
vkCopyImageToMemoryEXT_VkResult_return =
vkEnc->vkCopyImageToMemoryEXT(device, pCopyImageToMemoryInfo, true /* do lock */);
return vkCopyImageToMemoryEXT_VkResult_return;
}
static VkResult entry_vkCopyImageToImageEXT(
VkDevice device, const VkCopyImageToImageInfoEXT* pCopyImageToImageInfo) {
AEMU_SCOPED_TRACE("vkCopyImageToImageEXT");
auto vkEnc = ResourceTracker::getThreadLocalEncoder();
VkResult vkCopyImageToImageEXT_VkResult_return = (VkResult)0;
vkCopyImageToImageEXT_VkResult_return =
vkEnc->vkCopyImageToImageEXT(device, pCopyImageToImageInfo, true /* do lock */);
return vkCopyImageToImageEXT_VkResult_return;
}
static VkResult dynCheck_entry_vkCopyImageToImageEXT(
VkDevice device, const VkCopyImageToImageInfoEXT* pCopyImageToImageInfo) {
auto resources = ResourceTracker::get();
if (!resources->hasDeviceExtension(device, "VK_EXT_host_image_copy")) {
sOnInvalidDynamicallyCheckedCall("vkCopyImageToImageEXT", "VK_EXT_host_image_copy");
}
AEMU_SCOPED_TRACE("vkCopyImageToImageEXT");
auto vkEnc = ResourceTracker::getThreadLocalEncoder();
VkResult vkCopyImageToImageEXT_VkResult_return = (VkResult)0;
vkCopyImageToImageEXT_VkResult_return =
vkEnc->vkCopyImageToImageEXT(device, pCopyImageToImageInfo, true /* do lock */);
return vkCopyImageToImageEXT_VkResult_return;
}
static VkResult entry_vkTransitionImageLayoutEXT(
VkDevice device, uint32_t transitionCount,
const VkHostImageLayoutTransitionInfoEXT* pTransitions) {
AEMU_SCOPED_TRACE("vkTransitionImageLayoutEXT");
auto vkEnc = ResourceTracker::getThreadLocalEncoder();
VkResult vkTransitionImageLayoutEXT_VkResult_return = (VkResult)0;
vkTransitionImageLayoutEXT_VkResult_return = vkEnc->vkTransitionImageLayoutEXT(
device, transitionCount, pTransitions, true /* do lock */);
return vkTransitionImageLayoutEXT_VkResult_return;
}
static VkResult dynCheck_entry_vkTransitionImageLayoutEXT(
VkDevice device, uint32_t transitionCount,
const VkHostImageLayoutTransitionInfoEXT* pTransitions) {
auto resources = ResourceTracker::get();
if (!resources->hasDeviceExtension(device, "VK_EXT_host_image_copy")) {
sOnInvalidDynamicallyCheckedCall("vkTransitionImageLayoutEXT", "VK_EXT_host_image_copy");
}
AEMU_SCOPED_TRACE("vkTransitionImageLayoutEXT");
auto vkEnc = ResourceTracker::getThreadLocalEncoder();
VkResult vkTransitionImageLayoutEXT_VkResult_return = (VkResult)0;
vkTransitionImageLayoutEXT_VkResult_return = vkEnc->vkTransitionImageLayoutEXT(
device, transitionCount, pTransitions, true /* do lock */);
return vkTransitionImageLayoutEXT_VkResult_return;
}
static void entry_vkGetImageSubresourceLayout2EXT(VkDevice device, VkImage image,
const VkImageSubresource2KHR* pSubresource,
VkSubresourceLayout2KHR* pLayout) {
AEMU_SCOPED_TRACE("vkGetImageSubresourceLayout2EXT");
auto vkEnc = ResourceTracker::getThreadLocalEncoder();
vkEnc->vkGetImageSubresourceLayout2EXT(device, image, pSubresource, pLayout,
true /* do lock */);
}
static void dynCheck_entry_vkGetImageSubresourceLayout2EXT(
VkDevice device, VkImage image, const VkImageSubresource2KHR* pSubresource,
VkSubresourceLayout2KHR* pLayout) {
auto resources = ResourceTracker::get();
if (!resources->hasDeviceExtension(device, "VK_EXT_host_image_copy")) {
sOnInvalidDynamicallyCheckedCall("vkGetImageSubresourceLayout2EXT",
"VK_EXT_host_image_copy");
}
AEMU_SCOPED_TRACE("vkGetImageSubresourceLayout2EXT");
auto vkEnc = ResourceTracker::getThreadLocalEncoder();
vkEnc->vkGetImageSubresourceLayout2EXT(device, image, pSubresource, pLayout,
true /* do lock */);
}
#endif
#ifdef VK_EXT_swapchain_maintenance1
static VkResult entry_vkReleaseSwapchainImagesEXT(
VkDevice device, const VkReleaseSwapchainImagesInfoEXT* pReleaseInfo) {
AEMU_SCOPED_TRACE("vkReleaseSwapchainImagesEXT");
auto vkEnc = ResourceTracker::getThreadLocalEncoder();
VkResult vkReleaseSwapchainImagesEXT_VkResult_return = (VkResult)0;
vkReleaseSwapchainImagesEXT_VkResult_return =
vkEnc->vkReleaseSwapchainImagesEXT(device, pReleaseInfo, true /* do lock */);
return vkReleaseSwapchainImagesEXT_VkResult_return;
}
static VkResult dynCheck_entry_vkReleaseSwapchainImagesEXT(
VkDevice device, const VkReleaseSwapchainImagesInfoEXT* pReleaseInfo) {
auto resources = ResourceTracker::get();
if (!resources->hasDeviceExtension(device, "VK_EXT_swapchain_maintenance1")) {
sOnInvalidDynamicallyCheckedCall("vkReleaseSwapchainImagesEXT",
"VK_EXT_swapchain_maintenance1");
}
AEMU_SCOPED_TRACE("vkReleaseSwapchainImagesEXT");
auto vkEnc = ResourceTracker::getThreadLocalEncoder();
VkResult vkReleaseSwapchainImagesEXT_VkResult_return = (VkResult)0;
vkReleaseSwapchainImagesEXT_VkResult_return =
vkEnc->vkReleaseSwapchainImagesEXT(device, pReleaseInfo, true /* do lock */);
return vkReleaseSwapchainImagesEXT_VkResult_return;
}
#endif
#ifdef VK_EXT_shader_demote_to_helper_invocation
#endif
#ifdef VK_EXT_texel_buffer_alignment
#endif
#ifdef VK_EXT_device_memory_report
#endif
#ifdef VK_EXT_custom_border_color
#endif
#ifdef VK_EXT_private_data
static VkResult entry_vkCreatePrivateDataSlotEXT(VkDevice device,
const VkPrivateDataSlotCreateInfo* pCreateInfo,
const VkAllocationCallbacks* pAllocator,
VkPrivateDataSlot* 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 VkPrivateDataSlotCreateInfo* pCreateInfo,
const VkAllocationCallbacks* pAllocator, VkPrivateDataSlot* 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, VkPrivateDataSlot 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,
VkPrivateDataSlot 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, VkPrivateDataSlot 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,
VkPrivateDataSlot 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, VkPrivateDataSlot 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,
VkPrivateDataSlot 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_EXT_graphics_pipeline_library
#endif
#ifdef VK_EXT_ycbcr_2plane_444_formats
#endif
#ifdef VK_EXT_image_robustness
#endif
#ifdef VK_EXT_image_compression_control
#endif
#ifdef VK_EXT_4444_formats
#endif
#ifdef VK_EXT_primitive_topology_list_restart
#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_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;
}
static void entry_vkUpdateDescriptorSetWithTemplateSized2GOOGLE(
VkDevice device, VkDescriptorSet descriptorSet,
VkDescriptorUpdateTemplate descriptorUpdateTemplate, uint32_t imageInfoCount,
uint32_t bufferInfoCount, uint32_t bufferViewCount, uint32_t inlineUniformBlockCount,
const uint32_t* pImageInfoEntryIndices, const uint32_t* pBufferInfoEntryIndices,
const uint32_t* pBufferViewEntryIndices, const VkDescriptorImageInfo* pImageInfos,
const VkDescriptorBufferInfo* pBufferInfos, const VkBufferView* pBufferViews,
const uint8_t* pInlineUniformBlockData) {
AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplateSized2GOOGLE");
auto vkEnc = ResourceTracker::getThreadLocalEncoder();
vkEnc->vkUpdateDescriptorSetWithTemplateSized2GOOGLE(
device, descriptorSet, descriptorUpdateTemplate, imageInfoCount, bufferInfoCount,
bufferViewCount, inlineUniformBlockCount, pImageInfoEntryIndices, pBufferInfoEntryIndices,
pBufferViewEntryIndices, pImageInfos, pBufferInfos, pBufferViews, pInlineUniformBlockData,
true /* do lock */);
}
static void dynCheck_entry_vkUpdateDescriptorSetWithTemplateSized2GOOGLE(
VkDevice device, VkDescriptorSet descriptorSet,
VkDescriptorUpdateTemplate descriptorUpdateTemplate, uint32_t imageInfoCount,
uint32_t bufferInfoCount, uint32_t bufferViewCount, uint32_t inlineUniformBlockCount,
const uint32_t* pImageInfoEntryIndices, const uint32_t* pBufferInfoEntryIndices,
const uint32_t* pBufferViewEntryIndices, const VkDescriptorImageInfo* pImageInfos,
const VkDescriptorBufferInfo* pBufferInfos, const VkBufferView* pBufferViews,
const uint8_t* pInlineUniformBlockData) {
auto resources = ResourceTracker::get();
if (!resources->hasDeviceExtension(device, "VK_GOOGLE_gfxstream")) {
sOnInvalidDynamicallyCheckedCall("vkUpdateDescriptorSetWithTemplateSized2GOOGLE",
"VK_GOOGLE_gfxstream");
}
AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplateSized2GOOGLE");
auto vkEnc = ResourceTracker::getThreadLocalEncoder();
vkEnc->vkUpdateDescriptorSetWithTemplateSized2GOOGLE(
device, descriptorSet, descriptorUpdateTemplate, imageInfoCount, bufferInfoCount,
bufferViewCount, inlineUniformBlockCount, pImageInfoEntryIndices, pBufferInfoEntryIndices,
pBufferViewEntryIndices, pImageInfos, pBufferInfos, pBufferViews, pInlineUniformBlockData,
true /* do lock */);
}
static void entry_vkQueueSubmitAsync2GOOGLE(VkQueue queue, uint32_t submitCount,
const VkSubmitInfo2* pSubmits, VkFence fence) {
AEMU_SCOPED_TRACE("vkQueueSubmitAsync2GOOGLE");
auto vkEnc = ResourceTracker::getQueueEncoder(queue);
vkEnc->vkQueueSubmitAsync2GOOGLE(queue, submitCount, pSubmits, fence, true /* do lock */);
}
#endif
#ifdef VK_EXT_load_store_op_none
#endif
#ifdef VK_EXT_image_compression_control_swapchain
#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_VERSION_1_3
if (!strcmp(name, "vkGetPhysicalDeviceToolProperties")) {
return nullptr;
}
if (!strcmp(name, "vkCreatePrivateDataSlot")) {
return nullptr;
}
if (!strcmp(name, "vkDestroyPrivateDataSlot")) {
return nullptr;
}
if (!strcmp(name, "vkSetPrivateData")) {
return nullptr;
}
if (!strcmp(name, "vkGetPrivateData")) {
return nullptr;
}
if (!strcmp(name, "vkCmdSetEvent2")) {
return nullptr;
}
if (!strcmp(name, "vkCmdResetEvent2")) {
return nullptr;
}
if (!strcmp(name, "vkCmdWaitEvents2")) {
return nullptr;
}
if (!strcmp(name, "vkCmdPipelineBarrier2")) {
return nullptr;
}
if (!strcmp(name, "vkCmdWriteTimestamp2")) {
return nullptr;
}
if (!strcmp(name, "vkQueueSubmit2")) {
return nullptr;
}
if (!strcmp(name, "vkCmdCopyBuffer2")) {
return nullptr;
}
if (!strcmp(name, "vkCmdCopyImage2")) {
return nullptr;
}
if (!strcmp(name, "vkCmdCopyBufferToImage2")) {
return nullptr;
}
if (!strcmp(name, "vkCmdCopyImageToBuffer2")) {
return nullptr;
}
if (!strcmp(name, "vkCmdBlitImage2")) {
return nullptr;
}
if (!strcmp(name, "vkCmdResolveImage2")) {
return nullptr;
}
if (!strcmp(name, "vkCmdBeginRendering")) {
return nullptr;
}
if (!strcmp(name, "vkCmdEndRendering")) {
return nullptr;
}
if (!strcmp(name, "vkCmdSetCullMode")) {
return nullptr;
}
if (!strcmp(name, "vkCmdSetFrontFace")) {
return nullptr;
}
if (!strcmp(name, "vkCmdSetPrimitiveTopology")) {
return nullptr;
}
if (!strcmp(name, "vkCmdSetViewportWithCount")) {
return nullptr;
}
if (!strcmp(name, "vkCmdSetScissorWithCount")) {
return nullptr;
}
if (!strcmp(name, "vkCmdBindVertexBuffers2")) {
return nullptr;
}
if (!strcmp(name, "vkCmdSetDepthTestEnable")) {
return nullptr;
}
if (!strcmp(name, "vkCmdSetDepthWriteEnable")) {
return nullptr;
}
if (!strcmp(name, "vkCmdSetDepthCompareOp")) {
return nullptr;
}
if (!strcmp(name, "vkCmdSetDepthBoundsTestEnable")) {
return nullptr;
}
if (!strcmp(name, "vkCmdSetStencilTestEnable")) {
return nullptr;
}
if (!strcmp(name, "vkCmdSetStencilOp")) {
return nullptr;
}
if (!strcmp(name, "vkCmdSetRasterizerDiscardEnable")) {
return nullptr;
}
if (!strcmp(name, "vkCmdSetDepthBiasEnable")) {
return nullptr;
}
if (!strcmp(name, "vkCmdSetPrimitiveRestartEnable")) {
return nullptr;
}
if (!strcmp(name, "vkGetDeviceBufferMemoryRequirements")) {
return nullptr;
}
if (!strcmp(name, "vkGetDeviceImageMemoryRequirements")) {
return nullptr;
}
if (!strcmp(name, "vkGetDeviceImageSparseMemoryRequirements")) {
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_android_surface
if (!strcmp(name, "vkCreateAndroidSurfaceKHR")) {
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_maintenance1
if (!strcmp(name, "vkTrimCommandPoolKHR")) {
return nullptr;
}
#endif
#ifdef VK_KHR_external_memory_capabilities
if (!strcmp(name, "vkGetPhysicalDeviceExternalBufferPropertiesKHR")) {
return nullptr;
}
#endif
#ifdef VK_KHR_external_semaphore_capabilities
if (!strcmp(name, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR")) {
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_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_external_fence_capabilities
if (!strcmp(name, "vkGetPhysicalDeviceExternalFencePropertiesKHR")) {
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_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_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_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_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_KHR_maintenance5
if (!strcmp(name, "vkCmdBindIndexBuffer2KHR")) {
return nullptr;
}
if (!strcmp(name, "vkGetRenderingAreaGranularityKHR")) {
return nullptr;
}
if (!strcmp(name, "vkGetDeviceImageSubresourceLayoutKHR")) {
return nullptr;
}
if (!strcmp(name, "vkGetImageSubresourceLayout2KHR")) {
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;
}
if (!strcmp(name, "vkGetSwapchainGrallocUsage2ANDROID")) {
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_ANDROID_external_memory_android_hardware_buffer
if (!strcmp(name, "vkGetAndroidHardwareBufferPropertiesANDROID")) {
return nullptr;
}
if (!strcmp(name, "vkGetMemoryAndroidHardwareBufferANDROID")) {
return nullptr;
}
#endif
#ifdef VK_EXT_tooling_info
if (!strcmp(name, "vkGetPhysicalDeviceToolPropertiesEXT")) {
return nullptr;
}
#endif
#ifdef VK_EXT_line_rasterization
if (!strcmp(name, "vkCmdSetLineStippleEXT")) {
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_EXT_host_image_copy
if (!strcmp(name, "vkCopyMemoryToImageEXT")) {
return nullptr;
}
if (!strcmp(name, "vkCopyImageToMemoryEXT")) {
return nullptr;
}
if (!strcmp(name, "vkCopyImageToImageEXT")) {
return nullptr;
}
if (!strcmp(name, "vkTransitionImageLayoutEXT")) {
return nullptr;
}
if (!strcmp(name, "vkGetImageSubresourceLayout2EXT")) {
return nullptr;
}
#endif
#ifdef VK_EXT_swapchain_maintenance1
if (!strcmp(name, "vkReleaseSwapchainImagesEXT")) {
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_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_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;
}
if (!strcmp(name, "vkUpdateDescriptorSetWithTemplateSized2GOOGLE")) {
return nullptr;
}
if (!strcmp(name, "vkQueueSubmitAsync2GOOGLE")) {
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;
bool has1_3OrHigher = resources->getApiVersionFromInstance(instance) >= VK_API_VERSION_1_3;
#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_VERSION_1_3
if (!strcmp(name, "vkGetPhysicalDeviceToolProperties")) {
return has1_3OrHigher ? (void*)entry_vkGetPhysicalDeviceToolProperties : nullptr;
}
if (!strcmp(name, "vkCreatePrivateDataSlot")) {
return (void*)dynCheck_entry_vkCreatePrivateDataSlot;
}
if (!strcmp(name, "vkDestroyPrivateDataSlot")) {
return (void*)dynCheck_entry_vkDestroyPrivateDataSlot;
}
if (!strcmp(name, "vkSetPrivateData")) {
return (void*)dynCheck_entry_vkSetPrivateData;
}
if (!strcmp(name, "vkGetPrivateData")) {
return (void*)dynCheck_entry_vkGetPrivateData;
}
if (!strcmp(name, "vkCmdSetEvent2")) {
return has1_3OrHigher ? (void*)entry_vkCmdSetEvent2 : nullptr;
}
if (!strcmp(name, "vkCmdResetEvent2")) {
return has1_3OrHigher ? (void*)entry_vkCmdResetEvent2 : nullptr;
}
if (!strcmp(name, "vkCmdWaitEvents2")) {
return has1_3OrHigher ? (void*)entry_vkCmdWaitEvents2 : nullptr;
}
if (!strcmp(name, "vkCmdPipelineBarrier2")) {
return has1_3OrHigher ? (void*)entry_vkCmdPipelineBarrier2 : nullptr;
}
if (!strcmp(name, "vkCmdWriteTimestamp2")) {
return has1_3OrHigher ? (void*)entry_vkCmdWriteTimestamp2 : nullptr;
}
if (!strcmp(name, "vkQueueSubmit2")) {
return has1_3OrHigher ? (void*)entry_vkQueueSubmit2 : nullptr;
}
if (!strcmp(name, "vkCmdCopyBuffer2")) {
return has1_3OrHigher ? (void*)entry_vkCmdCopyBuffer2 : nullptr;
}
if (!strcmp(name, "vkCmdCopyImage2")) {
return has1_3OrHigher ? (void*)entry_vkCmdCopyImage2 : nullptr;
}
if (!strcmp(name, "vkCmdCopyBufferToImage2")) {
return has1_3OrHigher ? (void*)entry_vkCmdCopyBufferToImage2 : nullptr;
}
if (!strcmp(name, "vkCmdCopyImageToBuffer2")) {
return has1_3OrHigher ? (void*)entry_vkCmdCopyImageToBuffer2 : nullptr;
}
if (!strcmp(name, "vkCmdBlitImage2")) {
return has1_3OrHigher ? (void*)entry_vkCmdBlitImage2 : nullptr;
}
if (!strcmp(name, "vkCmdResolveImage2")) {
return has1_3OrHigher ? (void*)entry_vkCmdResolveImage2 : nullptr;
}
if (!strcmp(name, "vkCmdBeginRendering")) {
return has1_3OrHigher ? (void*)entry_vkCmdBeginRendering : nullptr;
}
if (!strcmp(name, "vkCmdEndRendering")) {
return has1_3OrHigher ? (void*)entry_vkCmdEndRendering : nullptr;
}
if (!strcmp(name, "vkCmdSetCullMode")) {
return has1_3OrHigher ? (void*)entry_vkCmdSetCullMode : nullptr;
}
if (!strcmp(name, "vkCmdSetFrontFace")) {
return has1_3OrHigher ? (void*)entry_vkCmdSetFrontFace : nullptr;
}
if (!strcmp(name, "vkCmdSetPrimitiveTopology")) {
return has1_3OrHigher ? (void*)entry_vkCmdSetPrimitiveTopology : nullptr;
}
if (!strcmp(name, "vkCmdSetViewportWithCount")) {
return has1_3OrHigher ? (void*)entry_vkCmdSetViewportWithCount : nullptr;
}
if (!strcmp(name, "vkCmdSetScissorWithCount")) {
return has1_3OrHigher ? (void*)entry_vkCmdSetScissorWithCount : nullptr;
}
if (!strcmp(name, "vkCmdBindVertexBuffers2")) {
return has1_3OrHigher ? (void*)entry_vkCmdBindVertexBuffers2 : nullptr;
}
if (!strcmp(name, "vkCmdSetDepthTestEnable")) {
return has1_3OrHigher ? (void*)entry_vkCmdSetDepthTestEnable : nullptr;
}
if (!strcmp(name, "vkCmdSetDepthWriteEnable")) {
return has1_3OrHigher ? (void*)entry_vkCmdSetDepthWriteEnable : nullptr;
}
if (!strcmp(name, "vkCmdSetDepthCompareOp")) {
return has1_3OrHigher ? (void*)entry_vkCmdSetDepthCompareOp : nullptr;
}
if (!strcmp(name, "vkCmdSetDepthBoundsTestEnable")) {
return has1_3OrHigher ? (void*)entry_vkCmdSetDepthBoundsTestEnable : nullptr;
}
if (!strcmp(name, "vkCmdSetStencilTestEnable")) {
return has1_3OrHigher ? (void*)entry_vkCmdSetStencilTestEnable : nullptr;
}
if (!strcmp(name, "vkCmdSetStencilOp")) {
return has1_3OrHigher ? (void*)entry_vkCmdSetStencilOp : nullptr;
}
if (!strcmp(name, "vkCmdSetRasterizerDiscardEnable")) {
return has1_3OrHigher ? (void*)entry_vkCmdSetRasterizerDiscardEnable : nullptr;
}
if (!strcmp(name, "vkCmdSetDepthBiasEnable")) {
return has1_3OrHigher ? (void*)entry_vkCmdSetDepthBiasEnable : nullptr;
}
if (!strcmp(name, "vkCmdSetPrimitiveRestartEnable")) {
return has1_3OrHigher ? (void*)entry_vkCmdSetPrimitiveRestartEnable : nullptr;
}
if (!strcmp(name, "vkGetDeviceBufferMemoryRequirements")) {
return (void*)dynCheck_entry_vkGetDeviceBufferMemoryRequirements;
}
if (!strcmp(name, "vkGetDeviceImageMemoryRequirements")) {
return (void*)dynCheck_entry_vkGetDeviceImageMemoryRequirements;
}
if (!strcmp(name, "vkGetDeviceImageSparseMemoryRequirements")) {
return (void*)dynCheck_entry_vkGetDeviceImageSparseMemoryRequirements;
}
#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_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_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_maintenance1
if (!strcmp(name, "vkTrimCommandPoolKHR")) {
// TODO(b/236246382): Check support for device extension;
return (void*)dynCheck_entry_vkTrimCommandPoolKHR;
}
#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_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_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_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_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_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_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_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_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_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_KHR_maintenance5
if (!strcmp(name, "vkCmdBindIndexBuffer2KHR")) {
// TODO(b/236246382): Check support for device extension;
return (void*)dynCheck_entry_vkCmdBindIndexBuffer2KHR;
}
if (!strcmp(name, "vkGetRenderingAreaGranularityKHR")) {
// TODO(b/236246382): Check support for device extension;
return (void*)dynCheck_entry_vkGetRenderingAreaGranularityKHR;
}
if (!strcmp(name, "vkGetDeviceImageSubresourceLayoutKHR")) {
// TODO(b/236246382): Check support for device extension;
return (void*)dynCheck_entry_vkGetDeviceImageSubresourceLayoutKHR;
}
if (!strcmp(name, "vkGetImageSubresourceLayout2KHR")) {
// TODO(b/236246382): Check support for device extension;
return (void*)dynCheck_entry_vkGetImageSubresourceLayout2KHR;
}
#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;
}
if (!strcmp(name, "vkGetSwapchainGrallocUsage2ANDROID")) {
// TODO(b/236246382): Check support for device extension;
return (void*)dynCheck_entry_vkGetSwapchainGrallocUsage2ANDROID;
}
#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_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_tooling_info
if (!strcmp(name, "vkGetPhysicalDeviceToolPropertiesEXT")) {
// TODO(b/236246382): Check support for device extension;
return (void*)entry_vkGetPhysicalDeviceToolPropertiesEXT;
}
#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_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_EXT_host_image_copy
if (!strcmp(name, "vkCopyMemoryToImageEXT")) {
// TODO(b/236246382): Check support for device extension;
return (void*)dynCheck_entry_vkCopyMemoryToImageEXT;
}
if (!strcmp(name, "vkCopyImageToMemoryEXT")) {
// TODO(b/236246382): Check support for device extension;
return (void*)dynCheck_entry_vkCopyImageToMemoryEXT;
}
if (!strcmp(name, "vkCopyImageToImageEXT")) {
// TODO(b/236246382): Check support for device extension;
return (void*)dynCheck_entry_vkCopyImageToImageEXT;
}
if (!strcmp(name, "vkTransitionImageLayoutEXT")) {
// TODO(b/236246382): Check support for device extension;
return (void*)dynCheck_entry_vkTransitionImageLayoutEXT;
}
if (!strcmp(name, "vkGetImageSubresourceLayout2EXT")) {
// TODO(b/236246382): Check support for device extension;
return (void*)dynCheck_entry_vkGetImageSubresourceLayout2EXT;
}
#endif
#ifdef VK_EXT_swapchain_maintenance1
if (!strcmp(name, "vkReleaseSwapchainImagesEXT")) {
// TODO(b/236246382): Check support for device extension;
return (void*)dynCheck_entry_vkReleaseSwapchainImagesEXT;
}
#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_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_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;
}
if (!strcmp(name, "vkUpdateDescriptorSetWithTemplateSized2GOOGLE")) {
bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_gfxstream");
return hasExt ? (void*)dynCheck_entry_vkUpdateDescriptorSetWithTemplateSized2GOOGLE
: nullptr;
}
if (!strcmp(name, "vkQueueSubmitAsync2GOOGLE")) {
bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_gfxstream");
return hasExt ? (void*)entry_vkQueueSubmitAsync2GOOGLE : nullptr;
}
#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;
bool has1_2OrHigher = resources->getApiVersionFromDevice(device) >= VK_API_VERSION_1_2;
bool has1_3OrHigher = resources->getApiVersionFromDevice(device) >= VK_API_VERSION_1_3;
#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")) {
return has1_2OrHigher ? (void*)entry_vkCmdDrawIndirectCount : nullptr;
}
if (!strcmp(name, "vkCmdDrawIndexedIndirectCount")) {
return has1_2OrHigher ? (void*)entry_vkCmdDrawIndexedIndirectCount : nullptr;
}
if (!strcmp(name, "vkCreateRenderPass2")) {
return has1_2OrHigher ? (void*)entry_vkCreateRenderPass2 : nullptr;
}
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 has1_2OrHigher ? (void*)entry_vkResetQueryPool : nullptr;
}
if (!strcmp(name, "vkGetSemaphoreCounterValue")) {
return has1_2OrHigher ? (void*)entry_vkGetSemaphoreCounterValue : nullptr;
}
if (!strcmp(name, "vkWaitSemaphores")) {
return has1_2OrHigher ? (void*)entry_vkWaitSemaphores : nullptr;
}
if (!strcmp(name, "vkSignalSemaphore")) {
return has1_2OrHigher ? (void*)entry_vkSignalSemaphore : nullptr;
}
if (!strcmp(name, "vkGetBufferDeviceAddress")) {
return has1_2OrHigher ? (void*)entry_vkGetBufferDeviceAddress : nullptr;
}
if (!strcmp(name, "vkGetBufferOpaqueCaptureAddress")) {
return has1_2OrHigher ? (void*)entry_vkGetBufferOpaqueCaptureAddress : nullptr;
}
if (!strcmp(name, "vkGetDeviceMemoryOpaqueCaptureAddress")) {
return has1_2OrHigher ? (void*)entry_vkGetDeviceMemoryOpaqueCaptureAddress : nullptr;
}
#endif
#ifdef VK_VERSION_1_3
if (!strcmp(name, "vkGetPhysicalDeviceToolProperties")) {
return has1_3OrHigher ? (void*)entry_vkGetPhysicalDeviceToolProperties : nullptr;
}
if (!strcmp(name, "vkCreatePrivateDataSlot")) {
return has1_3OrHigher ? (void*)entry_vkCreatePrivateDataSlot : nullptr;
}
if (!strcmp(name, "vkDestroyPrivateDataSlot")) {
return has1_3OrHigher ? (void*)entry_vkDestroyPrivateDataSlot : nullptr;
}
if (!strcmp(name, "vkSetPrivateData")) {
return has1_3OrHigher ? (void*)entry_vkSetPrivateData : nullptr;
}
if (!strcmp(name, "vkGetPrivateData")) {
return has1_3OrHigher ? (void*)entry_vkGetPrivateData : nullptr;
}
if (!strcmp(name, "vkCmdSetEvent2")) {
return has1_3OrHigher ? (void*)entry_vkCmdSetEvent2 : nullptr;
}
if (!strcmp(name, "vkCmdResetEvent2")) {
return has1_3OrHigher ? (void*)entry_vkCmdResetEvent2 : nullptr;
}
if (!strcmp(name, "vkCmdWaitEvents2")) {
return has1_3OrHigher ? (void*)entry_vkCmdWaitEvents2 : nullptr;
}
if (!strcmp(name, "vkCmdPipelineBarrier2")) {
return has1_3OrHigher ? (void*)entry_vkCmdPipelineBarrier2 : nullptr;
}
if (!strcmp(name, "vkCmdWriteTimestamp2")) {
return has1_3OrHigher ? (void*)entry_vkCmdWriteTimestamp2 : nullptr;
}
if (!strcmp(name, "vkQueueSubmit2")) {
return has1_3OrHigher ? (void*)entry_vkQueueSubmit2 : nullptr;
}
if (!strcmp(name, "vkCmdCopyBuffer2")) {
return has1_3OrHigher ? (void*)entry_vkCmdCopyBuffer2 : nullptr;
}
if (!strcmp(name, "vkCmdCopyImage2")) {
return has1_3OrHigher ? (void*)entry_vkCmdCopyImage2 : nullptr;
}
if (!strcmp(name, "vkCmdCopyBufferToImage2")) {
return has1_3OrHigher ? (void*)entry_vkCmdCopyBufferToImage2 : nullptr;
}
if (!strcmp(name, "vkCmdCopyImageToBuffer2")) {
return has1_3OrHigher ? (void*)entry_vkCmdCopyImageToBuffer2 : nullptr;
}
if (!strcmp(name, "vkCmdBlitImage2")) {
return has1_3OrHigher ? (void*)entry_vkCmdBlitImage2 : nullptr;
}
if (!strcmp(name, "vkCmdResolveImage2")) {
return has1_3OrHigher ? (void*)entry_vkCmdResolveImage2 : nullptr;
}
if (!strcmp(name, "vkCmdBeginRendering")) {
return has1_3OrHigher ? (void*)entry_vkCmdBeginRendering : nullptr;
}
if (!strcmp(name, "vkCmdEndRendering")) {
return has1_3OrHigher ? (void*)entry_vkCmdEndRendering : nullptr;
}
if (!strcmp(name, "vkCmdSetCullMode")) {
return has1_3OrHigher ? (void*)entry_vkCmdSetCullMode : nullptr;
}
if (!strcmp(name, "vkCmdSetFrontFace")) {
return has1_3OrHigher ? (void*)entry_vkCmdSetFrontFace : nullptr;
}
if (!strcmp(name, "vkCmdSetPrimitiveTopology")) {
return has1_3OrHigher ? (void*)entry_vkCmdSetPrimitiveTopology : nullptr;
}
if (!strcmp(name, "vkCmdSetViewportWithCount")) {
return has1_3OrHigher ? (void*)entry_vkCmdSetViewportWithCount : nullptr;
}
if (!strcmp(name, "vkCmdSetScissorWithCount")) {
return has1_3OrHigher ? (void*)entry_vkCmdSetScissorWithCount : nullptr;
}
if (!strcmp(name, "vkCmdBindVertexBuffers2")) {
return has1_3OrHigher ? (void*)entry_vkCmdBindVertexBuffers2 : nullptr;
}
if (!strcmp(name, "vkCmdSetDepthTestEnable")) {
return has1_3OrHigher ? (void*)entry_vkCmdSetDepthTestEnable : nullptr;
}
if (!strcmp(name, "vkCmdSetDepthWriteEnable")) {
return has1_3OrHigher ? (void*)entry_vkCmdSetDepthWriteEnable : nullptr;
}
if (!strcmp(name, "vkCmdSetDepthCompareOp")) {
return has1_3OrHigher ? (void*)entry_vkCmdSetDepthCompareOp : nullptr;
}
if (!strcmp(name, "vkCmdSetDepthBoundsTestEnable")) {
return has1_3OrHigher ? (void*)entry_vkCmdSetDepthBoundsTestEnable : nullptr;
}
if (!strcmp(name, "vkCmdSetStencilTestEnable")) {
return has1_3OrHigher ? (void*)entry_vkCmdSetStencilTestEnable : nullptr;
}
if (!strcmp(name, "vkCmdSetStencilOp")) {
return has1_3OrHigher ? (void*)entry_vkCmdSetStencilOp : nullptr;
}
if (!strcmp(name, "vkCmdSetRasterizerDiscardEnable")) {
return has1_3OrHigher ? (void*)entry_vkCmdSetRasterizerDiscardEnable : nullptr;
}
if (!strcmp(name, "vkCmdSetDepthBiasEnable")) {
return has1_3OrHigher ? (void*)entry_vkCmdSetDepthBiasEnable : nullptr;
}
if (!strcmp(name, "vkCmdSetPrimitiveRestartEnable")) {
return has1_3OrHigher ? (void*)entry_vkCmdSetPrimitiveRestartEnable : nullptr;
}
if (!strcmp(name, "vkGetDeviceBufferMemoryRequirements")) {
return has1_3OrHigher ? (void*)entry_vkGetDeviceBufferMemoryRequirements : nullptr;
}
if (!strcmp(name, "vkGetDeviceImageMemoryRequirements")) {
return has1_3OrHigher ? (void*)entry_vkGetDeviceImageMemoryRequirements : nullptr;
}
if (!strcmp(name, "vkGetDeviceImageSparseMemoryRequirements")) {
return has1_3OrHigher ? (void*)entry_vkGetDeviceImageSparseMemoryRequirements : 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_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_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_maintenance1
if (!strcmp(name, "vkTrimCommandPoolKHR")) {
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_maintenance1");
return hasExt ? (void*)entry_vkTrimCommandPoolKHR : 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_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_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_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_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_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_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_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_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_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_KHR_maintenance5
if (!strcmp(name, "vkCmdBindIndexBuffer2KHR")) {
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_maintenance5");
return hasExt ? (void*)entry_vkCmdBindIndexBuffer2KHR : nullptr;
}
if (!strcmp(name, "vkGetRenderingAreaGranularityKHR")) {
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_maintenance5");
return hasExt ? (void*)entry_vkGetRenderingAreaGranularityKHR : nullptr;
}
if (!strcmp(name, "vkGetDeviceImageSubresourceLayoutKHR")) {
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_maintenance5");
return hasExt ? (void*)entry_vkGetDeviceImageSubresourceLayoutKHR : nullptr;
}
if (!strcmp(name, "vkGetImageSubresourceLayout2KHR")) {
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_maintenance5");
return hasExt ? (void*)entry_vkGetImageSubresourceLayout2KHR : 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;
}
if (!strcmp(name, "vkGetSwapchainGrallocUsage2ANDROID")) {
bool hasExt = resources->hasDeviceExtension(device, "VK_ANDROID_native_buffer");
return hasExt ? (void*)entry_vkGetSwapchainGrallocUsage2ANDROID : 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_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_tooling_info
if (!strcmp(name, "vkGetPhysicalDeviceToolPropertiesEXT")) {
bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_tooling_info");
return hasExt ? (void*)entry_vkGetPhysicalDeviceToolPropertiesEXT : 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_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_EXT_host_image_copy
if (!strcmp(name, "vkCopyMemoryToImageEXT")) {
bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_host_image_copy");
return hasExt ? (void*)entry_vkCopyMemoryToImageEXT : nullptr;
}
if (!strcmp(name, "vkCopyImageToMemoryEXT")) {
bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_host_image_copy");
return hasExt ? (void*)entry_vkCopyImageToMemoryEXT : nullptr;
}
if (!strcmp(name, "vkCopyImageToImageEXT")) {
bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_host_image_copy");
return hasExt ? (void*)entry_vkCopyImageToImageEXT : nullptr;
}
if (!strcmp(name, "vkTransitionImageLayoutEXT")) {
bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_host_image_copy");
return hasExt ? (void*)entry_vkTransitionImageLayoutEXT : nullptr;
}
if (!strcmp(name, "vkGetImageSubresourceLayout2EXT")) {
bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_host_image_copy");
return hasExt ? (void*)entry_vkGetImageSubresourceLayout2EXT : nullptr;
}
#endif
#ifdef VK_EXT_swapchain_maintenance1
if (!strcmp(name, "vkReleaseSwapchainImagesEXT")) {
bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_swapchain_maintenance1");
return hasExt ? (void*)entry_vkReleaseSwapchainImagesEXT : 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_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_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;
}
if (!strcmp(name, "vkUpdateDescriptorSetWithTemplateSized2GOOGLE")) {
bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_gfxstream");
return hasExt ? (void*)entry_vkUpdateDescriptorSetWithTemplateSized2GOOGLE : nullptr;
}
if (!strcmp(name, "vkQueueSubmitAsync2GOOGLE")) {
bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_gfxstream");
return hasExt ? (void*)entry_vkQueueSubmitAsync2GOOGLE : nullptr;
}
#endif
return nullptr;
}
} // namespace vk
} // namespace gfxstream