All,

 

I have more information on my original question.

 

Running glxinfo, I see:
    GL_MAX_ELEMENTS_VERTICES = -1

    GL_MAX_ELEMENTS_INDICES = -1

 

I found an old report they may be relevant:

http://www.mail-archive.com/mesa-bugs@mesa3d.org/msg00227.html

 

I also discovered that glPushClientAttrib will cause a crash:

indirect_vertex_array.c:1359: __indirect_glTexCoordPointer: Assertion `a != ((void *)0)' failed.

 

I can work around this problem by not calling glPushClientAttrib.

 

Is there any other way to determine the count parameter limit for glDrawElements?

What is a reasonable test to determine when it is safe to use vertex arrays in Mesa?

Are there any other known issues with vertex arrays in Mesa?

 

We have to support currently deployed versions. I cannot require users to update to Mesa 6.5. I can avoid using vertex arrays, but I need to come up with a reasonable runtime test. Any suggestions?

 

Thanks,

Roy

 

>glxinfo –l

name of display: :0.0

display: :0  screen: 0

direct rendering: No

server glx vendor string: SGI

server glx version string: 1.2

server glx extensions:

    GLX_ARB_multisample, GLX_EXT_visual_info, GLX_EXT_visual_rating,

    GLX_EXT_import_context, GLX_OML_swap_method, GLX_SGI_make_current_read,

    GLX_SGIS_multisample, GLX_SGIX_hyperpipe, GLX_SGIX_swap_barrier,

    GLX_SGIX_fbconfig

client glx vendor string: SGI

client glx version string: 1.4

client glx extensions:

    GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_import_context,

    GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_MESA_allocate_memory,

    GLX_MESA_copy_sub_buffer, GLX_MESA_swap_control,

    GLX_MESA_swap_frame_usage, GLX_OML_swap_method, GLX_OML_sync_control,

    GLX_SGI_make_current_read, GLX_SGI_swap_control, GLX_SGI_video_sync,

    GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer,

    GLX_SGIX_visual_select_group, GLX_MESA_render_texture

GLX extensions:

    GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_import_context,

    GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_OML_swap_method,

    GLX_SGI_make_current_read, GLX_SGIS_multisample, GLX_SGIX_fbconfig

OpenGL vendor string: Mesa project: www.mesa3d.org

OpenGL renderer string: Mesa GLX Indirect

OpenGL version string: 1.2 (1.5 Mesa 6.4.1)

OpenGL extensions:

    GL_ARB_depth_texture, GL_ARB_imaging, GL_ARB_multitexture,

    GL_ARB_point_parameters, GL_ARB_point_sprite, GL_ARB_shadow,

    GL_ARB_shadow_ambient, GL_ARB_texture_border_clamp,

    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_mirrored_repeat,

    GL_ARB_texture_rectangle, GL_ARB_transpose_matrix, GL_ARB_window_pos,

    GL_EXT_abgr, GL_EXT_bgra, GL_EXT_blend_color, GL_EXT_blend_func_separate,

    GL_EXT_blend_logic_op, GL_EXT_blend_minmax, GL_EXT_blend_subtract,

    GL_EXT_clip_volume_hint, GL_EXT_copy_texture, GL_EXT_draw_range_elements,

    GL_EXT_fog_coord, GL_EXT_multi_draw_arrays, GL_EXT_packed_pixels,

    GL_EXT_point_parameters, GL_EXT_polygon_offset, GL_EXT_rescale_normal,

    GL_EXT_secondary_color, GL_EXT_separate_specular_color,

    GL_EXT_shadow_funcs, GL_EXT_stencil_two_side, GL_EXT_stencil_wrap,

    GL_EXT_subtexture, GL_EXT_texture, GL_EXT_texture3D,

    GL_EXT_texture_edge_clamp, GL_EXT_texture_env_add,

    GL_EXT_texture_env_combine, GL_EXT_texture_env_dot3,

    GL_EXT_texture_lod_bias, GL_EXT_texture_object, GL_EXT_texture_rectangle,

    GL_EXT_vertex_array, GL_APPLE_packed_pixels, GL_ATI_texture_env_combine3,

    GL_ATI_texture_mirror_once, GL_ATIX_texture_env_combine3,

    GL_HP_occlusion_test, GL_IBM_texture_mirrored_repeat,

    GL_INGR_blend_func_separate, GL_MESA_pack_invert, GL_MESA_ycbcr_texture,

    GL_NV_blend_square, GL_NV_point_sprite, GL_NV_texgen_reflection,

    GL_NV_texture_rectangle, GL_SGIS_generate_mipmap,

    GL_SGIS_texture_border_clamp, GL_SGIS_texture_edge_clamp,

    GL_SGIS_texture_lod, GL_SGIX_depth_texture, GL_SGIX_shadow,

    GL_SGIX_shadow_ambient, GL_SUN_multi_draw_arrays

OpenGL limits:

    GL_MAX_ATTRIB_STACK_DEPTH = 16

    GL_MAX_CLIENT_ATTRIB_STACK_DEPTH = 16

    GL_MAX_CLIP_PLANES = 6

    GL_MAX_COLOR_MATRIX_STACK_DEPTH = 4

    GL_MAX_ELEMENTS_VERTICES = -1

    GL_MAX_ELEMENTS_INDICES = -1

    GL_MAX_EVAL_ORDER = 30

    GL_MAX_LIGHTS = 8

    GL_MAX_LIST_NESTING = 64

    GL_MAX_MODELVIEW_STACK_DEPTH = 32

    GL_MAX_NAME_STACK_DEPTH = 64

    GL_MAX_PIXEL_MAP_TABLE = 256

    GL_MAX_PROJECTION_STACK_DEPTH = 32

    GL_MAX_TEXTURE_STACK_DEPTH = 10

    GL_MAX_TEXTURE_SIZE = 2048

    GL_MAX_3D_TEXTURE_SIZE = 2048

    GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB = 2048

    GL_MAX_RECTANGLE_TEXTURE_SIZE_NV = 2048

    GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB = 0

    GL_MAX_TEXTURE_UNITS_ARB = 8

    GL_MAX_TEXTURE_LOD_BIAS_EXT = 11

    GL_MAX_VIEWPORT_DIMS = 4096, 4096

    GL_ALIASED_LINE_WIDTH_RANGE = 1, 10

    GL_SMOOTH_LINE_WIDTH_RANGE = 1, 10

    GL_ALIASED_POINT_SIZE_RANGE = 1, 20

    GL_SMOOTH_POINT_SIZE_RANGE = 1, 20

 

   visual  x  bf lv rg d st colorbuffer ax dp st accumbuffer  ms  cav

 id dep cl sp sz l  ci b ro  r  g  b  a bf th cl  r  g  b  a ns b eat

----------------------------------------------------------------------

0x23 24 tc  0 24  0 r  y  .  8  8  8  0  0 16  0  0  0  0  0  0 0 None

0x24 24 tc  0 24  0 r  y  .  8  8  8  0  0 16  8 16 16 16  0  0 0 None

0x25 24 tc  0 32  0 r  y  .  8  8  8  8  0 16  8 16 16 16 16  0 0 None

0x26 24 tc  0 32  0 r  .  .  8  8  8  8  0 16  8 16 16 16 16  0 0 None

0x27 24 dc  0 24  0 r  y  .  8  8  8  0  0 16  0  0  0  0  0  0 0 None

0x28 24 dc  0 24  0 r  y  .  8  8  8  0  0 16  8 16 16 16  0  0 0 None

0x29 24 dc  0 32  0 r  y  .  8  8  8  8  0 16  8 16 16 16 16  0 0 None

0x2a 24 dc  0 32  0 r  .  .  8  8  8  8  0 16  8 16 16 16 16  0 0 None