Author Topic: Client Performance  (Read 7973 times)

Offline Gangrel

  • Caffine Junkie
  • Administrator
  • Second Lieutenant
  • *****
  • Posts: 3325
  • Karma: 65535
  • Gangrel in game... any server
    • Blog: Semi-Random mutterings and musings
Client Performance
« on: October 28, 2007, 08:48:13 PM »
Quote
Most people's performance issues come down to one or two items:

1. CPU bound
For best performance, I recommend a dual or quad core CPU. If you have a hyperthreaded CPU be sure hyperthreading is enabled.

2. Video card memory/memory bandwidth bound
If you have a 256MB card or a video card with less than 20 or 30 pixel shader pipes, definitely keep your resolution fairly low (if using deferred lighting). If you want a little bit higher resolution with your 256MB card, then sacrifice some other features to compromise on video memory usage (see chart below for saving video memory). If you keep your resolution the same, but reduce other items to reduce video memory usage and you see no improvement in performance, then you are either CPU bound, or the resolution is too high for the number of pixel shader pipes you have on your video card. Try lowering resolution, or following the steps below for optimizing for CPU usage.


NOTE: To customize individual video settings, you must change your "Video Quality" to "Custom".

Tips for minimizing video memory usage. Particularly good for 256MB (or less) video cards suffering performance issues (most likely due to having to swap resources in and out of video memory or lack of memory bandwidth):

* Disable dynamic shadows
* Reduce resolution (especially if using deferred lighting)
* Disable static shadows
* Use low quality textures
* Disable deferred lighting
* Reduce terrain quality
* Reduce view distance
* Use low quality geometry
* Disable Anti-Aliasing

If you are bound by the number of pixel shader pipes and the memory bandwidth of your video card, then lowering resolution is about all you can do (or disable deferred lighting).

Tips for CPU bound (any single core machine) or systems with 1GB or less of memory:

* Disable dynamic shadows
* Reduce terrain quality
* Turn off flora
* Turn animation diversity all the way down
* Turn audio diversity all the way down
* Reduce view distance

The costs of certain features:

VM = Video Memory, this features uses significant video memory, increasing the risk of lowering performance, especially on 256MB or less cards.

VMB = Video Memory Bandwidth, this feature uses a lot of memory bandwidth on the video card. This raises the GPU temperature and the performance is mostly limited by how fast the memory bus on the video card is and how many pixel shader pipelines the card has. Cards with few pixel pipelines will perform poorly here.

SM = System Memory, this feature uses a significant amount of system memory. If the system has 1GB or less of memory, you may want to consider disabling or lowering features that use large amounts of system memory.

CPU = Central Processing Unit, this feature uses a lot of processing time. If you have a single core or slower CPU, you may to want to disable or lower this feature.

* Resolution - VM, VMB
* Texture Quality - VM, SM
* Geometry Quality - VM, SM
* View Distance - VM, CPU
* Deferred Lighting - VM, VMB
* Static Shadows - VM, VMB
* Dynamic Shadows - VM, VMB, SM, CPU
* Terrain Quality - VM, SM, CPU
* Flora - VM, SM, CPU
* Animation Diversity - SM, CPU
* Audio Diversity - SM, CPU
* Anti-Aliasing - VMB


Hope this helps!

Originally Written up by Rustoleum  (Tabula Rasa Graphics Programmer)
« Last Edit: October 28, 2007, 09:03:48 PM by Gangrel »
1) I reject your reality.... and substitute my own
2) Not to be used when upset... will void warranty
3) Stoke me a clipper i will be back for dinner
4) Never tell Gangrel to do anything... he will probably get it wrong
5) I have seen more intelligence from an NPC AI in TR beta, than from most MMO players.
6) BLOG ME!


Quote from: Lomez
WARNING! Swedish wall-of-text hits you for bork-bork-bork damage!

Offline Temko

  • Positivly Negative
  • Staff Sergeant
  • **
  • Posts: 692
  • Karma: -65468
Re: Client Performance
« Reply #1 on: October 28, 2007, 09:33:34 PM »
oh. and just to make a small addition:


Playing with a ATI 2XXX Series Videocard, you will have the following issues.

Dynamic shadows turned on, Spectral Lighing turned on : Floating shadows and ground that disapears
Dynamic shadows turned on, Spectral Lighing turned of : Floating shadows and ground that pixalates into black.
Dynamic shadows turned of, Spectral Lighing turned on : Pretty lighting some of the time, disapearing ground some of the time, nothing some of the time.
Dynamic shadows turned of, Spectral Lighing turned of : no more then 30 fps.... but no graphicsal issues.

not kidding. Low or Maximum, you will run around 20-30 FPS regardless of settings.


For anyone willing, i've tested with with several driver versions, but if anyone finds a solution. i'll be the first to want to know about it ;)
________RETIRED FOR UNDECIDED TIME_________

Offline macgregor_oi

  • Recruit
  • *
  • Posts: 1
  • Karma: 0
