I am a new customer, and have been using VirtualHere to share USB devices connected to a 2014 iMac 5k, running Windows 10 in Bootcamp, with a client connected via ethernet that's also running Windows 10.
I am seeing some odd behavior with a TrackIR v4; the device is sharing properly, but the performance seems to be slow. The status LED on the TrackIR camera is flashing when the device is being used on the client, and the tracking itself is a bit jagged/choppy. This does not happen locally, which seems to rule out a hardware issue with the TrackIR itself.
The server machine has an i7-4790K CPU @ 4.00GHz; the client is an i7-7700K CPU @ 4.20GHz. OS build is 19042.630 (20H2) on both sides. The server is using VirtualHere 4.2.0, the "vhusbdwindk64.exe" version, as the vhusbdwin64.exe version could not reliably share my joystick (X52 Pro). Both machines are connected via gigabit ethernet. I've tried disabling compression on VirtualHere, which had no effect. I've also tried changing the priority to high on both sides for the VirtualHere process, also to no effect.
Happy to upgrade to a TrackIR v5 if that's what's needed, but before I spend on it, wanted to see if I'm missing anything that would be helpful to improve performance here.
Latency is quite high and i think this is the problem. It should be < 10ms all the time.
Any chance you could install Linux e.g Ubuntu server on some device, or do you have a pi4.
I suspect Linux might have slightly better performance but im still not sure it will stay consistently below 10ms
Thanks for the response, Michael.
Another host won't work in this application - I'm using an iMac (thus the Bootcamp) and can't replace it with a Linux machine. I figured latency might be the issue; any idea if there's anything I might try with respect to improving latency? I'm assuming it's the underlying USB bus on the host that's the problem?
Its your network which is the issue
Anything to check for? If it helps: network is Cat6 cable run between the Mac (Bootcamp) host and Windows client, gigabit connection on each end, with a single Unifi switch between them.
Network latency is fixed by the laws of physically basically. My guess is its sending 1000 tiny packets over USB (and therefor the network every second). Each packet might have < 1millisecond latency but over a second this adds up and gives a feeling of slowness.
At a higher level this sort of data can be buffered, but at the USB level packets cannot be buffered, so there is no easy workaround. It would require a (probably) small driver change from the manufacturer for it to work nicely. Inside their driver they could ask e.g for 100 packets every 100ms and that would resolve this issue