It's basically just the opposite, and it only makes sense to round the layer for 2D texture arrays.
Signed-off-by: Samuel Pitoiset <samuel.pitoi...@gmail.com> --- src/amd/common/ac_nir_to_llvm.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/amd/common/ac_nir_to_llvm.c b/src/amd/common/ac_nir_to_llvm.c index 2460e105f7..2add1be6af 100644 --- a/src/amd/common/ac_nir_to_llvm.c +++ b/src/amd/common/ac_nir_to_llvm.c @@ -5078,9 +5078,9 @@ static void visit_tex(struct ac_nir_context *ctx, nir_tex_instr *instr) address[count++] = coords[1]; } if (instr->coord_components > 2) { - /* This seems like a bit of a hack - but it passes Vulkan CTS with it */ - if (instr->sampler_dim != GLSL_SAMPLER_DIM_3D && - instr->sampler_dim != GLSL_SAMPLER_DIM_CUBE && + if ((instr->sampler_dim == GLSL_SAMPLER_DIM_2D || + instr->sampler_dim == GLSL_SAMPLER_DIM_MS) && + instr->is_array && instr->op != nir_texop_txf) { coords[2] = apply_round_slice(&ctx->ac, coords[2]); } -- 2.16.2 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev