mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-06 15:20:17 +01:00
v3d: Implement the line coord intrinsic
The line coord intrinsic is loaded from the implicit varying stored in the same slot as the point coord when drawing lines. Reviewed-by: Eric Anholt <eric@anholt.net> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5624>
This commit is contained in:
parent
14dd65bb5b
commit
2c4616368b
1 changed files with 8 additions and 1 deletions
|
|
@ -2165,6 +2165,10 @@ ntq_emit_intrinsic(struct v3d_compile *c, nir_intrinsic_instr *instr)
|
|||
vir_uniform(c, QUNIFORM_ALPHA_REF, 0));
|
||||
break;
|
||||
|
||||
case nir_intrinsic_load_line_coord:
|
||||
ntq_store_dest(c, &instr->dest, 0, vir_MOV(c, c->line_x));
|
||||
break;
|
||||
|
||||
case nir_intrinsic_load_sample_mask_in:
|
||||
ntq_store_dest(c, &instr->dest, 0, vir_MSF(c));
|
||||
break;
|
||||
|
|
@ -2720,7 +2724,10 @@ nir_to_vir(struct v3d_compile *c)
|
|||
c->point_x = emit_fragment_varying(c, NULL, 0, 0);
|
||||
c->point_y = emit_fragment_varying(c, NULL, 0, 0);
|
||||
c->uses_implicit_point_line_varyings = true;
|
||||
} else if (c->fs_key->is_lines && c->devinfo->ver < 40) {
|
||||
} else if (c->fs_key->is_lines &&
|
||||
(c->devinfo->ver < 40 ||
|
||||
(c->s->info.system_values_read &
|
||||
BITFIELD64_BIT(SYSTEM_VALUE_LINE_COORD)))) {
|
||||
c->line_x = emit_fragment_varying(c, NULL, 0, 0);
|
||||
c->uses_implicit_point_line_varyings = true;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue