radeonsi: move the shader key dumping to si_shader_dump
authorMarek Olšák <marek.olsak@amd.com>
Fri, 22 Jul 2016 21:23:11 +0000 (23:23 +0200)
committerMarek Olšák <marek.olsak@amd.com>
Tue, 26 Jul 2016 21:06:46 +0000 (23:06 +0200)
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
src/gallium/drivers/radeonsi/si_debug.c
src/gallium/drivers/radeonsi/si_shader.c
src/gallium/drivers/radeonsi/si_shader.h

index 35d961d34f5975003465da027dae36a0afef6be9..d9d4890b90e3f0a99debe5a773c7b6116d4db0a5 100644 (file)
@@ -40,7 +40,6 @@ static void si_dump_shader(struct si_screen *sscreen,
        if (!state->cso || !state->current)
                return;
 
-       si_dump_shader_key(state->cso->type, &state->current->key, f);
        si_shader_dump(sscreen, state->current, NULL,
                       state->cso->info.processor, f);
 }
index adf706c877e250a566e32672916dc0022761d9a9..cb270e087f34de3437ee98387fc929b3d607905e 100644 (file)
@@ -151,6 +151,9 @@ static void si_llvm_emit_barrier(const struct lp_build_tgsi_action *action,
                                 struct lp_build_tgsi_context *bld_base,
                                 struct lp_build_emit_data *emit_data);
 
+static void si_dump_shader_key(unsigned shader, union si_shader_key *key,
+                              FILE *f);
+
 /* Ideally pass the sample mask input to the PS epilog as v13, which
  * is its usual location, so that the shader doesn't have to add v_mov.
  */
@@ -6244,6 +6247,10 @@ void si_shader_dump(struct si_screen *sscreen, struct si_shader *shader,
                    struct pipe_debug_callback *debug, unsigned processor,
                    FILE *file)
 {
+       if (file != stderr ||
+           r600_can_dump_shader(&sscreen->b, processor))
+               si_dump_shader_key(processor, &shader->key, file);
+
        if (file != stderr && shader->binary.llvm_ir_string) {
                fprintf(file, "\n%s - main shader part - LLVM IR:\n\n",
                        si_get_shader_name(shader, processor));
@@ -6440,7 +6447,8 @@ static int si_generate_gs_copy_shader(struct si_screen *sscreen,
        return r;
 }
 
-void si_dump_shader_key(unsigned shader, union si_shader_key *key, FILE *f)
+static void si_dump_shader_key(unsigned shader, union si_shader_key *key,
+                              FILE *f)
 {
        int i;
 
@@ -6613,8 +6621,6 @@ int si_compile_tgsi_shader(struct si_screen *sscreen,
         * conversion fails. */
        if (r600_can_dump_shader(&sscreen->b, sel->info.processor) &&
            !(sscreen->b.debug_flags & DBG_NO_TGSI)) {
-               if (is_monolithic)
-                       si_dump_shader_key(sel->type, &shader->key, stderr);
                tgsi_dump(sel->tokens, 0);
                si_dump_streamout(&sel->so);
        }
index 290693165484e5b6186667f693f9a41606910f59..6073296ac9f0b8a82589ec254e80226fbc2130c4 100644 (file)
@@ -488,7 +488,6 @@ int si_compile_tgsi_shader(struct si_screen *sscreen,
 int si_shader_create(struct si_screen *sscreen, LLVMTargetMachineRef tm,
                     struct si_shader *shader,
                     struct pipe_debug_callback *debug);
-void si_dump_shader_key(unsigned shader, union si_shader_key *key, FILE *f);
 int si_compile_llvm(struct si_screen *sscreen,
                    struct radeon_shader_binary *binary,
                    struct si_shader_config *conf,