From 3fecaf0d0cb762b23930aaecc67c8934f1b59881 Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Mon, 18 Apr 2016 16:57:53 -0700 Subject: [PATCH] vc4: Only do MSAA FB operations if the FB is MSAA. I noticed this as a problem with ET:QW traces emitting coverage code when the framebuffer was supposed to be single sampled. --- src/gallium/drivers/vc4/vc4_program.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/gallium/drivers/vc4/vc4_program.c b/src/gallium/drivers/vc4/vc4_program.c index 02cae2d4648..4235d265d87 100644 --- a/src/gallium/drivers/vc4/vc4_program.c +++ b/src/gallium/drivers/vc4/vc4_program.c @@ -2194,11 +2194,14 @@ vc4_update_compiled_fs(struct vc4_context *vc4, uint8_t prim_mode) } else { key->logicop_func = PIPE_LOGICOP_COPY; } - key->msaa = vc4->rasterizer->base.multisample; - key->sample_coverage = (vc4->rasterizer->base.multisample && - vc4->sample_mask != (1 << VC4_MAX_SAMPLES) - 1); - key->sample_alpha_to_coverage = vc4->blend->alpha_to_coverage; - key->sample_alpha_to_one = vc4->blend->alpha_to_one; + if (vc4->msaa) { + key->msaa = vc4->rasterizer->base.multisample; + key->sample_coverage = (vc4->rasterizer->base.multisample && + vc4->sample_mask != (1 << VC4_MAX_SAMPLES) - 1); + key->sample_alpha_to_coverage = vc4->blend->alpha_to_coverage; + key->sample_alpha_to_one = vc4->blend->alpha_to_one; + } + if (vc4->framebuffer.cbufs[0]) key->color_format = vc4->framebuffer.cbufs[0]->format; -- 2.30.2