void si_llvm_context_init(struct si_shader_context *ctx,
struct si_screen *sscreen,
struct ac_llvm_compiler *compiler,
- unsigned wave_size)
+ unsigned wave_size,
+ unsigned ballot_mask_bits)
{
struct lp_type type;
ctx->screen = sscreen;
ctx->compiler = compiler;
- enum ac_float_mode float_mode =
- sscreen->debug_flags & DBG(UNSAFE_MATH) ?
- AC_FLOAT_MODE_UNSAFE_FP_MATH :
- AC_FLOAT_MODE_NO_SIGNED_ZEROS_FP_MATH;
-
ac_llvm_context_init(&ctx->ac, compiler, sscreen->info.chip_class,
- sscreen->info.family, float_mode, wave_size);
+ sscreen->info.family,
+ AC_FLOAT_MODE_NO_SIGNED_ZEROS_FP_MATH,
+ wave_size, ballot_mask_bits);
ctx->gallivm.context = ctx->ac.context;
ctx->gallivm.module = ctx->ac.module;
bld_base->op_actions[TGSI_OPCODE_ENDIF].emit = endif_emit;
bld_base->op_actions[TGSI_OPCODE_ENDLOOP].emit = endloop_emit;
- si_shader_context_init_alu(&ctx->bld_base);
+ si_shader_context_init_alu(ctx);
si_shader_context_init_mem(ctx);
ctx->voidt = LLVMVoidTypeInContext(ctx->ac.context);