radeonsi/compute: Fix segfault caused by recent refactoring

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
This commit is contained in:
Tom Stellard 2013-10-03 17:39:59 -04:00
parent b181be6266
commit b280516e11
2 changed files with 6 additions and 2 deletions

View file

@ -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;

View file

@ -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);