ドライバー品質とGLSLコンパイラー
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/05/04 13:13 UTC 版)
「OpenGL」の記事における「ドライバー品質とGLSLコンパイラー」の解説
Direct3D (Windows) にはWHQL (Windows Hardware Quality Lab) というドライバー品質保証の仕組みが存在するが、OpenGLコミュニティ総体にはそういったドライバー認証システムは存在していなかった 。またDirect3Dとは違ってOpenGLおよびOpenGL ESドライバーはベンダーや個々の製品によって出来不出来の差が激しく、このドライバー品質問題に関して開発者やユーザーから不満の声が上がっていた。さらに、GLSLのリファレンスコンパイラー実装はKhronosグループによって提供されているものの、OpenGL/OpenGL ESにおいてはシェーダープログラムの共通バイトコード仕様が定義されていないためにGLSLオフラインコンパイラーは存在せず、シェーダープログラムのコンパイルはベンダーごとのドライバーに実装されたGLSLオンラインコンパイラーによって実行時になされる。しかし、OpenGL仕様にはエラーハンドリングなどに関して厳密に規定されていないあいまいな部分が存在することから、現実問題としてベンダーごとにコンパイラーの挙動が異なるという処理系依存動作を許可してしまっているのが実態であり、これがアプリケーション開発者の負担増加につながり、またドライバーやアプリケーションプログラムにおけるバグの温床となってしまう。 OpenGL 4.4以降においては、Khronosグループによる品質保証制度を新設し、品質問題の改善を進めることとなった。また、OpenGLの後継APIとなるVulkanでは、前述のようにシェーダープログラムの中間言語としてSPIR-Vを採用している。OpenGL 4.6ではSPIR-Vのサポートがコア機能として組み込まれた。 なおGoogleによるANGLE(英語版)プロジェクトのように、Windows上でDirect3D APIをラップしてOpenGL API (OpenGL ES API) をエミュレートすることで、OpenGLドライバーの品質問題を回避しているものも存在する。ANGLEプロジェクトでは他にも、Vulkan APIをラップしてOpenGL ES APIをエミュレートすることで、OpenGLドライバーの品質問題だけでなく、パフォーマンスを改善する取り組みが行なわれており、WindowsだけでなくLinuxやAndroidでも利用できる。
※この「ドライバー品質とGLSLコンパイラー」の解説は、「OpenGL」の解説の一部です。
「ドライバー品質とGLSLコンパイラー」を含む「OpenGL」の記事については、「OpenGL」の概要を参照ください。
- ドライバー品質とGLSLコンパイラーのページへのリンク