Last update : 2019/11/11
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.
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 Hitmanforum.com, 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 DX11 DXVK Vulkan 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 and if in System category, you see this too : “display driver nvlddmkm stopped responding”, it means that you are affected by the TDR crashing issue…
2. How can I fix these crashes ?
- First, try to start the game in DirectX 12 mode (available in launcher settings), if you can. This is the official solution recommended by IO but it does not work for a minority of players.
- If it does not work, update your Nvidia drivers to the latest version available.
- If it does not work, use the Nvidia reference clock speeds for your GPU. Nvidia has added a feature called “Debug Mode”, which will downclock any factory overclocked graphics card to Nvidia reference clock speeds. To turn on Debug Mode, open the Nvidia Control Panel, then go to the Help menu, and check the Debug Mode option.
- Try to underclock your hardware, CPU, RAM, disable Intel XMP, disable Turbo Mode, anything that could boost your PC.
- Final solution, this method seems to work for 99% of people but has some downsides about performances. Follow the instructions below to install DXVK and use it above of DirectX :
For the latest version, check releases page : https://github.com/doitsujin/dxvk/releases
Decompress this archive with WINRAR for example and put x64 d3d11.dll and dxgi.dll 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 is :
We’re continuing to work on a permanent solution to this with our friends and partners at Nvidia. This remains an open issue that we are continuing to gather data on to pinpoint the cause. At this time, we don’t have a specific fix planned.
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.