ATI Catalyst 9.6 (BETA): A Stack of New OpenGL Extensions!

AMD/ATI graphics drivers

OpenGL 3

Catalyst 9.6 (beta version at the time of writing) seems to offer a big step ahead in the OpenGL side. This new set of graphics drivers for Radeon 2k/3k/4k offers around 10 new extensions:

  • GL_AMD_draw_buffers_blend – not yet documented. I guess this extension concerns the possibility to do blending with FBO.
  • GL_ARB_copy_buffer: This extension provides a mechanism to do an accelerated copy from one buffer object to another. This may be useful to load buffer objects in a loading thread while minimizing cost and synchronization effort in the rendering thread. GL_ARB_copy_buffer introduces a new function called CopyBufferSubData(). This functionality was already exposed via GL_EXT_copy_buffer. This extenion is not (yet) exposed in the latest ForceWare drivers.
  • GL_ARB_texture_snorm / GL_EXT_texture_snorm – not yet documented
  • GL_ATI_texture_mirror_once
  • GL_EXT_draw_instanced: this is the same extension than GL_ARB_draw_instanced already supported in previous drivers. This extension allows Geometry Instancing, (rendering of multiple instances of an object with a single draw call). To see geometry instancing in action, start GPU Caps Viewer, and launch the demo “HW Geometry Instancing”.
  • GL_EXT_texture_lod – not yet documented
  • GL_IBM_texture_mirrored_repeat
  • GL_NV_primitive_restart
  • GL_SUN_multi_draw_arrays
  • WGL_AMD_gpu_association: cool this, extension is at last documented. So let’s see what the spec says: There currently is no way for applications to efficiently use GPU resources in systems that contain more than one GPU. Vendors have provided methods that attempt to split the workload for an application among the available GPU resources. This has proven to be very inefficient because most applications were never written with these sorts of optimizations in mind. This extension provides a mechanism for applications to explicitly use the GPU resources on a given system individually. By providing this functionality, a driver allows applications to make appropriate decisions regarding where and when to distribute rendering tasks.
    This extension has the same role than NVIDIA’s WGL_NV_gpu_affinity: an application can bind an OpenGL render context to a specific GPU (when several GPUs are present). But AMD extension differs from NVIDIA one by the fact it’s available on gamer video cards while WGL_NV_gpu_affinity is present only on professional cards (Quadro).

All GPU Caps Viewer’s tech demos work perfectly on a Radeon HD 4850 + Catalyst 9.6 beta.

GPU Caps Viewer - Catalyst 9.6

GPU Caps Viewer - Catalyst 9.6

Seems the FurMark‘s optimization tweak has… disappeared. Or the beta version of the new FurMark I’m working on is not recognized by Cat9.6… More on this later.

Graphics driver information:
– Operating System: Windows XP 32-bit SP2
– Drivers Version: 8.620.0.0 – Catalyst 09.6 (5-5-2009)
– ATI Catalyst Version String: 09.6
– ATI Catalyst Release Version String: 8.62-090505a-080607E-ATI
– OpenGL Renderer: ATI Radeon HD 4800 Series
– OpenGL Version: 3.0
– GLSL (OpenGL Shading Language) Version: 1.30
– ARB Texture Units: 8
– Vertex Shader Texture Units: 16
– Pixel Shader Texture Units: 32
– Geometry Shader Texture Units: 0
– 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: 512
– Max Varying Float: 68
– Max Vertex Bindable Uniforms: 15
– Max Fragment Bindable Uniforms: 15
– Max Geometry Bindable Uniforms: 0
– MSAA: 1X
– MSAA: 2X
– MSAA: 4X
– MSAA: 8X

Interesting… seems AMD is updating seriously the OpenGL part of Catalyst. Catalyst 9.6 starts to support geometry shader by adding 512 geometry uniforms. In previous version, this value was 0. And compared to previous versions, the number of vertex and fragment uniforms has been multiplied by 2: 1024.

OpenGL Extensions: 148 extensions

  • GL_AMDX_vertex_shader_tessellator
  • GL_AMD_draw_buffers_blend
  • GL_AMD_performance_monitor
  • GL_AMD_texture_texture4
  • GL_ARB_color_buffer_float
  • 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_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_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_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_point_parameters
  • 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_IBM_texture_mirrored_repeat
  • GL_KTX_buffer_region
  • GL_NV_blend_square
  • GL_NV_conditional_render
  • GL_NV_copy_depth_to_color
  • 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.

11 thoughts on “ATI Catalyst 9.6 (BETA): A Stack of New OpenGL Extensions!”

  1. Matumbo

    Geometry Shaders with OpenGL on ATI cards ? Fake !
    I’m glad they finally heard my prayers, that was a nonsense to only give access to GS with Direct3D.
    It seems like everytime I’m about to drop my ATI card to an NVidia one, they make just that little step that make me say “hum, ok, one last chance ATI ! I’m watching you now ! Next time…”.

  2. Pingback: [TPU]Catalyst 9.6(unoficially) out - Page 2 - -

  3. psolord

    So….better openGL support means we will see better Linux Compiz support? Have you tried the x server video decoding in Compiz?

  4. psolord

    Errmmm….the exact correct term is Compiz Fuzion if i am not mistaken right? Linux noob! Less than noob actually. I cosnider myself a coob. Curious noob wanna be! lol

  5. WheretIB

    More like 5 new extensions and 10 new lines in extension list.

    “I’m glad they finally heard my prayers, that was a nonsense to only give access to GS with Direct3D.”
    They’re making GS in GL for the third (fourth?) month now. In Catalyst 9.5 you can already successfully compile GS, and bind it. Too bad it’s skipped when rendering. Maybe a few months more and it’ll be ready.

  6. Bakura

    Okej, for me it just lacks GL_ARB_uniform_buffer_object and after that, it’ll be perfect ^^.

  7. Pingback: ATI Catalyst 9.6 WHQL Graphics Drivers Available | The Geeks Of 3D - 3D Tech News

  8. Pingback: Νέοι Drivers – ATI Catalyst 9.6 |

  9. chris leaper

    So what are the chances of these drivers fixing the CrossFire issue in Fallout 3?
    Also would like to know if there are any updates after catalyst 9.3 for the Radeon X1950 Pro cards on WinXP x64?
    – Seems that AMD isn’t producing updated drivers for them anymore, but what about 3rd party ones?

    Advice would be great,

  10. JeGX Post Author

    The latest driver for the Radeon X1950 is Catalyst 9.4. ATI removed the support of all older cards in Catalyst 9.5. Maybe with a modified inf file, you can use Catalyst 9.5+ with your card…

  11. Aaron

    hmmm i still dont see this GL_AMD_texture_texture4 i got all the others though
    just not that extension funny maybe HD2600XT’s don’t support that

Comments are closed.