1,340 バイト追加,
2020年6月25日 (木) 02:36 [[Metal]]のコマンドラインツールでライブラリを構築する
[[Metal Shading Language]](.metalファイル)の[[コンパイル]]は[[Xcode]]や[[Xamarin.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のプロジェクトに追加する。
<source lang="swift">
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)")
}
</source>
[[category: Metal]]