2

ここに投稿するのにどのコードが適切かはわかりませんが、これをデバッグする方法さえ本当に疑問に思っています。ARFaceTrackingConfiguration を有効にして ARSCNView を表示し、バックグラウンド スレッドで顔のジオメトリに対して頻繁にビジョンVNDetectFaceLandmarksRequestを実行します。ARSCNView.hitTestiOS 12 の前にラグの問題はありませんでした。今でも断続的ですが、発生すると画面全体が一度に数秒間フリーズし、エラーが表示されます。

Execution of the command buffer was aborted due to an error during execution. Discarded (victim of GPU error/recovery) (IOAF code 5)

関連しているかどうかはわかりませんが、SceneKit レンダリング スレッド (com.apple.scenekit.scnview-renderer) で時折クラッシュが発生し、デバッグに使用できるバックトレースがありません。カスタム メタル シェーダーは使用していません。 、これらのラグ/クラッシュが発生した時点で SceneKit ジオメトリをレンダリングしていません。

私は、ARSCNView がサポートするのは金属で裏打ちされたレンダリングのみだと考えているため、OpenGL レンダリングを使用できません。この質問に従って、照明環境を設定しないことも試しましたが、問題は解決していないようです。

ARSCNViews のレンダリング中にこれらのエラーが発生したことがあり、これらの遅延をデバッグする方法についてアドバイスがあれば、大歓迎です。

アップデート

Vision ランドマーク リクエストを極端に調整することで、これらのラグと GPU エラーを解消することができました。これらは、iOS 12 で多くの高価なグラフィック操作を行っただけで発生しているようです。この回避策は、SceneKit レンダラーのクラッシュを助けていないようです

4

1 に答える 1