diff options
author | Brian <[email protected]> | 2008-01-06 10:43:20 -0700 |
---|---|---|
committer | Brian <[email protected]> | 2008-01-06 10:43:20 -0700 |
commit | ff73c783cc47361ff0dd819c82d067b4b85870dd (patch) | |
tree | 07706ff913e0db3164ab62eba430938f72efae85 /src/mesa/drivers/dri/i965 | |
parent | 9f6022d0567dc1288888212d7128acc48795b306 (diff) |
Simplify ctx->_NumColorDrawBuffers, _ColorDrawBuffers and fix bug 13835.
These fields are no longer indexed by shader output. Now, we just have
a simple array of renderbuffer pointers.
If the shader writes to gl_FragData[i], send those colors to the N
_ColorDrawBuffers. Otherwise, replicate the single gl_FragColor (or
the fixed-function color) to the N _ColorDrawBuffers.
A few more changes and simplifications can follow from this...
Diffstat (limited to 'src/mesa/drivers/dri/i965')
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_fallback.c | 9 | ||||
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_sf_state.c | 2 |
2 files changed, 4 insertions, 7 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_fallback.c b/src/mesa/drivers/dri/i965/brw_fallback.c index 3c4c60a3eab..58aeeb4228c 100644 --- a/src/mesa/drivers/dri/i965/brw_fallback.c +++ b/src/mesa/drivers/dri/i965/brw_fallback.c @@ -62,12 +62,9 @@ static GLboolean do_check_fallback(struct brw_context *brw) /* We can only handle a single draw buffer at the moment, and only as the * first color buffer. */ - for (i = 0; i < MAX_DRAW_BUFFERS; i++) { - if (fb->_NumColorDrawBuffers[i] > (i == 0 ? 1 : 0)) { - DBG("FALLBACK: draw buffer %d: 0x%08x\n", - i, ctx->DrawBuffer->_ColorDrawBufferMask[i]); - return GL_TRUE; - } + if (fb->_NumColorDrawBuffers > 1) { + DBG("FALLBACK: multiple color draw buffers\n"); + return GL_TRUE; } /* _NEW_RENDERMODE diff --git a/src/mesa/drivers/dri/i965/brw_sf_state.c b/src/mesa/drivers/dri/i965/brw_sf_state.c index 05c64909495..f083e3148b1 100644 --- a/src/mesa/drivers/dri/i965/brw_sf_state.c +++ b/src/mesa/drivers/dri/i965/brw_sf_state.c @@ -43,7 +43,7 @@ static void upload_sf_vp(struct brw_context *brw) const GLfloat depth_scale = 1.0F / ctx->DrawBuffer->_DepthMaxF; struct brw_sf_viewport sfv; struct intel_renderbuffer *irb = - intel_renderbuffer(ctx->DrawBuffer->_ColorDrawBuffers[0][0]); + intel_renderbuffer(ctx->DrawBuffer->_ColorDrawBuffers[0]); GLfloat y_scale, y_bias; memset(&sfv, 0, sizeof(sfv)); |