Mario Kleiner has published patches over the weekend that introduce precise vblank time-stamping support within the Linux kernel's DRM core and has implemented this support already within the Radeon and Intel kernel drivers too. The precise vblank timestamps and counting is needed by the DRI2 sync and swap extensions
and in particular to conform with the OML_sync_control extension.
The existing infrastructure within the kernel DRM to generate timestamps was not reliable due to interrupt handling delays and thus were not conformant since they were not actually synchronized to a vblank. The DRM core patch adds support for vblank timestamp caching, calculating the precise vblank timestamps, and filtering of redundant vblank IRQs and removing of some race-conditions in the vblank IRQ disable/enable code path. This work was previously discussed at XDS Toulouse
so it really shouldn't have a problem being accepted and hopefully is in a state where it can be pushed into the mainline Linux kernel this week prior to the Linux 2.6.37 kernel
merge window closing prior to next Sunday.
For those not familiar with GLX_OML_sync_control, it's a nine year old extension that is described by the registry specification
as: "This extension provides the control necessary to ensure synchronization between events on the graphics card (such as vertical retrace) and other parts of the system. It provides support for applications with real-time rendering requirements by providing precise synchronization between graphics and streaming video or audio." Right now this code is just hooked up for the Intel and Radeon DRM drivers, but we imagine hooking in the Nouveau driver will not be too far behind.
Mario has described this vblank timestamp endeavor in this mailing list message
that he sent prior to mailing of the actual three-piece patch series
, with additional comments inside that e-mail as well.