From c92d5895970bd8cb9e41becd2d7c44074c676ff7 Mon Sep 17 00:00:00 2001 From: Caio Oliveira Date: Thu, 2 Mar 2023 15:43:00 -0800 Subject: [PATCH] intel/compiler: Drop non-scoped barrier handling Reviewed-by: Alyssa Rosenzweig Reviewed-by: Kenneth Graunke Part-of: --- src/intel/compiler/brw_fs_nir.cpp | 25 ++++--------------------- src/intel/compiler/brw_vec4_nir.cpp | 3 --- src/intel/compiler/brw_vec4_tcs.cpp | 10 ++-------- 3 files changed, 6 insertions(+), 32 deletions(-) diff --git a/src/intel/compiler/brw_fs_nir.cpp b/src/intel/compiler/brw_fs_nir.cpp index f6ec4432b13..c1b168f2191 100644 --- a/src/intel/compiler/brw_fs_nir.cpp +++ b/src/intel/compiler/brw_fs_nir.cpp @@ -2765,16 +2765,13 @@ fs_visitor::nir_emit_tcs_intrinsic(const fs_builder &bld, break; case nir_intrinsic_scoped_barrier: - case nir_intrinsic_control_barrier: { - const bool scoped = instr->intrinsic == nir_intrinsic_scoped_barrier; - if (scoped && nir_intrinsic_memory_scope(instr) != NIR_SCOPE_NONE) + if (nir_intrinsic_memory_scope(instr) != NIR_SCOPE_NONE) nir_emit_intrinsic(bld, instr); - if (!scoped || nir_intrinsic_execution_scope(instr) == NIR_SCOPE_WORKGROUP) { + if (nir_intrinsic_execution_scope(instr) == NIR_SCOPE_WORKGROUP) { if (tcs_prog_data->instances != 1) emit_tcs_barrier(); } break; - } case nir_intrinsic_load_input: unreachable("nir_lower_io should never give us these."); @@ -3696,11 +3693,9 @@ fs_visitor::nir_emit_cs_intrinsic(const fs_builder &bld, switch (instr->intrinsic) { case nir_intrinsic_scoped_barrier: - case nir_intrinsic_control_barrier: { - const bool scoped = instr->intrinsic == nir_intrinsic_scoped_barrier; - if (scoped && nir_intrinsic_memory_scope(instr) != NIR_SCOPE_NONE) + if (nir_intrinsic_memory_scope(instr) != NIR_SCOPE_NONE) nir_emit_intrinsic(bld, instr); - if (!scoped || nir_intrinsic_execution_scope(instr) == NIR_SCOPE_WORKGROUP) { + if (nir_intrinsic_execution_scope(instr) == NIR_SCOPE_WORKGROUP) { /* The whole workgroup fits in a single HW thread, so all the * invocations are already executed lock-step. Instead of an actual * barrier just emit a scheduling fence, that will generate no code. @@ -3715,7 +3710,6 @@ fs_visitor::nir_emit_cs_intrinsic(const fs_builder &bld, cs_prog_data->uses_barrier = true; } break; - } case nir_intrinsic_load_subgroup_id: cs_payload().load_subgroup_id(bld, dest); @@ -4358,14 +4352,6 @@ fs_visitor::nir_emit_intrinsic(const fs_builder &bld, nir_intrinsic_instr *instr break; } - case nir_intrinsic_group_memory_barrier: - case nir_intrinsic_memory_barrier_shared: - case nir_intrinsic_memory_barrier_buffer: - case nir_intrinsic_memory_barrier_image: - case nir_intrinsic_memory_barrier: - case nir_intrinsic_memory_barrier_atomic_counter: - unreachable("unexpected barrier, expecting only nir_intrinsic_scoped_barrier"); - case nir_intrinsic_scoped_barrier: case nir_intrinsic_begin_invocation_interlock: case nir_intrinsic_end_invocation_interlock: { @@ -4616,9 +4602,6 @@ fs_visitor::nir_emit_intrinsic(const fs_builder &bld, nir_intrinsic_instr *instr break; } - case nir_intrinsic_memory_barrier_tcs_patch: - break; - case nir_intrinsic_shader_clock: { /* We cannot do anything if there is an event, so ignore it for now */ const fs_reg shader_clock = get_timestamp(bld); diff --git a/src/intel/compiler/brw_vec4_nir.cpp b/src/intel/compiler/brw_vec4_nir.cpp index 69465c41707..6adb5e62d45 100644 --- a/src/intel/compiler/brw_vec4_nir.cpp +++ b/src/intel/compiler/brw_vec4_nir.cpp @@ -714,9 +714,6 @@ vec4_visitor::nir_emit_intrinsic(nir_intrinsic_instr *instr) break; } - case nir_intrinsic_memory_barrier: - unreachable("expecting only nir_intrinsic_scoped_barrier"); - case nir_intrinsic_scoped_barrier: { if (nir_intrinsic_memory_scope(instr) == NIR_SCOPE_NONE) break; diff --git a/src/intel/compiler/brw_vec4_tcs.cpp b/src/intel/compiler/brw_vec4_tcs.cpp index 2460227afb5..f5e5954ee40 100644 --- a/src/intel/compiler/brw_vec4_tcs.cpp +++ b/src/intel/compiler/brw_vec4_tcs.cpp @@ -305,20 +305,14 @@ vec4_tcs_visitor::nir_emit_intrinsic(nir_intrinsic_instr *instr) } case nir_intrinsic_scoped_barrier: - case nir_intrinsic_control_barrier: { - const bool scoped = instr->intrinsic == nir_intrinsic_scoped_barrier; - if (scoped && nir_intrinsic_memory_scope(instr) != NIR_SCOPE_NONE) + if (nir_intrinsic_memory_scope(instr) != NIR_SCOPE_NONE) vec4_visitor::nir_emit_intrinsic(instr); - if (!scoped || nir_intrinsic_execution_scope(instr) == NIR_SCOPE_WORKGROUP) { + if (nir_intrinsic_execution_scope(instr) == NIR_SCOPE_WORKGROUP) { dst_reg header = dst_reg(this, glsl_type::uvec4_type); emit(TCS_OPCODE_CREATE_BARRIER_HEADER, header); emit(SHADER_OPCODE_BARRIER, dst_null_ud(), src_reg(header)); } break; - } - - case nir_intrinsic_memory_barrier_tcs_patch: - break; default: vec4_visitor::nir_emit_intrinsic(instr);