From 3a1cbc5ccb77dedc74e08791aacb4c6f0a75ab2a Mon Sep 17 00:00:00 2001 From: wildcard Date: Tue, 23 Jun 2026 03:55:11 +0200 Subject: [PATCH] [vulkan] Fix EDS 0-2 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. --- src/video_core/renderer_vulkan/vk_pipeline_cache.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp b/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp index 23bfbceccb..3e8c0903e2 100644 --- a/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp +++ b/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp @@ -494,8 +494,10 @@ PipelineCache::PipelineCache(Tegra::MaxwellDeviceMemoryManager& device_memory_, device.IsExtExtendedDynamicState3EnablesSupported(); dynamic_features.has_dynamic_state3_depth_clamp_enable = false; 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)