[Intel-gfx] [RFCv3 00/14] Unified plane support

Rob Clark robdclark at gmail.com
Wed Mar 19 01:37:15 CET 2014


On Tue, Mar 18, 2014 at 8:22 PM, Matt Roper <matthew.d.roper at intel.com> wrote:
> Previous revision and explanation of series:
>    http://lists.freedesktop.org/archives/dri-devel/2014-March/055222.html
>
> Main changes since last pass:
>  * Added cursor plane support on i915.  Unfortunately it isn't possible to
>    create nice generic helper functions that make use of the legacy API's for
>    cursor planes as was done for primary planes; the legacy cursor ioctl's take
>    a driver handle directly (e.g., from GEM) rather than a DRM framebuffer.
>    With the unified plane support, we receive a DRM framebuffer via the SetPlane
>    API, but have no way of turning that into a driver handle that can be passed
>    to the legacy interfaces.
>  * Updated msm and omapdrm to use their existing "private" planes as primary
>    rather than using the primary helper functions.  (thanks Rob Clark!)
>  * Fixed several s/crtc->fb/crtc->primary->fb/ conversions that were missed
>    on the first pass (or new instances that popped up due to rebasing to
>    the latest code).
>
> I believe some of the next steps are:
>  * Create some new read-only plane properties that describe in more detail the
>    capabilities & limitations of various planes (max/min size, scaling
>    capabilities, tiling restrictions, etc.) so that generic userspace
>    compositors can make intelligent decisions about how best to use the various
>    planes on the plane list.  If anyone has strong feelings on what these
>    properties should look like, this would be a good time to start the
>    discussion.
>  * Update cursor support for the rest of the non-i915 drivers.  I believe the
>    list of drivers that currently support cursors are: armada, ast, gma500,
>    mgag200, msm, nouveau, radeon, vmwgfx, and qxl.
>  * Update imx-drm's CRTC creation to use its existing private primary plane
>    rather than using the primary helper function to create one.
>  * Provide patches for weston & xf86-video-modesetting that make use of the
>    unified plane interface to make real-world testing of this patchset a
>    bit easier.

not sure other's opionions, but personally I wouldn't object to doing
some of this as follow-up patchsets.  Ofc my selfish motivation is
that basing atomic on top of primary plane really seems like the right
move, and so sooner we can get the initial parts of this patchset
merged, the sooner we can try to merge atomic ;-)

BR,
-R

