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 <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25291>
This commit is contained in:
Mike Blumenkrantz 2023-07-25 11:26:31 -04:00 committed by Marge Bot
parent ac6139ad73
commit 895c85ca8f
7 changed files with 19 additions and 34 deletions

View file

@ -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;
}

View file

@ -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; \

View file

@ -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)

View file

@ -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)

View file

@ -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)

View file

@ -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)

View file

@ -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)