Jump to content

Un peu de lecture sur l'optimisation graphique


Comaeus

Recommended Posts

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.

 

 

 

Originally Posted by tbur :

 

Wakantanka is right. I also am a software engineer and I noticed a few things that indicate corners were cut, such as the 2 processes.

 

Each x86 Application is limited to 2gb of ram and by having 2 it means they could not for what ever reason get memory utilization below 2 and cheated by having a second process. If they were willing to cut corners on this I can only imagine what other design corners they have cut and agree 100% this is a design flaw. I love this game but imagine this will kill it as they cant reproduce years of design fast enough to keep subscribers especially if they purchased the engine instead of writing it themselves. These issues are most likely an IO issue caused by reads from disk or network.

 

I worked on a project that encountered similar behavior after years of poor design flaws and cut corners that ultimately resulted in starting over from scratch as it was control software for industrial automation and crashes / poor performance issues like this that take down multi million dollar factory equipment is unacceptable to most customers as I assume it will be for a gaming community who spend thousands to just play a game.

 

Bottom line this is a software issue and it was not ready to be released. They should have put more effort into design and pushed the release back to focus on quality. I am usnure if it was a cash flow problem as most software projects go over budget and get released with some bugs. The fix for this could take months or even years depending on the severity of the engine problems (Full engine rewrite) or not come at all because the cost could be too high to be profitable and they might just scrap this project.

 

 

Sorry to seem pessimistic but I have seen less severe problems like this kill projects and while I remain hopeful they will fix this game as I love it and would love it more if it worked as intended but I remain skeptical it will be fixed fast enough to keep enough subscribers to keep this game going.

your rigs are fine guys, it's bioware.

Link to comment
Share on other sites

  • Replies 122
  • Created
  • Last Reply

Top Posters In This Topic

Edifiant !

 

Pour rebondir sur le post original les sources du problème sont identifiées depuis un moment, d'ailleurs l'ont été aparamment par les posteurs sur les forums anglais, pour contextualiser il ya la bas 5 thread qui ont étés fermés (100 pages) et un 6eme qui en est a 80 pages toujours sans interventions des droids protocolaires de relation client - bioware.

D'ailleurs c'est étrange ce sujet et ses prédécesseurs n'ont pas été mis en sticky alors qu'ils sont parmis les plus populaires mais passons.

 

Le post de Neil Harris quand à lui est aussi très intéressant dans le fond car il montre le détachement que prends la firme créatrice du heroes engine avec bioware.

D'ailleurs pour le citer ; "I don’t have much contact with their engineers any more (the last code drop they took from us was about 3 years ago) so I can’t really speak to how much of our rendering technology is left in SW:TOR" c'est assez affolant de voir que biowaer a acheté ce moteur en faisant fie des soucis d'optimisations.

Présomptueux, Gordon Waalton a cru pouvoir finir ce moteur graphique "He didn’t care. “We are going to have tons of engineers. We can finish it ourselves". Soit, j'en deduis que ce ne sont pas les meilleurs à la vue du résultat.

 

La question est maintenant de savoir si la bande d'incapable qui a tripatouillé dans les codes vont ravaller leur fierté et quérir les services de ceux qui ont créer originellement le heroes engine pour améliorer tout ca.

Edited by senalya
Link to comment
Share on other sites

Hésitez pas à les link ici, j'ai un peu fouillé j'ai pas trouvé grand chose.

Enfin comparé à d'autres mmo récent ce n'est pas si catastrophique, mais pour 6ans et 200millions de dollars effectivement c'est bizarre. Le coup des deux processus j'aurais jamais cru qu'ils garderaient ça pour la release.

L'hypothèse comme quoi l'inquiètude gagnait bioware sur l'avenir du jeu et que du coup ils l'ont sorti très vite semble tenir la route.

Edited by Comaeus
Link to comment
Share on other sites

En ce qui me concerne je trouve assez cocasse le on vous achéte le code , NEED !

-Euh oui mais il est pas finis là

-Pas grave on a des tonnes d'ingénieurs on va faire un truc ENORME.

 

 

Ce genre de conneries se vérifient dans la vie de tous les jours des mecs présomptueux ou trop sur d'eux achétent des trucs en refusant l'aide des professionels et se confrontent a la dure réalité peu de temps apres, faisant de grossiéres erreurs, aussi apelé syndrome du meuble en kit.

Toujours 4 vis qui trainent a la fin on se demande pourquoi, on se dit que c'est pas grave mais on remarque son erreur quand le truc est branlant.

Link to comment
Share on other sites

Un trus marrant c'est que le principal endroit du jeu ou ça lag, Ilum, c'est le seul endroit du jeu où ma carte graphique est au repos.

