On 6/5/2018 2:01 AM, Kieran Bingham wrote: > Hi Troy > > On 03/01/18 21:13, Troy Kisky wrote: >> On 1/3/2018 12:32 PM, Kieran Bingham wrote: >>> From: Kieran Bingham <kieran.bingham@xxxxxxxxxxxxxxxx> >>> >>> The Linux UVC driver has long provided adequate performance capabilities for >>> web-cams and low data rate video devices in Linux while resolutions were low. >>> >>> Modern USB cameras are now capable of high data rates thanks to USB3 with >>> 1080p, and even 4k capture resolutions supported. >>> >>> Cameras such as the Stereolabs ZED or the Logitech Brio can generate more data >>> than an embedded ARM core is able to process on a single core, resulting in >>> frame loss. >>> >>> A large part of this performance impact is from the requirement to >>> ‘memcpy’ frames out from URB packets to destination frames. This unfortunate >>> requirement is due to the UVC protocol allowing a variable length header, and >>> thus it is not possible to provide the target frame buffers directly. >> >> >> I have a rather large patch that does provide frame buffers directly for bulk >> cameras. It cannot be used with ISOC cameras. But it is currently for 4.1. >> I'll be porting it to 4.9 in a few days if you'd like to see it. > > > How did you get on with this porting activity? > > Is it possible to share any of this work with the mailing lists ? This is pretty ugly all squashed together but here is the 4.9 patch It does a bit more than 0 copy. I'll just post a link, because I doubt anyone else wants to look. https://github.com/boundarydevices/linux-imx6/commit/5cbb48a3332a6e8aad4a1359b1b5eb05eb0fff96 HTH Troy > > (If you have not ported to v4.9 - I think it would be useful even to post the > v4.1 patch and we can look at what's needed for getting it ported to mainline) > > -- > Regards > > Kieran > > >> >> BR >> Troy