BSOD dxgkrnl.sys crash dump

akervi

Honorable
Sep 18, 2012
16
0
10,510
I've made a thread previously: http://www.tomshardware.com/forum/370670-33-nvidia-geforce-problem#t2790258
This thread didn't give any solid answers.

I'll start off with explaining that I keep having hang ups when I play video games. My PC will go into a black screen and restart.
I downloaded a Blue Screen Reader and found this error: dxgkrnl.sys
What exactly do I do to fix this?

I have updated Direct X, I have fresh installed my video card drivers, I have done everything I can think of.
Please help.
 

ktownmike

Honorable
Jul 9, 2012
352
0
10,810
In my experience that is most common if a processor overheats. I assume there are no logs in the event manager. Speedfan is a cool tool to watch but I would look at processor cooling problems. In one hp laptop after system board replace etc. it was a matter of dumbing down video to prevent overheating, go figure.
 

samunex2600

Reputable
Jun 30, 2014
5
0
4,510
I have exactly the same problem i dont know how to fix it, but only when i play direct x games like skyrim, borderlands 2.
But when I play CS:GO or garrysmod it dont appear.
 

Dave Trouser

Honorable
Sep 21, 2013
12
0
10,510


I'm assuming this is the "116" error? This is a TDR timeout issue, which can be worked around with a registry edit, but you should only do it if you absolutely know there is not a hardware issue with your card.

KeyPath : HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\GraphicsDrivers
KeyValue : TdrDdiDelay
ValueType : REG_DWORD
ValueData : Number of seconds to leave the driver. 5 seconds is the default value.

The key doesn't exist by default, so you have to make it.

Specifies the number of seconds that the operating system allows threads to leave the driver. After a specified time, the operating system bug-checks the computer with the code VIDEO_TDR_FAILURE (0x116). The default value is 5 seconds.

Source: https://msdn.microsoft.com/en-us/library/windows/hardware/ff569918(v=vs.85).aspx


I found this after having the 116 BSOD, but only at shutdown, right at the point the PC is meant to power down. It only started happening after I updated my NVidia drivers - however, rolling them back does not fix the problem. It was fine for ages before that update. I have tried a complete clean install too - everything except reinstall Windows.

Now, I do have some special circumstances going on with my PC. It's fairly old, with an ASUS M3N-HT mainboard. The GTX 760 card I have is about the latest card it will accept, and timings are marginal on the PCIe bus. It won't even power on in the first PCIe slot, and I have to use the second one which forces the card to x8 mode instead of x16. Doesn't affect performance, but meant I had to shuffle my PCIe cards about to get a stable system.

Interestingly, I had fixed the timeout issue and got clean shutdowns after I changed the drivers for my USB3 card (there was an update available). I set the TDR timeout to 10 seconds instead of 5, and got proper shutdowns and no 116 BSoD. However, I later discovered that the USB 3 card wasn't working properly with the new drivers, so I went back to the ones that came with it. The USB card then worked, but I then got the shutdown 116 BSoD again from the DirectX kernel. I have since increased the TDR timeout to 15 then 30 seconds, but still get the issue.

So, as you can see, the issue is not necessarily your GFX card. Do you have many PCIe cards? All my slots are in use, and the PC only works if they're in the "right" slots.

I am about to try altering the "TdrDelay" key to see if that helps, and will report back here if it works.

As I said, this problem only started after an NVidia driver update, so I know the GFX card is fine. I think the last version that worked properly was 347.09 but I can't be sure. Also, as I said, going back to that one and earlier doesn't fix the problem.

Bit of a ramble, but thought I'd share as it might lead you to a solution.
 
I debugged a system that kept getting a 0x116 bugcheck cause by dxgkrnl.sys
the driver was chained to the same interrupt as the USB controller and the USB controller was the first in the chain and prevented directx from getting the interrupt.

to figure out the problem I had to get a kernel mode memory dump, then run the windows debugger command
!idt
interrupt dispatch table. It showed 3 devices on the same interrupt with directx being last and two buggy versions of USB drivers getting first pass at the interrupt. USB drivers are slow and take too long, or have bugs because of bios bugs or driver versions. If they take too long directx bugchecks.

Never did have a good fix for it other than update the USB drivers and bios to get better USB support. Maybe update or reinstall directx to get it to be the first in the interrupt chain. Generally, the last driver installed gets first shot at the interrupt.