radeonsi: move shader debug helpers out of r600_pipe_common.c
authorMarek Olšák <marek.olsak@amd.com>
Sun, 26 Nov 2017 02:08:59 +0000 (03:08 +0100)
committerMarek Olšák <marek.olsak@amd.com>
Wed, 29 Nov 2017 17:21:30 +0000 (18:21 +0100)
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
src/gallium/drivers/radeon/r600_pipe_common.c
src/gallium/drivers/radeon/r600_pipe_common.h
src/gallium/drivers/radeonsi/si_compute.c
src/gallium/drivers/radeonsi/si_pipe.h
src/gallium/drivers/radeonsi/si_shader.c
src/gallium/drivers/radeonsi/si_shader_tgsi_setup.c
src/gallium/drivers/radeonsi/si_state_shaders.c

index 069594f9f22214867b5a1855de8dc5dd9be0e945..e8ee79256b797526ff37afad8d65251aef8fa517 100644 (file)
@@ -510,17 +510,6 @@ void si_common_context_cleanup(struct r600_common_context *rctx)
        r600_resource_reference(&rctx->eop_bug_scratch, NULL);
 }
 
-bool si_can_dump_shader(struct r600_common_screen *rscreen,
-                       unsigned processor)
-{
-       return rscreen->debug_flags & (1 << processor);
-}
-
-bool si_extra_shader_checks(struct r600_common_screen *rscreen, unsigned processor)
-{
-       return (rscreen->debug_flags & DBG(CHECK_IR)) ||
-              si_can_dump_shader(rscreen, processor);
-}
 
 void si_screen_clear_buffer(struct r600_common_screen *rscreen, struct pipe_resource *dst,
                            uint64_t offset, uint64_t size, unsigned value)
index 2f8dc9065ae300ba5f86fc7aa4ac7a675fec3adb..dea1d6f026ae89096de96f37552956e9c284b3d4 100644 (file)
@@ -643,10 +643,6 @@ bool si_common_context_init(struct r600_common_context *rctx,
                            struct r600_common_screen *rscreen,
                            unsigned context_flags);
 void si_common_context_cleanup(struct r600_common_context *rctx);
