OSDN Git Service

radeonsi: handle shader precompile failures
authorMarek Olšák <marek.olsak@amd.com>
Thu, 10 Sep 2015 16:30:41 +0000 (18:30 +0200)
committerEmil Velikov <emil.l.velikov@gmail.com>
Wed, 7 Oct 2015 13:38:46 +0000 (14:38 +0100)
Cc: 11.0 <mesa-stable@lists.freedesktop.org>
Acked-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
(cherry picked from commit 5dbadb02572f875f5d2f22327eab6b93de61337c)

src/gallium/drivers/radeonsi/si_state_shaders.c

index d6b4fd3..c931939 100644 (file)
@@ -733,7 +733,12 @@ static void *si_create_shader_state(struct pipe_context *ctx,
        }
 
        if (sscreen->b.debug_flags & DBG_PRECOMPILE)
-               si_shader_select(ctx, sel);
+               if (si_shader_select(ctx, sel)) {
+                       fprintf(stderr, "radeonsi: can't create a shader\n");
+                       tgsi_free_tokens(sel->tokens);
+                       FREE(sel);
+                       return NULL;
+               }
 
        return sel;
 }