*/
#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
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;
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.
VkFence fence,
VkDeviceMemory memory);
+ /*
+ * This sets the ownership for a WSI memory object:
+ *
+ * The ownership is true if and only if the application is allowed to submit
+ * command buffers that reference the buffer.
+ *
+ * This can be used to prune BO lists without too many adverse affects on
+ * implicit sync.
+ *
+ * Side note: care needs to be taken for internally delayed submissions wrt
+ * timeline semaphores.
+ */
+ void (*set_memory_ownership)(VkDevice device,
+ VkDeviceMemory memory,
+ VkBool32 ownership);
+
#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);