diff options
-rw-r--r-- | src/gallium/drivers/radeon/r600_pipe_common.c | 4 | ||||
-rw-r--r-- | src/gallium/drivers/radeonsi/radeonsi_shader.c | 4 |
2 files changed, 6 insertions, 2 deletions
diff --git a/src/gallium/drivers/radeon/r600_pipe_common.c b/src/gallium/drivers/radeon/r600_pipe_common.c index dd4856f3b4e..f83c7e42a9e 100644 --- a/src/gallium/drivers/radeon/r600_pipe_common.c +++ b/src/gallium/drivers/radeon/r600_pipe_common.c @@ -247,6 +247,10 @@ static unsigned tgsi_get_processor_type(const struct tgsi_token *tokens) bool r600_can_dump_shader(struct r600_common_screen *rscreen, const struct tgsi_token *tokens) { + /* Compute shader don't have tgsi_tokens */ + if (!tokens) + return (rscreen->debug_flags & DBG_CS) != 0; + switch (tgsi_get_processor_type(tokens)) { case TGSI_PROCESSOR_VERTEX: return (rscreen->debug_flags & DBG_VS) != 0; diff --git a/src/gallium/drivers/radeonsi/radeonsi_shader.c b/src/gallium/drivers/radeonsi/radeonsi_shader.c index 7ed3d2634c9..97ed4e38125 100644 --- a/src/gallium/drivers/radeonsi/radeonsi_shader.c +++ b/src/gallium/drivers/radeonsi/radeonsi_shader.c @@ -1759,8 +1759,8 @@ int si_compile_llvm(struct r600_context *rctx, struct si_pipe_shader *shader, unsigned i; uint32_t *ptr; struct radeon_llvm_binary binary; - bool dump = r600_can_dump_shader(&rctx->screen->b, shader->selector->tokens); - + bool dump = r600_can_dump_shader(&rctx->screen->b, + shader->selector ? shader->selector->tokens : NULL); memset(&binary, 0, sizeof(binary)); radeon_llvm_compile(mod, &binary, r600_get_llvm_processor_name(rctx->screen->b.family), dump); |