ATI Catalyst 9.8: Six New OpenGL Extensions

AMD/ATI graphics drivers

OpenGL 3


Update (2009.08.18)
Catalyst 9.8 are officially available on AMD servers:

Catalyst 9.8 are available and you can download them at the end of this post on AMD blogs. Geometry shaders are now fully supported in this new version and the OpenGL 3 support has been improved. Catalyst 9.8 exposes a total of 157 OpenGL extensions (Radeon HD 4850 under XP 32) and all these new features are exposed via 6 new extensions (compared to Catalyst 9.7) :

  • GL_AMD_vertex_shader_tessellator: The vertex shader tessellator gives new flexibility to the shader author to shade at a tessellated vertex, rather than just at a provided vertex. In unextended vertex shading, the built-in attributes such as gl_Vertex, gl_Normal, and gl_MultiTexcoord0, together with the user defined attributes, are system provided values which are initialized prior to vertex shader invocation. With vertex shading tessellation, additional vertex shader special values are available: ivec3 gl_VertexTriangleIndex and vec3 gl_BarycentricCoord. When this extension is enabled, conventional built-in attributes and user defined attributes are uninitialized. The shader writer is responsible for explicitly fetching all other vertex data either from textures, uniform buffers, or vertex buffers.
  • GL_ARB_compatibility: this an OpenGL 3.1 extension. The major change in OpenGL 3.1 is that all deprecated functions in OpenGL 3.0 are no longer supported. Features removed from OpenGL 3.0 have been moved into the new extension GL_ARB_compatibility. This extension is not mandatory and NVIDIA and ATI can decide to add or not add it in their drivers.
  • GL_ARB_geometry_shader4 and GL_EXT_geometry_shader4: both extensions show the support for geometry shaders. GL_ARB_geometry_shader4 defines a new shader type available to be run on the GPU, called a geometry shader. Geometry shaders are run after vertices are transformed, but prior to color clamping, flat shading and clipping.
  • GL_ARB_uniform_buffer_object: OpenGL 3.1 feature that allows to pass a bunch of uniforms variables to the shader (this is an uniform array). Without this extension, you are limited to 1024 uniforms for the vertex and pixel shader and 4096 for the geometry shader.
  • GL_NV_explicit_multisample: In traditional multisample specs, the API only allows access to the samples indirectly through methods such as coverage values and downsampled readbacks. NV_explicit_multisample adds a set of new capabilities to allow more precise control over the use of multisamples.

Maybe you might be also interested to the OpenGL side of the latest NVIDIA display drivers ? So jump here: NVIDIA Display Drivers 190.56 with OpenGL 3.2 Support And New OpenGL Extensions.

GPU Caps Viewer screenshots:

GPU Caps Viewer - Catalyst 9.8

GPU Caps Viewer - Catalyst 9.8
OpenGL 2 context

GPU Caps Viewer - Catalyst 9.8
OpenGL 3 context – command line param: /gl30

PC Perspective has a changelog of Catalyst 9.8:

- Support for OpenGL Shading Language 1.30 and 1.40.
- Instanced rendering with a per-instance counter accessible to vertex shaders (GL ARB draw instanced).
- Data copying between buffer objects (GL EXT copy buffer).
- Primitive restart (NV primitive restart). Because client enable/disable no longer exists in OpenGL 3.1, the PRIMITIVE RESTART state has become server state, unlike the Nvidia extension where it is client state. As a result, the numeric values assigned to PRIMITIVE RESTART and PRIMITIVE RESTART INDEX differ from the NV versions of those tokens. o At least 16 texture image units must be accessible to vertex shaders, in addition to the 16 already guaranteed to be accessible to fragment shaders.
- Texture buffer objects (GL ARB texture buffer object).
- Rectangular textures (GL ARB texture rectangle).
- Uniform buffer objects (GL ARB uniform buffer object).
- SNORM texture component formats.

GL_ARB_draw_instanced, GL_ARB_texture_buffer_object, GL_EXT_copy_buffer, GL_NV_primitive_restart, GL_ARB_texture_rectangle were all already supported in Catalyst 9.7. SNORM texture was also already exposed by Catalyst 9.7 via GL_ARB_texture_snorm. Seems this changelog is a bit outdated ;)

