summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2016-09-16 22:39:15 +0200
committerMarek Olšák <[email protected]>2016-10-19 19:26:30 +0200
commit54f8efeb022de8686db18c49daf14e6771f0fda1 (patch)
treee69e34bab5b0fcc1b69e39eab5efbade685bc9c3
parentc64da9d4997692bd25253dfc19e34d6fa335a58b (diff)
st/mesa: disable alpha-test, alpha-to-coverage, alpha-to-one for integer FBs
v2: rebased Reviewed-by: Brian Paul <[email protected]>
-rw-r--r--src/mesa/state_tracker/st_atom_blend.c3
-rw-r--r--src/mesa/state_tracker/st_atom_depth.c3
2 files changed, 4 insertions, 2 deletions
diff --git a/src/mesa/state_tracker/st_atom_blend.c b/src/mesa/state_tracker/st_atom_blend.c
index 76d6a644a58..b8d65bde29e 100644
--- a/src/mesa/state_tracker/st_atom_blend.c
+++ b/src/mesa/state_tracker/st_atom_blend.c
@@ -266,7 +266,8 @@ update_blend( struct st_context *st )
blend->dither = ctx->Color.DitherFlag;
if (ctx->Multisample.Enabled &&
- ctx->DrawBuffer->Visual.sampleBuffers > 0) {
+ ctx->DrawBuffer->Visual.sampleBuffers > 0 &&
+ !(ctx->DrawBuffer->_IntegerBuffers & 0x1)) {
/* Unlike in gallium/d3d10 these operations are only performed
* if both msaa is enabled and we have a multisample buffer.
*/
diff --git a/src/mesa/state_tracker/st_atom_depth.c b/src/mesa/state_tracker/st_atom_depth.c
index 267b42c539f..7092c3f83ec 100644
--- a/src/mesa/state_tracker/st_atom_depth.c
+++ b/src/mesa/state_tracker/st_atom_depth.c
@@ -149,7 +149,8 @@ update_depth_stencil_alpha(struct st_context *st)
}
}
- if (ctx->Color.AlphaEnabled) {
+ if (ctx->Color.AlphaEnabled &&
+ !(ctx->DrawBuffer->_IntegerBuffers & 0x1)) {
dsa->alpha.enabled = 1;
dsa->alpha.func = st_compare_func_to_pipe(ctx->Color.AlphaFunc);
dsa->alpha.ref_value = ctx->Color.AlphaRefUnclamped;