Some months ago I switched my graphics from an NVIDIA 9800GTX+ to a pair of cards: An ATI Radeon 5770 and an ATI Radeon 5750. I did this mainly to mine Bitcoins as I wrote before, but I figured it also gave more video power for multiboxing. I run as many as three clients at once, so this is not a trivial issue.
While mining for bitcoins, I would keep all my clients at low quality settings, and still get good frame rate. In the last month I’ve stopped mining bitcoins due to lack of interest and the prices going into the toilet. If I’m not using that GPU power to mine, I can crank up the quality settings on my EVE clients. Or can I?
After turning client settings up to medium-high, I started to notice occasional audio crackles and pops in my audio. I bitched about this to Paul for a while before actually doing something about it, of course. My first attempt was to move off my front-panel audio to the rear connectors and assuming EM interference, but this was without improvement. I also double-checked the headphones on another computer to be sure they weren’t the problem.
Going back to the issue itself, I lowered the video quality on my EVE clients and the audio issue went away. I also noticed it only happened if I had at least two clients open and if they were in “windowed” mode at near-fullscreen resolution. Smaller windows, using “fullscreen” or “fixed window”, made the problem go away. Why was I not using fullscreen? Multiple monitors make that a pain in the ass; fixed window mode works better but only for as many monitors as you have – two in my case. The third client has to be “windowed”. I prefer to use three clients all in windowed mode but not if I was getting audio issues.
By this point I was really dying to know what was going on here. After some google-fu research I discovered a common cause of this issue was DPC latency. DPCs are a queuing method Windows uses to handle multiple requests from hardware. If a device driver takes too long doing it’s thing, the amount of time a DPC will stay in the queue becomes very long – too long and the system just drops it. For audio devices this means the popping/snapping I was hearing.
First step was to download the DPC Latency Checker tool. Just run it and then exercise your system to see if you get latency. I ran it when I got audio problems, and sure enough, huge DPC latency problem:
DPC issues are almost always caused by bad drivers or hardware conflicts. I first updated my video card drivers, motherboard drivers, audio drivers and NIC drivers; no improvement. I then removed all drivers, ran Driver Sweeper to remove all traces of the drivers, and re-installed them all over. No improvement. The next step being a hardware conflict, I disabled everything possible on my system via the BIOS. COM port, LPT port, floppy drive, Firewire, onboard audio, NIC – all went away. Again no improvement.
So now I’m getting rather stumped and annoyed. More google research turns up two more ideas: Some people have issues with ATI’s PowerPlay feature. This power-saving driver feature will downclock the video card and memory when the GPU is idle. So I disabled it again without any improvement. As a final stab in the dark I started disabling everything on my system – services and running processes. Every non-microsoft service was disabled, and most of the Microsoft ones too! Down to complete bare-bones services. Additionally I uninstalled my firewall and antivirus software. No improvement.
I had about given up when I ran across this excellent post on how to find the actual driver involved with the DPC problems. Hope! I downloaded the Windows Performance Toolkit from the Windows SDK (just chose the ‘Tools’ part, uncheck everything else) and followed the steps listed to get a profile of what was going on during this high DPC latency.
The driver in question turned out to be dxgkrnl.sys, the DirectX kernel driver. My DirectX is fully up to date. The DirectX diagnosis tool (dxdiag), also confirms everything is good. I am out of ideas – save one. I pull my old 9800GTX+ out of the box and install it, removing both ATI cards. Then I run the same latency-inducing setup:
The latency isn’t perfect, but it’s a hell of a lot better than it was with the ATI cards!
Conclusion: ATI, your drivers suck.
Hope this helps some other poor soul with a bad-audio issue.