PDA

View Full Version : Buggy GeForce TMU's



wis mak
07-11-2002, 11:08 PM
Two rendering passes are required. The first one requires TMU0 enabled for 2d texturing and TMU1 for cube mapping. The second pass only requires TMU0 2d texturing.
The problem is when I disable TMU1, I get a noticeable drop down in performance which makes my application not real-time - 1 fps.
I tired the following to debug:

1) Binding TMU1 in the second pass to
default texture name 0.

2) Re-enabling TMU1 after disabling it
prevents weird frame rate dorpdown.

This means that glDiable does not cause the problem untill glBegin ... glEnd (rendering) begins.

----------------
P2 400MHZ, 256MB RAM
GeForce2 MX, 32 MB, 2x AGP
Drivers (latest detonator from nvidia)
OpenGL 1.3.1
Windows 98 SE
----------------

Thanks.

V-man
07-11-2002, 11:52 PM
This was discussed recently, but I dont know what the outcome was.

You have 2 choices:

glBindTexture(texture_type, 0);
or
glDisable(texture_type);
Both should work fine. I use glDisable myself.

V-man

wis mak
07-12-2002, 01:14 AM
Ok. But I tried both and neither one gives the desired result. Binding to 0 results in incorrect texturing (not disabling it), and glDisable drops down performance significantly.
Why does this abnormal performance drop hapen when disabling the other TMU. Should not it be faster to have only one TMU enabled instead of two?
Or is this a bug in NVIDIA TMU's/drivers?

jra101
07-12-2002, 07:30 AM
wis mak,

Can you post a small example or code snippet that demonstrates the problem?

wis mak
07-12-2002, 08:01 AM
Here it's:

void Render ()
{
glActiveTextureARB (GL_TEXTURE0_ARB);
glBindTexture (GL_TEXTURE_2D, normalmap);
glActiveTextureARB (GL_TEXTURE1_ARB);
glEnable (GL_TEXTURE_CUBE_MAP_ARB);

glBegin (GL_QUAD);
...
glEnd ();

glEnable (GL_BLEND);
glBeldnFunc (GL_DST_COLOR, GL_ZERO);

glActiveTextureARB (GL_TEXTURE0_ARB);
glBindTexture (GL_TEXTURE_2D, decal);
glActiveTextureARB (GL_TEXTURE1_ARB);
glDisable (GL_TEXTURE_CUBE_MAP_ARB); //<---
// when it's left enabled no performance
// problems

glBegin (GL_QUAD);
...
glEnd ();

glDisable (GL_BLEND);
}

wis mak
07-12-2002, 10:55 PM
I know it's a weird problem. But how do I resolve it, when it's not NVIDIA TMU's bug?

wis mak
07-13-2002, 01:44 AM
Pleeeeeeeeeeeeeeeease helllllllllp.

jra101
07-13-2002, 01:53 PM
Do you have a small demo that shows the problem? I'd like to be able to run it and recompile/debug it to see if I can find the problem.