Module: Mesa Branch: master Commit: f7fcbe9830d160c9610fe641ed0202397ed9c31e URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=f7fcbe9830d160c9610fe641ed0202397ed9c31e
Author: Alejandro PiƱeiro <[email protected]> Date: Thu May 7 11:46:25 2020 +0200 v3d/tex: use TMUSLOD register if possible TMUSLOD register is the same that TMUS but having the same effect that setting disable_autolod on the TMU configuration parameter 2. So using that register is potentially more efficient, as in several cases we would be able to skip writing P2. One case where we can't use it is for texture cube maps, as we need to use TMUSCM. v2: don't put a comment in the middle of the conditions (Iago) Reviewed-by: Iago Toral Quiroga <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4962> --- src/broadcom/compiler/v3d40_tex.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/broadcom/compiler/v3d40_tex.c b/src/broadcom/compiler/v3d40_tex.c index 2996313e518..7af14baf127 100644 --- a/src/broadcom/compiler/v3d40_tex.c +++ b/src/broadcom/compiler/v3d40_tex.c @@ -123,8 +123,15 @@ v3d40_vir_emit_tex(struct v3d_compile *c, nir_tex_instr *instr) ntq_get_src(c, instr->src[i].src, 0), &tmu_writes); - if (instr->op != nir_texop_txf) + /* With texel fetch automatic LOD is already disabled, + * and disable_autolod must not be enabled. For + * non-cubes we can use the register TMUSLOD, that + * implicitly sets disable_autolod. + */ + if (instr->op != nir_texop_txf && + instr->sampler_dim == GLSL_SAMPLER_DIM_CUBE) { p2_unpacked.disable_autolod = true; + } break; case nir_tex_src_comparator: @@ -267,6 +274,8 @@ v3d40_vir_emit_tex(struct v3d_compile *c, nir_tex_instr *instr) vir_TMU_WRITE(c, V3D_QPU_WADDR_TMUSF, s, &tmu_writes); } else if (instr->sampler_dim == GLSL_SAMPLER_DIM_CUBE) { vir_TMU_WRITE(c, V3D_QPU_WADDR_TMUSCM, s, &tmu_writes); + } else if (instr->op == nir_texop_txl) { + vir_TMU_WRITE(c, V3D_QPU_WADDR_TMUSLOD, s, &tmu_writes); } else { vir_TMU_WRITE(c, V3D_QPU_WADDR_TMUS, s, &tmu_writes); } _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
