*/
#define VK_STRUCTURE_TYPE_WSI_IMAGE_CREATE_INFO_MESA (VkStructureType)1000001002
#define VK_STRUCTURE_TYPE_WSI_MEMORY_ALLOCATE_INFO_MESA (VkStructureType)1000001003
-#define VK_STRUCTURE_TYPE_WSI_FORMAT_MODIFIER_PROPERTIES_LIST_MESA (VkStructureType)1000001004
#define VK_STRUCTURE_TYPE_WSI_SURFACE_SUPPORTED_COUNTERS_MESA (VkStructureType)1000001005
+#define VK_STRUCTURE_TYPE_WSI_MEMORY_SIGNAL_SUBMIT_INFO_MESA (VkStructureType)1000001006
struct wsi_image_create_info {
VkStructureType sType;
const void *pNext;
bool scanout;
-
- uint32_t modifier_count;
- const uint64_t *modifiers;
};
struct wsi_memory_allocate_info {
bool implicit_sync;
};
-struct wsi_format_modifier_properties {
- uint64_t modifier;
- uint32_t modifier_plane_count;
-};
-
-/* Chain in for vkGetPhysicalDeviceFormatProperties2KHR */
-struct wsi_format_modifier_properties_list {
- VkStructureType sType;
- const void *pNext;
-
- uint32_t modifier_count;
- struct wsi_format_modifier_properties *modifier_properties;
-};
-
/* To be chained into VkSurfaceCapabilities2KHR */
struct wsi_surface_supported_counters {
VkStructureType sType;
};
+/* To be chained into VkSubmitInfo */
+struct wsi_memory_signal_submit_info {
+ VkStructureType sType;
+ const void *pNext;
+ VkDeviceMemory memory;
+};
+
struct wsi_fence {
VkDevice device;
const struct wsi_device *wsi_device;
bool supports_modifiers;
uint32_t maxImageDimension2D;
VkPresentModeKHR override_present_mode;
+ bool force_bgra8_unorm_first;
/* Whether to enable adaptive sync for a swapchain if implemented and
* available. Not all window systems might support this. */
/* Override the minimum number of images on the swapchain.
* 0 = no override */
uint32_t override_minImageCount;
+
+ /* Forces strict number of image on the swapchain using application
+ * provided VkSwapchainCreateInfoKH::RminImageCount.
+ */
+ bool strict_imageCount;
} x11;
uint64_t (*image_get_modifier)(VkImage image);
+ /* Signals the semaphore such that any wait on the semaphore will wait on
+ * any reads or writes on the give memory object. This is used to
+ * implement the semaphore signal operation in vkAcquireNextImage.
+ */
+ void (*signal_semaphore_for_memory)(VkDevice device,
+ VkSemaphore semaphore,
+ VkDeviceMemory memory);
+
+ /* Signals the fence such that any wait on the fence will wait on any reads
+ * or writes on the give memory object. This is used to implement the
+ * semaphore signal operation in vkAcquireNextImage.
+ */
+ void (*signal_fence_for_memory)(VkDevice device,
+ VkFence fence,
+ VkDeviceMemory memory);
+
#define WSI_CB(cb) PFN_vk##cb cb
WSI_CB(AllocateMemory);
WSI_CB(AllocateCommandBuffers);
WSI_CB(FreeMemory);
WSI_CB(FreeCommandBuffers);
WSI_CB(GetBufferMemoryRequirements);
+ WSI_CB(GetImageDrmFormatModifierPropertiesEXT);
WSI_CB(GetImageMemoryRequirements);
WSI_CB(GetImageSubresourceLayout);
WSI_CB(GetMemoryFdKHR);
WSI_CB(GetPhysicalDeviceFormatProperties);
WSI_CB(GetPhysicalDeviceFormatProperties2KHR);
+ WSI_CB(GetPhysicalDeviceImageFormatProperties2);
WSI_CB(ResetFences);
WSI_CB(QueueSubmit);
WSI_CB(WaitForFences);