Shadowrunner and JeffBoy,
Some of the confusion comes from two completely different things meant by "vsync control". One, is the timing for movement to the front buffer to eliminate tearing. A second, related but totally different, is the elimination of "synchronised frame rate/refresh rate judder". It is this second problem, that JeffBoy described in his OP and that Reclock's vsync correction is primarily designed to fix, although in some situations it can have an impact on the first too.
About the "solid white line", this comes normally from use of a back buffer to try to eliminate tearing. This means in hardware the whole of the next frame is "flipped" to the front buffer during vBlank to try to eliminate tearing. Hence no spread. However, this directly CAUSES the synchronised frame rate/refresh rate judder problem when frame rate and refresh rate are compatible, e.g. exact multiples or regular cadence such as 3:2, (
http://software.intel.com/en-us/articles/video-frame-display-synchronization/, see description of figure 5), since if a frame is presented too close to this buffer flip it may complete one side or the other and if the frame rate and refresh rate are closely matched this may go on for many seconds, even minutes.
Until recently no renderers manage to avoid this "synchronised judder". Now there are some that are trying. MadVR seems to be close to having it cracked, if it is not cracked already, but it is still too buggy and cannot handle subtitles or DVD disc playback (DVD menus), so as far as I am concerned, good as it is, it cannot yet be recommended as someones main choice. mpc-hc's EVR Sync renderer and EVR CP renderer have both tried to fix it but both are somewhat buggy. MediaPortal, working of the same open source code have also tried to fix it. I have heard some reports they may have succeeded but have not tried it myself.
Reclock vsync correction fixes "synchronised judder" by moving the point of presentation away from vsync to precisely avoid the problem Jeffboy describes in this OP. It does this by measuring the end of presentation relative to the target set and making tiny changes to the frame rate mostly at the start of playback to "pull" presentation away from the danger zone.
Reclock displays its marker at the point the "Present()" call returns. In non-exclusive mode, without Aero, this always happens just after the flip, regardless of when presentation started. Further rendering is unavoidably "blocked" by DirectX until after vBlank. This means that when Reclock tries to alter the position of its marker it finds itself unable to (the return of the Present() Call is fixed in hardware to just after VBlank). So Reclock keeps running the frame rate too fast or slow and this leads to "rolling sync" where every few seconds to one minute there is a brief burst of judder, the duration of which is relative to the speed of the "roll", which in turn is dependent on how far away the vsync marker is from the Reclock-defined vsync target. Similarly, renderers that control the point presentation
starts will stop Reclock from changing the point presentation ends, even if, as in Aero mode, it is not "blocked". So Reclock's vsync correction is fundamentally incompatible with any renderer that itself fixes the point in the vsync cycle that Present() starts and/or returns. This includes VMR9 and the standard EVR non-exclusive renderers on XP, Vista and W7. It also includes MadVR, EVR CP and EVR Sync renderers with their vsync correction turned on and the same renderers even with vsync off, in non-Aero mode. IF RECLOCK CANNOT MOVE THE VSYNC MARKER INTO ITS TARGET ZONE THEN DO NOT USE IT!
However, Reclock vsync correction does work:
- with overlay mixer
- with an EVR/VMR9 renderer that uses an overlay surface i.e. PDVD/WinDVD/TMT in Blu-ray
disc mode only and TMT only also in
DVD disc mode. These players do not use an overlay surface for file mode, so Reclock vsync correction cannot be used here
- with VMR9 in D3D-exclusive mode. This "unblocks" the GPU allowing the Present() call to return immediately, thus allowing Reclock to control point of presentation.
- With EVR CP renderers in Aero or D3D-exclusive mode, that have their own vsync control (if provided) disabled. Aero, as well as exclusive mode, "unblocks" the GPU. NOTE this does not apply to renderers that do not just break Reclock vsync correction by using a blocking back buffer but actually try (mostly so far not completely successfully) to control point of presentation themselves. Do not use Reclock vsync correction with these unless you can turn off vsync control, as you can with EVR Sync and EVR CP.
You must not use Reclock vsync with the standard EVR renderer. That "slip" you describe is an indication of the rolling sync, where the frame rate laps the refresh rate due to Reclock's continually attempts to correct.
Exclusive mode is definitely the most reliable and should not be anywhere near so vulnerable to other processing activity. Aero with a CP renderer, with all vsync off, should work too. Maybe not perfect but much much better than you suggest. If you cannot use ZP's D3D mode then it is worth trying mpc-hc again using Sync renderer (and alternate EVR CP) with all Sync Renderer vsync settings OFF and instead using Reclock Vsync.
You might like to follow my discussion with Kazuya here on how to configure this:
http://forum.slysoft.com/showthread.php?p=261094#post261094