summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Blumenkrantz <michael.blumenkrantz@gmail.com>2023-05-11 10:42:15 -0400
committerMarge Bot <emma+marge@anholt.net>2023-05-17 11:16:00 +0000
commit1effbccc5cc35537c9d58e13632684a327ba2510 (patch)
tree596032ab5b93f29fb63b9cf12cdebac47b906dba
parent4d188e005bc5cd54b4b0eb900f06ec4b43828bb0 (diff)
downloadmesa-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.c4
-rw-r--r--src/vulkan/wsi/wsi_common_headless.c5
-rw-r--r--src/vulkan/wsi/wsi_common_wayland.c4
-rw-r--r--src/vulkan/wsi/wsi_common_win32.cpp4
-rw-r--r--src/vulkan/wsi/wsi_common_x11.c4
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;
}