poor triangle throughput

I’m working on a quadtree based terrain system. Each node has a list of indices to it’s vertices, allowing for one tri-strip per node (each end node is 9x9, about 128 triangles). I started using vertex arrays and saw fairly poor results (about 1.5 - 1.7 Mtri’s per second). So i used glLockArraysSGI() on the entire array (263,169 vertices) thinking I would get some sort of performance boost, but nothing changed at all.
I’m using a gf2 gts and an athlon 700, shouldn’t I be getting at least 3 or 4 Mtri’s /sec?? I’m using Interleaved arrays with texturing(2f), normals(3f), and vertices(3f).

try to put the datas into the vram by using
glAllocateMemoryNV() with your arrays and calling glDraw*() function.
This is the most powerful method for nvidia cards.

Some experiments for you to test:
>>I’m using Interleaved arrays with texturing(2f), normals(3f), and vertices(3f)<<
Using normals implies you have lighting on, right?
How many lights?
Does the performance change with lighting off (T&L bound)?
Does the perfomance change with a very small window (fillrate bound)?
What are your most frequent state changes?