将多个.metal文件编译为一个.metallib

时间:2018-12-10 09:47:36

标签: metal core-image

我目前正在使用Metal编写一些自定义的Core Image滤镜。出于结构上的考虑,我想将不同的内核放入具有一些常见包含的不同.metal文件中,就像处理“普通”源文件一样。 但是,当metallib工具将由Metal编译器创建的不同.air文件捆绑到一个.metallib文件中时,只有第一个输入.air文件中定义的内核函数才被赋予metallib可见。其他.air文件中的功能似乎未包含在内。是什么原因呢?

我认为(作为Metal文件的默认编译行为),所有Metal源都被编译到一个库中,然后每个自定义CIFilter类都使用该库以其内部函数实例化其内部CIKernel需要。 现在,我为带有自定义构建规则的每个自定义过滤器编译了一个.metallib文件,并使用自定义构建阶段将它们全部复制到了我的框架中。这似乎不是预期的方式...

0 个答案:

没有答案