>
> Note that the first patch here is simply a build fix for current breakage of
> the drm-intel-nightly branch of the drm-intel repo.
>
>
> Matt Roper (14):
>   SQUASH! drm/i915: Do not dereference pointers from ring buffer in
>     evict event
>   drm: Add support for multiple plane types
>   drm: Add primary plane helpers
>   drm/exynos: Restrict plane loops to only operate on overlay planes
>   drm/i915: Restrict plane loops to only operate on overlay planes
>   drm: Add plane type property
>   drm: Specify primary plane at CRTC initialization (v2)
>   drm: Replace crtc fb with primary plane fb (v2)
>   drm: Allow userspace to ask for full plane list (universal planes)
>   drm/i915: Rename similar plane functions to avoid confusion
>   drm/i915: Intel-specific primary plane handling
>   drm: Specify cursor plane at CRTC initialization
>   drm/i915: Split cursor update code from cursor ioctl handling
>   drm/i915: Add cursor handlers and create cursor at crtc init
>
>  drivers/gpu/drm/armada/armada_crtc.c         |   4 +-
>  drivers/gpu/drm/armada/armada_overlay.c      |   3 +-
>  drivers/gpu/drm/ast/ast_mode.c               |  16 +-
>  drivers/gpu/drm/bochs/bochs_kms.c            |   8 +-
>  drivers/gpu/drm/cirrus/cirrus_mode.c         |  15 +-
>  drivers/gpu/drm/drm_crtc.c                   | 441 +++++++++++++++----
>  drivers/gpu/drm/drm_crtc_helper.c            |  21 +-
>  drivers/gpu/drm/drm_fb_helper.c              |   9 +-
>  drivers/gpu/drm/drm_ioctl.c                  |   5 +
>  drivers/gpu/drm/exynos/exynos_drm_crtc.c     |   4 +-
>  drivers/gpu/drm/exynos/exynos_drm_encoder.c  |   6 +
>  drivers/gpu/drm/exynos/exynos_drm_plane.c    |   4 +-
>  drivers/gpu/drm/gma500/cdv_intel_display.c   |   2 +-
>  drivers/gpu/drm/gma500/cdv_intel_dp.c        |   2 +-
>  drivers/gpu/drm/gma500/cdv_intel_hdmi.c      |   3 +-
>  drivers/gpu/drm/gma500/cdv_intel_lvds.c      |   2 +-
>  drivers/gpu/drm/gma500/gma_display.c         |  17 +-
>  drivers/gpu/drm/gma500/mdfld_dsi_output.c    |   2 +-
>  drivers/gpu/drm/gma500/mdfld_intel_display.c |  17 +-
>  drivers/gpu/drm/gma500/oaktrail_crtc.c       |  13 +-
>  drivers/gpu/drm/gma500/psb_intel_display.c   |   7 +-
>  drivers/gpu/drm/gma500/psb_intel_lvds.c      |   2 +-
>  drivers/gpu/drm/gma500/psb_intel_sdvo.c      |   2 +-
>  drivers/gpu/drm/i915/i915_debugfs.c          |   4 +-
>  drivers/gpu/drm/i915/i915_drv.h              |   5 +-
>  drivers/gpu/drm/i915/i915_irq.c              |   4 +-
>  drivers/gpu/drm/i915/i915_trace.h            |   2 +-
>  drivers/gpu/drm/i915/intel_display.c         | 623 ++++++++++++++++++++-------
>  drivers/gpu/drm/i915/intel_dp.c              |   5 +-
>  drivers/gpu/drm/i915/intel_drv.h             |   3 +-
>  drivers/gpu/drm/i915/intel_fbdev.c           |   6 +-
>  drivers/gpu/drm/i915/intel_overlay.c         |   4 +-
>  drivers/gpu/drm/i915/intel_pm.c              |  39 +-
>  drivers/gpu/drm/i915/intel_sprite.c          |   2 +-
>  drivers/gpu/drm/mgag200/mgag200_mode.c       |  33 +-
>  drivers/gpu/drm/msm/mdp/mdp4/mdp4_crtc.c     |  33 +-
>  drivers/gpu/drm/msm/mdp/mdp4/mdp4_plane.c    |   4 +-
>  drivers/gpu/drm/msm/mdp/mdp5/mdp5_crtc.c     |  27 +-
>  drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c    |   4 +-
>  drivers/gpu/drm/nouveau/dispnv04/crtc.c      |  24 +-
>  drivers/gpu/drm/nouveau/dispnv04/dfp.c       |   2 +-
>  drivers/gpu/drm/nouveau/dispnv04/overlay.c   |   4 +-
>  drivers/gpu/drm/nouveau/nouveau_display.c    |   8 +-
>  drivers/gpu/drm/nouveau/nv50_display.c       |  21 +-
>  drivers/gpu/drm/omapdrm/omap_crtc.c          |   2 +-
>  drivers/gpu/drm/omapdrm/omap_plane.c         |   4 +-
>  drivers/gpu/drm/qxl/qxl_display.c            |  15 +-
>  drivers/gpu/drm/radeon/atombios_crtc.c       |  20 +-
>  drivers/gpu/drm/radeon/r100.c                |   4 +-
>  drivers/gpu/drm/radeon/radeon_connectors.c   |   2 +-
>  drivers/gpu/drm/radeon/radeon_device.c       |   3 +-
>  drivers/gpu/drm/radeon/radeon_display.c      |   9 +-
>  drivers/gpu/drm/radeon/radeon_legacy_crtc.c  |  16 +-
>  drivers/gpu/drm/rcar-du/rcar_du_crtc.c       |   4 +-
>  drivers/gpu/drm/rcar-du/rcar_du_plane.c      |   3 +-
>  drivers/gpu/drm/shmobile/shmob_drm_crtc.c    |   3 +-
>  drivers/gpu/drm/shmobile/shmob_drm_plane.c   |   2 +-
>  drivers/gpu/drm/tegra/dc.c                   |   7 +-
>  drivers/gpu/drm/tilcdc/tilcdc_crtc.c         |   4 +-
>  drivers/gpu/drm/udl/udl_modeset.c            |   6 +-
>  drivers/gpu/drm/vmwgfx/vmwgfx_kms.c          |  14 +-
>  drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c          |  12 +-
>  drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c         |  12 +-
>  drivers/staging/imx-drm/imx-drm-core.c       |   4 +-
>  drivers/staging/imx-drm/ipuv3-plane.c        |   4 +-
>  include/drm/drmP.h                           |   5 +
>  include/drm/drm_crtc.h                       | 115 ++++-
>  include/uapi/drm/drm.h                       |   8 +
>  68 files changed, 1252 insertions(+), 488 deletions(-)
>
> Cc: Intel Graphics Development <intel-gfx at lists.freedesktop.org>
> --
> 1.8.5.1
>
> _______________________________________________
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel



More information about the Intel-gfx mailing list