diff options
author | Keith Whitwell <keith@tungstengraphics.com> | 2005-01-19 12:09:33 +0000 |
---|---|---|
committer | Keith Whitwell <keith@tungstengraphics.com> | 2005-01-19 12:09:33 +0000 |
commit | 2aa34ea98430047e28b4ac47d09421d53c4b77a2 (patch) | |
tree | a64dc912375a697028646320132c1f5a4f3073df /src/mesa/drivers/dri/unichrome/via_state.c | |
parent | bdb5725bab0fdfffb20bbfb4f2c3d7aa3482c1bc (diff) |
Bring the texcombine fixes to the trunk.
Diffstat (limited to 'src/mesa/drivers/dri/unichrome/via_state.c')
-rw-r--r-- | src/mesa/drivers/dri/unichrome/via_state.c | 25 |
1 files changed, 20 insertions, 5 deletions
diff --git a/src/mesa/drivers/dri/unichrome/via_state.c b/src/mesa/drivers/dri/unichrome/via_state.c index 2d7a2a3b10..97f9a03043 100644 --- a/src/mesa/drivers/dri/unichrome/via_state.c +++ b/src/mesa/drivers/dri/unichrome/via_state.c @@ -325,6 +325,16 @@ void viaEmitState(viaContextPtr vmesa) OUT_RING( (HC_SubA_HTXnTBLRCa << 24) | vmesa->regHTXnTBLRCa_0 ); OUT_RING( (HC_SubA_HTXnTBLRCc << 24) | vmesa->regHTXnTBLRCc_0 ); OUT_RING( (HC_SubA_HTXnTBLRCbias << 24) | vmesa->regHTXnTBLRCbias_0 ); + + if (0) { + fprintf(stderr, "emitted Ca_0 %08x\n", vmesa->regHTXnTBLRCa_0); + fprintf(stderr, "emitted Cb_0 %08x\n", vmesa->regHTXnTBLRCb_0); + fprintf(stderr, "emitted Cc_0 %08x\n", vmesa->regHTXnTBLRCc_0); + fprintf(stderr, "emitted Cbias_0 %08x\n", vmesa->regHTXnTBLRCbias_0); + fprintf(stderr, "emitted Aa_0 %08x\n", vmesa->regHTXnTBLRAa_0); + fprintf(stderr, "emitted Fog_0 %08x\n", vmesa->regHTXnTBLRFog_0); + } + ADVANCE_RING(); if (t->regTexFM == HC_HTXnFM_Index8) { @@ -841,7 +851,7 @@ get_wrap_mode( GLenum sWrap, GLenum tWrap ) } -static void viaChooseTextureState(GLcontext *ctx) +static GLboolean viaChooseTextureState(GLcontext *ctx) { viaContextPtr vmesa = VIA_CONTEXT(ctx); struct gl_texture_unit *texUnit0 = &ctx->Texture.Unit[0]; @@ -928,7 +938,8 @@ static void viaChooseTextureState(GLcontext *ctx) if (VIA_DEBUG) fprintf(stderr, "texUnit0->EnvMode %x\n",texUnit0->EnvMode); - viaTexCombineState( vmesa, texUnit0->_CurrentCombine, 0 ); + if (!viaTexCombineState( vmesa, texUnit0->_CurrentCombine, 0 )) + return GL_FALSE; } if (texUnit1->_ReallyEnabled) { @@ -986,7 +997,8 @@ static void viaChooseTextureState(GLcontext *ctx) vmesa->regHTXnMPMD_1 |= get_wrap_mode( texObj->WrapS, texObj->WrapT ); - viaTexCombineState( vmesa, texUnit1->_CurrentCombine, 1 ); + if (!viaTexCombineState( vmesa, texUnit1->_CurrentCombine, 1 )) + return GL_FALSE; } if (VIA_DEBUG) { @@ -1007,6 +1019,7 @@ static void viaChooseTextureState(GLcontext *ctx) } if (VIA_DEBUG) fprintf(stderr, "%s - out\n", __FUNCTION__); + return GL_TRUE; } static void viaChooseColorState(GLcontext *ctx) @@ -1533,8 +1546,10 @@ void viaValidateState( GLcontext *ctx ) viaContextPtr vmesa = VIA_CONTEXT(ctx); if (vmesa->newState & _NEW_TEXTURE) { - viaChooseTextureState(ctx); - viaUpdateTextureState(ctx); /* May modify vmesa->Fallback */ + GLboolean ok = (viaChooseTextureState(ctx) && + viaUpdateTextureState(ctx)); + + FALLBACK(vmesa, VIA_FALLBACK_TEXTURE, !ok); } if (vmesa->newState & _NEW_COLOR) |