NVIDIA has released a new set of graphics drivers for all GeForce (6 to 500-series). R258.19 is based on a new branch: r280_11-10 and for the first time, OpenCL 1.1 is officially exposed:
According to GPU-Tech.org, OpenCL performances of R280.19 are not good: Nvidia supports OpenCL 1.1 with Geforce 280.19 Beta – performance suffers.
You can download R280.19 here (and consult the release notes):
According to GPU Caps Viewer 1.13.0, R280.19 exposes 275 OpenGL extensions (GL=250, WGL=25).
Compared to R275.57, one extension has been removed and two new ones have been added.
New extensions:
- GL_EXT_import_sync_object
- WGL_EXT_swap_control_tear
Removed extension:
Here is the list of the 275 extensions (GL=250 and WGL=25) exposed by R280.19 for a GeForce GTX 590:
- GL_ARB_blend_func_extended
- GL_ARB_color_buffer_float
- GL_ARB_compatibility
- GL_ARB_copy_buffer
- GL_ARB_debug_output
- GL_ARB_depth_buffer_float
- GL_ARB_depth_clamp
- GL_ARB_depth_texture
- GL_ARB_draw_buffers
- GL_ARB_draw_buffers_blend
- GL_ARB_draw_indirect
- GL_ARB_draw_elements_base_vertex
- GL_ARB_draw_instanced
- GL_ARB_ES2_compatibility
- GL_ARB_explicit_attrib_location
- GL_ARB_fragment_coord_conventions
- GL_ARB_fragment_program
- GL_ARB_fragment_program_shadow
- GL_ARB_fragment_shader
- GL_ARB_framebuffer_object
- GL_ARB_framebuffer_sRGB
- GL_ARB_geometry_shader4
- GL_ARB_get_program_binary
- GL_ARB_gpu_shader5
- GL_ARB_gpu_shader_fp64
- GL_ARB_half_float_pixel
- GL_ARB_half_float_vertex
- GL_ARB_imaging
- GL_ARB_instanced_arrays
- GL_ARB_map_buffer_range
- GL_ARB_multisample
- GL_ARB_multitexture
- GL_ARB_occlusion_query
- GL_ARB_occlusion_query2
- GL_ARB_pixel_buffer_object
- GL_ARB_point_parameters
- GL_ARB_point_sprite
- GL_ARB_provoking_vertex
- GL_ARB_robustness
- GL_ARB_sample_shading
- GL_ARB_sampler_objects
- GL_ARB_seamless_cube_map
- GL_ARB_separate_shader_objects
- GL_ARB_shader_bit_encoding
- GL_ARB_shader_objects
- GL_ARB_shader_precision
- GL_ARB_shader_subroutine
- GL_ARB_shading_language_100
- GL_ARB_shading_language_include
- GL_ARB_shadow
- GL_ARB_sync
- GL_ARB_tessellation_shader
- GL_ARB_texture_border_clamp
- GL_ARB_texture_buffer_object
- GL_ARB_texture_buffer_object_rgb32
- GL_ARB_texture_compression
- GL_ARB_texture_compression_rgtc
- GL_ARB_texture_cube_map
- GL_ARB_texture_cube_map_array
- GL_ARB_texture_env_add
- GL_ARB_texture_env_combine
- GL_ARB_texture_env_crossbar
- GL_ARB_texture_env_dot3
- GL_ARB_texture_float
- GL_ARB_texture_gather
- GL_ARB_texture_mirrored_repeat
- GL_ARB_texture_multisample
- GL_ARB_texture_non_power_of_two
- GL_ARB_texture_query_lod
- GL_ARB_texture_rectangle
- GL_ARB_texture_rg
- GL_ARB_texture_rgb10_a2ui
- GL_ARB_texture_swizzle
- GL_ARB_timer_query
- GL_ARB_transform_feedback2
- GL_ARB_transform_feedback3
- GL_ARB_transpose_matrix
- GL_ARB_uniform_buffer_object
- GL_ARB_vertex_array_bgra
- GL_ARB_vertex_array_object
- GL_ARB_vertex_attrib_64bit
- GL_ARB_vertex_buffer_object
- GL_ARB_vertex_program
- GL_ARB_vertex_shader
- GL_ARB_vertex_type_2_10_10_10_rev
- GL_ARB_viewport_array
- 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_bindable_uniform
- 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_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_EXTX_framebuffer_mixed_formats
- GL_EXT_framebuffer_object
- 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_provoking_vertex
- GL_EXT_rescale_normal
- GL_EXT_secondary_color
- GL_EXT_separate_shader_objects
- GL_EXT_separate_specular_color
- GL_EXT_shader_image_load_store
- 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_dxt1
- 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_format_BGRA8888
- 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_shared_exponent
- GL_EXT_texture_sRGB
- GL_EXT_texture_swizzle
- GL_EXT_texture_type_2_10_10_10_REV
- GL_EXT_timer_query
- GL_EXT_transform_feedback2
- GL_EXT_vertex_array
- GL_EXT_vertex_array_bgra
- GL_EXT_vertex_attrib_64bit
- GL_EXT_import_sync_object
- GL_IBM_rasterpos_clip
- GL_IBM_texture_mirrored_repeat
- GL_KTX_buffer_region
- GL_NV_alpha_test
- GL_NV_blend_minmax
- GL_NV_blend_square
- GL_NV_complex_primitives
- GL_NV_conditional_render
- GL_NV_copy_depth_to_color
- GL_NV_copy_image
- GL_NV_depth_buffer_float
- GL_NV_depth_clamp
- GL_NV_explicit_multisample
- GL_NV_fbo_color_attachments
- GL_NV_fence
- GL_NV_float_buffer
- GL_NV_fog_distance
- GL_NV_fragdepth
- 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_gpu_program4_1
- GL_NV_gpu_program5
- GL_NV_gpu_program_fp64
- GL_NV_gpu_shader5
- 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_parameter_buffer_object2
- GL_NV_path_rendering
- GL_NV_pixel_data_range
- GL_NV_point_sprite
- GL_NV_primitive_restart
- GL_NV_register_combiners
- GL_NV_register_combiners2
- GL_NV_shader_buffer_load
- GL_NV_texgen_reflection
- GL_NV_texture_barrier
- GL_NV_texture_compression_vtc
- GL_NV_texture_env_combine4
- GL_NV_texture_expand_normal
- GL_NV_texture_lod_clamp
- GL_NV_texture_multisample
- 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_attrib_integer_64bit
- GL_NV_vertex_buffer_unified_memory
- 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_NVX_gpu_memory_info
- GL_OES_depth24
- GL_OES_depth32
- GL_OES_depth_texture
- GL_OES_element_index_uint
- GL_OES_fbo_render_mipmap
- GL_OES_get_program_binary
- GL_OES_mapbuffer
- GL_OES_packed_depth_stencil
- GL_OES_rgb8_rgba8
- GL_OES_standard_derivatives
- GL_OES_texture_3D
- GL_OES_texture_float
- GL_OES_texture_float_linear
- GL_OES_texture_half_float
- GL_OES_texture_half_float_linear
- GL_OES_texture_npot
- GL_OES_vertex_array_object
- GL_OES_vertex_half_float
- 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_create_context
- WGL_ARB_create_context_profile
- WGL_ARB_create_context_robustness
- 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_create_context_es2_profile
- WGL_EXT_extensions_string
- WGL_EXT_framebuffer_sRGB
- WGL_EXT_pixel_format_packed_float
- WGL_EXT_swap_control_tear
- WGL_NVX_DX_interop
- WGL_NV_DX_interop
- WGL_NV_DX_interop2
- WGL_NV_float_buffer
- WGL_NV_multisample_coverage
- WGL_NV_render_depth_texture
- WGL_NV_render_texture_rectangle
R280.19 implements the OpenCL 1.1 specifications. Here is the detail for the first GPU of the GTX 590:
- CL_PLATFORM_NAME: NVIDIA CUDA - CL_PLATFORM_VENDOR: NVIDIA Corporation - CL_PLATFORM_VERSION: OpenCL 1.1 CUDA 4.0.1 - CL_PLATFORM_PROFILE: FULL_PROFILE - Num devices: 2 - CL_DEVICE_NAME: GeForce GTX 590 - CL_DEVICE_VENDOR: NVIDIA Corporation - CL_DRIVER_VERSION: 280.19 - CL_DEVICE_PROFILE: FULL_PROFILE - CL_DEVICE_VERSION: OpenCL 1.1 CUDA - CL_DEVICE_TYPE: GPU - CL_DEVICE_VENDOR_ID: 0x10DE - CL_DEVICE_MAX_COMPUTE_UNITS: 16 - CL_DEVICE_MAX_CLOCK_FREQUENCY: 1225MHz - CL_NV_DEVICE_COMPUTE_CAPABILITY_MAJOR: 2 - CL_NV_DEVICE_COMPUTE_CAPABILITY_MINOR: 0 - CL_NV_DEVICE_REGISTERS_PER_BLOCK: 32768 - CL_NV_DEVICE_WARP_SIZE: 32 - CL_NV_DEVICE_GPU_OVERLAP: 1 - CL_NV_DEVICE_KERNEL_EXEC_TIMEOUT: 1 - CL_NV_DEVICE_INTEGRATED_MEMORY: 0 - CL_DEVICE_ADDRESS_BITS: 32 - CL_DEVICE_MAX_MEM_ALLOC_SIZE: 384880KB - CL_DEVICE_GLOBAL_MEM_SIZE: 1503MB - CL_DEVICE_MAX_PARAMETER_SIZE: 4352 - CL_DEVICE_GLOBAL_MEM_CACHELINE_SIZE: 128 Bytes - CL_DEVICE_GLOBAL_MEM_CACHE_SIZE: 256KB - CL_DEVICE_ERROR_CORRECTION_SUPPORT: NO - CL_DEVICE_LOCAL_MEM_TYPE: Local (scratchpad) - CL_DEVICE_LOCAL_MEM_SIZE: 48KB - CL_DEVICE_MAX_CONSTANT_BUFFER_SIZE: 64KB - CL_DEVICE_MAX_WORK_ITEM_DIMENSIONS: 3 - CL_DEVICE_MAX_WORK_ITEM_SIZES: [1024 ; 1024 ; 64] - CL_DEVICE_MAX_WORK_GROUP_SIZE: 1024 - CL_EXEC_NATIVE_KERNEL: 4761936 - CL_DEVICE_IMAGE_SUPPORT: YES - CL_DEVICE_MAX_READ_IMAGE_ARGS: 128 - CL_DEVICE_MAX_WRITE_IMAGE_ARGS: 8 - CL_DEVICE_IMAGE2D_MAX_WIDTH: 16384 - CL_DEVICE_IMAGE2D_MAX_HEIGHT: 16384 - CL_DEVICE_IMAGE3D_MAX_WIDTH: 2048 - CL_DEVICE_IMAGE3D_MAX_HEIGHT: 2048 - CL_DEVICE_IMAGE3D_MAX_DEPTH: 16 - CL_DEVICE_MAX_SAMPLERS: 16 - CL_DEVICE_PREFERRED_VECTOR_WIDTH_CHAR: 1 - CL_DEVICE_PREFERRED_VECTOR_WIDTH_SHORT: 1 - CL_DEVICE_PREFERRED_VECTOR_WIDTH_INT: 1 - CL_DEVICE_PREFERRED_VECTOR_WIDTH_LONG: 1 - CL_DEVICE_PREFERRED_VECTOR_WIDTH_FLOAT: 1 - CL_DEVICE_PREFERRED_VECTOR_WIDTH_DOUBLE: 1 - CL_DEVICE_EXTENSIONS: 16 - Extensions: - cl_khr_byte_addressable_store - cl_khr_icd - cl_khr_gl_sharing - cl_nv_d3d9_sharing - cl_nv_d3d10_sharing - cl_khr_d3d10_sharing - cl_nv_d3d11_sharing - cl_nv_compiler_options - cl_nv_device_attribute_query - cl_nv_pragma_unroll - - cl_khr_global_int32_base_atomics - cl_khr_global_int32_extended_atomics - cl_khr_local_int32_base_atomics - cl_khr_local_int32_extended_atomics - cl_khr_fp64
GL_ARB_texture_compression_bptc is supported by NVIDIA since OpenGL 4.0 drivers released about a year and half ago.
The new extensions are GL_OES_texture_float and
GL_OES_texture_half_float
The OpenCL performance with this driver is very poor — 20% down on average, compared to the previous driver releases.
@Christophe: thanks, I just wrote anything!
Actually GL_ARB_texture_compression_bptc has been removed and there are two new extensions. But not GL_OES_texture_float and GL_OES_texture_half_float, both being already exposed in R275.27.
@Christophe & JeGX:
I’m sorry that I have to correct you both, but GL_OES_texture_float and GL_OES_texture_half_float, as well as other OES extensions, are available in NV drivers since R270 (first noticed in R270.28).
I like the look of WGL_EXT_swap_control_tear, its an extension that John Carmack of id Software (Doom, Quake, Rage, Wolfenstien etc) has been working on with NVIDIA.
It will allow the vsync to behave like it does on console where the frame will tear if a frame is not completed in time, but other wise will sync at 60fps. That way you don’t need to choose between vysnc dropping to 30fps when a scene gets busy, and vsync off at 100fps when a scene is light.
See more here http://www.bluesnews.com/cgi-bin/board.pl?action=viewthread&boardid=1&threadid=122789
How long before we see ATIs version?
@Leith: prolly after they add the other 50 odd missing extensions!..which would take prolly 2 years coz AMDs OpenGL team is slowww!
Nvidia GeForce 280.28 developer drivers with OpenGL 4.2 support released, lots of new extensions.
http://developer.nvidia.com/opengl-driver