radeonsi: fix alpha-to-coverage if color writes are disabled
authorJózef Kucia <joseph.kucia@gmail.com>
Sun, 31 Dec 2017 09:19:15 +0000 (10:19 +0100)
committerMarek Olšák <marek.olsak@amd.com>
Thu, 4 Jan 2018 00:58:33 +0000 (01:58 +0100)
If alpha-to-coverage is enabled, we have to compute alpha
even if color writes are disabled.

Signed-off-by: Józef Kucia <joseph.kucia@gmail.com>
Signed-off-by: Marek Olšák <marek.olsak@amd.com>
src/gallium/drivers/radeonsi/si_state_shaders.c

index 9143f61fcdf2a025f941d572fef43ebf71c6026e..6fe6855ecc82a0c3fcf57738bf6499b9892af6ed 100644 (file)
@@ -1168,10 +1168,13 @@ static void si_shader_selector_key_hw_vs(struct si_context *sctx,
        /* Find out if PS is disabled. */
        bool ps_disabled = true;
        if (ps) {
+               const struct si_state_blend *blend = sctx->queued.named.blend;
+               bool alpha_to_coverage = blend && blend->alpha_to_coverage;
                bool ps_modifies_zs = ps->info.uses_kill ||
                                      ps->info.writes_z ||
                                      ps->info.writes_stencil ||
                                      ps->info.writes_samplemask ||
+                                     alpha_to_coverage ||
                                      si_get_alpha_test_func(sctx) != PIPE_FUNC_ALWAYS;
 
                unsigned ps_colormask = sctx->framebuffer.colorbuf_enabled_4bit &