From ac1f843b28c0f4561854ba8c2de4255402bebc4c Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Mon, 6 Mar 2023 17:10:21 -0500 Subject: [PATCH] lavapipe: pull out dynamic tess origin check in gfx pipeline bind Reviewed-by: Dave Airlie Part-of: --- src/gallium/frontends/lavapipe/lvp_execute.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/gallium/frontends/lavapipe/lvp_execute.c b/src/gallium/frontends/lavapipe/lvp_execute.c index f1903fe9df9..14a11ed1b0b 100644 --- a/src/gallium/frontends/lavapipe/lvp_execute.c +++ b/src/gallium/frontends/lavapipe/lvp_execute.c @@ -653,6 +653,7 @@ static void handle_graphics_pipeline(struct vk_cmd_queue_entry *cmd, LVP_FROM_HANDLE(lvp_pipeline, pipeline, cmd->u.bind_pipeline.pipeline); const struct vk_graphics_pipeline_state *ps = &pipeline->graphics_state; lvp_pipeline_shaders_compile(pipeline); + bool dynamic_tess_origin = BITSET_TEST(ps->dynamic, MESA_VK_DYNAMIC_TS_DOMAIN_ORIGIN); for (enum pipe_shader_type sh = MESA_SHADER_VERTEX; sh < MESA_SHADER_COMPUTE; sh++) state->shaders[sh] = &pipeline->shaders[sh]; @@ -716,7 +717,7 @@ static void handle_graphics_pipeline(struct vk_cmd_queue_entry *cmd, case VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT: state->inlines_dirty[MESA_SHADER_TESS_EVAL] = state->shaders[MESA_SHADER_TESS_EVAL]->inlines.can_inline; if (!state->shaders[MESA_SHADER_TESS_EVAL]->inlines.can_inline) { - if (BITSET_TEST(ps->dynamic, MESA_VK_DYNAMIC_TS_DOMAIN_ORIGIN)) { + if (dynamic_tess_origin) { state->tess_states[0] = state->shaders[MESA_SHADER_TESS_EVAL]->shader_cso; state->tess_states[1] = state->shaders[MESA_SHADER_TESS_EVAL]->tess_ccw_cso; state->pctx->bind_tes_state(state->pctx, state->tess_states[state->tess_ccw]); @@ -724,7 +725,7 @@ static void handle_graphics_pipeline(struct vk_cmd_queue_entry *cmd, state->pctx->bind_tes_state(state->pctx, state->shaders[MESA_SHADER_TESS_EVAL]->shader_cso); } } - if (!BITSET_TEST(ps->dynamic, MESA_VK_DYNAMIC_TS_DOMAIN_ORIGIN)) + if (!dynamic_tess_origin) state->tess_ccw = false; has_stage[MESA_SHADER_TESS_EVAL] = true; break;