GLSLで記述されたシェーダーを使用するアプリケーションがある場合、現実世界での配布とデスクトップおよびモバイルの最適な戦略は何ですか?
私はこれをバイナリ形式で、またはプレーンなシリアル化されたテキストとして配布することを目指しています。これについての良い提案をお願いします。
GLSLで記述されたシェーダーを使用するアプリケーションがある場合、現実世界での配布とデスクトップおよびモバイルの最適な戦略は何ですか?
私はこれをバイナリ形式で、またはプレーンなシリアル化されたテキストとして配布することを目指しています。これについての良い提案をお願いします。
回答:
バイナリシェーダーを使用する主な理由は、テキストシェーダーのコンパイルがターゲットデバイスのワークロードに対して大きすぎる場合です。バイナリGLSLシェーダーには標準化された形式がないため、サポートするGPU /ドライバーごとに異なるものが必要になります。シェーダーをソース形式で配布し、最初の実行時にそれらをバイナリ形式にキャッシュし、その後そこから読み込むことをお勧めします。再度、バイナリを使用することを正当化するためにパフォーマンスボトルネックが実際にあるかどうかを最初にテストします。
考慮すべき点の1つは、オフラインテキストシェーダーオプティマイザーです。