radv: fix setting global locations for indirect descriptors
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>
Wed, 12 Sep 2018 13:40:09 +0000 (15:40 +0200)
committerSamuel Pitoiset <samuel.pitoiset@gmail.com>
Fri, 14 Sep 2018 08:59:52 +0000 (10:59 +0200)
Indirect descriptors only need one entry, we don't have to
emit a location for every descriptors.

Fixes GPU hangs with new CTS:
dEQP-VK.binding_model.descriptorset_random.*

CC: 18.2 <mesa-stable@lists.freedesktop.org>
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
src/amd/vulkan/radv_nir_to_llvm.c

index f027eae8096e0fb8b6f4a73e6c9466f0f06d4ec5..968d96fc056138f6bde4aeebd6cfaaa2a0e26dda 100644 (file)
@@ -811,7 +811,6 @@ set_global_input_locs(struct radv_shader_context *ctx, gl_shader_stage stage,
                for (unsigned i = 0; i < num_sets; ++i) {
                        if ((ctx->shader_info->info.desc_set_used_mask & (1 << i)) &&
                            ctx->options->layout->set[i].layout->shader_stages & stage_mask) {
-                               set_loc_desc(ctx, i, user_sgpr_idx, true);
                                ctx->descriptor_sets[i] =
                                        ac_build_load_to_sgpr(&ctx->ac,
                                                              desc_sets,