These are issues related to the Mesa library and OpenGL off-screen rendering.
Default OSMesa Crash
This is crash that happens with default OSMesa as distributed with Red Hat 9 and a brand new Debian.
xxx@yyy:~/j601$ locate Mesa /usr/X11R6/lib/libOSMesa.so.4 /usr/X11R6/lib/libOSMesa.so.4.0
J does not find_dll that. So one has to:
xxx@yyy:~/j601$ file /usr/lib/libOSMesa.so /usr/lib/libOSMesa.so: symbolic link to `/usr/X11R6/lib/libOSMesa.so.4'
Finally running OpenGL demo it crashes. Text from report:
Current thread (0x08320da0): JavaThread "AWT-EventQueue-0" [_thread_in_native, id=2639] siginfo:si_signo=11, si_errno=0, si_code=128, si_addr=0x00000000 Registers: EAX=0x00000000, EBX=0x4cfd0c44, ECX=0x0000454d, EDX=0x0000004d ESP=0xbe1fce64, EBP=0xbe1fce7c, ESI=0x4cfdb560, EDI=0xbe1fcea4 EIP=0x4cfbccae, CR2=0x00000000, EFLAGS=0x00010202 Top of Stack: (sp=0xbe1fce64) 0xbe1fce64: 3f800000 3f800000 3f800000 3f800000 0xbe1fce74: 00001d80 00001f80 be1fcfdc 4cfbc84b 0xbe1fce84: 4cfcdc60 4cfbc6d0 be1fcea4 4ce7f2d4 0xbe1fce94: 4ce7d000 be1fcea8 4008b4d8 be1fcf34 0xbe1fcea4: 4040c564 fffbfeff ffffffff 400ebc91 0xbe1fceb4: 4cfe8b77 be1fcd80 401aa39c 40033d00 0xbe1fcec4: 401aa340 08075a18 be1fccf0 4002bd7a 0xbe1fced4: 401aa350 00000050 401aa340 401a98c0 Instructions: (pc=0x4cfbccae) 0x4cfbcc9e: 00 00 80 3f 68 00 00 80 3f 68 00 00 80 3f 0f 10 0x4cfbccae: 0c 24 0f 5e c8 0f ae 55 fc c9 c3 90 90 90 90 90 Stack: [0xbe18e000,0xbe200000), sp=0xbe1fce64, free space=443k Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) C [libOSMesa.so+0x13fcae] C [libOSMesa.so+0x13f84b] C [libOSMesa.so+0x13f98f] _mesa_init_all_x86_transform_asm+0xdf C [libOSMesa.so+0xad482] _math_init_transformation+0x32 C [libOSMesa.so+0xad4a9] _math_init+0x19 C [libOSMesa.so+0x2ae2a] C [libOSMesa.so+0x2cf4c] _mesa_initialize_context+0x1c C [libOSMesa.so+0x14062] OSMesaCreateContextExt+0x1b2 C [libOSMesa.so+0x13ea1] OSMesaCreateContext+0x41 C [libj601.so+0x19055e] C [libj601.so+0x191d05] jtcd+0x7a5 ...
-- OlegKobchenko 2006-05-04 18:53:45
Latest Mesa Crash
After figuring out how to download and build a latest stable Mesa 6.4.2 with:
Mesa-6.4.2$ make linux-x86 $ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/xxx/Desktop/Mesa-6.4.2/lib
Still makes J OpenGL crash.
# # An unexpected error has been detected by HotSpot Virtual Machine: # # SIGSEGV (0xb) at pc=0x4d03231a, pid=4033, tid=213005 # # Java VM: Java HotSpot(TM) Client VM (1.4.2_11-b06 mixed mode) # Problematic frame: # C [libGL.so.1+0x1b531a] # --------------- T H R E A D --------------- Current thread (0x08320598): JavaThread "AWT-EventQueue-0" [_thread_in_native, id=4049] siginfo:si_signo=11, si_errno=0, si_code=128, si_addr=0x00000000 Registers: EAX=0x00000000, EBX=0x4d0d76c4, ECX=0x0000454d, EDX=0x0000004d ESP=0xbe1fcbe4, EBP=0xbe1fcbfc, ESI=0x4d0e2f00, EDI=0xbe1fcc24 EIP=0x4d03231a, CR2=0x00000000, EFLAGS=0x00010202 Top of Stack: (sp=0xbe1fcbe4) 0xbe1fcbe4: 3f800000 3f800000 3f800000 3f800000 0xbe1fcbf4: 00001d80 00001f80 be1fcd5c 4d0250bb 0xbe1fcc04: 4d0acce0 4d025160 be1fcc24 4000c016 0xbe1fcc14: be1fcf28 00000000 80000000 be1fccb4 0xbe1fcc24: 4040c564 fffbfeff ffffffff 00000000 0xbe1fcc34: 4ce9a1df 0843a910 00248000 004b7650 0xbe1fcc44: 080c5ff0 be1fc9a0 00000000 4ce9a1d2 0xbe1fcc54: 0843a910 00000000 00000003 080c4190 Instructions: (pc=0x4d03231a) 0x4d03230a: 00 00 80 3f 68 00 00 80 3f 68 00 00 80 3f 0f 10 0x4d03231a: 0c 24 0f 5e c8 0f ae 55 fc c9 c3 90 90 90 90 90 Stack: [0xbe18e000,0xbe200000), sp=0xbe1fcbe4, free space=442k Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) C [libGL.so.1+0x1b531a] C [libGL.so.1+0x1a80bb] C [libGL.so.1+0x1a7d53] _mesa_init_all_x86_transform_asm+0xd3 C [libGL.so.1+0xea544] _math_init_transformation+0x154 C [libGL.so.1+0xea569] _math_init+0x19 C [libGL.so.1+0x3dc15] C [libGL.so.1+0x3cda8] _mesa_initialize_context+0xc8 C [libOSMesa.so.6.4.060402+0x176c] OSMesaCreateContextExt+0x20c C [libOSMesa.so.6.4.060402+0x154b] OSMesaCreateContext+0x4b C [libj601.so+0x19055e] C [libj601.so+0x191d05] jtcd+0x7a5 ... Dynamic libraries: 08048000-08053000 r-xp 00000000 03:01 335676 /usr/j2re1.4.2_11/bin/java ... 40024000-40025000 rw-s 00000000 03:01 323227 /tmp/j-xxx/jbreak4033.default ... 401ad000-405bf000 r-xp 00000000 03:01 335701 /usr/j2re1.4.2_11/lib/i386/client/libjvm.so ... 40628000-4062f000 r-xp 00000000 03:01 271559 /usr/X11R6/lib/libXp.so.6.2 ... 4c5b0000-4c5f7000 r--p 00000000 03:01 302995 /usr/lib/locale/locale-archive ... 4ca12000-4ca1a000 r-xp 00000000 03:01 16529 /usr/lib/libXcursor.so.1.0.2 4ca1a000-4ca1b000 rw-p 00007000 03:01 16529 /usr/lib/libXcursor.so.1.0.2 4ca1c000-4ca69000 r-xp 00000000 03:01 271553 /usr/X11R6/lib/libXt.so.6.0 4ca69000-4ca6c000 rw-p 0004d000 03:01 271553 /usr/X11R6/lib/libXt.so.6.0 4ca6c000-4ca6d000 rw-p 00000000 00:00 0 4ca6d000-4ca7a000 r-xp 00000000 03:01 271459 /usr/X11R6/lib/libXext.so.6.4 4ca7a000-4ca7b000 rw-p 0000c000 03:01 271459 /usr/X11R6/lib/libXext.so.6.4 4ca7b000-4ca7f000 r-xp 00000000 03:01 271567 /usr/X11R6/lib/libXtst.so.6.1 4ca7f000-4ca80000 rw-p 00004000 03:01 271567 /usr/X11R6/lib/libXtst.so.6.1 4ca80000-4cb44000 r-xp 00000000 03:01 271455 /usr/X11R6/lib/libX11.so.6.2 4cb44000-4cb47000 rw-p 000c4000 03:01 271455 /usr/X11R6/lib/libX11.so.6.2 4cb47000-4cb4f000 r-xp 00000000 03:01 271457 /usr/X11R6/lib/libSM.so.6.0 4cb4f000-4cb50000 rw-p 00007000 03:01 271457 /usr/X11R6/lib/libSM.so.6.0 4cb50000-4cb64000 r-xp 00000000 03:01 270964 /usr/X11R6/lib/libICE.so.6.3 4cb64000-4cb65000 rw-p 00013000 03:01 270964 /usr/X11R6/lib/libICE.so.6.3 ... 4cc0d000-4cc0f000 r-xp 00000000 03:01 336170 /home/xxx/j601/libjnative.so ... 4cc17000-4cc1e000 r-xp 00000000 03:01 16295 /usr/lib/libXrender.so.1.2.2 4cc1e000-4cc1f000 rw-p 00006000 03:01 16295 /usr/lib/libXrender.so.1.2.2 4cc1f000-4cc3b000 r-xp 00000000 03:01 287551 /usr/X11R6/lib/X11/locale/lib/common/ximcp.so.2 4cc3b000-4cc3d000 rw-p 0001b000 03:01 287551 /usr/X11R6/lib/X11/locale/lib/common/ximcp.so.2 4cc3d000-4cc44000 r-xp 00000000 03:01 179777 /home/xxx/Desktop/Mesa-6.4.2/lib/libOSMesa.so.6.4.060402 4cc44000-4cc45000 rw-p 00007000 03:01 179777 /home/xxx/Desktop/Mesa-6.4.2/lib/libOSMesa.so.6.4.060402 4cc4a000-4cdee000 r-xp 00000000 03:01 338972 /usr/lib/libj601.so 4cdee000-4cdf4000 rw-p 001a4000 03:01 338972 /usr/lib/libj601.so 4cdf4000-4ce7d000 rw-p 00000000 00:00 0 4ce7d000-4d0c5000 r-xp 00000000 03:01 176179 /home/xxx/Desktop/Mesa-6.4.2/lib/libGL.so.1.5.060402 4d0c5000-4d0d9000 rw-p 00247000 03:01 176179 /home/xxx/Desktop/Mesa-6.4.2/lib/libGL.so.1.5.060402 ... VM Arguments: java_command: /home/xxx/j601/j.jar Launcher Type: SUN_STANDARD Environment Variables: PATH=/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games:/usr/j2re1.4.2_11/bin USERNAME=xxx LD_LIBRARY_PATH=/usr/j2re1.4.2_11/lib/i386/client:/usr/j2re1.4.2_11/lib/i386:/usr/j2re1.4.2_11/../lib/i386::/home/xxx/Desktop/Mesa-6.4.2/lib SHELL=/bin/bash DISPLAY=:0.0 --------------- S Y S T E M --------------- OS:3.1 uname:Linux 2.4.27-2-386 #1 Wed Aug 17 09:33:35 UTC 2005 i686 libc:glibc 2.3.2 linuxthreads-0.10 (floating stack) rlimit: STACK 2044k, CORE 0k, NPROC infinity, NOFILE 1024, AS infinity load average:-0.00 0.00 -0.00 CPU:total 1 family 15, cmov, cx8, fxsr, mmx, sse, sse2 Memory: 4k page, physical 259068k(4124k free), swap 0k(0k free) vm_info: Java HotSpot(TM) Client VM (1.4.2_11-b06) for linux-x86, built on Feb 13 2006 11:02:10 by unknown with unknown compiler
-- OlegKobchenko 2006-05-05 03:47:59
The crash went away after making with linux config rather than linux-x86. -- OlegKobchenko 2006-05-05 18:38:31
Off-Screen Rendering
With direct JAWT OpenGL, there only need for off-screen rendering is for making bitmap captures.
Alternatives to OSMesa:
On a Linux system, whose GUI always comes with X11, a candidate for standard off-screen solution is GLX Pixmaps.
-- OlegKobchenko 2006-05-04 19:57:50
