blob: c0213313d78939e997947eecd2a01dc66ffb0a91 [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
41loader_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
45loader_GetPhysicalDeviceSurfaceSupportKHR(VkPhysicalDevice physicalDevice,
46 uint32_t queueFamilyIndex,
47 VkSurfaceKHR surface,
48 VkBool32 *pSupported);
Ian Elliott486c5502015-11-19 16:05:09 -070049
50VKAPI_ATTR VkResult VKAPI_CALL loader_GetPhysicalDeviceSurfaceCapabilitiesKHR(
Jon Ashburn23d36b12016-02-02 17:47:28 -070051 VkPhysicalDevice physicalDevice, VkSurfaceKHR surface,
52 VkSurfaceCapabilitiesKHR *pSurfaceCapabilities);
Ian Elliott486c5502015-11-19 16:05:09 -070053
Jon Ashburn23d36b12016-02-02 17:47:28 -070054VKAPI_ATTR VkResult VKAPI_CALL
55loader_GetPhysicalDeviceSurfaceFormatsKHR(VkPhysicalDevice physicalDevice,
56 VkSurfaceKHR surface,
57 uint32_t *pSurfaceFormatCount,
58 VkSurfaceFormatKHR *pSurfaceFormats);
Ian Elliott486c5502015-11-19 16:05:09 -070059
Jon Ashburn23d36b12016-02-02 17:47:28 -070060VKAPI_ATTR VkResult VKAPI_CALL
61loader_GetPhysicalDeviceSurfacePresentModesKHR(VkPhysicalDevice physicalDevice,
62 VkSurfaceKHR surface,
63 uint32_t *pPresentModeCount,
64 VkPresentModeKHR *pPresentModes);
Ian Elliott919fa302015-11-24 15:39:10 -070065
66#ifdef VK_USE_PLATFORM_WIN32_KHR
Jon Ashburn23d36b12016-02-02 17:47:28 -070067VKAPI_ATTR VkResult VKAPI_CALL
68loader_CreateWin32SurfaceKHR(VkInstance instance,
69 const VkWin32SurfaceCreateInfoKHR *pCreateInfo,
70 const VkAllocationCallbacks *pAllocator,
71 VkSurfaceKHR *pSurface);
72VKAPI_ATTR VkBool32 VKAPI_CALL
73loader_GetPhysicalDeviceWin32PresentationSupportKHR(
74 VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex);
Ian Elliott919fa302015-11-24 15:39:10 -070075#endif
76#ifdef VK_USE_PLATFORM_MIR_KHR
Jon Ashburn23d36b12016-02-02 17:47:28 -070077VKAPI_ATTR VkResult VKAPI_CALL
78loader_CreateMirSurfaceKHR(VkInstance instance,
79 const VkMirSurfaceCreateInfoKHR *pCreateInfo,
80 const VkAllocationCallbacks *pAllocator,
81 VkSurfaceKHR *pSurface);
82VKAPI_ATTR VkBool32 VKAPI_CALL
83loader_GetPhysicalDeviceMirPresentationSupportKHR(
84 VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex,
85 MirConnection *connection);
Ian Elliott919fa302015-11-24 15:39:10 -070086#endif
87#ifdef VK_USE_PLATFORM_WAYLAND_KHR
Jon Ashburn23d36b12016-02-02 17:47:28 -070088VKAPI_ATTR VkResult VKAPI_CALL
89loader_CreateWaylandSurfaceKHR(VkInstance instance,
90 const VkWaylandSurfaceCreateInfoKHR *pCreateInfo,
91 const VkAllocationCallbacks *pAllocator,
92 VkSurfaceKHR *pSurface);
93VKAPI_ATTR VkBool32 VKAPI_CALL
94loader_GetPhysicalDeviceWaylandPresentationSupportKHR(
95 VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex,
96 struct wl_display *display);
Ian Elliott919fa302015-11-24 15:39:10 -070097#endif
98#ifdef VK_USE_PLATFORM_XCB_KHR
Jon Ashburn23d36b12016-02-02 17:47:28 -070099VKAPI_ATTR VkResult VKAPI_CALL
100loader_CreateXcbSurfaceKHR(VkInstance instance,
101 const VkXcbSurfaceCreateInfoKHR *pCreateInfo,
102 const VkAllocationCallbacks *pAllocator,
103 VkSurfaceKHR *pSurface);
Jon Ashburnf72a04b2015-11-25 17:55:49 -0700104
Jon Ashburn23d36b12016-02-02 17:47:28 -0700105VKAPI_ATTR VkBool32 VKAPI_CALL
106loader_GetPhysicalDeviceXcbPresentationSupportKHR(
107 VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex,
108 xcb_connection_t *connection, xcb_visualid_t visual_id);
Ian Elliott919fa302015-11-24 15:39:10 -0700109#endif
110#ifdef VK_USE_PLATFORM_XLIB_KHR
Jon Ashburn23d36b12016-02-02 17:47:28 -0700111VKAPI_ATTR VkResult VKAPI_CALL
112loader_CreateXlibSurfaceKHR(VkInstance instance,
113 const VkXlibSurfaceCreateInfoKHR *pCreateInfo,
114 const VkAllocationCallbacks *pAllocator,
115 VkSurfaceKHR *pSurface);
116VKAPI_ATTR VkBool32 VKAPI_CALL
117loader_GetPhysicalDeviceXlibPresentationSupportKHR(
118 VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, Display *dpy,
119 VisualID visualID);
Ian Elliott919fa302015-11-24 15:39:10 -0700120#endif