【手続補正書】
【提出日】平成28年9月30日(2016.9.30)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
グラフィックスをレンダリングする方法であって、
前記グラフィックスをレンダリングするためのドローコールを実行することと、
前記ドローコールを実行すると、頂点シェーディング操作を実行するようにグラフィックスプロセシングユニットのハードウェアシェーディングユニットを指定することと、
前記グラフィックスプロセシングユニットの前記ハードウェアシェーディングユニットを用いて、頂点シェーディングされた頂点を出力するために、複数の入力された頂点をシェーディングする頂点シェーディング操作を実行すること、ここにおいて、前記頂点シェーディング操作を実行することは、前記ハードウェアシェーディングユニットが、前記複数の入力された頂点のそれぞれの入力された頂点ごとに単一の頂点を出力することを備える、と、
前記グラフィックスプロセシングユニットの前記ハードウェアシェーディングユニットを用いて、前記頂点シェーディングされた頂点の１つまたは複数に基づいて１つまたは複数の新たな頂点を生成するために、ジオメトリシェーディング操作を実行することと
を備え、前記ジオメトリシェーディング操作は、前記１つまたは複数の新たな頂点を出力するために、前記１つまたは複数の頂点シェーディングされた頂点の少なくとも１つに対して行われる、方法。
【請求項２】
前記ジオメトリシェーディング操作を実行することは、
前記グラフィックスプロセシングユニットの前記ハードウェアシェーディングユニットを用いて、ジオメトリシェーダプログラムの第１のインスタンスを実行することと、
前記グラフィックスプロセシングユニットの前記ハードウェアシェーディングユニットを用いて、ジオメトリシェーダプログラムの第２のインスタンスを実行することと、
前記ハードウェアシェーディングユニットの前記インターフェースを堅持するために、前記ジオメトリシェーダプログラムの前記第１のインスタンスから単一のジオメトリシェーディングされた出力を出力することと、
前記ハードウェアシェーディングユニットの前記インターフェースを堅持するために、前記ジオメトリシェーダプログラムの前記第２のインスタンスから第２の単一のジオメトリシェーディングされた出力を出力することと
を備える、請求項１に記載の方法。
【請求項３】
前記ジオメトリシェーダプログラムの前記第１のインスタンスと、前記ジオメトリシェーダプログラムの前記第２のインスタンスとを、前記ハードウェアシェーディングユニットを用いて同時に実行することをさらに備える、
請求項２に記載の方法。
【請求項４】
前記ジオメトリシェーダプログラムの前記第１のインスタンスが、第１のジオメトリシェーダ出力識別子を割り当てられ、
前記ジオメトリシェーダプログラムの前記第２のインスタンスが、第２のジオメトリシェーダ出力識別子を割り当てられ、
前記単一のジオメトリシェーディングされた出力を出力することは、出力カウンタに対する前記第１のジオメトリシェーダ出力識別子の比較に基づいて、前記単一のジオメトリシェーディングされた出力を出力することを備え、
前記第２のジオメトリシェーディングされた出力を出力することは、前記出力カウンタに対する前記第２のジオメトリシェーダ出力識別子の比較に基づいて、前記第２の単一のジオメトリシェーディングされた出力を出力することを備える、
請求項２に記載の方法。
【請求項５】
前記ジオメトリシェーディング操作を実行する前に、前記ジオメトリシェーディング操作のために、プログラムカウンタと１つまたは複数のリソースポインタとを切り替えることをさらに備える、
請求項１に記載の方法。
【請求項６】
前記ジオメトリシェーディング操作を実行することが、前記グラフィックスプロセシングユニットの外部に位置するオフチップメモリから前記頂点シェーディングされた頂点の前記１つまたは複数を取り出すことを含まないように、前記１つまたは複数の頂点シェーディングされた頂点をローカルメモリに記憶することをさらに備える、
請求項１に記載の方法。
【請求項７】
前記ハードウェアシェーディングユニットを用いて、前記１つまたは複数の新たな頂点の前記少なくとも１つから追加の新たな頂点を生成するために、前記１つまたは複数の新たな頂点の少なくとも１つに対して別のジオメトリシェーディング操作を実行することをさらに備える、
請求項１に記載の方法。
【請求項８】
前記頂点シェーディング操作およびジオメトリシェーディング操作が順番に実行されるように、前記ジオメトリシェーディング操作と関連付けられる命令を前記頂点シェーディング操作と関連付けられる命令に付加することをさらに備える、
請求項１に記載の方法。
【請求項９】
ハードウェアシェーディングユニットおよび１つまたは複数のプロセッサを備える、グラフィックスをレンダリングするためのグラフィックスプロセシングユニットであって、前記１つまたは複数のプロセッサは、
前記グラフィックスをレンダリングするためのドローコールを実行することと、
前記ドローコールを実行すると、頂点シェーディング操作を実行するように前記ハードウェアシェーディングユニットを指定することと、
を行うように構成され、前記グラフィックスプロセシングユニットの前記ハードウェアシェーディングユニットは、頂点シェーディングされた頂点を出力するために、複数の入力された頂点をシェーディングする頂点シェーディング操作を実行するように構成され、ここにおいて、前記頂点シェーディング操作を実行することは、前記ハードウェアシェーディングユニットが、前記複数の入力された頂点のそれぞれの入力された頂点ごとに単一の頂点を出力することを備える、
前記グラフィックスプロセシングユニットの前記ハードウェアシェーディングユニットは、前記頂点シェーディングされた頂点の１つまたは複数に基づいて１つまたは複数の新たな頂点を生成するために、ジオメトリシェーディング操作を実行するように構成され、ここにおいて、前記ジオメトリシェーディング操作は、前記１つまたは複数の新たな頂点を出力するために、前記１つまたは複数の頂点シェーディングされた頂点の少なくとも１つに対して行われる、グラフィックスプロセシングユニット。
【請求項１０】
前記ジオメトリシェーディング操作を実行するために、前記ハードウェアシェーディングユニットは、
ジオメトリシェーダプログラムの第１のインスタンスを実行することと、
ジオメトリシェーダプログラムの第２のインスタンスを実行することと、
前記ハードウェアシェーディングユニットの前記インターフェースを堅持するために、前記ジオメトリシェーダプログラムの前記第１のインスタンスから単一のジオメトリシェーディングされた出力を出力することと、
前記ハードウェアシェーディングユニットの前記インターフェースを堅持するために、前記ジオメトリシェーダプログラムの前記第２のインスタンスから第２の単一のジオメトリシェーディングされた出力を出力することと
を行うように構成される、請求項９に記載のグラフィックスプロセシングユニット。
【請求項１１】
前記ハードウェアシェーディングユニットがさらに、前記ジオメトリシェーダプログラムの前記第１のインスタンスと、前記ジオメトリシェーダプログラムの前記第２のインスタンスとを、同時に実行するように構成される、
請求項１０に記載のグラフィックスプロセシングユニット。
【請求項１２】
前記１つまたは複数のプロセッサは、
前記ジオメトリシェーダプログラムの前記第１のインスタンスに、第１のジオメトリシェーダ出力識別子を割り当てることと、
前記ジオメトリシェーダプログラムの前記第２のインスタンスに、第２のジオメトリシェーダ出力識別子を割り当てることと
を行うようにさらに構成され、
前記単一のジオメトリシェーディングされた出力を出力するために、前記ハードウェアシェーディングユニットは、出力カウンタに対する前記第１のジオメトリシェーダ出力識別子の比較に基づいて、前記単一のジオメトリシェーディングされた出力を出力することを行うように構成され、
前記第２のジオメトリシェーディングされた出力を出力するために、前記ハードウェアシェーディングユニットは、前記出力カウンタに対する前記第２のジオメトリシェーダ出力識別子の比較に基づいて、前記第２の単一のジオメトリシェーディングされた出力を出力することを行うように構成される、
請求項１０に記載のグラフィックスプロセシングユニット。
【請求項１３】
前記１つまたは複数のプロセッサは、前記ジオメトリシェーディング操作を実行する前に、前記ジオメトリシェーディング操作のために、プログラムカウンタと１つまたは複数のリソースポインタとを切り替えるように構成される、
請求項９に記載のグラフィックスプロセシングユニット。
【請求項１４】
ローカルのグラフィックスプロセシングユニットのメモリをさらに備え、前記１つまたは複数のプロセッサは、前記ジオメトリシェーディング操作を実行するために、前記１つまたは複数のプロセッサが、前記グラフィックスプロセシングユニットの外部に位置するオフチップメモリから前記頂点シェーディングされた頂点の前記１つまたは複数を取り出さないように、前記ローカルのグラフィックスプロセシングユニットのメモリに前記１つまたは複数の頂点シェーディングされた頂点を記憶することを行うように構成される、
請求項９に記載のグラフィックスプロセシングユニット。
【請求項１５】
前記ハードウェアシェーディングユニットは、前記１つまたは複数の新たな頂点の前記少なくとも１つから追加の新たな頂点を生成するために、前記１つまたは複数の新たな頂点の少なくとも１つに対して別のジオメトリシェーディング操作を実行することを行うようにさらに構成される、
請求項９に記載のグラフィックスプロセシングユニット。
【請求項１６】
前記１つまたは複数のプロセッサは、前記ハードウェアシェーディングユニットが、前記頂点シェーディング操作とジオメトリシェーディング操作とを順番に実行するように、前記ジオメトリシェーディング操作と関連付けられる命令を、前記頂点シェーディング操作と関連付けられる命令に付加するように構成される、
請求項９に記載のグラフィックスプロセシングユニット。
【請求項１７】
グラフィックスをレンダリングするための装置であって、
前記グラフィックスをレンダリングするためのドローコールを実行するための手段と、
前記ドローコールを実行すると、頂点シェーディング操作を実行するようにグラフィックスプロセシングユニットのハードウェアシェーディングユニットを指定するための手段と、
前記グラフィックスプロセシングユニットの前記ハードウェアシェーディングユニットを用いて、頂点シェーディングされた頂点を出力するために、複数の入力された頂点をシェーディングする頂点シェーディング操作を実行するための手段、ここにおいて、前記頂点シェーディング操作を実行することは、前記ハードウェアシェーディングユニットが、前記複数の入力された頂点のそれぞれの入力された頂点ごとに単一の頂点を出力することを備える、と、
前記グラフィックスプロセシングユニットの前記ハードウェアシェーディングユニットを用いて、前記頂点シェーディングされた頂点の１つまたは複数に基づいて１つまたは複数の新たな頂点を生成するために、ジオメトリシェーディング操作を実行するための手段と
を備え、前記ジオメトリシェーディング操作は、前記１つまたは複数の新たな頂点を出力するために、前記１つまたは複数の頂点シェーディングされた頂点の少なくとも１つに対して行われる、装置。
【請求項１８】
前記ジオメトリシェーディング操作を実行するための前記手段は、
前記グラフィックスプロセシングユニットの前記ハードウェアシェーディングユニットを用いて、ジオメトリシェーダプログラムの第１のインスタンスを実行するための手段と、
前記グラフィックスプロセシングユニットの前記ハードウェアシェーディングユニットを用いて、ジオメトリシェーダプログラムの第２のインスタンスを実行するための手段と、
前記ハードウェアシェーディングユニットの前記インターフェースを堅持するために、前記ジオメトリシェーダプログラムの前記第１のインスタンスから単一のジオメトリシェーディングされた出力を出力するための手段と、
前記ハードウェアシェーディングユニットの前記インターフェースを堅持するために、前記ジオメトリシェーダプログラムの前記第２のインスタンスから第２の単一のジオメトリシェーディングされた出力を出力するための手段と
を備える、請求項１７に記載の装置。
【請求項１９】
前記ジオメトリシェーダプログラムの前記第１のインスタンスと、前記ジオメトリシェーダプログラムの前記第２のインスタンスとを、前記ハードウェアシェーディングユニットを用いて同時に実行するための手段をさらに備える、
請求項１８に記載の装置。
【請求項２０】
前記ジオメトリシェーダプログラムの前記第１のインスタンスは、第１のジオメトリシェーダ出力識別子を割り当てられ、
前記ジオメトリシェーダプログラムの前記第２のインスタンスは、第２のジオメトリシェーダ出力識別子を割り当てられ、
前記単一のジオメトリシェーディングされた出力を出力するための前記手段は、出力カウンタに対する前記第１のジオメトリシェーダ出力識別子の比較に基づいて、前記単一のジオメトリシェーディングされた出力を出力するための手段を備え、
前記第２のジオメトリシェーディングされた出力を出力するための前記手段は、前記出力カウンタに対する前記第２のジオメトリシェーダ出力識別子の比較に基づいて、前記第２の単一のジオメトリシェーディングされた出力を出力するための手段を備える、
請求項１８に記載の装置。
【請求項２１】
前記ジオメトリシェーディング操作を実行する前に、前記ジオメトリシェーディング操作のために、プログラムカウンタと１つまたは複数のリソースポインタとを切り替えるための手段をさらに備える、
請求項１７に記載の装置。
【請求項２２】
前記ジオメトリシェーディング操作を実行するための手段が、前記グラフィックスプロセシングユニットの外部に位置するオフチップメモリから前記頂点シェーディングされた頂点の前記１つまたは複数を取り出すための手段を含まないように、前記１つまたは複数の頂点シェーディングされた頂点をローカルメモリに記憶するための手段をさらに備える、
請求項１７に記載の装置。
【請求項２３】
前記１つまたは複数の新たな頂点の前記少なくとも１つから追加の新たな頂点を生成するために、前記１つまたは複数の新たな頂点の少なくとも１つに対して別のジオメトリシェーディング操作を実行するための手段をさらに備える、
請求項１７に記載の装置。
【請求項２４】
前記頂点シェーディング操作およびジオメトリシェーディング操作が順番に実行されるように、前記ジオメトリシェーディング操作と関連付けられる命令を前記頂点シェーディング操作と関連付けられる命令に付加するための手段をさらに備える、
請求項１７に記載の装置。
【請求項２５】
命令を記憶した非一時的コンピュータ可読媒体であって、前記命令が、実行されると、１つまたは複数のプロセッサに、
グラフィックスをレンダリングするためのドローコールを実行することと、
前記ドローコールを実行すると、頂点シェーディング操作を実行するようにグラフィックスプロセシングユニットのハードウェアシェーディングユニットを指定することと、
前記グラフィックスプロセシングユニットの前記ハードウェアシェーディングユニットを用いて、頂点シェーディングされた頂点を出力するために、複数の入力された頂点をシェーディングする頂点シェーディング操作を実行すること、ここにおいて、前記頂点シェーディング操作を実行することは、前記ハードウェアシェーディングユニットが、前記複数の入力された頂点のそれぞれの入力された頂点ごとに単一の頂点を出力することを備える、と、
頂点シェーディングのために指定される前記ハードウェアシェーディングユニットを用いて、前記頂点シェーディングされた頂点の１つまたは複数に基づいて１つまたは複数の新たな頂点を生成するために、ジオメトリシェーディング操作を実行することと
を行わせ、前記ジオメトリシェーディング操作は、前記１つまたは複数の新たな頂点を出力するために、前記１つまたは複数の頂点シェーディングされた頂点の少なくとも１つに対して行われる、非一時的コンピュータ可読媒体。
【請求項２６】
前記ジオメトリシェーディング操作を実行するために、命令は、前記ハードウェアシェーディングユニットに、
ジオメトリシェーダプログラムの第１のインスタンスを実行することと、
ジオメトリシェーダプログラムの第２のインスタンスを実行することと、
前記ハードウェアシェーディングユニットの前記インターフェースを堅持するために、前記ジオメトリシェーダプログラムの前記第１のインスタンスから単一のジオメトリシェーディングされた出力を出力することと、
前記ハードウェアシェーディングユニットの前記インターフェースを堅持するために、前記ジオメトリシェーダプログラムの前記第２のインスタンスから第２の単一のジオメトリシェーディングされた出力を出力することと
を行わせる、請求項２５に記載の非一時的コンピュータ可読媒体。
【請求項２７】
前記ハードウェアシェーディングユニットに、前記ジオメトリシェーダプログラムの前記第１のインスタンスと、前記ジオメトリシェーダプログラムの前記第２のインスタンスとを、同時に実行することを行わせる命令をさらに備える、
請求項２６に記載の非一時的コンピュータ可読媒体。
【請求項２８】
前記１つまたは複数のプロセッサに、
前記ジオメトリシェーダプログラムの前記第１のインスタンスへ、第１のジオメトリシェーダ出力識別子を割り当てることと、
前記ジオメトリシェーダプログラムの前記第２のインスタンスへ、第２のジオメトリシェーダ出力識別子を割り当てることと
を行わせる命令をさらに備え、
前記単一のジオメトリシェーディングされた出力を出力するために、前記命令は、前記ハードウェアシェーディングユニットに、出力カウンタに対する前記第１のジオメトリシェーダ出力識別子の比較に基づいて、前記単一のジオメトリシェーディングされた出力を出力することを行わせ、
前記第２のジオメトリシェーディングされた出力を出力するために、前記命令は、前記ハードウェアシェーディングユニットに、前記出力カウンタに対する前記第２のジオメトリシェーダ出力識別子の比較に基づいて、前記第２の単一のジオメトリシェーディングされた出力を出力することを行わせる、
請求項２６に記載の非一時的コンピュータ可読媒体。
【請求項２９】
前記１つまたは複数のプロセッサに、前記ジオメトリシェーディング操作を実行する前に、前記ジオメトリシェーディング操作のために、プログラムカウンタと１つまたは複数のリソースポインタとを切り替えることを行わせる命令をさらに備える、
請求項２５に記載の非一時的コンピュータ可読媒体。
【請求項３０】
前記ジオメトリシェーディング操作を実行するために、前記１つまたは複数のプロセッサが外部メモリから前記頂点シェーディングされた頂点の前記１つまたは複数を取り出さないように、前記１つまたは複数のプロセッサに、ローカルメモリへ前記１つまたは複数の頂点シェーディングされた頂点を記憶させる命令をさらに備える、
請求項２５に記載の非一時的コンピュータ可読媒体。
【請求項３１】
前記１つまたは複数のプロセッサに、前記１つまたは複数の新たな頂点の前記少なくとも１つから追加の新たな頂点を生成するために、前記１つまたは複数の新たな頂点の少なくとも１つに対して別のジオメトリシェーディング操作を実行することを行わせる命令をさらに備える、
請求項２５に記載の非一時的コンピュータ可読媒体。
【請求項３２】
前記１つまたは複数のプロセッサに、前記頂点シェーディング操作および前記ジオメトリシェーディング操作が順番に実行されるように、前記ジオメトリシェーディング操作と関連付けられる命令を前記頂点シェーディング操作と関連付けられる命令へ付加させる命令をさらに備える、
請求項２５に記載の非一時的コンピュータ可読媒体。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０２５７
【補正方法】変更
【補正の内容】
【０２５７】
[0274]様々な例が説明された。これらおよび他の例は、以下の特許請求の範囲内に入る。
以下に本願発明の当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
グラフィックスをレンダリングする方法であって、
頂点シェーディングのために指定されるグラフィックスプロセシングユニットのハードウェアシェーディングユニットを用いて、頂点シェーディングされた頂点を出力するために、入力された頂点をシェーディングする頂点シェーディング操作を実行することと、ここにおいて、前記ハードウェアユニットは、入力として単一の頂点を受け取り、出力として単一の頂点を生成するように構成される、
前記グラフィックスプロセシングユニットの前記ハードウェアシェーディングユニットを用いて、前記頂点シェーディングされた頂点の１つまたは複数に基づいて１つまたは複数の新たな頂点を生成する、ジオメトリシェーディング操作を実行することと
を備え、前記ジオメトリシェーディング操作は、前記１つまたは複数の新たな頂点を出力するために、前記１つまたは複数の頂点シェーディングされた頂点の少なくとも１つで行われる、方法。
［Ｃ２］
前記ジオメトリシェーディング操作を実行することは、
前記グラフィックスプロセシングユニットの前記ハードウェアシェーディングユニットを用いて、ジオメトリシェーダプログラムの第１のインスタンスを実行することと、
前記グラフィックスプロセシングユニットの前記ハードウェアシェーディングユニットを用いて、ジオメトリシェーダプログラムの第２のインスタンスを実行することと、
前記ハードウェアシェーディングユニットの前記インターフェースを堅持するために、前記ジオメトリシェーダプログラムの前記第１のインスタンスから単一のジオメトリシェーディングされた出力を出力することと、
前記ハードウェアシェーディングユニットの前記インターフェースを堅持するために、前記ジオメトリシェーダプログラムの前記第２のインスタンスから第２の単一のジオメトリシェーディングされた出力を出力することと
を備える、Ｃ１に記載の方法。
［Ｃ３］
前記ジオメトリシェーダプログラムの前記第１のインスタンスと、前記ジオメトリシェーダプログラムの前記第２のインスタンスとを、前記ハードウェアシェーディングユニットを用いて同時に実行することをさらに備える、
Ｃ２に記載の方法。
［Ｃ４］
前記ジオメトリシェーダプログラムの前記第１のインスタンスが、第１のジオメトリシェーダ出力識別子を割り当てられ、
前記ジオメトリシェーダプログラムの前記第２のインスタンスが、第２のジオメトリシェーダ出力識別子を割り当てられ、
前記単一のジオメトリシェーディングされた出力を出力することは、出力カウンタに対する前記第１のジオメトリシェーダ出力識別子の比較に基づいて、前記単一のジオメトリシェーディングされた出力を出力することを備え、
前記第２のジオメトリシェーディングされた出力を出力することは、前記出力カウンタに対する前記第２のジオメトリシェーダ出力識別子の比較に基づいて、前記第２の単一のジオメトリシェーディングされた出力を出力することを備える、
Ｃ２に記載の方法。
［Ｃ５］
ドローコールを実行すると前記頂点シェーディング操作を実行するように前記ハードウェアシェーディングユニットを指定することをさらに備える、
Ｃ１に記載の方法。
［Ｃ６］
前記ジオメトリシェーディング操作を実行する前に、前記ジオメトリシェーディング操作のために、プログラムカウンタと１つまたは複数のリソースポインタとを切り替えることをさらに備える、
Ｃ１に記載の方法。
［Ｃ７］
前記ジオメトリシェーディング操作を実行することが、前記グラフィックスプロセシングユニットの外部に位置するオフチップメモリから前記頂点シェーディングされた頂点の前記１つまたは複数を取り出すことを含まないように、前記１つまたは複数の頂点シェーディングされた頂点をローカルメモリに記憶することをさらに備える、
Ｃ１に記載の方法。
［Ｃ８］
前記ハードウェアシェーディングユニットを用いて、前記１つまたは複数の新たな頂点の前記少なくとも１つから追加の新たな頂点を生成するために、前記１つまたは複数の新たな頂点の少なくとも１つに対して別のジオメトリシェーディング操作を実行することをさらに備える、
Ｃ１に記載の方法。
［Ｃ９］
前記頂点シェーディング操作およびジオメトリシェーディング操作が順番に実行されるように、前記ジオメトリシェーディング操作と関連付けられる命令を前記頂点シェーディング操作と関連付けられる命令に付加することをさらに備える、
Ｃ１に記載の方法。
［Ｃ１０］
１つまたは複数のプロセッサを備える、グラフィックスをレンダリングするためのグラフィックスプロセシングユニットであって、前記１つまたは複数のプロセッサは、
頂点シェーディングのために指定される前記グラフィックスプロセシングユニットのハードウェアシェーディングユニットを用いて、頂点シェーディングされた頂点を出力するために、入力された頂点をシェーディングする、頂点シェーディング操作を実行することと、ここにおいて、前記ハードウェアユニットは、入力として単一の頂点を受け取り、出力として単一の頂点を生成する、
前記グラフィックスプロセシングユニットの前記ハードウェアシェーディングユニットを用いて、前記頂点シェーディングされた頂点の１つまたは複数に基づいて１つまたは複数の新たな頂点を生成するために、ジオメトリシェーディング操作を実行することと
を行うように構成され、前記ジオメトリシェーディング操作は、前記１つまたは複数の新たな頂点を出力するために、前記１つまたは複数の頂点シェーディングされた頂点の少なくとも１つに対して行われる、グラフィックスプロセシングユニット。
［Ｃ１１］
前記ジオメトリシェーディング操作を実行するために、前記ハードウェアシェーディングユニットは、
ジオメトリシェーダプログラムの第１のインスタンスを実行することと、
ジオメトリシェーダプログラムの第２のインスタンスを実行することと、
前記ハードウェアシェーディングユニットの前記インターフェースを堅持するために、前記ジオメトリシェーダプログラムの前記第１のインスタンスから単一のジオメトリシェーディングされた出力を出力することと、
前記ハードウェアシェーディングユニットの前記インターフェースを堅持するために、前記ジオメトリシェーダプログラムの前記第２のインスタンスから第２の単一のジオメトリシェーディングされた出力を出力することと
を行うように構成される、Ｃ１０に記載のグラフィックスプロセシングユニット。
［Ｃ１２］
前記ハードウェアシェーディングユニットがさらに、前記ジオメトリシェーダプログラムの前記第１のインスタンスと、前記ジオメトリシェーダプログラムの前記第２のインスタンスとを、同時に実行するように構成される、
Ｃ１１に記載のグラフィックスプロセシングユニット。
［Ｃ１３］
前記１つまたは複数のプロセッサは、
前記ジオメトリシェーダプログラムの前記第１のインスタンスに、第１のジオメトリシェーダ出力識別子を割り当てることと、
前記ジオメトリシェーダプログラムの前記第２のインスタンスに、第２のジオメトリシェーダ出力識別子を割り当てることと
を行うようにさらに構成され、
前記単一のジオメトリシェーディングされた出力を出力するために、前記ハードウェアシェーディングユニットは、出力カウンタに対する前記第１のジオメトリシェーダ出力識別子の比較に基づいて、前記単一のジオメトリシェーディングされた出力を出力することを行うように構成され、
前記第２のジオメトリシェーディングされた出力を出力するために、前記ハードウェアシェーディングユニットは、前記出力カウンタに対する前記第２のジオメトリシェーダ出力識別子の比較に基づいて、前記第２の単一のジオメトリシェーディングされた出力を出力することを行うように構成される、
Ｃ１１に記載のグラフィックスプロセシングユニット。
［Ｃ１４］
前記１つまたは複数のプロセッサは、ドローコールを実行すると前記頂点シェーディング操作を実行するように前記ハードウェアシェーディングユニットを指定するように構成される、
Ｃ１０に記載のグラフィックスプロセシングユニット。
［Ｃ１５］
前記１つまたは複数のプロセッサは、前記ジオメトリシェーディング操作を実行する前に、前記ジオメトリシェーディング操作のために、プログラムカウンタと１つまたは複数のリソースポインタとを切り替えるように構成される、
Ｃ１０に記載のグラフィックスプロセシングユニット。
［Ｃ１６］
ローカルのグラフィックスプロセシングユニットのメモリをさらに備え、前記１つまたは複数のプロセッサは、前記ジオメトリシェーディング操作を実行するために、前記１つまたは複数のプロセッサが、前記グラフィックスプロセシングユニットの外部に位置するオフチップメモリから前記頂点シェーディングされた頂点の前記１つまたは複数を取り出さないように、前記ローカルのグラフィックスプロセシングユニットのメモリに前記１つまたは複数の頂点シェーディングされた頂点を記憶することを行うように構成される、
Ｃ１０に記載のグラフィックスプロセシングユニット。
［Ｃ１７］
前記ハードウェアシェーディングユニットは、前記１つまたは複数の新たな頂点の前記少なくとも１つから追加の新たな頂点を生成するために、前記１つまたは複数の新たな頂点の少なくとも１つに対して別のジオメトリシェーディング操作を実行することを行うようにさらに構成される、
Ｃ１０に記載のグラフィックスプロセシングユニット。
［Ｃ１８］
前記１つまたは複数のプロセッサは、前記ハードウェアシェーディングユニットが、前記頂点シェーディング操作とジオメトリシェーディング操作とを順番に実行するように、前記ジオメトリシェーディング操作と関連付けられる命令を、前記頂点シェーディング操作と関連付けられる命令に付加するように構成される、
Ｃ１０に記載のグラフィックスプロセシングユニット。
［Ｃ１９］
グラフィックスをレンダリングするための装置であって、
頂点シェーディングのために指定されるグラフィックスプロセシングユニットのハードウェアシェーディングユニットを用いて、頂点シェーディングされた頂点を出力するために、入力された頂点をシェーディングする頂点シェーディング操作を実行するための手段と、ここにおいて、前記ハードウェアユニットは、入力として単一の頂点を受け取り、出力として単一の頂点を生成するように構成される、
前記グラフィックスプロセシングユニットの前記ハードウェアシェーディングユニットを用いて、前記頂点シェーディングされた頂点の１つまたは複数に基づいて１つまたは複数の新たな頂点を生成するために、ジオメトリシェーディング操作を実行するための手段と
を備え、前記ジオメトリシェーディング操作は、前記１つまたは複数の新たな頂点を出力するために、前記１つまたは複数の頂点シェーディングされた頂点の少なくとも１つに対して行われる、装置。
［Ｃ２０］
前記ジオメトリシェーディング操作を実行するための前記手段は、
前記グラフィックスプロセシングユニットの前記ハードウェアシェーディングユニットを用いて、ジオメトリシェーダプログラムの第１のインスタンスを実行するための手段と、
前記グラフィックスプロセシングユニットの前記ハードウェアシェーディングユニットを用いて、ジオメトリシェーダプログラムの第２のインスタンスを実行するための手段と、
前記ハードウェアシェーディングユニットの前記インターフェースを堅持するために、前記ジオメトリシェーダプログラムの前記第１のインスタンスから単一のジオメトリシェーディングされた出力を出力するための手段と、
前記ハードウェアシェーディングユニットの前記インターフェースを堅持するために、前記ジオメトリシェーダプログラムの前記第２のインスタンスから第２の単一のジオメトリシェーディングされた出力を出力するための手段と
を備える、Ｃ１９に記載の装置。
［Ｃ２１］
前記ジオメトリシェーダプログラムの前記第１のインスタンスと、前記ジオメトリシェーダプログラムの前記第２のインスタンスとを、前記ハードウェアシェーディングユニットを用いて同時に実行するための手段をさらに備える、
Ｃ２０に記載の装置。
［Ｃ２２］
前記ジオメトリシェーダプログラムの前記第１のインスタンスは、第１のジオメトリシェーダ出力識別子を割り当てられ、
前記ジオメトリシェーダプログラムの前記第２のインスタンスは、第２のジオメトリシェーダ出力識別子を割り当てられ、
前記単一のジオメトリシェーディングされた出力を出力するための前記手段は、出力カウンタに対する前記第１のジオメトリシェーダ出力識別子の比較に基づいて、前記単一のジオメトリシェーディングされた出力を出力するための手段を備え、
前記第２のジオメトリシェーディングされた出力を出力するための前記手段は、前記出力カウンタに対する前記第２のジオメトリシェーダ出力識別子の比較に基づいて、前記第２の単一のジオメトリシェーディングされた出力を出力するための手段を備える、
Ｃ２０に記載の装置。
［Ｃ２３］
ドローコールを実行すると前記頂点シェーディング操作を実行するように前記ハードウェアシェーディングユニットを指定するための手段をさらに備える、
Ｃ１９に記載の装置。
［Ｃ２４］
前記ジオメトリシェーディング操作を実行する前に、前記ジオメトリシェーディング操作のためにプログラムカウンタと１つまたは複数のリソースポインタとを切り替えるための手段をさらに備える、
Ｃ１９に記載の装置。
［Ｃ２５］
前記ジオメトリシェーディング操作を実行するための手段が、前記グラフィックスプロセシングユニットの外部に位置するオフチップメモリから前記頂点シェーディングされた頂点の前記１つまたは複数を取り出すための手段を含まないように、前記１つまたは複数の頂点シェーディングされた頂点をローカルメモリに記憶するための手段をさらに備える、
Ｃ１９に記載の装置。
［Ｃ２６］
前記１つまたは複数の新たな頂点の前記少なくとも１つから追加の新たな頂点を生成するために、前記１つまたは複数の新たな頂点の少なくとも１つに対して別のジオメトリシェーディング操作を実行するための手段をさらに備える、
Ｃ１９に記載の装置。
［Ｃ２７］
前記頂点シェーディング操作およびジオメトリシェーディング操作が順番に実行されるように、前記ジオメトリシェーディング操作と関連付けられる命令を前記頂点シェーディング操作と関連付けられる命令に付加するための手段をさらに備える、
Ｃ１９に記載の装置。
［Ｃ２８］
命令を記憶した非一時的コンピュータ可読媒体であって、前記命令が、実行されると、１つまたは複数のプロセッサに、
頂点シェーディングのために指定されるグラフィックスプロセシングユニットのハードウェアシェーディングユニットを用いて、頂点シェーディングされた頂点を出力するために、入力された頂点をシェーディングする頂点シェーディング操作を実行することと、ここにおいて前記ハードウェアユニットが、入力として単一の頂点を受け取り、出力として単一の頂点を生成するように構成される、
頂点シェーディングのために指定される前記ハードウェアシェーディングユニットを用いて、前記頂点シェーディングされた頂点の１つまたは複数に基づいて１つまたは複数の新たな頂点を生成するために、ジオメトリシェーディング操作を実行することと
を行わせ、前記ジオメトリシェーディング操作は、前記１つまたは複数の新たな頂点を出力するために、前記１つまたは複数の頂点シェーディングされた頂点の少なくとも１つに対して行われる、非一時的コンピュータ可読媒体。
［Ｃ２９］
前記ジオメトリシェーディング操作を実行するために、命令は、前記ハードウェアシェーディングユニットに、
ジオメトリシェーダプログラムの第１のインスタンスを実行することと、
ジオメトリシェーダプログラムの第２のインスタンスを実行することと、
前記ハードウェアシェーディングユニットの前記インターフェースを堅持するために、前記ジオメトリシェーダプログラムの前記第１のインスタンスから単一のジオメトリシェーディングされた出力を出力することと、
前記ハードウェアシェーディングユニットの前記インターフェースを堅持するために、前記ジオメトリシェーダプログラムの前記第２のインスタンスから第２の単一のジオメトリシェーディングされた出力を出力することとを行わせる、
Ｃ２８に記載の非一時的コンピュータ可読媒体。
［Ｃ３０］
前記ハードウェアシェーディングユニットに、前記ジオメトリシェーダプログラムの前記第１のインスタンスと、前記ジオメトリシェーダプログラムの前記第２のインスタンスとを、同時に実行することを行わせる命令をさらに備える、
Ｃ２９に記載の非一時的コンピュータ可読媒体。
［Ｃ３１］
前記１つまたは複数のプロセッサに、
前記ジオメトリシェーダプログラムの前記第１のインスタンスへ、第１のジオメトリシェーダ出力識別子を割り当てさせ、
前記ジオメトリシェーダプログラムの前記第２のインスタンスへ、第２のジオメトリシェーダ出力識別子を割り当てることを行わせる命令をさらに備え、
前記単一のジオメトリシェーディングされた出力を出力するために、前記命令は、前記ハードウェアシェーディングユニットに、出力カウンタに対する前記第１のジオメトリシェーダ出力識別子の比較に基づいて、前記単一のジオメトリシェーディングされた出力を出力することを行わせ、
前記第２のジオメトリシェーディングされた出力を出力するために、前記命令は、前記ハードウェアシェーディングユニットに、前記出力カウンタに対する前記第２のジオメトリシェーダ出力識別子の比較に基づいて、前記第２の単一のジオメトリシェーディングされた出力を出力することを行わせる、
Ｃ２９に記載の非一時的コンピュータ可読媒体。
［Ｃ３２］
前記１つまたは複数のプロセッサに、ドローコールを実行すると前記頂点シェーディング操作を実行するように前記ハードウェアシェーディングユニットを指定することを行わせる命令をさらに備える、
Ｃ２８に記載の非一時的コンピュータ可読媒体。
［Ｃ３３］
前記１つまたは複数のプロセッサに、前記ジオメトリシェーディング操作を実行する前に、前記ジオメトリシェーディング操作のために、プログラムカウンタと１つまたは複数のリソースポインタとを切り替えることを行わせる命令をさらに備える、
Ｃ２８に記載の非一時的コンピュータ可読媒体。
［Ｃ３４］
前記ジオメトリシェーディング操作を実行するために、前記１つまたは複数のプロセッサが外部メモリから前記頂点シェーディングされた頂点の前記１つまたは複数を取り出さないように、前記１つまたは複数のプロセッサに、ローカルメモリへ前記１つまたは複数の頂点シェーディングされた頂点を記憶させる命令をさらに備える、
Ｃ２８に記載の非一時的コンピュータ可読媒体。
［Ｃ３５］
前記１つまたは複数のプロセッサに、前記１つまたは複数の新たな頂点の前記少なくとも１つから追加の新たな頂点を生成するために、前記１つまたは複数の新たな頂点の少なくとも１つに対して別のジオメトリシェーディング操作を実行することを行わせる命令をさらに備える、
Ｃ２８に記載の非一時的コンピュータ可読媒体。
［Ｃ３６］
前記１つまたは複数のプロセッサに、前記頂点シェーディング操作および前記ジオメトリシェーディング操作が順番に実行されるように、前記ジオメトリシェーディング操作と関連付けられる命令を前記頂点シェーディング操作と関連付けられる命令へ付加させる命令をさらに備える、
Ｃ２８に記載の非一時的コンピュータ可読媒体。