radeonsi: fix shader binding
authorChristian König <deathsimple@vodafone.de>
Wed, 25 Jul 2012 20:39:15 +0000 (22:39 +0200)
committerChristian König <deathsimple@vodafone.de>
Mon, 30 Jul 2012 13:01:51 +0000 (15:01 +0200)
Signed-off-by: Christian König <deathsimple@vodafone.de>
Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
src/gallium/drivers/radeonsi/si_state.c

index c417c9cac65907e70b2c8def8f55253c3ee1de8e..a80e169b0074c80383212171177f0656bbdf94eb 100644 (file)
@@ -1649,7 +1649,10 @@ static void si_bind_vs_shader(struct pipe_context *ctx, void *state)
 
        rctx->shader_dirty = true;
        rctx->vs_shader = shader;
-       si_pm4_bind_state(rctx, vs, shader->pm4);
+
+       if (shader) {
+               si_pm4_bind_state(rctx, vs, shader->pm4);
+       }
 }
 
 static void si_bind_ps_shader(struct pipe_context *ctx, void *state)
@@ -1662,7 +1665,10 @@ static void si_bind_ps_shader(struct pipe_context *ctx, void *state)
 
        rctx->shader_dirty = true;
        rctx->ps_shader = shader;
-       si_pm4_bind_state(rctx, ps, shader->pm4);
+
+       if (shader) {
+               si_pm4_bind_state(rctx, ps, shader->pm4);
+       }
 }
 
 static void si_delete_vs_shader(struct pipe_context *ctx, void *state)