From 6a78416dabdf0b7b80471dd0c636164c8f4012e0 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Tue, 21 Nov 2017 16:32:33 -0800 Subject: broadcom/vc5: Fix BASE_LEVEL handling with txl. The HW doesn't add the base level anywhere (the min/max lod clamping is what does base level), so we need to add it manually in this case. Fixes piglit tex-miplevel-selection *Lod 2D. --- src/broadcom/compiler/nir_to_vir.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'src/broadcom') diff --git a/src/broadcom/compiler/nir_to_vir.c b/src/broadcom/compiler/nir_to_vir.c index 879704aeeed..7a31e242d11 100644 --- a/src/broadcom/compiler/nir_to_vir.c +++ b/src/broadcom/compiler/nir_to_vir.c @@ -380,9 +380,11 @@ ntq_emit_tex(struct v3d_compile *c, nir_tex_instr *instr) p0_unpacked.bias_supplied = true; break; case nir_tex_src_lod: - /* XXX: Needs base level addition */ coords[next_coord++] = - ntq_get_src(c, instr->src[i].src, 0); + vir_FADD(c, + ntq_get_src(c, instr->src[i].src, 0), + vir_uniform(c, QUNIFORM_TEXTURE_FIRST_LEVEL, + unit)); if (instr->op != nir_texop_txf && instr->op != nir_texop_tg4) { -- cgit v1.2.3