NVIDIA ForceWare 180.42 Add 8 New OpenGL Extensions


Here is the list of OpenGL extensions supported by Forceware 180.42 WinXP 32 drivers for a GeForce GTX 280.

In comparison to ForceWare 178.24, ForceWare 180.42 introduces 8 new extensions:

Most of these extensions are not really new, they have been just ARB-ed.
GL_EXT_direct_state_access seems interesting because this extension allows to update some OpenGL state like matrices in a more direct way. For example, without this extension, to update the modelview matrix you have to do:

void setModelviewMatrix(const GLfloat matrix[16])
{
  GLenum savedMatrixMode;
  glGetIntegerv(GL_MATRIX_MODE, &savedMatrixMode);
  glMatrixMode(GL_MODELVIEW);
  glLoadMatrixf(matrix);
  glMatrixMode(savedMatrixMode);
 }

Now using GL_EXT_direct_state_access extension, you can do:

 void setModelviewMatrix(const GLfloat matrix[16])
{ 
  glMatrixLoadfEXT(GL_MODELVIEW, matrix); 
}

Rather effective!

ForceWare 180.42 has also the OpenGL 3.0 support. If you enable OpenGL 3.0 with NVIDIA OpenGL Emulation tool (see here: ForceWare 177.89 and OpenGL 3.0 Code Sample), the extension WGL_ARB_create_context is added to the extensions list bringing total number to 171.

Graphics card used: EVGA GeForce GTX 280 / 1Gb.

– OpenGL Renderer: GeForce GTX 280/PCI/SSE2
– Vendor: NVIDIA Corporation
– Drivers Version: Forceware 6.14.11.8042 (10-17-2008)
– OpenGL Version: 2.1.2
– GLSL (OpenGL Shading Language) Version: 1.20 NVIDIA via Cg compiler
– ARB Texture Units: 4
– Vertex Shader Texture Units: 32
– Pixel Shader Texture Units: 32
– Geometry Shader Texture Units: 32
– Max Texture Size: 8192×8192
– Max Anisotropic Filtering Value: X16.0
– Max Point Sprite Size: 63.4
– Max Dynamic Lights: 8
– Max Viewport Size: 8192×8192
– Max Vertex Uniform Components: 4096
– Max Fragment Uniform Components: 2048
– Max Geometry Uniform Components: 2048
– Max Varying Float: 60
– Max Vertex Bindable Uniforms: 12
– Max Fragment Bindable Uniforms: 12
– Max Geometry Bindable Uniforms: 12

OpenGL Extensions: 170 extensions

