Deus Ex: Human Revolution

Deus Ex: Human Revolution

View Stats:
.start Feb 5, 2022 @ 8:29am
Solution: Direct3D error / Frozen Game on Ryzen / Threadripper
There's an issue with the game on processors that feature more than 16 logical cores (e.g. Threads) which prevents the game from launching resulting in either a Direct3D startup error or the game simply hanging on startup.

Since turning off the extra cores is a bit of a pain since it requires rebooting, I wrote a simple patch launcher which works around the issue: Nucleus[github.com]

Simply follow the included Readme.pdf to install the patch. This may also work on other games that experience similar issues!
< >
Showing 1-12 of 12 comments
B1tF1ghter Feb 5, 2022 @ 11:49am 
Originally posted by .start:
There's an issue with the game on processors that feature more than 16 logical cores (e.g. Threads)
MORE than 16 (17 and more) OR "16 and more" ?

Btw, you could just pin the threads (for example with taskmanager).
You don't have to downcore the entire system just to downcore 1 program.
.start Feb 5, 2022 @ 12:00pm 
Thread affinity does not work in this case since the game itself will query the number of threads hence causing the crash. Affinity has nothing to do with the actual call.
B1tF1ghter Feb 5, 2022 @ 12:31pm 
Originally posted by .start:
Thread affinity does not work in this case since the game itself will query the number of threads hence causing the crash. Affinity has nothing to do with the actual call.
Well if the game manages to check real core count then it means 2 things:
1.Badly coded game (it should only rely on cores *available* - ergo affinity)
2.Windows core affinity sucks - I guess it's nowhere near process isolation found on *NIX (I'm not implying it *could* be anywhere close, but I guess it's even further than I thought).

