Open whitequark opened 10 months ago
I'm not sure why, but I found that Windows USB performance is better with the libusb-win32 driver instead of the stock WinUSB driver. I installed the libusb-win32 driver with Zadig.
With WinUSB:
I: glasgow.cli: running handler for applet 'benchmark'
I: glasgow.applet.internal.benchmark: running benchmark mode source for 8.000 MiB
E: glasgow.applet.internal.benchmark: mode source failed!
I: glasgow.applet.internal.benchmark: running benchmark mode sink for 8.000 MiB
I: glasgow.applet.internal.benchmark: mode sink: 25.59 MiB/s (204.71 Mb/s)
I: glasgow.applet.internal.benchmark: running benchmark mode loopback for 8.000 MiB
I: glasgow.applet.internal.benchmark: mode loopback: 33.04 MiB/s (264.30 Mb/s)
I: glasgow.applet.internal.benchmark: running benchmark mode latency for 8.000 MiB
I: glasgow.applet.internal.benchmark: mode latency: mean: 458.82 us stddev: 103.68 us worst: 4375.20 us
With libusb-win32:
I: glasgow.cli: running handler for applet "benchmark'
I: glasgow.applet.internal.benchmark: running benchmark mode source for 8.000 MiB
I: glasgow.applet.internal.benchmark: mode source: 42.49 MiB/s (339.91 Mb/s)
I: glasgow.applet.internal.benchmark: running benchmark mode sink for 8.000 MiB
I: glasgow.applet.internal.benchmark: mode sink: 42.49 MiB/s (339.90 Mb/s)
I: glasgow.applet.internal.benchmark: running benchmark mode loopback for 8.000 MiB
I: glasgow.applet.internal.benchmark: mode loopback: 44.33 MiB/s (354.62 Mb/s)
I: glasgow.applet.internal.benchmark: running benchmark mode latency for 8.000 MiB
I: glasgow.applet.internal.benchmark: mode latency: mean: 438.91 us stddev: 106.88 us worst: 3135.40 us
This was on Windows 11. Specifics about this system:
References:
This is likely significantly limiting our latency numbers on Windows.
Being able to do this depends on progress in both libusb1 and python-libusb1, so this will likely take a while.