Hi,
I decided to update one of my older projects from jogl-2.0-20090915 to the latest webstart version. No big changes at the sourcecode where necessary (renamed some packages, changed BufferUtil to gluegen Buffers, minor changes at animator). The first problem i ran into was "Cannot call invokeAndWait from the event dispatcher thread" (http://jogamp.762907.n3.nabble.com/Bug-Newt-EDT-invokeAndWait-from-BrickFarmer-td2084832.html). This problem doesn't occur anymore when i use newer builds, instead the jvm decides to crash... tried several builds between b255 and b266 but all generated the same error (posted below). I hope to be able to test my program on another system tomorrow, but meanwhile i wanted to ask if someone had similar problems or has advice on how to fix the error. thanks in advance John # # A fatal error has been detected by the Java Runtime Environment: # # EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x6929a876, pid=2920, tid=2972 # # JRE version: 6.0_20-b02 # Java VM: Java HotSpot(TM) Client VM (16.3-b01 mixed mode, sharing windows-x86 ) # Problematic frame: # C [atioglxx.dll+0x26a876] # # If you would like to submit a bug report, please visit: # http://java.sun.com/webapps/bugreport/crash.jsp # The crash happened outside the Java Virtual Machine in native code. # See problematic frame for where to report the bug. # --------------- T H R E A D --------------- Current thread (0x03d27400): JavaThread "AWT-EventQueue-0" [_thread_in_native, id=2972, stack(0x04330000,0x04380000)] siginfo: ExceptionCode=0xc0000005, reading address 0x000006ec Registers: EAX=0x00000000, EBX=0x03d27510, ECX=0x00000002, EDX=0x00000004 ESP=0x0437f53c, EBP=0x0437f578, ESI=0x0437f5e4, EDI=0x6929a870 EIP=0x6929a876, EFLAGS=0x00010202 Top of Stack: (sp=0x0437f53c) 0x0437f53c: 6450a455 00000002 2397ffbc 00000000 0x0437f54c: 0437f56c 6d99bc35 03d27400 2397ffbc 0x0437f55c: 00000000 03d27400 33cd2088 33cd2088 0x0437f56c: 33cd2088 33cd2088 03d27400 0437f5c4 0x0437f57c: 019b9f37 03d27510 0437f5ec 00000002 0x0437f58c: 0437f5e4 00000000 00000000 6929a870 0x0437f59c: 00000000 fffffffe 0437f5a4 33cd2088 0x0437f5ac: 0437f5ec 33ddfc58 00000000 33cd2088 Instructions: (pc=0x6929a876) 0x6929a866: ff a0 e8 06 00 00 cc cc cc cc 64 a1 f4 0e 00 00 0x6929a876: ff a0 ec 06 00 00 cc cc cc cc 64 a1 f4 0e 00 00 Stack: [0x04330000,0x04380000], sp=0x0437f53c, free space=13d0437f058k Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) C [atioglxx.dll+0x26a876] j com.jogamp.opengl.impl.gl4.GL4bcImpl.dispatch_glGenBuffers1(ILjava/lang/Object;IZJ)V+0 j com.jogamp.opengl.impl.gl4.GL4bcImpl.glGenBuffers(ILjava/nio/IntBuffer;)V+87 j com.jogamp.opengl.util.awt.TextRenderer$Pipelined_QuadRenderer.<init>(Lcom/jogamp/opengl/util/awt/TextRenderer;)V+69 j com.jogamp.opengl.util.awt.TextRenderer$Glyph.draw3D(FFFF)F+128 j com.jogamp.opengl.util.awt.TextRenderer.internal_draw3D(Ljava/lang/CharSequence;FFFF)V+49 j com.jogamp.opengl.util.awt.TextRenderer.draw3D(Ljava/lang/String;FFFF)V+8 j com.jogamp.opengl.util.awt.TextRenderer.draw(Ljava/lang/String;II)V+8 j at.metasyst.metalagvisual.MlVis3dFpsRenderer.execute(Ljavax/media/opengl/GL2;)V+125 j at.metasyst.metalagvisual.MlVis3dGLEventListener.display(Ljavax/media/opengl/GLAutoDrawable;)V+33 j com.jogamp.opengl.impl.GLDrawableHelper.display(Ljavax/media/opengl/GLAutoDrawable;)V+54 j javax.media.opengl.awt.GLCanvas$DisplayAction.run()V+121 j com.jogamp.opengl.impl.GLDrawableHelper.invokeGL(Ljavax/media/opengl/GLDrawable;Ljavax/media/opengl/GLContext;Ljava/lang/Runnable;Ljava/lang/Runnable;)V+268 j javax.media.opengl.awt.GLCanvas$DisplayOnEventDispatchThreadAction.run()V+35 j java.awt.event.InvocationEvent.dispatch()V+11 j java.awt.EventQueue.dispatchEvent(Ljava/awt/AWTEvent;)V+26 j java.awt.EventDispatchThread.pumpOneEventForFilters(I)Z+204 j java.awt.EventDispatchThread.pumpEventsForFilter(ILjava/awt/Conditional;Ljava/awt/EventFilter;)V+30 j java.awt.EventDispatchThread.pumpEventsForHierarchy(ILjava/awt/Conditional;Ljava/awt/Component;)V+11 j java.awt.EventDispatchThread.pumpEvents(ILjava/awt/Conditional;)V+4 j java.awt.EventDispatchThread.pumpEvents(Ljava/awt/Conditional;)V+3 j java.awt.EventDispatchThread.run()V+9 v ~StubRoutines::call_stub V [jvm.dll+0xf049c] V [jvm.dll+0x17fcf1] V [jvm.dll+0xf0667] V [jvm.dll+0xf06dd] V [jvm.dll+0x11a2a0] V [jvm.dll+0x1ddb14] V [jvm.dll+0x17f96c] C [msvcr71.dll+0x9565] C [kernel32.dll+0x51194] C [ntdll.dll+0x5b495] C [ntdll.dll+0x5b468] Java frames: (J=compiled Java code, j=interpreted, Vv=VM code) j com.jogamp.opengl.impl.gl4.GL4bcImpl.dispatch_glGenBuffers1(ILjava/lang/Object;IZJ)V+0 j com.jogamp.opengl.impl.gl4.GL4bcImpl.glGenBuffers(ILjava/nio/IntBuffer;)V+87 j com.jogamp.opengl.util.awt.TextRenderer$Pipelined_QuadRenderer.<init>(Lcom/jogamp/opengl/util/awt/TextRenderer;)V+69 j com.jogamp.opengl.util.awt.TextRenderer$Glyph.draw3D(FFFF)F+128 j com.jogamp.opengl.util.awt.TextRenderer.internal_draw3D(Ljava/lang/CharSequence;FFFF)V+49 j com.jogamp.opengl.util.awt.TextRenderer.draw3D(Ljava/lang/String;FFFF)V+8 j com.jogamp.opengl.util.awt.TextRenderer.draw(Ljava/lang/String;II)V+8 j at.metasyst.metalagvisual.MlVis3dFpsRenderer.execute(Ljavax/media/opengl/GL2;)V+125 j at.metasyst.metalagvisual.MlVis3dGLEventListener.display(Ljavax/media/opengl/GLAutoDrawable;)V+33 j com.jogamp.opengl.impl.GLDrawableHelper.display(Ljavax/media/opengl/GLAutoDrawable;)V+54 j javax.media.opengl.awt.GLCanvas$DisplayAction.run()V+121 j com.jogamp.opengl.impl.GLDrawableHelper.invokeGL(Ljavax/media/opengl/GLDrawable;Ljavax/media/opengl/GLContext;Ljava/lang/Runnable;Ljava/lang/Runnable;)V+268 j javax.media.opengl.awt.GLCanvas$DisplayOnEventDispatchThreadAction.run()V+35 j java.awt.event.InvocationEvent.dispatch()V+11 j java.awt.EventQueue.dispatchEvent(Ljava/awt/AWTEvent;)V+26 j java.awt.EventDispatchThread.pumpOneEventForFilters(I)Z+204 j java.awt.EventDispatchThread.pumpEventsForFilter(ILjava/awt/Conditional;Ljava/awt/EventFilter;)V+30 j java.awt.EventDispatchThread.pumpEventsForHierarchy(ILjava/awt/Conditional;Ljava/awt/Component;)V+11 j java.awt.EventDispatchThread.pumpEvents(ILjava/awt/Conditional;)V+4 j java.awt.EventDispatchThread.pumpEvents(Ljava/awt/Conditional;)V+3 j java.awt.EventDispatchThread.run()V+9 v ~StubRoutines::call_stub --------------- P R O C E S S --------------- Java Threads: ( => current thread ) 0x01907800 JavaThread "Timer-3" [_thread_blocked, id=2684, stack(0x0a560000,0x0a5b0000)] 0x07dca000 JavaThread "Timer-1" [_thread_blocked, id=1208, stack(0x09870000,0x098c0000)] 0x07cc3c00 JavaThread "Timer-0" [_thread_blocked, id=3768, stack(0x095b0000,0x09600000)] 0x07b80800 JavaThread "AWT-EventQueue-0-SharedResourceRunner" daemon [_thread_blocked, id=3764, stack(0x08380000,0x083d0000)] 0x07b19000 JavaThread "TimerQueue" daemon [_thread_blocked, id=2616, stack(0x08040000,0x08090000)] 0x004df800 JavaThread "DestroyJavaVM" [_thread_blocked, id=3980, stack(0x00170000,0x001c0000)] 0x07ade000 JavaThread "Thread-4" [_thread_blocked, id=2868, stack(0x07f20000,0x07f70000)] 0x03d8d400 JavaThread "Thread-3" [_thread_blocked, id=2800, stack(0x07ed0000,0x07f20000)] 0x03e7dc00 JavaThread "D3D Screen Updater" daemon [_thread_blocked, id=1140, stack(0x07500000,0x07550000)] =>0x03d27400 JavaThread "AWT-EventQueue-0" [_thread_in_native, id=2972, stack(0x04330000,0x04380000)] 0x03dd0c00 JavaThread "AWT-Windows" daemon [_thread_in_native, id=3272, stack(0x04190000,0x041e0000)] 0x03ddec00 JavaThread "AWT-Shutdown" [_thread_blocked, id=3172, stack(0x04140000,0x04190000)] 0x03dde400 JavaThread "Java2D Disposer" daemon [_thread_blocked, id=2356, stack(0x03f80000,0x03fd0000)] 0x018eb800 JavaThread "Low Memory Detector" daemon [_thread_blocked, id=2948, stack(0x03bf0000,0x03c40000)] 0x018e4000 JavaThread "CompilerThread0" daemon [_thread_blocked, id=936, stack(0x03ba0000,0x03bf0000)] 0x018e3000 JavaThread "Attach Listener" daemon [_thread_blocked, id=3944, stack(0x03b50000,0x03ba0000)] 0x018df800 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=3060, stack(0x03b00000,0x03b50000)] 0x018db800 JavaThread "Finalizer" daemon [_thread_blocked, id=2508, stack(0x03ab0000,0x03b00000)] 0x018d6c00 JavaThread "Reference Handler" daemon [_thread_blocked, id=2428, stack(0x03a60000,0x03ab0000)] Other Threads: 0x018d5800 VMThread [stack: 0x00460000,0x004b0000] [id=3840] 0x01906c00 WatcherThread [stack: 0x03c40000,0x03c90000] [id=3392] VM state:not at safepoint (normal execution) VM Mutex/Monitor currently owned by a thread: None Heap def new generation total 4928K, used 2399K [0x23740000, 0x23c90000, 0x28c90000) eden space 4416K, 52% used [0x23740000, 0x23983140, 0x23b90000) from space 512K, 16% used [0x23b90000, 0x23ba4ce0, 0x23c10000) to space 512K, 0% used [0x23c10000, 0x23c10000, 0x23c90000) tenured generation total 10944K, used 9724K [0x28c90000, 0x29740000, 0x33740000) the space 10944K, 88% used [0x28c90000, 0x2960f278, 0x2960f400, 0x29740000) compacting perm gen total 12288K, used 7812K [0x33740000, 0x34340000, 0x37740000) the space 12288K, 63% used [0x33740000, 0x33ee1158, 0x33ee1200, 0x34340000) ro space 10240K, 54% used [0x37740000, 0x37cbb760, 0x37cbb800, 0x38140000) rw space 12288K, 55% used [0x38140000, 0x387df798, 0x387df800, 0x38d40000) Dynamic libraries: 0x00400000 - 0x00424000 D:\Programme\Java\jdk1.6.0_20\bin\java.exe 0x77cb0000 - 0x77dec000 C:\Windows\SYSTEM32\ntdll.dll 0x76d60000 - 0x76e34000 C:\Windows\system32\kernel32.dll 0x76020000 - 0x7606a000 C:\Windows\system32\KERNELBASE.dll 0x76480000 - 0x76520000 C:\Windows\system32\ADVAPI32.dll 0x76f30000 - 0x76fdc000 C:\Windows\system32\msvcrt.dll 0x77df0000 - 0x77e09000 C:\Windows\SYSTEM32\sechost.dll 0x763d0000 - 0x76471000 C:\Windows\system32\RPCRT4.dll 0x7c340000 - 0x7c396000 D:\Programme\Java\jdk1.6.0_20\jre\bin\msvcr71.dll 0x6d8b0000 - 0x6db47000 D:\Programme\Java\jdk1.6.0_20\jre\bin\client\jvm.dll 0x77e10000 - 0x77ed9000 C:\Windows\system32\USER32.dll 0x76990000 - 0x769de000 C:\Windows\system32\GDI32.dll 0x769e0000 - 0x769ea000 C:\Windows\system32\LPK.dll 0x769f0000 - 0x76a8d000 C:\Windows\system32\USP10.dll 0x743a0000 - 0x743d2000 C:\Windows\system32\WINMM.dll 0x76640000 - 0x7665f000 C:\Windows\system32\IMM32.DLL 0x76af0000 - 0x76bbc000 C:\Windows\system32\MSCTF.dll 0x75d00000 - 0x75d4b000 C:\Windows\system32\apphelp.dll 0x6d860000 - 0x6d86c000 D:\Programme\Java\jdk1.6.0_20\jre\bin\verify.dll 0x6d3e0000 - 0x6d3ff000 D:\Programme\Java\jdk1.6.0_20\jre\bin\java.dll 0x6d340000 - 0x6d348000 D:\Programme\Java\jdk1.6.0_20\jre\bin\hpi.dll 0x76520000 - 0x76525000 C:\Windows\system32\PSAPI.DLL 0x6d8a0000 - 0x6d8af000 D:\Programme\Java\jdk1.6.0_20\jre\bin\zip.dll 0x6d0b0000 - 0x6d1fa000 D:\Programme\Java\jdk1.6.0_20\jre\bin\awt.dll 0x72070000 - 0x720c1000 C:\Windows\system32\WINSPOOL.DRV 0x766b0000 - 0x7680c000 C:\Windows\system32\ole32.dll 0x74d20000 - 0x74ebe000 C:\Windows\WinSxS\x86_microsoft.windows.common-controls_6595b64144ccf1df_6.0.7600.16661_none_420fe3fa2b8113bd\COMCTL32.dll 0x76a90000 - 0x76ae7000 C:\Windows\system32\SHLWAPI.dll 0x74870000 - 0x74883000 C:\Windows\system32\DWMAPI.DLL 0x74ba0000 - 0x74be0000 C:\Windows\system32\uxtheme.dll 0x75d50000 - 0x75d5c000 C:\Windows\system32\CRYPTBASE.dll 0x6d2e0000 - 0x6d334000 D:\Programme\Java\jdk1.6.0_20\jre\bin\fontmanager.dll 0x65630000 - 0x657f3000 C:\Windows\system32\d3d9.dll 0x75290000 - 0x75299000 C:\Windows\system32\VERSION.dll 0x67560000 - 0x67566000 C:\Windows\system32\d3d8thk.dll 0x65270000 - 0x6562e000 C:\Windows\system32\atiumdag.dll 0x64da0000 - 0x6526e000 C:\Windows\system32\atiumdva.dll 0x77060000 - 0x77ca9000 C:\Windows\system32\shell32.dll 0x76ea0000 - 0x76f2f000 C:\Windows\system32\OLEAUT32.DLL 0x6d6c0000 - 0x6d6d3000 D:\Programme\Java\jdk1.6.0_20\jre\bin\net.dll 0x76810000 - 0x76845000 C:\Windows\system32\WS2_32.dll 0x76100000 - 0x76106000 C:\Windows\system32\NSI.dll 0x75820000 - 0x7585c000 C:\Windows\system32\mswsock.dll 0x75810000 - 0x75816000 C:\Windows\System32\wship6.dll 0x10000000 - 0x10047000 C:\Program Files\Avira\AntiVir Desktop\avsda.dll 0x75380000 - 0x7539c000 C:\Windows\system32\IPHLPAPI.DLL 0x75370000 - 0x75377000 C:\Windows\system32\WINNSI.DLL 0x75350000 - 0x75355000 C:\Windows\System32\wshtcpip.dll 0x740f0000 - 0x74100000 C:\Windows\system32\NLAapi.dll 0x756e0000 - 0x75724000 C:\Windows\system32\DNSAPI.dll 0x72060000 - 0x72068000 C:\Windows\System32\winrnr.dll 0x71ee0000 - 0x71ef0000 C:\Windows\system32\napinsp.dll 0x71ec0000 - 0x71ed2000 C:\Windows\system32\pnrpnsp.dll 0x71eb0000 - 0x71eb6000 C:\Windows\system32\rasadhlp.dll 0x72920000 - 0x72958000 C:\Windows\System32\fwpuclnt.dll 0x6d500000 - 0x6d524000 D:\Programme\Java\jdk1.6.0_20\jre\bin\jpeg.dll 0x6d6e0000 - 0x6d6e9000 D:\Programme\Java\jdk1.6.0_20\jre\bin\nio.dll 0x637c0000 - 0x637ca000 D:\Metasyst\mlwl_jogltest\libs\jogl-2.0\gluegen-rt.dll 0x6d410000 - 0x6d416000 D:\Programme\Java\jdk1.6.0_20\jre\bin\jawt.dll 0x6a440000 - 0x6a44a000 D:\Metasyst\mlwl_jogltest\libs\jogl-2.0\nativewindow_awt.dll 0x6c100000 - 0x6c110000 D:\Metasyst\mlwl_jogltest\libs\jogl-2.0\nativewindow_win32.dll 0x64c00000 - 0x64cc8000 C:\Windows\system32\OpenGL32.dll 0x66af0000 - 0x66b12000 C:\Windows\system32\GLU32.dll 0x64b10000 - 0x64bf7000 C:\Windows\system32\DDRAW.dll 0x66e00000 - 0x66e06000 C:\Windows\system32\DCIMAN32.dll 0x76bc0000 - 0x76d5d000 C:\Windows\system32\SETUPAPI.dll 0x75e80000 - 0x75ea7000 C:\Windows\system32\CFGMGR32.dll 0x75fd0000 - 0x75fe2000 C:\Windows\system32\DEVOBJ.dll 0x64500000 - 0x64571000 D:\Metasyst\mlwl_jogltest\libs\jogl-2.0\jogl_desktop.dll 0x69030000 - 0x69b64000 C:\Windows\system32\atioglxx.dll 0x083e0000 - 0x08401000 C:\Windows\system32\atiadlxx.dll 0x6f760000 - 0x6f7fb000 C:\Windows\WinSxS\x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.4927_none_d08a205e442db5b5\MSVCR80.dll VM Arguments: jvm_args: -Djava.library.path=.\libs\jogl-2.0 -Xmx256m java_command: at.metasyst.mlwl.mlwlviewer.MlwlViewer braudev.properties Launcher Type: SUN_STANDARD Environment Variables: JAVA_HOME=D:\Programme\Java\jdk1.6.0_20 CLASSPATH=D:\Programme\Java\jdk1.6.0_20\lib;.\libs\xml-apis.jar;.\libs\xercesImpl.jar;MlwlViewer.jar;.\libs\ojdbc14.jar;.\libs\barbecue-1.1.jar;.\libs\bsh-1.3.0.jar;.\libs\commons-beanutils.jar;.\libs\commons-collections.jar;.\libs\commons-digester.jar;.\libs\commons-logging-api.jar;.\libs\commons-logging.jar;.\libs\hsqldb.jar;.\libs\itext-1.02b.jar;.\libs\jasperreports-0.6.1.jar;.\libs\jcmdline-1.0.2.jar;.\libs\jcommon-0.9.6.jar;.\libs\jfreechart-0.9.21.jar;.\libs\log4j-1.2.8.jar;.\libs\looks-1.2.2.jar;.\libs\poi-2.0-final-20040126.jar;.\libs\tinylaf.jar;.\libs\metalagvisual-2.0.1.jar;.\libs\MetaIPC.jar;.\libs\jogl.all.jar;.\libs\gluegen-rt.jar;.\libs\newt.all.jar;.\libs\nativewindow.all.jar; PATH=D:\Programme\csvn\bin\;D:\Programme\csvn\Python25\;D:\Programme\oracle\product\10.2.0\client_1;D:\Programme\MiKTeX 2.8\miktex\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;D:\Programme\Java\jdk1.6.0_20\bin;D:\Programme\apache-maven-3.0\bin;D:\Programme\ATI Technologies\ATI.ACE\Core-Static USERNAME=Domokun OS=Windows_NT PROCESSOR_IDENTIFIER=x86 Family 6 Model 13 Stepping 8, GenuineIntel --------------- S Y S T E M --------------- OS: Windows 7 Build 7600 CPU:total 1 (1 cores per cpu, 1 threads per core) family 6 model 13 stepping 8, cmov, cx8, fxsr, mmx, sse, sse2 Memory: 4k page, physical 2095352k(859204k free), swap 4190704k(2698304k free) vm_info: Java HotSpot(TM) Client VM (16.3-b01) for windows-x86 JRE (1.6.0_20-b02), built on Apr 12 2010 13:52:23 by "java_re" with MS VC++ 7.1 (VS2003) time: Tue Jan 18 16:22:22 2011 elapsed time: 17 seconds |
Administrator
|
Often an exception that happens inside the ATI DLL like this is due to a driver bug. Have you checked that your driver is at the latest version?
|
It's the latest version, but since my laptop is rather old its only the legacy vista driver.
ATI hasn't released a newer driver for the Mobility X600 so far. |
The crash seems to be related with the TextRenderer, after commenting all uses of Text Objects the rest of the program is running fine.
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) C [atioglxx.dll+0x26a856] j com.jogamp.opengl.impl.gl4.GL4bcImpl.dispatch_glBindBuffer1(IIJ)V+0 j com.jogamp.opengl.impl.gl4.GL4bcImpl.glBindBuffer(II)V+34 j com.jogamp.opengl.util.awt.TextRenderer.endRendering(Z)V+36 not sure if the catalyst 10.2 legacy driver (2/24/2010) would fully support gl4. |
Administrator
|
You might try changing the settings on the text renderer like this:
textrenderer.setUseVertexArrays( false ); I've found that sometimes this helps work around buggy drivers. |
I managed to test the program on a different system, the TextRenderer is working fine there...
UseVertexArrays(false) didn't help I'm now thinking of implementing my own textrenderer, since i don't need more than one font anyway... |
Administrator
|
I think there are some other changeable settings in text renderer too, you might be able to find a rendering path that works on your system. Or you could copy the TextRenderer code and alter it to work around the ATI driver problem :)
|
Administrator
|
In reply to this post by John No
When disabling vertex arrays and VBO, you cannot have exactly the same result because your first crash happened when calling glGenBuffers.
Edit.: some ATI graphics cards crash when calling gl.glBindBuffer(GL.GL_ARRAY_BUFFER, 0); Disabling vertex arrays and then VBO should be enough. I already wrote a bug report about a similar problem. Edit.2: I have no time to commit a patch. When calling setUseVertexArrays(false), gl.glBindBuffer(GL.GL_ARRAY_BUFFER, 0) should never be called, this is a minor bug.
Julien Gouesse | Personal blog | Website
|
Administrator
|
In reply to this post by John No
Hi John,
Julien's advice looks good -- you might be able to patch TextRenderer.endRendering(boolean ortho) so it doesn't call glBindBuffer if useVertexArrays is false. There's a wiki page on how to report a bug and submit a fix at https://jogamp.org/wiki/index.php/Contributing_a_new_feature_or_fix. You should make sure you can build JOGL first (check https://jogamp.org/wiki/index.php/How_to_Contribute). This might take a little while, but it's probably easier than trying to write your own TextRenderer, and it would help the rest of the JOGL community |
In reply to this post by John No
I was experiencing similar JVM crashes when using TextRenderer with Jogl 1.1.1. The problem was solved after I removed text rendering from display lists.
|
Administrator
|
In reply to this post by John No
Actually, I might have some time to try a patch. John, are you on Windows 7 32-bit? I might be able to create a test version of JOGL for you with the patch in it to see if it fixes the problem. Just let me know for sure what your platform is and I'll post a JOGL build here.
|
As a fast fix i copied the TextRenderer Class and made a minor change to the is15Available method:
from return isExtensionAvailable_GL_VERSION_1_5 to return isExtensionAvailable_GL_VERSION_1_5 && useVertexArrays; Some methods of the Renderer checked VBO capability but ignored the fact that useVertexArrays was set to false. adding the vertexarray flag to the return statement did the trick and i guess it would make sense to add that to the regular builds as well. thx for the advice :) John |
Btw...
If nobody else volunteers then i'll play around with git a little bit at the weekend and try to contribute my fix. |
Administrator
|
It'd be great if you could contribute a fix! Just let me know if you find any omissions or unclear bits in the instructional links above, and I'll fix them up.
Just two things to keep in mind (both of these are in the instructions): - Please write a failing unit test first, then make sure your fix makes it pass - Make sure your change to TextRenderer.java doesn't include any whitespace changes; only the one line in question should change Thanks for your help! If you run into trouble, just post here. |
Produced a junit test that checks if TextRenderer calls vbo-related glFunctions while useVertexArrays is set to false.
I'm not sure if my solution is the most elegant way to do that, so i'd appreciate advice if there's a better way. https://github.com/Domokun/jogl/compare/bug_464 and i guess eclipse screwed up the file encoding, i guess the standard encoding of the source is UTF-8? |
Administrator
|
Hey, that looks pretty good
For TextRenderer.java, perhaps you checked in a version with the wrong line endings? That's the most common cause of every line being different. Once the checkin is correct, the line diffs should show only the few lines you changed. The only other thing I'd suggest would be to add class comments to your three new classes to say briefly why they were created and what they do. The purpose seems obvious to you now, but it will help later developers And I guess the copyright dates on the JogAmp community headers should now be 2011. |
yep, it was a CRLF problem...
autocrlf doesn't seem to work well on my system :> Updated header, added comments to the test classes and sent pull request. guess i'm done |
Administrator
|
Your patch looks great! Totally clean, with just a one-line change. Nice comments on the test cases, too
Thanks very much for your contribution, John! I think this will help many other people -- I've run across this same problem on some older machines at work, I just didn't realize it at the time. |
Free forum by Nabble | Edit this page |