torutkのブログ

ソフトウェア・エンジニアのブログ

JDK 6 (Mustang) b96で、GUIのOpenGLレンダリング時のクラッシュ回避

b96でシステムプロパティ-Dsun.java2d.opengl=trueを指定してOpenGLレンダリングを有効にすると、コンテンツ領域には何も表示されません。NVIDIA GeForce 7600を使用しています。

調べるとBug ID: JDK-6458746 OGL: mustang b94 doesn't work correctly with JDialog (Nvidia, 91.31, Windows)と同じ現象でした。Mustangのb92から、OpenGLレンダリング時にFBO(Frame Buffer Object)機能を使うようになり、これがNVIDIAドライバのリグレッションバグを踏んでしまうためとのことです。

回避策として、FBO機能を無効にするオプション-Dsun.java2d.opengl.fbobject=falseを追加すると、描画されるようになります。

NVIDIAドライバの91.31で発生します。91.33でも発生するようです。ドライバの修正待ちだそうです。