All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v4 0/4] Blobifiers (FKA GET_PLANE2)
@ 2017-06-23 16:45 Ben Widawsky
  2017-06-23 16:45 ` [PATCH 1/4] drm: Plumb modifiers through plane init Ben Widawsky
                   ` (4 more replies)
  0 siblings, 5 replies; 16+ messages in thread
From: Ben Widawsky @ 2017-06-23 16:45 UTC (permalink / raw)
  To: DRI Development, Intel GFX; +Cc: Ben Widawsky, Daniel Stone

These patches create the blob property for modifiers, and the implementation for
i915 modifiers. This [generally] has been tested in Weston by Daniel Stone as
well as an earlier version of kmscube. This patch series was formerly known as
"GET_PLANE2" because the interface for obtaining the modifiers was extended
throug GET_PLANE instead of a blob property.

The modifier blob (blobifier) presents a list of modifiers per plane, and a
related bitmask [1] back to userspace, via KMS, so that a client such as a
compositor may utilize those modifiers for buffer creation via GBM, or buffer
import via dmabuf/EGL.

All vendors may optimize via their supported modifiers. For Intel, this is one
of the pieces required to support end to end lossless compression (a memory
bandwidth saving technique semi-common across GPUs).

I do apologize if I missed some previous review comments. A ton of things came
up and it took a while to spin this rev. Nothing was missing intentionally.

[1] The bitmask is used to show the connection between which modifiers are
supported by which formats.

Ben Widawsky (4):
  drm: Plumb modifiers through plane init
  drm: Create a format/modifier blob
  drm/i915: Add format modifiers for Intel
  drm/i915: Add support for CCS modifiers

 drivers/gpu/drm/arc/arcpgu_crtc.c               |   1 +
 drivers/gpu/drm/arm/hdlcd_crtc.c                |   1 +
 drivers/gpu/drm/arm/malidp_planes.c             |   2 +-
 drivers/gpu/drm/armada/armada_crtc.c            |   1 +
 drivers/gpu/drm/armada/armada_overlay.c         |   1 +
 drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c |   3 +-
 drivers/gpu/drm/drm_mode_config.c               |   7 ++
 drivers/gpu/drm/drm_modeset_helper.c            |   1 +
 drivers/gpu/drm/drm_plane.c                     | 119 +++++++++++++++++-
 drivers/gpu/drm/drm_simple_kms_helper.c         |   3 +
 drivers/gpu/drm/exynos/exynos_drm_plane.c       |   2 +-
 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_plane.c     |   2 +-
 drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c  |   1 +
 drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c |   2 +-
 drivers/gpu/drm/i915/intel_display.c            | 155 +++++++++++++++++++++++-
 drivers/gpu/drm/i915/intel_sprite.c             | 117 +++++++++++++++++-
 drivers/gpu/drm/imx/ipuv3-plane.c               |   4 +-
 drivers/gpu/drm/mediatek/mtk_drm_plane.c        |   2 +-
 drivers/gpu/drm/meson/meson_plane.c             |   1 +
 drivers/gpu/drm/msm/mdp/mdp4/mdp4_plane.c       |   2 +-
 drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c       |   4 +-
 drivers/gpu/drm/mxsfb/mxsfb_drv.c               |   2 +-
 drivers/gpu/drm/nouveau/nv50_display.c          |   5 +-
 drivers/gpu/drm/omapdrm/omap_plane.c            |   2 +-
 drivers/gpu/drm/pl111/pl111_display.c           |   2 +-
 drivers/gpu/drm/qxl/qxl_display.c               |   2 +-
 drivers/gpu/drm/rcar-du/rcar_du_plane.c         |   4 +-
 drivers/gpu/drm/rcar-du/rcar_du_vsp.c           |   4 +-
 drivers/gpu/drm/rockchip/rockchip_drm_vop.c     |   4 +-
 drivers/gpu/drm/sti/sti_cursor.c                |   2 +-
 drivers/gpu/drm/sti/sti_gdp.c                   |   2 +-
 drivers/gpu/drm/sti/sti_hqvdp.c                 |   2 +-
 drivers/gpu/drm/stm/ltdc.c                      |   2 +-
 drivers/gpu/drm/sun4i/sun4i_layer.c             |   2 +-
 drivers/gpu/drm/tegra/dc.c                      |  12 +-
 drivers/gpu/drm/tinydrm/core/tinydrm-pipe.c     |   2 +-
 drivers/gpu/drm/vc4/vc4_plane.c                 |   2 +-
 drivers/gpu/drm/virtio/virtgpu_plane.c          |   2 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c             |   4 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c            |   4 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c            |   4 +-
 drivers/gpu/drm/zte/zx_plane.c                  |   2 +-
 include/drm/drm_mode_config.h                   |   6 +
 include/drm/drm_plane.h                         |  22 +++-
 include/drm/drm_simple_kms_helper.h             |   1 +
 include/uapi/drm/drm_fourcc.h                   |  11 ++
 include/uapi/drm/drm_mode.h                     |  50 ++++++++
 47 files changed, 539 insertions(+), 49 deletions(-)

