Summary: "Video synchronization method"
Default: auto
Example: finish-sleep-swap-finish
Type: choice

Choose the method used to ensure video synchronization with the display.
Valid values are:

Value: auto (Auto)
       Automaically choose sync method based on platform.
Value: swap (Swap)
       Most basic method, but will probably not mantain emulation
       perfectly in sync on many GPUs due to pipelining and the swap buffers
       command returning before it is completed.
Value: swap-finish (Swap-Finish)
       This method should force the emulation to be in sync with
       the display, but glFinish may use a busy-loop and cause high CPU usage.
Value: finish-swap-finish (Finish-Swap-Finish)
       Execute a glFinish also before swapping buffers.
       May work better with some OpenGL drivers. Otherwise same as swap-finish
       (High CPU usage with many drivers).
Value: finish-sleep-swap-finish (Finish-Sleep-Swap-Finish)
       Same as above, but sleep before executing
       the swap command. The sleep time is based on the (estimated) time left
       to the next vblank. This should reduce the CPU usage a lot, but on some
       systems/drivers, the display will not be synchronized properly.
Value: sleep-swap-finish (Sleep-Swap-Finish)
       Same as above, but do not issue a glFinish before
       starting the sleep. This should use less CPU than the above option, but
       some drivers seem to need the finish before the sleep to achieve proper
       sync.
Value: swap-fence (Swap-Fence)
       Set a fence after swapping buffers and poll periodically
       (with sleeps) for completion of swap. This seems to work very well on
       Linux with recent nVIDIA drivers.
Value: swap-sleep-fence (Swap-Sleep-Fence)
       Same as above, but sleep a while (based on estimated
       time to next vblank) before starting to poll the fence, (in case the
       test-fence method blocks with high CPU usage, problem seen on
       nVIDIA/Windows).

The default value is:
* finish-sleep-swap-finish - for Windows and Mac OS X
* finish-swap-finish - for Linux.

See also [video_sync].
