Lately we had some huge troubles with our newest pc's. We dropped audio samples, our focusrite 18i20 usb soundcard went nuts, our decklink quad2 lost frames, and vmix had serious stability problems which resulted in latency spikes. I think this is normal, since we bought them in a rush, to do some jobs, but never really had time to configure them properly.
The most noticable were the instability of the soundcard: after a few hours it would start dropping samples with thousands per minute sometimes. This really made our job almost impossible.
Also the blackmagic capture cards could drop lots of frames from time to time, making our video look choppy.
The hardware we use is:
Motherboard: Asus x99 e-ws
RAM: 32gb ddr4
GPU: Nvidia 1080
CPU: E5 2630 V4
C drive: Samsung evo 850 250gb
Recording drive: Samsung evo 1TB
Multicorder/video playback drives: 2 x 500 gb kingston
Soundcard: Focusrite 18i20 V1
Capture cards: Quad2, dekclink sdi, Decklink intensity 4k, Intensity pro
OS: windows 10 x64
As you can see it's some beefy hardware, but still, that was not enough to run a stable vmix. With latencymon, i could see the latency of some processes was super high. Wdf01000.sys and dxgkrnl.sys both introduced unacceptable latency. Let's say we bought the best of the best, but the system wasn't optimised at all.. Dropping frames and samples with such a system shouldn't happen, that's why I locked myself up for a week and tried to learn as much about my hardware as possible.
So I went on a hunt, and googled the hell out of every component. To find out every piece of hardware in the pc seemed to have troubles reported on fora. Gamers were complaining about the pascal GPU's latency, intel NIC appeared to be super unstable, x99 appeared to be the worst chipset, .. If everything that is on the internet somewhere would be true and apply to our setup, it looked like we made the worst hardware choices ever...
Still I continued reading a lot, and found many usefull guides. Most of them are for audio editing, but they seemed usefull for vmix systems as well. After gathering as many tips as possible, i made a list, and followed it. After every tweak i ran vmix with latencymon, and checked if there were noticable differences. Also the statistics window as open all the time. The aim was to lose 0 frames or samples.
Not all tweaks delivered noticable results in vmix or in latencymon. Still I applied some, thinking that as long as it doesn't influence performance in a negative way, it might be better for long term stability. Especially the Hpet timer, the pcie cards and the disabling of windows services seemed to have 0 effect. I do think though, they might prevent some problems in the future. On lower end hardware I think the results with this could be more drastic.
These are the changes and tweaks I made:
Windows
- I uninstalled the anniversary update and went back to 1511. I remained on windows 10, since all my hardware has good stable driver releases for the OS.
Hardware
- Installed a pcie usb 3.0 card: used to connect the focusrite, it makes sure the card is always on a usb roothub, and doesn't share any recourses with mouse, keyboard or other usb hardware (used the pcie usb port only for the audio interface).
- Installed a seperate network card in a pcie slot and disabled onboard network hardware in the bios: intel has some latency issues on some systems hich have not been resolved according to their forum.
- Bought a higher quality usb cable with 2 ferrite cores to replace the one which was supplied with the soundcard.
Bios
- Disabled all power management features : Cstates, turbo boost, speedstep: all off
- Fastboot also off
Clocking:
-Overclocked the cpu slightly to 2400 mhz, since the cpu is watercooled, it doesn't affect temperatures that much, and higher clockspeeds make sure all I/O is processed slightly faster.
Drivers
- Downloaded all the latest drivers from the ASUS website, then went to manifacturer websites of every piece of hardware and updated to the latest
- Not all motherboard drivers on the ASUS site appeared to be the very latest, so I got some from the Intel website
- downloaded the latest nvidia drivers, and only installed the graphics drivers, left 3d vision and audio drivers out of the installation.
- There appeared to be a driver for the focusrite on their normal website which was not the latest, it is on a seperate page with beta drivers and includes lots of fixes. There's also a firmware update linked to these new beta drivers. After these beta drivers, focusrite never released a stable alpha driver, shame...
Tweaks
- I installed a program called fidelizer, which prioritises audio processes. It costs a few dollars, but in all modes, except purist (which slows down non audio processes), it appears to really enhance the stability of the audiodrivers on windows. After applying this 'secret tweak sauce' i never had a single dropped sample in vmix anymore.
- I used a tool called harmonic, to enable hpet (system clock) on windows 10. Not sure if it changed a lot, but it didn't hurt neither, and the tick drift of the system clock looked a bit more stable (might be my imagination as well)
- I used proces lasso to prioritise the vmix and ffmpeg proces in windows to realtime (not sure neither if this changed something, but didn't hurt neither). I also used it to make a dirty core: with 20 virtual cores it didn't seem like a bad idea to make vmix, ffmpeg, all audio related processes (svchost) and decklink and gpu related processes run on 19 cores only. The 20th core i used for windows background processes which are less important, but could potentially cause spikes when they are activated, which now can't influence the important ones anymore.
- Used a registry tweak to set all network adapters (including the ethernet) to metered, so no more updates can be installed
-Forced resolutions with EDID overrides which are fixed in the computer, so no accidental changes can be made with nvidia driver updates or by using a different screen, using custom Resolution Utility (CRU). This to make sure all screens attached are always 50hz (synced with 50i inputs).
Settings:
- Set the 18i20 soundcard to it's highest latency settings (mixing). This made the Wdf01000.sys process cause higher dpc latency, but according to Martin in another thread the soundcard should be set to it's maximum latency, so think this is the best choice.
- Used samsung Magician to set the recording drive to rapid mode, and enabled the performance mode from there (rapid mode really made the drive faster, performance mode is just some tweaks which didn't change that much)
- set windows to high performance (cpu 100% at all times) and disabled all power saving features (usb, sleep mode,..)
- went into the nvidia control panel and set the 1080 to maximum performance (highest clockspeed at all times)
-Disabled system sounds
-Set processor scheduling to "Background services"
-Disabled Windows Firewall, anti-virus and spyware software
Windows services:
-disabled all windows services such as phone, fax, printer, smartcard,... services from the system, don't need them anyway.
Conclusion:
I'm not sure if all tweaks and changes were equally effective, but now vmix runs stable as never before. No more lost frames or samples at all! It took me a lot of hours, but I'm sure my system runs a lot better after tweaking it. Perhaps some tweaks could be slightly counterproductive, so Off course all opinions are welcome, my aim is to learn more about it and share the info so all vmix pc's can run better :)
I found a lot of info to tweak windows for audio, and surprisingly these tweaks also made the stability of the capture cards better. Still it would be cool if there was any info out there for decklink cards specifically.
A sidenote: in my opinion there should be some kind of general optimisation thread on vmix forums, which should be stickied. Right now there is some info, but it's spread all over the forums. It would be cool if all members could contribute to a guide which helps troubleshooting slow, unresponsive or unstable systems.
Some good guides and information you can find via the following links:
https://support.focusrit...-for-Audio-on-Windows-10http://www.sweetwater.co...ving-dpc-latency-issues/https://support.native-i...ips-for-Audio-Processinghttp://www.blackviper.com/