-bool si_can_dump_shader(struct r600_common_screen *rscreen,
-                       unsigned processor);
-bool si_extra_shader_checks(struct r600_common_screen *rscreen,
-                           unsigned processor);
 void si_screen_clear_buffer(struct r600_common_screen *rscreen, struct pipe_resource *dst,
                            uint64_t offset, uint64_t size, unsigned value);
 void si_need_dma_space(struct r600_common_context *ctx, unsigned num_dw,
index dc409895602a5240357da431898f9029082d30f1..f3dce65e3dd58c287b83a2934d8ae724b793c86d 100644 (file)
@@ -178,7 +178,7 @@ static void *si_create_compute_state(
                bool wait =
                        (sctx->debug.debug_message && !sctx->debug.async) ||
                        sctx->is_debug ||
-                       si_can_dump_shader(&sscreen->b, PIPE_SHADER_COMPUTE);
+                       si_can_dump_shader(sscreen, PIPE_SHADER_COMPUTE);
 
                if (wait) {
                        u_async_debug_init(&async_debug);
index 3131a8bf24bffab2a2b20ee424a276edc14012eb..0c16cfb71b848b2497aa82c8f863f4207f5a9c6a 100644 (file)
@@ -750,6 +750,19 @@ static inline struct si_shader* si_get_vs_state(struct si_context *sctx)
        return vs->current ? vs->current : NULL;
 }
 
+static inline bool si_can_dump_shader(struct si_screen *sscreen,
+                                     unsigned processor)
+{
+       return sscreen->b.debug_flags & (1 << processor);
+}
+
+static inline bool si_extra_shader_checks(struct si_screen *sscreen,
+                                         unsigned processor)
+{
+       return (sscreen->b.debug_flags & DBG(CHECK_IR)) ||
+              si_can_dump_shader(sscreen, processor);
+}
+
 static inline bool si_get_strmout_en(struct si_context *sctx)
 {
        return sctx->streamout.streamout_enabled ||
index 0340133a8afc88c34954c830d9b2e36dad4e56de..e942d345dbcce20e8fce75871ccc16cc648c5bcd 100644 (file)
@@ -5171,7 +5171,7 @@ static void si_shader_dump_stats(struct si_screen *sscreen,
                max_simd_waves = MIN2(max_simd_waves, 16384 / lds_per_wave);
 
        if (!check_debug_option ||
-           si_can_dump_shader(&sscreen->b, processor)) {
+           si_can_dump_shader(sscreen, processor)) {
                if (processor == PIPE_SHADER_FRAGMENT) {
                        fprintf(file, "*** SHADER CONFIG ***\n"
                                "SPI_PS_INPUT_ADDR = 0x%04x\n"
@@ -5243,7 +5243,7 @@ void si_shader_dump(struct si_screen *sscreen, const struct si_shader *shader,
                    FILE *file, bool check_debug_option)
 {
        if (!check_debug_option ||
-           si_can_dump_shader(&sscreen->b, processor))
+           si_can_dump_shader(sscreen, processor))
                si_dump_shader_key(processor, shader, file);
 
        if (!check_debug_option && shader->binary.llvm_ir_string) {
@@ -5260,7 +5260,7 @@ void si_shader_dump(struct si_screen *sscreen, const struct si_shader *shader,
        }
 
        if (!check_debug_option ||
-           (si_can_dump_shader(&sscreen->b, processor) &&
+           (si_can_dump_shader(sscreen, processor) &&
             !(sscreen->b.debug_flags & DBG(NO_ASM)))) {
                fprintf(file, "\n%s:\n", si_get_shader_name(shader, processor));
 
@@ -5298,7 +5298,7 @@ static int si_compile_llvm(struct si_screen *sscreen,
        int r = 0;
        unsigned count = p_atomic_inc_return(&sscreen->b.num_compilations);
 
-       if (si_can_dump_shader(&sscreen->b, processor)) {
+       if (si_can_dump_shader(sscreen, processor)) {
                fprintf(stderr, "radeonsi: Compiling shader %d\n", count);
 
                if (!(sscreen->b.debug_flags & (DBG(NO_IR) | DBG(PREOPT_IR)))) {
@@ -5498,7 +5498,7 @@ si_generate_gs_copy_shader(struct si_screen *sscreen,
                            debug, PIPE_SHADER_GEOMETRY,
                            "GS Copy Shader");
        if (!r) {
-               if (si_can_dump_shader(&sscreen->b, PIPE_SHADER_GEOMETRY))
+               if (si_can_dump_shader(sscreen, PIPE_SHADER_GEOMETRY))
                        fprintf(stderr, "GS Copy Shader:\n");
                si_shader_dump(sscreen, ctx.shader, debug,
                               PIPE_SHADER_GEOMETRY, stderr, true);
@@ -6416,7 +6416,7 @@ int si_compile_tgsi_shader(struct si_screen *sscreen,
 
        /* Dump TGSI code before doing TGSI->LLVM conversion in case the
         * conversion fails. */
-       if (si_can_dump_shader(&sscreen->b, sel->info.processor) &&
+       if (si_can_dump_shader(sscreen, sel->info.processor) &&
            !(sscreen->b.debug_flags & DBG(NO_TGSI))) {
                if (sel->tokens)
                        tgsi_dump(sel->tokens, 0);
@@ -6625,7 +6625,7 @@ int si_compile_tgsi_shader(struct si_screen *sscreen,
        si_optimize_vs_outputs(&ctx);
 
        if ((debug && debug->debug_message) ||
-           si_can_dump_shader(&sscreen->b, ctx.type))
+           si_can_dump_shader(sscreen, ctx.type))
                si_count_scratch_private_memory(&ctx);
 
        /* Compile to bytecode. */
index 59d02605e9fa5513bcd083e110d03bb8312a7d43..9c1ea91f06ed31899812033bc70b5303e2bc1c57 100644 (file)
@@ -1359,7 +1359,7 @@ void si_llvm_optimize_module(struct si_shader_context *ctx)
 
        /* Dump LLVM IR before any optimization passes */
        if (ctx->screen->b.debug_flags & DBG(PREOPT_IR) &&
-           si_can_dump_shader(&ctx->screen->b, ctx->type))
+           si_can_dump_shader(ctx->screen, ctx->type))
                LLVMDumpModule(ctx->gallivm.module);
 
        /* Create the pass manager */
@@ -1368,7 +1368,7 @@ void si_llvm_optimize_module(struct si_shader_context *ctx)
        target_library_info = gallivm_create_target_library_info(triple);
        LLVMAddTargetLibraryInfo(target_library_info, gallivm->passmgr);
 
-       if (si_extra_shader_checks(&ctx->screen->b, ctx->type))
+       if (si_extra_shader_checks(ctx->screen, ctx->type))
                LLVMAddVerifierPass(gallivm->passmgr);
 
        LLVMAddAlwaysInlinerPass(gallivm->passmgr);
index 513e30b6abef4b36b9445ecea419112918608a00..53955307b4fbd04656a0548cfc1df47de3ea273b 100644 (file)
@@ -2272,7 +2272,7 @@ static void *si_create_shader_selector(struct pipe_context *ctx,
        bool wait =
                (sctx->debug.debug_message && !sctx->debug.async) ||
                sctx->is_debug ||
-               si_can_dump_shader(&sscreen->b, sel->info.processor);
+               si_can_dump_shader(sscreen, sel->info.processor);
 
        if (wait) {
                u_async_debug_init(&async_debug);