I took a look at the github page:
{ SECTION REMOVED - I failed to see the landing URL :P }
( I'll take a look at the code some other time )

You still haven't answered my question.
x > 16
OR
x >= 16 ?
It's crucial to know this as not a whole lot of people have above 16 threads while quite some have exactly 16-threaded CPUs.
Last edited by B1tF1ghter; Feb 5, 2022 @ 1:02pm
Rage Feb 24, 2022 @ 3:14am 
please make a guide when you've narrowed down a solution, thanks guys
slimak[PL] Nov 11, 2023 @ 12:01pm 
installed Ryzen Master software and set to GAME MODE ( legacy compatibility moce ON which disables half of cores, and Simultaneous Multithreading still ON ) and game runs okay for me on threadripper 3970x , as well as Watch Dogs 2 and Far Cry 5 Arcade ( singleplayer framerate used to stutter badly in past on default cpu settings, and Arcade doesnt run at all on default cou settings, will display ALBERTA error ). just saying that for anyone interested.
B1tF1ghter Nov 11, 2023 @ 12:05pm 
Originally posted by slimakPL:
installed Ryzen Master software and set to GAME MODE ( legacy compatibility moce ON which disables half of cores, and Simultaneous Multithreading still ON ) and game runs okay for me on threadripper 3970x , as well as Watch Dogs 2 and Far Cry 5 Arcade ( singleplayer framerate used to stutter badly in past on default cpu settings, and Arcade doesnt run at all on default cou settings, will display ALBERTA error ). just saying that for anyone interested.
Now that just sounds like CPU affinity issue... Not exactly a solution ( of yours ), just an accidental success...
slimak[PL] Nov 13, 2023 @ 4:15am 
well, Im not a programmer, but thinking practically it is EXACTLY the solution, it a S#IT solution, an uncomfortable one, I totally agree, but at least it works...

a reliable solution would require for game devs to address it directly and patch their games which they wont do such long time after launch.

these games wont get patched. process lasso is a less intrusive solution, but doesnt always work.
I agree that windows cpu affinity might actually suck.

ps. I didnt get to run INVERSION tho.
Last edited by slimak[PL]; Nov 13, 2023 @ 4:45am
B1tF1ghter Nov 13, 2023 @ 5:42am 
Originally posted by slimakPL:
well, Im not a programmer, but thinking practically it is EXACTLY the solution, it a S#IT solution, an uncomfortable one, I totally agree, but at least it works...
Well it's not THE solution. And personally I wouldn't either call it "A" solution, again, no offence: accidental success.

First of all, originally I didn't pick on it, ( I guess I was too tired, or perhaps there was another reason ) but now I will:
You are using a HEDT type CPU for gaming.
Threadripper and the likes are known to have issues that CPUs like Ryzen 16+ core do not show...
Just this alone could potentially render your "solutions" incompatible with consumer-grade CPU SKUs.
I am not picking on YOU. This is nothing personal. This is simply a technical fact.

But let's give you a benefit of a doubt for a second.
Let's assume blindly that your "solution" would perhaps work...

Originally posted by slimakPL:
in the end of the day its game's fault, not the system itself.
At the end of the day - you don't really know, you are just choosing to trust Microsoft more, cue the company which has documented history of breaking software compatibility between system versions - in case you didn't know before - you do now...
They have changed multiple libraries over the span of the years, and they themselves are personally responsible for actual mountains of software no longer working properly on "new Windows version insert-name". Of course it's not always their fault, but it often is.
They have succeeded at utterly breaking backwards soft compat on multiple occasions, there WAS backlash, yet they didn't care.
This is what they do on a company level, they create forced obolescence - it's just a side effect that apart from breaking re-sellable software ( which continues to get newer versions, often "need to pay for" newer versions at that ), they also broke tons of "single release" software, eg many games.

Personally I wouldn't coin it a " "fact" " that "it's definitely the game's fault". You don't know that. You shouldn't assume that. Especially not with company such as Microsoft involved.

Originally posted by slimakPL:
its not accidental as it is consistent and reliable and at least we know its the amount of cores that cause the problem
In your own words "( you are ) not a programmer".
Let me tell you:
it's entirely possible to get a temporary outcome consistently enough to misinterpret it as a constant, instead of variable...

Originally posted by slimakPL:
(believe me, I tried)
I believe you, but I also have a belief it's always possible to use software incorrectly even after multiple attempts.
It's possible you used it wrong. Just saying...

Originally posted by slimakPL:
a reliable solution would require for game devs to address it directly and patch their games which they wont do such long time after launch
No, actually ( in MOST cases ), a "reliable solution" would be for Microsoft to not retroactively change older libraries' code - you know, kind of changes where OLDER SOFTWARE ( released before the change ) relies on THIS EXACT CODE. They could also try to design their OS intelligently and not hap-hazardly.
It is UNREASONABLE to expect every company who ever made software to be run on Microsoft Windows systems, should support it till the end of universe lifespan. Companies go out of business, developers change jobs, some software even becomes abandonware, yet a system lives on ( usually ).
If you get a library X of version let's say 1.0, this version should remain FOREVER STATIC - that's how it's supposed to be done in programming world!
If you want to update it, say, make a functionality superset, you either A. Bump the version OR B. You make a new library.
But then MS, in their ultimate " "wisdom" " on several different occassions changed the underlying libraries without bumping the versions!
OR they straight out FORCED software to use newer libraries' versions than the software is requesting - in SOME ( rare ) cases this has zero impact by a sheer LUCK, but in many cases this straight out makes software malfunction or not work at all!

If Microsoft keeps screwing stuff up, you just can't expect everyone to constantly patch their software.
The devs were given libraries to work with, then they relesed their software, then years passed, then MS changed the underlying libraries.
What are you expecting devs to do?
Sit back eg 10 years later and rebase the whole code?!
This is exactly backwards to how it's USUALLY done in programming world!
And it's MICROSOFT who is doing it wrong!

And YES, MS *has* changed their CPU governor algorithm, their CPU affinity code, their CPU load balancing, etc, over the years. It definitely DOES have impact on older software.
It's not unreasonable to assume at least SOME software's auto-detection code is suddenly incompatible with whatever changes MS made.
This is probably the case in this specific problem.

This isn't the first time a problem such as this surfaced you know?
It's nothing new.

Originally posted by slimakPL:
Process Lasso
Is a free[/b]mium[/b] software, 3rd party software at that!
It has a lot of functionality beyond just CPU affinity, so naturally, there's more room to misuse it.
Use official Microsoft tool instead:
https://www.techpowerup.com/download/microsoft-interrupt-affinity-tool/
( or here, but this may be an older version possibly )
https://web.archive.org/web/20201111193913/https://download.microsoft.com/download/9/2/0/9200a84d-6c21-4226-9922-57ef1dae939e/interrupt_affinity_policy_tool.msi
( disclaimer: been a while since I used this tool, I don't remember exactly if it allows changing games' affinity, my apologies if I misremembered )

By the way, it's been a while since I checked this ( I no longer use Windows as a daily system ), but I'm fairly sure you can set CPU affinity for a process in a taskmgr... You should try setting it ( for the game ) to 'real cores' only, and or to "only first few ( real ) cores" - some older games behave badly if they see too many cores ( be it due to MS changing relevant code, or the game engine being badly coded )...

Originally posted by slimakPL:
just saying that for anyone interested
Originally posted by slimakPL:
im writing all this as this might help someone in future with similar problems in some way
I think the intent is clear. And these 2 parts are woefully unnecessary to add...

Also, for general troubleshooting I recommend PCGW.
While in this case the info is not there, in many other cases the site is very valuable resource.
https://www.pcgamingwiki.com/wiki/Deus_Ex:_Human_Revolution

As a closing note - I want you to understand that I am NOT against you personally, I just want things to be accurate, without arbitrary assumptions and without interpreting possible flukes as "definitely proper". No offence. And no hard feelings.

By the way, NICE NECROPOSTING...
Only a whole 1.5 year after last post...
Rage Nov 13, 2023 @ 6:17am 
Originally posted by B1tF1ghter:
Originally posted by slimakPL:
well, Im not a programmer, but thinking practically it is EXACTLY the solution, it a S#IT solution, an uncomfortable one, I totally agree, but at least it works...
Well it's not THE solution. And personally I wouldn't either call it "A" solution, again, no offence: accidental success.

First of all, originally I didn't pick on it, ( I guess I was too tired, or perhaps there was another reason ) but now I will:
You are using a HEDT type CPU for gaming.
Threadripper and the likes are known to have issues that CPUs like Ryzen 16+ core do not show...
Just this alone could potentially render your "solutions" incompatible with consumer-grade CPU SKUs.
I am not picking on YOU. This is nothing personal. This is simply a technical fact.

But let's give you a benefit of a doubt for a second.
Let's assume blindly that your "solution" would perhaps work...

Originally posted by slimakPL:
in the end of the day its game's fault, not the system itself.
At the end of the day - you don't really know, you are just choosing to trust Microsoft more, cue the company which has documented history of breaking software compatibility between system versions - in case you didn't know before - you do now...
They have changed multiple libraries over the span of the years, and they themselves are personally responsible for actual mountains of software no longer working properly on "new Windows version insert-name". Of course it's not always their fault, but it often is.
They have succeeded at utterly breaking backwards soft compat on multiple occasions, there WAS backlash, yet they didn't care.
This is what they do on a company level, they create forced obolescence - it's just a side effect that apart from breaking re-sellable software ( which continues to get newer versions, often "need to pay for" newer versions at that ), they also broke tons of "single release" software, eg many games.

Personally I wouldn't coin it a " "fact" " that "it's definitely the game's fault". You don't know that. You shouldn't assume that. Especially not with company such as Microsoft involved.

Originally posted by slimakPL:
its not accidental as it is consistent and reliable and at least we know its the amount of cores that cause the problem
In your own words "( you are ) not a programmer".
Let me tell you:
it's entirely possible to get a temporary outcome consistently enough to misinterpret it as a constant, instead of variable...

Originally posted by slimakPL:
(believe me, I tried)
I believe you, but I also have a belief it's always possible to use software incorrectly even after multiple attempts.
It's possible you used it wrong. Just saying...

Originally posted by slimakPL:
a reliable solution would require for game devs to address it directly and patch their games which they wont do such long time after launch
No, actually ( in MOST cases ), a "reliable solution" would be for Microsoft to not retroactively change older libraries' code - you know, kind of changes where OLDER SOFTWARE ( released before the change ) relies on THIS EXACT CODE. They could also try to design their OS intelligently and not hap-hazardly.
It is UNREASONABLE to expect every company who ever made software to be run on Microsoft Windows systems, should support it till the end of universe lifespan. Companies go out of business, developers change jobs, some software even becomes abandonware, yet a system lives on ( usually ).
If you get a library X of version let's say 1.0, this version should remain FOREVER STATIC - that's how it's supposed to be done in programming world!
If you want to update it, say, make a functionality superset, you either A. Bump the version OR B. You make a new library.
But then MS, in their ultimate " "wisdom" " on several different occassions changed the underlying libraries without bumping the versions!
OR they straight out FORCED software to use newer libraries' versions than the software is requesting - in SOME ( rare ) cases this has zero impact by a sheer LUCK, but in many cases this straight out makes software malfunction or not work at all!

If Microsoft keeps screwing stuff up, you just can't expect everyone to constantly patch their software.
The devs were given libraries to work with, then they relesed their software, then years passed, then MS changed the underlying libraries.
What are you expecting devs to do?
Sit back eg 10 years later and rebase the whole code?!
This is exactly backwards to how it's USUALLY done in programming world!
And it's MICROSOFT who is doing it wrong!

And YES, MS *has* changed their CPU governor algorithm, their CPU affinity code, their CPU load balancing, etc, over the years. It definitely DOES have impact on older software.
It's not unreasonable to assume at least SOME software's auto-detection code is suddenly incompatible with whatever changes MS made.
This is probably the case in this specific problem.

This isn't the first time a problem such as this surfaced you know?
It's nothing new.

Originally posted by slimakPL:
Process Lasso
Is a free[/b]mium[/b] software, 3rd party software at that!
It has a lot of functionality beyond just CPU affinity, so naturally, there's more room to misuse it.
Use official Microsoft tool instead:
https://www.techpowerup.com/download/microsoft-interrupt-affinity-tool/
( or here, but this may be an older version possibly )
https://web.archive.org/web/20201111193913/https://download.microsoft.com/download/9/2/0/9200a84d-6c21-4226-9922-57ef1dae939e/interrupt_affinity_policy_tool.msi
( disclaimer: been a while since I used this tool, I don't remember exactly if it allows changing games' affinity, my apologies if I misremembered )

By the way, it's been a while since I checked this ( I no longer use Windows as a daily system ), but I'm fairly sure you can set CPU affinity for a process in a taskmgr... You should try setting it ( for the game ) to 'real cores' only, and or to "only first few ( real ) cores" - some older games behave badly if they see too many cores ( be it due to MS changing relevant code, or the game engine being badly coded )...

Originally posted by slimakPL:
just saying that for anyone interested
Originally posted by slimakPL:
im writing all this as this might help someone in future with similar problems in some way
I think the intent is clear. And these 2 parts are woefully unnecessary to add...

Also, for general troubleshooting I recommend PCGW.
While in this case the info is not there, in many other cases the site is very valuable resource.
https://www.pcgamingwiki.com/wiki/Deus_Ex:_Human_Revolution

As a closing note - I want you to understand that I am NOT against you personally, I just want things to be accurate, without arbitrary assumptions and without interpreting possible flukes as "definitely proper". No offence. And no hard feelings.

By the way, NICE NECROPOSTING...
Only a whole 1.5 year after last post...
This is an absolute masterclass of a post, well done.
slimak[PL] Nov 13, 2023 @ 7:02am 
@B1tF1ghter not offended. thanks for sharing knowledge/opinion too. a side note tho : you are too much/too many times explaining yourself tho about your non-personal/non-offensive approach towards me tho. it wont be offensive unless you want it/make it to be as such, so... noo need for that. you seem a bit too protectional as well. noo need for that either, but in the end of the day it seems like you are a person who likes to help others so I gues its cool. I assume you are a programmer, right?

@Rage dude, no point in quoting the whole article, it makes reading the topic harder for others :)))
Last edited by slimak[PL]; Nov 13, 2023 @ 7:16am
B1tF1ghter Nov 13, 2023 @ 8:22am 
Originally posted by Rage:
Originally posted by B1tF1ghter:
( ... )
This is an absolute masterclass of a post, well done.
Thank you, but please don't quote the whole msg when it's not strictly necessary.

