Tree of Savior Forum

I checked my GPU load during terrible city framerate loss. Here's what I discovered

I wonder if they even tried to get some multi-thread improvements using automatic compiler optimization…

http://www.pgroup.com/
https://software.intel.com/en-us/articles/automatic-parallelization-with-intel-compilers

What I mean is that a lot of communication is being done to the RAM; which proves that the CPU is being used to render graphics (the game shouldn’t use more than 15% of a 960 in cities BTW), and more as a fun fact.

Even if a GPU was less efficient than a CPU at handling said tasks, VRAM would be an extra bus to communicate this data and would largely increase performance even for people who use older cards (the minimum requirement for the game is a 8600GT). This game really needs GPU optimization (or at least multithreading if you’re going to use the CPU for everything, which is a design choice, as bad as it might be).

Edit @chronosanct:
If I remember correctly, Intel’s compiler uses some syscalls that run reeeeeeeeeeeeally slow on AMD CPUs.

2 Likes

STEAM hardware survey
Detailed processor drilldown survey results

True… but when the majority of the userbase uses Intel CPUs, it might be a worthwhile thing to try…

i got no clue what ya’ll talking about - but to add something as a poor peasant that i am:

my fps drops pretty hard on an empty map - it starts with 190 fps and drops down to 15-20 after prob 30 mins - anybody knows why? and might explain in a way that even i understand

1 Like

Its not rendering that is the problem in the engine. ToS is not a graphics intensive game. The problem is how they handle networking.

If the game is not multithreaded, that means network processing is on the main thread.

That means that if you have a lot of players and mobs on your screen doing stuff, or even just loading, your client is getting spammed with packets from the server that need to be processed on the main thread.

If it’s ALWAYS after a certain time, independent of on-screen characters/effects, some of your internal computer components might be heating up.

@chronosanct:
Dropping 24% of the userbase is REALLY bad.

@Staff_Julie @STAFF_John @STAFF_Ethan

Can you guys forward this to the Developers? we really need this to get fixed lmao

It’s 2016 yo

11 Likes

Well there’s always:

http://www.pgroup.com/products/winpgi.htm

EDIT: Of course I could be making the gravely mistaken assumption that there is anything to parallelize in the first place. Given the current state of ToS performance, it may not even be worth it… only the imc devs know for sure…

Maavy is right.You should turn on VSync, you’re overheating your graphics card. It might result in permanent damage.

If vsync is off, the engine doesn’t throttle the GPU at all and will run it at max.

I always turn on vsync on every game so the GPU automatically caps the FPS to 60.

1 Like

Solution:

Also eliminates screen tearing, but may increase input lag…

Summary post:

When your game only ever uses core0 and doesn’t really leverage the graphics processor, your users are gonna have a bad time.

#UPDATE: So turns out Tree of Savior is multi-threaded. Also FPS drops do not appear to be caused by CPU or GPU bottlenecks. Instead it seems to be something weird related to TCP/other players being in the same area. Curious? Find out more by reading below!

There was an absolutely hilarious thread/video on reddit discussing the situation:

EDIT: The text over the shirt being flung was “chat spam”

@Staff_Julie, @STAFF_Ethan : You should forward this video to the devs, it’s funny and pretty much accurate.

14 Likes

I agree that this is a problem that needs to be addressed. But it is quite silly for anyone who is not a programmer (or more specifically, not a programmer that has worked on ToS) to be pretending they know exactly what the problem is and how to fix it. Speculate away as to how you might be able to improve things for your fellow player in the mean time, but unless you have their source code you are hardly doing anyone any favors by pretending like you know how to fix their issue.

Its pretty obvious from the symptoms what the cause is.

In fact this reddit post did a good investigation on the issue: https://www.reddit.com/r/treeofsavior/comments/4cj8d0/possible_fix_for_performance_issues/

He hooked up a packet sniffer and clearly found that during periods of high network load, the client fps drops considerably.

It’s not that hard to deduce what gone wrong for the program just by the symptom though.

3 Likes

Not optimized.

I had a spontan Wolrdboss fight today. With 12 people only.
We ONLY had 20 fps. Which was really playable. As no one … ehh… told anyone else.

last time i shouted wb location… and tested the massacker of fps lag to 0~5 fps

So yeah.
This game is unoptimized as hell.
I have no problems running high end stuff here xD…

Maybe soon…

Yeah this is kinda why I feel multicore cpu’s are still sort of a waste of money for gaming mainly, sure you have an 8 core cpu, but that game you just bought? yeah its only going to use a single core and ignore the other 7. That and they tend to use cpu core 0 which is the main one everything else runs on unless you manually change it everytime you launch the game.

Dude you just made my day with that video, Im not even a beginner when it comes to computers, i will say that my i7 seems to run mostly oki, in dungeons while we are doing the mongo aoe spam+ plus boss and adds animations going off, it tanks to around 20 FPS. Seems you need a hefty cpu to makes this run efficiently, sadly enough im sitting on a high end GPU as well which according to your post is not being used.

Very interesting info, maybe the dev will take note and with some of the computer gurus that play ToS work on a better design for the engine.

Because in Korea, gaming is PC-bang centric, I would argue that users (and developers) don’t have to worry about computer specs nearly as much.

The fact that they didn’t take note of this issue or focus on it much in the first place during development is pretty telling regarding how much they’ll be able to achieve going forward (don’t bet on too much is my opinion). Refactoring code is usually quite intensive especially if it’s not well written…

1 Like

Tried setting CPU affinity for Tos_client.exe from “all cores (0-7)” to cores 2-5. Resource monitor shows that cores 2 and 4 got an even load.
Magic o_O.

1 Like