# NVIDIA releases OpenGL 4.0 drivers

**URL:** <https://community.khronos.org/t/nvidia-releases-opengl-4-0-drivers/60633>\
**Category:** OpenGL\
**Tags:** drivers\
**Created:** [April 12, 2010, 9:21pm UTC](https://community.khronos.org/t/nvidia-releases-opengl-4-0-drivers/60633 "2010-04-12T21:21:57Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![barthold](https://community.khronos.org/letter_avatar_proxy/v4/letter/b/54ee81/32.png) [@barthold](https://community.khronos.org/u/barthold)\
**Post date:** [April 12, 2010, 9:21pm UTC](https://community.khronos.org/t/nvidia-releases-opengl-4-0-drivers/60633/1 "2010-04-12T21:21:57Z")

</div>

NVIDIA is proud to announce the immediate availability of OpenGL 4 drivers for Linux as well as OpenGL 4 WHQL-certified drivers for Windows. Additionally, support for eight new extensions is provided:

- ARB\_texture\_compression\_bptc – provides new texture compression formats for both fixed-point and high dynamic range floating-point texels.
- EXT\_shader\_image\_load\_store - allows GLSL- and assembly-based shaders to load from, store to, and perform atomic read-modify-write operations to texture images.
- EXT\_vertex\_attrib\_64bit - provides OpenGL shading language support for vertex shader inputs with 64-bit floating-point components and OpenGL API support for specifying the value of those inputs.
- NV\_vertex\_attrib\_integer\_64bit - provides support for specifying vertex attributes with 64-bit integer components, analogous to the 64-bit floating point support added in EXT\_vertex\_attrib\_64bit.
- NV\_gpu\_program5 - provides assembly programmability support for new hardware features provided by NVIDIA’s OpenGL 4.0-capable hardware in vertex, fragment, and geometry programs.
- NV\_tesssellation\_program5 - provides assembly programmability support for tessellation control and evaluation programs.
- NV\_gpu\_shader5 - provides a superset of the features provided in ARB\_gpu\_shader5 and GLSL 4.00. This includes support for a full set of 8-, 16-, 32-, and 64-bit scalar and vector integer data types, and more. Additionally, it allows patches (as used in tessellation) to be passed on to the geometry shader, used as input to transform feedback, and rasterized as a set of control points.
- NV\_shader\_buffer\_store – extends the bindless graphics capabilities of the NV\_shader\_buffer\_load extension. This extension provides the ability to store to buffer object memory, and to perform atomic read-modify-write operations, using either GLSL- or assembly-based shaders.

The drivers and extension documentation can be downloaded from [http://developer.nvidia.com/object/opengl\_driver.html](http://developer.nvidia.com/object/opengl_driver.html)

Happy coding!

Barthold  
(with my NVIDIA hat on)

---

<div class="post-metadata">

**Author:** ![Heiko](https://community.khronos.org/user_avatar/community.khronos.org/heiko/32/127_2.png) [@Heiko](https://community.khronos.org/u/Heiko)\
**Post date:** [April 13, 2010, 12:01am UTC](https://community.khronos.org/t/nvidia-releases-opengl-4-0-drivers/60633/2 "2010-04-13T00:01:51Z")

</div>

Nice, AMD and nVidia going strong with OpenGL driver support! Now if only Intel could catch up and we could get some OpenGL 3.x / OpenGL 4.x for Mac OSX…

But, things are improving for OpenGL, keep up the good work!  
(and I hope we’ll see atomic read/modify/write back in OpenGL 4.1… I have hope :)).

---

<div class="post-metadata">

**Author:** ![elFarto](https://community.khronos.org/user_avatar/community.khronos.org/elfarto/32/1698_2.png) [@elFarto](https://community.khronos.org/u/elFarto)\
**Post date:** [April 13, 2010, 1:21am UTC](https://community.khronos.org/t/nvidia-releases-opengl-4-0-drivers/60633/3 "2010-04-13T01:21:00Z")

</div>

NV\_shader\_buffer\_store and EXT\_shader\_image\_load\_store look very nice.

EXT\_shader\_image\_load\_store even fulfils one of the proposals on the wiki, “write to specific samples within a shader”.

Regards  
elFarto

---

<div class="post-metadata">

**Author:** ![imported\_Groovounet](https://community.khronos.org/user_avatar/community.khronos.org/imported_groovounet/32/75_2.png) [@imported\_Groovounet](https://community.khronos.org/u/imported_Groovounet)\
**Post date:** [April 13, 2010, 2:19am UTC](https://community.khronos.org/t/nvidia-releases-opengl-4-0-drivers/60633/4 "2010-04-13T02:19:17Z")

</div>

\*\*\* Great work! \*\*\*

I’m surprised to see this fine granularity of int support but we don’t have half support. Are half supposed to be directly supported in the hardware? Or maybe if was just on old chips that didn’t have a full support of single-float?

We might have some clues here on wasn’t coming for OpenGL 3.4 and 4.1!

---

<div class="post-metadata">

**Author:** ![barthold](https://community.khronos.org/letter_avatar_proxy/v4/letter/b/54ee81/32.png) [@barthold](https://community.khronos.org/u/barthold)\
**Post date:** [April 13, 2010, 10:43am UTC](https://community.khronos.org/t/nvidia-releases-opengl-4-0-drivers/60633/5 "2010-04-13T10:43:01Z")

</div>

With these drivers we also fixed the issues reported with our earlier OpenGL 3.3 drivers. If you were one of the bug reporters, I’d like to know if your issue is indeed now fixed.

Thanks,  
Barthold  
(with my NVIDIA hat on)

---

<div class="post-metadata">

**Author:** ![Prune](https://community.khronos.org/letter_avatar_proxy/v4/letter/p/77aa72/32.png) [@Prune](https://community.khronos.org/u/Prune)\
**Post date:** [April 13, 2010, 7:15pm UTC](https://community.khronos.org/t/nvidia-releases-opengl-4-0-drivers/60633/6 "2010-04-13T19:15:24Z")

</div>

> [@barthold](#):
>
> ARB\_texture\_compression\_bptc

On the site it’s listed as only supported on OpenGL 4.0 hardware. Is there any technical reason for not making this available on 3.3 hardware? As an owner of a GTX285, I’m immensely disappointed.

---

<div class="post-metadata">

**Author:** ![pbrown](https://community.khronos.org/letter_avatar_proxy/v4/letter/p/dbc845/32.png) [@pbrown](https://community.khronos.org/u/pbrown)\
**Post date:** [April 13, 2010, 10:29pm UTC](https://community.khronos.org/t/nvidia-releases-opengl-4-0-drivers/60633/7 "2010-04-13T22:29:25Z")

</div>

> [@Prune](#):
>
> [quote=barthold]ARB\_texture\_compression\_bptc

On the site it’s listed as only supported on OpenGL 4.0 hardware. Is there any technical reason for not making this available on 3.3 hardware?[/QUOTE]

Yes, these formats require decompression hardware that will generally only be found on OpenGL 4.0-capable hardware.

---

<div class="post-metadata">

**Author:** ![skynet](https://community.khronos.org/letter_avatar_proxy/v4/letter/s/919ad9/32.png) [@skynet](https://community.khronos.org/u/skynet)\
**Post date:** [April 13, 2010, 11:55pm UTC](https://community.khronos.org/t/nvidia-releases-opengl-4-0-drivers/60633/8 "2010-04-13T23:55:17Z")

</div>

> If you were one of the bug reporters, I’d like to know if your issue is indeed now fixed.

I confirm that with 197.44, you can retrieve the uniform offset of all uniforms in a shared-layout uniform block, even if the uniforms itself are not referenced by the shader.

---

<div class="post-metadata">

**Author:** ![imported\_Groovounet](https://community.khronos.org/user_avatar/community.khronos.org/imported_groovounet/32/75_2.png) [@imported\_Groovounet](https://community.khronos.org/u/imported_Groovounet)\
**Post date:** [April 14, 2010, 2:46am UTC](https://community.khronos.org/t/nvidia-releases-opengl-4-0-drivers/60633/9 "2010-04-14T02:46:34Z")

</div>

> [@barthold](#):
>
> With these drivers we also fixed the issues reported with our earlier OpenGL 3.3 drivers. If you were one of the bug reporters, I’d like to know if your issue is indeed now fixed.
> 
> Thanks,  
> Barthold  
> (with my NVIDIA hat on)

Sampler object fixed too!

---

<div class="post-metadata">

**Author:** ![barthold](https://community.khronos.org/letter_avatar_proxy/v4/letter/b/54ee81/32.png) [@barthold](https://community.khronos.org/u/barthold)\
**Post date:** [April 14, 2010, 10:55am UTC](https://community.khronos.org/t/nvidia-releases-opengl-4-0-drivers/60633/10 "2010-04-14T10:55:39Z")

</div>

Thanks guys for confirming the bug fixes.

Barthold  
(with my NVIDIA hat on)

---

<div class="post-metadata">

**Author:** ![AlexN](https://community.khronos.org/letter_avatar_proxy/v4/letter/a/b9bd4f/32.png) [@AlexN](https://community.khronos.org/u/AlexN)\
**Post date:** [April 14, 2010, 11:08am UTC](https://community.khronos.org/t/nvidia-releases-opengl-4-0-drivers/60633/11 "2010-04-14T11:08:51Z")

</div>

I didn’t report this one, but it looks like 197.44 fixes a GLSL bug where breaking out of a for loop would increment the loop counter an additional time.

---

<div class="post-metadata">

**Author:** ![oscarbg](https://community.khronos.org/letter_avatar_proxy/v4/letter/o/76d3ee/32.png) [@oscarbg](https://community.khronos.org/u/oscarbg)\
**Post date:** [April 14, 2010, 2:19pm UTC](https://community.khronos.org/t/nvidia-releases-opengl-4-0-drivers/60633/12 "2010-04-14T14:19:42Z")

</div>

197.44 don’t expose GL\_ARB\_gpu\_shader\_fp64 on a gtx 275…  
Is Nvidia going in future to expose double precision extension GL\_ARB\_gpu\_shader\_fp64 on gtx 280 cards supporting doubles on CUDA?  
Also forcing it I get:  
0(5) : warning C7547: extension GL\_ARB\_gpu\_shader\_fp64 not supported in profile  
gp4fp

---

<div class="post-metadata">

**Author:** ![CrazyButcher](https://community.khronos.org/user_avatar/community.khronos.org/crazybutcher/32/68_2.png) [@CrazyButcher](https://community.khronos.org/u/CrazyButcher)\
**Post date:** [April 15, 2010, 2:18am UTC](https://community.khronos.org/t/nvidia-releases-opengl-4-0-drivers/60633/13 "2010-04-15T02:18:59Z")

</div>

sweet, any ETA for Cg support on NV\_gpu\_program5 and related?

---

<div class="post-metadata">

**Author:** ![Prune](https://community.khronos.org/letter_avatar_proxy/v4/letter/p/77aa72/32.png) [@Prune](https://community.khronos.org/u/Prune)\
**Post date:** [April 20, 2010, 7:14pm UTC](https://community.khronos.org/t/nvidia-releases-opengl-4-0-drivers/60633/14 "2010-04-20T19:14:10Z")

</div>

Is EXT\_direct\_state\_access orthogonal w.r.t. ARB\_texture\_multisample? I don’t see a glTextureImage2DMultisampleEXT in glew…

---

<div class="post-metadata">

**Author:** ![Alfonse\_Reinheart](https://community.khronos.org/user_avatar/community.khronos.org/alfonse_reinheart/32/4357_2.png) [@Alfonse\_Reinheart](https://community.khronos.org/u/Alfonse_Reinheart)\
**Post date:** [April 20, 2010, 7:54pm UTC](https://community.khronos.org/t/nvidia-releases-opengl-4-0-drivers/60633/15 "2010-04-20T19:54:47Z")

</div>

You can’t expect the extension to be updated for every extension that comes out. Even though it has been updated to some since its initial release, but even that caused versioning problems with extension loaders.

In short, no. DSA does not have that function.

---

<div class="post-metadata">

**Author:** ![Chris\_Lux](https://community.khronos.org/user_avatar/community.khronos.org/chris_lux/32/1963_2.png) [@Chris\_Lux](https://community.khronos.org/u/Chris_Lux)\
**Post date:** [April 30, 2010, 5:30am UTC](https://community.khronos.org/t/nvidia-releases-opengl-4-0-drivers/60633/16 "2010-04-30T05:30:02Z")

</div>

Hi,  
while reworking some of my texture binding functionality i noticed a bug in the latest OpenGL 3.3 and 4.0 beta drivers (197.44) with binding sampler objects.

When running on a last generation card (FX5800 in my case) and a OpenGL 3.3 context the following way to bind a sampler object fails with GL\_INVALID\_VALUE:

glBindSampler(0, \_sampler\_id);

This is the exact way to do it according to the spec. Doing it like with texture objects works fine:

glBindSampler(GL\_TEXTURE0, \_sampler\_id);

However when running the same code on a GTX 480 with the same driver also on a 3.3 context works as expected and the second way correctly throws the invalid value error.

Regards  
-chris

---

<div class="post-metadata">

**Author:** ![Alfonse\_Reinheart](https://community.khronos.org/user_avatar/community.khronos.org/alfonse_reinheart/32/4357_2.png) [@Alfonse\_Reinheart](https://community.khronos.org/u/Alfonse_Reinheart)\
**Post date:** [April 30, 2010, 9:10am UTC](https://community.khronos.org/t/nvidia-releases-opengl-4-0-drivers/60633/17 "2010-04-30T09:10:50Z")

</div>

Yeah, there’s a [thread](http://www.opengl.org/discussion_boards/ubbthreads.php?ubb=showflat&Number=274755#Post274755) about this. NVIDIA (and the ARB) is aware of the problem and will have a fix in their next driver revision.

---

<div class="post-metadata">

**Author:** ![Chris\_Lux](https://community.khronos.org/user_avatar/community.khronos.org/chris_lux/32/1963_2.png) [@Chris\_Lux](https://community.khronos.org/u/Chris_Lux)\
**Post date:** [May 2, 2010, 1:56am UTC](https://community.khronos.org/t/nvidia-releases-opengl-4-0-drivers/60633/18 "2010-05-02T01:56:52Z")

</div>

ok, i did not see that thread. i think the info that it works both ways in nvidia drivers depending on what hardware you run it is new ;).

---

<div class="post-metadata">

**Author:** ![pbrown](https://community.khronos.org/letter_avatar_proxy/v4/letter/p/dbc845/32.png) [@pbrown](https://community.khronos.org/u/pbrown)\
**Post date:** [May 5, 2010, 6:00pm UTC](https://community.khronos.org/t/nvidia-releases-opengl-4-0-drivers/60633/19 "2010-05-05T18:00:41Z")

</div>

> [@Chris\_Lux](#):
>
> ok, i did not see that thread. i think the info that it works both ways in nvidia drivers depending on what hardware you run it is new ;).

There shouldn’t be any difference in BindSampler behavior on NVIDIA GPUs between hardware versions, GeForce/Quadro, or OpenGL context versions. The first 3.3 driver did erroneously accept TEXTURE0 as described in the thread linked by Alphonse.

My guess is that your FX5800 was actually running with the older OpenGL 3.3-only driver (197.15?). Maybe something like the following happened?

- plug in GeForce GTX 480
- install 197.44
- everything works as expected
- replace with Quadro FX 5800
- after reboot, Windows plug-n-play ends up using the 197.15 driver, which accepts only TEXTURE0

I have seen something like this happen to me in the past, though I’m not sure how such a situation arises.

---

<div class="post-metadata">

**Author:** ![Chris\_Lux](https://community.khronos.org/user_avatar/community.khronos.org/chris_lux/32/1963_2.png) [@Chris\_Lux](https://community.khronos.org/u/Chris_Lux)\
**Post date:** [May 6, 2010, 6:12am UTC](https://community.khronos.org/t/nvidia-releases-opengl-4-0-drivers/60633/20 "2010-05-06T06:12:10Z")

</div>

> [@pbrown](#):
>
> There shouldn’t be any difference in BindSampler behavior on NVIDIA GPUs between hardware versions, GeForce/Quadro, or OpenGL context versions. The first 3.3 driver did erroneously accept TEXTURE0 as described in the thread linked by Alphonse.
> 
> My guess is that your FX5800 was actually running with the older OpenGL 3.3-only driver (197.15?). Maybe something like the following happened?
> 
> - plug in GeForce GTX 480
> - install 197.44
> - everything works as expected
> - replace with Quadro FX 5800
> - after reboot, Windows plug-n-play ends up using the 197.15 driver, which accepts only TEXTURE0
> 
> I have seen something like this happen to me in the past, though I’m not sure how such a situation arises.

you are right, the machine i put the FX5800 in was actually running 197.15. it is not my main development machine so i did not catch that. thanks!

[Next page](https://community.khronos.org/t/nvidia-releases-opengl-4-0-drivers/60633.md?page=2)