The extensions exposed by the old ForceWare drivers are HERE.
You can use GPU Caps Viewer to retrieve the list of extensions of your graphics card.

  • GL_ARB_color_buffer_float
  • GL_ARB_depth_texture
  • GL_ARB_draw_buffers
  • GL_ARB_draw_instanced
  • GL_ARB_fragment_program
  • GL_ARB_fragment_program_shadow
  • GL_ARB_fragment_shader
  • GL_ARB_half_float_pixel
  • GL_ARB_half_float_vertex
  • GL_ARB_framebuffer_object
  • GL_ARB_geometry_shader4
  • GL_ARB_imaging
  • GL_ARB_multisample
  • GL_ARB_multitexture
  • GL_ARB_occlusion_query
  • GL_ARB_pixel_buffer_object
  • GL_ARB_point_parameters
  • GL_ARB_point_sprite
  • GL_ARB_shadow
  • GL_ARB_shader_objects
  • GL_ARB_shading_language_100
  • GL_ARB_texture_border_clamp
  • GL_ARB_texture_buffer_object
  • GL_ARB_texture_compression
  • GL_ARB_texture_cube_map
  • GL_ARB_texture_env_add
  • GL_ARB_texture_env_combine
  • GL_ARB_texture_env_dot3
  • GL_ARB_texture_float
  • GL_ARB_texture_mirrored_repeat
  • GL_ARB_texture_non_power_of_two
  • GL_ARB_texture_rectangle
  • GL_ARB_transpose_matrix
  • GL_ARB_vertex_array_object
  • GL_ARB_vertex_buffer_object
  • GL_ARB_vertex_program
  • GL_ARB_vertex_shader
  • GL_ARB_window_pos
  • GL_ATI_draw_buffers
  • GL_ATI_texture_float
  • GL_ATI_texture_mirror_once
  • GL_S3_s3tc
  • GL_EXT_texture_env_add
  • GL_EXT_abgr
  • GL_EXT_bgra
  • GL_EXT_blend_color
  • GL_EXT_blend_equation_separate
  • GL_EXT_blend_func_separate
  • GL_EXT_blend_minmax
  • GL_EXT_blend_subtract
  • GL_EXT_compiled_vertex_array
  • GL_EXT_Cg_shader
  • GL_EXT_bindable_uniform
  • GL_EXT_depth_bounds_test
  • GL_EXT_direct_state_access
  • GL_EXT_draw_buffers2
  • GL_EXT_draw_instanced
  • GL_EXT_draw_range_elements
  • GL_EXT_fog_coord
  • GL_EXT_framebuffer_blit
  • GL_EXT_framebuffer_multisample
  • GL_EXT_framebuffer_object
  • GL_EXTX_framebuffer_mixed_formats
  • GL_EXT_framebuffer_sRGB
  • GL_EXT_geometry_shader4
  • GL_EXT_gpu_program_parameters
  • GL_EXT_gpu_shader4
  • GL_EXT_multi_draw_arrays
  • GL_EXT_packed_depth_stencil
  • GL_EXT_packed_float
  • GL_EXT_packed_pixels
  • GL_EXT_pixel_buffer_object
  • GL_EXT_point_parameters
  • GL_EXT_rescale_normal
  • GL_EXT_secondary_color
  • GL_EXT_separate_specular_color
  • GL_EXT_shadow_funcs
  • GL_EXT_stencil_two_side
  • GL_EXT_stencil_wrap
  • GL_EXT_texture3D
  • GL_EXT_texture_array
  • GL_EXT_texture_buffer_object
  • GL_EXT_texture_compression_latc
  • GL_EXT_texture_compression_rgtc
  • GL_EXT_texture_compression_s3tc
  • GL_EXT_texture_cube_map
  • GL_EXT_texture_edge_clamp
  • GL_EXT_texture_env_combine
  • GL_EXT_texture_env_dot3
  • GL_EXT_texture_filter_anisotropic
  • GL_EXT_texture_integer
  • GL_EXT_texture_lod
  • GL_EXT_texture_lod_bias
  • GL_EXT_texture_mirror_clamp
  • GL_EXT_texture_object
  • GL_EXT_texture_sRGB
  • GL_EXT_texture_shared_exponent
  • GL_EXT_timer_query
  • GL_EXT_vertex_array
  • GL_IBM_rasterpos_clip
  • GL_IBM_texture_mirrored_repeat
  • GL_KTX_buffer_region
  • GL_NV_blend_square
  • GL_NV_copy_depth_to_color
  • GL_NV_depth_buffer_float
  • GL_NV_conditional_render
  • GL_NV_depth_clamp
  • GL_NV_explicit_multisample
  • GL_NV_fence
  • GL_NV_float_buffer
  • GL_NV_fog_distance
  • GL_NV_fragment_program
  • GL_NV_fragment_program_option
  • GL_NV_fragment_program2
  • GL_NV_framebuffer_multisample_coverage
  • GL_NV_geometry_shader4
  • GL_NV_gpu_program4
  • GL_NV_half_float
  • GL_NV_light_max_exponent
  • GL_NV_multisample_coverage
  • GL_NV_multisample_filter_hint
  • GL_NV_occlusion_query
  • GL_NV_packed_depth_stencil
  • GL_NV_parameter_buffer_object
  • GL_NV_pixel_data_range
  • GL_NV_point_sprite
  • GL_NV_primitive_restart
  • GL_NV_register_combiners
  • GL_NV_register_combiners2
  • GL_NV_texgen_reflection
  • GL_NV_texture_compression_vtc
  • GL_NV_texture_env_combine4
  • GL_NV_texture_expand_normal
  • GL_NV_texture_rectangle
  • GL_NV_texture_shader
  • GL_NV_texture_shader2
  • GL_NV_texture_shader3
  • GL_NV_transform_feedback
  • GL_NV_transform_feedback2
  • GL_NV_vertex_array_range
  • GL_NV_vertex_array_range2
  • GL_NV_vertex_program
  • GL_NV_vertex_program1_1
  • GL_NV_vertex_program2
  • GL_NV_vertex_program2_option
  • GL_NV_vertex_program3
  • GL_NVX_conditional_render
  • GL_SGIS_generate_mipmap
  • GL_SGIS_texture_lod
  • GL_SGIX_depth_texture
  • GL_SGIX_shadow
  • GL_SUN_slice_accum
  • GL_WIN_swap_hint
  • WGL_EXT_swap_control
  • WGL_ARB_buffer_region
  • WGL_ARB_extensions_string
  • WGL_ARB_make_current_read
  • WGL_ARB_multisample
  • WGL_ARB_pbuffer
  • WGL_ARB_pixel_format
  • WGL_ARB_pixel_format_float
  • WGL_ARB_render_texture
  • WGL_ATI_pixel_format_float
  • WGL_EXT_extensions_string
  • WGL_EXT_framebuffer_sRGB
  • WGL_EXT_pixel_format_packed_float
  • WGL_NV_float_buffer
  • WGL_NV_multisample_coverage
  • WGL_NV_render_depth_texture
  • WGL_NV_render_texture_rectangle

A more detailed description of each extension can be found at the following addresses: