Felix Kühling wrote:
Here is the patch. :)

On Fri, 26 Dec 2003 19:44:50 +0100
Felix Kühling <[EMAIL PROTECTED]> wrote:


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


------------    __\|/__    ___     ___       -------------------------
 Felix       ___\_e -_/___/ __\___/ __\_____   You can do anything,
   Kühling  (_____\Ä/____/ /_____/ /________)  just not everything
 [EMAIL PROTECTED]       \___/   \___/   U        at the same time.


------------------------------------------------------------------------


Index: radeon_state.c
===================================================================
RCS file: /cvsroot/mesa3d/Mesa-newtree/src/mesa/drivers/dri/radeon/radeon_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 @@
/* Default to PREMULT:
*/
- light_model_ctl1 &= ~((0xf << RADEON_EMISSIVE_SOURCE_SHIFT) |
- (0xf << RADEON_AMBIENT_SOURCE_SHIFT) |
- (0xf << RADEON_DIFFUSE_SOURCE_SHIFT) |
- (0xf << RADEON_SPECULAR_SOURCE_SHIFT)); + light_model_ctl1 &= ~((3 << RADEON_EMISSIVE_SOURCE_SHIFT) |
+ (3 << RADEON_AMBIENT_SOURCE_SHIFT) |
+ (3 << RADEON_DIFFUSE_SOURCE_SHIFT) |
+ (3 << RADEON_SPECULAR_SOURCE_SHIFT)); if (mask & MAT_BIT_FRONT_EMISSION) {
- light_model_ctl1 |= (3 <<
+ light_model_ctl1 |= (RADEON_LM_SOURCE_VERTEX_DIFFUSE <<
RADEON_EMISSIVE_SOURCE_SHIFT);
}
if (mask & MAT_BIT_FRONT_AMBIENT) {
- light_model_ctl1 |= (3 <<
+ light_model_ctl1 |= (RADEON_LM_SOURCE_VERTEX_DIFFUSE <<
RADEON_AMBIENT_SOURCE_SHIFT);
}
if (mask & MAT_BIT_FRONT_DIFFUSE) {
- light_model_ctl1 |= (3 <<
+ light_model_ctl1 |= (RADEON_LM_SOURCE_VERTEX_DIFFUSE <<
RADEON_DIFFUSE_SOURCE_SHIFT);
}
if (mask & MAT_BIT_FRONT_SPECULAR) {
- light_model_ctl1 |= (3 <<
+ light_model_ctl1 |= (RADEON_LM_SOURCE_VERTEX_DIFFUSE <<
RADEON_SPECULAR_SOURCE_SHIFT);
}

These look good -- go ahead and commit them if you want.



@@ -1755,7 +1755,7 @@
radeonUpdateSpecular( ctx ); /* for PK_SPEC */
if (rmesa->TclFallback) 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



-------------------------------------------------------
This SF.net email is sponsored by: IBM Linux Tutorials.
Become an expert in LINUX or just sharpen your skills.  Sign up for IBM's
Free Linux Tutorials.  Learn everything from the bash shell to sys admin.
Click now! http://ads.osdn.com/?ad_id78&alloc_id371&op=click
--
_______________________________________________
Dri-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to