blob: b94aaf90b1f1216c57f0f606bc5c0736619ba77c [file] [log] [blame]
Mark Lobodzinski317574e2016-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
25bool extension_instance_gpa(struct loader_instance *ptr_instance,
Mark Young35159af2016-09-07 08:50:32 -060026 const char *name, void **addr);
Mark Lobodzinski317574e2016-08-29 14:21:14 -060027
28void extensions_create_instance(struct loader_instance *ptr_instance,
29 const VkInstanceCreateInfo *pCreateInfo);
30
Mark Young39389872017-01-19 21:10:49 -070031// Instance extension terminators for the VK_KHR_get_physical_device_properties2
32// extension
Mark Young65cb3662016-11-07 13:27:02 -070033
Mark Young39389872017-01-19 21:10:49 -070034VKAPI_ATTR void VKAPI_CALL terminator_GetPhysicalDeviceFeatures2KHR(
35 VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2KHR *pFeatures);
36
37VKAPI_ATTR void VKAPI_CALL terminator_GetPhysicalDeviceProperties2KHR(
38 VkPhysicalDevice physicalDevice,
39 VkPhysicalDeviceProperties2KHR *pProperties);
40
41VKAPI_ATTR void VKAPI_CALL terminator_GetPhysicalDeviceFormatProperties2KHR(
42 VkPhysicalDevice physicalDevice, VkFormat format,
43 VkFormatProperties2KHR *pFormatProperties);
44
45VKAPI_ATTR VkResult VKAPI_CALL
46terminator_GetPhysicalDeviceImageFormatProperties2KHR(
47 VkPhysicalDevice physicalDevice,
48 const VkPhysicalDeviceImageFormatInfo2KHR *pImageFormatInfo,
49 VkImageFormatProperties2KHR *pImageFormatProperties);
50
51VKAPI_ATTR void VKAPI_CALL
52terminator_GetPhysicalDeviceQueueFamilyProperties2KHR(
53 VkPhysicalDevice physicalDevice, uint32_t *pQueueFamilyPropertyCount,
54 VkQueueFamilyProperties2KHR *pQueueFamilyProperties);
55
56VKAPI_ATTR void VKAPI_CALL terminator_GetPhysicalDeviceMemoryProperties2KHR(
57 VkPhysicalDevice physicalDevice,
58 VkPhysicalDeviceMemoryProperties2KHR *pMemoryProperties);
59
60VKAPI_ATTR void VKAPI_CALL
61terminator_GetPhysicalDeviceSparseImageFormatProperties2KHR(
62 VkPhysicalDevice physicalDevice,
63 const VkPhysicalDeviceSparseImageFormatInfo2KHR *pFormatInfo,
64 uint32_t *pPropertyCount, VkSparseImageFormatProperties2KHR *pProperties);
65
66// Instance extension terminators for the VK_EXT_acquire_xlib_display
67// extension
68
69#ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
70VKAPI_ATTR VkResult VKAPI_CALL terminator_AcquireXlibDisplayEXT(
71 VkPhysicalDevice physicalDevice, Display *dpy, VkDisplayKHR display);
72
73VKAPI_ATTR VkResult VKAPI_CALL terminator_GetRandROutputDisplayEXT(
74 VkPhysicalDevice physicalDevice, Display *dpy, RROutput rrOutput,
75 VkDisplayKHR *pDisplay);
76#endif /* VK_USE_PLATFORM_XLIB_XRANDR_EXT */
77
78// Instance extension terminators for the VK_EXT_direct_mode_display
79// extension
80
81VKAPI_ATTR VkResult VKAPI_CALL terminator_ReleaseDisplayEXT(
82 VkPhysicalDevice physicalDevice, VkDisplayKHR display);
83
84// Instance extension terminators for the VK_EXT_display_surface_counter
85// extension
86
87VKAPI_ATTR VkResult VKAPI_CALL
88terminator_GetPhysicalDeviceSurfaceCapabilities2EXT(
89 VkPhysicalDevice physicalDevice, VkSurfaceKHR surface,
90 VkSurfaceCapabilities2EXT *pSurfaceCapabilities);
91
92// Device extension terminators for the VK_NV_external_memory_capabilities
93// extension
Mark Young65cb3662016-11-07 13:27:02 -070094
95VKAPI_ATTR VkResult VKAPI_CALL terminator_DebugMarkerSetObjectTagEXT(
96 VkDevice device, VkDebugMarkerObjectTagInfoEXT *pTagInfo);
97
98VKAPI_ATTR VkResult VKAPI_CALL terminator_DebugMarkerSetObjectNameEXT(
99 VkDevice device, VkDebugMarkerObjectNameInfoEXT *pNameInfo);
100
Mark Young39389872017-01-19 21:10:49 -0700101// Instance extension terminators for the VK_NV_external_memory_capabilities
102// extension
Mark Lobodzinski317574e2016-08-29 14:21:14 -0600103
104VKAPI_ATTR VkResult VKAPI_CALL
105terminator_GetPhysicalDeviceExternalImageFormatPropertiesNV(
106 VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type,
107 VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags,
108 VkExternalMemoryHandleTypeFlagsNV externalHandleType,
109 VkExternalImageFormatPropertiesNV *pExternalImageFormatProperties);
Mark Youngfa552782016-12-12 16:14:55 -0700110
111// Instance extension terminators for the VK_NVX_device_generated_commands
112// extension
113VKAPI_ATTR void VKAPI_CALL
114terminator_GetPhysicalDeviceGeneratedCommandsPropertiesNVX(
115 VkPhysicalDevice physicalDevice,
116 VkDeviceGeneratedCommandsFeaturesNVX *pFeatures,
117 VkDeviceGeneratedCommandsLimitsNVX *pLimits);