9928 lines
372 KiB
C++
9928 lines
372 KiB
C++
// 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 android/android-emugl/host/libs/libOpenglRender/vulkan-registry/xml/genvk.py -registry android/android-emugl/host/libs/libOpenglRender/vulkan-registry/xml/vk.xml cereal -o android/android-emugl/host/libs/libOpenglRender/vulkan/cereal
|
|
// Please do not modify directly;
|
|
// re-run android/scripts/generate-vulkan-sources.sh,
|
|
// or directly from Python by defining:
|
|
// VULKAN_REGISTRY_XML_DIR : Directory containing genvk.py and vk.xml
|
|
// CEREAL_OUTPUT_DIR: Where to put the generated sources.
|
|
// python3 $VULKAN_REGISTRY_XML_DIR/genvk.py -registry $VULKAN_REGISTRY_XML_DIR/vk.xml cereal -o $CEREAL_OUTPUT_DIR
|
|
|
|
#include "func_table.h"
|
|
|
|
|
|
#include "VkEncoder.h"
|
|
#include "HostConnection.h"
|
|
#include "ResourceTracker.h"
|
|
|
|
#include "goldfish_vk_private_defs.h"
|
|
|
|
#include <log/log.h>
|
|
|
|
// Stuff we are not going to use but if included,
|
|
// will cause compile errors. These are Android Vulkan
|
|
// required extensions, but the approach will be to
|
|
// implement them completely on the guest side.
|
|
#undef VK_KHR_android_surface
|
|
|
|
|
|
namespace goldfish_vk {
|
|
|
|
static void sOnInvalidDynamicallyCheckedCall(const char* apiname, const char* neededFeature)
|
|
{
|
|
ALOGE("invalid call to %s: %s not supported", apiname, neededFeature);
|
|
abort();
|
|
}
|
|
#ifdef VK_VERSION_1_0
|
|
static VkResult entry_vkCreateInstance(
|
|
const VkInstanceCreateInfo* pCreateInfo,
|
|
const VkAllocationCallbacks* pAllocator,
|
|
VkInstance* pInstance)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCreateInstance");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkCreateInstance_VkResult_return = (VkResult)0;
|
|
vkCreateInstance_VkResult_return = vkEnc->vkCreateInstance(pCreateInfo, pAllocator, pInstance);
|
|
return vkCreateInstance_VkResult_return;
|
|
}
|
|
static void entry_vkDestroyInstance(
|
|
VkInstance instance,
|
|
const VkAllocationCallbacks* pAllocator)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkDestroyInstance");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkDestroyInstance(instance, pAllocator);
|
|
}
|
|
static VkResult entry_vkEnumeratePhysicalDevices(
|
|
VkInstance instance,
|
|
uint32_t* pPhysicalDeviceCount,
|
|
VkPhysicalDevice* pPhysicalDevices)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkEnumeratePhysicalDevices");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
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 = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkGetPhysicalDeviceFeatures(physicalDevice, pFeatures);
|
|
}
|
|
static void entry_vkGetPhysicalDeviceFormatProperties(
|
|
VkPhysicalDevice physicalDevice,
|
|
VkFormat format,
|
|
VkFormatProperties* pFormatProperties)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFormatProperties");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkGetPhysicalDeviceFormatProperties(physicalDevice, format, pFormatProperties);
|
|
}
|
|
static VkResult entry_vkGetPhysicalDeviceImageFormatProperties(
|
|
VkPhysicalDevice physicalDevice,
|
|
VkFormat format,
|
|
VkImageType type,
|
|
VkImageTiling tiling,
|
|
VkImageUsageFlags usage,
|
|
VkImageCreateFlags flags,
|
|
VkImageFormatProperties* pImageFormatProperties)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetPhysicalDeviceImageFormatProperties");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkGetPhysicalDeviceImageFormatProperties_VkResult_return = (VkResult)0;
|
|
vkGetPhysicalDeviceImageFormatProperties_VkResult_return = vkEnc->vkGetPhysicalDeviceImageFormatProperties(physicalDevice, format, type, tiling, usage, flags, pImageFormatProperties);
|
|
return vkGetPhysicalDeviceImageFormatProperties_VkResult_return;
|
|
}
|
|
static void entry_vkGetPhysicalDeviceProperties(
|
|
VkPhysicalDevice physicalDevice,
|
|
VkPhysicalDeviceProperties* pProperties)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetPhysicalDeviceProperties");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkGetPhysicalDeviceProperties(physicalDevice, pProperties);
|
|
}
|
|
static void entry_vkGetPhysicalDeviceQueueFamilyProperties(
|
|
VkPhysicalDevice physicalDevice,
|
|
uint32_t* pQueueFamilyPropertyCount,
|
|
VkQueueFamilyProperties* pQueueFamilyProperties)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetPhysicalDeviceQueueFamilyProperties");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkGetPhysicalDeviceQueueFamilyProperties(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties);
|
|
}
|
|
static void entry_vkGetPhysicalDeviceMemoryProperties(
|
|
VkPhysicalDevice physicalDevice,
|
|
VkPhysicalDeviceMemoryProperties* pMemoryProperties)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMemoryProperties");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkGetPhysicalDeviceMemoryProperties(physicalDevice, pMemoryProperties);
|
|
}
|
|
static PFN_vkVoidFunction entry_vkGetInstanceProcAddr(
|
|
VkInstance instance,
|
|
const char* pName)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetInstanceProcAddr");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
PFN_vkVoidFunction vkGetInstanceProcAddr_PFN_vkVoidFunction_return = (PFN_vkVoidFunction)0;
|
|
vkGetInstanceProcAddr_PFN_vkVoidFunction_return = vkEnc->vkGetInstanceProcAddr(instance, pName);
|
|
return vkGetInstanceProcAddr_PFN_vkVoidFunction_return;
|
|
}
|
|
static PFN_vkVoidFunction entry_vkGetDeviceProcAddr(
|
|
VkDevice device,
|
|
const char* pName)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetDeviceProcAddr");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
PFN_vkVoidFunction vkGetDeviceProcAddr_PFN_vkVoidFunction_return = (PFN_vkVoidFunction)0;
|
|
vkGetDeviceProcAddr_PFN_vkVoidFunction_return = vkEnc->vkGetDeviceProcAddr(device, pName);
|
|
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 = HostConnection::get()->vkEncoder();
|
|
VkResult vkCreateDevice_VkResult_return = (VkResult)0;
|
|
vkCreateDevice_VkResult_return = vkEnc->vkCreateDevice(physicalDevice, pCreateInfo, pAllocator, pDevice);
|
|
return vkCreateDevice_VkResult_return;
|
|
}
|
|
static void entry_vkDestroyDevice(
|
|
VkDevice device,
|
|
const VkAllocationCallbacks* pAllocator)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkDestroyDevice");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkDestroyDevice(device, pAllocator);
|
|
}
|
|
static VkResult entry_vkEnumerateInstanceExtensionProperties(
|
|
const char* pLayerName,
|
|
uint32_t* pPropertyCount,
|
|
VkExtensionProperties* pProperties)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkEnumerateInstanceExtensionProperties");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
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 = HostConnection::get()->vkEncoder();
|
|
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 = HostConnection::get()->vkEncoder();
|
|
VkResult vkEnumerateInstanceLayerProperties_VkResult_return = (VkResult)0;
|
|
vkEnumerateInstanceLayerProperties_VkResult_return = vkEnc->vkEnumerateInstanceLayerProperties(pPropertyCount, pProperties);
|
|
return vkEnumerateInstanceLayerProperties_VkResult_return;
|
|
}
|
|
static VkResult entry_vkEnumerateDeviceLayerProperties(
|
|
VkPhysicalDevice physicalDevice,
|
|
uint32_t* pPropertyCount,
|
|
VkLayerProperties* pProperties)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkEnumerateDeviceLayerProperties");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkEnumerateDeviceLayerProperties_VkResult_return = (VkResult)0;
|
|
vkEnumerateDeviceLayerProperties_VkResult_return = vkEnc->vkEnumerateDeviceLayerProperties(physicalDevice, pPropertyCount, pProperties);
|
|
return vkEnumerateDeviceLayerProperties_VkResult_return;
|
|
}
|
|
static void entry_vkGetDeviceQueue(
|
|
VkDevice device,
|
|
uint32_t queueFamilyIndex,
|
|
uint32_t queueIndex,
|
|
VkQueue* pQueue)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetDeviceQueue");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkGetDeviceQueue(device, queueFamilyIndex, queueIndex, pQueue);
|
|
}
|
|
static VkResult entry_vkQueueSubmit(
|
|
VkQueue queue,
|
|
uint32_t submitCount,
|
|
const VkSubmitInfo* pSubmits,
|
|
VkFence fence)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkQueueSubmit");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
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 = HostConnection::get()->vkEncoder();
|
|
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 = HostConnection::get()->vkEncoder();
|
|
VkResult vkDeviceWaitIdle_VkResult_return = (VkResult)0;
|
|
vkDeviceWaitIdle_VkResult_return = vkEnc->vkDeviceWaitIdle(device);
|
|
return vkDeviceWaitIdle_VkResult_return;
|
|
}
|
|
static VkResult entry_vkAllocateMemory(
|
|
VkDevice device,
|
|
const VkMemoryAllocateInfo* pAllocateInfo,
|
|
const VkAllocationCallbacks* pAllocator,
|
|
VkDeviceMemory* pMemory)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkAllocateMemory");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
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 = HostConnection::get()->vkEncoder();
|
|
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 = HostConnection::get()->vkEncoder();
|
|
VkResult vkMapMemory_VkResult_return = (VkResult)0;
|
|
vkMapMemory_VkResult_return = vkEnc->vkMapMemory(device, memory, offset, size, flags, ppData);
|
|
return vkMapMemory_VkResult_return;
|
|
}
|
|
static void entry_vkUnmapMemory(
|
|
VkDevice device,
|
|
VkDeviceMemory memory)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkUnmapMemory");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkUnmapMemory(device, memory);
|
|
}
|
|
static VkResult entry_vkFlushMappedMemoryRanges(
|
|
VkDevice device,
|
|
uint32_t memoryRangeCount,
|
|
const VkMappedMemoryRange* pMemoryRanges)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkFlushMappedMemoryRanges");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkFlushMappedMemoryRanges_VkResult_return = (VkResult)0;
|
|
vkFlushMappedMemoryRanges_VkResult_return = vkEnc->vkFlushMappedMemoryRanges(device, memoryRangeCount, pMemoryRanges);
|
|
return vkFlushMappedMemoryRanges_VkResult_return;
|
|
}
|
|
static VkResult entry_vkInvalidateMappedMemoryRanges(
|
|
VkDevice device,
|
|
uint32_t memoryRangeCount,
|
|
const VkMappedMemoryRange* pMemoryRanges)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkInvalidateMappedMemoryRanges");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkInvalidateMappedMemoryRanges_VkResult_return = (VkResult)0;
|
|
vkInvalidateMappedMemoryRanges_VkResult_return = vkEnc->vkInvalidateMappedMemoryRanges(device, memoryRangeCount, pMemoryRanges);
|
|
return vkInvalidateMappedMemoryRanges_VkResult_return;
|
|
}
|
|
static void entry_vkGetDeviceMemoryCommitment(
|
|
VkDevice device,
|
|
VkDeviceMemory memory,
|
|
VkDeviceSize* pCommittedMemoryInBytes)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetDeviceMemoryCommitment");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkGetDeviceMemoryCommitment(device, memory, pCommittedMemoryInBytes);
|
|
}
|
|
static VkResult entry_vkBindBufferMemory(
|
|
VkDevice device,
|
|
VkBuffer buffer,
|
|
VkDeviceMemory memory,
|
|
VkDeviceSize memoryOffset)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkBindBufferMemory");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
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 = HostConnection::get()->vkEncoder();
|
|
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 = HostConnection::get()->vkEncoder();
|
|
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 = HostConnection::get()->vkEncoder();
|
|
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 = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkGetImageSparseMemoryRequirements(device, image, pSparseMemoryRequirementCount, pSparseMemoryRequirements);
|
|
}
|
|
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 = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkGetPhysicalDeviceSparseImageFormatProperties(physicalDevice, format, type, samples, usage, tiling, pPropertyCount, pProperties);
|
|
}
|
|
static VkResult entry_vkQueueBindSparse(
|
|
VkQueue queue,
|
|
uint32_t bindInfoCount,
|
|
const VkBindSparseInfo* pBindInfo,
|
|
VkFence fence)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkQueueBindSparse");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkQueueBindSparse_VkResult_return = (VkResult)0;
|
|
vkQueueBindSparse_VkResult_return = vkEnc->vkQueueBindSparse(queue, bindInfoCount, pBindInfo, fence);
|
|
return vkQueueBindSparse_VkResult_return;
|
|
}
|
|
static VkResult entry_vkCreateFence(
|
|
VkDevice device,
|
|
const VkFenceCreateInfo* pCreateInfo,
|
|
const VkAllocationCallbacks* pAllocator,
|
|
VkFence* pFence)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCreateFence");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
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 = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkDestroyFence(device, fence, pAllocator);
|
|
}
|
|
static VkResult entry_vkResetFences(
|
|
VkDevice device,
|
|
uint32_t fenceCount,
|
|
const VkFence* pFences)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkResetFences");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
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 = HostConnection::get()->vkEncoder();
|
|
VkResult vkGetFenceStatus_VkResult_return = (VkResult)0;
|
|
vkGetFenceStatus_VkResult_return = vkEnc->vkGetFenceStatus(device, fence);
|
|
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 = HostConnection::get()->vkEncoder();
|
|
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 = HostConnection::get()->vkEncoder();
|
|
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 = HostConnection::get()->vkEncoder();
|
|
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 = HostConnection::get()->vkEncoder();
|
|
VkResult vkCreateEvent_VkResult_return = (VkResult)0;
|
|
vkCreateEvent_VkResult_return = vkEnc->vkCreateEvent(device, pCreateInfo, pAllocator, pEvent);
|
|
return vkCreateEvent_VkResult_return;
|
|
}
|
|
static void entry_vkDestroyEvent(
|
|
VkDevice device,
|
|
VkEvent event,
|
|
const VkAllocationCallbacks* pAllocator)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkDestroyEvent");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkDestroyEvent(device, event, pAllocator);
|
|
}
|
|
static VkResult entry_vkGetEventStatus(
|
|
VkDevice device,
|
|
VkEvent event)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetEventStatus");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkGetEventStatus_VkResult_return = (VkResult)0;
|
|
vkGetEventStatus_VkResult_return = vkEnc->vkGetEventStatus(device, event);
|
|
return vkGetEventStatus_VkResult_return;
|
|
}
|
|
static VkResult entry_vkSetEvent(
|
|
VkDevice device,
|
|
VkEvent event)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkSetEvent");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkSetEvent_VkResult_return = (VkResult)0;
|
|
vkSetEvent_VkResult_return = vkEnc->vkSetEvent(device, event);
|
|
return vkSetEvent_VkResult_return;
|
|
}
|
|
static VkResult entry_vkResetEvent(
|
|
VkDevice device,
|
|
VkEvent event)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkResetEvent");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkResetEvent_VkResult_return = (VkResult)0;
|
|
vkResetEvent_VkResult_return = vkEnc->vkResetEvent(device, event);
|
|
return vkResetEvent_VkResult_return;
|
|
}
|
|
static VkResult entry_vkCreateQueryPool(
|
|
VkDevice device,
|
|
const VkQueryPoolCreateInfo* pCreateInfo,
|
|
const VkAllocationCallbacks* pAllocator,
|
|
VkQueryPool* pQueryPool)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCreateQueryPool");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkCreateQueryPool_VkResult_return = (VkResult)0;
|
|
vkCreateQueryPool_VkResult_return = vkEnc->vkCreateQueryPool(device, pCreateInfo, pAllocator, pQueryPool);
|
|
return vkCreateQueryPool_VkResult_return;
|
|
}
|
|
static void entry_vkDestroyQueryPool(
|
|
VkDevice device,
|
|
VkQueryPool queryPool,
|
|
const VkAllocationCallbacks* pAllocator)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkDestroyQueryPool");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkDestroyQueryPool(device, queryPool, pAllocator);
|
|
}
|
|
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 = HostConnection::get()->vkEncoder();
|
|
VkResult vkGetQueryPoolResults_VkResult_return = (VkResult)0;
|
|
vkGetQueryPoolResults_VkResult_return = vkEnc->vkGetQueryPoolResults(device, queryPool, firstQuery, queryCount, dataSize, pData, stride, flags);
|
|
return vkGetQueryPoolResults_VkResult_return;
|
|
}
|
|
static VkResult entry_vkCreateBuffer(
|
|
VkDevice device,
|
|
const VkBufferCreateInfo* pCreateInfo,
|
|
const VkAllocationCallbacks* pAllocator,
|
|
VkBuffer* pBuffer)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCreateBuffer");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
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 = HostConnection::get()->vkEncoder();
|
|
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 = HostConnection::get()->vkEncoder();
|
|
VkResult vkCreateBufferView_VkResult_return = (VkResult)0;
|
|
vkCreateBufferView_VkResult_return = vkEnc->vkCreateBufferView(device, pCreateInfo, pAllocator, pView);
|
|
return vkCreateBufferView_VkResult_return;
|
|
}
|
|
static void entry_vkDestroyBufferView(
|
|
VkDevice device,
|
|
VkBufferView bufferView,
|
|
const VkAllocationCallbacks* pAllocator)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkDestroyBufferView");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkDestroyBufferView(device, bufferView, pAllocator);
|
|
}
|
|
static VkResult entry_vkCreateImage(
|
|
VkDevice device,
|
|
const VkImageCreateInfo* pCreateInfo,
|
|
const VkAllocationCallbacks* pAllocator,
|
|
VkImage* pImage)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCreateImage");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
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 = HostConnection::get()->vkEncoder();
|
|
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 = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkGetImageSubresourceLayout(device, image, pSubresource, pLayout);
|
|
}
|
|
static VkResult entry_vkCreateImageView(
|
|
VkDevice device,
|
|
const VkImageViewCreateInfo* pCreateInfo,
|
|
const VkAllocationCallbacks* pAllocator,
|
|
VkImageView* pView)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCreateImageView");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
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 = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkDestroyImageView(device, imageView, pAllocator);
|
|
}
|
|
static VkResult entry_vkCreateShaderModule(
|
|
VkDevice device,
|
|
const VkShaderModuleCreateInfo* pCreateInfo,
|
|
const VkAllocationCallbacks* pAllocator,
|
|
VkShaderModule* pShaderModule)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCreateShaderModule");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkCreateShaderModule_VkResult_return = (VkResult)0;
|
|
vkCreateShaderModule_VkResult_return = vkEnc->vkCreateShaderModule(device, pCreateInfo, pAllocator, pShaderModule);
|
|
return vkCreateShaderModule_VkResult_return;
|
|
}
|
|
static void entry_vkDestroyShaderModule(
|
|
VkDevice device,
|
|
VkShaderModule shaderModule,
|
|
const VkAllocationCallbacks* pAllocator)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkDestroyShaderModule");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkDestroyShaderModule(device, shaderModule, pAllocator);
|
|
}
|
|
static VkResult entry_vkCreatePipelineCache(
|
|
VkDevice device,
|
|
const VkPipelineCacheCreateInfo* pCreateInfo,
|
|
const VkAllocationCallbacks* pAllocator,
|
|
VkPipelineCache* pPipelineCache)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCreatePipelineCache");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkCreatePipelineCache_VkResult_return = (VkResult)0;
|
|
vkCreatePipelineCache_VkResult_return = vkEnc->vkCreatePipelineCache(device, pCreateInfo, pAllocator, pPipelineCache);
|
|
return vkCreatePipelineCache_VkResult_return;
|
|
}
|
|
static void entry_vkDestroyPipelineCache(
|
|
VkDevice device,
|
|
VkPipelineCache pipelineCache,
|
|
const VkAllocationCallbacks* pAllocator)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkDestroyPipelineCache");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkDestroyPipelineCache(device, pipelineCache, pAllocator);
|
|
}
|
|
static VkResult entry_vkGetPipelineCacheData(
|
|
VkDevice device,
|
|
VkPipelineCache pipelineCache,
|
|
size_t* pDataSize,
|
|
void* pData)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetPipelineCacheData");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkGetPipelineCacheData_VkResult_return = (VkResult)0;
|
|
vkGetPipelineCacheData_VkResult_return = vkEnc->vkGetPipelineCacheData(device, pipelineCache, pDataSize, pData);
|
|
return vkGetPipelineCacheData_VkResult_return;
|
|
}
|
|
static VkResult entry_vkMergePipelineCaches(
|
|
VkDevice device,
|
|
VkPipelineCache dstCache,
|
|
uint32_t srcCacheCount,
|
|
const VkPipelineCache* pSrcCaches)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkMergePipelineCaches");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkMergePipelineCaches_VkResult_return = (VkResult)0;
|
|
vkMergePipelineCaches_VkResult_return = vkEnc->vkMergePipelineCaches(device, dstCache, srcCacheCount, pSrcCaches);
|
|
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 = HostConnection::get()->vkEncoder();
|
|
VkResult vkCreateGraphicsPipelines_VkResult_return = (VkResult)0;
|
|
vkCreateGraphicsPipelines_VkResult_return = vkEnc->vkCreateGraphicsPipelines(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 = HostConnection::get()->vkEncoder();
|
|
VkResult vkCreateComputePipelines_VkResult_return = (VkResult)0;
|
|
vkCreateComputePipelines_VkResult_return = vkEnc->vkCreateComputePipelines(device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines);
|
|
return vkCreateComputePipelines_VkResult_return;
|
|
}
|
|
static void entry_vkDestroyPipeline(
|
|
VkDevice device,
|
|
VkPipeline pipeline,
|
|
const VkAllocationCallbacks* pAllocator)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkDestroyPipeline");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkDestroyPipeline(device, pipeline, pAllocator);
|
|
}
|
|
static VkResult entry_vkCreatePipelineLayout(
|
|
VkDevice device,
|
|
const VkPipelineLayoutCreateInfo* pCreateInfo,
|
|
const VkAllocationCallbacks* pAllocator,
|
|
VkPipelineLayout* pPipelineLayout)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCreatePipelineLayout");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkCreatePipelineLayout_VkResult_return = (VkResult)0;
|
|
vkCreatePipelineLayout_VkResult_return = vkEnc->vkCreatePipelineLayout(device, pCreateInfo, pAllocator, pPipelineLayout);
|
|
return vkCreatePipelineLayout_VkResult_return;
|
|
}
|
|
static void entry_vkDestroyPipelineLayout(
|
|
VkDevice device,
|
|
VkPipelineLayout pipelineLayout,
|
|
const VkAllocationCallbacks* pAllocator)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkDestroyPipelineLayout");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkDestroyPipelineLayout(device, pipelineLayout, pAllocator);
|
|
}
|
|
static VkResult entry_vkCreateSampler(
|
|
VkDevice device,
|
|
const VkSamplerCreateInfo* pCreateInfo,
|
|
const VkAllocationCallbacks* pAllocator,
|
|
VkSampler* pSampler)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCreateSampler");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
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 = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkDestroySampler(device, sampler, pAllocator);
|
|
}
|
|
static VkResult entry_vkCreateDescriptorSetLayout(
|
|
VkDevice device,
|
|
const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
|
|
const VkAllocationCallbacks* pAllocator,
|
|
VkDescriptorSetLayout* pSetLayout)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCreateDescriptorSetLayout");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
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 = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkDestroyDescriptorSetLayout(device, descriptorSetLayout, pAllocator);
|
|
}
|
|
static VkResult entry_vkCreateDescriptorPool(
|
|
VkDevice device,
|
|
const VkDescriptorPoolCreateInfo* pCreateInfo,
|
|
const VkAllocationCallbacks* pAllocator,
|
|
VkDescriptorPool* pDescriptorPool)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCreateDescriptorPool");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
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 = HostConnection::get()->vkEncoder();
|
|
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 = HostConnection::get()->vkEncoder();
|
|
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 = HostConnection::get()->vkEncoder();
|
|
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 = HostConnection::get()->vkEncoder();
|
|
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 = HostConnection::get()->vkEncoder();
|
|
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 = HostConnection::get()->vkEncoder();
|
|
VkResult vkCreateFramebuffer_VkResult_return = (VkResult)0;
|
|
vkCreateFramebuffer_VkResult_return = vkEnc->vkCreateFramebuffer(device, pCreateInfo, pAllocator, pFramebuffer);
|
|
return vkCreateFramebuffer_VkResult_return;
|
|
}
|
|
static void entry_vkDestroyFramebuffer(
|
|
VkDevice device,
|
|
VkFramebuffer framebuffer,
|
|
const VkAllocationCallbacks* pAllocator)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkDestroyFramebuffer");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkDestroyFramebuffer(device, framebuffer, pAllocator);
|
|
}
|
|
static VkResult entry_vkCreateRenderPass(
|
|
VkDevice device,
|
|
const VkRenderPassCreateInfo* pCreateInfo,
|
|
const VkAllocationCallbacks* pAllocator,
|
|
VkRenderPass* pRenderPass)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCreateRenderPass");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkCreateRenderPass_VkResult_return = (VkResult)0;
|
|
vkCreateRenderPass_VkResult_return = vkEnc->vkCreateRenderPass(device, pCreateInfo, pAllocator, pRenderPass);
|
|
return vkCreateRenderPass_VkResult_return;
|
|
}
|
|
static void entry_vkDestroyRenderPass(
|
|
VkDevice device,
|
|
VkRenderPass renderPass,
|
|
const VkAllocationCallbacks* pAllocator)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkDestroyRenderPass");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkDestroyRenderPass(device, renderPass, pAllocator);
|
|
}
|
|
static void entry_vkGetRenderAreaGranularity(
|
|
VkDevice device,
|
|
VkRenderPass renderPass,
|
|
VkExtent2D* pGranularity)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetRenderAreaGranularity");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkGetRenderAreaGranularity(device, renderPass, pGranularity);
|
|
}
|
|
static VkResult entry_vkCreateCommandPool(
|
|
VkDevice device,
|
|
const VkCommandPoolCreateInfo* pCreateInfo,
|
|
const VkAllocationCallbacks* pAllocator,
|
|
VkCommandPool* pCommandPool)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCreateCommandPool");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkCreateCommandPool_VkResult_return = (VkResult)0;
|
|
vkCreateCommandPool_VkResult_return = vkEnc->vkCreateCommandPool(device, pCreateInfo, pAllocator, pCommandPool);
|
|
return vkCreateCommandPool_VkResult_return;
|
|
}
|
|
static void entry_vkDestroyCommandPool(
|
|
VkDevice device,
|
|
VkCommandPool commandPool,
|
|
const VkAllocationCallbacks* pAllocator)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkDestroyCommandPool");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkDestroyCommandPool(device, commandPool, pAllocator);
|
|
}
|
|
static VkResult entry_vkResetCommandPool(
|
|
VkDevice device,
|
|
VkCommandPool commandPool,
|
|
VkCommandPoolResetFlags flags)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkResetCommandPool");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkResetCommandPool_VkResult_return = (VkResult)0;
|
|
vkResetCommandPool_VkResult_return = vkEnc->vkResetCommandPool(device, commandPool, flags);
|
|
return vkResetCommandPool_VkResult_return;
|
|
}
|
|
static VkResult entry_vkAllocateCommandBuffers(
|
|
VkDevice device,
|
|
const VkCommandBufferAllocateInfo* pAllocateInfo,
|
|
VkCommandBuffer* pCommandBuffers)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkAllocateCommandBuffers");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkAllocateCommandBuffers_VkResult_return = (VkResult)0;
|
|
vkAllocateCommandBuffers_VkResult_return = vkEnc->vkAllocateCommandBuffers(device, pAllocateInfo, 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 = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkFreeCommandBuffers(device, commandPool, commandBufferCount, pCommandBuffers);
|
|
}
|
|
static VkResult entry_vkBeginCommandBuffer(
|
|
VkCommandBuffer commandBuffer,
|
|
const VkCommandBufferBeginInfo* pBeginInfo)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkBeginCommandBuffer");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
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 = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
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 = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
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 = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkCmdBindPipeline(commandBuffer, pipelineBindPoint, pipeline);
|
|
}
|
|
static void entry_vkCmdSetViewport(
|
|
VkCommandBuffer commandBuffer,
|
|
uint32_t firstViewport,
|
|
uint32_t viewportCount,
|
|
const VkViewport* pViewports)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCmdSetViewport");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkCmdSetViewport(commandBuffer, firstViewport, viewportCount, pViewports);
|
|
}
|
|
static void entry_vkCmdSetScissor(
|
|
VkCommandBuffer commandBuffer,
|
|
uint32_t firstScissor,
|
|
uint32_t scissorCount,
|
|
const VkRect2D* pScissors)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCmdSetScissor");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkCmdSetScissor(commandBuffer, firstScissor, scissorCount, pScissors);
|
|
}
|
|
static void entry_vkCmdSetLineWidth(
|
|
VkCommandBuffer commandBuffer,
|
|
float lineWidth)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCmdSetLineWidth");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkCmdSetLineWidth(commandBuffer, lineWidth);
|
|
}
|
|
static void entry_vkCmdSetDepthBias(
|
|
VkCommandBuffer commandBuffer,
|
|
float depthBiasConstantFactor,
|
|
float depthBiasClamp,
|
|
float depthBiasSlopeFactor)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCmdSetDepthBias");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkCmdSetDepthBias(commandBuffer, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor);
|
|
}
|
|
static void entry_vkCmdSetBlendConstants(
|
|
VkCommandBuffer commandBuffer,
|
|
const float blendConstants[4])
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCmdSetBlendConstants");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkCmdSetBlendConstants(commandBuffer, blendConstants);
|
|
}
|
|
static void entry_vkCmdSetDepthBounds(
|
|
VkCommandBuffer commandBuffer,
|
|
float minDepthBounds,
|
|
float maxDepthBounds)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCmdSetDepthBounds");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkCmdSetDepthBounds(commandBuffer, minDepthBounds, maxDepthBounds);
|
|
}
|
|
static void entry_vkCmdSetStencilCompareMask(
|
|
VkCommandBuffer commandBuffer,
|
|
VkStencilFaceFlags faceMask,
|
|
uint32_t compareMask)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCmdSetStencilCompareMask");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkCmdSetStencilCompareMask(commandBuffer, faceMask, compareMask);
|
|
}
|
|
static void entry_vkCmdSetStencilWriteMask(
|
|
VkCommandBuffer commandBuffer,
|
|
VkStencilFaceFlags faceMask,
|
|
uint32_t writeMask)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCmdSetStencilWriteMask");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkCmdSetStencilWriteMask(commandBuffer, faceMask, writeMask);
|
|
}
|
|
static void entry_vkCmdSetStencilReference(
|
|
VkCommandBuffer commandBuffer,
|
|
VkStencilFaceFlags faceMask,
|
|
uint32_t reference)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCmdSetStencilReference");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkCmdSetStencilReference(commandBuffer, faceMask, reference);
|
|
}
|
|
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 = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkCmdBindDescriptorSets(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 = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkCmdBindIndexBuffer(commandBuffer, buffer, offset, indexType);
|
|
}
|
|
static void entry_vkCmdBindVertexBuffers(
|
|
VkCommandBuffer commandBuffer,
|
|
uint32_t firstBinding,
|
|
uint32_t bindingCount,
|
|
const VkBuffer* pBuffers,
|
|
const VkDeviceSize* pOffsets)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCmdBindVertexBuffers");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkCmdBindVertexBuffers(commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets);
|
|
}
|
|
static void entry_vkCmdDraw(
|
|
VkCommandBuffer commandBuffer,
|
|
uint32_t vertexCount,
|
|
uint32_t instanceCount,
|
|
uint32_t firstVertex,
|
|
uint32_t firstInstance)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCmdDraw");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkCmdDraw(commandBuffer, vertexCount, instanceCount, firstVertex, firstInstance);
|
|
}
|
|
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 = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkCmdDrawIndexed(commandBuffer, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance);
|
|
}
|
|
static void entry_vkCmdDrawIndirect(
|
|
VkCommandBuffer commandBuffer,
|
|
VkBuffer buffer,
|
|
VkDeviceSize offset,
|
|
uint32_t drawCount,
|
|
uint32_t stride)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCmdDrawIndirect");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkCmdDrawIndirect(commandBuffer, buffer, offset, drawCount, stride);
|
|
}
|
|
static void entry_vkCmdDrawIndexedIndirect(
|
|
VkCommandBuffer commandBuffer,
|
|
VkBuffer buffer,
|
|
VkDeviceSize offset,
|
|
uint32_t drawCount,
|
|
uint32_t stride)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirect");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkCmdDrawIndexedIndirect(commandBuffer, buffer, offset, drawCount, stride);
|
|
}
|
|
static void entry_vkCmdDispatch(
|
|
VkCommandBuffer commandBuffer,
|
|
uint32_t groupCountX,
|
|
uint32_t groupCountY,
|
|
uint32_t groupCountZ)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCmdDispatch");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkCmdDispatch(commandBuffer, groupCountX, groupCountY, groupCountZ);
|
|
}
|
|
static void entry_vkCmdDispatchIndirect(
|
|
VkCommandBuffer commandBuffer,
|
|
VkBuffer buffer,
|
|
VkDeviceSize offset)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCmdDispatchIndirect");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkCmdDispatchIndirect(commandBuffer, buffer, offset);
|
|
}
|
|
static void entry_vkCmdCopyBuffer(
|
|
VkCommandBuffer commandBuffer,
|
|
VkBuffer srcBuffer,
|
|
VkBuffer dstBuffer,
|
|
uint32_t regionCount,
|
|
const VkBufferCopy* pRegions)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCmdCopyBuffer");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkCmdCopyBuffer(commandBuffer, srcBuffer, dstBuffer, regionCount, pRegions);
|
|
}
|
|
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 = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkCmdCopyImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions);
|
|
}
|
|
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 = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkCmdBlitImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions, filter);
|
|
}
|
|
static void entry_vkCmdCopyBufferToImage(
|
|
VkCommandBuffer commandBuffer,
|
|
VkBuffer srcBuffer,
|
|
VkImage dstImage,
|
|
VkImageLayout dstImageLayout,
|
|
uint32_t regionCount,
|
|
const VkBufferImageCopy* pRegions)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCmdCopyBufferToImage");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkCmdCopyBufferToImage(commandBuffer, srcBuffer, dstImage, dstImageLayout, regionCount, pRegions);
|
|
}
|
|
static void entry_vkCmdCopyImageToBuffer(
|
|
VkCommandBuffer commandBuffer,
|
|
VkImage srcImage,
|
|
VkImageLayout srcImageLayout,
|
|
VkBuffer dstBuffer,
|
|
uint32_t regionCount,
|
|
const VkBufferImageCopy* pRegions)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCmdCopyImageToBuffer");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkCmdCopyImageToBuffer(commandBuffer, srcImage, srcImageLayout, dstBuffer, regionCount, pRegions);
|
|
}
|
|
static void entry_vkCmdUpdateBuffer(
|
|
VkCommandBuffer commandBuffer,
|
|
VkBuffer dstBuffer,
|
|
VkDeviceSize dstOffset,
|
|
VkDeviceSize dataSize,
|
|
const void* pData)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCmdUpdateBuffer");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkCmdUpdateBuffer(commandBuffer, dstBuffer, dstOffset, dataSize, pData);
|
|
}
|
|
static void entry_vkCmdFillBuffer(
|
|
VkCommandBuffer commandBuffer,
|
|
VkBuffer dstBuffer,
|
|
VkDeviceSize dstOffset,
|
|
VkDeviceSize size,
|
|
uint32_t data)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCmdFillBuffer");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkCmdFillBuffer(commandBuffer, dstBuffer, dstOffset, size, data);
|
|
}
|
|
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 = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkCmdClearColorImage(commandBuffer, image, imageLayout, pColor, rangeCount, pRanges);
|
|
}
|
|
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 = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkCmdClearDepthStencilImage(commandBuffer, image, imageLayout, pDepthStencil, rangeCount, pRanges);
|
|
}
|
|
static void entry_vkCmdClearAttachments(
|
|
VkCommandBuffer commandBuffer,
|
|
uint32_t attachmentCount,
|
|
const VkClearAttachment* pAttachments,
|
|
uint32_t rectCount,
|
|
const VkClearRect* pRects)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCmdClearAttachments");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkCmdClearAttachments(commandBuffer, attachmentCount, pAttachments, rectCount, pRects);
|
|
}
|
|
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 = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkCmdResolveImage(commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions);
|
|
}
|
|
static void entry_vkCmdSetEvent(
|
|
VkCommandBuffer commandBuffer,
|
|
VkEvent event,
|
|
VkPipelineStageFlags stageMask)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCmdSetEvent");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkCmdSetEvent(commandBuffer, event, stageMask);
|
|
}
|
|
static void entry_vkCmdResetEvent(
|
|
VkCommandBuffer commandBuffer,
|
|
VkEvent event,
|
|
VkPipelineStageFlags stageMask)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCmdResetEvent");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkCmdResetEvent(commandBuffer, event, stageMask);
|
|
}
|
|
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 = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkCmdWaitEvents(commandBuffer, eventCount, pEvents, srcStageMask, dstStageMask, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers);
|
|
}
|
|
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 = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkCmdPipelineBarrier(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 = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkCmdBeginQuery(commandBuffer, queryPool, query, flags);
|
|
}
|
|
static void entry_vkCmdEndQuery(
|
|
VkCommandBuffer commandBuffer,
|
|
VkQueryPool queryPool,
|
|
uint32_t query)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCmdEndQuery");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkCmdEndQuery(commandBuffer, queryPool, query);
|
|
}
|
|
static void entry_vkCmdResetQueryPool(
|
|
VkCommandBuffer commandBuffer,
|
|
VkQueryPool queryPool,
|
|
uint32_t firstQuery,
|
|
uint32_t queryCount)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCmdResetQueryPool");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkCmdResetQueryPool(commandBuffer, queryPool, firstQuery, queryCount);
|
|
}
|
|
static void entry_vkCmdWriteTimestamp(
|
|
VkCommandBuffer commandBuffer,
|
|
VkPipelineStageFlagBits pipelineStage,
|
|
VkQueryPool queryPool,
|
|
uint32_t query)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCmdWriteTimestamp");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkCmdWriteTimestamp(commandBuffer, pipelineStage, queryPool, query);
|
|
}
|
|
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 = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkCmdCopyQueryPoolResults(commandBuffer, queryPool, firstQuery, queryCount, dstBuffer, dstOffset, stride, flags);
|
|
}
|
|
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 = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkCmdPushConstants(commandBuffer, layout, stageFlags, offset, size, pValues);
|
|
}
|
|
static void entry_vkCmdBeginRenderPass(
|
|
VkCommandBuffer commandBuffer,
|
|
const VkRenderPassBeginInfo* pRenderPassBegin,
|
|
VkSubpassContents contents)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCmdBeginRenderPass");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkCmdBeginRenderPass(commandBuffer, pRenderPassBegin, contents);
|
|
}
|
|
static void entry_vkCmdNextSubpass(
|
|
VkCommandBuffer commandBuffer,
|
|
VkSubpassContents contents)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCmdNextSubpass");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkCmdNextSubpass(commandBuffer, contents);
|
|
}
|
|
static void entry_vkCmdEndRenderPass(
|
|
VkCommandBuffer commandBuffer)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCmdEndRenderPass");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkCmdEndRenderPass(commandBuffer);
|
|
}
|
|
static void entry_vkCmdExecuteCommands(
|
|
VkCommandBuffer commandBuffer,
|
|
uint32_t commandBufferCount,
|
|
const VkCommandBuffer* pCommandBuffers)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCmdExecuteCommands");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkCmdExecuteCommands(commandBuffer, commandBufferCount, pCommandBuffers);
|
|
}
|
|
#endif
|
|
#ifdef VK_VERSION_1_1
|
|
static VkResult entry_vkEnumerateInstanceVersion(
|
|
uint32_t* pApiVersion)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkEnumerateInstanceVersion");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkEnumerateInstanceVersion_VkResult_return = (VkResult)0;
|
|
vkEnumerateInstanceVersion_VkResult_return = vkEnc->vkEnumerateInstanceVersion(pApiVersion);
|
|
return vkEnumerateInstanceVersion_VkResult_return;
|
|
}
|
|
static VkResult entry_vkBindBufferMemory2(
|
|
VkDevice device,
|
|
uint32_t bindInfoCount,
|
|
const VkBindBufferMemoryInfo* pBindInfos)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkBindBufferMemory2");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
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 = HostConnection::get()->vkEncoder();
|
|
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 = HostConnection::get()->vkEncoder();
|
|
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 = HostConnection::get()->vkEncoder();
|
|
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 = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkGetDeviceGroupPeerMemoryFeatures(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures);
|
|
}
|
|
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 = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkGetDeviceGroupPeerMemoryFeatures(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures);
|
|
}
|
|
static void entry_vkCmdSetDeviceMask(
|
|
VkCommandBuffer commandBuffer,
|
|
uint32_t deviceMask)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCmdSetDeviceMask");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkCmdSetDeviceMask(commandBuffer, deviceMask);
|
|
}
|
|
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 = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkCmdDispatchBase(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ);
|
|
}
|
|
static VkResult entry_vkEnumeratePhysicalDeviceGroups(
|
|
VkInstance instance,
|
|
uint32_t* pPhysicalDeviceGroupCount,
|
|
VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkEnumeratePhysicalDeviceGroups");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkEnumeratePhysicalDeviceGroups_VkResult_return = (VkResult)0;
|
|
vkEnumeratePhysicalDeviceGroups_VkResult_return = vkEnc->vkEnumeratePhysicalDeviceGroups(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties);
|
|
return vkEnumeratePhysicalDeviceGroups_VkResult_return;
|
|
}
|
|
static void entry_vkGetImageMemoryRequirements2(
|
|
VkDevice device,
|
|
const VkImageMemoryRequirementsInfo2* pInfo,
|
|
VkMemoryRequirements2* pMemoryRequirements)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetImageMemoryRequirements2");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
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 = HostConnection::get()->vkEncoder();
|
|
resources->on_vkGetImageMemoryRequirements2(vkEnc, device, pInfo, pMemoryRequirements);
|
|
}
|
|
static void entry_vkGetBufferMemoryRequirements2(
|
|
VkDevice device,
|
|
const VkBufferMemoryRequirementsInfo2* pInfo,
|
|
VkMemoryRequirements2* pMemoryRequirements)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetBufferMemoryRequirements2");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
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 = HostConnection::get()->vkEncoder();
|
|
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 = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkGetImageSparseMemoryRequirements2(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements);
|
|
}
|
|
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 = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkGetImageSparseMemoryRequirements2(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements);
|
|
}
|
|
static void entry_vkGetPhysicalDeviceFeatures2(
|
|
VkPhysicalDevice physicalDevice,
|
|
VkPhysicalDeviceFeatures2* pFeatures)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFeatures2");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkGetPhysicalDeviceFeatures2(physicalDevice, pFeatures);
|
|
}
|
|
static void entry_vkGetPhysicalDeviceProperties2(
|
|
VkPhysicalDevice physicalDevice,
|
|
VkPhysicalDeviceProperties2* pProperties)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetPhysicalDeviceProperties2");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkGetPhysicalDeviceProperties2(physicalDevice, pProperties);
|
|
}
|
|
static void entry_vkGetPhysicalDeviceFormatProperties2(
|
|
VkPhysicalDevice physicalDevice,
|
|
VkFormat format,
|
|
VkFormatProperties2* pFormatProperties)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFormatProperties2");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkGetPhysicalDeviceFormatProperties2(physicalDevice, format, pFormatProperties);
|
|
}
|
|
static VkResult entry_vkGetPhysicalDeviceImageFormatProperties2(
|
|
VkPhysicalDevice physicalDevice,
|
|
const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
|
|
VkImageFormatProperties2* pImageFormatProperties)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetPhysicalDeviceImageFormatProperties2");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
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 = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkGetPhysicalDeviceQueueFamilyProperties2(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties);
|
|
}
|
|
static void entry_vkGetPhysicalDeviceMemoryProperties2(
|
|
VkPhysicalDevice physicalDevice,
|
|
VkPhysicalDeviceMemoryProperties2* pMemoryProperties)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMemoryProperties2");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkGetPhysicalDeviceMemoryProperties2(physicalDevice, pMemoryProperties);
|
|
}
|
|
static void entry_vkGetPhysicalDeviceSparseImageFormatProperties2(
|
|
VkPhysicalDevice physicalDevice,
|
|
const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
|
|
uint32_t* pPropertyCount,
|
|
VkSparseImageFormatProperties2* pProperties)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSparseImageFormatProperties2");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkGetPhysicalDeviceSparseImageFormatProperties2(physicalDevice, pFormatInfo, pPropertyCount, pProperties);
|
|
}
|
|
static void entry_vkTrimCommandPool(
|
|
VkDevice device,
|
|
VkCommandPool commandPool,
|
|
VkCommandPoolTrimFlags flags)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkTrimCommandPool");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkTrimCommandPool(device, commandPool, flags);
|
|
}
|
|
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 = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkTrimCommandPool(device, commandPool, flags);
|
|
}
|
|
static void entry_vkGetDeviceQueue2(
|
|
VkDevice device,
|
|
const VkDeviceQueueInfo2* pQueueInfo,
|
|
VkQueue* pQueue)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetDeviceQueue2");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkGetDeviceQueue2(device, pQueueInfo, pQueue);
|
|
}
|
|
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 = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkGetDeviceQueue2(device, pQueueInfo, pQueue);
|
|
}
|
|
static VkResult entry_vkCreateSamplerYcbcrConversion(
|
|
VkDevice device,
|
|
const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
|
|
const VkAllocationCallbacks* pAllocator,
|
|
VkSamplerYcbcrConversion* pYcbcrConversion)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCreateSamplerYcbcrConversion");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
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 = HostConnection::get()->vkEncoder();
|
|
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 = HostConnection::get()->vkEncoder();
|
|
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 = HostConnection::get()->vkEncoder();
|
|
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 = HostConnection::get()->vkEncoder();
|
|
VkResult vkCreateDescriptorUpdateTemplate_VkResult_return = (VkResult)0;
|
|
vkCreateDescriptorUpdateTemplate_VkResult_return = vkEnc->vkCreateDescriptorUpdateTemplate(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate);
|
|
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 = HostConnection::get()->vkEncoder();
|
|
VkResult vkCreateDescriptorUpdateTemplate_VkResult_return = (VkResult)0;
|
|
vkCreateDescriptorUpdateTemplate_VkResult_return = vkEnc->vkCreateDescriptorUpdateTemplate(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate);
|
|
return vkCreateDescriptorUpdateTemplate_VkResult_return;
|
|
}
|
|
static void entry_vkDestroyDescriptorUpdateTemplate(
|
|
VkDevice device,
|
|
VkDescriptorUpdateTemplate descriptorUpdateTemplate,
|
|
const VkAllocationCallbacks* pAllocator)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkDestroyDescriptorUpdateTemplate");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkDestroyDescriptorUpdateTemplate(device, descriptorUpdateTemplate, pAllocator);
|
|
}
|
|
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 = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkDestroyDescriptorUpdateTemplate(device, descriptorUpdateTemplate, pAllocator);
|
|
}
|
|
static void entry_vkUpdateDescriptorSetWithTemplate(
|
|
VkDevice device,
|
|
VkDescriptorSet descriptorSet,
|
|
VkDescriptorUpdateTemplate descriptorUpdateTemplate,
|
|
const void* pData)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplate");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
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 = HostConnection::get()->vkEncoder();
|
|
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 = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkGetPhysicalDeviceExternalBufferProperties(physicalDevice, pExternalBufferInfo, pExternalBufferProperties);
|
|
}
|
|
static void entry_vkGetPhysicalDeviceExternalFenceProperties(
|
|
VkPhysicalDevice physicalDevice,
|
|
const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
|
|
VkExternalFenceProperties* pExternalFenceProperties)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalFenceProperties");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
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 = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkGetPhysicalDeviceExternalSemaphoreProperties(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties);
|
|
}
|
|
static void entry_vkGetDescriptorSetLayoutSupport(
|
|
VkDevice device,
|
|
const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
|
|
VkDescriptorSetLayoutSupport* pSupport)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetDescriptorSetLayoutSupport");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkGetDescriptorSetLayoutSupport(device, pCreateInfo, pSupport);
|
|
}
|
|
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 = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkGetDescriptorSetLayoutSupport(device, pCreateInfo, pSupport);
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_surface
|
|
static void entry_vkDestroySurfaceKHR(
|
|
VkInstance instance,
|
|
VkSurfaceKHR surface,
|
|
const VkAllocationCallbacks* pAllocator)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkDestroySurfaceKHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkDestroySurfaceKHR(instance, surface, pAllocator);
|
|
}
|
|
static VkResult entry_vkGetPhysicalDeviceSurfaceSupportKHR(
|
|
VkPhysicalDevice physicalDevice,
|
|
uint32_t queueFamilyIndex,
|
|
VkSurfaceKHR surface,
|
|
VkBool32* pSupported)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceSupportKHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkGetPhysicalDeviceSurfaceSupportKHR_VkResult_return = (VkResult)0;
|
|
vkGetPhysicalDeviceSurfaceSupportKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceSupportKHR(physicalDevice, queueFamilyIndex, surface, pSupported);
|
|
return vkGetPhysicalDeviceSurfaceSupportKHR_VkResult_return;
|
|
}
|
|
static VkResult entry_vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
|
|
VkPhysicalDevice physicalDevice,
|
|
VkSurfaceKHR surface,
|
|
VkSurfaceCapabilitiesKHR* pSurfaceCapabilities)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceCapabilitiesKHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR_VkResult_return = (VkResult)0;
|
|
vkGetPhysicalDeviceSurfaceCapabilitiesKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceCapabilitiesKHR(physicalDevice, surface, pSurfaceCapabilities);
|
|
return vkGetPhysicalDeviceSurfaceCapabilitiesKHR_VkResult_return;
|
|
}
|
|
static VkResult entry_vkGetPhysicalDeviceSurfaceFormatsKHR(
|
|
VkPhysicalDevice physicalDevice,
|
|
VkSurfaceKHR surface,
|
|
uint32_t* pSurfaceFormatCount,
|
|
VkSurfaceFormatKHR* pSurfaceFormats)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceFormatsKHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkGetPhysicalDeviceSurfaceFormatsKHR_VkResult_return = (VkResult)0;
|
|
vkGetPhysicalDeviceSurfaceFormatsKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceFormatsKHR(physicalDevice, surface, pSurfaceFormatCount, pSurfaceFormats);
|
|
return vkGetPhysicalDeviceSurfaceFormatsKHR_VkResult_return;
|
|
}
|
|
static VkResult entry_vkGetPhysicalDeviceSurfacePresentModesKHR(
|
|
VkPhysicalDevice physicalDevice,
|
|
VkSurfaceKHR surface,
|
|
uint32_t* pPresentModeCount,
|
|
VkPresentModeKHR* pPresentModes)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfacePresentModesKHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkGetPhysicalDeviceSurfacePresentModesKHR_VkResult_return = (VkResult)0;
|
|
vkGetPhysicalDeviceSurfacePresentModesKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfacePresentModesKHR(physicalDevice, surface, pPresentModeCount, pPresentModes);
|
|
return vkGetPhysicalDeviceSurfacePresentModesKHR_VkResult_return;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_swapchain
|
|
static VkResult entry_vkCreateSwapchainKHR(
|
|
VkDevice device,
|
|
const VkSwapchainCreateInfoKHR* pCreateInfo,
|
|
const VkAllocationCallbacks* pAllocator,
|
|
VkSwapchainKHR* pSwapchain)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCreateSwapchainKHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkCreateSwapchainKHR_VkResult_return = (VkResult)0;
|
|
vkCreateSwapchainKHR_VkResult_return = vkEnc->vkCreateSwapchainKHR(device, pCreateInfo, pAllocator, pSwapchain);
|
|
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 = HostConnection::get()->vkEncoder();
|
|
VkResult vkCreateSwapchainKHR_VkResult_return = (VkResult)0;
|
|
vkCreateSwapchainKHR_VkResult_return = vkEnc->vkCreateSwapchainKHR(device, pCreateInfo, pAllocator, pSwapchain);
|
|
return vkCreateSwapchainKHR_VkResult_return;
|
|
}
|
|
static void entry_vkDestroySwapchainKHR(
|
|
VkDevice device,
|
|
VkSwapchainKHR swapchain,
|
|
const VkAllocationCallbacks* pAllocator)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkDestroySwapchainKHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkDestroySwapchainKHR(device, swapchain, pAllocator);
|
|
}
|
|
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 = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkDestroySwapchainKHR(device, swapchain, pAllocator);
|
|
}
|
|
static VkResult entry_vkGetSwapchainImagesKHR(
|
|
VkDevice device,
|
|
VkSwapchainKHR swapchain,
|
|
uint32_t* pSwapchainImageCount,
|
|
VkImage* pSwapchainImages)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetSwapchainImagesKHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkGetSwapchainImagesKHR_VkResult_return = (VkResult)0;
|
|
vkGetSwapchainImagesKHR_VkResult_return = vkEnc->vkGetSwapchainImagesKHR(device, swapchain, pSwapchainImageCount, pSwapchainImages);
|
|
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 = HostConnection::get()->vkEncoder();
|
|
VkResult vkGetSwapchainImagesKHR_VkResult_return = (VkResult)0;
|
|
vkGetSwapchainImagesKHR_VkResult_return = vkEnc->vkGetSwapchainImagesKHR(device, swapchain, pSwapchainImageCount, pSwapchainImages);
|
|
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 = HostConnection::get()->vkEncoder();
|
|
VkResult vkAcquireNextImageKHR_VkResult_return = (VkResult)0;
|
|
vkAcquireNextImageKHR_VkResult_return = vkEnc->vkAcquireNextImageKHR(device, swapchain, timeout, semaphore, fence, pImageIndex);
|
|
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 = HostConnection::get()->vkEncoder();
|
|
VkResult vkAcquireNextImageKHR_VkResult_return = (VkResult)0;
|
|
vkAcquireNextImageKHR_VkResult_return = vkEnc->vkAcquireNextImageKHR(device, swapchain, timeout, semaphore, fence, pImageIndex);
|
|
return vkAcquireNextImageKHR_VkResult_return;
|
|
}
|
|
static VkResult entry_vkQueuePresentKHR(
|
|
VkQueue queue,
|
|
const VkPresentInfoKHR* pPresentInfo)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkQueuePresentKHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkQueuePresentKHR_VkResult_return = (VkResult)0;
|
|
vkQueuePresentKHR_VkResult_return = vkEnc->vkQueuePresentKHR(queue, pPresentInfo);
|
|
return vkQueuePresentKHR_VkResult_return;
|
|
}
|
|
static VkResult entry_vkGetDeviceGroupPresentCapabilitiesKHR(
|
|
VkDevice device,
|
|
VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetDeviceGroupPresentCapabilitiesKHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkGetDeviceGroupPresentCapabilitiesKHR_VkResult_return = (VkResult)0;
|
|
vkGetDeviceGroupPresentCapabilitiesKHR_VkResult_return = vkEnc->vkGetDeviceGroupPresentCapabilitiesKHR(device, pDeviceGroupPresentCapabilities);
|
|
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 = HostConnection::get()->vkEncoder();
|
|
VkResult vkGetDeviceGroupPresentCapabilitiesKHR_VkResult_return = (VkResult)0;
|
|
vkGetDeviceGroupPresentCapabilitiesKHR_VkResult_return = vkEnc->vkGetDeviceGroupPresentCapabilitiesKHR(device, pDeviceGroupPresentCapabilities);
|
|
return vkGetDeviceGroupPresentCapabilitiesKHR_VkResult_return;
|
|
}
|
|
static VkResult entry_vkGetDeviceGroupSurfacePresentModesKHR(
|
|
VkDevice device,
|
|
VkSurfaceKHR surface,
|
|
VkDeviceGroupPresentModeFlagsKHR* pModes)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetDeviceGroupSurfacePresentModesKHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkGetDeviceGroupSurfacePresentModesKHR_VkResult_return = (VkResult)0;
|
|
vkGetDeviceGroupSurfacePresentModesKHR_VkResult_return = vkEnc->vkGetDeviceGroupSurfacePresentModesKHR(device, surface, pModes);
|
|
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 = HostConnection::get()->vkEncoder();
|
|
VkResult vkGetDeviceGroupSurfacePresentModesKHR_VkResult_return = (VkResult)0;
|
|
vkGetDeviceGroupSurfacePresentModesKHR_VkResult_return = vkEnc->vkGetDeviceGroupSurfacePresentModesKHR(device, surface, pModes);
|
|
return vkGetDeviceGroupSurfacePresentModesKHR_VkResult_return;
|
|
}
|
|
static VkResult entry_vkGetPhysicalDevicePresentRectanglesKHR(
|
|
VkPhysicalDevice physicalDevice,
|
|
VkSurfaceKHR surface,
|
|
uint32_t* pRectCount,
|
|
VkRect2D* pRects)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetPhysicalDevicePresentRectanglesKHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkGetPhysicalDevicePresentRectanglesKHR_VkResult_return = (VkResult)0;
|
|
vkGetPhysicalDevicePresentRectanglesKHR_VkResult_return = vkEnc->vkGetPhysicalDevicePresentRectanglesKHR(physicalDevice, surface, pRectCount, pRects);
|
|
return vkGetPhysicalDevicePresentRectanglesKHR_VkResult_return;
|
|
}
|
|
static VkResult entry_vkAcquireNextImage2KHR(
|
|
VkDevice device,
|
|
const VkAcquireNextImageInfoKHR* pAcquireInfo,
|
|
uint32_t* pImageIndex)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkAcquireNextImage2KHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkAcquireNextImage2KHR_VkResult_return = (VkResult)0;
|
|
vkAcquireNextImage2KHR_VkResult_return = vkEnc->vkAcquireNextImage2KHR(device, pAcquireInfo, pImageIndex);
|
|
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 = HostConnection::get()->vkEncoder();
|
|
VkResult vkAcquireNextImage2KHR_VkResult_return = (VkResult)0;
|
|
vkAcquireNextImage2KHR_VkResult_return = vkEnc->vkAcquireNextImage2KHR(device, pAcquireInfo, pImageIndex);
|
|
return vkAcquireNextImage2KHR_VkResult_return;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_display
|
|
static VkResult entry_vkGetPhysicalDeviceDisplayPropertiesKHR(
|
|
VkPhysicalDevice physicalDevice,
|
|
uint32_t* pPropertyCount,
|
|
VkDisplayPropertiesKHR* pProperties)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayPropertiesKHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkGetPhysicalDeviceDisplayPropertiesKHR_VkResult_return = (VkResult)0;
|
|
vkGetPhysicalDeviceDisplayPropertiesKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceDisplayPropertiesKHR(physicalDevice, pPropertyCount, pProperties);
|
|
return vkGetPhysicalDeviceDisplayPropertiesKHR_VkResult_return;
|
|
}
|
|
static VkResult entry_vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
|
|
VkPhysicalDevice physicalDevice,
|
|
uint32_t* pPropertyCount,
|
|
VkDisplayPlanePropertiesKHR* pProperties)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayPlanePropertiesKHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkGetPhysicalDeviceDisplayPlanePropertiesKHR_VkResult_return = (VkResult)0;
|
|
vkGetPhysicalDeviceDisplayPlanePropertiesKHR_VkResult_return = vkEnc->vkGetPhysicalDeviceDisplayPlanePropertiesKHR(physicalDevice, pPropertyCount, pProperties);
|
|
return vkGetPhysicalDeviceDisplayPlanePropertiesKHR_VkResult_return;
|
|
}
|
|
static VkResult entry_vkGetDisplayPlaneSupportedDisplaysKHR(
|
|
VkPhysicalDevice physicalDevice,
|
|
uint32_t planeIndex,
|
|
uint32_t* pDisplayCount,
|
|
VkDisplayKHR* pDisplays)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetDisplayPlaneSupportedDisplaysKHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkGetDisplayPlaneSupportedDisplaysKHR_VkResult_return = (VkResult)0;
|
|
vkGetDisplayPlaneSupportedDisplaysKHR_VkResult_return = vkEnc->vkGetDisplayPlaneSupportedDisplaysKHR(physicalDevice, planeIndex, pDisplayCount, pDisplays);
|
|
return vkGetDisplayPlaneSupportedDisplaysKHR_VkResult_return;
|
|
}
|
|
static VkResult entry_vkGetDisplayModePropertiesKHR(
|
|
VkPhysicalDevice physicalDevice,
|
|
VkDisplayKHR display,
|
|
uint32_t* pPropertyCount,
|
|
VkDisplayModePropertiesKHR* pProperties)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetDisplayModePropertiesKHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkGetDisplayModePropertiesKHR_VkResult_return = (VkResult)0;
|
|
vkGetDisplayModePropertiesKHR_VkResult_return = vkEnc->vkGetDisplayModePropertiesKHR(physicalDevice, display, pPropertyCount, pProperties);
|
|
return vkGetDisplayModePropertiesKHR_VkResult_return;
|
|
}
|
|
static VkResult entry_vkCreateDisplayModeKHR(
|
|
VkPhysicalDevice physicalDevice,
|
|
VkDisplayKHR display,
|
|
const VkDisplayModeCreateInfoKHR* pCreateInfo,
|
|
const VkAllocationCallbacks* pAllocator,
|
|
VkDisplayModeKHR* pMode)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCreateDisplayModeKHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkCreateDisplayModeKHR_VkResult_return = (VkResult)0;
|
|
vkCreateDisplayModeKHR_VkResult_return = vkEnc->vkCreateDisplayModeKHR(physicalDevice, display, pCreateInfo, pAllocator, pMode);
|
|
return vkCreateDisplayModeKHR_VkResult_return;
|
|
}
|
|
static VkResult entry_vkGetDisplayPlaneCapabilitiesKHR(
|
|
VkPhysicalDevice physicalDevice,
|
|
VkDisplayModeKHR mode,
|
|
uint32_t planeIndex,
|
|
VkDisplayPlaneCapabilitiesKHR* pCapabilities)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetDisplayPlaneCapabilitiesKHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkGetDisplayPlaneCapabilitiesKHR_VkResult_return = (VkResult)0;
|
|
vkGetDisplayPlaneCapabilitiesKHR_VkResult_return = vkEnc->vkGetDisplayPlaneCapabilitiesKHR(physicalDevice, mode, planeIndex, pCapabilities);
|
|
return vkGetDisplayPlaneCapabilitiesKHR_VkResult_return;
|
|
}
|
|
static VkResult entry_vkCreateDisplayPlaneSurfaceKHR(
|
|
VkInstance instance,
|
|
const VkDisplaySurfaceCreateInfoKHR* pCreateInfo,
|
|
const VkAllocationCallbacks* pAllocator,
|
|
VkSurfaceKHR* pSurface)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCreateDisplayPlaneSurfaceKHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkCreateDisplayPlaneSurfaceKHR_VkResult_return = (VkResult)0;
|
|
vkCreateDisplayPlaneSurfaceKHR_VkResult_return = vkEnc->vkCreateDisplayPlaneSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
|
|
return vkCreateDisplayPlaneSurfaceKHR_VkResult_return;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_display_swapchain
|
|
static VkResult entry_vkCreateSharedSwapchainsKHR(
|
|
VkDevice device,
|
|
uint32_t swapchainCount,
|
|
const VkSwapchainCreateInfoKHR* pCreateInfos,
|
|
const VkAllocationCallbacks* pAllocator,
|
|
VkSwapchainKHR* pSwapchains)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCreateSharedSwapchainsKHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkCreateSharedSwapchainsKHR_VkResult_return = (VkResult)0;
|
|
vkCreateSharedSwapchainsKHR_VkResult_return = vkEnc->vkCreateSharedSwapchainsKHR(device, swapchainCount, pCreateInfos, pAllocator, pSwapchains);
|
|
return vkCreateSharedSwapchainsKHR_VkResult_return;
|
|
}
|
|
static VkResult dynCheck_entry_vkCreateSharedSwapchainsKHR(
|
|
VkDevice device,
|
|
uint32_t swapchainCount,
|
|
const VkSwapchainCreateInfoKHR* pCreateInfos,
|
|
const VkAllocationCallbacks* pAllocator,
|
|
VkSwapchainKHR* pSwapchains)
|
|
{
|
|
auto resources = ResourceTracker::get();
|
|
if (!resources->hasDeviceExtension(device, "VK_KHR_display_swapchain"))
|
|
{
|
|
sOnInvalidDynamicallyCheckedCall("vkCreateSharedSwapchainsKHR", "VK_KHR_display_swapchain");
|
|
}
|
|
AEMU_SCOPED_TRACE("vkCreateSharedSwapchainsKHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkCreateSharedSwapchainsKHR_VkResult_return = (VkResult)0;
|
|
vkCreateSharedSwapchainsKHR_VkResult_return = vkEnc->vkCreateSharedSwapchainsKHR(device, swapchainCount, pCreateInfos, pAllocator, pSwapchains);
|
|
return vkCreateSharedSwapchainsKHR_VkResult_return;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_xlib_surface
|
|
static VkResult entry_vkCreateXlibSurfaceKHR(
|
|
VkInstance instance,
|
|
const VkXlibSurfaceCreateInfoKHR* pCreateInfo,
|
|
const VkAllocationCallbacks* pAllocator,
|
|
VkSurfaceKHR* pSurface)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCreateXlibSurfaceKHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkCreateXlibSurfaceKHR_VkResult_return = (VkResult)0;
|
|
vkCreateXlibSurfaceKHR_VkResult_return = vkEnc->vkCreateXlibSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
|
|
return vkCreateXlibSurfaceKHR_VkResult_return;
|
|
}
|
|
static VkBool32 entry_vkGetPhysicalDeviceXlibPresentationSupportKHR(
|
|
VkPhysicalDevice physicalDevice,
|
|
uint32_t queueFamilyIndex,
|
|
Display* dpy,
|
|
VisualID visualID)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetPhysicalDeviceXlibPresentationSupportKHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkBool32 vkGetPhysicalDeviceXlibPresentationSupportKHR_VkBool32_return = (VkBool32)0;
|
|
vkGetPhysicalDeviceXlibPresentationSupportKHR_VkBool32_return = vkEnc->vkGetPhysicalDeviceXlibPresentationSupportKHR(physicalDevice, queueFamilyIndex, dpy, visualID);
|
|
return vkGetPhysicalDeviceXlibPresentationSupportKHR_VkBool32_return;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_xcb_surface
|
|
static VkResult entry_vkCreateXcbSurfaceKHR(
|
|
VkInstance instance,
|
|
const VkXcbSurfaceCreateInfoKHR* pCreateInfo,
|
|
const VkAllocationCallbacks* pAllocator,
|
|
VkSurfaceKHR* pSurface)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCreateXcbSurfaceKHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkCreateXcbSurfaceKHR_VkResult_return = (VkResult)0;
|
|
vkCreateXcbSurfaceKHR_VkResult_return = vkEnc->vkCreateXcbSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
|
|
return vkCreateXcbSurfaceKHR_VkResult_return;
|
|
}
|
|
static VkBool32 entry_vkGetPhysicalDeviceXcbPresentationSupportKHR(
|
|
VkPhysicalDevice physicalDevice,
|
|
uint32_t queueFamilyIndex,
|
|
xcb_connection_t* connection,
|
|
xcb_visualid_t visual_id)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetPhysicalDeviceXcbPresentationSupportKHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkBool32 vkGetPhysicalDeviceXcbPresentationSupportKHR_VkBool32_return = (VkBool32)0;
|
|
vkGetPhysicalDeviceXcbPresentationSupportKHR_VkBool32_return = vkEnc->vkGetPhysicalDeviceXcbPresentationSupportKHR(physicalDevice, queueFamilyIndex, connection, visual_id);
|
|
return vkGetPhysicalDeviceXcbPresentationSupportKHR_VkBool32_return;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_wayland_surface
|
|
static VkResult entry_vkCreateWaylandSurfaceKHR(
|
|
VkInstance instance,
|
|
const VkWaylandSurfaceCreateInfoKHR* pCreateInfo,
|
|
const VkAllocationCallbacks* pAllocator,
|
|
VkSurfaceKHR* pSurface)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCreateWaylandSurfaceKHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkCreateWaylandSurfaceKHR_VkResult_return = (VkResult)0;
|
|
vkCreateWaylandSurfaceKHR_VkResult_return = vkEnc->vkCreateWaylandSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
|
|
return vkCreateWaylandSurfaceKHR_VkResult_return;
|
|
}
|
|
static VkBool32 entry_vkGetPhysicalDeviceWaylandPresentationSupportKHR(
|
|
VkPhysicalDevice physicalDevice,
|
|
uint32_t queueFamilyIndex,
|
|
wl_display* display)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetPhysicalDeviceWaylandPresentationSupportKHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkBool32 vkGetPhysicalDeviceWaylandPresentationSupportKHR_VkBool32_return = (VkBool32)0;
|
|
vkGetPhysicalDeviceWaylandPresentationSupportKHR_VkBool32_return = vkEnc->vkGetPhysicalDeviceWaylandPresentationSupportKHR(physicalDevice, queueFamilyIndex, display);
|
|
return vkGetPhysicalDeviceWaylandPresentationSupportKHR_VkBool32_return;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_mir_surface
|
|
static VkResult entry_vkCreateMirSurfaceKHR(
|
|
VkInstance instance,
|
|
const VkMirSurfaceCreateInfoKHR* pCreateInfo,
|
|
const VkAllocationCallbacks* pAllocator,
|
|
VkSurfaceKHR* pSurface)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCreateMirSurfaceKHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkCreateMirSurfaceKHR_VkResult_return = (VkResult)0;
|
|
vkCreateMirSurfaceKHR_VkResult_return = vkEnc->vkCreateMirSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
|
|
return vkCreateMirSurfaceKHR_VkResult_return;
|
|
}
|
|
static VkBool32 entry_vkGetPhysicalDeviceMirPresentationSupportKHR(
|
|
VkPhysicalDevice physicalDevice,
|
|
uint32_t queueFamilyIndex,
|
|
MirConnection* connection)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMirPresentationSupportKHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkBool32 vkGetPhysicalDeviceMirPresentationSupportKHR_VkBool32_return = (VkBool32)0;
|
|
vkGetPhysicalDeviceMirPresentationSupportKHR_VkBool32_return = vkEnc->vkGetPhysicalDeviceMirPresentationSupportKHR(physicalDevice, queueFamilyIndex, connection);
|
|
return vkGetPhysicalDeviceMirPresentationSupportKHR_VkBool32_return;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_android_surface
|
|
static VkResult entry_vkCreateAndroidSurfaceKHR(
|
|
VkInstance instance,
|
|
const VkAndroidSurfaceCreateInfoKHR* pCreateInfo,
|
|
const VkAllocationCallbacks* pAllocator,
|
|
VkSurfaceKHR* pSurface)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCreateAndroidSurfaceKHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkCreateAndroidSurfaceKHR_VkResult_return = (VkResult)0;
|
|
vkCreateAndroidSurfaceKHR_VkResult_return = vkEnc->vkCreateAndroidSurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
|
|
return vkCreateAndroidSurfaceKHR_VkResult_return;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_win32_surface
|
|
static VkResult entry_vkCreateWin32SurfaceKHR(
|
|
VkInstance instance,
|
|
const VkWin32SurfaceCreateInfoKHR* pCreateInfo,
|
|
const VkAllocationCallbacks* pAllocator,
|
|
VkSurfaceKHR* pSurface)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCreateWin32SurfaceKHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkCreateWin32SurfaceKHR_VkResult_return = (VkResult)0;
|
|
vkCreateWin32SurfaceKHR_VkResult_return = vkEnc->vkCreateWin32SurfaceKHR(instance, pCreateInfo, pAllocator, pSurface);
|
|
return vkCreateWin32SurfaceKHR_VkResult_return;
|
|
}
|
|
static VkBool32 entry_vkGetPhysicalDeviceWin32PresentationSupportKHR(
|
|
VkPhysicalDevice physicalDevice,
|
|
uint32_t queueFamilyIndex)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetPhysicalDeviceWin32PresentationSupportKHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkBool32 vkGetPhysicalDeviceWin32PresentationSupportKHR_VkBool32_return = (VkBool32)0;
|
|
vkGetPhysicalDeviceWin32PresentationSupportKHR_VkBool32_return = vkEnc->vkGetPhysicalDeviceWin32PresentationSupportKHR(physicalDevice, queueFamilyIndex);
|
|
return vkGetPhysicalDeviceWin32PresentationSupportKHR_VkBool32_return;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_sampler_mirror_clamp_to_edge
|
|
#endif
|
|
#ifdef VK_KHR_multiview
|
|
#endif
|
|
#ifdef VK_KHR_get_physical_device_properties2
|
|
static void entry_vkGetPhysicalDeviceFeatures2KHR(
|
|
VkPhysicalDevice physicalDevice,
|
|
VkPhysicalDeviceFeatures2* pFeatures)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFeatures2KHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkGetPhysicalDeviceFeatures2KHR(physicalDevice, pFeatures);
|
|
}
|
|
static void entry_vkGetPhysicalDeviceProperties2KHR(
|
|
VkPhysicalDevice physicalDevice,
|
|
VkPhysicalDeviceProperties2* pProperties)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetPhysicalDeviceProperties2KHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkGetPhysicalDeviceProperties2KHR(physicalDevice, pProperties);
|
|
}
|
|
static void entry_vkGetPhysicalDeviceFormatProperties2KHR(
|
|
VkPhysicalDevice physicalDevice,
|
|
VkFormat format,
|
|
VkFormatProperties2* pFormatProperties)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetPhysicalDeviceFormatProperties2KHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkGetPhysicalDeviceFormatProperties2KHR(physicalDevice, format, pFormatProperties);
|
|
}
|
|
static VkResult entry_vkGetPhysicalDeviceImageFormatProperties2KHR(
|
|
VkPhysicalDevice physicalDevice,
|
|
const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
|
|
VkImageFormatProperties2* pImageFormatProperties)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetPhysicalDeviceImageFormatProperties2KHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
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 = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkGetPhysicalDeviceQueueFamilyProperties2KHR(physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties);
|
|
}
|
|
static void entry_vkGetPhysicalDeviceMemoryProperties2KHR(
|
|
VkPhysicalDevice physicalDevice,
|
|
VkPhysicalDeviceMemoryProperties2* pMemoryProperties)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMemoryProperties2KHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkGetPhysicalDeviceMemoryProperties2KHR(physicalDevice, pMemoryProperties);
|
|
}
|
|
static void entry_vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
|
|
VkPhysicalDevice physicalDevice,
|
|
const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
|
|
uint32_t* pPropertyCount,
|
|
VkSparseImageFormatProperties2* pProperties)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSparseImageFormatProperties2KHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkGetPhysicalDeviceSparseImageFormatProperties2KHR(physicalDevice, pFormatInfo, pPropertyCount, pProperties);
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_device_group
|
|
static void entry_vkGetDeviceGroupPeerMemoryFeaturesKHR(
|
|
VkDevice device,
|
|
uint32_t heapIndex,
|
|
uint32_t localDeviceIndex,
|
|
uint32_t remoteDeviceIndex,
|
|
VkPeerMemoryFeatureFlags* pPeerMemoryFeatures)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetDeviceGroupPeerMemoryFeaturesKHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures);
|
|
}
|
|
static void dynCheck_entry_vkGetDeviceGroupPeerMemoryFeaturesKHR(
|
|
VkDevice device,
|
|
uint32_t heapIndex,
|
|
uint32_t localDeviceIndex,
|
|
uint32_t remoteDeviceIndex,
|
|
VkPeerMemoryFeatureFlags* pPeerMemoryFeatures)
|
|
{
|
|
auto resources = ResourceTracker::get();
|
|
if (!resources->hasDeviceExtension(device, "VK_KHR_device_group"))
|
|
{
|
|
sOnInvalidDynamicallyCheckedCall("vkGetDeviceGroupPeerMemoryFeaturesKHR", "VK_KHR_device_group");
|
|
}
|
|
AEMU_SCOPED_TRACE("vkGetDeviceGroupPeerMemoryFeaturesKHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkGetDeviceGroupPeerMemoryFeaturesKHR(device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures);
|
|
}
|
|
static void entry_vkCmdSetDeviceMaskKHR(
|
|
VkCommandBuffer commandBuffer,
|
|
uint32_t deviceMask)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCmdSetDeviceMaskKHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkCmdSetDeviceMaskKHR(commandBuffer, deviceMask);
|
|
}
|
|
static void entry_vkCmdDispatchBaseKHR(
|
|
VkCommandBuffer commandBuffer,
|
|
uint32_t baseGroupX,
|
|
uint32_t baseGroupY,
|
|
uint32_t baseGroupZ,
|
|
uint32_t groupCountX,
|
|
uint32_t groupCountY,
|
|
uint32_t groupCountZ)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCmdDispatchBaseKHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkCmdDispatchBaseKHR(commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ);
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_shader_draw_parameters
|
|
#endif
|
|
#ifdef VK_KHR_maintenance1
|
|
static void entry_vkTrimCommandPoolKHR(
|
|
VkDevice device,
|
|
VkCommandPool commandPool,
|
|
VkCommandPoolTrimFlags flags)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkTrimCommandPoolKHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkTrimCommandPoolKHR(device, commandPool, flags);
|
|
}
|
|
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 = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkTrimCommandPoolKHR(device, commandPool, flags);
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_device_group_creation
|
|
static VkResult entry_vkEnumeratePhysicalDeviceGroupsKHR(
|
|
VkInstance instance,
|
|
uint32_t* pPhysicalDeviceGroupCount,
|
|
VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkEnumeratePhysicalDeviceGroupsKHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkEnumeratePhysicalDeviceGroupsKHR_VkResult_return = (VkResult)0;
|
|
vkEnumeratePhysicalDeviceGroupsKHR_VkResult_return = vkEnc->vkEnumeratePhysicalDeviceGroupsKHR(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties);
|
|
return vkEnumeratePhysicalDeviceGroupsKHR_VkResult_return;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_external_memory_capabilities
|
|
static void entry_vkGetPhysicalDeviceExternalBufferPropertiesKHR(
|
|
VkPhysicalDevice physicalDevice,
|
|
const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
|
|
VkExternalBufferProperties* pExternalBufferProperties)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalBufferPropertiesKHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkGetPhysicalDeviceExternalBufferPropertiesKHR(physicalDevice, pExternalBufferInfo, pExternalBufferProperties);
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_external_memory
|
|
#endif
|
|
#ifdef VK_KHR_external_memory_win32
|
|
static VkResult entry_vkGetMemoryWin32HandleKHR(
|
|
VkDevice device,
|
|
const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo,
|
|
HANDLE* pHandle)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetMemoryWin32HandleKHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkGetMemoryWin32HandleKHR_VkResult_return = (VkResult)0;
|
|
vkGetMemoryWin32HandleKHR_VkResult_return = vkEnc->vkGetMemoryWin32HandleKHR(device, pGetWin32HandleInfo, pHandle);
|
|
return vkGetMemoryWin32HandleKHR_VkResult_return;
|
|
}
|
|
static VkResult dynCheck_entry_vkGetMemoryWin32HandleKHR(
|
|
VkDevice device,
|
|
const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo,
|
|
HANDLE* pHandle)
|
|
{
|
|
auto resources = ResourceTracker::get();
|
|
if (!resources->hasDeviceExtension(device, "VK_KHR_external_memory_win32"))
|
|
{
|
|
sOnInvalidDynamicallyCheckedCall("vkGetMemoryWin32HandleKHR", "VK_KHR_external_memory_win32");
|
|
}
|
|
AEMU_SCOPED_TRACE("vkGetMemoryWin32HandleKHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkGetMemoryWin32HandleKHR_VkResult_return = (VkResult)0;
|
|
vkGetMemoryWin32HandleKHR_VkResult_return = vkEnc->vkGetMemoryWin32HandleKHR(device, pGetWin32HandleInfo, pHandle);
|
|
return vkGetMemoryWin32HandleKHR_VkResult_return;
|
|
}
|
|
static VkResult entry_vkGetMemoryWin32HandlePropertiesKHR(
|
|
VkDevice device,
|
|
VkExternalMemoryHandleTypeFlagBits handleType,
|
|
HANDLE handle,
|
|
VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetMemoryWin32HandlePropertiesKHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkGetMemoryWin32HandlePropertiesKHR_VkResult_return = (VkResult)0;
|
|
vkGetMemoryWin32HandlePropertiesKHR_VkResult_return = vkEnc->vkGetMemoryWin32HandlePropertiesKHR(device, handleType, handle, pMemoryWin32HandleProperties);
|
|
return vkGetMemoryWin32HandlePropertiesKHR_VkResult_return;
|
|
}
|
|
static VkResult dynCheck_entry_vkGetMemoryWin32HandlePropertiesKHR(
|
|
VkDevice device,
|
|
VkExternalMemoryHandleTypeFlagBits handleType,
|
|
HANDLE handle,
|
|
VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties)
|
|
{
|
|
auto resources = ResourceTracker::get();
|
|
if (!resources->hasDeviceExtension(device, "VK_KHR_external_memory_win32"))
|
|
{
|
|
sOnInvalidDynamicallyCheckedCall("vkGetMemoryWin32HandlePropertiesKHR", "VK_KHR_external_memory_win32");
|
|
}
|
|
AEMU_SCOPED_TRACE("vkGetMemoryWin32HandlePropertiesKHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkGetMemoryWin32HandlePropertiesKHR_VkResult_return = (VkResult)0;
|
|
vkGetMemoryWin32HandlePropertiesKHR_VkResult_return = vkEnc->vkGetMemoryWin32HandlePropertiesKHR(device, handleType, handle, pMemoryWin32HandleProperties);
|
|
return vkGetMemoryWin32HandlePropertiesKHR_VkResult_return;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_external_memory_fd
|
|
static VkResult entry_vkGetMemoryFdKHR(
|
|
VkDevice device,
|
|
const VkMemoryGetFdInfoKHR* pGetFdInfo,
|
|
int* pFd)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetMemoryFdKHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkGetMemoryFdKHR_VkResult_return = (VkResult)0;
|
|
vkGetMemoryFdKHR_VkResult_return = vkEnc->vkGetMemoryFdKHR(device, pGetFdInfo, pFd);
|
|
return vkGetMemoryFdKHR_VkResult_return;
|
|
}
|
|
static VkResult dynCheck_entry_vkGetMemoryFdKHR(
|
|
VkDevice device,
|
|
const VkMemoryGetFdInfoKHR* pGetFdInfo,
|
|
int* pFd)
|
|
{
|
|
auto resources = ResourceTracker::get();
|
|
if (!resources->hasDeviceExtension(device, "VK_KHR_external_memory_fd"))
|
|
{
|
|
sOnInvalidDynamicallyCheckedCall("vkGetMemoryFdKHR", "VK_KHR_external_memory_fd");
|
|
}
|
|
AEMU_SCOPED_TRACE("vkGetMemoryFdKHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkGetMemoryFdKHR_VkResult_return = (VkResult)0;
|
|
vkGetMemoryFdKHR_VkResult_return = vkEnc->vkGetMemoryFdKHR(device, pGetFdInfo, pFd);
|
|
return vkGetMemoryFdKHR_VkResult_return;
|
|
}
|
|
static VkResult entry_vkGetMemoryFdPropertiesKHR(
|
|
VkDevice device,
|
|
VkExternalMemoryHandleTypeFlagBits handleType,
|
|
int fd,
|
|
VkMemoryFdPropertiesKHR* pMemoryFdProperties)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetMemoryFdPropertiesKHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkGetMemoryFdPropertiesKHR_VkResult_return = (VkResult)0;
|
|
vkGetMemoryFdPropertiesKHR_VkResult_return = vkEnc->vkGetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties);
|
|
return vkGetMemoryFdPropertiesKHR_VkResult_return;
|
|
}
|
|
static VkResult dynCheck_entry_vkGetMemoryFdPropertiesKHR(
|
|
VkDevice device,
|
|
VkExternalMemoryHandleTypeFlagBits handleType,
|
|
int fd,
|
|
VkMemoryFdPropertiesKHR* pMemoryFdProperties)
|
|
{
|
|
auto resources = ResourceTracker::get();
|
|
if (!resources->hasDeviceExtension(device, "VK_KHR_external_memory_fd"))
|
|
{
|
|
sOnInvalidDynamicallyCheckedCall("vkGetMemoryFdPropertiesKHR", "VK_KHR_external_memory_fd");
|
|
}
|
|
AEMU_SCOPED_TRACE("vkGetMemoryFdPropertiesKHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkGetMemoryFdPropertiesKHR_VkResult_return = (VkResult)0;
|
|
vkGetMemoryFdPropertiesKHR_VkResult_return = vkEnc->vkGetMemoryFdPropertiesKHR(device, handleType, fd, pMemoryFdProperties);
|
|
return vkGetMemoryFdPropertiesKHR_VkResult_return;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_win32_keyed_mutex
|
|
#endif
|
|
#ifdef VK_KHR_external_semaphore_capabilities
|
|
static void entry_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
|
|
VkPhysicalDevice physicalDevice,
|
|
const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
|
|
VkExternalSemaphoreProperties* pExternalSemaphoreProperties)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalSemaphorePropertiesKHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties);
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_external_semaphore
|
|
#endif
|
|
#ifdef VK_KHR_external_semaphore_win32
|
|
static VkResult entry_vkImportSemaphoreWin32HandleKHR(
|
|
VkDevice device,
|
|
const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkImportSemaphoreWin32HandleKHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkImportSemaphoreWin32HandleKHR_VkResult_return = (VkResult)0;
|
|
vkImportSemaphoreWin32HandleKHR_VkResult_return = vkEnc->vkImportSemaphoreWin32HandleKHR(device, pImportSemaphoreWin32HandleInfo);
|
|
return vkImportSemaphoreWin32HandleKHR_VkResult_return;
|
|
}
|
|
static VkResult dynCheck_entry_vkImportSemaphoreWin32HandleKHR(
|
|
VkDevice device,
|
|
const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo)
|
|
{
|
|
auto resources = ResourceTracker::get();
|
|
if (!resources->hasDeviceExtension(device, "VK_KHR_external_semaphore_win32"))
|
|
{
|
|
sOnInvalidDynamicallyCheckedCall("vkImportSemaphoreWin32HandleKHR", "VK_KHR_external_semaphore_win32");
|
|
}
|
|
AEMU_SCOPED_TRACE("vkImportSemaphoreWin32HandleKHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkImportSemaphoreWin32HandleKHR_VkResult_return = (VkResult)0;
|
|
vkImportSemaphoreWin32HandleKHR_VkResult_return = vkEnc->vkImportSemaphoreWin32HandleKHR(device, pImportSemaphoreWin32HandleInfo);
|
|
return vkImportSemaphoreWin32HandleKHR_VkResult_return;
|
|
}
|
|
static VkResult entry_vkGetSemaphoreWin32HandleKHR(
|
|
VkDevice device,
|
|
const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo,
|
|
HANDLE* pHandle)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetSemaphoreWin32HandleKHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkGetSemaphoreWin32HandleKHR_VkResult_return = (VkResult)0;
|
|
vkGetSemaphoreWin32HandleKHR_VkResult_return = vkEnc->vkGetSemaphoreWin32HandleKHR(device, pGetWin32HandleInfo, pHandle);
|
|
return vkGetSemaphoreWin32HandleKHR_VkResult_return;
|
|
}
|
|
static VkResult dynCheck_entry_vkGetSemaphoreWin32HandleKHR(
|
|
VkDevice device,
|
|
const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo,
|
|
HANDLE* pHandle)
|
|
{
|
|
auto resources = ResourceTracker::get();
|
|
if (!resources->hasDeviceExtension(device, "VK_KHR_external_semaphore_win32"))
|
|
{
|
|
sOnInvalidDynamicallyCheckedCall("vkGetSemaphoreWin32HandleKHR", "VK_KHR_external_semaphore_win32");
|
|
}
|
|
AEMU_SCOPED_TRACE("vkGetSemaphoreWin32HandleKHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkGetSemaphoreWin32HandleKHR_VkResult_return = (VkResult)0;
|
|
vkGetSemaphoreWin32HandleKHR_VkResult_return = vkEnc->vkGetSemaphoreWin32HandleKHR(device, pGetWin32HandleInfo, pHandle);
|
|
return vkGetSemaphoreWin32HandleKHR_VkResult_return;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_external_semaphore_fd
|
|
static VkResult entry_vkImportSemaphoreFdKHR(
|
|
VkDevice device,
|
|
const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkImportSemaphoreFdKHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
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 = HostConnection::get()->vkEncoder();
|
|
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 = HostConnection::get()->vkEncoder();
|
|
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 = HostConnection::get()->vkEncoder();
|
|
VkResult vkGetSemaphoreFdKHR_VkResult_return = (VkResult)0;
|
|
vkGetSemaphoreFdKHR_VkResult_return = resources->on_vkGetSemaphoreFdKHR(vkEnc, VK_SUCCESS, device, pGetFdInfo, pFd);
|
|
return vkGetSemaphoreFdKHR_VkResult_return;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_push_descriptor
|
|
static void entry_vkCmdPushDescriptorSetKHR(
|
|
VkCommandBuffer commandBuffer,
|
|
VkPipelineBindPoint pipelineBindPoint,
|
|
VkPipelineLayout layout,
|
|
uint32_t set,
|
|
uint32_t descriptorWriteCount,
|
|
const VkWriteDescriptorSet* pDescriptorWrites)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCmdPushDescriptorSetKHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkCmdPushDescriptorSetKHR(commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites);
|
|
}
|
|
static void entry_vkCmdPushDescriptorSetWithTemplateKHR(
|
|
VkCommandBuffer commandBuffer,
|
|
VkDescriptorUpdateTemplate descriptorUpdateTemplate,
|
|
VkPipelineLayout layout,
|
|
uint32_t set,
|
|
const void* pData)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCmdPushDescriptorSetWithTemplateKHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkCmdPushDescriptorSetWithTemplateKHR(commandBuffer, descriptorUpdateTemplate, layout, set, pData);
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_16bit_storage
|
|
#endif
|
|
#ifdef VK_KHR_incremental_present
|
|
#endif
|
|
#ifdef VK_KHR_descriptor_update_template
|
|
static VkResult entry_vkCreateDescriptorUpdateTemplateKHR(
|
|
VkDevice device,
|
|
const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
|
|
const VkAllocationCallbacks* pAllocator,
|
|
VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCreateDescriptorUpdateTemplateKHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkCreateDescriptorUpdateTemplateKHR_VkResult_return = (VkResult)0;
|
|
vkCreateDescriptorUpdateTemplateKHR_VkResult_return = vkEnc->vkCreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate);
|
|
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 = HostConnection::get()->vkEncoder();
|
|
VkResult vkCreateDescriptorUpdateTemplateKHR_VkResult_return = (VkResult)0;
|
|
vkCreateDescriptorUpdateTemplateKHR_VkResult_return = vkEnc->vkCreateDescriptorUpdateTemplateKHR(device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate);
|
|
return vkCreateDescriptorUpdateTemplateKHR_VkResult_return;
|
|
}
|
|
static void entry_vkDestroyDescriptorUpdateTemplateKHR(
|
|
VkDevice device,
|
|
VkDescriptorUpdateTemplate descriptorUpdateTemplate,
|
|
const VkAllocationCallbacks* pAllocator)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkDestroyDescriptorUpdateTemplateKHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkDestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator);
|
|
}
|
|
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 = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkDestroyDescriptorUpdateTemplateKHR(device, descriptorUpdateTemplate, pAllocator);
|
|
}
|
|
static void entry_vkUpdateDescriptorSetWithTemplateKHR(
|
|
VkDevice device,
|
|
VkDescriptorSet descriptorSet,
|
|
VkDescriptorUpdateTemplate descriptorUpdateTemplate,
|
|
const void* pData)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplateKHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkUpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData);
|
|
}
|
|
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 = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkUpdateDescriptorSetWithTemplateKHR(device, descriptorSet, descriptorUpdateTemplate, pData);
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_create_renderpass2
|
|
static VkResult entry_vkCreateRenderPass2KHR(
|
|
VkDevice device,
|
|
const VkRenderPassCreateInfo2KHR* pCreateInfo,
|
|
const VkAllocationCallbacks* pAllocator,
|
|
VkRenderPass* pRenderPass)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCreateRenderPass2KHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkCreateRenderPass2KHR_VkResult_return = (VkResult)0;
|
|
vkCreateRenderPass2KHR_VkResult_return = vkEnc->vkCreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass);
|
|
return vkCreateRenderPass2KHR_VkResult_return;
|
|
}
|
|
static VkResult dynCheck_entry_vkCreateRenderPass2KHR(
|
|
VkDevice device,
|
|
const VkRenderPassCreateInfo2KHR* 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 = HostConnection::get()->vkEncoder();
|
|
VkResult vkCreateRenderPass2KHR_VkResult_return = (VkResult)0;
|
|
vkCreateRenderPass2KHR_VkResult_return = vkEnc->vkCreateRenderPass2KHR(device, pCreateInfo, pAllocator, pRenderPass);
|
|
return vkCreateRenderPass2KHR_VkResult_return;
|
|
}
|
|
static void entry_vkCmdBeginRenderPass2KHR(
|
|
VkCommandBuffer commandBuffer,
|
|
const VkRenderPassBeginInfo* pRenderPassBegin,
|
|
const VkSubpassBeginInfoKHR* pSubpassBeginInfo)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCmdBeginRenderPass2KHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkCmdBeginRenderPass2KHR(commandBuffer, pRenderPassBegin, pSubpassBeginInfo);
|
|
}
|
|
static void entry_vkCmdNextSubpass2KHR(
|
|
VkCommandBuffer commandBuffer,
|
|
const VkSubpassBeginInfoKHR* pSubpassBeginInfo,
|
|
const VkSubpassEndInfoKHR* pSubpassEndInfo)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCmdNextSubpass2KHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkCmdNextSubpass2KHR(commandBuffer, pSubpassBeginInfo, pSubpassEndInfo);
|
|
}
|
|
static void entry_vkCmdEndRenderPass2KHR(
|
|
VkCommandBuffer commandBuffer,
|
|
const VkSubpassEndInfoKHR* pSubpassEndInfo)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCmdEndRenderPass2KHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkCmdEndRenderPass2KHR(commandBuffer, pSubpassEndInfo);
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_shared_presentable_image
|
|
static VkResult entry_vkGetSwapchainStatusKHR(
|
|
VkDevice device,
|
|
VkSwapchainKHR swapchain)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetSwapchainStatusKHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkGetSwapchainStatusKHR_VkResult_return = (VkResult)0;
|
|
vkGetSwapchainStatusKHR_VkResult_return = vkEnc->vkGetSwapchainStatusKHR(device, swapchain);
|
|
return vkGetSwapchainStatusKHR_VkResult_return;
|
|
}
|
|
static VkResult dynCheck_entry_vkGetSwapchainStatusKHR(
|
|
VkDevice device,
|
|
VkSwapchainKHR swapchain)
|
|
{
|
|
auto resources = ResourceTracker::get();
|
|
if (!resources->hasDeviceExtension(device, "VK_KHR_shared_presentable_image"))
|
|
{
|
|
sOnInvalidDynamicallyCheckedCall("vkGetSwapchainStatusKHR", "VK_KHR_shared_presentable_image");
|
|
}
|
|
AEMU_SCOPED_TRACE("vkGetSwapchainStatusKHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkGetSwapchainStatusKHR_VkResult_return = (VkResult)0;
|
|
vkGetSwapchainStatusKHR_VkResult_return = vkEnc->vkGetSwapchainStatusKHR(device, swapchain);
|
|
return vkGetSwapchainStatusKHR_VkResult_return;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_external_fence_capabilities
|
|
static void entry_vkGetPhysicalDeviceExternalFencePropertiesKHR(
|
|
VkPhysicalDevice physicalDevice,
|
|
const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
|
|
VkExternalFenceProperties* pExternalFenceProperties)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalFencePropertiesKHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
auto resources = ResourceTracker::get();
|
|
resources->on_vkGetPhysicalDeviceExternalFencePropertiesKHR(vkEnc, physicalDevice, pExternalFenceInfo, pExternalFenceProperties);
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_external_fence
|
|
#endif
|
|
#ifdef VK_KHR_external_fence_win32
|
|
static VkResult entry_vkImportFenceWin32HandleKHR(
|
|
VkDevice device,
|
|
const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkImportFenceWin32HandleKHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkImportFenceWin32HandleKHR_VkResult_return = (VkResult)0;
|
|
vkImportFenceWin32HandleKHR_VkResult_return = vkEnc->vkImportFenceWin32HandleKHR(device, pImportFenceWin32HandleInfo);
|
|
return vkImportFenceWin32HandleKHR_VkResult_return;
|
|
}
|
|
static VkResult dynCheck_entry_vkImportFenceWin32HandleKHR(
|
|
VkDevice device,
|
|
const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo)
|
|
{
|
|
auto resources = ResourceTracker::get();
|
|
if (!resources->hasDeviceExtension(device, "VK_KHR_external_fence_win32"))
|
|
{
|
|
sOnInvalidDynamicallyCheckedCall("vkImportFenceWin32HandleKHR", "VK_KHR_external_fence_win32");
|
|
}
|
|
AEMU_SCOPED_TRACE("vkImportFenceWin32HandleKHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkImportFenceWin32HandleKHR_VkResult_return = (VkResult)0;
|
|
vkImportFenceWin32HandleKHR_VkResult_return = vkEnc->vkImportFenceWin32HandleKHR(device, pImportFenceWin32HandleInfo);
|
|
return vkImportFenceWin32HandleKHR_VkResult_return;
|
|
}
|
|
static VkResult entry_vkGetFenceWin32HandleKHR(
|
|
VkDevice device,
|
|
const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo,
|
|
HANDLE* pHandle)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetFenceWin32HandleKHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkGetFenceWin32HandleKHR_VkResult_return = (VkResult)0;
|
|
vkGetFenceWin32HandleKHR_VkResult_return = vkEnc->vkGetFenceWin32HandleKHR(device, pGetWin32HandleInfo, pHandle);
|
|
return vkGetFenceWin32HandleKHR_VkResult_return;
|
|
}
|
|
static VkResult dynCheck_entry_vkGetFenceWin32HandleKHR(
|
|
VkDevice device,
|
|
const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo,
|
|
HANDLE* pHandle)
|
|
{
|
|
auto resources = ResourceTracker::get();
|
|
if (!resources->hasDeviceExtension(device, "VK_KHR_external_fence_win32"))
|
|
{
|
|
sOnInvalidDynamicallyCheckedCall("vkGetFenceWin32HandleKHR", "VK_KHR_external_fence_win32");
|
|
}
|
|
AEMU_SCOPED_TRACE("vkGetFenceWin32HandleKHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkGetFenceWin32HandleKHR_VkResult_return = (VkResult)0;
|
|
vkGetFenceWin32HandleKHR_VkResult_return = vkEnc->vkGetFenceWin32HandleKHR(device, pGetWin32HandleInfo, pHandle);
|
|
return vkGetFenceWin32HandleKHR_VkResult_return;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_external_fence_fd
|
|
static VkResult entry_vkImportFenceFdKHR(
|
|
VkDevice device,
|
|
const VkImportFenceFdInfoKHR* pImportFenceFdInfo)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkImportFenceFdKHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
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 = HostConnection::get()->vkEncoder();
|
|
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 = HostConnection::get()->vkEncoder();
|
|
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 = HostConnection::get()->vkEncoder();
|
|
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_get_surface_capabilities2
|
|
static VkResult entry_vkGetPhysicalDeviceSurfaceCapabilities2KHR(
|
|
VkPhysicalDevice physicalDevice,
|
|
const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
|
|
VkSurfaceCapabilities2KHR* pSurfaceCapabilities)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceCapabilities2KHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkGetPhysicalDeviceSurfaceCapabilities2KHR_VkResult_return = (VkResult)0;
|
|
vkGetPhysicalDeviceSurfaceCapabilities2KHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceCapabilities2KHR(physicalDevice, pSurfaceInfo, pSurfaceCapabilities);
|
|
return vkGetPhysicalDeviceSurfaceCapabilities2KHR_VkResult_return;
|
|
}
|
|
static VkResult entry_vkGetPhysicalDeviceSurfaceFormats2KHR(
|
|
VkPhysicalDevice physicalDevice,
|
|
const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
|
|
uint32_t* pSurfaceFormatCount,
|
|
VkSurfaceFormat2KHR* pSurfaceFormats)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceFormats2KHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkGetPhysicalDeviceSurfaceFormats2KHR_VkResult_return = (VkResult)0;
|
|
vkGetPhysicalDeviceSurfaceFormats2KHR_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceFormats2KHR(physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats);
|
|
return vkGetPhysicalDeviceSurfaceFormats2KHR_VkResult_return;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_variable_pointers
|
|
#endif
|
|
#ifdef VK_KHR_get_display_properties2
|
|
static VkResult entry_vkGetPhysicalDeviceDisplayProperties2KHR(
|
|
VkPhysicalDevice physicalDevice,
|
|
uint32_t* pPropertyCount,
|
|
VkDisplayProperties2KHR* pProperties)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayProperties2KHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkGetPhysicalDeviceDisplayProperties2KHR_VkResult_return = (VkResult)0;
|
|
vkGetPhysicalDeviceDisplayProperties2KHR_VkResult_return = vkEnc->vkGetPhysicalDeviceDisplayProperties2KHR(physicalDevice, pPropertyCount, pProperties);
|
|
return vkGetPhysicalDeviceDisplayProperties2KHR_VkResult_return;
|
|
}
|
|
static VkResult entry_vkGetPhysicalDeviceDisplayPlaneProperties2KHR(
|
|
VkPhysicalDevice physicalDevice,
|
|
uint32_t* pPropertyCount,
|
|
VkDisplayPlaneProperties2KHR* pProperties)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetPhysicalDeviceDisplayPlaneProperties2KHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkGetPhysicalDeviceDisplayPlaneProperties2KHR_VkResult_return = (VkResult)0;
|
|
vkGetPhysicalDeviceDisplayPlaneProperties2KHR_VkResult_return = vkEnc->vkGetPhysicalDeviceDisplayPlaneProperties2KHR(physicalDevice, pPropertyCount, pProperties);
|
|
return vkGetPhysicalDeviceDisplayPlaneProperties2KHR_VkResult_return;
|
|
}
|
|
static VkResult entry_vkGetDisplayModeProperties2KHR(
|
|
VkPhysicalDevice physicalDevice,
|
|
VkDisplayKHR display,
|
|
uint32_t* pPropertyCount,
|
|
VkDisplayModeProperties2KHR* pProperties)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetDisplayModeProperties2KHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkGetDisplayModeProperties2KHR_VkResult_return = (VkResult)0;
|
|
vkGetDisplayModeProperties2KHR_VkResult_return = vkEnc->vkGetDisplayModeProperties2KHR(physicalDevice, display, pPropertyCount, pProperties);
|
|
return vkGetDisplayModeProperties2KHR_VkResult_return;
|
|
}
|
|
static VkResult entry_vkGetDisplayPlaneCapabilities2KHR(
|
|
VkPhysicalDevice physicalDevice,
|
|
const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo,
|
|
VkDisplayPlaneCapabilities2KHR* pCapabilities)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetDisplayPlaneCapabilities2KHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkGetDisplayPlaneCapabilities2KHR_VkResult_return = (VkResult)0;
|
|
vkGetDisplayPlaneCapabilities2KHR_VkResult_return = vkEnc->vkGetDisplayPlaneCapabilities2KHR(physicalDevice, pDisplayPlaneInfo, pCapabilities);
|
|
return vkGetDisplayPlaneCapabilities2KHR_VkResult_return;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_dedicated_allocation
|
|
#endif
|
|
#ifdef VK_KHR_storage_buffer_storage_class
|
|
#endif
|
|
#ifdef VK_KHR_relaxed_block_layout
|
|
#endif
|
|
#ifdef VK_KHR_get_memory_requirements2
|
|
static void entry_vkGetImageMemoryRequirements2KHR(
|
|
VkDevice device,
|
|
const VkImageMemoryRequirementsInfo2* pInfo,
|
|
VkMemoryRequirements2* pMemoryRequirements)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetImageMemoryRequirements2KHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
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 = HostConnection::get()->vkEncoder();
|
|
resources->on_vkGetImageMemoryRequirements2KHR(vkEnc, device, pInfo, pMemoryRequirements);
|
|
}
|
|
static void entry_vkGetBufferMemoryRequirements2KHR(
|
|
VkDevice device,
|
|
const VkBufferMemoryRequirementsInfo2* pInfo,
|
|
VkMemoryRequirements2* pMemoryRequirements)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetBufferMemoryRequirements2KHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
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 = HostConnection::get()->vkEncoder();
|
|
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 = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkGetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements);
|
|
}
|
|
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 = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkGetImageSparseMemoryRequirements2KHR(device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements);
|
|
}
|
|
#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 = HostConnection::get()->vkEncoder();
|
|
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 = HostConnection::get()->vkEncoder();
|
|
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 = HostConnection::get()->vkEncoder();
|
|
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 = HostConnection::get()->vkEncoder();
|
|
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 = HostConnection::get()->vkEncoder();
|
|
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 = HostConnection::get()->vkEncoder();
|
|
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 = HostConnection::get()->vkEncoder();
|
|
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 = HostConnection::get()->vkEncoder();
|
|
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 = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkGetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport);
|
|
}
|
|
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 = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkGetDescriptorSetLayoutSupportKHR(device, pCreateInfo, pSupport);
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_draw_indirect_count
|
|
static void entry_vkCmdDrawIndirectCountKHR(
|
|
VkCommandBuffer commandBuffer,
|
|
VkBuffer buffer,
|
|
VkDeviceSize offset,
|
|
VkBuffer countBuffer,
|
|
VkDeviceSize countBufferOffset,
|
|
uint32_t maxDrawCount,
|
|
uint32_t stride)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCmdDrawIndirectCountKHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkCmdDrawIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
|
|
}
|
|
static void entry_vkCmdDrawIndexedIndirectCountKHR(
|
|
VkCommandBuffer commandBuffer,
|
|
VkBuffer buffer,
|
|
VkDeviceSize offset,
|
|
VkBuffer countBuffer,
|
|
VkDeviceSize countBufferOffset,
|
|
uint32_t maxDrawCount,
|
|
uint32_t stride)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirectCountKHR");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkCmdDrawIndexedIndirectCountKHR(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_8bit_storage
|
|
#endif
|
|
#ifdef VK_ANDROID_native_buffer
|
|
static VkResult entry_vkGetSwapchainGrallocUsageANDROID(
|
|
VkDevice device,
|
|
VkFormat format,
|
|
VkImageUsageFlags imageUsage,
|
|
int* grallocUsage)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetSwapchainGrallocUsageANDROID");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkGetSwapchainGrallocUsageANDROID_VkResult_return = (VkResult)0;
|
|
vkGetSwapchainGrallocUsageANDROID_VkResult_return = vkEnc->vkGetSwapchainGrallocUsageANDROID(device, format, imageUsage, grallocUsage);
|
|
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 = HostConnection::get()->vkEncoder();
|
|
VkResult vkGetSwapchainGrallocUsageANDROID_VkResult_return = (VkResult)0;
|
|
vkGetSwapchainGrallocUsageANDROID_VkResult_return = vkEnc->vkGetSwapchainGrallocUsageANDROID(device, format, imageUsage, grallocUsage);
|
|
return vkGetSwapchainGrallocUsageANDROID_VkResult_return;
|
|
}
|
|
static VkResult entry_vkAcquireImageANDROID(
|
|
VkDevice device,
|
|
VkImage image,
|
|
int nativeFenceFd,
|
|
VkSemaphore semaphore,
|
|
VkFence fence)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkAcquireImageANDROID");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkAcquireImageANDROID_VkResult_return = (VkResult)0;
|
|
vkAcquireImageANDROID_VkResult_return = vkEnc->vkAcquireImageANDROID(device, image, nativeFenceFd, semaphore, fence);
|
|
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 = HostConnection::get()->vkEncoder();
|
|
VkResult vkAcquireImageANDROID_VkResult_return = (VkResult)0;
|
|
vkAcquireImageANDROID_VkResult_return = vkEnc->vkAcquireImageANDROID(device, image, nativeFenceFd, semaphore, fence);
|
|
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 = HostConnection::get()->vkEncoder();
|
|
VkResult vkQueueSignalReleaseImageANDROID_VkResult_return = (VkResult)0;
|
|
vkQueueSignalReleaseImageANDROID_VkResult_return = vkEnc->vkQueueSignalReleaseImageANDROID(queue, waitSemaphoreCount, pWaitSemaphores, image, pNativeFenceFd);
|
|
return vkQueueSignalReleaseImageANDROID_VkResult_return;
|
|
}
|
|
#endif
|
|
#ifdef VK_EXT_debug_report
|
|
static VkResult entry_vkCreateDebugReportCallbackEXT(
|
|
VkInstance instance,
|
|
const VkDebugReportCallbackCreateInfoEXT* pCreateInfo,
|
|
const VkAllocationCallbacks* pAllocator,
|
|
VkDebugReportCallbackEXT* pCallback)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCreateDebugReportCallbackEXT");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkCreateDebugReportCallbackEXT_VkResult_return = (VkResult)0;
|
|
vkCreateDebugReportCallbackEXT_VkResult_return = vkEnc->vkCreateDebugReportCallbackEXT(instance, pCreateInfo, pAllocator, pCallback);
|
|
return vkCreateDebugReportCallbackEXT_VkResult_return;
|
|
}
|
|
static void entry_vkDestroyDebugReportCallbackEXT(
|
|
VkInstance instance,
|
|
VkDebugReportCallbackEXT callback,
|
|
const VkAllocationCallbacks* pAllocator)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkDestroyDebugReportCallbackEXT");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkDestroyDebugReportCallbackEXT(instance, callback, pAllocator);
|
|
}
|
|
static void entry_vkDebugReportMessageEXT(
|
|
VkInstance instance,
|
|
VkDebugReportFlagsEXT flags,
|
|
VkDebugReportObjectTypeEXT objectType,
|
|
uint64_t object,
|
|
size_t location,
|
|
int32_t messageCode,
|
|
const char* pLayerPrefix,
|
|
const char* pMessage)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkDebugReportMessageEXT");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkDebugReportMessageEXT(instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage);
|
|
}
|
|
#endif
|
|
#ifdef VK_NV_glsl_shader
|
|
#endif
|
|
#ifdef VK_EXT_depth_range_unrestricted
|
|
#endif
|
|
#ifdef VK_IMG_filter_cubic
|
|
#endif
|
|
#ifdef VK_AMD_rasterization_order
|
|
#endif
|
|
#ifdef VK_AMD_shader_trinary_minmax
|
|
#endif
|
|
#ifdef VK_AMD_shader_explicit_vertex_parameter
|
|
#endif
|
|
#ifdef VK_EXT_debug_marker
|
|
static VkResult entry_vkDebugMarkerSetObjectTagEXT(
|
|
VkDevice device,
|
|
const VkDebugMarkerObjectTagInfoEXT* pTagInfo)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkDebugMarkerSetObjectTagEXT");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkDebugMarkerSetObjectTagEXT_VkResult_return = (VkResult)0;
|
|
vkDebugMarkerSetObjectTagEXT_VkResult_return = vkEnc->vkDebugMarkerSetObjectTagEXT(device, pTagInfo);
|
|
return vkDebugMarkerSetObjectTagEXT_VkResult_return;
|
|
}
|
|
static VkResult dynCheck_entry_vkDebugMarkerSetObjectTagEXT(
|
|
VkDevice device,
|
|
const VkDebugMarkerObjectTagInfoEXT* pTagInfo)
|
|
{
|
|
auto resources = ResourceTracker::get();
|
|
if (!resources->hasDeviceExtension(device, "VK_EXT_debug_marker"))
|
|
{
|
|
sOnInvalidDynamicallyCheckedCall("vkDebugMarkerSetObjectTagEXT", "VK_EXT_debug_marker");
|
|
}
|
|
AEMU_SCOPED_TRACE("vkDebugMarkerSetObjectTagEXT");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkDebugMarkerSetObjectTagEXT_VkResult_return = (VkResult)0;
|
|
vkDebugMarkerSetObjectTagEXT_VkResult_return = vkEnc->vkDebugMarkerSetObjectTagEXT(device, pTagInfo);
|
|
return vkDebugMarkerSetObjectTagEXT_VkResult_return;
|
|
}
|
|
static VkResult entry_vkDebugMarkerSetObjectNameEXT(
|
|
VkDevice device,
|
|
const VkDebugMarkerObjectNameInfoEXT* pNameInfo)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkDebugMarkerSetObjectNameEXT");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkDebugMarkerSetObjectNameEXT_VkResult_return = (VkResult)0;
|
|
vkDebugMarkerSetObjectNameEXT_VkResult_return = vkEnc->vkDebugMarkerSetObjectNameEXT(device, pNameInfo);
|
|
return vkDebugMarkerSetObjectNameEXT_VkResult_return;
|
|
}
|
|
static VkResult dynCheck_entry_vkDebugMarkerSetObjectNameEXT(
|
|
VkDevice device,
|
|
const VkDebugMarkerObjectNameInfoEXT* pNameInfo)
|
|
{
|
|
auto resources = ResourceTracker::get();
|
|
if (!resources->hasDeviceExtension(device, "VK_EXT_debug_marker"))
|
|
{
|
|
sOnInvalidDynamicallyCheckedCall("vkDebugMarkerSetObjectNameEXT", "VK_EXT_debug_marker");
|
|
}
|
|
AEMU_SCOPED_TRACE("vkDebugMarkerSetObjectNameEXT");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkDebugMarkerSetObjectNameEXT_VkResult_return = (VkResult)0;
|
|
vkDebugMarkerSetObjectNameEXT_VkResult_return = vkEnc->vkDebugMarkerSetObjectNameEXT(device, pNameInfo);
|
|
return vkDebugMarkerSetObjectNameEXT_VkResult_return;
|
|
}
|
|
static void entry_vkCmdDebugMarkerBeginEXT(
|
|
VkCommandBuffer commandBuffer,
|
|
const VkDebugMarkerMarkerInfoEXT* pMarkerInfo)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCmdDebugMarkerBeginEXT");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkCmdDebugMarkerBeginEXT(commandBuffer, pMarkerInfo);
|
|
}
|
|
static void entry_vkCmdDebugMarkerEndEXT(
|
|
VkCommandBuffer commandBuffer)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCmdDebugMarkerEndEXT");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkCmdDebugMarkerEndEXT(commandBuffer);
|
|
}
|
|
static void entry_vkCmdDebugMarkerInsertEXT(
|
|
VkCommandBuffer commandBuffer,
|
|
const VkDebugMarkerMarkerInfoEXT* pMarkerInfo)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCmdDebugMarkerInsertEXT");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkCmdDebugMarkerInsertEXT(commandBuffer, pMarkerInfo);
|
|
}
|
|
#endif
|
|
#ifdef VK_AMD_gcn_shader
|
|
#endif
|
|
#ifdef VK_NV_dedicated_allocation
|
|
#endif
|
|
#ifdef VK_AMD_draw_indirect_count
|
|
static void entry_vkCmdDrawIndirectCountAMD(
|
|
VkCommandBuffer commandBuffer,
|
|
VkBuffer buffer,
|
|
VkDeviceSize offset,
|
|
VkBuffer countBuffer,
|
|
VkDeviceSize countBufferOffset,
|
|
uint32_t maxDrawCount,
|
|
uint32_t stride)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCmdDrawIndirectCountAMD");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkCmdDrawIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
|
|
}
|
|
static void entry_vkCmdDrawIndexedIndirectCountAMD(
|
|
VkCommandBuffer commandBuffer,
|
|
VkBuffer buffer,
|
|
VkDeviceSize offset,
|
|
VkBuffer countBuffer,
|
|
VkDeviceSize countBufferOffset,
|
|
uint32_t maxDrawCount,
|
|
uint32_t stride)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCmdDrawIndexedIndirectCountAMD");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkCmdDrawIndexedIndirectCountAMD(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride);
|
|
}
|
|
#endif
|
|
#ifdef VK_AMD_negative_viewport_height
|
|
#endif
|
|
#ifdef VK_AMD_gpu_shader_half_float
|
|
#endif
|
|
#ifdef VK_AMD_shader_ballot
|
|
#endif
|
|
#ifdef VK_AMD_texture_gather_bias_lod
|
|
#endif
|
|
#ifdef VK_AMD_shader_info
|
|
static VkResult entry_vkGetShaderInfoAMD(
|
|
VkDevice device,
|
|
VkPipeline pipeline,
|
|
VkShaderStageFlagBits shaderStage,
|
|
VkShaderInfoTypeAMD infoType,
|
|
size_t* pInfoSize,
|
|
void* pInfo)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetShaderInfoAMD");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkGetShaderInfoAMD_VkResult_return = (VkResult)0;
|
|
vkGetShaderInfoAMD_VkResult_return = vkEnc->vkGetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo);
|
|
return vkGetShaderInfoAMD_VkResult_return;
|
|
}
|
|
static VkResult dynCheck_entry_vkGetShaderInfoAMD(
|
|
VkDevice device,
|
|
VkPipeline pipeline,
|
|
VkShaderStageFlagBits shaderStage,
|
|
VkShaderInfoTypeAMD infoType,
|
|
size_t* pInfoSize,
|
|
void* pInfo)
|
|
{
|
|
auto resources = ResourceTracker::get();
|
|
if (!resources->hasDeviceExtension(device, "VK_AMD_shader_info"))
|
|
{
|
|
sOnInvalidDynamicallyCheckedCall("vkGetShaderInfoAMD", "VK_AMD_shader_info");
|
|
}
|
|
AEMU_SCOPED_TRACE("vkGetShaderInfoAMD");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkGetShaderInfoAMD_VkResult_return = (VkResult)0;
|
|
vkGetShaderInfoAMD_VkResult_return = vkEnc->vkGetShaderInfoAMD(device, pipeline, shaderStage, infoType, pInfoSize, pInfo);
|
|
return vkGetShaderInfoAMD_VkResult_return;
|
|
}
|
|
#endif
|
|
#ifdef VK_AMD_shader_image_load_store_lod
|
|
#endif
|
|
#ifdef VK_IMG_format_pvrtc
|
|
#endif
|
|
#ifdef VK_NV_external_memory_capabilities
|
|
static VkResult entry_vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
|
|
VkPhysicalDevice physicalDevice,
|
|
VkFormat format,
|
|
VkImageType type,
|
|
VkImageTiling tiling,
|
|
VkImageUsageFlags usage,
|
|
VkImageCreateFlags flags,
|
|
VkExternalMemoryHandleTypeFlagsNV externalHandleType,
|
|
VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetPhysicalDeviceExternalImageFormatPropertiesNV");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkGetPhysicalDeviceExternalImageFormatPropertiesNV_VkResult_return = (VkResult)0;
|
|
vkGetPhysicalDeviceExternalImageFormatPropertiesNV_VkResult_return = vkEnc->vkGetPhysicalDeviceExternalImageFormatPropertiesNV(physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties);
|
|
return vkGetPhysicalDeviceExternalImageFormatPropertiesNV_VkResult_return;
|
|
}
|
|
#endif
|
|
#ifdef VK_NV_external_memory
|
|
#endif
|
|
#ifdef VK_NV_external_memory_win32
|
|
static VkResult entry_vkGetMemoryWin32HandleNV(
|
|
VkDevice device,
|
|
VkDeviceMemory memory,
|
|
VkExternalMemoryHandleTypeFlagsNV handleType,
|
|
HANDLE* pHandle)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetMemoryWin32HandleNV");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkGetMemoryWin32HandleNV_VkResult_return = (VkResult)0;
|
|
vkGetMemoryWin32HandleNV_VkResult_return = vkEnc->vkGetMemoryWin32HandleNV(device, memory, handleType, pHandle);
|
|
return vkGetMemoryWin32HandleNV_VkResult_return;
|
|
}
|
|
static VkResult dynCheck_entry_vkGetMemoryWin32HandleNV(
|
|
VkDevice device,
|
|
VkDeviceMemory memory,
|
|
VkExternalMemoryHandleTypeFlagsNV handleType,
|
|
HANDLE* pHandle)
|
|
{
|
|
auto resources = ResourceTracker::get();
|
|
if (!resources->hasDeviceExtension(device, "VK_NV_external_memory_win32"))
|
|
{
|
|
sOnInvalidDynamicallyCheckedCall("vkGetMemoryWin32HandleNV", "VK_NV_external_memory_win32");
|
|
}
|
|
AEMU_SCOPED_TRACE("vkGetMemoryWin32HandleNV");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkGetMemoryWin32HandleNV_VkResult_return = (VkResult)0;
|
|
vkGetMemoryWin32HandleNV_VkResult_return = vkEnc->vkGetMemoryWin32HandleNV(device, memory, handleType, pHandle);
|
|
return vkGetMemoryWin32HandleNV_VkResult_return;
|
|
}
|
|
#endif
|
|
#ifdef VK_NV_win32_keyed_mutex
|
|
#endif
|
|
#ifdef VK_EXT_validation_flags
|
|
#endif
|
|
#ifdef VK_NN_vi_surface
|
|
static VkResult entry_vkCreateViSurfaceNN(
|
|
VkInstance instance,
|
|
const VkViSurfaceCreateInfoNN* pCreateInfo,
|
|
const VkAllocationCallbacks* pAllocator,
|
|
VkSurfaceKHR* pSurface)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCreateViSurfaceNN");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkCreateViSurfaceNN_VkResult_return = (VkResult)0;
|
|
vkCreateViSurfaceNN_VkResult_return = vkEnc->vkCreateViSurfaceNN(instance, pCreateInfo, pAllocator, pSurface);
|
|
return vkCreateViSurfaceNN_VkResult_return;
|
|
}
|
|
#endif
|
|
#ifdef VK_EXT_shader_subgroup_ballot
|
|
#endif
|
|
#ifdef VK_EXT_shader_subgroup_vote
|
|
#endif
|
|
#ifdef VK_EXT_conditional_rendering
|
|
static void entry_vkCmdBeginConditionalRenderingEXT(
|
|
VkCommandBuffer commandBuffer,
|
|
const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCmdBeginConditionalRenderingEXT");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkCmdBeginConditionalRenderingEXT(commandBuffer, pConditionalRenderingBegin);
|
|
}
|
|
static void entry_vkCmdEndConditionalRenderingEXT(
|
|
VkCommandBuffer commandBuffer)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCmdEndConditionalRenderingEXT");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkCmdEndConditionalRenderingEXT(commandBuffer);
|
|
}
|
|
#endif
|
|
#ifdef VK_NVX_device_generated_commands
|
|
static void entry_vkCmdProcessCommandsNVX(
|
|
VkCommandBuffer commandBuffer,
|
|
const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCmdProcessCommandsNVX");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkCmdProcessCommandsNVX(commandBuffer, pProcessCommandsInfo);
|
|
}
|
|
static void entry_vkCmdReserveSpaceForCommandsNVX(
|
|
VkCommandBuffer commandBuffer,
|
|
const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCmdReserveSpaceForCommandsNVX");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkCmdReserveSpaceForCommandsNVX(commandBuffer, pReserveSpaceInfo);
|
|
}
|
|
static VkResult entry_vkCreateIndirectCommandsLayoutNVX(
|
|
VkDevice device,
|
|
const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo,
|
|
const VkAllocationCallbacks* pAllocator,
|
|
VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCreateIndirectCommandsLayoutNVX");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkCreateIndirectCommandsLayoutNVX_VkResult_return = (VkResult)0;
|
|
vkCreateIndirectCommandsLayoutNVX_VkResult_return = vkEnc->vkCreateIndirectCommandsLayoutNVX(device, pCreateInfo, pAllocator, pIndirectCommandsLayout);
|
|
return vkCreateIndirectCommandsLayoutNVX_VkResult_return;
|
|
}
|
|
static VkResult dynCheck_entry_vkCreateIndirectCommandsLayoutNVX(
|
|
VkDevice device,
|
|
const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo,
|
|
const VkAllocationCallbacks* pAllocator,
|
|
VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout)
|
|
{
|
|
auto resources = ResourceTracker::get();
|
|
if (!resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands"))
|
|
{
|
|
sOnInvalidDynamicallyCheckedCall("vkCreateIndirectCommandsLayoutNVX", "VK_NVX_device_generated_commands");
|
|
}
|
|
AEMU_SCOPED_TRACE("vkCreateIndirectCommandsLayoutNVX");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkCreateIndirectCommandsLayoutNVX_VkResult_return = (VkResult)0;
|
|
vkCreateIndirectCommandsLayoutNVX_VkResult_return = vkEnc->vkCreateIndirectCommandsLayoutNVX(device, pCreateInfo, pAllocator, pIndirectCommandsLayout);
|
|
return vkCreateIndirectCommandsLayoutNVX_VkResult_return;
|
|
}
|
|
static void entry_vkDestroyIndirectCommandsLayoutNVX(
|
|
VkDevice device,
|
|
VkIndirectCommandsLayoutNVX indirectCommandsLayout,
|
|
const VkAllocationCallbacks* pAllocator)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkDestroyIndirectCommandsLayoutNVX");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkDestroyIndirectCommandsLayoutNVX(device, indirectCommandsLayout, pAllocator);
|
|
}
|
|
static void dynCheck_entry_vkDestroyIndirectCommandsLayoutNVX(
|
|
VkDevice device,
|
|
VkIndirectCommandsLayoutNVX indirectCommandsLayout,
|
|
const VkAllocationCallbacks* pAllocator)
|
|
{
|
|
auto resources = ResourceTracker::get();
|
|
if (!resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands"))
|
|
{
|
|
sOnInvalidDynamicallyCheckedCall("vkDestroyIndirectCommandsLayoutNVX", "VK_NVX_device_generated_commands");
|
|
}
|
|
AEMU_SCOPED_TRACE("vkDestroyIndirectCommandsLayoutNVX");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkDestroyIndirectCommandsLayoutNVX(device, indirectCommandsLayout, pAllocator);
|
|
}
|
|
static VkResult entry_vkCreateObjectTableNVX(
|
|
VkDevice device,
|
|
const VkObjectTableCreateInfoNVX* pCreateInfo,
|
|
const VkAllocationCallbacks* pAllocator,
|
|
VkObjectTableNVX* pObjectTable)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCreateObjectTableNVX");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkCreateObjectTableNVX_VkResult_return = (VkResult)0;
|
|
vkCreateObjectTableNVX_VkResult_return = vkEnc->vkCreateObjectTableNVX(device, pCreateInfo, pAllocator, pObjectTable);
|
|
return vkCreateObjectTableNVX_VkResult_return;
|
|
}
|
|
static VkResult dynCheck_entry_vkCreateObjectTableNVX(
|
|
VkDevice device,
|
|
const VkObjectTableCreateInfoNVX* pCreateInfo,
|
|
const VkAllocationCallbacks* pAllocator,
|
|
VkObjectTableNVX* pObjectTable)
|
|
{
|
|
auto resources = ResourceTracker::get();
|
|
if (!resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands"))
|
|
{
|
|
sOnInvalidDynamicallyCheckedCall("vkCreateObjectTableNVX", "VK_NVX_device_generated_commands");
|
|
}
|
|
AEMU_SCOPED_TRACE("vkCreateObjectTableNVX");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkCreateObjectTableNVX_VkResult_return = (VkResult)0;
|
|
vkCreateObjectTableNVX_VkResult_return = vkEnc->vkCreateObjectTableNVX(device, pCreateInfo, pAllocator, pObjectTable);
|
|
return vkCreateObjectTableNVX_VkResult_return;
|
|
}
|
|
static void entry_vkDestroyObjectTableNVX(
|
|
VkDevice device,
|
|
VkObjectTableNVX objectTable,
|
|
const VkAllocationCallbacks* pAllocator)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkDestroyObjectTableNVX");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkDestroyObjectTableNVX(device, objectTable, pAllocator);
|
|
}
|
|
static void dynCheck_entry_vkDestroyObjectTableNVX(
|
|
VkDevice device,
|
|
VkObjectTableNVX objectTable,
|
|
const VkAllocationCallbacks* pAllocator)
|
|
{
|
|
auto resources = ResourceTracker::get();
|
|
if (!resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands"))
|
|
{
|
|
sOnInvalidDynamicallyCheckedCall("vkDestroyObjectTableNVX", "VK_NVX_device_generated_commands");
|
|
}
|
|
AEMU_SCOPED_TRACE("vkDestroyObjectTableNVX");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkDestroyObjectTableNVX(device, objectTable, pAllocator);
|
|
}
|
|
static VkResult entry_vkRegisterObjectsNVX(
|
|
VkDevice device,
|
|
VkObjectTableNVX objectTable,
|
|
uint32_t objectCount,
|
|
const VkObjectTableEntryNVX* const* ppObjectTableEntries,
|
|
const uint32_t* pObjectIndices)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkRegisterObjectsNVX");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkRegisterObjectsNVX_VkResult_return = (VkResult)0;
|
|
vkRegisterObjectsNVX_VkResult_return = vkEnc->vkRegisterObjectsNVX(device, objectTable, objectCount, ppObjectTableEntries, pObjectIndices);
|
|
return vkRegisterObjectsNVX_VkResult_return;
|
|
}
|
|
static VkResult dynCheck_entry_vkRegisterObjectsNVX(
|
|
VkDevice device,
|
|
VkObjectTableNVX objectTable,
|
|
uint32_t objectCount,
|
|
const VkObjectTableEntryNVX* const* ppObjectTableEntries,
|
|
const uint32_t* pObjectIndices)
|
|
{
|
|
auto resources = ResourceTracker::get();
|
|
if (!resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands"))
|
|
{
|
|
sOnInvalidDynamicallyCheckedCall("vkRegisterObjectsNVX", "VK_NVX_device_generated_commands");
|
|
}
|
|
AEMU_SCOPED_TRACE("vkRegisterObjectsNVX");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkRegisterObjectsNVX_VkResult_return = (VkResult)0;
|
|
vkRegisterObjectsNVX_VkResult_return = vkEnc->vkRegisterObjectsNVX(device, objectTable, objectCount, ppObjectTableEntries, pObjectIndices);
|
|
return vkRegisterObjectsNVX_VkResult_return;
|
|
}
|
|
static VkResult entry_vkUnregisterObjectsNVX(
|
|
VkDevice device,
|
|
VkObjectTableNVX objectTable,
|
|
uint32_t objectCount,
|
|
const VkObjectEntryTypeNVX* pObjectEntryTypes,
|
|
const uint32_t* pObjectIndices)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkUnregisterObjectsNVX");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkUnregisterObjectsNVX_VkResult_return = (VkResult)0;
|
|
vkUnregisterObjectsNVX_VkResult_return = vkEnc->vkUnregisterObjectsNVX(device, objectTable, objectCount, pObjectEntryTypes, pObjectIndices);
|
|
return vkUnregisterObjectsNVX_VkResult_return;
|
|
}
|
|
static VkResult dynCheck_entry_vkUnregisterObjectsNVX(
|
|
VkDevice device,
|
|
VkObjectTableNVX objectTable,
|
|
uint32_t objectCount,
|
|
const VkObjectEntryTypeNVX* pObjectEntryTypes,
|
|
const uint32_t* pObjectIndices)
|
|
{
|
|
auto resources = ResourceTracker::get();
|
|
if (!resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands"))
|
|
{
|
|
sOnInvalidDynamicallyCheckedCall("vkUnregisterObjectsNVX", "VK_NVX_device_generated_commands");
|
|
}
|
|
AEMU_SCOPED_TRACE("vkUnregisterObjectsNVX");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkUnregisterObjectsNVX_VkResult_return = (VkResult)0;
|
|
vkUnregisterObjectsNVX_VkResult_return = vkEnc->vkUnregisterObjectsNVX(device, objectTable, objectCount, pObjectEntryTypes, pObjectIndices);
|
|
return vkUnregisterObjectsNVX_VkResult_return;
|
|
}
|
|
static void entry_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX(
|
|
VkPhysicalDevice physicalDevice,
|
|
VkDeviceGeneratedCommandsFeaturesNVX* pFeatures,
|
|
VkDeviceGeneratedCommandsLimitsNVX* pLimits)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX(physicalDevice, pFeatures, pLimits);
|
|
}
|
|
#endif
|
|
#ifdef VK_NV_clip_space_w_scaling
|
|
static void entry_vkCmdSetViewportWScalingNV(
|
|
VkCommandBuffer commandBuffer,
|
|
uint32_t firstViewport,
|
|
uint32_t viewportCount,
|
|
const VkViewportWScalingNV* pViewportWScalings)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCmdSetViewportWScalingNV");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkCmdSetViewportWScalingNV(commandBuffer, firstViewport, viewportCount, pViewportWScalings);
|
|
}
|
|
#endif
|
|
#ifdef VK_EXT_direct_mode_display
|
|
static VkResult entry_vkReleaseDisplayEXT(
|
|
VkPhysicalDevice physicalDevice,
|
|
VkDisplayKHR display)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkReleaseDisplayEXT");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkReleaseDisplayEXT_VkResult_return = (VkResult)0;
|
|
vkReleaseDisplayEXT_VkResult_return = vkEnc->vkReleaseDisplayEXT(physicalDevice, display);
|
|
return vkReleaseDisplayEXT_VkResult_return;
|
|
}
|
|
#endif
|
|
#ifdef VK_EXT_acquire_xlib_display
|
|
static VkResult entry_vkAcquireXlibDisplayEXT(
|
|
VkPhysicalDevice physicalDevice,
|
|
Display* dpy,
|
|
VkDisplayKHR display)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkAcquireXlibDisplayEXT");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkAcquireXlibDisplayEXT_VkResult_return = (VkResult)0;
|
|
vkAcquireXlibDisplayEXT_VkResult_return = vkEnc->vkAcquireXlibDisplayEXT(physicalDevice, dpy, display);
|
|
return vkAcquireXlibDisplayEXT_VkResult_return;
|
|
}
|
|
static VkResult entry_vkGetRandROutputDisplayEXT(
|
|
VkPhysicalDevice physicalDevice,
|
|
Display* dpy,
|
|
RROutput rrOutput,
|
|
VkDisplayKHR* pDisplay)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetRandROutputDisplayEXT");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkGetRandROutputDisplayEXT_VkResult_return = (VkResult)0;
|
|
vkGetRandROutputDisplayEXT_VkResult_return = vkEnc->vkGetRandROutputDisplayEXT(physicalDevice, dpy, rrOutput, pDisplay);
|
|
return vkGetRandROutputDisplayEXT_VkResult_return;
|
|
}
|
|
#endif
|
|
#ifdef VK_EXT_display_surface_counter
|
|
static VkResult entry_vkGetPhysicalDeviceSurfaceCapabilities2EXT(
|
|
VkPhysicalDevice physicalDevice,
|
|
VkSurfaceKHR surface,
|
|
VkSurfaceCapabilities2EXT* pSurfaceCapabilities)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetPhysicalDeviceSurfaceCapabilities2EXT");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkGetPhysicalDeviceSurfaceCapabilities2EXT_VkResult_return = (VkResult)0;
|
|
vkGetPhysicalDeviceSurfaceCapabilities2EXT_VkResult_return = vkEnc->vkGetPhysicalDeviceSurfaceCapabilities2EXT(physicalDevice, surface, pSurfaceCapabilities);
|
|
return vkGetPhysicalDeviceSurfaceCapabilities2EXT_VkResult_return;
|
|
}
|
|
#endif
|
|
#ifdef VK_EXT_display_control
|
|
static VkResult entry_vkDisplayPowerControlEXT(
|
|
VkDevice device,
|
|
VkDisplayKHR display,
|
|
const VkDisplayPowerInfoEXT* pDisplayPowerInfo)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkDisplayPowerControlEXT");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkDisplayPowerControlEXT_VkResult_return = (VkResult)0;
|
|
vkDisplayPowerControlEXT_VkResult_return = vkEnc->vkDisplayPowerControlEXT(device, display, pDisplayPowerInfo);
|
|
return vkDisplayPowerControlEXT_VkResult_return;
|
|
}
|
|
static VkResult dynCheck_entry_vkDisplayPowerControlEXT(
|
|
VkDevice device,
|
|
VkDisplayKHR display,
|
|
const VkDisplayPowerInfoEXT* pDisplayPowerInfo)
|
|
{
|
|
auto resources = ResourceTracker::get();
|
|
if (!resources->hasDeviceExtension(device, "VK_EXT_display_control"))
|
|
{
|
|
sOnInvalidDynamicallyCheckedCall("vkDisplayPowerControlEXT", "VK_EXT_display_control");
|
|
}
|
|
AEMU_SCOPED_TRACE("vkDisplayPowerControlEXT");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkDisplayPowerControlEXT_VkResult_return = (VkResult)0;
|
|
vkDisplayPowerControlEXT_VkResult_return = vkEnc->vkDisplayPowerControlEXT(device, display, pDisplayPowerInfo);
|
|
return vkDisplayPowerControlEXT_VkResult_return;
|
|
}
|
|
static VkResult entry_vkRegisterDeviceEventEXT(
|
|
VkDevice device,
|
|
const VkDeviceEventInfoEXT* pDeviceEventInfo,
|
|
const VkAllocationCallbacks* pAllocator,
|
|
VkFence* pFence)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkRegisterDeviceEventEXT");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkRegisterDeviceEventEXT_VkResult_return = (VkResult)0;
|
|
vkRegisterDeviceEventEXT_VkResult_return = vkEnc->vkRegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence);
|
|
return vkRegisterDeviceEventEXT_VkResult_return;
|
|
}
|
|
static VkResult dynCheck_entry_vkRegisterDeviceEventEXT(
|
|
VkDevice device,
|
|
const VkDeviceEventInfoEXT* pDeviceEventInfo,
|
|
const VkAllocationCallbacks* pAllocator,
|
|
VkFence* pFence)
|
|
{
|
|
auto resources = ResourceTracker::get();
|
|
if (!resources->hasDeviceExtension(device, "VK_EXT_display_control"))
|
|
{
|
|
sOnInvalidDynamicallyCheckedCall("vkRegisterDeviceEventEXT", "VK_EXT_display_control");
|
|
}
|
|
AEMU_SCOPED_TRACE("vkRegisterDeviceEventEXT");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkRegisterDeviceEventEXT_VkResult_return = (VkResult)0;
|
|
vkRegisterDeviceEventEXT_VkResult_return = vkEnc->vkRegisterDeviceEventEXT(device, pDeviceEventInfo, pAllocator, pFence);
|
|
return vkRegisterDeviceEventEXT_VkResult_return;
|
|
}
|
|
static VkResult entry_vkRegisterDisplayEventEXT(
|
|
VkDevice device,
|
|
VkDisplayKHR display,
|
|
const VkDisplayEventInfoEXT* pDisplayEventInfo,
|
|
const VkAllocationCallbacks* pAllocator,
|
|
VkFence* pFence)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkRegisterDisplayEventEXT");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkRegisterDisplayEventEXT_VkResult_return = (VkResult)0;
|
|
vkRegisterDisplayEventEXT_VkResult_return = vkEnc->vkRegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence);
|
|
return vkRegisterDisplayEventEXT_VkResult_return;
|
|
}
|
|
static VkResult dynCheck_entry_vkRegisterDisplayEventEXT(
|
|
VkDevice device,
|
|
VkDisplayKHR display,
|
|
const VkDisplayEventInfoEXT* pDisplayEventInfo,
|
|
const VkAllocationCallbacks* pAllocator,
|
|
VkFence* pFence)
|
|
{
|
|
auto resources = ResourceTracker::get();
|
|
if (!resources->hasDeviceExtension(device, "VK_EXT_display_control"))
|
|
{
|
|
sOnInvalidDynamicallyCheckedCall("vkRegisterDisplayEventEXT", "VK_EXT_display_control");
|
|
}
|
|
AEMU_SCOPED_TRACE("vkRegisterDisplayEventEXT");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkRegisterDisplayEventEXT_VkResult_return = (VkResult)0;
|
|
vkRegisterDisplayEventEXT_VkResult_return = vkEnc->vkRegisterDisplayEventEXT(device, display, pDisplayEventInfo, pAllocator, pFence);
|
|
return vkRegisterDisplayEventEXT_VkResult_return;
|
|
}
|
|
static VkResult entry_vkGetSwapchainCounterEXT(
|
|
VkDevice device,
|
|
VkSwapchainKHR swapchain,
|
|
VkSurfaceCounterFlagBitsEXT counter,
|
|
uint64_t* pCounterValue)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetSwapchainCounterEXT");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkGetSwapchainCounterEXT_VkResult_return = (VkResult)0;
|
|
vkGetSwapchainCounterEXT_VkResult_return = vkEnc->vkGetSwapchainCounterEXT(device, swapchain, counter, pCounterValue);
|
|
return vkGetSwapchainCounterEXT_VkResult_return;
|
|
}
|
|
static VkResult dynCheck_entry_vkGetSwapchainCounterEXT(
|
|
VkDevice device,
|
|
VkSwapchainKHR swapchain,
|
|
VkSurfaceCounterFlagBitsEXT counter,
|
|
uint64_t* pCounterValue)
|
|
{
|
|
auto resources = ResourceTracker::get();
|
|
if (!resources->hasDeviceExtension(device, "VK_EXT_display_control"))
|
|
{
|
|
sOnInvalidDynamicallyCheckedCall("vkGetSwapchainCounterEXT", "VK_EXT_display_control");
|
|
}
|
|
AEMU_SCOPED_TRACE("vkGetSwapchainCounterEXT");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkGetSwapchainCounterEXT_VkResult_return = (VkResult)0;
|
|
vkGetSwapchainCounterEXT_VkResult_return = vkEnc->vkGetSwapchainCounterEXT(device, swapchain, counter, pCounterValue);
|
|
return vkGetSwapchainCounterEXT_VkResult_return;
|
|
}
|
|
#endif
|
|
#ifdef VK_GOOGLE_display_timing
|
|
static VkResult entry_vkGetRefreshCycleDurationGOOGLE(
|
|
VkDevice device,
|
|
VkSwapchainKHR swapchain,
|
|
VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetRefreshCycleDurationGOOGLE");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkGetRefreshCycleDurationGOOGLE_VkResult_return = (VkResult)0;
|
|
vkGetRefreshCycleDurationGOOGLE_VkResult_return = vkEnc->vkGetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties);
|
|
return vkGetRefreshCycleDurationGOOGLE_VkResult_return;
|
|
}
|
|
static VkResult dynCheck_entry_vkGetRefreshCycleDurationGOOGLE(
|
|
VkDevice device,
|
|
VkSwapchainKHR swapchain,
|
|
VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties)
|
|
{
|
|
auto resources = ResourceTracker::get();
|
|
if (!resources->hasDeviceExtension(device, "VK_GOOGLE_display_timing"))
|
|
{
|
|
sOnInvalidDynamicallyCheckedCall("vkGetRefreshCycleDurationGOOGLE", "VK_GOOGLE_display_timing");
|
|
}
|
|
AEMU_SCOPED_TRACE("vkGetRefreshCycleDurationGOOGLE");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkGetRefreshCycleDurationGOOGLE_VkResult_return = (VkResult)0;
|
|
vkGetRefreshCycleDurationGOOGLE_VkResult_return = vkEnc->vkGetRefreshCycleDurationGOOGLE(device, swapchain, pDisplayTimingProperties);
|
|
return vkGetRefreshCycleDurationGOOGLE_VkResult_return;
|
|
}
|
|
static VkResult entry_vkGetPastPresentationTimingGOOGLE(
|
|
VkDevice device,
|
|
VkSwapchainKHR swapchain,
|
|
uint32_t* pPresentationTimingCount,
|
|
VkPastPresentationTimingGOOGLE* pPresentationTimings)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetPastPresentationTimingGOOGLE");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkGetPastPresentationTimingGOOGLE_VkResult_return = (VkResult)0;
|
|
vkGetPastPresentationTimingGOOGLE_VkResult_return = vkEnc->vkGetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings);
|
|
return vkGetPastPresentationTimingGOOGLE_VkResult_return;
|
|
}
|
|
static VkResult dynCheck_entry_vkGetPastPresentationTimingGOOGLE(
|
|
VkDevice device,
|
|
VkSwapchainKHR swapchain,
|
|
uint32_t* pPresentationTimingCount,
|
|
VkPastPresentationTimingGOOGLE* pPresentationTimings)
|
|
{
|
|
auto resources = ResourceTracker::get();
|
|
if (!resources->hasDeviceExtension(device, "VK_GOOGLE_display_timing"))
|
|
{
|
|
sOnInvalidDynamicallyCheckedCall("vkGetPastPresentationTimingGOOGLE", "VK_GOOGLE_display_timing");
|
|
}
|
|
AEMU_SCOPED_TRACE("vkGetPastPresentationTimingGOOGLE");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkGetPastPresentationTimingGOOGLE_VkResult_return = (VkResult)0;
|
|
vkGetPastPresentationTimingGOOGLE_VkResult_return = vkEnc->vkGetPastPresentationTimingGOOGLE(device, swapchain, pPresentationTimingCount, pPresentationTimings);
|
|
return vkGetPastPresentationTimingGOOGLE_VkResult_return;
|
|
}
|
|
#endif
|
|
#ifdef VK_NV_sample_mask_override_coverage
|
|
#endif
|
|
#ifdef VK_NV_geometry_shader_passthrough
|
|
#endif
|
|
#ifdef VK_NV_viewport_array2
|
|
#endif
|
|
#ifdef VK_NVX_multiview_per_view_attributes
|
|
#endif
|
|
#ifdef VK_NV_viewport_swizzle
|
|
#endif
|
|
#ifdef VK_EXT_discard_rectangles
|
|
static void entry_vkCmdSetDiscardRectangleEXT(
|
|
VkCommandBuffer commandBuffer,
|
|
uint32_t firstDiscardRectangle,
|
|
uint32_t discardRectangleCount,
|
|
const VkRect2D* pDiscardRectangles)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCmdSetDiscardRectangleEXT");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkCmdSetDiscardRectangleEXT(commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles);
|
|
}
|
|
#endif
|
|
#ifdef VK_EXT_conservative_rasterization
|
|
#endif
|
|
#ifdef VK_EXT_swapchain_colorspace
|
|
#endif
|
|
#ifdef VK_EXT_hdr_metadata
|
|
static void entry_vkSetHdrMetadataEXT(
|
|
VkDevice device,
|
|
uint32_t swapchainCount,
|
|
const VkSwapchainKHR* pSwapchains,
|
|
const VkHdrMetadataEXT* pMetadata)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkSetHdrMetadataEXT");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkSetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata);
|
|
}
|
|
static void dynCheck_entry_vkSetHdrMetadataEXT(
|
|
VkDevice device,
|
|
uint32_t swapchainCount,
|
|
const VkSwapchainKHR* pSwapchains,
|
|
const VkHdrMetadataEXT* pMetadata)
|
|
{
|
|
auto resources = ResourceTracker::get();
|
|
if (!resources->hasDeviceExtension(device, "VK_EXT_hdr_metadata"))
|
|
{
|
|
sOnInvalidDynamicallyCheckedCall("vkSetHdrMetadataEXT", "VK_EXT_hdr_metadata");
|
|
}
|
|
AEMU_SCOPED_TRACE("vkSetHdrMetadataEXT");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkSetHdrMetadataEXT(device, swapchainCount, pSwapchains, pMetadata);
|
|
}
|
|
#endif
|
|
#ifdef VK_MVK_ios_surface
|
|
static VkResult entry_vkCreateIOSSurfaceMVK(
|
|
VkInstance instance,
|
|
const VkIOSSurfaceCreateInfoMVK* pCreateInfo,
|
|
const VkAllocationCallbacks* pAllocator,
|
|
VkSurfaceKHR* pSurface)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCreateIOSSurfaceMVK");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkCreateIOSSurfaceMVK_VkResult_return = (VkResult)0;
|
|
vkCreateIOSSurfaceMVK_VkResult_return = vkEnc->vkCreateIOSSurfaceMVK(instance, pCreateInfo, pAllocator, pSurface);
|
|
return vkCreateIOSSurfaceMVK_VkResult_return;
|
|
}
|
|
#endif
|
|
#ifdef VK_MVK_macos_surface
|
|
static VkResult entry_vkCreateMacOSSurfaceMVK(
|
|
VkInstance instance,
|
|
const VkMacOSSurfaceCreateInfoMVK* pCreateInfo,
|
|
const VkAllocationCallbacks* pAllocator,
|
|
VkSurfaceKHR* pSurface)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCreateMacOSSurfaceMVK");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkCreateMacOSSurfaceMVK_VkResult_return = (VkResult)0;
|
|
vkCreateMacOSSurfaceMVK_VkResult_return = vkEnc->vkCreateMacOSSurfaceMVK(instance, pCreateInfo, pAllocator, pSurface);
|
|
return vkCreateMacOSSurfaceMVK_VkResult_return;
|
|
}
|
|
#endif
|
|
#ifdef VK_EXT_external_memory_dma_buf
|
|
#endif
|
|
#ifdef VK_EXT_queue_family_foreign
|
|
#endif
|
|
#ifdef VK_EXT_debug_utils
|
|
static VkResult entry_vkSetDebugUtilsObjectNameEXT(
|
|
VkDevice device,
|
|
const VkDebugUtilsObjectNameInfoEXT* pNameInfo)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkSetDebugUtilsObjectNameEXT");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkSetDebugUtilsObjectNameEXT_VkResult_return = (VkResult)0;
|
|
vkSetDebugUtilsObjectNameEXT_VkResult_return = vkEnc->vkSetDebugUtilsObjectNameEXT(device, pNameInfo);
|
|
return vkSetDebugUtilsObjectNameEXT_VkResult_return;
|
|
}
|
|
static VkResult dynCheck_entry_vkSetDebugUtilsObjectNameEXT(
|
|
VkDevice device,
|
|
const VkDebugUtilsObjectNameInfoEXT* pNameInfo)
|
|
{
|
|
auto resources = ResourceTracker::get();
|
|
if (!resources->hasDeviceExtension(device, "VK_EXT_debug_utils"))
|
|
{
|
|
sOnInvalidDynamicallyCheckedCall("vkSetDebugUtilsObjectNameEXT", "VK_EXT_debug_utils");
|
|
}
|
|
AEMU_SCOPED_TRACE("vkSetDebugUtilsObjectNameEXT");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkSetDebugUtilsObjectNameEXT_VkResult_return = (VkResult)0;
|
|
vkSetDebugUtilsObjectNameEXT_VkResult_return = vkEnc->vkSetDebugUtilsObjectNameEXT(device, pNameInfo);
|
|
return vkSetDebugUtilsObjectNameEXT_VkResult_return;
|
|
}
|
|
static VkResult entry_vkSetDebugUtilsObjectTagEXT(
|
|
VkDevice device,
|
|
const VkDebugUtilsObjectTagInfoEXT* pTagInfo)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkSetDebugUtilsObjectTagEXT");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkSetDebugUtilsObjectTagEXT_VkResult_return = (VkResult)0;
|
|
vkSetDebugUtilsObjectTagEXT_VkResult_return = vkEnc->vkSetDebugUtilsObjectTagEXT(device, pTagInfo);
|
|
return vkSetDebugUtilsObjectTagEXT_VkResult_return;
|
|
}
|
|
static VkResult dynCheck_entry_vkSetDebugUtilsObjectTagEXT(
|
|
VkDevice device,
|
|
const VkDebugUtilsObjectTagInfoEXT* pTagInfo)
|
|
{
|
|
auto resources = ResourceTracker::get();
|
|
if (!resources->hasDeviceExtension(device, "VK_EXT_debug_utils"))
|
|
{
|
|
sOnInvalidDynamicallyCheckedCall("vkSetDebugUtilsObjectTagEXT", "VK_EXT_debug_utils");
|
|
}
|
|
AEMU_SCOPED_TRACE("vkSetDebugUtilsObjectTagEXT");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkSetDebugUtilsObjectTagEXT_VkResult_return = (VkResult)0;
|
|
vkSetDebugUtilsObjectTagEXT_VkResult_return = vkEnc->vkSetDebugUtilsObjectTagEXT(device, pTagInfo);
|
|
return vkSetDebugUtilsObjectTagEXT_VkResult_return;
|
|
}
|
|
static void entry_vkQueueBeginDebugUtilsLabelEXT(
|
|
VkQueue queue,
|
|
const VkDebugUtilsLabelEXT* pLabelInfo)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkQueueBeginDebugUtilsLabelEXT");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkQueueBeginDebugUtilsLabelEXT(queue, pLabelInfo);
|
|
}
|
|
static void entry_vkQueueEndDebugUtilsLabelEXT(
|
|
VkQueue queue)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkQueueEndDebugUtilsLabelEXT");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkQueueEndDebugUtilsLabelEXT(queue);
|
|
}
|
|
static void entry_vkQueueInsertDebugUtilsLabelEXT(
|
|
VkQueue queue,
|
|
const VkDebugUtilsLabelEXT* pLabelInfo)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkQueueInsertDebugUtilsLabelEXT");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkQueueInsertDebugUtilsLabelEXT(queue, pLabelInfo);
|
|
}
|
|
static void entry_vkCmdBeginDebugUtilsLabelEXT(
|
|
VkCommandBuffer commandBuffer,
|
|
const VkDebugUtilsLabelEXT* pLabelInfo)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCmdBeginDebugUtilsLabelEXT");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkCmdBeginDebugUtilsLabelEXT(commandBuffer, pLabelInfo);
|
|
}
|
|
static void entry_vkCmdEndDebugUtilsLabelEXT(
|
|
VkCommandBuffer commandBuffer)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCmdEndDebugUtilsLabelEXT");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkCmdEndDebugUtilsLabelEXT(commandBuffer);
|
|
}
|
|
static void entry_vkCmdInsertDebugUtilsLabelEXT(
|
|
VkCommandBuffer commandBuffer,
|
|
const VkDebugUtilsLabelEXT* pLabelInfo)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCmdInsertDebugUtilsLabelEXT");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkCmdInsertDebugUtilsLabelEXT(commandBuffer, pLabelInfo);
|
|
}
|
|
static VkResult entry_vkCreateDebugUtilsMessengerEXT(
|
|
VkInstance instance,
|
|
const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo,
|
|
const VkAllocationCallbacks* pAllocator,
|
|
VkDebugUtilsMessengerEXT* pMessenger)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCreateDebugUtilsMessengerEXT");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkCreateDebugUtilsMessengerEXT_VkResult_return = (VkResult)0;
|
|
vkCreateDebugUtilsMessengerEXT_VkResult_return = vkEnc->vkCreateDebugUtilsMessengerEXT(instance, pCreateInfo, pAllocator, pMessenger);
|
|
return vkCreateDebugUtilsMessengerEXT_VkResult_return;
|
|
}
|
|
static void entry_vkDestroyDebugUtilsMessengerEXT(
|
|
VkInstance instance,
|
|
VkDebugUtilsMessengerEXT messenger,
|
|
const VkAllocationCallbacks* pAllocator)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkDestroyDebugUtilsMessengerEXT");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkDestroyDebugUtilsMessengerEXT(instance, messenger, pAllocator);
|
|
}
|
|
static void entry_vkSubmitDebugUtilsMessageEXT(
|
|
VkInstance instance,
|
|
VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
|
|
VkDebugUtilsMessageTypeFlagsEXT messageTypes,
|
|
const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkSubmitDebugUtilsMessageEXT");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkSubmitDebugUtilsMessageEXT(instance, messageSeverity, messageTypes, pCallbackData);
|
|
}
|
|
#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 = HostConnection::get()->vkEncoder();
|
|
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 = HostConnection::get()->vkEncoder();
|
|
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 = HostConnection::get()->vkEncoder();
|
|
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 = HostConnection::get()->vkEncoder();
|
|
VkResult vkGetMemoryAndroidHardwareBufferANDROID_VkResult_return = (VkResult)0;
|
|
vkGetMemoryAndroidHardwareBufferANDROID_VkResult_return = resources->on_vkGetMemoryAndroidHardwareBufferANDROID(vkEnc, VK_SUCCESS, device, pInfo, pBuffer);
|
|
return vkGetMemoryAndroidHardwareBufferANDROID_VkResult_return;
|
|
}
|
|
#endif
|
|
#ifdef VK_EXT_sampler_filter_minmax
|
|
#endif
|
|
#ifdef VK_AMD_gpu_shader_int16
|
|
#endif
|
|
#ifdef VK_AMD_mixed_attachment_samples
|
|
#endif
|
|
#ifdef VK_AMD_shader_fragment_mask
|
|
#endif
|
|
#ifdef VK_EXT_shader_stencil_export
|
|
#endif
|
|
#ifdef VK_EXT_sample_locations
|
|
static void entry_vkCmdSetSampleLocationsEXT(
|
|
VkCommandBuffer commandBuffer,
|
|
const VkSampleLocationsInfoEXT* pSampleLocationsInfo)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCmdSetSampleLocationsEXT");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkCmdSetSampleLocationsEXT(commandBuffer, pSampleLocationsInfo);
|
|
}
|
|
static void entry_vkGetPhysicalDeviceMultisamplePropertiesEXT(
|
|
VkPhysicalDevice physicalDevice,
|
|
VkSampleCountFlagBits samples,
|
|
VkMultisamplePropertiesEXT* pMultisampleProperties)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetPhysicalDeviceMultisamplePropertiesEXT");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkGetPhysicalDeviceMultisamplePropertiesEXT(physicalDevice, samples, pMultisampleProperties);
|
|
}
|
|
#endif
|
|
#ifdef VK_EXT_blend_operation_advanced
|
|
#endif
|
|
#ifdef VK_NV_fragment_coverage_to_color
|
|
#endif
|
|
#ifdef VK_NV_framebuffer_mixed_samples
|
|
#endif
|
|
#ifdef VK_NV_fill_rectangle
|
|
#endif
|
|
#ifdef VK_EXT_post_depth_coverage
|
|
#endif
|
|
#ifdef VK_EXT_validation_cache
|
|
static VkResult entry_vkCreateValidationCacheEXT(
|
|
VkDevice device,
|
|
const VkValidationCacheCreateInfoEXT* pCreateInfo,
|
|
const VkAllocationCallbacks* pAllocator,
|
|
VkValidationCacheEXT* pValidationCache)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCreateValidationCacheEXT");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkCreateValidationCacheEXT_VkResult_return = (VkResult)0;
|
|
vkCreateValidationCacheEXT_VkResult_return = vkEnc->vkCreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache);
|
|
return vkCreateValidationCacheEXT_VkResult_return;
|
|
}
|
|
static VkResult dynCheck_entry_vkCreateValidationCacheEXT(
|
|
VkDevice device,
|
|
const VkValidationCacheCreateInfoEXT* pCreateInfo,
|
|
const VkAllocationCallbacks* pAllocator,
|
|
VkValidationCacheEXT* pValidationCache)
|
|
{
|
|
auto resources = ResourceTracker::get();
|
|
if (!resources->hasDeviceExtension(device, "VK_EXT_validation_cache"))
|
|
{
|
|
sOnInvalidDynamicallyCheckedCall("vkCreateValidationCacheEXT", "VK_EXT_validation_cache");
|
|
}
|
|
AEMU_SCOPED_TRACE("vkCreateValidationCacheEXT");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkCreateValidationCacheEXT_VkResult_return = (VkResult)0;
|
|
vkCreateValidationCacheEXT_VkResult_return = vkEnc->vkCreateValidationCacheEXT(device, pCreateInfo, pAllocator, pValidationCache);
|
|
return vkCreateValidationCacheEXT_VkResult_return;
|
|
}
|
|
static void entry_vkDestroyValidationCacheEXT(
|
|
VkDevice device,
|
|
VkValidationCacheEXT validationCache,
|
|
const VkAllocationCallbacks* pAllocator)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkDestroyValidationCacheEXT");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkDestroyValidationCacheEXT(device, validationCache, pAllocator);
|
|
}
|
|
static void dynCheck_entry_vkDestroyValidationCacheEXT(
|
|
VkDevice device,
|
|
VkValidationCacheEXT validationCache,
|
|
const VkAllocationCallbacks* pAllocator)
|
|
{
|
|
auto resources = ResourceTracker::get();
|
|
if (!resources->hasDeviceExtension(device, "VK_EXT_validation_cache"))
|
|
{
|
|
sOnInvalidDynamicallyCheckedCall("vkDestroyValidationCacheEXT", "VK_EXT_validation_cache");
|
|
}
|
|
AEMU_SCOPED_TRACE("vkDestroyValidationCacheEXT");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkDestroyValidationCacheEXT(device, validationCache, pAllocator);
|
|
}
|
|
static VkResult entry_vkMergeValidationCachesEXT(
|
|
VkDevice device,
|
|
VkValidationCacheEXT dstCache,
|
|
uint32_t srcCacheCount,
|
|
const VkValidationCacheEXT* pSrcCaches)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkMergeValidationCachesEXT");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkMergeValidationCachesEXT_VkResult_return = (VkResult)0;
|
|
vkMergeValidationCachesEXT_VkResult_return = vkEnc->vkMergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches);
|
|
return vkMergeValidationCachesEXT_VkResult_return;
|
|
}
|
|
static VkResult dynCheck_entry_vkMergeValidationCachesEXT(
|
|
VkDevice device,
|
|
VkValidationCacheEXT dstCache,
|
|
uint32_t srcCacheCount,
|
|
const VkValidationCacheEXT* pSrcCaches)
|
|
{
|
|
auto resources = ResourceTracker::get();
|
|
if (!resources->hasDeviceExtension(device, "VK_EXT_validation_cache"))
|
|
{
|
|
sOnInvalidDynamicallyCheckedCall("vkMergeValidationCachesEXT", "VK_EXT_validation_cache");
|
|
}
|
|
AEMU_SCOPED_TRACE("vkMergeValidationCachesEXT");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkMergeValidationCachesEXT_VkResult_return = (VkResult)0;
|
|
vkMergeValidationCachesEXT_VkResult_return = vkEnc->vkMergeValidationCachesEXT(device, dstCache, srcCacheCount, pSrcCaches);
|
|
return vkMergeValidationCachesEXT_VkResult_return;
|
|
}
|
|
static VkResult entry_vkGetValidationCacheDataEXT(
|
|
VkDevice device,
|
|
VkValidationCacheEXT validationCache,
|
|
size_t* pDataSize,
|
|
void* pData)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetValidationCacheDataEXT");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkGetValidationCacheDataEXT_VkResult_return = (VkResult)0;
|
|
vkGetValidationCacheDataEXT_VkResult_return = vkEnc->vkGetValidationCacheDataEXT(device, validationCache, pDataSize, pData);
|
|
return vkGetValidationCacheDataEXT_VkResult_return;
|
|
}
|
|
static VkResult dynCheck_entry_vkGetValidationCacheDataEXT(
|
|
VkDevice device,
|
|
VkValidationCacheEXT validationCache,
|
|
size_t* pDataSize,
|
|
void* pData)
|
|
{
|
|
auto resources = ResourceTracker::get();
|
|
if (!resources->hasDeviceExtension(device, "VK_EXT_validation_cache"))
|
|
{
|
|
sOnInvalidDynamicallyCheckedCall("vkGetValidationCacheDataEXT", "VK_EXT_validation_cache");
|
|
}
|
|
AEMU_SCOPED_TRACE("vkGetValidationCacheDataEXT");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkGetValidationCacheDataEXT_VkResult_return = (VkResult)0;
|
|
vkGetValidationCacheDataEXT_VkResult_return = vkEnc->vkGetValidationCacheDataEXT(device, validationCache, pDataSize, pData);
|
|
return vkGetValidationCacheDataEXT_VkResult_return;
|
|
}
|
|
#endif
|
|
#ifdef VK_EXT_descriptor_indexing
|
|
#endif
|
|
#ifdef VK_EXT_shader_viewport_index_layer
|
|
#endif
|
|
#ifdef VK_EXT_global_priority
|
|
#endif
|
|
#ifdef VK_EXT_external_memory_host
|
|
static VkResult entry_vkGetMemoryHostPointerPropertiesEXT(
|
|
VkDevice device,
|
|
VkExternalMemoryHandleTypeFlagBits handleType,
|
|
const void* pHostPointer,
|
|
VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetMemoryHostPointerPropertiesEXT");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkGetMemoryHostPointerPropertiesEXT_VkResult_return = (VkResult)0;
|
|
vkGetMemoryHostPointerPropertiesEXT_VkResult_return = vkEnc->vkGetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties);
|
|
return vkGetMemoryHostPointerPropertiesEXT_VkResult_return;
|
|
}
|
|
static VkResult dynCheck_entry_vkGetMemoryHostPointerPropertiesEXT(
|
|
VkDevice device,
|
|
VkExternalMemoryHandleTypeFlagBits handleType,
|
|
const void* pHostPointer,
|
|
VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties)
|
|
{
|
|
auto resources = ResourceTracker::get();
|
|
if (!resources->hasDeviceExtension(device, "VK_EXT_external_memory_host"))
|
|
{
|
|
sOnInvalidDynamicallyCheckedCall("vkGetMemoryHostPointerPropertiesEXT", "VK_EXT_external_memory_host");
|
|
}
|
|
AEMU_SCOPED_TRACE("vkGetMemoryHostPointerPropertiesEXT");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkGetMemoryHostPointerPropertiesEXT_VkResult_return = (VkResult)0;
|
|
vkGetMemoryHostPointerPropertiesEXT_VkResult_return = vkEnc->vkGetMemoryHostPointerPropertiesEXT(device, handleType, pHostPointer, pMemoryHostPointerProperties);
|
|
return vkGetMemoryHostPointerPropertiesEXT_VkResult_return;
|
|
}
|
|
#endif
|
|
#ifdef VK_AMD_buffer_marker
|
|
static void entry_vkCmdWriteBufferMarkerAMD(
|
|
VkCommandBuffer commandBuffer,
|
|
VkPipelineStageFlagBits pipelineStage,
|
|
VkBuffer dstBuffer,
|
|
VkDeviceSize dstOffset,
|
|
uint32_t marker)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCmdWriteBufferMarkerAMD");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkCmdWriteBufferMarkerAMD(commandBuffer, pipelineStage, dstBuffer, dstOffset, marker);
|
|
}
|
|
#endif
|
|
#ifdef VK_AMD_shader_core_properties
|
|
#endif
|
|
#ifdef VK_EXT_vertex_attribute_divisor
|
|
#endif
|
|
#ifdef VK_NV_shader_subgroup_partitioned
|
|
#endif
|
|
#ifdef VK_NV_device_diagnostic_checkpoints
|
|
static void entry_vkCmdSetCheckpointNV(
|
|
VkCommandBuffer commandBuffer,
|
|
const void* pCheckpointMarker)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCmdSetCheckpointNV");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkCmdSetCheckpointNV(commandBuffer, pCheckpointMarker);
|
|
}
|
|
static void entry_vkGetQueueCheckpointDataNV(
|
|
VkQueue queue,
|
|
uint32_t* pCheckpointDataCount,
|
|
VkCheckpointDataNV* pCheckpointData)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetQueueCheckpointDataNV");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkGetQueueCheckpointDataNV(queue, pCheckpointDataCount, pCheckpointData);
|
|
}
|
|
#endif
|
|
#ifdef VK_GOOGLE_address_space
|
|
static VkResult entry_vkMapMemoryIntoAddressSpaceGOOGLE(
|
|
VkDevice device,
|
|
VkDeviceMemory memory,
|
|
uint64_t* pAddress)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkMapMemoryIntoAddressSpaceGOOGLE");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return = (VkResult)0;
|
|
vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return = vkEnc->vkMapMemoryIntoAddressSpaceGOOGLE(device, memory, pAddress);
|
|
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_address_space"))
|
|
{
|
|
sOnInvalidDynamicallyCheckedCall("vkMapMemoryIntoAddressSpaceGOOGLE", "VK_GOOGLE_address_space");
|
|
}
|
|
AEMU_SCOPED_TRACE("vkMapMemoryIntoAddressSpaceGOOGLE");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return = (VkResult)0;
|
|
vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return = vkEnc->vkMapMemoryIntoAddressSpaceGOOGLE(device, memory, pAddress);
|
|
return vkMapMemoryIntoAddressSpaceGOOGLE_VkResult_return;
|
|
}
|
|
#endif
|
|
#ifdef VK_GOOGLE_color_buffer
|
|
static VkResult entry_vkRegisterImageColorBufferGOOGLE(
|
|
VkDevice device,
|
|
VkImage image,
|
|
uint32_t colorBuffer)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkRegisterImageColorBufferGOOGLE");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkRegisterImageColorBufferGOOGLE_VkResult_return = (VkResult)0;
|
|
vkRegisterImageColorBufferGOOGLE_VkResult_return = vkEnc->vkRegisterImageColorBufferGOOGLE(device, image, colorBuffer);
|
|
return vkRegisterImageColorBufferGOOGLE_VkResult_return;
|
|
}
|
|
static VkResult dynCheck_entry_vkRegisterImageColorBufferGOOGLE(
|
|
VkDevice device,
|
|
VkImage image,
|
|
uint32_t colorBuffer)
|
|
{
|
|
auto resources = ResourceTracker::get();
|
|
if (!resources->hasDeviceExtension(device, "VK_GOOGLE_color_buffer"))
|
|
{
|
|
sOnInvalidDynamicallyCheckedCall("vkRegisterImageColorBufferGOOGLE", "VK_GOOGLE_color_buffer");
|
|
}
|
|
AEMU_SCOPED_TRACE("vkRegisterImageColorBufferGOOGLE");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkRegisterImageColorBufferGOOGLE_VkResult_return = (VkResult)0;
|
|
vkRegisterImageColorBufferGOOGLE_VkResult_return = vkEnc->vkRegisterImageColorBufferGOOGLE(device, image, colorBuffer);
|
|
return vkRegisterImageColorBufferGOOGLE_VkResult_return;
|
|
}
|
|
static VkResult entry_vkRegisterBufferColorBufferGOOGLE(
|
|
VkDevice device,
|
|
VkBuffer buffer,
|
|
uint32_t colorBuffer)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkRegisterBufferColorBufferGOOGLE");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkRegisterBufferColorBufferGOOGLE_VkResult_return = (VkResult)0;
|
|
vkRegisterBufferColorBufferGOOGLE_VkResult_return = vkEnc->vkRegisterBufferColorBufferGOOGLE(device, buffer, colorBuffer);
|
|
return vkRegisterBufferColorBufferGOOGLE_VkResult_return;
|
|
}
|
|
static VkResult dynCheck_entry_vkRegisterBufferColorBufferGOOGLE(
|
|
VkDevice device,
|
|
VkBuffer buffer,
|
|
uint32_t colorBuffer)
|
|
{
|
|
auto resources = ResourceTracker::get();
|
|
if (!resources->hasDeviceExtension(device, "VK_GOOGLE_color_buffer"))
|
|
{
|
|
sOnInvalidDynamicallyCheckedCall("vkRegisterBufferColorBufferGOOGLE", "VK_GOOGLE_color_buffer");
|
|
}
|
|
AEMU_SCOPED_TRACE("vkRegisterBufferColorBufferGOOGLE");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkRegisterBufferColorBufferGOOGLE_VkResult_return = (VkResult)0;
|
|
vkRegisterBufferColorBufferGOOGLE_VkResult_return = vkEnc->vkRegisterBufferColorBufferGOOGLE(device, buffer, colorBuffer);
|
|
return vkRegisterBufferColorBufferGOOGLE_VkResult_return;
|
|
}
|
|
#endif
|
|
#ifdef VK_GOOGLE_sized_descriptor_update_template
|
|
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 = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkUpdateDescriptorSetWithTemplateSizedGOOGLE(device, descriptorSet, descriptorUpdateTemplate, imageInfoCount, bufferInfoCount, bufferViewCount, pImageInfoEntryIndices, pBufferInfoEntryIndices, pBufferViewEntryIndices, pImageInfos, pBufferInfos, pBufferViews);
|
|
}
|
|
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_sized_descriptor_update_template"))
|
|
{
|
|
sOnInvalidDynamicallyCheckedCall("vkUpdateDescriptorSetWithTemplateSizedGOOGLE", "VK_GOOGLE_sized_descriptor_update_template");
|
|
}
|
|
AEMU_SCOPED_TRACE("vkUpdateDescriptorSetWithTemplateSizedGOOGLE");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
vkEnc->vkUpdateDescriptorSetWithTemplateSizedGOOGLE(device, descriptorSet, descriptorUpdateTemplate, imageInfoCount, bufferInfoCount, bufferViewCount, pImageInfoEntryIndices, pBufferInfoEntryIndices, pBufferViewEntryIndices, pImageInfos, pBufferInfos, pBufferViews);
|
|
}
|
|
#endif
|
|
#ifdef VK_GOOGLE_async_command_buffers
|
|
static void entry_vkBeginCommandBufferAsyncGOOGLE(
|
|
VkCommandBuffer commandBuffer,
|
|
const VkCommandBufferBeginInfo* pBeginInfo)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkBeginCommandBufferAsyncGOOGLE");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkBeginCommandBufferAsyncGOOGLE(commandBuffer, pBeginInfo);
|
|
}
|
|
static void entry_vkEndCommandBufferAsyncGOOGLE(
|
|
VkCommandBuffer commandBuffer)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkEndCommandBufferAsyncGOOGLE");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkEndCommandBufferAsyncGOOGLE(commandBuffer);
|
|
}
|
|
static void entry_vkResetCommandBufferAsyncGOOGLE(
|
|
VkCommandBuffer commandBuffer,
|
|
VkCommandBufferResetFlags flags)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkResetCommandBufferAsyncGOOGLE");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkResetCommandBufferAsyncGOOGLE(commandBuffer, flags);
|
|
}
|
|
static void entry_vkCommandBufferHostSyncGOOGLE(
|
|
VkCommandBuffer commandBuffer,
|
|
uint32_t needHostSync,
|
|
uint32_t sequenceNumber)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCommandBufferHostSyncGOOGLE");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
ResourceTracker::get()->syncEncodersForCommandBuffer(commandBuffer, vkEnc);
|
|
vkEnc->vkCommandBufferHostSyncGOOGLE(commandBuffer, needHostSync, sequenceNumber);
|
|
}
|
|
#endif
|
|
#ifdef VK_GOOGLE_create_resources_with_requirements
|
|
static VkResult entry_vkCreateImageWithRequirementsGOOGLE(
|
|
VkDevice device,
|
|
const VkImageCreateInfo* pCreateInfo,
|
|
const VkAllocationCallbacks* pAllocator,
|
|
VkImage* pImage,
|
|
VkMemoryRequirements* pMemoryRequirements)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkCreateImageWithRequirementsGOOGLE");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkCreateImageWithRequirementsGOOGLE_VkResult_return = (VkResult)0;
|
|
vkCreateImageWithRequirementsGOOGLE_VkResult_return = vkEnc->vkCreateImageWithRequirementsGOOGLE(device, pCreateInfo, pAllocator, pImage, pMemoryRequirements);
|
|
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_create_resources_with_requirements"))
|
|
{
|
|
sOnInvalidDynamicallyCheckedCall("vkCreateImageWithRequirementsGOOGLE", "VK_GOOGLE_create_resources_with_requirements");
|
|
}
|
|
AEMU_SCOPED_TRACE("vkCreateImageWithRequirementsGOOGLE");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkCreateImageWithRequirementsGOOGLE_VkResult_return = (VkResult)0;
|
|
vkCreateImageWithRequirementsGOOGLE_VkResult_return = vkEnc->vkCreateImageWithRequirementsGOOGLE(device, pCreateInfo, pAllocator, pImage, pMemoryRequirements);
|
|
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 = HostConnection::get()->vkEncoder();
|
|
VkResult vkCreateBufferWithRequirementsGOOGLE_VkResult_return = (VkResult)0;
|
|
vkCreateBufferWithRequirementsGOOGLE_VkResult_return = vkEnc->vkCreateBufferWithRequirementsGOOGLE(device, pCreateInfo, pAllocator, pBuffer, pMemoryRequirements);
|
|
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_create_resources_with_requirements"))
|
|
{
|
|
sOnInvalidDynamicallyCheckedCall("vkCreateBufferWithRequirementsGOOGLE", "VK_GOOGLE_create_resources_with_requirements");
|
|
}
|
|
AEMU_SCOPED_TRACE("vkCreateBufferWithRequirementsGOOGLE");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkCreateBufferWithRequirementsGOOGLE_VkResult_return = (VkResult)0;
|
|
vkCreateBufferWithRequirementsGOOGLE_VkResult_return = vkEnc->vkCreateBufferWithRequirementsGOOGLE(device, pCreateInfo, pAllocator, pBuffer, pMemoryRequirements);
|
|
return vkCreateBufferWithRequirementsGOOGLE_VkResult_return;
|
|
}
|
|
#endif
|
|
#ifdef VK_GOOGLE_address_space_info
|
|
static VkResult entry_vkGetMemoryHostAddressInfoGOOGLE(
|
|
VkDevice device,
|
|
VkDeviceMemory memory,
|
|
uint64_t* pAddress,
|
|
uint64_t* pSize,
|
|
uint64_t* pHostmemId)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkGetMemoryHostAddressInfoGOOGLE");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkGetMemoryHostAddressInfoGOOGLE_VkResult_return = (VkResult)0;
|
|
vkGetMemoryHostAddressInfoGOOGLE_VkResult_return = vkEnc->vkGetMemoryHostAddressInfoGOOGLE(device, memory, pAddress, pSize, pHostmemId);
|
|
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_address_space_info"))
|
|
{
|
|
sOnInvalidDynamicallyCheckedCall("vkGetMemoryHostAddressInfoGOOGLE", "VK_GOOGLE_address_space_info");
|
|
}
|
|
AEMU_SCOPED_TRACE("vkGetMemoryHostAddressInfoGOOGLE");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkGetMemoryHostAddressInfoGOOGLE_VkResult_return = (VkResult)0;
|
|
vkGetMemoryHostAddressInfoGOOGLE_VkResult_return = vkEnc->vkGetMemoryHostAddressInfoGOOGLE(device, memory, pAddress, pSize, pHostmemId);
|
|
return vkGetMemoryHostAddressInfoGOOGLE_VkResult_return;
|
|
}
|
|
#endif
|
|
#ifdef VK_GOOGLE_free_memory_sync
|
|
static VkResult entry_vkFreeMemorySyncGOOGLE(
|
|
VkDevice device,
|
|
VkDeviceMemory memory,
|
|
const VkAllocationCallbacks* pAllocator)
|
|
{
|
|
AEMU_SCOPED_TRACE("vkFreeMemorySyncGOOGLE");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkFreeMemorySyncGOOGLE_VkResult_return = (VkResult)0;
|
|
vkFreeMemorySyncGOOGLE_VkResult_return = vkEnc->vkFreeMemorySyncGOOGLE(device, memory, pAllocator);
|
|
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_free_memory_sync"))
|
|
{
|
|
sOnInvalidDynamicallyCheckedCall("vkFreeMemorySyncGOOGLE", "VK_GOOGLE_free_memory_sync");
|
|
}
|
|
AEMU_SCOPED_TRACE("vkFreeMemorySyncGOOGLE");
|
|
auto vkEnc = HostConnection::get()->vkEncoder();
|
|
VkResult vkFreeMemorySyncGOOGLE_VkResult_return = (VkResult)0;
|
|
vkFreeMemorySyncGOOGLE_VkResult_return = vkEnc->vkFreeMemorySyncGOOGLE(device, memory, pAllocator);
|
|
return vkFreeMemorySyncGOOGLE_VkResult_return;
|
|
}
|
|
#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_KHR_surface
|
|
if (!strcmp(name, "vkDestroySurfaceKHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceSurfaceSupportKHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceSurfaceFormatsKHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceSurfacePresentModesKHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_swapchain
|
|
if (!strcmp(name, "vkCreateSwapchainKHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkDestroySwapchainKHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetSwapchainImagesKHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkAcquireNextImageKHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkQueuePresentKHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetDeviceGroupPresentCapabilitiesKHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetDeviceGroupSurfacePresentModesKHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDevicePresentRectanglesKHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkAcquireNextImage2KHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_display
|
|
if (!strcmp(name, "vkGetPhysicalDeviceDisplayPropertiesKHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetDisplayPlaneSupportedDisplaysKHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetDisplayModePropertiesKHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkCreateDisplayModeKHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetDisplayPlaneCapabilitiesKHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkCreateDisplayPlaneSurfaceKHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_display_swapchain
|
|
if (!strcmp(name, "vkCreateSharedSwapchainsKHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_xlib_surface
|
|
if (!strcmp(name, "vkCreateXlibSurfaceKHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceXlibPresentationSupportKHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_xcb_surface
|
|
if (!strcmp(name, "vkCreateXcbSurfaceKHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceXcbPresentationSupportKHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_wayland_surface
|
|
if (!strcmp(name, "vkCreateWaylandSurfaceKHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceWaylandPresentationSupportKHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_mir_surface
|
|
if (!strcmp(name, "vkCreateMirSurfaceKHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceMirPresentationSupportKHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_android_surface
|
|
if (!strcmp(name, "vkCreateAndroidSurfaceKHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_win32_surface
|
|
if (!strcmp(name, "vkCreateWin32SurfaceKHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceWin32PresentationSupportKHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_get_physical_device_properties2
|
|
if (!strcmp(name, "vkGetPhysicalDeviceFeatures2KHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceProperties2KHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties2KHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties2KHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties2KHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties2KHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_device_group
|
|
if (!strcmp(name, "vkGetDeviceGroupPeerMemoryFeaturesKHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkCmdSetDeviceMaskKHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkCmdDispatchBaseKHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_maintenance1
|
|
if (!strcmp(name, "vkTrimCommandPoolKHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_device_group_creation
|
|
if (!strcmp(name, "vkEnumeratePhysicalDeviceGroupsKHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_external_memory_capabilities
|
|
if (!strcmp(name, "vkGetPhysicalDeviceExternalBufferPropertiesKHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_external_memory_win32
|
|
if (!strcmp(name, "vkGetMemoryWin32HandleKHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetMemoryWin32HandlePropertiesKHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_external_memory_fd
|
|
if (!strcmp(name, "vkGetMemoryFdKHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetMemoryFdPropertiesKHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_external_semaphore_capabilities
|
|
if (!strcmp(name, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_external_semaphore_win32
|
|
if (!strcmp(name, "vkImportSemaphoreWin32HandleKHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetSemaphoreWin32HandleKHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_external_semaphore_fd
|
|
if (!strcmp(name, "vkImportSemaphoreFdKHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetSemaphoreFdKHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_push_descriptor
|
|
if (!strcmp(name, "vkCmdPushDescriptorSetKHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkCmdPushDescriptorSetWithTemplateKHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_descriptor_update_template
|
|
if (!strcmp(name, "vkCreateDescriptorUpdateTemplateKHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkDestroyDescriptorUpdateTemplateKHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkUpdateDescriptorSetWithTemplateKHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_create_renderpass2
|
|
if (!strcmp(name, "vkCreateRenderPass2KHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkCmdBeginRenderPass2KHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkCmdNextSubpass2KHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkCmdEndRenderPass2KHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_shared_presentable_image
|
|
if (!strcmp(name, "vkGetSwapchainStatusKHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_external_fence_capabilities
|
|
if (!strcmp(name, "vkGetPhysicalDeviceExternalFencePropertiesKHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_external_fence_win32
|
|
if (!strcmp(name, "vkImportFenceWin32HandleKHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetFenceWin32HandleKHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_external_fence_fd
|
|
if (!strcmp(name, "vkImportFenceFdKHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetFenceFdKHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_get_surface_capabilities2
|
|
if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2KHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceSurfaceFormats2KHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_get_display_properties2
|
|
if (!strcmp(name, "vkGetPhysicalDeviceDisplayProperties2KHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetDisplayModeProperties2KHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetDisplayPlaneCapabilities2KHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_get_memory_requirements2
|
|
if (!strcmp(name, "vkGetImageMemoryRequirements2KHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetBufferMemoryRequirements2KHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetImageSparseMemoryRequirements2KHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_sampler_ycbcr_conversion
|
|
if (!strcmp(name, "vkCreateSamplerYcbcrConversionKHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkDestroySamplerYcbcrConversionKHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_bind_memory2
|
|
if (!strcmp(name, "vkBindBufferMemory2KHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkBindImageMemory2KHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_maintenance3
|
|
if (!strcmp(name, "vkGetDescriptorSetLayoutSupportKHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_draw_indirect_count
|
|
if (!strcmp(name, "vkCmdDrawIndirectCountKHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkCmdDrawIndexedIndirectCountKHR"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_ANDROID_native_buffer
|
|
if (!strcmp(name, "vkGetSwapchainGrallocUsageANDROID"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkAcquireImageANDROID"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkQueueSignalReleaseImageANDROID"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_EXT_debug_report
|
|
if (!strcmp(name, "vkCreateDebugReportCallbackEXT"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkDestroyDebugReportCallbackEXT"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkDebugReportMessageEXT"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_EXT_debug_marker
|
|
if (!strcmp(name, "vkDebugMarkerSetObjectTagEXT"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkDebugMarkerSetObjectNameEXT"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkCmdDebugMarkerBeginEXT"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkCmdDebugMarkerEndEXT"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkCmdDebugMarkerInsertEXT"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_AMD_draw_indirect_count
|
|
if (!strcmp(name, "vkCmdDrawIndirectCountAMD"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkCmdDrawIndexedIndirectCountAMD"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_AMD_shader_info
|
|
if (!strcmp(name, "vkGetShaderInfoAMD"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_NV_external_memory_capabilities
|
|
if (!strcmp(name, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_NV_external_memory_win32
|
|
if (!strcmp(name, "vkGetMemoryWin32HandleNV"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_NN_vi_surface
|
|
if (!strcmp(name, "vkCreateViSurfaceNN"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_EXT_conditional_rendering
|
|
if (!strcmp(name, "vkCmdBeginConditionalRenderingEXT"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkCmdEndConditionalRenderingEXT"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_NVX_device_generated_commands
|
|
if (!strcmp(name, "vkCmdProcessCommandsNVX"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkCmdReserveSpaceForCommandsNVX"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkCreateIndirectCommandsLayoutNVX"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkDestroyIndirectCommandsLayoutNVX"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkCreateObjectTableNVX"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkDestroyObjectTableNVX"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkRegisterObjectsNVX"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkUnregisterObjectsNVX"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_NV_clip_space_w_scaling
|
|
if (!strcmp(name, "vkCmdSetViewportWScalingNV"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_EXT_direct_mode_display
|
|
if (!strcmp(name, "vkReleaseDisplayEXT"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_EXT_acquire_xlib_display
|
|
if (!strcmp(name, "vkAcquireXlibDisplayEXT"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetRandROutputDisplayEXT"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_EXT_display_surface_counter
|
|
if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2EXT"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_EXT_display_control
|
|
if (!strcmp(name, "vkDisplayPowerControlEXT"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkRegisterDeviceEventEXT"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkRegisterDisplayEventEXT"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetSwapchainCounterEXT"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_GOOGLE_display_timing
|
|
if (!strcmp(name, "vkGetRefreshCycleDurationGOOGLE"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetPastPresentationTimingGOOGLE"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_EXT_discard_rectangles
|
|
if (!strcmp(name, "vkCmdSetDiscardRectangleEXT"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_EXT_hdr_metadata
|
|
if (!strcmp(name, "vkSetHdrMetadataEXT"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_MVK_ios_surface
|
|
if (!strcmp(name, "vkCreateIOSSurfaceMVK"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_MVK_macos_surface
|
|
if (!strcmp(name, "vkCreateMacOSSurfaceMVK"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_EXT_debug_utils
|
|
if (!strcmp(name, "vkSetDebugUtilsObjectNameEXT"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkSetDebugUtilsObjectTagEXT"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkQueueBeginDebugUtilsLabelEXT"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkQueueEndDebugUtilsLabelEXT"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkQueueInsertDebugUtilsLabelEXT"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkCmdBeginDebugUtilsLabelEXT"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkCmdEndDebugUtilsLabelEXT"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkCmdInsertDebugUtilsLabelEXT"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkCreateDebugUtilsMessengerEXT"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkDestroyDebugUtilsMessengerEXT"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkSubmitDebugUtilsMessageEXT"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_ANDROID_external_memory_android_hardware_buffer
|
|
if (!strcmp(name, "vkGetAndroidHardwareBufferPropertiesANDROID"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetMemoryAndroidHardwareBufferANDROID"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_EXT_sample_locations
|
|
if (!strcmp(name, "vkCmdSetSampleLocationsEXT"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceMultisamplePropertiesEXT"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_EXT_validation_cache
|
|
if (!strcmp(name, "vkCreateValidationCacheEXT"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkDestroyValidationCacheEXT"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkMergeValidationCachesEXT"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetValidationCacheDataEXT"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_EXT_external_memory_host
|
|
if (!strcmp(name, "vkGetMemoryHostPointerPropertiesEXT"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_AMD_buffer_marker
|
|
if (!strcmp(name, "vkCmdWriteBufferMarkerAMD"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_NV_device_diagnostic_checkpoints
|
|
if (!strcmp(name, "vkCmdSetCheckpointNV"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetQueueCheckpointDataNV"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_GOOGLE_address_space
|
|
if (!strcmp(name, "vkMapMemoryIntoAddressSpaceGOOGLE"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_GOOGLE_color_buffer
|
|
if (!strcmp(name, "vkRegisterImageColorBufferGOOGLE"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkRegisterBufferColorBufferGOOGLE"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_GOOGLE_sized_descriptor_update_template
|
|
if (!strcmp(name, "vkUpdateDescriptorSetWithTemplateSizedGOOGLE"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_GOOGLE_async_command_buffers
|
|
if (!strcmp(name, "vkBeginCommandBufferAsyncGOOGLE"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkEndCommandBufferAsyncGOOGLE"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkResetCommandBufferAsyncGOOGLE"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkCommandBufferHostSyncGOOGLE"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_GOOGLE_create_resources_with_requirements
|
|
if (!strcmp(name, "vkCreateImageWithRequirementsGOOGLE"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkCreateBufferWithRequirementsGOOGLE"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_GOOGLE_address_space_info
|
|
if (!strcmp(name, "vkGetMemoryHostAddressInfoGOOGLE"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_GOOGLE_free_memory_sync
|
|
if (!strcmp(name, "vkFreeMemorySyncGOOGLE"))
|
|
{
|
|
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;
|
|
#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_KHR_surface
|
|
if (!strcmp(name, "vkDestroySurfaceKHR"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_surface");
|
|
return hasExt ? (void*)entry_vkDestroySurfaceKHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceSurfaceSupportKHR"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_surface");
|
|
return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceSupportKHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_surface");
|
|
return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceCapabilitiesKHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceSurfaceFormatsKHR"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_surface");
|
|
return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceFormatsKHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceSurfacePresentModesKHR"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_surface");
|
|
return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfacePresentModesKHR : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_swapchain
|
|
if (!strcmp(name, "vkCreateSwapchainKHR"))
|
|
{
|
|
return (void*)dynCheck_entry_vkCreateSwapchainKHR;
|
|
}
|
|
if (!strcmp(name, "vkDestroySwapchainKHR"))
|
|
{
|
|
return (void*)dynCheck_entry_vkDestroySwapchainKHR;
|
|
}
|
|
if (!strcmp(name, "vkGetSwapchainImagesKHR"))
|
|
{
|
|
return (void*)dynCheck_entry_vkGetSwapchainImagesKHR;
|
|
}
|
|
if (!strcmp(name, "vkAcquireNextImageKHR"))
|
|
{
|
|
return (void*)dynCheck_entry_vkAcquireNextImageKHR;
|
|
}
|
|
if (!strcmp(name, "vkQueuePresentKHR"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
|
|
return hasExt ? (void*)entry_vkQueuePresentKHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetDeviceGroupPresentCapabilitiesKHR"))
|
|
{
|
|
return (void*)dynCheck_entry_vkGetDeviceGroupPresentCapabilitiesKHR;
|
|
}
|
|
if (!strcmp(name, "vkGetDeviceGroupSurfacePresentModesKHR"))
|
|
{
|
|
return (void*)dynCheck_entry_vkGetDeviceGroupSurfacePresentModesKHR;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDevicePresentRectanglesKHR"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_swapchain");
|
|
return hasExt ? (void*)entry_vkGetPhysicalDevicePresentRectanglesKHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkAcquireNextImage2KHR"))
|
|
{
|
|
return (void*)dynCheck_entry_vkAcquireNextImage2KHR;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_display
|
|
if (!strcmp(name, "vkGetPhysicalDeviceDisplayPropertiesKHR"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
|
|
return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayPropertiesKHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
|
|
return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayPlanePropertiesKHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetDisplayPlaneSupportedDisplaysKHR"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
|
|
return hasExt ? (void*)entry_vkGetDisplayPlaneSupportedDisplaysKHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetDisplayModePropertiesKHR"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
|
|
return hasExt ? (void*)entry_vkGetDisplayModePropertiesKHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkCreateDisplayModeKHR"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
|
|
return hasExt ? (void*)entry_vkCreateDisplayModeKHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetDisplayPlaneCapabilitiesKHR"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
|
|
return hasExt ? (void*)entry_vkGetDisplayPlaneCapabilitiesKHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkCreateDisplayPlaneSurfaceKHR"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_display");
|
|
return hasExt ? (void*)entry_vkCreateDisplayPlaneSurfaceKHR : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_display_swapchain
|
|
if (!strcmp(name, "vkCreateSharedSwapchainsKHR"))
|
|
{
|
|
return (void*)dynCheck_entry_vkCreateSharedSwapchainsKHR;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_xlib_surface
|
|
if (!strcmp(name, "vkCreateXlibSurfaceKHR"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_xlib_surface");
|
|
return hasExt ? (void*)entry_vkCreateXlibSurfaceKHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceXlibPresentationSupportKHR"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_xlib_surface");
|
|
return hasExt ? (void*)entry_vkGetPhysicalDeviceXlibPresentationSupportKHR : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_xcb_surface
|
|
if (!strcmp(name, "vkCreateXcbSurfaceKHR"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_xcb_surface");
|
|
return hasExt ? (void*)entry_vkCreateXcbSurfaceKHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceXcbPresentationSupportKHR"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_xcb_surface");
|
|
return hasExt ? (void*)entry_vkGetPhysicalDeviceXcbPresentationSupportKHR : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_wayland_surface
|
|
if (!strcmp(name, "vkCreateWaylandSurfaceKHR"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_wayland_surface");
|
|
return hasExt ? (void*)entry_vkCreateWaylandSurfaceKHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceWaylandPresentationSupportKHR"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_wayland_surface");
|
|
return hasExt ? (void*)entry_vkGetPhysicalDeviceWaylandPresentationSupportKHR : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_mir_surface
|
|
if (!strcmp(name, "vkCreateMirSurfaceKHR"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_mir_surface");
|
|
return hasExt ? (void*)entry_vkCreateMirSurfaceKHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceMirPresentationSupportKHR"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_mir_surface");
|
|
return hasExt ? (void*)entry_vkGetPhysicalDeviceMirPresentationSupportKHR : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_android_surface
|
|
if (!strcmp(name, "vkCreateAndroidSurfaceKHR"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_android_surface");
|
|
return hasExt ? (void*)entry_vkCreateAndroidSurfaceKHR : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_win32_surface
|
|
if (!strcmp(name, "vkCreateWin32SurfaceKHR"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_win32_surface");
|
|
return hasExt ? (void*)entry_vkCreateWin32SurfaceKHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceWin32PresentationSupportKHR"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_win32_surface");
|
|
return hasExt ? (void*)entry_vkGetPhysicalDeviceWin32PresentationSupportKHR : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_get_physical_device_properties2
|
|
if (!strcmp(name, "vkGetPhysicalDeviceFeatures2KHR"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
|
|
return hasExt ? (void*)entry_vkGetPhysicalDeviceFeatures2KHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceProperties2KHR"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
|
|
return hasExt ? (void*)entry_vkGetPhysicalDeviceProperties2KHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties2KHR"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
|
|
return hasExt ? (void*)entry_vkGetPhysicalDeviceFormatProperties2KHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties2KHR"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
|
|
return hasExt ? (void*)entry_vkGetPhysicalDeviceImageFormatProperties2KHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties2KHR"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
|
|
return hasExt ? (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties2KHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties2KHR"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
|
|
return hasExt ? (void*)entry_vkGetPhysicalDeviceMemoryProperties2KHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_physical_device_properties2");
|
|
return hasExt ? (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties2KHR : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_device_group
|
|
if (!strcmp(name, "vkGetDeviceGroupPeerMemoryFeaturesKHR"))
|
|
{
|
|
return (void*)dynCheck_entry_vkGetDeviceGroupPeerMemoryFeaturesKHR;
|
|
}
|
|
if (!strcmp(name, "vkCmdSetDeviceMaskKHR"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_device_group");
|
|
return hasExt ? (void*)entry_vkCmdSetDeviceMaskKHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkCmdDispatchBaseKHR"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_device_group");
|
|
return hasExt ? (void*)entry_vkCmdDispatchBaseKHR : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_maintenance1
|
|
if (!strcmp(name, "vkTrimCommandPoolKHR"))
|
|
{
|
|
return (void*)dynCheck_entry_vkTrimCommandPoolKHR;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_device_group_creation
|
|
if (!strcmp(name, "vkEnumeratePhysicalDeviceGroupsKHR"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_device_group_creation");
|
|
return hasExt ? (void*)entry_vkEnumeratePhysicalDeviceGroupsKHR : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_external_memory_capabilities
|
|
if (!strcmp(name, "vkGetPhysicalDeviceExternalBufferPropertiesKHR"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_memory_capabilities");
|
|
return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalBufferPropertiesKHR : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_external_memory_win32
|
|
if (!strcmp(name, "vkGetMemoryWin32HandleKHR"))
|
|
{
|
|
return (void*)dynCheck_entry_vkGetMemoryWin32HandleKHR;
|
|
}
|
|
if (!strcmp(name, "vkGetMemoryWin32HandlePropertiesKHR"))
|
|
{
|
|
return (void*)dynCheck_entry_vkGetMemoryWin32HandlePropertiesKHR;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_external_memory_fd
|
|
if (!strcmp(name, "vkGetMemoryFdKHR"))
|
|
{
|
|
return (void*)dynCheck_entry_vkGetMemoryFdKHR;
|
|
}
|
|
if (!strcmp(name, "vkGetMemoryFdPropertiesKHR"))
|
|
{
|
|
return (void*)dynCheck_entry_vkGetMemoryFdPropertiesKHR;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_external_semaphore_capabilities
|
|
if (!strcmp(name, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_semaphore_capabilities");
|
|
return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_external_semaphore_win32
|
|
if (!strcmp(name, "vkImportSemaphoreWin32HandleKHR"))
|
|
{
|
|
return (void*)dynCheck_entry_vkImportSemaphoreWin32HandleKHR;
|
|
}
|
|
if (!strcmp(name, "vkGetSemaphoreWin32HandleKHR"))
|
|
{
|
|
return (void*)dynCheck_entry_vkGetSemaphoreWin32HandleKHR;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_external_semaphore_fd
|
|
if (!strcmp(name, "vkImportSemaphoreFdKHR"))
|
|
{
|
|
return (void*)dynCheck_entry_vkImportSemaphoreFdKHR;
|
|
}
|
|
if (!strcmp(name, "vkGetSemaphoreFdKHR"))
|
|
{
|
|
return (void*)dynCheck_entry_vkGetSemaphoreFdKHR;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_push_descriptor
|
|
if (!strcmp(name, "vkCmdPushDescriptorSetKHR"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_push_descriptor");
|
|
return hasExt ? (void*)entry_vkCmdPushDescriptorSetKHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkCmdPushDescriptorSetWithTemplateKHR"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_push_descriptor");
|
|
return hasExt ? (void*)entry_vkCmdPushDescriptorSetWithTemplateKHR : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_descriptor_update_template
|
|
if (!strcmp(name, "vkCreateDescriptorUpdateTemplateKHR"))
|
|
{
|
|
return (void*)dynCheck_entry_vkCreateDescriptorUpdateTemplateKHR;
|
|
}
|
|
if (!strcmp(name, "vkDestroyDescriptorUpdateTemplateKHR"))
|
|
{
|
|
return (void*)dynCheck_entry_vkDestroyDescriptorUpdateTemplateKHR;
|
|
}
|
|
if (!strcmp(name, "vkUpdateDescriptorSetWithTemplateKHR"))
|
|
{
|
|
return (void*)dynCheck_entry_vkUpdateDescriptorSetWithTemplateKHR;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_create_renderpass2
|
|
if (!strcmp(name, "vkCreateRenderPass2KHR"))
|
|
{
|
|
return (void*)dynCheck_entry_vkCreateRenderPass2KHR;
|
|
}
|
|
if (!strcmp(name, "vkCmdBeginRenderPass2KHR"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_create_renderpass2");
|
|
return hasExt ? (void*)entry_vkCmdBeginRenderPass2KHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkCmdNextSubpass2KHR"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_create_renderpass2");
|
|
return hasExt ? (void*)entry_vkCmdNextSubpass2KHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkCmdEndRenderPass2KHR"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_create_renderpass2");
|
|
return hasExt ? (void*)entry_vkCmdEndRenderPass2KHR : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_shared_presentable_image
|
|
if (!strcmp(name, "vkGetSwapchainStatusKHR"))
|
|
{
|
|
return (void*)dynCheck_entry_vkGetSwapchainStatusKHR;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_external_fence_capabilities
|
|
if (!strcmp(name, "vkGetPhysicalDeviceExternalFencePropertiesKHR"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_external_fence_capabilities");
|
|
return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalFencePropertiesKHR : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_external_fence_win32
|
|
if (!strcmp(name, "vkImportFenceWin32HandleKHR"))
|
|
{
|
|
return (void*)dynCheck_entry_vkImportFenceWin32HandleKHR;
|
|
}
|
|
if (!strcmp(name, "vkGetFenceWin32HandleKHR"))
|
|
{
|
|
return (void*)dynCheck_entry_vkGetFenceWin32HandleKHR;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_external_fence_fd
|
|
if (!strcmp(name, "vkImportFenceFdKHR"))
|
|
{
|
|
return (void*)dynCheck_entry_vkImportFenceFdKHR;
|
|
}
|
|
if (!strcmp(name, "vkGetFenceFdKHR"))
|
|
{
|
|
return (void*)dynCheck_entry_vkGetFenceFdKHR;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_get_surface_capabilities2
|
|
if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2KHR"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_surface_capabilities2");
|
|
return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceCapabilities2KHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceSurfaceFormats2KHR"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_surface_capabilities2");
|
|
return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceFormats2KHR : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_get_display_properties2
|
|
if (!strcmp(name, "vkGetPhysicalDeviceDisplayProperties2KHR"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_display_properties2");
|
|
return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayProperties2KHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_display_properties2");
|
|
return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayPlaneProperties2KHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetDisplayModeProperties2KHR"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_display_properties2");
|
|
return hasExt ? (void*)entry_vkGetDisplayModeProperties2KHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetDisplayPlaneCapabilities2KHR"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_get_display_properties2");
|
|
return hasExt ? (void*)entry_vkGetDisplayPlaneCapabilities2KHR : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_get_memory_requirements2
|
|
if (!strcmp(name, "vkGetImageMemoryRequirements2KHR"))
|
|
{
|
|
return (void*)dynCheck_entry_vkGetImageMemoryRequirements2KHR;
|
|
}
|
|
if (!strcmp(name, "vkGetBufferMemoryRequirements2KHR"))
|
|
{
|
|
return (void*)dynCheck_entry_vkGetBufferMemoryRequirements2KHR;
|
|
}
|
|
if (!strcmp(name, "vkGetImageSparseMemoryRequirements2KHR"))
|
|
{
|
|
return (void*)dynCheck_entry_vkGetImageSparseMemoryRequirements2KHR;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_sampler_ycbcr_conversion
|
|
if (!strcmp(name, "vkCreateSamplerYcbcrConversionKHR"))
|
|
{
|
|
return (void*)dynCheck_entry_vkCreateSamplerYcbcrConversionKHR;
|
|
}
|
|
if (!strcmp(name, "vkDestroySamplerYcbcrConversionKHR"))
|
|
{
|
|
return (void*)dynCheck_entry_vkDestroySamplerYcbcrConversionKHR;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_bind_memory2
|
|
if (!strcmp(name, "vkBindBufferMemory2KHR"))
|
|
{
|
|
return (void*)dynCheck_entry_vkBindBufferMemory2KHR;
|
|
}
|
|
if (!strcmp(name, "vkBindImageMemory2KHR"))
|
|
{
|
|
return (void*)dynCheck_entry_vkBindImageMemory2KHR;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_maintenance3
|
|
if (!strcmp(name, "vkGetDescriptorSetLayoutSupportKHR"))
|
|
{
|
|
return (void*)dynCheck_entry_vkGetDescriptorSetLayoutSupportKHR;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_draw_indirect_count
|
|
if (!strcmp(name, "vkCmdDrawIndirectCountKHR"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_draw_indirect_count");
|
|
return hasExt ? (void*)entry_vkCmdDrawIndirectCountKHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkCmdDrawIndexedIndirectCountKHR"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_KHR_draw_indirect_count");
|
|
return hasExt ? (void*)entry_vkCmdDrawIndexedIndirectCountKHR : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_ANDROID_native_buffer
|
|
if (!strcmp(name, "vkGetSwapchainGrallocUsageANDROID"))
|
|
{
|
|
return (void*)dynCheck_entry_vkGetSwapchainGrallocUsageANDROID;
|
|
}
|
|
if (!strcmp(name, "vkAcquireImageANDROID"))
|
|
{
|
|
return (void*)dynCheck_entry_vkAcquireImageANDROID;
|
|
}
|
|
if (!strcmp(name, "vkQueueSignalReleaseImageANDROID"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_ANDROID_native_buffer");
|
|
return hasExt ? (void*)entry_vkQueueSignalReleaseImageANDROID : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_EXT_debug_report
|
|
if (!strcmp(name, "vkCreateDebugReportCallbackEXT"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_report");
|
|
return hasExt ? (void*)entry_vkCreateDebugReportCallbackEXT : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkDestroyDebugReportCallbackEXT"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_report");
|
|
return hasExt ? (void*)entry_vkDestroyDebugReportCallbackEXT : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkDebugReportMessageEXT"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_report");
|
|
return hasExt ? (void*)entry_vkDebugReportMessageEXT : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_EXT_debug_marker
|
|
if (!strcmp(name, "vkDebugMarkerSetObjectTagEXT"))
|
|
{
|
|
return (void*)dynCheck_entry_vkDebugMarkerSetObjectTagEXT;
|
|
}
|
|
if (!strcmp(name, "vkDebugMarkerSetObjectNameEXT"))
|
|
{
|
|
return (void*)dynCheck_entry_vkDebugMarkerSetObjectNameEXT;
|
|
}
|
|
if (!strcmp(name, "vkCmdDebugMarkerBeginEXT"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_marker");
|
|
return hasExt ? (void*)entry_vkCmdDebugMarkerBeginEXT : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkCmdDebugMarkerEndEXT"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_marker");
|
|
return hasExt ? (void*)entry_vkCmdDebugMarkerEndEXT : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkCmdDebugMarkerInsertEXT"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_marker");
|
|
return hasExt ? (void*)entry_vkCmdDebugMarkerInsertEXT : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_AMD_draw_indirect_count
|
|
if (!strcmp(name, "vkCmdDrawIndirectCountAMD"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_AMD_draw_indirect_count");
|
|
return hasExt ? (void*)entry_vkCmdDrawIndirectCountAMD : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkCmdDrawIndexedIndirectCountAMD"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_AMD_draw_indirect_count");
|
|
return hasExt ? (void*)entry_vkCmdDrawIndexedIndirectCountAMD : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_AMD_shader_info
|
|
if (!strcmp(name, "vkGetShaderInfoAMD"))
|
|
{
|
|
return (void*)dynCheck_entry_vkGetShaderInfoAMD;
|
|
}
|
|
#endif
|
|
#ifdef VK_NV_external_memory_capabilities
|
|
if (!strcmp(name, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_external_memory_capabilities");
|
|
return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalImageFormatPropertiesNV : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_NV_external_memory_win32
|
|
if (!strcmp(name, "vkGetMemoryWin32HandleNV"))
|
|
{
|
|
return (void*)dynCheck_entry_vkGetMemoryWin32HandleNV;
|
|
}
|
|
#endif
|
|
#ifdef VK_NN_vi_surface
|
|
if (!strcmp(name, "vkCreateViSurfaceNN"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_NN_vi_surface");
|
|
return hasExt ? (void*)entry_vkCreateViSurfaceNN : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_EXT_conditional_rendering
|
|
if (!strcmp(name, "vkCmdBeginConditionalRenderingEXT"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_conditional_rendering");
|
|
return hasExt ? (void*)entry_vkCmdBeginConditionalRenderingEXT : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkCmdEndConditionalRenderingEXT"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_conditional_rendering");
|
|
return hasExt ? (void*)entry_vkCmdEndConditionalRenderingEXT : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_NVX_device_generated_commands
|
|
if (!strcmp(name, "vkCmdProcessCommandsNVX"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
|
|
return hasExt ? (void*)entry_vkCmdProcessCommandsNVX : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkCmdReserveSpaceForCommandsNVX"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
|
|
return hasExt ? (void*)entry_vkCmdReserveSpaceForCommandsNVX : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkCreateIndirectCommandsLayoutNVX"))
|
|
{
|
|
return (void*)dynCheck_entry_vkCreateIndirectCommandsLayoutNVX;
|
|
}
|
|
if (!strcmp(name, "vkDestroyIndirectCommandsLayoutNVX"))
|
|
{
|
|
return (void*)dynCheck_entry_vkDestroyIndirectCommandsLayoutNVX;
|
|
}
|
|
if (!strcmp(name, "vkCreateObjectTableNVX"))
|
|
{
|
|
return (void*)dynCheck_entry_vkCreateObjectTableNVX;
|
|
}
|
|
if (!strcmp(name, "vkDestroyObjectTableNVX"))
|
|
{
|
|
return (void*)dynCheck_entry_vkDestroyObjectTableNVX;
|
|
}
|
|
if (!strcmp(name, "vkRegisterObjectsNVX"))
|
|
{
|
|
return (void*)dynCheck_entry_vkRegisterObjectsNVX;
|
|
}
|
|
if (!strcmp(name, "vkUnregisterObjectsNVX"))
|
|
{
|
|
return (void*)dynCheck_entry_vkUnregisterObjectsNVX;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_NVX_device_generated_commands");
|
|
return hasExt ? (void*)entry_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_NV_clip_space_w_scaling
|
|
if (!strcmp(name, "vkCmdSetViewportWScalingNV"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_clip_space_w_scaling");
|
|
return hasExt ? (void*)entry_vkCmdSetViewportWScalingNV : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_EXT_direct_mode_display
|
|
if (!strcmp(name, "vkReleaseDisplayEXT"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_direct_mode_display");
|
|
return hasExt ? (void*)entry_vkReleaseDisplayEXT : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_EXT_acquire_xlib_display
|
|
if (!strcmp(name, "vkAcquireXlibDisplayEXT"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_acquire_xlib_display");
|
|
return hasExt ? (void*)entry_vkAcquireXlibDisplayEXT : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetRandROutputDisplayEXT"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_acquire_xlib_display");
|
|
return hasExt ? (void*)entry_vkGetRandROutputDisplayEXT : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_EXT_display_surface_counter
|
|
if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2EXT"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_display_surface_counter");
|
|
return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceCapabilities2EXT : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_EXT_display_control
|
|
if (!strcmp(name, "vkDisplayPowerControlEXT"))
|
|
{
|
|
return (void*)dynCheck_entry_vkDisplayPowerControlEXT;
|
|
}
|
|
if (!strcmp(name, "vkRegisterDeviceEventEXT"))
|
|
{
|
|
return (void*)dynCheck_entry_vkRegisterDeviceEventEXT;
|
|
}
|
|
if (!strcmp(name, "vkRegisterDisplayEventEXT"))
|
|
{
|
|
return (void*)dynCheck_entry_vkRegisterDisplayEventEXT;
|
|
}
|
|
if (!strcmp(name, "vkGetSwapchainCounterEXT"))
|
|
{
|
|
return (void*)dynCheck_entry_vkGetSwapchainCounterEXT;
|
|
}
|
|
#endif
|
|
#ifdef VK_GOOGLE_display_timing
|
|
if (!strcmp(name, "vkGetRefreshCycleDurationGOOGLE"))
|
|
{
|
|
return (void*)dynCheck_entry_vkGetRefreshCycleDurationGOOGLE;
|
|
}
|
|
if (!strcmp(name, "vkGetPastPresentationTimingGOOGLE"))
|
|
{
|
|
return (void*)dynCheck_entry_vkGetPastPresentationTimingGOOGLE;
|
|
}
|
|
#endif
|
|
#ifdef VK_EXT_discard_rectangles
|
|
if (!strcmp(name, "vkCmdSetDiscardRectangleEXT"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_discard_rectangles");
|
|
return hasExt ? (void*)entry_vkCmdSetDiscardRectangleEXT : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_EXT_hdr_metadata
|
|
if (!strcmp(name, "vkSetHdrMetadataEXT"))
|
|
{
|
|
return (void*)dynCheck_entry_vkSetHdrMetadataEXT;
|
|
}
|
|
#endif
|
|
#ifdef VK_MVK_ios_surface
|
|
if (!strcmp(name, "vkCreateIOSSurfaceMVK"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_MVK_ios_surface");
|
|
return hasExt ? (void*)entry_vkCreateIOSSurfaceMVK : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_MVK_macos_surface
|
|
if (!strcmp(name, "vkCreateMacOSSurfaceMVK"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_MVK_macos_surface");
|
|
return hasExt ? (void*)entry_vkCreateMacOSSurfaceMVK : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_EXT_debug_utils
|
|
if (!strcmp(name, "vkSetDebugUtilsObjectNameEXT"))
|
|
{
|
|
return (void*)dynCheck_entry_vkSetDebugUtilsObjectNameEXT;
|
|
}
|
|
if (!strcmp(name, "vkSetDebugUtilsObjectTagEXT"))
|
|
{
|
|
return (void*)dynCheck_entry_vkSetDebugUtilsObjectTagEXT;
|
|
}
|
|
if (!strcmp(name, "vkQueueBeginDebugUtilsLabelEXT"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
|
|
return hasExt ? (void*)entry_vkQueueBeginDebugUtilsLabelEXT : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkQueueEndDebugUtilsLabelEXT"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
|
|
return hasExt ? (void*)entry_vkQueueEndDebugUtilsLabelEXT : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkQueueInsertDebugUtilsLabelEXT"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
|
|
return hasExt ? (void*)entry_vkQueueInsertDebugUtilsLabelEXT : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkCmdBeginDebugUtilsLabelEXT"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
|
|
return hasExt ? (void*)entry_vkCmdBeginDebugUtilsLabelEXT : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkCmdEndDebugUtilsLabelEXT"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
|
|
return hasExt ? (void*)entry_vkCmdEndDebugUtilsLabelEXT : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkCmdInsertDebugUtilsLabelEXT"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
|
|
return hasExt ? (void*)entry_vkCmdInsertDebugUtilsLabelEXT : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkCreateDebugUtilsMessengerEXT"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
|
|
return hasExt ? (void*)entry_vkCreateDebugUtilsMessengerEXT : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkDestroyDebugUtilsMessengerEXT"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
|
|
return hasExt ? (void*)entry_vkDestroyDebugUtilsMessengerEXT : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkSubmitDebugUtilsMessageEXT"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_debug_utils");
|
|
return hasExt ? (void*)entry_vkSubmitDebugUtilsMessageEXT : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_ANDROID_external_memory_android_hardware_buffer
|
|
if (!strcmp(name, "vkGetAndroidHardwareBufferPropertiesANDROID"))
|
|
{
|
|
return (void*)dynCheck_entry_vkGetAndroidHardwareBufferPropertiesANDROID;
|
|
}
|
|
if (!strcmp(name, "vkGetMemoryAndroidHardwareBufferANDROID"))
|
|
{
|
|
return (void*)dynCheck_entry_vkGetMemoryAndroidHardwareBufferANDROID;
|
|
}
|
|
#endif
|
|
#ifdef VK_EXT_sample_locations
|
|
if (!strcmp(name, "vkCmdSetSampleLocationsEXT"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_sample_locations");
|
|
return hasExt ? (void*)entry_vkCmdSetSampleLocationsEXT : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceMultisamplePropertiesEXT"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_EXT_sample_locations");
|
|
return hasExt ? (void*)entry_vkGetPhysicalDeviceMultisamplePropertiesEXT : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_EXT_validation_cache
|
|
if (!strcmp(name, "vkCreateValidationCacheEXT"))
|
|
{
|
|
return (void*)dynCheck_entry_vkCreateValidationCacheEXT;
|
|
}
|
|
if (!strcmp(name, "vkDestroyValidationCacheEXT"))
|
|
{
|
|
return (void*)dynCheck_entry_vkDestroyValidationCacheEXT;
|
|
}
|
|
if (!strcmp(name, "vkMergeValidationCachesEXT"))
|
|
{
|
|
return (void*)dynCheck_entry_vkMergeValidationCachesEXT;
|
|
}
|
|
if (!strcmp(name, "vkGetValidationCacheDataEXT"))
|
|
{
|
|
return (void*)dynCheck_entry_vkGetValidationCacheDataEXT;
|
|
}
|
|
#endif
|
|
#ifdef VK_EXT_external_memory_host
|
|
if (!strcmp(name, "vkGetMemoryHostPointerPropertiesEXT"))
|
|
{
|
|
return (void*)dynCheck_entry_vkGetMemoryHostPointerPropertiesEXT;
|
|
}
|
|
#endif
|
|
#ifdef VK_AMD_buffer_marker
|
|
if (!strcmp(name, "vkCmdWriteBufferMarkerAMD"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_AMD_buffer_marker");
|
|
return hasExt ? (void*)entry_vkCmdWriteBufferMarkerAMD : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_NV_device_diagnostic_checkpoints
|
|
if (!strcmp(name, "vkCmdSetCheckpointNV"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_device_diagnostic_checkpoints");
|
|
return hasExt ? (void*)entry_vkCmdSetCheckpointNV : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetQueueCheckpointDataNV"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_NV_device_diagnostic_checkpoints");
|
|
return hasExt ? (void*)entry_vkGetQueueCheckpointDataNV : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_GOOGLE_address_space
|
|
if (!strcmp(name, "vkMapMemoryIntoAddressSpaceGOOGLE"))
|
|
{
|
|
return (void*)dynCheck_entry_vkMapMemoryIntoAddressSpaceGOOGLE;
|
|
}
|
|
#endif
|
|
#ifdef VK_GOOGLE_color_buffer
|
|
if (!strcmp(name, "vkRegisterImageColorBufferGOOGLE"))
|
|
{
|
|
return (void*)dynCheck_entry_vkRegisterImageColorBufferGOOGLE;
|
|
}
|
|
if (!strcmp(name, "vkRegisterBufferColorBufferGOOGLE"))
|
|
{
|
|
return (void*)dynCheck_entry_vkRegisterBufferColorBufferGOOGLE;
|
|
}
|
|
#endif
|
|
#ifdef VK_GOOGLE_sized_descriptor_update_template
|
|
if (!strcmp(name, "vkUpdateDescriptorSetWithTemplateSizedGOOGLE"))
|
|
{
|
|
return (void*)dynCheck_entry_vkUpdateDescriptorSetWithTemplateSizedGOOGLE;
|
|
}
|
|
#endif
|
|
#ifdef VK_GOOGLE_async_command_buffers
|
|
if (!strcmp(name, "vkBeginCommandBufferAsyncGOOGLE"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_async_command_buffers");
|
|
return hasExt ? (void*)entry_vkBeginCommandBufferAsyncGOOGLE : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkEndCommandBufferAsyncGOOGLE"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_async_command_buffers");
|
|
return hasExt ? (void*)entry_vkEndCommandBufferAsyncGOOGLE : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkResetCommandBufferAsyncGOOGLE"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_async_command_buffers");
|
|
return hasExt ? (void*)entry_vkResetCommandBufferAsyncGOOGLE : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkCommandBufferHostSyncGOOGLE"))
|
|
{
|
|
bool hasExt = resources->hasInstanceExtension(instance, "VK_GOOGLE_async_command_buffers");
|
|
return hasExt ? (void*)entry_vkCommandBufferHostSyncGOOGLE : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_GOOGLE_create_resources_with_requirements
|
|
if (!strcmp(name, "vkCreateImageWithRequirementsGOOGLE"))
|
|
{
|
|
return (void*)dynCheck_entry_vkCreateImageWithRequirementsGOOGLE;
|
|
}
|
|
if (!strcmp(name, "vkCreateBufferWithRequirementsGOOGLE"))
|
|
{
|
|
return (void*)dynCheck_entry_vkCreateBufferWithRequirementsGOOGLE;
|
|
}
|
|
#endif
|
|
#ifdef VK_GOOGLE_address_space_info
|
|
if (!strcmp(name, "vkGetMemoryHostAddressInfoGOOGLE"))
|
|
{
|
|
return (void*)dynCheck_entry_vkGetMemoryHostAddressInfoGOOGLE;
|
|
}
|
|
#endif
|
|
#ifdef VK_GOOGLE_free_memory_sync
|
|
if (!strcmp(name, "vkFreeMemorySyncGOOGLE"))
|
|
{
|
|
return (void*)dynCheck_entry_vkFreeMemorySyncGOOGLE;
|
|
}
|
|
#endif
|
|
return nullptr;
|
|
}
|
|
void* goldfish_vulkan_get_device_proc_address(VkDevice device, const char* name){
|
|
auto resources = ResourceTracker::get();
|
|
bool has1_1OrHigher = resources->getApiVersionFromDevice(device) >= VK_API_VERSION_1_1;
|
|
#ifdef VK_VERSION_1_0
|
|
if (!strcmp(name, "vkCreateInstance"))
|
|
{
|
|
return (void*)entry_vkCreateInstance;
|
|
}
|
|
if (!strcmp(name, "vkDestroyInstance"))
|
|
{
|
|
return (void*)entry_vkDestroyInstance;
|
|
}
|
|
if (!strcmp(name, "vkEnumeratePhysicalDevices"))
|
|
{
|
|
return (void*)entry_vkEnumeratePhysicalDevices;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceFeatures"))
|
|
{
|
|
return (void*)entry_vkGetPhysicalDeviceFeatures;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties"))
|
|
{
|
|
return (void*)entry_vkGetPhysicalDeviceFormatProperties;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties"))
|
|
{
|
|
return (void*)entry_vkGetPhysicalDeviceImageFormatProperties;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceProperties"))
|
|
{
|
|
return (void*)entry_vkGetPhysicalDeviceProperties;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties"))
|
|
{
|
|
return (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties"))
|
|
{
|
|
return (void*)entry_vkGetPhysicalDeviceMemoryProperties;
|
|
}
|
|
if (!strcmp(name, "vkGetInstanceProcAddr"))
|
|
{
|
|
return (void*)entry_vkGetInstanceProcAddr;
|
|
}
|
|
if (!strcmp(name, "vkGetDeviceProcAddr"))
|
|
{
|
|
return (void*)entry_vkGetDeviceProcAddr;
|
|
}
|
|
if (!strcmp(name, "vkCreateDevice"))
|
|
{
|
|
return (void*)entry_vkCreateDevice;
|
|
}
|
|
if (!strcmp(name, "vkDestroyDevice"))
|
|
{
|
|
return (void*)entry_vkDestroyDevice;
|
|
}
|
|
if (!strcmp(name, "vkEnumerateInstanceExtensionProperties"))
|
|
{
|
|
return (void*)entry_vkEnumerateInstanceExtensionProperties;
|
|
}
|
|
if (!strcmp(name, "vkEnumerateDeviceExtensionProperties"))
|
|
{
|
|
return (void*)entry_vkEnumerateDeviceExtensionProperties;
|
|
}
|
|
if (!strcmp(name, "vkEnumerateInstanceLayerProperties"))
|
|
{
|
|
return (void*)entry_vkEnumerateInstanceLayerProperties;
|
|
}
|
|
if (!strcmp(name, "vkEnumerateDeviceLayerProperties"))
|
|
{
|
|
return (void*)entry_vkEnumerateDeviceLayerProperties;
|
|
}
|
|
if (!strcmp(name, "vkGetDeviceQueue"))
|
|
{
|
|
return (void*)entry_vkGetDeviceQueue;
|
|
}
|
|
if (!strcmp(name, "vkQueueSubmit"))
|
|
{
|
|
return (void*)entry_vkQueueSubmit;
|
|
}
|
|
if (!strcmp(name, "vkQueueWaitIdle"))
|
|
{
|
|
return (void*)entry_vkQueueWaitIdle;
|
|
}
|
|
if (!strcmp(name, "vkDeviceWaitIdle"))
|
|
{
|
|
return (void*)entry_vkDeviceWaitIdle;
|
|
}
|
|
if (!strcmp(name, "vkAllocateMemory"))
|
|
{
|
|
return (void*)entry_vkAllocateMemory;
|
|
}
|
|
if (!strcmp(name, "vkFreeMemory"))
|
|
{
|
|
return (void*)entry_vkFreeMemory;
|
|
}
|
|
if (!strcmp(name, "vkMapMemory"))
|
|
{
|
|
return (void*)entry_vkMapMemory;
|
|
}
|
|
if (!strcmp(name, "vkUnmapMemory"))
|
|
{
|
|
return (void*)entry_vkUnmapMemory;
|
|
}
|
|
if (!strcmp(name, "vkFlushMappedMemoryRanges"))
|
|
{
|
|
return (void*)entry_vkFlushMappedMemoryRanges;
|
|
}
|
|
if (!strcmp(name, "vkInvalidateMappedMemoryRanges"))
|
|
{
|
|
return (void*)entry_vkInvalidateMappedMemoryRanges;
|
|
}
|
|
if (!strcmp(name, "vkGetDeviceMemoryCommitment"))
|
|
{
|
|
return (void*)entry_vkGetDeviceMemoryCommitment;
|
|
}
|
|
if (!strcmp(name, "vkBindBufferMemory"))
|
|
{
|
|
return (void*)entry_vkBindBufferMemory;
|
|
}
|
|
if (!strcmp(name, "vkBindImageMemory"))
|
|
{
|
|
return (void*)entry_vkBindImageMemory;
|
|
}
|
|
if (!strcmp(name, "vkGetBufferMemoryRequirements"))
|
|
{
|
|
return (void*)entry_vkGetBufferMemoryRequirements;
|
|
}
|
|
if (!strcmp(name, "vkGetImageMemoryRequirements"))
|
|
{
|
|
return (void*)entry_vkGetImageMemoryRequirements;
|
|
}
|
|
if (!strcmp(name, "vkGetImageSparseMemoryRequirements"))
|
|
{
|
|
return (void*)entry_vkGetImageSparseMemoryRequirements;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties"))
|
|
{
|
|
return (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties;
|
|
}
|
|
if (!strcmp(name, "vkQueueBindSparse"))
|
|
{
|
|
return (void*)entry_vkQueueBindSparse;
|
|
}
|
|
if (!strcmp(name, "vkCreateFence"))
|
|
{
|
|
return (void*)entry_vkCreateFence;
|
|
}
|
|
if (!strcmp(name, "vkDestroyFence"))
|
|
{
|
|
return (void*)entry_vkDestroyFence;
|
|
}
|
|
if (!strcmp(name, "vkResetFences"))
|
|
{
|
|
return (void*)entry_vkResetFences;
|
|
}
|
|
if (!strcmp(name, "vkGetFenceStatus"))
|
|
{
|
|
return (void*)entry_vkGetFenceStatus;
|
|
}
|
|
if (!strcmp(name, "vkWaitForFences"))
|
|
{
|
|
return (void*)entry_vkWaitForFences;
|
|
}
|
|
if (!strcmp(name, "vkCreateSemaphore"))
|
|
{
|
|
return (void*)entry_vkCreateSemaphore;
|
|
}
|
|
if (!strcmp(name, "vkDestroySemaphore"))
|
|
{
|
|
return (void*)entry_vkDestroySemaphore;
|
|
}
|
|
if (!strcmp(name, "vkCreateEvent"))
|
|
{
|
|
return (void*)entry_vkCreateEvent;
|
|
}
|
|
if (!strcmp(name, "vkDestroyEvent"))
|
|
{
|
|
return (void*)entry_vkDestroyEvent;
|
|
}
|
|
if (!strcmp(name, "vkGetEventStatus"))
|
|
{
|
|
return (void*)entry_vkGetEventStatus;
|
|
}
|
|
if (!strcmp(name, "vkSetEvent"))
|
|
{
|
|
return (void*)entry_vkSetEvent;
|
|
}
|
|
if (!strcmp(name, "vkResetEvent"))
|
|
{
|
|
return (void*)entry_vkResetEvent;
|
|
}
|
|
if (!strcmp(name, "vkCreateQueryPool"))
|
|
{
|
|
return (void*)entry_vkCreateQueryPool;
|
|
}
|
|
if (!strcmp(name, "vkDestroyQueryPool"))
|
|
{
|
|
return (void*)entry_vkDestroyQueryPool;
|
|
}
|
|
if (!strcmp(name, "vkGetQueryPoolResults"))
|
|
{
|
|
return (void*)entry_vkGetQueryPoolResults;
|
|
}
|
|
if (!strcmp(name, "vkCreateBuffer"))
|
|
{
|
|
return (void*)entry_vkCreateBuffer;
|
|
}
|
|
if (!strcmp(name, "vkDestroyBuffer"))
|
|
{
|
|
return (void*)entry_vkDestroyBuffer;
|
|
}
|
|
if (!strcmp(name, "vkCreateBufferView"))
|
|
{
|
|
return (void*)entry_vkCreateBufferView;
|
|
}
|
|
if (!strcmp(name, "vkDestroyBufferView"))
|
|
{
|
|
return (void*)entry_vkDestroyBufferView;
|
|
}
|
|
if (!strcmp(name, "vkCreateImage"))
|
|
{
|
|
return (void*)entry_vkCreateImage;
|
|
}
|
|
if (!strcmp(name, "vkDestroyImage"))
|
|
{
|
|
return (void*)entry_vkDestroyImage;
|
|
}
|
|
if (!strcmp(name, "vkGetImageSubresourceLayout"))
|
|
{
|
|
return (void*)entry_vkGetImageSubresourceLayout;
|
|
}
|
|
if (!strcmp(name, "vkCreateImageView"))
|
|
{
|
|
return (void*)entry_vkCreateImageView;
|
|
}
|
|
if (!strcmp(name, "vkDestroyImageView"))
|
|
{
|
|
return (void*)entry_vkDestroyImageView;
|
|
}
|
|
if (!strcmp(name, "vkCreateShaderModule"))
|
|
{
|
|
return (void*)entry_vkCreateShaderModule;
|
|
}
|
|
if (!strcmp(name, "vkDestroyShaderModule"))
|
|
{
|
|
return (void*)entry_vkDestroyShaderModule;
|
|
}
|
|
if (!strcmp(name, "vkCreatePipelineCache"))
|
|
{
|
|
return (void*)entry_vkCreatePipelineCache;
|
|
}
|
|
if (!strcmp(name, "vkDestroyPipelineCache"))
|
|
{
|
|
return (void*)entry_vkDestroyPipelineCache;
|
|
}
|
|
if (!strcmp(name, "vkGetPipelineCacheData"))
|
|
{
|
|
return (void*)entry_vkGetPipelineCacheData;
|
|
}
|
|
if (!strcmp(name, "vkMergePipelineCaches"))
|
|
{
|
|
return (void*)entry_vkMergePipelineCaches;
|
|
}
|
|
if (!strcmp(name, "vkCreateGraphicsPipelines"))
|
|
{
|
|
return (void*)entry_vkCreateGraphicsPipelines;
|
|
}
|
|
if (!strcmp(name, "vkCreateComputePipelines"))
|
|
{
|
|
return (void*)entry_vkCreateComputePipelines;
|
|
}
|
|
if (!strcmp(name, "vkDestroyPipeline"))
|
|
{
|
|
return (void*)entry_vkDestroyPipeline;
|
|
}
|
|
if (!strcmp(name, "vkCreatePipelineLayout"))
|
|
{
|
|
return (void*)entry_vkCreatePipelineLayout;
|
|
}
|
|
if (!strcmp(name, "vkDestroyPipelineLayout"))
|
|
{
|
|
return (void*)entry_vkDestroyPipelineLayout;
|
|
}
|
|
if (!strcmp(name, "vkCreateSampler"))
|
|
{
|
|
return (void*)entry_vkCreateSampler;
|
|
}
|
|
if (!strcmp(name, "vkDestroySampler"))
|
|
{
|
|
return (void*)entry_vkDestroySampler;
|
|
}
|
|
if (!strcmp(name, "vkCreateDescriptorSetLayout"))
|
|
{
|
|
return (void*)entry_vkCreateDescriptorSetLayout;
|
|
}
|
|
if (!strcmp(name, "vkDestroyDescriptorSetLayout"))
|
|
{
|
|
return (void*)entry_vkDestroyDescriptorSetLayout;
|
|
}
|
|
if (!strcmp(name, "vkCreateDescriptorPool"))
|
|
{
|
|
return (void*)entry_vkCreateDescriptorPool;
|
|
}
|
|
if (!strcmp(name, "vkDestroyDescriptorPool"))
|
|
{
|
|
return (void*)entry_vkDestroyDescriptorPool;
|
|
}
|
|
if (!strcmp(name, "vkResetDescriptorPool"))
|
|
{
|
|
return (void*)entry_vkResetDescriptorPool;
|
|
}
|
|
if (!strcmp(name, "vkAllocateDescriptorSets"))
|
|
{
|
|
return (void*)entry_vkAllocateDescriptorSets;
|
|
}
|
|
if (!strcmp(name, "vkFreeDescriptorSets"))
|
|
{
|
|
return (void*)entry_vkFreeDescriptorSets;
|
|
}
|
|
if (!strcmp(name, "vkUpdateDescriptorSets"))
|
|
{
|
|
return (void*)entry_vkUpdateDescriptorSets;
|
|
}
|
|
if (!strcmp(name, "vkCreateFramebuffer"))
|
|
{
|
|
return (void*)entry_vkCreateFramebuffer;
|
|
}
|
|
if (!strcmp(name, "vkDestroyFramebuffer"))
|
|
{
|
|
return (void*)entry_vkDestroyFramebuffer;
|
|
}
|
|
if (!strcmp(name, "vkCreateRenderPass"))
|
|
{
|
|
return (void*)entry_vkCreateRenderPass;
|
|
}
|
|
if (!strcmp(name, "vkDestroyRenderPass"))
|
|
{
|
|
return (void*)entry_vkDestroyRenderPass;
|
|
}
|
|
if (!strcmp(name, "vkGetRenderAreaGranularity"))
|
|
{
|
|
return (void*)entry_vkGetRenderAreaGranularity;
|
|
}
|
|
if (!strcmp(name, "vkCreateCommandPool"))
|
|
{
|
|
return (void*)entry_vkCreateCommandPool;
|
|
}
|
|
if (!strcmp(name, "vkDestroyCommandPool"))
|
|
{
|
|
return (void*)entry_vkDestroyCommandPool;
|
|
}
|
|
if (!strcmp(name, "vkResetCommandPool"))
|
|
{
|
|
return (void*)entry_vkResetCommandPool;
|
|
}
|
|
if (!strcmp(name, "vkAllocateCommandBuffers"))
|
|
{
|
|
return (void*)entry_vkAllocateCommandBuffers;
|
|
}
|
|
if (!strcmp(name, "vkFreeCommandBuffers"))
|
|
{
|
|
return (void*)entry_vkFreeCommandBuffers;
|
|
}
|
|
if (!strcmp(name, "vkBeginCommandBuffer"))
|
|
{
|
|
return (void*)entry_vkBeginCommandBuffer;
|
|
}
|
|
if (!strcmp(name, "vkEndCommandBuffer"))
|
|
{
|
|
return (void*)entry_vkEndCommandBuffer;
|
|
}
|
|
if (!strcmp(name, "vkResetCommandBuffer"))
|
|
{
|
|
return (void*)entry_vkResetCommandBuffer;
|
|
}
|
|
if (!strcmp(name, "vkCmdBindPipeline"))
|
|
{
|
|
return (void*)entry_vkCmdBindPipeline;
|
|
}
|
|
if (!strcmp(name, "vkCmdSetViewport"))
|
|
{
|
|
return (void*)entry_vkCmdSetViewport;
|
|
}
|
|
if (!strcmp(name, "vkCmdSetScissor"))
|
|
{
|
|
return (void*)entry_vkCmdSetScissor;
|
|
}
|
|
if (!strcmp(name, "vkCmdSetLineWidth"))
|
|
{
|
|
return (void*)entry_vkCmdSetLineWidth;
|
|
}
|
|
if (!strcmp(name, "vkCmdSetDepthBias"))
|
|
{
|
|
return (void*)entry_vkCmdSetDepthBias;
|
|
}
|
|
if (!strcmp(name, "vkCmdSetBlendConstants"))
|
|
{
|
|
return (void*)entry_vkCmdSetBlendConstants;
|
|
}
|
|
if (!strcmp(name, "vkCmdSetDepthBounds"))
|
|
{
|
|
return (void*)entry_vkCmdSetDepthBounds;
|
|
}
|
|
if (!strcmp(name, "vkCmdSetStencilCompareMask"))
|
|
{
|
|
return (void*)entry_vkCmdSetStencilCompareMask;
|
|
}
|
|
if (!strcmp(name, "vkCmdSetStencilWriteMask"))
|
|
{
|
|
return (void*)entry_vkCmdSetStencilWriteMask;
|
|
}
|
|
if (!strcmp(name, "vkCmdSetStencilReference"))
|
|
{
|
|
return (void*)entry_vkCmdSetStencilReference;
|
|
}
|
|
if (!strcmp(name, "vkCmdBindDescriptorSets"))
|
|
{
|
|
return (void*)entry_vkCmdBindDescriptorSets;
|
|
}
|
|
if (!strcmp(name, "vkCmdBindIndexBuffer"))
|
|
{
|
|
return (void*)entry_vkCmdBindIndexBuffer;
|
|
}
|
|
if (!strcmp(name, "vkCmdBindVertexBuffers"))
|
|
{
|
|
return (void*)entry_vkCmdBindVertexBuffers;
|
|
}
|
|
if (!strcmp(name, "vkCmdDraw"))
|
|
{
|
|
return (void*)entry_vkCmdDraw;
|
|
}
|
|
if (!strcmp(name, "vkCmdDrawIndexed"))
|
|
{
|
|
return (void*)entry_vkCmdDrawIndexed;
|
|
}
|
|
if (!strcmp(name, "vkCmdDrawIndirect"))
|
|
{
|
|
return (void*)entry_vkCmdDrawIndirect;
|
|
}
|
|
if (!strcmp(name, "vkCmdDrawIndexedIndirect"))
|
|
{
|
|
return (void*)entry_vkCmdDrawIndexedIndirect;
|
|
}
|
|
if (!strcmp(name, "vkCmdDispatch"))
|
|
{
|
|
return (void*)entry_vkCmdDispatch;
|
|
}
|
|
if (!strcmp(name, "vkCmdDispatchIndirect"))
|
|
{
|
|
return (void*)entry_vkCmdDispatchIndirect;
|
|
}
|
|
if (!strcmp(name, "vkCmdCopyBuffer"))
|
|
{
|
|
return (void*)entry_vkCmdCopyBuffer;
|
|
}
|
|
if (!strcmp(name, "vkCmdCopyImage"))
|
|
{
|
|
return (void*)entry_vkCmdCopyImage;
|
|
}
|
|
if (!strcmp(name, "vkCmdBlitImage"))
|
|
{
|
|
return (void*)entry_vkCmdBlitImage;
|
|
}
|
|
if (!strcmp(name, "vkCmdCopyBufferToImage"))
|
|
{
|
|
return (void*)entry_vkCmdCopyBufferToImage;
|
|
}
|
|
if (!strcmp(name, "vkCmdCopyImageToBuffer"))
|
|
{
|
|
return (void*)entry_vkCmdCopyImageToBuffer;
|
|
}
|
|
if (!strcmp(name, "vkCmdUpdateBuffer"))
|
|
{
|
|
return (void*)entry_vkCmdUpdateBuffer;
|
|
}
|
|
if (!strcmp(name, "vkCmdFillBuffer"))
|
|
{
|
|
return (void*)entry_vkCmdFillBuffer;
|
|
}
|
|
if (!strcmp(name, "vkCmdClearColorImage"))
|
|
{
|
|
return (void*)entry_vkCmdClearColorImage;
|
|
}
|
|
if (!strcmp(name, "vkCmdClearDepthStencilImage"))
|
|
{
|
|
return (void*)entry_vkCmdClearDepthStencilImage;
|
|
}
|
|
if (!strcmp(name, "vkCmdClearAttachments"))
|
|
{
|
|
return (void*)entry_vkCmdClearAttachments;
|
|
}
|
|
if (!strcmp(name, "vkCmdResolveImage"))
|
|
{
|
|
return (void*)entry_vkCmdResolveImage;
|
|
}
|
|
if (!strcmp(name, "vkCmdSetEvent"))
|
|
{
|
|
return (void*)entry_vkCmdSetEvent;
|
|
}
|
|
if (!strcmp(name, "vkCmdResetEvent"))
|
|
{
|
|
return (void*)entry_vkCmdResetEvent;
|
|
}
|
|
if (!strcmp(name, "vkCmdWaitEvents"))
|
|
{
|
|
return (void*)entry_vkCmdWaitEvents;
|
|
}
|
|
if (!strcmp(name, "vkCmdPipelineBarrier"))
|
|
{
|
|
return (void*)entry_vkCmdPipelineBarrier;
|
|
}
|
|
if (!strcmp(name, "vkCmdBeginQuery"))
|
|
{
|
|
return (void*)entry_vkCmdBeginQuery;
|
|
}
|
|
if (!strcmp(name, "vkCmdEndQuery"))
|
|
{
|
|
return (void*)entry_vkCmdEndQuery;
|
|
}
|
|
if (!strcmp(name, "vkCmdResetQueryPool"))
|
|
{
|
|
return (void*)entry_vkCmdResetQueryPool;
|
|
}
|
|
if (!strcmp(name, "vkCmdWriteTimestamp"))
|
|
{
|
|
return (void*)entry_vkCmdWriteTimestamp;
|
|
}
|
|
if (!strcmp(name, "vkCmdCopyQueryPoolResults"))
|
|
{
|
|
return (void*)entry_vkCmdCopyQueryPoolResults;
|
|
}
|
|
if (!strcmp(name, "vkCmdPushConstants"))
|
|
{
|
|
return (void*)entry_vkCmdPushConstants;
|
|
}
|
|
if (!strcmp(name, "vkCmdBeginRenderPass"))
|
|
{
|
|
return (void*)entry_vkCmdBeginRenderPass;
|
|
}
|
|
if (!strcmp(name, "vkCmdNextSubpass"))
|
|
{
|
|
return (void*)entry_vkCmdNextSubpass;
|
|
}
|
|
if (!strcmp(name, "vkCmdEndRenderPass"))
|
|
{
|
|
return (void*)entry_vkCmdEndRenderPass;
|
|
}
|
|
if (!strcmp(name, "vkCmdExecuteCommands"))
|
|
{
|
|
return (void*)entry_vkCmdExecuteCommands;
|
|
}
|
|
#endif
|
|
#ifdef VK_VERSION_1_1
|
|
if (!strcmp(name, "vkEnumerateInstanceVersion"))
|
|
{
|
|
return has1_1OrHigher ? (void*)entry_vkEnumerateInstanceVersion : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkBindBufferMemory2"))
|
|
{
|
|
return has1_1OrHigher ? (void*)entry_vkBindBufferMemory2 : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkBindImageMemory2"))
|
|
{
|
|
return has1_1OrHigher ? (void*)entry_vkBindImageMemory2 : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetDeviceGroupPeerMemoryFeatures"))
|
|
{
|
|
return has1_1OrHigher ? (void*)entry_vkGetDeviceGroupPeerMemoryFeatures : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkCmdSetDeviceMask"))
|
|
{
|
|
return has1_1OrHigher ? (void*)entry_vkCmdSetDeviceMask : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkCmdDispatchBase"))
|
|
{
|
|
return has1_1OrHigher ? (void*)entry_vkCmdDispatchBase : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkEnumeratePhysicalDeviceGroups"))
|
|
{
|
|
return nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetImageMemoryRequirements2"))
|
|
{
|
|
return has1_1OrHigher ? (void*)entry_vkGetImageMemoryRequirements2 : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetBufferMemoryRequirements2"))
|
|
{
|
|
return has1_1OrHigher ? (void*)entry_vkGetBufferMemoryRequirements2 : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetImageSparseMemoryRequirements2"))
|
|
{
|
|
return has1_1OrHigher ? (void*)entry_vkGetImageSparseMemoryRequirements2 : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceFeatures2"))
|
|
{
|
|
return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceFeatures2 : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceProperties2"))
|
|
{
|
|
return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceProperties2 : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties2"))
|
|
{
|
|
return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceFormatProperties2 : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties2"))
|
|
{
|
|
return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceImageFormatProperties2 : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties2"))
|
|
{
|
|
return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties2 : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties2"))
|
|
{
|
|
return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceMemoryProperties2 : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties2"))
|
|
{
|
|
return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties2 : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkTrimCommandPool"))
|
|
{
|
|
return has1_1OrHigher ? (void*)entry_vkTrimCommandPool : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetDeviceQueue2"))
|
|
{
|
|
return has1_1OrHigher ? (void*)entry_vkGetDeviceQueue2 : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkCreateSamplerYcbcrConversion"))
|
|
{
|
|
return has1_1OrHigher ? (void*)entry_vkCreateSamplerYcbcrConversion : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkDestroySamplerYcbcrConversion"))
|
|
{
|
|
return has1_1OrHigher ? (void*)entry_vkDestroySamplerYcbcrConversion : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkCreateDescriptorUpdateTemplate"))
|
|
{
|
|
return has1_1OrHigher ? (void*)entry_vkCreateDescriptorUpdateTemplate : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkDestroyDescriptorUpdateTemplate"))
|
|
{
|
|
return has1_1OrHigher ? (void*)entry_vkDestroyDescriptorUpdateTemplate : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkUpdateDescriptorSetWithTemplate"))
|
|
{
|
|
return has1_1OrHigher ? (void*)entry_vkUpdateDescriptorSetWithTemplate : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceExternalBufferProperties"))
|
|
{
|
|
return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceExternalBufferProperties : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceExternalFenceProperties"))
|
|
{
|
|
return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceExternalFenceProperties : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceExternalSemaphoreProperties"))
|
|
{
|
|
return has1_1OrHigher ? (void*)entry_vkGetPhysicalDeviceExternalSemaphoreProperties : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetDescriptorSetLayoutSupport"))
|
|
{
|
|
return has1_1OrHigher ? (void*)entry_vkGetDescriptorSetLayoutSupport : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_surface
|
|
if (!strcmp(name, "vkDestroySurfaceKHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_surface");
|
|
return hasExt ? (void*)entry_vkDestroySurfaceKHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceSurfaceSupportKHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_surface");
|
|
return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceSupportKHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_surface");
|
|
return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceCapabilitiesKHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceSurfaceFormatsKHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_surface");
|
|
return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceFormatsKHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceSurfacePresentModesKHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_surface");
|
|
return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfacePresentModesKHR : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_swapchain
|
|
if (!strcmp(name, "vkCreateSwapchainKHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
|
|
return hasExt ? (void*)entry_vkCreateSwapchainKHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkDestroySwapchainKHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
|
|
return hasExt ? (void*)entry_vkDestroySwapchainKHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetSwapchainImagesKHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
|
|
return hasExt ? (void*)entry_vkGetSwapchainImagesKHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkAcquireNextImageKHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
|
|
return hasExt ? (void*)entry_vkAcquireNextImageKHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkQueuePresentKHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
|
|
return hasExt ? (void*)entry_vkQueuePresentKHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetDeviceGroupPresentCapabilitiesKHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
|
|
return hasExt ? (void*)entry_vkGetDeviceGroupPresentCapabilitiesKHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetDeviceGroupSurfacePresentModesKHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
|
|
return hasExt ? (void*)entry_vkGetDeviceGroupSurfacePresentModesKHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDevicePresentRectanglesKHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
|
|
return hasExt ? (void*)entry_vkGetPhysicalDevicePresentRectanglesKHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkAcquireNextImage2KHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_swapchain");
|
|
return hasExt ? (void*)entry_vkAcquireNextImage2KHR : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_display
|
|
if (!strcmp(name, "vkGetPhysicalDeviceDisplayPropertiesKHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
|
|
return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayPropertiesKHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
|
|
return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayPlanePropertiesKHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetDisplayPlaneSupportedDisplaysKHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
|
|
return hasExt ? (void*)entry_vkGetDisplayPlaneSupportedDisplaysKHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetDisplayModePropertiesKHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
|
|
return hasExt ? (void*)entry_vkGetDisplayModePropertiesKHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkCreateDisplayModeKHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
|
|
return hasExt ? (void*)entry_vkCreateDisplayModeKHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetDisplayPlaneCapabilitiesKHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
|
|
return hasExt ? (void*)entry_vkGetDisplayPlaneCapabilitiesKHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkCreateDisplayPlaneSurfaceKHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display");
|
|
return hasExt ? (void*)entry_vkCreateDisplayPlaneSurfaceKHR : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_display_swapchain
|
|
if (!strcmp(name, "vkCreateSharedSwapchainsKHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_display_swapchain");
|
|
return hasExt ? (void*)entry_vkCreateSharedSwapchainsKHR : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_xlib_surface
|
|
if (!strcmp(name, "vkCreateXlibSurfaceKHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_xlib_surface");
|
|
return hasExt ? (void*)entry_vkCreateXlibSurfaceKHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceXlibPresentationSupportKHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_xlib_surface");
|
|
return hasExt ? (void*)entry_vkGetPhysicalDeviceXlibPresentationSupportKHR : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_xcb_surface
|
|
if (!strcmp(name, "vkCreateXcbSurfaceKHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_xcb_surface");
|
|
return hasExt ? (void*)entry_vkCreateXcbSurfaceKHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceXcbPresentationSupportKHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_xcb_surface");
|
|
return hasExt ? (void*)entry_vkGetPhysicalDeviceXcbPresentationSupportKHR : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_wayland_surface
|
|
if (!strcmp(name, "vkCreateWaylandSurfaceKHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_wayland_surface");
|
|
return hasExt ? (void*)entry_vkCreateWaylandSurfaceKHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceWaylandPresentationSupportKHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_wayland_surface");
|
|
return hasExt ? (void*)entry_vkGetPhysicalDeviceWaylandPresentationSupportKHR : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_mir_surface
|
|
if (!strcmp(name, "vkCreateMirSurfaceKHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_mir_surface");
|
|
return hasExt ? (void*)entry_vkCreateMirSurfaceKHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceMirPresentationSupportKHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_mir_surface");
|
|
return hasExt ? (void*)entry_vkGetPhysicalDeviceMirPresentationSupportKHR : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_android_surface
|
|
if (!strcmp(name, "vkCreateAndroidSurfaceKHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_android_surface");
|
|
return hasExt ? (void*)entry_vkCreateAndroidSurfaceKHR : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_win32_surface
|
|
if (!strcmp(name, "vkCreateWin32SurfaceKHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_win32_surface");
|
|
return hasExt ? (void*)entry_vkCreateWin32SurfaceKHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceWin32PresentationSupportKHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_win32_surface");
|
|
return hasExt ? (void*)entry_vkGetPhysicalDeviceWin32PresentationSupportKHR : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_get_physical_device_properties2
|
|
if (!strcmp(name, "vkGetPhysicalDeviceFeatures2KHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
|
|
return hasExt ? (void*)entry_vkGetPhysicalDeviceFeatures2KHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceProperties2KHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
|
|
return hasExt ? (void*)entry_vkGetPhysicalDeviceProperties2KHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceFormatProperties2KHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
|
|
return hasExt ? (void*)entry_vkGetPhysicalDeviceFormatProperties2KHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceImageFormatProperties2KHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
|
|
return hasExt ? (void*)entry_vkGetPhysicalDeviceImageFormatProperties2KHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceQueueFamilyProperties2KHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
|
|
return hasExt ? (void*)entry_vkGetPhysicalDeviceQueueFamilyProperties2KHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceMemoryProperties2KHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
|
|
return hasExt ? (void*)entry_vkGetPhysicalDeviceMemoryProperties2KHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_physical_device_properties2");
|
|
return hasExt ? (void*)entry_vkGetPhysicalDeviceSparseImageFormatProperties2KHR : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_device_group
|
|
if (!strcmp(name, "vkGetDeviceGroupPeerMemoryFeaturesKHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_device_group");
|
|
return hasExt ? (void*)entry_vkGetDeviceGroupPeerMemoryFeaturesKHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkCmdSetDeviceMaskKHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_device_group");
|
|
return hasExt ? (void*)entry_vkCmdSetDeviceMaskKHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkCmdDispatchBaseKHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_device_group");
|
|
return hasExt ? (void*)entry_vkCmdDispatchBaseKHR : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_maintenance1
|
|
if (!strcmp(name, "vkTrimCommandPoolKHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_maintenance1");
|
|
return hasExt ? (void*)entry_vkTrimCommandPoolKHR : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_device_group_creation
|
|
if (!strcmp(name, "vkEnumeratePhysicalDeviceGroupsKHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_device_group_creation");
|
|
return hasExt ? (void*)entry_vkEnumeratePhysicalDeviceGroupsKHR : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_external_memory_capabilities
|
|
if (!strcmp(name, "vkGetPhysicalDeviceExternalBufferPropertiesKHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_memory_capabilities");
|
|
return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalBufferPropertiesKHR : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_external_memory_win32
|
|
if (!strcmp(name, "vkGetMemoryWin32HandleKHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_memory_win32");
|
|
return hasExt ? (void*)entry_vkGetMemoryWin32HandleKHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetMemoryWin32HandlePropertiesKHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_memory_win32");
|
|
return hasExt ? (void*)entry_vkGetMemoryWin32HandlePropertiesKHR : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_external_memory_fd
|
|
if (!strcmp(name, "vkGetMemoryFdKHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_memory_fd");
|
|
return hasExt ? (void*)entry_vkGetMemoryFdKHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetMemoryFdPropertiesKHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_memory_fd");
|
|
return hasExt ? (void*)entry_vkGetMemoryFdPropertiesKHR : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_external_semaphore_capabilities
|
|
if (!strcmp(name, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_semaphore_capabilities");
|
|
return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_external_semaphore_win32
|
|
if (!strcmp(name, "vkImportSemaphoreWin32HandleKHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_semaphore_win32");
|
|
return hasExt ? (void*)entry_vkImportSemaphoreWin32HandleKHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetSemaphoreWin32HandleKHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_semaphore_win32");
|
|
return hasExt ? (void*)entry_vkGetSemaphoreWin32HandleKHR : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_external_semaphore_fd
|
|
if (!strcmp(name, "vkImportSemaphoreFdKHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_semaphore_fd");
|
|
return hasExt ? (void*)entry_vkImportSemaphoreFdKHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetSemaphoreFdKHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_semaphore_fd");
|
|
return hasExt ? (void*)entry_vkGetSemaphoreFdKHR : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_push_descriptor
|
|
if (!strcmp(name, "vkCmdPushDescriptorSetKHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_push_descriptor");
|
|
return hasExt ? (void*)entry_vkCmdPushDescriptorSetKHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkCmdPushDescriptorSetWithTemplateKHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_push_descriptor");
|
|
return hasExt ? (void*)entry_vkCmdPushDescriptorSetWithTemplateKHR : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_descriptor_update_template
|
|
if (!strcmp(name, "vkCreateDescriptorUpdateTemplateKHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_descriptor_update_template");
|
|
return hasExt ? (void*)entry_vkCreateDescriptorUpdateTemplateKHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkDestroyDescriptorUpdateTemplateKHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_descriptor_update_template");
|
|
return hasExt ? (void*)entry_vkDestroyDescriptorUpdateTemplateKHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkUpdateDescriptorSetWithTemplateKHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_descriptor_update_template");
|
|
return hasExt ? (void*)entry_vkUpdateDescriptorSetWithTemplateKHR : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_create_renderpass2
|
|
if (!strcmp(name, "vkCreateRenderPass2KHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_create_renderpass2");
|
|
return hasExt ? (void*)entry_vkCreateRenderPass2KHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkCmdBeginRenderPass2KHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_create_renderpass2");
|
|
return hasExt ? (void*)entry_vkCmdBeginRenderPass2KHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkCmdNextSubpass2KHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_create_renderpass2");
|
|
return hasExt ? (void*)entry_vkCmdNextSubpass2KHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkCmdEndRenderPass2KHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_create_renderpass2");
|
|
return hasExt ? (void*)entry_vkCmdEndRenderPass2KHR : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_shared_presentable_image
|
|
if (!strcmp(name, "vkGetSwapchainStatusKHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_shared_presentable_image");
|
|
return hasExt ? (void*)entry_vkGetSwapchainStatusKHR : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_external_fence_capabilities
|
|
if (!strcmp(name, "vkGetPhysicalDeviceExternalFencePropertiesKHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_fence_capabilities");
|
|
return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalFencePropertiesKHR : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_external_fence_win32
|
|
if (!strcmp(name, "vkImportFenceWin32HandleKHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_fence_win32");
|
|
return hasExt ? (void*)entry_vkImportFenceWin32HandleKHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetFenceWin32HandleKHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_fence_win32");
|
|
return hasExt ? (void*)entry_vkGetFenceWin32HandleKHR : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_external_fence_fd
|
|
if (!strcmp(name, "vkImportFenceFdKHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_fence_fd");
|
|
return hasExt ? (void*)entry_vkImportFenceFdKHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetFenceFdKHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_external_fence_fd");
|
|
return hasExt ? (void*)entry_vkGetFenceFdKHR : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_get_surface_capabilities2
|
|
if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2KHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_surface_capabilities2");
|
|
return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceCapabilities2KHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceSurfaceFormats2KHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_surface_capabilities2");
|
|
return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceFormats2KHR : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_get_display_properties2
|
|
if (!strcmp(name, "vkGetPhysicalDeviceDisplayProperties2KHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_display_properties2");
|
|
return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayProperties2KHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_display_properties2");
|
|
return hasExt ? (void*)entry_vkGetPhysicalDeviceDisplayPlaneProperties2KHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetDisplayModeProperties2KHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_display_properties2");
|
|
return hasExt ? (void*)entry_vkGetDisplayModeProperties2KHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetDisplayPlaneCapabilities2KHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_display_properties2");
|
|
return hasExt ? (void*)entry_vkGetDisplayPlaneCapabilities2KHR : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_get_memory_requirements2
|
|
if (!strcmp(name, "vkGetImageMemoryRequirements2KHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_memory_requirements2");
|
|
return hasExt ? (void*)entry_vkGetImageMemoryRequirements2KHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetBufferMemoryRequirements2KHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_memory_requirements2");
|
|
return hasExt ? (void*)entry_vkGetBufferMemoryRequirements2KHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetImageSparseMemoryRequirements2KHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_get_memory_requirements2");
|
|
return hasExt ? (void*)entry_vkGetImageSparseMemoryRequirements2KHR : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_sampler_ycbcr_conversion
|
|
if (!strcmp(name, "vkCreateSamplerYcbcrConversionKHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_sampler_ycbcr_conversion");
|
|
return hasExt ? (void*)entry_vkCreateSamplerYcbcrConversionKHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkDestroySamplerYcbcrConversionKHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_sampler_ycbcr_conversion");
|
|
return hasExt ? (void*)entry_vkDestroySamplerYcbcrConversionKHR : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_bind_memory2
|
|
if (!strcmp(name, "vkBindBufferMemory2KHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_bind_memory2");
|
|
return hasExt ? (void*)entry_vkBindBufferMemory2KHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkBindImageMemory2KHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_bind_memory2");
|
|
return hasExt ? (void*)entry_vkBindImageMemory2KHR : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_maintenance3
|
|
if (!strcmp(name, "vkGetDescriptorSetLayoutSupportKHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_maintenance3");
|
|
return hasExt ? (void*)entry_vkGetDescriptorSetLayoutSupportKHR : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_KHR_draw_indirect_count
|
|
if (!strcmp(name, "vkCmdDrawIndirectCountKHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_draw_indirect_count");
|
|
return hasExt ? (void*)entry_vkCmdDrawIndirectCountKHR : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkCmdDrawIndexedIndirectCountKHR"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_KHR_draw_indirect_count");
|
|
return hasExt ? (void*)entry_vkCmdDrawIndexedIndirectCountKHR : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_ANDROID_native_buffer
|
|
if (!strcmp(name, "vkGetSwapchainGrallocUsageANDROID"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_ANDROID_native_buffer");
|
|
return hasExt ? (void*)entry_vkGetSwapchainGrallocUsageANDROID : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkAcquireImageANDROID"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_ANDROID_native_buffer");
|
|
return hasExt ? (void*)entry_vkAcquireImageANDROID : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkQueueSignalReleaseImageANDROID"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_ANDROID_native_buffer");
|
|
return hasExt ? (void*)entry_vkQueueSignalReleaseImageANDROID : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_EXT_debug_report
|
|
if (!strcmp(name, "vkCreateDebugReportCallbackEXT"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_report");
|
|
return hasExt ? (void*)entry_vkCreateDebugReportCallbackEXT : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkDestroyDebugReportCallbackEXT"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_report");
|
|
return hasExt ? (void*)entry_vkDestroyDebugReportCallbackEXT : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkDebugReportMessageEXT"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_report");
|
|
return hasExt ? (void*)entry_vkDebugReportMessageEXT : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_EXT_debug_marker
|
|
if (!strcmp(name, "vkDebugMarkerSetObjectTagEXT"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_marker");
|
|
return hasExt ? (void*)entry_vkDebugMarkerSetObjectTagEXT : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkDebugMarkerSetObjectNameEXT"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_marker");
|
|
return hasExt ? (void*)entry_vkDebugMarkerSetObjectNameEXT : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkCmdDebugMarkerBeginEXT"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_marker");
|
|
return hasExt ? (void*)entry_vkCmdDebugMarkerBeginEXT : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkCmdDebugMarkerEndEXT"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_marker");
|
|
return hasExt ? (void*)entry_vkCmdDebugMarkerEndEXT : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkCmdDebugMarkerInsertEXT"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_marker");
|
|
return hasExt ? (void*)entry_vkCmdDebugMarkerInsertEXT : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_AMD_draw_indirect_count
|
|
if (!strcmp(name, "vkCmdDrawIndirectCountAMD"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_AMD_draw_indirect_count");
|
|
return hasExt ? (void*)entry_vkCmdDrawIndirectCountAMD : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkCmdDrawIndexedIndirectCountAMD"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_AMD_draw_indirect_count");
|
|
return hasExt ? (void*)entry_vkCmdDrawIndexedIndirectCountAMD : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_AMD_shader_info
|
|
if (!strcmp(name, "vkGetShaderInfoAMD"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_AMD_shader_info");
|
|
return hasExt ? (void*)entry_vkGetShaderInfoAMD : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_NV_external_memory_capabilities
|
|
if (!strcmp(name, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_NV_external_memory_capabilities");
|
|
return hasExt ? (void*)entry_vkGetPhysicalDeviceExternalImageFormatPropertiesNV : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_NV_external_memory_win32
|
|
if (!strcmp(name, "vkGetMemoryWin32HandleNV"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_NV_external_memory_win32");
|
|
return hasExt ? (void*)entry_vkGetMemoryWin32HandleNV : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_NN_vi_surface
|
|
if (!strcmp(name, "vkCreateViSurfaceNN"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_NN_vi_surface");
|
|
return hasExt ? (void*)entry_vkCreateViSurfaceNN : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_EXT_conditional_rendering
|
|
if (!strcmp(name, "vkCmdBeginConditionalRenderingEXT"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_conditional_rendering");
|
|
return hasExt ? (void*)entry_vkCmdBeginConditionalRenderingEXT : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkCmdEndConditionalRenderingEXT"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_conditional_rendering");
|
|
return hasExt ? (void*)entry_vkCmdEndConditionalRenderingEXT : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_NVX_device_generated_commands
|
|
if (!strcmp(name, "vkCmdProcessCommandsNVX"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
|
|
return hasExt ? (void*)entry_vkCmdProcessCommandsNVX : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkCmdReserveSpaceForCommandsNVX"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
|
|
return hasExt ? (void*)entry_vkCmdReserveSpaceForCommandsNVX : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkCreateIndirectCommandsLayoutNVX"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
|
|
return hasExt ? (void*)entry_vkCreateIndirectCommandsLayoutNVX : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkDestroyIndirectCommandsLayoutNVX"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
|
|
return hasExt ? (void*)entry_vkDestroyIndirectCommandsLayoutNVX : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkCreateObjectTableNVX"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
|
|
return hasExt ? (void*)entry_vkCreateObjectTableNVX : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkDestroyObjectTableNVX"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
|
|
return hasExt ? (void*)entry_vkDestroyObjectTableNVX : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkRegisterObjectsNVX"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
|
|
return hasExt ? (void*)entry_vkRegisterObjectsNVX : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkUnregisterObjectsNVX"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
|
|
return hasExt ? (void*)entry_vkUnregisterObjectsNVX : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_NVX_device_generated_commands");
|
|
return hasExt ? (void*)entry_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_NV_clip_space_w_scaling
|
|
if (!strcmp(name, "vkCmdSetViewportWScalingNV"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_NV_clip_space_w_scaling");
|
|
return hasExt ? (void*)entry_vkCmdSetViewportWScalingNV : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_EXT_direct_mode_display
|
|
if (!strcmp(name, "vkReleaseDisplayEXT"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_direct_mode_display");
|
|
return hasExt ? (void*)entry_vkReleaseDisplayEXT : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_EXT_acquire_xlib_display
|
|
if (!strcmp(name, "vkAcquireXlibDisplayEXT"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_acquire_xlib_display");
|
|
return hasExt ? (void*)entry_vkAcquireXlibDisplayEXT : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetRandROutputDisplayEXT"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_acquire_xlib_display");
|
|
return hasExt ? (void*)entry_vkGetRandROutputDisplayEXT : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_EXT_display_surface_counter
|
|
if (!strcmp(name, "vkGetPhysicalDeviceSurfaceCapabilities2EXT"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_display_surface_counter");
|
|
return hasExt ? (void*)entry_vkGetPhysicalDeviceSurfaceCapabilities2EXT : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_EXT_display_control
|
|
if (!strcmp(name, "vkDisplayPowerControlEXT"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_display_control");
|
|
return hasExt ? (void*)entry_vkDisplayPowerControlEXT : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkRegisterDeviceEventEXT"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_display_control");
|
|
return hasExt ? (void*)entry_vkRegisterDeviceEventEXT : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkRegisterDisplayEventEXT"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_display_control");
|
|
return hasExt ? (void*)entry_vkRegisterDisplayEventEXT : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetSwapchainCounterEXT"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_display_control");
|
|
return hasExt ? (void*)entry_vkGetSwapchainCounterEXT : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_GOOGLE_display_timing
|
|
if (!strcmp(name, "vkGetRefreshCycleDurationGOOGLE"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_display_timing");
|
|
return hasExt ? (void*)entry_vkGetRefreshCycleDurationGOOGLE : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetPastPresentationTimingGOOGLE"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_display_timing");
|
|
return hasExt ? (void*)entry_vkGetPastPresentationTimingGOOGLE : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_EXT_discard_rectangles
|
|
if (!strcmp(name, "vkCmdSetDiscardRectangleEXT"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_discard_rectangles");
|
|
return hasExt ? (void*)entry_vkCmdSetDiscardRectangleEXT : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_EXT_hdr_metadata
|
|
if (!strcmp(name, "vkSetHdrMetadataEXT"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_hdr_metadata");
|
|
return hasExt ? (void*)entry_vkSetHdrMetadataEXT : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_MVK_ios_surface
|
|
if (!strcmp(name, "vkCreateIOSSurfaceMVK"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_MVK_ios_surface");
|
|
return hasExt ? (void*)entry_vkCreateIOSSurfaceMVK : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_MVK_macos_surface
|
|
if (!strcmp(name, "vkCreateMacOSSurfaceMVK"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_MVK_macos_surface");
|
|
return hasExt ? (void*)entry_vkCreateMacOSSurfaceMVK : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_EXT_debug_utils
|
|
if (!strcmp(name, "vkSetDebugUtilsObjectNameEXT"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
|
|
return hasExt ? (void*)entry_vkSetDebugUtilsObjectNameEXT : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkSetDebugUtilsObjectTagEXT"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
|
|
return hasExt ? (void*)entry_vkSetDebugUtilsObjectTagEXT : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkQueueBeginDebugUtilsLabelEXT"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
|
|
return hasExt ? (void*)entry_vkQueueBeginDebugUtilsLabelEXT : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkQueueEndDebugUtilsLabelEXT"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
|
|
return hasExt ? (void*)entry_vkQueueEndDebugUtilsLabelEXT : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkQueueInsertDebugUtilsLabelEXT"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
|
|
return hasExt ? (void*)entry_vkQueueInsertDebugUtilsLabelEXT : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkCmdBeginDebugUtilsLabelEXT"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
|
|
return hasExt ? (void*)entry_vkCmdBeginDebugUtilsLabelEXT : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkCmdEndDebugUtilsLabelEXT"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
|
|
return hasExt ? (void*)entry_vkCmdEndDebugUtilsLabelEXT : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkCmdInsertDebugUtilsLabelEXT"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
|
|
return hasExt ? (void*)entry_vkCmdInsertDebugUtilsLabelEXT : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkCreateDebugUtilsMessengerEXT"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
|
|
return hasExt ? (void*)entry_vkCreateDebugUtilsMessengerEXT : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkDestroyDebugUtilsMessengerEXT"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
|
|
return hasExt ? (void*)entry_vkDestroyDebugUtilsMessengerEXT : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkSubmitDebugUtilsMessageEXT"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_debug_utils");
|
|
return hasExt ? (void*)entry_vkSubmitDebugUtilsMessageEXT : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_ANDROID_external_memory_android_hardware_buffer
|
|
if (!strcmp(name, "vkGetAndroidHardwareBufferPropertiesANDROID"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_ANDROID_external_memory_android_hardware_buffer");
|
|
return hasExt ? (void*)entry_vkGetAndroidHardwareBufferPropertiesANDROID : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetMemoryAndroidHardwareBufferANDROID"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_ANDROID_external_memory_android_hardware_buffer");
|
|
return hasExt ? (void*)entry_vkGetMemoryAndroidHardwareBufferANDROID : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_EXT_sample_locations
|
|
if (!strcmp(name, "vkCmdSetSampleLocationsEXT"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_sample_locations");
|
|
return hasExt ? (void*)entry_vkCmdSetSampleLocationsEXT : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetPhysicalDeviceMultisamplePropertiesEXT"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_sample_locations");
|
|
return hasExt ? (void*)entry_vkGetPhysicalDeviceMultisamplePropertiesEXT : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_EXT_validation_cache
|
|
if (!strcmp(name, "vkCreateValidationCacheEXT"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_validation_cache");
|
|
return hasExt ? (void*)entry_vkCreateValidationCacheEXT : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkDestroyValidationCacheEXT"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_validation_cache");
|
|
return hasExt ? (void*)entry_vkDestroyValidationCacheEXT : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkMergeValidationCachesEXT"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_validation_cache");
|
|
return hasExt ? (void*)entry_vkMergeValidationCachesEXT : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetValidationCacheDataEXT"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_validation_cache");
|
|
return hasExt ? (void*)entry_vkGetValidationCacheDataEXT : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_EXT_external_memory_host
|
|
if (!strcmp(name, "vkGetMemoryHostPointerPropertiesEXT"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_EXT_external_memory_host");
|
|
return hasExt ? (void*)entry_vkGetMemoryHostPointerPropertiesEXT : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_AMD_buffer_marker
|
|
if (!strcmp(name, "vkCmdWriteBufferMarkerAMD"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_AMD_buffer_marker");
|
|
return hasExt ? (void*)entry_vkCmdWriteBufferMarkerAMD : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_NV_device_diagnostic_checkpoints
|
|
if (!strcmp(name, "vkCmdSetCheckpointNV"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_NV_device_diagnostic_checkpoints");
|
|
return hasExt ? (void*)entry_vkCmdSetCheckpointNV : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkGetQueueCheckpointDataNV"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_NV_device_diagnostic_checkpoints");
|
|
return hasExt ? (void*)entry_vkGetQueueCheckpointDataNV : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_GOOGLE_address_space
|
|
if (!strcmp(name, "vkMapMemoryIntoAddressSpaceGOOGLE"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_address_space");
|
|
return hasExt ? (void*)entry_vkMapMemoryIntoAddressSpaceGOOGLE : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_GOOGLE_color_buffer
|
|
if (!strcmp(name, "vkRegisterImageColorBufferGOOGLE"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_color_buffer");
|
|
return hasExt ? (void*)entry_vkRegisterImageColorBufferGOOGLE : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkRegisterBufferColorBufferGOOGLE"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_color_buffer");
|
|
return hasExt ? (void*)entry_vkRegisterBufferColorBufferGOOGLE : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_GOOGLE_sized_descriptor_update_template
|
|
if (!strcmp(name, "vkUpdateDescriptorSetWithTemplateSizedGOOGLE"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_sized_descriptor_update_template");
|
|
return hasExt ? (void*)entry_vkUpdateDescriptorSetWithTemplateSizedGOOGLE : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_GOOGLE_async_command_buffers
|
|
if (!strcmp(name, "vkBeginCommandBufferAsyncGOOGLE"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_async_command_buffers");
|
|
return hasExt ? (void*)entry_vkBeginCommandBufferAsyncGOOGLE : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkEndCommandBufferAsyncGOOGLE"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_async_command_buffers");
|
|
return hasExt ? (void*)entry_vkEndCommandBufferAsyncGOOGLE : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkResetCommandBufferAsyncGOOGLE"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_async_command_buffers");
|
|
return hasExt ? (void*)entry_vkResetCommandBufferAsyncGOOGLE : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkCommandBufferHostSyncGOOGLE"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_async_command_buffers");
|
|
return hasExt ? (void*)entry_vkCommandBufferHostSyncGOOGLE : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_GOOGLE_create_resources_with_requirements
|
|
if (!strcmp(name, "vkCreateImageWithRequirementsGOOGLE"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_create_resources_with_requirements");
|
|
return hasExt ? (void*)entry_vkCreateImageWithRequirementsGOOGLE : nullptr;
|
|
}
|
|
if (!strcmp(name, "vkCreateBufferWithRequirementsGOOGLE"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_create_resources_with_requirements");
|
|
return hasExt ? (void*)entry_vkCreateBufferWithRequirementsGOOGLE : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_GOOGLE_address_space_info
|
|
if (!strcmp(name, "vkGetMemoryHostAddressInfoGOOGLE"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_address_space_info");
|
|
return hasExt ? (void*)entry_vkGetMemoryHostAddressInfoGOOGLE : nullptr;
|
|
}
|
|
#endif
|
|
#ifdef VK_GOOGLE_free_memory_sync
|
|
if (!strcmp(name, "vkFreeMemorySyncGOOGLE"))
|
|
{
|
|
bool hasExt = resources->hasDeviceExtension(device, "VK_GOOGLE_free_memory_sync");
|
|
return hasExt ? (void*)entry_vkFreeMemorySyncGOOGLE : nullptr;
|
|
}
|
|
#endif
|
|
return nullptr;
|
|
}
|
|
|
|
} // namespace goldfish_vk
|