Hi Thomas, On Thu, 16 Oct 2025 10:32:46 +0200 Thomas Zimmermann <[email protected]> wrote:
> Hi, > > on patches 2 to 4: sync is really begin/end access wrapped into one > interface, which I find questionable. I also don't like that these > patches add generic infrastructure for a single driver. It's actually two drivers (panfrost and panthor), and the interface is here so other drivers relying on drm_gem_shmem don't have to hand-roll these things in the future. > > My proposal is to make your own dma_buf exporter in panthor and set the > begin/end_cpu_access functions as you need. Panthor already contains its > own GEM export helper at [1]. If you inline drm_gem_prime_export() [2] > you can set the cpu_access callbacks to panthor-specific code. The other > dma-buf helpers' symbols should be exported and can be re-used. That is > a lot less intrusive and should provide what you need. I can of course do that in panthor, but then I'll have to duplicate the same logic in panfrost. Also, the whole point of making it generic is so that people don't forget that begin/end_cpu_access() is a thing they should consider (like happened to me if you look at v2 of this patchset), otherwise importers of their buffers might have unpleasant side effects because of missing flush/invalidates. This, IMHO, is a good reason to have it as a drm_gem_funcs::sync() callback. That, or we decide that the default dma_buf_ops is not a thing, and we force developers to think twice when they select the default hooks to pick for their dma_buf implementation. > > I found that a hand full of other DRM drivers implement dma-buf's > begin/end access callbacks. If you want a generic begin/end interface > for GEM, you certainly want to get them on board. If there's something > common to share, this should be done in a separate series. Fair enough. I'll try to convert freedreno and imagination to this new interface, and gather some feedback. Regards, Boris
