From 36aef43b14696cfcb8a76a05c46b11281d71f759 Mon Sep 17 00:00:00 2001 From: Kravickas Date: Wed, 1 Apr 2026 03:10:19 +0200 Subject: [PATCH] VUID-vkCmdDraw-None-06887 --- src/video_core/renderer_vulkan/vk_rasterizer.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/video_core/renderer_vulkan/vk_rasterizer.cpp b/src/video_core/renderer_vulkan/vk_rasterizer.cpp index 800941fe3..cb545d2cc 100644 --- a/src/video_core/renderer_vulkan/vk_rasterizer.cpp +++ b/src/video_core/renderer_vulkan/vk_rasterizer.cpp @@ -889,9 +889,14 @@ RenderState Rasterizer::BeginRendering(const GraphicsPipeline* pipeline) { ASSERT(desc.view_info.range.extent.levels == 1 && !image.binding.needs_rebind); const bool has_stencil = image.info.props.has_stencil; + // Stencil writes can be enabled while depth writes are off. + const bool stencil_write = + has_stencil && regs.depth_control.stencil_enable && !desc.view_info.is_storage; const auto new_layout = desc.view_info.is_storage ? has_stencil ? vk::ImageLayout::eDepthStencilAttachmentOptimal : vk::ImageLayout::eDepthAttachmentOptimal + : stencil_write + ? vk::ImageLayout::eDepthReadOnlyStencilAttachmentOptimal : has_stencil ? vk::ImageLayout::eDepthStencilReadOnlyOptimal : vk::ImageLayout::eDepthReadOnlyOptimal; image.Transit(new_layout,