texture mapping forcing glDrawElements to software?

Anyone have any idea why enabling the texture coordinate array and using texture mapping with gldrawelements causes software rendering vs hardware? I’m assuming it’s dropping to software as the frame rate goes to <1. I have a pII-400 with a Matrox G200 w/8mb and running w2k. The textures are small(two 256 element 1-d textures) so I would assume they would both be resident.

Any ideas?

J

Perhaps the G200 drivers just didn’t care
about that case? Try another card on another
machine and see if it works better to
validate that theory.

Judging for the G400 3DFlex drivers I was
using previously, I wouldn’t be surprised if
it was a driver issue.

bgl -

That may be the case. A Voodoo3 did accelerate it, however, I could not get a TNT2 card to do so. However, it may not have the drivers set up correctly(not my machine).

It sucks that Matrox would not provide a better ICD. Oh well.

J

Something as simple as that should undoubtedly be accelerated on a TNT2.

SW fallback decisions are generally a function of the current state and the type of primitive (points, lines, triangles), not the method of drawing (immediate mode, vertex arrays, display lists).

  • Matt

Matt -

I am drawing triangle strips. I cannot think of any states I am in that may cause problems. The code relevant to the texture mapping and drawing is as follows:

GLfloat (pointCoords[NUM_PLOTS])[1];
GLuint fillIndicies[NUM_POINTS
4];

glBindTexture(GL_TEXTURE_1D,plotFillTex[0]);
glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE);
glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_WRAP_S, GL_CLAMP);
glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
glTexImage1D(GL_TEXTURE_1D,0,GL_RGBA,256,0,GL_RGBA,GL_FLOAT,plotFillImage);

glBindTexture(GL_TEXTURE_1D,plotFillTex[0]);
glTexCoordPointer(1,GL_FLOAT,0,pointCoords[plotNum]);
glVertexPointer(3,GL_FLOAT,0,scaledData[plotNum]);
glDrawElements(GL_TRIANGLE_STRIP,numScaledPoints[plotNum]*2,GL_UNSIGNED_INT,fillIndicies);

See anything in there that’s not kosher?

J

Nothing too unusual there.

  • Matt