[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