multi-pass, dot3 & z-fighting

I am trying to use GL_ARB_texture_env_dot3 in a multi-pass multi-texturing algorithm utilizing “only” the fixed function pipleline, but this gives slightly different z-values for the “dot3-pass” leading to the well-known z-fighting problem (GeForce2MX to GeForceFX5?00). If I use env-add or env-modulate instead of dot3, no z-fighting occurs. The spec of GL_ARB_texture_env_dot3 says nothing about variance or invariance of the z-values.

Can someone confirm this behavior?

Originally posted by Hampel:

Can someone confirm this behavior?

Not really. I just played around a little with bump mapping on my Geforce2 MX, doing a dot3 pass (including cubemap normalization) and a decal pass and all looks correct here.

Maybe what you set in glDepthFunc is not correct? Could you post your render code? I do bumpmapping all the time using register combiners and fragment programs and all is well. The only time I had z-fighting problems is when I was mixing fixed function and vertex programs together. And I think at that time the vertex programs were running in software. I bet it’s just some little thing not set exactly right that’s hard to track at first.

EDIT: Had glDepth instead of glDepthFunc, lol.


[This message has been edited by SirKnight (edited 10-24-2003).]