I have found out from the DXCAPS in the DirectX Diagnostics that the i740 is not capable of blitting from sys mem to video mem, so I took out the SYSTEMMEMORY flag when creating my back buffer. Now it runs at light speed because it it creating the surface in the video memory, but if I stretch the image to anything other than the original size of the back buffer (640x480), it kills the frame rate to 8 frames. In DirectX Diags it says it can stretch blitX+Y from vid mem to vid mem, BUT it seems it is not using the hardware for this operation, resulting in a very low frame rate. BUT if I run the stretch sample app in the DX7 SDK, it stretches at a high frame rate! The only difference I can see is the stretch example is using a small source blit, I think about 64x64 (its a small donut bitmap), but my apps source blit is a 640x480 bitmap, as is the Foxbear sample (same performance as my game). Maybe the i740 has a source size limit when using the stretching hardware?, or is this the case on all AGP cards?
Funny thing is, ive tried all this on a 133MMX laptop and the FPS are the same, no matter what source blit size or stretch size!
I am suspecting the bundled drivers are no good, so i have installed the R4 version, with no luck. Surely the AGP i740 8MB is a very capable card, better than the laptops CT65554 PCI chipset.
Does the DX7 driver database contain drivers for the i740, maybe the microsoft version will fix the problem?