Module: Mesa Branch: main Commit: 0415d66c97fce95c96db5964250bc426e69a4069 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=0415d66c97fce95c96db5964250bc426e69a4069
Author: Jason Ekstrand <[email protected]> Date: Thu Jul 21 14:41:43 2022 -0500 vulkan: Input assembly and depth/stencil can also be fully dynamic Reviewed-by: Lionel Landwerlin <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17696> --- src/vulkan/runtime/vk_graphics_state.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/vulkan/runtime/vk_graphics_state.c b/src/vulkan/runtime/vk_graphics_state.c index 857cd206fad..b566fc23091 100644 --- a/src/vulkan/runtime/vk_graphics_state.c +++ b/src/vulkan/runtime/vk_graphics_state.c @@ -106,9 +106,25 @@ fully_dynamic_state_groups(const BITSET_WORD *dynamic) if (BITSET_TEST(dynamic, MESA_VK_DYNAMIC_VI)) groups |= MESA_VK_GRAPHICS_STATE_VERTEX_INPUT_BIT; + if (BITSET_TEST(dynamic, MESA_VK_DYNAMIC_IA_PRIMITIVE_TOPOLOGY) && + BITSET_TEST(dynamic, MESA_VK_DYNAMIC_IA_PRIMITIVE_RESTART_ENABLE)) + groups |= MESA_VK_GRAPHICS_STATE_INPUT_ASSEMBLY_BIT; + if (BITSET_TEST(dynamic, MESA_VK_DYNAMIC_FSR)) groups |= MESA_VK_GRAPHICS_STATE_FRAGMENT_SHADING_RATE_BIT; + if (BITSET_TEST(dynamic, MESA_VK_DYNAMIC_DS_DEPTH_TEST_ENABLE) && + BITSET_TEST(dynamic, MESA_VK_DYNAMIC_DS_DEPTH_WRITE_ENABLE) && + BITSET_TEST(dynamic, MESA_VK_DYNAMIC_DS_DEPTH_COMPARE_OP) && + BITSET_TEST(dynamic, MESA_VK_DYNAMIC_DS_DEPTH_BOUNDS_TEST_ENABLE) && + BITSET_TEST(dynamic, MESA_VK_DYNAMIC_DS_DEPTH_BOUNDS_TEST_BOUNDS) && + BITSET_TEST(dynamic, MESA_VK_DYNAMIC_DS_STENCIL_TEST_ENABLE) && + BITSET_TEST(dynamic, MESA_VK_DYNAMIC_DS_STENCIL_OP) && + BITSET_TEST(dynamic, MESA_VK_DYNAMIC_DS_STENCIL_COMPARE_MASK) && + BITSET_TEST(dynamic, MESA_VK_DYNAMIC_DS_STENCIL_WRITE_MASK) && + BITSET_TEST(dynamic, MESA_VK_DYNAMIC_DS_STENCIL_REFERENCE)) + groups |= MESA_VK_GRAPHICS_STATE_DEPTH_STENCIL_BIT; + return groups; }
