Commit 6a78416d authored by Eric Anholt's avatar Eric Anholt
Browse files

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.
parent c55813c2
......@@ -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) {
......
......@@ -324,6 +324,10 @@ vc5_write_uniforms(struct vc5_context *vc5, struct vc5_compiled_shader *shader,
break;
case QUNIFORM_TEXTURE_FIRST_LEVEL:
cl_aligned_f(&uniforms,
texstate->textures[uinfo->data[i]]->u.tex.first_level);
break;
case QUNIFORM_TEXTURE_BORDER_COLOR:
/* XXX */
break;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment