diff options
author | Mike Blumenkrantz <michael.blumenkrantz@gmail.com> | 2023-05-11 10:42:15 -0400 |
---|---|---|
committer | Marge Bot <emma+marge@anholt.net> | 2023-05-17 11:16:00 +0000 |
commit | 1effbccc5cc35537c9d58e13632684a327ba2510 (patch) | |
tree | 596032ab5b93f29fb63b9cf12cdebac47b906dba | |
parent | 4d188e005bc5cd54b4b0eb900f06ec4b43828bb0 (diff) | |
download | mesa-1effbccc5cc35537c9d58e13632684a327ba2510.tar.gz |
vulkan/wsi: add feedback loop usage to swapchain caps if supported
this is needed by some apps
cc: mesa-stable
Reviewed-by: Joshua Ashton <joshua@froggi.es>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22959>
-rw-r--r-- | src/vulkan/wsi/wsi_common_display.c | 4 | ||||
-rw-r--r-- | src/vulkan/wsi/wsi_common_headless.c | 5 | ||||
-rw-r--r-- | src/vulkan/wsi/wsi_common_wayland.c | 4 | ||||
-rw-r--r-- | src/vulkan/wsi/wsi_common_win32.cpp | 4 | ||||
-rw-r--r-- | src/vulkan/wsi/wsi_common_x11.c | 4 |
5 files changed, 21 insertions, 0 deletions
diff --git a/src/vulkan/wsi/wsi_common_display.c b/src/vulkan/wsi/wsi_common_display.c index 840476bd6b3..4a6e7194c46 100644 --- a/src/vulkan/wsi/wsi_common_display.c +++ b/src/vulkan/wsi/wsi_common_display.c @@ -932,6 +932,10 @@ wsi_display_surface_get_capabilities(VkIcdSurfaceBase *surface_base, VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT; + VK_FROM_HANDLE(vk_physical_device, pdevice, wsi_device->pdevice); + if (pdevice->supported_extensions.EXT_attachment_feedback_loop_layout) + caps->supportedUsageFlags |= VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT; + return VK_SUCCESS; } diff --git a/src/vulkan/wsi/wsi_common_headless.c b/src/vulkan/wsi/wsi_common_headless.c index 0d318d87782..dbcc5fd625e 100644 --- a/src/vulkan/wsi/wsi_common_headless.c +++ b/src/vulkan/wsi/wsi_common_headless.c @@ -31,6 +31,7 @@ #include "vk_util.h" #include "vk_enum_to_str.h" #include "vk_instance.h" +#include "vk_physical_device.h" #include "wsi_common_entrypoints.h" #include "wsi_common_private.h" #include "wsi_common_queue.h" @@ -104,6 +105,10 @@ wsi_headless_surface_get_capabilities(VkIcdSurfaceBase *surface, VK_IMAGE_USAGE_STORAGE_BIT | VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT; + VK_FROM_HANDLE(vk_physical_device, pdevice, wsi_device->pdevice); + if (pdevice->supported_extensions.EXT_attachment_feedback_loop_layout) + caps->supportedUsageFlags |= VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT; + return VK_SUCCESS; } diff --git a/src/vulkan/wsi/wsi_common_wayland.c b/src/vulkan/wsi/wsi_common_wayland.c index f5aa815edc0..c6f70f458ce 100644 --- a/src/vulkan/wsi/wsi_common_wayland.c +++ b/src/vulkan/wsi/wsi_common_wayland.c @@ -1090,6 +1090,10 @@ wsi_wl_surface_get_capabilities(VkIcdSurfaceBase *surface, VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT; + VK_FROM_HANDLE(vk_physical_device, pdevice, wsi_device->pdevice); + if (pdevice->supported_extensions.EXT_attachment_feedback_loop_layout) + caps->supportedUsageFlags |= VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT; + return VK_SUCCESS; } diff --git a/src/vulkan/wsi/wsi_common_win32.cpp b/src/vulkan/wsi/wsi_common_win32.cpp index 329e58794b1..ba418ff2b52 100644 --- a/src/vulkan/wsi/wsi_common_win32.cpp +++ b/src/vulkan/wsi/wsi_common_win32.cpp @@ -217,6 +217,10 @@ wsi_win32_surface_get_capabilities(VkIcdSurfaceBase *surf, VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT; + VK_FROM_HANDLE(vk_physical_device, pdevice, wsi_device->pdevice); + if (pdevice->supported_extensions.EXT_attachment_feedback_loop_layout) + caps->supportedUsageFlags |= VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT; + return VK_SUCCESS; } diff --git a/src/vulkan/wsi/wsi_common_x11.c b/src/vulkan/wsi/wsi_common_x11.c index 3c0dad260b3..a42355971a7 100644 --- a/src/vulkan/wsi/wsi_common_x11.c +++ b/src/vulkan/wsi/wsi_common_x11.c @@ -729,6 +729,10 @@ x11_surface_get_capabilities(VkIcdSurfaceBase *icd_surface, VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT; + VK_FROM_HANDLE(vk_physical_device, pdevice, wsi_device->pdevice); + if (pdevice->supported_extensions.EXT_attachment_feedback_loop_layout) + caps->supportedUsageFlags |= VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT; + return VK_SUCCESS; } |