WHQL-certified Windows driver version 197.44 and Linux drivers version 195.36.07.04 provide full support for OpenGL 4.0 and GLSL 4.00 as well as OpenGL 3.3 and GLSL 3.30. The driver download links are at the bottom of this page.

OpenGL 4.0 and OpenGL 3.3 Driver Release Notes:

You will need one of the following graphics cards to get access to the OpenGL 4.0 and GLSL 4.00 functionality:

* Any Fermi based GPU

You will need one of the following graphics cards to get access to the OpenGL 3.3 and GLSL 3.30 functionality:

Desktop

* Quadro FX 370, 570, 1700, 3700, 4600, 4700x2, 4800, 5600, 5800, Quadro VX200, Quadro CX
* GeForce 8000 series or higher; Geforce G100, GT120, 130, 220, GTS 150, GTS 250, GT310, 320, 330, 340, GeForce GTX 260 and higher, any ION based products.

Notebook

* Quadro FX 360M, 370M, 570M, 770M, 1600M, 1700M, 2700M, 2800M, 3600M, 3700M, 3800M
* GeForce 8000 series or higher

For OpenGL 2 capable hardware, these new extensions are provided:

* ARB_texture_swizzle (also in core OpenGL 3.3)
* ARB_sampler_objects (also in core OpenGL 3.3)
* ARB_occlusion_query2 (also in core OpenGL 3.3)
* ARB_timer_query (also in core OpenGL 3.3)
* ARB_explicit_attrib_location (also in core OpenGL 3.3)

For OpenGL 4 capable hardware, these new extensions are provided:

* ARB_texture_compression_bptc
* EXT_shader_image_load_store
* EXT_vertex_attrib_64bit
* NV_gpu_shader5
* NV_gpu_program5
* NV_tessellation_program5
* NV_vertex_attrib_integer_64bit
* NV_shader_buffer_store

Additionally, for OpenGL 3 capable hardware, ARB extensions are provided for all features in OpenGL 3.3. For OpenGL 4 capable hardware, ARB extensions are provided for all features in OpenGL 3.3 and 4.0.

The OpenGL 4.0 and GLSL 4.00 specifications, as well as the OpenGL 3.3 and GLSL 3.30 extensions and all ARB extension specifications, can be downloaded here: https://www.opengl.org/registry/

For any bugs or issues, please file a bug through the developer website: https://nvdeveloper.nvidia.com/
OpenGL 4 on NVIDIA Hardware FAQ
1) How do I start using OpenGL 4 in my code base?

In order to use OpenGL 3.0 and later versions, an application should "opt in" to use these versions. There is a new context creation call CreateContextAttribsARB (for WGL and GLX defined in the WGL/GLX_ARB_create_context extensions) that you should use in order to request a context that supports OpenGL 3 or OpenGL 4.

For OpenGL 3.2, and later versions including OpenGL 4.0, you additionally will have to indicate what profile you want the OpenGL context to support. Either the "Core" or the "Compatibility" profile.
2) I hear about deprecation and removing functionality from OpenGL. What is going on?

Together with OpenGL 3.0, the OpenGL ARB introduced a deprecation mechanism. Deprecation means that a feature is marked for removal from a future version of the OpenGL spec. It is not actually removed yet from OpenGL 3.0, but this means that future versions of OpenGL will remove features. Several features are marked as deprecated in the OpenGL 3.0 specification (but none are removed).

The OpenGL 3.1 specification removed those features that were marked as deprecated in OpenGL 3.0. However, the OpenGL ARB has recognized that there is a need to provide both new functionality in future versions of OpenGL, and still support the removed functionality. To support that market need, the ARB_compatibility extension has been created. This single extension encapsulates all the removed functionality, and re-introduces that back into core OpenGL 3.1. The entry points and tokens in this extension have not changed. No "ARB" suffix has been attached, for example. Implementation of the ARB_compatibility extension is optional. Some OpenGL vendors might chose not to implement it. NVIDIA does support this extension across all its OpenGL 3 capable offerings. This means that if the ARB_compatibility extension name is present in the OpenGL extension string, that the OpenGL implementation supports a fully backwards compatible OpenGL 3.1.

Starting with OpenGL 3.2, the OpenGL ARB has introduced two profiles. The "Core" profile and the "Compatibility" profile. A profile is a well defined subset of the OpenGL specification. The "Core" profile builds on top of OpenGL 3.1 (without ARB_compatibility). The Core profile does not support any deprecated features. The Compatibility profile builds on top of OpenGL 3.1 including ARB_compatibility. The Compatibility profile has full support for all features, including the deprecated ones. Both profiles are available in our OpenGL 4.0 drivers.

NVIDIA recommends that developers always create a Compatibility profile context, to ensure full backwards compatibility of existing OpenGL code.

The OpenGL ARB provides two OpenGL 4.0 specifications, one each for the Core and Compatibility profiles. For the OpenGL Shading Language version 4.00, the OpenGL ARB provides only one document, with the Compatibility profile functionality integrated and clearly marked. These three specification documents can be downloaded from https://www.opengl.org/registry
3) What about the "old" context creation API, WGL/GLXCreateContext. Can I still use it?

Yes. However, if you are writing new code we strongly recommend you use the new CreateContextAttribsARB API described in the WGL/GLX_ARB_create_context extension. The "old" CreateContext API will still function, and it will create an OpenGL 4.0 Compatibility profile.

4) Is NVIDIA going to remove functionality from OpenGL in the future?

NVIDIA has no interest in removing any feature from OpenGL that our ISVs rely on. NVIDIA believes in providing maximum functionality with minimal churn to developers. Hence, NVIDIA fully supports the ARB_compatibility extension and Compatibility profile, and is shipping OpenGL drivers without any functionality removed, including any functionality that is marked deprecated.
5) Will existing applications still work on current and future shipping hardware?

NVIDIA has no plans for dropping support for any version of OpenGL on our existing and future shipping hardware. As a result, all currently shipping applications will continue to work on NVIDIA's existing and future hardware.
6) What NVIDIA hardware will support OpenGL 3?

The new features in OpenGL 3 require G80, or newer hardware. Thus OpenGL 3.0/3.1/3.2/3.3 is not supported on NV3x, NV4x nor G7x hardware. This means you need one of the following NVIDIA graphics accelerators to use OpenGL 3:

Desktop

* Quadro FX 370, 570, 1700, 3700, 4600, 4700x2, 4800, 5600, 5800, Quadro VX200, Quadro CX
* GeForce 8000 series or higher; Geforce G100, GT120, 130, 220, GTS 150, GTS 250, GT310, 320, 330, 340, GeForce GTX 260 and higher, any ION based products.

Notebook

* Quadro FX 360M, 370M, 570M, 770M, 1600M, 1700M, 2700M, 2800M, 3600M, 3700M, 3800M
* GeForce 8000 series or higher

7) What NVIDIA hardware will support OpenGL 4?

The new features in OpenGL 4 require a Fermi GPU. Thus OpenGL 4 is not supported on NV3x, NV4x, G7x, G8x nor GT2xx hardware. This means you need one of the following NVIDIA graphics accelerators to use OpenGL 4:

* Any Fermi based GPU

8) Will functionality marked as deprecated be slow on NVIDIA hardware?

No. NVIDIA understands that features on the deprecated list are critical to the business of a large part of our customer base. NVIDIA will provide full performance, and will support, tune, and fix any issues, for any feature on the deprecated list. This means that all the functionality in the ARB_compatibility extension and Compatibility profile will continue to operate at maximum performance.