radeonsi/nir: set si_shader_context::num_{sampler,images}
authorNicolai Hähnle <nicolai.haehnle@amd.com>
Fri, 9 Jun 2017 13:16:14 +0000 (15:16 +0200)
committerNicolai Hähnle <nicolai.haehnle@amd.com>
Mon, 31 Jul 2017 12:55:38 +0000 (14:55 +0200)
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
src/gallium/drivers/radeonsi/si_shader_nir.c

index 22c7e238456d4b4d52d495e06ad534ba5b3ee06e..0eb8f9704e866f5c1984f365cd2fe7e6bcf35317 100644 (file)
@@ -375,6 +375,8 @@ si_nir_load_sampler_desc(struct ac_shader_abi *abi,
 
 bool si_nir_build_llvm(struct si_shader_context *ctx, struct nir_shader *nir)
 {
+       struct tgsi_shader_info *info = &ctx->shader->selector->info;
+
        unsigned fs_attr_idx = 0;
        nir_foreach_variable(variable, &nir->inputs) {
                unsigned attrib_count = glsl_count_attribute_slots(variable->type,
@@ -399,6 +401,9 @@ bool si_nir_build_llvm(struct si_shader_context *ctx, struct nir_shader *nir)
        ctx->abi.inputs = &ctx->inputs[0];
        ctx->abi.load_sampler_desc = si_nir_load_sampler_desc;
 
+       ctx->num_samplers = util_last_bit(info->samplers_declared);
+       ctx->num_images = util_last_bit(info->images_declared);
+
        ac_nir_translate(&ctx->ac, &ctx->abi, nir, NULL);
 
        return true;