i965/gen8: Use DrawBuffer->_IntegerBuffers in gen8_upload_blend_state()
authorAnuj Phogat <anuj.phogat@gmail.com>
Tue, 18 Oct 2016 22:41:49 +0000 (15:41 -0700)
committerAnuj Phogat <anuj.phogat@gmail.com>
Mon, 24 Oct 2016 18:07:39 +0000 (11:07 -0700)
No functional changes in this patch.

Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
src/mesa/drivers/dri/i965/gen8_blend_state.c

index 4935d82af62aee5b36f77acf393f4b7f698deb97..8aca8b8ad68afb3a929d15580e7fdef46ae1aeef 100644 (file)
@@ -59,11 +59,7 @@ gen8_upload_blend_state(struct brw_context *brw)
     * integer format, the SAMPLE_ALPHA_TO_COVERAGE and SAMPLE_ALPHA_TO_ONE
     * operations are skipped."
     */
-   struct gl_renderbuffer *rb0 = ctx->DrawBuffer->_ColorDrawBuffers[0];
-   GLenum rb_zero_type =
-      rb0 ? _mesa_get_format_datatype(rb0->Format) : GL_UNSIGNED_NORMALIZED;
-
-   if (rb_zero_type != GL_INT && rb_zero_type != GL_UNSIGNED_INT) {
+   if (!(ctx->DrawBuffer->_IntegerBuffers & 0x1)) {
       /* _NEW_MULTISAMPLE */
       if (_mesa_is_multisample_enabled(ctx)) {
          if (ctx->Multisample.SampleAlphaToCoverage) {
@@ -90,8 +86,6 @@ gen8_upload_blend_state(struct brw_context *brw)
    for (int i = 0; i < nr_draw_buffers; i++) {
       /* _NEW_BUFFERS */
       struct gl_renderbuffer *rb = ctx->DrawBuffer->_ColorDrawBuffers[i];
-      GLenum rb_type =
-         rb ? _mesa_get_format_datatype(rb->Format) : GL_UNSIGNED_NORMALIZED;
 
       /* Used for implementing the following bit of GL_EXT_texture_integer:
        * "Per-fragment operations that require floating-point color
@@ -99,7 +93,7 @@ gen8_upload_blend_state(struct brw_context *brw)
        *  blending, and dithering, have no effect when the corresponding
        *  colors are written to an integer color buffer."
       */
-      bool integer = rb_type == GL_INT || rb_type == GL_UNSIGNED_INT;
+      bool integer = ctx->DrawBuffer->_IntegerBuffers & (0x1 << i);
 
       /* _NEW_COLOR */
       if (ctx->Color.ColorLogicOpEnabled) {