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:
Binding TMU1 in the second pass to
default texture name 0.
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)
Windows 98 SE
This was discussed recently, but I dont know what the outcome was.
You have 2 choices:
Both should work fine. I use glDisable myself.
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?
Can you post a small example or code snippet that demonstrates the problem?
void Render ()
glBindTexture (GL_TEXTURE_2D, normalmap);
glBeldnFunc (GL_DST_COLOR, GL_ZERO);
glBindTexture (GL_TEXTURE_2D, decal);
glDisable (GL_TEXTURE_CUBE_MAP_ARB); //<—
// when it’s left enabled no performance
I know it’s a weird problem. But how do I resolve it, when it’s not NVIDIA TMU’s bug?
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.