ストリーミングはほとんどのブラウザと
Developerアプリで視聴できます。
-
Metal Performance HUDについて
グラフィックス性能をリアルタイムで分析するための新たなヘッドアップディスプレイパネルについて紹介します。Metal Performance HUDにはグラフィックスの重要な統計値が表示されるため、従来判断が難しかったパフォーマンスの問題をモニタリング、記録、特定することができます。
リソース
関連ビデオ
Tech Talks
-
ダウンロード
こんにちは Nat Brownと申します Appleのゲームテクノロジーを 担当するエンジニアチームの マネージャーをしています 今日は Appやゲームで グラフィックの重要な統計値を収集し リアルタイムに表示する ヘッドアップディスプレイについて ご説明したいと思います では Metal Performance HUD を見てみましょう これを有効にすると Appの右上に オーバーレイとして表示されます これは デベロッパやテスターが パフォーマンスに関する潜在的な問題を 簡単に特定し 基本的な情報を記録して 後から分析できるように するためのツールです このHUDは デバッグや パフォーマンス分析のための 既存のツールを補完するものであり それらに取って代わるものではありません スクリーンショットやログだけで 品質管理チームやユーザーから 有用な情報を得ることができ 再現が困難な パフォーマンスの問題や グラフィックの不具合を より迅速に再現 分析 修正 できるようにするためのものです HUDに表示されるデータと 収集できるデータについてご説明します HUDの一番上の部分には GPUとディスプレイの情報 使用されているデバイス 対象となる解像度 ディスプレイのスケーリング状態が 表示されます HUDには ディスプレイが ダイレクトパスとコンポジットパスの どちらであるかも表示されます ダイレクトパスは バッファリングが少なく 描画を実行してから 画面に表示されるまでの リフレッシュの間隔が 最も短い方法です コンポジットの場合は システムのUI要素や Appの追加レイヤーが 画面にオーバーラップすることで 追加のバッファリングや 表示の遅延が発生することがあります また 使用されている 物理的なディスプレイの 最大リフレッシュレートも表示されます 可変リフレッシュレートの ディスプレイの場合は ディスプレイの最小リフレッシュレートも 表示されるため 使用可能なリフレッシュレートの 範囲がわかります 次に リアルタイムデータの 1つ目の列には 瞬間フレームレート つまり 1秒ごとのフレーム数(FPS)が ヘルツ単位で表示され 次にプリタイム つまり表示間の時間 (フレーム時間またはフレーム間隔 とも呼ばれる)がミリ秒で表示されます 最後に そのフレーム間隔の中で 実行されたGPU処理の量も ミリ秒単位で計測されます 2つ目の列には 直近1.5秒間のフレームにおける フレームレート フレーム間隔 GPU時間の各最小値について もう少し詳細な情報が表示されます この低い方の値が平均値から 大きく乖離している場合は 赤色で強調表示されます HUDの数値データの 最後の列には 直近1.5秒間における 最高瞬間フレームレート 直近1.5秒間における 最大単一フレーム時間 そして直近1.5秒間の フレーム間隔での処理における GPUコストの最高値(ミリ秒) が表示されます フレーム間隔やGPU時間が 平均よりも異常に高い場合は やはり赤で強調表示されます HUDの下部にある 最後のセクションには プロセスおよびGPUのメモリ消費量の 情報が表示されます これは時間の経過とともに発生し得る リークを発見するのに役立ちます また 表示の間隔と 消費されたGPU時間の 二重線グラフも表示されます この情報の目的は デベロッパやテスターが 一時的なフレームドロップを 見逃すことなく XcodeやInstruments の高度なツールを使って より深いテスト デバッグ パフォーマンスチューニングができるよう 問題を発見することです では Metal Performance HUD はどのように有効にするのでしょうか? 驚かれるかもしれませんが さまざまな方法で 有効にすることができます Appleは デベロッパの皆さんが このような形のデータ収集を さまざまな方法で利用し 自動化したいと思っていることを 理解しています 1つ目の方法は iOS macOS tvOS向けの開発中に Xcode 14から有効にすることです 「Run」Schemeにある 「Diagnostics」タブ下で HUDを有効にする オプションがあります 「Show Graphics Overview」を選択し システムログへのデータ記録を 有効にするために 「Log Graphics Overview」を選択します iOSとtvOSでは Xcodeにデバイスを接続して 開発用に有効化している場合 「Developer」の設定で HUDとログ記録を 有効にすることができます 「Settings」>「Developer Settings」 に移動し 下にスクロールしてHUDと オプションのログ記録を有効にするだけです iOSとtvOSの場合 HUDの表示とログ記録の実行は 自分が作成したAppでのみ可能です つまり Xcode経由 または TestFlightを使用して インストールしたAppということです macOSでは 環境変数を通じて Xcodeの外部でHUDを 有効にすることができます HUDを表示するには MTL_HUD_ENABLEDの環境変数を 1に設定し ログ記録をトリガするには MTL_HUD_LOGGING_ENABLED 環境変数を1に設定します 別の便利な方法として Appのユーザーデフォルトを 使用することもできます macOS iOS tvOSでは 標準のユーザーデフォルトで MetalForceHudEnabled キーをtrueに設定すると それ以降にAppを起動した時に HUDが表示され ログ記録が行われるようになります macOSでは グローバルな値を 設定することで Metalベースの すべてのAppでHUDを 表示することができます 最後に Info.plistに MetalHUDEnabledキーを追加することで HUDを常に有効にすることができます HUDを有効にしている場合は CAMetalLayerの developerHUDProperties辞書を 使って HUDの表示と非表示 ログ記録の有効化と無効化を 行えるようになりました modeキーをdefaultに設定すると HUDが表示されます modeキーをクリアすると HUDが非表示になります loggingキーをdefaultに設定すると ログ記録が有効になります loggingキーをクリアすると ログ記録が無効になります Info.plistキーを追加して このAPIを使用すると 内部ビルドでテスターに HUDの表示/非表示を切り替える UIスイッチを提供することができます では Metal Performance HUD のログの内容を見てみましょう Metal Performance HUDは 約1秒に1回 収集したデータを要約したものを システムログに書き込みます これを 自分なりの方法で 分析することができます コンソールAppを起動して 出力をmetal-HUDという文字列で フィルタリングするだけで ログを確認できます 結果の各行は 「metal-HUD」 という文字列で始まります 次に最初のフレーム番号 そしてこれが フレームミスの推定数です この場合 ミスがなかったということです 次は プロセスのメモリ使用量です ここでは56.05メガバイトです その後に続くのは 各フレームの 表示間隔とGPU時間を ミリ秒で示したものです これらのデータをオフラインで分析したり キャプチャしたゲームプレイのビデオと 関連付けたりすると さらなるデバッグや最適化が必要な箇所を より正確に把握するのに 役立つかもしれません 今日は Metal Performance HUDについて 楽しく学んでいただけたでしょうか? HUDを使うと ゲームのパフォーマンスを 視覚化することができます 微妙なパフォーマンスの問題を発見し Instrumentsなどの高度なツールを 使用すべき箇所を選ぶのに役立ちます すべてのAppleプラットフォームで 簡単に有効化できますし ログに記録されたデータをキャプチャして 独自の方法で分析することも可能です ゲームやグラフィックスAppの最適化に ぜひ役立てていただければ幸いです ご意見やご感想がありましたら feedbackassistant.apple.com を通じてお知らせください ご視聴ありがとうございました
-
-
特定のトピックをお探しの場合は、上にトピックを入力すると、関連するトピックにすばやく移動できます。
クエリの送信中にエラーが発生しました。インターネット接続を確認して、もう一度お試しください。