From 5ab94df0f6a9b2fdf8c053a68486d8be4d254d01 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marek=20Ol=C5=A1=C3=A1k?= Date: Mon, 24 Feb 2020 19:10:21 -0500 Subject: [PATCH] nir: fix gl_nir_lower_images for bindless images Fixes: 7342b859afb5a7e7f9fb1813e7ab3a55a1c8a704 Reviewed-by: Eric Anholt Tested-by: Marge Bot Part-of: --- src/compiler/glsl/gl_nir_lower_images.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/compiler/glsl/gl_nir_lower_images.c b/src/compiler/glsl/gl_nir_lower_images.c index a02e2509368..7dbefc36d0f 100644 --- a/src/compiler/glsl/gl_nir_lower_images.c +++ b/src/compiler/glsl/gl_nir_lower_images.c @@ -78,22 +78,21 @@ lower_impl(nir_builder *b, nir_instr *instr, bool bindless_only) return false; } - if (bindless_only) { - if (deref->mode == nir_var_uniform && !var->data.bindless) - return false; - } + bool bindless = deref->mode != nir_var_uniform || var->data.bindless; + if (bindless_only && !bindless) + return false; b->cursor = nir_before_instr(instr); nir_ssa_def *src; - if (var->data.bindless) { + if (bindless) { src = nir_load_deref(b, deref); } else { src = nir_iadd_imm(b, nir_build_deref_offset(b, deref, type_size_align_1), var->data.driver_location); } - nir_rewrite_image_intrinsic(intrinsic, src, var->data.bindless); + nir_rewrite_image_intrinsic(intrinsic, src, bindless); return true; } -- 2.30.2