radeonsi: generate a color_two_side variant only if the shader reads colors
authorMarek Olšák <marek.olsak@amd.com>
Fri, 1 Jan 2016 18:44:16 +0000 (19:44 +0100)
committerMarek Olšák <marek.olsak@amd.com>
Tue, 9 Feb 2016 20:19:51 +0000 (21:19 +0100)
Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
src/gallium/drivers/radeonsi/si_state_shaders.c

index bbef429edc57f41872e477a0a9dafba1d58b6c3c..8613af22d976d97edeb2c74bb293b13302b6e50f 100644 (file)
@@ -681,7 +681,7 @@ static inline void si_shader_selector_key(struct pipe_context *ctx,
                                       sctx->current_rast_prim >= PIPE_PRIM_TRIANGLES_ADJACENCY;
                        bool is_line = !is_poly && sctx->current_rast_prim != PIPE_PRIM_POINTS;
 
-                       key->ps.color_two_side = rs->two_side;
+                       key->ps.color_two_side = rs->two_side && sel->info.colors_read;
 
                        if (sctx->queued.named.blend) {
                                key->ps.alpha_to_one = sctx->queued.named.blend->alpha_to_one &&