PDA

View Full Version : Gf2 does vertex programs?



JD
06-13-2002, 04:39 PM
Anim8or app reports my gf2 drivers support opengl 1.2.2 Out of curiosity I'm wondering if vertex programs and 3D textures are done in hardware on my gf2. Can someone confirm this? Thanks.

JD
06-13-2002, 04:52 PM
Need to add I'm on win98 with NV 12.41 gf2 drivers. I thought vertex programs were gf3/4/r8500 exclusive?

V-man
06-13-2002, 05:45 PM
3D texture - no, it needs gf3 and up or Radeon
Try to run a demo that uses one.

vertex programs is just strings that are converted into commands and Im guessing the conversion is done by driver on all flavors of cards.

PS: The latest driver is 28.40, unless they updated again. Those bastards!

V-man

JD
06-13-2002, 06:32 PM
Thanks v-man for the info. I'm happy with 12.41 drivers on my gf2. I think any higher drivers are for gf3/4. If something goes bonkers I'll update to newest drivers.

SirKnight
06-13-2002, 07:03 PM
The only hardware the supports GL_NV_vertex_program in _hardware_ is the geforce 3 and 4Ti. You _can_ use vertex programs on a geforce 1 or 2, BUT, they are done in software. Meaning the CPU executes the code instead of the GPU. It runs quite fast on the CPU though.

-SirKnight

JD
06-13-2002, 08:19 PM
Oh, okey http://www.opengl.org/discussion_boards/ubb/smile.gif So, what I'm getting is that having that extension does not automatically make that feature avail. on hardware. Right? Something like dx8.1 vertex shaders which can also be executed on cpu when querying hw for that feature fails. Ok that makes sense. Thanks all for the info.

Zeno
06-13-2002, 08:34 PM
If you go to nvidia's developer site and download their OpenGL extensions pdf, there is a big chart at the front of it that says what is hardware accelerated on what card.

If you have new drivers, I believe that ANY of their extensions will work on ANY of their cards, though it won't necessarily be hardware accelerated.

-- Zeno

knackered
06-14-2002, 01:53 AM
RE: Vertex programs running on the CPU.
In d3d you can bypass the t&l engine on the GPU by specifying a particular vertex format (pre-transformed, pre-lit). I expect nvidia, when executing vertex programs on the CPU (for geforce2 and below), have some way of disabling the t&l engine? If not, then the vertex will get transformed twice, once on the CPU in the vertex program, and again (probably by identity) on the GPU.
Now, if the opengl driver has the ability to disable the t&l engine on the card, then why not expose this ability in a gl extension? We could then get better vertex throughput for stuff we don't want transforming....

davepermen
06-14-2002, 02:12 AM
actually this is called GL_EXT_window_coord or something like this, you can find it in the registry. its just not supported (yet?) by nvidia.. i wait for this string in the drivers since some while now..

Julien Cayzac
06-14-2002, 03:47 AM
Originally posted by Zeno:

If you have new drivers, I believe that ANY of their extensions will work on ANY of their cards, though it won't necessarily be hardware accelerated.

Many many extensions are not exposed by the drivers, with my GeForce256: I can't use NV_texture_shader, nor NV_occlusion_query, nor HP_occlusion_test, nor ...(fill in there)...

It would be great if those extensions were available, even if software emulated (so I could code for gf3/gf4 on my gf256 :p ) I don't understand, for instance, why NV_vertex_program is available (CPU emulated) but NV_texture_shader is not !??

Julien.

davepermen
06-14-2002, 03:59 AM
one is emulatable in useful speed, the other not. you can enable them by forcing the emulator, but normally they arent because no one wants to play a simple demo with one quad in textureshaders running at 1/10 to 1/60 fps (means up to 1min per frame)

knackered
06-14-2002, 04:46 AM
Vertex programs can be emulated reasonably well in software because they deal with vertices - not a huge task.
But texture shaders deal with the rasterisation of the polygons themselves - it's laughable to consider doing that in software these days !

V-man
06-15-2002, 08:50 AM
Originally posted by deepmind:
Many many extensions are not exposed by the drivers, with my GeForce256: I can't use NV_texture_shader, nor NV_occlusion_query, nor HP_occlusion_test, nor ...(fill in there)...

It would be great if those extensions were available, even if software emulated (so I could code for gf3/gf4 on my gf256 :p ) I don't understand, for instance, why NV_vertex_program is available (CPU emulated) but NV_texture_shader is not !??

Julien.

By default they aren't exposed but the driver has the software code inside it.

You need to hack the registry to enable emulation.

Search for the string OGL_
That will give you folders where opengl relevent keys are placed by the NV.
Add the string OGL_NV20Emulate
(binary value)
if( 00 00 00 00)
no emulation
if( 01 00 00 00) or ( 00 00 00 01) or (perhaps any non zero number)
emulation is on

call glGetString(GL_RENDERER) to see the new string.

V-man

jwatte
06-15-2002, 09:43 AM
Vertex programs are compiled to CPU instructions (and turn off HT&L) when you use them on GF1 or GF2. They are supported in hardware on GF3 (at least as long as you stay within hardware limits; dunno if it falls back to software for some circumstances).

CopyCat
06-17-2002, 12:48 AM
V-Man...ok In windoze you maybe can force the emulation.
But what about Linux ?