diff --git a/src/shader_recompiler/ir/passes/resource_tracking_pass.cpp b/src/shader_recompiler/ir/passes/resource_tracking_pass.cpp index 20a66ad0c..b15b61337 100644 --- a/src/shader_recompiler/ir/passes/resource_tracking_pass.cpp +++ b/src/shader_recompiler/ir/passes/resource_tracking_pass.cpp @@ -447,7 +447,7 @@ void PatchBufferInstruction(IR::Block& block, IR::Inst& inst, Info& info, .dword_offset = sharp.dword_offset, .length = BufferLength(buffer), .used_types = BufferDataType(inst, buffer.GetNumberFmt()), - .is_storage = is_store || buffer.GetSize() > MaxUboSize, + .is_storage = true || is_store || buffer.GetSize() > MaxUboSize, .is_written = is_store, }); } diff --git a/src/video_core/renderer_vulkan/vk_compute_pipeline.cpp b/src/video_core/renderer_vulkan/vk_compute_pipeline.cpp index 4788f6fb1..789b92272 100644 --- a/src/video_core/renderer_vulkan/vk_compute_pipeline.cpp +++ b/src/video_core/renderer_vulkan/vk_compute_pipeline.cpp @@ -176,7 +176,7 @@ bool ComputePipeline::BindResources(VideoCore::BufferCache& buffer_cache, } } const u32 size = vsharp.GetSize(); - if (buffer.is_written && compute_key != 0xfefebf9f) { + if (buffer.is_written && compute_key != 0xfefebf9f && compute_key != 0x3d5ebf4e) { texture_cache.InvalidateMemory(address, size, true); } const u32 alignment = diff --git a/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp b/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp index 134f90210..577259e89 100644 --- a/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp +++ b/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp @@ -271,7 +271,8 @@ std::unique_ptr PipelineCache::CreateGraphicsPipeline() { } if (hash == 0x8ccd4c7 || hash == 3273382176 || hash == 1253917491 || hash == 3568414570 || - hash == 886182625 || hash == 2876255299 || hash == 2153234908 || hash == 0xc0cbc309) { + hash == 886182625 || hash == 2876255299 || hash == 2153234908 || hash == 0xc0cbc309 || + hash == 0xe0305cef) { return nullptr; }