From aaf2e6a9f5f3cbb6c934a71b69b7e528087e4d68 Mon Sep 17 00:00:00 2001 From: Ian Romanick Date: Thu, 12 Aug 2021 15:48:10 -0700 Subject: [PATCH] iris: Eliminate iris_uncompiled_shader::needs_edge_flag Use the flag that was set by nir_lower_passthrough_edgeflags. The lowering passes will soon be moved to a finalize_nir hook, so there won't be any choice. Ideally we'd like to eliminate iris_fix_edge_flags completely, and this is a first step. Reviewed-by: Kenneth Graunke Part-of: --- src/gallium/drivers/iris/iris_context.h | 2 -- src/gallium/drivers/iris/iris_program.c | 7 +++---- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/src/gallium/drivers/iris/iris_context.h b/src/gallium/drivers/iris/iris_context.h index f98987cf4dc..41f43bbeb5a 100644 --- a/src/gallium/drivers/iris/iris_context.h +++ b/src/gallium/drivers/iris/iris_context.h @@ -403,8 +403,6 @@ struct iris_uncompiled_shader { /** Have any shader variants been compiled yet? */ bool compiled_once; - bool needs_edge_flag; - /* Whether shader uses atomic operations. */ bool uses_atomic_load_store; diff --git a/src/gallium/drivers/iris/iris_program.c b/src/gallium/drivers/iris/iris_program.c index 858294ad2d9..c282a26c7de 100644 --- a/src/gallium/drivers/iris/iris_program.c +++ b/src/gallium/drivers/iris/iris_program.c @@ -2440,8 +2440,7 @@ iris_create_uncompiled_shader(struct iris_screen *screen, list_inithead(&ish->variants); simple_mtx_init(&ish->lock, mtx_plain); - NIR_PASS(ish->needs_edge_flag, nir, iris_fix_edge_flags); - assert(ish->needs_edge_flag == nir->info.vs.needs_edge_flag); + NIR_PASS_V(nir, iris_fix_edge_flags); brw_preprocess_nir(screen->compiler, nir, NULL); @@ -2832,7 +2831,7 @@ iris_bind_vs_state(struct pipe_context *ctx, void *state) if (ice->state.vs_uses_draw_params != uses_draw_params || ice->state.vs_uses_derived_draw_params != uses_derived_draw_params || - ice->state.vs_needs_edge_flag != ish->needs_edge_flag) { + ice->state.vs_needs_edge_flag != info->vs.needs_edge_flag) { ice->state.dirty |= IRIS_DIRTY_VERTEX_BUFFERS | IRIS_DIRTY_VERTEX_ELEMENTS; } @@ -2840,7 +2839,7 @@ iris_bind_vs_state(struct pipe_context *ctx, void *state) ice->state.vs_uses_draw_params = uses_draw_params; ice->state.vs_uses_derived_draw_params = uses_derived_draw_params; ice->state.vs_needs_sgvs_element = needs_sgvs_element; - ice->state.vs_needs_edge_flag = ish->needs_edge_flag; + ice->state.vs_needs_edge_flag = info->vs.needs_edge_flag; } bind_shader_state((void *) ctx, state, MESA_SHADER_VERTEX);