OpenCloudOS-Kernel/drivers/gpu/drm/vc4
Eric Anholt 98830d91da drm/vc4: Add T-format scanout support.
The T tiling format is what V3D uses for textures, with no raster
support at all until later revisions of the hardware (and always at a
large 3D performance penalty).  If we can't scan out V3D's format,
then we often need to do a relayout at some stage of the pipeline,
either right before texturing from the scanout buffer (common in X11
without a compositor) or between a tiled screen buffer right before
scanout (an option I've considered in trying to resolve this
inconsistency, but which means needing to use the dirty fb ioctl and
having some update policy).

T-format scanout lets us avoid either of those shadow copies, for a
massive, obvious performance improvement to X11 window dragging
without a compositor.  Unfortunately, enabling a compositor to work
around the discrepancy has turned out to be too costly in memory
consumption for the Raspbian distribution.

Because the HVS operates a scanline at a time, compositing from T does
increase the memory bandwidth cost of scanout.  On my 1920x1080@32bpp
display on a RPi3, we go from about 15% of system memory bandwidth
with linear to about 20% with tiled.  However, for X11 this still ends
up being a huge performance win in active usage.

This patch doesn't yet handle src_x/src_y offsetting within the tiled
buffer.  However, we fail to do so for untiled buffers already.

Signed-off-by: Eric Anholt <eric@anholt.net>
Link: http://patchwork.freedesktop.org/patch/msgid/20170608001336.12842-1-eric@anholt.net
Reviewed-by: Boris Brezillon <boris.brezillon@free-electrons.com>
2017-06-15 16:02:45 -07:00
..
Kconfig drm/vc4: Switch DSI to the panel-bridge layer, and support bridges. 2017-06-05 15:07:37 +05:30
Makefile drm/vc4: fix include notation and remove -Iinclude/drm flag 2017-05-22 09:36:01 +02:00
vc4_bo.c drm/vc4/vc4_bo.c: always set bo->resv 2017-06-12 16:48:03 -07:00
vc4_crtc.c drm/vc4: use drm_for_each_connector_iter() 2017-05-26 02:12:44 -03:00
vc4_debugfs.c drm/vc4: Add DSI driver 2017-02-01 12:51:23 -08:00
vc4_dpi.c drm/vc4: Switch DPI to using the panel-bridge helper. 2017-06-05 15:21:26 +05:30
vc4_drv.c drm/vc4: fix include notation and remove -Iinclude/drm flag 2017-05-22 09:36:01 +02:00
vc4_drv.h drm/vc4: Fix comment in vc4_drv.h 2017-05-31 10:50:54 -07:00
vc4_dsi.c drm/vc4: Switch DSI to the panel-bridge layer, and support bridges. 2017-06-05 15:07:37 +05:30
vc4_fence.c drm/vc4: Expose dma-buf fences for V3D rendering. 2017-04-13 11:00:28 -07:00
vc4_gem.c drm/vc4: Fix resource leak in 'vc4_get_hang_state_ioctl()' in error handling path 2017-06-12 17:11:39 -07:00
vc4_hdmi.c drm/vc4: fix include notation and remove -Iinclude/drm flag 2017-05-22 09:36:01 +02:00
vc4_hvs.c drm/vc4: fix include notation and remove -Iinclude/drm flag 2017-05-22 09:36:01 +02:00
vc4_irq.c drm/vc4: Allow using more than 256MB of CMA memory. 2017-04-18 14:32:20 -07:00
vc4_kms.c drm/vc4: fix include notation and remove -Iinclude/drm flag 2017-05-22 09:36:01 +02:00
vc4_packet.h drm/vc4: Add support for drawing 3D frames. 2015-12-07 20:05:10 -08:00
vc4_plane.c drm/vc4: Add T-format scanout support. 2017-06-15 16:02:45 -07:00
vc4_qpu_defines.h drm/vc4: Fix definition of QPU_R_MS_REV_FLAGS 2016-07-15 15:19:52 -07:00
vc4_regs.h drm/vc4: Add T-format scanout support. 2017-06-15 16:02:45 -07:00
vc4_render_cl.c drm/vc4: Allow using more than 256MB of CMA memory. 2017-04-18 14:32:20 -07:00
vc4_trace.h drm/vc4: Add support for drawing 3D frames. 2015-12-07 20:05:10 -08:00
vc4_trace_points.c drm/vc4: Add support for drawing 3D frames. 2015-12-07 20:05:10 -08:00
vc4_v3d.c drm/vc4: Mark the device as active when enabling runtime PM. 2017-06-02 13:00:47 -07:00
vc4_validate.c drm/vc4: fix spelling mistake: "dimesions" -> "dimensions" 2017-05-16 09:42:20 -07:00
vc4_validate_shaders.c drm/vc4: Extend and edit documentation for output from the RST 2017-02-28 12:51:49 -08:00
vc4_vec.c drm/vc4: Extend and edit documentation for output from the RST 2017-02-28 12:51:49 -08:00