[NTLUG:Discuss] Video Card Recommendation? -- OpenGL, Cg

Steve Baker sjbaker1 at airmail.net
Sat May 8 18:35:00 CDT 2004


Bryan J. Smith wrote:
> Steve Baker wrote:  
> 
>>OpenGL 1.4 has been out for about 7 months now.   The OpenGL ARB
>>aim to get a new revision of the spec out every year - it's announced
>>each year at SigGraph.
> 
> 
> I know, but I'm kinda interested in some of the radical changes of
> OpenGL 2.0.  It's obvious you're more up-to-date than I though.

The most radical changes are the high level shader language (GLSL)
which is an 'ARB' extension in OpenGL 1.4 and becomes a core feature
in 2.0.  There was going to be a new feature called (variously)
Super buffers or Uber buffers.  That was never an ARB extension (which
is kinda dangerous) - and it looks like these will be pulled from the
2.0 spec (at least as core features).

The whole business of shaders in OpenGL and DirectX is really an exciting
development.   It is the most radical improvement we've seen in realtime
graphics since texture and Z-buffering.   I've been working with them
for a year or so now (using Cg) and I'm continually amazed at what they
make possible.

>>Yes - Cg is OpenSourced in fact.  You can find it on SourceForge.
> 
> I'm an engineer who is a _huge_ proponent of C-type syntax, from
> hardware description (HDL) to application-specific languages.  It's
> just something that works well for most simple things.
> 
> I believe it was Samsung or Toshiba that first developed a C-type
> syntax, instead of Ada-type syntax (e.g., VHDL) for hardware
> description.  So when nVidia introduced Cg, I was all game.

Yep.  GLSL is also C-like - and just like Cg, there are four element
arrays of float as a basic type in the language.  That's very important
for graphics.

> Yeah, it's rather sad.  Microsoft is screwing over everyone from
> hardware developers to OEMs on the patent issue, forcing them to
> forfeit their patent rights.  If there was only one good thing that
> came out of the DOJ trial, it was that Microsoft had to stop doing
> that.

It said on slashdot that Microsoft create ten new patents every DAY.

> But they've already gobbled up endless OpenGL rights in the process.

SGI sold out a bunch of key patents for a pittance a couple of years
ago.  That's really screwed things up for everyone.

> According to Moore's Law, CPUs double in performance every 18 months.  But
> GPUs double in performance every 9 months!

Yep.  There are really good reasons for that.  A regular CPU can benefit
very little from technology shinkage because it's architecture is pretty
much constrained by the instruction set that it has to adhere to - and the
opportunities for parallelism are somewhat limited.

It takes a lot of intellectual effort to make use of extra transistors to
speed up an existing design.

With a GPU, if you have twice as many transistors, you can just drop in
twice as many execution units and you magically get a factor of two increase
in performance with almost no effort from anyone.

What's going to limit GPU performance is RAM speed.  RAMs don't speed up
at anything like Moores' law rates.

That's why shaders are so important.  If you can CALCULATE surface textures
using fractals, wavelets, fourier synthesis, perlin noise, etc - then you
don't need to read a bunch of texel data from your precious RAM.   In the
end, it'll be much faster to compute images in the GPU's shader than it'll
be to read it from memory.

We aren't at that point right now - but it's coming fast.

Shaders are VERY important.

> And people still ask what OpenGL has "over" DirectX.  GLX anyone?

Well - at the outset, OpenGL was *way* better than Direct3D - the API for
D3D really sucked.  Microsoft have worked at it though - and through a series
of major API upheavals, they've finally ended up with something that doesn't
stink too badly.

However, D3D only runs under Windows - OpenGL runs everywhere.  That makes
OpenGL the only choice for anyone who isn't totally Windows-fixated.

The need for both API's to efficiently drive current hardware means that
these days they evolve in almost perfect lock-step.

Give it a few more years and I doubt that we'll worry about the differences.
In the end we only need a way to load up the GPU with shaders and textures
and then DMA large blocks of vertex data.   The details of what those shaders
look like and what the vertex data means have nothing to do with which API
you're using.

By then, this debate will be more about which shader programming language you
want to use.  HLSL for DirectX or GLSL for OpenGL.   We've neatly transitioned
from an API war to a language war...which OpenGL 2.0 is winning IMHO.

> But the pundits still complain.  I simply ask, is it even _feasible_ to have
> a Freedomware solution?  Probably not, other than the software Mesa
> implemntation.

If nVidia or ATI saw a benefit in opening their sources, I think it could be done.

ATI do already offer their sources to larger companies who can demonstrate a
need for it and who sign appropriate soul-sucking NDA's.

I think ATI could gain a real benefit from OpenSourcing their code because their
drivers are buggy as heck - more eyes make for shallower bugs.   Improving their
drivers would make me want to buy their hardware in preference to nVidia's because
right now, they tend to have a clear performance benefit.  However, the degree of
suckification present in ATI drivers is a total turn-off for me and I buy nVidia
hardware both at home and at work.

nVidia's drivers are much better - it's hard to imagine that OpenSourcing them
would achieve very much other than to keep us fanatics happy.   Maybe they could
save some money by cutting corners on driver development and letting the community
sort out the mess - but I don't think I want to encourage *that*! :-)

---------------------------- Steve Baker -------------------------
HomeEmail: <sjbaker1 at airmail.net>    WorkEmail: <sjbaker at link.com>
HomePage : http://www.sjbaker.org
Projects : http://plib.sf.net    http://tuxaqfh.sf.net
            http://tuxkart.sf.net http://prettypoly.sf.net
-----BEGIN GEEK CODE BLOCK-----
GCS d-- s:+ a+ C++++$ UL+++$ P--- L++++$ E--- W+++ N o+ K? w--- !O M-
V-- PS++ PE- Y-- PGP-- t+ 5 X R+++ tv b++ DI++ D G+ e++ h--(-) r+++ y++++
-----END GEEK CODE BLOCK-----



More information about the Discuss mailing list