mirror of
https://gitee.com/openharmony/third_party_vulkan-loader
synced 2024-11-23 07:10:23 +00:00
0281b281d0
Signed-off-by: andrew0229 <zhangzhao62@huawei.com> Change-Id: Ifc4224db2c6ea7c159d3cabe8f075475d47a41a8
513 lines
27 KiB
C
513 lines
27 KiB
C
// *** THIS FILE IS GENERATED - DO NOT EDIT ***
|
|
// See loader_extension_generator.py for modifications
|
|
|
|
/*
|
|
* Copyright (c) 2015-2022 The Khronos Group Inc.
|
|
* Copyright (c) 2015-2022 Valve Corporation
|
|
* Copyright (c) 2015-2022 LunarG, Inc.
|
|
* Copyright (c) 2021-2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
|
|
* Copyright (c) 2023-2023 RasterGrid Kft.
|
|
*
|
|
* 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.
|
|
*
|
|
* Author: Mark Lobodzinski <mark@lunarg.com>
|
|
* Author: Mark Young <marky@lunarg.com>
|
|
*/
|
|
|
|
// clang-format off
|
|
#pragma once
|
|
|
|
// Structures defined externally, but used here
|
|
struct loader_instance;
|
|
struct loader_device;
|
|
struct loader_icd_term;
|
|
struct loader_dev_dispatch_table;
|
|
|
|
// Device extension error function
|
|
VKAPI_ATTR VkResult VKAPI_CALL vkDevExtError(VkDevice dev);
|
|
|
|
// Extension interception for vkGetInstanceProcAddr function, so we can return
|
|
// the appropriate information for any instance extensions we know about.
|
|
bool extension_instance_gpa(struct loader_instance *ptr_instance, const char *name, void **addr);
|
|
|
|
// Extension interception for vkCreateInstance function, so we can properly
|
|
// detect and enable any instance extension information for extensions we know
|
|
// about.
|
|
void extensions_create_instance(struct loader_instance *ptr_instance, const VkInstanceCreateInfo *pCreateInfo);
|
|
|
|
// Extension interception for vkGetDeviceProcAddr function, so we can return
|
|
// an appropriate terminator if this is one of those few device commands requiring
|
|
// a terminator.
|
|
PFN_vkVoidFunction get_extension_device_proc_terminator(struct loader_device *dev, const char *name, bool* found_name);
|
|
|
|
// Dispatch table properly filled in with appropriate terminators for the
|
|
// supported extensions.
|
|
extern const VkLayerInstanceDispatchTable instance_disp;
|
|
|
|
// Array of extension strings for instance extensions we support.
|
|
extern const char *const LOADER_INSTANCE_EXTENSIONS[];
|
|
|
|
VKAPI_ATTR bool VKAPI_CALL loader_icd_init_entries(struct loader_instance* inst, struct loader_icd_term *icd_term);
|
|
|
|
// Init Device function pointer dispatch table with core commands
|
|
VKAPI_ATTR void VKAPI_CALL loader_init_device_dispatch_table(struct loader_dev_dispatch_table *dev_table, PFN_vkGetDeviceProcAddr gpa,
|
|
VkDevice dev);
|
|
|
|
// Init Device function pointer dispatch table with extension commands
|
|
VKAPI_ATTR void VKAPI_CALL loader_init_device_extension_dispatch_table(struct loader_dev_dispatch_table *dev_table,
|
|
PFN_vkGetInstanceProcAddr gipa,
|
|
PFN_vkGetDeviceProcAddr gdpa,
|
|
VkInstance inst,
|
|
VkDevice dev);
|
|
|
|
// Init Instance function pointer dispatch table with core commands
|
|
VKAPI_ATTR void VKAPI_CALL loader_init_instance_core_dispatch_table(VkLayerInstanceDispatchTable *table, PFN_vkGetInstanceProcAddr gpa,
|
|
VkInstance inst);
|
|
|
|
// Init Instance function pointer dispatch table with core commands
|
|
VKAPI_ATTR void VKAPI_CALL loader_init_instance_extension_dispatch_table(VkLayerInstanceDispatchTable *table, PFN_vkGetInstanceProcAddr gpa,
|
|
VkInstance inst);
|
|
|
|
// Device command lookup function
|
|
VKAPI_ATTR void* VKAPI_CALL loader_lookup_device_dispatch_table(const VkLayerDispatchTable *table, const char *name, bool* name_found);
|
|
|
|
// Instance command lookup function
|
|
VKAPI_ATTR void* VKAPI_CALL loader_lookup_instance_dispatch_table(const VkLayerInstanceDispatchTable *table, const char *name,
|
|
bool *found_name);
|
|
|
|
// Loader core instance terminators
|
|
VKAPI_ATTR VkResult VKAPI_CALL terminator_CreateInstance(
|
|
const VkInstanceCreateInfo* pCreateInfo,
|
|
const VkAllocationCallbacks* pAllocator,
|
|
VkInstance* pInstance);
|
|
VKAPI_ATTR void VKAPI_CALL terminator_DestroyInstance(
|
|
VkInstance instance,
|
|
const VkAllocationCallbacks* pAllocator);
|
|
VKAPI_ATTR VkResult VKAPI_CALL terminator_EnumeratePhysicalDevices(
|
|
VkInstance instance,
|
|
uint32_t* pPhysicalDeviceCount,
|
|
VkPhysicalDevice* pPhysicalDevices);
|
|
VKAPI_ATTR void VKAPI_CALL terminator_GetPhysicalDeviceFeatures(
|
|
VkPhysicalDevice physicalDevice,
|
|
VkPhysicalDeviceFeatures* pFeatures);
|
|
VKAPI_ATTR void VKAPI_CALL terminator_GetPhysicalDeviceFormatProperties(
|
|
VkPhysicalDevice physicalDevice,
|
|
VkFormat format,
|
|
VkFormatProperties* pFormatProperties);
|
|
VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceImageFormatProperties(
|
|
VkPhysicalDevice physicalDevice,
|
|
VkFormat format,
|
|
VkImageType type,
|
|
VkImageTiling tiling,
|
|
VkImageUsageFlags usage,
|
|
VkImageCreateFlags flags,
|
|
VkImageFormatProperties* pImageFormatProperties);
|
|
VKAPI_ATTR void VKAPI_CALL terminator_GetPhysicalDeviceProperties(
|
|
VkPhysicalDevice physicalDevice,
|
|
VkPhysicalDeviceProperties* pProperties);
|
|
VKAPI_ATTR void VKAPI_CALL terminator_GetPhysicalDeviceQueueFamilyProperties(
|
|
VkPhysicalDevice physicalDevice,
|
|
uint32_t* pQueueFamilyPropertyCount,
|
|
VkQueueFamilyProperties* pQueueFamilyProperties);
|
|
VKAPI_ATTR void VKAPI_CALL terminator_GetPhysicalDeviceMemoryProperties(
|
|
VkPhysicalDevice physicalDevice,
|
|
VkPhysicalDeviceMemoryProperties* pMemoryProperties);
|
|
VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL terminator_GetInstanceProcAddr(
|
|
VkInstance instance,
|
|
const char* pName);
|
|
VKAPI_ATTR VkResult VKAPI_CALL terminator_CreateDevice(
|
|
VkPhysicalDevice physicalDevice,
|
|
const VkDeviceCreateInfo* pCreateInfo,
|
|
const VkAllocationCallbacks* pAllocator,
|
|
VkDevice* pDevice);
|
|
VKAPI_ATTR VkResult VKAPI_CALL terminator_EnumerateInstanceExtensionProperties(
|
|
const VkEnumerateInstanceExtensionPropertiesChain* chain,
|
|
const char* pLayerName,
|
|
uint32_t* pPropertyCount,
|
|
VkExtensionProperties* pProperties);
|
|
VKAPI_ATTR VkResult VKAPI_CALL terminator_EnumerateDeviceExtensionProperties(
|
|
VkPhysicalDevice physicalDevice,
|
|
const char* pLayerName,
|
|
uint32_t* pPropertyCount,
|
|
VkExtensionProperties* pProperties);
|
|
VKAPI_ATTR VkResult VKAPI_CALL terminator_EnumerateInstanceLayerProperties(
|
|
const VkEnumerateInstanceLayerPropertiesChain* chain,
|
|
uint32_t* pPropertyCount,
|
|
VkLayerProperties* pProperties);
|
|
VKAPI_ATTR VkResult VKAPI_CALL terminator_EnumerateDeviceLayerProperties(
|
|
VkPhysicalDevice physicalDevice,
|
|
uint32_t* pPropertyCount,
|
|
VkLayerProperties* pProperties);
|
|
VKAPI_ATTR void VKAPI_CALL terminator_GetPhysicalDeviceSparseImageFormatProperties(
|
|
VkPhysicalDevice physicalDevice,
|
|
VkFormat format,
|
|
VkImageType type,
|
|
VkSampleCountFlagBits samples,
|
|
VkImageUsageFlags usage,
|
|
VkImageTiling tiling,
|
|
uint32_t* pPropertyCount,
|
|
VkSparseImageFormatProperties* pProperties);
|
|
VKAPI_ATTR VkResult VKAPI_CALL terminator_EnumerateInstanceVersion(
|
|
const VkEnumerateInstanceVersionChain* chain,
|
|
uint32_t* pApiVersion);
|
|
VKAPI_ATTR VkResult VKAPI_CALL terminator_EnumeratePhysicalDeviceGroups(
|
|
VkInstance instance,
|
|
uint32_t* pPhysicalDeviceGroupCount,
|
|
VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
|
|
VKAPI_ATTR void VKAPI_CALL terminator_GetPhysicalDeviceFeatures2(
|
|
VkPhysicalDevice physicalDevice,
|
|
VkPhysicalDeviceFeatures2* pFeatures);
|
|
VKAPI_ATTR void VKAPI_CALL terminator_GetPhysicalDeviceProperties2(
|
|
VkPhysicalDevice physicalDevice,
|
|
VkPhysicalDeviceProperties2* pProperties);
|
|
VKAPI_ATTR void VKAPI_CALL terminator_GetPhysicalDeviceFormatProperties2(
|
|
VkPhysicalDevice physicalDevice,
|
|
VkFormat format,
|
|
VkFormatProperties2* pFormatProperties);
|
|
VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceImageFormatProperties2(
|
|
VkPhysicalDevice physicalDevice,
|
|
const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
|
|
VkImageFormatProperties2* pImageFormatProperties);
|
|
VKAPI_ATTR void VKAPI_CALL terminator_GetPhysicalDeviceQueueFamilyProperties2(
|
|
VkPhysicalDevice physicalDevice,
|
|
uint32_t* pQueueFamilyPropertyCount,
|
|
VkQueueFamilyProperties2* pQueueFamilyProperties);
|
|
VKAPI_ATTR void VKAPI_CALL terminator_GetPhysicalDeviceMemoryProperties2(
|
|
VkPhysicalDevice physicalDevice,
|
|
VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
|
|
VKAPI_ATTR void VKAPI_CALL terminator_GetPhysicalDeviceSparseImageFormatProperties2(
|
|
VkPhysicalDevice physicalDevice,
|
|
const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
|
|
uint32_t* pPropertyCount,
|
|
VkSparseImageFormatProperties2* pProperties);
|
|
VKAPI_ATTR void VKAPI_CALL terminator_GetPhysicalDeviceExternalBufferProperties(
|
|
VkPhysicalDevice physicalDevice,
|
|
const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
|
|
VkExternalBufferProperties* pExternalBufferProperties);
|
|
VKAPI_ATTR void VKAPI_CALL terminator_GetPhysicalDeviceExternalFenceProperties(
|
|
VkPhysicalDevice physicalDevice,
|
|
const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
|
|
VkExternalFenceProperties* pExternalFenceProperties);
|
|
VKAPI_ATTR void VKAPI_CALL terminator_GetPhysicalDeviceExternalSemaphoreProperties(
|
|
VkPhysicalDevice physicalDevice,
|
|
const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
|
|
VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
|
|
VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceToolProperties(
|
|
VkPhysicalDevice physicalDevice,
|
|
uint32_t* pToolCount,
|
|
VkPhysicalDeviceToolProperties* pToolProperties);
|
|
|
|
// ICD function pointer dispatch table
|
|
struct loader_icd_term_dispatch {
|
|
|
|
// ---- Core Vulkan 1.0 commands
|
|
PFN_vkCreateInstance CreateInstance;
|
|
PFN_vkDestroyInstance DestroyInstance;
|
|
PFN_vkEnumeratePhysicalDevices EnumeratePhysicalDevices;
|
|
PFN_vkGetPhysicalDeviceFeatures GetPhysicalDeviceFeatures;
|
|
PFN_vkGetPhysicalDeviceFormatProperties GetPhysicalDeviceFormatProperties;
|
|
PFN_vkGetPhysicalDeviceImageFormatProperties GetPhysicalDeviceImageFormatProperties;
|
|
PFN_vkGetPhysicalDeviceProperties GetPhysicalDeviceProperties;
|
|
PFN_vkGetPhysicalDeviceQueueFamilyProperties GetPhysicalDeviceQueueFamilyProperties;
|
|
PFN_vkGetPhysicalDeviceMemoryProperties GetPhysicalDeviceMemoryProperties;
|
|
PFN_vkGetDeviceProcAddr GetDeviceProcAddr;
|
|
PFN_vkCreateDevice CreateDevice;
|
|
PFN_vkEnumerateInstanceExtensionProperties EnumerateInstanceExtensionProperties;
|
|
PFN_vkEnumerateDeviceExtensionProperties EnumerateDeviceExtensionProperties;
|
|
PFN_vkEnumerateInstanceLayerProperties EnumerateInstanceLayerProperties;
|
|
PFN_vkGetPhysicalDeviceSparseImageFormatProperties GetPhysicalDeviceSparseImageFormatProperties;
|
|
|
|
// ---- Core Vulkan 1.1 commands
|
|
PFN_vkEnumerateInstanceVersion EnumerateInstanceVersion;
|
|
PFN_vkEnumeratePhysicalDeviceGroups EnumeratePhysicalDeviceGroups;
|
|
PFN_vkGetPhysicalDeviceFeatures2 GetPhysicalDeviceFeatures2;
|
|
PFN_vkGetPhysicalDeviceProperties2 GetPhysicalDeviceProperties2;
|
|
PFN_vkGetPhysicalDeviceFormatProperties2 GetPhysicalDeviceFormatProperties2;
|
|
PFN_vkGetPhysicalDeviceImageFormatProperties2 GetPhysicalDeviceImageFormatProperties2;
|
|
PFN_vkGetPhysicalDeviceQueueFamilyProperties2 GetPhysicalDeviceQueueFamilyProperties2;
|
|
PFN_vkGetPhysicalDeviceMemoryProperties2 GetPhysicalDeviceMemoryProperties2;
|
|
PFN_vkGetPhysicalDeviceSparseImageFormatProperties2 GetPhysicalDeviceSparseImageFormatProperties2;
|
|
PFN_vkGetPhysicalDeviceExternalBufferProperties GetPhysicalDeviceExternalBufferProperties;
|
|
PFN_vkGetPhysicalDeviceExternalFenceProperties GetPhysicalDeviceExternalFenceProperties;
|
|
PFN_vkGetPhysicalDeviceExternalSemaphoreProperties GetPhysicalDeviceExternalSemaphoreProperties;
|
|
|
|
// ---- Core Vulkan 1.3 commands
|
|
PFN_vkGetPhysicalDeviceToolProperties GetPhysicalDeviceToolProperties;
|
|
|
|
// ---- VK_KHR_surface extension commands
|
|
PFN_vkDestroySurfaceKHR DestroySurfaceKHR;
|
|
PFN_vkGetPhysicalDeviceSurfaceSupportKHR GetPhysicalDeviceSurfaceSupportKHR;
|
|
PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR GetPhysicalDeviceSurfaceCapabilitiesKHR;
|
|
PFN_vkGetPhysicalDeviceSurfaceFormatsKHR GetPhysicalDeviceSurfaceFormatsKHR;
|
|
PFN_vkGetPhysicalDeviceSurfacePresentModesKHR GetPhysicalDeviceSurfacePresentModesKHR;
|
|
|
|
// ---- VK_KHR_swapchain extension commands
|
|
PFN_vkGetPhysicalDevicePresentRectanglesKHR GetPhysicalDevicePresentRectanglesKHR;
|
|
|
|
// ---- VK_KHR_display extension commands
|
|
PFN_vkGetPhysicalDeviceDisplayPropertiesKHR GetPhysicalDeviceDisplayPropertiesKHR;
|
|
PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR GetPhysicalDeviceDisplayPlanePropertiesKHR;
|
|
PFN_vkGetDisplayPlaneSupportedDisplaysKHR GetDisplayPlaneSupportedDisplaysKHR;
|
|
PFN_vkGetDisplayModePropertiesKHR GetDisplayModePropertiesKHR;
|
|
PFN_vkCreateDisplayModeKHR CreateDisplayModeKHR;
|
|
PFN_vkGetDisplayPlaneCapabilitiesKHR GetDisplayPlaneCapabilitiesKHR;
|
|
PFN_vkCreateDisplayPlaneSurfaceKHR CreateDisplayPlaneSurfaceKHR;
|
|
|
|
// ---- VK_KHR_xlib_surface extension commands
|
|
#if defined(VK_USE_PLATFORM_XLIB_KHR)
|
|
PFN_vkCreateXlibSurfaceKHR CreateXlibSurfaceKHR;
|
|
#endif // VK_USE_PLATFORM_XLIB_KHR
|
|
#if defined(VK_USE_PLATFORM_XLIB_KHR)
|
|
PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR GetPhysicalDeviceXlibPresentationSupportKHR;
|
|
#endif // VK_USE_PLATFORM_XLIB_KHR
|
|
|
|
// ---- VK_KHR_xcb_surface extension commands
|
|
#if defined(VK_USE_PLATFORM_XCB_KHR)
|
|
PFN_vkCreateXcbSurfaceKHR CreateXcbSurfaceKHR;
|
|
#endif // VK_USE_PLATFORM_XCB_KHR
|
|
#if defined(VK_USE_PLATFORM_XCB_KHR)
|
|
PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR GetPhysicalDeviceXcbPresentationSupportKHR;
|
|
#endif // VK_USE_PLATFORM_XCB_KHR
|
|
|
|
// ---- VK_KHR_wayland_surface extension commands
|
|
#if defined(VK_USE_PLATFORM_WAYLAND_KHR)
|
|
PFN_vkCreateWaylandSurfaceKHR CreateWaylandSurfaceKHR;
|
|
#endif // VK_USE_PLATFORM_WAYLAND_KHR
|
|
#if defined(VK_USE_PLATFORM_WAYLAND_KHR)
|
|
PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR GetPhysicalDeviceWaylandPresentationSupportKHR;
|
|
#endif // VK_USE_PLATFORM_WAYLAND_KHR
|
|
|
|
// ---- VK_KHR_android_surface extension commands
|
|
#if defined(VK_USE_PLATFORM_ANDROID_KHR)
|
|
PFN_vkCreateAndroidSurfaceKHR CreateAndroidSurfaceKHR;
|
|
#endif // VK_USE_PLATFORM_ANDROID_KHR
|
|
|
|
// ---- VK_KHR_win32_surface extension commands
|
|
#if defined(VK_USE_PLATFORM_WIN32_KHR)
|
|
PFN_vkCreateWin32SurfaceKHR CreateWin32SurfaceKHR;
|
|
#endif // VK_USE_PLATFORM_WIN32_KHR
|
|
#if defined(VK_USE_PLATFORM_WIN32_KHR)
|
|
PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR GetPhysicalDeviceWin32PresentationSupportKHR;
|
|
#endif // VK_USE_PLATFORM_WIN32_KHR
|
|
|
|
// ---- VK_KHR_video_queue extension commands
|
|
PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR GetPhysicalDeviceVideoCapabilitiesKHR;
|
|
PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR GetPhysicalDeviceVideoFormatPropertiesKHR;
|
|
|
|
// ---- VK_KHR_get_physical_device_properties2 extension commands
|
|
PFN_vkGetPhysicalDeviceFeatures2KHR GetPhysicalDeviceFeatures2KHR;
|
|
PFN_vkGetPhysicalDeviceProperties2KHR GetPhysicalDeviceProperties2KHR;
|
|
PFN_vkGetPhysicalDeviceFormatProperties2KHR GetPhysicalDeviceFormatProperties2KHR;
|
|
PFN_vkGetPhysicalDeviceImageFormatProperties2KHR GetPhysicalDeviceImageFormatProperties2KHR;
|
|
PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR GetPhysicalDeviceQueueFamilyProperties2KHR;
|
|
PFN_vkGetPhysicalDeviceMemoryProperties2KHR GetPhysicalDeviceMemoryProperties2KHR;
|
|
PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR GetPhysicalDeviceSparseImageFormatProperties2KHR;
|
|
|
|
// ---- VK_KHR_device_group_creation extension commands
|
|
PFN_vkEnumeratePhysicalDeviceGroupsKHR EnumeratePhysicalDeviceGroupsKHR;
|
|
|
|
// ---- VK_KHR_external_memory_capabilities extension commands
|
|
PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR GetPhysicalDeviceExternalBufferPropertiesKHR;
|
|
|
|
// ---- VK_KHR_external_semaphore_capabilities extension commands
|
|
PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR GetPhysicalDeviceExternalSemaphorePropertiesKHR;
|
|
|
|
// ---- VK_KHR_external_fence_capabilities extension commands
|
|
PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR GetPhysicalDeviceExternalFencePropertiesKHR;
|
|
|
|
// ---- VK_KHR_performance_query extension commands
|
|
PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR;
|
|
PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR;
|
|
|
|
// ---- VK_KHR_get_surface_capabilities2 extension commands
|
|
PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR GetPhysicalDeviceSurfaceCapabilities2KHR;
|
|
PFN_vkGetPhysicalDeviceSurfaceFormats2KHR GetPhysicalDeviceSurfaceFormats2KHR;
|
|
|
|
// ---- VK_KHR_get_display_properties2 extension commands
|
|
PFN_vkGetPhysicalDeviceDisplayProperties2KHR GetPhysicalDeviceDisplayProperties2KHR;
|
|
PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR GetPhysicalDeviceDisplayPlaneProperties2KHR;
|
|
PFN_vkGetDisplayModeProperties2KHR GetDisplayModeProperties2KHR;
|
|
PFN_vkGetDisplayPlaneCapabilities2KHR GetDisplayPlaneCapabilities2KHR;
|
|
|
|
// ---- VK_KHR_fragment_shading_rate extension commands
|
|
PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR GetPhysicalDeviceFragmentShadingRatesKHR;
|
|
|
|
// ---- VK_KHR_video_encode_queue extension commands
|
|
PFN_vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR GetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR;
|
|
|
|
// ---- VK_KHR_cooperative_matrix extension commands
|
|
PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR GetPhysicalDeviceCooperativeMatrixPropertiesKHR;
|
|
|
|
// ---- VK_KHR_calibrated_timestamps extension commands
|
|
PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsKHR GetPhysicalDeviceCalibrateableTimeDomainsKHR;
|
|
|
|
// ---- VK_EXT_debug_report extension commands
|
|
PFN_vkCreateDebugReportCallbackEXT CreateDebugReportCallbackEXT;
|
|
PFN_vkDestroyDebugReportCallbackEXT DestroyDebugReportCallbackEXT;
|
|
PFN_vkDebugReportMessageEXT DebugReportMessageEXT;
|
|
|
|
// ---- VK_GGP_stream_descriptor_surface extension commands
|
|
#if defined(VK_USE_PLATFORM_GGP)
|
|
PFN_vkCreateStreamDescriptorSurfaceGGP CreateStreamDescriptorSurfaceGGP;
|
|
#endif // VK_USE_PLATFORM_GGP
|
|
|
|
// ---- VK_NV_external_memory_capabilities extension commands
|
|
PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV GetPhysicalDeviceExternalImageFormatPropertiesNV;
|
|
|
|
// ---- VK_NN_vi_surface extension commands
|
|
#if defined(VK_USE_PLATFORM_VI_NN)
|
|
PFN_vkCreateViSurfaceNN CreateViSurfaceNN;
|
|
#endif // VK_USE_PLATFORM_VI_NN
|
|
|
|
// ---- VK_EXT_direct_mode_display extension commands
|
|
PFN_vkReleaseDisplayEXT ReleaseDisplayEXT;
|
|
|
|
// ---- VK_EXT_acquire_xlib_display extension commands
|
|
#if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
|
|
PFN_vkAcquireXlibDisplayEXT AcquireXlibDisplayEXT;
|
|
#endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
|
|
#if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
|
|
PFN_vkGetRandROutputDisplayEXT GetRandROutputDisplayEXT;
|
|
#endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT
|
|
|
|
// ---- VK_EXT_display_surface_counter extension commands
|
|
PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT GetPhysicalDeviceSurfaceCapabilities2EXT;
|
|
|
|
// ---- VK_MVK_ios_surface extension commands
|
|
#if defined(VK_USE_PLATFORM_IOS_MVK)
|
|
PFN_vkCreateIOSSurfaceMVK CreateIOSSurfaceMVK;
|
|
#endif // VK_USE_PLATFORM_IOS_MVK
|
|
|
|
// ---- VK_MVK_macos_surface extension commands
|
|
#if defined(VK_USE_PLATFORM_MACOS_MVK)
|
|
PFN_vkCreateMacOSSurfaceMVK CreateMacOSSurfaceMVK;
|
|
#endif // VK_USE_PLATFORM_MACOS_MVK
|
|
|
|
// ---- VK_EXT_debug_utils extension commands
|
|
PFN_vkCreateDebugUtilsMessengerEXT CreateDebugUtilsMessengerEXT;
|
|
PFN_vkDestroyDebugUtilsMessengerEXT DestroyDebugUtilsMessengerEXT;
|
|
PFN_vkSubmitDebugUtilsMessageEXT SubmitDebugUtilsMessageEXT;
|
|
|
|
// ---- VK_EXT_sample_locations extension commands
|
|
PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT GetPhysicalDeviceMultisamplePropertiesEXT;
|
|
|
|
// ---- VK_EXT_calibrated_timestamps extension commands
|
|
PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT GetPhysicalDeviceCalibrateableTimeDomainsEXT;
|
|
|
|
// ---- VK_FUCHSIA_imagepipe_surface extension commands
|
|
#if defined(VK_USE_PLATFORM_FUCHSIA)
|
|
PFN_vkCreateImagePipeSurfaceFUCHSIA CreateImagePipeSurfaceFUCHSIA;
|
|
#endif // VK_USE_PLATFORM_FUCHSIA
|
|
|
|
// ---- VK_EXT_metal_surface extension commands
|
|
#if defined(VK_USE_PLATFORM_METAL_EXT)
|
|
PFN_vkCreateMetalSurfaceEXT CreateMetalSurfaceEXT;
|
|
#endif // VK_USE_PLATFORM_METAL_EXT
|
|
|
|
// ---- VK_EXT_tooling_info extension commands
|
|
PFN_vkGetPhysicalDeviceToolPropertiesEXT GetPhysicalDeviceToolPropertiesEXT;
|
|
|
|
// ---- VK_NV_cooperative_matrix extension commands
|
|
PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV GetPhysicalDeviceCooperativeMatrixPropertiesNV;
|
|
|
|
// ---- VK_NV_coverage_reduction_mode extension commands
|
|
PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV;
|
|
|
|
// ---- VK_EXT_full_screen_exclusive extension commands
|
|
#if defined(VK_USE_PLATFORM_WIN32_KHR)
|
|
PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT GetPhysicalDeviceSurfacePresentModes2EXT;
|
|
#endif // VK_USE_PLATFORM_WIN32_KHR
|
|
|
|
// ---- VK_EXT_headless_surface extension commands
|
|
PFN_vkCreateHeadlessSurfaceEXT CreateHeadlessSurfaceEXT;
|
|
|
|
// ---- VK_EXT_acquire_drm_display extension commands
|
|
PFN_vkAcquireDrmDisplayEXT AcquireDrmDisplayEXT;
|
|
PFN_vkGetDrmDisplayEXT GetDrmDisplayEXT;
|
|
|
|
// ---- VK_NV_acquire_winrt_display extension commands
|
|
#if defined(VK_USE_PLATFORM_WIN32_KHR)
|
|
PFN_vkAcquireWinrtDisplayNV AcquireWinrtDisplayNV;
|
|
#endif // VK_USE_PLATFORM_WIN32_KHR
|
|
#if defined(VK_USE_PLATFORM_WIN32_KHR)
|
|
PFN_vkGetWinrtDisplayNV GetWinrtDisplayNV;
|
|
#endif // VK_USE_PLATFORM_WIN32_KHR
|
|
|
|
// ---- VK_EXT_directfb_surface extension commands
|
|
#if defined(VK_USE_PLATFORM_DIRECTFB_EXT)
|
|
PFN_vkCreateDirectFBSurfaceEXT CreateDirectFBSurfaceEXT;
|
|
#endif // VK_USE_PLATFORM_DIRECTFB_EXT
|
|
#if defined(VK_USE_PLATFORM_DIRECTFB_EXT)
|
|
PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT GetPhysicalDeviceDirectFBPresentationSupportEXT;
|
|
#endif // VK_USE_PLATFORM_DIRECTFB_EXT
|
|
|
|
// ---- VK_QNX_screen_surface extension commands
|
|
#if defined(VK_USE_PLATFORM_SCREEN_QNX)
|
|
PFN_vkCreateScreenSurfaceQNX CreateScreenSurfaceQNX;
|
|
#endif // VK_USE_PLATFORM_SCREEN_QNX
|
|
#if defined(VK_USE_PLATFORM_SCREEN_QNX)
|
|
PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX GetPhysicalDeviceScreenPresentationSupportQNX;
|
|
#endif // VK_USE_PLATFORM_SCREEN_QNX
|
|
|
|
// ---- VK_NV_optical_flow extension commands
|
|
PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV GetPhysicalDeviceOpticalFlowImageFormatsNV;
|
|
|
|
// ---- VK_OHOS_surface extension commands
|
|
#ifdef VK_USE_PLATFORM_OHOS
|
|
PFN_vkCreateSurfaceOHOS CreateSurfaceOHOS;
|
|
#endif // VK_USE_PLATFORM_OHOS
|
|
};
|
|
|
|
struct loader_instance_extension_enables {
|
|
uint8_t khr_get_physical_device_properties2;
|
|
uint8_t khr_device_group_creation;
|
|
uint8_t khr_external_memory_capabilities;
|
|
uint8_t khr_external_semaphore_capabilities;
|
|
uint8_t khr_external_fence_capabilities;
|
|
uint8_t ext_debug_report;
|
|
uint8_t nv_external_memory_capabilities;
|
|
uint8_t ext_direct_mode_display;
|
|
uint8_t ext_acquire_xlib_display;
|
|
uint8_t ext_display_surface_counter;
|
|
uint8_t ext_debug_utils;
|
|
uint8_t ext_acquire_drm_display;
|
|
};
|
|
|
|
// Functions that required a terminator need to have a separate dispatch table which contains their corresponding
|
|
// device function. This is used in the terminators themselves.
|
|
struct loader_device_terminator_dispatch {
|
|
// ---- VK_KHR_swapchain extension commands
|
|
PFN_vkCreateSwapchainKHR CreateSwapchainKHR;
|
|
PFN_vkGetDeviceGroupSurfacePresentModesKHR GetDeviceGroupSurfacePresentModesKHR;
|
|
// ---- VK_KHR_display_swapchain extension commands
|
|
PFN_vkCreateSharedSwapchainsKHR CreateSharedSwapchainsKHR;
|
|
// ---- VK_EXT_debug_marker extension commands
|
|
PFN_vkDebugMarkerSetObjectTagEXT DebugMarkerSetObjectTagEXT;
|
|
PFN_vkDebugMarkerSetObjectNameEXT DebugMarkerSetObjectNameEXT;
|
|
// ---- VK_EXT_debug_utils extension commands
|
|
PFN_vkSetDebugUtilsObjectNameEXT SetDebugUtilsObjectNameEXT;
|
|
PFN_vkSetDebugUtilsObjectTagEXT SetDebugUtilsObjectTagEXT;
|
|
PFN_vkQueueBeginDebugUtilsLabelEXT QueueBeginDebugUtilsLabelEXT;
|
|
PFN_vkQueueEndDebugUtilsLabelEXT QueueEndDebugUtilsLabelEXT;
|
|
PFN_vkQueueInsertDebugUtilsLabelEXT QueueInsertDebugUtilsLabelEXT;
|
|
PFN_vkCmdBeginDebugUtilsLabelEXT CmdBeginDebugUtilsLabelEXT;
|
|
PFN_vkCmdEndDebugUtilsLabelEXT CmdEndDebugUtilsLabelEXT;
|
|
PFN_vkCmdInsertDebugUtilsLabelEXT CmdInsertDebugUtilsLabelEXT;
|
|
#if defined(VK_USE_PLATFORM_WIN32_KHR)
|
|
// ---- VK_EXT_full_screen_exclusive extension commands
|
|
PFN_vkGetDeviceGroupSurfacePresentModes2EXT GetDeviceGroupSurfacePresentModes2EXT;
|
|
#endif // VK_USE_PLATFORM_WIN32_KHR
|
|
};
|
|
|
|
// clang-format on
|