blob: 4b2b171aeab5ec66b635563b784dc2d4385d8658 [file] [log] [blame]
Ian Elliott1d73e662015-07-06 14:36:13 -06001/*
Jon Ashburn44aed662016-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 Elliott1d73e662015-07-06 14:36:13 -06005 *
Jon Ashburn44aed662016-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 Elliott1d73e662015-07-06 14:36:13 -060012 *
Jon Ashburn44aed662016-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 Elliott1d73e662015-07-06 14:36:13 -060015 *
Jon Ashburn44aed662016-02-02 17:47:28 -070016 * THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
Ian Elliott1d73e662015-07-06 14:36:13 -060017 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
Jon Ashburn44aed662016-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 Elliott1d73e662015-07-06 14:36:13 -060024 *
Courtney Goeltzenleuchter96cd7952015-10-30 11:14:30 -060025 * Author: Ian Elliott <ian@lunarg.com>
26 *
Ian Elliott1d73e662015-07-06 14:36:13 -060027 */
28
29#include "vk_loader_platform.h"
30#include "loader.h"
Ian Elliott1d73e662015-07-06 14:36:13 -060031
Jon Ashburn99456002015-11-06 11:02:40 -070032bool wsi_swapchain_instance_gpa(struct loader_instance *ptr_instance,
Jon Ashburn44aed662016-02-02 17:47:28 -070033 const char *name, void **addr);
Ian Elliott1d73e662015-07-06 14:36:13 -060034
Jon Ashburn44aed662016-02-02 17:47:28 -070035void wsi_create_instance(struct loader_instance *ptr_instance,
36 const VkInstanceCreateInfo *pCreateInfo);
Jon Ashburnc666cff2016-03-25 12:49:35 -060037bool wsi_unsupported_instance_extension(const VkExtensionProperties *ext_prop);
Ian Elliott1d73e662015-07-06 14:36:13 -060038
Jon Ashburn44aed662016-02-02 17:47:28 -070039VKAPI_ATTR void VKAPI_CALL
Jon Ashburna9c4a572016-02-26 13:14:27 -070040terminator_DestroySurfaceKHR(VkInstance instance, VkSurfaceKHR surface,
41 const VkAllocationCallbacks *pAllocator);
Ian Elliott1d73e662015-07-06 14:36:13 -060042
Jon Ashburn44aed662016-02-02 17:47:28 -070043VKAPI_ATTR VkResult VKAPI_CALL
Jon Ashburna9c4a572016-02-26 13:14:27 -070044terminator_GetPhysicalDeviceSurfaceSupportKHR(VkPhysicalDevice physicalDevice,
45 uint32_t queueFamilyIndex,
46 VkSurfaceKHR surface,
47 VkBool32 *pSupported);
Ian Elliott8cda1802015-11-19 16:05:09 -070048
Jon Ashburna9c4a572016-02-26 13:14:27 -070049VKAPI_ATTR VkResult VKAPI_CALL
50terminator_GetPhysicalDeviceSurfaceCapabilitiesKHR(
Jon Ashburn44aed662016-02-02 17:47:28 -070051 VkPhysicalDevice physicalDevice, VkSurfaceKHR surface,
52 VkSurfaceCapabilitiesKHR *pSurfaceCapabilities);
Ian Elliott8cda1802015-11-19 16:05:09 -070053
Jon Ashburna9c4a572016-02-26 13:14:27 -070054VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceSurfaceFormatsKHR(
55 VkPhysicalDevice physicalDevice, VkSurfaceKHR surface,
56 uint32_t *pSurfaceFormatCount, VkSurfaceFormatKHR *pSurfaceFormats);
Ian Elliott8cda1802015-11-19 16:05:09 -070057
Jon Ashburn44aed662016-02-02 17:47:28 -070058VKAPI_ATTR VkResult VKAPI_CALL
Jon Ashburna9c4a572016-02-26 13:14:27 -070059terminator_GetPhysicalDeviceSurfacePresentModesKHR(
60 VkPhysicalDevice physicalDevice, VkSurfaceKHR surface,
61 uint32_t *pPresentModeCount, VkPresentModeKHR *pPresentModes);
Ian Elliott4e309e92015-11-24 15:39:10 -070062
63#ifdef VK_USE_PLATFORM_WIN32_KHR
Jon Ashburn44aed662016-02-02 17:47:28 -070064VKAPI_ATTR VkResult VKAPI_CALL
Jon Ashburna9c4a572016-02-26 13:14:27 -070065terminator_CreateWin32SurfaceKHR(VkInstance instance,
66 const VkWin32SurfaceCreateInfoKHR *pCreateInfo,
67 const VkAllocationCallbacks *pAllocator,
68 VkSurfaceKHR *pSurface);
Jon Ashburn44aed662016-02-02 17:47:28 -070069VKAPI_ATTR VkBool32 VKAPI_CALL
Jon Ashburna9c4a572016-02-26 13:14:27 -070070terminator_GetPhysicalDeviceWin32PresentationSupportKHR(
Jon Ashburn44aed662016-02-02 17:47:28 -070071 VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex);
Ian Elliott4e309e92015-11-24 15:39:10 -070072#endif
73#ifdef VK_USE_PLATFORM_MIR_KHR
Jon Ashburn44aed662016-02-02 17:47:28 -070074VKAPI_ATTR VkResult VKAPI_CALL
Jon Ashburna9c4a572016-02-26 13:14:27 -070075terminator_CreateMirSurfaceKHR(VkInstance instance,
76 const VkMirSurfaceCreateInfoKHR *pCreateInfo,
77 const VkAllocationCallbacks *pAllocator,
78 VkSurfaceKHR *pSurface);
Jon Ashburn44aed662016-02-02 17:47:28 -070079VKAPI_ATTR VkBool32 VKAPI_CALL
Jon Ashburna9c4a572016-02-26 13:14:27 -070080terminator_GetPhysicalDeviceMirPresentationSupportKHR(
Jon Ashburn44aed662016-02-02 17:47:28 -070081 VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex,
82 MirConnection *connection);
Ian Elliott4e309e92015-11-24 15:39:10 -070083#endif
84#ifdef VK_USE_PLATFORM_WAYLAND_KHR
Jon Ashburna9c4a572016-02-26 13:14:27 -070085VKAPI_ATTR VkResult VKAPI_CALL terminator_CreateWaylandSurfaceKHR(
86 VkInstance instance, const VkWaylandSurfaceCreateInfoKHR *pCreateInfo,
87 const VkAllocationCallbacks *pAllocator, VkSurfaceKHR *pSurface);
Jon Ashburn44aed662016-02-02 17:47:28 -070088VKAPI_ATTR VkBool32 VKAPI_CALL
Jon Ashburna9c4a572016-02-26 13:14:27 -070089terminator_GetPhysicalDeviceWaylandPresentationSupportKHR(
Jon Ashburn44aed662016-02-02 17:47:28 -070090 VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex,
91 struct wl_display *display);
Ian Elliott4e309e92015-11-24 15:39:10 -070092#endif
93#ifdef VK_USE_PLATFORM_XCB_KHR
Jon Ashburn44aed662016-02-02 17:47:28 -070094VKAPI_ATTR VkResult VKAPI_CALL
Jon Ashburna9c4a572016-02-26 13:14:27 -070095terminator_CreateXcbSurfaceKHR(VkInstance instance,
96 const VkXcbSurfaceCreateInfoKHR *pCreateInfo,
97 const VkAllocationCallbacks *pAllocator,
98 VkSurfaceKHR *pSurface);
Jon Ashburn25a158f2015-11-25 17:55:49 -070099
Jon Ashburn44aed662016-02-02 17:47:28 -0700100VKAPI_ATTR VkBool32 VKAPI_CALL
Jon Ashburna9c4a572016-02-26 13:14:27 -0700101terminator_GetPhysicalDeviceXcbPresentationSupportKHR(
Jon Ashburn44aed662016-02-02 17:47:28 -0700102 VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex,
103 xcb_connection_t *connection, xcb_visualid_t visual_id);
Ian Elliott4e309e92015-11-24 15:39:10 -0700104#endif
105#ifdef VK_USE_PLATFORM_XLIB_KHR
Jon Ashburn44aed662016-02-02 17:47:28 -0700106VKAPI_ATTR VkResult VKAPI_CALL
Jon Ashburna9c4a572016-02-26 13:14:27 -0700107terminator_CreateXlibSurfaceKHR(VkInstance instance,
108 const VkXlibSurfaceCreateInfoKHR *pCreateInfo,
109 const VkAllocationCallbacks *pAllocator,
110 VkSurfaceKHR *pSurface);
Jon Ashburn44aed662016-02-02 17:47:28 -0700111VKAPI_ATTR VkBool32 VKAPI_CALL
Jon Ashburna9c4a572016-02-26 13:14:27 -0700112terminator_GetPhysicalDeviceXlibPresentationSupportKHR(
Jon Ashburn44aed662016-02-02 17:47:28 -0700113 VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, Display *dpy,
114 VisualID visualID);
Ian Elliott4e309e92015-11-24 15:39:10 -0700115#endif
Jon Ashburn9b2a8c92016-04-15 09:25:03 -0600116VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceDisplayPropertiesKHR(
117 VkPhysicalDevice physicalDevice, uint32_t *pPropertyCount,
118 VkDisplayPropertiesKHR *pProperties);
Jon Ashburn00df0452016-03-08 09:30:30 -0700119VKAPI_ATTR VkResult VKAPI_CALL
120terminator_GetPhysicalDeviceDisplayPlanePropertiesKHR(
Jon Ashburn9b2a8c92016-04-15 09:25:03 -0600121 VkPhysicalDevice physicalDevice, uint32_t *pPropertyCount,
122 VkDisplayPlanePropertiesKHR *pProperties);
Jon Ashburn00df0452016-03-08 09:30:30 -0700123VKAPI_ATTR VkResult VKAPI_CALL
Jon Ashburn9b2a8c92016-04-15 09:25:03 -0600124terminator_GetDisplayPlaneSupportedDisplaysKHR(VkPhysicalDevice physicalDevice,
125 uint32_t planeIndex,
126 uint32_t *pDisplayCount,
127 VkDisplayKHR *pDisplays);
Jon Ashburn00df0452016-03-08 09:30:30 -0700128VKAPI_ATTR VkResult VKAPI_CALL
Jon Ashburn9b2a8c92016-04-15 09:25:03 -0600129terminator_GetDisplayModePropertiesKHR(VkPhysicalDevice physicalDevice,
130 VkDisplayKHR display,
131 uint32_t *pPropertyCount,
132 VkDisplayModePropertiesKHR *pProperties);
Jon Ashburn00df0452016-03-08 09:30:30 -0700133VKAPI_ATTR VkResult VKAPI_CALL
Jon Ashburn9b2a8c92016-04-15 09:25:03 -0600134terminator_CreateDisplayModeKHR(VkPhysicalDevice physicalDevice,
135 VkDisplayKHR display,
136 const VkDisplayModeCreateInfoKHR *pCreateInfo,
137 const VkAllocationCallbacks *pAllocator,
138 VkDisplayModeKHR *pMode);
139VKAPI_ATTR VkResult VKAPI_CALL terminator_GetDisplayPlaneCapabilitiesKHR(
140 VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint32_t planeIndex,
141 VkDisplayPlaneCapabilitiesKHR *pCapabilities);
142VKAPI_ATTR VkResult VKAPI_CALL terminator_CreateDisplayPlaneSurfaceKHR(
143 VkInstance instance, const VkDisplaySurfaceCreateInfoKHR *pCreateInfo,
144 const VkAllocationCallbacks *pAllocator, VkSurfaceKHR *pSurface);