diff options
| author | Brian Paul <brianp@vmware.com> | 2009-05-01 18:31:04 -0600 | 
|---|---|---|
| committer | Brian Paul <brianp@vmware.com> | 2009-05-01 18:31:04 -0600 | 
| commit | 62043b27575c378c027251316421e4699f461108 (patch) | |
| tree | d7ea4d16eec360c450067c6886efa6b0e76208ac /src | |
| parent | a7ef5b76d6889c4a6614eddea0c021c83f6a8703 (diff) | |
mesa: in glReadBufer() set _NEW_BUFFERS, not _NEW_PIXEL
Since GL_READ_BUFFER is historically part of the gl_pixel_attrib group
it made sense to signal changes with _NEW_PIXEL.  But now with FBOs it's
also part of the framebuffer state.
Now _NEW_PIXEL strictly indicates pixels transfer state changes.
This change avoids framebuffer state validation when any random bit of
pixel-transfer state is set.
DRI drivers updated too:  don't check _NEW_COLOR when updating framebuffer
state.  I think that was just copied from the Xlib driver because we care
about dither enable/disable state there.
Diffstat (limited to 'src')
| -rw-r--r-- | src/mesa/drivers/dri/intel/intel_buffers.c | 2 | ||||
| -rw-r--r-- | src/mesa/drivers/dri/r200/r200_state.c | 2 | ||||
| -rw-r--r-- | src/mesa/drivers/dri/r300/r300_state.c | 2 | ||||
| -rw-r--r-- | src/mesa/drivers/dri/radeon/radeon_state.c | 2 | ||||
| -rw-r--r-- | src/mesa/drivers/x11/xm_dd.c | 3 | ||||
| -rw-r--r-- | src/mesa/main/buffers.c | 2 | 
6 files changed, 7 insertions, 6 deletions
| diff --git a/src/mesa/drivers/dri/intel/intel_buffers.c b/src/mesa/drivers/dri/intel/intel_buffers.c index b86cafea24..4f4ea45b74 100644 --- a/src/mesa/drivers/dri/intel/intel_buffers.c +++ b/src/mesa/drivers/dri/intel/intel_buffers.c @@ -157,7 +157,7 @@ intel_draw_buffer(GLcontext * ctx, struct gl_framebuffer *fb)     /* Do this here, not core Mesa, since this function is called from      * many places within the driver.      */ -   if (ctx->NewState & (_NEW_BUFFERS | _NEW_COLOR | _NEW_PIXEL)) { +   if (ctx->NewState & _NEW_BUFFERS) {        /* this updates the DrawBuffer->_NumColorDrawBuffers fields, etc */        _mesa_update_framebuffer(ctx);        /* this updates the DrawBuffer's Width/Height if it's a FBO */ diff --git a/src/mesa/drivers/dri/r200/r200_state.c b/src/mesa/drivers/dri/r200/r200_state.c index 28ba5f49bc..81ee1ed022 100644 --- a/src/mesa/drivers/dri/r200/r200_state.c +++ b/src/mesa/drivers/dri/r200/r200_state.c @@ -2480,7 +2480,7 @@ void r200ValidateState( GLcontext *ctx )     r200ContextPtr rmesa = R200_CONTEXT(ctx);     GLuint new_state = rmesa->NewGLState; -   if (new_state & (_NEW_BUFFERS | _NEW_COLOR | _NEW_PIXEL)) { +   if (new_state & _NEW_BUFFERS) {       r200UpdateDrawBuffer(ctx);     } diff --git a/src/mesa/drivers/dri/r300/r300_state.c b/src/mesa/drivers/dri/r300/r300_state.c index b96ba4ed94..07299f3b36 100644 --- a/src/mesa/drivers/dri/r300/r300_state.c +++ b/src/mesa/drivers/dri/r300/r300_state.c @@ -2589,7 +2589,7 @@ static void r300InvalidateState(GLcontext * ctx, GLuint new_state)  	_tnl_InvalidateState(ctx, new_state);  	_ae_invalidate_state(ctx, new_state); -	if (new_state & (_NEW_BUFFERS | _NEW_COLOR | _NEW_PIXEL)) { +	if (new_state & _NEW_BUFFERS) {  		r300UpdateDrawBuffer(ctx);  	} diff --git a/src/mesa/drivers/dri/radeon/radeon_state.c b/src/mesa/drivers/dri/radeon/radeon_state.c index b6561001e7..4432f85691 100644 --- a/src/mesa/drivers/dri/radeon/radeon_state.c +++ b/src/mesa/drivers/dri/radeon/radeon_state.c @@ -2255,7 +2255,7 @@ void radeonValidateState( GLcontext *ctx )     radeonContextPtr rmesa = RADEON_CONTEXT(ctx);     GLuint new_state = rmesa->NewGLState; -   if (new_state & (_NEW_BUFFERS | _NEW_COLOR | _NEW_PIXEL)) { +   if (new_state & _NEW_BUFFERS) {       radeonUpdateDrawBuffer(ctx);     } diff --git a/src/mesa/drivers/x11/xm_dd.c b/src/mesa/drivers/x11/xm_dd.c index 305df548fa..9a01465bdf 100644 --- a/src/mesa/drivers/x11/xm_dd.c +++ b/src/mesa/drivers/x11/xm_dd.c @@ -912,8 +912,9 @@ xmesa_update_state( GLcontext *ctx, GLbitfield new_state )     /*      * GL_DITHER, GL_READ/DRAW_BUFFER, buffer binding state, etc. effect      * renderbuffer span/clear funcs. +    * Check _NEW_COLOR to detect dither enable/disable.      */ -   if (new_state & (_NEW_COLOR | _NEW_PIXEL | _NEW_BUFFERS)) { +   if (new_state & (_NEW_COLOR | _NEW_BUFFERS)) {        XMesaBuffer xmbuf = XMESA_BUFFER(ctx->DrawBuffer);        struct xmesa_renderbuffer *front_xrb, *back_xrb; diff --git a/src/mesa/main/buffers.c b/src/mesa/main/buffers.c index c5f13345f0..d8b5f3b1f4 100644 --- a/src/mesa/main/buffers.c +++ b/src/mesa/main/buffers.c @@ -443,7 +443,7 @@ _mesa_readbuffer(GLcontext *ctx, GLenum buffer, GLint bufferIndex)     fb->ColorReadBuffer = buffer;     fb->_ColorReadBufferIndex = bufferIndex; -   ctx->NewState |= _NEW_PIXEL; +   ctx->NewState |= _NEW_BUFFERS;  } | 
