Jogl slow with all builds atfer jsr beta 2

Hello again,
as I already posted in the Xlib thread the slowlyness Im expieriencing is due to the jogl version I use. With beta 1 everything works fine and fast but if I switch to a newer version it runs like jogl is using this mesa gl thing (software acceleration))- slow like hell.
This problem only happens on my laptop- no matter which ati driver version I use. I thinks its directly connected to my 9700 mobility.

Have you tried the current nightly build? We fixed some problems with DRI drivers on X11 platforms not working with JOGL in the recent (beta 3 and later) builds.

What OS are you running?

What is the output from java demos.gears.Gears? GL_VENDOR, etc.?

Gonna check it out now…

No change. But I just spoke to one of my project members and he mentioned he still got the XLib issue when using a GLCanvas- but if he uses a GLJPanel the XLib thing works. Maybe the speed problems have the same cause?

Well as I thought. jogl uses mesa instead of fglrx- see the picture below (the last 3 lines in the console).

Well here are my specs:
ATI 9700 mobility w 64MB
Fedora Core 5 with kernel 2.6.16-1.2080

And glxinfo says this:

name of display: :0.0
display: :0  screen: 0
direct rendering: Yes
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: ATI
client glx version string: 1.3
client glx extensions:
    GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_EXT_import_context, 
    GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_ATI_pixel_format_float, 
    GLX_ATI_render_texture
GLX version: 1.2
GLX extensions:
    GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_EXT_import_context, 
    GLX_ARB_multisample
OpenGL vendor string: ATI Technologies Inc.
OpenGL renderer string: MOBILITY RADEON 9700 Generic
OpenGL version string: 2.0.5695 (8.23.7)
OpenGL extensions:
    GL_ARB_multitexture, GL_EXT_texture_env_add, GL_EXT_compiled_vertex_array, 
    GL_S3_s3tc, GL_ARB_depth_texture, GL_ARB_fragment_program, 
    GL_ARB_fragment_program_shadow, GL_ARB_fragment_shader, 
    GL_ARB_multisample, GL_ARB_occlusion_query, GL_ARB_point_parameters, 
    GL_ARB_point_sprite, GL_ARB_shader_objects, GL_ARB_shading_language_100, 
    GL_ARB_shadow, GL_ARB_shadow_ambient, 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_transpose_matrix, 
    GL_ARB_vertex_blend, GL_ARB_vertex_buffer_object, GL_ARB_vertex_program, 
    GL_ARB_vertex_shader, GL_ARB_window_pos, GL_ARB_draw_buffers, 
    GL_ATI_draw_buffers, GL_ATI_element_array, GL_ATI_envmap_bumpmap, 
    GL_ATI_fragment_shader, GL_ATI_map_object_buffer, GL_ATI_separate_stencil, 
    GL_ATI_texture_env_combine3, GL_ATI_texture_float, 
    GL_ATI_texture_mirror_once, GL_ATI_vertex_array_object, 
    GL_ATI_vertex_attrib_array_object, GL_ATI_vertex_streams, 
    GL_ATIX_texture_env_combine3, GL_ATIX_texture_env_route, 
    GL_ATIX_vertex_shader_output_point_size, 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_clip_volume_hint, 
    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_wrap, 
    GL_EXT_texgen_reflection, 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_bias, GL_EXT_texture_mirror_clamp, 
    GL_EXT_texture_object, GL_EXT_texture_rectangle, GL_EXT_vertex_array, 
    GL_EXT_vertex_shader, GL_HP_occlusion_test, GL_NV_blend_square, 
    GL_NV_occlusion_query, GL_NV_texgen_reflection, GL_SGI_color_matrix, 
    GL_SGIS_generate_mipmap, GL_SGIS_texture_border_clamp, 
    GL_SGIS_texture_edge_clamp, GL_SGIS_texture_lod, GL_SUN_multi_draw_arrays
glu version: 1.3
glu extensions:
    GLU_EXT_nurbs_tessellator, GLU_EXT_object_space_tess

Could you please download this jogl.jar and post to tell us whether it fixes the problem? If you could get us feedback one way or the other ASAP I’d appreciate it. I’ll hold the shipping of beta 4 until we resolve this issue.

Sorry, had to sleep a little bit :wink:

I used the jogl.jar from above and the latest nightly versions of the natives. No changes, still mesa.

Could you please provide some more logging output?

  1. Please provide all of the output of glxinfo on your machine, including the available visuals at the end of the output.

  2. If you use csh/tcsh, could you “setenv LIBGL_DEBUG verbose” (or if bash/etc, “export LIBGL_DEBUG=verbose”, I think) and post the output of your app with the following system properties set:
    -Djogl.debug.DRIHack -Djogl.debug.X11GLDrawableFactory -Djogl.debug.DefaultGLCapabilitiesChooser

  3. It would also help to know what the GL_VENDOR, etc. output is from demos.gears.Gears.

Also, what is the default screen depth of your machine? If it’s 16-bit, have you tried increasing it to 24/32-bit?

If you could please attach at least the first two log files as attachments to your post that would help track down the problem. Thanks.

