Module: Mesa Branch: master Commit: 74b3fc2ce0f854bbe4b1d5e052e59b61a49f62ba URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=74b3fc2ce0f854bbe4b1d5e052e59b61a49f62ba
Author: Timothy Arceri <tarc...@itsqueeze.com> Date: Thu Mar 22 14:28:22 2018 +1100 nir: dont lower bindless samplers We neeed to skip the var if its not a uniform here as well as checking the bindless flag since UBOs can contain bindless samplers. Reviewed-by: Marek Olšák <marek.ol...@amd.com> --- src/compiler/nir/nir_lower_samplers_as_deref.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/compiler/nir/nir_lower_samplers_as_deref.c b/src/compiler/nir/nir_lower_samplers_as_deref.c index b1272e25a9..2a2fb5b093 100644 --- a/src/compiler/nir/nir_lower_samplers_as_deref.c +++ b/src/compiler/nir/nir_lower_samplers_as_deref.c @@ -157,7 +157,8 @@ static bool lower_sampler(nir_tex_instr *instr, struct lower_samplers_as_deref_state *state, nir_builder *b) { - if (!instr->texture) + if (!instr->texture || instr->texture->var->data.bindless || + instr->texture->var->data.mode != nir_var_uniform) return false; /* In GLSL, we only fill out the texture field. The sampler is inferred */ @@ -195,6 +196,11 @@ lower_intrinsic(nir_intrinsic_instr *instr, instr->intrinsic == nir_intrinsic_image_var_atomic_comp_swap || instr->intrinsic == nir_intrinsic_image_var_size) { b->cursor = nir_before_instr(&instr->instr); + + if (instr->variables[0]->var->data.bindless || + instr->variables[0]->var->data.mode != nir_var_uniform) + return false; + lower_deref(instr->variables[0], state, b); return true; } _______________________________________________ mesa-commit mailing list mesa-commit@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-commit