X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=src%2Fcompiler%2Fnir%2Fnir_lower_samplers_as_deref.c;h=b1272e25a929b6f5b8dcca360206c24ea1c45fa4;hb=956f17395bfcf7f8ce9dd5ac9fd14a13e86f3a8f;hp=bdbd8672f402b8c0c3f411c543827e7e5ee065ca;hpb=59fb59ad54d368683d5cc3b149f021452bddc05f;p=mesa.git diff --git a/src/compiler/nir/nir_lower_samplers_as_deref.c b/src/compiler/nir/nir_lower_samplers_as_deref.c index bdbd8672f40..b1272e25a92 100644 --- a/src/compiler/nir/nir_lower_samplers_as_deref.c +++ b/src/compiler/nir/nir_lower_samplers_as_deref.c @@ -157,8 +157,10 @@ static bool lower_sampler(nir_tex_instr *instr, struct lower_samplers_as_deref_state *state, nir_builder *b) { + if (!instr->texture) + return false; + /* In GLSL, we only fill out the texture field. The sampler is inferred */ - assert(instr->texture != NULL); assert(instr->sampler == NULL); b->cursor = nir_before_instr(&instr->instr); @@ -181,17 +183,17 @@ lower_intrinsic(nir_intrinsic_instr *instr, struct lower_samplers_as_deref_state *state, nir_builder *b) { - if (instr->intrinsic == nir_intrinsic_image_load || - instr->intrinsic == nir_intrinsic_image_store || - instr->intrinsic == nir_intrinsic_image_atomic_add || - instr->intrinsic == nir_intrinsic_image_atomic_min || - instr->intrinsic == nir_intrinsic_image_atomic_max || - instr->intrinsic == nir_intrinsic_image_atomic_and || - instr->intrinsic == nir_intrinsic_image_atomic_or || - instr->intrinsic == nir_intrinsic_image_atomic_xor || - instr->intrinsic == nir_intrinsic_image_atomic_exchange || - instr->intrinsic == nir_intrinsic_image_atomic_comp_swap || - instr->intrinsic == nir_intrinsic_image_size) { + if (instr->intrinsic == nir_intrinsic_image_var_load || + instr->intrinsic == nir_intrinsic_image_var_store || + instr->intrinsic == nir_intrinsic_image_var_atomic_add || + instr->intrinsic == nir_intrinsic_image_var_atomic_min || + instr->intrinsic == nir_intrinsic_image_var_atomic_max || + instr->intrinsic == nir_intrinsic_image_var_atomic_and || + instr->intrinsic == nir_intrinsic_image_var_atomic_or || + instr->intrinsic == nir_intrinsic_image_var_atomic_xor || + instr->intrinsic == nir_intrinsic_image_var_atomic_exchange || + instr->intrinsic == nir_intrinsic_image_var_atomic_comp_swap || + instr->intrinsic == nir_intrinsic_image_var_size) { b->cursor = nir_before_instr(&instr->instr); lower_deref(instr->variables[0], state, b); return true;