DRI2 Sync + Swap Extensions Near Reality

Posted by Michael Larabel on October 30, 2009

When running a modern Linux graphics driver stack in a composited environment there is a lot less tearing -- particularly with regard to video playback, but OpenGL applications too -- now than there was in the past, but there is still room for improvement. One of the ways to improve this is by properly controlling the display of buffers with how often the swaps occur and to sync them with the monitor's refresh rate or the rate at which the compositor is running. Unfortunately, the X Server and open-source graphics stack have lacked such functionality even though some OpenGL/GLX extensions for this support have been around for years. Intel's Jesse Barnes though has been working on proper DRI2 support for synchronization and swapping.

Jesse has added support to Mesa and the X Server that will allow for the appropriate OpenGL/GLX extensions that expose syncing and frame counting capabilities (SGI_swap_control, SGI_video_sync, SGIX_swap_barrier, etc). This code though is currently housed in his personal Git repositories as the patches await review and feedback (mailing list message). This DRI2 synchronization and buffer swaps code is also dependent upon revisions to dri2proto and libdrm along with the latest DRM code that will eventually be pushed into the Linux 2.6.33 kernel due to its vblank event support.

Besides cutting down on tearing and other visual defects, proper synchronization of swaps can provide a smoother experience with a consistent frame-rate and can enhance the performance of some applications. More information on the technical end of this support can be found on the composite swaps Wiki page. This support isn't yet living in Git master, but it's surely on its way, which will benefit Linux desktop users.

Discuss this article in our forums, IRC channel, or email the author. You can also follow our content via RSS and on social networks like Facebook, Identi.ca, and Twitter (@Phoronix and @MichaelLarabel). Subscribe to Phoronix Premium to view our content without advertisements, view entire articles on a single page, and experience other benefits.
Latest Hardware Reviews
  1. Intel Haswell HD Graphics 4600 vs. AMD Radeon Graphics On Linux
  2. Intel Haswell HD Graphics 4600 Performance On Ubuntu Linux
  3. Intel Core i7 4770K "Haswell" Benchmarks On Ubuntu Linux
  4. The First Experience Of Intel Haswell On Linux
Latest Software Articles
  1. Optimized Binaries Provide Great Benefits For Intel Haswell
  2. 11-Way Linux, BSD Platform Comparison
  3. SNA Acceleration Works Great For Intel Core i7 Haswell
  4. The Linux Evolution For Intel Haswell's Performance
Latest Linux News
  1. KDE's KWin Made Lots Of Progress In 4.11
  2. Ubuntu Announces Carrier Advisory Group
  3. Qt 5.1 Release Candidate 1 Has Arrived
  4. In-Fighting Continues Over Mir On Non-Unity Ubuntu
  5. Subversion 1.8 Presents New Features
  6. LLVM 3.3 Officially Released
  7. LLVM/Clang Now Uses Loop Vectorizer At New Levels
  8. Intel GPU Driver Tries To Rip Out FBDEV Support
  9. Coreboot Doing AMD USB 3.0, Q35 QEMU Emulation
  10. VP9 Codec Now Enabled By Default In Chrome
  11. openSUSE 13.1 M2 Plays On PulseAudio 4.0
Latest Forum Talk
  1. Ubuntu Announces Carrier Advisory Group
  2. Intel GPU Driver Tries To Rip Out FBDEV Support
  3. In-Fighting Continues Over Mir On Non-Unity Ubuntu
  4. Vote for GOG to add Linux versions of games they...
  5. Intel Haswell HD Graphics 4600 vs. AMD Radeon...
  6. Mir Still Causing Concerns By Ubuntu Derivatives
  1. Computers
  2. Display Drivers
  3. Graphics Cards
  4. Motherboards
  5. Peripherals
  6. Processors
  7. Software
  8. Operating Systems
  9. All Articles
  1. Linux Benchmarking
  2. OpenBenchmarking.org
  3. Phoronix Test Suite