Re: Client Performance
« Reply #2 on: November 08, 2007, 07:43:50 PM »
yes, i had the same problem with my nvidia 8800.  its fixed now.

in your vid prefs there should be a option for let application control video card settings.  other choices would be to take performance over looks or looks over performance.

im told that tabula rasa really like to have controll of what the AA setting are.  it will freak out and get confused as to what objects are in front of what.  the water is what freaks out the most.

you can also try downloading tthe new drivers for your vid card


hope that helped

Offline PegasusMD

  • News Updater Junkie
  • Gunnery Sergeant
  • ***
  • Posts: 1073
  • Karma: 8
  • Standing on a rainbow
Re: Client Performance
« Reply #3 on: November 08, 2007, 07:47:36 PM »
Another thing that will cause weird displays is not having your desktop set to 32 bit display.
Place your clothes and weapons where you can find them in the dark. - Heinlein
ingame name all servers - Pegasus
Have you heard the POP this morning?
"Close is not need with Nukes"

Offline Luckshot

  • Lance Corporal
  • *
  • Posts: 69
  • Karma: 1
Re: Client Performance
« Reply #4 on: November 08, 2007, 09:48:00 PM »
oh. and just to make a small addition:


Playing with a ATI 2XXX Series Videocard, you will have the following issues.

Which card specifically? The 2600s had a bad rep for glitches in beta, regardless of driver. Rusty the graphics dev said that they were working with ATI because that card was screwy.

Offline Temko

  • Positivly Negative
  • Staff Sergeant
  • **
  • Posts: 692
  • Karma: -65468
Re: Client Performance
« Reply #5 on: January 26, 2008, 01:13:58 AM »
Yes it's a 2600 I have running, and Yup -  i was aware of the bug in beta as well, and i've bugged it on live as well as well as contacted support.

just posted it up so others know.
________RETIRED FOR UNDECIDED TIME_________

Offline mutts

  • Corporal
  • **
  • Posts: 151
  • Karma: 7
Re: Client Performance
« Reply #6 on: January 29, 2008, 03:09:10 PM »
I've got a VisionTek HD 2600 Pro AGP with 512MB and was seeing the floating shadows.  I upgraded to the new 8.45  drivers and it seems to have mitigated, if not resolved the issue.  I was able to enable the dynamic shadows along with all the other bells and whistles and I didn't see the floating shadows anymore.  I still get the occasional choppy spot in the sky but I can live with that.

Offline PegasusMD

  • News Updater Junkie
  • Gunnery Sergeant
  • ***
  • Posts: 1073
  • Karma: 8
  • Standing on a rainbow
Re: Client Performance
« Reply #7 on: March 20, 2008, 03:38:07 PM »
Rustoleum is still around and posting on the PlanetTR forum. Here a posted that touched a little on SLI performance in TR on a discussion of  Nvidia new 9800GX2  graphics card.

Quote


--------------------------------------------------------------------------------

Quote
Quote:
Originally Posted by Morningside 
From what I've read in reviews, the data per core of the 9800GX2 looks like this:
- core clock 600MHz
- shader clock 1512MHz
- shader units 128
- VRAM 512MByte
- RAM clock 1000MHz
The 9800GX2 has of course two such setups under it's hood, working like a SLI setup.

Then there's a 1gig version of the 8800GTS:
- core clock 650MHz
- shader clock 1625MHz
- shader units 128
- VRAM 1024MByte
- RAM clock 970MHz

True, the 9800GX2 has almost double the processing power, but since TR eats plenty of VRAM, my guess is the 1gig GTS could shine where the GX2 lacks VRAM.
We do use a lot of VRAM, but not over 512MB! Even at extremely high resolutions, I don't think we top 512. If you have 512MB, anything above that doesn't count for much on TR I don't believe. So at that point, it's all about memory bandwidth and how many verts/pixels the GPU can compute per second.

I'm very curious to see how the GX2 performs on TR though... Our engine is not SLI friendly, so it will be interesting to see how the driver decides to utilize the cores. We do a lot of reading back from textures we write to within a single frame, and we do a copy of the back buffer to a texture for our refraction effects. All of this is worst case for distributing a single frame across multiple GPUs. It is also worst case for tile based rendering hardware like the PowerVR chips. That's why "alternate frame rendering" is probably the best use of an SLI configuration for TR. However, I'm definitely not an expert on such matters -- NVidia is. We will see what happens... I'm anxious to see myself.
linky to PlanetTR post.
Place your clothes and weapons where you can find them in the dark. - Heinlein
ingame name all servers - Pegasus
Have you heard the POP this morning?
"Close is not need with Nukes"

Offline PegasusMD

  • News Updater Junkie
  • Gunnery Sergeant
  • ***
  • Posts: 1073
  • Karma: 8
  • Standing on a rainbow
Re: Client Performance
« Reply #8 on: April 19, 2008, 01:34:03 AM »
Another post providing additiional information on what affects client performance, Rustoleum posted on www.planettr.com
Quote

