aco: Add extra assertion for number of FS input VGPRs.
authorTimur Kristóf <timur.kristof@gmail.com>
Thu, 3 Oct 2019 17:32:48 +0000 (19:32 +0200)
committerTimur Kristóf <timur.kristof@gmail.com>
Thu, 10 Oct 2019 07:57:53 +0000 (09:57 +0200)
Signed-off-by: Timur Kristóf <timur.kristof@gmail.com>
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
src/amd/compiler/aco_instruction_selection_setup.cpp

index c72d5c23834f6700d180b025260652847b0db55f..973b9c707802f40814b145c19e9e19a10d3a4368 100644 (file)
@@ -30,6 +30,7 @@
 #include "vulkan/radv_descriptor_set.h"
 #include "sid.h"
 #include "ac_exp_param.h"
+#include "ac_shader_util.h"
 
 #include "util/u_math.h"
 
@@ -1053,6 +1054,12 @@ void add_startpgm(struct isel_context *ctx)
    ctx->program->info->num_user_sgprs = user_sgpr_info.num_sgpr;
    ctx->program->info->num_input_vgprs = args.num_vgprs_used;
 
+   if (ctx->stage == fragment_fs) {
+      /* Verify that we have a correct assumption about input VGPR count */
+      ASSERTED unsigned input_vgpr_cnt = ac_get_fs_input_vgpr_cnt(ctx->program->config, nullptr, nullptr);
+      assert(input_vgpr_cnt == ctx->program->info->num_input_vgprs);
+   }
+
    aco_ptr<Pseudo_instruction> startpgm{create_instruction<Pseudo_instruction>(aco_opcode::p_startpgm, Format::PSEUDO, 0, args.count + 1)};
    for (unsigned i = 0; i < args.count; i++) {
       if (args.assign[i]) {