AMD Releases Radeon Software Crimson ReLive Edition 17.7.2: ReLive Edition Refined for Gamers and Developersby Nate Oh on July 26, 2017 5:00 PM EST
Developing a Better V-Sync: AMD Enhanced Sync
Last year, AMD had targeted stutter with DX12 frame pacing, and overall framerates with day-0/driver-over-driver improvements. For 2017, AMD is targeting input lag/responsiveness and latency, with one such method being the reduction of driver frame wait-times.
AMD has addressed such driver overheads in 17.7.2, noting increased responsiveness in certain games.
On lower latency, AMD’s major effort in 17.7.2 is introducing its latest sync technology: Enhanced Sync. The idea is that Enhanced Sync acts as an alternative lower-latency solution to V-Sync, which can cause high latency or stuttering in certain scenarios. Within Radeon Settings, Enhanced Sync is now an option under the vertical refresh drop-down menu. Because Enhanced Sync does not work for OpenGL applications, there is no interaction between Enhanced Sync and the OpenGL Triple Buffering option.
Above the refresh rate, Enhanced Sync keeps the frame rate unlocked and displays the most recently completed frame, in a manner roughly analogous to old-school triple buffering. The net result is that this reduces V-Sync’s average latency (also known as ‘input lag’) at high framerates. Though it should be noted that because a frame can only be presented at the next buffer flip, it still incurs a slight penalty to response time relative to V-Sync off, which AMD measured with a high speed camera.
Otherwise if the frame rate drops below the refresh rate, Enhanced Sync dynamically disables V-Sync falling back to V-Sync off behavior where a finished frame is immediately presented, decreasing the stutter that results from repeated frames. In turn, this does come with all of the drawbacks of having V-Sync off, namely tearing. AMD explains that enabling tearing this way is the best compromise in this situation, where low framerates typically result in only a single tearing "seam" on the screen at any given time.
For the time being, AMD is not providing any further implementation details for Enhanced Sync, and will let us know when they do. Likewise, during the slide deck presentation, AMD did not clarify if Enhanced Sync was an implementation of triple buffering when asked, citing an upcoming whitepaper on the topic. But at a glance, Enhanced Sync appears similar to a combination of NVIDIA’s Fast Sync (introduced with Pascal) and Adaptive V-Sync (introduced with Kepler). Regarding the latter, Adaptive V-Sync operates by selectively disabling V-Sync, which appears to be exactly how Enhanced Sync operates when framerates are below the refresh rate. In which case if AMD's implementation does behave similarly to NVIDIA's, then as we've already found with Fast Sync, to make the most of the technology you will need a framerate 2x (or more) higher than the refresh rate. This is because the closer the frate rate is to the refresh rate, the fewer opportunities there will be to "jump ahead" by discarding frames.
Finally, Enhanced Sync can work in conjunction with FreeSync, kicking in when framerates exceed the maximum FreeSync range. For FreeSync displays that don't support low framerate compensation (LFC), Enhanced Sync will also come into play on when framerates dip below the display's minimum FreeSync range. Enhanced Sync is officially compatible with FreeSync 2 and Radeon Chill as well, and works under DX9, DX11, and DX12 applications. Currently, Enhanced Sync is only supported on the gaming consumer driver, and thus does not support Radeon Vega Frontier Edition. Otherwise, according to Scott Wasson's accompanying Enhanced Sync blog post, Enhanced Sync is supported on the RX 400 and 500 series, as well as the upcoming RX Vega cards.