diff --git a/src/mesa/main/buffers.c b/src/mesa/main/buffers.c index 533d92f4c22..2e01157f2ca 100644 --- a/src/mesa/main/buffers.c +++ b/src/mesa/main/buffers.c @@ -764,6 +764,8 @@ _mesa_update_drawbuffer_masks(struct gl_context *ctx, &ctx->DrawBuffer->_BlendForceAlphaToOneDraw); update_drawbuffer_mask(ctx, fb, &ctx->DrawBuffer->_IsRGB, &ctx->DrawBuffer->_IsRGBDraw); + update_drawbuffer_mask(ctx, fb, &ctx->DrawBuffer->_FP32Buffers, + &ctx->DrawBuffer->_FP32DrawBuffers); } /** diff --git a/src/mesa/main/draw_validate.c b/src/mesa/main/draw_validate.c index 0b7e5bdd53c..9ac709858b0 100644 --- a/src/mesa/main/draw_validate.c +++ b/src/mesa/main/draw_validate.c @@ -234,7 +234,7 @@ _mesa_update_valid_to_render_state(struct gl_context *ctx) * However GL_EXT_float_blend removes this text. */ if (!ctx->Extensions.EXT_float_blend && - (ctx->DrawBuffer->_FP32Buffers & ctx->Color.BlendEnabled)) + (ctx->DrawBuffer->_FP32DrawBuffers & ctx->Color.BlendEnabled)) return; break; diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h index e528246a224..0a9725b02ab 100644 --- a/src/mesa/main/mtypes.h +++ b/src/mesa/main/mtypes.h @@ -2697,7 +2697,8 @@ struct gl_framebuffer GLbitfield _BlendForceAlphaToOneDraw; /**< Which color buffers need blend factor adjustment */ GLbitfield _IsRGB; /**< Which color attachments have an RGB base format? */ GLbitfield _IsRGBDraw; /**< Which color buffers have an RGB base format? */ - GLbitfield _FP32Buffers; /**< Which color buffers are FP32 */ + GLbitfield _FP32Buffers; /**< Which color attachments are FP32 */ + GLbitfield _FP32DrawBuffers; /**< Which color buffers are FP32 */ /* ARB_color_buffer_float */ GLboolean _AllColorBuffersFixedPoint; /* no integer, no float */