iOS Metal:无法使用函数创建计算管道状态
iOS Metal: Unable to create compute pipeline state with function
我正在尝试使用 iOS Metal Framework 在 GPU 上制作一个简单的数独应用程序。
我正在按照此博客的说明进行操作 post:
我在这里修改我的代码:
https://github.com/mateuszbuda/Sudoku
(写这个问题时 HEAD 是提交 c3e06e0)
而且我在调用
时遇到了错误
newComputePipelineStateWithFunction
即在 ViewController(第 95 行)中设置 MTLDevice 时:
https://github.com/mateuszbuda/Sudoku/blob/c3e06e0e1edc724eea20962f32e49f0df8143b7d/Sudoku/ViewController.swift
我得到的错误是:
Error Domain=AGXMetal Code=1 "Compiler encountered an internal error"
我 运行 iPhone 6 Plus iOS 8.1.3
有人知道是什么导致了我收到的错误吗?
对于遇到同样问题的任何人,我已经解决了。
这只是说明内核函数有问题。它很可能无法编译,即使您在 Xcode.
中没有看到任何错误
您正在经历 Metal 中未完成的事情之一。错误显示 "internal" 的原因是因为这是编译器错误,由编译器引起。不是你。试试这个:
- 复制“.metal”文件中不可编译的所有代码。
- 删除 .metal 文件(不仅仅是引用)。
- 删除位于 users/yourUser/Library/Developer/Xcode/DerivedData
的 "DerivedData" 文件夹的所有内容
- 创建一个新的 .metal 文件并将旧代码粘贴到这个新的 metal 文件中。
现在构建 运行,你应该可以开始了。
发现此错误的任何人请确保向 Apple 发送某种错误报告,以便他们可以正确调试并在 Xcode.
的下一版本中修复它
我正在尝试使用 iOS Metal Framework 在 GPU 上制作一个简单的数独应用程序。
我正在按照此博客的说明进行操作 post:
我在这里修改我的代码:
https://github.com/mateuszbuda/Sudoku
(写这个问题时 HEAD 是提交 c3e06e0)
而且我在调用
时遇到了错误newComputePipelineStateWithFunction
即在 ViewController(第 95 行)中设置 MTLDevice 时:
https://github.com/mateuszbuda/Sudoku/blob/c3e06e0e1edc724eea20962f32e49f0df8143b7d/Sudoku/ViewController.swift
我得到的错误是:
Error Domain=AGXMetal Code=1 "Compiler encountered an internal error"
我 运行 iPhone 6 Plus iOS 8.1.3
有人知道是什么导致了我收到的错误吗?
对于遇到同样问题的任何人,我已经解决了。
这只是说明内核函数有问题。它很可能无法编译,即使您在 Xcode.
中没有看到任何错误您正在经历 Metal 中未完成的事情之一。错误显示 "internal" 的原因是因为这是编译器错误,由编译器引起。不是你。试试这个:
- 复制“.metal”文件中不可编译的所有代码。
- 删除 .metal 文件(不仅仅是引用)。
- 删除位于 users/yourUser/Library/Developer/Xcode/DerivedData 的 "DerivedData" 文件夹的所有内容
- 创建一个新的 .metal 文件并将旧代码粘贴到这个新的 metal 文件中。
现在构建 运行,你应该可以开始了。 发现此错误的任何人请确保向 Apple 发送某种错误报告,以便他们可以正确调试并在 Xcode.
的下一版本中修复它