diff --git a/src/video_core/renderer_vulkan/vk_texture_cache.cpp b/src/video_core/renderer_vulkan/vk_texture_cache.cpp index 741825154c..ca9c0d41e5 100644 --- a/src/video_core/renderer_vulkan/vk_texture_cache.cpp +++ b/src/video_core/renderer_vulkan/vk_texture_cache.cpp @@ -886,15 +886,6 @@ TextureCacheRuntime::TextureCacheRuntime(const Device& device_, Scheduler& sched view_formats[index_a].push_back(view_info.format); } } - if (VideoCore::Surface::GetFormatType(image_format) == - VideoCore::Surface::SurfaceType::DepthStencil) { - const auto stencil_info = MaxwellToVK::SurfaceFormat( - device, FormatType::Optimal, true, PixelFormat::S8_UINT); - auto& formats = view_formats[index_a]; - if (std::ranges::find(formats, stencil_info.format) == formats.end()) { - formats.push_back(stencil_info.format); - } - } } } @@ -2212,12 +2203,7 @@ VkImageView ImageView::StencilView() { if (stencil_view) { return *stencil_view; } - PixelFormat view_format = format; - if (VideoCore::Surface::GetFormatType(format) == - VideoCore::Surface::SurfaceType::DepthStencil) { - view_format = PixelFormat::S8_UINT; - } - const auto& info = MaxwellToVK::SurfaceFormat(*device, FormatType::Optimal, true, view_format); + const auto& info = MaxwellToVK::SurfaceFormat(*device, FormatType::Optimal, true, format); stencil_view = MakeView(info.format, VK_IMAGE_ASPECT_STENCIL_BIT); return *stencil_view; } diff --git a/src/video_core/texture_cache/texture_cache.h b/src/video_core/texture_cache/texture_cache.h index c580fb10ef..73c6034a1d 100644 --- a/src/video_core/texture_cache/texture_cache.h +++ b/src/video_core/texture_cache/texture_cache.h @@ -2423,6 +2423,7 @@ void TextureCache
::SynchronizeAliases(ImageId image_id) {
template ::PrepareImage(ImageId image_id, bool is_modification, bool invalidate) {
Image& image = slot_images[image_id];
+ runtime.TransitionImageLayout(image);
if (invalidate) {
image.flags &= ~(ImageFlagBits::CpuModified | ImageFlagBits::GpuModified);
if (False(image.flags & ImageFlagBits::Tracked)) {