OpenGL performance note

I have made a few assumptions about OpenGL performance. It is eighter extremely fast, or extremely slow.

When I compile the Vasphere.c program that comes with OpenGL, and run it on the slowest computer I have in stock - a Pentium 166 - I still get 700.000 triangles per second in a full-screen window without hardware acceleration, e.g. under software.

Then, when I run some other OpenGL demo that features texture mapping, it slows down to a crawl on that Pentium 166. When lighting is switched on, it slows down even more, leaving me with about 1.5 frames per second in a low-poly scene while running under software only.
How is this possible?
I read somewhere that there are two versions of OpenGL for the Win32 platform out there, a
Microsoft and an SGI version, and the SGI version would run extremely fast under software while the Microsoft version would not. Maybe it’s because of two different OpenGL implementations I may be using

I am thinking about software mode speeds a lot lateley when I got hired at a computer company. During lunchbreak people start playing Halflife and Quake III on they’re workstations, and since they can’t bring a 3D card at work and start screwing open they’re workstations, they play in software mode.
So it seems there is still a market for software rendering, now all we have to do is find out why OpenGL behaves so versatile under Software.

> How is this possible?

What you have witnessed about software mode does not surprise me. Texture mapping costs CPU time and lighting, especially. Another, inhibiting factor is that these Windows implementations (both MS’s and SGI’s) have to use the Windows GDI, which is not the fastest library.

> there are two versions of OpenGL for the Win32 platform out there, a Microsoft and an SGI version

From my experience the SGI implementation is faster. I haven’t done any performance tests (except an FPS counter) and if I recall correctly I did gain a couple of frames. I believe the SGI version was optimized with MMX.

> So it seems there is still a market for software rendering.

I don’t think so. That market will be obsolote within the year. Decent accelerators are costing people about $100 and the performance is at least doubling every year. Playing, those games in software is like buying a double-fudge sundae and just eating the ice cream.
-bjuano

Thanks BJuano, but still, what about Laptops?
They can never have a 3D card embedded because the casing doesn’t fit, and many people have laptops…

A laptop could become a portable playstation of some sort, with a wide screen and lots of games availeble for it, that is if they have decent software speeds.

Another, inhibiting
factor is that these Windows implementations (both MS’s and SGI’s) have to
use the Windows GDI, which is not the fastest library.

I can believe that, GDI is extremely slow!
If OpenGL would have a hardware abstraction layer like Direct Draw, then speeds should quadrupple!

Originally posted by Dr. Cage:
They can never have a 3D card embedded because the casing doesn’t fit, and many people have laptops…

Laptops can have 3D chips embedded in them. I have an Inspiron 7000 with an accelerated ATI using AGP. Not the best accelerator but deccent. I am getting about 20 FPS with System Shock 2 at 1024x768. I have heard that nVidia is about to get into the mobile market. They have great OpenGL support. So I think we will see this change within this year.

If OpenGL would have a hardware abstraction layer like Direct Draw, then speeds should quadrupple!

This is true. It is unfortunate that MS did not implement it with DirectDraw. I think thay had their reasons for not making OpenGL as fast as it could be in software. I have played with making OpenGL work with DirectDraw but it required locking/unlocking the DirectDraw surface which made the performance increase neglible.
-BJuano