PDA

View Full Version : Vertex programs on a GF2/GF3/GF4



passalis
02-11-2002, 02:01 AM
The programmable vertex engine is only a feature of the GF3 and GF4ti cards? The older gforces support the vertex shader? If they do, does it run fully in hardware, and are the instructions the same with the later cards?

I tried a few demos with vertex programs in my GF2MX and they run pretty well, but does this mean that my card fully supports vertex and pixel shaders?(I don't think so)

Anyway ,I would appreciate it if someone could tell me what the various versions of geforce cards do or don't support.

Thanx in advance

jide
02-11-2002, 02:09 AM
the programmable vertex engine can only be supported with opengl 2.0 which is not implemented yet. As far as i know...

i don't know for the vertex shader; if it's a t&l component, so it's supported in hardware.

i can't tell more

JD

Tom Nuydens
02-11-2002, 02:39 AM
jide, that's a lot of misinformation for such a short post http://www.opengl.org/discussion_boards/ubb/smile.gif

To set things straight, the term "programmable vertex engine" refers to the programmable transformation and lighting hardware on the GF3 and GF4. Since it's a piece of hardware, it has absolutely nothing to do with OpenGL 2.0 or even OpenGL in general.

A "vertex shader" is Direct3D lingo for what we OpenGL types call a "vertex program". These two terms mean exactly the same thing: a small program that is executed by the aforementioned programmable vertex engine.

Now for the original question: the GF4 Ti and GF3 chipsets support vertex programs in hardware. All other chips (GF4 MX, GF2 and below) can support vertex programs by emulating them in software. The supported instruction set is the same, but because the programs are executed by the CPU, they will not perform quite like they would on a GF3 or GF4.

I haven't tested the performance of the software emulation code myself, but it's probably pretty well-optimized, so with a fast CPU it could be a viable alternative to the "real thing".

-- Tom

jide
02-11-2002, 03:47 AM
jide, that's a lot of misinformation for such a short post
To set things straight, the term "programmable vertex engine" refers to the programmable transformation and lighting hardware on the GF3 and GF4. Since it's a piece of hardware, it has absolutely nothing to do with OpenGL 2.0 or even OpenGL in general.

hmm... the term programmable, if you can't programm it, how would u use it ? i don't understand since here.
And as far as i know, opengl 2 spec tells that it supports some programmable engines as vertex for example.
But opengl 1.2 doens't support it !
explain me if i'm so wrong,

thanx

JD

Nutty
02-11-2002, 04:12 AM
OpenGL 1.2 doesn't support it, that is correct, neither does 1.3.

Vertex Programs are an extension, provided by Nvidia, and I believe ATI also have a similar kind of extension.

The fact that these 2 extensions are different is a pain, that is what OpenGL 2.0 will hopefully fix, by having a common programmable vertex / fragment interface.

Nutty

passalis
02-11-2002, 05:40 AM
Thank you Tom, you answered all my questions.
I got a duron900 and a GF2MX and all the vertex programs I tested run with o.k. speed, but I suppose if I had a GF3+ card the result would be better since it would all be done in hardware.
I have heard that vertex shaders can run in software in older GF cards(like mine) but pixel shaders cannot. Is that true? As far I understand , offering GF4MX without hardware support for programmable vertex-pixel engine might proove mistaken.

Sebb
02-11-2002, 06:49 AM
I can assure you that there is a VERY BIG difference of speed between GF2 (emulated) and GF3ti (hardware) !! In 3DMark 2001, I had 5 or 6 FPS on the GF2 GTS and now I have 60 FPS on my GF3ti http://www.opengl.org/discussion_boards/ubb/biggrin.gif ... Ok, my CPU is "only" a P3 770 MHz but it makes a big difference anyway no ?
By the way, what is the release date of OpenGL 2.0 ?

Sebb

Eric
02-11-2002, 07:23 AM
Sebbe,

Are you sure your results are correct ? Here are the results of the Vertex Shader test on my P3 600Mhz:

Software: 9.0 FPS
Hardare: 28.5 FPS
Pure Hardware: 29.7 FPS

Regards.

Eric

Zeno
02-11-2002, 08:48 AM
I have heard that vertex shaders can run in software in older GF cards(like mine) but pixel shaders cannot. Is that true? As far I understand , offering GF4MX without hardware support for programmable vertex-pixel engine might proove mistaken.

Both vertex shaders and pixel shaders can run in software. The difference is that vertex shaders are usually still fast enough to be interactive but the pixel shaders are definitely not. Be prepared to sometimes wait several seconds for a frame to render.

-- Zeno

jwatte
02-11-2002, 11:39 AM
I find it somewhat misleading that the NV_vertex_program extension is "supported" on GF1 and GF2 cards (as well as GF4 and GF4MX cards), when previously I've heard that the intention is to support OpenGL 1.3 fully, but only publish extensions that are hardware accelerated.

While a machine that does nothing else may very well run vertex shaders in software reasonably well, the CPU load of doing so is quite a bit higher than the CPU load on a GF3 or GF4Ti. Of course, single-scene benchmarks never measure CPU load, only frame rate, as if all that ever mattered was rendering pre-cooked graphics.

What I find even more mis-leading is the fact that neither the GF4Go nor the GF4MX data sheets actually specify how many texture units the cards have! They say "single-pass multitexturing" but they conveniently forget to mention how many TUs there are. My guess is that there's just 2, just like the GF2. For all intents and purposes, the GF4MX and GF4Go are just GF2 designs with possibly faster memory (assuming the OEM doesn't go for the cheap narrow SDR interface).

You'd think that they could AT LEAST actually specify what the capabilities and functional units of the various chips are in factual terms on the data sheets. The fact that they don't, and seem to be getting OEM design wins anyway, depresses me to no end.