case nir_intrinsic_scoped_barrier: emit_scoped_barrier(ctx, instr); break;
case nir_intrinsic_load_num_workgroups: {
Temp dst = get_ssa_temp(ctx, &instr->dest.ssa);
- if (ctx->args->load_grid_size_from_user_sgpr) {
+ if (ctx->options->load_grid_size_from_user_sgpr) {
bld.copy(Definition(dst), get_arg(ctx, ctx->args->ac.num_work_groups));
} else {
Temp addr = get_arg(ctx, ctx->args->ac.num_work_groups);
static inline void
radv_aco_convert_opts(struct aco_compiler_options *aco_info,
- const struct radv_nir_compiler_options *radv)
+ const struct radv_nir_compiler_options *radv,
+ const struct radv_shader_args *radv_args)
{
radv_aco_convert_pipe_key(&aco_info->key, &radv->key);
ASSIGN_FIELD(robust_buffer_access);
ASSIGN_FIELD(address32_hi);
ASSIGN_FIELD(debug.func);
ASSIGN_FIELD(debug.private_data);
+ ASSIGN_FIELD(debug.private_data);
+ aco_info->load_grid_size_from_user_sgpr = radv_args->load_grid_size_from_user_sgpr;
}
#undef ASSIGN_VS_STATE_FIELD
#undef ASSIGN_VS_STATE_FIELD_CP
} else {
struct aco_shader_info ac_info;
struct aco_compiler_options ac_opts;
- radv_aco_convert_opts(&ac_opts, &options);
+ radv_aco_convert_opts(&ac_opts, &options, args);
radv_aco_convert_shader_info(&ac_info, info);
aco_compile_shader(&ac_opts, &ac_info, shader_count, shaders, args, &radv_aco_build_shader_binary, (void **)&binary);
}
struct aco_vs_prolog_key ac_key;
struct aco_compiler_options ac_opts;
radv_aco_convert_shader_info(&ac_info, &info);
- radv_aco_convert_opts(&ac_opts, &options);
+ radv_aco_convert_opts(&ac_opts, &options, &args);
radv_aco_convert_vs_prolog_key(&ac_key, key);
aco_compile_vs_prolog(&ac_opts, &ac_info, &ac_key, &args, &radv_aco_build_shader_part,
(void **)&binary);
struct aco_ps_epilog_key ac_key;
struct aco_compiler_options ac_opts;
radv_aco_convert_shader_info(&ac_info, &info);
- radv_aco_convert_opts(&ac_opts, &options);
+ radv_aco_convert_opts(&ac_opts, &options, &args);
radv_aco_convert_ps_epilog_key(&ac_key, key);
aco_compile_ps_epilog(&ac_opts, &ac_info, &ac_key, &args, &radv_aco_build_shader_part,
(void **)&binary);