Page 1 of 1

Graphic card advice

Posted: 31.07.2006, 14:35
by Toti
Hi all,

I am about to buy a new NVIDIA graphic card to replace my TNT2, and I am seeking for compatibility with present and future Celestia features (photometric functions, new atmosphere rendering, etc.)

I've seen a lot of brands and some dubious marketing tricks and I prefer to know about other people's suggestions before buying.

Many thanks for your advice.

Posted: 31.07.2006, 15:06
by selden
So far as features are concerned, cards based on the Nvidia 7nnn series of chips would provide the best Celestia future protection at the moment.

The TurboCache versions like the 7300 are the least expensive, but won't fully support Windows Vista.

Nvidia's 7900GTX seems to be the fastest version at the moment, but it does use a lot of power. Don't try to run one in a system with less than a 500W power supply. It isn't obvious that SLI helps Celestia, so the 7950GT2 may actually run it more slowly than the 7900GTX does.

The 7600GT should run Celestia reasonably fast, though. Supposedly it's about half the speed of the 7900GTX.

FWIW, my home system currently has a 6600GT: I haven't felt the need to upgrade to a 7nnn series yet.

I've had good luck with Asus cards, although they're not the cheapest.

Posted: 31.07.2006, 15:46
by chris
Toti,

Selden's recommendations are all PCI-E cards. If you're upgrading your whole system, then PCI-E is the way to go. But, if you're just upgrading the graphics card, you'll probably need an AGP card. The 7800 GS (US$280) and 7600 GS (US$150) are the only GeForce 7 series AGP cards. If you'd like something slightly cheaper, you can get an AGP 6800 or 6600. Spending the extra money on a GeForce 7 card *will* make a difference in the performance of the new features, as they depend heavily on horsepower. The 7800 GS has 6 parallel vertex shader pipes, and the 7600 GS has 5. The 6600 has 3. The pixel shaders of the 7 series cards have an extra ALU so that they can process more shader instructions per clock cycle. All of these cards will be a huge leap from your TNT2.

--Chris

Posted: 31.07.2006, 17:55
by Toti
Lots of thanks, guys!

Your comments made me re-think the budget: I can reach a 7300GS: it's somewhat like an overclocked 6600, but I guess it might have some of the extra features of the 7000 range (will investigate). It is based on TurboCache but has 256 MB DDS2 on board. (I am not too interested in Vista's eyecandy, and SLI is completely out of reach)

Selden,
I run Celestia at 1024*768 & 32 bbp; I guess there's still a chance that I could adapt my purchase to this relatively low res that I am accustomed to ;) : could you please tell me what average FPS do you get with your 6600GT?

Many thanks again.

Posted: 31.07.2006, 18:31
by selden
Toti,

Celestia benchmarks are really hard to do because there are so many variables. However, one test I did was with Cham's model of Discovery from the movie 2001 in the thread http://www.celestiaproject.net/forum/viewtopic.php?t=8012&8012
where I got ~13-20fps. With simple images I usually get 30-60 fps.

Cham's model "Discovery and its Pod" is now available from the Motherlode on the Web page http://www.celestiamotherlode.net/catalog/fic_2001.php

Posted: 01.08.2006, 04:58
by Toti
Strange. I can't even load that binary CMOD in Linux, recent CVS compiled with gcc 3.4.5. I recall there were problems with gcc 4.0 in the past and I don't know whether they were solved or not.

Posted: 01.08.2006, 07:34
by cartrite
I don't have that version of gcc but putting this in the ./configure line worked for me with gcc 4.0.1

Code: Select all

CXXFLAGS=-fno-strict-aliasing

If that don't work you might want to try cmodfix and turn it to ASCII. The ASCII models worked without any environment change.

EDIT This problem may have started with gcc 3.x.This was taken from the first link.
#include <stdio.h>

int main()
{
short a[2];

a[0]=0x1111;
a[1]=0x1111;

*(int *)a = 0x22222222; /* violation of aliasing rules */

printf("%x %x\n", a[0], a[1]);
return 0;
}

Recent versions of GCC turn on the option -fstrict-aliasing (which allows alias-based optimizations) by default with -O2. And some architectures then really print "1111 1111" as result. Without optimization the executable will generate the "expected" output "2222 2222".
If you see the following pages.
http://gcc.gnu.org/bugs.html#known
http://mail-index.netbsd.org/tech-kern/ ... /0001.html
I may be wrong but there seems to be a aliasing problem with the array pointers in the binary model loader.

