mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-29 10:10:09 +01:00
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:
parent
e367617668
commit
622779e5cb
2 changed files with 1 additions and 55 deletions
|
|
@ -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;
|
||||
|
||||
|
|
|
|||
|
|
@ -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:
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue