web-dev-qa-db-ja.com

アプリケーション起動時のDYMTLInitPlatformプラットフォーム初期化成功ログとは何ですか?

Xcode 8/iOS 10 SDKに更新しました。アプリをコンパイルして実行すると、[DYMTLInitPlatform] platform initialization successful出力内の他のすべてのログの前。

それは有害でも何でもありませんが、Xcode 7.3/iOS 9.3 SDKにはなかった、そのメッセージが何に関連しているのか疑問に思いました。

19
Can Poyrazoğlu

これは、AppleのMetal APIキャプチャロジック(Appleの内部)からのデバッグメッセージです。そのため、SpriteKitまたはSceneKitアプリで表示されていると少し混乱します。

あなたはおそらくメッセージも見るでしょう:

2018-05-08 13:03:01.166917-0400 <Your-App-Name>[1728:741547] [DYMTLInitPlatform] platform initialization successful
2018-05-08 13:03:01.255515-0400 <Your-App-Name>[1728:741333] Metal GPU Frame Capture Enabled
2018-05-08 13:03:01.255994-0400 <Your-App-Name>[1728:741333] Metal API Validation Enabled

GPUフレームキャプチャを無効にすることで、デバッグツールとともにこれらのログメッセージを無効にすることができます(以下の警告をお読みください)。

アプリ名>スキームの編集>実行>「GPUフレームキャプチャ」を「自動的に有効」から「無効」に変更します

Disable GPU Frame Capture in Xcode 9

SpriteKit/SceneKit開発者

SpriteKitゲームを作成しているだけで、Metalを使用していない場合は、GPUフレームキャプチャを無効にして、グラフィックアーティファクトのデバッグに使用する必要があるまで、パフォーマンスを向上させることができます。

金属開発者

Metalを使用している場合は、検証とともにGPUフレームキャプチャを有効にしたままにすることをお勧めします。これは、Metal APIの誤用(結果としてGPUが再起動する)を防ぐ唯一の方法だからです。

Mac/iOSでのGPUの再起動は「ナイスポーズ」のように見えます。これは、コマンドバッファーの指示が正しくない場合、バッファーが破棄され、GPUが文字通りオフにされて再びオンになるためです。そのコマンドバッファーからデータが失われ、レンダリングが一時停止します。場合によっては、システムログを確認することでしか発生を確認できない場合があります。

AppleのドキュメントとGPUデバッグビデオ

AppleのMetalのドキュメントで推奨 Metal APIを正しく使用していることを確認するためにこれらをそのままにしておくことをお勧めしますが、ログが煩わしい場合は、定期的に開発およびチェックしている間は無効にできます。

GPUフレームキャプチャとデバッグツールの詳細については、 AppleのMetal 2最適化およびデバッグ2017 WWDCビデオ を参照してください。

4
Paul Solt

私は同じ状況に出くわしました。

推測1:MTLはMetalの略なので、グラフィック関連のログである可能性があります。

推測2:プロジェクトでffmpeg関連のライブラリを使用しましたか?それらをインポートする前から、そのようなログはありません。

また、これらのログを非表示にする方法を見つけます: 奇妙な不要なXcode 8ログを非表示にします

私は試してみましたが、うまくいきます

2
Edwin Cen