Posted: 01.08.2006, 09:30
by Boux
selden wrote:...
Nvidia's 7900GTX seems to be the fastest version at the moment, but it does use a lot of power. Don't try to run one in a system with less than a 500W power supply. It isn't obvious that SLI helps Celestia, so the 7950GT2 may actually run it more slowly than the 7900GTX does.
...


I can confirm the fact that SLI does not help Celestia much.
I have tried to build various profiles for it in WinXP. The SLI load-balancing bargraph stays idle most of the time. This could be an indication of a cpu-bound application, with SLI a total overkill for Celestia.
Now, I get insane framerates in some locations (over 450 fps!).
When there are many huge models and textures in the field of view, with a lot of moving bodies, the fps may drop as low as 25 fps. My guess is that combined heavy traffic over the Pcie bus /and/ high CPU load are limiting factors.

Linux drivers don't work right in SLI mode yet and Celestia is slightly slower in Linux than in XP.

As for Toti's question, I would recommend a 512 MB memory card. It can make a big difference when loading many big textures. When textures have been loaded on the card, there is no longer much traffic on the bus and the ride is smoother.

Posted: 01.08.2006, 12:25
by Toti
Cartrite,
Thanks for the tip: Celestia now displays the model just fine.

With that Discovery mesh I get about 1.3 FPS (and this is with a color depth of 16 bpp and not 32 ;))

But I compiled that piece of code in gcc 3.4.5 with -fstrict-aliasing and got the expected behaviour, so there must be something else here.

Boux,
Good info. Unfortunately the 512 Mb cards are too expensive, except for those TurboCache ones, although I don't have much hopes on the real performance gain of that feature.

Posted: 01.08.2006, 13:35
by Boux
Toti wrote:...
Boux,
Good info. Unfortunately the 512 Mb cards are too expensive, except for those TurboCache ones, although I don't have much hopes on the real performance gain of that feature.
...


Well then grab any 7xxx series card that is in budget. Whatever the model, you will notice a quantum leap from your TNT2, both in speed and quality :D
This makes me remember the TNT2 was my first Nvidia graphics card years ago [nostalgy!].

Posted: 02.08.2006, 17:19
by chris
Boux wrote:I can confirm the fact that SLI does not help Celestia much.
I have tried to build various profiles for it in WinXP. The SLI load-balancing bargraph stays idle most of the time. This could be an indication of a cpu-bound application, with SLI a total overkill for Celestia.
Now, I get insane framerates in some locations (over 450 fps!).
When there are many huge models and textures in the field of view, with a lot of moving bodies, the fps may drop as low as 25 fps. My guess is that combined heavy traffic over the Pcie bus /and/ high CPU load are limiting factors.

I'm not too surprised that SLI doesn't help Celestia very much. Celestia requires a lot of CPU power (though I hope to reduce that a bit soon) and it taxes a graphics card's geometry processing more than its pixel processing. I don't think that SLI can split up the geometry workload. Some of the new high-quality rendering options will require lots of pixel shader processing power however; SLI could very well help there. Another way to use SLI is to run at high resolution with high quality antialiasing.

As for Toti's question, I would recommend a 512 MB memory card. It can make a big difference when loading many big textures. When textures have been loaded on the card, there is no longer much traffic on the bus and the ride is smoother.


256 MB cards are much more reasonably priced than 512 MB ones. 256 MB gives plenty of room for high resolution textures.

--Chris

Posted: 02.08.2006, 18:47
by Boux
chris wrote:...
256 MB cards are much more reasonably priced than 512 MB ones. 256 MB gives plenty of room for high resolution textures.
...
--Chris


Well, to be more to the point...
256 MB, or less, is certainly OK for a pretty standard Celestia install with a limited number of add-ons with a few hi-res textures.
512 MB can make a significant difference when the user loads many add-ons with a lot of hi-res textures. This is real-world observation.
I run Celestia with some 5-6 GB add-ons, at 8x AA and 16x AF, forced trilinear mipmaps, supersampling transparency, AFr rendering ... and vsync off (for sure, you certainly know why!). The fps rate and "smoothness" is as high than with all eyecandy disabled. I mean no additional quality setting will pull down the fps.
Yes, Celestia is cpu-limited, without any doubt (Conroe on order, here, eh eh ... ).