I'm seeing a problem with the latest NVidia drivers on Vista (version 97.46 realeased on 5th Jan 2007), and I was wondering if anyone else is experiencing similar problems. The display card is an NVidia GeForce 6800 LE, but I don't think its specific to that display card. The problem I'm seeing is that DrawIndexedPrimitive() doesn't seem to draw anything if the BaseVertexIndex argument in DIP is larger the MaxVertexIndex caps value. The return value from DIP is OK, but it doesn't draw anything.

I'm drawing representations of oil reservoirs made up of a large number of quads. The whole reservoir goes in a single vertex buffer which can often exceed 100MB in size. I am using an index buffer containing around 3000 indices. The contents of the index buffer are kept the same and the vertex buffer is drawn by increasing the the value of BaseVertexIndex at each DIP call. If further clarification is needed I can provide a code snippet. I've also written a very short test program to investigate this and I'm seeing the same effect.

This approach of offsetting BaseVertexIndex to draw large vertex buffers has been working for us with no problems for several years now on XP on a range of cards, and we've had no problems drawing vertex buffers up to 200MB in size. I know this problem should best be addressed to NVidia but it seems to a little difficult to get technical answers of this kind answered directly by NVidia.

On a related note, we'd like to use the newer cards with 512MB of memory to draw vertex buffers up to 512MB in size, but the maximum vertex buffer you can allocate seems to be around 256MB. Does anyone have any experience of this

Thanks for any help,


Re: Game Technologies: Graphics Nvidia Vista Drivers

Alexey Barkovoy

According to D3D documentation MaxVertexIndex and BaseVertexIndex are orthogonal, so it look like a bug in drivers.

Can you post your test program somewhere (or send it to mine e-mail)