【手続補正書】
【提出日】平成22年5月10日(2010.5.10)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
以下の方法を構成するコンピュータ実行可能命令を記憶するメモリーを含むコンピュータの処理装置によって実行される、グラフィックスパイプラインにおいて複数のシェーダ間の切り替え時に結合再構成を低減するために特定のスロットにリソースを結合するための方法であって、
各シェーダ間で特定のリソース／スロット割り振りに基づく依存関係を決定するステップと、
コモンリソース／スロット関連付けを前記依存関係に基づいて計算するステップであって、前記コモンリソース／スロット関連付けが、前記各シェーダ間の特定のスロットの１つに関連付けられるべき前記特定のリソースの１つを指定するものと、を含む方法。
【請求項２】
各シェーダに対する前記特定のリソース／スロット割り振りが、各リソースの特定のスロットにおいて、どのリソースが使用されるかを指定するものであること、
を特徴とする請求項１記載の方法。
【請求項３】
コモンリソース／スロット関連付けを計算するステップが、
シェーダ間の切り換え時、リソース再構成コストが低減されるように、前記各シェーダ間の前記特定のスロットの１つに関連付けられる前記特定のリソースの１つを指定するもの、を含むことを特徴とする請求項２記載の方法。
【請求項４】
前記コモンリソース／スロット関連付けに従って、各スロットに結合される前記リソースを前記各シェーダにおいて再構成するステップを含む請求項３記載の方法。
【請求項５】
コモンリソース／スロット関連付けを計算するステップが、
（ａ）第１のスロットに結合される前記リソースのうち特定の１つを決定するステップと、
（ｂ）第２のスロットに結合される前記残りのリソースのうち特定の１つを決定するステップと、
所定数の前記スロットがそれと関連付けられる前記リソースの１つを有するまで残りの各スロットに対し、（ｂ）を繰り返すステップと、を含むことを特徴とする請求項３記載の方法。
【請求項６】
第１のスロットに結合される第１のリソースを決定するステップが、
各シェーダによって利用されているリソース間の前記リソース依存関係に基づいて、前記第１のスロットに各リソースを結合するためのコストを計算するステップと、
最小コストを有する特定のリソースの１つを選択するステップと、
前記第１のリソースとして、選択されるリソースを指定するステップと、を含むことを特徴とする請求項５記載の方法。
【請求項７】
第２のスロットに結合される第２のリソースを決定するステップが、
前記第２のスロットに前記残りの各リソースを結合するためのコストを計算するステップと、
最小コストを有する前記残りのリソースを選択するステップと、
前記第２のリソースとして、選択される前記残りのリソースを指定するステップと、を含むことを特徴とする請求項６記載の方法。
【請求項８】
前記第１のスロットに各リソースを結合するためのコストを計算するステップが、
（ａ）前記特定のリソースの１つが、前記第１のスロットに結合される場合、各シェーダプログラムによって利用されているリソース間の前記リソース依存関係に基づいて、各シェーダをレンダリングするために要求されるステート変更の数を決定するステップと、
（ｂ）前記特定のリソースの１つが、前記第１のスロットに結合される場合、各シェーダプログラムによって利用されているリソース間の前記リソース依存関係に基づいて、要求される浪費スロットの数を決定するステップと、
（ｃ）前記ステート変更数及び前記浪費スロット数に基づいて、前記第１のスロットに前記特定のリソースの１つを結合することに関連する第１のコストを計算するステップと、
前記第１のスロットに所定数の前記リソースを結合するためのコストが計算されるまで、（ａ）から（ｃ）を繰り返すステップと、を含むことを特徴とする請求項６記載の方法。
【請求項９】
コモンリソース／スロット関連付けに基づいて前記特定のスロットに前記特定のリソースを結合するステップを含む請求項１記載の方法。
【請求項１０】
各シェーダが、重複する前記コモンリソース／スロット関連付けを有していて、各シェーダにおいて前記特定の同一リソースが、前記特定の同一スロットの１つに関連付けられることを特徴とする請求項１記載の方法。
【請求項１１】
前記リソースが、定数バッファを含むことを特徴とする請求項１記載の方法。
【請求項１２】
前記リソースが、定数バッファ、少なくとも１つのテクスチャ及びサンプラーを含むことを特徴とする請求項１記載の方法。
【請求項１３】
請求項１記載の方法を実行するための計算機実行可能命令を含む計算機可読記憶媒体。
【請求項１４】
前記メモリーが、前記方法を実行するための計算機実行可能モジュールを含むグラフィックスアプリケーションプログラミングインタフェースを含む請求項１記載の方法。
【請求項１５】
前記方法を実行するためにグラフィックスプロセッシングユニットに命令するためのアプリケーションプログラミングインタフェースを含む請求項１記載の方法。
【請求項１６】
以下の方法を構成するコンピュータ実行可能命令を記憶するメモリーを含むコンピュータの処理装置によって実行される、複数のリソースを含む依存ツリーを再構成する方法であって、各リソースが、前記依存ツリーの親シェーダオブジェクトのスロットに結合されることを特徴とするものが、
各シェーダ間で特定のリソース／スロット割り振りに基づく依存関係を決定するステップと、
前記依存ツリーの各依存関係を走査するステップと、
前記依存ツリーの複数の異なる各リソース構成に関連付けられるコストを計算するステップと、
異なるシェーダ間の切り換え時、デバイス再構成の必要数を与える前記依存ツリーの特定のリソース再構成を選択するステップと、を含むことを特徴とする方法。
【請求項１７】
前記依存ツリーの各リソース再構成が、一定のリソースが結合されている特定のスロットを変更することを特徴とする請求項１６記載の方法。
【請求項１８】
異なるシェーダ間の切り換えのために、再結合される必要があるスロット数を最小化する前記依存ツリーの特定のリソース再構成を選択するステップを含むことを特徴とする請求項１６記載の方法。
【請求項１９】
前記方法がオフラインコンテンツ生成のために実行され、前記依存ツリーの選択された特定のリソース再構成をストアするステップを含むことを特徴とする請求項１６記載の方法。
【請求項２０】
以下の方法を構成するコンピュータ実行可能命令を記憶するメモリーを含むコンピュータの処理装置によって実行される、グラフィックスパイプラインにおける異なるシェーダの特定のスロットにリソースを結合するための方法であって、
各シェーダ間で、どのリソースがどのスロットに結合されるかを決定するステップと、
異なるシェーダに対して同一リソースが同一スロットに関連付けられていることを示す、重複するリソース／スロット関連付けを決定するステップと、
複数のシェーダ間の切り替え時に、結合再構成に関連する必要コストを与える、各シェーダ間でのリソース／スロット関連付けを決定するために前記リソース／スロット関連付けを分析するステップと、
複数のシェーダ間の切り替え時に、前記必要なコストを達成するために、前記異なるシェーダの前記特定のスロットにリソースを結合するステップと、
を含む方法。