m13o

2020-08-18 Tue 20:08
MetalシェーダーをコマンドラインでコンパイルするmacOS metal programming

一度書いたらしばらく書く事はないので, あれはどうやるんだったけというのを何故か毎回調べているので, いい加減メモろうという事でメモ.

とはいっても, Appleのドキュメントに書いてある通りではある(が, Appleのドキュメントは良くリンクが切れるので自分用にメモはしておいた方がいい)

metalシェーダーのファイル名が shader.metal だった場合,

xcrun -sdk macosx metal -c shader.metal -o shader.air

と, まずはairファイルに変換する. `-sdk' はmacOS向けはmacosx, iOS向けはiphoneosとなるらしい.

airファイルは中間表現なので, これをプログラムから直接読み込む事はできない(頑張ればできるのかもしれないがやり方は知らない知りたくない).

最終的にmetallibファイルに変換する必要がある. それを行うのが以下のコマンド.

xcrun -sdk macosx metallib shader.air -o shader.metallib

metalarファイルというのもあり, airファイルをアーカイブする物らしい……が, 使った事がないのでよくわからない.

Metalシェーダー言語仕様(v2.3)の存在も良く忘れて調べるのでついでにリンクだけ残しておく(その内Appleが消しそうではあるが)

注意事項としては, Xcodeの常として, Commandline Toolsをインストールしておかないとコマンドがない等のエラーが発生する. また, XcodeのPreferencesからLocationsのCommand Line Toolsが設定されていないとsdkがみつからない等のエラーが発生する.

罠.