blob: 5736f3ba201e8949b05c3f606e750a16d47fc97c [file] [log] [blame]
Mark Lobodzinski7cb441a2016-08-29 14:21:14 -06001/*
2 * Copyright (c) 2015-2016 The Khronos Group Inc.
3 * Copyright (c) 2015-2016 Valve Corporation
4 * Copyright (c) 2015-2016 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 Lobodzinski <mark@lunarg.com>
19 *
20 */
21
22#include "vk_loader_platform.h"
23#include "loader.h"
24
Mark Lobodzinskibc9caa52017-01-26 12:16:30 -070025bool extension_instance_gpa(struct loader_instance *ptr_instance, const char *name, void **addr);
Mark Lobodzinski7cb441a2016-08-29 14:21:14 -060026
Mark Lobodzinskibc9caa52017-01-26 12:16:30 -070027void extensions_create_instance(struct loader_instance *ptr_instance, const VkInstanceCreateInfo *pCreateInfo);
Mark Lobodzinski7cb441a2016-08-29 14:21:14 -060028
Mark Youngb5f087a2017-01-19 21:10:49 -070029// Instance extension terminators for the VK_KHR_get_physical_device_properties2
30// extension
Mark Young9510c142016-11-07 13:27:02 -070031
Mark Lobodzinskibc9caa52017-01-26 12:16:30 -070032VKAPI_ATTR void VKAPI_CALL terminator_GetPhysicalDeviceFeatures2KHR(VkPhysicalDevice physicalDevice,
33 VkPhysicalDeviceFeatures2KHR *pFeatures);
Mark Youngb5f087a2017-01-19 21:10:49 -070034
Mark Lobodzinskibc9caa52017-01-26 12:16:30 -070035VKAPI_ATTR void VKAPI_CALL terminator_GetPhysicalDeviceProperties2KHR(VkPhysicalDevice physicalDevice,
36 VkPhysicalDeviceProperties2KHR *pProperties);
Mark Youngb5f087a2017-01-19 21:10:49 -070037
Mark Lobodzinskibc9caa52017-01-26 12:16:30 -070038VKAPI_ATTR void VKAPI_CALL terminator_GetPhysicalDeviceFormatProperties2KHR(VkPhysicalDevice physicalDevice, VkFormat format,
39 VkFormatProperties2KHR *pFormatProperties);
Mark Youngb5f087a2017-01-19 21:10:49 -070040
Mark Lobodzinskibc9caa52017-01-26 12:16:30 -070041VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceImageFormatProperties2KHR(
42 VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2KHR *pImageFormatInfo,
Mark Youngb5f087a2017-01-19 21:10:49 -070043 VkImageFormatProperties2KHR *pImageFormatProperties);
44
Mark Lobodzinskibc9caa52017-01-26 12:16:30 -070045VKAPI_ATTR void VKAPI_CALL terminator_GetPhysicalDeviceQueueFamilyProperties2KHR(
46 VkPhysicalDevice physicalDevice, uint32_t *pQueueFamilyPropertyCount, VkQueueFamilyProperties2KHR *pQueueFamilyProperties);
Mark Youngb5f087a2017-01-19 21:10:49 -070047
48VKAPI_ATTR void VKAPI_CALL terminator_GetPhysicalDeviceMemoryProperties2KHR(
Mark Lobodzinskibc9caa52017-01-26 12:16:30 -070049 VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2KHR *pMemoryProperties);
Mark Youngb5f087a2017-01-19 21:10:49 -070050
Mark Lobodzinskibc9caa52017-01-26 12:16:30 -070051VKAPI_ATTR void VKAPI_CALL terminator_GetPhysicalDeviceSparseImageFormatProperties2KHR(
52 VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2KHR *pFormatInfo, uint32_t *pPropertyCount,
53 VkSparseImageFormatProperties2KHR *pProperties);
Mark Youngb5f087a2017-01-19 21:10:49 -070054
55// Instance extension terminators for the VK_EXT_acquire_xlib_display
56// extension
57
58#ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
Mark Lobodzinskibc9caa52017-01-26 12:16:30 -070059VKAPI_ATTR VkResult VKAPI_CALL terminator_AcquireXlibDisplayEXT(VkPhysicalDevice physicalDevice, Display *dpy,
60 VkDisplayKHR display);
Mark Youngb5f087a2017-01-19 21:10:49 -070061
Mark Lobodzinskibc9caa52017-01-26 12:16:30 -070062VKAPI_ATTR VkResult VKAPI_CALL terminator_GetRandROutputDisplayEXT(VkPhysicalDevice physicalDevice, Display *dpy, RROutput rrOutput,
63 VkDisplayKHR *pDisplay);
Mark Youngb5f087a2017-01-19 21:10:49 -070064#endif /* VK_USE_PLATFORM_XLIB_XRANDR_EXT */
65
66// Instance extension terminators for the VK_EXT_direct_mode_display
67// extension
68
Mark Lobodzinskibc9caa52017-01-26 12:16:30 -070069VKAPI_ATTR VkResult VKAPI_CALL terminator_ReleaseDisplayEXT(VkPhysicalDevice physicalDevice, VkDisplayKHR display);
Mark Youngb5f087a2017-01-19 21:10:49 -070070
71// Instance extension terminators for the VK_EXT_display_surface_counter
72// extension
73
Mark Lobodzinskibc9caa52017-01-26 12:16:30 -070074VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceSurfaceCapabilities2EXT(VkPhysicalDevice physicalDevice,
75 VkSurfaceKHR surface,
76 VkSurfaceCapabilities2EXT *pSurfaceCapabilities);
Mark Youngb5f087a2017-01-19 21:10:49 -070077
78// Device extension terminators for the VK_NV_external_memory_capabilities
79// extension
Mark Young9510c142016-11-07 13:27:02 -070080
Mark Lobodzinskibc9caa52017-01-26 12:16:30 -070081VKAPI_ATTR VkResult VKAPI_CALL terminator_DebugMarkerSetObjectTagEXT(VkDevice device, VkDebugMarkerObjectTagInfoEXT *pTagInfo);
Mark Young9510c142016-11-07 13:27:02 -070082
Mark Lobodzinskibc9caa52017-01-26 12:16:30 -070083VKAPI_ATTR VkResult VKAPI_CALL terminator_DebugMarkerSetObjectNameEXT(VkDevice device, VkDebugMarkerObjectNameInfoEXT *pNameInfo);
Mark Young9510c142016-11-07 13:27:02 -070084
Mark Youngb5f087a2017-01-19 21:10:49 -070085// Instance extension terminators for the VK_NV_external_memory_capabilities
86// extension
Mark Lobodzinski7cb441a2016-08-29 14:21:14 -060087
Mark Lobodzinskibc9caa52017-01-26 12:16:30 -070088VKAPI_ATTR VkResult VKAPI_CALL terminator_GetPhysicalDeviceExternalImageFormatPropertiesNV(
89 VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage,
90 VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType,
Mark Lobodzinski7cb441a2016-08-29 14:21:14 -060091 VkExternalImageFormatPropertiesNV *pExternalImageFormatProperties);
Mark Young35f87ea2016-12-12 16:14:55 -070092
93// Instance extension terminators for the VK_NVX_device_generated_commands
94// extension
Mark Lobodzinskibc9caa52017-01-26 12:16:30 -070095VKAPI_ATTR void VKAPI_CALL terminator_GetPhysicalDeviceGeneratedCommandsPropertiesNVX(
96 VkPhysicalDevice physicalDevice, VkDeviceGeneratedCommandsFeaturesNVX *pFeatures, VkDeviceGeneratedCommandsLimitsNVX *pLimits);