Hi Thomas,
Le dim., mai 23 2021 at 21:05:30 +0200, Thomas Zimmermann
<tzimmermann@xxxxxxx> a écrit :
Hi
Am 23.05.21 um 19:04 schrieb Paul Cercueil:
V5 of my patchset which adds the option for having GEM buffers
backed by
non-coherent memory.
Changes from V4:
- [2/3]:
- Rename to drm_fb_cma_sync_non_coherent
- Invert loops for better cache locality
- Only sync BOs that have the non-coherent flag
- Properly sort includes
- Move to drm_fb_cma_helper.c to avoid circular dependency
I'm pretty sure it's still not the right place. That would be
something like drm_gem_cma_atomic_helper.c, but creating a new file
just for a single function doesn't make sense.
drm_fb_cma_sync_non_coherent calls drm_fb_cma_* functions, so it's a
better match than its former location (which wasn't good as it created
a circular dependency between drm.ko and drm-kms-helper.ko).
Do you have a better idea?
- [3/3]:
- Fix drm_atomic_get_new_plane_state() used to retrieve the old
state
- Use custom drm_gem_fb_create()
It's often a better choice to express such differences via different
data structures (i.e., different instances of drm_mode_config_funcs)
but it's not a big deal either.
The different drm_mode_config_funcs instances already exist in
drm_gem_framebuffer_helper.c but are static, and drm_gem_fb_create()
and drm_gem_fb_create_with_dirty() are just tiny wrappers around
drm_gem_fb_create_with_funcs() with the corresponding
drm_mode_config_funcs instance. I didn't want to copy them to
ingenic-drm-drv.c, but maybe I can export the symbols and use
drm_gem_fb_create_with_funcs() directly?
Please go ahaed and merge if no one objects. All patches:
Acked-by: Thomas Zimmermann <tzimmermann@xxxxxxx>
Thanks!
Cheers,
-Paul
Best regards
Thomas
- Only check damage clips and sync DMA buffers if non-coherent
buffers are used
Cheers,
-Paul
Paul Cercueil (3):
drm: Add support for GEM buffers backed by non-coherent memory
drm: Add and export function drm_fb_cma_sync_non_coherent
drm/ingenic: Add option to alloc cached GEM buffers
drivers/gpu/drm/drm_fb_cma_helper.c | 46 ++++++++++++++++++
drivers/gpu/drm/drm_gem_cma_helper.c | 38 +++++++++++----
drivers/gpu/drm/ingenic/ingenic-drm-drv.c | 59
+++++++++++++++++++++--
drivers/gpu/drm/ingenic/ingenic-drm.h | 1 +
drivers/gpu/drm/ingenic/ingenic-ipu.c | 21 ++++++--
include/drm/drm_fb_cma_helper.h | 4 ++
include/drm/drm_gem_cma_helper.h | 3 ++
7 files changed, 156 insertions(+), 16 deletions(-)
--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Maxfeldstr. 5, 90409 Nürnberg, Germany
(HRB 36809, AG Nürnberg)
Geschäftsführer: Felix Imendörffer