Default depth is 24bit.

gears output will follow soon!

Here are the output of the gers demo (which makes me think that my system is the cause- but why does it run with the older versions?):

[predator@snark Desktop]$ java -Djava.library.path=/home/predator/workspace/SpheresOfConflict/lib -cp .:jogl.jar demos/gears/Gears
libGL: XF86DRIGetClientDriverName: 8.23.7 fglrx (screen 0)
libGL: OpenDriver: trying /usr/lib/dri/fglrx_dri.so
libGL error: dlopen /usr/lib/dri/fglrx_dri.so failed (/usr/lib/dri/fglrx_dri.so: cannot open shared object file: No such file or directory)
libGL error: unable to find driver: fglrx_dri.so
libGL: XF86DRIGetClientDriverName: 8.23.7 fglrx (screen 0)
libGL: OpenDriver: trying /usr/lib/dri/fglrx_dri.so
libGL error: dlopen /usr/lib/dri/fglrx_dri.so failed (/usr/lib/dri/fglrx_dri.so: cannot open shared object file: No such file or directory)
libGL error: unable to find driver: fglrx_dri.so
INIT GL IS: com.sun.opengl.impl.GLImpl
GL_VENDOR: Mesa project: www.mesa3d.org
GL_RENDERER: Mesa GLX Indirect
GL_VERSION: 1.2 (1.5 Mesa 6.4.2)

Could you run the Gears demo out of the JSR-231 beta 1 version of JOGL (jogl.jar, jogl-demos.jar, and the jogl natives) with LIBGL_DEBUG set to verbose and post that output as well?

While the program is running, could you figure out the process ID of the running java process (or any one of them, if you see multiple java processes – this is the behavior of older versions of the pthread library on Linux) and cat /proc/(pid)/maps? Could you post that output for both the JSR-231 beta 1 version of Gears as well as the current version of Gears?

Could you also post the output of “ls -l /usr/lib/libGL*”?

Thanks.

Output of the older gears with beta1 files:

 java -Djava.library.path=/home/predator/workspace/SpheresOfConflict/lib -cp .:jogl.jar demos/gears/Gears
libGL: XF86DRIGetClientDriverName: 8.23.7 fglrx (screen 0)
libGL: OpenDriver: trying /usr/X11R6/lib/modules/dri/fglrx_dri.so
libGL: XF86DRIGetClientDriverName: 8.23.7 fglrx (screen 0)
drmOpenByBusid: busid is PCI:1:0:0
drmOpenDevice: minor is 0
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is 7, (OK)
drmOpenByBusid: drmOpenMinor returns 7
drmOpenByBusid: drmGetBusid reports PCI:1:0:0
Can't open configuration file /etc/drirc: No such file or directory.
Can't open configuration file /home/predator/.drirc: No such file or directory.
libGL: XF86DRIGetClientDriverName: 8.23.7 fglrx (screen 0)
drmOpenByBusid: busid is PCI:1:0:0
drmOpenDevice: minor is 0
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is 9, (OK)
drmOpenByBusid: drmOpenMinor returns 9
drmOpenByBusid: drmGetBusid reports PCI:1:0:0
Can't open configuration file /etc/drirc: No such file or directory.
Can't open configuration file /home/predator/.drirc: No such file or directory.
INIT GL IS: com.sun.opengl.impl.GLImpl
GL_VENDOR: ATI Technologies Inc.
GL_RENDERER: MOBILITY RADEON 9700 Generic
GL_VERSION: 2.0.5695 (8.23.7)

ls…:

[predator@snark ~]$ ls -l /usr/lib/libGL*
lrwxrwxrwx 1 root root     10 22. Mär 15:17 /usr/lib/libGL.so -> libGL.so.1
lrwxrwxrwx 1 root root     12 22. Mär 15:12 /usr/lib/libGL.so.1 -> libGL.so.1.2
-rwxr-xr-x 1 root root 389244  1. Mär 14:11 /usr/lib/libGL.so.1.2
lrwxrwxrwx 1 root root     20 22. Mär 15:12 /usr/lib/libGLU.so.1 -> libGLU.so.1.3.060402
-rwxr-xr-x 1 root root 495716  1. Mär 14:11 /usr/lib/libGLU.so.1.3.060402

Map with current version:

EDIT: Well I just saw I made a mistake- I meant all version after beta 2 (the version which works was the one with BufferUtils instead of the new BufferUtil) ! Damn- sry :frowning:

Going asleep now…

Thanks for all the output. I see what the problem is; JOGL’s DRI hack is using an absolute path to libGL.so.1 and should be using a relative path. Could you please try this jogl.jar and indicate whether it fixes the problem?

It works! :smiley:

But only if I use the -Djogl.GLcontext… flag otherwise I get the XLib error.

Great. Thanks for helping to work through this. This fix has been checked in to the JOGL source tree and should be present in subsequent nightly builds as well as JSR-231 beta 4.

OK, I’ve checked in a workaround for this issue which will show up in nightly builds dated 4/4 and later. Please post if there still seems to be a problem.

With the latest nightly build everything works as it is supposed to ;D

Thanks for the support.