From 4e2fe34aa9944612f2224188317a4ad2aee8035b Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Wed, 21 Oct 2020 18:25:56 +0200 Subject: [PATCH] aco: fix determining if LOD is zero for nir_texop_txf/nir_texop_txs txf/txs expects LOD to be a 32-bit unsigned integer while other texture operations expects a float. Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/3668 Fixes: 93c8ebfa780 ("aco: Initial commit of independent AMD compiler") Signed-off-by: Samuel Pitoiset Reviewed-by: Bas Nieuwenhuizen Part-of: --- src/amd/compiler/aco_instruction_selection.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/amd/compiler/aco_instruction_selection.cpp b/src/amd/compiler/aco_instruction_selection.cpp index d1b4032d14c..b5dc49a52d6 100644 --- a/src/amd/compiler/aco_instruction_selection.cpp +++ b/src/amd/compiler/aco_instruction_selection.cpp @@ -8609,9 +8609,7 @@ void visit_tex(isel_context *ctx, nir_tex_instr *instr) has_bias = true; break; case nir_tex_src_lod: { - nir_const_value *val = nir_src_as_const_value(instr->src[i].src); - - if (val && val->f32 <= 0.0) { + if (nir_src_is_const(instr->src[i].src) && nir_src_as_uint(instr->src[i].src) == 0) { level_zero = true; } else { lod = get_ssa_temp(ctx, instr->src[i].src.ssa);