aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorChia-I Wu <olv@lunarg.com>2015-04-16 22:02:10 +0800
committerIan Elliott <ian@LunarG.com>2015-04-17 13:51:02 -0600
commitcbb564e8af81feaa77701b73778c47648d50843f (patch)
treebb6adc6e76ab23b9b360fd219921191ccddb85ae /include
parent75727d2aaa691e578806b5aba3b1aba667ebd1ae (diff)
downloadusermoji-cbb564e8af81feaa77701b73778c47648d50843f.tar.xz
switch to VK_WSI_LunarG
Switch from VK_WSI_X11 to VK_WSI_LunarG v2: - split out glave changes - redo mem_tracker changes - rebase Conflicts: demos/cube.c demos/tri.c v3 (from Ian): - Put "#if 0" around non-upstream members of VkDisplayPropertiesWSI.
Diffstat (limited to 'include')
-rw-r--r--include/vkDbg.h5
-rw-r--r--include/vkLayer.h15
-rw-r--r--include/vkWsiWinExt.h14
-rw-r--r--include/vkWsiX11Ext.h143
4 files changed, 10 insertions, 167 deletions
diff --git a/include/vkDbg.h b/include/vkDbg.h
index 43a55993..cc3c4255 100644
--- a/include/vkDbg.h
+++ b/include/vkDbg.h
@@ -109,8 +109,11 @@ typedef enum _VK_DBG_OBJECT_TYPE
VK_DBG_OBJECT_PIPELINE_LAYOUT,
VK_DBG_OBJECT_DESCRIPTOR_POOL,
+ VK_DBG_OBJECT_DISPLAY_WSI,
+ VK_DBG_OBJECT_SWAP_CHAIN_WSI,
+
VK_DBG_OBJECT_TYPE_BEGIN_RANGE = VK_DBG_OBJECT_UNKNOWN,
- VK_DBG_OBJECT_TYPE_END_RANGE = VK_DBG_OBJECT_DESCRIPTOR_POOL,
+ VK_DBG_OBJECT_TYPE_END_RANGE = VK_DBG_OBJECT_SWAP_CHAIN_WSI,
VK_NUM_DBG_OBJECT_TYPE = (VK_DBG_OBJECT_TYPE_END_RANGE - VK_DBG_OBJECT_TYPE_BEGIN_RANGE + 1),
} VK_DBG_OBJECT_TYPE;
diff --git a/include/vkLayer.h b/include/vkLayer.h
index 70c36a98..55fb3848 100644
--- a/include/vkLayer.h
+++ b/include/vkLayer.h
@@ -6,9 +6,7 @@
#include "vulkan.h"
#include "vkDbg.h"
-#if defined(__linux__) || defined(XCB_NVIDIA)
-#include "vkWsiX11Ext.h"
-#endif
+#include "vk_wsi_lunarg.h"
#if defined(__GNUC__) && __GNUC__ >= 4
# define VK_LAYER_EXPORT __attribute__((visibility("default")))
#elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590)
@@ -153,12 +151,11 @@ typedef struct VkLayerDispatchTable_
PFN_vkDbgSetDeviceOption DbgSetDeviceOption;
PFN_vkCmdDbgMarkerBegin CmdDbgMarkerBegin;
PFN_vkCmdDbgMarkerEnd CmdDbgMarkerEnd;
-#if defined(__linux__) || defined(XCB_NVIDIA)
- PFN_vkWsiX11AssociateConnection WsiX11AssociateConnection;
- PFN_vkWsiX11GetMSC WsiX11GetMSC;
- PFN_vkWsiX11CreatePresentableImage WsiX11CreatePresentableImage;
- PFN_vkWsiX11QueuePresent WsiX11QueuePresent;
-#endif // WIN32
+ PFN_vkGetDisplayInfoWSI GetDisplayInfoWSI;
+ PFN_vkCreateSwapChainWSI CreateSwapChainWSI;
+ PFN_vkDestroySwapChainWSI DestroySwapChainWSI;
+ PFN_vkGetSwapChainInfoWSI GetSwapChainInfoWSI;
+ PFN_vkQueuePresentWSI QueuePresentWSI;
} VkLayerDispatchTable;
// LL node for tree of dbg callback functions
diff --git a/include/vkWsiWinExt.h b/include/vkWsiWinExt.h
deleted file mode 100644
index f3ee0f33..00000000
--- a/include/vkWsiWinExt.h
+++ /dev/null
@@ -1,14 +0,0 @@
-/* IN DEVELOPMENT. DO NOT SHIP. */
-
-#ifndef __VKWSIWINEXT_H__
-#define __VKWSIWINEXT_H__
-
-// This is just to get windows to build.
-// Need to replace with the declarations for Windows wsi.
-typedef void VK_WSI_X11_CONNECTION_INFO;
-typedef unsigned int xcb_window_t;
-typedef unsigned int xcb_randr_crtc_t;
-typedef void VK_WSI_X11_PRESENTABLE_IMAGE_CREATE_INFO;
-typedef void VK_WSI_X11_PRESENT_INFO;
-
-#endif // __VKWSIWINEXT_H__
diff --git a/include/vkWsiX11Ext.h b/include/vkWsiX11Ext.h
deleted file mode 100644
index 3b39c643..00000000
--- a/include/vkWsiX11Ext.h
+++ /dev/null
@@ -1,143 +0,0 @@
-/* IN DEVELOPMENT. DO NOT SHIP. */
-
-#ifndef __VKWSIX11EXT_H__
-#define __VKWSIX11EXT_H__
-
-#include <xcb/xcb.h>
-#include <xcb/randr.h>
-#include "vulkan.h"
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif // __cplusplus
-
-typedef struct _VK_WSI_X11_CONNECTION_INFO {
- xcb_connection_t* pConnection;
- xcb_window_t root;
- xcb_randr_provider_t provider;
-} VK_WSI_X11_CONNECTION_INFO;
-
-typedef struct _VK_WSI_X11_PRESENTABLE_IMAGE_CREATE_INFO
-{
- VkFormat format;
- VkFlags usage; // VkImageUsageFlags
- VkExtent2D extent;
- VkFlags flags;
-} VK_WSI_X11_PRESENTABLE_IMAGE_CREATE_INFO;
-
-typedef struct _VK_WSI_X11_PRESENT_INFO
-{
- /* which window to present to */
- xcb_window_t destWindow;
- VkImage srcImage;
-
- /**
- * After the command buffers in the queue have been completed, if the MSC
- * of \p crtc is less than or equal to \p target_msc, wait until it
- * reaches \p target_msc.
- *
- * If the current MSC of \p crtc is greater than \p target_msc, adjust
- * \p target_msc as following:
- *
- * if (divisor) {
- * target_msc = crtc_msc - (crtc_msc % divisor) + remainder;
- * if (target_msc < crtc_msc)
- * target_msc += divisor;
- * } else {
- * target_msc = crtc_msc;
- * }
- *
- * In other words, either set \p target_msc to an absolute value (require
- * vkWsiX11GetMSC(), potentially a round-trip to the server, to get the
- * current MSC first), or set \p target_msc to zero and set a "swap
- * interval".
- *
- * \p crtc can be XCB_NONE. In that case, a suitable CRTC is picked based
- * on \p destWindow.
- */
- xcb_randr_crtc_t crtc;
- uint64_t target_msc;
- uint64_t divisor;
- uint64_t remainder;
-
- /**
- * After waiting for the current and target MSCs to match, the
- * presentation is scheduled. When \p async is false, it will occur the
- * next time current MSC is incremented. When \p async is true, it will
- * occur as soon as possible.
- */
- bool32_t async;
-
- /**
- * When \p flip is false, the contents of \p srcImage are copied to
- * \p destWindow when the presentation occurs. When \p flip is true,
- * \p srcImage is made the front buffer of \p destWindow.
- *
- * An error may be returned if \p flip is true but \p destWindow can not
- * be flipped to.
- */
- bool32_t flip;
-} VK_WSI_X11_PRESENT_INFO;
-
-typedef VkResult (VKAPI *PFN_vkWsiX11AssociateConnection)(VkPhysicalDevice gpu, const VK_WSI_X11_CONNECTION_INFO* pConnectionInfo);
-typedef VkResult (VKAPI *PFN_vkWsiX11GetMSC)(VkDevice device, xcb_window_t window, xcb_randr_crtc_t crtc, uint64_t* pMsc);
-typedef VkResult (VKAPI *PFN_vkWsiX11CreatePresentableImage)(VkDevice device, const VK_WSI_X11_PRESENTABLE_IMAGE_CREATE_INFO* pCreateInfo, VkImage* pImage, VkDeviceMemory* pMem);
-typedef VkResult (VKAPI *PFN_vkWsiX11QueuePresent)(VkQueue queue, const VK_WSI_X11_PRESENT_INFO* pPresentInfo, VkFence fence);
-
-/**
- * Associate an X11 connection with a GPU. This should be done before device
- * creation. If the device is already created,
- * VK_ERROR_DEVICE_ALREADY_CREATED is returned.
- *
- * Truth is, given a connection, we could find the associated GPU. But
- * without having a GPU as the first parameter, the loader could not find the
- * dispatch table.
- *
- * This function is available when vkGetGlobalExtensionInfo says "VK_WSI_X11"
- * is supported.
- */
-VkResult VKAPI vkWsiX11AssociateConnection(
- VkPhysicalDevice gpu,
- const VK_WSI_X11_CONNECTION_INFO* pConnectionInfo);
-
-/**
- * Return the current MSC (Media Stream Counter, incremented for each vblank)
- * of \p crtc. If crtc is \p XCB_NONE, a suitable CRTC is picked based on \p
- * win.
- */
-VkResult VKAPI vkWsiX11GetMSC(
- VkDevice device,
- xcb_window_t window,
- xcb_randr_crtc_t crtc,
- uint64_t* pMsc);
-
-/**
- * Create an VkImage that can be presented. An VkDeviceMemory is created
- * and bound automatically. The memory returned can only be used in
- * vkQueue[Add|Remove]MemReference. Destroying the memory or binding another memory to the
- * image is not allowed.
- */
-VkResult VKAPI vkWsiX11CreatePresentableImage(
- VkDevice device,
- const VK_WSI_X11_PRESENTABLE_IMAGE_CREATE_INFO* pCreateInfo,
- VkImage* pImage,
- VkDeviceMemory* pMem);
-
-/**
- * Present an image to an X11 window. The presentation always occurs after
- * the command buffers in the queue have been completed, subject to other
- * parameters specified in VK_WSI_X11_PRESENT_INFO.
- *
- * Fence is reached when the presentation occurs.
- */
-VkResult VKAPI vkWsiX11QueuePresent(
- VkQueue queue,
- const VK_WSI_X11_PRESENT_INFO* pPresentInfo,
- VkFence fence);
-
-#ifdef __cplusplus
-} // extern "C"
-#endif // __cplusplus
-
-#endif // __VKWSIX11EXT_H__