mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-24 04:08:10 +02:00
jay: Implement coverage mask
This is the actual MSAA coverage mask. Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/41688>
This commit is contained in:
parent
35622f165f
commit
3d91cb9d1e
2 changed files with 11 additions and 6 deletions
|
|
@ -64,7 +64,7 @@ typedef struct jay_fs_payload {
|
|||
jay_def xy, z, w;
|
||||
} coord;
|
||||
|
||||
jay_def pixel_sample_mask;
|
||||
jay_def coverage_mask;
|
||||
jay_def sample_pos;
|
||||
jay_def deltas[64];
|
||||
} jay_fs_payload;
|
||||
|
|
@ -1327,6 +1327,10 @@ jay_emit_intrinsic(struct nir_to_jay_state *nj, nir_intrinsic_instr *intr)
|
|||
JAY_TYPE_U32;
|
||||
break;
|
||||
|
||||
case nir_intrinsic_load_coverage_mask_intel:
|
||||
jay_MOV(b, dst, fs->coverage_mask);
|
||||
break;
|
||||
|
||||
case nir_intrinsic_load_dispatch_mask_intel: {
|
||||
jay_def mask = jay_extract(nj->payload.u0, 15);
|
||||
|
||||
|
|
@ -2602,6 +2606,10 @@ setup_fragment_payload(struct nir_to_jay_state *nj, struct payload_builder *p)
|
|||
fs->coord.w = read_payload(p, GPR);
|
||||
}
|
||||
|
||||
if (nj->s->prog_data->fs.uses_sample_mask) {
|
||||
fs->coverage_mask = read_payload(p, GPR);
|
||||
}
|
||||
|
||||
if (nj->s->prog_data->fs.uses_pos_offset) {
|
||||
fs->sample_pos = read_vector_payload(p, UGPR, jay_ugpr_per_grf(nj->s));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -88,11 +88,8 @@ gather_fs_info(nir_builder *b, nir_intrinsic_instr *intr, void *data)
|
|||
prog_data->uses_src_w = true;
|
||||
break;
|
||||
|
||||
case nir_intrinsic_load_sample_mask_in:
|
||||
/* TODO: Sample masks are broken and discards are broken and simd32
|
||||
* layouts are broken too. XXX.
|
||||
*/
|
||||
// prog_data->uses_sample_mask = true;
|
||||
case nir_intrinsic_load_coverage_mask_intel:
|
||||
prog_data->uses_sample_mask = true;
|
||||
break;
|
||||
|
||||
case nir_intrinsic_load_pixel_coord_intel:
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue