From 1f5b86629047b4cd948eab6a7eb71d114a8fcb0f Mon Sep 17 00:00:00 2001 From: CamilleLaVey Date: Sun, 23 Nov 2025 15:50:23 -0400 Subject: [PATCH] [vk] Ensure image view flags are resolved --- .../renderer_vulkan/vk_texture_cache.cpp | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/video_core/renderer_vulkan/vk_texture_cache.cpp b/src/video_core/renderer_vulkan/vk_texture_cache.cpp index baddfe8cbf..2afe55843e 100644 --- a/src/video_core/renderer_vulkan/vk_texture_cache.cpp +++ b/src/video_core/renderer_vulkan/vk_texture_cache.cpp @@ -2040,15 +2040,21 @@ ImageView::ImageView(TextureCacheRuntime& runtime, const VideoCommon::ImageViewI } } const auto format_info = MaxwellToVK::SurfaceFormat(*device, FormatType::Optimal, true, format); - if (ImageUsageFlags(format_info, format) != image.UsageFlags()) { - LOG_WARNING(Render_Vulkan, - "Image view format {} has different usage flags than image format {}", format, - image.info.format); + const VkImageUsageFlags desired_usage = ImageUsageFlags(format_info, format); + const VkImageUsageFlags image_usage = image.UsageFlags(); + + // ImageView usage must be a subset of the original image usage + const VkImageUsageFlags view_usage = desired_usage & image_usage; + + if (desired_usage != image_usage) { + LOG_DEBUG(Render_Vulkan, + "Image view format {} usage flags (0x{:X}) restricted to image usage (0x{:X}), result: 0x{:X}", + format, desired_usage, image_usage, view_usage); } const VkImageViewUsageCreateInfo image_view_usage{ .sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO, .pNext = nullptr, - .usage = ImageUsageFlags(format_info, format), + .usage = view_usage, }; const VkImageViewCreateInfo create_info{ .sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO,