I got video capture running so iso pipe with multiple IRP submissions is working well! Some video frames are messed up but it looks like this has to be settled between the chip and the application. The leak is still there as I wrote before though.
 
I also ran device without activation of the iso pipe with an infinite loop of syncSubmit to a control pipe. It's quite stable: no exceptions, no hangs. However it's leaking 150-200 bytes per submission. GC shows a clear growth of allocated memory, eventually an OutOfMemoryError is thrown.  RI from the last year was not leaking under normal conditions.
 
Another problem with the control pipe is that it takes 9-12 ms for syncSubmit call to return. Compare this to 2-4 ms for the Windows driver (probably 3 ms or less on average). It's quite important for applications that use control pipe a lot: I2C read is 4 syncSubmit calls so it'll take a second to get a telemetry packet of 20 bytes. I don't know how to use composite IRPs with asyncSubmit since you have to alternate reads and writes on the control pipe with program logic in the middle that depends on results of these reads (checking for I2C ready).
 
Boris

Reply via email to