Nuclear page-flipping is focused on robust page-flipping support and to synchronize flips on multiple hardware scan-out engines. Related to this is the atomic mode-setting, or doing the DRM/KMS mode-setting in an atomic manner. As part of this, the DRM drivers will be exposing properties for all parts of the driver.
Matt Roper of Intel on Friday sent out a new patch-set that provides universal plane support as a prerequisite for the atomic/nuclear work. This universal plane support adds several hundred lines of new code to the DRM subsystem and exposes all types of hardware planes to the userspace in a consistent manner.
Roper explained, "One of the stepping stones on the way to atomic/nuclear operation is to expose all types of hardware planes to userspace via a consistent interface. Until now, the DRM plane interface has only operated on planes that drivers consider 'overlay' or 'sprite' planes; primary planes were simply represented by extra state hanging off the CRTC, and cursor planes had no direct representation in userspace, but were manipulated via separate ioctl's. This patch set begins the process of unifying the various plane types into a single, consistent interface."
As far as why this universal plane support is important:
This benefits of this unified interface will be most evident once driver state is fully property-ized as part of the upcoming atomic modeset / nuclear pageflip work. However there are a few benefits that may be achieved even before then:More details on this universal plane support can be found on the dri-devel mailing list.
* Drivers for hardware with scaling-capable primary planes may honor userspace scaling requests for the primary plane made with the drmModeSetPlane() call. Previously there was no interface that allowed userspace to specify desired scaling on primary planes.
* Drivers for hardware that may disable primary planes independently from the underlying CRTC may now do so when userspace passes a NULL framebuffer to the drmModeSetPlane() interface.