ARB Multisampling on Linux/GeForce FX

I need to enable multisampling for my offscreen pbuffers, and for that I need to use multisampling as supported by GLX_ARB_multisample extension.

However I’m not seeing any visuals capable of multisampling!

I have tried various systems with various drivers (4363 and 5336), but I typically get output from glxinfo -t like this:

name of display: :0.0
display: :0 screen: 0
direct rendering: Yes
server glx vendor string: NVIDIA Corporation
server glx version string: 1.3
server glx extensions:
GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_SGIX_fbconfig,
GLX_SGIX_pbuffer, GLX_SGI_video_sync, GLX_SGI_swap_control,
GLX_ARB_multisample, GLX_NV_float_buffer
client glx vendor string: NVIDIA Corporation
client glx version string: 1.3
client glx extensions:
GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_visual_info,
GLX_EXT_visual_rating, GLX_EXT_import_context, GLX_SGI_video_sync,
GLX_NV_swap_group, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer,
GLX_SGI_swap_control, GLX_NV_float_buffer
GLX extensions:
GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_SGIX_fbconfig,
GLX_SGIX_pbuffer, GLX_SGI_video_sync, GLX_SGI_swap_control,
GLX_ARB_multisample, GLX_NV_float_buffer, GLX_ARB_get_proc_address
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: Quadro FX 500/AGP/SSE/3DNOW!
OpenGL version string: 1.4.1 NVIDIA 53.36
OpenGL extensions:
GL_ARB_depth_texture, GL_ARB_fragment_program, GL_ARB_imaging,
GL_ARB_multisample, GL_ARB_multitexture, GL_ARB_occlusion_query,
GL_ARB_point_parameters, GL_ARB_point_sprite, GL_ARB_shadow,
GL_ARB_texture_border_clamp, GL_ARB_texture_compression,
GL_ARB_texture_cube_map, GL_ARB_texture_env_add,
GL_ARB_texture_env_combine, GL_ARB_texture_env_dot3,
GL_ARB_texture_mirrored_repeat, GL_ARB_transpose_matrix,
GL_ARB_vertex_buffer_object, GL_ARB_vertex_program, GL_ARB_window_pos,
GL_S3_s3tc, GL_EXT_texture_env_add, GL_EXT_abgr, GL_EXT_bgra,
GL_EXT_blend_color, GL_EXT_blend_func_separate, GL_EXT_blend_minmax,
GL_EXT_blend_subtract, GL_EXT_compiled_vertex_array,
GL_EXT_draw_range_elements, GL_EXT_fog_coord, GL_EXT_multi_draw_arrays,
GL_EXT_packed_pixels, GL_EXT_paletted_texture, GL_EXT_point_parameters,
GL_EXT_rescale_normal, GL_EXT_secondary_color,
GL_EXT_separate_specular_color, GL_EXT_shadow_funcs,
GL_EXT_shared_texture_palette, GL_EXT_stencil_two_side,
GL_EXT_stencil_wrap, GL_EXT_texture3D, 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_lod,
GL_EXT_texture_lod_bias, GL_EXT_texture_object, GL_EXT_vertex_array,
GL_HP_occlusion_test, GL_IBM_rasterpos_clip,
GL_IBM_texture_mirrored_repeat, GL_KTX_buffer_region, GL_NV_blend_square,
GL_NV_copy_depth_to_color, GL_NV_depth_clamp, GL_NV_fence,
GL_NV_float_buffer, GL_NV_fog_distance, GL_NV_fragment_program,
GL_NV_half_float, GL_NV_light_max_exponent, GL_NV_multisample_filter_hint,
GL_NV_occlusion_query, GL_NV_packed_depth_stencil, GL_NV_pixel_data_range,
GL_NV_point_sprite, GL_NV_primitive_restart, GL_NV_register_combiners,
GL_NV_register_combiners2, GL_NV_texgen_reflection,
GL_NV_texture_compression_vtc, GL_NV_texture_env_combine4,
GL_NV_texture_expand_normal, GL_NV_texture_rectangle,
GL_NV_texture_shader, GL_NV_texture_shader2, GL_NV_texture_shader3,
GL_NV_vertex_array_range, GL_NV_vertex_array_range2, GL_NV_vertex_program,
GL_NV_vertex_program1_1, GL_NV_vertex_program2, GL_NVX_ycrcb,
GL_SGIS_generate_mipmap, GL_SGIS_texture_lod, GL_SGIX_depth_texture,
GL_SGIX_shadow, GL_SUN_slice_accum
glu version: 1.3
glu extensions:
GLU_EXT_nurbs_tessellator, GLU_EXT_object_space_tess

Vis Vis Visual Trans buff lev render DB ste r g b a aux dep ste accum buffers MS MS
ID Depth Type parent size el type reo sz sz sz sz buf th ncl r g b a num bufs

