Indirect OpenGL -- partially working?

L. A. Walsh freedesktop at tlinx.org
Thu Jun 16 00:05:28 UTC 2016





Thomas Lübking wrote:
> On Tue, May 31, 2016 at 08:33:14AM -0700, L. A. Walsh wrote:
>> Glynn Clements wrote:
>>> L. A. Walsh wrote:
>>>
>>>> I have sometimes gotten some GLX programs to work for a short while,
>>>> but more often than not, I don't get them to work at all.
>>>
>>> The most likely reason for this is that the program needs a later
>>> version of OpenGL than Cygwin's X server provides.
>> ----
>>   Hmmm....what does this mean, then?
>> OpenGL vendor string: NVIDIA Corporation
>> OpenGL renderer string: GeForce GTX 590/PCIe/SSE2
>> OpenGL version string: 1.4 (4.5.0 NVIDIA 355.98)
>
> Indirect GL is confined to GL 1.4 (ie. fixed function path, notably no
> glsl)
> The driver and GPU support 4.5, but only on direct contexts.
>
> You should check whether indirect GL works generally (there're somet
> pitfalls), ie. whether glxgears works.
> If so, you best contact the authors of the failing GL clients and ask
> whether they provide a fixed function path (and how to select it)
----
Glx gears draws the gears but they don't move.

Tried a different demo -- glxspheres:


Changing that -- glxgears still doesn't work any better, but glxsphere
does.. puts up some 3d-shaded rings of spheres with the rings rotating
in opposite direction of adjacent ones.

On the client it says:
>  glxspheres           
Polygons in scene: 62464
libGL error: failed to load driver: swrast
Visual ID of window: 0x18b
Context is Indirect
OpenGL Renderer: GeForce GTX 590/PCIe/SSE2
1614.630126 frames/sec - 1801.927221 Mpixels/sec
59.859895 frames/sec - 66.803643 Mpixels/sec
59.855285 frames/sec - 66.798498 Mpixels/sec
60.328300 frames/sec - 67.326383 Mpixels/sec
^C
----

(note, my monitor is LCD, so 60Hz is about the max for it).

I seem to be getting a bit more debug info on the client side from
glxinfo -- and it seems to be using indirect rendering.


Not sure what to make of this since glxgears doesn't work --seems
that should be pretty simple, and glxspheres looks more complicated, but
it does work?  


At least for glxpheres, it's running about as fast as possible
for the screen refresh rate..

Why is it using a an SGI glx on the server (where cygwinX is running)?
Does that just happen to be the cygwin X-server's included
glx lib or a default -- why would it be limited to 1.4?  Is that
maybe a MS-supplied GLX lib (that might explain some things as they'd
prefer people using directX), but still not sure where that 1.4 lib
is...


>  LIBGL_DEBUG=verbose glxinfo

libGL: OpenDriver: trying /usr/lib64/dri/tls/swrast_dri.so
libGL: OpenDriver: trying /usr/lib64/dri/swrast_dri.so
libGL: Can't open configuration file /home/law/.drirc: No such file or 
directory.
libGL: Can't open configuration file /home/law/.drirc: No such file or 
directory.
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast
name of display: athenae:0
display: athenae:0  screen: 0
direct rendering: No (If you want to find out why, try setting 
LIBGL_DEBUG=verbose)
server glx vendor string: SGI
server glx version string: 1.4
server glx extensions:
    GLX_ARB_multisample, GLX_EXT_import_context, GLX_EXT_visual_info,
    GLX_EXT_visual_rating, GLX_MESA_copy_sub_buffer, GLX_OML_swap_method,
    GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer,
    GLX_SGI_make_current_read, GLX_SGI_swap_control
client glx vendor string: Mesa Project and SGI
client glx version string: 1.4
client glx extensions:
    GLX_ARB_create_context, GLX_ARB_create_context_profile,
    GLX_ARB_create_context_robustness, GLX_ARB_fbconfig_float,
    GLX_ARB_framebuffer_sRGB, GLX_ARB_get_proc_address, 
GLX_ARB_multisample,
    GLX_EXT_buffer_age, GLX_EXT_create_context_es2_profile,
    GLX_EXT_fbconfig_packed_float, GLX_EXT_framebuffer_sRGB,
    GLX_EXT_import_context, GLX_EXT_texture_from_pixmap, 
GLX_EXT_visual_info,
    GLX_EXT_visual_rating, GLX_INTEL_swap_event, GLX_MESA_copy_sub_buffer,
    GLX_MESA_multithread_makecurrent, GLX_MESA_query_renderer,
    GLX_MESA_swap_control, GLX_OML_swap_method, GLX_OML_sync_control,
    GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer,
    GLX_SGIX_visual_select_group, GLX_SGI_make_current_read,
    GLX_SGI_swap_control, GLX_SGI_video_sync
GLX version: 1.4
GLX extensions:
    GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_import_context,
    GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_MESA_copy_sub_buffer,
    GLX_MESA_multithread_makecurrent, GLX_OML_swap_method,
    GLX_SGIS_multisample, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer,
    GLX_SGI_make_current_read, GLX_SGI_swap_control
OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: GeForce GTX 590/PCIe/SSE2
OpenGL version string: 1.4 (4.5.0 NVIDIA 355.98)
OpenGL extensions:
    GL_ARB_depth_texture, GL_ARB_draw_buffers, GL_ARB_fragment_program,
    GL_ARB_fragment_program_shadow, 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_crossbar, GL_ARB_texture_env_dot3,
    GL_ARB_texture_mirrored_repeat, GL_ARB_texture_non_power_of_two,
    GL_ARB_texture_rectangle, GL_ARB_transpose_matrix, 
GL_ARB_vertex_program,
    GL_ARB_window_pos, GL_ATI_draw_buffers, GL_ATI_texture_mirror_once,
    GL_EXT_abgr, GL_EXT_bgra, GL_EXT_blend_color,
    GL_EXT_blend_equation_separate, GL_EXT_blend_func_separate,
    GL_EXT_blend_minmax, GL_EXT_blend_subtract, GL_EXT_draw_range_elements,
    GL_EXT_fog_coord, GL_EXT_framebuffer_object, GL_EXT_multi_draw_arrays,
    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_two_side, GL_EXT_stencil_wrap,
    GL_EXT_texture3D, GL_EXT_texture_compression_dxt1,
    GL_EXT_texture_compression_s3tc, 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_lod, GL_EXT_texture_lod_bias, 
GL_EXT_texture_mirror_clamp,
    GL_EXT_texture_object, GL_EXT_texture_rectangle, GL_EXT_vertex_array,
    GL_IBM_texture_mirrored_repeat, GL_INGR_blend_func_separate,
    GL_NV_blend_square, GL_NV_depth_clamp, GL_NV_fog_distance,
    GL_NV_fragment_program2, GL_NV_fragment_program_option,
    GL_NV_light_max_exponent, GL_NV_multisample_filter_hint,
    GL_NV_point_sprite, GL_NV_texgen_reflection,
    GL_NV_texture_compression_vtc, GL_NV_texture_env_combine4,
    GL_NV_texture_rectangle, GL_NV_vertex_program2_option,
    GL_NV_vertex_program3, 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_SUN_multi_draw_arrays, GL_SUN_slice_accum

98 GLX Visuals
...
323 GLXFBConfigs:
...



More information about the xorg mailing list