AMD's FreeSync Linux Code Continues To Be Improved Upon For Low Frame-Rate Scenarios
AMDGPU FreeSync has been in good shape with Linux 5.0~5.1 from our testing thus far while independent developer Mario Kleiner has been working on contributing various improvements to this code. Mario got a VRR stuttering fix back into the Linux 5.0 kernel. For the upcoming Linux 5.2 kernel cycle he also worked out a few more FreeSync fixes/improvements.
Out today is a second revision of FreeSync patches he's been working on aiming to improve FreeSync in low frame-rate situations to produce more stable and expected behavior. The three patches include working on better behavior with older GPUs (pre-DCE12; Polaris and older) when dropping from high to low frame-rates, preventing some possible missed vblanks / skipped frames when moving around the BTR boundary, and a calculation fix.
These patches for testing can be found on amd-gfx. Though it's getting late for seeing these FreeSync patches get into DRM-Next for the upcoming Linux 5.2 kernel merge window, unless the work is treated as a "fix" to allow the changes to still land for Linux 5.2.
Mario has been working on a VRR test script for closely analyzing the variable rate refresh (FreeSync) behavior on Linux for helping to tune this code.
Overall, the FreeSync Linux support is largely in great shape with Linux 5.0+ and Mesa 19.0+. Especially with the upcoming Mesa 19.1 the situation is even better thanks to RADV Vulkan FreeSync.