Hi Vincent, On Wed, Jan 11, 2017 at 12:36:24PM +0000, Vincent ABRIOU wrote: > Hi Sakari, > > On 01/11/2017 12:03 PM, Sakari Ailus wrote: > > Hi Vincent, > > > > On Mon, Jan 09, 2017 at 03:49:00PM +0000, Vincent ABRIOU wrote: > >> > >> > >> On 01/09/2017 04:37 PM, Laurent Pinchart wrote: > >>> Hi Vincent, > >>> > >>> Thank you for the patch. > >>> > >>> On Monday 03 Oct 2016 13:27:16 Vincent Abriou wrote: > >>>> Allow uvcvideo compatible devices to allocate their output buffers using > >>>> contiguous DMA buffers. > >>> > >>> Why do you need this ? If it's for buffer sharing with a device that requires > >>> dma-contig, can't you allocate the buffers on the other device and import them > >>> on the UVC side ? > >>> > >> > >> Hi Laurent, > >> > >> I need this using Gstreamer simple pipeline to connect an usb webcam > >> (v4l2src) with a display (waylandsink) activating the zero copy path. > >> > >> The waylandsink plugin does not have any contiguous memory pool to > >> allocate contiguous buffer. So it is up to the upstream element, here > >> v4l2src, to provide such contiguous buffers. > > > > Do you need (physically) contiguous memory? > > > > Yes, drm driver that does not have mmu needs to have contiguous buffers. One option would be to have that driver to allocate the memory. I admit it's not a great solution as you need special arrangements because you allocate memory where the hardware has strictest memory allocation requirements. > > > The DMA-BUF API does help sharing the buffers but it, at least currently, > > does not help allocating memory or specifying a common format so that all > > the devices the buffer needs to be accessible can actually make use of it. > > > > Instead of hacking drivers to make use of different memory allocation > > strategies required by unrelated devices, we should instead fix these > > problems in a proper, scalable way. > > > > Scalable way? Like central allocator? Yeah. You seem to be working on this already. :-) Some devices have the weirdest memory requirements, but most (those with MMU) can manage with any pages in the system memory. Either physically or virtually (i.e. a buffer consisting of any page in system memory) contiguous memory can be supported by the vast majority of devices. It'd be nice, API-wise, to be able to tell in the user space which device the buffer is used with and only then perform the actual allocation. An alternative would be to re-allocate if a device's memory requirements do not match with a buffer what the user is passing to to a device, but this may be problematic from performance point of view (as you need to reallocate). An allocator or a couple will be needed, too. -- Kind regards, Sakari Ailus e-mail: sakari.ailus@xxxxxx XMPP: sailus@xxxxxxxxxxxxxx -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html