Kinect at full bandwidth at USB 2.0 but reduced at USB 3.0 RRS feed

  • Question

  • Hi,

    I'm running W8.1 on a brand new core i7 laptop equipped with 2xUSB3.0 and 1xUSB2.0. While the Kinect works as it should when plugged in to the USB2.0, the bandwidth is severely reduced on both of the USB 3.0 ports. I noticed that the processor use in the USB2.0 case is around 12 % when running Kinect Explorer D2D (color, depth and skeleton streams) and in the 3.0 case only around 4 % and the frame rate on the depth stream fluctuates between 0 to 30 fps, but mostly stays around 0-5 fps. On another laptop of different brand but very similar hardware, I have no issues. What is going on here?

    My USB controllers are the following with no Kinect plugged in:

    2 x Generic USB Hub

    2 x Intel C220 USB EHCI (#1 and #2)

    1 x Intel USB 3.0 extensive Host Controller - 0100 (latest version)

    1x USB composite device

    2 x USB Root Hub

    1 x USB Root Hub (xHCI)

    Please advice me what I could try, the new computer is useless to me unless I can run at least two of the USB ports since my app uses two Kinects.



    Wednesday, August 13, 2014 2:07 PM

All replies

  • You cannot share the USB2 host controller with other devices regardless of a USB2 or USB3 port you are connected to. Plugging in more that one USB2 device into a USB3 port will still have the same limitations you will find with just connecting to a USB2 port. A USB3 host controller has its own USB2 host controller build it so all USB2 share the same bandwidth for that reservation. 

    Check your host controller in the device manager and to ensure the host controller being used by Kinect is not shared with other devices.

    Carmine Sirignano - MSFT

    Thursday, August 14, 2014 7:01 PM
  • To assess if a Kinect device is on a shared controller is not so obvious in the device manager, at least not for me. I have disabled all thinkable devices that might be sucking up the bandwidth on the same controller but without any change. Anyway, to dig into the device manager just to confirm that a freshly unpacked computer won't do the job is kind of reversed engineering to me. What am I supposed to do next time I order computers for further delivery to my customers? To me it feels like a lottery, an expensive such. I need a way to verify that a computer is capable of supporting multiple Kinects before I unpack it, not after. How can this be done? The tech sheets I've seen do not contain such detailed info. Instead of spending eachothers time and money on this issue, couldn't the Kinect team develop a simple USB tester SW (web app?) than can be run at, e.g. a retailer's demo machine, that identifies the number of separate controllers with sufficient bandwidth for running a Kinect device. That would really be something. Yes?
    Thursday, August 14, 2014 10:15 PM