Some one said,If "Maximum pre-rendered frames" is set to more than one, then the CPU is allowed to start rendering subsequent frames without waiting for the current one to be presented. So I think sometimes my update frame rate may be much higher than the truely display frame rate,at that time the FPS will be rised suddenly.
This is just a guess. I read something that drivers are sometimes able to counter-act bad code by recognizing problematic instructions. For example, you code something in your rendering loop that should be elsewhere in the application. It could be that the same problem exists on the HD5670 and the GT430 but the driver is preventing the issue from being really noticed on both. But without more info it is impossible to say for sure.
However, it could be a bunch of different things. Like switching shaders between geometry and pixel. It is almost impossible to be helpful without more information.
PS, I would try on some other hardware as well. 2 is not enough, there could be a defective card.
Thanks for replying. I`ve tried a lot of ways to fix it, and finally I found that when I set the "Maximum pre-rendered frames" to 1,it will become ok. While the default setting or other values higher than 1 will cause this problem. Instead of setting this parameter on the NVIDIA control panel,Can I set this value by code?Or maybe there have some other ways to solve this problem?Thank you~