From 3e324175ac8453a779333c4b0262b0e402c93e7d Mon Sep 17 00:00:00 2001 From: CamilleLaVey Date: Tue, 7 Apr 2026 15:28:17 -0400 Subject: [PATCH] [vulkan] Refining ProvokingVertex remork --- src/video_core/renderer_vulkan/vk_pipeline_cache.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp b/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp index 0235c53ea1..5f86506961 100644 --- a/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp +++ b/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp @@ -611,6 +611,18 @@ void PipelineCache::LoadDiskResources(u64 title_id, std::stop_token stop_loading (key.state.dynamic_vertex_input != 0) != dynamic_features.has_dynamic_vertex_input) { return; } + + const bool key_requests_provoking_last = key.state.provoking_vertex_last != 0; + if (key_requests_provoking_last && !dynamic_features.has_provoking_vertex_last_mode) { + return; + } + + const bool key_uses_transform_feedback = key.state.xfb_enabled != 0; + if (key_uses_transform_feedback && key_requests_provoking_last && + !dynamic_features.has_provoking_vertex_tf_preserve) { + return; + } + workers.QueueWork([this, key, envs_ = std::move(envs), &state, &callback]() mutable { ShaderPools pools; boost::container::static_vector env_ptrs;