radeonsi: move debug options to R600_DEBUG
authorMarek Olšák <marek.olsak@amd.com>
Sun, 22 Sep 2013 13:34:12 +0000 (15:34 +0200)
committerMarek Olšák <marek.olsak@amd.com>
Sun, 29 Sep 2013 13:18:09 +0000 (15:18 +0200)
src/gallium/drivers/r600/r600_shader.c
src/gallium/drivers/radeon/r600_pipe_common.c
src/gallium/drivers/radeon/r600_pipe_common.h
src/gallium/drivers/radeonsi/r600_texture.c
src/gallium/drivers/radeonsi/radeonsi_pipe.c
src/gallium/drivers/radeonsi/radeonsi_shader.c

index a5d330e5f348953741670874cfaa9603dda0543e..71818c7f0dc996070e7d006abddd1a2746a3649f 100644 (file)
@@ -84,33 +84,6 @@ static void r600_add_gpr_array(struct r600_shader *ps, int start_gpr,
        ps->arrays[n].gpr_count = size;
 }
 
-static unsigned tgsi_get_processor_type(const struct tgsi_token *tokens)
-{
-       struct tgsi_parse_context parse;
-
-       if (tgsi_parse_init( &parse, tokens ) != TGSI_PARSE_OK) {
-               debug_printf("tgsi_parse_init() failed in %s:%i!\n", __func__, __LINE__);
-               return ~0;
-       }
-       return parse.FullHeader.Processor.Processor;
-}
-
-static bool r600_can_dump_shader(struct r600_screen *rscreen, unsigned processor_type)
-{
-       switch (processor_type) {
-       case TGSI_PROCESSOR_VERTEX:
-               return (rscreen->b.debug_flags & DBG_VS) != 0;
-       case TGSI_PROCESSOR_GEOMETRY:
-               return (rscreen->b.debug_flags & DBG_GS) != 0;
-       case TGSI_PROCESSOR_FRAGMENT:
-               return (rscreen->b.debug_flags & DBG_PS) != 0;
-       case TGSI_PROCESSOR_COMPUTE:
-               return (rscreen->b.debug_flags & DBG_CS) != 0;
-       default:
-               return false;
-       }
-}
-
 static void r600_dump_streamout(struct pipe_stream_output_info *so)
 {
        unsigned i;
@@ -139,7 +112,7 @@ int r600_pipe_shader_create(struct pipe_context *ctx,
        struct r600_pipe_shader_selector *sel = shader->selector;
        int r, i;
        uint32_t *ptr;
-       bool dump = r600_can_dump_shader(rctx->screen, tgsi_get_processor_type(sel->tokens));
+       bool dump = r600_can_dump_shader(&rctx->screen->b, sel->tokens);
        unsigned use_sb = !(rctx->screen->b.debug_flags & DBG_NO_SB);
        unsigned sb_disasm = use_sb || (rctx->screen->b.debug_flags & DBG_SB_DISASM);
 
@@ -1122,7 +1095,7 @@ static int r600_shader_from_tgsi(struct r600_screen *rscreen,
        if (use_llvm) {
                struct radeon_llvm_context radeon_llvm_ctx;
                LLVMModuleRef mod;
-               bool dump = r600_can_dump_shader(rscreen, ctx.type);
+               bool dump = r600_can_dump_shader(&rscreen->b, tokens);
                boolean use_kill = false;
 
                memset(&radeon_llvm_ctx, 0, sizeof(radeon_llvm_ctx));
index 9d68f4ba7abb7f6dd2c76adcb4dd3c1a4477148f..0a9081b821e658fe17652885dfe16e0d9b3c81ed 100644 (file)
@@ -25,6 +25,7 @@
  */
 
 #include "r600_pipe_common.h"
+#include "tgsi/tgsi_parse.h"
 
 static const struct debug_named_value common_debug_options[] = {
        /* logging */
@@ -101,3 +102,31 @@ void r600_context_add_resource_size(struct pipe_context *ctx, struct pipe_resour
                rctx->vram += rr->buf->size;
        }
 }
+
+static unsigned tgsi_get_processor_type(const struct tgsi_token *tokens)
+{
+       struct tgsi_parse_context parse;
+
+       if (tgsi_parse_init( &parse, tokens ) != TGSI_PARSE_OK) {
+               debug_printf("tgsi_parse_init() failed in %s:%i!\n", __func__, __LINE__);
+               return ~0;
+       }
+       return parse.FullHeader.Processor.Processor;
+}
+
+bool r600_can_dump_shader(struct r600_common_screen *rscreen,
+                         const struct tgsi_token *tokens)
+{
+       switch (tgsi_get_processor_type(tokens)) {
+       case TGSI_PROCESSOR_VERTEX:
+               return (rscreen->debug_flags & DBG_VS) != 0;
+       case TGSI_PROCESSOR_GEOMETRY:
+               return (rscreen->debug_flags & DBG_GS) != 0;
+       case TGSI_PROCESSOR_FRAGMENT:
+               return (rscreen->debug_flags & DBG_PS) != 0;
+       case TGSI_PROCESSOR_COMPUTE:
+               return (rscreen->debug_flags & DBG_CS) != 0;
+       default:
+               return false;
+       }
+}
index 63bc9b1fade5e776d78a77c124d09de37ed8871f..f2510b408eab531b8bb0b407d797a14fedd3ce09 100644 (file)
@@ -237,6 +237,8 @@ bool r600_common_context_init(struct r600_common_context *rctx,
                              struct r600_common_screen *rscreen);
 void r600_common_context_cleanup(struct r600_common_context *rctx);
 void r600_context_add_resource_size(struct pipe_context *ctx, struct pipe_resource *r);
+bool r600_can_dump_shader(struct r600_common_screen *rscreen,
+                         const struct tgsi_token *tokens);
 
 /* r600_streamout.c */
 void r600_streamout_buffers_dirty(struct r600_common_context *rctx);
index 69ca892b5f8bd81a4f873649d0acbab508876a86..aa307fb1a225b2944684b25ea7779bf23bdb4e48 100644 (file)
@@ -291,8 +291,6 @@ static void r600_texture_destroy(struct pipe_screen *screen,
 
 static const struct u_resource_vtbl r600_texture_vtbl;
 
-DEBUG_GET_ONCE_BOOL_OPTION(print_texdepth, "RADEON_PRINT_TEXDEPTH", FALSE);
-
 /* The number of samples can be specified independently of the texture. */
 static void r600_texture_get_fmask_info(struct r600_screen *rscreen,
                                        struct r600_texture *rtex,
@@ -468,7 +466,7 @@ r600_texture_create_object(struct pipe_screen *screen,
                memset(map + rtex->cmask.offset, 0xCC, rtex->cmask.size);
        }
 
-       if (debug_get_option_print_texdepth() && rtex->is_depth) {
+       if (rscreen->b.debug_flags & DBG_TEX_DEPTH && rtex->is_depth) {
                printf("Texture: npix_x=%u, npix_y=%u, npix_z=%u, blk_w=%u, "
                       "blk_h=%u, blk_d=%u, array_size=%u, last_level=%u, "
                       "bpe=%u, nsamples=%u, flags=%u\n",
index 5275c6f41e96513c2139edd1ab29c752a2ebc9d0..5528e1968a3ff08a6ea95e8ae5b265809cdfd9a4 100644 (file)
@@ -825,6 +825,11 @@ struct pipe_screen *radeonsi_screen_create(struct radeon_winsys *ws)
 
        r600_common_screen_init(&rscreen->b, ws);
 
+       if (debug_get_bool_option("RADEON_PRINT_TEXDEPTH", FALSE))
+               rscreen->b.debug_flags |= DBG_TEX_DEPTH;
+       if (debug_get_bool_option("RADEON_DUMP_SHADERS", FALSE))
+               rscreen->b.debug_flags |= DBG_FS | DBG_VS | DBG_GS | DBG_PS | DBG_CS;
+
        if (r600_init_tiling(rscreen)) {
                FREE(rscreen);
                return NULL;
index 8d8cc4da8ecfe3121e9129e2fd3c8ba13a88f9fb..7ed3d2634c90b78641e2888a386030bbbef793d9 100644 (file)
@@ -1758,10 +1758,8 @@ int si_compile_llvm(struct r600_context *rctx, struct si_pipe_shader *shader,
 {
        unsigned i;
        uint32_t *ptr;
-       bool dump;
        struct radeon_llvm_binary binary;
-
-       dump = debug_get_bool_option("RADEON_DUMP_SHADERS", FALSE);
+       bool dump = r600_can_dump_shader(&rctx->screen->b, shader->selector->tokens);
 
        memset(&binary, 0, sizeof(binary));
        radeon_llvm_compile(mod, &binary,
@@ -1839,10 +1837,8 @@ int si_pipe_shader_create(
        struct tgsi_shader_info shader_info;
        struct lp_build_tgsi_context * bld_base;
        LLVMModuleRef mod;
-       bool dump;
        int r = 0;
-
-       dump = debug_get_bool_option("RADEON_DUMP_SHADERS", FALSE);
+       bool dump = r600_can_dump_shader(&rctx->screen->b, shader->selector->tokens);
 
        assert(shader->shader.noutput == 0);
        assert(shader->shader.ninterp == 0);