radeonsi: allow unbinding vertex shaders
authorMarek Olšák <marek.olsak@amd.com>
Thu, 22 Oct 2015 19:32:23 +0000 (21:32 +0200)
committerMarek Olšák <marek.olsak@amd.com>
Fri, 23 Oct 2015 22:01:20 +0000 (00:01 +0200)
Draw calls without a vertex shader are skipped.

Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
src/gallium/drivers/radeonsi/si_state_shaders.c

index 25cba8447848c0456d13ea25b448f7ffea24d761..4a3a04caa52d971fb27b1e76713a99d62174217a 100644 (file)
@@ -799,11 +799,11 @@ static void si_bind_vs_shader(struct pipe_context *ctx, void *state)
        struct si_context *sctx = (struct si_context *)ctx;
        struct si_shader_selector *sel = state;
 
-       if (sctx->vs_shader.cso == sel || !sel)
+       if (sctx->vs_shader.cso == sel)
                return;
 
        sctx->vs_shader.cso = sel;
-       sctx->vs_shader.current = sel->first_variant;
+       sctx->vs_shader.current = sel ? sel->first_variant : NULL;
        si_mark_atom_dirty(sctx, &sctx->clip_regs);
        si_update_viewports_and_scissors(sctx);
 }