mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-25 10:50:10 +01:00
ac: add ac_build_s_barrier
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
This commit is contained in:
parent
6224144b6d
commit
2276f8f064
4 changed files with 9 additions and 5 deletions
|
|
@ -348,6 +348,12 @@ ac_build_phi(struct ac_llvm_context *ctx, LLVMTypeRef type,
|
|||
return phi;
|
||||
}
|
||||
|
||||
void ac_build_s_barrier(struct ac_llvm_context *ctx)
|
||||
{
|
||||
ac_build_intrinsic(ctx, "llvm.amdgcn.s.barrier", ctx->voidt, NULL,
|
||||
0, AC_FUNC_ATTR_CONVERGENT);
|
||||
}
|
||||
|
||||
/* Prevent optimizations (at least of memory accesses) across the current
|
||||
* point in the program by emitting empty inline assembly that is marked as
|
||||
* having side effects.
|
||||
|
|
|
|||
|
|
@ -133,6 +133,7 @@ ac_build_phi(struct ac_llvm_context *ctx, LLVMTypeRef type,
|
|||
unsigned count_incoming, LLVMValueRef *values,
|
||||
LLVMBasicBlockRef *blocks);
|
||||
|
||||
void ac_build_s_barrier(struct ac_llvm_context *ctx);
|
||||
void ac_build_optimization_barrier(struct ac_llvm_context *ctx,
|
||||
LLVMValueRef *pvgpr);
|
||||
|
||||
|
|
|
|||
|
|
@ -2582,8 +2582,7 @@ void ac_emit_barrier(struct ac_llvm_context *ac, gl_shader_stage stage)
|
|||
ac_build_waitcnt(ac, LGKM_CNT & VM_CNT);
|
||||
return;
|
||||
}
|
||||
ac_build_intrinsic(ac, "llvm.amdgcn.s.barrier",
|
||||
ac->voidt, NULL, 0, AC_FUNC_ATTR_CONVERGENT);
|
||||
ac_build_s_barrier(ac);
|
||||
}
|
||||
|
||||
static void emit_discard(struct ac_nir_context *ctx,
|
||||
|
|
|
|||
|
|
@ -4404,9 +4404,7 @@ static void si_llvm_emit_barrier(const struct lp_build_tgsi_action *action,
|
|||
return;
|
||||
}
|
||||
|
||||
ac_build_intrinsic(&ctx->ac,
|
||||
"llvm.amdgcn.s.barrier",
|
||||
ctx->voidt, NULL, 0, AC_FUNC_ATTR_CONVERGENT);
|
||||
ac_build_s_barrier(&ctx->ac);
|
||||
}
|
||||
|
||||
static void si_create_function(struct si_shader_context *ctx,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue