From: Thorsten R. <ni...@gm...> - 2001-02-09 00:35:27
|
Hi *, here comes rather a feedback than a question... Have fun with my bad english... 8-) (I hope it's not off-topic) I wonder if somebody else has the same problems: I've wrote a tiny test-application, doing nothing but "swapping" front and back buffer. (ok, copying back to front buffer via "gljSwap()" - have a look at the attachment) I've got the following log: === schnipp === [...<java emptyLoop_GLCanvas>...] (II) [GLX]: Updating NV driver (scrn 0) with 1 contexts, 0 drawables, 0 clients (II) NVIDIA(0): purgeCache: Free=0x198f000 Total=0x1fd0000 (II) [GLX]: Updating NV driver (scrn 0) with 1 contexts, 0 drawables, 1 clients (II) [GLX]: Updating NV driver (scrn 0) with 0 contexts, 0 drawables, 1 clients (II) [GLX]: Updating NV driver (scrn 0) with 1 contexts, 0 drawables, 1 clients (II) [GLX]: Updating NV driver (scrn 0) with 0 contexts, 0 drawables, 1 clients (II) [GLX]: Updating NV driver (scrn 0) with 1 contexts, 0 drawables, 1 clients (II) [GLX]: Updating NV driver (scrn 0) with 1 contexts, 1 drawables, 1 clients emptyLoop_canvas.init emptyLoop_canvas.reshape ..(II) [GLX]: Updating NV driver (scrn 0) with 1 contexts, 2 drawables, 1 clients .(II) [GLX]: Updating NV driver (scrn 0) with 1 contexts, 3 drawables, 1 clients .(II) [GLX]: Updating NV driver (scrn 0) with 1 contexts, 4 drawables, 1 clients [...<counting "drawables" 5-3888> ...] (II) [GLX]: Updating NV driver (scrn 0) with 1 contexts, 3889 drawables, 1 clients # # An unexpected exception has been detected in native code outside the VM.# Program counter=0x48c3cf8c # # Problematic Thread: prio=5 tid=0x81f1498 nid=0x581 runnable # Aborted [thr@elite thr]$ (II) [GLX]: Updating NV driver (scrn 0) with 1 contexts, 3888 drawables, 1 clients (II) [GLX]: Updating NV driver (scrn 0) with 1 contexts, 0 drawables, 1 clients [...<last line repeats ~20 times> ...] [...<auto re-init of X/nvidia-driver> ...] === schnipp === Configuration: PC - AMD Athlon 600MHz - Asus K7M Mainboard - 256MB Ram - Asus GeForce2 32MB V7700 - SBLive Player 1024 Linux Red Hat 7.0 - XFree 4.01 - Gnome (default version on redhat 7.0) - KDE (default version on redhat 7.0) OpenGL - gl4java 2.5.0.0 - nVidia Drivers 0.94 - 0.96 also tried - Kernel 2.2.18 - kde 2.01 - no window manager at all So I wrote a tiny "GLAnimCanvas" class for my own. As a result there is no need to call "gljMakeCurrent()" and "gljFree()" in the display() method anymore (both are called only once at initialization time). Via a SwingUtilities like method "invokeLater" and "invokeAndWait" other Threads are able to use OpenGL commands getting executed in the main Render-Thread. Now no more crashes after two days of running tests. Then I studied the differences between the class implementations. My thesis: It look's like something (i.e. the nvidia driver, X, or whatever) doesn't "like" the gljMakeCurrent()/gljFree() combination called to often. What is the reason having to call both methods in GLAnimCanvas.display() every frame? Any comments ? [ ] what a hero! ;-) [ ] nice to know [ ] what a pain to read [ ] text to long [ ] never send attachments [ ] just get away ciao, Thorsten |