我正在尝试制作一个可以在OSX / iOS上执行某些并行计算的可可触摸框架,我在设置测试时遇到了一些问题。每当我试图跑:
library = device.newDefaultLibrary()!
我遇到了错误:
/Library/Caches/com.apple.xbs/Sources/Metal/Metal-55.2.8/Framework/MTLLibrary.mm:1016: failed assertion `filepath must not be nil.'
我还试图直接从捆绑中加载着色器而没有成功。
如何正确加载金属着色器,以便在框架/测试中使用它们?
谢谢!
答案 0 :(得分:1)
您可以使用以下代码从框架加载Metal库:
let library = try! sceneKitView.device!.newLibraryWithFile(NSBundle(forClass: TheNameOfThisClass.self).URLForResource("default", withExtension: "metallib")!.path!)
但我在2015年9月提交了rdar:// 22618641,其中一个示例项目证明您无法从框架加载预编译的Metal库 - 当您尝试使用该库时,您会遇到上述错误。
(好吧,你可以加载库,你实际上无法使用它。)