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.




Geeks3D.com

↑ Grab this Headline Animator