blob: fa6008884c0f51eb04d19f479c54fcd854d70bb3 [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 Ashburn3ebf1252016-04-19 11:30:31 -06006 * 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
Ian Elliottd3ef02f2015-07-06 14:36:13 -06009 *
Jon Ashburn3ebf1252016-04-19 11:30:31 -060010 * http://www.apache.org/licenses/LICENSE-2.0
Ian Elliottd3ef02f2015-07-06 14:36:13 -060011 *
Jon Ashburn3ebf1252016-04-19 11:30:31 -060012 * 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.
Ian Elliottd3ef02f2015-07-06 14:36:13 -060017 *
Courtney Goeltzenleuchter05559522015-10-30 11:14:30 -060018 * Author: Ian Elliott <ian@lunarg.com>
19 *
Ian Elliottd3ef02f2015-07-06 14:36:13 -060020 */
21
22#include "vk_loader_platform.h"
23#include "loader.h"
Ian Elliottd3ef02f2015-07-06 14:36:13 -060024
Jon Ashburn8a39efc2015-11-06 11:02:40 -070025bool wsi_swapchain_instance_gpa(struct loader_instance *ptr_instance,
Jon Ashburn23d36b12016-02-02 17:47:28 -070026 const char *name, void **addr);
Ian Elliottd3ef02f2015-07-06 14:36:13 -060027
Jon Ashburn23d36b12016-02-02 17:47:28 -070028void wsi_create_instance(struct loader_instance *ptr_instance,
29 const VkInstanceCreateInfo *pCreateInfo);
Jon Ashburn6fa520f2016-03-25 12:49:35 -060030bool wsi_unsupported_instance_extension(const VkExtensionProperties *ext_prop);
Ian Elliottd3ef02f2015-07-06 14:36:13 -060031
Jon Ashburn23d36b12016-02-02 17:47:28 -070032VKAPI_ATTR void VKAPI_CALL
Jon Ashburn1530c342016-02-26 13:14:27 -070033terminator_DestroySurfaceKHR(VkInstance instance, VkSurfaceKHR surface,
34 const VkAllocationCallbacks *pAllocator);
Ian Elliottd3ef02f2015-07-06 14:36:13 -060035
Jon Ashburn23d36b12016-02-02 17:47:28 -070036VKAPI_ATTR VkResult VKAPI_CALL
Jon Ashburn1530c342016-02-26 13:14:27 -070037terminator_GetPhysicalDeviceSurfaceSupportKHR(VkPhysicalDevice physicalDevice,
38 uint32_t queueFamilyIndex,
39 VkSurfaceKHR surface,
40 VkBool32 *pSupported);
Ian Elliott486c5502015-11-19 16:05:09 -070041
Jon Ashburn1530c342016-02-26 13:14:27 -070042VKAPI_ATTR VkResult VKAPI_CALL
43terminator_GetPhysicalDeviceSurfaceCapabilitiesKHR(
Jon Ashburn23d36b12016-02-02 17:47:28 -070044 VkPhysicalDevice physicalDevice, VkSurfaceKHR surface,
45 VkSurfaceCapabilitiesKHR *pSurfaceCapabilities);
Ian Elliott486c5502015-11-19 16:05:09 -070046
Jon Ashburn1530c342016-02-26 13:14:27 -070047VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceSurfaceFormatsKHR(
48 VkPhysicalDevice physicalDevice, VkSurfaceKHR surface,
49 uint32_t *pSurfaceFormatCount, VkSurfaceFormatKHR *pSurfaceFormats);
Ian Elliott486c5502015-11-19 16:05:09 -070050
Jon Ashburn23d36b12016-02-02 17:47:28 -070051VKAPI_ATTR VkResult VKAPI_CALL
Jon Ashburn1530c342016-02-26 13:14:27 -070052terminator_GetPhysicalDeviceSurfacePresentModesKHR(
53 VkPhysicalDevice physicalDevice, VkSurfaceKHR surface,
54 uint32_t *pPresentModeCount, VkPresentModeKHR *pPresentModes);
Ian Elliott919fa302015-11-24 15:39:10 -070055
56#ifdef VK_USE_PLATFORM_WIN32_KHR
Jon Ashburn23d36b12016-02-02 17:47:28 -070057VKAPI_ATTR VkResult VKAPI_CALL
Jon Ashburn1530c342016-02-26 13:14:27 -070058terminator_CreateWin32SurfaceKHR(VkInstance instance,
59 const VkWin32SurfaceCreateInfoKHR *pCreateInfo,
60 const VkAllocationCallbacks *pAllocator,
61 VkSurfaceKHR *pSurface);
Jon Ashburn23d36b12016-02-02 17:47:28 -070062VKAPI_ATTR VkBool32 VKAPI_CALL
Jon Ashburn1530c342016-02-26 13:14:27 -070063terminator_GetPhysicalDeviceWin32PresentationSupportKHR(
Jon Ashburn23d36b12016-02-02 17:47:28 -070064 VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex);
Ian Elliott919fa302015-11-24 15:39:10 -070065#endif
66#ifdef VK_USE_PLATFORM_MIR_KHR
Jon Ashburn23d36b12016-02-02 17:47:28 -070067VKAPI_ATTR VkResult VKAPI_CALL
Jon Ashburn1530c342016-02-26 13:14:27 -070068terminator_CreateMirSurfaceKHR(VkInstance instance,
69 const VkMirSurfaceCreateInfoKHR *pCreateInfo,
70 const VkAllocationCallbacks *pAllocator,
71 VkSurfaceKHR *pSurface);
Jon Ashburn23d36b12016-02-02 17:47:28 -070072VKAPI_ATTR VkBool32 VKAPI_CALL
Jon Ashburn1530c342016-02-26 13:14:27 -070073terminator_GetPhysicalDeviceMirPresentationSupportKHR(
Jon Ashburn23d36b12016-02-02 17:47:28 -070074 VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex,
75 MirConnection *connection);
Ian Elliott919fa302015-11-24 15:39:10 -070076#endif
77#ifdef VK_USE_PLATFORM_WAYLAND_KHR
Jon Ashburn1530c342016-02-26 13:14:27 -070078VKAPI_ATTR VkResult VKAPI_CALL terminator_CreateWaylandSurfaceKHR(
79 VkInstance instance, const VkWaylandSurfaceCreateInfoKHR *pCreateInfo,
80 const VkAllocationCallbacks *pAllocator, VkSurfaceKHR *pSurface);
Jon Ashburn23d36b12016-02-02 17:47:28 -070081VKAPI_ATTR VkBool32 VKAPI_CALL
Jon Ashburn1530c342016-02-26 13:14:27 -070082terminator_GetPhysicalDeviceWaylandPresentationSupportKHR(
Jon Ashburn23d36b12016-02-02 17:47:28 -070083 VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex,
84 struct wl_display *display);
Ian Elliott919fa302015-11-24 15:39:10 -070085#endif
86#ifdef VK_USE_PLATFORM_XCB_KHR
Jon Ashburn23d36b12016-02-02 17:47:28 -070087VKAPI_ATTR VkResult VKAPI_CALL
Jon Ashburn1530c342016-02-26 13:14:27 -070088terminator_CreateXcbSurfaceKHR(VkInstance instance,
89 const VkXcbSurfaceCreateInfoKHR *pCreateInfo,
90 const VkAllocationCallbacks *pAllocator,
91 VkSurfaceKHR *pSurface);
Jon Ashburnf72a04b2015-11-25 17:55:49 -070092
Jon Ashburn23d36b12016-02-02 17:47:28 -070093VKAPI_ATTR VkBool32 VKAPI_CALL
Jon Ashburn1530c342016-02-26 13:14:27 -070094terminator_GetPhysicalDeviceXcbPresentationSupportKHR(
Jon Ashburn23d36b12016-02-02 17:47:28 -070095 VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex,
96 xcb_connection_t *connection, xcb_visualid_t visual_id);
Ian Elliott919fa302015-11-24 15:39:10 -070097#endif
98#ifdef VK_USE_PLATFORM_XLIB_KHR
Jon Ashburn23d36b12016-02-02 17:47:28 -070099VKAPI_ATTR VkResult VKAPI_CALL
Jon Ashburn1530c342016-02-26 13:14:27 -0700100terminator_CreateXlibSurfaceKHR(VkInstance instance,
101 const VkXlibSurfaceCreateInfoKHR *pCreateInfo,
102 const VkAllocationCallbacks *pAllocator,
103 VkSurfaceKHR *pSurface);
Jon Ashburn23d36b12016-02-02 17:47:28 -0700104VKAPI_ATTR VkBool32 VKAPI_CALL
Jon Ashburn1530c342016-02-26 13:14:27 -0700105terminator_GetPhysicalDeviceXlibPresentationSupportKHR(
Jon Ashburn23d36b12016-02-02 17:47:28 -0700106 VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, Display *dpy,
107 VisualID visualID);
Ian Elliott919fa302015-11-24 15:39:10 -0700108#endif
Jon Ashburncc407a22016-04-15 09:25:03 -0600109VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceDisplayPropertiesKHR(
110 VkPhysicalDevice physicalDevice, uint32_t *pPropertyCount,
111 VkDisplayPropertiesKHR *pProperties);
Jon Ashburnc7d3e732016-03-08 09:30:30 -0700112VKAPI_ATTR VkResult VKAPI_CALL
113terminator_GetPhysicalDeviceDisplayPlanePropertiesKHR(
Jon Ashburncc407a22016-04-15 09:25:03 -0600114 VkPhysicalDevice physicalDevice, uint32_t *pPropertyCount,
115 VkDisplayPlanePropertiesKHR *pProperties);
Jon Ashburnc7d3e732016-03-08 09:30:30 -0700116VKAPI_ATTR VkResult VKAPI_CALL
Jon Ashburncc407a22016-04-15 09:25:03 -0600117terminator_GetDisplayPlaneSupportedDisplaysKHR(VkPhysicalDevice physicalDevice,
118 uint32_t planeIndex,
119 uint32_t *pDisplayCount,
120 VkDisplayKHR *pDisplays);
Jon Ashburnc7d3e732016-03-08 09:30:30 -0700121VKAPI_ATTR VkResult VKAPI_CALL
Jon Ashburncc407a22016-04-15 09:25:03 -0600122terminator_GetDisplayModePropertiesKHR(VkPhysicalDevice physicalDevice,
123 VkDisplayKHR display,
124 uint32_t *pPropertyCount,
125 VkDisplayModePropertiesKHR *pProperties);
Jon Ashburnc7d3e732016-03-08 09:30:30 -0700126VKAPI_ATTR VkResult VKAPI_CALL
Jon Ashburncc407a22016-04-15 09:25:03 -0600127terminator_CreateDisplayModeKHR(VkPhysicalDevice physicalDevice,
128 VkDisplayKHR display,
129 const VkDisplayModeCreateInfoKHR *pCreateInfo,
130 const VkAllocationCallbacks *pAllocator,
131 VkDisplayModeKHR *pMode);
132VKAPI_ATTR VkResult VKAPI_CALL terminator_GetDisplayPlaneCapabilitiesKHR(
133 VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint32_t planeIndex,
134 VkDisplayPlaneCapabilitiesKHR *pCapabilities);
135VKAPI_ATTR VkResult VKAPI_CALL terminator_CreateDisplayPlaneSurfaceKHR(
136 VkInstance instance, const VkDisplaySurfaceCreateInfoKHR *pCreateInfo,
Jon Ashburn3ebf1252016-04-19 11:30:31 -0600137 const VkAllocationCallbacks *pAllocator, VkSurfaceKHR *pSurface);