Tree of Savior Forum

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

If we get people; I’m in.

A Discord channel would make stuff easier too, as it allows file sending. I’d just need a new character on Klaipeda.

Edit:

EST is server time, right?

Yes, EST is server time. I don’t know much about discord channels, I’ll read up a bit on them… if they’ll help with communication, it would definitely be useful.

Here you go.
Its chat room allows you to send files, and it has a really small network/CPU/RAM footprint, so it should be ideal for our testing.

Cool, I downloaded it. We’ll give it a try tonight. Hopefully there will be more people who are interested in helping out!

I can try sending a megaphone in Orsha server as we’re closer to the time to find some people.

Oh o_o. I’m in Klaipeda server… hmm…

Might be worth it to just do the tests on two different servers anyways…

hmm, it might also be a memory leak somewhere? I’m not sure if you check to use direct X 11 in the steam options it will enable the use of your GPU? I’m not too familiar with DirectX APIs. The current DirectX 9 doesn’t use the GPU and it doesn’t seem like the game was programmed to used the GPU because it requires the work of getting the images and stuff from the CPU memory into the GPU memory.

DirectX should always use the GPU.

And the -DX11 switch gives marginal performance gains, but no increase in CPU or GPU usage.

@chronosanct:

As we’re testing in Orsha city, I can just start a team on Klaipeda and test. No problems here.

hmm…seems like a memory leak but I dunno. I guess you can determine this by just letting running and seeing if the performance goes down. I don’t think the fps depends on the connection tho.

My computer has 16 GB of ram… when I get FPS drops, my total system ram utilization is not anywhere near 16 GB. This rules out the possibility of a memory leak resulting in performance drops (at least on my computer setup).

EDIT: Good point, 32 bit programs are limited to 2 GB memory or 4 GB if compiled with large address aware flags. Still, I haven’t seen ToS memory use reach near 2 GB.

hmm it seems like a mystery to me and some have the same problems with other MMORG…

I’m pretty sure there’s at least one problem with this.
I noticed this when using Weapon Switching.
When i change maps or channel it works fine and quick.
But if i fought mobs for a while and switched equip back and forth a few times it causes more and more lag after a while, up to freezing the whole screen for a second.

No it doesn’t.
Client_tos.exe is a 32 bit process and is limited in memory use by this.
But also it doesn’t mean freezes occur only when all memory is used up, that would cause a crash, but also when there’s a lot of stuff in memory piled up that some function has to go through, thus causing freezes / lags.

I have not seen Client_tos.exe memory utilization reach 2 GB, but if you say you have, then you have…

We also don’t know if ToS is using IMAGE_FILE_LARGE_ADDRESS_AWARE that would extend the limit to 4 GB… (we just don’t know).

I meant 16gb ram system or not doesn’t matter for this.
I don’t think i noticed 2gb usage or more either.
but just imagine there’s like 10-50mb of data leaked at some place, and one single function that’s used regularly has to go through it a few times.
That would already create significant lags.

This community is amazing.

Thanks chronosanct. IMC should just hire you already

weapon swap was buggy in CBT2 and I regret buying it…
I remember when the loading screen wouldn’t go away also when the game finished loading…
It seems like weapon swap is still buggy? I guess I won’t get it this time…

Some more evidence of FPS drops due to other players in the screen. @Gwenyth was kind enough to provide this video of this kToS player also suffering terrible FPS drops.

Some interesting things to note:

  1. At the start of the video when there are no other players around, the FPS is ~30.

  2. (@ 0:25 seconds) the player starts to see 4-5 other players PvPing and the FPS is already dropping down to ~13.

  3. Pretty much as soon the player gets within 1.2 screens distance (@ 0:27 seconds into the video) from the center of the PvP cluster (I estimated ~15 players) the FPS drops to ~5-7.

  4. In the second PvP skirmish (@ ~5:10) there are only ~5 players and the FPS drops to ~13-15 which is interestingly similar to what we see in 2).


Prinny Notes:

1) Need to see if FPS is dropping even if you set “DrawActorPersent=0” to in user.xml located in C:\Program Files (x86)\Steam\steamapps\common\TreeOfSavior\release

Hypothesis (A): Setting “DrawActorPersent=0” will get rid of all FPS drops even in really crowded town/world boss/Guild vs. Guild situations.

Why?

Follow-up hypothesis (B): IF (A) is True, maybe the DrawActor function is waiting on the TCP thread? (this would make sense because the DrawActor function will need to depend on location of other players to figure out where to draw them on the screen. Location of other players requires ‘other’ player location packet to be sent to server and server to send packet to client… if TCP packet fails, then DrawActor function may be in “wait” state because the TCP socket thread is in a “blocked” state.)

If B is true then, the reason why setting “DrawActorPersent=0” will work is because it will completely skip the “DrawActor” function (which is hypothesized to be hanging because it waits for TCP packets describing player positions)

What makes me wonder:
What is the difference on how mobs and players are handled.
Because you can have lots of mobs on screen (e.g. demon prison 2)
and it runs completely fine. Positioning them, drawing them, animation, attack effects and whatnot.
But as soon as you get like 5-10 players on screen FPS start dropping.
Even if they’re just idleing in town.

Mobs have a lot less possible positions and moves than players; thus allowing for a smaller data transfer.