I'm using DirectX 9 via SlimDX (C#). My screen flickers a lot during rendering. I dug a little deeper and see that the surface is being cleared early. Here's an example: http://pastebin.com/HXyAUwLp.
I'm using Windows XP on a low-end card. I've seen it act correctly on this computer, but I obviously have something wrong with my drawing routines or something and have reached the end of my resources.
The draw method starts at line 135 in that paste. To make the action more apparent, make sure the code in one or more of the preprocessor directives executes.
This shows that the buffer is being cleared before Present. I think things are supposed to work such that one scene to be visible until after Present, after which, the next scene is present. The user should never see the Clear
ed surface.
Let me know if you need more information.