summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJózef Kucia <joseph.kucia@gmail.com>2017-12-31 10:19:15 +0100
committerMarek Olšák <marek.olsak@amd.com>2018-01-04 01:58:33 +0100
commitf222cf3c6d6fc5d9dee3742d20aa77cfff9c39f8 (patch)
tree9c9e6b91b2131ba4aa7b1ae8b1a130fb5f8a092c
parent79724c89f848ce606126bf2b8c669d9738c2b8ce (diff)
radeonsi: fix alpha-to-coverage if color writes are disabled
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>
-rw-r--r--src/gallium/drivers/radeonsi/si_state_shaders.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/gallium/drivers/radeonsi/si_state_shaders.c b/src/gallium/drivers/radeonsi/si_state_shaders.c
index 9143f61fcdf..6fe6855ecc8 100644
--- a/src/gallium/drivers/radeonsi/si_state_shaders.c
+++ b/src/gallium/drivers/radeonsi/si_state_shaders.c
@@ -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 &