Pillars of Eternity II: Deadfire

Pillars of Eternity II: Deadfire

View Stats:
Kaldaien Jul 12, 2018 @ 6:23pm
2
[Special K] Fix for Inverse CPU Performance Scaling < Updated: 7/29/18 >
Intro
    I have determined one cause of extreme performance problems for systems with higher-end CPUs.
    The game spawns one worker thread per-CPU core (logical, not physical), and does not assign thread priority. This causes starvation and the result can be a very substantial decrease in framerate.
      My system goes from 24 FPS to over 100 at 4K after artificially decreasing my CPU's core count from 16 down to 3.

Download and Install
    Grab a specially prepared version of Special K from here[github.com]
      Extract the DLL and PDB (optional debug info) to your Pillars of Eternity 2 install directory

Configuration
  1. Press Ctrl + Shift + Backspace in-game, then expand the "Advanced" section of the Framerate Limiter settings.
  2. Enable "CPU Core Spoofing" and cut the number of CPU cores in half.
  3. Restart the game and test framerate
    • You may try reducing the number of cores even farther if framerate is stable.
    • Hitching may occur while panning the camera if core count is reduced too far.

Misc. Performance Advice
    If you are having GPU performance issues, Ambient Occlusion is the most poorly optimized graphical effect in the game. Dynamic Lights also have a modest impact on performance.
    These are the first things you should try turning off if using a lower-end GPU.


Suggested Optimized Settings

    The SwapChain settings shown above will disable sRGB gamma and give smoother windowed mode performance. On systems with G-Sync monitors, it also enables Unity to use G-Sync.
Last edited by Kaldaien; Jul 29, 2018 @ 5:21pm
< >
Showing 1-15 of 430 comments
PlayboyMoney Jul 12, 2018 @ 6:25pm 
Wow. Do you think this will help a Core i7 4770K? Old model. Should I just try it?
Richard Harrow Jul 12, 2018 @ 7:02pm 
Thanks. This tripled my framerate actually. What a relief.
iamtoxic500 Jul 12, 2018 @ 7:31pm 
Thanks for the fix! I didn't notice a framerate increase when I decreased my cpu core count to 2. But I don't have a high end cpu with more than 4 threads.
Kaldaien Jul 12, 2018 @ 7:41pm 
Originally posted by iamtoxic500:
Thanks for the fix! I didn't notice a framerate increase when I decreased my cpu core count to 2. But I don't have a high end cpu with more than 4 threads.
Yeah, I don't think lower end CPUs are affected here. It's when the game tries to split workload across all reported CPU cores that stuff starts to suck.

The proper solution here would be:
  1. Ignore logical CPU cores and focus on physical
  2. Thread priorities need minor adjustments

I'm hesitant to suggest #2 to Obsidian though because thread priorities are not something you take lightly. Overly aggressive prioritization hurts performance just as much as no priorities at all.
Last edited by Kaldaien; Jul 12, 2018 @ 7:42pm
epausti Jul 12, 2018 @ 8:01pm 
I cut the core count to 2 from 8, almost doubled my framerate. thanks for this!
feralgal Jul 12, 2018 @ 8:03pm 
Originally posted by PlayboyMoney:
Wow. Do you think this will help a Core i7 4770K? Old model. Should I just try it?

I'd try it. I think all the i7s have either 8 or 12 threads. If the number of threads is causing the problem, this should help all the i7s. My i7 is older than yours and I"m going to try it to see if it helps. Why don't you try and report back?
Richard Harrow Jul 13, 2018 @ 6:55am 
I went from 4 to 2 and still noticed a huge difference. I think this'll work for about anyone. Thanks again.
Briggs Jul 13, 2018 @ 7:14am 
@OP

I have an i7-E (so plenty of cores), but I keep HT turned off in bios due to a combination of heat (its unreal how hot it gets) and issues with games.

Could this be the reason I haven't been experiencing problems while others have been?

edit: I have 6 physical cores.

Alternatively, could this be related to how Windows handles threads vs Linux? I don't think I've seen a single Linux user complain about performance.
Last edited by Briggs; Jul 13, 2018 @ 7:18am
Obsidian should pay you for this fix
Briggs Jul 13, 2018 @ 7:43am 
Originally posted by =NK= Col. Jack O'Neil:
Obsidian should pay you for this fix
There are so many devs that should pay so many modders. I'm glad to see several mod teams making Patreon accounts.
feralgal Jul 13, 2018 @ 8:01am 
I tried it last night and all I got was a pink screen. I downloaded it again and the same thing happened. I'll try it again after I get a new video card.
Pilda Jul 13, 2018 @ 5:41pm 
Kaldaien, it would be good if you wrote directly to Obsidian. Maybe they will listen to you.
Kaldaien Jul 13, 2018 @ 5:53pm 
Originally posted by Pilda:
Kaldaien, it would be good if you wrote directly to Obsidian. Maybe they will listen to you.
I doubt that :) It's really freaking hard to get in contact with developers these days. They usually have a silly publisher sitting in-between them and the outside world and I've resorted to leaving little messages in most of my threads under the assumption that the developer reads this stuff but isn't allowed to communicate without the publisher as a useless middleman.

Maybe Obsidian's different. I'll look into sending them a direct message when I have some time to do a writeup on this. It helps with their engine in PoE1 and Tyranny as well, so it's worth the time and effort provided someone reads the stuff :)
puppet74 Jul 13, 2018 @ 6:44pm 
just post it on the offical forum in tech support, bugs forum and they will read it.
Richard Harrow Jul 13, 2018 @ 10:58pm 
Originally posted by puppet74:
just post it on the offical forum in tech support, bugs forum and they will read it.
yeah I honestly think if they jump on the forums, they're going to spend more time there
< >
Showing 1-15 of 430 comments
Per page: 1530 50