From 5f402f3aae492d29de00c6027fdf4cb8aa042c19 Mon Sep 17 00:00:00 2001 From: Faith Ekstrand Date: Wed, 28 Aug 2024 20:18:08 -0500 Subject: [PATCH] nvk: Hash minSampleShading in nvk_hash_graphics_state() We put minSampleShading in the nvk_shader and [de]serialize that to/from the binary so it also needs to go in the hash. We could also plumb the pipeline state through to the deserialize callback but that's quite a stretch and this literally only affects minSampleShading which is a rarely used feature. Fixes: 813b253939ee ("nvk: Switch to shader objects") Part-of: --- src/nouveau/ci/nvk-ga106-fails.txt | 8 -------- src/nouveau/vulkan/nvk_shader.c | 9 +++++++++ 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/nouveau/ci/nvk-ga106-fails.txt b/src/nouveau/ci/nvk-ga106-fails.txt index b8debcf27f6..446c65e6eaf 100644 --- a/src/nouveau/ci/nvk-ga106-fails.txt +++ b/src/nouveau/ci/nvk-ga106-fails.txt @@ -258,15 +258,7 @@ dEQP-VK.fragment_shading_barycentric.pipeline_library.data.shader_combos.with_te dEQP-VK.fragment_shading_barycentric.pipeline_library.data.shader_combos.with_tess_shader.type.vec3,Fail dEQP-VK.fragment_shading_barycentric.pipeline_library.data.shader_combos.with_tess_shader.type.vec4,Fail -dEQP-VK.pipeline.fast_linked_library.extended_dynamic_state.misc.dynamic_sample_shading_static_1_dynamic_2,Fail -dEQP-VK.pipeline.fast_linked_library.extended_dynamic_state.misc.dynamic_sample_shading_static_1_dynamic_4,Fail -dEQP-VK.pipeline.fast_linked_library.extended_dynamic_state.misc.dynamic_sample_shading_static_1_dynamic_8,Fail -dEQP-VK.pipeline.fast_linked_library.extended_dynamic_state.misc.dynamic_sample_shading_static_2_dynamic_4,Fail -dEQP-VK.pipeline.fast_linked_library.extended_dynamic_state.misc.dynamic_sample_shading_static_2_dynamic_8,Fail dEQP-VK.pipeline.fast_linked_library.pipeline_cache.robustness2.storage,Fail -dEQP-VK.pipeline.pipeline_library.extended_dynamic_state.misc.dynamic_sample_shading_static_1_dynamic_2,Fail -dEQP-VK.pipeline.pipeline_library.extended_dynamic_state.misc.dynamic_sample_shading_static_1_dynamic_4,Fail -dEQP-VK.pipeline.pipeline_library.extended_dynamic_state.misc.dynamic_sample_shading_static_1_dynamic_8,Fail dEQP-VK.pipeline.pipeline_library.pipeline_cache.robustness2.storage,Fail dEQP-VK.pipeline.shader_object_linked_binary.pipeline_cache.robustness2.storage,Fail dEQP-VK.pipeline.shader_object_linked_spirv.pipeline_cache.robustness2.storage,Fail diff --git a/src/nouveau/vulkan/nvk_shader.c b/src/nouveau/vulkan/nvk_shader.c index 3c880d1abc9..40c2afc8ea1 100644 --- a/src/nouveau/vulkan/nvk_shader.c +++ b/src/nouveau/vulkan/nvk_shader.c @@ -255,6 +255,15 @@ nvk_hash_graphics_state(struct vk_physical_device *device, const bool is_multiview = state->rp->view_mask != 0; _mesa_blake3_update(&blake3_ctx, &is_multiview, sizeof(is_multiview)); + + /* This doesn't impact the shader compile but it does go in the + * nvk_shader and gets [de]serialized along with the binary so we + * need to hash it. + */ + if (state->ms && state->ms->sample_shading_enable) { + _mesa_blake3_update(&blake3_ctx, &state->ms->min_sample_shading, + sizeof(state->ms->min_sample_shading)); + } } _mesa_blake3_final(&blake3_ctx, blake3_out); }