dxil: Rely on scoped_barrier

We don't get non-scoped barriers. Don't handle them.

Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23188>
This commit is contained in:
Alyssa Rosenzweig 2023-05-23 13:44:11 -04:00 committed by Marge Bot
parent e367617668
commit 622779e5cb
2 changed files with 1 additions and 55 deletions

View file

@ -35,8 +35,6 @@ is_memory_barrier_tcs_patch(const nir_intrinsic_instr *intr)
assert(nir_intrinsic_memory_modes(intr) == nir_var_shader_out);
assert(nir_intrinsic_memory_scope(intr) == NIR_SCOPE_WORKGROUP);
return true;
} else if (intr->intrinsic == nir_intrinsic_memory_barrier_tcs_patch) {
return true;
} else {
return false;
}
@ -51,8 +49,7 @@ remove_hs_intrinsics(nir_function_impl *impl)
continue;
nir_intrinsic_instr *intr = nir_instr_as_intrinsic(instr);
if (intr->intrinsic != nir_intrinsic_store_output &&
!is_memory_barrier_tcs_patch(intr) &&
intr->intrinsic != nir_intrinsic_control_barrier)
!is_memory_barrier_tcs_patch(intr))
continue;
nir_instr_remove(instr);
}
@ -265,7 +262,6 @@ dxil_nir_split_tess_ctrl(nir_shader *nir, nir_function **patch_const_func)
break;
}
case nir_intrinsic_scoped_barrier:
case nir_intrinsic_memory_barrier_tcs_patch:
if (!is_memory_barrier_tcs_patch(intr))
break;

View file

@ -3062,45 +3062,6 @@ emit_barrier(struct ntd_context *ctx, nir_intrinsic_instr *intr)
nir_intrinsic_memory_scope(intr));
}
/* Memory barrier for UAVs (buffers/images) at cross-workgroup scope */
static bool
emit_memory_barrier(struct ntd_context *ctx, nir_intrinsic_instr *intr)
{
return emit_barrier_impl(ctx,
nir_var_mem_global,
NIR_SCOPE_NONE,
NIR_SCOPE_DEVICE);
}
/* Memory barrier for TGSM */
static bool
emit_memory_barrier_shared(struct ntd_context *ctx, nir_intrinsic_instr *intr)
{
return emit_barrier_impl(ctx,
nir_var_mem_shared,
NIR_SCOPE_NONE,
NIR_SCOPE_WORKGROUP);
}
/* Memory barrier for all intra-workgroup memory accesses (UAVs and TGSM) */
static bool
emit_group_memory_barrier(struct ntd_context *ctx, nir_intrinsic_instr *intr)
{
return emit_barrier_impl(ctx,
nir_var_mem_shared | nir_var_mem_global,
NIR_SCOPE_NONE,
NIR_SCOPE_WORKGROUP);
}
static bool
emit_control_barrier(struct ntd_context *ctx, nir_intrinsic_instr *intr)
{
return emit_barrier_impl(ctx,
nir_var_mem_shared,
NIR_SCOPE_WORKGROUP,
NIR_SCOPE_NONE);
}
static bool
emit_load_global_invocation_id(struct ntd_context *ctx,
nir_intrinsic_instr *intr)
@ -5063,17 +5024,6 @@ emit_intrinsic(struct ntd_context *ctx, nir_intrinsic_instr *intr)
return emit_end_primitive(ctx, intr);
case nir_intrinsic_scoped_barrier:
return emit_barrier(ctx, intr);
case nir_intrinsic_memory_barrier:
case nir_intrinsic_memory_barrier_buffer:
case nir_intrinsic_memory_barrier_image:
case nir_intrinsic_memory_barrier_atomic_counter:
return emit_memory_barrier(ctx, intr);
case nir_intrinsic_memory_barrier_shared:
return emit_memory_barrier_shared(ctx, intr);
case nir_intrinsic_group_memory_barrier:
return emit_group_memory_barrier(ctx, intr);
case nir_intrinsic_control_barrier:
return emit_control_barrier(ctx, intr);
case nir_intrinsic_ssbo_atomic:
return emit_ssbo_atomic(ctx, intr);
case nir_intrinsic_ssbo_atomic_swap: