From 57a9541f5832096b98ba1dab2e232221008416cf Mon Sep 17 00:00:00 2001 From: weakboson Date: Tue, 12 Aug 2025 01:03:15 +0800 Subject: [PATCH] Revert image view usage flags regression introduced in 492d3856e8e20d7c939d404fda6eab890757d8eb. Maxwell format `VK_FORMAT_A8B8G8R8_SRGB_PACK32` does not support storage. However a `A8B8G8R8_UNORM` view is created for a image with that format which supports storage. The previous patch ignored image view format usage making it impossible for the pipeline to render to the texture. This commit reverts the image usage override. However, there is still a mismatch between image format usage and image view format usage. --- src/video_core/renderer_vulkan/vk_texture_cache.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/video_core/renderer_vulkan/vk_texture_cache.cpp b/src/video_core/renderer_vulkan/vk_texture_cache.cpp index b8cc0e6da9..98eb608aa5 100644 --- a/src/video_core/renderer_vulkan/vk_texture_cache.cpp +++ b/src/video_core/renderer_vulkan/vk_texture_cache.cpp @@ -2014,10 +2014,15 @@ 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 VkImageViewUsageCreateInfo image_view_usage{ .sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO, .pNext = nullptr, - .usage = image.UsageFlags(), + .usage = ImageUsageFlags(format_info, format), }; const VkImageViewCreateInfo create_info{ .sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO, -- 2.39.5