Je l'entends même plus chauffer c'est dire tellement ya un soucis.

 

Alors que aldérande solo là c'est lagfest

Link to comment
Share on other sites

On peut avoir un résumé en français pour ceux qui ne maîtrisent pas suffisamment l'anglais pour tout comprendre et éviter les contre-sens, s'il vous plaît ?

 

Merci d'avance =)

 

+1

 

Je peux lire l'anglais, certes... mais un pavé comme ça me donne mal au crâne, sans vouloir passer pour un feignant.

Link to comment
Share on other sites

Le post de Wakantanka cité par l'op (don je n'écorcherais pas le nom xd) est assez comprenhensible dans les grandes lignes si tu as pas essayé d'aller sur google trad ( c'est rare d'ailleurs)...

 

Ce qui ressort globalement des test de wakantanka c'est que le jeu est I/O bound, ce qu'on a pu lire sur les forums francais également sur le topic des 5% Oo

 

Cela signifie simplement que le jeu n'est pas limité par votre processeur ou votre carte graphique mais par la gestion des données du jeu.

C'est a dire que lorsque des données ont besoin détre transmises, par exemple dans le cas du pvp ou sur la flotte ou un grand nombre de personnages doivent etres affichés, le processeur et la carte graphique se mettent en veille le temps de récupérer les données sur le disque dur ou le réseau.

De meme le jeu fait tourner 2 process en 32 bits, donc le max de ram utilisable serait de 4go....donc ca sature vite et force le "streaming" des données ce qui provoque les chutes d'ips.

Si je ne me fourvoie pas dans le cas d'une utilisation de + de 4go de ram par le jeu il ne s'agit que de fuites de mémoire, dans le cas de swtor c'est du au chargement constant en memoire d'éléments nouveaux tels les armures des personnages que l'on croise et qui une foi que leur affichage n'est plus necessaire restent stockés en mémoire provoquant de ce fait une augmentation croissante de la mémoire utilisée.

Bien sur les fuites de mémoires ne sont pas acceptables pour un produit "finis".

Apres sur le dernier point j'ai des réserves je tourne sous 4go ram & xp me suppositions s'appuient sur les retour de certains.

Edited by senalya
Link to comment
Share on other sites

hello,

 

 

 

possible traduction/ explication car hélas mon anglais est un peut rouillé je comprends pas tout ce qu'il se dit

 

 

 

cordialement

 

 

edit : pas vu plus haut merci des info :)

Edited by julawan
Link to comment
Share on other sites

d accord dans l’ensemble je penses avoir saisi le problème mais mon souci principal c'est quand est ce que ce problème va pouvoir être réparé par ce que je dit sa pour moi mais je penses ne pas être le seul, je vais pas continué a payé un jeu auquel je ne peut pas joué? (personnellement je descend jusqu'à 3 ou 4 ips dans les bâtiments ce qui est vraiment injouable)
Link to comment
Share on other sites

oui si possible j'aimerai une réponse précise d'un droïde en nous disant d'ici combien de temps ils penssent avoir résolu le problème par ce que sa va faire 3 semaines que j'ai le jeu et j'ai qu'un pauvre perso de lvl 13 et comme je le disais si le souci n'est pas réglé rapidement je me verrai contraint de résilié mon abonnement.
Link to comment
Share on other sites

C'est un problème au niveau de la conception même du jeu et de la politique de fonctionnement.

Je pense pas qu'un droïde puisse te donner une quelconque date xD

 

Même s'ils se mettaient à bosser dessus dès aujourd'hui je pense qu'il faut plusieurs mois pour régler un problème comme ça (avis personnel).

Link to comment
Share on other sites

oui blasé en faite de pouvoir joué correctement +ou- 200 guildmate attendent mon retour sur le jeux (autre mmo)

je ferais pas de mauvaise pub sur swtor

mon abo ce termine je lirais le fofo swtor de temp en temp voir si le probleme est resolu et je suis presser de revenir le jeux en lui meme est super !!!!:rolleyes:

 

les devs au boulot svp :)

 

a bientot :(

Link to comment
Share on other sites

on est sur internet , y'a des traductions automatique, même si c'est approximatif ça devrait aider à mieux comprendre

 

Tres bons sujet en tout cas, qui résume bien la situation et le ressenti de pas mal de joueurs sur les fonctions manquantes ou gros les bugs signes d'une sortie de jeu prématurée...

 

Je ne soupçonnait pas non plus la mise à l'écart des ingénieurs d'heroengine par bioware, c'est gonflé de leur part et on voit le résultat... lol (ou pas)

Edited by vydoll
Link to comment
Share on other sites


×
×
  • Create New...