From 168c42290f91dd172fb370f476d384188dbf9ca4 Mon Sep 17 00:00:00 2001 From: Connor Abbott Date: Wed, 17 Jun 2020 11:07:26 +0200 Subject: [PATCH] ir3: Don't calculate num_samp ourselves In addition to duplicating what core NIR does better, this was wrong for Vulkan, where it should be 0 as there are no non-bindless samplers. Part-of: --- src/freedreno/ir3/ir3_compiler_nir.c | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/src/freedreno/ir3/ir3_compiler_nir.c b/src/freedreno/ir3/ir3_compiler_nir.c index f52e9570b65..1ad4149d451 100644 --- a/src/freedreno/ir3/ir3_compiler_nir.c +++ b/src/freedreno/ir3/ir3_compiler_nir.c @@ -3317,15 +3317,11 @@ emit_instructions(struct ir3_context *ctx) setup_output(ctx, var); } - /* Find # of samplers: */ - nir_foreach_variable (var, &ctx->s->uniforms) { - ctx->so->num_samp += glsl_type_get_sampler_count(var->type); - /* just assume that we'll be reading from images.. if it - * is write-only we don't have to count it, but not sure - * if there is a good way to know? - */ - ctx->so->num_samp += glsl_type_get_image_count(var->type); - } + /* Find # of samplers. Just assume that we'll be reading from images.. if + * it is write-only we don't have to count it, but after lowering derefs + * is too late to compact indices for that. + */ + ctx->so->num_samp = util_last_bit(ctx->s->info.textures_used) + ctx->s->info.num_images; /* NOTE: need to do something more clever when we support >1 fxn */ nir_foreach_register (reg, &fxn->registers) { -- 2.30.2