Module: Mesa Branch: main Commit: 895c85ca8feaad5bc4637e548d42fc38267c21d8 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=895c85ca8feaad5bc4637e548d42fc38267c21d8
Author: Mike Blumenkrantz <[email protected]> Date: Tue Jul 25 11:26:31 2023 -0400 vulkan/wsi: unify all the image usage flag caps these should be the same for all wsi backends, so make a single entrypoint to return the flags so it can be modified in a single place Reviewed-by: Adam Jackson <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25291> --- src/vulkan/wsi/wsi_common.c | 11 +++++++++++ src/vulkan/wsi/wsi_common.h | 3 +++ src/vulkan/wsi/wsi_common_display.c | 8 +------- src/vulkan/wsi/wsi_common_headless.c | 7 +------ src/vulkan/wsi/wsi_common_wayland.c | 8 +------- src/vulkan/wsi/wsi_common_win32.cpp | 8 +------- src/vulkan/wsi/wsi_common_x11.c | 8 +------- 7 files changed, 19 insertions(+), 34 deletions(-) diff --git a/src/vulkan/wsi/wsi_common.c b/src/vulkan/wsi/wsi_common.c index a7d8e1cf659..035ec618003 100644 --- a/src/vulkan/wsi/wsi_common.c +++ b/src/vulkan/wsi/wsi_common.c @@ -2118,3 +2118,14 @@ wsi_WaitForPresentKHR(VkDevice device, VkSwapchainKHR _swapchain, assert(swapchain->wait_for_present); return swapchain->wait_for_present(swapchain, presentId, timeout); } + +VkImageUsageFlags +wsi_caps_get_image_usage(void) +{ + return VK_IMAGE_USAGE_TRANSFER_SRC_BIT | + VK_IMAGE_USAGE_SAMPLED_BIT | + VK_IMAGE_USAGE_TRANSFER_DST_BIT | + VK_IMAGE_USAGE_STORAGE_BIT | + VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | + VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT; +} diff --git a/src/vulkan/wsi/wsi_common.h b/src/vulkan/wsi/wsi_common.h index 8fe8fb9a748..17293f4fb6b 100644 --- a/src/vulkan/wsi/wsi_common.h +++ b/src/vulkan/wsi/wsi_common.h @@ -346,6 +346,9 @@ wsi_common_bind_swapchain_image(const struct wsi_device *wsi, bool wsi_common_vk_instance_supports_present_wait(const struct vk_instance *instance); +VkImageUsageFlags +wsi_caps_get_image_usage(void); + #define wsi_common_vk_warn_once(warning) \ do { \ static int warned = false; \ diff --git a/src/vulkan/wsi/wsi_common_display.c b/src/vulkan/wsi/wsi_common_display.c index 12070e7ec87..3dc4a670cd7 100644 --- a/src/vulkan/wsi/wsi_common_display.c +++ b/src/vulkan/wsi/wsi_common_display.c @@ -906,13 +906,7 @@ wsi_display_surface_get_capabilities(VkIcdSurfaceBase *surface_base, caps->supportedTransforms = VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR; caps->currentTransform = VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR; caps->maxImageArrayLayers = 1; - caps->supportedUsageFlags = - VK_IMAGE_USAGE_TRANSFER_SRC_BIT | - VK_IMAGE_USAGE_SAMPLED_BIT | - VK_IMAGE_USAGE_TRANSFER_DST_BIT | - VK_IMAGE_USAGE_STORAGE_BIT | - VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | - VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT; + caps->supportedUsageFlags = wsi_caps_get_image_usage(); VK_FROM_HANDLE(vk_physical_device, pdevice, wsi_device->pdevice); if (pdevice->supported_extensions.EXT_attachment_feedback_loop_layout) diff --git a/src/vulkan/wsi/wsi_common_headless.c b/src/vulkan/wsi/wsi_common_headless.c index dbcc5fd625e..3ac298e277d 100644 --- a/src/vulkan/wsi/wsi_common_headless.c +++ b/src/vulkan/wsi/wsi_common_headless.c @@ -98,12 +98,7 @@ wsi_headless_surface_get_capabilities(VkIcdSurfaceBase *surface, VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR | VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR; - caps->supportedUsageFlags = - VK_IMAGE_USAGE_TRANSFER_SRC_BIT | - VK_IMAGE_USAGE_SAMPLED_BIT | - VK_IMAGE_USAGE_TRANSFER_DST_BIT | - VK_IMAGE_USAGE_STORAGE_BIT | - VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT; + caps->supportedUsageFlags = wsi_caps_get_image_usage(); VK_FROM_HANDLE(vk_physical_device, pdevice, wsi_device->pdevice); if (pdevice->supported_extensions.EXT_attachment_feedback_loop_layout) diff --git a/src/vulkan/wsi/wsi_common_wayland.c b/src/vulkan/wsi/wsi_common_wayland.c index 94b9217cbdf..ffc15f32bc5 100644 --- a/src/vulkan/wsi/wsi_common_wayland.c +++ b/src/vulkan/wsi/wsi_common_wayland.c @@ -1084,13 +1084,7 @@ wsi_wl_surface_get_capabilities(VkIcdSurfaceBase *surface, VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR | VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR; - caps->supportedUsageFlags = - VK_IMAGE_USAGE_TRANSFER_SRC_BIT | - VK_IMAGE_USAGE_SAMPLED_BIT | - VK_IMAGE_USAGE_TRANSFER_DST_BIT | - VK_IMAGE_USAGE_STORAGE_BIT | - VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | - VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT; + caps->supportedUsageFlags = wsi_caps_get_image_usage(); VK_FROM_HANDLE(vk_physical_device, pdevice, wsi_device->pdevice); if (pdevice->supported_extensions.EXT_attachment_feedback_loop_layout) diff --git a/src/vulkan/wsi/wsi_common_win32.cpp b/src/vulkan/wsi/wsi_common_win32.cpp index 34b0c64ff22..b867d0ec1f9 100644 --- a/src/vulkan/wsi/wsi_common_win32.cpp +++ b/src/vulkan/wsi/wsi_common_win32.cpp @@ -209,13 +209,7 @@ wsi_win32_surface_get_capabilities(VkIcdSurfaceBase *surf, VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR | VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR; - caps->supportedUsageFlags = - VK_IMAGE_USAGE_TRANSFER_SRC_BIT | - VK_IMAGE_USAGE_SAMPLED_BIT | - VK_IMAGE_USAGE_TRANSFER_DST_BIT | - VK_IMAGE_USAGE_STORAGE_BIT | - VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | - VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT; + caps->supportedUsageFlags = wsi_caps_get_image_usage(); VK_FROM_HANDLE(vk_physical_device, pdevice, wsi_device->pdevice); if (pdevice->supported_extensions.EXT_attachment_feedback_loop_layout) diff --git a/src/vulkan/wsi/wsi_common_x11.c b/src/vulkan/wsi/wsi_common_x11.c index cba1d1c5e7c..9cfdc6f9683 100644 --- a/src/vulkan/wsi/wsi_common_x11.c +++ b/src/vulkan/wsi/wsi_common_x11.c @@ -733,13 +733,7 @@ x11_surface_get_capabilities(VkIcdSurfaceBase *icd_surface, caps->supportedTransforms = VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR; caps->currentTransform = VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR; caps->maxImageArrayLayers = 1; - caps->supportedUsageFlags = - VK_IMAGE_USAGE_TRANSFER_SRC_BIT | - VK_IMAGE_USAGE_SAMPLED_BIT | - VK_IMAGE_USAGE_TRANSFER_DST_BIT | - VK_IMAGE_USAGE_STORAGE_BIT | - VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | - VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT; + caps->supportedUsageFlags = wsi_caps_get_image_usage(); VK_FROM_HANDLE(vk_physical_device, pdevice, wsi_device->pdevice); if (pdevice->supported_extensions.EXT_attachment_feedback_loop_layout)