Originally posted by slimakPL:
I assume you are a programmer, right?
TLDR:
I have been learning IT privately for most of my ( relatively not very long ) life. I self learned 95+ % ( I have virtually no "paper trail" ).
I know few prog lang to an "undisclosed degree". I have spent years digging through bugtrackers, debugging issues on my end, sometimes helping others. I also have "undisclosed" level of gamedev knowledge. AND I switched to Linux as my daily system full time few years ago, have done considerable amount of debugging NIX issues since then... ( before that I spent big chunk of my life privately wrestling with Microsoft's garbage software, and their many piss poor design decisions... )
While I am definitely not the most qualified person to fix certain issues, I debatably do know more than many other random people ( kinda blanket statement lol ).

I don't really know how to answer your question, lol.
At the moment I don't consider myself a programmer, bc it's not something I do for a living ( at least not rn ).
I do however intend to "properly" learn some things someday / "make my knowledge better", eg "C".
slimak[PL] Nov 13, 2023 @ 9:37am 
I get your point as I understand exactly where do go "come from" so to speak and totally respect what drives you. its like they say "thats why cant have nice things?" : the more people like you are vocal about such stuff the better. most of people are like me, not knowing first thing about proramming and stuff, and can ideed name things wronfully, but trust me, for us finding any damn solution to some game finally working is a huge relief despite indeed a "solution" is not a proper one, just a poor workaround at best. good thing is that majority's ignorance on what REALLY happens under the hood hopegully does little to no damage to IT environment, its not like being igonorant about lets say politics that we presume we have some influence on (despite we probably dont, but i digress). :)
Last edited by slimak[PL]; Nov 13, 2023 @ 10:27am
< >
Showing 1-12 of 12 comments
Per page: 1530 50