私は Metal ベースのアプリを開発しています。場合によっては、適切にコンパイルおよびリンクされたシェーダー コードによって、エラーが発生することなくアプリケーションが単純にクラッシュすることがあります。
「クラッシュ」は、視覚的な出力の停止 (場合によっては、いくつかの交互フレームの短いスタッターが先行する) で構成されますが、それ以外の場合は、アプリケーションの残りの通常の進行です。Xcode パフォーマンス監視ユーティリティは 60fps を報告しますが、GPU レイテンシは 0ms であり、CPU 側の実行は継続し、Metal API への呼び出しは引き続き正常に完了します。
コンソールにエラーは報告されません。
これは、シェーダー コードのどこからエラーが発生したかを示す兆候がないため、デバッグが非常に困難です。これが実際にどのような条件下で発生するのかを知っていれば、チェックすべき項目のリストを作成できるので助かります。それ以外の場合は、これが発生するたびに暗闇で撮影しています。