From 383fb23348d7f230fc39e91e0c066116620eea10 Mon Sep 17 00:00:00 2001 From: weakboson Date: Wed, 13 Aug 2025 15:35:57 +0200 Subject: [PATCH] Revert image view usage flags regression introduced in 492d3856e8e20d7c939d404fda6eab890757d8eb. (#241) 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. Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/241 Reviewed-by: Shinmegumi Co-authored-by: weakboson Co-committed-by: weakboson --- 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,