(Updated) NVIDIA R280.19 Beta: OpenCL 1.1 and Two New OpenGL Extensions

R280.19, GeForce GTX 590


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:

R280.19, OpenCL 1.1 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):

R280.19, NV-Z
NV-Z

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

(Forum thread)

7 thoughts on “(Updated) NVIDIA R280.19 Beta: OpenCL 1.1 and Two New OpenGL Extensions”

  1. Christophe

    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

  2. fellix

    The OpenCL performance with this driver is very poor — 20% down on average, compared to the previous driver releases.

  3. JeGX Post Author

    @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.

  4. Aleksandar

    @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).

  5. Leith Bade

    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?

  6. WacKEDmaN

    @Leith: prolly after they add the other 50 odd missing extensions!..which would take prolly 2 years coz AMDs OpenGL team is slowww!

Comments are closed.