From: Keith W. <ke...@tu...> - 2003-12-27 20:17:09
|
Felix K=FChling wrote: > Here is the patch. :) >=20 > On Fri, 26 Dec 2003 19:44:50 +0100 > Felix K=FChling <felix@trabant> wrote: >=20 >=20 >>Hi, >> >>I fixed two TCL bugs on radeon that appeared after the move to >>Mesa-newtree. A patch is attached. >> >>The light_model_cntl thing looks almost like a copy-paste from R200. >>This fixes missing colors and textures in various applications (pulsar, >>queens, endgame, tuxkart, torcs, ...). >> >>_mesa_allow_light_in_model seems to do the exact opposite of what it >>says. With this patch the lighting is correct again in flightgear. I'm >>not convinced though, that this is correct as I don't really understand >>all the details here. Keith? >> >>Regards, >> Felix >=20 >=20 > ------------ __\|/__ ___ ___ ------------------------- > Felix ___\_e -_/___/ __\___/ __\_____ You can do anything, > K=FChling (_____\=C4/____/ /_____/ /________) just not everything > fx...@gm... \___/ \___/ U at the same time. >=20 >=20 > -----------------------------------------------------------------------= - >=20 > Index: radeon_state.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > RCS file: /cvsroot/mesa3d/Mesa-newtree/src/mesa/drivers/dri/radeon/rade= on_state.c,v > retrieving revision 1.5 > diff -u -r1.5 radeon_state.c > --- radeon_state.c 9 Dec 2003 14:17:40 -0000 1.5 > +++ radeon_state.c 26 Dec 2003 18:39:42 -0000 > @@ -868,28 +868,28 @@ > =20 > /* Default to PREMULT: > */ > - light_model_ctl1 &=3D ~((0xf << RADEON_EMISSIVE_SOURCE_SHIFT) | > - (0xf << RADEON_AMBIENT_SOURCE_SHIFT) | > - (0xf << RADEON_DIFFUSE_SOURCE_SHIFT) | > - (0xf << RADEON_SPECULAR_SOURCE_SHIFT));=20 > + light_model_ctl1 &=3D ~((3 << RADEON_EMISSIVE_SOURCE_SHIFT) | > + (3 << RADEON_AMBIENT_SOURCE_SHIFT) | > + (3 << RADEON_DIFFUSE_SOURCE_SHIFT) | > + (3 << RADEON_SPECULAR_SOURCE_SHIFT));=20 > =20 > if (mask & MAT_BIT_FRONT_EMISSION) { > - light_model_ctl1 |=3D (3 << > + light_model_ctl1 |=3D (RADEON_LM_SOURCE_VERTEX_DIFFUSE << > RADEON_EMISSIVE_SOURCE_SHIFT); > } > =20 > if (mask & MAT_BIT_FRONT_AMBIENT) { > - light_model_ctl1 |=3D (3 << > + light_model_ctl1 |=3D (RADEON_LM_SOURCE_VERTEX_DIFFUSE << > RADEON_AMBIENT_SOURCE_SHIFT); > } > =20 > if (mask & MAT_BIT_FRONT_DIFFUSE) { > - light_model_ctl1 |=3D (3 << > + light_model_ctl1 |=3D (RADEON_LM_SOURCE_VERTEX_DIFFUSE << > RADEON_DIFFUSE_SOURCE_SHIFT); > } > =20 > if (mask & MAT_BIT_FRONT_SPECULAR) { > - light_model_ctl1 |=3D (3 << > + light_model_ctl1 |=3D (RADEON_LM_SOURCE_VERTEX_DIFFUSE << > RADEON_SPECULAR_SOURCE_SHIFT); > } > =20 These look good -- go ahead and commit them if you want. > @@ -1755,7 +1755,7 @@ > radeonUpdateSpecular( ctx ); /* for PK_SPEC */ > if (rmesa->TclFallback)=20 > radeonChooseVertexState( ctx ); > - _mesa_allow_light_in_model( ctx, !state ); > + _mesa_allow_light_in_model( ctx, state ); > break; I've fixed this in _mesa_allow_light_in_model(). Keith |