All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/22] drm/i915: Handle fb->offsets[] and rewrite fb rotation handling to be more generic
@ 2015-10-14 16:28 ville.syrjala
  2015-10-14 16:28 ` [PATCH 01/22] drm: Add drm_format_plane_width() and drm_format_plane_height() ville.syrjala
                   ` (22 more replies)
  0 siblings, 23 replies; 76+ messages in thread
From: ville.syrjala @ 2015-10-14 16:28 UTC (permalink / raw)
  To: intel-gfx

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

So while reviewing the NV12 stuff it became clear to me no one
had really given fb->offsets[] handling any serious thought.
So this patch series aims to fix that. We now treat fb->offsets[]
as a linear offset always. One clear benefit over treating it as
a linear offset as opposed to a raw byte offset is that we don't
have to think about the layout of bytes within the tile at all.

The series also generalizes the page rotation to be format agnostic,
the caller just specifies the desired geometry in pages for each
plane, and the rotation code builds up the sg. The intel_rotation_info
then just contains the minimal amount of information needed to
do the page rotation.

SKL+ also gets changed to use the compute_page_offset stuff so that
the plane SURF register will contain the closes (properly aligned)
page boundary, and the x/y offsets deal with whatever is left over.
The plane code for the other platforms also gets simpler in the end
I think. Also the 90/270 rotation handling becomes rather trivial
for the plane code.

I should still write some decent tests to exercise fb->offsets[].

Series available here:
git://github.com/vsyrjala/linux.git fb_offsets

Ville Syrjälä (22):
  drm: Add drm_format_plane_width() and drm_format_plane_height()
  drm/i915: Pass modifier instead of tiling_mode to
    gen4_compute_page_offset()
  drm/i915: Factor out intel_tile_width()
  drm/i915: Redo intel_tile_height() as intel_tile_size() /
    intel_tile_width()
  drm/i915: change intel_fill_fb_ggtt_view() to use the real tile size
  drm/i915: Use intel_tile_{size,width,height}() in
    intel_gen4_compute_page_offset()
  drm/i915: s/intel_gen4_compute_page_offset/intel_compute_page_offset/
  drm/i915: Pass 90/270 vs. 0/180 rotation info for
    intel_gen4_compute_page_offset()
  drm/i915: Refactor intel_surf_alignment()
  drm/i915: Support for extra alignment for tiled surfaces
  drm/i915: Don't pass plane+plane_state to intel_pin_and_fence_fb_obj()
  drm/i915: Set i915_ggtt_view_normal type explicitly
  drm/i915: Move the partial and rotated view data into the same union
  drm/i915: Don't treat differently sized rotated views as equal
  drm/i915: Pass the dma_addr_t array as const to rotate_pages()
  drm/i915: Pass stride to rotate_pages()
  drm/i915: Pass rotation_info to intel_rotate_fb_obj_pages()
  drm/i915: Make sure fb offset is (macro)pixel aligned
  drm/i915: Don't leak framebuffer_references if drm_framebuffer_init()
    fails
  drm/i915: Pass drm_frambuffer to intel_compute_page_offset()
  drm/i915: Rewrite fb rotation GTT handling
  drm/i915: Don't pass pitch to intel_compute_page_offset()

 drivers/gpu/drm/i915/i915_gem.c      |  10 +-
 drivers/gpu/drm/i915/i915_gem_gtt.c  |  88 ++--
 drivers/gpu/drm/i915/i915_gem_gtt.h  |  27 +-
 drivers/gpu/drm/i915/intel_display.c | 792 +++++++++++++++++++++++------------
 drivers/gpu/drm/i915/intel_drv.h     |  46 +-
 drivers/gpu/drm/i915/intel_fbdev.c   |   2 +-
 drivers/gpu/drm/i915/intel_sprite.c  | 128 +++---
 include/drm/drm_crtc.h               |  12 +
 8 files changed, 681 insertions(+), 424 deletions(-)

-- 
2.4.9

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

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

end of thread, other threads:[~2015-10-21 15:43 UTC | newest]

