Crash to desktop - 0x80000003 exception - Tips & Tricks

Hi everyone,

This topic aims to help players who have the (in)famous crash 0x80000003 with HITMAN 2 and to get some official explanation from IO (I hope). Before posting, please make sure you are affected by this problem, and only that one.

:man_farmer: A bit of context :

Click here if you want to read some context about 0x80000003 issue

As many of you know, Hitman 2 is affected by an odd issue since November 2018 (it is literally the first known issue in each patchnote since january…), I have myself experienced this for 5 months between november and march. Another community members know this problem as well (@Mads47, @abeg, @JayE, @Fortheseven…etc). My first crash happened to me on November 8, I still remember very well, it was during Alma’s cutscene, after maybe 10 minutes of gameplay.

At that time, I thought it was only a minor issue, the game just come out, games are never very stable at this point, and thought IO was going to fix it quickly. I was trying to stay positive while waiting for an official solution.

Between November and January my game crashed more than 300 times (I got that number with Windows Event Viewer). So I sent a zip with all my logs files to IO’s QA team. More and more topics have been created on both steam forums and, the number of people affected has also increased gradually.

After two months, IO finally acknowledged the problem and decided to looking at the issue :

  • PC players are experiencing “0x8000000_” (and related) crashes. We’re continuing to work on a permanent solution to this with our friends and partners at Nvidia.

At first, only Nvidia RTX card owners were affected by this problem. After more than 300 crashes and seeing that the community could not find a solution, I almost stopped the game to play something else. But I’m a hardcore fan… Hitman is my forever game, as some people would say.

So I started playing HITMAN 2 on Linux with Steam Proton and after a few hours, the game never crashed on this operating system with my RTX GPU, never. I played maybe 20 hours. So I decided to play with the same rendering process on Windows 10, and it worked ! A solution has finally been found, not the best one but definitely makes the game a lot more stable.

The solution is DXVK.

DXVK is a DX11 to Vulkan translation layer used by Steam Proton on Linux. You not really change the renderer, you add another layer. DX11 is still used by the game but your GPU receives Vulkan’s translated calls.

Game :arrow_right: DX11 :arrow_right: DXVK :arrow_right: Vulkan :arrow_right: GPU

According to my observations after 5 months, with DX11, Nvidia Turing architecture and HITMAN 2, the GPU randomly hits the timeout threshold defined in TDR Windows registry keys. The default threshold value is 2 seconds. With a low level API like Vulkan, the GPU never reach this threshold, result : 0x80000003 crashes never happen.

I used DXVK almost 3 months, then IO released DX12 and like Vulkan, DX12 doesn’t seems to produce any TDR crashing issue with Turing GPUs.

Everything seemed to be fine, 0x80000003 crashes was gone, everyone was happy. Ideally, 0x8000003 should be fixed regardless the API but since this issue seems to affect only Nvidia’s Turing architecture, DX12 was a great solution for almost all users affected.

But the problem came back two months later in May 2019 after a game update for some users (not all) with Pascal and again Turing GPUs with DX11 and DX12. It seemed to hits people randomly. The GeForce Hotfix Driver Version 431.18 fixed this issue on Pascal for both Shadow of The Tomb Raider and HITMAN 2 :

Shadow of the Tomb Raider may experience a game crash or TDR when launching game on Pascal GPU

A lot of users was not aware of this hotfix because it was merged 3 weeks after in the next stable driver.

But it’s not over yet because the problem came back again after the July update ! (just look the Official HITMAN 2 Technical Support Thread or the steam forum, 0x80000003 is everywhere).


1. How can I know if I am affected by this issue ?

It’s simple. If your game randomly crashes very very frequently, sometimes after 10/15 minutes of gameplay, sometimes after, open the Windows Event Viewer (in start menu search bar). In application category, look for Hitman application error. If in the detail you see 0x80000003 exception code, it means that you are affected by the TDR crashing issue. You can look for event in System category, you should see this too : “display driver nvlddmkm stopped responding”.

2. How can I fix this issue ?

  • First, try to start the game in DirectX 12 mode (available in launcher settings), if you can.
  • If it does not work, update your Nvidia drivers to the latest version available (search for the latest hotfix too).
  • And if it does not work either, follow the instructions below to install DXVK :

Decompress this archive with WINRAR for example and put x64 DLLs in your Hitman retail folder. Then start the game in DX11 mode. DXVK is a DX11 to Vulkan translator, and Vulkan API doesn’t produce GPU 0x80000003 timeout with Hitman 2.

The game will be a bit laggy at the start, because DXVK needs to recalculate all the shaders, once this step is done, the game will be stable but with some performances drop. It is to be expected, you added another layer between the game and your GPU, overall performances will necessarily be worse than without DXVK, but your game is more stable now.

3. What the hell is going on here ?

I don’t know, and IO does not seem able to communicate about this subject. The only official communication since January is “We’re continuing to work on a permanent solution to this with our friends and partners at Nvidia”.

I’m not a rendering programmer or an expert in DirectX pipeline programming, so maybe some parts in this topic are not very accurate. I’m just trying to help some people who really want to play Hitman like me a few months ago and also to get answers from a developer (but especially their rendering team) who doesn’t say much about all of that, staying in the shadows.

@Clemens_IOI @Travis_IOI