Steam 설치
로그인
|
언어
简体中文(중국어 간체)
繁體中文(중국어 번체)
日本語(일본어)
ไทย(태국어)
Български(불가리아어)
Čeština(체코어)
Dansk(덴마크어)
Deutsch(독일어)
English(영어)
Español - España(스페인어 - 스페인)
Español - Latinoamérica(스페인어 - 중남미)
Ελληνικά(그리스어)
Français(프랑스어)
Italiano(이탈리아어)
Bahasa Indonesia(인도네시아어)
Magyar(헝가리어)
Nederlands(네덜란드어)
Norsk(노르웨이어)
Polski(폴란드어)
Português(포르투갈어 - 포르투갈)
Português - Brasil(포르투갈어 - 브라질)
Română(루마니아어)
Русский(러시아어)
Suomi(핀란드어)
Svenska(스웨덴어)
Türkçe(튀르키예어)
Tiếng Việt(베트남어)
Українська(우크라이나어)
번역 관련 문제 보고
Civ 5 had a similar issue. it would crash if it used more than 8 cores
Interesting. Did they eventually fix it?
It's been a while since I've played a longer game of Civ 5.
https://gaming.stackexchange.com/questions/328111/civ-crashes-on-a-newer-high-end-system
I just got the game with the sale, haven't even launched it yet but I was so excited to finally get into the series; then i found out about the issue and was Very Sad until I found this thread, which reignited my hope for the game... and then I just don't have the file.
I installed the game on the D: drive so that may have something to do with it but idk?
I looked up a YouTube video to see how they find the file and it looked, Totally different from my directory. They had folders like Cache and Mods and Logs and such, and they had files beneath those folders, whereas I only have six folders: 2KLauncher, Base, CTP, Debug, DLC, and Launchpad. I, frankly, have no idea what I'm looking at here but I've Control+F'ed in so many files of code looking for MaxJobThreads that I think I'm absorbing a game design degree through osmosis.
Going to Documents/My Games reveals that it only has one game in it, that being Tabletop Simulator, and I have many games on both the C: and the D: drives. Looked in the My Games folder in C:, over in Users, and only found the Binding of Isaac. Didn't find a directory for it in Program Files x86 or Program Files either. I also tried searching my entire PC for the file to little avail. Tried the %appdata% thing to no avail. I've got no clue what to do anymore.
I agree with tulle040657 and SLGray, don't use this method if you don't have any issues.
Keep MaxGameCoreUnitMovementThreads and MaxGameCoreUnitMovementThreads smaller than MaxGameCoreThreads. This only tends to matter for large maps with lots of units late game.
Still not fully sure about GameCoreReserveThreads I've mostly just been leaving it at 2.
For anyone else who wants a basic windows tool to check things and follow along more closely get process monitor (the answer in this thread covers it very well. You DO NOT need the symbols for this so you can stop at step 5: SuperUser forum answer[superuser.com]). There are other tools I've used but since this is basically something MS cut out of the OS to keep things simpler it's usable by anyone.
The game fires up several threads that we have no config options for, and really wouldn't matter if we did. You'll get several threads for controlling videos (the threads started at bink2w64 if you have a process viewer and are curios). You'll get a couple for input control (mine are Logitech). You'll get a network controller (MSWSOCK), you'll get 3-6 for you video card (nwf2xumx in my case). You'll get a couple for audio (AUDIOSES.DELL and xaudio2_9.DLL). Then you'll get about 6 asset control threads (CivilizationVI_DX12.exe!ForgeUI...) those control the various info in the user interface. Those thread sets basically never change and seem to all be well behaved. I've never seen any real errors with any of them. If you have different hardware you'll get different start addresses for some of them but they should be fairly obvious.
The threads spawned from uctrlbase.dll and the ntdll.dll!TpReleaseCleanupGroupMembers are the ones that you can have some influence on. While those threads aren't always active they are primary game control threads. It definitely seems like the controls for MaxGameCoreUnitMovementThreads and MaxGameCoreTradeRouteThreads are instructions for how many of primary control threads those functions can use. Keeping those values lowers than MaxGameCoreThreads seems to help stability in late game high unit situations. It also has an impact on turn times in very late game scenarios.
As for setting MaxJobThreads and MaxGameCoreThreads which have the biggest influence it seems that 60% of the autoset (leaving them at -1 in the config file) value seems to always be safe. So on my big rig I'll get 10 threads with a start address of ucrtbase.dll when things are set at default. I can set both MaxJob and MaxGameControl to 6 and haven't seen a crash. On a slightly older rig it fires up 8, 4 was always safe, but 5 or more would sometimes still crash.
On the big rig I've put the UnitMovement and TradeRoutes to 4 each and I've just been leaving CoreReserveThreads at 2, I'm not sure what it does still.
I have noticed that problems are likely to happen if the ntdll.dll!TpReleaseCleanupGroupMembers threads start closing and not coming back. I do think the CoreReseveThreads might be the minimum the game tries to keep open. But when I get down to just 1 or 2 of those threads being alive I'll usually see a crash in the next dozen turns or so. Shutting down and restarting the game seems to buy me more time. So if you really want to squeeze everything out of your system you can likely monitor those threads and exit restart when you see them dropping. Of course I don't really think you need to since a setting of 4 on Job and GameCore threads performs just fine on newer systems.
If you don't have a process monitor tool to check that, I'd say on an Intel system just go with the number of physical cores you have (remember if you have hyper threading physical cores will be half of what you see in task manager/process monitor, etc).
I don't have a lot of time today, but I'll make sure to do some testing in the next days.
One thing I can say for sure right now, though, is that, at least on my system, setting MaxJobThreads and MaxGameCoreThreads to the amount of physical cores seems to be highly unstable.
I've got an i7 12700k, which means I've got 8 physical P-cores and 4 E-cores. I did a quick test run this morning with the five settings set to 8/8/2/2/2 and my game crashed at turn 17. I then deactivated my E-cores in Bios, just in case they were messing something up, but results were pretty much the same.
Another quick autoplay test run with settings at 6/6/2/2/2 ran perfectly stable until turn ~400, though. So you're definitely unto something here. However, I'm certain that I already had two test run crashes with MaxJobThreads and MaxGameCoreThreads set to 4 in the past. Those seem to be pretty rare though.
Again, thanks for you work! I'll put a link to your post in the OP.
@Kevin_H:
Alright, I had time for another test run while I've been doing some other stuff in the house.
Sadly, with another round of the same settings as before (6/6/2/2/2) the game crashed this time at turn 84. Interestingly, with exactly the same starting position. I loaded a turn 1 savegame that I made the last time.
I had a look at my thread count on default settings and I'm getting 18 threads with a start address of ucrtbase.dll with everything set to -1. So the reference point for a stable game of 60% seems to be off, at least for my system.
Well dang thought the 60% would work well. Good to know it doesn't. I also wonder why the 6/6/2/2/2 is less stable for you than for me. That sucks. I thought we had something. Guess not, but at least the data points are out there for people and at least many of us who couldn't play at all can again thanks to you finding and posting about the file. I just want to find a stable way for people to be able to get stable games without sacrificing too much performance.
What video mode were you using? I've been running borderless windowed so that it's easy to use the tools and record results and such. Wonder if that has an impact.
It does seem that 6 job threads is the max I've never been stable on any system over that and it doesn't seem like anyone else has either.