カスタム Core Image フィルタ カーネルを Metal Shading Language に移行する際に、デフォルトの Metal ライブラリ (default.metallib) のビルドでエラーが発生しました。
metallib: error: exactly one input file required
私は、これらが別々の .metal ファイルにある可能性があるという印象を受けました。それらを 1 つのファイルにマージしようとすると、次のエラーが発生します。
Metal library creation failed: Error Domain=MTLLibraryErrorDomain Code=3 "Filters module must contain no vertex/fragment/kernel functions but contains 1 kernel function"
コンピューティング カーネルが既定のライブラリで使用可能な関数として表示されないようにするためのmetal
名前空間。coreimage
別のライブラリを構築することを推奨するこのSOの回答が見つかりました:
Metal: .metal ファイルで定義された vertexFunction が、MSL cikernel のコンパイラ オプションとリンカ オプションを設定すると nil になる