0x21 24 TrueColor 0 32 0 rgba 1 0 8 8 8 0 0 24 8 16 16 16 16 0 0
0x22 24 DirectColor 0 32 0 rgba 1 0 8 8 8 0 0 24 8 16 16 16 16 0 0
0x23 24 TrueColor 0 32 0 rgba 1 0 8 8 8 8 0 24 8 16 16 16 16 0 0
0x24 24 TrueColor 0 32 0 rgba 0 0 8 8 8 0 0 24 8 16 16 16 16 0 0
0x25 24 TrueColor 0 32 0 rgba 0 0 8 8 8 8 0 24 8 16 16 16 16 0 0
0x26 24 TrueColor 0 32 0 rgba 1 0 8 8 8 0 0 0 0 16 16 16 16 0 0
0x27 24 TrueColor 0 32 0 rgba 1 0 8 8 8 8 0 0 0 16 16 16 16 0 0
0x28 24 TrueColor 0 32 0 rgba 0 0 8 8 8 0 0 0 0 16 16 16 16 0 0
0x29 24 TrueColor 0 32 0 rgba 0 0 8 8 8 8 0 0 0 16 16 16 16 0 0
0x2a 24 TrueColor 0 32 0 rgba 1 0 8 8 8 0 0 24 8 16 16 16 16 0 0
0x2b 24 TrueColor 0 32 0 rgba 1 0 8 8 8 8 0 24 8 16 16 16 16 0 0
0x2c 24 TrueColor 0 32 0 rgba 1 0 8 8 8 0 0 24 8 16 16 16 16 0 0
0x2d 24 TrueColor 0 32 0 rgba 1 0 8 8 8 8 0 24 8 16 16 16 16 0 0
0x2e 24 TrueColor 0 32 0 rgba 1 0 8 8 8 0 0 24 8 16 16 16 16 0 0
0x2f 24 TrueColor 0 32 0 rgba 1 0 8 8 8 8 0 24 8 16 16 16 16 0 0
0x30 24 TrueColor 0 32 0 rgba 1 0 8 8 8 0 0 24 8 16 16 16 16 0 0
0x31 24 TrueColor 0 32 0 rgba 1 0 8 8 8 8 0 24 8 16 16 16 16 0 0
0x32 24 DirectColor 0 32 0 rgba 1 0 8 8 8 8 0 24 8 16 16 16 16 0 0
0x33 24 DirectColor 0 32 0 rgba 0 0 8 8 8 0 0 24 8 16 16 16 16 0 0
0x34 24 DirectColor 0 32 0 rgba 0 0 8 8 8 8 0 24 8 16 16 16 16 0 0
0x35 24 DirectColor 0 32 0 rgba 1 0 8 8 8 0 0 0 0 16 16 16 16 0 0
0x36 24 DirectColor 0 32 0 rgba 1 0 8 8 8 8 0 0 0 16 16 16 16 0 0
0x37 24 DirectColor 0 32 0 rgba 0 0 8 8 8 0 0 0 0 16 16 16 16 0 0
0x38 24 DirectColor 0 32 0 rgba 0 0 8 8 8 8 0 0 0 16 16 16 16 0 0
0x39 24 DirectColor 0 32 0 rgba 1 0 8 8 8 0 0 24 8 16 16 16 16 0 0
0x3a 24 DirectColor 0 32 0 rgba 1 0 8 8 8 8 0 24 8 16 16 16 16 0 0
0x3b 24 DirectColor 0 32 0 rgba 1 0 8 8 8 0 0 24 8 16 16 16 16 0 0
0x3c 24 DirectColor 0 32 0 rgba 1 0 8 8 8 8 0 24 8 16 16 16 16 0 0
0x3d 24 DirectColor 0 32 0 rgba 1 0 8 8 8 0 0 24 8 16 16 16 16 0 0
0x3e 24 DirectColor 0 32 0 rgba 1 0 8 8 8 8 0 24 8 16 16 16 16 0 0
0x3f 24 DirectColor 0 32 0 rgba 1 0 8 8 8 0 0 24 8 16 16 16 16 0 0
0x40 24 DirectColor 0 32 0 rgba 1 0 8 8 8 8 0 24 8 16 16 16 16 0 0

Can anyone tell me why the QuadroFX 500 is not supporting any multisample buffers? I also get the same result with GeForceFX 5600 cards.

However, I have seen posts on the net of glxinfo from people that have similar cards, and they do
have visuals with multisample buffers.

Does anyone know what is going on?

Thanks for any help,

  • Torgeir

You need to set the environment variable, __GL_FSAA_MODE. Below are the possible settings:

setenv __GL_FSAA_MODE 4
#__GL_FSAA_MODE sets multi-sampling mode.

0 FSAA disabled

1 2x Bilinear Multisampling

2 2x Quincunx Multisampling

3 FSAA disabled

4 4x Bilinear Multisampling

5 4x Gaussian Multisampling

6 2x Bilinear Multisampling by 4x Supersampling

7 4x Bilinear Multisampling by 4x Supersampling

Here are some other environment variables you may be interested in.

setenv __GL_NV30_EMULATE 1
setenv __GL_SYNC_TO_VBLANK 1

Just add the environment variables to your .tcshrc, .cshrc, etc.

Regards,
Ben

This topic was automatically closed 183 days after the last reply. New replies are no longer allowed.