[PATCH v3 0/7] drm/mgag200: Place cursor BOs at VRAM high-end

Gerd Hoffmann kraxel at redhat.com
Wed Oct 2 09:02:28 UTC 2019


On Fri, Sep 27, 2019 at 11:12:54AM +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 mgag200. It
> further moves the allocated cursor BOs to the of the video RAM to reduce
> memory fragmentation.
> 
> The mgag200 driver manages cursor memory in dedicated GEM VRAM buffer
> objects. It uses a double-buffering scheme of alternating between two GEM
> BOs The code is convoluted and can lead to memory fragmentation if a BO
> is stored the middle of VRAM. This is especially a problem as mgag200
> devices only contain a small amount of video memory (e.g., 16 MiB).
> 
> With this patchset, the cursor handling in mgag200 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 a device's video memory
> to storing the cursor's buffer objects. This prevents memory fragmentation.
> 
> The patchset has been tested on mgag200 hardware.

Acked-by: Gerd Hoffmann <kraxel at redhat.com>

> 
> v3:
> 	* split-off mgag200 patches into separate series
> v2:
> 	* remove VRAM buffers in favor of GEM BOs
> 	* manage BO placement with pin flag
> 
> Thomas Zimmermann (7):
>   drm/mgag200: Rename cursor functions to use mgag200_ prefix
>   drm/mgag200: Add init and fini functions for cursor handling
>   drm/mgag200: Add separate move-cursor function
>   drm/mgag200: Move cursor-image update to mgag200_show_cursor()
>   drm/mgag200: Move cursor BO swapping into mgag200_show_cursor()
>   drm/mgag200: Reserve video memory for cursor plane
>   drm/mgag200: Allocate cursor BOs at high end of video memory
> 
>  drivers/gpu/drm/mgag200/mgag200_cursor.c | 313 ++++++++++++++---------
>  drivers/gpu/drm/mgag200/mgag200_drv.h    |  22 +-
>  drivers/gpu/drm/mgag200/mgag200_main.c   |  20 +-
>  drivers/gpu/drm/mgag200/mgag200_mode.c   |   6 +-
>  drivers/gpu/drm/mgag200/mgag200_ttm.c    |   4 +
>  5 files changed, 216 insertions(+), 149 deletions(-)
> 
> --
> 2.23.0
> 


More information about the dri-devel mailing list