JP2008123488A - グラフィックスパイプラインサブユニットのデバッグ方法及びシステム - Google Patents

グラフィックスパイプラインサブユニットのデバッグ方法及びシステム Download PDF

Info

Publication number
JP2008123488A
JP2008123488A JP2007201038A JP2007201038A JP2008123488A JP 2008123488 A JP2008123488 A JP 2008123488A JP 2007201038 A JP2007201038 A JP 2007201038A JP 2007201038 A JP2007201038 A JP 2007201038A JP 2008123488 A JP2008123488 A JP 2008123488A
Authority
JP
Japan
Prior art keywords
draw
draw call
window
call
subunit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2007201038A
Other languages
English (en)
Other versions
JP5489395B2 (ja
Inventor
Raul Aguaviva
アグアヴィヴァ ラウル
Sebastien Julien Domine
ジュリエン ドマイン セバスチャン
Ii William Orville Ramey
オーヴィル ラメイ セカンド ウィリアム
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nvidia Corp
Original Assignee
Nvidia Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nvidia Corp filed Critical Nvidia Corp
Publication of JP2008123488A publication Critical patent/JP2008123488A/ja
Application granted granted Critical
Publication of JP5489395B2 publication Critical patent/JP5489395B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • Debugging And Monitoring (AREA)
  • Image Generation (AREA)
  • Image Processing (AREA)

Abstract

【課題】グラフィックスパイプラインサブユニット上で動作可能なアプリケーションをデバッグする方法を提供する。
【解決手段】所定の状態をもつ共通状態属性を共有する複数の描画呼び出しを備えた、複数の選択可能な描画呼び出しグループが表示される。ユーザ選択に応答して、選択された描画呼び出しグループとこれに関連する複数の選択可能な描画呼び出しが表示される。複数の選択可能なグラフィックスパイプラインサブユニットが表示される。選択されたサブユニットのユーザ選択に応答して、複数の編集可能な状態情報と、選択された描画呼び出に関連したグラフィカルプリミティブとが表示される。複数の編集可能な状態情報は、所定の状態をもつ共通属性を共有する一部が一つのグループに入るようにグループ分けされる。ユーザ選択に応答して、選択された描画呼び出し又は選択された描画呼び出しグループに変更が加えられる。
【選択図】図9

Description

[0001]本発明は、グラフィックスプロセッシングユニットの分野に関するものである。より詳細には、本発明の実施形態は、グラフィックスパイプラインサブユニットをデバッグする方法、及びシステムに関するものである。
関連米国特許出願
[0002]本願は、Aguavivaらによって2006年8月1日に出願された出願であって、“Method And User Interface For Enhanced Graphical Operation Organization”と題しており、代理人書類番号がNVID−P002635であり、本発明の譲受人へ譲渡された米国特許出願と、Aguavivaらによって2006年8月1日に出願された出願であって、“Method And System For Calculating Performance Parameters For A Processor”と題しており、代理人書類番号がNVID−P002603であり、本発明の譲受人へ譲渡された米国特許出願とを参照することによって本明細書に援用するものである。
[0003]グラフィカルアプリケーションを実行するグラフィックスプロセッシングユニット(GPU)の効率を改良する必要性は、常にソフトウェア開発者の主要な関心事である。例えば、ボトルネック解析は、パイプライン型GPUがその最も遅いユニットと同じ速さでしかないならば、アプリケーションの最適化に重要である。同様に、グラフィックスパイプラインの各ユニットの利用率を監視し、それによって、負荷分散を可能にし、所定の時間に各ユニットの十分な利用率を確保することが重要である。しかしながら、GPU性能を最適化し、グラフィックスパイプラインサブユニットをデバッグすることは、利用できるパフォーマンスツールの数が制限され、従来型のツールが提供する機能の数が制限されるならば、困難なタスクである。
[0004]従来の方法は、グラフィカルオペレーション(例えば、描画呼び出し)を実行中にグラフィックスパイプラインの各サブユニットのセットアップについての詳細な情報、及びこれらの状態情報を提供できない。したがって、修正動作は、各サブユニットのセットアップについての正しい知識、及び描画呼び出しに関するこれらの対応する状態情報なしに、試行錯誤によって行われる。さらに、GPUの中の問題のあるサブユニットを改善するための修正は、GPUのその他のユニットに悪影響を与える。例えば、1台のサブユニットのボトルネックの軽減は、その他のサブユニットの利用率に悪影響を与える。よって、開発者は、パイプラインサブユニットに関する利用率情報を監視することが不可能であるならば、たとえ、ボトルネックが修正されたとしても、最小限の性能向上しか得られないことが多くある。
[0005]上記の欠点に加えて、たとえ、開発者がボトルネックを軽減し、所定のフレーム又はグラフィカルオペレーション用に十分に利用されていないサブユニットの利用率を増加させることが可能であるとしても、その他のフレーム及び/又はグラフィカルオペレーションの性能は低下する可能性がある。よって、所与のGPU上のグラフィカルアプリケーションの性能の向上が殆ど、又は、全く感知されることなく、多量の時間と努力が、従来型のツールを使用して費やされる可能性がある。
概要
[0006]したがって、グラフィカルオペレーション(例えば、描画呼び出し)の実行時にGPUパイプラインのサブユニットのセットアップ、及びGPUパイプラインのサブユニットの状態情報の透明性を提供する必要性がある。さらに、状態情報の編集はGPUパイプラインの全体的な効率及びGPUパイプラインのフレームレートを実質的に改善するので、編集可能な状態情報の透明性を提供する必要性がある。また、問題のあるフレームのグラフィックオペレーションの自動識別を同時に可能にするデバッグツール内で上記の透明性を提供する必要性が更に存在する。本発明の詳細な説明を読めば、本発明の実施形態は上記の必要性を満たすことが当業者に明白になるであろう。
[0007]本発明の一実施形態では、実行時間によってソートされる複数の選択可能な描画呼び出しグループが、グラフィカルユーザインターフェイスを用いてアクセスされ表示される。選択される描画呼び出しグループのユーザ選択に応答して、複数の選択可能な描画呼び出しが、そのグループから表示される。各描画呼び出しグループ中の全ての描画呼び出しは、所定の状態の共通の状態属性を共有する。複数の選択可能なグラフィックスパイプラインサブユニットの識別子もまた表示される。描画呼び出しグループと関連した描画呼び出しのユーザ選択とサブユニットの選択とに応答して、複数の編集可能な状態情報が自動的に表示される(例えば、テキストウィンドウ)。状態情報のユーザ編集に応答して、複数のデータリポジトリ設定が変更される。さらに、状態情報の編集が、ユーザ選択に応答して選択された描画呼び出し又は選択された描画呼び出しグループに適用される。
[0008]本発明の実施形態を具現化する結果として、サブユニットセットアップ情報及び状態情報は開発者に透過的なものとなる。したがって、ユーザは、状態情報を編集してGPUパイプラインの全体的な効率及びフレームレートを改善することに関して、詳しい説明に基づく決定を行うことができる。
[0009]より詳細には、本発明の実施形態は、グラフィックスパイプラインサブユニット上で動作可能であるアプリケーションをデバッグ及び/又は最適化する方法に関するものであり、本方法は、複数の描画呼び出しグループにアクセスするステップであって、各描画呼び出しグループがそれぞれに複数の描画呼び出しを含んでおり、各グループの複数の描画呼び出しの全てが所定の状態をもつ共通状態属性を共有する、当該ステップと、上記複数の描画呼び出しグループを第1のウィンドウに表示し、上記複数の描画呼び出しグループについてのユーザ選択を可能にするステップと、描画呼び出しグループについてのユーザ選択に応答して、選択された描画呼び出しグループに関連する複数の描画呼び出しを表示し、上記複数の描画呼び出しについてのユーザ選択を可能にするステップと、複数のグラフィックスパイプラインサブユニットの識別子を第2のウィンドウに表示し、上記複数のグラフィックスパイプラインサブユニットについてのユーザ選択を可能にするステップと、選択されたグラフィックスパイプラインサブユニットについてのユーザ選択に応答して、選択された描画呼び出しに関して選択されたグラフィックスパイプラインサブユニットの複数の状態情報を表示するステップと、を含む。
[0010]種々の実施形態は上述の事項を含み、本方法は上記の選択された描画呼び出しの実行の結果として、選択されたパイプラインサブユニットによってレンダリングされたグラフィカルプリミティブを表示するステップを更に含む。実施形態は、上述の事項を更に含み、選択されたグラフィックスパイプラインサブユニットに関して選択された描画呼び出し及び描画呼び出しグループに関する性能データを表示するステップを更に含み、性能データは、複数のグラフィックスパイプラインサブユニットが選択された描画呼び出しグループを実行する時間を示し、性能データは更に、選択されたグラフィックスパイプラインサブユニットが選択された描画呼び出しを実行する時間を示す。
[0011]さらに、実施形態は上述の事項を含み、本方法は、ユーザが複数の状態情報を編集することを可能にするステップを更に含む。さらに、実施形態は上述の事項を含み、複数の描画呼び出しグループ及び複数の描画呼び出しは、グループ及び描画呼び出しのそれぞれの実行時間によってランク付けされる。また、実施形態は、上述の事項を含み、上記複数の状態情報を表示するステップが、上記選択された描画呼び出しグループに亘って共通である複数の状態情報の一部が一緒に描かれるように、上記複数の状態情報をグループ分けする工程を更に含む。
[0012]本発明を、限定するためではなく、一例として、添付図面中の図に示す。これら図においては、類似の参照符号が類似の要素を指している。
詳細な説明
[0023]ここで、本発明の実施形態を参照する。これら実施形態の例を、添付図面に示す。本発明をこれら実施形態に関して説明するが、これら実施形態は本発明を当該実施形態に限定するためのものではないことが理解されるであろう。これとは逆に、本発明は、特許請求の範囲に規定されているように、本発明の精神及び範囲に包含される代替物、変形物、及び、均等物を網羅することを意図している。さらに、以下の発明の詳細な説明において、多数の特定の細部を、本発明が完全に理解できるように説明する。しかしながら、当業者には明らかであるように、本発明はこれらの特定の細部を用いることなく実施することができる。別の例では、周知の方法、手順、コンポーネント、及び回路は、本発明の態様を不必要に曖昧にすることがないように、詳細には記載しない。
(表記と用語)
[0024]以下の詳細な説明の一部分は、コンピュータメモリ上で実行可能なデータビットへの操作の手順、ステップ、論理ブロック、処理、及び、その他の記号的表現の観点で提示してある。これらの説明及び表現は、当業者が自分の業績を他の当業者へ最も効果的に伝達するために当業者によって使用される手段である。手順、コンピュータ実行ステップ、論理ブロック、プロセス等は、本明細書中で、且つ、一般的に、所望の結果を導くステップ又は命令の一貫した系列であると考えられている。ステップは物理量の物理的操作を必要とするステップである。
[0025]通常、必須ではないが、これらの量は、コンピュータシステム内で蓄積、転送、合成、比較、及び、その他の操作の対象となり得る電気的又は磁気的信号の形をとる。主に一般的な用法の理由で、時にはこれらの信号をビット、値、要素、シンボル、文字、項、数等として参照するのが好都合であることがわかっている。
[0026]しかしながら、これらの用語及び類似した用語の全ては、適切な物理量と関連付けられ、これらの量に付けられた便利なラベルに過ぎないことに注意すべきである。以下の説明から明らかであるように、特に断らない限り、本発明を通じて、「処理」、「作成」、「転送」、「実行」、「決定」、「指示」、「発行」、「中止」、「クリア」、「アクセス」、「集計」、「取得」、「選択」、「計算」、「測定」、「表示」、「アクセス」、「許可」、又は、「グループ分け」等のような用語を利用する説明は、コンピュータシステムのレジスタ及びメモリ内で物理(電子)量として表現されたデータを操作し、同様にコンピュータシステムメモリ又はレジスタ、若しくは、その他のそのような情報蓄積、伝送、又は、表示装置内で物理量として表現されたその他のデータへ変形するコンピュータシステム又は類似した電子コンピューティング装置の動作及びプロセスを指すことを理解されたい。
(グラフィックスパイプラインサブユニットをデバッグする方法及びシステム)
[0027]GPUパイプラインは、通常、ホストコンピュータプロセッサ上で動作するドライバプログラムによって指示されたときに、グラフィカルオペレーション(例えば、描画呼び出し)を実行する。フレームは、複数の描画呼び出しを含む。GPUパイプラインのサブユニット用の種々の性能パラメータ(例えば、ボトルネック及び利用率情報)が計算される。これらの性能パラメータ及びその他のパラメータの計算は、2006年8月1日にAguavivaらによって出願された出願であって、“A Method And System For Calculating Performance Parameters For A Processor”と題しており、代理人書類番号NVID−P002635が付与されており、その全体を本明細書に援用する米国特許出願第_号に記載されている。描画呼び出しは、ユーザ指定共通状態属性に応じて描画呼び出しグループに自動的に形成される。共通状態属性に基づく描画呼び出しのグループ分けは、2006年8月1日にAguavivaらによって出願された出願であって、“Method And User Interface For Enhanced Graphical Operation Orgaization”と題しており、代理人書類番号NVID−P002601が付与されており、その全体を参照することによって本明細書に援用する米国特許出願第_号に記載されている。
[0028]ここで図1を参照する。図1は、本発明の一実施形態に従って、選択された描画呼び出しグループから選択された描画呼び出しを実行する選択されたサブユニットのための状態情報を表示する例示的なコンピュータ制御型ユーザインターフェイス100を示している。このユーザインターフェイスは、選択可能な描画呼び出しグループにアクセスし、ドロップダウンメニュー105に当該グループを表示する。各描画呼び出しグループは、2006年8月1日にAguavivaらによって出願された出願であって、“Method And User Interface For Enhanced Graphical Operation Organization”と題する米国特許出願第_号に記載されているような共通状態属性を有する。ドロップダウンメニュー105は、描画呼び出しグループ中の描画呼び出しの個数、グループの総実行時間、及び、処理されるピクセル数を表示する。グループの実行時間は、描画呼び出しグループを実行するためにGPUパイプラインによって必要とされる時間である。本実施例では、選択された描画呼び出しグループは32個の描画呼び出しを含み、GPUパイプラインによって3.056msで実行される。さらに、GPUパイプラインは、選択された描画呼び出しグループを完全に実行した後、906240ピクセルを書き込んでいるであろう。ドロップダウンメニューの使用は例であり、限定するものではないことを理解されたい。例えば、その他の実施形態は、選択可能な情報を表示するためにポップアップウィンドウを使用することがある。或いは、情報は、その他の選択可能なフォーマットで、表形式で、又は、リンクを用いて表示されてもよい。
[0029]ドロップダウンメニュー110は、選択された描画呼び出しグループ中の全ての描画呼び出しを表示する。ドロップダウンメニュー110は、描画呼び出しの実行時間と、GPUパイプラインによって処理されるピクセル数とを更に表示する。本実施例では、描画呼び出しは、GPUパイプラインによって0.458msで実行される。さらに、GPUパイプラインは、選択された描画呼び出しを完全に実行した後に136473個のピクセルを書き込んでいる。ドロップダウンメニューの使用は、例であり、限定するものではないことを理解されたい。例えば、その他の実施形態は、選択可能な情報を表示するためにポップアップウィンドウを使用することがある。或いは、情報は、その他の選択可能なフォーマットで、表形式で、又は、リンクを用いて表示されてもよい。
[0030]更に図1を参照する。ユーザインターフェイス100は、GPUパイプライン内のパイプラインサブユニットを選択するための複数の選択可能な項目を有する。本実施形態では、選択可能なサブユニットは、頂点アセンブリ115、頂点シェーダ120、ピクセルシェーダ125、及び、ラスターオペレーション130である。その他の実施形態は、パイプラインアーキテクチャに応じて、より少数の、より多数の、又は、異なるサブユニットを有していてもよい。選択可能なツールとしてのタブの使用は、例であり、限定するものではないことを理解されたい。例えば、その他の実施形態は選択可能な情報を表示するためにポップアップウィンドウを使用することがある。或いは、情報は、その他の選択可能なフォーマットで、表形式で、又は、リンクを用いて表示されてもよい。
[0031]描画呼び出しグループ、当該グループ中の描画呼び出し、及び、サブユニットのユーザ選択に応答して、この実施形態は、次に、それらに関する性能情報を表示する。性能情報は、135、140及び145に示すように棒グラフフォーマットで表示される。棒グラフ135は、GPUサブユニットがフレームを実行するために要する時間を表示する。本実施例では、GPUサブユニットは9.651msでフレームを実行する。棒グラフ140は、選択された描画呼び出しグループを実行するためにGPUサブユニットによって必要とされる時間を表示する。棒グラフ145は、選択された描画呼び出しを実行するために選択されたサブユニットによって必要とされる時間を表示する。したがって、図に示されている棒グラフは、フレームが変化したとき、選択される描画呼び出しグループが変化したとき、選択される描画呼び出しが変化したとき、又は、選択されるサブユニットが変化したときに、変化する。棒グラフの使用は、例であり、限定するものではないことを理解されたい。したがって、その他の実施形態は、別の方法を採用して性能情報を表示することができ、より多くの情報又はより少ない情報を表示する可能性がある。説明した性能情報は、例であり、限定するものではないことを理解されたい。したがって、その他の性能情報(例えば、利用率及びボトルネック)が表示されてもよい。
[0032]描画呼び出しグループ、描画呼び出し及びサブユニットのユーザ選択に応答して、選択されたサブユニットに対応する選択された描画呼び出しのための状態情報が、本発明の実施形態によれば、ウィンドウ150に表示される。本実施例では、0.458msで実行される32個の描画呼び出しを伴う描画呼び出しグループと、頂点アセンブリ115サブユニットが選択されている。状態情報は、描画呼び出しを処理するために、例えば、プリミティブ155を描画するために、セットアップ、コンフィギュレーション、及びプログラミングのためのパイプラインユニットに関係がある選択可能なパラメータを含む。プリミティブを描画するための状態情報は、プリミティブ(例えば、三角形)を描画するために必要とされる設定、及び値である。本実施例では、画成されたプリミティブタイプは三角形である。使用される頂点の個数、又は、プリミティブカウントが、表示されてもよい。例えば、頂点の個数は28385個であり、プリミティブカウントは4864である。
[0033]状態情報は、インデックスバッファ160の記述を含み得る。インデックスバッファは、メモリバッファのタイプ及びフォーマットを規定することができる。さらに、インデックスバッファは、メモリプールのロケーションを規定することができる。
[0034]状態情報は、頂点バッファ宣言165を更に含み得る。頂点バッファ宣言165は、幾つか挙げるとするならば、頂点サイズ、個々の頂点の位置、法線及び接線が頂点バッファ内で位置しているオフセット又はストリームを宣言する。本実施例では、頂点サイズは32である。ストリーム頂点バッファ記述170の状態情報は、頂点バッファ記述の状態情報と類似している。この状態情報は、頂点バッファ境界ボックス175も含み得る。頂点バッファ境界ボックス175は、オブジェクト空間内の形状(geometry)の範囲を定義することができる。
[0035]状態情報は、ソフトウェア開発者によって効率の悪さ等を検査される。通常、ソフトウェア開発者は、状態解析において実行時間が長い描画呼び出しを選択し、描画呼び出しセットアップパラメータを修正し、最適化された場合に、同じ動作パラメータを共有するその他の描画呼び出しは、フレームレート性能に著しい影響を与える可能性がある。このウィンドウ150内の状態情報は、ユーザによって編集される。
[0036]選択されたサブユニットのための選択された描画呼び出しによるグラフィカルプリミティブは、ウィンドウ150内の状態情報に基づいてウィンドウ180内にレンダリングされてもよい。このレンダリングは、ソフトウェア開発者が原モデルデータ中の潜在的なエラーを見抜くことを可能にするワイヤフレームレンダリングであってもよく、又は、レンダリング不規則性を検査するために完全な陰影付きのレンダリングであってもよい。本実施形態では、ユーザは、ドロップダウンメニュー110を使用することにより、選択された描画呼び出しグループ中のその他の描画呼び出しへスクロールすることができる。或いは、ユーザは、逆順に進むためステップ後退ボタン185を使用することにより、又は、正順にスクロールするためステップ前進ボタン190を使用することにより、描画呼び出しをスクロールすることができる。或いは、ユーザはスライダ195を使用して、描画呼び出しをスクロールしてもよい。したがって、デバッガを使用して、同時に1回の描画呼び出しを使って、シーンを進めることができる。よって、描画呼び出し毎に、ユーザは、使用された形状、テクスチャ、シェーダ、及び、ラスターオペレーションの設定を確認することができる。描画呼び出しをスクロールすることで、棒グラフ145内の性能情報が更新されることを理解されたい。また、描画呼び出しをスクロールすることで、ウィンドウ150内の状態情報が更新されることを理解されたい。したがって、描画呼び出しをスクロールすることで、実行順にウィンドウ180内のグラフィカルプリミティブが更新され、それよって、ユーザは問題のある描画呼び出し又は描画呼び出しグループの理由を知ることが可能になる。
[0037]さらに図1を参照する。ウィンドウ180に描かれたレンダリングは、ドロップダウンメニュー196によって修正されることがある。メニュー196のメニュー項目の選択に応答して、選択されたメニュー項目に対応するレンダリング情報の異なる描画が表示される。例えば、一つ以上の特定されたグラフィカルオペレーションに対応するフレームバッファ内のデータが、ウィンドウ180内に表示される。或いは、一つ以上の特定されたグラフィカルオペレーションに対応するレンダリング情報が表示され、当該レンダリング情報が、ワイヤフレームビュー中の一つ以上のレンダリングされたオブジェクトを含んでいてもよい。そして、他の実施形態では、メニュー196からの他の選択が、一つ以上の特定されたグラフィカルオペレーションに対応するレンダリングされたオブジェクトの他の特性(例えば、奥行きバッファ情報、アルファチャンネルオーバーレイ等)の表示を可能にしてもよい。
[0038]エクスポートボタン197は、代替的な形式で見るための実行、状態情報、及び、性能情報をエクスポートする能力を提供する。エクスポートされたデータは、テキスト及び/又はグラフィカル画像を形成してもよい。したがって、別のアプリケーション及び/又はユーザインターフェイスを使用して、エクスポートされたデータにアクセスし、当該エクスポートされたデータを提示してもよい。
[0039]「シンプル」ボタン198は、グラフィックスプロセッシングパイプラインの種々のパイプラインユニットによるデータストリームの処理に関して、より少ない情報の提示を可能とする(例えば、グラフィカルインターフェイスオーバーレイの別個のポップアップウィンドウの除去)。この情報を使用して、データストリームの処理を簡略化することができる。したがって、ユーザは、データストリームの簡略化された処理を使用して、問題のあるサブユニット及び問題のある描画呼び出しグループを突き止めることができる。このようにして、デバッグ用ユーザインターフェイスを使用して、問題のある描画呼び出し、問題のある描画呼び出しグループ、又は、問題のあるサブユニットを修復するために必要な修正動作を行うことができる。その結果、GPUパイプラインの性能及びフレームレートが改善される。
[0040]一実施形態では、ユーザインターフェイスはボタン199を提供し、ボタン199の選択で、ドロップダウンメニュー105及び110、並びに、棒グラフ135、140及び145を、ウィンドウ150及び180と選択可能なサブユニット115、120、125及び130と共に、隠すようにする。したがって、ボタン199の選択によって、実行される最後の描画呼び出しまでフレームに対して描画される描画呼び出しが表示される。グラフィカルインターフェイスエレメントは、下にあるレンダリング中の関心領域を覆い隠し、よって、ソフトウェア開発者に混乱を引き起こすことがある。ソフトウェア開発者は、「シンプル」ボタン198を選択して、グラフィカルインターフェイスを除去し、状況の認識を取り戻すことが可能となる。その後に、ソフトウェア技術者は、グラフィカルインターフェイスを再び有効にし、最適化動作を継続することができる。その他の実施形態は、上述のグラフィカルユーザインターフェイスの一部を隠してもよい。
[0041]本発明の一実施形態では、ウィンドウ150中の状態情報は、例えば、ワードプロセッサ機能として、ユーザによって編集され得る。一実施形態では、状態情報の編集で、基礎となるアプリケーションが変更されることを理解されたい。したがって、状態情報は、問題のある描画呼び出し及び/又は問題のある描画呼び出しグループに対する異なるサブユニットでの正確な状態属性値に関して、透明性をユーザに提供する。さらに、相当な実行時間を有する描画呼び出しグループを選択することにより、ユーザは、長期間に亘る描画呼び出しに取り組み、最適化することが可能である。よって、僅かな変更によって、著しいフレーム改善が実現される。
[0042]一実施形態では、ウィンドウ150の状態情報は、描画呼び出しグループに亘って共通属性を有する状態情報が一つにグループ分けされ、残りの状態情報が一つにグループ分けされるように、グループ分けされてもよい。したがって、共通属性を有する状態情報の編集は、この共通属性を伴う全ての描画呼び出しに適用され得る。その結果として、この状態情報の編集は、選択された描画呼び出しグループと、このグループ中の描画呼び出しの全部に影響を与える。或いは、ユーザは共通属性を用いることなくグループを編集してもよい。したがって、固有の状態情報の編集が、この状態情報を含む描画呼び出しに影響を与える。状態情報を上記のグループにグループ分けすることは、一実施形態では、状態情報をカラーコーディングすることによって行われることを理解されたい。或いは、ポップアップウィンドウは、これらの属性が共有されている場合に、ユーザが選択された描画呼び出しだけに変更を加えることを望むか、又は選択された描画呼び出しグループに変更を加えることを望むかをユーザに問い合わせることができる。その他の実施形態は、状態情報を一つにグループ分けするためにその他の方法を利用してもよい。
[0043]ここで図2を参照する。図2は、本発明の一実施形態に従って、グループの一覧から描画呼び出しグループを選択するための例示的なユーザインターフェイスを示している。上述のように、各描画呼び出しグループは、共通状態属性の集合によって定義されている。本実施例では、ドロップダウンメニュー105は、5個の描画呼び出しグループを含んでいる。一実施形態では、描画呼び出しグループは、それぞれの実行時間の順番にソートされるか、又は、ランク付けされる。例えば、描画呼び出しグループは、これらの実行時間の昇順にソートされる。したがって、相当に長い実行時間を伴う描画呼び出しグループが選択される。これは、実行時間が長い描画呼び出しグループの最適化は実行時間が短い描画呼び出しグループの最適化よりGPUパイプラインの効率を効果的に改善するからである。本実施形態では、ウィンドウ150中の状態情報の表示は、ドロップダウンメニュー110から描画呼び出しを選択することにより駆動されることを理解されたい。したがって、本実施形態では、描画呼び出しグループの選択は、ウィンドウ150中の状態情報の値を変化させない。
[0044]次に、図3を参照する。図3は、本発明の一実施形態に係り、選択されたグループの描画呼び出しを選択するための例示的なユーザインターフェイスを示している。上述のように、選択された描画呼び出しグループは、このグループ内に32個の描画呼び出しを含んでいる。したがって、ドロップダウンメニュー110を使用して、ユーザは、種々の選択可能な描画呼び出しをスクロールすることができる。一実施形態では、描画呼び出しは、それぞれの実行時間の順番にソートされる。例えば、描画呼び出しはこれらの実行時間の降順にソートされてもよい。したがって、実行時間が最も長い描画呼び出しは、GPUパイプラインによって実行される最もコストの高い描画呼び出しである。よって、相当に長い描画呼び出しの最適化は、GPUパイプラインの性能及び実行時間を効果的に改善する。描画呼び出しの選択は、これに関連した状態情報をウィンドウ150内に表示させる。
[0045]ここで図4を参照する。図4は、本発明の一実施形態に係り、選択された描画呼び出しを実行する選択されたサブユニットに対する状態情報を表示する例示的なユーザインターフェイスを示している。図4は、同一の選択された描画呼び出しグループに対して表示されている状態情報を示しており、選択された描画呼び出しは同一であるが、サブユニットが異なっている。本実施例では、選択されたサブユニットは、頂点シェーダ120である。一実施形態では、頂点シェーダ120の選択によって、頂点シェーダウィンドウ410及び頂点シェーダ定数ウィンドウ420が表示される。よって、頂点シェーダ120によって使用される定数及びテクスチャが検査のために表示される。頂点シェーダウィンドウ410は、各頂点で実行されている頂点シェーダアセンブリ言語を表示する。頂点シェーダ定数ウィンドウ420は、定数を表示する。定数は、幾つか挙げるとするならば、変換行列と、平滑化パラメータと、スキニングパラメータと、照明及び変位定数とを提供する。一般に、頂点シェーダ定数ウィンドウ420は、形状を修正する情報を提供する。頂点シェーダサブユニット120の選択によって、テクスチャウィンドウ430が更に提供される。テクスチャウィンドウ430は、テクスチャの値に基づく頂点の移動を可能にする。RGBタブ440は、ユーザが異なるチャンネルを表示することを可能にし、ユーザがテクスチャ内の種々のカラーチャンネル全体で符号化された異なる情報を見ることを可能にする。例えば、本実施形態では、赤、緑、及び青の3チャンネルが提供される。
[0046]上述のように、状態情報又はテクスチャデータは編集され得る。したがって、頂点シェーダウィンドウ410内に表示された状態情報が、編集される。本実施形態は、拡大機能を提供して、ユーザがテクスチャを拡大することができるようにすることを理解されたい。
[0047]ここで図5を参照する。図5は、本発明の一実施形態に係り、選択された描画呼び出しを実行する選択されたサブユニットの状態情報を表示するための例示的なユーザインターフェイスを示している。図5は、同一の選択された描画呼び出しグループに対して表示されている状態情報を示しており、選択された描画呼び出しは同一であるが、サブユニットが異なっている。本実施例では、選択されたサブユニットはピクセルシェーダ125である。一実施形態では、ピクセルシェーダ125の選択によって、固定機能セットアップウィンドウ510が表示される。ピクセルシェーダ125のプログラムが選択される場合、ピクセルシェーダ125のプログラムによって使用される定数及びテクスチャが検査のために表示される。固定機能セットアップウィンドウ510は、制限付きのプログラマビリティを有する所定の機能を含んでいる。したがって、所定の機能のためのパラメータ及び所定の機能の組み合わせを、他の機能を作成するために使用することができる。したがって、状態情報を、所定の機能に基づく新しい機能を作成するために編集することができる。
[0048]或いは、ピクセルシェーダ125を選択して、プログラマブルウィンドウ(図示せず)を表示してもよい。プログラマブルウィンドウは編集することができる状態情報を含む。これらは、ピクセルシェーダサブユニット上で動くアセンブリ言語プログラミングと、例えば、照明位置、材料パラメータ等を指定するこのプログラムに関連した定数とを含む。ピクセルシェーダ125の選択によって、テクスチャウィンドウ520が表示される。テクスチャウィンドウ520は、図4のテクスチャウィンドウ430と同じように機能する。したがって、テクスチャウィンドウ520は、幾つか挙げるならば、ライトマップ、法線マップ、サイン値又はコサイン値のルックアップテーブル、及び、平方根マップを提供する。
[0049]ここで図6を参照する。図6は、本発明の一実施形態に係り、選択された描画呼び出しを実行する選択されたサブユニットのための状態情報を表示する例示的なユーザインターフェイスを示している。図6は、同一の選択された描画呼び出しグループに対して表示されている状態情報を示しており、選択された描画呼び出しは同一であるが、サブユニットが異なっている。本実施例では、選択されたサブユニットはラスターオペレーション130である。一実施形態では、ラスターオペレーション130の選択によって、レンダリング状態ウィンドウ610が表示される。レンダリング状態ウィンドウ610は、複数の設定のためのツリー構造を含んでおり、当該複数の設定は、大量のデータの管理に役立つよう折り畳み可能なツリーで提供されている。ラスターオペレーション130内の種々のレンダリング状態を変更することができる。例えば、アルファブレンディングが無効にされてもよい。レンダリング状態ウィンドウ610はレンダリングセットアップに影響を与える。
[0050]ラスターオペレーション130の選択によって、レンダリングターゲットウィンドウ620内にレンダリングターゲットが表示される。レンダリングターゲットウィンドウ620は、幾つか挙げるならば、メモリプールロケション及びビットデプスのような状態情報を表示する。一般に、レンダリングターゲットウィンドウ620は、レンダリングオペレーションの結果が書き込まれるロケーションを表示する。したがって、状態情報の編集は、メモリアクセスのような種々のオペレーションに影響を与える。
[0051]ここで図7を参照する。図7は、本発明の一実施形態に係り、選択されたサブユニット上で実行される選択された描画呼び出しに対応する状態情報を表示する例示的なユーザインターフェイスを示している。本実施例では、67個のうちの番号30の描画呼び出しのための状態情報がウィンドウ150に表示されている。グラフィカルプリミティブ180は、GPUパイプラインによって描画されている容器を表現している。上述のように、状態情報を編集し、選択された描画呼び出し及び/又は選択された描画呼び出しグループの性能及び実行に影響を与えることができる。
[0052]ここで図8を参照する。図8は、本発明の一実施形態に係り、選択されたサブユニット上で実行される選択された描画呼び出しに対応する状態情報を表示する例示的なユーザインターフェイスを示している。本実施例では、67個のうちの番号51の描画呼び出しのための状態情報がウィンドウ150に表示されている。グラフィカルプリミティブ180は、GPUパイプラインによって描画された頭蓋を表現している。上述のように、状態情報を編集して、選択された描画呼び出し及び/又は選択された描画呼び出しグループの性能及び実行に影響を与えることができる。したがって、ユーザは、描画されるシーンに新しいグラフィカルプリミティブとして実行され追加される順に、各描画呼び出しを検査し、状態情報を検査するために、種々の描画呼び出しをスクロールしてもよい。
[0053]ここで図9を参照する。図9は、本発明の一実施形態に従って、グラフィックスパイプラインサブユニット上で動作可能であるアプリケーションをデバッグするコンピュータ実施プロセスのフローチャート900を示している。グラフィックスパイプラインサブユニット上で動作可能なアプリケーションをデバッグする方法は、ステップ905から始まる。
[0054]ステップ910では、複数の描画呼び出しグループがメモリからアクセスされる。上述し、参照することによって援用したように、複数の描画呼び出しグループは、所定の状態をもつ共通状態属性のユーザ選択に応答して、編成される。したがって、複数の描画呼び出しを有する各描画呼び出しグループは、所定の共通状態属性を共有する。
[0055]ステップ915では、アクセスされた複数の描画呼び出しグループを表す一覧表が第1のウィンドウに表示される。例えば、複数の描画呼び出しグループが、ドロップダウンメニューを使用して表示される。情報を表示するために他の方法を利用してもよいことを理解されたい。例えば、ポップアップウィンドウが使用されてもよい。この表示は、更に、ユーザが一覧表の中の描画呼び出しグループを選択できるようにする。一実施形態では、描画呼び出しグループは、描画呼び出しグループの実行時間によって一覧表内で順序付けられている。描画呼び出しグループの実行時間は、描画呼び出しグループがGPUパイプラインによって実行される所要時間である。一実施形態では、表示される複数の描画呼び出しグループは、各グループ内の描画呼び出しの個数、グループの実行時間、及び、レンダリングされるピクセルの個数のような追加情報も表示する。
[0056]ステップ920では、描画呼び出しグループのユーザ選択に応答して、選択された描画呼び出しグループに関連した複数の描画呼び出しが第1のウィンドウに表示されるか、又は、代替的に別個のウィンドウに表示される。一実施形態では、複数の描画呼び出しは、ドロップダウンメニューを使用して一覧表として表示される。情報を表示するためにその他の方法を使用してもよいことを理解されたい。例えば、ポップアップウィンドウが使用されてもよい。この表示は、更に、ユーザが描画呼び出しを選択することを可能にする。一実施形態では、描画呼び出しは、選択されたサブユニットに関する描画呼び出しの実行時間によって一覧表内で順序付けられている。
[0057]ステップ925では、複数のグラフィックスパイプラインサブユニットが、第1のウィンドウ、又は、代替的に別個のウィンドウに表示される。さらに、複数のグラフィックスパイプラインサブユニットは、ユーザ選択可能である。したがって、ユーザは、選択されたサブユニットの選択された描画呼び出しを検査できるように、サブユニットを選択することができる。
[0058]ステップ930では、描画呼び出しグループ、描画呼び出し、及び、サブユニットのユーザ選択に応答して、複数の関連した状態情報が第2のウィンドウに表示される。しかしながら、状態情報は第1のウィンドウ又は別個のウィンドウに表示されてもよいことを理解されたい。ステップ935では、グラフィカルプリミティブが、選択された描画呼び出しの実行の結果、選択されたパイプラインサブユニットによってレンダリングされる。描画呼び出しの変更、又は、種々の描画呼び出しのスクローリングは、状態情報の更新に加えて、グラフィカルプリミティブを更新する。したがって、ユーザは、各描画呼び出しの実行、その状態情報、及び、その対応するグラフィカルプリミティブを、一時に1ステップずつ検査することができる。
[0059]ステップ940では、選択されたグラフィックスパイプラインサブユニットに関して選択された描画呼び出し及び描画呼び出しグループの性能データが表示される。一実施形態では、性能データは、GPUパイプラインによるフレーム実行時間、GPUパイプラインによる選択された描画呼び出しグループの実行時間、及び、選択されたサブユニットによる選択された描画呼び出しの実行時間である。その他の実施形態は、サブユニット毎に利用率及びボトルネック情報を提供してもよい。
[0060]ステップ945では、所定の状態の共通状態属性を共有する複数の状態情報の一部が一緒に描かれるように、複数の状態情報がグループ分けされる。一実施形態では、グループ分けは、共通状態属性を伴う状態情報を同一のウィンドウにグループ分けすることにより行われる。別の実施形態では、グループ分けは、グループをカラーコーディングすることによって行われる。状態情報をグループ分けするその他の方法を使用してもよいことを理解されたい。
[0061]ステップ950では、ユーザが、複数の状態情報を編集する。一実施形態では、状態情報の編集によって、アプリケーションが変更される。ステップ955では、複数の状態情報の編集が、ユーザ選択に応答して、選択された描画呼び出しに適用されるか、又は、代替的に、選択された描画呼び出しグループに適用される。ステップ960では、グラフィックスパイプラインサブユニット上で動作可能なアプリケーションをデバッグするプロセスが終了する。
[0062]図10は、本発明の実施形態が実施され得る汎用コンピュータシステム1000を示すブロック図である。コンピュータシステム1000は、図9に示すようなグラフィックスパイプラインサブユニットをデバッグする方法を実施することができ、情報を通信するバス1002又はその他の通信メカニズムと、バス1002と接続されており情報を処理するプロセッサ1004と、を備えている。コンピュータシステム1000は、メインメモリ1006を更に備えている。このメインメモリ1006は、ランダムアクセスメモリ(RAM)又はその他のダイナミック記憶装置のようなものであって、バス1002に接続されており、情報及びプロセッサ1004によって実行される命令を記憶する。メインメモリ1006は、プロセッサ1004によって実行される命令の実行中に、一時変数又はその他の中間情報を記憶するためにも使用され得る。コンピュータシステム1000は、バス1002に接続され、静的情報及びプロセッサ1004のための命令を記憶するリードオンリメモリ(ROM)1008又はその他のスタティック記憶装置を更に備えている。磁気ディスク又は光ディスクのような不揮発性記憶装置1010が、情報及び命令を記憶するために設けられてバス1002に接続されており、永続的な内部キューを記憶することができる。
[0063]コンピュータシステム1000は、情報をコンピュータユーザへ表示する陰極線管(CRT)のようなオプショナルディスプレイ1012にバス1002を介して接続されている。英数字及びその他のキーを含むオプショナル入力装置1014が、バス1002に接続されており、情報及びコマンド選択をプロセッサ1004へ伝送する。別のタイプのユーザ入力装置は、カーソル制御機器1016であり、当該機器は、マウス、トラックボール、カーソル方向キーのようなものであり、方向情報及びコマンド選択をプロセッサ1004へ伝送し、ディスプレイ1012上のカーソル移動を制御する。
[0064]本明細書中で使用する用語「コンピュータ読み取り可能な媒体」は、命令を実行用のプロセッサ1004へ供給することに関与する媒体を意味する。このような媒体は、不揮発性媒体、揮発性媒体、及び、伝送媒体のような多数の形態をとることができるが、これらに限定されるものではない。不揮発性媒体には、例えば、記憶装置1010のような光ディスク又は磁気ディスクがある。揮発性媒体には、メインメモリ1006のようなダイナミックメモリがある。伝送媒体には、バス1002を構成するワイヤをはじめとして、同軸ケーブル、銅線、及び、光ファイバがある。伝送媒体は、電波及び赤外線データ通信の間に生成されるような音波又は光波の形態をとることができる。
[0065]一般的な形のコンピュータ読み取り可能な媒体には、例えば、フロッピーディスク、フレキシブルディスク、ハードディスク、磁気テープ又はその他の磁気媒体、CD−ROM、その他の光学媒体、パンチカード、紙テープ、孔のパターンを伴うその他の物理的な媒体、RAM、PROM、及び、EPROM、フラッシュEPROM、その他のメモリチップ若しくはカートリッジ、後述されるような搬送波、若しくは、コンピュータが読み取り可能なその他の媒体がある。
[0066]コンピュータシステム1000は、(複数の)ネットワーク、ネットワークリンク1020、及び、通信インターフェイス1018を介してメッセージを送受信する。インターネットの実施例では、サーバ1030は、インターネット1028、ISP1026、ローカルネットワーク1022、及び、通信インターフェイス1018を介して、アプリケーションプログラムのための要求されたコードを送信する。受信されたコードは、受信時に、及び/又は、記憶装置1010への記憶時に、プロセッサ1004によって実行され、又は、後に実行するために、その他の不揮発性記憶装置に記憶される。
[0067]以上の明細書中では、本発明の実施形態を、実施間で変化する多数の特定の細部を参照して説明した。よって、本発明が何であるか、及び、出願人によって何が意図されているかについての唯一かつ排他的な指針は、その後の補正を含む、本願に由来する請求項の組である。したがって、請求項に明示的に列挙されていない限定、要素、性質、特色、利点又は属性は、決してこのような請求項の範囲を限定することがない。明細書及び図面は、したがって、限定的な意味ではなく、むしろ例示的な意味で考慮されるべきである。
本発明の一実施形態に係るスクリーンショットであって、選択された描画呼び出しを実行する選択されたサブユニットの状態情報を表示するユーザインターフェイスの例示的なスクリーンショットを示す図である。 本発明の一実施形態に係るスクリーンショットであって、描画呼び出しを選択する例示的なユーザインターフェイスのスクリーンショットを示す図である。 本発明の一実施形態に係るスクリーンショットであって、描画呼び出しを選択する例示的なユーザインターフェイスのスクリーンショットを示す図である。 本発明の一実施形態に係るスクリーンショットであって、選択された描画呼び出しを実行する選択されたサブユニットの状態情報を表示する例示的なユーザインターフェイスのスクリーンショットを示す図である。 本発明の一実施形態に係るスクリーンショットであって、選択された描画呼び出しを実行する選択されたサブユニットの状態情報を表示する例示的なユーザインターフェイスのスクリーンショットを示す図である。 本発明の一実施形態に係るスクリーンショットであって、選択された描画呼び出しを実行する選択されたサブユニットの状態情報を表示する例示的なユーザインターフェイスのスクリーンショットを示す図である。 本発明の一実施形態に係るスクリーンショットであって、選択されたサブユニット上で実行される選択された描画呼び出しに対応する状態情報を表示する例示的なユーザインターフェイスのスクリーンショットを示す図である。 本発明の一実施形態に係るスクリーンショットであって、選択されたサブユニット上で実行される選択された描画呼び出しに対応する状態情報を表示する例示的なユーザインターフェイスのスクリーンショットを示す図である。 本発明の一実施形態に係るフローチャートであって、グラフィックスパイプラインサブユニット上で動作可能であるアプリケーションをデバッグするコンピュータ実施プロセスのフローチャートを示す図である。 本発明の実施形態のプラットフォームとしての機能を果たす汎用コンピュータシステムを示す図である。
符号の説明
100…ユーザインターフェイス、105…ドロップダウンメニュー、110…ドロップダウンメニュー、115…頂点アセンブリ、120…頂点シェーダ、125…ピクセルシェーダ、130…ラスターオペレーション。

Claims (11)

  1. グラフィックスパイプラインサブユニット上で動作可能なアプリケーションをデバッグするグラフィカルユーザインターフェイスであって、
    複数の描画呼び出しグループを表示し、該複数の描画呼び出しグループのユーザ選択を可能にするよう動作可能な第1のウィンドウであって、各描画呼び出しグループがそれぞれに複数の描画呼び出しを備え、各描画呼び出しグループ中の全ての描画呼び出しが所定の状態をもつ共通状態属性を共有する、該第1のウィンドウと、
    複数のグラフィックスパイプラインサブユニットの識別情報を表示し、該複数のグラフィックスパイプラインサブユニットの選択を可能にするよう動作可能な第2のウィンドウと、
    前記第1のウィンドウ及び前記第2のウィンドウでの選択に応答し、選択された描画呼び出しに関連する選択されたパイプラインサブユニットの複数の状態情報を表示する第3のウィンドウであって、該選択された描画呼び出しが選択された描画呼び出しのグループに関連する、第3のウィンドウと、
    を備えるグラフィカルユーザインターフェイス。
  2. 前記選択された描画呼び出しの実行の結果、前記選択されたパイプラインサブユニットによってレンダリングされるグラフィカルプリミティブを表示する第4のウィンドウを更に備える、請求項1に記載のグラフィカルユーザインターフェイス。
  3. グラフィカルパイプラインサブユニットについての選択された描画呼び出し及び選択された描画呼び出しグループの性能データを表示する第4のウィンドウを更に備え、
    前記性能データは、前記複数のグラフィックスパイプラインサブユニットが前記選択された描画呼び出しグループを実行する時間を示し、
    前記性能データが更に、前記選択されたグラフィックスパイプラインサブユニットが前記選択された描画呼び出しを実行する時間を示す、
    請求項1に記載のグラフィカルユーザインターフェイス。
  4. 前記複数の状態情報が前記第3のウィンドウ内でユーザ編集可能である、請求項1に記載のグラフィカルユーザインターフェイス。
  5. 前記複数の描画呼び出しグループが実行時間によってランク付けされている、請求項1に記載のグラフィカルユーザインターフェイス。
  6. 前記複数の描画呼び出しが実行時間によってランク付けされている、請求項1に記載のグラフィカルユーザインターフェイス。
  7. グラフィックスパイプラインサブユニット上で動作可能なアプリケーションをデバッグする方法であって、
    複数の描画呼び出しグループにアクセスするステップであって、各描画呼び出しグループがそれぞれに複数の描画呼び出しを備え、該複数の描画呼び出しが所定の状態をもつ共通状態属性を共有している、該ステップと、
    前記複数の描画呼び出しグループを第1のウィンドウに表示し、前記複数の描画呼び出しのユーザ選択を可能にするステップと、
    描画呼び出しグループのユーザ選択に応答して、前記選択された描画呼び出しグループに関連する複数の描画呼び出しを表示し、前記複数の描画呼び出しのユーザ選択を可能にするステップと、
    複数のグラフィックスパイプラインサブユニットの識別情報を第2のウィンドウに表示し、該複数のグラフィックスパイプラインサブユニットのユーザ選択を可能にするステップと、
    選択されたグラフィックスパイプラインサブユニットのユーザ選択に応答して、選択された描画呼び出しに関して選択されたグラフィックスパイプラインサブユニットの複数の状態情報を表示するステップと、
    前記選択されたグラフィックスパイプラインサブユニットに関して前記選択された描画呼び出し及び前記描画呼び出しグループに関する性能データを表示するステップであって、該性能データは、前記複数のグラフィックスパイプラインサブユニットが前記選択された描画呼び出しグループを実行する時間を示し、該性能データが更に、前記選択されたグラフィックスパイプラインサブユニットが前記選択された描画呼び出しを実行する時間を示す、該ステップと、
    を含む方法。
  8. 前記複数の状態情報のユーザ編集を可能にするステップを更に備える、請求項7に記載の方法。
  9. 前記複数の描画呼び出しグループが実行時間によってランク付けされる、請求項7に記載の方法。
  10. 前記複数の描画呼び出しが実行時間によってランク付けされる、請求項7に記載の方法。
  11. 前記複数の状態情報を表示するステップが、前記選択された描画呼び出しグループにおいて共通である前記複数の状態情報の一部が一緒に描かれるように、前記複数の状態情報をグループ分けすることを更に含む、請求項7に記載の方法。
JP2007201038A 2006-08-01 2007-08-01 グラフィックスパイプラインサブユニットのデバッグ方法及びシステム Expired - Fee Related JP5489395B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/498,203 US8607151B2 (en) 2006-08-01 2006-08-01 Method and system for debugging a graphics pipeline subunit
US11/498203 2006-08-01

Publications (2)

Publication Number Publication Date
JP2008123488A true JP2008123488A (ja) 2008-05-29
JP5489395B2 JP5489395B2 (ja) 2014-05-14

Family

ID=39030707

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007201038A Expired - Fee Related JP5489395B2 (ja) 2006-08-01 2007-08-01 グラフィックスパイプラインサブユニットのデバッグ方法及びシステム

Country Status (6)

Country Link
US (1) US8607151B2 (ja)
JP (1) JP5489395B2 (ja)
KR (1) KR100909153B1 (ja)
CN (1) CN101118643B (ja)
DE (1) DE102007036071A1 (ja)
TW (1) TWI378399B (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011008789A (ja) * 2009-06-26 2011-01-13 Intel Corp グラフィック分析技術
US8624907B2 (en) 2009-06-26 2014-01-07 Intel Corporation Graphics analysis techniques

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8593465B2 (en) * 2007-06-13 2013-11-26 Advanced Micro Devices, Inc. Handling of extra contexts for shader constants
US7992137B2 (en) * 2007-07-30 2011-08-02 Nvidia Corporation Client server system for analysis and performance tuning of remote graphics devices
US9035957B1 (en) * 2007-08-15 2015-05-19 Nvidia Corporation Pipeline debug statistics system and method
US20100332987A1 (en) * 2009-06-26 2010-12-30 Cormack Christopher J Graphics analysis techniques
US20110072414A1 (en) * 2009-09-20 2011-03-24 Richard Dee Gardner Method of using a diagram to create a program code
US8614716B2 (en) * 2010-10-01 2013-12-24 Apple Inc. Recording a command stream with a rich encoding format for capture and playback of graphics content
US8933948B2 (en) * 2010-10-01 2015-01-13 Apple Inc. Graphics system which utilizes fine grained analysis to determine performance issues
KR101773396B1 (ko) * 2011-02-09 2017-08-31 삼성전자주식회사 데이터를 압축 해제하는 그래픽 처리 장치 및 방법
US9519568B2 (en) 2012-12-31 2016-12-13 Nvidia Corporation System and method for debugging an executing general-purpose computing on graphics processing units (GPGPU) application
US9720842B2 (en) * 2013-02-20 2017-08-01 Nvidia Corporation Adaptive multilevel binning to improve hierarchical caching
US9471456B2 (en) 2013-05-15 2016-10-18 Nvidia Corporation Interleaved instruction debugger
US9645916B2 (en) 2014-05-30 2017-05-09 Apple Inc. Performance testing for blocks of code
US10204394B2 (en) 2017-04-10 2019-02-12 Intel Corporation Multi-frame renderer
CN107423019B (zh) * 2017-07-31 2020-11-10 山东超越数控电子股份有限公司 一种基于飞腾平台控制3d图形加速的实现方法
US20190369849A1 (en) * 2018-06-01 2019-12-05 Apple Inc. Visualizing Execution History With Shader Debuggers
US11087431B2 (en) * 2019-11-25 2021-08-10 Qualcomm Incorporated Methods and apparatus for reducing draw command information

Family Cites Families (84)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4905296A (en) * 1986-07-22 1990-02-27 Schlumberger Systems & Services, Inc. System for shape recognition
CA2077970C (en) * 1991-11-19 1999-02-23 Daniel P. Huttenlocher Optical word recognition by examination of word shape
US5966539A (en) * 1994-03-01 1999-10-12 Digital Equipment Corporation Link time optimization with translation to intermediate program and following optimization techniques including program analysis code motion live variable set generation order analysis, dead code elimination and load invariant analysis
US5524066A (en) * 1994-03-31 1996-06-04 Xerox Corporation Text recognition by predictive composed shapes
JPH08255155A (ja) * 1995-03-16 1996-10-01 Fuji Xerox Co Ltd 全文登録語検索装置および方法
US5643086A (en) * 1995-06-29 1997-07-01 Silicon Gaming, Inc. Electronic casino gaming apparatus with improved play capacity, authentication and security
NO302388B1 (no) * 1995-07-13 1998-02-23 Sigurd Sigbjoernsen Fremgangsmåte og anordning for å beskytte programvare mot bruk uten tillatelse
US6026362A (en) * 1995-09-11 2000-02-15 Compaq Computer Corporation Tool and method for diagnosing and correcting errors in a computer program
US6016474A (en) * 1995-09-11 2000-01-18 Compaq Computer Corporation Tool and method for diagnosing and correcting errors in a computer program
US5752062A (en) * 1995-10-02 1998-05-12 International Business Machines Corporation Method and system for performance monitoring through monitoring an order of processor events during execution in a processing system
US5815154A (en) * 1995-12-20 1998-09-29 Solidworks Corporation Graphical browser system for displaying and manipulating a computer model
US5987459A (en) * 1996-03-15 1999-11-16 Regents Of The University Of Minnesota Image and document management system for content-based retrieval
US5913205A (en) * 1996-03-29 1999-06-15 Virage, Inc. Query optimization for visual information retrieval system
US5978484A (en) * 1996-04-25 1999-11-02 Microsoft Corporation System and method for safety distributing executable objects
US5892904A (en) * 1996-12-06 1999-04-06 Microsoft Corporation Code certification for network transmission
US5757919A (en) * 1996-12-12 1998-05-26 Intel Corporation Cryptographically protected paging subsystem
US6330008B1 (en) * 1997-02-24 2001-12-11 Torrent Systems, Inc. Apparatuses and methods for monitoring performance of parallel computing
AU7957998A (en) * 1997-06-09 1999-01-25 Intertrust, Incorporated Obfuscation techniques for enhancing software security
US5920725A (en) * 1997-07-02 1999-07-06 Adaptivity Inc. Run-time object-synthesis and transparent client/server updating of distributed objects using a meta server of all object descriptors
US5970147A (en) * 1997-09-30 1999-10-19 Intel Corporation System and method for configuring and registering a cryptographic device
US6714909B1 (en) * 1998-08-13 2004-03-30 At&T Corp. System and method for automated multimedia content indexing and retrieval
US6771264B1 (en) * 1998-08-20 2004-08-03 Apple Computer, Inc. Method and apparatus for performing tangent space lighting and bump mapping in a deferred shading graphics processor
JP2002526841A (ja) * 1998-09-29 2002-08-20 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 区分符号化方法及び装置
US6389168B2 (en) * 1998-10-13 2002-05-14 Hewlett Packard Co Object-based parsing and indexing of compressed video streams
JP2000174948A (ja) * 1998-12-04 2000-06-23 Canon Inc 画像入出力装置、画像入出力方法および画像処理システム
TW410290B (en) * 1999-01-08 2000-11-01 Via Tech Inc Cross-banks and -pages access control device and method for memory
US6362825B1 (en) * 1999-01-19 2002-03-26 Hewlett-Packard Company Real-time combination of adjacent identical primitive data sets in a graphics call sequence
US6694311B1 (en) * 1999-01-25 2004-02-17 International Business Machines Corporation Method and apparatus for fast query approximation using adaptive query vector projection
US6157618A (en) * 1999-01-26 2000-12-05 Microsoft Corporation Distributed internet user experience monitoring system
US6378066B1 (en) * 1999-02-04 2002-04-23 Sun Microsystems, Inc. Method, apparatus, and article of manufacture for developing and executing data flow programs, and optimizing user input specifications
US7383205B1 (en) * 1999-03-27 2008-06-03 Microsoft Corporation Structure of a digital content package
US6684389B1 (en) * 1999-08-05 2004-01-27 Canon Kabushiki Kaisha Compiler that decrypts encrypted source code
GB2355899A (en) * 1999-10-29 2001-05-02 Oak Technology Inc Multistage digital processor with dedicated stage clock controllers
US6901582B1 (en) * 1999-11-24 2005-05-31 Quest Software, Inc. Monitoring system for monitoring the performance of an application
US20010034835A1 (en) * 2000-02-29 2001-10-25 Smith Robert E. Applied digital and physical signatures over telecommunications media
JP2001325103A (ja) * 2000-05-16 2001-11-22 Denso Corp シミュレータ作成方法、シミュレータ作成装置およびシミュレータの作成支援方法
US6760042B2 (en) * 2000-09-15 2004-07-06 International Business Machines Corporation System and method of processing MPEG streams for storyboard and rights metadata insertion
US6965994B1 (en) * 2001-01-30 2005-11-15 Microsoft Corporation Security mechanism for computer processing modules
US7016972B2 (en) * 2001-04-23 2006-03-21 International Business Machines Corporation Method and system for providing and viewing performance analysis of resource groups
US6943800B2 (en) * 2001-08-13 2005-09-13 Ati Technologies, Inc. Method and apparatus for updating state data
TW530498B (en) * 2001-08-14 2003-05-01 Nat Univ Chung Cheng Object segmentation method using MPEG-7
US20030043022A1 (en) * 2001-08-31 2003-03-06 Burgan John M. Messaging system providing message redundancy reduction
US7047519B2 (en) * 2001-09-26 2006-05-16 International Business Machines Corporation Dynamic setting of breakpoint count attributes
US7749076B2 (en) * 2002-09-13 2010-07-06 Bally Gaming, Inc. System and method for an alterable storage media in a gaming machine
US7398389B2 (en) * 2001-12-20 2008-07-08 Coretrace Corporation Kernel-based network security infrastructure
US7401116B1 (en) * 2002-03-29 2008-07-15 Silicon Graphics, Inc. System and method for allowing remote users to specify graphics application parameters for generation of interactive images
US6732060B1 (en) * 2002-05-06 2004-05-04 Adaptec, Inc. System and method for an interface invariant test case
US7436531B2 (en) * 2002-05-14 2008-10-14 Xerox Corporation Systems and methods for using multiple processors for imaging
JP2004046599A (ja) * 2002-07-12 2004-02-12 Nec Corp フォルトトレラントコンピュータ装置、その再同期化方法及び再同期化プログラム
US7260066B2 (en) * 2002-10-31 2007-08-21 Conexant Systems, Inc. Apparatus for link failure detection on high availability Ethernet backplane
US7237151B2 (en) * 2002-12-17 2007-06-26 Texas Instruments Incorporated Apparatus and method for trace stream identification of a processor reset
CA2418670A1 (en) * 2003-02-11 2004-08-11 Ibm Canada Limited - Ibm Canada Limitee Method and system for generating executable code for formatiing and printing complex data structures
US7565551B2 (en) * 2003-02-19 2009-07-21 Microsoft Corporation Enhancing software integrity through installation and verification
US7173635B2 (en) * 2003-03-25 2007-02-06 Nvidia Corporation Remote graphical user interface support using a graphics processing unit
US7148888B2 (en) * 2003-04-04 2006-12-12 Via Technologies, Inc. Head/data request in 3D graphics
KR100755683B1 (ko) * 2003-05-07 2007-09-05 삼성전자주식회사 컨텐츠 제공자 인증 및 컨텐츠 무결성 보장 방법
US7505953B2 (en) * 2003-07-11 2009-03-17 Computer Associates Think, Inc. Performance monitoring of method calls and database statements in an application server
US7277826B2 (en) * 2003-08-25 2007-10-02 International Business Machines Corporation Apparatus and method for detecting and forecasting resource bottlenecks
US7095416B1 (en) * 2003-09-22 2006-08-22 Microsoft Corporation Facilitating performance analysis for processing
US7831838B2 (en) * 2004-03-05 2010-11-09 Microsoft Corporation Portion-level in-memory module authentication
US20050222881A1 (en) * 2004-04-05 2005-10-06 Garry Booker Management work system and method
US7570267B2 (en) * 2004-05-03 2009-08-04 Microsoft Corporation Systems and methods for providing an enhanced graphics pipeline
US7730456B2 (en) * 2004-05-19 2010-06-01 Sony Computer Entertainment Inc. Methods and apparatus for handling processing errors in a multi-processing system
US7203922B2 (en) * 2004-06-01 2007-04-10 Agilent Technologies, Inc. Merging of infrastructure within a development environment
US7555499B2 (en) * 2004-08-17 2009-06-30 Oracle International Corporation Diagnosing database performance problems using a plurality of wait classes
US7802110B2 (en) * 2004-08-25 2010-09-21 Microsoft Corporation System and method for secure execution of program code
US7249331B2 (en) * 2004-10-07 2007-07-24 International Business Machines Corporation Architectural level throughput based power modeling methodology and apparatus for pervasively clock-gated processor cores
US8379553B2 (en) * 2004-11-22 2013-02-19 Qualcomm Incorporated Method and apparatus for mitigating the impact of receiving unsolicited IP packets at a wireless device
JP2006153628A (ja) * 2004-11-29 2006-06-15 Shimadzu Corp 分析データ管理装置及び分析データ管理プログラム
US7805765B2 (en) * 2004-12-28 2010-09-28 Lenovo (Singapore) Pte Ltd. Execution validation using header containing validation data
US7548244B2 (en) * 2005-01-12 2009-06-16 Sony Computer Entertainment Inc. Interactive debugging and monitoring of shader programs executing on a graphics processor
US7577848B2 (en) * 2005-01-18 2009-08-18 Microsoft Corporation Systems and methods for validating executable file integrity using partial image hashes
US7401242B2 (en) * 2005-09-27 2008-07-15 International Business Machines Corporation Dynamic power management in a processor design
US8817029B2 (en) * 2005-10-26 2014-08-26 Via Technologies, Inc. GPU pipeline synchronization and control system and method
US8452981B1 (en) * 2006-03-01 2013-05-28 Nvidia Corporation Method for author verification and software authorization
US7891012B1 (en) * 2006-03-01 2011-02-15 Nvidia Corporation Method and computer-usable medium for determining the authorization status of software
US7688809B2 (en) * 2006-05-03 2010-03-30 Cisco Technology, Inc. Media inactivity detection in VoIP networks
US20080007563A1 (en) * 2006-07-10 2008-01-10 Microsoft Corporation Pixel history for a graphics application
US7778800B2 (en) * 2006-08-01 2010-08-17 Nvidia Corporation Method and system for calculating performance parameters for a processor
US8436864B2 (en) * 2006-08-01 2013-05-07 Nvidia Corporation Method and user interface for enhanced graphical operation organization
US8436870B1 (en) * 2006-08-01 2013-05-07 Nvidia Corporation User interface and method for graphical processing analysis
KR100781705B1 (ko) * 2006-10-24 2007-12-03 삼성전자주식회사 이동통신 단말기에서 모드 제어 장치 및 방법
US7765500B2 (en) * 2007-11-08 2010-07-27 Nvidia Corporation Automated generation of theoretical performance analysis based upon workload and design configuration
US8448002B2 (en) * 2008-04-10 2013-05-21 Nvidia Corporation Clock-gated series-coupled data processing modules

Non-Patent Citations (13)

* Cited by examiner, † Cited by third party
Title
JPN6011009914; Jeff Kiel and Sim Dietrich: "nVIDIA Performance Tools" , 20060331, 全72頁, nVIDIA Corp. *
JPN6011009919; "GPU Performance Optimization with NVPerfHUD NVPerfHUD 4.0 A Heads-Up Display for Performance Analys , 20060702, 全53頁, nVIDIA Corp. *
JPN6011009921; "NVPerfHUD 4|Quick Reference Guide" , 20060702, 全2頁, nVIDIA Corp. *
JPN6011009922; "GDC 2006 Presentations" , 20060406, nVIDIA Corp. *
JPN6011009924; "Performance Tools" , 20060331, nVIDIA Corp. *
JPN6011009926; "色んなサイトをタイムトラベル・「Wayback Machine」が装いも新たにbeta版として新ドメインでスタート" , 20110129, Garbagenews.com *
JPN6011009928; "NVPerfHUD" , 20060702, nVIDIA Corp. *
JPN6011050287; "Internet Archive: Wayback Machine" , 20110915, [online]インターネット *
JPN6011050288; "Internet Archive: Wayback Machine" , 20110915, [online]インターネット *
JPN6011050289; "Internet Archive: Wayback Machine" , 20110915, [online]インターネット *
JPN6011050290; "NVPerfHUD" [online]インターネット, 20060702, nVIDIA Corp. *
JPN6013038181; NVPerfHUDがGPUの性能を最大限に引き出す NVPerfHUD 3.0 性能解析に役立つ警告表示 , 20060429, 1-58頁, nVIDIA Corp.
JPN6013038182; NVPerfHUD , 20060702, nVIDIA Corp.

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011008789A (ja) * 2009-06-26 2011-01-13 Intel Corp グラフィック分析技術
US8581916B2 (en) 2009-06-26 2013-11-12 Intel Corporation Graphics analysis techniques
US8624907B2 (en) 2009-06-26 2014-01-07 Intel Corporation Graphics analysis techniques

Also Published As

Publication number Publication date
TWI378399B (en) 2012-12-01
DE102007036071A1 (de) 2008-04-10
TW200820130A (en) 2008-05-01
CN101118643B (zh) 2012-05-23
US8607151B2 (en) 2013-12-10
US20080034311A1 (en) 2008-02-07
JP5489395B2 (ja) 2014-05-14
DE102007036071A8 (de) 2008-08-14
KR20080012235A (ko) 2008-02-11
KR100909153B1 (ko) 2009-07-23
CN101118643A (zh) 2008-02-06

Similar Documents

Publication Publication Date Title
JP5489395B2 (ja) グラフィックスパイプラインサブユニットのデバッグ方法及びシステム
US10115230B2 (en) Run-time optimized shader programs
US7095416B1 (en) Facilitating performance analysis for processing
JP6008515B2 (ja) グラフィックス処理
KR101286318B1 (ko) 렌더링된 그래픽 엘리먼트들을 위한 성능 메트릭들의 시각적 표현의 디스플레이
JP5123323B2 (ja) アプリケーションの変更前にコマンドの変更のパフォーマンスを解析するためのグラフィックコマンド管理ツールおよびその方法
CN1270278C (zh) 用于图形渲染的z-缓冲技术
JP5053857B2 (ja) 3次元グラフィックス処理装置および方法
CN108351764B (zh) 数据处理方法和系统
JP6108670B2 (ja) グラフィックス処理
US7533371B1 (en) User interface for facilitating performance analysis for processing
US20130239090A1 (en) Visual Representations of Code in Application Development Environments
CN106462375B (zh) 图形管线状态对象和模型
JP4125673B2 (ja) 二次元あるいは三次元の幾何学的実体に結合したデータのエクスポートシステム
US8436864B2 (en) Method and user interface for enhanced graphical operation organization
TWI499980B (zh) 使用虛擬任務之用於多核心處理器效能分析的關聯式模型化技術
US20110154294A1 (en) Relational Modeling for Performance Analysis of Multi-Core Processors
US20210294579A1 (en) Graphics pipeline optimizations
GB2440667A (en) A graphical user interface for debugging a graphics pipeline subunit
US11107264B2 (en) Graphics processing systems for determining blending operations
CN111831273B (zh) 基于着色器的数据处理方法、装置及电子设备
JP2022012393A (ja) ソフトウェア開発環境提供システム、ソフトウェア開発環境提供方法、及びソフトウェア開発環境提供プログラム
KR101239965B1 (ko) 렌더링 장치 및 방법
CN117011444B (zh) 一种gpu分块渲染的性能分析方法及系统
Ilett Your Very First Shader

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101012

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110112

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110301

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110601

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110606

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110628

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110701

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110801

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110804

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110927

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20131106

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20131111

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131112

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140225

R150 Certificate of patent or registration of utility model

Ref document number: 5489395

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees