260.xx drivers break Java2D OpenGL pipeline
I have been using the Java2D OpenGL pipeline for some time with Java 1.6 on 64-bit linux on several machines with 173.xx, 180.xx, and 195.xx versions of NVIDIA drivers. I haven't had any problems until now.
A few days ago I began trying the new 260 series of drivers. I have tried 260.19.06 and 260.19.12 on 2 machines running Debian 5.0 and Ubuntu 10.10. One machine has an 8400 GS, the other has a Quadro FX 550. The Java2D OpenGL pipeline worked flawlessly on both machines with older 173/180/195 drivers. I am using Sun Java 1.6.0_22 64-bit. Both machines are running 64-bit kernels.
With the 260.xx drivers, on both machines I see the following problems:
1. If I just set -Dsun.java2d.opengl=true, I see all swing frames are empty - no widgets are drawn (see empty_java2d_opengl_window).
2. If I set -Dsun.java2d.opengl=true and -Dsun.java2d.opengl.fbobject=false (disable frame buffer objects) this works around problem #1 and widgets are displayed (although this has known performance impacts)
3. In either case #1 or #2 (sun.java2d.opengl=true and sun.java2d.opengl.fbobject is true or false), when I close the Java GUI application the X server almost always (but not 100% of the time) crashes with a segmentation fault that involves nvidia_drv.so (captured from /var/log/Xorg.0.log):
[ 770.382] 0: /usr/bin/X (xorg_backtrace+0x28) [0x4a0fa8]
[ 770.382] 1: /usr/bin/X (0x400000+0x60fcd) [0x460fcd]
[ 770.382] 2: /lib/libpthread.so.0 (0x7f7d47901000+0xfb40) [0x7f7d47910b40]
[ 770.382] 3: /usr/lib/xorg/extra-modules/nvidia_drv.so (0x7f7d42279000+0x3a3a7c) [0x7f7d4261ca7c]
[ 770.382] 4: /usr/bin/X (FreeClientResources+0xef) [0x44bc5f]
[ 770.382] 5: /usr/bin/X (CloseDownClient+0x5c) [0x427c0c]
[ 770.382] 6: /usr/bin/X (0x400000+0x2c3a6) [0x42c3a6]
[ 770.382] 7: /usr/bin/X (0x400000+0x2184b) [0x42184b]
[ 770.382] 8: /lib/libc.so.6 (__libc_start_main+0xfe) [0x7f7d4686cd8e]
[ 770.382] 9: /usr/bin/X (0x400000+0x213d9) [0x4213d9]
[ 770.382] Segmentation fault at address (nil)
Caught signal 11 (Segmentation fault). Server aborting
I have a workaround for now in using an older 173/180/195 series of drivers, but I am concerned about the future of the Java2D OpenGL pipeline if it is broken in the current release.