Mar 15, 2018 16:11:16

Image fluidity is of the utmost importance for virtually every gamer. Most of us want not only to maintain high performance—preferably over 60 FPS for comfortable gaming, but also to avoid the stutter that results from too high variance in frame-times. On top of that, there is screen tearing to contend with. Tearing happens when your monitor, or whatever display device you happen to be using, gives you an output that is a composite of two or more frames. Among the numerous techniques designed to combat this issue, AMD’s Enhanced Sync is a noteworthy choice.

We’ll begin with the idea of double buffering, vertical synchronization (V-sync) and triple buffering. Double buffering is a common approach to image output. Just as its name would suggest, it utilizes two buffers, a back and a front buffer. The back buffer is written to by the software, while the front buffer’s content is sent to the screen. Once your computer finishes drawing a frame to the back buffer, a swap occurs and the front buffer becomes a back buffer, and vice versa. The main drawback of this approach is that a buffer swap might happen during screen refresh, resulting in unwanted tearing.

The easiest way to prevent that from happening is to synchronize buffer swaps with the screen’s refresh rate. Enabling V-sync effectively caps your maximum FPS to that matching the refresh rate, thus lowering the performance significantly. But the most important side effect of V-sync is undoubtedly increased input lag. Imagine a frame taking just a little longer than 1/xth (x being the refresh rate) of a second to render. In this case, V-sync adds artificial delay to maintain synchronization. It could get even worse if most frames took that long, halving performance due to the synchronization suddenly required. In a nutshell, enabling V-sync reduces tearing at the cost of lower responsiveness and potential stuttering.

This is where triple buffering comes into play. The main difference between this technique and ordinary double buffering is that triple buffering uses an additional back buffer. This allows your computer to draw the next frames as quickly as possible, writing them alternately to both back buffers. What’s more, it provides enough additional space to keep the front buffer locked from swapping while the synchronization occurs. Once a swap is eventually performed, the front buffer is swapped with the back buffer containing the most recently completed frame. As a result, triple buffering means lower additional lag combined with reduced tearing. However, stuttering might still occur because of repeated frames once your FPS drops well below the refresh rate.

The obvious finding here is that both having V-sync disabled and enabled, even with triple buffering, has some advantages and disadvantages. That is exactly why AMD decided to introduce its new synchronization technique, Enhanced Sync. It provides a sort of dynamic V-sync switching in order to maintain the best possible gameplay experience. As you’ll see from the above slide, Enhanced Sync can be considered a lower latency version of traditional V-sync. So, how did the folks at AMD manage to achieve that?

The important thing here is that AMD’s Enhanced Sync can operate in two distinct modes, depending on your current FPS. When the performance is exceeding the screen’s refresh rate, Enhanced Sync acts very similarly to triple buffering. It simply keeps the FPS uncapped and outputs the most recently completed frame to your display device. As with triple buffering, this approach enables a smooth, tear-free gameplay experience at the cost of a slightly higher response time. A small caveat here is that triple buffering, without additional tricks, is available only for OpenGL games and a small number of DirectX games, while Enhanced Sync works great everywhere – including Vulkan games and Multi-GPU and Eyefinity configurations.

FPS going below the refresh rate is a different story. Once this happens, to prevent stuttering Enhanced Sync immediately disables itself, resulting in a V-sync off-like behavior. Obviously this means that Enhanced Sync is no longer capable of preventing screen tearing, so keep in mind that it cannot be perceived as a zero-cost alternative to FreeSync. The latter technology is a combination of both hardware and software innovations, while Enhanced Sync is purely a software solution and as such has its obvious limitations.

Practical observations are really promising and consistent with the theoretical background. Our test setup, consisting of the SAPPHIRE PULSE Radeon RX Vega 56 GPU and a 75 Hz FreeSync-capable display, had no problem delivering a very smooth, tear-free experience with no noticeable lag at 100+ FPS with Enhanced Sync enabled alone. On the other hand, Enhanced Sync failed to neutralize screen tearing in Sniper: Ghost Warrior 3, which occurred at about 60 FPS. This should come as no surprise, given that Enhanced Sync is designed to shut itself down when performance drops below the refresh rate. FreeSync is the only way to provide a tear-free gameplay with no side effects under such circumstances—and indeed it managed to successfully eliminate tearing in that particular game. This leads to the conclusion that a combination of Enhanced Sync and FreeSync is the preferred solution for stutter-free gameplay with no visible tearing and minimal additional lag over a wide range of possible performance levels. While Enhanced Sync is clearly not a zero-cost FreeSync replacement, it provides very good results and is a great addition to hardware synchronization techniques. Give it a try and you won’t regret it.

Header image source: Softzone.es