Several things are coming here... Let me give some insight on them:

1) Why does resolution affect performance (with or without dynamic shadows)?

Memory Bandwidth and GPU computations. With enough pixels to render, that will eventually become the bottleneck of your game. That's when frame rate starts to decrease when you increase resolution. Until you hit that point, your resolution won't affect your frame rate.

With deferred lighting enabled, the GPU outputs 4 colors instead of 1 and they each get saved to a separate render target texture. So right off the bat, enabling deferred lighting increases memory bandwidth associated with rendering the frame by a factor of 4. Multiply that by the number of pixels... That's why deferred shading based engines tend to hit the memory bandwidth bottleneck faster than traditional forward shading based engines.

There's also the fact that the GPU has to compute each pixel, so if you increase pixels you increase how many computations the GPU must do. This is where dynamic shadows come in more. When you enable dynamic shadows, there's quite a bit more computation that has to be performed on each pixel (is that pixel in shadow or not?). This means the GPU cost of dynamic shadows does go up with resolution, based just on having to run that expensive computation on that many more pixels.

1b) If deferred lighting uses that much bandwidth, why did you use it?

We chose to use it because even though the lighting cost does scale linearly with the number of pixels, the scene geometry doesn't affect it (except with dynamic shadows). This means the GPU cost of lighting the frame is constant no matter how many creatures, avatars, buildings, etc. come into view. With traditional forward shading engines that isn't the case. The lighting cost scales based on scene complexity -- so lighting cost would go up as more creatures or avatars came on screen.

This is what lets us have so many lights... Next time you play (especially in an instance), take a close look at all of the lighting. We DO NOT USE LIGHTMAPS. Every light, every shadow, is computed and rendered in real-time. We have zero pre-computed lighting. This means all creatures and avatars get affected by all lights as they should (unlike lightmap based engines where your avatar usually takes on the lighting of whatever you are standing on). It also means we don't have to run a long tedious process on our maps to pre-compute lighting. World builders can build the map and drop lights and instantly see the results. This also lets us have much more dynamic lighting (rotating cone lights, flickering torches, etc.).

Dynamic shadows do get more costly with more avatars, creatures, etc... Not in the cost to compute the lighting, but in the cost of rendering the shadowmap (which is later used to compute the lighting).

2) At control points my frame rate goes to hell.

This is one of our top priorities right now. Honestly, our biggest hit at control points is updating animations and visual effects. These are both CPU, not GPU issues. We have some other systems that spike in there too. We are going to be focusing our attention on smoothing out control point play. We have optimizations coming down the pipe and mechanisms that start changing settings and dropping less important stuff to keep CPs playable. No ETA... watch for info from feedback friday's, or patch notes.

We have a system called RTQS (real-time quality scaling) in the client now. This system starts cutting back and changing graphics options on-the-fly when your frame rate gets below 20 fps in an attempt to maintain your fps (you can enable in the graphics options screen, it defaults to disabled). We plan on modifying this system and making it smarter and less obtrusive. Like I said, no ETA on when this overhaul is done, but we are starting the work now. Our goal is to keep CPs responsive without you realizing we're doing stuff behind the scenes to make it happen.

Linky to Thread.
Place your clothes and weapons where you can find them in the dark. - Heinlein
ingame name all servers - Pegasus
Have you heard the POP this morning?
"Close is not need with Nukes"

Offline smooth

  • Gunnery Sergeant
  • ***
  • Posts: 760
  • Karma: -55500
  • Say Hello to my new Girl!
Re: Client Performance
« Reply #9 on: April 19, 2008, 03:06:05 AM »
Nice info.

Not sure what half of it means.  *winks*

But I do like the stuff about the cp's.  I didn't know there was a toggle for graphics that helps smooth things out when fps gets below 20 fps...I think I will hunt it down.

This is stuff to my liking.
Someone has an attitude!

Offline teskon

  • Server Stealer
  • Second Lieutenant
  • ****
  • Posts: 2038
  • Karma: -551
  • demolitionist ! guardian ! grenadier !
Re: Client Performance
« Reply #10 on: April 19, 2008, 08:05:39 AM »
yo, normal

1680x1050 = 1.764.000 px
+ deferred = 7.056.000 px
+ 4x AA = approx 28.224.000 px

tbh, AA is not necessary, never =), at least not at those resolutions

for example, running with ultra low and i have! smooth lines, just because of i'm about 70cm away from the monitor, so i do not "see" the non-aliased things, if i go closer of course: dirty, but with the right distance: perfect, next to that: when moving you never realize if aa is active or not

easiest way where you can see that is if you use your monitors calibration software for gamma settings (some funny squares to adjust -> distance roxx !)
<><<>><>
the machine mother told us of the planet of your birth - we know how you have harmed this place, with your pollution, your violence, and your dischord - but when we arrive there, we will cleanse the surface of that place, and merge it, with the harmony of the many
<><<>><>