1 /* 2 * Copyright (c) 2015-2021 The Khronos Group Inc. 3 * Copyright (c) 2015-2021 Valve Corporation 4 * Copyright (c) 2015-2021 LunarG, Inc. 5 * 6 * Licensed under the Apache License, Version 2.0 (the "License"); 7 * you may not use this file except in compliance with the License. 8 * You may obtain a copy of the License at 9 * 10 * http://www.apache.org/licenses/LICENSE-2.0 11 * 12 * Unless required by applicable law or agreed to in writing, software 13 * distributed under the License is distributed on an "AS IS" BASIS, 14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 * See the License for the specific language governing permissions and 16 * limitations under the License. 17 * 18 * Author: Mark Young <marky@lunarg.com> 19 * Author: Charles Giessen <charles@lunarg.com> 20 */ 21 22 #pragma once 23 24 #include <vulkan/vulkan.h> 25 26 // ---- Manually added trampoline/terminator functions 27 28 // These functions, for whatever reason, require more complex changes than 29 // can easily be automatically generated. 30 31 VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceExternalImageFormatPropertiesNV( 32 VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, 33 VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, 34 VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties); 35 36 VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceExternalImageFormatPropertiesNV( 37 VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, 38 VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, 39 VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties); 40 41 VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceSurfaceCapabilities2EXT(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, 42 VkSurfaceCapabilities2EXT* pSurfaceCapabilities); 43 44 VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceSurfaceCapabilities2EXT(VkPhysicalDevice physicalDevice, 45 VkSurfaceKHR surface, 46 VkSurfaceCapabilities2EXT* pSurfaceCapabilities); 47 48 VKAPI_ATTR VkResult VKAPI_CALL ReleaseDisplayEXT(VkPhysicalDevice physicalDevice, VkDisplayKHR display); 49 50 VKAPI_ATTR VkResult VKAPI_CALL terminator_ReleaseDisplayEXT(VkPhysicalDevice physicalDevice, VkDisplayKHR display); 51 52 #if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT) 53 VKAPI_ATTR VkResult VKAPI_CALL AcquireXlibDisplayEXT(VkPhysicalDevice physicalDevice, Display* dpy, VkDisplayKHR display); 54 55 VKAPI_ATTR VkResult VKAPI_CALL terminator_AcquireXlibDisplayEXT(VkPhysicalDevice physicalDevice, Display* dpy, 56 VkDisplayKHR display); 57 58 VKAPI_ATTR VkResult VKAPI_CALL GetRandROutputDisplayEXT(VkPhysicalDevice physicalDevice, Display* dpy, RROutput rrOutput, 59 VkDisplayKHR* pDisplay); 60 61 VKAPI_ATTR VkResult VKAPI_CALL terminator_GetRandROutputDisplayEXT(VkPhysicalDevice physicalDevice, Display* dpy, RROutput rrOutput, 62 VkDisplayKHR* pDisplay); 63 #endif // VK_USE_PLATFORM_XLIB_XRANDR_EXT 64 65 #if defined(VK_USE_PLATFORM_WIN32_KHR) 66 VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceSurfacePresentModes2EXT(VkPhysicalDevice physicalDevice, 67 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, 68 uint32_t* pPresentModeCount, 69 VkPresentModeKHR* pPresentModes); 70 71 VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceSurfacePresentModes2EXT( 72 VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pPresentModeCount, 73 VkPresentModeKHR* pPresentModes); 74 #endif // VK_USE_PLATFORM_WIN32_KHR 75 76 VKAPI_ATTR VkResult VKAPI_CALL GetDeviceGroupSurfacePresentModes2EXT(VkDevice device, 77 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, 78 VkDeviceGroupPresentModeFlagsKHR* pModes); 79 80 VKAPI_ATTR VkResult VKAPI_CALL terminator_GetDeviceGroupSurfacePresentModes2EXT(VkDevice device, 81 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, 82 VkDeviceGroupPresentModeFlagsKHR* pModes); 83 84 // ---- VK_EXT_tooling_info extension trampoline/terminators 85 86 VKAPI_ATTR VkResult VKAPI_CALL GetPhysicalDeviceToolPropertiesEXT(VkPhysicalDevice physicalDevice, uint32_t* pToolCount, 87 VkPhysicalDeviceToolPropertiesEXT* pToolProperties); 88 89 VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceToolPropertiesEXT(VkPhysicalDevice physicalDevice, uint32_t* pToolCount, 90 VkPhysicalDeviceToolPropertiesEXT* pToolProperties); 91