Java Platform, Standard Editionトラブルシューティング・ガイド
目次      

11.4 Oracle Solaris、LinuxおよびWindowsでのOpenGLパイプライン

OpenGLパイプラインは、Oracle Solaris、LinuxおよびWindowsで使用できます。この代替パイプラインでは、VolatileImageBufferStrategy APIで作成されたバック・バッファ、および画面へのレンダリング時に、ハードウェア高速化されたクロス・プラットフォームのOpenGL APIが使用されます。

このパイプラインはデフォルト(X11またはGDI/DirectDraw)のパイプラインに比べ、特定のアプリケーションでパフォーマンス上の大きな利点を提供できます。アルファ合成、アンチエイリアス、変換などのレンダリング操作を大量に使用するアプリケーションでは、このパイプラインを有効にすることを検討してください。

OpenGLパイプラインで高速化されるJava 2D操作の完全な一覧については、記事「Behind the Graphics2D: The OpenGL-based Pipeline」を参照してください。

OpenGLパイプラインの問題のトラブルシューティングを行うユースケースを次に示します

11.4.1 OpenGLパイプラインの有効化

現時点では、OpenGLパイプラインはデフォルトで無効になっています。OpenGLパイプラインの有効化を試みるには、次のオプションをJVMに指定します。

-Dsun.java2d.opengl=true

OpenGLパイプラインが特定のスクリーンに対して正常に初期化されたかどうかに関する、詳細なコンソール出力を受け取るには、オプションをTrueに設定します(大文字「T」に注意)。

11.4.2 最小限の要件

ハードウェアまたはドライバが最小要件を満たしていなければ、OpenGLパイプラインは有効にされません。なんらかの理由で次の要件のいずれかが満たされない場合、Java 2Dはフォール・バックしてデフォルト・パイプライン(Oracle Solaris/LinuxではX11、WindowsではGDI/DirectDraw)を使用するため、アプリケーションは正しく動作し続けますが、OpenGLの高速化は失われます。

Oracle SolarisおよびLinuxオペレーティング・システムの最低要件を次に示します。

  • ハードウェア高速化のOpenGL/GLXライブラリがインストールされ、適切に構成されている

  • OpenGLのバージョンが1.2以降

  • GLXのバージョンが1.3以降

  • 使用可能な深度バッファ付きの、少なくとも1つのトゥルーカラー・ビジュアル

Windows OSの最小要件は、次のとおりです。

  • 拡張WGL_ARB_pbufferWGL_ARB_render_texture、およびWGL_ARB_pixel_formatをサポートするハードウェア高速化ドライバ

  • OpenGLのバージョンが1.2以降

  • 使用可能な深度バッファ付きの、少なくとも1つのピクセル形式

11.4.4 レンダリングおよびパフォーマンスの問題の診断

OpenGLパイプラインはベースとなるグラフィックス・ハードウェアやドライバに非常に強く依存しているため、レンダリングやパフォーマンスの問題の原因がJava 2D、OpenGLドライバのどちらなのかを判定しかねる場合があります。

Java SE 6リリースでのOpenGLパイプラインの新機能の1つは、VolatileImage使用時のレンダリング・パフォーマンスの改善とVRAM消費量の低減を図るGL_EXT_framebuffer_object拡張の使用です。この「FBO」コード・パスは、OpenGLパイプラインが有効なときにデフォルトで有効になりますが、それは、グラフィックス・ハードウェアとドライバがこのOpenGL拡張をサポートしている場合に限られます。この拡張は一般に、Nvidia GeForce/Quadro FXシリーズ以降およびATI Radeon 9500以降で使用できます。「FBO」コード・パスがアプリケーションの問題の原因となっている疑いがある場合、次のシステム・プロパティを設定してそれを無効にすることができます。

-Dsun.java2d.opengl.fbobject=false

このプロパティが設定されると、Java 2Dは古いpbuffer-basedコード・パスにフォール・バックします。

特定のJava 2D操作で得られる視覚的な結果が、OpenGLパイプラインを有効にしたときとしなかったときで異なる場合、それはおそらく、グラフィックス・ドライバのバグを示しています。同様に、OpenGLパイプラインを有効にしたときに、しなかった場合よりもJava 2Dレンダリングのパフォーマンスが大幅に悪化する場合、その原因はおそらくドライバまたはハードウェアの問題です。

どちらの場合も、通常のバグ報告チャネルを通じて詳細なバグ・レポートを提出してください。「バグ・レポートの提出」を参照してください。バグ・レポートの提出時にはできるだけ詳しく記述し、必ず次の情報を含めてください。

  • オペレーティング・システム(Ubuntu Linux 6.06、Windows XP SP2など)

  • グラフィックス・ハードウェアの製造元とデバイスの名前(Nvidia GeForce 2 MX 440など)

  • ドライバの正確なバージョン(ATI Catalyst 6.8、Nvidia 91.33など)

  • J2D_TRACE_LEVEL=4をコマンド行に指定したときの出力(前のセクションで説明)

  • Oracle SolarisまたはLinuxの場合は、glxinfoコマンドの出力

目次      

Copyright © 1993, 2020, Oracle and/or its affiliates. All rights reserved.