Am Freitag, den 31.05.2013, 17:29 +0200 schrieb Daniel Vetter:
On Fri, May 31, 2013 at 07:22:24PM +0900, 김승우 wrote:
Hello Daniel,
Thanks for your comment.
On 2013년 05월 31일 18:14, Daniel Vetter wrote:
On Fri, May 31, 2013 at 10:54 AM, Seung-Woo Kim sw0312.kim@samsung.com wrote:
importer private data in dma-buf attachment can be used by importer to reimport same dma-buf.
Seung-Woo Kim (2): dma-buf: add importer private data to attachment drm/prime: find gem object from the reimported dma-buf
Self-import should already work (at least with the latest refcount fixes merged). At least the tests to check both re-import on the same drm fd and on a different all work as expected now.
Currently, prime works well for all case including self-importing, importing, and reimporting as you describe. Just, importing dma-buf from other driver twice with different drm_fd, each import create its own gem object even two import is done for same buffer because prime_priv is in struct drm_file. This means mapping to the device is done also twice. IMHO, these duplicated creations and maps are not necessary if drm can find previous import in different prime_priv.
Well, that's imo a bug with the other driver. If it doesn't export something really simple (e.g. contiguous memory which doesn't require any mmio resources at all) it should have a cache of exported dma_buf fds so that it hands out the same dma_buf every time.
I agree with the reasoning here.
Though it would be nice to have this "expected driver behavior" put down somewhere in the documentation. Any volunteers?
Regards, Lucas