From a17b4cbb042a2e101470af75eb5013592f0f3880 Mon Sep 17 00:00:00 2001 From: CamilleLaVey Date: Thu, 30 Jul 2026 16:44:37 -0400 Subject: [PATCH] Revert "[TEST] New optimal image layouts access" This reverts commit 236696b0ff9463dcc51500d9141cbdcb8cf49d6d. --- .../renderer_opengl/gl_texture_cache.h | 2 -- .../renderer_vulkan/pipeline_helper.h | 3 +-- .../renderer_vulkan/vk_texture_cache.cpp | 16 ---------------- .../renderer_vulkan/vk_texture_cache.h | 18 ------------------ .../renderer_vulkan/vk_update_descriptor.h | 5 ++--- src/video_core/texture_cache/texture_cache.h | 2 -- 6 files changed, 3 insertions(+), 43 deletions(-) diff --git a/src/video_core/renderer_opengl/gl_texture_cache.h b/src/video_core/renderer_opengl/gl_texture_cache.h index e445f601c2..5dd2a80ec1 100644 --- a/src/video_core/renderer_opengl/gl_texture_cache.h +++ b/src/video_core/renderer_opengl/gl_texture_cache.h @@ -252,8 +252,6 @@ public: return false; } - void MarkAttachmentUse() noexcept {} - bool IsRescaled() const; bool ScaleUp(bool ignore = false); diff --git a/src/video_core/renderer_vulkan/pipeline_helper.h b/src/video_core/renderer_vulkan/pipeline_helper.h index d084c3b99b..882372aee2 100644 --- a/src/video_core/renderer_vulkan/pipeline_helper.h +++ b/src/video_core/renderer_vulkan/pipeline_helper.h @@ -246,8 +246,7 @@ inline void PushImageDescriptors(TextureCache& texture_cache, !image_view.SupportsDepthComparison()) { vk_sampler = sampler.HandleWithoutDepthComparison(); } - guest_descriptor_queue.AddSampledImage(vk_image_view, vk_sampler, - image_view.SampledLayout()); + guest_descriptor_queue.AddSampledImage(vk_image_view, vk_sampler); const bool element_rescaled{texture_cache.IsRescaling(image_view)}; is_rescaled |= element_rescaled; } diff --git a/src/video_core/renderer_vulkan/vk_texture_cache.cpp b/src/video_core/renderer_vulkan/vk_texture_cache.cpp index b25ff6b1b1..9dec3da5e2 100644 --- a/src/video_core/renderer_vulkan/vk_texture_cache.cpp +++ b/src/video_core/renderer_vulkan/vk_texture_cache.cpp @@ -57,7 +57,6 @@ constexpr bool ENABLE_MSAA_RESOLVE_CONSUME = true; constexpr bool ENABLE_MSAA_COLOR_DISCARD = true; constexpr bool ENABLE_MSAA_DEPTH_DISCARD = true; constexpr bool ENABLE_MSAA_DEPTH_RESOLVE = true; -constexpr bool ENABLE_OPTIMAL_IMAGE_LAYOUTS = true; constexpr VkBorderColor ConvertBorderColor(const std::array& color) { if (color == std::array{0, 0, 0, 0}) { @@ -2488,7 +2487,6 @@ bool Image::EnableStorageUsage() { commit(scaled_image, new_scaled, scaled_info); } wants_storage = true; - current_layout = initialized ? VK_IMAGE_LAYOUT_GENERAL : VK_IMAGE_LAYOUT_UNDEFINED; storage_image_views.clear(); storage_image_views.resize(info.resources.levels); scale_framebuffer.reset(); @@ -2498,13 +2496,6 @@ bool Image::EnableStorageUsage() { return true; } -VkImageLayout Image::PreferredLayout() const noexcept { - if (!ENABLE_OPTIMAL_IMAGE_LAYOUTS || wants_storage || attachment_used) { - return VK_IMAGE_LAYOUT_GENERAL; - } - return VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL; -} - bool Image::IsRescaled() const noexcept { return True(flags & ImageFlagBits::Rescaled); } @@ -2841,13 +2832,6 @@ bool ImageView::IsRescaled() const noexcept { return (*slot_images)[image_id].IsRescaled(); } -VkImageLayout ImageView::SampledLayout() const noexcept { - if (slot_images == nullptr) { - return VK_IMAGE_LAYOUT_GENERAL; - } - return (*slot_images)[image_id].PreferredLayout(); -} - vk::ImageView ImageView::MakeView(VkFormat vk_format, VkImageAspectFlags aspect_mask, std::optional texture_type) { VkImageViewType view_type = ImageViewType(type); diff --git a/src/video_core/renderer_vulkan/vk_texture_cache.h b/src/video_core/renderer_vulkan/vk_texture_cache.h index c2997d2326..eaa83f2d6a 100644 --- a/src/video_core/renderer_vulkan/vk_texture_cache.h +++ b/src/video_core/renderer_vulkan/vk_texture_cache.h @@ -399,20 +399,6 @@ public: bool EnableStorageUsage(); - [[nodiscard]] VkImageLayout PreferredLayout() const noexcept; - - [[nodiscard]] VkImageLayout CurrentLayout() const noexcept { - return current_layout; - } - - void SetCurrentLayout(VkImageLayout layout) noexcept { - current_layout = layout; - } - - void MarkAttachmentUse() noexcept { - attachment_used = true; - } - bool IsRescaled() const noexcept; bool ScaleUp(bool ignore = false); @@ -433,8 +419,6 @@ private: bool storage_capable = false; bool wants_storage = false; - bool attachment_used = false; - VkImageLayout current_layout = VK_IMAGE_LAYOUT_GENERAL; vk::Image original_image; vk::Image scaled_image; @@ -487,8 +471,6 @@ public: [[nodiscard]] bool IsRescaled() const noexcept; - [[nodiscard]] VkImageLayout SampledLayout() const noexcept; - [[nodiscard]] VkImageView Handle(Shader::TextureType texture_type) const noexcept { return *image_views[static_cast(texture_type)]; } diff --git a/src/video_core/renderer_vulkan/vk_update_descriptor.h b/src/video_core/renderer_vulkan/vk_update_descriptor.h index 49ce474bc3..991efc4232 100644 --- a/src/video_core/renderer_vulkan/vk_update_descriptor.h +++ b/src/video_core/renderer_vulkan/vk_update_descriptor.h @@ -45,12 +45,11 @@ public: return upload_start; } - void AddSampledImage(VkImageView image_view, VkSampler sampler, - VkImageLayout image_layout = VK_IMAGE_LAYOUT_GENERAL) { + void AddSampledImage(VkImageView image_view, VkSampler sampler) { *(payload_cursor++) = VkDescriptorImageInfo{ .sampler = sampler, .imageView = image_view, - .imageLayout = image_layout, + .imageLayout = VK_IMAGE_LAYOUT_GENERAL, }; } diff --git a/src/video_core/texture_cache/texture_cache.h b/src/video_core/texture_cache/texture_cache.h index 3825a5ece2..7551dc770a 100644 --- a/src/video_core/texture_cache/texture_cache.h +++ b/src/video_core/texture_cache/texture_cache.h @@ -2788,7 +2788,6 @@ void TextureCache

::BindRenderTarget(ImageViewId* old_id, ImageViewId new_id) const PendingDownload new_download{true, 0, old_view.image_id}; uncommitted_downloads.emplace_back(new_download); } - slot_images[old_view.image_id].MarkAttachmentUse(); } *old_id = new_id; } @@ -2797,7 +2796,6 @@ template std::pair TextureCache

::RenderTargetFromImage( ImageId image_id, const ImageViewInfo& view_info) { const ImageViewId view_id = FindOrEmplaceImageView(image_id, view_info); - slot_images[image_id].MarkAttachmentUse(); const ImageBase& image = slot_images[image_id]; const bool is_rescaled = True(image.flags & ImageFlagBits::Rescaled); const bool is_color = GetFormatType(image.info.format) == SurfaceType::ColorTexture;