Module: Mesa Branch: master Commit: b280516e114776c8d34c2d6fe0174762f3c85c0e URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=b280516e114776c8d34c2d6fe0174762f3c85c0e
Author: Tom Stellard <thomas.stell...@amd.com> Date: Thu Oct 3 17:39:59 2013 -0400 radeonsi/compute: Fix segfault caused by recent refactoring Reviewed-by: Marek Olšák <marek.ol...@amd.com> --- src/gallium/drivers/radeon/r600_pipe_common.c | 4 ++++ 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 dd4856f..f83c7e4 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 7ed3d26..97ed4e3 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); _______________________________________________ mesa-commit mailing list mesa-commit@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-commit