mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-15 16:28:04 +02:00
intel/brw: add load_coverage_mask_intel intrinsic
We'll need the raw coverage mask provided to the fragment shader in a future patch. Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com> Tested-by: Caleb Callaway <caleb.callaway@intel.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38879>
This commit is contained in:
parent
d8e1409948
commit
3448f3ce4a
3 changed files with 15 additions and 0 deletions
|
|
@ -1008,6 +1008,7 @@ visit_intrinsic(nir_intrinsic_instr *instr, struct divergence_state *state)
|
|||
case nir_intrinsic_cmat_muladd_amd:
|
||||
case nir_intrinsic_dpas_intel:
|
||||
case nir_intrinsic_convert_cmat_intel:
|
||||
case nir_intrinsic_load_coverage_mask_intel:
|
||||
case nir_intrinsic_isberd_nv:
|
||||
case nir_intrinsic_isbewr_nv:
|
||||
case nir_intrinsic_vild_nv:
|
||||
|
|
|
|||
|
|
@ -2649,6 +2649,10 @@ system_value("simd_width_intel", 1)
|
|||
# IndirectDataStartAddress
|
||||
system_value("indirect_address_intel", 1)
|
||||
|
||||
# The raw coverage mask as provided in the FS payload.
|
||||
# The semantics of it depend on the HW state.
|
||||
system_value("coverage_mask_intel", 1)
|
||||
|
||||
# Load a relocatable 32-bit value
|
||||
intrinsic("load_reloc_const_intel", dest_comp=1, bit_sizes=[32],
|
||||
indices=[PARAM_IDX, BASE], flags=[CAN_ELIMINATE, CAN_REORDER])
|
||||
|
|
|
|||
|
|
@ -3803,6 +3803,16 @@ brw_from_nir_emit_fs_intrinsic(nir_to_brw_state &ntb,
|
|||
break;
|
||||
}
|
||||
|
||||
case nir_intrinsic_load_coverage_mask_intel: {
|
||||
struct brw_fs_prog_data *fs_prog_data = brw_fs_prog_data(ntb.s.prog_data);
|
||||
assert(fs_prog_data->uses_sample_mask);
|
||||
bld.MOV(retype(dest, BRW_TYPE_UD),
|
||||
brw_fetch_payload_reg(ntb.bld,
|
||||
ntb.s.fs_payload().sample_mask_in_reg,
|
||||
BRW_TYPE_UD));
|
||||
break;
|
||||
}
|
||||
|
||||
case nir_intrinsic_store_output: {
|
||||
const brw_reg src = get_nir_src(ntb, instr->src[0], -1);
|
||||
const nir_io_semantics sem = nir_intrinsic_io_semantics(instr);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue