st/mesa: Disable blending for integer formats.
authorKenneth Graunke <kenneth@whitecape.org>
Sat, 25 Aug 2018 06:45:27 +0000 (23:45 -0700)
committerKenneth Graunke <kenneth@whitecape.org>
Wed, 29 Aug 2018 17:51:11 +0000 (10:51 -0700)
Blending isn't valid for integer formats.  Rather than having drivers
worry about this, just disable blending in this case.  This hopefully
will increase hits in the CSO cache as well, by eliminating most of the
meaningless fields in this case.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
src/mesa/state_tracker/st_atom_blend.c

index 57400e2e791b4c5896489b3436f4daa6e48bc9e8..804de2f154f74427ee27ac243bc9dd34924009d3 100644 (file)
@@ -171,6 +171,7 @@ st_update_blend( struct st_context *st )
       /* blending enabled */
       for (i = 0, j = 0; i < num_state; i++) {
          if (!(ctx->Color.BlendEnabled & (1 << i)) ||
+             (ctx->DrawBuffer->_IntegerBuffers & (1 << i)) ||
              !blend->rt[i].colormask)
             continue;