実行時に生成されるシェーダコードについては、コンパイル済みの金属シェーダ言語(MSL)コードを直接(.metallib
ファイルにあり、newLibraryWithData:error:
メソッドで使用されているように)コードを直接生成することができるかどうかを調べることに興味があります。 (newLibraryWithSource:options:error:
メソッドで使用される)人間が読めるMSLソースコードを自動生成する代わりに、このためメタルコンパイルされたメタリブシェーダファイルのフォーマット?
理由は2つある:
- コンパイル・コードのフォーマットによっては、むしろ人間をいじりより自動生成コンパイルされたシェーダコードへのプログラムのための簡単かつきれいかもしれ読める形式。
- シェーダのコンパイルステージを削除すると、ランタイム生成シェーダの作成が高速化されます。
コンパイルされたMSLコードの形式については、.metallib
ファイルに記載されていますか?コンパイルされた形式はGPU固有のものか、またはnewLibraryWithData:error:
メソッドの最終コンパイル段階でGPUレベルに変換される中間言語形式として存在しますか?
ありがとうございました。内部構造を理解するためのあなたのソースは何ですか(中間言語とメタなど)。 –