Extension Question

Hello all and happy new year,
I am relatively new to OpenGl programming (and graphics programming for that matter) and have many questions in regards to extensions that I hope someone could answer.

It is my understanding that in order to program(for Windows) with the features of OpenGl1.2, 1.3 and higher (I guess right now its 1.4), it is necessary to use extensions to access the new features, but how are these functionlities implemented in the card?
For example, say I have a card that is capable of performing hardware acceleration for features of OpenGL 1.3, and then OpenGl 1.4 comes out.
Is it possible to download a driver to make my card compliant to the newest version of OpenGL? If so, how does this work (Would the new features not supported by hardware be implemented through software emulation)? And would this mean that all extensions should work on all cards (either through software emulation or hardware)?

This question came about because I was trying to run a sample demo that used the GL_ARB_fragment_program extension, but was unable to run the program(cool site http://esprit.campus.luth.se/%7ehumus/)..)
I have geForce2 Ultra card on Windows 2000.

I guess another question I have is how to make such a program work with my current card(if possible).
I am not sure if it matters, I’ve downloaded the latest driver from the NVIDIA site and am able to use programs that require OpenGL1.3 extensions (like the NV_vertex_program) or at least I think I am.

Thanks For your help.

You go to your vendors site (the people who produce the GPU or video card) and download drivers, just as you downlaoad drivers for anything else.

If the driver’s say they support GL 1.4
then this means it does (soft or hard)
The extensions list given by the driver are not all extensions. Some are inside 1.4, and even 1.3 or 1.2, or 1.1

ARB_fragment_program is a true extension, meaning it is NOT in 1.4 and nvidia doesn’t have the extension.

Thank you for your help!

The ARB_fragment_program extension will never run on a GeForce2 Ultra card, as the functionality is not supported by our hardware. The NV30 emulation controls at our developer site (developer.nvidia.com)allow you to use our software fallback implementation on GeForce 1 and better hardware to get NV30-level functionality. But it will run VERY slowly when using any features not supported in hardware.

If ARB_fragment_program is integrated into the OpenGL core, it will be supported without requiring any special controls, but will still be slow. This is true of all the other OpenGL 1.4 (or 1.3 or 1.2) features – if it’s not in hardware, it will be supported by a fallback path. GeForce2 supports much of OpenGL 1.4 in hardware, but by no means all.

The convention that we generally follow is if an extension is moved into the core, we will continue to export the extension string entry if it’s supported in hardware, but we won’t export it if it’s only in software. For example, GeForce2 will support 3D texturing (in 1.2) but not EXT_texture3D.

NV_vertex_program and ARB_vertex_program are both supported by default on the GeForce2. Vertex program execution is in software, but the performance isn’t that bad.

>>>If ARB_fragment_program is integrated into the OpenGL core, it will be supported without requiring any special controls, but will still be slow. This is true of all the other OpenGL 1.4 (or 1.3 or 1.2) <<<

Are you saying it (ARB_fragment_program) is integrated into 1.4 now?
The spec doesn’t seem t mention it and its not in the index.

I thought ARB_vertex_program is integrated but the spec (glspec14.pdf) doesn’t explicitly say it is.

No, ARB_vertex_program and ARB_fragment_program are not part of OpenGL 1.4.

Originally posted by V-man:
[b]>>>If ARB_fragment_program is integrated into the OpenGL core, it will be supported without requiring any special controls, but will still be slow. This is true of all the other OpenGL 1.4 (or 1.3 or 1.2) <<<

Are you saying it (ARB_fragment_program) is integrated into 1.4 now?
The spec doesn’t seem t mention it and its not in the index.

I thought ARB_vertex_program is integrated but the spec (glspec14.pdf) doesn’t explicitly say it is.[/b]

All I meant was “If ARB_fragment_program is integrated into the OpenGL core (in the future), …” Sorry for the confusion.

ARB_vertex_program and ARB_fragment_program are not part of OpenGL 1.4, nor have they been folded in the spec.

We had hoped that ARB_vertex_program could have been part of OpenGL 1.4, but (as documented in the minutes) that effort failed. ARB_fragment_program wasn’t even really started until OpenGL 1.4 was approved.

I’d personally like to see an OpenGL 1.5 (or whatever number you want to give to it) that includes both.