Please upgrade your browser for the best possible experience.

Chrome Firefox Internet Explorer
×

Fix game


Dexxius's Avatar


Dexxius
01.21.2012 , 05:26 AM | #1
Originally Posted by Wakantanka
As a software engineer I am going to throw out my speculation based on some poking around using tools like Process Explorer.

The game is not CPU or GPU limited when in Warzones or other player heavy situations. Usually when you see this kind of behavior it means things are I/O bound. Both the CPU and GPU are waiting for either data from the hard drive or the network and doing nothing for short periods of time.

Games used to be single threaded and the same loop that does the rendering also processed network packets and read data from disk. If something was loaded from disk no frames where being rendering during that time, so most games had a loading screen and loaded everything into ram and made sure to never touch the disk again until the next load screen.

SWTOR is not single threaded, this is easy to know because it runs two processes, this means a minimum of two threads, but its actually much more, last time I looked both processes had 10+ threads each.

SWTOR is definitively loading assets from disk constantly probably because a whole planet cannot fit into the 2 gigabytes of address space a 32bit process has access to. A lot of software does this sort of thing, it typically called streaming, and there are a lot of approaches.

SWTOR is actually unusual in using two processes, I myself have never seen a game do this. In poking around its easy to see the main swtor.exe with the larger memory footprint is doing the network communication and playing the sounds while the secondary smaller swtor.exe is doing the direct3d calls and utilizing the GPU.

These two processes must communicate somehow and this is what makes things unusual for something like a game, because inter-process communication adds much overhead, even when using the fastest form called "shared memory".

It's seems no matter how fast your CPU or GPU is any time the disk is read in SWTOR the framerate will plummet, this is the random "hitching" you see when driving a speeder around, this means the disk access is blocking the rendering engine in some way. Other players exasperate the problem because of their varying outfits and models which must not be able to completely fit in ram and must be loaded/unloaded on demand, vs NPC which in a questing area are all wearing similar outfits etc.

You can tell SWTOR blocks on disk while a game like WoW doesn't because have you noticed in SWTOR you never see another player partially loaded? In WoW while the players assets are being loaded they may show up as just a "shadow" on the ground, you can see them moving around but the model hasn't been loaded yet. In SWTOR players "fade in" fully loaded which mean their models must be read from disk(or already be in ram if lucky) before the engine will continue. This may be intentional or a limitation in the engine design. I prefer WoW's approach of never blocking rendering even if on the rare occasion you might end up fighting nothing but a shadow while the model is loading(happens much less in wow because of simpler models allow more to stay in ram).

So the game is blocking on I/O, either network, IPC, or most likely disk leading to horrible FPS even on high end systems. SSD's will help the situation some, but even an SSD is still thousands of times slower than ram. And for those with 8-16gigs of ram, SWTOR is only 32bit with two processes, so it basically has a total of 4 gigs of usable address space and it seems that only one processes is really using it's 2 gigs, while the second renderer is only using about 300-400megs. There has been reports of setting up RAM disks for SWTOR's assets helping if you have lots of ram, which would line up with what I am seeing.

If this is the case what are the solutions?

1. Stop blocking on disk reads, this made leads to things like just seeing a blob shadow run by for a few seconds, but you can still control game and take action. This may or may not be easy to do given the engine design.

2. Merge the two processes. Again I have never seen a game do this, IPC adds overhead and latency that would not exist in a single process design.

3. Compile for 64bit. This may be difficult to do depending on the engine design, but a single 64bit process could use all the available system ram for caching assets greatly reducing disk I/O.

That is my educated guess based on what I know and what I have seen in game, it may be wrong, it would be nice to get a real response from a dev to clarify.
The dark side of the Force is a pathway to many abilities some consider to be unnatural.

Interceept's Avatar


Interceept
01.21.2012 , 07:46 AM | #2
+1 to this

AkumaMatata's Avatar


AkumaMatata
01.21.2012 , 07:47 AM | #3
another +1 for this post

inb4 customer service replies with "please post dxdiag of your issue"
[B]The Force will be with you, always... if you click this Referral link http://www.swtor.com/r/zNYkCs

lollie's Avatar


lollie
01.21.2012 , 07:49 AM | #4
Quote: Originally Posted by AkumaMatata View Post
another +1 for this post

inb4 customer service replies with "please post dxdiag of your issue"
Heh

CAUTION: DO NOT LOAD SWTOR UNLESS YOU HAVE AFTER-MARKET COOLING INSTALLED!!

_______________________

Rikeryo's Avatar


Rikeryo
01.21.2012 , 07:53 AM | #5
+1 interwebz

yeah, can't wait to see another stupid CSR post.

DmTrh's Avatar


DmTrh
01.21.2012 , 08:05 AM | #6
bump for justice! =D

matteberna's Avatar


matteberna
01.21.2012 , 08:08 AM | #7
bump, since I had similar thoughts (even though I said the loading of audio effects was the cause)
Thing is... how would you explain the fact that some mediocre PCs are running the game flawlessly around other players? :|

MrStian's Avatar


MrStian
01.21.2012 , 08:35 AM | #8
Bump +1

Daptone's Avatar


Daptone
01.21.2012 , 08:37 AM | #9
+1 from me as well.
ლ(ಠ益ಠლ) FIST-A-CUFFS NAO!

lollie's Avatar


lollie
01.21.2012 , 08:39 AM | #10
Quote: Originally Posted by matteberna View Post
Thing is... how would you explain the fact that some mediocre PCs are running the game flawlessly around other players? :|
Prob cos they're using a 32bit OS (game seems to cause most issues with a 64bit OS), running it all on low settings, and think getting 15-20fps means the game is playing well...

CAUTION: DO NOT LOAD SWTOR UNLESS YOU HAVE AFTER-MARKET COOLING INSTALLED!!

_______________________