| // *** THIS FILE IS GENERATED - DO NOT EDIT *** |
| // See loader_extension_generator.py for modifications |
| |
| /* |
| * Copyright (c) 2015-2017 The Khronos Group Inc. |
| * Copyright (c) 2015-2017 Valve Corporation |
| * Copyright (c) 2015-2017 LunarG, 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. |
| * |
| * Author: Mark Lobodzinski <mark@lunarg.com> |
| * Author: Mark Young <marky@lunarg.com> |
| */ |
| |
| #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 *pName); |
| |
| // 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_icd_term *icd_term, VkInstance inst, |
| const PFN_vkGetInstanceProcAddr fp_gipa); |
| |
| // 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); |
| |
| // Instance command lookup function |
| VKAPI_ATTR void* VKAPI_CALL loader_lookup_instance_dispatch_table(const VkLayerInstanceDispatchTable *table, const char *name, |
| bool *found_name); |
| |
| VKAPI_ATTR bool VKAPI_CALL loader_icd_init_entries(struct loader_icd_term *icd_term, VkInstance inst, |
| const PFN_vkGetInstanceProcAddr fp_gipa); |
| |
| // 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); |
| |
| // ICD function pointer dispatch table |
| struct loader_icd_term_dispatch { |
| |
| // ---- Core 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 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; |
| |
| // ---- 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_vkCreateSwapchainKHR CreateSwapchainKHR; |
| PFN_vkGetDeviceGroupSurfacePresentModesKHR GetDeviceGroupSurfacePresentModesKHR; |
| 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_display_swapchain extension commands |
| PFN_vkCreateSharedSwapchainsKHR CreateSharedSwapchainsKHR; |
| |
| // ---- VK_KHR_xlib_surface extension commands |
| #ifdef VK_USE_PLATFORM_XLIB_KHR |
| PFN_vkCreateXlibSurfaceKHR CreateXlibSurfaceKHR; |
| #endif // VK_USE_PLATFORM_XLIB_KHR |
| #ifdef VK_USE_PLATFORM_XLIB_KHR |
| PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR GetPhysicalDeviceXlibPresentationSupportKHR; |
| #endif // VK_USE_PLATFORM_XLIB_KHR |
| |
| // ---- VK_KHR_xcb_surface extension commands |
| #ifdef VK_USE_PLATFORM_XCB_KHR |
| PFN_vkCreateXcbSurfaceKHR CreateXcbSurfaceKHR; |
| #endif // VK_USE_PLATFORM_XCB_KHR |
| #ifdef VK_USE_PLATFORM_XCB_KHR |
| PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR GetPhysicalDeviceXcbPresentationSupportKHR; |
| #endif // VK_USE_PLATFORM_XCB_KHR |
| |
| // ---- VK_KHR_wayland_surface extension commands |
| #ifdef VK_USE_PLATFORM_WAYLAND_KHR |
| PFN_vkCreateWaylandSurfaceKHR CreateWaylandSurfaceKHR; |
| #endif // VK_USE_PLATFORM_WAYLAND_KHR |
| #ifdef VK_USE_PLATFORM_WAYLAND_KHR |
| PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR GetPhysicalDeviceWaylandPresentationSupportKHR; |
| #endif // VK_USE_PLATFORM_WAYLAND_KHR |
| |
| // ---- VK_KHR_android_surface extension commands |
| #ifdef VK_USE_PLATFORM_ANDROID_KHR |
| PFN_vkCreateAndroidSurfaceKHR CreateAndroidSurfaceKHR; |
| #endif // VK_USE_PLATFORM_ANDROID_KHR |
| |
| // ---- VK_KHR_win32_surface extension commands |
| #ifdef VK_USE_PLATFORM_WIN32_KHR |
| PFN_vkCreateWin32SurfaceKHR CreateWin32SurfaceKHR; |
| #endif // VK_USE_PLATFORM_WIN32_KHR |
| #ifdef VK_USE_PLATFORM_WIN32_KHR |
| PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR GetPhysicalDeviceWin32PresentationSupportKHR; |
| #endif // VK_USE_PLATFORM_WIN32_KHR |
| |
| // ---- 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_EXT_debug_report extension commands |
| PFN_vkCreateDebugReportCallbackEXT CreateDebugReportCallbackEXT; |
| PFN_vkDestroyDebugReportCallbackEXT DestroyDebugReportCallbackEXT; |
| PFN_vkDebugReportMessageEXT DebugReportMessageEXT; |
| |
| // ---- VK_EXT_debug_marker extension commands |
| PFN_vkDebugMarkerSetObjectTagEXT DebugMarkerSetObjectTagEXT; |
| PFN_vkDebugMarkerSetObjectNameEXT DebugMarkerSetObjectNameEXT; |
| |
| // ---- VK_GGP_stream_descriptor_surface extension commands |
| #ifdef 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 |
| #ifdef VK_USE_PLATFORM_VI_NN |
| PFN_vkCreateViSurfaceNN CreateViSurfaceNN; |
| #endif // VK_USE_PLATFORM_VI_NN |
| |
| // ---- VK_NVX_device_generated_commands extension commands |
| PFN_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX GetPhysicalDeviceGeneratedCommandsPropertiesNVX; |
| |
| // ---- VK_EXT_direct_mode_display extension commands |
| PFN_vkReleaseDisplayEXT ReleaseDisplayEXT; |
| |
| // ---- VK_EXT_acquire_xlib_display extension commands |
| #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT |
| PFN_vkAcquireXlibDisplayEXT AcquireXlibDisplayEXT; |
| #endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT |
| #ifdef 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 |
| #ifdef VK_USE_PLATFORM_IOS_MVK |
| PFN_vkCreateIOSSurfaceMVK CreateIOSSurfaceMVK; |
| #endif // VK_USE_PLATFORM_IOS_MVK |
| |
| // ---- VK_MVK_macos_surface extension commands |
| #ifdef VK_USE_PLATFORM_MACOS_MVK |
| PFN_vkCreateMacOSSurfaceMVK CreateMacOSSurfaceMVK; |
| #endif // VK_USE_PLATFORM_MACOS_MVK |
| |
| // ---- VK_EXT_debug_utils extension commands |
| PFN_vkSetDebugUtilsObjectNameEXT SetDebugUtilsObjectNameEXT; |
| PFN_vkSetDebugUtilsObjectTagEXT SetDebugUtilsObjectTagEXT; |
| 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 |
| #ifdef VK_USE_PLATFORM_FUCHSIA |
| PFN_vkCreateImagePipeSurfaceFUCHSIA CreateImagePipeSurfaceFUCHSIA; |
| #endif // VK_USE_PLATFORM_FUCHSIA |
| |
| // ---- VK_EXT_metal_surface extension commands |
| #ifdef VK_USE_PLATFORM_METAL_EXT |
| PFN_vkCreateMetalSurfaceEXT CreateMetalSurfaceEXT; |
| #endif // VK_USE_PLATFORM_METAL_EXT |
| |
| // ---- 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 |
| #ifdef VK_USE_PLATFORM_WIN32_KHR |
| PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT GetPhysicalDeviceSurfacePresentModes2EXT; |
| #endif // VK_USE_PLATFORM_WIN32_KHR |
| #ifdef VK_USE_PLATFORM_WIN32_KHR |
| PFN_vkGetDeviceGroupSurfacePresentModes2EXT GetDeviceGroupSurfacePresentModes2EXT; |
| #endif // VK_USE_PLATFORM_WIN32_KHR |
| |
| // ---- VK_EXT_headless_surface extension commands |
| PFN_vkCreateHeadlessSurfaceEXT CreateHeadlessSurfaceEXT; |
| }; |
| |
| union loader_instance_extension_enables { |
| struct { |
| uint8_t khr_get_physical_device_properties2 : 1; |
| uint8_t khr_device_group_creation : 1; |
| uint8_t khr_external_memory_capabilities : 1; |
| uint8_t khr_external_semaphore_capabilities : 1; |
| uint8_t khr_external_fence_capabilities : 1; |
| uint8_t khr_get_surface_capabilities2 : 1; |
| uint8_t ext_debug_report : 1; |
| uint8_t ggp_stream_descriptor_surface : 1; |
| uint8_t nv_external_memory_capabilities : 1; |
| uint8_t nn_vi_surface : 1; |
| uint8_t ext_direct_mode_display : 1; |
| uint8_t ext_acquire_xlib_display : 1; |
| uint8_t ext_display_surface_counter : 1; |
| uint8_t ext_debug_utils : 1; |
| uint8_t fuchsia_imagepipe_surface : 1; |
| }; |
| uint64_t padding[4]; |
| }; |
| |
| |