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:  8fb966688b
  st/mesa: Disable blending for integer formats.
Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Marek Olšák <marek.olsak@amd.com>
This commit is contained in:
Gert Wollny 2018-09-13 10:06:45 +02:00
parent 97ae5a858d
commit 47a6f98e15

View file

@ -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;
}