mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-01-02 13:50:09 +01:00
ir3: Use nir_lower_tess_coord_z
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24159>
This commit is contained in:
parent
2c8f884103
commit
16b080b5d8
2 changed files with 3 additions and 22 deletions
|
|
@ -2123,15 +2123,12 @@ emit_intrinsic(struct ir3_context *ctx, nir_intrinsic_instr *intr)
|
|||
dst[0] = ctx->primitive_id;
|
||||
break;
|
||||
|
||||
case nir_intrinsic_load_tess_coord:
|
||||
case nir_intrinsic_load_tess_coord_xy:
|
||||
if (!ctx->tess_coord) {
|
||||
ctx->tess_coord =
|
||||
create_sysval_input(ctx, SYSTEM_VALUE_TESS_COORD, 0x3);
|
||||
}
|
||||
ir3_split_dest(b, dst, ctx->tess_coord, 0, 2);
|
||||
|
||||
/* Unused, but ir3_put_dst() below wants to free something */
|
||||
dst[2] = create_immed(b, 0);
|
||||
break;
|
||||
|
||||
case nir_intrinsic_end_patch_ir3:
|
||||
|
|
|
|||
|
|
@ -745,24 +745,6 @@ lower_tess_eval_block(nir_block *block, nir_builder *b, struct state *state)
|
|||
nir_intrinsic_instr *intr = nir_instr_as_intrinsic(instr);
|
||||
|
||||
switch (intr->intrinsic) {
|
||||
case nir_intrinsic_load_tess_coord: {
|
||||
b->cursor = nir_after_instr(&intr->instr);
|
||||
nir_ssa_def *x = nir_channel(b, &intr->dest.ssa, 0);
|
||||
nir_ssa_def *y = nir_channel(b, &intr->dest.ssa, 1);
|
||||
nir_ssa_def *z;
|
||||
|
||||
if (state->topology == IR3_TESS_TRIANGLES)
|
||||
z = nir_fsub(b, nir_fsub_imm(b, 1.0f, y), x);
|
||||
else
|
||||
z = nir_imm_float(b, 0.0f);
|
||||
|
||||
nir_ssa_def *coord = nir_vec3(b, x, y, z);
|
||||
|
||||
nir_ssa_def_rewrite_uses_after(&intr->dest.ssa, coord,
|
||||
b->cursor.instr);
|
||||
break;
|
||||
}
|
||||
|
||||
case nir_intrinsic_load_per_vertex_input: {
|
||||
// src[] = { vertex, offset }.
|
||||
|
||||
|
|
@ -827,6 +809,8 @@ ir3_nir_lower_tess_eval(nir_shader *shader, struct ir3_shader_variant *v,
|
|||
nir_log_shaderi(shader);
|
||||
}
|
||||
|
||||
NIR_PASS_V(shader, nir_lower_tess_coord_z, topology == IR3_TESS_TRIANGLES);
|
||||
|
||||
nir_function_impl *impl = nir_shader_get_entrypoint(shader);
|
||||
assert(impl);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue