From: Marek Olšák <[email protected]>

---
 src/gallium/drivers/r600/r600_shader.c        | 6 ++++--
 src/gallium/drivers/radeon/r600_pipe_common.c | 8 ++------
 src/gallium/drivers/radeon/r600_pipe_common.h | 2 +-
 src/gallium/drivers/radeonsi/si_shader.c      | 9 +++------
 4 files changed, 10 insertions(+), 15 deletions(-)

diff --git a/src/gallium/drivers/r600/r600_shader.c 
b/src/gallium/drivers/r600/r600_shader.c
index d411b0b..6d36386 100644
--- a/src/gallium/drivers/r600/r600_shader.c
+++ b/src/gallium/drivers/r600/r600_shader.c
@@ -162,7 +162,8 @@ int r600_pipe_shader_create(struct pipe_context *ctx,
        struct r600_context *rctx = (struct r600_context *)ctx;
        struct r600_pipe_shader_selector *sel = shader->selector;
        int r;
-       bool dump = r600_can_dump_shader(&rctx->screen->b, sel->tokens);
+       bool dump = r600_can_dump_shader(&rctx->screen->b,
+                                        tgsi_get_processor_type(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);
        unsigned export_shader;
@@ -3238,7 +3239,8 @@ static int r600_shader_from_tgsi(struct r600_context 
*rctx,
        if (use_llvm) {
                struct radeon_llvm_context radeon_llvm_ctx;
                LLVMModuleRef mod;
-               bool dump = r600_can_dump_shader(&rscreen->b, tokens);
+               bool dump = r600_can_dump_shader(&rscreen->b,
+                                                
tgsi_get_processor_type(tokens));
                boolean use_kill = false;
 
                memset(&radeon_llvm_ctx, 0, sizeof(radeon_llvm_ctx));
diff --git a/src/gallium/drivers/radeon/r600_pipe_common.c 
b/src/gallium/drivers/radeon/r600_pipe_common.c
index 9a5e987..abf0aa7 100644
--- a/src/gallium/drivers/radeon/r600_pipe_common.c
+++ b/src/gallium/drivers/radeon/r600_pipe_common.c
@@ -999,13 +999,9 @@ void r600_destroy_common_screen(struct r600_common_screen 
*rscreen)
 }
 
 bool r600_can_dump_shader(struct r600_common_screen *rscreen,
-                         const struct tgsi_token *tokens)
+                         unsigned processor)
 {
-       /* Compute shader don't have tgsi_tokens */
-       if (!tokens)
-               return (rscreen->debug_flags & DBG_CS) != 0;
-
-       switch (tgsi_get_processor_type(tokens)) {
+       switch (processor) {
        case TGSI_PROCESSOR_VERTEX:
                return (rscreen->debug_flags & DBG_VS) != 0;
        case TGSI_PROCESSOR_TESS_CTRL:
diff --git a/src/gallium/drivers/radeon/r600_pipe_common.h 
b/src/gallium/drivers/radeon/r600_pipe_common.h
index c3933b1d..5593f52 100644
--- a/src/gallium/drivers/radeon/r600_pipe_common.h
+++ b/src/gallium/drivers/radeon/r600_pipe_common.h
@@ -514,7 +514,7 @@ bool r600_common_context_init(struct r600_common_context 
*rctx,
 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);
+                         unsigned processor);
 void r600_screen_clear_buffer(struct r600_common_screen *rscreen, struct 
pipe_resource *dst,
                              unsigned offset, unsigned size, unsigned value,
                              bool is_framebuffer);
diff --git a/src/gallium/drivers/radeonsi/si_shader.c 
b/src/gallium/drivers/radeonsi/si_shader.c
index a4d7e12..a9297a5 100644
--- a/src/gallium/drivers/radeonsi/si_shader.c
+++ b/src/gallium/drivers/radeonsi/si_shader.c
@@ -3846,15 +3846,13 @@ int si_shader_binary_read(struct si_screen *sscreen, 
struct si_shader *shader,
        const struct radeon_shader_binary *binary = &shader->binary;
        unsigned i;
        int r;
-       bool dump  = r600_can_dump_shader(&sscreen->b,
-               shader->selector ? shader->selector->tokens : NULL);
 
        si_shader_binary_read_config(sscreen, shader, 0);
        r = si_shader_binary_upload(sscreen, shader);
        if (r)
                return r;
 
-       if (dump) {
+       if (r600_can_dump_shader(&sscreen->b, processor)) {
                if (!(sscreen->b.debug_flags & DBG_NO_ASM)) {
                        if (binary->disasm_string) {
                                fprintf(stderr, "\nShader Disassembly:\n\n");
@@ -3882,8 +3880,7 @@ int si_compile_llvm(struct si_screen *sscreen, struct 
si_shader *shader,
                    LLVMTargetMachineRef tm, LLVMModuleRef mod, unsigned 
processor)
 {
        int r = 0;
-       bool dump_asm = r600_can_dump_shader(&sscreen->b,
-                               shader->selector ? shader->selector->tokens : 
NULL);
+       bool dump_asm = r600_can_dump_shader(&sscreen->b, processor);
        bool dump_ir = dump_asm && !(sscreen->b.debug_flags & DBG_NO_IR);
 
        r = radeon_llvm_compile(mod, &shader->binary,
@@ -4041,7 +4038,7 @@ int si_shader_create(struct si_screen *sscreen, 
LLVMTargetMachineRef tm,
        int r = 0;
        bool poly_stipple = sel->type == PIPE_SHADER_FRAGMENT &&
                            shader->key.ps.poly_stipple;
-       bool dump = r600_can_dump_shader(&sscreen->b, sel->tokens);
+       bool dump = r600_can_dump_shader(&sscreen->b, sel->info.processor);
 
        if (poly_stipple) {
                tokens = util_pstipple_create_fragment_shader(tokens, NULL,
-- 
2.1.4

_______________________________________________
mesa-dev mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to