vc4: switch to derivative intrinsics
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> Reviewed-by: Alejandro Piñeiro <apinheiro@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30570>
This commit is contained in:
committed by
Marge Bot
parent
c3d999dec9
commit
3410161dc7
@@ -1273,18 +1273,6 @@ ntq_emit_alu(struct vc4_compile *c, nir_alu_instr *instr)
|
||||
result = qir_V8MULD(c, src[0], src[1]);
|
||||
break;
|
||||
|
||||
case nir_op_fddx:
|
||||
case nir_op_fddx_coarse:
|
||||
case nir_op_fddx_fine:
|
||||
result = ntq_fddx(c, src[0]);
|
||||
break;
|
||||
|
||||
case nir_op_fddy:
|
||||
case nir_op_fddy_coarse:
|
||||
case nir_op_fddy_fine:
|
||||
result = ntq_fddy(c, src[0]);
|
||||
break;
|
||||
|
||||
case nir_op_uadd_carry:
|
||||
qir_SF(c, qir_ADD(c, src[0], src[1]));
|
||||
result = ntq_emit_cond_to_int(c, QPU_COND_CS);
|
||||
@@ -1858,6 +1846,20 @@ ntq_emit_intrinsic(struct vc4_compile *c, nir_intrinsic_instr *instr)
|
||||
break;
|
||||
}
|
||||
|
||||
case nir_intrinsic_ddx:
|
||||
case nir_intrinsic_ddx_coarse:
|
||||
case nir_intrinsic_ddx_fine:
|
||||
ntq_store_def(c, &instr->def, 0,
|
||||
ntq_fddx(c, ntq_get_src(c, instr->src[0], 0)));
|
||||
break;
|
||||
|
||||
case nir_intrinsic_ddy:
|
||||
case nir_intrinsic_ddy_coarse:
|
||||
case nir_intrinsic_ddy_fine:
|
||||
ntq_store_def(c, &instr->def, 0,
|
||||
ntq_fddy(c, ntq_get_src(c, instr->src[0], 0)));
|
||||
break;
|
||||
|
||||
default:
|
||||
fprintf(stderr, "Unknown intrinsic: ");
|
||||
nir_print_instr(&instr->instr, stderr);
|
||||
@@ -2179,6 +2181,8 @@ static const nir_shader_compiler_options nir_options = {
|
||||
.lower_mul_high = true,
|
||||
.max_unroll_iterations = 32,
|
||||
.force_indirect_unrolling = (nir_var_shader_in | nir_var_shader_out | nir_var_function_temp),
|
||||
.has_ddx_intrinsics = true,
|
||||
.scalarize_ddx = true,
|
||||
};
|
||||
|
||||
const void *
|
||||
|
||||
Reference in New Issue
Block a user