iOS Metal:无法使用功能创建计算管道状态

kos*_*tek 5 iphone gpgpu ios swift metal

我试图制作一个简单的应用程序,用于使用iOS Metal Framework在GPU上解决数独问题。

我正在按照此博客文章中的说明进行操作:

http://memkite.com/blog/2014/12/15/data-parallel-programming-with-metal-and-swift-for-iphoneipad-gpu/

我在这里将代码版本化:

https://github.com/mateuszbuda/Sudoku
Run Code Online (Sandbox Code Playgroud)

(在编写此问题时,HEAD是commit c3e06e0)

而且我在打电话时遇到错误

newComputePipelineStateWithFunction
Run Code Online (Sandbox Code Playgroud)

在ViewController中设置MTLDevice时(第95行):

https://github.com/mateuszbuda/Sudoku/blob/c3e06e0e1edc724eea20962f32e49f0df8143b7d/Sudoku/ViewController.swift
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:

Error Domain=AGXMetal Code=1 "Compiler encountered an internal error"
Run Code Online (Sandbox Code Playgroud)

我在装有iOS 8.1.3的iPhone 6 Plus上运行它

有人知道什么会导致我得到错误吗?

kos*_*tek 0

对于遇到同样问题的人,我已经弄清楚了。

这只是意味着内核函数有问题。即使您在 Xcode 中没有看到任何错误,它也很可能无法编译。