-- 
2.13.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 16+ messages in thread
* [PATCH 0/4] [v2] Blobifiers (FKA GET_PLANE2)
@ 2017-07-24  3:46 Ben Widawsky
  2017-07-24  3:46 ` [PATCH 4/4] drm/i915: Add support for CCS modifiers Ben Widawsky
  0 siblings, 1 reply; 16+ messages in thread
From: Ben Widawsky @ 2017-07-24  3:46 UTC (permalink / raw)
  To: Intel GFX, DRI Development; +Cc: Ben Widawsky

Second attempt (although most patches are much further along than that) and the
blob property for modifiers.

This small series adds the DRM blob property that allows clients to be made
aware of per plane modifiers and the formats which are supported in conjunction
with  those modifiers. This interface will allow clients to create buffers for
scanout with a good set of modifiers, and later import those buffers (through
EGL already, and Vulkan WSI later) into a graphics runtime. EGL/WSI will provide
similar interfaces for rendering - modifiers which can be used for rendering.

Ben Widawsky (4):
  drm: Plumb modifiers through plane init
  drm: Create a format/modifier blob
  drm/i915: Add format modifiers for Intel
  drm/i915: Add support for CCS modifiers

 drivers/gpu/drm/arc/arcpgu_crtc.c               |   1 +
 drivers/gpu/drm/arm/hdlcd_crtc.c                |   1 +
 drivers/gpu/drm/arm/malidp_planes.c             |   2 +-
 drivers/gpu/drm/armada/armada_crtc.c            |   1 +
 drivers/gpu/drm/armada/armada_overlay.c         |   1 +
 drivers/gpu/drm/atmel-hlcdc/atmel_hlcdc_plane.c |   3 +-
 drivers/gpu/drm/drm_mode_config.c               |   7 +
 drivers/gpu/drm/drm_modeset_helper.c            |   1 +
 drivers/gpu/drm/drm_plane.c                     | 120 +++++++++++++++++-
 drivers/gpu/drm/drm_simple_kms_helper.c         |   3 +
 drivers/gpu/drm/exynos/exynos_drm_plane.c       |   2 +-
 drivers/gpu/drm/fsl-dcu/fsl_dcu_drm_plane.c     |   2 +-
 drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_de.c  |   1 +
 drivers/gpu/drm/hisilicon/kirin/kirin_drm_ade.c |   2 +-
 drivers/gpu/drm/i915/intel_display.c            | 148 +++++++++++++++++++++-
 drivers/gpu/drm/i915/intel_drv.h                |   1 -
 drivers/gpu/drm/i915/intel_sprite.c             | 162 +++++++++++++++++++++++-
 drivers/gpu/drm/imx/ipuv3-plane.c               |   4 +-
 drivers/gpu/drm/mediatek/mtk_drm_plane.c        |   2 +-
 drivers/gpu/drm/meson/meson_plane.c             |   1 +
 drivers/gpu/drm/msm/mdp/mdp4/mdp4_plane.c       |   2 +-
 drivers/gpu/drm/msm/mdp/mdp5/mdp5_plane.c       |   4 +-
 drivers/gpu/drm/mxsfb/mxsfb_drv.c               |   2 +-
 drivers/gpu/drm/nouveau/nv50_display.c          |   5 +-
 drivers/gpu/drm/omapdrm/omap_plane.c            |   2 +-
 drivers/gpu/drm/pl111/pl111_display.c           |   2 +-
 drivers/gpu/drm/qxl/qxl_display.c               |   2 +-
 drivers/gpu/drm/rcar-du/rcar_du_plane.c         |   4 +-
 drivers/gpu/drm/rcar-du/rcar_du_vsp.c           |   4 +-
 drivers/gpu/drm/rockchip/rockchip_drm_vop.c     |   4 +-
 drivers/gpu/drm/sti/sti_cursor.c                |   2 +-
 drivers/gpu/drm/sti/sti_gdp.c                   |   2 +-
 drivers/gpu/drm/sti/sti_hqvdp.c                 |   2 +-
 drivers/gpu/drm/stm/ltdc.c                      |   2 +-
 drivers/gpu/drm/sun4i/sun4i_layer.c             |   2 +-
 drivers/gpu/drm/tegra/dc.c                      |  12 +-
 drivers/gpu/drm/tinydrm/core/tinydrm-pipe.c     |   2 +-
 drivers/gpu/drm/vc4/vc4_plane.c                 |   2 +-
 drivers/gpu/drm/virtio/virtgpu_plane.c          |   2 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_ldu.c             |   4 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_scrn.c            |   4 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c            |   4 +-
 drivers/gpu/drm/zte/zx_plane.c                  |   2 +-
 include/drm/drm_mode_config.h                   |   6 +
 include/drm/drm_plane.h                         |  22 +++-
 include/drm/drm_simple_kms_helper.h             |   1 +
 include/uapi/drm/drm_fourcc.h                   |  11 ++
 include/uapi/drm/drm_mode.h                     |  50 ++++++++
 48 files changed, 576 insertions(+), 52 deletions(-)

-- 
2.13.3

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2017-07-24 23:29 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-06-23 16:45 [PATCH v4 0/4] Blobifiers (FKA GET_PLANE2) Ben Widawsky
2017-06-23 16:45 ` [PATCH 1/4] drm: Plumb modifiers through plane init Ben Widawsky
2017-06-23 16:45 ` [PATCH 2/4] drm: Create a format/modifier blob Ben Widawsky
2017-06-29 19:49   ` Ville Syrjälä
2017-07-14 18:41     ` Ben Widawsky
2017-07-14 19:10       ` Ville Syrjälä
2017-07-21  4:20         ` Ben Widawsky
2017-06-23 16:45 ` [PATCH 3/4] drm/i915: Add format modifiers for Intel Ben Widawsky
2017-06-26 11:32   ` Emil Velikov
2017-06-29 19:59   ` Ville Syrjälä
2017-06-23 16:45 ` [PATCH 4/4] drm/i915: Add support for CCS modifiers Ben Widawsky
2017-06-29 20:02   ` Ville Syrjälä
2017-07-21 20:12     ` Ben Widawsky
2017-06-23 16:55 ` ✗ Fi.CI.BAT: failure for Blobifiers (FKA GET_PLANE2) Patchwork
  -- strict thread matches above, loose matches on Subject: below --
2017-07-24  3:46 [PATCH 0/4] [v2] " Ben Widawsky
2017-07-24  3:46 ` [PATCH 4/4] drm/i915: Add support for CCS modifiers Ben Widawsky
2017-07-24 23:29   ` kbuild test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.