Hello, also having problems with framerate here, though I have most issues worked out, making game playable and without freezes (mostly).
So:
i7 4790K (running stock)
16GB Ram
GTX 970
Win10 64bit
I can talk about Nvidia side of things, dunno how it will look for AMD GPU users.
1st off, you can set “-DX11” in steam launcher options, it might help out a little bit, it might not, in my case there was no real benefit outside of forcing application into using DX11 libraries.
Next, go into Nvidia control panel -> Manage 3D settings -> Program Settings tab -> select Tree of Savior (client_tos.exe) and change following options:
Threaded optimization - ON
[Optional] Vertical sync - Adaptive or ON (If you want screen tearing reduced, not really needed)
[Optional] Power management mode - Prefer Maximum performance (a little warning here, your gpu will run on 100% usage while this is on, might not be a good idea for power saving and gpu overall)
[Optional] Multi-Display/mixed-GPU acceleration - Single display performance mode (this is good for those having 2 displays [like me] or using mixed gpu settings [Intel HD+Mobile Nvidia GPU])
Threaded optimization is the key setting, as this will allow us to force game into splitting between cores, even if it doesn’t want to.
Now, after you’re done with Nvidia control panel, restart your PC, run the game AND task manager.
Login to game, go to Klaipeda or Orsha, check your FPS and look at performance tab in task manager (alt+tab or use windowed mode), if only one core is being used, go to processes tab (or details tab in Win10), right click client_tos.exe process, and select “set affinity”.
This allows us to control on which CPU core the game will run, most of the time, because how buggy and incompatible the game is with multi-core systems, this is a hit and miss workaround, but working nonetheless.
Now, deselect CPU 0 (this is 1st core in all cases, further CPUs depend if you have hyper-threading or not etc.), leave all other checked, and hit ok, game “shouldn’t” crash (it never crashed for me), and cpu usage SHOULD split between SOME (not all) of CPU cores, giving it more juice thus more FPS and less freezing (mostly kills freezing), if the game didn’t split properly (check in performance tab where the most usage is), go to “set affinity” again and disable/reenable cores until you get satisfying result.
In most cases, 2 half used CPU cores is enough to give enough juice to the game and kill freezing issues, game is then very much playable in bigger areas, though cities are still a pain in Framerate.
As for other settings, I didn’t change anything, nothing changed in user.xml, all settings in game set to max, using borderless-fullscreen (the default one game sets), Vsync Disabled.
Before i was turtling at 20-180 FPS (when nothing on screen etc.), with freezing.
Now i mostly have 40-50 FPS MINIMUM in all situations, up to 200 FPS in fields and no freezes.
I have no idea if AMD guys have thread optimization in their side of things, but i hope that maybe at least the affinity trick will work.
Good luck with fixes and have fun guys, Cheers!