vulkan: update vk_icd.h to current upstream
Import from commit eb0c1fd on branch 'master' of https://github.com/KhronosGroup/Vulkan-Headers.git. Signed-off-by: Tapani Pälli <tapani.palli@intel.com> Acked-by: Jason Ekstrand <jason@jlekstrand.net>
This commit is contained in:
@@ -24,13 +24,34 @@
|
|||||||
#define VKICD_H
|
#define VKICD_H
|
||||||
|
|
||||||
#include "vulkan.h"
|
#include "vulkan.h"
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
/*
|
// Loader-ICD version negotiation API. Versions add the following features:
|
||||||
* Loader-ICD version negotiation API
|
// Version 0 - Initial. Doesn't support vk_icdGetInstanceProcAddr
|
||||||
*/
|
// or vk_icdNegotiateLoaderICDInterfaceVersion.
|
||||||
#define CURRENT_LOADER_ICD_INTERFACE_VERSION 3
|
// Version 1 - Add support for vk_icdGetInstanceProcAddr.
|
||||||
|
// Version 2 - Add Loader/ICD Interface version negotiation
|
||||||
|
// via vk_icdNegotiateLoaderICDInterfaceVersion.
|
||||||
|
// Version 3 - Add ICD creation/destruction of KHR_surface objects.
|
||||||
|
// Version 4 - Add unknown physical device extension qyering via
|
||||||
|
// vk_icdGetPhysicalDeviceProcAddr.
|
||||||
|
// Version 5 - Tells ICDs that the loader is now paying attention to the
|
||||||
|
// application version of Vulkan passed into the ApplicationInfo
|
||||||
|
// structure during vkCreateInstance. This will tell the ICD
|
||||||
|
// that if the loader is older, it should automatically fail a
|
||||||
|
// call for any API version > 1.0. Otherwise, the loader will
|
||||||
|
// manually determine if it can support the expected version.
|
||||||
|
#define CURRENT_LOADER_ICD_INTERFACE_VERSION 5
|
||||||
#define MIN_SUPPORTED_LOADER_ICD_INTERFACE_VERSION 0
|
#define MIN_SUPPORTED_LOADER_ICD_INTERFACE_VERSION 0
|
||||||
typedef VkResult (VKAPI_PTR *PFN_vkNegotiateLoaderICDInterfaceVersion)(uint32_t *pVersion);
|
#define MIN_PHYS_DEV_EXTENSION_ICD_INTERFACE_VERSION 4
|
||||||
|
typedef VkResult(VKAPI_PTR *PFN_vkNegotiateLoaderICDInterfaceVersion)(uint32_t *pVersion);
|
||||||
|
|
||||||
|
// This is defined in vk_layer.h which will be found by the loader, but if an ICD is building against this
|
||||||
|
// file directly, it won't be found.
|
||||||
|
#ifndef PFN_GetPhysicalDeviceProcAddr
|
||||||
|
typedef PFN_vkVoidFunction(VKAPI_PTR *PFN_GetPhysicalDeviceProcAddr)(VkInstance instance, const char *pName);
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The ICD must reserve space for a pointer for the loader's dispatch
|
* The ICD must reserve space for a pointer for the loader's dispatch
|
||||||
* table, at the start of <each object>.
|
* table, at the start of <each object>.
|
||||||
@@ -64,6 +85,9 @@ typedef enum {
|
|||||||
VK_ICD_WSI_PLATFORM_WIN32,
|
VK_ICD_WSI_PLATFORM_WIN32,
|
||||||
VK_ICD_WSI_PLATFORM_XCB,
|
VK_ICD_WSI_PLATFORM_XCB,
|
||||||
VK_ICD_WSI_PLATFORM_XLIB,
|
VK_ICD_WSI_PLATFORM_XLIB,
|
||||||
|
VK_ICD_WSI_PLATFORM_ANDROID,
|
||||||
|
VK_ICD_WSI_PLATFORM_MACOS,
|
||||||
|
VK_ICD_WSI_PLATFORM_IOS,
|
||||||
VK_ICD_WSI_PLATFORM_DISPLAY
|
VK_ICD_WSI_PLATFORM_DISPLAY
|
||||||
} VkIcdWsiPlatform;
|
} VkIcdWsiPlatform;
|
||||||
|
|
||||||
@@ -77,7 +101,7 @@ typedef struct {
|
|||||||
MirConnection *connection;
|
MirConnection *connection;
|
||||||
MirSurface *mirSurface;
|
MirSurface *mirSurface;
|
||||||
} VkIcdSurfaceMir;
|
} VkIcdSurfaceMir;
|
||||||
#endif // VK_USE_PLATFORM_MIR_KHR
|
#endif // VK_USE_PLATFORM_MIR_KHR
|
||||||
|
|
||||||
#ifdef VK_USE_PLATFORM_WAYLAND_KHR
|
#ifdef VK_USE_PLATFORM_WAYLAND_KHR
|
||||||
typedef struct {
|
typedef struct {
|
||||||
@@ -85,7 +109,7 @@ typedef struct {
|
|||||||
struct wl_display *display;
|
struct wl_display *display;
|
||||||
struct wl_surface *surface;
|
struct wl_surface *surface;
|
||||||
} VkIcdSurfaceWayland;
|
} VkIcdSurfaceWayland;
|
||||||
#endif // VK_USE_PLATFORM_WAYLAND_KHR
|
#endif // VK_USE_PLATFORM_WAYLAND_KHR
|
||||||
|
|
||||||
#ifdef VK_USE_PLATFORM_WIN32_KHR
|
#ifdef VK_USE_PLATFORM_WIN32_KHR
|
||||||
typedef struct {
|
typedef struct {
|
||||||
@@ -93,7 +117,7 @@ typedef struct {
|
|||||||
HINSTANCE hinstance;
|
HINSTANCE hinstance;
|
||||||
HWND hwnd;
|
HWND hwnd;
|
||||||
} VkIcdSurfaceWin32;
|
} VkIcdSurfaceWin32;
|
||||||
#endif // VK_USE_PLATFORM_WIN32_KHR
|
#endif // VK_USE_PLATFORM_WIN32_KHR
|
||||||
|
|
||||||
#ifdef VK_USE_PLATFORM_XCB_KHR
|
#ifdef VK_USE_PLATFORM_XCB_KHR
|
||||||
typedef struct {
|
typedef struct {
|
||||||
@@ -101,7 +125,7 @@ typedef struct {
|
|||||||
xcb_connection_t *connection;
|
xcb_connection_t *connection;
|
||||||
xcb_window_t window;
|
xcb_window_t window;
|
||||||
} VkIcdSurfaceXcb;
|
} VkIcdSurfaceXcb;
|
||||||
#endif // VK_USE_PLATFORM_XCB_KHR
|
#endif // VK_USE_PLATFORM_XCB_KHR
|
||||||
|
|
||||||
#ifdef VK_USE_PLATFORM_XLIB_KHR
|
#ifdef VK_USE_PLATFORM_XLIB_KHR
|
||||||
typedef struct {
|
typedef struct {
|
||||||
@@ -109,13 +133,28 @@ typedef struct {
|
|||||||
Display *dpy;
|
Display *dpy;
|
||||||
Window window;
|
Window window;
|
||||||
} VkIcdSurfaceXlib;
|
} VkIcdSurfaceXlib;
|
||||||
#endif // VK_USE_PLATFORM_XLIB_KHR
|
#endif // VK_USE_PLATFORM_XLIB_KHR
|
||||||
|
|
||||||
#ifdef VK_USE_PLATFORM_ANDROID_KHR
|
#ifdef VK_USE_PLATFORM_ANDROID_KHR
|
||||||
typedef struct {
|
typedef struct {
|
||||||
ANativeWindow* window;
|
VkIcdSurfaceBase base;
|
||||||
|
struct ANativeWindow *window;
|
||||||
} VkIcdSurfaceAndroid;
|
} VkIcdSurfaceAndroid;
|
||||||
#endif //VK_USE_PLATFORM_ANDROID_KHR
|
#endif // VK_USE_PLATFORM_ANDROID_KHR
|
||||||
|
|
||||||
|
#ifdef VK_USE_PLATFORM_MACOS_MVK
|
||||||
|
typedef struct {
|
||||||
|
VkIcdSurfaceBase base;
|
||||||
|
const void *pView;
|
||||||
|
} VkIcdSurfaceMacOS;
|
||||||
|
#endif // VK_USE_PLATFORM_MACOS_MVK
|
||||||
|
|
||||||
|
#ifdef VK_USE_PLATFORM_IOS_MVK
|
||||||
|
typedef struct {
|
||||||
|
VkIcdSurfaceBase base;
|
||||||
|
const void *pView;
|
||||||
|
} VkIcdSurfaceIOS;
|
||||||
|
#endif // VK_USE_PLATFORM_IOS_MVK
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
VkIcdSurfaceBase base;
|
VkIcdSurfaceBase base;
|
||||||
@@ -128,4 +167,4 @@ typedef struct {
|
|||||||
VkExtent2D imageExtent;
|
VkExtent2D imageExtent;
|
||||||
} VkIcdSurfaceDisplay;
|
} VkIcdSurfaceDisplay;
|
||||||
|
|
||||||
#endif // VKICD_H
|
#endif // VKICD_H
|
||||||
|
Reference in New Issue
Block a user