Graphics driver information:
- Drivers Version: 8.640.0.0 – Catalyst 09.8 (7-14-2009)
- ATI Catalyst Version String: 09.8
- ATI Catalyst Release Version String: 8.64-090714a1-085212C-ATI
- OpenGL Renderer: ATI Radeon HD 4800 Series
- OpenGL Version: 3.1.8870
- GLSL (OpenGL Shading Language) Version: 1.40
- ARB Texture Units: 8
- Vertex Shader Texture Units: 16
- Pixel Shader Texture Units: 16
- Geometry Shader Texture Units: 32
- Max Texture Size: 8192×8192
- Max Anisotropic Filtering Value: X16.0
- Max Point Sprite Size: 8192.0
- Max Dynamic Lights: 8
- Max Viewport Size: 8192×8192
- Max Vertex Uniform Components: 1024
- Max Fragment Uniform Components: 1024
- Max Geometry Uniform Components: 4096
- Max Varying Float: 64
- Max Vertex Bindable Uniforms: 15
- Max Fragment Bindable Uniforms: 15
- Max Geometry Bindable Uniforms: 15
- Multiple Render Targets / Max draw buffers: 8
- MSAA: 1X
- MSAA: 2X
- MSAA: 4X
- MSAA: 8X

- OpenGL Extensions: 157 extensions:

  • GL_AMDX_vertex_shader_tessellator
  • GL_AMD_draw_buffers_blend
  • GL_AMD_performance_monitor
  • GL_AMD_texture_texture4
  • GL_AMD_vertex_shader_tessellator
  • GL_ARB_color_buffer_float
  • GL_ARB_compatibility
  • GL_ARB_copy_buffer
  • GL_ARB_depth_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_framebuffer_object
  • GL_ARB_framebuffer_sRGB
  • GL_ARB_geometry_shader4
  • GL_ARB_half_float_pixel
  • GL_ARB_half_float_vertex
  • GL_ARB_instanced_arrays
  • GL_ARB_map_buffer_range
  • 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_shader_objects
  • GL_ARB_shader_texture_lod
  • GL_ARB_shading_language_100
  • GL_ARB_shadow
  • GL_ARB_shadow_ambient
  • GL_ARB_texture_border_clamp
  • GL_ARB_texture_buffer_object
  • GL_ARB_texture_compression
  • GL_ARB_texture_compression_rgtc
  • GL_ARB_texture_cube_map
  • 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_mirrored_repeat
  • GL_ARB_texture_non_power_of_two
  • GL_ARB_texture_rectangle
  • GL_ARB_texture_rg
  • GL_ARB_texture_snorm
  • GL_ARB_transpose_matrix
  • GL_ARB_uniform_buffer_object
  • 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_envmap_bumpmap
  • GL_ATI_fragment_shader
  • GL_ATI_meminfo
  • GL_ATI_separate_stencil
  • GL_ATI_texture_compression_3dc
  • GL_ATI_texture_env_combine3
  • GL_ATI_texture_float
  • GL_ATI_texture_mirror_once
  • 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_copy_buffer
  • GL_EXT_copy_texture
  • 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_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_specular_color
  • GL_EXT_shadow_funcs
  • GL_EXT_stencil_wrap
  • GL_EXT_subtexture
  • GL_EXT_texgen_reflection
  • 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_add
  • 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_rectangle
  • GL_EXT_texture_sRGB
  • GL_EXT_texture_shared_exponent
  • GL_EXT_texture_snorm
  • GL_EXT_texture_swizzle
  • GL_EXT_transform_feedback
  • GL_EXT_vertex_array
  • GL_EXT_vertex_array_bgra
  • GL_IBM_texture_mirrored_repeat
  • GL_KTX_buffer_region
  • GL_NV_blend_square
  • GL_NV_conditional_render
  • GL_NV_copy_depth_to_color
  • GL_NV_explicit_multisample
  • GL_NV_primitive_restart
  • GL_NV_texgen_reflection
  • GL_SGIS_generate_mipmap
  • GL_SGIS_texture_edge_clamp
  • GL_SGIS_texture_lod
  • GL_SUN_multi_draw_arrays
  • GL_WIN_swap_hint
  • WGL_ARB_extensions_string
  • WGL_ARB_pixel_format
  • WGL_ATI_pixel_format_float
  • WGL_ARB_pixel_format_float
  • WGL_ARB_multisample
  • WGL_EXT_swap_control
  • WGL_ARB_pbuffer
  • WGL_ARB_render_texture
  • WGL_ARB_make_current_read
  • WGL_EXT_extensions_string
  • WGL_ARB_buffer_region
  • WGL_EXT_framebuffer_sRGB
  • WGL_ATI_render_texture_rectangle
  • WGL_EXT_pixel_format_packed_float
  • WGL_I3D_genlock
  • WGL_NV_swap_group
  • WGL_ARB_create_context
  • WGL_AMD_gpu_association
  • WGL_AMDX_gpu_association

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

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

[via]




Geeks3D.com

↑ Grab this Headline Animator