Thread overview: 76+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-10-14 16:28 [PATCH 00/22] drm/i915: Handle fb->offsets[] and rewrite fb rotation handling to be more generic ville.syrjala
2015-10-14 16:28 ` [PATCH 01/22] drm: Add drm_format_plane_width() and drm_format_plane_height() ville.syrjala
2015-10-21  9:53   ` Daniel Vetter
2015-10-14 16:28 ` [PATCH 02/22] drm/i915: Pass modifier instead of tiling_mode to gen4_compute_page_offset() ville.syrjala
2015-10-21  9:54   ` Daniel Vetter
2015-10-14 16:28 ` [PATCH 03/22] drm/i915: Factor out intel_tile_width() ville.syrjala
2015-10-21 10:15   ` Daniel Vetter
2015-10-21 12:09     ` Ville Syrjälä
2015-10-21 12:16       ` Daniel Vetter
2015-10-14 16:28 ` [PATCH 04/22] drm/i915: Redo intel_tile_height() as intel_tile_size() / intel_tile_width() ville.syrjala
2015-10-21 10:21   ` Daniel Vetter
2015-10-14 16:28 ` [PATCH 05/22] drm/i915: change intel_fill_fb_ggtt_view() to use the real tile size ville.syrjala
2015-10-21 10:22   ` Daniel Vetter
2015-10-14 16:28 ` [PATCH 06/22] drm/i915: Use intel_tile_{size, width, height}() in intel_gen4_compute_page_offset() ville.syrjala
2015-10-21 10:24   ` Daniel Vetter
2015-10-14 16:28 ` [PATCH 07/22] drm/i915: s/intel_gen4_compute_page_offset/intel_compute_page_offset/ ville.syrjala
2015-10-21 10:45   ` Daniel Vetter
2015-10-14 16:29 ` [PATCH 08/22] drm/i915: Pass 90/270 vs. 0/180 rotation info for intel_gen4_compute_page_offset() ville.syrjala
2015-10-21 10:53   ` Daniel Vetter
2015-10-21 11:36     ` Ville Syrjälä
2015-10-21 12:11       ` Daniel Vetter
2015-10-14 16:29 ` [PATCH 09/22] drm/i915: Refactor intel_surf_alignment() ville.syrjala
2015-10-21 10:54   ` Daniel Vetter
2015-10-14 16:29 ` [PATCH 10/22] drm/i915: Support for extra alignment for tiled surfaces ville.syrjala
2015-10-21 11:22   ` Daniel Vetter
2015-10-21 11:32     ` Daniel Vetter
2015-10-21 11:39     ` Ville Syrjälä
2015-10-14 16:29 ` [PATCH 11/22] drm/i915: Don't pass plane+plane_state to intel_pin_and_fence_fb_obj() ville.syrjala
2015-10-15  9:08   ` Chris Wilson
2015-10-15  9:36     ` Ville Syrjälä
2015-10-15 10:05       ` Daniel Vetter
2015-10-15 10:47         ` [PATCH] drm/i915: Split out aliasing-ppgtt from ggtt_bind_vma() Chris Wilson
2015-10-15 11:10   ` [PATCH 11/22] drm/i915: Don't pass plane+plane_state to intel_pin_and_fence_fb_obj() Tvrtko Ursulin
2015-10-15 11:17     ` Ville Syrjälä
2015-10-15 11:30       ` Tvrtko Ursulin
2015-10-15 12:11         ` Ville Syrjälä
2015-10-21 11:28   ` Daniel Vetter
2015-10-21 12:17     ` Tvrtko Ursulin
2015-10-21 13:09       ` Ville Syrjälä
2015-10-21 13:22         ` Tvrtko Ursulin
2015-10-21 14:22           ` Ville Syrjälä
2015-10-21 15:20             ` Daniel Vetter
2015-10-21 15:42               ` Ville Syrjälä
2015-10-14 16:29 ` [PATCH 12/22] drm/i915: Set i915_ggtt_view_normal type explicitly ville.syrjala
2015-10-15 11:15   ` Tvrtko Ursulin
2015-10-15 12:01     ` Daniel Vetter
2015-10-21 11:28       ` Daniel Vetter
2015-10-14 16:29 ` [PATCH 13/22] drm/i915: Move the partial and rotated view data into the same union ville.syrjala
2015-10-21 11:30   ` Daniel Vetter
2015-10-14 16:29 ` [PATCH 14/22] drm/i915: Don't treat differently sized rotated views as equal ville.syrjala
2015-10-15 11:18   ` Tvrtko Ursulin
2015-10-15 12:02     ` Daniel Vetter
2015-10-15 12:06       ` Ville Syrjälä
2015-10-15 12:24         ` Daniel Vetter
2015-10-21 13:06           ` Ville Syrjälä
2015-10-21 11:36   ` Daniel Vetter
2015-10-14 16:29 ` [PATCH 15/22] drm/i915: Pass the dma_addr_t array as const to rotate_pages() ville.syrjala
2015-10-21 11:36   ` Daniel Vetter
2015-10-14 16:29 ` [PATCH 16/22] drm/i915: Pass stride " ville.syrjala
2015-10-14 16:29 ` [PATCH 17/22] drm/i915: Pass rotation_info to intel_rotate_fb_obj_pages() ville.syrjala
2015-10-14 16:29 ` [PATCH 18/22] drm/i915: Make sure fb offset is (macro)pixel aligned ville.syrjala
2015-10-14 16:43   ` Daniel Vetter
2015-10-21 11:41   ` Daniel Vetter
2015-10-14 16:29 ` [PATCH 19/22] drm/i915: Don't leak framebuffer_references if drm_framebuffer_init() fails ville.syrjala
2015-10-21 11:42   ` Daniel Vetter
2015-10-14 16:29 ` [PATCH 20/22] drm/i915: Pass drm_frambuffer to intel_compute_page_offset() ville.syrjala
2015-10-21 11:43   ` Daniel Vetter
2015-10-14 16:29 ` [PATCH 21/22] drm/i915: Rewrite fb rotation GTT handling ville.syrjala
2015-10-15 17:59   ` [PATCH v2 " ville.syrjala
2015-10-21 12:01     ` Daniel Vetter
2015-10-21 14:19       ` Ville Syrjälä
2015-10-14 16:29 ` [PATCH 22/22] drm/i915: Don't pass pitch to intel_compute_page_offset() ville.syrjala
2015-10-21 12:06   ` Daniel Vetter
2015-10-14 16:59 ` [PATCH 00/22] drm/i915: Handle fb->offsets[] and rewrite fb rotation handling to be more generic Daniel Vetter
2015-10-21 12:09   ` Daniel Vetter
2015-10-21 15:15     ` Daniel Vetter

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.