5

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

(この質問を書いている時点で、HEAD は commit c3e06e0 です)

そして、呼び出し時にエラーが発生しました

newComputePipelineStateWithFunction

これは、ViewController で MTLDevice をセットアップしている間です (95 行目):

https://github.com/mateuszbuda/Sudoku/blob/c3e06e0e1edc724eea20962f32e49f0df8143b7d/Sudoku/ViewController.swift

私が得るエラーは次のとおりです。

Error Domain=AGXMetal Code=1 "Compiler encountered an internal error"

iOS 8.1.3を搭載したiPhone 6 Plusでこれを実行しています

私が得たエラーの原因は何ですか?

4

2 に答える 2

2

あなたは、メタルで未完の問題の 1 つを経験しています。エラーが「内部」と表示される理由は、これがコンパイラ エラーであり、コンパイラが原因であるためです。あなたじゃない。これを試して:

  1. コンパイルできない「.metal」ファイルのすべてのコードをコピーします。
  2. .metal ファイルを削除します (参照だけではありません)。
  3. users/yourUser/Library/Developer/Xcode/DerivedData にある「DerivedData」フォルダーの内容をすべて削除します。
  4. 新しい .metal ファイルを作成し、この新しい金属ファイルに古いコードを貼り付けます。

ビルドして実行すると、準備完了です。このエラーを見つけた人は、何らかのエラー レポートを Apple に送信して、適切にデバッグし、Xcode の次のリリースで修正できるようにしてください。

于 2015-10-12T00:05:08.420 に答える
0

同じ問題を抱えている人のために、私はそれを理解しました。

これは、カーネル関数に何か問題があることを意味します。Xcode でエラーが表示されなくても、おそらくコンパイルされません。

于 2015-03-24T16:12:44.907 に答える