summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/mesa/state_tracker/st_atom_blend.c8
-rw-r--r--src/mesa/state_tracker/st_context.c3
2 files changed, 7 insertions, 4 deletions
diff --git a/src/mesa/state_tracker/st_atom_blend.c b/src/mesa/state_tracker/st_atom_blend.c
index 65de67bb6c4..76d6a644a58 100644
--- a/src/mesa/state_tracker/st_atom_blend.c
+++ b/src/mesa/state_tracker/st_atom_blend.c
@@ -265,9 +265,11 @@ update_blend( struct st_context *st )
blend->dither = ctx->Color.DitherFlag;
- if (ctx->Multisample.Enabled) {
- /* unlike in gallium/d3d10 these operations are only performed
- if msaa is enabled */
+ if (ctx->Multisample.Enabled &&
+ ctx->DrawBuffer->Visual.sampleBuffers > 0) {
+ /* Unlike in gallium/d3d10 these operations are only performed
+ * if both msaa is enabled and we have a multisample buffer.
+ */
blend->alpha_to_coverage = ctx->Multisample.SampleAlphaToCoverage;
blend->alpha_to_one = ctx->Multisample.SampleAlphaToOne;
}
diff --git a/src/mesa/state_tracker/st_context.c b/src/mesa/state_tracker/st_context.c
index ddc11a43d21..81b3387626c 100644
--- a/src/mesa/state_tracker/st_context.c
+++ b/src/mesa/state_tracker/st_context.c
@@ -166,7 +166,8 @@ void st_invalidate_state(struct gl_context * ctx, GLbitfield new_state)
struct st_context *st = st_context(ctx);
if (new_state & _NEW_BUFFERS) {
- st->dirty |= ST_NEW_DSA |
+ st->dirty |= ST_NEW_BLEND |
+ ST_NEW_DSA |
ST_NEW_FB_STATE |
ST_NEW_SAMPLE_MASK |
ST_NEW_SAMPLE_SHADING |