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: 93c8ebfa78
("aco: Initial commit of independent AMD compiler")
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7256>
This commit is contained in:
parent
4735c8a522
commit
4e2fe34aa9
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue