IMX Scaler / CSC m2m driver.

Ian Molton imolton at ad-holdings.co.uk
Wed Mar 25 11:13:48 PDT 2015


On 25/03/15 16:34, Philipp Zabel wrote:
> The scaler hardware does not support userptr memory, the mem2mem driver
> is wrong to advertise it.

Reading the manual, this is handled by the IDMAC?

Its AAU seems not to have any scatter/gather logic, so the only way to
"get the data out" is going to be a copy, as you say. (or some other
IPU component like a YUV plane?).

On my board, writes to RAM are able to hit ~1.3GiB/s

memcpy() is a bit less pleasing, achieving about 300MiB/s

Either way, that should be enough to get a frame from the driver to
the screen with passable performance...

I applied your patch to see if it got rid of my long cacheflush, but
no luck. the cache flush in question appears to be in
vb2_dc_dmabuf_ops_map(), called by way of video_usercopy().

It looks like the function in question attempts to preserve the DMA
mapping of the buffer, but isn't doing. Some debug code in there show
that its always taking the path of mapping the buffer anew.

I guess we know where the performance is going now - but why?

I'm starting to think that ximagesink and fbdevsink are discarding,
not reusing buffers.

-Ian


More information about the gstreamer-devel mailing list