This patchset adds experimental "nuclear pageflip" support to the i915 driver. Nuclear pageflip is the subset of atomic modeset functionality that is most important to display compositors --- i.e., plane updates for a single CRTC. Nuclear pageflip allows a compositor to ensure that the frame-specific updates of all planes, and all properties associated with those planes, land within the same vblank, thus allowing each frame to be displayed perfectly without the artifacts/synchronization issues often caused by sprite/overlay use. To enable this support, an "i915.nuclear=1" option must be added to the kernel command line (in addition to the "drm.atomic=1" option already required by the DRM core). This option will internally flip on the DRIVER_ATOMIC flag for i915, enabling use of the atomic ioctl and causing all of the atomic object properties to be exposed. Note that this patchset does not enable "full" atomic modeset (i.e., the ability to perform changes on multiple CRTC's in a single operation, or the ability to update non-plane properties), so the i915.nuclear command line guard will not be removed until the rest of the atomic modeset functionality arrives. If you try to pass propertysets to the kernel containing updates outside the scope of "nuclear pageflip" functionality, things may blow up. There is ongoing work by several people to complete the remaining changes necessary for full atomic modeset support. Asynchronous commit for nuclear updates is also still on the todo list and not supported by this patchset. This patchset depends on Ander's patches from the mailing list (not yet merged): http://lists.freedesktop.org/archives/intel-gfx/2015-January/058457.html (the first patch in this series is actually a change intended to be squashed into one of Ander's patches). Patches #2-7 were previously sent to intel-gfx here: http://lists.freedesktop.org/archives/intel-gfx/2015-January/058488.html Rob Clark has an updated libdrm repo capable of working with this functionality here: https://github.com/robclark/libdrm.git atomic i-g-t updates to support nuclear pageflip in the igt_kms library, and a very simple testcase for nuclear pageflip will be posted shortly. Matt Roper (13): squash! drm/i915: Improve how the memory for crtc state is allocated drm/i915: Move rotation from intel_plane to intel_plane_state drm/i915: Consolidate plane handler vtables drm/plane-helper: Add transitional helper for .set_plane(). drm/plane-helper: Fix transitional helper kerneldocs drm/i915: Add .atomic_{get,set}_property() entrypoints to planes drm/i915: Replace intel_set_property() with transitional helper drm/i915: Add main atomic entrypoints drm/i915: Setup dummy atomic state for connectors drm/i915: Set connector state destruction handler drm/i915: Add atomic_get_property entrypoint for connectors drm/i915: Add crtc state duplication/destruction functions drm/i915: Add i915.nuclear kernel command line param to force atomic drivers/gpu/drm/drm_plane_helper.c | 109 +++++++++++++- drivers/gpu/drm/i915/Makefile | 1 + drivers/gpu/drm/i915/i915_drv.c | 12 ++ drivers/gpu/drm/i915/i915_drv.h | 1 + drivers/gpu/drm/i915/i915_params.c | 5 + drivers/gpu/drm/i915/intel_atomic.c | 234 ++++++++++++++++++++++++++++++ drivers/gpu/drm/i915/intel_atomic_plane.c | 84 ++++++++++- drivers/gpu/drm/i915/intel_crt.c | 3 + drivers/gpu/drm/i915/intel_display.c | 97 +++++++++---- drivers/gpu/drm/i915/intel_dp.c | 3 + drivers/gpu/drm/i915/intel_dp_mst.c | 3 + drivers/gpu/drm/i915/intel_drv.h | 36 ++++- drivers/gpu/drm/i915/intel_dsi.c | 2 + drivers/gpu/drm/i915/intel_dvo.c | 2 + drivers/gpu/drm/i915/intel_fbc.c | 4 +- drivers/gpu/drm/i915/intel_hdmi.c | 3 + drivers/gpu/drm/i915/intel_lvds.c | 3 + drivers/gpu/drm/i915/intel_sdvo.c | 3 + drivers/gpu/drm/i915/intel_sprite.c | 65 +++------ drivers/gpu/drm/i915/intel_tv.c | 3 + include/drm/drm_plane_helper.h | 3 + 21 files changed, 593 insertions(+), 83 deletions(-) create mode 100644 drivers/gpu/drm/i915/intel_atomic.c -- 1.8.5.1 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx