Enhancing OpenGL Performance

I programming an OpenGL application on a system that’s a little behind the times.

I own a Packard Bell 166Mz with 48M RAM.

When I first ran my applications, I noticed it didn’t run extremely fast, but it was bearable. However, after adding texture mapping and Beizer curves to the program, my demo is now crawling around 2 frames per second. I need some advice on what action to take. Below are the options I’ve come up with including pros and cons for each.

  1. Buy a new system.
    Pro - I know a Pentium II or higher would really speed things up.
    Con - I don’t want to purchase a new system if I don’t have to.

  2. Add 64M of Ram.
    Pro - I run my program with Visual C 6.0, which uses at least 24M RAM. Adding more Ram may allow faster rendering while Visual C+ is running.
    Con - I’m unsure of how much faster my program can get with an additional 64M RAM on my current system. Fast enough for 24 frames/sec?

  3. Get an high end OpenGL compatible graphics card.
    Pro - This was recommened in a book “OpenGL Programming for Windows 95 and NT”
    Con- My system came with a built in 3D Graphics Accelerator with 2M EDO RAM. Would there be a difference? If so what, and which card would I get? The ones listed in the book start at $350, which is high for me.

I am open to suggestions on which of the 3 options will result in the best cost- effective way to upgrape my system to run the program at 24 frames per second.

Thanks.

1, 2, and 3.
Buy a new system because I think the os is almost requiring what you have much less anything else.

  1. Because more ram will help you run decent debug versions of your program… like you said VC can be a hog.

  2. To really get legitimate performance out of GL. This way you can use hardware T&L and some of the latest extensions that will become standard some day.

As for system recommendations I have none, because it depends a lot on your pocketbook, but if you are savvy enough you can buy a monster of a machine for <$1200.

I do not however recommend upgrading your system because of cheap prices these days, plus you probably have problems also of no AGP port, slow memory, slow HD etc…

[This message has been edited by frogger (edited 05-15-2001).]

On a machine that old, I don’t know what to suggest. A whole new system would probably be advisable, if you can afford it A system with an AMD Duron processor probably wouldn’t be too much money.

I mean, a new graphics card will probably help a lot, but it’ll have to be a PCI one I would guess. You can get a cheap one (geforce2 MX) that’ll speed things up by taking the load off the CPU for about $90. I doubt a card with 2mb of EDO RAM has any opengl hardware acceleration at all.

More memory will make little difference unless your hard disk is becoming active while running your code.

Frogger,

Thanks for the advice. One question. Any future replyers are welcome to answer this as well. Is it possible with my system to get up to 24 frames/second by just adding 64M RAM? From Frogger’s response the answer seems to be no, but I want to make sure I get a clear cut answer for that.

Thanks.

Nope. The problem is most definitely not that there’s not enough RAM but, like frogger said, the graphics card most likely doesn’t have OpenGL acceleration. Also, even if you would get a graphics card, the processor might not be fast enough to push the geometry as fast as the card is able to render it.

But, it all depends on what you want to do - I have a 500MHz Celeron/TNT2 (PCI) and am developing a (IMHO pretty nice looking) 3D engine on it - so it’s not that it’s not possible but with a Athlon/Duron - GeForce combination it’s probably gonna be possible better and easier

youre defintly getting software un-acceleration with that video card
even a athlon1ghz with 1gb memory is not gonna help out that much.
u need a proper graphics card it doesn’t need to be to highend eg tnt2 m64 are quite cheap and should increase your fps at least 20 fold

zed,

Just a new fill-rate-monster graphics card may not be enough. With a 166 MHz machine, transform may become as much a bottleneck as fill rate.

I think the most sensible suggestion was getting a GeForce2 MX, if you can get one which fits your system. They can be had for around $90. The nice thing about that card is that it offloads a lot of work from the CPU, leaving the 166 MHz to do what it does best (which isn’t transform & lighting).

Beware of the newer & cheaper Radeons, as they do not have HT&L.

jwatte,

What are you refering to by HT&L? Someone else referred to that in an earlier post.

h t&l =

hardware transform and lighting

I own a P200 MMX / 96 MB RAM / GeForce2 MX PCI and it runs fine.
If money is a problem for you, just buy a new video card.
You may have difficulties to find EDO RAM for your P166 …

download SGI software OpenGL implementation.
It’s absolutely amazing. Once I was on the
trip with my crappy laptop and wanted to
play with OGL in free time and found that
after installing SGI’s OpenGL, I was actually
able to do a lot of stuff…

Of course forget about using more that a couple of textures and more that a hundred
of tris… Still useful though on ancient
systems

i dont know the price-specs currently, but i think a
duron 500mhz
geforce2mx
128mb ram
will be under 1000$… and its pretty neat, cause i have a p3 500mhz wich is slower than the duron 500mhz and its fast enough to do per pixel bump mapped lighting on meshes with 10000 vertices smooth, and not yet complete optimiced… so… think bout it… q3 smooth at 1280x1024 is nice, too…

its worth it… really…

Like to add to this post that even if you have hw t&l capable video card, you still will do some transforms on the cpu side. Remember that you can’t get the transformed vertices back from hw t&l card. Thus you should also upgrade to a new cpu, video card, motherboard and memory. $70 ECS elitegroup mobo + $40 750mhz duron + $50 Nvidia mx200 or geforce256 might do you good Check prices on www.pricewatch.com and vendor -> www.compubuzz.com

P.S. If you know your assembly/c++ and bsp techniques you might achieve something like quake1/2 on your current system. Wasn’t quake1 supposed to be running on 90mhz cpu? Then again, doom seemed to be nifty as well and it used 2D bsp and ran on 66mhz cpu well. It really depends on how sophysticated your app is going to be. Instead of 3D poly models you might try 2D bitmaps for speed, etc.

[This message has been edited by JD (edited 05-16-2001).]

I agree - if you have $200-$300 to spare, you should do an overhaul, and get a new MB+CPU+RAM+Graphics card. If you really have very little money, just get a graphics card with minimal (but decent) OpenGL acceleration.

According to pricewatch, you should be able to buy a PCI 8MB TNT2 M64 for about $35 including shipping. It won’t be the greatest card ever (and if you can afford better, then buy better), but it will take the task of rasterisation away from your CPU, which will leave it a lot more time to process polygons. You still won’t get incredible performance, but it should be much much better than you’re getting now. I believe that you should be able to get 24 fps if your geometry isn’t too complex.

BTW, that book you have is probably pretty old, and the cards listed there for $350 are probably a lot weaker than cards you can buy now for under $100.