Mesa (master): ac/nir: Fix nir_texop_lod on GFX for 1D arrays.
Bas Nieuwenhuizen
bnieuwenhuizen at kemper.freedesktop.org
Sun Oct 22 22:30:29 UTC 2017
Module: Mesa
Branch: master
Commit: 2c5b43c87fc4e5dcc50f72d782d7b3718e3c2c1c
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=2c5b43c87fc4e5dcc50f72d782d7b3718e3c2c1c
Author: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>
Date: Sun Oct 22 18:32:14 2017 +0200
ac/nir: Fix nir_texop_lod on GFX for 1D arrays.
Fixes: 1bcb953e166 'radv: handle GFX9 1D textures'
Reviewed-by: Dave Airlie <airlied at redhat.com>
---
src/amd/common/ac_nir_to_llvm.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/src/amd/common/ac_nir_to_llvm.c b/src/amd/common/ac_nir_to_llvm.c
index 360ca81ca8..5e5a46a21f 100644
--- a/src/amd/common/ac_nir_to_llvm.c
+++ b/src/amd/common/ac_nir_to_llvm.c
@@ -4747,7 +4747,9 @@ static void visit_tex(struct ac_nir_context *ctx, nir_tex_instr *instr)
filler = LLVMConstReal(ctx->ac.f32, 0.5);
if (instr->sampler_dim == GLSL_SAMPLER_DIM_1D) {
- if (instr->is_array) {
+ /* No nir_texop_lod, because it does not take a slice
+ * even with array textures. */
+ if (instr->is_array && instr->op != nir_texop_lod ) {
address[count] = address[count - 1];
address[count - 1] = filler;
count++;
More information about the mesa-commit
mailing list