「Metalのコマンドラインツールでライブラリを構築する」の版間の差分
ナビゲーションに移動
検索に移動
Administrator (トーク | 投稿記録) (ページの作成:「Metalのコマンドラインツールでライブラリを構築する Metal Shading Language(.metalファイル)のコンパイルはXcodeやXamarin.…」) |
Administrator (トーク | 投稿記録) |
||
(同じ利用者による、間の2版が非表示) | |||
3行目: | 3行目: | ||
[[Metal Shading Language]](.metalファイル)の[[コンパイル]]は[[Xcode]]や[[Xamarin.Mac]]([[Visual Studio for Mac]])を使うと全自動で行われるので特に意識することはない。 | [[Metal Shading Language]](.metalファイル)の[[コンパイル]]は[[Xcode]]や[[Xamarin.Mac]]([[Visual Studio for Mac]])を使うと全自動で行われるので特に意識することはない。 | ||
− | これは[[SPIR-V]] | + | これは[[SPIR-V]]からmetallibファイルを自動生成するツールを作る際に必要になったものであり普通の人には縁のない話だと思われる。 |
− | == 作る == | + | ==作る== |
− | + | 1つの[[ソースコード]](.metalファイル)は1つの[[中間コード]](.airファイル)にコンパイルされる。 | |
xcrun -sdk macosx metal -c vertex.metal -o vertex.air | xcrun -sdk macosx metal -c vertex.metal -o vertex.air | ||
xcrun -sdk macosx metal -c fragment.metal -o fragment.air | xcrun -sdk macosx metal -c fragment.metal -o fragment.air | ||
− | 複数の中間コード(. | + | 複数の中間コード(.airファイル)をリンクして最終的な1つの[[ライブラリ]](.metallibファイル)を生成する。 |
xcrun -sdk macosx metallib *.air -o MyLibrary.metallib | xcrun -sdk macosx metallib *.air -o MyLibrary.metallib | ||
− | == 使う == | + | ===備考=== |
+ | 当初、xcrunコマンドを叩くと以下のようなエラーがでた。 | ||
+ | xcrun: error: unable to find utility "metal", not a developer tool or in PATH | ||
+ | |||
+ | Xcodeの「Command Line Tools」の設定が空欄になっていたのが原因のようだ。[[homebrew]]を[[インストール]]した直後はなぜか空欄になってしまうようだ。 | ||
+ | |||
+ | [[ファイル:Xcode-command-line-tools-setting.png|フレームなし|640x640ピクセル]] | ||
+ | |||
+ | ==使う== | ||
ライブラリ(.metallibファイル)をXcodeやXamarin.Macのプロジェクトに追加する。 | ライブラリ(.metallibファイル)をXcodeやXamarin.Macのプロジェクトに追加する。 | ||
2020年6月25日 (木) 02:46時点における最新版
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
備考[編集 | ソースを編集]
当初、xcrunコマンドを叩くと以下のようなエラーがでた。
xcrun: error: unable to find utility "metal", not a developer tool or in PATH
Xcodeの「Command Line Tools」の設定が空欄になっていたのが原因のようだ。homebrewをインストールした直後はなぜか空欄になってしまうようだ。
使う[編集 | ソースを編集]
ライブラリ(.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)")
}