ストリーミングはほとんどのブラウザと
Developerアプリで視聴できます。
-
Discover Core Imageデバッグ技術
Xcode環境変数を使用して、Core Imageパイプライン内のレンダリングおよび最適化の問題を検出して、修正します。Core Imageグラフを可視化するための環境変数の設定方法を紹介します。Core Imageグラフの生成方法、およびそれを解釈してメモリ、色、およびパフォーマンスの問題を発見し、Core Imageパイプラインを改善および最適化する方法について学びます。
リソース
関連ビデオ
WWDC21
WWDC20
-
ダウンロード
こんにちは ようこそWWDCへ
“Core Image デバッグ技術” 皆さん こんにちは デイヴィッド・ヘイワードです このプレゼンテーションでは 強力なCore Imageデバッグ技術をご紹介します デバッグに新機能があります アプリ内のCore Imageの働きです デバッグ詳細機能 CI_PRINT_TREEをお伝えします 今から CI_PRINT_TREEとは何か 有効にしたり 操作する方法 さらに このファイルの生成の 流れをお見せします
では 初めに CI_PRINT_TREEとは何でしょう? それは同じインフラに基づくもので Xcode内で Core Imageクイックルックを支援します Core Imageグラフの瞬時視覚化―
Xcodeデバッガに見事に統合されます
ご説明いたしましょう フィルター生成のコードが デバッグしているとします 入力プロパティ設定および 出力画像プロパティ取得です
デバッグ中に CI画像変数を乗せると アドレスのポップオーバーが表示されます 目のアイコンをクリックすると 新ウィンドウが表示 画像作成レシピの画面が表示されます
しかしイメージのクイックルックは 始まりにすぎません CI_PRINT_TREEは 柔軟な環境変数で いくつかのモードと操作があり―
Core Imageの最適化と レンダリング画像の確認ができます まず どうCI_PRINT_TREEを 有効にするか知りましょう
CI_PRINT_TREE環境変数を 有効にする方法は2つ Xcodeターゲットスキーム編集が 最も一般的です 引数ペインを追加 環境変数リストに追加します
そして CI_PRINT_TREE環境変数を有効に 実行アプリが起動する前に設定します
次は CI_PRINT_TREEの操作です
CI_PRINT_TREE変数の型は グラフの種類 出力の種類 オプションです それぞれの役割を次のスライドでお伝えします
グラフの種類は Core Imageレンダーの3段階です 各レンダリング画像の 初期状態を見る場合は1型指定 こちらは色空間の具視化に便利です Core Imageがレンダーを 最適化するのを見る場合は2型指定 Core Imageのレンダリング 結合確認に便利で レンダリング段階の削減です
4型の指定は Core Imageの GPUプログラムへの連結方法です 各レンダーに必要な 中間バッファー数の確認に便利です
最後に上記の変数が結合されます 例えば7を指定すると グラフ1 2 4の印刷 PDFかPNGで出力します “Either”指定の場合は全てのレンダー Core Imageが 決定木を書類として保存します Mac OS上では 書類はtemporary itemsに保存されます iOS上では書類フォルダに保存され 不可能な場合はtemporaryとなります
出力型指定がない場合 Core Imageが決定木を出力します 縮小テキスト形式のみ適用範囲外です またConsole.appにテキスト形式があります CI_LOG_FILE=“oslog”による設定です iOS開発にあたり より便利となりました 最後は様々な追加の選択指定です “context equals name”の使用で 出力制限でき CIコンテキスト指定だけをログ出力します
同じく フレームダッシュナンバーも 出力制限するので 各コンテキストの nthレンダーだけをログします
入力 中間の要求選択もあり 出力画像は書類に含まれます とても有用な デバッグ情報提供が可能ですが 注意が必要です 書類作成に時間とメモリが増加するからです 次はCI_PRINT_TREEファイル取得方法です
Mac OS上では とても簡単です temporaryを開くだけです そこにCore Imageが作成した書類があります サンドボックス化されたアプリに unique temporaryがあります iOSアプリでデバッグする際の ファイル取得が容易になります 使用するべき設定が一つあります
アプリのカスタムiOSターゲットプロパティで iTunesファイルが共有キー“yes”値を サポートしているか確認します
この設定でiOSデバイスを接続してください Findersのサイドバーを選択 ペインファイルへ そこで アプリの文書を確認できます それをMacのドライブにドラッグします
次にお話するのは CI_PRINT_TREEファイルの解釈です
CI_PRINT_TREE文書の読み方ヒントです
まず 入力は下部で出力は上部です
緑のノードはワープカーネル 赤のノードは色カーネルです
カラーマッチングノードを 見つけるのは簡単です ここで色空間の名前が確認できます この場合 入力画像はHLG色空間から Core Imageライナー作業空間に マッチングされます また全てのノードは “対象領域”の略ROIで表示されます レンダーに必要な各ノード領域を示します
4を使ってdump-intermediatesの場合 連結されたグラフ文書は 全てのパス 出力パスに 中間バッファーを示します レンダリングのどこでエラーが起きたのか 追跡するのに役立ちます 中間画像がツリーで見られない場合は Core Imageのレンダリング不要です 早期レンダリングで キャッシュされたからです
よく見るとドキュメントは 各パスの実行時間が表示可能です ピクセル数と 各中間ピクセルフォーマットもです これも どのパスが最も時間と メモリを使用したのか 理解するのに役立つでしょう
詳細なご説明は以上です Core Imageデバッグ技術の CI_PRINT_TREEの使い方でした アプリ内の 画像や動画の視覚効果に対する― さらなる理解と向上につながりますように 引き続きWWDC 2020をお楽しみください
-
-
特定のトピックをお探しの場合は、上にトピックを入力すると、関連するトピックにすばやく移動できます。
クエリの送信中にエラーが発生しました。インターネット接続を確認して、もう一度お試しください。