(57)【要約】一般に、この開示は、アプリケーション開発者及び／又はグラフィックス・アーティストが、いずれの命令グラフィックス及び関連するグラフィックス・データ（例えば、ポリゴンのデータ、テクスチャー・データ）が識別されたパフォーマンス・イッシューに関連し得るかについて識別することを可能にすることによって、グラフィックス・シーン（例えば３次元（３Ｄ）シーン）を最適化するための技術に関係する。一つの例示的な方法は、前記外部デバイスからのマッピング情報（該マッピング情報は、該グラフィックス命令の実行中に１又は複数のグラフィックスをレンダリングするために使用されるプリミティブ・グラフィックス・データへ、該グラフィックス命令をマッピングするための情報を含む）を受信することと、前記グラフィックス命令の中で少なくとも一つのグラフィックス命令の実行に関連するパフォーマンス・イッシューを識別することを含む。前記方法は、前記少なくとも一つのグラフィックス命令の実行に基づく前記パフォーマンス・イッシューに関連するプリミティブ・グラフィックス・データの部分を識別するために前記マッピング情報を使用することを更に含む。
2011529237.tif 000002
【特許請求の範囲】
【請求項１】
外部デバイスからグラフィックス命令を受信することと、
前記外部デバイスからのマッピング情報（該マッピング情報は、該グラフィックス命令の実行中に１又は複数のグラフィックスをレンダリングするために使用されるプリミティブ・グラフィックス・データへ、該グラフィックス命令をマッピングするための情報を含む）を受信することと、
前記グラフィックス命令の中で少なくとも一つのグラフィックス命令の実行に関連するパフォーマンス・イッシューを識別することと、
前記少なくとも一つのグラフィックス命令の実行に基づく前記パフォーマンス・イッシューに関連するプリミティブ・グラフィックス・データの部分を識別するために前記マッピング情報を使用することを含む方法。
【請求項２】
前記マッピング情報を受信することは、前記少なくとも一つのグラフィックス命令の実行中に１又は複数のグラフィックス・イメージをレンダリングするために使用される前記プリミティブ・グラフィックス・データの前記部分に、前記少なくとも一つのグラフィックス命令をマッピングする情報を受信することを含む請求項１の方法。
【請求項３】
前記プリミティブ・グラフィックス・データの前記部分は、１又は複数のポリゴンを含み、
前記マッピング情報を使用することは、前記少なくとも一つのグラフィックス命令の前記実行に基づく前記パフォーマンス・イッシューに関連する前記１又は複数のポリゴンを識別することを含む請求項２の方法。
【請求項４】
前記プリミティブ・グラフィックス・データは、グラフィカル・シーンの構成セグメントを含むテクスチャー・データとポリゴン・データとのうちの少なくとも一つを含む請求項１の方法。
【請求項５】
前記外部デバイスからステート情報（該ステート情報は、前記少なくとも一つのグラフィックス命令の前記実行に関連する）を受信することと、
前記少なくとも一つのグラフィックス命令及び前記ステート情報に基づいて、前記パフォーマンス・イッシューに関連する前記プリミティブ・グラフィックス・データの前記部分の表現を表示することを更に含む請求項１の方法。
【請求項６】
前記ステート情報は、前記プリミティブ・グラフィックス・データを含む請求項５の方法。
【請求項７】
前記外部デバイスからのパフォーマンス情報（該パフォーマンス情報は、前記少なくとも一つのグラフィックス命令の実行及び前記プリミティブ・グラフィックス・データの前記部分に関連する）を受信することと、
前記プリミティブ・グラフィックス・データの前記部分に関連する前記パフォーマンス・イッシューを識別するために前記パフォーマンス情報を解析することを含む請求項１の方法。
【請求項８】
前記プリミティブ・グラフィックス・データの前記部分に対して要求された修正を特定するユーザ入力を受信することと、
前記要求された修正を、前記処理のために前記外部デバイスに送信することと、
前記外部デバイスから、更新されたパフォーマンス情報（該更新されたパフォーマンス情報は、前記要求された修正に関連する）を受信することと、
前記パフォーマンス・イッシューが解決されたかどうか判定するために、前記更新されたパフォーマンス情報を解析することを更に含む請求項７の方法。
【請求項９】
前記外部デバイスから、少なくとも一つの更新されたグラフィックス命令（該少なくとも一つの更新されたグラフィックス命令は、要求された修正に関連する）を受信することと、
前記外部デバイスから、更新されたマッピング情報（該更新されたマッピング情報は、前記少なくとも一つの更新されたグラフィックス命令の前記実行に関連する前記プリミティブ・グラフィックス・データの第２の部分に、前記少なくとも一つの更新されたグラフィックス命令をマッピングする更新された情報を含む）を受信することを更に含む請求項８の方法。
【請求項１０】
前記少なくとも一つのグラフィックス命令に基づいて、前記パフォーマンス・イッシューに関連する前記プリミティブ・グラフィックス・データの前記部分の表現を表示することと、
前記外部デバイスからパーティショニング情報を受信することと、
前記受信されたパーティショニング情報に基づいて、前記プリミティブ・グラフィックス・データの前記部分をオーバーレイするパーティションの表現を表示することと、
前記プリミティブ・グラフィックス・データの前記部分が前記パーティションのうちの複数のものに関連するかどうか判定するために、前記プリミティブ・グラフィックス・データの前記部分を解析することを含む請求項１の方法。
【請求項１１】
前記プリミティブ・グラフィックスの前記部分は、複数の三角形を含み、
前記プリミティブ・グラフィックスの前記部分を解析することは、前記三角形のうちのいずれの三角形が前記パーティションのうちの複数のものにわたるか判定することを含み、
前記方法は、前記パーティションのうちの複数のものにわたる前記三角形のグラフィカル表現を表示することを含む請求項１０の方法。
【請求項１２】
前記少なくとも一つのグラフィックス命令を、第２の外部デバイスへ送信することと、
前記マッピング情報（該マッピング情報は、前記少なくとも一つのグラフィックス命令を前記プリミティブ・グラフィックス・データの前記部分にマッピングするための情報を含む）を前記第２の外部デバイスへ送信することと、
前記プリミティブ・グラフィックス・データの前記部分に関連するパフォーマンス・イッシューのインジケーションを、前記第２の外部デバイスへ送信することを含む請求項１の方法。
【請求項１３】
前記第２の外部デバイスから、前記プリミティブ・グラフィックス・データの前記部分に対して要求された修正を受信することと、
前記要求された修正を、処理のために前記外部デバイスに送信することと、
前記外部デバイスから、更新されたパフォーマンス情報（該更新されたパフォーマンス情報は、前記要求された修正に関連する）を受信することを更に含む請求項１２の方法。
【請求項１４】
前記パフォーマンス・イッシューが解決されたかどうか判定するために、前記更新されたパフォーマンス情報を解析することと、
前記パフォーマンス・イッシューが解決されたかどうかを示す第２のインジケーションを、前記第２の外部デバイスに送信することを更に含む請求項１３の方法。
【請求項１５】
１又は複数のプロセッサに、
外部デバイスからグラフィックス命令を受信させ、
前記外部デバイスからのマッピング情報（該マッピング情報は、該グラフィックス命令の実行中に１又は複数のグラフィックスをレンダリングするために使用されるプリミティブ・グラフィックス・データへ、該グラフィックス命令をマッピングするための情報を含む）を受信させ、
前記グラフィックス命令の中で少なくとも一つのグラフィックス命令の実行に関連するパフォーマンス・イッシューを識別させ、
前記少なくとも一つのグラフィックス命令の実行に基づく前記パフォーマンス・イッシューに関連するプリミティブ・グラフィックス・データの部分を識別するために前記マッピング情報を使用させるためのコンピュータ実行可能な命令を含むコンピュータ読み取り可能な媒体。
【請求項１６】
前記１又は複数のプロセッサに前記マッピング情報を受信させるための前記コンピュータ実行可能な命令は、前記１又は複数のプロセッサに前記少なくとも一つのグラフィックス命令の実行中に１又は複数のグラフィックス・イメージをレンダリングするために使用される前記プリミティブ・グラフィックス・データの前記部分に、前記少なくとも一つのグラフィックス命令をマッピングする情報を受信させるためのコンピュータ実行可能な命令を含む請求項１５のコンピュータ読み取り可能な媒体。
【請求項１７】
前記プリミティブ・グラフィックス・データの前記部分は、１又は複数のポリゴンを含み、
前記１又は複数のプロセッサに前記マッピング情報を使用させるための前記コンピュータ実行可能な命令は、前記１又は複数のプロセッサに前記少なくとも一つのグラフィックス命令の前記実行に基づく前記パフォーマンス・イッシューに関連する前記１又は複数のポリゴンを識別させるためのコンピュータ実行可能な命令を含む請求項１６のコンピュータ読み取り可能な媒体。
【請求項１８】
前記プリミティブ・グラフィックス・データは、グラフィカル・シーンの構成セグメントを含むテクスチャー・データとポリゴン・データとのうちの少なくとも一つを含む請求項１５のコンピュータ読み取り可能な媒体。
【請求項１９】
前記１又は複数のプロセッサに、
前記外部デバイスからステート情報（該ステート情報は、前記少なくとも一つのグラフィックス命令の前記実行に関連する）を受信させ、
前記少なくとも一つのグラフィックス命令及び前記ステート情報に基づいて、前記パフォーマンス・イッシューに関連する前記プリミティブ・グラフィックス・データの前記部分の表現を表示させるためのコンピュータ実行可能な命令を更に含む請求項１５のコンピュータ読み取り可能な媒体。
【請求項２０】
前記ステート情報は、前記プリミティブ・グラフィックス・データを含む請求項１９のコンピュータ読み取り可能な媒体。
【請求項２１】
前記１又は複数のプロセッサに、
前記外部デバイスからのパフォーマンス情報（該パフォーマンス情報は、前記少なくとも一つのグラフィックス命令の実行及び前記プリミティブ・グラフィックス・データの前記部分に関連する）を受信させ、
前記プリミティブ・グラフィックス・データの前記部分に関連する前記パフォーマンス・イッシューを識別するために前記パフォーマンス情報を解析させるためのコンピュータ実行可能な命令を更に含む請求項１５のコンピュータ読み取り可能な媒体。
【請求項２２】
前記１又は複数のプロセッサに、
前記プリミティブ・グラフィックス・データの前記部分に対して要求された修正を特定するユーザ入力を受信させ、
前記要求された修正を、前記処理のために前記外部デバイスに送信させ、
前記外部デバイスから、更新されたパフォーマンス情報（該更新されたパフォーマンス情報は、前記要求された修正に関連する）を受信させ、
前記パフォーマンス・イッシューが解決されたかどうか判定するために、前記更新されたパフォーマンス情報を解析させるためのコンピュータ実行可能な命令を更に含む請求項２１のコンピュータ読み取り可能な媒体。
【請求項２３】
前記１又は複数のプロセッサに、
前記外部デバイスから、少なくとも一つの更新されたグラフィックス命令（該少なくとも一つの更新されたグラフィックス命令は、要求された修正に関連する）を受信させ、
前記外部デバイスから、更新されたマッピング情報（該更新されたマッピング情報は、前記少なくとも一つの更新されたグラフィックス命令の前記実行に関連する前記プリミティブ・グラフィックス・データの第２の部分に、前記少なくとも一つの更新されたグラフィックス命令をマッピングする更新された情報を含む）を受信させるためのコンピュータ実行可能な命令を更に含む請求項２２のコンピュータ読み取り可能な媒体。
【請求項２４】
前記１又は複数のプロセッサに、
前記少なくとも一つのグラフィックス命令に基づいて、前記パフォーマンス・イッシューに関連する前記プリミティブ・グラフィックス・データの前記部分の表現を表示させ、
前記外部デバイスからパーティショニング情報を受信させ、
前記受信されたパーティショニング情報に基づいて、前記プリミティブ・グラフィックス・データの前記部分をオーバーレイするパーティションの表現を表示させ、
前記プリミティブ・グラフィックス・データの前記部分が前記パーティションのうちの複数のものに関連するかどうか判定するために、前記プリミティブ・グラフィックス・データの前記部分を解析させるためのコンピュータ実行可能な命令を更に含む請求項１５のコンピュータ読み取り可能な媒体。
【請求項２５】
前記プリミティブ・グラフィックスの前記部分は、複数の三角形を含み、
前記１又は複数のプロセッサに前記プリミティブ・グラフィックスの前記部分を解析させるための前記コンピュータ実行可能な命令は、前記１又は複数のプロセッサに前記三角形のうちのいずれの三角形が前記パーティションのうちの複数のものにわたるか判定させるためのコンピュータ実行可能な命令を含み、
前記方法は、前記１又は複数のプロセッサに前記パーティションのうちのものにわたる前記三角形のグラフィカル表現を表示させるためのコンピュータ実行可能な命令を更に含む請求項２４のコンピュータ読み取り可能な媒体。
【請求項２６】
前記１又は複数のプロセッサに、
前記少なくとも一つのグラフィックス命令を、第２の外部デバイスへ送信させ、
前記マッピング情報（該マッピング情報は、前記少なくとも一つのグラフィックス命令を前記プリミティブ・グラフィックス・データの前記部分にマッピングするための情報を含む）を前記第２の外部デバイスへ送信させ、
前記プリミティブ・グラフィックス・データの前記部分に関連するパフォーマンス・イッシューのインジケーションを、前記第２の外部デバイスへ送信させるためのコンピュータ実行可能な命令を更に含む請求項１５のコンピュータ読み取り可能な媒体。
【請求項２７】
前記１又は複数のプロセッサに、
前記第２の外部デバイスから、前記プリミティブ・グラフィックス・データの前記部分に対して要求された修正を受信させ、
前記要求された修正を、処理のために前記外部デバイスに送信させ、
前記外部デバイスから、更新されたパフォーマンス情報（該更新されたパフォーマンス情報は、前記要求された修正に関連する）を受信させるためのコンピュータ実行可能な命令を更に含む請求項２６のコンピュータ読み取り可能な媒体。
【請求項２８】
前記１又は複数のプロセッサに、
前記パフォーマンス・イッシューが解決されたかどうか判定するために、前記更新されたパフォーマンス情報を解析させ、
前記パフォーマンス・イッシューが解決されたかどうかを示す第２のインジケーションを、前記第２の外部デバイスに送信させるためのコンピュータ実行可能な命令を更に含む請求項２７のコンピュータ読み取り可能な媒体。
【請求項２９】
表示デバイスと、
外部デバイスからグラフィックス命令を受信し、
前記外部デバイスからのマッピング情報（該マッピング情報は、該グラフィックス命令の実行中に１又は複数のグラフィックスをレンダリングするために使用されるプリミティブ・グラフィックス・データへ、該グラフィックス命令をマッピングするための情報を含む）を受信し、
前記グラフィックス命令の中で少なくとも一つのグラフィックス命令の実行に関連するパフォーマンス・イッシューを識別し、
前記少なくとも一つのグラフィックス命令の実行に基づく前記パフォーマンス・イッシューに関連するプリミティブ・グラフィックス・データの部分を識別するために前記マッピング情報を使用するように構成される１又は複数のプロセッサとを含むデバイス。
【請求項３０】
前記１又は複数のプロセッサは、前記少なくとも一つのグラフィックス命令の実行中に１又は複数のグラフィックス・イメージをレンダリングするために使用される前記プリミティブ・グラフィックス・データの前記部分に、前記少なくとも一つのグラフィックス命令をマッピングする情報を受信することに少なくともよって、前記マッピング情報を受信するように構成された請求項２９のデバイス。
【請求項３１】
前記プリミティブ・グラフィックス・データの前記部分は、１又は複数のポリゴンを含み、
前記１又は複数のプロセッサは、前記少なくとも一つのグラフィックス命令の前記実行に基づく前記パフォーマンス・イッシューに関連する前記１又は複数のポリゴンを識別することに少なくともよって、前記マッピング情報を使用するように構成された請求項３０のデバイス。
【請求項３２】
前記プリミティブ・グラフィックス・データは、グラフィカル・シーンの構成セグメントを含むテクスチャー・データとポリゴン・データとのうちの少なくとも一つを含む請求項２９のデバイス。
【請求項３３】
前記１又は複数のプロセッサは、
前記外部デバイスからステート情報（該ステート情報は、前記少なくとも一つのグラフィックス命令の前記実行に関連する）を受信し、
前記少なくとも一つのグラフィックス命令及び前記ステート情報に基づいて、前記パフォーマンス・イッシューに関連する前記プリミティブ・グラフィックス・データの前記部分の表現を前記表示デバイス上に表示するように更に構成された含む請求項２９のデバイス。
【請求項３４】
前記ステート情報は、前記プリミティブ・グラフィックス・データを含む請求項３３のデバイス。
【請求項３５】
前記１又は複数のプロセッサは、
前記外部デバイスからのパフォーマンス情報（該パフォーマンス情報は、前記少なくとも一つのグラフィックス命令の実行及び前記プリミティブ・グラフィックス・データの前記部分に関連する）を受信し、
前記プリミティブ・グラフィックス・データの前記部分に関連する前記パフォーマンス・イッシューを識別するために前記パフォーマンス情報を解析するように更に構成された含む請求項２９のデバイス。
【請求項３６】
前記１又は複数のプロセッサは、
前記プリミティブ・グラフィックス・データの前記部分に対して要求された修正を特定するユーザ入力を受信し、
前記要求された修正を、前記処理のために前記外部デバイスに送信し、
前記外部デバイスから、更新されたパフォーマンス情報（該更新されたパフォーマンス情報は、前記要求された修正に関連する）を受信し、
前記パフォーマンス・イッシューが解決されたかどうか判定するために、前記更新されたパフォーマンス情報を解析するように更に構成された含む請求項３５のデバイス。
【請求項３７】
前記１又は複数のプロセッサは、
前記外部デバイスから、少なくとも一つの更新されたグラフィックス命令（該少なくとも一つの更新されたグラフィックス命令は、要求された修正に関連する）を受信し、
前記外部デバイスから、更新されたマッピング情報（該更新されたマッピング情報は、前記少なくとも一つの更新されたグラフィックス命令の前記実行に関連する前記プリミティブ・グラフィックス・データの第２の部分に、前記少なくとも一つの更新されたグラフィックス命令をマッピングする更新された情報を含む）を受信するように更に構成された含む請求項３６のデバイス。
【請求項３８】
前記１又は複数のプロセッサは、
前記少なくとも一つのグラフィックス命令に基づいて、前記パフォーマンス・イッシューに関連する前記プリミティブ・グラフィックス・データの前記部分の表現を前記表示デバイス上に表示し、
前記外部デバイスからパーティショニング情報を受信し、
前記受信されたパーティショニング情報に基づいて、前記プリミティブ・グラフィックス・データの前記部分をオーバーレイするパーティションの表現を前記表示デバイス上に表示し、
前記プリミティブ・グラフィックス・データの前記部分が前記パーティションのうちの複数のものに関連するかどうか判定するために、前記プリミティブ・グラフィックス・データの前記部分を解析するように更に構成された含む請求項２９のデバイス。
【請求項３９】
前記プリミティブ・グラフィックスの前記部分は、複数の三角形を含み、
前記１又は複数のプロセッサは、前記三角形のうちのいずれの三角形が前記パーティションのうちのものにわたるか判定することに少なくともよって、前記プリミティブ・グラフィックスの前記部分を解析するように構成され、
前記１又は複数のプロセッサは、前記パーティションのうちの複数のものにわたる前記三角形のグラフィカル表現を表示するように更に構成された請求項３８のデバイス。
【請求項４０】
前記１又は複数のプロセッサは、
前記少なくとも一つのグラフィックス命令を、第２の外部デバイスへ送信し、
前記マッピング情報（該マッピング情報は、前記少なくとも一つのグラフィックス命令を前記プリミティブ・グラフィックス・データの前記部分にマッピングするための情報を含む）を前記第２の外部デバイスへ送信し、
前記プリミティブ・グラフィックス・データの前記部分に関連するパフォーマンス・イッシューのインジケーションを、前記第２の外部デバイスへ送信するように更に構成された含む請求項２９のデバイス。
【請求項４１】
前記１又は複数のプロセッサは、
前記第２の外部デバイスから、前記プリミティブ・グラフィックス・データの前記部分に対して要求された修正を受信し、
前記要求された修正を、処理のために前記外部デバイスに送信し、
前記外部デバイスから、更新されたパフォーマンス情報（該更新されたパフォーマンス情報は、前記要求された修正に関連する）を受信するように更に構成された含む請求項４０のデバイス。
【請求項４２】
前記１又は複数のプロセッサは、
前記パフォーマンス・イッシューが解決されたかどうか判定するために、前記更新されたパフォーマンス情報を解析し、
前記パフォーマンス・イッシューが解決されたかどうかを示す第２のインジケーションを、前記第２の外部デバイスに送信するように更に構成された含む請求項４１のデバイス。
【請求項４３】
外部デバイスからグラフィックス命令を受信するための手段と、
前記外部デバイスからのマッピング情報（該マッピング情報は、該グラフィックス命令の実行中に１又は複数のグラフィックスをレンダリングするために使用されるプリミティブ・グラフィックス・データへ、該グラフィックス命令をマッピングするための情報を含む）を受信するための手段と、
前記グラフィックス命令の中で少なくとも一つのグラフィックス命令の実行に関連するパフォーマンス・イッシューを識別するための手段と、
前記少なくとも一つのグラフィックス命令の実行に基づく前記パフォーマンス・イッシューに関連するプリミティブ・グラフィックス・データの部分を識別するために前記マッピング情報を使用するための手段とを含むデバイス。
【請求項４４】
前記マッピング情報を受信するための手段は、前記少なくとも一つのグラフィックス命令の実行中に１又は複数のグラフィックス・イメージをレンダリングするために使用される前記プリミティブ・グラフィックス・データの前記部分に、前記少なくとも一つのグラフィックス命令をマッピングする情報を受信するための手段を含む請求項４３のデバイス。
【請求項４５】
前記プリミティブ・グラフィックス・データの前記部分は、１又は複数のポリゴンを含み、
前記マッピング情報を使用するための手段は、前記少なくとも一つのグラフィックス命令の前記実行に基づく前記パフォーマンス・イッシューに関連する前記１又は複数のポリゴンを識別するための手段を含む請求項４４のデバイス。
【請求項４６】
前記プリミティブ・グラフィックス・データは、グラフィカル・シーンの構成セグメントを含むテクスチャー・データとポリゴン・データとのうちの少なくとも一つを含む請求項４３のデバイス。
【請求項４７】
前記外部デバイスからステート情報（該ステート情報は、前記少なくとも一つのグラフィックス命令の前記実行に関連する）を受信するための手段と、
前記少なくとも一つのグラフィックス命令及び前記ステート情報に基づいて、前記パフォーマンス・イッシューに関連する前記プリミティブ・グラフィックス・データの前記部分の表現を表示するための手段とを更に含む請求項４３のデバイス。
【請求項４８】
前記ステート情報は、前記プリミティブ・グラフィックス・データを含む請求項４７のデバイス。
【請求項４９】
前記外部デバイスからのパフォーマンス情報（該パフォーマンス情報は、前記少なくとも一つのグラフィックス命令の実行及び前記プリミティブ・グラフィックス・データの前記部分に関連する）を受信するための手段と、
前記プリミティブ・グラフィックス・データの前記部分に関連する前記パフォーマンス・イッシューを識別するために前記パフォーマンス情報を解析するための手段とを更に含む請求項４３のデバイス。
【請求項５０】
前記プリミティブ・グラフィックス・データの前記部分に対して要求された修正を特定するユーザ入力を受信するための手段と、
前記要求された修正を、前記処理のために前記外部デバイスに送信するための手段と、
前記外部デバイスから、更新されたパフォーマンス情報（該更新されたパフォーマンス情報は、前記要求された修正に関連する）を受信するための手段と、
前記パフォーマンス・イッシューが解決されたかどうか判定するために、前記更新されたパフォーマンス情報を解析するための手段を更に含む請求項４９のデバイス。
【請求項５１】
前記外部デバイスから、少なくとも一つの更新されたグラフィックス命令（該少なくとも一つの更新されたグラフィックス命令は、要求された修正に関連する）を受信するための手段と、
前記外部デバイスから、更新されたマッピング情報（該更新されたマッピング情報は、前記少なくとも一つの更新されたグラフィックス命令の前記実行に関連する前記プリミティブ・グラフィックス・データの第２の部分に、前記少なくとも一つの更新されたグラフィックス命令をマッピングする更新された情報を含む）を受信するための手段とを更に含む請求項５０のデバイス。
【請求項５２】
前記少なくとも一つのグラフィックス命令に基づいて、前記パフォーマンス・イッシューに関連する前記プリミティブ・グラフィックス・データの前記部分の表現を表示するための手段と、
前記外部デバイスからパーティショニング情報を受信するための手段と、
前記受信されたパーティショニング情報に基づいて、前記プリミティブ・グラフィックス・データの前記部分をオーバーレイするパーティションの表現を表示するための手段と、
前記プリミティブ・グラフィックス・データの前記部分が前記パーティションのうちの複数のものに関連するかどうか判定するために、前記プリミティブ・グラフィックス・データの前記部分を解析するための手段とを含む請求項４３のデバイス。
【請求項５３】
前記プリミティブ・グラフィックスの前記部分は、複数の三角形を含み、
前記プリミティブ・グラフィックスの前記部分を解析するための手段は、前記三角形のうちのいずれの三角形が前記パーティションのうちの複数のものにわたるか判定するための手段を含み、
前記デバイスは、前記パーティションのうちの複数のものにわたる前記三角形のグラフィカル表現を表示するための手段を更に含む請求項５２のデバイス。
【請求項５４】
前記少なくとも一つのグラフィックス命令を、第２の外部デバイスへ送信するための手段と、
前記マッピング情報（該マッピング情報は、前記少なくとも一つのグラフィックス命令を前記プリミティブ・グラフィックス・データの前記部分にマッピングするための情報を含む）を前記第２の外部デバイスへ送信するための手段と、
前記プリミティブ・グラフィックス・データの前記部分に関連するパフォーマンス・イッシューのインジケーションを、前記第２の外部デバイスへ送信するための手段とを含む請求項４３のデバイス。
【請求項５５】
前記第２の外部デバイスから、前記プリミティブ・グラフィックス・データの前記部分に対して要求された修正を受信するための手段と、
前記要求された修正を、処理のために前記外部デバイスに送信するための手段と、
前記外部デバイスから、更新されたパフォーマンス情報（該更新されたパフォーマンス情報は、前記要求された修正に関連する）を受信するための手段とを更に含む請求項５４のデバイス。
【請求項５６】
前記パフォーマンス・イッシューが解決されたかどうか判定するために、前記更新されたパフォーマンス情報を解析するための手段と、
前記パフォーマンス・イッシューが解決されたかどうかを示す第２のインジケーションを、前記第２の外部デバイスに送信するための手段とを更に含む請求項５５のデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
（35 U.S.C. §119の下の優先権の主張）  
本特許出願は、２００８年７月２５日付け提出され、本願の譲受人に譲渡され、参照によって本明細書に明確に組み込まれる「MAPPING GRAPHICS INSTRUCTIONS TO ASSOCIATED GRAPHICS DATA DURING PERFORMANCE ANALYSIS」と題された米国仮出願第６１／０８３，６６５号の優先権を主張する。
【０００２】
（同時継続の特許出願への参照）  
本特許出願は、以下の同時継続の米国特許出願に関係する：  
２００８年７月２５日付け提出され、これと共に同時に提出され、本願の譲受人に譲渡され、参照によって本明細書に明確に組み込まれる米国特許出願第６１／０８３，６５６号（Attorney Docket No. 080967P1）;及び  
２００８年７月２５日付け提出され、これと共に同時に提出され、本願の譲受人に譲渡され、参照によって本明細書に明確に組み込まれる米国特許出願第６１／０８３，６５９号（Attorney Docket No. 080969P1）。
【０００３】
（技術分野）  
この開示は、グラフィックス・イメージの表示に関係する。
【背景技術】
【０００４】
グラフィックス・プロセッサは、例えばテレビゲーム、グラフィックス・プログラム、コンピュータ・デザイン（ＣＡＤ）アプリケーション、シミュレーション及びビジュアライゼーション・ツール、及びイメージングのような様々なアプリケーションのために、二次元イメージ（２Ｄ）及び三次元イメージ（３Ｄ）をレンダリング（render）するために広く使用されている。表示プロセッサは、表示デバイスを介したユーザへの提示のために、グラフィックス・プロセッサのレンダリング出力（rendered output）を表示するのに使用されることがある。
【０００５】
ＯｐｅｎＧＬ（登録商標）（オープン・グラフィックス・ライブラリー）は、２Ｄグラフィックス及び３Ｄグラフィックスを生成するアプリケーションを記述するときに使用されることがあるＡＰＩ（アプリケーション・プログラミング・インタフェース）を定義する標準的な仕様である。例えばＪａｖａ（登録商標）のような他の言語は、それら自身の標準的なプロセスを通したＯｐｅｎＧＬ ＡＰＩへのバインディングを定義することがある。インタフェースは、単純なプリミティブからシーンを描画（draw）するために使用可能な複数の関数コール又は命令（instructions）を含む。グラフィックス・プロセッサ、マルチメディア・プロセッサ、そして、汎用ＣＰＵでさえ、ＯｐｅｎＧＬ関数コールを使用して記述されるアプリケーションを実行することができる。ＯｐｅｎＧＬ ＥＳ（組み込みシステム）は、例えばモバイル無線電話、デジタル・マルチメディア・プレイヤー、携帯情報端末（ＰＤＡ）又はテレビゲーム機のような、組み込みデバイスのために設計されるＯｐｅｎＧＬの改良型（variant）である。
【０００６】
グラフィックス・アプリケーション（例えば、３Ｄグラフィックス・アプリケーション）は、ＡＰＩ群又は命令群を呼び出す（invoking）ことによって、シーンの内容を記述又は定義することがある。ＡＰＩ群又は命令群は、イメージを生成するために、内在する(underlying）グラフィックス・ハードウェア（例えば、グラフィックス・デバイス中の１又は複数のプロセッサ）を使用する。グラフィックス・ハードウェアは、これらのＡＰＩを通して実行される一連の状態遷移（state transitions）を経ることがある。各々のＡＰＩコール（例えば、描画コール(draw call）又は命令）に関するステート（states）のフルセットは、ハードウェアにより１又は複数のグラフィックス・プリミティブ（例えば、１又は複数の三角形）からイメージがレンダリングされるプロセスを記述することがある。
【０００７】
グラフィックス・アーティストは、しばしば、様々なグラフィックス・プリミティブを作成することによって、１つのシーンの１又は複数の部分を定義することがある。例えば、グラフィックス・アーティストは、シーンの構成部品（constituent parts）を含む３次元（３Ｄ）プリミティブ・ポリゴン及び／又はテクスチャー・データを生成するために、デジタル・コンテンツ作成（ＤＣＣ）ツールを使用することがある。このデータは、それから、ユーザに表示されるべき最終的なグラフィックス・イメージ・データを作成又はレンダリングするために、グラフィックス・アプリケーションに組み込まれ、ハードウェア・グラフィックス・デバイスのコンテンツ−処理パイプライン内で処理されることがある。多くの場合、異なるアーティストが、１つのシーンの異なる部分を定義することがあり、それから、それらは、単一のグラフィックス・アプリケーションの中に結合される必要があることがあり、そして、これらのアーティストはまた、互いに独立に作業することがある。さらに、アーティストは、しばしば、プリミティブ・ポリゴン及び／又はテクスチャー・データに対して修正を行うときに、グラフィックス・アプリケーションの開発者とコミュニケーションし作業する必要があることがある。
【発明の概要】
【０００８】
一般に、この開示は、アプリケーション開発者及び／又はグラフィックス・アーティストが、いずれのグラフィックス命令及び関連するグラフィックス・データ（例えば、ポリゴン・データ、テクスチャー・データ）が、識別されたパフォーマンス・イッシューに関連し得るか識別できるようにすることによって、グラフィックス・シーン（例えば、３次元（３Ｄ）シーン）を最適化するための技術に関係する。その結果、アプリケーション開発者は、パフォーマンス・イッシューをもたらすアプリケーション内のシーンの部分を判定するために又は該イッシューを解決するためにこの情報を１又は複数のアーティストに手作業で伝えるために、ターゲット・デバイス（例えば、モバイル・デバイス、グラフィックス・デバイス）上の試行錯誤プロセスを使用する必要がなくても良い。それよりも、開発者は、パフォーマンス・イッシューを識別するためにシミュレーション環境を使用することができ、そして、シミュレーション環境は、自動的に、これらのイッシューをもたらした可能性のある関連するグラフィックス・データを識別することができる。識別されたパフォーマンス・イッシュー及び／又は関連するグラフィックス・データは、解決のために、開発者及び対応する（１又は複数の）アーティストに伝えられても良い。アーティストはまた、それらのリモート・コンピュータ・デバイス上で直接該伝えられた情報を閲覧（view）することができても良い。
【０００９】
一つの態様において、方法は、前記外部デバイスからのマッピング情報（該マッピング情報は、該グラフィックス命令の実行中に１又は複数のグラフィックスをレンダリングするために使用されるプリミティブ・グラフィックス・データへ、該グラフィックス命令をマッピングするための情報を含む）を受信することと、前記グラフィックス命令の中で少なくとも一つのグラフィックス命令の実行に関連するパフォーマンス・イッシューを識別することを含む。前記方法は、前記少なくとも一つのグラフィックス命令の実行に基づく前記パフォーマンス・イッシューに関連するプリミティブ・グラフィックス・データの部分を識別するために前記マッピング情報を使用することをを更に含む。
【００１０】
一つの態様において、コンピュータ読み取り可能な媒体は、１又は複数のプロセッサに、外部デバイスからグラフィックス命令を受信させ、前記外部デバイスからのマッピング情報（該マッピング情報は、該グラフィックス命令の実行中に１又は複数のグラフィックスをレンダリングするために使用されるプリミティブ・グラフィックス・データへ、該グラフィックス命令をマッピングするための情報を含む）を受信させ、前記グラフィックス命令の中で少なくとも一つのグラフィックス命令の実行に関連するパフォーマンス・イッシューを識別させ、前記少なくとも一つのグラフィックス命令の実行に基づく前記パフォーマンス・イッシューに関連するプリミティブ・グラフィックス・データの部分を識別するために前記マッピング情報を使用させるためのコンピュータ実行可能な命令を含む。
【００１１】
一つの態様において、デバイスは、表示デバイスと１又は複数のプロセッサを含む。前記１又は複数のプロセッサは、外部デバイスからグラフィックス命令を受信し、前記外部デバイスからのマッピング情報（該マッピング情報は、該グラフィックス命令の実行中に１又は複数のグラフィックスをレンダリングするために使用されるプリミティブ・グラフィックス・データへ、該グラフィックス命令をマッピングするための情報を含む）を受信し、前記グラフィックス命令の中で少なくとも一つのグラフィックス命令の実行に関連するパフォーマンス・イッシューを識別し、前記少なくとも一つのグラフィックス命令の実行に基づく前記パフォーマンス・イッシューに関連するプリミティブ・グラフィックス・データの部分を識別するために前記マッピング情報を使用するように構成される。
【００１２】
この開示において説明される技術は、ハードウェア、ソフトウェア、ファームウェア又はそれらの任意の組み合せにおいて実装されても良い。ソフトウェアで実装される場合には、ソフトウェアは、プロセッサで実行されても良い。プロセッサは、１又は複数のプロセッサ（例えば、マイクロプロセッサ）、特定用途向けＩＣ（ＡＳＩＣ）、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）、又はデジタルシグナルプロセッサ（ＤＳＰ）、又は他の等価な集積化された若しくは個別の論理回路を指し示しても良い。本技術を実行するための命令を含むソフトウェアは、最初にコンピュータ読み取り可能な媒体に記憶されロードされ、そして、プロセッサにより実行されても良い。
【００１３】
したがって、この開示はまた、この開示において説明される様々な技術の任意のものをプロセッサに実行させる命令を含むコンピュータ読み取り可能な媒体を意図する。場合によっては、コンピュータ読み取り可能な媒体は、製造者に販売され得る及び／又はデバイスで使用され得るコンピュータ・プログラム製品の一部を形成しても良い。コンピュータ・プログラム製品は、コンピュータ読み取り可能な媒体を含んでも良いし、場合によっては、また、パッケージ材料を含んでも良い。
【００１４】
添付の図面及び下記の説明において１又は複数の態様の詳細が説明される。他の特徴、目的及び利点は説明及び図面から並びにクレームから明らかである。
【図面の簡単な説明】
【００１５】
【図１】図１は、本開示の一つの態様に従って、マッピング及び／又はパーティショニング情報とともに、グラフィックス命令、ステート及び／又はパフォーマンス情報を、アプリケーション・コンピュータ・デバイスに提供し得るグラフィックス・デバイスを示すブロック図である。
【図２】図２は、本開示の一つの態様に従って、図１に示されるグラフィックス処理システム及びアプリケーション・コンピュータ・デバイスの特定の詳細を示すブロック図である。
【図３】図３は、本開示の一つの態様に従って、図２に示されるグラフィックス・ドライバーの更なる詳細を示すブロック図である。
【図４Ａ】図４Ａは、本開示の一つの態様に従って、１又は複数の更なるアプリケーション・コンピュータ・デバイスに接続される、図１に示されるグラフィックス・デバイス及びアプリケーション・コンピュータ・デバイスを示すブロック図である。
【図４Ｂ】図４Ｂは、本開示の一つの態様に従って、図４Ａに示される更なるアプリケーション・コンピュータ・デバイスのうちの一つの更なる詳細を示すブロック図である。
【図５】図５は、本開示の一つの態様に従って、個々のグラフィックス命令とグラフィックス・データとの間の例示的なマッピングを示す概念図である。
【図６】図６は、本開示の一つの態様に従って、図１に示されるアプリケーション・コンピュータ・デバイス又は図４Ａに示されるアプリケーション・コンピュータ・デバイスのうちの任意の一つにより実行され得る第１の方法のフローチャートである。
【図７】図７は、本開示の一つの態様に従って、図１に示されるアプリケーション・コンピュータ・デバイス又は図４Ａに示されるアプリケーション・コンピュータ・デバイスのうちの任意の一つにより実行され得る第２の方法のフローチャートである。
【図８】図８は、本開示の一つの態様に従って、グラフィック・ウインドウ中に情報を表示するための表示デバイスに接続されるグラフィックス・デバイスの例を示す概念図である。
【図９】図９は、本開示の一つの態様に従って、グラフィカル・ウインドウ中に情報を表示する表示デバイスに接続されるグラフィックス・デバイスの他の例を示す概念図である。
【図１０】図１０は、本開示の一つの態様に従って、表示デバイスにより提供されるスクリーン・エリアの４つのパーティションにわたり得るグラフィックス・データの例を示す概念図である。
【図１１】図１１は、本開示の一つの態様に従って、表示デバイスにより提供され得るスクリーン・エリア２７０内のテクスチャー情報を示す概念図である。
【詳細な説明】
【００１６】
図１は、本開示の一つの態様に従って、グラフィックス命令３０、ステート及び／又はパフォーマンス情報３２及びマッピング／パーティショニング情報３３を、アプリケーション・コンピュータ・デバイス２０に提供し得るグラフィックス・デバイス２を示すブロック図である。グラフィックス・デバイス２は、独立型デバイスであっても良いし、あるいは、より大きなシステムの一部であっても良い。例えば、グラフィックス・デバイス２は、無線通信デバイス（例えば、無線モバイル・ハンドセット）の一部であっても良いし、あるいは、デジタル・カメラ、ビデオ・カメラ、デジタル・マルチメディア・プレイヤー、携帯情報端末（ＰＤＡ）、テレビゲーム機、他のビデオ・デバイス又は専用の視聴局（viewing station）（例えば、テレビ）の一部であっても良い。グラフィックス・デバイス２はまた、パソコン又はラップトップ・デバイスを含んでも良い。グラフィックス・デバイス２は、上で説明されたデバイスの一部又は全部において使用され得る、１又は複数の集積回路、チップ又はチップセットに含まれても良い。
【００１７】
場合によっては、グラフィックス・デバイス２は、様々なアプリケーション（例えば、グラフィックス・アプリケーション、ビデオ・アプリケーション、音声アプリケーション及び／又は他のマルチメディア・アプリケーション）を実行することができても良い。例えば、グラフィックス・デバイス２は、グラフィックス・アプリケーション、テレビゲーム・アプリケーション、ビデオ・プレイバック・アプリケーション、デジタル・カメラ・アプリケーション、インスタントメッセージング・アプリケーション、ビデオ通信会議アプリケーション、モバイル・アプリケーション又はビデオストリーミング・アプリケーションのために使用されても良い。
【００１８】
グラフィックス・デバイス２は、様々な異なるデータ・タイプ及びフォーマットを処理することができても良い。例えば、グラフィックス・デバイス２は、下で更に詳細に説明されるように、静止画データ、動画（ビデオ）データ又は他のマルチメディア・データを処理しても良い。イメージ・データは、コンピュータグラフィック・データを含んでも良い。図１の例において、グラフィックス・デバイス２は、グラフィックス処理システム４、記憶媒体８（それは、メモリを含んでも良い）及び表示デバイス６を含む。
【００１９】
プログラム可能なプロセッサ１０，１２，１４及び１６は、グラフィックス処理システム４内に含まれても良い。プログラム可能なプロセッサ１０は、制御又は汎用プロセッサである。プログラム可能なプロセッサ１２は、グラフィックス・プロセッサであり、プログラム可能なプロセッサ１４は、頂点プロセッサであり、プログラム可能なプロセッサ１６は、表示プロセッサである。制御プロセッサ１０は、グラフィックス・プロセッサ１２、頂点プロセッサ１４及び／又は表示プロセッサ１６を制御することができても良い。一つの態様において、グラフィックス処理システム４は、他の形のマルチメディア・プロセッサを含んでも良い。
【００２０】
グラフィックス・デバイス２において、グラフィックス処理システム４は、記憶媒体８に及び表示デバイス６に接続する。記憶媒体８は、例えばシンクロナスダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）、リードオンリーメモリ（ＲＯＭ）、不揮発性ランダムアクセスメモリ（ＮＶＲＡＭ）、組み込みダイナミックランダムアクセスメモリ（ｅＤＲＡＭ）、スタティックランダムアクセスメモリ（ＳＲＡＭ）又はフラッシュメモリのような、命令及び／又はデータを格納することができる任意の固定（permanent）又は揮発性メモリを含んでも良い。表示デバイス６は、例えばＬＣＤ（液晶ディスプレイ）、プラズマ・ディスプレイ・デバイス又は他のテレビ（ＴＶ）表示デバイスのような、表示目的のイメージ・データを表示することができる任意のデバイスであっても良い。
【００２１】
頂点プロセッサ１４は、頂点情報を管理し、頂点変換を処理することができる。一つの態様において、頂点プロセッサ１４は、デジタルシグナルプロセッサ（ＤＳＰ）を含んでも良い。グラフィックス・プロセッサ１２は、コンピュータ化されたグラフィックスをレンダリング、操作（manipulate）及び表示するために利用される専用グラフィックス・レンダリング・デバイスであっても良い。グラフィックス・プロセッサ１２は、様々な複雑な（complex）グラフィックス関係アルゴリズムを実装しても良い。例えば、複雑なアルゴリズムは、２次元又は３次元コンピュータ化グラフィックスの表現（representations）に対応しても良い。グラフィックス・プロセッサ１２は、ディスプレイ（例えば表示デバイス６）上の複雑な３次元イメージを作成するために、幾つかのいわゆる“プリミティブ（primitive）”グラフィックス・オペレーション（例えば、点、線及び三角形又は他のポリゴン面の形成）を実装しても良い。
【００２２】
グラフィックス・プロセッサ１２は、記憶媒体８に記憶される命令を実行しても良い。記憶媒体８は、１又は複数のグラフィックス・ドライバー１８だけでなく、アプリケーション（例えばグラフィックス又はビデオ・アプリケーション）に関するアプリケーション命令２１を記憶することができる。アプリケーション命令２１は、実行のために記憶媒体８からグラフィックス処理システム４へロードされても良い。例えば、制御プロセッサ１０、グラフィックス・プロセッサ１２及び表示プロセッサ１６のうちの１又は複数が、命令２１を実行しても良い。一つの態様において、アプリケーション命令２１は、記憶媒体８に無線で動的にダウンロードされる１又は複数のダウンロード可能なモジュールを含んでも良い。一つの態様において、アプリケーション命令２１は、アプリケーション開発者により作成されるアプリケーション・プログラミング・インタフェース（ＡＰＩ）命令から生成又はコンパイルされるるバイナリ命令のコール・ストリームを含んでも良い。
【００２３】
グラフィックス・ドライバー１８はまた、実行のために記憶媒体８からグラフィックス処理システム４にロードされても良い。例えば、制御プロセッサ１０、グラフィックス・プロセッサ１２及び表示プロセッサ１６のうちの１又は複数が、グラフィックス・ドライバー１８からの特定の命令を実行しても良い。一つの例示的な態様において、グラフィックス・ドライバー１８は、グラフィックス・プロセッサ１２によりロード及び実行される。グラフィックス・ドライバー１８は、下で更に詳細に説明される。
【００２４】
記憶媒体８はまた、グラフィックス・データ・マッピング情報２３を含む。グラフィックス・データ・マッピング情報２３は、アプリケーション命令２１のうちの１又は複数を、アプリケーション命令２１の実行の間にレンダリングされ得るプリミティブ・グラフィックス・データにマッピングする情報を含む。グラフィックス・データ（それは記憶媒体８及び／又はバッファ１５に記憶されても良い）は、１又は複数のプリミティブ（例えば、ポリゴン）を含んでも良く、また、テクスチャー・データを含んでも良い。グラフィックス・データ・マッピング情報２３は、アプリケーション命令２１内の個々の命令に対してレンダリングされるべき個々のプリミティブのマッピングを維持しても良い。これらの個々の命令の実行の間、プリミティブがレンダリングされた後、マッピング情報２３は、これらの命令から、グラフィックス・デバイス６上に最終的に表示される１又は複数のイメージをレンダリングするのに使用されたオリジナルのプリミティブ・グラフィックス・データへのマッピングを提供にする。グラフィックス・データ・マッピング情報は、下で更に詳細に説明される。
【００２５】
また、図１に示されるように、グラフィックス処理システム４は、１又は複数のバッファ１５を含む。制御プロセッサ１０、グラフィックス・プロセッサ１２、頂点プロセッサ１４及び／又は表示プロセッサ１６は、各々、バッファ１５へのアクセスを有し、また、バッファ１５へデータを記憶し又はバッファ１５からデータを検索しても良い。バッファ１５は、キャッシュメモリを含んでも良く、また、データと命令の両方を記憶することができても良い。例えば、バッファ１５は、アプリケーション命令２１のうちの１又は複数、又は、記憶媒体８からグラフィックス処理システム４にロードされたグラフィックス・ドライバー１８からの１又は複数の命令を含んでも良い。バッファ１５及び／又は記憶媒体８はまた、命令の実行の間に使用されるグラフィックス・データを含んでも良い。
【００２６】
アプリケーション命令２１は、特定のケースにおいて、グラフィックス・アプリケーション（例えば、３Ｄグラフィックス・アプリケーション）のための命令を含んでも良い。アプリケーション命令２１は、１又は複数のグラフィックス・イメージを含むグラフィックス・シーンのコンテンツを記述又は定義する命令を含んでも良い。アプリケーション命令２１がグラフィックス処理システム４によりロード及び実行されるとき、グラフィックス処理システム４は、一連の状態遷移を経ても良い。グラフィックス・ドライバー１８内の１又は複数の命令はまた、アプリケーション命令２１の実行の間にグラフィックス・イメージを表示デバイス６上にレンダリング又は表示するために実行されても良い。
【００２７】
一つの態様において、グラフィックス・データ・マッピング情報２３は、アプリケーション命令２１の実行の間、得られても良く、そして、記憶媒体８内に格納されても良い。アプリケーション命令２１は、グラフィックス・オブジェクトに対する１又は複数のバインディングを含んでも良い。各々のバインディングは、アプリケーション命令２１とプリミティブ・グラフィックス・データ（例えば、ポリゴン・データ、テクスチャー・データ）のうちの１又は複数を表す個々のグラフィックス・オブジェクトとの間のリンクを作成する。一セットの命令にバインドされたプリミティブ・グラフィックス・データは、この命令のセットの実行の間、グラフィックス・イメージ・データをレンダリングするために使用される。命令のセットと関連するグラフィックス・データとの間のバインディングは、この命令のセットと関連するグラフィックス・データとの間のマッピングを作成するためのグラフィックス・データ・マッピング情報２３内に含まれ、識別され、抽出されても良い。
【００２８】
例えば描画コールのような命令に関するステートのフルセットは、イメージがグラフィックス処理システム４によりレンダリングされるプロセスを記述しても良い。しかし、アプリケーション命令２１を書いたアプリケーション開発者は、定義されたシーン中のイメージを記述又はレンダリングする代わりの方法（alternate methods）によるデバッギング又は実験の目的で、これらのステートをインタラクティブに閲覧（view）又は修正する能力（ability）がしばしば制限されることがある。さらに、異なるハードウェア・プラットホームは、これらのステート及び／又は状態遷移の異なるハードウェア・デザイン及び実装を有することがある。
【００２９】
さらに、ビニング・ベースのグラフィックス・ハードウェア（例えば、プロセッサ１０，１２，１４及び１６のうちの１又は複数）は、表示デバイス６のスクリーン上に表示されるイメージのシーンを分割するために、レンダリングすることになっている個々のプリミティブが、長方形の形の（rectangular-shaped）ビニング・パーティション又はビンにクラスターされるプロセスを使用して、しばしば実装されても良い。ハードウェアは、表示デバイス６のスクリーンサイズ又は解像度制約に基づいて又はオペレーションのレンダリングに関連する記憶媒体８のメモリ制限に基づいて、そうしても良い。複数のビニング・パーティションにわたり得るプリミティブは、プリミティブ・フラグメントがレンダリングされる前に、パーティションのエッジに沿って、プロセッサ１０，１２，１４又は１６のうちの１又は複数によって、複数のフラグメントに分割されても良い。各々のパーティションにおけるプリミティブ・フラグメントは、それから、別々にレンダリングされても良い。一般に、ビニング・パーティションは、ハードウェア・アーキテクチャーに応じて、総計が変化させられても良く、また、様々なサイズ及び形を有しても良い。例えば、ビニング・パーティションは、複数（例えば、４つ，８つ）の長方形の形のパーティションを含んでも良い。
【００３０】
それゆえ、例えば２つのビニング・パーティションにわたり得る個々のプリミティブは、２つのフラグメントに分割されても良く、また、これらの２つのフラグメントの各々は、それから、独立してレンダリングされても良い。しかし、これらのフラグメントの各々によって生成されるグラフィックス・イメージは、それから、表示デバイス６のスクリーン上に表示される前に、イメージ・データのフレーム内で再結合される必要があり得る。それゆえ、複数のビニング・パーティションにわたる個々のプリミティブを分割することは、潜在的な（potential）処理オーバーヘッドを有する可能性があり、また、全体的なパフォーマンス劣化を引き起こす可能性がある。
【００３１】
一つの態様において、アプリケーション開発者は、シーン中のイメージを記述又はレンダリングするための代わりの方法によるデバッギング及び実験の処理を支援するために、図１に示されるように、アプリケーション・コンピュータ・デバイス２０を使用しても良い。アプリケーション・コンピュータ・デバイス２０は、１又は複数のプロセッサ２２、表示デバイス２４及び記憶媒体２６を含む。記憶媒体２６は、メモリを含んでも良い。一つの態様に従って、プロセッサ２２は、制御プロセッサ、グラフィックス・プロセッサ、頂点プロセッサ及び表示プロセッサのうちの１又は複数を含んでも良い。記憶媒体２６は、例えばシンクロナスダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）、リードオンリーメモリ（ＲＯＭ）、不揮発性ランダムアクセスメモリ（ＮＶＲＡＭ）、スタティックランダムアクセスメモリ（ＳＲＡＭ）又はフラッシュメモリ）のような、命令及び／又はデータを格納することができる任意の固定又は揮発性メモリを含んでも良い。表示デバイス２４は、例えばＬＣＤ（液晶ディスプレイ）、プラズマ・ディスプレイ・デバイス又は他のテレビ（ＴＶ）表示デバイスのような、表示目的のイメージ・データを表示することができる任意のデバイスであっても良い。
【００３２】
アプリケーション・コンピュータ・デバイス２０は、グラフィックス・デバイス２から送信される、ステート及び／又はパフォーマンス情報３２とともに、グラフィックス命令３０を捕捉（capturing）及び解析することができる。一つの態様において、グラフィックス・ドライバー１８は、グラフィックス命令３０及びステート／パフォーマンス情報３２を、アプリケーション・コンピュータ・デバイス２０に送信するように構成される。グラフィックス命令３０は、アプリケーション命令２１のうちの１又は複数を含んでも良く、ステート／パフォーマンス情報３２は、グラフィックス処理システム４内でのグラフィックス命令３０の実行の間に生成又は補足されても良い。
【００３３】
ステート／パフォーマンス情報３２は、命令の実行の間のグラフィックス処理システム４のステート及び／又はパフォーマンスに関する情報を含んでも良く、それは下で更に詳細に説明される。ステート／パフォーマンス情報３２は、グラフィックス命令３０で使用され得る又はさもなければグラフィックス命令３０に関連し得るグラフィックス・データ（例えば、プリミティブの及び／又はラスタライズされたグラフィックス・データ）を含んでも良い。グラフィックス処理システム４は、表示デバイス６上にイメージ又は複数のイメージからなるシーンを表示するためにグラフィックス命令３０を実行しても良い。アプリケーション・コンピュータ・デバイス２０は、グラフィックス・デバイス２の表示デバイス６に同様に表示されるグラフィックス・イメージ又はシーンを再作成（re-create）するために、ステート／パフォーマンス情報３２とともに、グラフィックス命令３０を使用することができる。
【００３４】
グラフィックス・デバイス２はまた、マッピング及び／又はパーティショニング情報３３を、アプリケーション・コンピュータ・デバイス２０に送信しても良い。一つの態様において、グラフィックス・ドライバー１８が、マッピング／パーティショニング情報３３を、アプリケーション・コンピュータ・デバイス２０に送信するように構成される。マッピング／パーティショニング情報３３は、グラフィックス・データ・マッピング情報２３（それはグラフィックス命令３０内の個々の命令にグラフィックス・データをマッピングする情報を含む）の１又は複数の部分を含んでも良い。例えば、マッピング／パーティショニング情報３３は、グラフィックス命令３０内の個々の命令に１又は複数のプリミティブ（例えば、ポリゴン）又はテクスチャー・データをマッピングする情報を含んでも良い。
【００３５】
マッピング／パーティショニング情報３３はまた、グラフィックス・デバイス２によって生成及び提供されるパーティショニング情報を含んでも良い。このパーティショニング情報は、場合によっては、プロセッサ１０，１２，１４及び１６のうちの１又は複数（例えば制御プロセッサ１０）によって生成及び提供されても良い。パーティショニング情報は、１又は複数のグラフィックス・イメージ中にグラフィックス・データをレンダリングし及びそのようなイメージを表示デバイス６上に表示するためにグラフィックス処理システム４内で使用され得る、ビニング・パーティション又はビンの数、タイプ、サイズ及び／又は形状を識別する情報を含んでも良い。前に説明されたように、グラフィックス・デバイス２は、例えば、オペレーションのレンダリング中のバッファ１５及び／又は記憶媒体８のメモリサイズ制限に基づいて、表示デバイス６のスクリーン・スペース又はサイズを複数のパーティションに分割しても良い。パーティショニング情報は、作成及び使用されるパーティションに関する情報を提供する。
【００３６】
シミュレーション・アプリケーション２８は、グラフィックス命令３０及びステート／パフォーマンス情報３２の受信に応じて、グラフィックス・イメージ又はシーンを再作成し、そして、イメージ又は複数のイメージからなるシーンを表示デバイス２４上に表示するために、アプリケーション・コンピュータ・デバイス２０のプロセッサ２２によって実行されても良い。シミュレーション・アプリケーション２８は、幾つかのアプリケーション命令を含むソフトウェア・モジュールを含んでも良い。シミュレーション・アプリケーション２８は、記憶媒体２６に記憶され、また、プロセッサ２２によってロード及び実行されても良い。シミュレーション・アプリケーション２８は、記憶媒体２６にプリロードされても良く、また、グラフィックス・デバイス２で動作するようにカスタマイズされても良い。一つの態様において、シミュレーション・アプリケーション２８は、グラフィックス・デバイス２のハードウェア・オペレーションをシミュレートする。シミュレーション・アプリケーション２８の異なるバージョンが、記憶媒体２６に記憶され、異なるハードウェア・デザインを有する異なるグラフィックス・デバイスのためにプロセッサ２２によって実行されても良い。また、場合によっては、シミュレーション・アプリケーション２８とともに使用されるソフトウェア・ライブラリが、記憶媒体２６内に記憶されても良い。一つの態様において、シミュレーション・アプリケーション２８は、一般アプリケーションであっても良く、また、特定のハードウェア又はグラフィックス・デバイス・シミュレーション機能性は、実行の間、シミュレーション・アプリケーション２８にリンクされ得る各々の独立したライブラリ内に含まれても良い。
【００３７】
一つの態様において、ステート／パフォーマンス情報３２のビジュアル表現が、表示デバイス２上でアプリケーション開発者に対して表示されても良い。さらに、グラフィックス命令３０のビジュアル表現が、同様に、表示されても良い。多くの場合、グラフィックス命令３０はバイナリ命令を含むことがあるので、アプリケーション・コンピュータ・デバイス２０は、表示デバイス２４上でのグラフィックス命令３０のビジュアル表現を生成するために、命令マッピング情報３１を使用しても良い。命令マッピング情報３１は、記憶媒体２６内に記憶され、また、グラフィックス命令３０のビジュアル表現を表示するために、プロセッサ２２にロードされても良い。
【００３８】
一つの態様において、命令マッピング情報３１は、グラフィックス命令３０を生成するときに以前コンパイルされた可能性のある対応するＡＰＩ命令へ、グラフィックス命令３０をマッピングするために、例えば検索テーブル中などに、マッピング情報を含んでも良い。アプリケーション開発者は、ＡＰＩ命令を使用するプログラムを書いても良いが、これらのＡＰＩ命令は、一般的に、グラフィックス・デバイス２上での実行のために、例えばグラフィックス命令３０（それは、アプリケーション命令２１内に含まれる）のようなバイナリ命令にコンパイルされる。グラフィックス命令３０内の１又は複数の命令は、個々のＡＰＩ命令にマッピングされても良い。マッピングされたＡＰＩ命令は、それから、実際に実行されているグラフィックス命令３０のビジュアル表現を提供するために、表示デバイス２４上でアプリケーション開発者に対して表示されても良い。
【００３９】
一つの態様において、ユーザ（例えばアプリケーション開発者）は、例えばそのようなパフォーマンスの変化の効果を判定するために、グラフィックス命令３０のうちの１又は複数を変更することを望むことがある。この態様において、ユーザは、グラフィックス命令３０のビジュアル表現を変更しても良い。マッピング情報３１は、それから、下で更に詳細に説明されるように、要求された修正３４内のグラフィックス・デバイス２へ提供されることができるバイナリ命令に、グラフィックス命令３０のビジュアル表現中のこれらの変更をマッピングするために使用される。
【００４０】
先に述べたように、アプリケーション・コンピュータ・デバイス２０の表示デバイス２４上に表示されるグラフィックス・イメージは、グラフィックス・デバイス２上に表示されるイメージの表現であっても良い。グラフィックス・デバイス２上にイメージが提示されているときに、正確にイメージ又はシーンを再作成するために、シミュレーション・アプリケーション２８は、グラフィックス命令３０及びステート／パフォーマンス情報３２を使用しても良いので、アプリケーション・コンピュータ・デバイス２０を使用するアプリケーション開発者は、グラフィックス・アプリケーション３０の実行の間の潜在的な（potential）パフォーマンス・イッシュー又はボトルネックと、そして、グラフィックス・アプリケーション３０の全体的なパフォーマンスを向上させるプロトタイプ修正でさえ、速く識別することができ得る。
【００４１】
記憶媒体２６はまた、グラフィックス・データ・マッピング・モジュール２５を含む。グラフィックス・データ・マッピング・モジュール２５は、プロセッサ２２により実行されても良い。グラフィックス・データ・マッピング・モジュール２５は、グラフィックス命令３０内の個々の命令を、特定のプリミティブ・グラフィックス・データ（例えばポリゴン又はテクスチャー・データ）にマッピングするために、マッピング／パーティショニング情報３３を受信及び処理する。このグラフィックス・データは、ステート／パフォーマンス情報３２内に含まれても良い。グラフィックス命令３０の実行の間、シミュレーション・アプリケーション２８は、特定の命令のセットがパフォーマンス・イッシュー又はボトルネックを引き起こす可能性があると判定しても良い。例えば、これらのイッシュー又はボトルネックは、あまりに高いプロセッサ使用又は利用に基づいても良い。グラフィックス・データ・マッピング・モジュール２５は、それから、この特定の命令のセットを、これらの命令の実行の間の画像データをレンダリングするために使用され得るグラフィックス・データの部分にマッピングするために、マッピング／パーティショニング情報３３を使用しても良い。グラフィックス・データのこの部分は、識別されたパフォーマンス・イッシューに関連する場合がある。
【００４２】
アプリケーション・コンピュータ・デバイス２０は、特定の命令のセット及び／又はグラフィックス・データの部分を（例えばそのような情報を表示デバイス２４上に表示することなどによって）識別又は表示しても良い。そのような方法において、アプリケーション・コンピュータ・デバイス２０は、グラフィックス命令３０の実行の間の１又は複数のパフォーマンス・イッシューに関する理由である可能性があるプリミティブ・グラフィックス・データの選択された部分を自動的に識別及び表示することができる。アプリケーション開発者は、それから、より容易且つ効果的にこれらのイッシューを対処又は解決することができ得る。さらに、これらのアーティストがパフォーマンス・イッシューを解決するために使用でき得るパフォーマンス及びグラフィックス・データへの容易なアクセスを有し得るように、アプリケーション・コンピュータ・デバイス２０は、下でより詳しく説明されるように、パフォーマンス及び／又はマッピング情報を、グラフィックス・アーティストにより使用される１又は複数の外部デバイスへ自動的に送信することができても良い。
【００４３】
マッピング情報を使用することなく、実行の間の特定の問題に関連する特定のグラフィックス命令に関して、オリジナルのプリミティブ・グラフィックス・データ（例えばグラフィックス・アーティストによって作成されるデータ）の部分を識別することはさもなければ難しい場合がある。なぜならば、グラフィックス命令の実行に応じてグラフィックス・データが出力画像データにレンダリングされた後、そのような問題がより一般的に識別される可能性があるからである。マッピング情報は、命令実行に応じて、そのような後で識別された問題に関する理由である可能性があるオリジナルのグラフィックス・データへのマッピングを提供する。これらの問題は、例えば、あまりに多くのテクスチャー、あまりに多くのポリゴン、などに起因する特定のパフォーマンス・イッシューに関係する場合がある。アプリケーション開発者又はアーティストは、プリミティブ・グラフィックス・データに起因する潜在的な問題の学習に応じて、オリジナルのグラフィックス・データにおけるテクスチャー又はポリゴンに対して特定の修正（例えば、ポリゴンを移動すること、テクスチャーを追加又は除去すること、ポリゴンを再編成すること）を施すことを選択しても良い。
【００４４】
アプリケーション開発者は、アプリケーション・コンピュータ・デバイス２０上のシミュレーション・アプリケーション２８の実行及び表示デバイス２４上の再作成されたイメージの表示の間、グラフィックス命令３０及び／又はステート／パフォーマンス情報３２に対して１又は複数の要求された修正３４を施すことを選択しても良い。グラフィックス命令３０の実行又はステート／パフォーマンス情報３２の解析の間、そのような要求された修正３４は、観測されたパフォーマンス・イッシュー又はボトルネックに基づいても良い。これらの要求された修正３４は、それから、アプリケーション・コンピュータ・デバイス２０からグラフィックス・デバイス２へ送信されても良い。そこでは、それらはグラフィックス処理システム４によって処理される。一つの態様において、グラフィックス・ドライバー１８のうちの１又は複数が、要求された修正３４を処理するために、グラフィックス処理システム４中で実行される。要求された修正３４は、場合によっては、修正された命令を含んでも良い。場合によっては、要求された修正は、修正されたステート及び／又はパフォーマンス情報を含んでも良い。
【００４５】
要求された修正３４の処理に応じて、更新された命令及び／又は情報３５は、アプリケーション・コンピュータ・デバイス２０へ送信される（例えばグラフィックス・ドライバー１８のうちの１又は複数によって）。更新された命令／情報３５は、グラフィックス・デバイス２により処理された要求された修正３４に基づく実行のための更新されたグラフィックス命令を含んでも良い。更新された命令／情報３５はまた、グラフィックス・デバイス２により処理された要求された修正３４に基づく更新されたステート及び／又はパフォーマンス情報を含んでも良い。場合によってはまた、更新された命令／情報３５は、グラフィックス・データ・マッピング情報２３からの更新されたマッピング情報を含んでも良い。
【００４６】
更新された命令／情報３５は、表示デバイス２４上での再作成されたイメージ情報の表示を更新するために、さらに更新された命令／情報３５のビジュアル表現を、アプリケーション開発者に提供するために、シミュレーション・アプリケーション２８により処理される（それは命令マッピング情報３１を再び使用することを含んでも良い）。アプリケーション開発者は、それから、パフォーマンス・イッシューが解決又は軽減されたかについて判定するために、更新された命令／情報３５のビジュアル表現だけでなく、表示デバイス２４上の更新されたイメージ情報を閲覧しても良い。アプリケーション開発者は、グラフィックス命令３０をデバッグするための反復的なプロセス、又は、全体的なパフォーマンス・グラフィックス・アプリケーション３０を改善するためのプロトタイプ修正を使用しても良い。
【００４７】
一つの態様において、アプリケーション・コンピュータ・デバイス２０は、表示デバイス２４上に表示されるグラフィックス・イメージをオーバーレイするパーティションのビジュアル・グラフィカル表現を表示するために、マッピング／パーティショニング情報２３を使用する。これらのパーティションは、表示デバイス２４上でこれらのイメージを含むシーンをグラフィカルに分割する。例えば、シミュレーション・アプリケーション２８は、表示デバイス２４のスクリーン上でこれらのパーティション（例えば、複数の長方形の形のパーティション）のグラフィックス表現を作成するために、マッピング／パーティショニング情報３３を処理するパーティショニング・モジュール２７を使用しても良い。パーティショニング・モジュール２７は、記憶媒体２６からロードされ、プロセッサ２２により実行されても良い。実行されるとき、パーティショニング・モジュール２７はまた、グラフィックス・データのいずれの部分が該パーティションのうちの複数のものに関連するか判定するために、１又は複数のグラフィックス・イメージについて、グラフィックス・データ（それはステート／パフォーマンス情報３２内に含まれても良い）を解析しても良い。例えば、パーティショニング・モジュール２７は、下で更に詳細に説明されるように、表示デバイス２４上での表示のためのグラフィックス・イメージを作成するために及びこれらのポリゴンのうちのいずれのポリゴンが複数のパーティションにわたり得るかについて判定するために使用される、１又は複数のポリゴンを解析しても良い。
【００４８】
記憶媒体２６は、ナビゲーション・モジュール２９を更に含む。ナビゲーション・モジュール２９はまた、プロセッサ２２により実行されても良い。シミュレーション・アプリケーション２８は、実行の間、表示デバイス上にナビゲーション・コントローラを表示するために、ナビゲーション・モジュール２９を使用しても良い。ユーザ（例えばアプリケーション開発者）は、表示デバイス２４上に表示されるシーン内のグラフィックス・イメージの修正された斜視図を閲覧するために、このナビゲーション・コントローラとインタラクトしても良い。パーティショニング・モジュール２７は、それから、修正されたシーンをグラフィカルに分割するために、グラフィックス・イメージの修正された斜視図をオーバーレイするパーティションのグラフィカル表現を表示しても良い。パーティショニング・モジュール２７はまた、それから、複数のポリゴンのうちのいずれのが複数のパーティションにわたり得るかについて判定するために、修正された斜視図中にグラフィックス・イメージを作成するために使用される１又は複数のポリゴンを解析しても良い。
【００４９】
一つの態様に従って、図２は、本開示の一つの態様に従って、図１に示されるグラフィックス処理システム４及びアプリケーション・コンピュータ・デバイス２０の特定の詳細を示すブロック図である。図２において、アプリケーション・コンピュータ・デバイス２０は、デバイス２のグラフィックス処理システム４に接続されることが仮定される。しかし、これは説明の目的のためにだけ示される。他のシナリオでは、アプリケーション・コンピュータ・デバイス２０は、多くの他の形のグラフィックス処理システム及びデバイスに接続されても良い。
【００５０】
図２に示されるように、グラフィックス処理システム４は、４つのプログラム可能なプロセッサ、すなわち、制御プロセッサ１０、頂点プロセッサ１４、グラフィックス・プロセッサ１２及び表示プロセッサ１６を含む。それらは図１にも示される。制御プロセッサ１０は、頂点プロセッサ１４、グラフィックス・プロセッサ１２又は表示プロセッサ１６のうちの任意のものを制御しても良い。多くの場合に、これらのプロセッサ１０，１２，１４及び１６は、システム４内のグラフィックス処理パイプラインの一部であっても良い。
【００５１】
制御プロセッサ１０はまた、パイプラインを通してデータ又は命令実行のフローの１又は複数の態様を制御しても良く、さらに、グラフィックス・イメージに関するジオメトリ情報を、頂点プロセッサ１４に提供しても良い。頂点プロセッサ１４は、グラフィックス・イメージの頂点変換又はジオメトリ処理を管理しても良い。それは、プリミティブのジオメトリ・フォームにおける複数の頂点に従って記述又は定義されても良い。頂点プロセッサ１４は、その出力をグラフィックス・プロセッサ１２に提供しても良い。グラフィックス・プロセッサ１２は、グラフィックス・イメージに対するレンダリング又はラスタライゼーション・オペレーションを実行しても良い。グラフィックス・プロセッサ１２は、表示プロセッサ１６にその出力を提供しても良い。表示プロセッサ１６は、表示のために、ピクセル・フォームで、グラフィックス・イメージを準備する。グラフィックス・プロセッサ１２はまた、ピクセル・データに対する様々なオペレーション（例えばシェーディング又はスケーリング）を実行しても良い。
【００５２】
しばしば、グラフィックス・イメージ・データは、グラフィックス命令３０の実行の間、この処理パイプラインで処理されても良い。グラフィックス命令３０は、アプリケーション命令２１（図１）の一部であっても良い。その結果、グラフィックス命令３０は、制御プロセッサ１０、頂点プロセッサ１４、グラフィックス・プロセッサ１２及び表示プロセッサ１６のうちの１又は複数によって実行されても良い。アプリケーション開発者は、一般的に、グラフィックス処理システム４内のいずれの特定のプロセッサがグラフィックス命令３０のうちのいずれを実行するかという多くの知識又は制御を有しなくても良い。場合によっては、制御プロセッサ１０、頂点プロセッサ１４、グラフィックス・プロセッサ１２及び表示プロセッサ１６のうちの１又は複数は、グラフィックス命令３０の実行の間、パフォーマンス・イッシューを有する可能性があり、あるいは、処理パイプライン中の潜在的なボトルネックとして機能する可能性がある。これらの場合、グラフィックス処理システム４内の全体的なパフォーマンスが悪化する可能性があり、そして、アプリケーション開発者は、パフォーマンスを向上させるために、グラフィックス命令３０の変更を行うことを望むことがある。しかし、開発者がプロセッサ１０，１２，１４又は１６のいずれのプロセッサがパフォーマンス・イッシューを有するものである可能性があるかについて、必ずしも分るわけではない。
【００５３】
特に、ビニング・ベースのオペレーション（それにおいては、レンダリングに先立って、プリミティブ・グラフィックス・データが複数のビニング・パーティションにわたって分割される）は、しばしば、特定のパフォーマンス・イッシューを作り出すことがある。例えば、ポリゴン（例えば、図１０の例で示される三角形２６６）が２つの異なるパーティション（例えば、図１０に示されるパーティション２５６と２５８）にわたる場合に、該ポリゴンは、２つの構成フラグメント（constituent fragments）（パーティションごとに一つ）に分割され、そして、これらの２つの構成フラグメントは、ピクセル・データを含む独立したグラフィックス・イメージに独立してレンダリングされ得る。これらの２つの独立したグラフィックス・イメージは、それから、三角形２６６のビジュアル表現を作成するために、表示の前に結合される必要があり得る。三角形２６６の２つのフラグメントのための独立したレンダリング・オペレーションは、２つの関係するグラフィックス・イメージのための結合オペレーションとともに、パフォーマンス・オーバーヘッドを引き起こす可能性がある。
【００５４】
パフォーマンス・ボトルネック及び潜在的な解決を識別する問題を支援するために、図２に示されるように、グラフィックス・デバイス２のグラフィックス・ドライバー１８Ａは、グラフィックス処理システム４からグラフィックス命令３０を捕捉又は収集しても良く、また、アプリケーション・コンピュータ・デバイス２０にそれらを送っても良い。グラフィックス・ドライバー１８Ａは、図１に示されるグラフィックス・ドライバー１８の一部である。グラフィックス・ドライバー１８Ａは、制御プロセッサ１０、頂点プロセッサ１４、グラフィックス・プロセッサ１２及び表示プロセッサ１６のうちの１又は複数によってロード及び実行されても良い。さらに、グラフィックス・ドライバー１８Ａはまた、制御プロセッサ１０、ベクトルプロセッサ１４、グラフィックス・プロセッサ１２及び表示プロセッサ１６のうちの１又は複数からステート及び／又はパフォーマンス情報３２を収集しても良く、同様に、アプリケーション・コンピュータ・デバイス２０にこの情報３２を送っても良い。一つの態様において、グラフィックス命令３０がＯｐｅｎＧＬ ＥＳ ＡＰＩ命令から生成又はコンパイルされた可能性のあるバイナリ命令を含むとき、グラフィックス・ドライバー１８Ａは、ＯｐｅｎＧＬ ＥＳドライバーを含んでも良い。
【００５５】
様々な形のステート・データが、ステート／パフォーマンス情報３２内に含まれても良い。例えば、ステート・データは、グラフィックス命令３０の実行の間に使用される又はさもなければグラフィックス命令３０に関連するグラフィックス・データを含んでも良い。ステート・データは、頂点アレイ（例えば、位置、色、座標、サイズ又は重みデータ）に関係しても良い。ステート・データは、テクスチャー状態データ（texture state data）、点状態データ（point state data）、線状態データ（line state data）、ポリゴン状態データ（polygon state data）、カリング状態データ（culling state data）、アルファ・テスト状態データ（alpha test state data）、ブレンド状態データ（blending state data）、デプス状態データ（depth state data）、ステンシル状態データ（stencil state data）又は色状態データ（color state data）を更に含んでも良い。前に説明されたように、ステート・データは、ステート情報と実際のデータの両方を含んでも良い。場合によっては、ステート・データは、１又は複数のＯｐｅｎＧＬトークンに関連するデータを含んでも良い。
【００５６】
様々な形のパフォーマンス・データはまた、ステート／パフォーマンス情報３２内に含まれても良い。一般に、このパフォーマンス・データは、制御プロセッサ１０、頂点プロセッサ１４、グラフィックス・プロセッサ１２及び表示プロセッサ１６のうちの１又は複数からのメトリック又はハードウェア・カウンタ・データを含んでも良い。パフォーマンス・データは、フレーム・レート又はサイクル・データを含んでも良い。サイクル・データは、プロファイリング、命令アレイ、頂点及びインデックス・データ、又は他のオペレーションのために使用されるサイクルに関するデータを含んでも良い。様々な態様において、様々な形のステート及びパフォーマンス・データが、グラフィックス・ドライバー１８Ａによりグラフィックス処理システム４から収集されるステート／パフォーマンス情報３２内に含まれても良い。
【００５７】
前に説明されたように、アプリケーション・コンピュータ・デバイス２０は、受信されたグラフィックス命令３０及びステート／パフォーマンス情報３２に従って、グラフィックス・イメージの表現を表示しても良い。アプリケーション・コンピュータ・デバイス２０はまた、ステート／パフォーマンス情報３２のビジュアル表現を表示しても良い。再作成されたグラフィックス・イメージ及び／又はステート／パフォーマンス情報３２のビジュアル表現の閲覧及びインタラクトによって、アプリケーション開発者は、グラフィックス命令３０の実行の間、グラフィックス・デバイス２のグラフィックス処理システム４内のパフォーマンス・イッシューを速く識別及び解決することができる可能性がある。例えば、アプリケーション開発者は、プロセッサ１０，１２，１４及び／又は１６のうちのいずれの特定の複数のプロセッサがパフォーマンス・イッシューを有する可能性があるかについて識別することができ得る。
【００５８】
さらに、グラフィックス・ドライバー１８Ａはまた、アプリケーション・コンピュータ・デバイス２０にマッピング及び／又はパーティショニング情報３３を提供する。図１を参照して前に説明されたように、パーティショニング・モジュール２７は、シーンをグラフィカルに分割するために、シーン中でグラフィックス・イメージをオーバーレイする表示デバイス２４上でのパーティションのグラフィカル表現を表示するために、受信されたマッピング／パーティショニング情報３３を処理しても良い。パーティショニング・モジュール２７はまた、データのいずれの部分が該パーティションのうちの複数のものに関連するかについて判定するために、グラフィックス・データ（それはステート／パフォーマンス情報３２内に含まれても良い）を解析するために、マッピング／パーティショニング情報３３を使用しても良い。
【００５９】
さらに、マッピン／パーティショニング情報３３は、グラフィックス・データ（それは１又は複数のグラフィックス・イメージを生成するために使用されても良い）をグラフィックス命令３０中の識別された命令にマッピングするマッピング情報を含んでも良い。例えば、マッピング／分割情報３３は、グラフィックス命令３０のうちの１又は複数を、プリミティブ・グラフィックス・データの部分（例えばポリゴン又はテクスチャー・データ）にマッピングするための情報を含んでも良い。識別されたパフォーマンス・イッシューがこれらの１又は複数の命令に関連すると判定された場合には、マッピング情報は、１又は複数の命令の実行の間、このパフォーマンス・イッシューに同様に関連し得るグラフィックス・データの部分を判定するのに使用されもて良い。一般的に、これらの１又は複数の命令は、実行に応じて、イメージ・データ中にグラフィックス・データの部分をレンダリングする。それゆえ、レンダリングが終了し、そして、イメージ・データが表示された後、そのようなマッピング情報を使用せずに、イッシューに関連するオリジナルのグラフィックス・データを識別することは難しい場合がある。
【００６０】
任意の識別されたパフォーマンス・イッシューに対する回避方法（workaround）又は解決を識別する試行において、開発者は、アプリケーション・コンピュータ・デバイス２０上で１又は複数の要求された修正３４を開始しても良い。例えば、開発者は、要求された修正３４を作成するために、再作成されたイメージ又はステート／パフォーマンス情報３２の表現とインタラクトしても良い。場合によっては、開発者は、要求された修正３４を生成するために、下でより詳しく説明されるように、ステート／パフォーマンス情報３２を直接変更さえしても良い。特定のケースでは、要求された修正３４は、グラフィックス・デバイス２のグラフィックス処理システム４におけるグラフィックス命令３０のうちの１又は複数の実行を無効にする１又は複数のリクエストを含んでも良いし、又は、１又は複数のグラフィックス命令３０を修正するリクエストを含んでも良い。
【００６１】
場合によっては、ユーザは、グラフィックス・シーンの修正された斜視図が表示されるよう要求するために、表示デバイス２４上に表示されるナビゲーション・コントローラとインタラクトしても良い。ナビゲーション・モジュール２９は、このナビゲーション・コントローラの表示及びこのナビゲーション・コントローラとのインタラクションを管理しても良い。ユーザ・インタフェースを介してユーザにより入力される任意のリクエストは、要求された修正３４とともに含まれても良い。
【００６２】
要求された修正３４は、アプリケーション・コンピュータ・デバイス２０からグラフィックス・ドライバー１８Ａへ送信される。グラフィックス・ドライバー１８Ａは、オペレーションの間、グラフィックス・デバイス２のためのリクエストを処理する。多くの場合に、要求された修正３４は、ステート情報を修正するリクエストを含んでも良い。ステート情報は、グラフィックス命令３０の実行の間のグラフィックス処理システム４中のプロセッサ１０，１２，１４又は１６のうちの１又は複数の中のデータを含んでも良い。グラフィックス・ドライバー１８Ａは、それから、要求された修正３４内に含まれるグラフィックス処理システム４の変更を実行しても良い。これらの変更は、グラフィックス命令３０の実行のために、プロセッサ１０，１２，１４及び／又は１６の間で、実行のフローを変えても良い。特定のケースでは、グラフィックス命令３０のうちの１又は複数は、要求された修正３４に従って、グラフィックス処理システム４における実行の間、無効にされても良い。
【００６３】
グラフィックス・ドライバー１８Ａは、要求された修正３４の処理に応答して、更新された命令及び／又は情報３５を、アプリケーション・コンピュータ・デバイス２０に送信することができる。更新された命令／情報３５は、パフォーマンス情報を含む、グラフィックス・ドライバー１８Ａによりグラフィックス処理システム４から収集される更新されたステート情報を含んでも良い。更新された命令／情報３は、更新されたグラフィックス命令及び／又はグラフィックス・データを含んでも良い。場合によっては、更新された命令／情報３５はまた、更新された命令をオリジナルの（プリミティブ）グラフィックス・データにマッピングするために、グラフィックス・データ・マッピング情報２３からの更新されたマッピング情報を含んでも良い。
【００６４】
アプリケーション・コンピュータ・デバイス２０は、更新された命令／情報３５のビジュアル表現だけでなく、グラフィックス・イメージの更新された表現を表示するために、更新された命令／情報３５を使用しても良い。アプリケーション開発者は、それから、前に識別されたパフォーマンス・イッシューが解決又はさもなければ対処されたかどうかについて判断することができても良い。例えば、アプリケーション開発者は、特定のテクスチャーか、ポリゴン若しくは他の特徴が最適化されたか又は他のパフォーマンス・パラメータが改善されたか判定するために、更新された命令／情報３５のビジュアル表現だけでなく、更新されたイメージを解析することができても良い。
【００６５】
更新された命令／情報３５はまた、更新されたマッピン及び／又はパーティショニング情報（例えば、命令／情報３５内に同様に含まれる命令へのグラフィックス・データの更新されたマッピング）を含んでも良い。更新された命令／情報３５の結果として、シーンの更新された斜視図が表示デバイス２４に表示される場合には、パーティショニング・モジュール２７は、修正された斜視図をオーバーレイし及び修正されたシーンをグラフィカルに分割するパーティションのグラフィカル表現を表示しても良い。パーティショニング・モジュール２７はまた、グラフィックス・データのいずれの部分が該パーティションのうちの複数のものに関連するかについて判定するために、修正された斜視図（それはまた更新された命令／情報３５内に含まれても良い）のためのグラフィックス・データを解析しても良い。
【００６６】
そのような方法において、アプリケーション開発者は、グラフィックス・デバイス２上のグラフィックス処理システム４のオペレーションをシミュレートするアプリケーション・コンピュータ・デバイス２０上の環境内でグラフィックス命令３０の実行を速く及び効果的にデバッグ又は解析することができても良い。開発者は、グラフィックス命令３０の実行パフォーマンスを最大にするために、シーン又は複数のイメージ・フレームにおける複数のグラフィックス・イメージを解析するために、アプリケーション・コンピュータ・デバイス２０上の表示されたイメージ及びステート／パフォーマンス情報と繰り返しインタラクトしても良い。アプリケーション・コンピュータ・デバイス２０上のそのようなインタラクション及び表示される情報の例は、下で更に詳細に提示される。
【００６７】
一つの態様に従って、図３は、本開示の一つの態様に従って、図２に示されるグラフィックス・ドライバー１８Ａの更なる詳細を示すブロック図である。前に説明されたように、グラフィックス・ドライバー１８Ａは、グラフィックス処理システム４内で（例えば、制御プロセッサ１０、頂点プロセッサ１４、グラフィックス・プロセッサ１２及び表示プロセッサ１６のうちの１又は複数によって）実行されることができる命令を含んでも良く、また、グラフィックス・ドライバー１８の一部であっても良い。グラフィックス・ドライバー１８Ａの実行は、グラフィックス処理システム４がアプリケーション・コンピュータ・デバイス２０と通信するのを可能にする。一つの態様において、グラフィックス・ドライバー１８Ａは、グラフィックス処理システム５４内で実行されることができる命令を含んでも良く、また、グラフィックス・ドライバー６８の一部であっても良い。
【００６８】
グラフィックス・ドライバー１８Ａは、実行されるとき、様々な機能ブロックを含む。様々な機能ブロックは、転送インタフェース１１０、プロセッサ使用モジュール１１２、ハードウェア・カウンタ・モジュール１１４、他のステート及び／又はパフォーマンス・データを管理することができるステート／パフォーマンス・データ・モジュール１１６、ＡＰＩトレース・モジュール１１８、及び、オーバーライド・モジュール（override module）１２０として図３に示される。グラフィックス・ドライバー１８Ａは、アプリケーション・コンピュータ・デバイス２０と通信するために、転送インタフェース・モジュール１１０を使用する。
【００６９】
プロセッサ使用モジュール１１２は、制御プロセッサ１０、頂点プロセッサ１４、グラフィックス・プロセッサ１２及び表示プロセッサ１６のうちの１又は複数に関するプロセッサ使用情報を収集及び維持する。プロセッサ使用情報は、プロセッシング・サイクル及び／又はパフォーマンス情報を含んでも良い。サイクル・データは、プロファイリング、命令アレイ、頂点及びインデックス・データ又は、他のオペレーションのために使用されるサイクルに関するデータを含んでも良い。プロセッサ使用モジュール１１２は、それから、転送インタフェース・モジュール１１０を介してそのようなプロセッサ使用情報をアプリケーション・コンピュータ・デバイス２０に提供しても良い。場合によっては、プロセッサ使用モジュール１１２は、非同期の方法で、それがこの情報を受信しながら、該情報をデバイス２０に提供する。他の場合において、プロセッサ使用モジュール１１２は、デバイス２０からのリクエストの受信に応じて、情報を提供しても良い。
【００７０】
ハードウェア・カウンタ・モジュール１１４は、制御プロセッサ１０、グラフィックス・プロセッサ１２、頂点プロセッサ１４又は表示プロセッサ１６のうちの１又は複数による命令の実行の間、様々なハードウェア・カウンタを収集及び維持する。カウンタは、グラフィックス処理システム４内での命令実行に関して様々なステート・インジケータ及び／又はメトリックの経過を追っても良い（keep track）。ハードウェア・カウンタ・モジュール１１４は、非同期で又はリクエストに応じて、情報をデバイス２０に提供しても良い。
【００７１】
ステート／パフォーマンス・データ・モジュール１１６は、グラフィックス処理システム４における制御プロセッサ１０、グラフィックス・プロセッサ１２、頂点プロセッサ１４及び表示プロセッサ１６のうちの１又は複数に関する他のステート及び／又はパフォーマンス・データを収集及び維持する。例えば、ステート・データは、場合によっては、グラフィックス・データを含んでも良い。ステート・データは、頂点アレイ（例えば、位置、色、座標、サイズ又は重みデータ）に関係するデータを含んでも良い。ステート・データは、テクスチャー状態データ、点状態データ、線状態データ、ポリゴン状態データ、カリング状態データ、アルファ・テスト状態データ、ブレンド状態データ、デプス状態データ、ステンシル状態データ又は色状態データを更に含んでも良い。パフォーマンス・データは、様々な他のメトリック又はサイクル・データを含んでも良い。ステート／パフォーマンス・データ・モジュール１１６は、非同期で又はリクエストに応じて、情報をデバイス２０に提供しても良い。
【００７２】
マッピング／パーティショニング・モジュール１１７は、制御プロセッサ１０、グラフィックス・プロセッサ１２、頂点プロセッサ１４及び表示プロセッサ１６のうちの１又は複数からマッピング及び／又はパーティショニング情報３３を収集し、また、グラフィックス・データ・マッピング情報２３（図１）から情報を収集しても良い。マッピング情報は、グラフィックス・データの識別された部分（それは表示のためのグラフィックス・イメージを生成するためにレンダリングされる）を、グラフィックス命令３０のうちの１又は複数にマッピングする情報を含んでも良い。このマッピング情報は、個々の命令を、出力イメージをレンダリングするために使用されたオリジナルのグラフィックス・データへマッピングするのに有効であり得る。パーティショニング情報は、レンダリングに先立って別々のグラフィックス・データを構成フラグメントにスプリットするときに、グラフィックス処理システム４内で作成及び使用されるパーティションの数、タイプ、サイズ、形状などを識別する情報を含んでも良い。マッピング／パーティショニング・モジュール１１７は、マッピング／パーティショニング情報３３をアプリケーション・コンピュータ・デバイス２０に提供しても良い。
【００７３】
ＡＰＩトレース・モジュール１１８は、グラフィックス処理システム４により実行され、転送インタフェース・モジュール１１０を介してアプリケーション・コンピュータ・デバイス２０へ転送されるグラフィックス命令のフロー及び／又はトレースを管理する。前に説明されたように、グラフィックス・デバイス２は、グラフィックス命令３０のコピー（それはその処理パイプラインにおいてグラフィックス処理システム４により実行される）を、デバイス２０に提供する。ＡＰＩトレース・モジュール１１８は、これらのグラフィックス命令３０の捕捉及び転送を管理する。ＡＰＩトレース・モジュール１１８はまた、グラフィックス命令３０を、グラフィックス命令３０のビジュアル表現にマッピングする命令マッピング情報３１（図１）で使用される特定の情報（例えばグラフィックス命令３０を生成するのに使用された可能性のあるＡＰＩ命令）を提供しても良い。
【００７４】
オーバーライド・モジュール１２０は、グラフィックス・ドライバー１８Ａが、グラフィックス処理システム４内の特定の命令の実行を変更又はオーバーライドできるようにする。前に説明されたように、アプリケーション・コンピュータ・デバイス２０は、１又は複数の要求された修正（例えば修正３４）を、グラフィックス・デバイス２に送信しても良い。特定のケースでは、要求された修正３４は、グラフィックス処理システム４におけるグラフィックス命令３０のうちの１又は複数の実行を無効にする１又は複数のリクエスト、又は、グラフィックス命令３０のうちの１又は複数を修正するリクエストを含んでも良い。場合によっては、要求された修正３４は、ステート／パフォーマンス情報３２を変更するリクエストを含んでも良い。
【００７５】
オーバーライド・モジュール１２０は、要求された修正３４を受信又は処理しても良い。例えば、オーバーライド・モジュール１２０は、ステート／パフォーマンス情報３２を修正する任意のリクエストとともに、グラフィックス命令３０のうちの１又は複数を修正するリクエストを、デバイス２０から受信しても良く、また、そのようなリクエストを、グラフィックス処理システム４に送信する。制御プロセッサ１０、グラフィックス・プロセッサ１２、頂点プロセッサ１４及び表示プロセッサ１６のうちの１又は複数は、それから、これらのリクエストを処理し、また、更新された命令／情報３５を生成しても良い。オーバーライド・モジュール１２０は、それから、前に説明されたように、更新された命令／情報３５を、処理のためにアプリケーション・コンピュータ・デバイス２０に送信しても良い。
【００７６】
そのような方法において、グラフィックス・ドライバー１８Ａは、グラフィックス・デバイス２とアプリケーション・コンピュータ・デバイス２０との間のインタフェースを提供する。グラフィックス・ドライバー１８Ａは、グラフィックス命令及びステート／パフォーマンス情報３２をアプリケーション・コンピュータ・デバイス２０に提供することができ、さらに、アプリケーション・コンピュータ・デバイス２０から要求された修正３４を受信することができる。そのような要求された修正３４の処理の後に、グラフィックス・ドライバー１８Ａは、更新された命令／情報３５を、アプリケーション・コンピュータ・デバイス２０へ提供することができる。
【００７７】
図４Ａは、一つの態様に従って、１又は複数の更なるアプリケーション・コンピュータ・デバイス４０Ａ〜４０Ｎに接続される、図１に示されるグラフィックス・デバイス２及びアプリケーション・コンピュータ・デバイス２０を示すブロック図である。この態様において、図１に示されるように、グラフィックス・デバイス２は、アプリケーション・コンピュータ・デバイス２０に接続され、アプリケーション・コンピュータ・デバイス２０は、アプリケーション開発者によって使用されても良い。前に説明されたように、グラフィックス・デバイス２は、アプリケーション・コンピュータ・デバイス２０へ、グラフィックス命令、ステート／パフォーマンス情報及びマッピング／パーティショニング情報を送信しても良い。アプリケーション・コンピュータ・デバイス２０は、グラフィックス・デバイス２へ、１又は複数の要求された修正を送信しても良い。
【００７８】
さらに、アプリケーション・コンピュータ・デバイス２０は、１又は複数の更なるアプリケーション・コンピュータ・デバイス４０Ａ〜４０Ｎに接続される。アプリケーション・コンピュータ・デバイス４０Ａ〜４０Ｎは、グラフィックス・アプリケーションのためのグラフィックス命令の実行の間、出力グラフィックス・イメージ・データをレンダリングするために使用され得るプリミティブ・グラフィックス・データを作成するグラフィックス・アーティストによって使用されても良い。各々のアーティストは、他のアーティストと独立して働いても良く、それゆえ、アプリケーション・コンピュータ・デバイス４０Ａ〜４０Ｎは、異なる場所にある独立したデバイスを含んでも良い。
【００７９】
例えば、アプリケーション・コンピュータ・デバイス４０Ａは、カナダにいるアーティストによって使用されても良い。アプリケーション・コンピュータ・デバイス４０Ｎは、アメリカ合衆国（例えば、シカゴ）にいるアーティストによって使用されても良い。アプリケーション・コンピュータ・デバイス２０は、この例において、例えば無線又はネットワーク接続（例えば、インターネット接続）を介するなどして、アプリケーション・コンピュータ・デバイス４０Ａ及び４０Ｎのいずれか又は両方と通信することができても良い。多くの場合に、アプリケーション・コンピュータ・デバイス２０及びアプリケーション・コンピュータ・デバイス４０Ａ〜４０Ｎは、パーソナル・コンピュータ・デバイスを含んでも良く、また、これらのデバイスは、ネットワーク接続（例えばセキュアなネットワーク接続）を介して通信しても良い。特定のケースでは、アプリケーション・コンピュータ・デバイス２０は、グラフィックス・デバイス２と同一の場所に配置されても良いが、アプリケーション・コンピュータ・デバイス４０Ａ〜４０Ｎから離れて位置しても良い。例えば、アプリケーション・コンピュータ・デバイス４０Ａがカナダにあり、アプリケーション・コンピュータ・デバイス４０Ｎがシカゴにあるならば、アプリケーション・コンピュータ・デバイス２０及びグラフィックス・デバイス２はカリフォルニアにあっても良い。
【００８０】
コンピュータ・デバイス２０を使用するアプリケーション開発者がコンピュータ・デバイス４０Ａ〜４０Ｎを使用するアーティストと同一の場所に配置されない可能性があるので、アプリケーション開発者がこれらのアーティストとインタラクト又は通信することは必ずしも容易でない場合がある。特に、コンピュータ・デバイス２０を使用するアプリケーション開発者が、グラフィックス命令の実行の間、１又は複数のパフォーマンス・イッシューを識別するならば、開発者がアーティストにこれらのイッシューを通知するか、又は、パフォーマンス・イッシューを引き起こす可能性のある、これらのアーティストによって作成されるグラフィックス・データの部分に関して特定の情報をアーティストに提供することは必ずしも容易でない場合がある。本開示の様々な態様に従って、アーティストが、パフォーマンス情報をレビューすることができるように、さらに、パフォーマンス問題のソースである可能性がある、それらが作成したされたグラフィックス・データの部分を速く識別することができるように、コンピュータ・デバイス２０は、そのような情報をコンピュータ・デバイス４０Ａ〜４０Ｎに自動的に提供することができる。これらのアーティストはまた、グラフィックス・データの変更をすることができ、また、これらの変化がパフォーマンスにどのように影響を及ぼし得るか判定し又は任意のパフォーマンス・イッシューを解決することができても良い。
【００８１】
図４Ａに示されるように、コンピュータ・デバイス２０は、コンピュータ・デバイス４０Ａ〜４０Ｎの各々に、グラフィックス命令、ステート／パフォーマンス情報及びマッピング／パーティショニング情報を送信することができる。例えば、コンピュータ・デバイス２０は、コンピュータ・デバイス４０Ａ〜４０Ｎに、（それが以前グラフィックス・デバイス２から受信した）グラフィックス命令３０（図１）、ステート／パフォーマンス情報３２及びマッピング／パーティショニング情報３３を送信しても良い。各々のコンピュータ・デバイス４０Ａ〜４０Ｎは、レンダリングされた画像データのビジュアル表現を作成するために、更にステート及びパフォーマンス情報を表示するために、受信された命令及び情報を使用することができても良い。場合によっては、アーティストがパーティションの表示及びそのようなパーティションがどのようにシーンを分割するかを閲覧することができるように、各々のコンピュータ・デバイス４０Ａ〜４０Ｎは、グラフィカル・シーンをオーバーレイするグラフィカル・パーティションの表現を表示しても良い。さらに、各々のコンピュータ・デバイス４０Ａ〜４０Ｎはまた、任意の識別されたパフォーマンス・イッシューに関連するグラフィックス命令を、対応するアーティストによって作成されたオリジナルのプリミティブ・グラフィックス・データの特定の部分にマッピングするために、受信された情報を解析しても良い。このように、アーティストは、命令の実行に基づいてパフォーマンス情報をレビューすることができ、また、アーティストによって作成されるデータがグラフィックスのいずれの部分に関連するか又は特定のパフォーマンス・イッシューの原因になり得るかについて速く識別することができる。パフォーマンス・イッシューは、特定のテクスチャーのサイズ、特定のポリゴンのサイズ、ブレンディングの量又はその種の他のものに関係しても良い。
【００８２】
任意の個々のアーティストは、グラフィックス・データのこれらの識別された部分に対して１又は複数の修正を施すことを望むことがある。例えば、識別されたパフォーマンス・イッシューがテクスチャーのサイズに関係するならば、アーティストはテクスチャーを調整したいかもしれない。他の識別されたパフォーマンス・イッシューが特定のポリゴンのサイズに関係するならば、アーティストは、パフォーマンス・イッシューを処理、解決又はさもなければ軽減する努力において、ポリゴンをスプリットすること、ポリゴンを削除すること、又は、ポリゴンを移動することを選択しても良い。任意の変更が、アプリケーション・コンピュータ・デバイス２０へ送信されても良い。そして、それは、それから、（例えば前に説明された）処理のために、元のグラフィックス・デバイス２へ送信される要求された修正３４内にそのような変更を含んでも良い。
【００８３】
グラフィックス・デバイス２からの更新された命令／情報３５の受信に応じて、コンピュータ・デバイス２０は、そのような情報を解析しても良く、さらに、更新された命令／情報を、要求された修正を送信したリモート・コンピュータ・デバイス（例えば、デバイス４０Ａ）に提供しても良い。更新された命令／情報は、更新されたマッピング情報を含んでも良い。この例では、コンピュータ・デバイス２０及び／又は４０Ａは、パフォーマンス・イッシューが解決されたか又はさもなければ軽減されたかどうか判定するために、更新された命令／情報を使用又は解析しても良い。場合によっては、コンピュータ・デバイス２０は、パフォーマンス・イッシューが解決されたかどうかに関して、インジケーションを、コンピュータ・デバイス４０Ａに送信しても良い。そのような方法において、アーティストは、コンピュータ・デバイス２０及びグラフィックス・デバイス２から自動的にデータを受信することる効率的な方法で、オリジナルのグラフィックス・データに対する任意の要求された変更が、パフォーマンス・イッシューを解決し得たかどうか判定しても良い。パフォーマンス・イッシューが軽減されなかったか又は完全には解決されなかったならば、アーティストが問題を解決するために反復的な方法でグラフィックス・データに対する修正をし続けようとし得るように、更新された命令／情報は、未解決の問題に関連するグラフィックス・データの特定の部分を識別するために使用され得る更新されたマッピング情報を含んでも良い。
【００８４】
図４Ｂは、一つの態様に従って、図４Ａに示される更なるアプリケーション・コンピュータ・デバイス４０Ａのうちの一つの更なる詳細を示すブロック図である。場合によっては、図４Ａに示されるコンピュータ・デバイス４０Ａ〜４０Ｎの各々は、図４Ｂに示されるコンピュータ・デバイスと同様のデザインを有しても良い。
【００８５】
図４Ｂの例において、アプリケーション・コンピュータ・デバイス４０Ａ（それはグラフィックス・アーティストによって使用されても良い）は、図１に示されたアプリケーション・コンピュータ・デバイス２０と同様のデザインを有する。場合によっては、コンピュータ・デバイス４０Ａは、パーソナル・コンピュータ・デバイス（例えばラップトップ又はデスクトップ・コンピュータ）を含んでも良い。アーティストは、オリジナルのプリミティブ・グラフィックス・データ（例えば、ポリゴン及び／又はテクスチャー・データ）を作成するために、コンピュータ・デバイス４０Ａを使用しても良い。そして、それは、グラフィックス・アプリケーションにおけるグラフィックス・シーン（例えば、３Ｄシーン）に組み込まれても良い。
【００８６】
図４Ｂに示されるように、コンピュータ・デバイス４０Ａは、１又は複数のプロセッサ１２２及び表示デバイス１２４を含む。表示デバイス１２４は、例えばＬＣＤ（液晶ディスプレイ）、プラズマ・ディスプレイ・デバイス又は他のテレビ（ＴＶ）表示デバイスのような、表示目的の画像データを表示することができる任意のデバイスであっても良い。コンピュータ・デバイス４０Ａはまた、記憶媒体１２６を含む。記憶媒体１２６は、メモリを含んでも良い。記憶媒体１２６は、命令及び／又はデータ（例えば、シンクロナスダイナミックランダムアクセスメモリ（SDRAM）、リードオンリーメモリ（ROM）、不揮発性ランダムアクセスメモリ（NVRAM）、埋め込まれたダイナミックランダムアクセスメモリ（eDRAM）、スタティックランダムアクセスメモリ（SRAM）又はフラッシュメモリ）を格納することができるどんな永久であるか不安定なメモリでも含んでも良い。
【００８７】
記憶媒体１２６は、プロセッサ１２２により実行されるときに、アーティストが、表示デバイス１２４上に表示されるグラフィックス・データを作成することを可能にするＤＣＣ（デジタル・コンテンツ・クリエーション）アプリケーション１２７を含んでも良い。記憶媒体１２６はまた、シミュレーション・アプリケーション１２８、パーティショニング・モジュール１３０、グラフィックス・データ・マッピング・モジュール１３２、ナビゲーション・モジュール１３４及び命令マッピング情報１３６を含む。これらのモジュール及びデータ・ストアは、シミュレーション・アプリケーション２８（図１）、パーティショニング・モジュール２７、グラフィックス・データ・マッピング・モジュール２５、ナビゲーション・モジュール２９及び命令マッピング情報３１と同様である。このように、グラフィックス命令、ステート／パフォーマンス情報及びマッピング／パーティショニング情報を処理するときに、更に、要求された修正を作成するときに、コンピュータ・デバイス４０Ａは、コンピュータ・デバイス２０と同様に機能しても良い。コンピュータ・デバイス４０Ａにおいて、アーティストが、グラフィックス・データを作成及び修正するために使用されるＤＣＣツールの使用とともに、要求された修正をし得るだけでなく、グラフィックス及びパフォーマンス情報を閲覧し得るように、これらの機能はまた、ＤＣＣアプリケーション１２７に組み込まれても良い。このように、アーティストがＤＣＣツール内でグラフィックス・データの変更をするならば、これらの変更は、コンピュータ・デバイス２０へ送信される要求された修正として処理されることができる。
【００８８】
図５は、一つの態様に従って、個々のグラフィックス命令とグラフィックス・データとの間の例示的なマッピングを示す概念図である。図５の例において、示されたグラフィックス命令３０Ａ〜３０Ｎは、図１に示されるグラフィックス命令３０の一部であると仮定される。一つの態様において、図５に示される例示的なマッピングは、グラフィックス・デバイス２のグラフィックス・データ・マッピング情報２３内のマッピング情報として捕捉されても良い。
【００８９】
図５に示されるように、個々のグラフィックス命令３０Ａ〜３０Ｇは、グラフィックス・データ１４０に関連しても良く、また、それによって、グラフィックス・データ１４０にマッピングされても良い。例えば、グラフィックス命令３０Ａ〜３０Ｇは、グラフィックス・アプリケーション内のグラフィックス・データ１４０にバインドされていても良く、また、実行に応じてグラフィックス・データ１４０を画像データにレンダリングするドロー命令を含んでも良い。場合によっては、グラフィックス・データ・マッピング情報２３は、グラフィックス命令３０Ａ〜３０Ｇをグラフィックス・データ１４０にマッピングする情報を含んでも良い。図５の例において、グラフィックス・データ１４０は、ポリゴン（例えば、三角形）データ１４２及びテクスチャー・データ１４４を含むプリミティブ・グラフィックス・データを含む。テクスチャー・データ１４４は、ポリゴン・データ１４２内で定義されるポリゴンのためのテクスチャーを含んでも良い。ポリゴン・データ１４２及びテクスチャー・データ１４４は、グラフィックス・シーン（例えば三次元グラフィックス・シーン）内に含まれるグラフィックス・データ１４０の構成部分を含んでも良い。
【００９０】
図５に示される概念図から明白であるように、アプリケーション・コンピュータ・デバイス２０及び／又はアプリケーション・コンピュータ・デバイス４０Ａ〜４０Ｎは、グラフィックス命令３０Ａ〜３０Ｇをグラフィックス・データ１４０にマッピングするマッピング情報を使用しても良い。このように、例えば、グラフィックス命令３０Ａ〜３０Ｇが、画像データをレンダリングする命令の実行の間の特定のパフォーマンスに関連するならば、マッピング情報は、グラフィックス・データ１４０を、パフォーマンス・イッシューに関連し得る又はパフォーマンス・イッシューの原因になり得るオリジナルの、プリミティブ・グラフィックス・データとして識別する。例えば、パフォーマンス・イッシューがテクスチャリングの過剰又はオーバーサイズのポリゴンに関係するならば、グラフィックス・データ１４０は、過度のテクスチャリング（例えば、テクスチャー・データ１４４内で）又はオーバーサイズのポリゴン（例えば、ポリゴン・データ１４２内で）の原因である場合がある。グラフィックス・データ１４０を作成又は生成したアーティストは、イッシューを解決するために、例えばテクスチャー・データ１４４の調整又はポリゴン・データ１４２内の１又は複数のポリゴンのサイズの変更などによって、識別されたグラフィックス・データ１４０だけでなく、パフォーマンス・イッシューをチェックすることができても良い。
【００９１】
図５はまた、グラフィックス命令３０Ｈ〜３０Ｎが、グラフィックス・データ１４６にマッピングされることを示す。そして、それは、グラフィックス・データ１４０から独立している。グラフィックス命令３０Ｈ〜３０Ｎは、したがって、グラフィックス・データ１４６内に含まれるポリゴン・データ１４８及びテクスチャー・データ１５０に関連する。
【００９２】
図６は、一つの態様に従って、アプリケーション・コンピュータ・デバイス２０（図１）又はアプリケーション・コンピュータ・デバイス４０Ａ〜４０Ｎ（図４Ａ）のうちの任意の一つにより実行され得る第１の方法のフローチャートである。説明の便宜のためだけに、本方法は、アプリケーション・コンピュータ・デバイス２０により実行されると仮定される。
【００９３】
アプリケーション・コンピュータ・デバイス２０は、外部デバイス（例えばグラフィックス・デバイス２）から、グラフィックス命令３０を受信しても良い（１７０）。グラフィックス命令３０は、プリミティブ・グラフィックス・データから画像データをレンダリングして、１又は複数のグラフィックス・イメージ（例えば３次元（３Ｄ）グラフィックス・イメージ）を表示デバイス６上に表示するために、グラフィックス・デバイス２により実行される。一つの態様において、グラフィックス命令３０は、実行されるときに、グラフィックス・イメージをレンダリングするコール・ストリームを含む。一つの態様において、コール・ストリームは、アプリケーション・プログラミング・インタフェース（ＡＰＩ）命令から生成されるバイナリ命令を含む。
【００９４】
コンピュータ・デバイス２０はまた、グラフィックス・デバイス２からマッピング／パーティショニング情報３３を受信しても良い。そして、それは、グラフィックス命令３０の実行の間、グラフィックス命令３０を、グラフィックス・イメージをレンダリングするために使用されるプリミティブ・グラフィックス・データにマッピングする情報を含む（１７２）。プリミティブ・グラフィックス・データは、グラフィカル・シーンの構成セグメントを含むポリゴン・データ及びテクスチャー・データのうちの少なくとも一つを含んでも良い。
【００９５】
マッピング情報は、少なくとも一つのグラフィックス命令の実行の間、グラフィックス命令３０内の少なくとも一つのグラフィックス命令を、１又は複数のグラフィックス・イメージをレンダリングするために使用されるプリミティブ・グラフィックス・データの部分にマッピングする情報を含んでも良い。コンピュータ・デバイス２０は、グラフィックス・デバイス２から、ステート／パフォーマンス情報３２を受信しても良い（１７４）。ステート／パフォーマンス情報３２は、グラフィックス・デバイス２上でのグラフィックス命令３０の実行に関連する。ステート／パフォーマンス情報３２は、グラフィックス命令３０及びプリミティブ・グラフィックス・データの部分のうちの少なくとも一つの実行に関連するパフォーマンス情報を含んでも良い。
【００９６】
ステート／パフォーマンス情報３２はまた、グラフィックス・デバイス２がグラフィックス・イメージをレンダリングするときの、グラフィックス・デバイス２の１又は複数のステートを示すステート情報を含んでも良い。ステート情報は、グラフィックス命令３０を実行するグラフィックス・デバイス２の１又は複数のプロセッサ（例えば、制御プロセッサ１０、図形プロセッサ１２、頂点プロセッサ１４及び／又は表示プロセッサ１６）からのステート情報を含んでも良い。場合によっては、ステート情報は、プリミティブ・グラフィックス・データ（例えばグラフィックス・イメージ・データをレンダリングするためにグラフィックス・デバイス２においてグラフィックス・プロセッサ１２により使用されるプリミティブ・ポリゴン・データ）を含んでも良い。
【００９７】
コンピュータ・デバイス２０は、グラフィカル・シーンにおいて、グラフィックス命令３０及びステート／パフォーマンス情報３２に基づいて、１又は複数のグラフィックス・イメージの表現を表示しても良い。そのような方法において、コンピュータ・デバイス２０は、グラフィックス・デバイス２をシミュレートするシミュレーションされた環境内で、これらのグラフィックス・イメージの表現を表示することができる。シミュレーションされた環境は、コンピュータ・デバイス２０のプロセッサ２２の上で、シミュレーション・アプリケーション２８の実行を通して提供されても良い。
【００９８】
コンピュータ・デバイス２０は、グラフィックス命令３０のうちの少なくとも一つの実行に関連するパフォーマンス・イッシューを識別しても良い（１７６）。このパフォーマンス・イッシューは、例えば、極端に大きなポリゴン、過度のテクスチャリング、過度のブレンディング、又はその種の他のものに起因する増加したプロセッサ利用に関連する場合がある。場合によっては、プリミティブ・グラフィックス・データの部分が、１又は複数のポリゴンを含むとき、コンピュータ・デバイス２０は、マッピング情報により指定されるような関連するグラフィックス命令３０のうちの少なくとも一つの実行に基づくパフォーマンス・イッシューに関連する１又は複数のポリゴンを識別するために、受信されたマッピング情報を使用しても良い。コンピュータ・デバイス２０は、場合によっては、プリミティブ・グラフィックス・データの部分に関連するパフォーマンス・イッシューを識別するために、グラフィックス・デバイス２からの任意の受信されたパフォーマンス情報を解析しても良い。
【００９９】
コンピュータ・デバイス２０は、それから、少なくとも一つのグラフィックス命令の実行に基づくパフォーマンス・イッシューに関連するプリミティブ・グラフィックス・データをの部分識別するために、マッピング情報を使用しても良い（１７８）。さらに、コンピュータ・デバイス２０は、表示デバイス２４上に、命令３０内の少なくとも一つのグラフィックス命令に基づくパフォーマンス・イッシューに関連するグラフィックス・データの部分の表現及び任意の受信されたステート情報を表示しても良い（１８０）。
【０１００】
一つの態様において、コンピュータ・デバイス２０は、ナビゲーション・コントローラを表示デバイス２４上に表示するために、ナビゲーション・モジュール２９（図１）を使用しても良い。ユーザは、スクリーン上のグラフィカル・ユーザ・インタフェースを介して表示されるナビゲーション・コントローラとインタラクトしても良い。このグラフィカル・ユーザ・インタフェースは、ナビゲーション・コントローラとインタラクトするために、ユーザ入力を受信しても良い。コンピュータ・デバイス２０は、表示デバイス２４上に、ユーザ入力に基づくプリミティブ・グラフィックス・データの部分の表現の修正された斜視図を表示しても良い。
【０１０１】
グラフィックス命令を受信すること（１７０）、マッピング情報を受信すること（１７２）、パフォーマンス情報を受信すること（１７４）、パフォーマンス・イッシューを識別すること（１７６）、グラフィックス・データの部分を識別することと（１７８）及び表示すること（１８０）は、複数のイメージ又は画像フレームについて繰り返されても良い（１８２）。グラフィックス・イメージが変更するので、あるいは、イメージの代わりの斜視図が複数のフレームにおいて示されるので、ユーザ（例えば、アプリケーション開発者）は、命令の実行の間、イメージに関連するグラフィックス・データと任意の識別されたパフォーマンス・イッシューとの間の関係を連続的に確認することができる。これらのイッシューを軽減又は解決しようとして、ユーザは、それから、適切なアクションをとっても良い。
【０１０２】
図７は、一つの態様に従って、アプリケーション・コンピュータ・デバイス２０（図１）又はアプリケーション・コンピュータ・デバイス４０Ａ〜４０Ｎ（図４Ａ）のうちの任意の一つにより実行され得る第２の方法のフローチャートである。説明の便宜のために、図７に示される方法は、アプリケーション・コンピュータ・デバイス４０Ａにより実行されると仮定される。
【０１０３】
図７に示されるように、アプリケーション・コンピュータ・デバイス４０Ａは、外部デバイス（例えばアプリケーション・コンピュータ・デバイス２０）から、グラフィックス命令を受信しても良い（１８４）。コンピュータ・デバイス２０は、それがグラフィックス・デバイス２から受信するグラフィックス命令３０に基づいて、これらの命令を、コンピュータ・デバイス４０Ａに送信しても良い。
【０１０４】
コンピュータ・デバイス４０Ａはまた、コンピュータ・デバイス２０から受信された命令を、グラフィックス・データ（例えばポリゴン・データ又はテクスチャー・データ）にマッピングするマッピング情報を、コンピュータ・デバイス２０から受信しても良い（１８６）。コンピュータ・デバイス２０は、それがグラフィックス・デバイス２から受信するマッピング／パーティショニング情報３３に基づいて、このマッピング情報を、コンピュータ・デバイス４０Ａに送信しても良い。
【０１０５】
グラフィックス命令及びマッピング情報の受信に応じて、コンピュータ・デバイス４０Ａは、パフォーマンス・イッシューに関連するグラフィックス・データの部分を識別するために、受信されたマッピング情報を使用しても良い（１８８）。コンピュータ・デバイス４０Ａは、コンピュータ・デバイス２０から受信される、受信されたグラフィックス命令及び／又は他の情報（例えばステート／パフォーマンス情報又はパーティショニング情報）に基づいて、パフォーマンス・イッシューを識別しても良い。一つの態様において、コンピュータ・デバイス２０が、グラフィックス命令３０、ステート／パフォーマンス情報３２及び／又はマッピング／パーティショニング情報３３に基づいて、パフォーマンス・イッシューを識別し得るとき、コンピュータ・デバイス２０は、プリミティブ・グラフィックス・データの部分に関連するパフォーマンス・イッシューのインジケーションを、コンピュータ・デバイス４０Ａへ送信しても良い。
【０１０６】
コンピュータ・デバイス４０Ａは、例えばコンピュータ・デバイス４０Ａを使用するアーティストなどからの、プリミティブ・グラフィックス・データの部分に対する要求された修正を指定する、ユーザ入力を受信しても良い（１９０）。コンピュータ・デバイス４０Ａは、処理のために、コンピュータ・デバイス２０に要求された修正を送信しても良い（１９２）。要求された修正の受信に応じて、コンピュータ・デバイス２０は、それがグラフィックス・デバイス２に送信する要求された修正３４内に、要求された修正を含んでも良い。コンピュータ・デバイス２０が更新された命令／情報３５（それは要求された修正に関連する更新されたパフォーマンス情報を含んでも良い）をグラフィックス・デバイス２から受信する後、コンピュータ・デバイス２０は、更新された命令／情報をコンピュータ・デバイス４０Ａに提供しても良い。
【０１０７】
コンピュータ・デバイス４０Ａは、パフォーマンス・イッシューが解決されたかどうか判定するために、更新された命令／情報（それは更新されたパフォーマンス情報を含んでも良い）を受信しても良い（１９４）。更新されたパフォーマンス情報は、以前コンピュータ・デバイス４０Ａによりコンピュータ・デバイス２０へ送信された要求された修正に関連する。コンピュータ・デバイス２０及びコンピュータ・デバイス４０Ａのいずれか又は両方は、パフォーマンス・イッシューが解決されたか又は解決されなかったかについて判定するために、更新されたパフォーマンス情報を解析しても良い。場合によっては、コンピュータ・デバイス２０は、イッシューが解決された否か示すインジケーションを、コンピュータ・デバイス４０Ａに送信しても良い。
【０１０８】
コンピュータ・デバイス２０により送信され、コンピュータ・デバイス４０Ａにより受信される更新された命令／情報は、要求された修正に関連する少なくとも一つの更新されたグラフィックス命令を含んでも良い。さらに、更新された命令／情報はまた、少なくとも一つの更新されたグラフィックス命令を、少なくとも一つの更新されたグラフィックス命令の実行に関連するプリミティブ・グラフィックス・データの第２の部分にマッピングする更新された情報を含む更新されたマッピング情報を含んでも良い。そのような方法において、アーティストは、重要なプリミティブ・グラフィックス・データの第２の部分を識別することができても良い。そして、それは、第１の部分と異なっても良い。プリミティブ・グラフィックス・データの第２の部分は、場合によっては、アーティストにより処理されるべき同一又は異なるパフォーマンス・イッシューに関連しても良い。
【０１０９】
一つの態様において、コンピュータ・デバイス４０Ａは、表示デバイス１２４上に、少なくとも一つのグラフィックス命令に基づくパフォーマンス・イッシューに関連するプリミティブ・グラフィックス・データの部分の表現を表示しても良く、また、プリミティブ・グラフィックス・データの部分をオーバーレイするパーティションの表現を表示しても良い。コンピュータ・デバイス４０Ａは、場合によっては、パーティションの表現を表示するために、それがコンピュータ・デバイス２０から受信するパーティショニング情報を使用しても良い。コンピュータ・デバイス４０Ａは、プリミティブ・グラフィックス・データの部分が該パーティションのうちの複数のものに関連するかどうか判定するために、プリミティブ・グラフィックス・データの部分を解析しても良い。
【０１１０】
場合によっては、プリミティブ・グラフィックス・データの部分は、複数の三角形を含んでも良く、また、コンピュータ・デバイス４０Ａは、三角形のうちのいずれが、該パーティションのうちの複数のものにわたるか判定しても良い。コンピュータ・デバイス４０Ａは、該パーティションのうちの複数のものにわたる三角形のグラフィカル表現を表示デバイス１２４上に表示しても良い。
【０１１１】
グラフィックス命令を受信すること（１８４）、マッピング情報を受信すること（１８６）、グラフィック・データの部分を識別すること（１８８）、ユーザ入力を受信すること（１９０）、要求された修正を送信すること（１９２）及び更新された情報を受信すること（１９４）は、複数のイメージ又は画像フレームについて繰り返されても良い（１９６）。グラフィックス・イメージが変更するので、あるいは、イメージの代わりの斜視図が複数のフレームにおいて示されるので、ユーザ（例えば、アーティスト）は、命令の実行の間、イメージに関連するグラフィックス・データと任意の識別されたパフォーマンス・イッシューとの間の関係を連続的に確認することができる。これらのイッシューを軽減又は解決しようとして、ユーザは、それから、適切なアクションをとっても良い。
【０１１２】
図８は、一つの態様に従って、グラフィック・ウインドウ２０３中に情報を表示するための表示デバイス２０１に接続されるグラフィックス・デバイス２００の例を示す概念図である。例えば、グラフィックス・デバイス２００がグラフィックス・デバイス２（図１）の一部であるならば、表示デバイス２０１は、アプリケーション・コンピュータ・デバイス２０のグラフィックス・デバイス２４の一部であっても良い。グラフィックス・デバイス２００は、３Ｄグラフィックス・イメージ２０２を表示することができる。表示デバイス２０１は、グラフィックス・デバイス２００から送信されるグラフィックス命令及びステート／パフォーマンス情報に基づいて、ウインドウ２０３中に、３Ｄグラフィックス・イメージ２１０（それはグラフィックス・イメージ２０２の改造（re-creation）である）を表示することができる。開発者がグラフィックス・イメージ２１０又はグラフィックス・イメージ２１０を含む全体のシーンを修正するために、これらの命令及びステート／パフォーマンス情報を変更し得るように、表示デバイス２０１はまた、これらの命令及びステート／パフォーマンス情報のビジュアル表現を表示することができる。表示デバイス２０１は、グラフィックス・デバイス２００に接続された任意のタイプのコンピュータ・デバイス（図示せず）中に含まれても良く、また、グラフィックス・デバイス２００からそのような命令及びステート／パフォーマンス情報を受信することができる。（簡単にするために、表示デバイス２０１を含むコンピュータ・デバイスは、図９に示される概念図から省略された。）
前に説明されたように、グラフィックス・デバイス２００は、３Ｄグラフィックス・イメージ２０２（それは図８の例における立方体である）の表示ができる。グラフィックス・デバイス２００はまた、キーパッド２０４を有する。ユーザは、グラフィックス・デバイス２００を操作するために、キーパッド２０４とインタラクトしても良い。キーパッド２０４は、幾つかのキー及び／又はボタンを含んでも良い。グラフィックス・デバイス２００は、コネクタ２０６を介して、グラフィックス・デバイス２０１を含むデバイス（例えば、アプリケーション・コンピュータ・デバイス２０）に、グラフィックス命令及びステート／パフォーマンス情報を送信することができる。一つの態様において、コネクタ２０６は、ユニバーサルシステムバス（ＵＳＢ）コネクタを含む。他の態様において、異なる形のコネクタが、使用されても良い。幾つかの態様において、無線通信がコネクタ２０６を置き換えても良い。
【０１１３】
図８の例において示されるように、表示デバイス２０１は、グラフィカル・ユーザ・インタフェース内に様々なタイプの情報を表示しても良い。この例では、表示デバイス２０１は、グラフィカル・ユーザ・インタフェース内にグラフィカル・ウインドウ２０３を表示する。ウインドウ２０３は、表示エリア２１１、グラフィックス命令エリア２０８及びステート／パフォーマンス情報エリア２１４を含む。表示エリア２１１は、３Ｄグラフィックス・イメージ２１０を含む。そして、それは、前に説明されたように、３Ｄグラフィックス・イメージ２０２の改造（re-creation）である。この例において、３Ｄグラフィックス・イメージは、立方体を含む。一つの態様に従って、表示デバイス２０１に表示される情報は、デバッギング及びテストの目的のために、グラフィックス・デバイス２０２上に表示される情報の表現又はシミュレーションを含む。
【０１１４】
グラフィックス命令エリア２０８は、グラフィックス・デバイス２００から受信された１又は複数のグラフィックス命令のビジュアル表現を含む。前に説明されたように、そのような命令のビジュアル表現は、そのような命令の表現を含んでも良い。例えば、グラフィックス・デバイス２００がバイナリのグラフィックス命令を送信するならば、表示デバイス２０１は、他の形（例えば、よりハイレベルなアプリケーション・プログラミング・インタフェース（ＡＰＩ）命令（例えば、ＯｐｅｎＧＬ命令））で、そのようなバイナリ命令の表現を表示しても良い。マッピング情報（例えば、図１に示されるマッピング情報３１）は、受信されたバイナリ命令を、グラフィックス命令エリア２０８ＮＡＩに表示され得る他のフォーマットにマッピングするために、使用されても良い。
【０１１５】
ステート／パフォーマンス情報エリア２１４は、グラフィックス・デバイス２００から受信されたステート及び／又はパフォーマンス情報のビジュアル表現を含む。受信されたグラフィックス命令及びステート／パフォーマンス情報は、表示エリア内に３Ｄグラフィックス・イメージ２１０を表示するために使用されても良い。一つの態様において、グラフィックス・デバイス２００は、様々なステート及び／又はパフォーマンス・データを提供するために、ステート／パフォーマンス・データ・モジュール（例えば、図３に示されるステート／パフォーマンス・データ・モジュール１１６）を実装するグラフィックス・ドライバーを利用しても良い。受信されたステート／パフォーマンス情報は、グラフィックス・データ（例えば、プリミティブ・データ及び／又はラスタライズされたデータ）を含んでも良い。
【０１１６】
ウインドウ２０３又は、１又は複数のセレクター２１２Ａ〜２１２Ｎを含む。ユーザは、これらのセレクター２１２Ａ〜２１２Ｎの任意のものを選択しても良い。各々のセレクター２１２Ａ〜２１２Ｎは、下で更に詳細に説明されるように、異なる機能（例えば統計及びナビゲーション機能）に関連し得る。ウインドウ２０３は、セレクター２１６Ａ〜２１６Ｎ及び２１８Ａ〜２１８Ｎを更に含む。そして、それぞれは、ユーザにより選択されても良い。各々のセレクター２１６Ａ〜２１６Ｎ及び２１８Ａ〜２１８Ｎはまた、図９を参照して下で更に詳細に説明されるように、異なる機能（例えば、メトリック機能、、オーバーライド機能及び／又はテクスチャー機能）に関連し得る。
【０１１７】
ユーザ（例えばアプリケーション開発者）は、ウインドウ２０３内に表示される情報を変更しても良い。例えば、ユーザは、グラフィックス命令エリア２０８内に表示される命令のうちの１又は複数、又は、ステート／パフォーマンス情報エリア２１４内のステート／パフォーマンス情報の任意のものを修正しても良い。
【０１１８】
ウインドウ２０３内でユーザにより開始される任意の変更は、それから、要求された修正としてグラフィックス・デバイス２００へ送信されても良い。グラフィックス・デバイス２００は、それから、これらの修正を処理しても良く、また、それからグラフィックス命令エリア２０８及び／又はステート／パフォーマンス情報エリア２１４内に表示され得る更新された命令及び／又は情報を提供しても良い。更新された命令及び／又は情報はまた、表示エリア２１１内に３Ｄグラフィックス・イメージ２１０の修正版を表示するために使用されても良い。
【０１１９】
一つの態様において、エリア２１４内に表示され得るステート及び／又はパフォーマンス情報は、グラフィックス・デバイス２００上でのグラフィックス命令の実行の間、潜在的なボトルネックを識別するために、表示デバイス２０１（例えば、図１に示されるアプリケーション・コンピュータ・デバイス２０）を含むコンピュータ・デバイスにより解析されても良い。最終的に、ユーザ（例えばアプリケーション開発者）は、グラフィックス・デバイス２００上でのグラフィックス命令の実行を最適化するために、デバッギング・プロセスの間に、ウインドウ２０３中に提示される情報の閲覧を望む場合がある。前に説明されたように、ボトルネックは、グラフィックス・デバイス２００中のグラフィックス処理パイプライン内のどこにでも、もたらされる可能性があり、アプリケーション開発者がパフォーマンス最適化のためにそのようなボトルネックを分離することは難しい場合がある。ステート及び／又はパフォーマンス情報の解析を通して、潜在的なボトルネック及び考えられる回避方法は、ウインドウ２０３中に、例えば１又は複数のサブウインドウ又はポップアップウインドウ内に、又は、ウインドウ２０３のエリア２１４内に、表示されることができる。
【０１２０】
一つの態様において、ウインドウ２０３は、グラフィックス・デバイス２００から受信されるグラフィックス命令のコール・ストリームにおいて発生されるボトルネックに関するレポートを表示しても良く、さらに、考えられる回避方法を表示しても良い。場合によっては、これらの考えられる回避方法は、“仮定の（what-if）”シナリオとしてユーザへ提示されても良い。例えば、コール・ストリームにおける最適化されていない三角形のリストのレンダリングが、第１の可能性があるシナリオとして提示されても良く、一方、三角形−細片の最適化フレームワーク（triangle-strip optimization framework）を通してリストアップする前処理が、第２の可能性があるシナリオとして提示されても良い。ユーザは、これらの可能性がある回避方法シナリオの任意のものを要求された修正として選択しても良く、そして、要求された修正は、それから、グラフィックス・デバイス２００へ送信される（そこでパフォーマンスが測定されても良い）。グラフィックス・デバイス２００は、それから、更新された命令／情報を送信する。そして、それは、グラフィックス命令エリア２０８及び／又はステート／パフォーマンス情報エリア２１４内に提示されても良い。ユーザは、それから、その結果を閲覧することができ、そして、最適の解決を識別するために、様々な異なる潜在的な回避方法に関する結果を比較することができる。ユーザは、それらのアプリケーションからボトルネックを取り除くために、取ることができる一連のステップを速く識別するために、このプロセスを使用することができる。
【０１２１】
一つの態様において、ウインドウ２０３は、パフォーマンス・イッシューに関連するグラフィックス・データのための情報を表示しても良い。例えば、表示デバイス２０１を含むコンピュータ・デバイス（例えば、アプリケーション・コンピュータ・デバイス２０）は、命令の実行の間、グラフィックス命令を、グラフィックス・イメージ２１０をレンダリングするために使用されるプリミティブ・グラフィックス・データにマッピングする情報を含むマッピング情報を、グラフィックス・デバイス２００から受信しても良い。コンピュータ・デバイスは、グラフィックス命令のうちの少なくとも一つの実行に関連するパフォーマンス・イッシューを識別しても良く、また、パフォーマンス・イッシューに関連するグラフィックス・データの部分を識別するために、マッピング情報を使用しても良い。パフォーマンス・イッシューは、場合によっては、特定のテクスチャーのサイズ、特定のポリゴンのサイズ、ブレンディングの量又はその種の他のものに関係しても良い。グラフィックス・データの部分は、パフォーマンス・イッシューの原因に関係し得るポリゴン又はテクスチャー・データを含んでも良い。グラフィックス・デバイス２０１は、いずれの部分が識別されたパフォーマンス・イッシューに関係するかについてハイライトするために、ウインドウ２０３内でグラフィックス・データの部分の表現を表示しても良い。例えば、グラフィックス・データの部分が、グラフィックス・イメージ２１０をレンダリングするために使用される部分であるならば、グラフィックス・デバイス２０１は、一つの態様において、イメージ２１０のソースであるグラフィックス・データが、識別されたパフォーマンス・イッシューに関連することを示すために、表示エリア２１１内にグラフィックス・イメージ２１０を表示しても良い。
【０１２２】
アプリケーション開発者は、パフォーマンス・イッシューを軽減又は解決しようとして、グラフィックス・データ又は関連するイメージ２１０の部分に対して修正を施すことを選択しても良い。例えば、開発者は、命令エリア２０８中に示される命令、ステート／パフォーマンス情報エリア２１４中に示される情報又はイメージ２１０の斜視図のうちの１又は複数を修正しても良い。場合によっては、開発者は、イメージ２１０に関連するテクスチャーを修正しても良いし、あるいは、イメージ２１０に関連するポリゴン・データを修正しても良い。これらの要求された修正は、グラフィックス・デバイス２００に送信される。そして、それは、要求された修正を処理して、アップデートされたマッピング及び／又はパフォーマンス情報を含む更新された命令／情報を送信する。グラフィックス・デバイス２０１は、それから、イメージ２１０に関連するグラフィックス・データに関係する更新された情報を表示しても良く、また、パフォーマンス・イッシューが解決したかどうか関するインジケーションを提供するために、イメージ２１０の更新されたビューを、表示エリア２１１内に表示しても良い。
【０１２３】
ユーザは、実験又は試行／エラー・デバッギングの目的のために、ウインドウ２０３内での調整を行うことを繰り返し継続しても良い。ユーザは、表示エリア２１１内に表示されるイメージ又はシーンの変化を識別するために、グラフィックス命令及びステート／パフォーマンス情報の異なる形又は組み合せで実験しても良い。ユーザは、グラフィックス・デバイス２００上でソース・コードの再コンパイル及びコンパイルされたコードの再実行の必要なしに、グラフィックス命令（それはコール・ストリームの一部であっても良い）及びグラフィックス・デバイス２００により提供されるステートをインタラクティブに閲覧及び修正するために、ウインドウ２０３の内容により提供されるシミュレーション環境を使用することができる。
【０１２４】
場合によっては、ユーザは、グラフィックス・イメージ２１０の斜視図を修正するために、グラフィカル・ナビゲーション・コントローラ（例えば、グラフィカル・カメラ）を操作するために、ボタン２１２Ａ〜２１２Ｎのうちの１又は複数を操作しても良い。そのような操作は、それから元のグラフィックス・デバイス２００へ送信される要求された修正として捕捉されても良い。グラフィックス・デバイス２００により提供される更新された命令／情報は、それから、グラフィックス・イメージ２１０の斜視図を修正するために使用される。
【０１２５】
場合によっては、様々なテクスチャー及び／又はステート情報は、修正可能な実体としてウインドウ２０３のエリア２１４中に提供されても良い。さらに、グラフィックス命令エリア２０８内の１又は複数の対応する命令が識別されるように、ユーザは、例えば、表示エリア２１１内のグラフィックス・イメージ２１０のピクセルの選択さえ行っても良い。この方法において、ユーザは、そのピクセル又はグラフィックス・イメージ２１０の他の部分をレンダリングするために使用されたレンダリング命令又はコールに後退して効果的にドリル（drill）することができる。正確にそれがグラフィックス・デバイス２００上で提示されているときに、グラフィックス・デバイス２０１がウインドウ２０３中でイメージ２１０を再作成する可能性があるので、ユーザは、それらのアプリケーション（それはグラフィックス命令エリア２０８中に表示される様々なグラフィックス命令に基づいても良い）におけるイッシューを速く分離させ、新たな影響をプロトタイピングするために、ステート／パフォーマンス・エリア２１４内の任意のステートを修正することができる。
【０１２６】
一つの態様において、表示デバイス２０１はまた、複数のパーティションにわたり得るポリゴン・データだけでなく、パーティショニング情報を表示することができる。例えば、アプリケーション開発者は、表示デバイス２０１に、イメージ２１０をオーバーレイさせ、そして、表示エリア２１１中のシーンをグラフィカルに分割するパーティション（例えば、長方形の形のパーティション）のグラフィカル表現を表示させるために、ボタン（例えば、ボタン２１２Ａ〜２１２Ｎのうちの１つ）を選択しても良い。場合によっては、デバイス２００がグラフィックス・デバイス２の一部であるとき、表示されたパーティションは、受信されたマッピング／パーティショニング情報３３（図１）に基づいても良い。表示デバイス２０１を含むデバイスはまた、グラフィックス・データのいずれの部分が該パーティションのうちの複数のものに関連するかについて判定するために、グラフィックス・イメージ２１０のためのグラフィックス・データ（例えば、ポリゴン・データ）を解析しても良い。例えば、複数のポリゴンがグラフィックス・イメージ２１０をレンダリングするために使用されるならば、デバイスは、これらのポリゴンのいずれが複数のパーティションにわたるかについて判定するためにポリゴンを解析しても良い。
【０１２７】
図９は、一つの態様に従って、グラフィカル・ウインドウ２２０中に情報を表示する表示デバイス２０１に接続されるグラフィックス・デバイス２００の他の例を示す概念図である。この態様において、ウインドウ２２０は、メトリック情報だけでなく、様々な命令情報を含む。
【０１２８】
例えば、グラフィックス命令エリア２０８内に、様々なグラフィックス命令２４２が示される。グラフィックス命令２４２は、グラフィックス・デバイス２００により提供されるグラフィックス命令のサブセットである場合がある。例えば、グラフィックス・デバイス２００がグラフィックス・デバイス２の一部であるならば、グラフィックス命令２４２はグラフィックス命令３０のサブセットであっても良い。場合によっては、マッピング情報（例えば、図１に示されるマッピング情報３１）は、グラフィックス・デバイス２００から受信される到来命令（incoming instructions）を、グラフィックス命令エリア２０８内に表示される命令２４２として実体化される、これらの命令のビジュアル表現にマッピングするために使用されても良い。例えば、受信された命令がバイナリ形式であるならば、命令２４２はバイナリ形式の命令を生成するために使用されたＡＰＩ命令を含んでも良い。
【０１２９】
図９の例に示されるように、グラフィックス命令２４２は、ハイレベル命令及びローレベル命令の両方を含む。ユーザ（例えばアプリケーション開発者）は、命令２４２のフルセットを閲覧するために、スクロールバー２４４を使用しても良い。特定のハイレベル命令は、１又は複数のローレベル命令（例えば、より低いレベルのＡＰＩ命令）を含んでも良い。アプリケーション開発者は、場合によっては、関連するハイレベル命令の一部である又は関連するハイレベル命令により実行される、任意のローレベル命令を閲覧するために、特定のハイレベル命令の上で（例えば、クリックすることなどによって）選択しても良い。前に説明されたように、受信されたグラフィックス命令（例えば命令２４２）は、グラフィックス・イメージ２０２の表現を生成するために使用される。そして、それは、ウインドウ２２０の表示エリア２１１中に示されるグラフィックス・イメージ２１０を含む。マッピング情報は、１又は複数の命令２４２を、１又は複数のパフォーマンス・イッシューに関連し得る又はその潜在的な原因になり得るグラフィックス・データの部分へマッピングしても良い。
【０１３０】
様々な選択ボタンは、図９中のステート／パフォーマンス情報エリア２１４の下に示される。これらの選択ボタンは、テクスチャー・ボタン２３６、オーバーライド・ボタン２３８及びメトリック・ボタン２４０を含む。図９の例において、アプリケーション開発者は、メトリック・ボタン２４０を選択した。このボタンの選択に応じて、様々なメトリック・オプションが示されても良い。例えば、１又は複数のメトリック・ボタン２３４Ａ〜２３４Ｎが、ステート／パフォーマンス・エリア２１４より上に示されても良い。各々のメトリック・ボタン２３４Ａ〜２３４Ｎは、特定のメトリックに関連しても良い。場合によっては、これらのメトリックのうちの１又は複数は予め定義又は予め構成されたメトリック・タイプであっても良く、また、場合によっては、アプリケーション開発者が、メトリックのうちの１又は複数を選択又はカスタマイズしても良い。例示的なメトリックは、例えば、以下のうちの任意の１又は複数を含んでも良い：フレーム毎秒、パーセント（％）ビジー（１又は複数のプロセッサについて）、バス又はメモリの使用の量に関連するメトリック、頂点ビジー、頂点毎秒、三角形毎秒、ピクセル・クロック毎秒、フラグメント毎秒、その他。アプリケーション開発者は、選択されたメトリックに関して更なる詳細を閲覧するために、メトリック・ボタン２３４Ａ〜２３４Ｎのうちの任意のものを選択しても良い。
【０１３１】
例えば、メトリック・ボタン２３４Ａがフレーム毎秒の数に関連するならば、アプリケーション開発者は、グラフィックス・イメージ２１０について（パフォーマンスに関係する）フレーム毎秒の数に関する更なる詳細を閲覧するために、メトリック・ボタン２３４Ａを選択しても良く、又は、グラフィックス・イメージ２１０の部分を選択しても良い。開発者は、場合によっては、メトリック・ボタン２３４Ａを選択しても良く、または、メトリック・ボタン２３４Ａをステート／パフォーマンス情報エリア２１４にドラッグしても良い。フレーム毎秒の数に関する詳細な情報は、ステート／パフォーマンス情報エリア２１４内に表示されても良い。開発者はまた、メトリック・ボタン２３４Ａを表示エリア２１１にドラッグしても良く、又は、メトリック・ボタン２３４Ａのアプリケーションのためのグラフィックス・イメージ２１０の部分を選択しても良い。例えば、開発者は、メトリック・ボタン２３４Ａの選択の後にグラフィックス・イメージ２１０の部分を選択しても良く、そして、その選択された部分に対するフレーム毎秒の数に関する詳細な情報が、ステート／パフォーマンス情報エリア２１４内に表示されても良い。そのような方法において、開発者は、メトリック・ボタン２３４Ａ〜２３４Ｎのうちの１又は複数の選択に基づいて、そして、グラフィックス・イメージ２１０（又はその部分）の可能性がある選択にさえ基づいて、任意の数の異なるメトリック・タイプのためのパフォーマンス・データを閲覧しても良い。
【０１３２】
一つの態様において、ウインドウ２２０内に表示され得るメトリック・データは、グラフィックス・デバイス２００のグラフィックス・ドライバー（例えば、図３に示されるグラフィックス・ドライバー１８）により提供されても良い。このグラフィックス・ドライバーは、それからウインドウ２２０内にメトリック・データとして表示され得る様々なデータを提供するために、ハードウェア・カウンタ・モジュール（例えば、図３のハードウェア・カウンタ・モジュール１１４）及び／又はプロセッサ使用モジュール（例えば、図３のプロセッサ使用モジュール１１２）を実装しても良い。
【０１３３】
開発者はまた、場合によっては、テクスチャー・ボタン２３６を選択しても良い。選択に応じて、グラフィックス・イメージ２１０に関係する様々な形のテクスチャー情報が、グラフィックス・デバイス２０１により表示されても良い。例えば、テクスチャー情報は、ウインドウ２２０内に（例えばステート／パフォーマンス情報エリア２１４内などに）表示されても良い。場合によっては、テクスチャー情報は、更なる（例えば、ポップアップ）ウインドウ（図示せず）内に表示されても良い。開発者は、表示されたテクスチャー情報を閲覧しても良いが、また、場合によっては、テクスチャー情報を修正しても良い。これらの場合、テクスチャー情報に対する任意の修正が、要求された修正として、グラフィックス・デバイス２００へ伝播されても良い。グラフィックス・デバイス２００からの更新された命令／情報の受信に応じて、グラフィックス・イメージ２１０に対する変更が、表示エリア２１１内に表示されても良い。図１１は、テクスチャー・ボタン２３６の選択に応じて表示され得る特定のテクスチャー情報を含む。
【０１３４】
受信されたマッピング情報が、このグラフィックス・データが命令２４２（又は命令２４２のためのバイナリのソース命令）のうちの１又は複数の実行の間のパフォーマンス・イッシューに関連することを示したならば、開発者は、イメージ２１０を生成するために使用されたグラフィックスに関連するテクスチャー情報を修正することを要求しても良い。命令の実行の間にイメージ２１０をレンダリングするために使用されたソース・グラフィックス・データ（それはポリゴンとテクスチャー・データを含む）が、パフォーマンス問題の潜在的なソースであるならば、開発者は、テクスチャー・データ及び／又はポリゴン・データを修正したいかもしれない。
【０１３５】
開発者はまた、場合によっては、オーバーライド・ボタン２３８を選択しても良い。オーバーライド・ボタン２３８の選択の後、特定の情報（命令及び／又はステート）が、（例えば、ウインドウ２２０又は他のウインドウ内に）表示されても良い。そして、それは、開発者によって、修正又はオーバーライドされても良い。任意の修正又はオーバーライドは、グラフィックス・デバイス２００に送信される１又は複数の要求された修正の中に含まれても良い。一つの態様において、グラフィックス・デバイス２００は、任意の要求された修正を処理するために、グラフィックス・ドライバー（例えばグラフィックス・ドライバー１８Ａ（図３））を実装しても良い。例えば、グラフィックス・デバイス２００は、１又は複数のオーバーライドを含むそのような要求された修正を処理するために、オーバーライド・モジュール１２０を使用しても良い。
【０１３６】
場合によっては、開発者は、グラフィックス命令エリア２０８内に示されるグラフィックス命令２４２上の１又は複数をオーバーライドしても良い。これらの場合、開発者は、グラフィックス命令２４２のうちの１又は複数を修正又はオーバーライドするために、グラフィックス命令エリア２０８内に情報をタイプ又は入力しても良い。これらの修正は、それから、グラフィックス・デバイス２００に送信されても良い。そして、それは、表示エリア２１１内のグラフィックス・イメージ２１０の表示を更新するために、更新された命令／情報を提供するであろう。開発者は、命令２４２により提供される１又は複数の機能をオーバーライドするために、例えば、グラフィックス命令２４２のパラメータ、順序付け、タイプなどを変更しても良い。一つの態様において、マッピング情報３１（図１）は、それから、グラフィックス命令２４２に対する変更を、グラフィックス・デバイス２００に提供され得る他のフォーマット（例えば、バイナリ命令）の対応する命令に、マッピング又は変換するために使用されても良い。
【０１３７】
場合によっては、開発者はまた、グラフィックス・デバイス２００により実装される処理パイプラインに関連する１又は複数の機能をオーバーライドするオーバーライド・ボタン２３８を選択しても良い。図１２は、オーバーライド・ボタン２３８の選択に応じて、開発者に対して表示され得るオーバーライド・スクリーンの例を表す。
【０１３８】
ウインドウ２２０は、選択ボタン２３１及び２３２を更に含む。選択ボタン２３１は、パーティション・ボタンであり、選択ボタン２３２は、ナビゲーション・ボタンである。開発者は、グラフィックス・イメージ２１０をオーバーレイし、そして、表示エリア２１１中に表示されるシーンをグラフィカルに分割するパーティション（例えば長方形の形のパーティション）のグラフィカル表現を閲覧するためのパーティション・ボタン２３１を選択しても良い。パーティション・ボタン２３１のユーザ選択に応じて、グラフィカル・パーティションが、表示エリア２１１中に表示されても良い。
【０１３９】
表示エリア２１１、又は独立した表示エリア又はウインドウはまた、データのいずれの部分が複数のパーティションに関連するかについて判定するグラフィックス・イメージ２１０のためのグラフィックス・データの解析に基づいて、情報を表示しても良い。例えば、表示エリア２１１、又は独立した表示エリア又はウインドウは、パーティションのグラフィカル表現とともに、いずれのポリゴン（それはグラフィックス・イメージ２１０をレンダリングするために使用される）が複数のパーティションにわたるかについて、表示しても良い。場合によっては、グラフィカル・インジケーション（例えば色）が、複数のパーティションにわたるポリゴン（例えば、三角形）ごとに表示されても良い。
【０１４０】
例えば、一つの態様において、“ヒートマップ（heat map）”が表示されても良い。ここで、各々の三角形は特定の色で表示される。複数のパーティションにわたらない三角形は、第１の色（例えば、青）で表示されても良い。複数のパーティション（例えば、２〜３のパーティション）にわたる三角形は、第２の色（例えば、紫）で表示されても良い。３を超えるパーティションにわたる三角形は、第３の色（例えば、赤）で顕著に表示されても良い。このように、この例では、アプリケーション開発者は、いずれの三角形が複数のパーティションにわたるか、及び、いずれの三角形が他より多くのパーティションにわたるかについて、速く判定することができる。開発者は、グラフィックス・イメージ２１０を生成するときのパフォーマンス（例えば、レンダリング）オーバーヘッドを低減するために、複数のパーティションにわたる三角形を再構成、再定義又はさもなければ再構成する方法について判定するために、この情報を使用することができ得る。
【０１４１】
開発者はまた、表示エリア２１１内でナビゲートするために、そして、表示エリア２１１内のグラフィックス・イメージ２１０の斜視図の変更さえ可能にする、ナビゲーション・ボタン２３２を選択しても良い。例えば、ナビゲーション・ボタン２３２の選択に応じて、３Ｄグラフィカル・カメラ又はナビゲーション・コントローラが、表示されても良い。開発者は、表示エリア２１１内の任意のエリアに対してナビゲートするために、コントローラとインタラクトしても良い。開発者はまた、グラフィックス・イメージ２１０の斜視図を（例えばグラフィックス・イメージ２１０の回転又はズームイン／ズームアウトなどによって）変更するために、コントローラを使用しても良い。
【０１４２】
一つの態様において、ナビゲーション・ボタン２３２の選択を通した任意の開発者起動（developer-initiated）の変更及びグラフィカル・ナビゲーション・コントローラに対するインタラクションは、要求された修正（例えば、図１に示される要求された修正８４の一部）として、グラフィックス・デバイス２００へ伝播されても良い。それからグラフィックス・デバイス２００により提供される更新された命令／情報は、それから、グラフィックス・イメージ２１０の表示（例えば、斜視図）を更新するために使用されても良い。さらに、更新された命令は、グラフィックス命令エリア２０８内に表示されても良い。更新されたステート／パフォーマンス情報は、ステート／パフォーマンス情報エリア２１４内に表示されても良い。
【０１４３】
一つの態様において、グラフィカル・パーティションが、グラフィックス・イメージ２１０の修正された斜視図の上に表示又はオーバーレイされても良い。さらに、グラフィックス・イメージ２１０の修正された斜視図のための更新された命令／情報の中に含まれるグラフィックス・データは、データのいずれの部分が複数のパーティションに関連するかについて判定するために解析されても良い。
【０１４４】
その結果、開発者は、グラフィックス・イメージ２１０をレンダリング又は表示するための代わりの展望、方針、ビュー、その他が、グラフィックス・デバイス２００のパフォーマンス及びステートにどのように影響を及ぼし得るかについて効果的且つ効率的に判定し得る。これは、表示デバイス２０１上に表示されたシミュレーション環境においてグラフィックス・イメージ２１０及び効果的にグラフィックス・デバイス２００上に表示されるグラフィックス・イメージ２０２を作成及びレンダリングするために使用されるグラフィックス命令２４２を最適化する際に、開発者にとって非常に有用であり得る。一つの態様において、ウインドウ２２０内の開発者起動の選択及び制御に基づくグラフィックス・イメージ２１０の位置、奥行き、方向、その他の任意の変更はまた、テスティング・プロセスの間にグラフィックス・デバイス２００に表示され得るグラフィックス・イメージ２０２のための変更とみなされても良い。
【０１４５】
グラフィカル・ユーザ・インタフェース内のグラフィカル・ウインドウ２２０とのインタラクションを通して、アプリケーション開発者は、グラフィックス命令２４２の実行の間、パフォーマンス・イッシュー及び／又はボトルネックを識別しようとすることができる。そして、それは、グラフィックス・イメージ２０２を作成するために、グラフィックス・デバイス２００により実行されるグラフィックス命令のビジュアル表現である。グラフィックス・イメージ２０２（すなわち、グラフィックス・イメージ２１０）の表現は、グラフィックス・デバイス２００により受信されるグラフィックス命令２４２及びステート／パフォーマンス・データに基づいて、表示エリア２１１内に表示される。グラフィックス命令２４２、グラフィックス・イメージ２１０及びステート／パフォーマンス情報と、これらのうちの１又は複数に対するユーザ起動（user-initiated）の修正に基づく影響とを閲覧することによって、アプリケーション開発者は、グラフィックス・デバイス２００上での命令の実行を最適化するための、そして、命令実行の間の任意のパフォーマンス・イッシュー（例えば、ボトルネック）を除去又は軽減するためのプロセスを、試行錯誤又はデバッギングすることに、インタラクティブに動的に従事することができる。
【０１４６】
さらに、幾つかの異なるグラフィカル・パーティションを含むグラフィカル・シーンの視覚の表現は、開発者が、スクリーン・パーティションに関連し得るコストに起因する低下したパフォーマンスを示すグラフィカル・シーンの部分を識別することができるようにしても良い。開発者は、これらのコスト及び／又は関係するパフォーマンス・オーバーヘッドを低減するのは支援するために、シーンの代わりのコンポジションを調査するために、パーティション及び関連する解析情報をレビューしても良い。さらに、開発者は、パフォーマンス・イッシューに関連し得るグラフィックス・データの特定の部分を識別しても良い。これは、これらのイッシューを解決しようとして、開発者がグラフィックス・データを修正する集中する努力（focused efforts）に従事できるようにする。
【０１４７】
図１０は、本開示の一つの態様に従って、表示デバイス（例えば、グラフィックス・デバイス２の表示デバイス６（図１）、アプリケーション・コンピュータ・デバイス２０の表示デバイス２４、アプリケーション・コンピュータ・デバイス４０Ａの表示デバイス１２４（図４Ｂ）、又は表示デバイス２０１（図８及び９））により提供されるスクリーン・エリア２５０の４つのパーティションにわたり得るグラフィックス・データの例を示す概念図である。説明の便宜のみのために、以下の説明において、図１０に示されるデータが、グラフィックス・デバイス２から受信されるグラフィックス命令３０及びステート／パフォーマンス情報３２に、さらに、グラフィックス・デバイス２から受信されるマッピング／パーティショニング情報３３に基づいて、アプリケーション・コンピュータ・デバイス２０の表示デバイス２４上にグラフィカルに表示されると仮定される。ステート／パフォーマンス情報３２は、ポリゴン（すなわち、ジオメトリ）２６０，２６２，２６４及び２６６のためのグラフィックス・データを含んでも良く、また、マッピング／パーティショニング情報３３は、パーティション２５２，２５４，２５６及び２５８のための情報を含んでも良い。例えば、アプリケーション・コンピュータ・デバイス２０により受信されるマッピング／パーティショニング情報３３は、グラフィックス・データのレンダリングのときにグラフィックス・デバイス２が４つの異なるパーティション（２５２，２５４，２５６及び２５８により表される）を使用することを指示しても良い。
【０１４８】
図１０の例において、４つのビニング・パーティション２５２，２５４，２５６及び２５８が実装される。これらのパーティションは、表示デバイス２４上に表示され得るスクリーン・エリア２５０内に４つの対応するエリアを表す。数字で分かるように、ポリゴン２６０及び２６２は、各々、完全に対応するパーティション内に位置する又は存在するように、定義される。ポリゴン２６０は、パーティション２５２内に位置し、ポリゴン２６２は、パーティション２５４内に位置する。グラフィックス・データのレンダリングのときに、グラフィックス・プロセッサ１２は、例えば、別々に、そして、独立したレンダリング・オペレーションの間、パーティション２５２，２５４，２５６及び２５８の各々の中にデータをレンダリングしても良い。ポリゴン２６０は完全にパーティション２５２の中にあるので、それはパーティション２５２に関連するレンダリング・オペレーションの間の完全な幾何学としてレンダリングされても良い。同様に、ポリゴン２６２は完全にパーティション２５４の中にあるので、それはパーティション２５４に関連するレンダリング・オペレーションの間の完全な幾何学としてレンダリングされても良い。
【０１４９】
他方、ポリゴン２６４及び２６６は、複数のパーティションにわたる。ポリゴン２６４は、全４つのパーティション２５２，２５４，２５６及び２５８にわたり、一方、ポリゴン２６６は、２つのパーティション２５６及び２５８にわたる。ポリゴン２６４をレンダリングするために、グラフィックス・プロセッサ１２は、ポリゴン２６４を、４つの構成フラグメントにスプリットしても良い。グラフィックス・プロセッサ１２は、それから、独立したレンダリング・オペレーションの間に、これらのフラグメントを独立してレンダリングしても良い。これらのフラグメントが独立してレンダリングされた後、表示プロセッサ１６は、ポリゴン２６４の正確なグラフィカル表現を表示するために、これらのフラグメントの各々のためのレンダリングされた画像を結合する必要があり得る。これらの独立したレンダリング及び結合オペレーションは、パフォーマンス・オーバーヘッドを引き起こす場合がある。
【０１５０】
アプリケーション開発者がスクリーン・エリア２５０内に表示された情報を見るとき、開発者は、いずれのポリゴンが（それらが複数のパーティションにわたるので）ハードウェアによりスプリットされるか、さらに、そのようなパーティションはどこに位置するかの考えを得ることができる。開発者は、シーンを定義するとき、グラフィックス・アプリケーション内の特定のグラフィックス・データの最適化された構成又は位置を判定するために、この情報を使用することができ得る。場合によっては、スクリーン・エリア２５０は、命令の実行の間、１又は複数のパフォーマンス・イッシューに関連するプリミティブ・グラフィックス・データの特定の部分をハイライト又はさもなければ識別しても良い。
【０１５１】
例えば、グラフィックス・データのこれらの特定の部分（すなわち、これらの特定のポリゴン）が、これらの特定のポリゴンが複数のパーティションにわたるという事実に起因する潜在的なパフォーマンス・イッシューに関連することを、ユーザに知らせるために、スクリーン・エリア２５０内で、ポリゴン２６４及び２６６が、ハイライト又はさもなければ顕著に表示されても良い。先に述べたように、これらのポリゴンは、レンダリングの目的のためにスプリットされても良く、そして、レンダリングされたフラグメントが再結合されても良い。これらの様々なステップは、ポリゴンを移動することによって、ポリゴンをバラバラにすることによって、又は、ポリゴンを削除することによってさて、最小に又は軽減されることができる高性能オーバーヘッドをもたらす場合がある。
【０１５２】
例えば、図１０に示される情報のレビューに応じて、開発者は、それらが複数のパーティションにわたらないように、ポリゴン２６４及び２６６を再編成又は再構成すると判定しても良い。開発者は、スクリーン・エリア２５０内にグラフィックス・イメージをオーバーレイするパーティションの表現を提示されるので（これらパーティションはグラフィックス・デバイス２により定義される）、また、グラフィックス・データの特定の部分が識別又はハイライトされ得るので、開発者は、ポリゴン２６４及び２６６が複数のパーティションにわたらないように、又は、それらが最小の数のパーティションだけにわたるように、ポリゴン２６４及び２６６を定義、構成又は位置付ける方法をより良く理解し得る。場合によっては、開発者は、レンダリングの後で表示プロセッサ１６によりポリゴンが結合される必要がないように、一つのポリゴンを複数のサブ・ポリゴンとして再定義すると判定しても良い。例えば、開発者は、アプリケーション命令２１の修正版において、ポリゴン２６６を、２つの独立したポリゴン２６６Ａ及び２６６Ｂとして再定義しても良い。これらのポリゴンが当初は別々に定義されるならば、これらのポリゴンのレンダリングされたバージョンは、それから、表示に先立って結合される必要はない可能性がある。そして、それは、パフォーマンス・オーバーヘッドを低減する可能性がある。
【０１５３】
図１１は、表示デバイス（例えば、グラフィックス・デバイス２の表示デバイス６（図１）、アプリケーション・コンピュータ・デバイス２０の表示デバイス２４、アプリケーション・コンピュータ・デバイス４０Ａの表示デバイス１２４（図４Ｂ）、又は表示デバイス２０１（図８及び９））により提供され得るスクリーン・エリア２７０内のテクスチャー情報を示す概念図である。説明の便宜のみのために、以下の説明において、図１１に示されるデータがアプリケーション・コンピュータ・デバイス４０Ａの表示デバイス１２４上にグラフィカルに表示されると仮定される。
【０１５４】
図１１のスクリーン・エリア２７０は、図９に示されるグラフィックス・イメージ２１０と類似する３次元立方体を定義するプリミティブ・グラフィックス・データのグラフィカル表現を示す。プリミティブ・グラフィックス・データは、立方体のジオメトリを定義するための複数のポリゴンを含む、ポリゴン・データを含んでも良く、また、立方体の１又は複数のテクスチャーを定義するテクスチャー・データを更に含んでも良い。様々なケースにおいて、テクスチャーは、立方体に詳細を追加し得るが、特定のケースでは、それらは特定のパフォーマンス・イッシュー又はオーバーヘッドの原因になる場合がある。例えば、豊富なテクスチャー又は複雑なテクスチャーのレンダリングは、更なる処理サイクル又はオーバーヘッドを引き起こす場合がある。これらの場合、アプリケーション開発者又はアーティストは、これらのイッシューに関連するグラフィックス・データの任意の部分だけでなく、任意のパフォーマンス・イッシューを知っていることは、役に立ち得る。
【０１５５】
図１１において、テクスチャー２７２が、識別されたパフォーマンス・イッシューに関連すると仮定される。例えば、テクスチャー２７２は、大きいか又は複雑なテクスチャーであっても良い。コンピュータ・デバイス４０Ａは、実行されるときにテクスチャー２７２をレンダリングするグラフィックス命令に対してテクスチャー２７２をマッピングするマッピング情報を、コンピュータ・デバイス２０から受信しても良い。そして、それは、そのような実行の結果として、識別されたパフォーマンス・イッシューに関連する。このマッピング情報の受信に応じて、コンピュータ・デバイス４０Ａは、アーティストが、パフォーマンス・イッシューに関連する又は潜在的にパフォーマンス・イッシューの原因になる特定のテクスチャー２７２を識別することができるように、グラフィックス・データのこの部分（すなわち、テクスチャー２７２）の表現を表示しても良い。アーティストは、それから、パフォーマンス・イッシューを軽減又は解決するように、テクスチャー２７２を調整しようとしても良い。
【０１５６】
一つの態様において、コンピュータ・デバイス４０ＡのＤＣＣアプリケーション１２７は、例えばスクリーン・エリア２７０内などで、図１１に示される立方体に関連するプリミティブ・グラフィックス・データを作成するために、アーティストにより使用されても良い。この態様において、マッピング情報の受信に応じて、ＤＣＣアプリケーション１２７は、アーティストが、識別されたパフォーマンス・イッシューに関連するグラフィックス・データの部分（例えば、テクスチャー２７２）を閲覧及び変更することができるように、ＤＣＣアプリケーション１２７内で、直接、テクスチャー２７２を識別することができる。
【０１５７】
この開示において説明される技術は、汎用マイクロプロセッサ、デジタルシグナルプロセッサ（ＤＳＰ）、特定用途向けＩＣ（ＡＳＩＣ）、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）又は他の均等な論理デバイスの中に実装されても良い。したがって、本明細書で使用される用語“プロセッサ（processor）”又は“コントローラ（controller）”は、本明細書で説明される技術の実装に適した前述の構造のうちの任意のもの又は他の任意の構造を指し示しても良い。
【０１５８】
本明細書で説明される様々なコンポーネントは、ハードウェア、ソフトウェア、ファームウェアの適切な組み合わせ、又はそれらの任意の組み合わせにより実現されても良い。図において、様々なコンポーネントは、独立したユニット又はモジュールとして示される。しかし、これらの図を参照して説明される様々なコンポーネントの全て又は幾つかは、共通のハードウェア及び／又はソフトウェア内の複合のユニット又はモジュールに集積されても良い。したがって、コンポーネント、ユニット又はモジュールとしての特徴の表現は、説明図の容易さのために特定の機能的な特徴をハイライトすることを目的として、独立したハードウェア又はソフトウェア・コンポーネントによってそのような特徴の実現を必ずしも要求するというわけではない。場合によっては、様々なユニットは、１又は複数のプロセッサにより実行されるプログラム可能なプロセスとして実装されても良い。
【０１５９】
モジュール群、デバイス群又はコンポーネント群（グラフィックス・デバイス１００及び／又はその構成要素群を含む）として本明細書で説明されるいずれの機能群も、集積化された論理デバイスに一緒に又は別々であるが適時情報交換ができる（interoperable）複数の論理デバイスとして独立して実装されても良い。様々な態様において、そのようなコンポーネント群は、１又は複数の集積回路デバイスとして少なくとも部分的に形成されても良い。そして、それらは集積回路デバイス（例えば集積回路チップ又はチップセット）として集合的に指し示されても良い。そのような回路は、単一の集積回路チップ・デバイスで又は複数の適時情報交換ができる集積回路チップ・デバイスで提供されても良く、また、様々なイメージ、ディスプレイ、オーディオ又は他のマルチメディアのアプリケーション及びデバイスの任意のものにおいて使用されても良い。幾つかの態様において、例えば、そのようなコンポーネントは、モバイル・デバイス（例えば無線通信デバイス・ハンドセット）の一部を形成しても良い。
【０１６０】
ソフトウェアで実装されるならば、本技術は、１又は複数のプロセッサにより実行されるときに上で説明された方法のうちの１又は複数を実行する命令をもつコードを含むコンピュータ読み取り可能な媒体によって少なくとも部分的に実現されても良い。コンピュータ読み取り可能な媒体は、コンピュータ・プログラム製品（それはパッケージ材料を含んでもよい）の一部を形成しても良い。コンピュータ読み取り可能な媒体は、ランダムアクセスメモリ（ＲＡＭ）（例えばシンクロナスダイナミックランダムアクセスメモリ（ＳＤＲＡＭ））、リードオンリーメモリ（ＲＯＭ）、不揮発性ランダムアクセスメモリ（ＮＶＲＡＭ）、電気的消去可能ＰＲＯＭ（ＥＥＰＲＯＭ）、組み込み形ダイナミックランダムアクセスメモリ（ｅＤＲＡＭ）、スタティックランダムアクセスメモリ（ＳＲＡＭ）、フラッシュメモリ、磁気又は光学データ記憶媒体を含んでも良い。
【０１６１】
加えて又は代わりに、本技術は、命令又はデータ構造の形でコードを運ぶか又は伝え且つ１又は複数のプロセッサによりアクセス、リード及び／又は実行されることができるコンピュータ読み取り可能な通信媒体に少なくとも部分的によって実現されても良い。いずれのコネクションも、コンピュータ読み取り可能な媒体と適切に呼ばれることができる。例えば、ソフトウェアが、同軸ケーブル、光ファイバーケーブル、ツイスト・ペア、デジタル加入者回線（ＤＳＬ）又は無線技術（例えば、赤外線、無線及びマイクロ波）を使用するウェブサイト、サーバ又は他のリモート・ソースから送信されるならば、該同軸ケーブル、光ファイバーケーブル、ツイスト・ペア、ＤＳＬ又は無線技術(例えば、赤外線、無線及び電子レンジ）は、媒体の定義に含まれる。上記の組み合せは、コンピュータ読み取り可能な媒体の範囲内に含まれなければならないまた。利用されるいずれのソフトウェアも、１又は複数のプロセッサ（例えば、１又は複数のＤＳＰ、汎用マイクロプロセッサ、複数のＡＳＩＣ、複数のＦＰＧＡ又は他の均等な集積化された又は個別の論理回路）によって実行されても良い。
【０１６２】
様々な態様が本明細書で説明された。これら及び他の態様は以下のクレームの範囲内である。
【図１】
2011529237.tif 000003
【図２】
2011529237.tif 000004
【図３】
2011529237.tif 000005
【図４Ａ】
2011529237.tif 000006
【図４Ｂ】
2011529237.tif 000007
【図５】
2011529237.tif 000008
【図６】
2011529237.tif 000009
【図７】
2011529237.tif 000010
【図８】
2011529237.tif 000011
【図９】
2011529237.tif 000012
【図１０】
2011529237.tif 000013
【図１１】
2011529237.tif 000014
【手続補正書】
【提出日】平成23年4月5日(2011.4.5)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピュータ・デバイスによって、外部デバイスから送信されるグラフィックス命令を受信することと、
前記コンピュータ・デバイスによって、前記外部デバイスにより作成され、前記外部デバイスから送信される、マッピング情報（該マッピング情報は、該グラフィックス命令の実行中に１又は複数のグラフィックスをレンダリングするために使用されるプリミティブ・グラフィックス・データへ、該グラフィックス命令をマッピングするための情報を含む）（該マッピング情報は、前記コンピュータ・デバイスによる前記グラフィックス命令の実行の前に、前記外部デバイスにより作成され、前記コンピュータ・デバイスにより受信される）を受信することと、
前記コンピュータ・デバイスによって、前記グラフィックス命令の中で少なくとも一つのグラフィックス命令の実行に関連するパフォーマンス・イッシューを識別することと、
前記コンピュータ・デバイスによって、前記少なくとも一つのグラフィックス命令の実行に基づく前記パフォーマンス・イッシューに関連する前記プリミティブ・グラフィックス・データの部分を識別するために前記マッピング情報を使用することを含む方法。
【請求項２】
前記マッピング情報を受信することは、前記少なくとも一つのグラフィックス命令の実行中に１又は複数のグラフィックス・イメージをレンダリングするために使用される前記プリミティブ・グラフィックス・データの前記部分に、前記少なくとも一つのグラフィックス命令をマッピングする情報を受信することを含む請求項１の方法。
【請求項３】
前記プリミティブ・グラフィックス・データの前記部分は、１又は複数のポリゴンを含み、
前記マッピング情報を使用することは、前記少なくとも一つのグラフィックス命令の前記実行に基づく前記パフォーマンス・イッシューに関連する前記１又は複数のポリゴンを識別することを含む請求項２の方法。
【請求項４】
前記プリミティブ・グラフィックス・データは、グラフィカル・シーンの構成セグメントを含むテクスチャー・データとポリゴン・データとのうちの少なくとも一つを含む請求項１の方法。
【請求項５】
前記外部デバイスからステート情報（該ステート情報は、前記少なくとも一つのグラフィックス命令の前記実行に関連する）を受信することと、
前記少なくとも一つのグラフィックス命令及び前記ステート情報に基づいて、前記パフォーマンス・イッシューに関連する前記プリミティブ・グラフィックス・データの前記部分の表現を表示することを更に含む請求項１の方法。
【請求項６】
前記ステート情報は、前記プリミティブ・グラフィックス・データを含む請求項５の方法。
【請求項７】
前記外部デバイスからのパフォーマンス情報（該パフォーマンス情報は、前記少なくとも一つのグラフィックス命令の実行及び前記プリミティブ・グラフィックス・データの前記部分に関連する）を受信することと、
前記プリミティブ・グラフィックス・データの前記部分に関連する前記パフォーマンス・イッシューを識別するために前記パフォーマンス情報を解析することを含む請求項１の方法。
【請求項８】
前記プリミティブ・グラフィックス・データの前記部分に対して要求された修正を特定するユーザ入力を受信することと、
前記要求された修正を、前記処理のために前記外部デバイスに送信することと、
前記外部デバイスから、更新されたパフォーマンス情報（該更新されたパフォーマンス情報は、前記要求された修正に関連する）を受信することと、
前記パフォーマンス・イッシューが解決されたかどうか判定するために、前記更新されたパフォーマンス情報を解析することを更に含む請求項７の方法。
【請求項９】
前記外部デバイスから、少なくとも一つの更新されたグラフィックス命令（該少なくとも一つの更新されたグラフィックス命令は、要求された修正に関連する）を受信することと、
前記外部デバイスから、更新されたマッピング情報（該更新されたマッピング情報は、前記少なくとも一つの更新されたグラフィックス命令の前記実行に関連する前記プリミティブ・グラフィックス・データの第２の部分に、前記少なくとも一つの更新されたグラフィックス命令をマッピングする更新された情報を含む）を受信することを更に含む請求項８の方法。
【請求項１０】
前記少なくとも一つのグラフィックス命令に基づいて、前記パフォーマンス・イッシューに関連する前記プリミティブ・グラフィックス・データの前記部分の表現を表示することと、
前記外部デバイスからパーティショニング情報を受信することと、
前記受信されたパーティショニング情報に基づいて、前記プリミティブ・グラフィックス・データの前記部分をオーバーレイするパーティションの表現を表示することと、
前記プリミティブ・グラフィックス・データの前記部分が前記パーティションのうちの複数のものに関連するかどうか判定するために、前記プリミティブ・グラフィックス・データの前記部分を解析することを含む請求項１の方法。
【請求項１１】
前記プリミティブ・グラフィックスの前記部分は、複数の三角形を含み、
前記プリミティブ・グラフィックスの前記部分を解析することは、前記三角形のうちのいずれの三角形が前記パーティションのうちの複数のものにわたるか判定することを含み、
前記方法は、前記パーティションのうちの複数のものにわたる前記三角形のグラフィカル表現を表示することを含む請求項１０の方法。
【請求項１２】
前記少なくとも一つのグラフィックス命令を、第２の外部デバイスへ送信することと、
前記マッピング情報（該マッピング情報は、前記少なくとも一つのグラフィックス命令を前記プリミティブ・グラフィックス・データの前記部分にマッピングするための情報を含む）を前記第２の外部デバイスへ送信することと、
前記プリミティブ・グラフィックス・データの前記部分に関連するパフォーマンス・イッシューのインジケーションを、前記第２の外部デバイスへ送信することを含む請求項１の方法。
【請求項１３】
前記第２の外部デバイスから、前記プリミティブ・グラフィックス・データの前記部分に対して要求された修正を受信することと、
前記要求された修正を、処理のために前記外部デバイスに送信することと、
前記外部デバイスから、更新されたパフォーマンス情報（該更新されたパフォーマンス情報は、前記要求された修正に関連する）を受信することを更に含む請求項１２の方法。
【請求項１４】
前記パフォーマンス・イッシューが解決されたかどうか判定するために、前記更新されたパフォーマンス情報を解析することと、
前記パフォーマンス・イッシューが解決されたかどうかを示す第２のインジケーションを、前記第２の外部デバイスに送信することを更に含む請求項１３の方法。
【請求項１５】
コンピュータ・デバイスの１又は複数のプロセッサに、
外部デバイスから送信されるグラフィックス命令を受信させ、
前記外部デバイスにより作成され、前記外部デバイスから送信される、マッピング情報（該マッピング情報は、該グラフィックス命令の実行中に１又は複数のグラフィックスをレンダリングするために使用されるプリミティブ・グラフィックス・データへ、該グラフィックス命令をマッピングするための情報を含む）（該マッピング情報は、前記コンピュータ・デバイスによる前記グラフィックス命令の実行の前に、前記外部デバイスにより作成され、前記コンピュータ・デバイスにより受信される）を受信させ、
前記グラフィックス命令の中で少なくとも一つのグラフィックス命令の実行に関連するパフォーマンス・イッシューを識別させ、
前記少なくとも一つのグラフィックス命令の実行に基づく前記パフォーマンス・イッシューに関連する前記プリミティブ・グラフィックス・データの部分を識別するために前記マッピング情報を使用させるためのコンピュータ実行可能な命令を含むコンピュータ読み取り可能な媒体。
【請求項１６】
前記１又は複数のプロセッサに前記マッピング情報を受信させるための前記コンピュータ実行可能な命令は、前記１又は複数のプロセッサに前記少なくとも一つのグラフィックス命令の実行中に１又は複数のグラフィックス・イメージをレンダリングするために使用される前記プリミティブ・グラフィックス・データの前記部分に、前記少なくとも一つのグラフィックス命令をマッピングする情報を受信させるためのコンピュータ実行可能な命令を含む請求項１５のコンピュータ読み取り可能な媒体。
【請求項１７】
前記プリミティブ・グラフィックス・データの前記部分は、１又は複数のポリゴンを含み、
前記１又は複数のプロセッサに前記マッピング情報を使用させるための前記コンピュータ実行可能な命令は、前記１又は複数のプロセッサに前記少なくとも一つのグラフィックス命令の前記実行に基づく前記パフォーマンス・イッシューに関連する前記１又は複数のポリゴンを識別させるためのコンピュータ実行可能な命令を含む請求項１６のコンピュータ読み取り可能な媒体。
【請求項１８】
前記プリミティブ・グラフィックス・データは、グラフィカル・シーンの構成セグメントを含むテクスチャー・データとポリゴン・データとのうちの少なくとも一つを含む請求項１５のコンピュータ読み取り可能な媒体。
【請求項１９】
前記１又は複数のプロセッサに、
前記外部デバイスからステート情報（該ステート情報は、前記少なくとも一つのグラフィックス命令の前記実行に関連する）を受信させ、
前記少なくとも一つのグラフィックス命令及び前記ステート情報に基づいて、前記パフォーマンス・イッシューに関連する前記プリミティブ・グラフィックス・データの前記部分の表現を表示させるためのコンピュータ実行可能な命令を更に含む請求項１５のコンピュータ読み取り可能な媒体。
【請求項２０】
前記ステート情報は、前記プリミティブ・グラフィックス・データを含む請求項１９のコンピュータ読み取り可能な媒体。
【請求項２１】
前記１又は複数のプロセッサに、
前記外部デバイスからのパフォーマンス情報（該パフォーマンス情報は、前記少なくとも一つのグラフィックス命令の実行及び前記プリミティブ・グラフィックス・データの前記部分に関連する）を受信させ、
前記プリミティブ・グラフィックス・データの前記部分に関連する前記パフォーマンス・イッシューを識別するために前記パフォーマンス情報を解析させるためのコンピュータ実行可能な命令を更に含む請求項１５のコンピュータ読み取り可能な媒体。
【請求項２２】
前記１又は複数のプロセッサに、
前記プリミティブ・グラフィックス・データの前記部分に対して要求された修正を特定するユーザ入力を受信させ、
前記要求された修正を、前記処理のために前記外部デバイスに送信させ、
前記外部デバイスから、更新されたパフォーマンス情報（該更新されたパフォーマンス情報は、前記要求された修正に関連する）を受信させ、
前記パフォーマンス・イッシューが解決されたかどうか判定するために、前記更新されたパフォーマンス情報を解析させるためのコンピュータ実行可能な命令を更に含む請求項２１のコンピュータ読み取り可能な媒体。
【請求項２３】
前記１又は複数のプロセッサに、
前記外部デバイスから、少なくとも一つの更新されたグラフィックス命令（該少なくとも一つの更新されたグラフィックス命令は、要求された修正に関連する）を受信させ、
前記外部デバイスから、更新されたマッピング情報（該更新されたマッピング情報は、前記少なくとも一つの更新されたグラフィックス命令の前記実行に関連する前記プリミティブ・グラフィックス・データの第２の部分に、前記少なくとも一つの更新されたグラフィックス命令をマッピングする更新された情報を含む）を受信させるためのコンピュータ実行可能な命令を更に含む請求項２２のコンピュータ読み取り可能な媒体。
【請求項２４】
前記１又は複数のプロセッサに、
前記少なくとも一つのグラフィックス命令に基づいて、前記パフォーマンス・イッシューに関連する前記プリミティブ・グラフィックス・データの前記部分の表現を表示させ、
前記外部デバイスからパーティショニング情報を受信させ、
前記受信されたパーティショニング情報に基づいて、前記プリミティブ・グラフィックス・データの前記部分をオーバーレイするパーティションの表現を表示させ、
前記プリミティブ・グラフィックス・データの前記部分が前記パーティションのうちの複数のものに関連するかどうか判定するために、前記プリミティブ・グラフィックス・データの前記部分を解析させるためのコンピュータ実行可能な命令を更に含む請求項１５のコンピュータ読み取り可能な媒体。
【請求項２５】
前記プリミティブ・グラフィックスの前記部分は、複数の三角形を含み、
前記１又は複数のプロセッサに前記プリミティブ・グラフィックスの前記部分を解析させるための前記コンピュータ実行可能な命令は、前記１又は複数のプロセッサに前記三角形のうちのいずれの三角形が前記パーティションのうちの複数のものにわたるか判定させるためのコンピュータ実行可能な命令を含み、
前記方法は、前記１又は複数のプロセッサに前記パーティションのうちの複数のものにわたる前記三角形のグラフィカル表現を表示させるためのコンピュータ実行可能な命令を更に含む請求項２４のコンピュータ読み取り可能な媒体。
【請求項２６】
前記１又は複数のプロセッサに、
前記少なくとも一つのグラフィックス命令を、第２の外部デバイスへ送信させ、
前記マッピング情報（該マッピング情報は、前記少なくとも一つのグラフィックス命令を前記プリミティブ・グラフィックス・データの前記部分にマッピングするための情報を含む）を前記第２の外部デバイスへ送信させ、
前記プリミティブ・グラフィックス・データの前記部分に関連するパフォーマンス・イッシューのインジケーションを、前記第２の外部デバイスへ送信させるためのコンピュータ実行可能な命令を更に含む請求項１５のコンピュータ読み取り可能な媒体。
【請求項２７】
前記１又は複数のプロセッサに、
前記第２の外部デバイスから、前記プリミティブ・グラフィックス・データの前記部分に対して要求された修正を受信させ、
前記要求された修正を、処理のために前記外部デバイスに送信させ、
前記外部デバイスから、更新されたパフォーマンス情報（該更新されたパフォーマンス情報は、前記要求された修正に関連する）を受信させるためのコンピュータ実行可能な命令を更に含む請求項２６のコンピュータ読み取り可能な媒体。
【請求項２８】
前記１又は複数のプロセッサに、
前記パフォーマンス・イッシューが解決されたかどうか判定するために、前記更新されたパフォーマンス情報を解析させ、
前記パフォーマンス・イッシューが解決されたかどうかを示す第２のインジケーションを、前記第２の外部デバイスに送信させるためのコンピュータ実行可能な命令を更に含む請求項２７のコンピュータ読み取り可能な媒体。
【請求項２９】
デバイスにおいて、
外部デバイスから送信されるグラフィックス命令を受信するための手段と、
前記外部デバイスにより作成され、前記外部デバイスから送信される、マッピング情報（該マッピング情報は、該グラフィックス命令の実行中に１又は複数のグラフィックスをレンダリングするために使用されるプリミティブ・グラフィックス・データへ、該グラフィックス命令をマッピングするための情報を含む）（該マッピング情報は、前記デバイスによる前記グラフィックス命令の実行の前に、前記外部デバイスにより作成され、前記デバイスにより受信される）を受信するための手段と、
前記グラフィックス命令の中で少なくとも一つのグラフィックス命令の実行に関連するパフォーマンス・イッシューを識別するための手段と、
前記少なくとも一つのグラフィックス命令の実行に基づく前記パフォーマンス・イッシューに関連する前記プリミティブ・グラフィックス・データの部分を識別するために前記マッピング情報を使用するための手段とを含むデバイス。
【請求項３０】
前記グラフィックス命令を受信するための前記手段、前記マッピング情報を受信するための前記手段、前記パフォーマンス・イッシューを識別するための前記手段及び前記マッピング情報を使用するための前記手段は、
前記外部デバイスから送信される前記グラフィックス命令を受信し、
前記外部デバイスにより作成され、前記外部デバイスから送信される、前記マッピング情報を受信し、
前記少なくとも一つのグラフィックス命令の実行に関連する前記パフォーマンス・イッシューを識別し、
前記少なくとも一つのグラフィックス命令の実行に基づく前記パフォーマンス・イッシューに関連する前記プリミティブ・グラフィックス・データの前記部分を識別するために前記マッピング情報を使用するように構成される１又は複数のプロセッサとを含む請求項２９のデバイス。
【請求項３１】
前記１又は複数のプロセッサは、前記少なくとも一つのグラフィックス命令の実行中に１又は複数のグラフィックス・イメージをレンダリングするために使用される前記プリミティブ・グラフィックス・データの前記部分に、前記少なくとも一つのグラフィックス命令をマッピングする情報を受信することに少なくともよって、前記マッピング情報を受信するように構成された請求項３０のデバイス。
【請求項３２】
前記プリミティブ・グラフィックス・データの前記部分は、１又は複数のポリゴンを含み、
前記１又は複数のプロセッサは、前記少なくとも一つのグラフィックス命令の前記実行に基づく前記パフォーマンス・イッシューに関連する前記１又は複数のポリゴンを識別することに少なくともよって、前記マッピング情報を使用するように構成された請求項３１のデバイス。
【請求項３３】
前記プリミティブ・グラフィックス・データは、グラフィカル・シーンの構成セグメントを含むテクスチャー・データとポリゴン・データとのうちの少なくとも一つを含む請求項３０のデバイス。
【請求項３４】
前記１又は複数のプロセッサは、
前記外部デバイスからステート情報（該ステート情報は、前記少なくとも一つのグラフィックス命令の前記実行に関連する）を受信し、
前記少なくとも一つのグラフィックス命令及び前記ステート情報に基づいて、前記パフォーマンス・イッシューに関連する前記プリミティブ・グラフィックス・データの前記部分の表現を前記表示デバイス上に表示するように更に構成された請求項３０のデバイス。
【請求項３５】
前記ステート情報は、前記プリミティブ・グラフィックス・データを含む請求項３４のデバイス。
【請求項３６】
前記１又は複数のプロセッサは、
前記外部デバイスからのパフォーマンス情報（該パフォーマンス情報は、前記少なくとも一つのグラフィックス命令の実行及び前記プリミティブ・グラフィックス・データの前記部分に関連する）を受信し、
前記プリミティブ・グラフィックス・データの前記部分に関連する前記パフォーマンス・イッシューを識別するために前記パフォーマンス情報を解析するように更に構成された請求項３０のデバイス。
【請求項３７】
前記１又は複数のプロセッサは、
前記プリミティブ・グラフィックス・データの前記部分に対して要求された修正を特定するユーザ入力を受信し、
前記要求された修正を、前記処理のために前記外部デバイスに送信し、
前記外部デバイスから、更新されたパフォーマンス情報（該更新されたパフォーマンス情報は、前記要求された修正に関連する）を受信し、
前記パフォーマンス・イッシューが解決されたかどうか判定するために、前記更新されたパフォーマンス情報を解析するように更に構成された請求項３６のデバイス。
【請求項３８】
前記１又は複数のプロセッサは、
前記外部デバイスから、少なくとも一つの更新されたグラフィックス命令（該少なくとも一つの更新されたグラフィックス命令は、要求された修正に関連する）を受信し、
前記外部デバイスから、更新されたマッピング情報（該更新されたマッピング情報は、前記少なくとも一つの更新されたグラフィックス命令の前記実行に関連する前記プリミティブ・グラフィックス・データの第２の部分に、前記少なくとも一つの更新されたグラフィックス命令をマッピングする更新された情報を含む）を受信するように更に構成された請求項３７のデバイス。
【請求項３９】
前記１又は複数のプロセッサは、
前記少なくとも一つのグラフィックス命令に基づいて、前記パフォーマンス・イッシューに関連する前記プリミティブ・グラフィックス・データの前記部分の表現を表示し、
前記外部デバイスからパーティショニング情報を受信し、
前記受信されたパーティショニング情報に基づいて、前記プリミティブ・グラフィックス・データの前記部分をオーバーレイするパーティションの表現を表示し、
前記プリミティブ・グラフィックス・データの前記部分が前記パーティションのうちの複数のものに関連するかどうか判定するために、前記プリミティブ・グラフィックス・データの前記部分を解析するように更に構成された請求項３０のデバイス。
【請求項４０】
前記プリミティブ・グラフィックスの前記部分は、複数の三角形を含み、
前記１又は複数のプロセッサは、前記三角形のうちのいずれの三角形が前記パーティションのうちの複数のものにわたるか判定することに少なくともよって、前記プリミティブ・グラフィックスの前記部分を解析するように構成され、
前記１又は複数のプロセッサは、前記パーティションのうちの複数のものにわたる前記三角形のグラフィカル表現を表示するように更に構成された請求項３９のデバイス。
【請求項４１】
前記１又は複数のプロセッサは、
前記少なくとも一つのグラフィックス命令を、第２の外部デバイスへ送信し、
前記マッピング情報（該マッピング情報は、前記少なくとも一つのグラフィックス命令を前記プリミティブ・グラフィックス・データの前記部分にマッピングするための情報を含む）を前記第２の外部デバイスへ送信し、
前記プリミティブ・グラフィックス・データの前記部分に関連するパフォーマンス・イッシューのインジケーションを、前記第２の外部デバイスへ送信するように更に構成された請求項３０のデバイス。
【請求項４２】
前記１又は複数のプロセッサは、
前記第２の外部デバイスから、前記プリミティブ・グラフィックス・データの前記部分に対して要求された修正を受信し、
前記要求された修正を、処理のために前記外部デバイスに送信し、
前記外部デバイスから、更新されたパフォーマンス情報（該更新されたパフォーマンス情報は、前記要求された修正に関連する）を受信するように更に構成された請求項４１のデバイス。
【請求項４３】
前記１又は複数のプロセッサは、
前記パフォーマンス・イッシューが解決されたかどうか判定するために、前記更新されたパフォーマンス情報を解析し、
前記パフォーマンス・イッシューが解決されたかどうかを示す第２のインジケーションを、前記第２の外部デバイスに送信するように更に構成された請求項４２のデバイス。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０１６２
【補正方法】変更
【補正の内容】
【０１６２】
様々な態様が本明細書で説明された。これら及び他の態様は以下のクレームの範囲内である。 
以下に、本願出願の当初の特許請求の範囲に記載された各請求項に対応する発明を付記する。 
［１］外部デバイスからグラフィックス命令を受信することと、前記外部デバイスからのマッピング情報（該マッピング情報は、該グラフィックス命令の実行中に１又は複数のグラフィックスをレンダリングするために使用されるプリミティブ・グラフィックス・データへ、該グラフィックス命令をマッピングするための情報を含む）を受信することと、前記グラフィックス命令の中で少なくとも一つのグラフィックス命令の実行に関連するパフォーマンス・イッシューを識別することと、前記少なくとも一つのグラフィックス命令の実行に基づく前記パフォーマンス・イッシューに関連するプリミティブ・グラフィックス・データの部分を識別するために前記マッピング情報を使用することを含む方法。 
［２］前記マッピング情報を受信することは、前記少なくとも一つのグラフィックス命令の実行中に１又は複数のグラフィックス・イメージをレンダリングするために使用される前記プリミティブ・グラフィックス・データの前記部分に、前記少なくとも一つのグラフィックス命令をマッピングする情報を受信することを含む［１］の方法。 
［３］前記プリミティブ・グラフィックス・データの前記部分は、１又は複数のポリゴンを含み、前記マッピング情報を使用することは、前記少なくとも一つのグラフィックス命令の前記実行に基づく前記パフォーマンス・イッシューに関連する前記１又は複数のポリゴンを識別することを含む［２］の方法。 
［４］前記プリミティブ・グラフィックス・データは、グラフィカル・シーンの構成セグメントを含むテクスチャー・データとポリゴン・データとのうちの少なくとも一つを含む［１］の方法。 
［５］前記外部デバイスからステート情報（該ステート情報は、前記少なくとも一つのグラフィックス命令の前記実行に関連する）を受信することと、前記少なくとも一つのグラフィックス命令及び前記ステート情報に基づいて、前記パフォーマンス・イッシューに関連する前記プリミティブ・グラフィックス・データの前記部分の表現を表示することを更に含む［１］の方法。 
［６］前記ステート情報は、前記プリミティブ・グラフィックス・データを含む［５］の方法。 
［７］前記外部デバイスからのパフォーマンス情報（該パフォーマンス情報は、前記少なくとも一つのグラフィックス命令の実行及び前記プリミティブ・グラフィックス・データの前記部分に関連する）を受信することと、前記プリミティブ・グラフィックス・データの前記部分に関連する前記パフォーマンス・イッシューを識別するために前記パフォーマンス情報を解析することを含む［１］の方法。 
［８］前記プリミティブ・グラフィックス・データの前記部分に対して要求された修正を特定するユーザ入力を受信することと、前記要求された修正を、前記処理のために前記外部デバイスに送信することと、前記外部デバイスから、更新されたパフォーマンス情報（該更新されたパフォーマンス情報は、前記要求された修正に関連する）を受信することと、前記パフォーマンス・イッシューが解決されたかどうか判定するために、前記更新されたパフォーマンス情報を解析することを更に含む［７］の方法。 
［９］前記外部デバイスから、少なくとも一つの更新されたグラフィックス命令（該少なくとも一つの更新されたグラフィックス命令は、要求された修正に関連する）を受信することと、前記外部デバイスから、更新されたマッピング情報（該更新されたマッピング情報は、前記少なくとも一つの更新されたグラフィックス命令の前記実行に関連する前記プリミティブ・グラフィックス・データの第２の部分に、前記少なくとも一つの更新されたグラフィックス命令をマッピングする更新された情報を含む）を受信することを更に含む［８］の方法。 
［１０］前記少なくとも一つのグラフィックス命令に基づいて、前記パフォーマンス・イッシューに関連する前記プリミティブ・グラフィックス・データの前記部分の表現を表示することと、前記外部デバイスからパーティショニング情報を受信することと、前記受信されたパーティショニング情報に基づいて、前記プリミティブ・グラフィックス・データの前記部分をオーバーレイするパーティションの表現を表示することと、前記プリミティブ・グラフィックス・データの前記部分が前記パーティションのうちの複数のものに関連するかどうか判定するために、前記プリミティブ・グラフィックス・データの前記部分を解析することを含む［１］の方法。 
［１１］前記プリミティブ・グラフィックスの前記部分は、複数の三角形を含み、前記プリミティブ・グラフィックスの前記部分を解析することは、前記三角形のうちのいずれの三角形が前記パーティションのうちの複数のものにわたるか判定することを含み、前記方法は、前記パーティションのうちの複数のものにわたる前記三角形のグラフィカル表現を表示することを含む［１０］の方法。 
［１２］前記少なくとも一つのグラフィックス命令を、第２の外部デバイスへ送信することと、前記マッピング情報（該マッピング情報は、前記少なくとも一つのグラフィックス命令を前記プリミティブ・グラフィックス・データの前記部分にマッピングするための情報を含む）を前記第２の外部デバイスへ送信することと、前記プリミティブ・グラフィックス・データの前記部分に関連するパフォーマンス・イッシューのインジケーションを、前記第２の外部デバイスへ送信することを含む［１］の方法。 
［１３］前記第２の外部デバイスから、前記プリミティブ・グラフィックス・データの前記部分に対して要求された修正を受信することと、前記要求された修正を、処理のために前記外部デバイスに送信することと、前記外部デバイスから、更新されたパフォーマンス情報（該更新されたパフォーマンス情報は、前記要求された修正に関連する）を受信することを更に含む［１２］の方法。 
［１４］前記パフォーマンス・イッシューが解決されたかどうか判定するために、前記更新されたパフォーマンス情報を解析することと、前記パフォーマンス・イッシューが解決されたかどうかを示す第２のインジケーションを、前記第２の外部デバイスに送信することを更に含む［１３］の方法。 
［１５］１又は複数のプロセッサに、外部デバイスからグラフィックス命令を受信させ、前記外部デバイスからのマッピング情報（該マッピング情報は、該グラフィックス命令の実行中に１又は複数のグラフィックスをレンダリングするために使用されるプリミティブ・グラフィックス・データへ、該グラフィックス命令をマッピングするための情報を含む）を受信させ、前記グラフィックス命令の中で少なくとも一つのグラフィックス命令の実行に関連するパフォーマンス・イッシューを識別させ、前記少なくとも一つのグラフィックス命令の実行に基づく前記パフォーマンス・イッシューに関連するプリミティブ・グラフィックス・データの部分を識別するために前記マッピング情報を使用させるためのコンピュータ実行可能な命令を含むコンピュータ読み取り可能な媒体。 
［１６］前記１又は複数のプロセッサに前記マッピング情報を受信させるための前記コンピュータ実行可能な命令は、前記１又は複数のプロセッサに前記少なくとも一つのグラフィックス命令の実行中に１又は複数のグラフィックス・イメージをレンダリングするために使用される前記プリミティブ・グラフィックス・データの前記部分に、前記少なくとも一つのグラフィックス命令をマッピングする情報を受信させるためのコンピュータ実行可能な命令を含む［１５］のコンピュータ読み取り可能な媒体。 
［１７］前記プリミティブ・グラフィックス・データの前記部分は、１又は複数のポリゴンを含み、前記１又は複数のプロセッサに前記マッピング情報を使用させるための前記コンピュータ実行可能な命令は、前記１又は複数のプロセッサに前記少なくとも一つのグラフィックス命令の前記実行に基づく前記パフォーマンス・イッシューに関連する前記１又は複数のポリゴンを識別させるためのコンピュータ実行可能な命令を含む［１６］のコンピュータ読み取り可能な媒体。 
［１８］前記プリミティブ・グラフィックス・データは、グラフィカル・シーンの構成セグメントを含むテクスチャー・データとポリゴン・データとのうちの少なくとも一つを含む［１５］のコンピュータ読み取り可能な媒体。 
［１９］前記１又は複数のプロセッサに、前記外部デバイスからステート情報（該ステート情報は、前記少なくとも一つのグラフィックス命令の前記実行に関連する）を受信させ、前記少なくとも一つのグラフィックス命令及び前記ステート情報に基づいて、前記パフォーマンス・イッシューに関連する前記プリミティブ・グラフィックス・データの前記部分の表現を表示させるためのコンピュータ実行可能な命令を更に含む［１５］のコンピュータ読み取り可能な媒体。 
［２０］前記ステート情報は、前記プリミティブ・グラフィックス・データを含む［１９］のコンピュータ読み取り可能な媒体。 
［２１］前記１又は複数のプロセッサに、前記外部デバイスからのパフォーマンス情報（該パフォーマンス情報は、前記少なくとも一つのグラフィックス命令の実行及び前記プリミティブ・グラフィックス・データの前記部分に関連する）を受信させ、前記プリミティブ・グラフィックス・データの前記部分に関連する前記パフォーマンス・イッシューを識別するために前記パフォーマンス情報を解析させるためのコンピュータ実行可能な命令を更に含む［１５］のコンピュータ読み取り可能な媒体。 
［２２］前記１又は複数のプロセッサに、前記プリミティブ・グラフィックス・データの前記部分に対して要求された修正を特定するユーザ入力を受信させ、前記要求された修正を、前記処理のために前記外部デバイスに送信させ、前記外部デバイスから、更新されたパフォーマンス情報（該更新されたパフォーマンス情報は、前記要求された修正に関連する）を受信させ、前記パフォーマンス・イッシューが解決されたかどうか判定するために、前記更新されたパフォーマンス情報を解析させるためのコンピュータ実行可能な命令を更に含む［２１］のコンピュータ読み取り可能な媒体。 
［２３］前記１又は複数のプロセッサに、前記外部デバイスから、少なくとも一つの更新されたグラフィックス命令（該少なくとも一つの更新されたグラフィックス命令は、要求された修正に関連する）を受信させ、前記外部デバイスから、更新されたマッピング情報（該更新されたマッピング情報は、前記少なくとも一つの更新されたグラフィックス命令の前記実行に関連する前記プリミティブ・グラフィックス・データの第２の部分に、前記少なくとも一つの更新されたグラフィックス命令をマッピングする更新された情報を含む）を受信させるためのコンピュータ実行可能な命令を更に含む［２２］のコンピュータ読み取り可能な媒体。 
［２４］前記１又は複数のプロセッサに、前記少なくとも一つのグラフィックス命令に基づいて、前記パフォーマンス・イッシューに関連する前記プリミティブ・グラフィックス・データの前記部分の表現を表示させ、前記外部デバイスからパーティショニング情報を受信させ、前記受信されたパーティショニング情報に基づいて、前記プリミティブ・グラフィックス・データの前記部分をオーバーレイするパーティションの表現を表示させ、前記プリミティブ・グラフィックス・データの前記部分が前記パーティションのうちの複数のものに関連するかどうか判定するために、前記プリミティブ・グラフィックス・データの前記部分を解析させるためのコンピュータ実行可能な命令を更に含む［１５］のコンピュータ読み取り可能な媒体。 
［２５］前記プリミティブ・グラフィックスの前記部分は、複数の三角形を含み、前記１又は複数のプロセッサに前記プリミティブ・グラフィックスの前記部分を解析させるための前記コンピュータ実行可能な命令は、前記１又は複数のプロセッサに前記三角形のうちのいずれの三角形が前記パーティションのうちの複数のものにわたるか判定させるためのコンピュータ実行可能な命令を含み、前記方法は、前記１又は複数のプロセッサに前記パーティションのうちの複数のものにわたる前記三角形のグラフィカル表現を表示させるためのコンピュータ実行可能な命令を更に含む［２４］のコンピュータ読み取り可能な媒体。 
［２６］前記１又は複数のプロセッサに、前記少なくとも一つのグラフィックス命令を、第２の外部デバイスへ送信させ、前記マッピング情報（該マッピング情報は、前記少なくとも一つのグラフィックス命令を前記プリミティブ・グラフィックス・データの前記部分にマッピングするための情報を含む）を前記第２の外部デバイスへ送信させ、前記プリミティブ・グラフィックス・データの前記部分に関連するパフォーマンス・イッシューのインジケーションを、前記第２の外部デバイスへ送信させるためのコンピュータ実行可能な命令を更に含む［１５］のコンピュータ読み取り可能な媒体。 
［２７］前記１又は複数のプロセッサに、前記第２の外部デバイスから、前記プリミティブ・グラフィックス・データの前記部分に対して要求された修正を受信させ、前記要求された修正を、処理のために前記外部デバイスに送信させ、前記外部デバイスから、更新されたパフォーマンス情報（該更新されたパフォーマンス情報は、前記要求された修正に関連する）を受信させるためのコンピュータ実行可能な命令を更に含む［２６］のコンピュータ読み取り可能な媒体。 
［２８］前記１又は複数のプロセッサに、前記パフォーマンス・イッシューが解決されたかどうか判定するために、前記更新されたパフォーマンス情報を解析させ、前記パフォーマンス・イッシューが解決されたかどうかを示す第２のインジケーションを、前記第２の外部デバイスに送信させるためのコンピュータ実行可能な命令を更に含む［２７］のコンピュータ読み取り可能な媒体。 
［２９］表示デバイスと、外部デバイスからグラフィックス命令を受信し、前記外部デバイスからのマッピング情報（該マッピング情報は、該グラフィックス命令の実行中に１又は複数のグラフィックスをレンダリングするために使用されるプリミティブ・グラフィックス・データへ、該グラフィックス命令をマッピングするための情報を含む）を受信し、前記グラフィックス命令の中で少なくとも一つのグラフィックス命令の実行に関連するパフォーマンス・イッシューを識別し、前記少なくとも一つのグラフィックス命令の実行に基づく前記パフォーマンス・イッシューに関連するプリミティブ・グラフィックス・データの部分を識別するために前記マッピング情報を使用するように構成される１又は複数のプロセッサとを含むデバイス。 
［３０］前記１又は複数のプロセッサは、前記少なくとも一つのグラフィックス命令の実行中に１又は複数のグラフィックス・イメージをレンダリングするために使用される前記プリミティブ・グラフィックス・データの前記部分に、前記少なくとも一つのグラフィックス命令をマッピングする情報を受信することに少なくともよって、前記マッピング情報を受信するように構成された［２９］のデバイス。 
［３１］前記プリミティブ・グラフィックス・データの前記部分は、１又は複数のポリゴンを含み、前記１又は複数のプロセッサは、前記少なくとも一つのグラフィックス命令の前記実行に基づく前記パフォーマンス・イッシューに関連する前記１又は複数のポリゴンを識別することに少なくともよって、前記マッピング情報を使用するように構成された［３０］のデバイス。 
［３２］前記プリミティブ・グラフィックス・データは、グラフィカル・シーンの構成セグメントを含むテクスチャー・データとポリゴン・データとのうちの少なくとも一つを含む［２９］のデバイス。 
［３３］前記１又は複数のプロセッサは、前記外部デバイスからステート情報（該ステート情報は、前記少なくとも一つのグラフィックス命令の前記実行に関連する）を受信し、前記少なくとも一つのグラフィックス命令及び前記ステート情報に基づいて、前記パフォーマンス・イッシューに関連する前記プリミティブ・グラフィックス・データの前記部分の表現を前記表示デバイス上に表示するように更に構成された［２９］のデバイス。 
［３４］前記ステート情報は、前記プリミティブ・グラフィックス・データを含む［３３］のデバイス。 
［３５］前記１又は複数のプロセッサは、前記外部デバイスからのパフォーマンス情報（該パフォーマンス情報は、前記少なくとも一つのグラフィックス命令の実行及び前記プリミティブ・グラフィックス・データの前記部分に関連する）を受信し、前記プリミティブ・グラフィックス・データの前記部分に関連する前記パフォーマンス・イッシューを識別するために前記パフォーマンス情報を解析するように更に構成された［２９］のデバイス。 
［３６］前記１又は複数のプロセッサは、前記プリミティブ・グラフィックス・データの前記部分に対して要求された修正を特定するユーザ入力を受信し、前記要求された修正を、前記処理のために前記外部デバイスに送信し、前記外部デバイスから、更新されたパフォーマンス情報（該更新されたパフォーマンス情報は、前記要求された修正に関連する）を受信し、前記パフォーマンス・イッシューが解決されたかどうか判定するために、前記更新されたパフォーマンス情報を解析するように更に構成された［３５］のデバイス。 
［３７］前記１又は複数のプロセッサは、前記外部デバイスから、少なくとも一つの更新されたグラフィックス命令（該少なくとも一つの更新されたグラフィックス命令は、要求された修正に関連する）を受信し、前記外部デバイスから、更新されたマッピング情報（該更新されたマッピング情報は、前記少なくとも一つの更新されたグラフィックス命令の前記実行に関連する前記プリミティブ・グラフィックス・データの第２の部分に、前記少なくとも一つの更新されたグラフィックス命令をマッピングする更新された情報を含む）を受信するように更に構成された［３６］のデバイス。 
［３８］前記１又は複数のプロセッサは、前記少なくとも一つのグラフィックス命令に基づいて、前記パフォーマンス・イッシューに関連する前記プリミティブ・グラフィックス・データの前記部分の表現を前記表示デバイス上に表示し、前記外部デバイスからパーティショニング情報を受信し、前記受信されたパーティショニング情報に基づいて、前記プリミティブ・グラフィックス・データの前記部分をオーバーレイするパーティションの表現を前記表示デバイス上に表示し、前記プリミティブ・グラフィックス・データの前記部分が前記パーティションのうちの複数のものに関連するかどうか判定するために、前記プリミティブ・グラフィックス・データの前記部分を解析するように更に構成された［２９］のデバイス。 
［３９］前記プリミティブ・グラフィックスの前記部分は、複数の三角形を含み、前記１又は複数のプロセッサは、前記三角形のうちのいずれの三角形が前記パーティションのうちの複数のものにわたるか判定することに少なくともよって、前記プリミティブ・グラフィックスの前記部分を解析するように構成され、前記１又は複数のプロセッサは、前記パーティションのうちの複数のものにわたる前記三角形のグラフィカル表現を表示するように更に構成された［３８］のデバイス。 
［４０］前記１又は複数のプロセッサは、前記少なくとも一つのグラフィックス命令を、第２の外部デバイスへ送信し、前記マッピング情報（該マッピング情報は、前記少なくとも一つのグラフィックス命令を前記プリミティブ・グラフィックス・データの前記部分にマッピングするための情報を含む）を前記第２の外部デバイスへ送信し、前記プリミティブ・グラフィックス・データの前記部分に関連するパフォーマンス・イッシューのインジケーションを、前記第２の外部デバイスへ送信するように更に構成された［２９］のデバイス。 
［４１］前記１又は複数のプロセッサは、前記第２の外部デバイスから、前記プリミティブ・グラフィックス・データの前記部分に対して要求された修正を受信し、前記要求された修正を、処理のために前記外部デバイスに送信し、前記外部デバイスから、更新されたパフォーマンス情報（該更新されたパフォーマンス情報は、前記要求された修正に関連する）を受信するように更に構成された［４０］のデバイス。 
［４２］前記１又は複数のプロセッサは、前記パフォーマンス・イッシューが解決されたかどうか判定するために、前記更新されたパフォーマンス情報を解析し、前記パフォーマンス・イッシューが解決されたかどうかを示す第２のインジケーションを、前記第２の外部デバイスに送信するように更に構成された［４１］のデバイス。 
［４３］外部デバイスからグラフィックス命令を受信するための手段と、前記外部デバイスからのマッピング情報（該マッピング情報は、該グラフィックス命令の実行中に１又は複数のグラフィックスをレンダリングするために使用されるプリミティブ・グラフィックス・データへ、該グラフィックス命令をマッピングするための情報を含む）を受信するための手段と、前記グラフィックス命令の中で少なくとも一つのグラフィックス命令の実行に関連するパフォーマンス・イッシューを識別するための手段と、前記少なくとも一つのグラフィックス命令の実行に基づく前記パフォーマンス・イッシューに関連するプリミティブ・グラフィックス・データの部分を識別するために前記マッピング情報を使用するための手段とを含むデバイス。 
［４４］前記マッピング情報を受信するための手段は、前記少なくとも一つのグラフィックス命令の実行中に１又は複数のグラフィックス・イメージをレンダリングするために使用される前記プリミティブ・グラフィックス・データの前記部分に、前記少なくとも一つのグラフィックス命令をマッピングする情報を受信するための手段を含む［４３］のデバイス。 
［４５］前記プリミティブ・グラフィックス・データの前記部分は、１又は複数のポリゴンを含み、前記マッピング情報を使用するための手段は、前記少なくとも一つのグラフィックス命令の前記実行に基づく前記パフォーマンス・イッシューに関連する前記１又は複数のポリゴンを識別するための手段を含む［４４］のデバイス。 
［４６］前記プリミティブ・グラフィックス・データは、グラフィカル・シーンの構成セグメントを含むテクスチャー・データとポリゴン・データとのうちの少なくとも一つを含む［４３］のデバイス。 
［４７］前記外部デバイスからステート情報（該ステート情報は、前記少なくとも一つのグラフィックス命令の前記実行に関連する）を受信するための手段と、前記少なくとも一つのグラフィックス命令及び前記ステート情報に基づいて、前記パフォーマンス・イッシューに関連する前記プリミティブ・グラフィックス・データの前記部分の表現を表示するための手段とを更に含む［４３］のデバイス。 
［４８］前記ステート情報は、前記プリミティブ・グラフィックス・データを含む［４７］のデバイス。 
［４９］前記外部デバイスからのパフォーマンス情報（該パフォーマンス情報は、前記少なくとも一つのグラフィックス命令の実行及び前記プリミティブ・グラフィックス・データの前記部分に関連する）を受信するための手段と、前記プリミティブ・グラフィックス・データの前記部分に関連する前記パフォーマンス・イッシューを識別するために前記パフォーマンス情報を解析するための手段とを更に含む［４３］のデバイス。 
［５０］前記プリミティブ・グラフィックス・データの前記部分に対して要求された修正を特定するユーザ入力を受信するための手段と、前記要求された修正を、前記処理のために前記外部デバイスに送信するための手段と、前記外部デバイスから、更新されたパフォーマンス情報（該更新されたパフォーマンス情報は、前記要求された修正に関連する）を受信するための手段と、前記パフォーマンス・イッシューが解決されたかどうか判定するために、前記更新されたパフォーマンス情報を解析するための手段を更に含む［４９］のデバイス。 
［５１］前記外部デバイスから、少なくとも一つの更新されたグラフィックス命令（該少なくとも一つの更新されたグラフィックス命令は、要求された修正に関連する）を受信するための手段と、前記外部デバイスから、更新されたマッピング情報（該更新されたマッピング情報は、前記少なくとも一つの更新されたグラフィックス命令の前記実行に関連する前記プリミティブ・グラフィックス・データの第２の部分に、前記少なくとも一つの更新されたグラフィックス命令をマッピングする更新された情報を含む）を受信するための手段とを更に含む［５０］のデバイス。 
［５２］前記少なくとも一つのグラフィックス命令に基づいて、前記パフォーマンス・イッシューに関連する前記プリミティブ・グラフィックス・データの前記部分の表現を表示するための手段と、前記外部デバイスからパーティショニング情報を受信するための手段と、前記受信されたパーティショニング情報に基づいて、前記プリミティブ・グラフィックス・データの前記部分をオーバーレイするパーティションの表現を表示するための手段と、前記プリミティブ・グラフィックス・データの前記部分が前記パーティションのうちの複数のものに関連するかどうか判定するために、前記プリミティブ・グラフィックス・データの前記部分を解析するための手段とを含む［４３］のデバイス。 
［５３］前記プリミティブ・グラフィックスの前記部分は、複数の三角形を含み、前記プリミティブ・グラフィックスの前記部分を解析するための手段は、前記三角形のうちのいずれの三角形が前記パーティションのうちの複数のものにわたるか判定するための手段を含み、前記デバイスは、前記パーティションのうちの複数のものにわたる前記三角形のグラフィカル表現を表示するための手段を更に含む［５２］のデバイス。 
［５４］前記少なくとも一つのグラフィックス命令を、第２の外部デバイスへ送信するための手段と、前記マッピング情報（該マッピング情報は、前記少なくとも一つのグラフィックス命令を前記プリミティブ・グラフィックス・データの前記部分にマッピングするための情報を含む）を前記第２の外部デバイスへ送信するための手段と、前記プリミティブ・グラフィックス・データの前記部分に関連するパフォーマンス・イッシューのインジケーションを、前記第２の外部デバイスへ送信するための手段とを含む［４３］のデバイス。 
［５５］前記第２の外部デバイスから、前記プリミティブ・グラフィックス・データの前記部分に対して要求された修正を受信するための手段と、前記要求された修正を、処理のために前記外部デバイスに送信するための手段と、前記外部デバイスから、更新されたパフォーマンス情報（該更新されたパフォーマンス情報は、前記要求された修正に関連する）を受信するための手段とを更に含む［５４］のデバイス。 
［５６］前記パフォーマンス・イッシューが解決されたかどうか判定するために、前記更新されたパフォーマンス情報を解析するための手段と、前記パフォーマンス・イッシューが解決されたかどうかを示す第２のインジケーションを、前記第２の外部デバイスに送信するための手段とを更に含む［５５］のデバイス。
【手続補正書】
【提出日】平成23年6月28日(2011.6.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項１
【補正方法】変更
【補正の内容】
【請求項１】
コンピュータ・デバイスによって、外部グラフィックス・デバイスをシミュレーションするためのシミュレーションされた環境を提供するシミュレーション・アプリケーションを実行することと、
前記コンピュータ・デバイスによって、前記外部デバイスから送信されるグラフィックス命令を受信することと、
前記コンピュータ・デバイスによって、前記外部デバイスにより作成され、前記外部デバイスから送信される、マッピング情報（該マッピング情報は、該グラフィックス命令の実行中に１又は複数のグラフィックスをレンダリングするために使用されるプリミティブ・グラフィックス・データへ、該グラフィックス命令をマッピングするための情報を含む）（該マッピング情報は、前記コンピュータ・デバイスによる前記グラフィックス命令の実行の前に、前記外部デバイスにより作成され、前記コンピュータ・デバイスにより受信される）を受信することと、
前記シミュレーション・アプリケーションを使用して、前記コンピュータ・デバイス上で前記グラフィックス命令を実行することと、
前記コンピュータ・デバイスによって、前記グラフィックス命令の中で少なくとも一つのグラフィックス命令の実行に関連するパフォーマンス・イッシューを識別することと、
前記コンピュータ・デバイスによって、前記少なくとも一つのグラフィックス命令の実行に基づく前記パフォーマンス・イッシューに関連する前記プリミティブ・グラフィックス・データの部分を識別するために前記マッピング情報を使用することを含む方法。
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項１５
【補正方法】変更
【補正の内容】
【請求項１５】
コンピュータ・デバイスの１又は複数のプロセッサに、
外部グラフィックス・デバイスをシミュレーションするためのシミュレーションされた環境を提供するシミュレーション・アプリケーションを実行させ、
前記外部デバイスから送信されるグラフィックス命令を受信させ、
前記外部デバイスにより作成され、前記外部デバイスから送信される、マッピング情報（該マッピング情報は、該グラフィックス命令の実行中に１又は複数のグラフィックスをレンダリングするために使用されるプリミティブ・グラフィックス・データへ、該グラフィックス命令をマッピングするための情報を含む）（該マッピング情報は、前記コンピュータ・デバイスによる前記グラフィックス命令の実行の前に、前記外部デバイスにより作成され、前記コンピュータ・デバイスにより受信される）を受信させ、
前記シミュレーション・アプリケーションを使用して、前記グラフィックス命令を実行させ、
前記グラフィックス命令の中で少なくとも一つのグラフィックス命令の実行に関連するパフォーマンス・イッシューを識別させ、
前記少なくとも一つのグラフィックス命令の実行に基づく前記パフォーマンス・イッシューに関連する前記プリミティブ・グラフィックス・データの部分を識別するために前記マッピング情報を使用させるためのコンピュータ実行可能な命令を含むコンピュータ読み取り可能な媒体。
【手続補正３】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項２９
【補正方法】変更
【補正の内容】
【請求項２９】
デバイスにおいて、
外部グラフィックス・デバイスをシミュレーションするためのシミュレーションされた環境を提供するシミュレーション・アプリケーションを実行するための手段と、
前記外部デバイスから送信されるグラフィックス命令を受信するための手段と、
前記外部デバイスにより作成され、前記外部デバイスから送信される、マッピング情報（該マッピング情報は、該グラフィックス命令の実行中に１又は複数のグラフィックスをレンダリングするために使用されるプリミティブ・グラフィックス・データへ、該グラフィックス命令をマッピングするための情報を含む）（該マッピング情報は、前記デバイスによる前記グラフィックス命令の実行の前に、前記外部デバイスにより作成され、前記デバイスにより受信される）を受信するための手段と、
前記シミュレーション・アプリケーションを使用して、前記グラフィックス命令を実行するための手段と、
前記グラフィックス命令の中で少なくとも一つのグラフィックス命令の実行に関連するパフォーマンス・イッシューを識別するための手段と、
前記少なくとも一つのグラフィックス命令の実行に基づく前記パフォーマンス・イッシューに関連する前記プリミティブ・グラフィックス・データの部分を識別するために前記マッピング情報を使用するための手段とを含むデバイス。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】０１３７
【補正方法】変更
【補正の内容】
【０１３７】
場合によっては、開発者はまた、グラフィックス・デバイス２００により実装される処理パイプラインに関連する１又は複数の機能をオーバーライドするオーバーライド・ボタン２３８を選択しても良い。オーバーライド・ボタン２３８の選択に応じて、オーバーライド・スクリーンが開発者に対して表示されても良い。
【国際調査報告】
2011529237.tif 000015
2011529237.tif 000016
2011529237.tif 000017