[Mesa-dev] [PATCH] vulkan: update vk_icd.h to current upstream
Jason Ekstrand
jason at jlekstrand.net
Fri May 18 05:06:23 UTC 2018
Acked-by: Jason Ekstrand <jason at jlekstrand.net>
On Thu, May 17, 2018 at 10:05 PM, Tapani Pälli <tapani.palli at intel.com>
wrote:
> Import from commit eb0c1fd on branch 'master'
> of https://github.com/KhronosGroup/Vulkan-Headers.git.
>
> Signed-off-by: Tapani Pälli <tapani.palli at intel.com>
> ---
> include/vulkan/vk_icd.h | 67 ++++++++++++++++++++++++++++++
> ++++++++-----------
> 1 file changed, 53 insertions(+), 14 deletions(-)
>
> diff --git a/include/vulkan/vk_icd.h b/include/vulkan/vk_icd.h
> index 7b54fb5774..b935fa1786 100644
> --- a/include/vulkan/vk_icd.h
> +++ b/include/vulkan/vk_icd.h
> @@ -24,13 +24,34 @@
> #define VKICD_H
>
> #include "vulkan.h"
> -
> -/*
> - * Loader-ICD version negotiation API
> - */
> -#define CURRENT_LOADER_ICD_INTERFACE_VERSION 3
> +#include <stdbool.h>
> +
> +// Loader-ICD version negotiation API. Versions add the following
> features:
> +// Version 0 - Initial. Doesn't support vk_icdGetInstanceProcAddr
> +// or vk_icdNegotiateLoaderICDInterfaceVersion.
> +// 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
> -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
> * table, at the start of <each object>.
> @@ -64,6 +85,9 @@ typedef enum {
> VK_ICD_WSI_PLATFORM_WIN32,
> VK_ICD_WSI_PLATFORM_XCB,
> 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
> } VkIcdWsiPlatform;
>
> @@ -77,7 +101,7 @@ typedef struct {
> MirConnection *connection;
> MirSurface *mirSurface;
> } VkIcdSurfaceMir;
> -#endif // VK_USE_PLATFORM_MIR_KHR
> +#endif // VK_USE_PLATFORM_MIR_KHR
>
> #ifdef VK_USE_PLATFORM_WAYLAND_KHR
> typedef struct {
> @@ -85,7 +109,7 @@ typedef struct {
> struct wl_display *display;
> struct wl_surface *surface;
> } VkIcdSurfaceWayland;
> -#endif // VK_USE_PLATFORM_WAYLAND_KHR
> +#endif // VK_USE_PLATFORM_WAYLAND_KHR
>
> #ifdef VK_USE_PLATFORM_WIN32_KHR
> typedef struct {
> @@ -93,7 +117,7 @@ typedef struct {
> HINSTANCE hinstance;
> HWND hwnd;
> } VkIcdSurfaceWin32;
> -#endif // VK_USE_PLATFORM_WIN32_KHR
> +#endif // VK_USE_PLATFORM_WIN32_KHR
>
> #ifdef VK_USE_PLATFORM_XCB_KHR
> typedef struct {
> @@ -101,7 +125,7 @@ typedef struct {
> xcb_connection_t *connection;
> xcb_window_t window;
> } VkIcdSurfaceXcb;
> -#endif // VK_USE_PLATFORM_XCB_KHR
> +#endif // VK_USE_PLATFORM_XCB_KHR
>
> #ifdef VK_USE_PLATFORM_XLIB_KHR
> typedef struct {
> @@ -109,13 +133,28 @@ typedef struct {
> Display *dpy;
> Window window;
> } VkIcdSurfaceXlib;
> -#endif // VK_USE_PLATFORM_XLIB_KHR
> +#endif // VK_USE_PLATFORM_XLIB_KHR
>
> #ifdef VK_USE_PLATFORM_ANDROID_KHR
> typedef struct {
> - ANativeWindow* window;
> + VkIcdSurfaceBase base;
> + struct ANativeWindow *window;
> } 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 {
> VkIcdSurfaceBase base;
> @@ -128,4 +167,4 @@ typedef struct {
> VkExtent2D imageExtent;
> } VkIcdSurfaceDisplay;
>
> -#endif // VKICD_H
> +#endif // VKICD_H
> --
> 2.14.3
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20180517/8c166091/attachment-0001.html>
More information about the mesa-dev
mailing list