mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-05 16:08:04 +02:00
nir,radeonsi: add and implement nir_load_alpha_reference_amd
Reviewed-by: Marek Olšák <marek.olsak@amd.com> Signed-off-by: Qiang Yu <yuq825@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21552>
This commit is contained in:
parent
67f295f1e2
commit
c9d60547ef
5 changed files with 10 additions and 1 deletions
|
|
@ -207,6 +207,7 @@ visit_intrinsic(nir_shader *shader, nir_intrinsic_instr *instr)
|
|||
case nir_intrinsic_load_lds_ngg_gs_out_vertex_base_amd:
|
||||
case nir_intrinsic_load_btd_shader_type_intel:
|
||||
case nir_intrinsic_load_base_workgroup_id:
|
||||
case nir_intrinsic_load_alpha_reference_amd:
|
||||
is_divergent = false;
|
||||
break;
|
||||
|
||||
|
|
|
|||
|
|
@ -1598,6 +1598,9 @@ system_value("lds_ngg_gs_out_vertex_base_amd", 1)
|
|||
# FLAGS = AC_EXP_FLAG_*
|
||||
intrinsic("export_amd", [0], indices=[BASE, WRITE_MASK, FLAGS])
|
||||
|
||||
# Alpha test reference value
|
||||
system_value("alpha_reference_amd", 1)
|
||||
|
||||
# V3D-specific instrinc for tile buffer color reads.
|
||||
#
|
||||
# The hardware requires that we read the samples and components of a pixel
|
||||
|
|
|
|||
|
|
@ -478,6 +478,9 @@ static bool lower_abi_instr(nir_builder *b, nir_instr *instr, struct lower_abi_s
|
|||
case nir_intrinsic_load_ring_tess_factors_offset_amd:
|
||||
replacement = ac_nir_load_arg(b, &args->ac, args->ac.tcs_factor_offset);
|
||||
break;
|
||||
case nir_intrinsic_load_alpha_reference_amd:
|
||||
replacement = ac_nir_load_arg(b, &args->ac, args->alpha_reference);
|
||||
break;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -662,7 +662,8 @@ void si_init_shader_args(struct si_shader *shader, struct si_shader_args *args)
|
|||
case MESA_SHADER_FRAGMENT:
|
||||
declare_global_desc_pointers(args);
|
||||
declare_per_stage_desc_pointers(args, shader, true);
|
||||
si_add_arg_checked(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, NULL, SI_PARAM_ALPHA_REF);
|
||||
si_add_arg_checked(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->alpha_reference,
|
||||
SI_PARAM_ALPHA_REF);
|
||||
si_add_arg_checked(&args->ac, AC_ARG_SGPR, 1, AC_ARG_INT, &args->ac.prim_mask,
|
||||
SI_PARAM_PRIM_MASK);
|
||||
|
||||
|
|
|
|||
|
|
@ -81,6 +81,7 @@ struct si_shader_args {
|
|||
struct ac_arg tes_offchip_addr;
|
||||
/* PS */
|
||||
struct ac_arg pos_fixed_pt;
|
||||
struct ac_arg alpha_reference;
|
||||
/* CS */
|
||||
struct ac_arg block_size;
|
||||
struct ac_arg cs_user_data;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue