Message ID | 20210523170415.90410-1-paul@crapouillou.net (mailing list archive) |
---|---|
Headers | show |
Series | Add option to mmap GEM buffers cached | expand |
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. > > - [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. Please go ahaed and merge if no one objects. All patches: Acked-by: Thomas Zimmermann <tzimmermann@suse.de> 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(-) >
Hi Thomas, Le dim., mai 23 2021 at 21:05:30 +0200, Thomas Zimmermann <tzimmermann@suse.de> 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@suse.de> 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 >
Hi Am 23.05.21 um 21:19 schrieb Paul Cercueil: > Hi Thomas, > > Le dim., mai 23 2021 at 21:05:30 +0200, Thomas Zimmermann > <tzimmermann@suse.de> 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? No, it was more of a rant than a review comment. Please go ahead and merge the patchset. Best regards Thomas