[PATCH v3 0/5] drm/ast: Place cursor BOs at VRAM high-end
Gerd Hoffmann
kraxel at redhat.com
Wed Oct 2 08:59:55 UTC 2019
On Fri, Sep 27, 2019 at 11:03:04AM +0200, Thomas Zimmermann wrote:
> (was: drm/ast/mgag200: Place cursor BOs at VRAM high-end)
>
> This patchset cleans up the memory management of HW cursors in ast. It
> further moves the allocated cursor BOs to the of the video RAM to reduce
> memory fragmentation.
>
> The ast driver manages cursor memory in a dedicated GEM VRAM buffer
> object. It uses a double-buffering scheme of alternating between offsets
> within the GEM BO. The code is convoluted and can lead to memory
> fragmentation if the BO is stored the middle of VRAM. This is especially
> a problem as ast devices only have a small amount of video memory (e.g.,
> 8 MiB).
>
> With this patchset, the cursor handling in ast is first split up into
> separate functions for copying cursor images, managing buffer objects,
> setting scanout addresses, and moving and hiding the cursor. Furthermore,
> the driver dedicates a few KiB at the high end of the device's video
> memory to storing the cursor's buffer objects. This prevents memory
> fragmentation.
>
> The patchset has been tested on ast hardware.
>
> v3:
> * split-off ast patches into separate series
> * move around ast_{show,hide}_cursor in a separate patch
> * fix space-before-tab error near AST_HWC_SIGNATURE_CHECKSUM
> v2:
> * remove VRAM buffers in favor of GEM BOs
> * manage BO placement with pin flag
Looks all sane to me, series is
Acked-by: Gerd Hoffmann <kraxel at redhat.com>
>
>
> Thomas Zimmermann (5):
> drm/ast: Don't call ast_show_cursor() from ast_cursor_move()
> drm/ast: Move ast_{show,hide}_cursor() within source file
> drm/ast: Move cursor update code to ast_show_cursor()
> drm/ast: Move cursor offset swapping into ast_show_cursor()
> drm/ast: Allocate cursor BOs at high end of video memory
>
> drivers/gpu/drm/ast/ast_drv.h | 43 +++---
> drivers/gpu/drm/ast/ast_mode.c | 235 +++++++++++++++++++--------------
> 2 files changed, 158 insertions(+), 120 deletions(-)
>
> --
> 2.23.0
>
More information about the dri-devel
mailing list