blob: 88540f5d45863c942295ec48bf07a9df5816ba04 [file] [log] [blame]
Ian Elliottd3ef02f2015-07-06 14:36:13 -06001/*
Jon Ashburn23d36b12016-02-02 17:47:28 -07002 * Copyright (c) 2015-2016 The Khronos Group Inc.
3 * Copyright (c) 2015-2016 Valve Corporation
4 * Copyright (c) 2015-2016 LunarG, Inc.
Ian Elliottd3ef02f2015-07-06 14:36:13 -06005 *
Jon Ashburn23d36b12016-02-02 17:47:28 -07006 * Permission is hereby granted, free of charge, to any person obtaining a copy
7 * of this software and/or associated documentation files (the "Materials"), to
8 * deal in the Materials without restriction, including without limitation the
9 * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
10 * sell copies of the Materials, and to permit persons to whom the Materials are
11 * furnished to do so, subject to the following conditions:
Ian Elliottd3ef02f2015-07-06 14:36:13 -060012 *
Jon Ashburn23d36b12016-02-02 17:47:28 -070013 * The above copyright notice(s) and this permission notice shall be included in
14 * all copies or substantial portions of the Materials.
Ian Elliottd3ef02f2015-07-06 14:36:13 -060015 *
Jon Ashburn23d36b12016-02-02 17:47:28 -070016 * THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
Ian Elliottd3ef02f2015-07-06 14:36:13 -060017 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
Jon Ashburn23d36b12016-02-02 17:47:28 -070018 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19 *
20 * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
21 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
22 * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE
23 * USE OR OTHER DEALINGS IN THE MATERIALS.
Ian Elliottd3ef02f2015-07-06 14:36:13 -060024 *
Courtney Goeltzenleuchter05559522015-10-30 11:14:30 -060025 * Author: Ian Elliott <ian@lunarg.com>
26 *
Ian Elliottd3ef02f2015-07-06 14:36:13 -060027 */
28
29#include "vk_loader_platform.h"
30#include "loader.h"
Ian Elliottd3ef02f2015-07-06 14:36:13 -060031
Jon Ashburn8a39efc2015-11-06 11:02:40 -070032bool wsi_swapchain_instance_gpa(struct loader_instance *ptr_instance,
Jon Ashburn23d36b12016-02-02 17:47:28 -070033 const char *name, void **addr);
34void wsi_add_instance_extensions(const struct loader_instance *inst,
35 struct loader_extension_list *ext_list);
Ian Elliottd3ef02f2015-07-06 14:36:13 -060036
Jon Ashburn23d36b12016-02-02 17:47:28 -070037void wsi_create_instance(struct loader_instance *ptr_instance,
38 const VkInstanceCreateInfo *pCreateInfo);
Ian Elliottd3ef02f2015-07-06 14:36:13 -060039
Jon Ashburn23d36b12016-02-02 17:47:28 -070040VKAPI_ATTR void VKAPI_CALL
Jon Ashburn1530c342016-02-26 13:14:27 -070041terminator_DestroySurfaceKHR(VkInstance instance, VkSurfaceKHR surface,
42 const VkAllocationCallbacks *pAllocator);
Ian Elliottd3ef02f2015-07-06 14:36:13 -060043
Jon Ashburn23d36b12016-02-02 17:47:28 -070044VKAPI_ATTR VkResult VKAPI_CALL
Jon Ashburn1530c342016-02-26 13:14:27 -070045terminator_GetPhysicalDeviceSurfaceSupportKHR(VkPhysicalDevice physicalDevice,
46 uint32_t queueFamilyIndex,
47 VkSurfaceKHR surface,
48 VkBool32 *pSupported);
Ian Elliott486c5502015-11-19 16:05:09 -070049
Jon Ashburn1530c342016-02-26 13:14:27 -070050VKAPI_ATTR VkResult VKAPI_CALL
51terminator_GetPhysicalDeviceSurfaceCapabilitiesKHR(
Jon Ashburn23d36b12016-02-02 17:47:28 -070052 VkPhysicalDevice physicalDevice, VkSurfaceKHR surface,
53 VkSurfaceCapabilitiesKHR *pSurfaceCapabilities);
Ian Elliott486c5502015-11-19 16:05:09 -070054
Jon Ashburn1530c342016-02-26 13:14:27 -070055VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceSurfaceFormatsKHR(
56 VkPhysicalDevice physicalDevice, VkSurfaceKHR surface,
57 uint32_t *pSurfaceFormatCount, VkSurfaceFormatKHR *pSurfaceFormats);
Ian Elliott486c5502015-11-19 16:05:09 -070058
Jon Ashburn23d36b12016-02-02 17:47:28 -070059VKAPI_ATTR VkResult VKAPI_CALL
Jon Ashburn1530c342016-02-26 13:14:27 -070060terminator_GetPhysicalDeviceSurfacePresentModesKHR(
61 VkPhysicalDevice physicalDevice, VkSurfaceKHR surface,
62 uint32_t *pPresentModeCount, VkPresentModeKHR *pPresentModes);
Ian Elliott919fa302015-11-24 15:39:10 -070063
64#ifdef VK_USE_PLATFORM_WIN32_KHR
Jon Ashburn23d36b12016-02-02 17:47:28 -070065VKAPI_ATTR VkResult VKAPI_CALL
Jon Ashburn1530c342016-02-26 13:14:27 -070066terminator_CreateWin32SurfaceKHR(VkInstance instance,
67 const VkWin32SurfaceCreateInfoKHR *pCreateInfo,
68 const VkAllocationCallbacks *pAllocator,
69 VkSurfaceKHR *pSurface);
Jon Ashburn23d36b12016-02-02 17:47:28 -070070VKAPI_ATTR VkBool32 VKAPI_CALL
Jon Ashburn1530c342016-02-26 13:14:27 -070071terminator_GetPhysicalDeviceWin32PresentationSupportKHR(
Jon Ashburn23d36b12016-02-02 17:47:28 -070072 VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex);
Ian Elliott919fa302015-11-24 15:39:10 -070073#endif
74#ifdef VK_USE_PLATFORM_MIR_KHR
Jon Ashburn23d36b12016-02-02 17:47:28 -070075VKAPI_ATTR VkResult VKAPI_CALL
Jon Ashburn1530c342016-02-26 13:14:27 -070076terminator_CreateMirSurfaceKHR(VkInstance instance,
77 const VkMirSurfaceCreateInfoKHR *pCreateInfo,
78 const VkAllocationCallbacks *pAllocator,
79 VkSurfaceKHR *pSurface);
Jon Ashburn23d36b12016-02-02 17:47:28 -070080VKAPI_ATTR VkBool32 VKAPI_CALL
Jon Ashburn1530c342016-02-26 13:14:27 -070081terminator_GetPhysicalDeviceMirPresentationSupportKHR(
Jon Ashburn23d36b12016-02-02 17:47:28 -070082 VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex,
83 MirConnection *connection);
Ian Elliott919fa302015-11-24 15:39:10 -070084#endif
85#ifdef VK_USE_PLATFORM_WAYLAND_KHR
Jon Ashburn1530c342016-02-26 13:14:27 -070086VKAPI_ATTR VkResult VKAPI_CALL terminator_CreateWaylandSurfaceKHR(
87 VkInstance instance, const VkWaylandSurfaceCreateInfoKHR *pCreateInfo,
88 const VkAllocationCallbacks *pAllocator, VkSurfaceKHR *pSurface);
Jon Ashburn23d36b12016-02-02 17:47:28 -070089VKAPI_ATTR VkBool32 VKAPI_CALL
Jon Ashburn1530c342016-02-26 13:14:27 -070090terminator_GetPhysicalDeviceWaylandPresentationSupportKHR(
Jon Ashburn23d36b12016-02-02 17:47:28 -070091 VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex,
92 struct wl_display *display);
Ian Elliott919fa302015-11-24 15:39:10 -070093#endif
94#ifdef VK_USE_PLATFORM_XCB_KHR
Jon Ashburn23d36b12016-02-02 17:47:28 -070095VKAPI_ATTR VkResult VKAPI_CALL
Jon Ashburn1530c342016-02-26 13:14:27 -070096terminator_CreateXcbSurfaceKHR(VkInstance instance,
97 const VkXcbSurfaceCreateInfoKHR *pCreateInfo,
98 const VkAllocationCallbacks *pAllocator,
99 VkSurfaceKHR *pSurface);
Jon Ashburnf72a04b2015-11-25 17:55:49 -0700100
Jon Ashburn23d36b12016-02-02 17:47:28 -0700101VKAPI_ATTR VkBool32 VKAPI_CALL
Jon Ashburn1530c342016-02-26 13:14:27 -0700102terminator_GetPhysicalDeviceXcbPresentationSupportKHR(
Jon Ashburn23d36b12016-02-02 17:47:28 -0700103 VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex,
104 xcb_connection_t *connection, xcb_visualid_t visual_id);
Ian Elliott919fa302015-11-24 15:39:10 -0700105#endif
106#ifdef VK_USE_PLATFORM_XLIB_KHR
Jon Ashburn23d36b12016-02-02 17:47:28 -0700107VKAPI_ATTR VkResult VKAPI_CALL
Jon Ashburn1530c342016-02-26 13:14:27 -0700108terminator_CreateXlibSurfaceKHR(VkInstance instance,
109 const VkXlibSurfaceCreateInfoKHR *pCreateInfo,
110 const VkAllocationCallbacks *pAllocator,
111 VkSurfaceKHR *pSurface);
Jon Ashburn23d36b12016-02-02 17:47:28 -0700112VKAPI_ATTR VkBool32 VKAPI_CALL
Jon Ashburn1530c342016-02-26 13:14:27 -0700113terminator_GetPhysicalDeviceXlibPresentationSupportKHR(
Jon Ashburn23d36b12016-02-02 17:47:28 -0700114 VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, Display *dpy,
115 VisualID visualID);
Ian Elliott919fa302015-11-24 15:39:10 -0700116#endif
Jon Ashburnc7d3e732016-03-08 09:30:30 -0700117VKAPI_ATTR VkResult VKAPI_CALL
118terminator_GetPhysicalDeviceDisplayPropertiesKHR(
119 VkPhysicalDevice physicalDevice,
120 uint32_t* pPropertyCount,
121 VkDisplayPropertiesKHR* pProperties);
122VKAPI_ATTR VkResult VKAPI_CALL
123terminator_GetPhysicalDeviceDisplayPlanePropertiesKHR(
124 VkPhysicalDevice physicalDevice,
125 uint32_t* pPropertyCount,
126 VkDisplayPlanePropertiesKHR* pProperties);
127VKAPI_ATTR VkResult VKAPI_CALL
128terminator_GetDisplayPlaneSupportedDisplaysKHR(
129 VkPhysicalDevice physicalDevice,
130 uint32_t planeIndex,
131 uint32_t* pDisplayCount,
132 VkDisplayKHR* pDisplays);
133VKAPI_ATTR VkResult VKAPI_CALL
134terminator_GetDisplayModePropertiesKHR(
135 VkPhysicalDevice physicalDevice,
136 VkDisplayKHR display,
137 uint32_t* pPropertyCount,
138 VkDisplayModePropertiesKHR* pProperties);
139VKAPI_ATTR VkResult VKAPI_CALL
140terminator_CreateDisplayModeKHR(
141 VkPhysicalDevice physicalDevice,
142 VkDisplayKHR display,
143 const VkDisplayModeCreateInfoKHR* pCreateInfo,
144 const VkAllocationCallbacks* pAllocator,
145 VkDisplayModeKHR* pMode);
146VKAPI_ATTR VkResult VKAPI_CALL
147terminator_GetDisplayPlaneCapabilitiesKHR(
148 VkPhysicalDevice physicalDevice,
149 VkDisplayModeKHR mode,
150 uint32_t planeIndex,
151 VkDisplayPlaneCapabilitiesKHR* pCapabilities);
152VKAPI_ATTR VkResult VKAPI_CALL
153terminator_CreateDisplayPlaneSurfaceKHR(
154 VkInstance instance,
155 const VkDisplaySurfaceCreateInfoKHR* pCreateInfo,
156 const VkAllocationCallbacks* pAllocator,
157 VkSurfaceKHR* pSurface);