From 6c16440996589444959e107e03a10fd121f5955f Mon Sep 17 00:00:00 2001 From: wildcard Date: Sun, 28 Jun 2026 15:07:54 +0200 Subject: [PATCH] [vulkan] Fix EDS 0-2 (#4117) EDS3 states were dynamic just because the driver supports them. But in EDS0-EDS2, we does not actually emit the EDS3 dynamic commands for them. So the pipeline builder skipped baking some fixed graphics state into the Vulkan pipeline, but the runtime also did not set that state dynamically. That leaves wrong Vulkan state during rendering causing rendering glitches in XC2. Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4117 Reviewed-by: CamilleLaVey Reviewed-by: MaranBr --- src/video_core/renderer_vulkan/vk_pipeline_cache.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp b/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp index bcae3d5b5a..ad7bfd0718 100644 --- a/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp +++ b/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp @@ -492,10 +492,14 @@ PipelineCache::PipelineCache(Tegra::MaxwellDeviceMemoryManager& device_memory_, device.IsExtExtendedDynamicState3BlendingSupported(); dynamic_features.has_extended_dynamic_state_3_enables = device.IsExtExtendedDynamicState3EnablesSupported(); - dynamic_features.has_dynamic_state3_depth_clamp_enable = false; + dynamic_features.has_dynamic_state3_depth_clamp_enable = + dynamic_features.has_extended_dynamic_state_3_enables && + device.SupportsDynamicState3DepthClampEnable(); dynamic_features.has_dynamic_state3_logic_op_enable = + dynamic_features.has_extended_dynamic_state_3_enables && device.SupportsDynamicState3LogicOpEnable(); dynamic_features.has_dynamic_state3_line_stipple_enable = + dynamic_features.has_extended_dynamic_state_3_enables && device.SupportsDynamicState3LineStippleEnable(); // VIDS: Independent toggle (not affected by dyna_state levels)