summaryrefslogtreecommitdiffstats
path: root/src/mesa
diff options
context:
space:
mode:
authorGert Wollny <[email protected]>2018-09-13 10:06:45 +0200
committerGert Wollny <[email protected]>2018-09-25 15:54:38 +0200
commit47a6f98e15b367a64cbf994f24c711aa42f7fcf6 (patch)
tree21a149b7db9fb0558076ef393fc49ce99a00cea5 /src/mesa
parent97ae5a858d2a2da9144ea9793b67b360a3a7c5fa (diff)
mesa/st: In the precense of integer buffers enable per buffer blending
Since blending will be disabled later for integer formats we have to consider that in the case of a mixed set of integer/non-integer format buffers blending must be handled on a per buffer basis. Fixes on r600: dEQP-GLES31.functional.draw_buffers_indexed.random. max_required_draw_buffers.13 Fixes: 8fb966688bc1053a48e8ee7f7394ce030bcfd345 st/mesa: Disable blending for integer formats. Signed-off-by: Gert Wollny <[email protected]> Reviewed-by: Marek Olšák <[email protected]>
Diffstat (limited to 'src/mesa')
-rw-r--r--src/mesa/state_tracker/st_atom_blend.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/mesa/state_tracker/st_atom_blend.c b/src/mesa/state_tracker/st_atom_blend.c
index 804de2f154f..9f7f779289e 100644
--- a/src/mesa/state_tracker/st_atom_blend.c
+++ b/src/mesa/state_tracker/st_atom_blend.c
@@ -139,6 +139,12 @@ blend_per_rt(const struct gl_context *ctx, unsigned num_cb)
/* this can only happen if GL_ARB_draw_buffers_blend is enabled */
return GL_TRUE;
}
+ if (ctx->DrawBuffer->_IntegerBuffers &&
+ (ctx->DrawBuffer->_IntegerBuffers != cb_mask)) {
+ /* If there is a mix of integer/non-integer buffers then blending
+ * must be handled on a per buffer basis. */
+ return GL_TRUE;
+ }
return GL_FALSE;
}