「Metalのコマンドラインツールでライブラリを構築する」の版間の差分

提供: MonoBook
ナビゲーションに移動 検索に移動
(ページの作成:「Metalのコマンドラインツールでライブラリを構築する Metal Shading Language(.metalファイル)のコンパイルXcodeやXamarin.…」)
(相違点なし)

2020年6月25日 (木) 02:36時点における版

Metalのコマンドラインツールでライブラリを構築する

Metal Shading Language(.metalファイル)のコンパイルXcodeXamarin.Mac(Visual Studio for Mac)を使うと全自動で行われるので特に意識することはない。

これはSPIR-Vからmetallibファイルを生成するツールを作る際に必要になったものであり普通の人には縁のない話だと思われる。

作る

1つのソースコード(.metalファイル)は1つの中間コード(.airファイル)にコンパイルされる。

xcrun -sdk macosx metal -c vertex.metal   -o vertex.air 
xcrun -sdk macosx metal -c fragment.metal -o fragment.air

複数の中間コード(.airファイル)をリンクして最終的な1つのライブラリ(.metallibファイル)を生成する。

xcrun -sdk macosx metallib *.air -o MyLibrary.metallib

使う

ライブラリ(.metallibファイル)をXcodeやXamarin.Macのプロジェクトに追加する。

guard let libraryFile = Bundle.main.path(forResource: "MyLibrary", ofType: "metallib") else { return }
do {
    let myLibrary = try device.makeLibrary(filepath: libraryFile)
} catch let error {
    print("Library error: \(error.localizedDescription)")
}