Hello,
I recently got a GFFX and I have a weird problem with texture shaders in one of my program.
In this program I make a DOT3 diffuse+specular bump mapping using texture shaders & register combiners.
Here what I got on my “old” GF4: http://drtypo.free.fr/trucs/tsgf4.jpg
On my brand new GFFX, I get this crappy result: http://drtypo.free.fr/trucs/tsgffx.jpg
(also notice the poor framerate)
When you get close to the object, it looks burned (GeForceFX shot): http://drtypo.free.fr/trucs/tsburned.jpg
The issue doesn’t come from register combiners: when I disable them, the burning effect (and poor framerate) still happens.
When I disable the texture shader, the bump mapping is of course gone but the framerate is normal again (~600 fps).
The texture shader used the following one :
glActiveTextureARB(GL_TEXTURE2_ARB);
glTexEnvi(GL_TEXTURE_SHADER_NV, GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV, GL_EXPAND_NORMAL_NV);
glTexEnvi(GL_TEXTURE_SHADER_NV, GL_SHADER_OPERATION_NV, GL_DOT_PRODUCT_PASS_THROUGH_NV);
glTexEnvi(GL_TEXTURE_SHADER_NV, GL_PREVIOUS_TEXTURE_INPUT_NV, GL_TEXTURE1);
(it is the texture shader for the diffuse component, same shader for specular component on texture unit 3).
I also made a test with a GL_DOT_PRODUCT_TEXTURE_2D_NV shader. In this case there is no burning but still a poor framerate. Thus I suspect the same thing is going on.
It seems there is something that raises the result of the texture shader to a high power. This would explain the burning and the low framerate.
BTW the whole object rendering (combiners, shaders, geometry) is stored in a display list.
Apart from this issue the GeForceFX is working perfectly well. I tested Dawn, Dusk, Ogre and Toys demos and they run smoothly.
I also tested GF3&4 demos (Chameleon and Werewolf) and they also work well.
System spec:
AthlonXP 2000+
512MB DDR
GeForceFX 5900 128MB (MSI)
Chipset VIA KT400
WindowsXP SP1
Drivers tested: 44.65 & 45.23
You can get an executable here: http://drtypo.free.fr/trucs/ppl014e.zip
–
DrTypo