JP6008515B2 - グラフィックス処理 - Google Patents
グラフィックス処理 Download PDFInfo
- Publication number
- JP6008515B2 JP6008515B2 JP2012046403A JP2012046403A JP6008515B2 JP 6008515 B2 JP6008515 B2 JP 6008515B2 JP 2012046403 A JP2012046403 A JP 2012046403A JP 2012046403 A JP2012046403 A JP 2012046403A JP 6008515 B2 JP6008515 B2 JP 6008515B2
- Authority
- JP
- Japan
- Prior art keywords
- attribute
- vertex
- output
- value
- instance
- 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.)
- Active
Links
- 238000012545 processing Methods 0.000 title claims description 164
- 230000015654 memory Effects 0.000 claims description 122
- 238000000034 method Methods 0.000 claims description 83
- 230000008569 process Effects 0.000 claims description 57
- 230000001419 dependent effect Effects 0.000 claims description 18
- 238000012360 testing method Methods 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 6
- 239000012634 fragment Substances 0.000 description 136
- 239000000872 buffer Substances 0.000 description 74
- 230000007246 mechanism Effects 0.000 description 28
- 239000007853 buffer solution Substances 0.000 description 12
- 238000009877 rendering Methods 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 10
- 230000009467 reduction Effects 0.000 description 10
- 238000003491 array Methods 0.000 description 9
- 238000009795 derivation Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000005070 sampling Methods 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 238000002156 mixing Methods 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/80—Shading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/04—Indexing scheme for image data processing or generation, in general involving 3D image data
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Image Generation (AREA)
Description
頂点シェーディング段階がインスタンス化されたモードで動作している場合、所与の描画呼び出しについて、
頂点シェーダ出力属性の依存する頂点シェーダ入力属性が頂点毎にのみまたはインスタンス毎にのみ定義される、頂点シェーディング段階により生成されることになる頂点シェーダ出力属性を、特定するステップと、
生成されることになる頂点シェーダ出力属性の依存する頂点シェーダ入力属性が、頂点毎にのみ定義される、またはインスタンス毎にのみ定義されると認識されるとき、
頂点シェーディング段階が、
頂点シェーダ出力属性が、頂点毎に定義された入力属性にのみ依存した場合、グラフィックス処理システムの次の段階で所与の頂点のために用いる、頂点シェーディング段階により生成されることになる頂点シェーダ出力属性値の1つのコピーのみを、出力属性値が適用されるインスタンスの数に関係なく、格納するステップ、および
頂点シェーダ出力属性が、インスタンス毎に定義された入力属性にのみ依存した場合、グラフィックス処理システムの次の段階で所与のインスタンスのために用いる、頂点シェーディング段階により生成されることになる頂点シェーダ出力属性値の1つのコピーのみを、出力属性値が適用される頂点の数に関係なく、格納するステップと、
1つまたは複数の次のグラフィックス処理段階が、
出力属性が頂点毎に定義された入力属性にのみ依存した場合、出力属性値が適用される各インスタンスについて、所与の頂点のために単一の格納された頂点シェーダ出力属性値を用いるステップ、および
出力属性がインスタンス毎に定義された入力属性にのみ依存した場合、出力属性値が適用される各頂点について、所与のインスタンスのために単一の格納された頂点シェーダ出力属性値を用いるステップと
を含む。
頂点シェーディング段階と、頂点シェーディング段階の次の少なくとも1つの処理段階とを含む、複数のグラフィックス処理段階であって、頂点シェーディング段階が入力属性値を処理して、グラフィックスプロセッサの少なくとも1つの次の処理段階が用いる出力属性値を生成する、複数のグラフィックス処理段階と、
頂点シェーディング段階がインスタンス化されたモードで動作している場合、所与の描画呼び出しについて、
頂点シェーダ出力属性の依存する頂点シェーダ入力属性が頂点毎にのみまたはインスタンス毎にのみ定義される、頂点シェーディング段階により生成されることになる頂点シェーダ出力属性を、特定し、
生成されることになる頂点シェーダ出力属性の依存する頂点シェーダ入力属性が、頂点毎にのみ定義される、またはインスタンス毎にのみ定義されると認識されるとき、
頂点シェーディング段階に、
頂点シェーダ出力属性が、頂点毎に定義された入力属性にのみ依存した場合、グラフィックス処理システムの次の段階で所与の頂点のために用いる、頂点シェーディング段階により生成されることになる頂点シェーダ出力属性値の1つのコピーのみを、出力属性値が適用されるインスタンスの数に関係なく、格納させ、
頂点シェーダ出力属性が、インスタンス毎に定義された入力属性にのみ依存した場合、グラフィックス処理システムの次の段階で所与のインスタンスのために用いる、頂点シェーディング段階により生成されることになる頂点シェーダ出力属性値の1つのコピーのみを、出力属性値が適用される頂点の数に関係なく、格納させ、
生成されることになる頂点シェーダ出力属性が、頂点毎に定義された入力属性にのみ、またはインスタンス毎に定義された入力属性にのみ依存すると認識された時、
頂点シェーディング段階の出力を処理する少なくとも1つの次のグラフィックス処理段階に、
出力属性が頂点毎に定義された入力属性にのみ依存した場合、出力属性値が適用される各インスタンスについて、所与の頂点のために単一の格納された頂点シェーダ出力属性を用いさせ、
出力属性がインスタンス毎に定義された入力属性にのみ依存した場合、出力属性値が適用される各頂点について、所与のインスタンスのために単一の格納された頂点シェーダ出力属性値を用いさせる
ように構成される、プロセッサとを含む。
出力インデックス値 = (頂点インデックス) + (インスタンスインデックス) × (詰め込まれたインスタンスサイズ)
ここで、「詰め込まれたインスタンスサイズ」は、インスタンス当たりの頂点の数に等しいかそれよりも大きい、設定された(選択された)値である。
頂点インデックス = (出力インデックス値) modulo (詰め込まれたインスタンスサイズ)
であり、また(入力)インスタンスインデックスは、除算により出力インデックス値から得られるということを意味し、
インスタンスインデックス = floor((出力インデックス値) / (詰め込まれたインスタンスサイズ))
である。
対象の属性の値をロードおよび/または格納する時に用いられることになるメタ情報を、頂点シェーディング段階の1つまたは複数の属性と関連付けるステップと、
頂点シェーディング段階の属性の値をロードおよび/または格納しようとする時に、その属性と関連する任意のメタ情報をまず読み取り、次に、属性の値をロードまたは格納する時に、メタ情報を用いる、グラフィックス処理段階とを含む。
頂点シェーディング段階および頂点シェーディング段階の次の少なくとも1つの処理段階を含み、頂点シェーディング段階の出力を処理する、複数のグラフィックス処理段階を含む、グラフィックス処理システムが提供され、
頂点シェーディング段階が、頂点シェーディング段階への入力属性の値を処理し、グラフィックス処理システムの次の段階が用いる頂点シェーディング段階の出力属性の値を生成し、
グラフィックス処理システムが、対象の属性の値をロードおよび/または格納する時に用いられることになるメタ情報を、頂点シェーディング段階の1つまたは複数の属性と関連付けるように構成され、
グラフィックス処理段階のうちの1つまたは複数が、頂点シェーディング段階の属性の値をロードおよび/または格納しようとする時に、その属性と関連する任意のメタ情報をまず読み取り、次に、属性の値をロードまたは格納する時に、メタ情報を用いるように構成される。
対象の属性の値をロードおよび/または格納する時に用いられることになるメタ情報を、頂点シェーディング段階の1つまたは複数の属性と関連付けるステップを含む。
頂点シェーディング段階および頂点シェーディング段階の次の少なくとも1つの処理段階を含み頂点シェーディング段階の出力を処理する、複数のグラフィックス処理段階を含む、グラフィックス処理システムが提供され、
頂点シェーディング段階が、頂点シェーディング段階への入力属性の値を処理し、グラフィックス処理システムの次の段階が用いる頂点シェーディング段階の出力属性の値を生成し、
グラフィックス処理システムが、対象の属性の値をロードおよび/または格納する時に用いられることになるメタ情報を、頂点シェーディング段階の1つまたは複数の属性と関連付けるように構成される。
プライマリ属性バッファ1:
-頂点0に対する属性0の値
-頂点0に対する属性1の値
-頂点1に対する属性0の値
-頂点1に対する属性1の値
など。
プライマリ属性バッファ2:
-インスタンス0に対する属性2の値
-インスタンス0に対する属性3の値
-インスタンス1に対する属性2の値
-インスタンス1に対する属性3の値
など。
-属性の値を含んでいる、バッファのメモリアドレス。(全てのインターリーブされ共通にインデックスが付けられた属性値のバッファアドレスが、同じメモリバッファを指すように設定される。これが上で言及されたバッファ基本アドレスである。)
-バッファ内への第1の「インデックス」エントリの属性の値に対する、バッファへのオフセット。(すなわち、第1の頂点に対し、属性値が頂点毎にインターリーブされる場合(この場合、各属性に対するオフセットは、対象の頂点のその属性の値(データ)を見つけるべき各頂点のデータブロックへの、オフセットである)には頂点0であり、第1のインスタンスに対し、属性値がインスタンス毎にインターリーブされる場合、インスタンス0である、などである。)
-あるインデックスが付けられたエントリ(例えば頂点)の属性の値から次のインデックスが付けられたエントリ(例えば頂点)の属性の値へのメモリ内の距離である、ストライド。(インターリーブされた属性値のストライドは、したがって、所与のインデックスが付けられたエントリ(頂点またはインスタンスまたは頂点/インスタンスの組合せ)の全ての属性値のサイズの合計(すなわち各属性のデータのサイズの合計)に設定される。このことは、以下で説明される格納タイプフィールドから推測されうる。)
-属性値に対する格納タイプ(コンポーネントのデータタイプおよびコンポーネントの数を示す)。ロード命令および格納命令が、属性記述子で規定されるデータタイプに基づいて、データフォーマット変換を好ましくは実行する。
-属性アレイタイプ(線形、除数またはモジュロ)。以下でさらに説明される。
-除数属性アレイタイプ(除数属性)の場合、除数値。
-モジュロ属性アレイタイプ(モジュロ属性)の場合、モジュロ値
-除数属性またはモジュロ属性の場合、書き込み削減フラグ。
(除数属性およびモジュロ属性は以下でさらに論じられる。)
-プライマリ属性記述子アレイを用いるか、セカンダリ属性記述子アレイを用いるかを示す、アレイセレクタ。これは、命令に符号化される。
-属性インデックス(すなわち上で論じられるように、対象の属性のインデックス)。これは、命令に符号化されてもよく、または命令に符号化された値でもよく、さらにはレジスタ内の値であってもよい。
-折りたたまれていない1つまたは複数のインデックス。
折りたたまれていないインデックス = (頂点インデックス) + (インスタンスインデックス) × (詰め込まれたインスタンスサイズ)
この式における詰め込まれたインスタンスサイズは、インスタンス毎の頂点の数よりも大きいかそれと等しい値であるが、以下でさらに論じられるように、詰め込まれたインスタンスサイズについてのモジュロ演算をハードウェアで実行するのを効率的にするような、ある値にも設定される。
i)属性アレイにインデックス付ける前に、折りたたまれたインデックスを、属性記述子で与えられる値により割る、除数属性。除数値dは、3つの数r、p、およびqにより表され、以下のように計算される。
r = floor(log2(d))
f0 = 2r+32 + floor(d/2)
fi = floor(f0/d)
ff = f0 - fi*d
p = fi - 231
q = (ff > floor(d/2)) ? 1:0
であり、インデックスuに対する除算は以下のように計算される。
i = (u + q) * (p + 231) / 2r+32
(この形態の除数値を用いることで、完全に汎用的な除算よりも簡単な除算回路を用いることが可能になる。)
ii)属性アレイにインデックス付ける前に、折りたたまれたインデックスのモジュロ演算を、属性記述子で与えられる値により実行する、モジュロ属性。モジュロ値(すなわち詰め込まれたインスタンスサイズ、Spi)は、以下の形態を有する。
Spi = (2p+1) * 2r ここでpは0、1、2、3または4
(この形態のモジュロ値を用いることで、完全に汎用的なモジュロ演算よりも簡単なモジュロ演算回路を用いることが可能になる。)
属性値のアドレス = (バッファアドレス) + オフセット + (ストライド×インデックス)
モジュロ属性は、モジュロ値により除算された折りたたまれていないインデックス(丸め済み)が0である場合のみ、書き込みを実行する。これは、
u < Spi
と等価であり(Spiは詰め込まれたインスタンスサイズ)、折りたたまれていないインデックスがモジュロ値よりも大きくまたはそれと等しい場合、モジュロ属性は出力値を格納しないことを意味する。
除数属性は、折りたたまれていないインデックスの除数値に対する剰余が0である場合にのみ、書き込みを実行する。これは、
rem = 除算における最後のシフトからのシフトされたビット
lz = count_leading_zeros(rem)
condition : lz > r OR (lz == r AND q == 1)
と等価であり、折りたたまれていないインデックスが除数により除算できない場合、除数属性は出力値を格納しないことを意味する。
21 タイラ
22 ラスタライザおよびフラグメントシェーダ
23 インデックスバッファ
24 描画呼び出し記述子
25 プライマリ属性記述子アレイ
26 頂点バッファ
27 セカンダリ属性記述子アレイ
28 変数バッファ
29 位置バッファ
30 ポリゴンリストアレイ
Claims (13)
- 入力属性値を処理して、グラフィックス処理システムの次のステージが使用する頂点シェーディングされた出力属性値を生成する頂点シェーディングステージを含むグラフィックス処理を処理するグラフィックス処理システムを動作させる方法であって、
前記頂点シェーディングステージがインスタンス化されたモードで動作している場合、所与の描画呼び出しについて、
頂点シェーダ出力属性の依存する頂点シェーダ入力属性が、頂点毎にのみ定義されるか、またはインスタンス毎にのみ定義される、前記頂点シェーディングステージにより生成される頂点シェーダ出力属性を識別するステップを備え、
前記生成される頂点シェーダ出力属性の依存する前記頂点シェーダ入力属性が、前記頂点毎にのみ定義されるか、または前記インスタンス毎にのみ定義されると認識されるとき、
前記頂点シェーディングステージは、
前記頂点シェーダ出力属性が、前記頂点毎に定義された入力属性にのみ依存した場合、前記出力属性値が適用されるインスタンスの数に関係なく、所与の頂点のために前記グラフィックス処理システムの次のステージが用いる、前記頂点シェーディングステージにより生成される前記頂点シェーダ出力属性値の1つのコピーのみを格納するステップと、
前記頂点シェーダ出力属性が、前記インスタンス毎に定義された入力属性にのみ依存した場合、前記出力属性値が適用される頂点の数に関係なく、所与のインスタンスのために前記グラフィックス処理システムの次のステージが用いる、前記頂点シェーディングステージにより生成される前記頂点シェーダ出力属性値の1つのコピーのみを格納するステップと、
を含み、
続く1つまたは複数のグラフィックス処理ステージは、
前記出力属性が前記頂点毎に定義された入力属性にのみ依存した場合、前記出力属性値が適用される各インスタンスについて、所与の頂点のために単一の前記格納された頂点シェーダ出力属性値を用いるステップと、
前記出力属性が前記インスタンス毎に定義された入力属性にのみ依存した場合、前記出力属性値が適用される各頂点について、所与のインスタンスのために単一の前記格納された頂点シェーダ出力属性値を用いるステップと、
を含むことを特徴とする方法。 - 前記頂点シェーダ出力属性の依存する前記頂点シェーダ入力属性が前記頂点毎にのみまたは前記インスタンス毎にのみ定義される、前記頂点シェーディングステージにより生成される前記頂点シェーダ出力属性を識別する前記ステップが、
頂点シェーダコードをコンパイルする時に、前記出力属性がどの1つまたは複数の前記頂点シェーダ入力属性に依存しているかを、前記頂点シェーダ出力属性の各々について識別し、前記頂点シェーダの各出力属性がどの1つまたは複数の前記頂点シェーダ入力属性に依存しているかを、メタ情報に記録するステップと、
前記メタ情報と、前記頂点シェーダ入力属性の前記頂点毎または前記インスタンス毎の依存性を定義する、描画呼び出しのためのパラメータ内の情報とを用いて、所与の前記頂点シェーダ出力属性の前記頂点シェーダ入力属性が、前記頂点毎にのみ決まる属性なのか、前記インスタンス毎にのみ決まる属性なのかを判定するステップと、
を含むことを特徴とする請求項1に記載の方法。 - 前記頂点シェーダ出力属性が、前記頂点毎に定義された入力属性にのみ依存した場合、前記出力属性値が依存する対応する入力属性値の頂点インデックスによりインデックスが付けられたメモリの位置に前記出力属性の値を格納するステップと、
前記頂点シェーダ出力属性が、前記インスタンス毎に定義された入力属性にのみ依存した場合、前記出力属性値が依存する対応する入力属性値のインスタンスインデックスによりインデックスが付けられたメモリの位置に前記出力属性の値を格納するステップと、
を含むことを特徴とする請求項1または請求項2に記載の方法。 - 前記頂点シェーダ出力属性値を生成する時に、前記属性値をメモリに書き込むべきかどうかを判定する前記頂点シェーディングステージをさらに含み、
前記属性値をメモリに書き込むことが必要かどうかは、対象の前記属性に関連するメタ情報により示されることを特徴とする請求項1から請求項3のいずれか一項に記載の方法。 - 前記頂点シェーダ出力属性値を生成する時に、前記出力属性値がメモリに書き込まれるべきかどうかをテストする必要があるかどうかを判定する前記頂点シェーディングステージを含み、
前記出力属性値がメモリに書き込まれるべきかどうかをテストする必要性は、対象の前記属性に関連するメタ情報により示されることを特徴とする請求項1から請求項4のいずれか一項に記載の方法。 - 対象の前記属性の値を格納する時に用いられるメタ情報を、前記頂点シェーディングステージの1つまたは複数の前記出力属性と関連付けるステップと、
前記頂点シェーディングステージの前記出力属性の値を格納する時に、前記属性と関連する任意のメタ情報をまず読み取り、その後、前記属性の値を格納する時に、前記メタ情報を用いる、前記頂点シェーディングステージと、
を含むことを特徴とする請求項1から請求項5のいずれか一項に記載の方法。 - 複数のグラフィックス処理を処理する、グラフィックスを処理するためのシステムであって、
前記複数のグラフィックス処理は、
頂点シェーディングステージと、前記頂点シェーディングステージの次の少なくとも1つの処理ステージと、を備え、
前記頂点シェーディングステージは、入力属性値を処理して、グラフィックスプロセッサの少なくとも1つの次の処理ステージが用いる出力属性値を生成し、
前記システムは、
前記頂点シェーディングステージがインスタンス化されたモードで動作している場合、所与の描画呼び出しについて、
頂点シェーダ出力属性の依存する頂点シェーダ入力属性が、頂点毎にのみ定義されるか、またはインスタンス毎にのみ定義される、前記頂点シェーディングステージにより生成される頂点シェーダ出力属性を識別し、
前記生成される頂点シェーダ出力属性の依存する前記頂点シェーダ入力属性が、前記頂点毎にのみ定義されるか、または前記インスタンス毎にのみ定義されると認識されるとき、
前記頂点シェーディングステージに、
前記頂点シェーダ出力属性が、前記頂点毎に定義された入力属性にのみ依存した場合、前記出力属性値が適用されるインスタンスの数に関係なく、所与の頂点のために前記グラフィックスを処理するためのシステムの次のステージが用いる前記頂点シェーディングステージにより生成される前記頂点シェーダ出力属性値の1つのコピーのみを格納させ、
前記頂点シェーダ出力属性が、前記インスタンス毎に定義された入力属性にのみ依存した場合、前記出力属性値が適用される頂点の数に関係なく、所与のインスタンスのために前記グラフィックスを処理するためのシステムの次のステージが用いる前記頂点シェーディングステージにより生成される前記頂点シェーダ出力属性値の1つのコピーのみを格納させ、
前記生成される頂点シェーダ出力属性が、前記頂点毎に定義された入力属性にのみ、または前記インスタンス毎に定義された入力属性にのみ依存すると認識されたとき、
前記頂点シェーディングステージの出力を処理する、続く少なくとも1つのグラフィックス処理ステージに、
前記出力属性が前記頂点毎に定義された入力属性にのみ依存した場合、前記出力属性値が適用される各インスタンスについて、所与の頂点のために単一の前記格納された頂点シェーダ出力属性を用いさせ、
前記出力属性が前記インスタンス毎に定義された入力属性にのみ依存した場合、前記出力属性値が適用される各頂点について、所与のインスタンスのために単一の前記格納された頂点シェーダ出力属性値を用いさせる
ように構成される少なくとも1つのプロセッサを含むことを特徴とするシステム。 - 前記プロセッサは、
頂点シェーダコードをコンパイルする時に、前記出力属性がどの1つまたは複数の前記頂点シェーダ入力属性に依存しているかを、各前記頂点シェーダ出力属性について識別し、前記頂点シェーダの各出力属性がどの1つまたは複数の前記頂点シェーダ入力属性に依存しているかを、メタ情報に記録し、
前記メタ情報および、前記頂点シェーダ入力属性の前記頂点毎または前記インスタンス毎の依存性を定義する、描画呼び出しのためのパラメータ内の情報を用いて、所与の頂点シェーダ出力属性の前記頂点シェーダ入力属性が、前記頂点毎にのみ決まる属性なのか、前記インスタンス毎にのみ決まる属性なのかを判定する、
ように構成されることを特徴とする請求項7に記載のシステム。 - 前記プロセッサは、前記頂点シェーディングステージにおいて、
前記頂点シェーダ出力属性が、前記頂点毎に定義された入力属性にのみ依存した場合、前記出力属性値が依存する対応する入力属性値の頂点インデックスによりインデックスが付けられたメモリの位置に前記出力属性の値を格納させ、
前記頂点シェーダ出力属性が、前記インスタンス毎に定義された入力属性にのみ依存した場合、前記出力属性値が依存する対応する入力属性値のインスタンスインデックスによりインデックスが付けられたメモリの位置に前記出力属性の値を格納させ、
るように構成されることを特徴とする請求項7または請求項8に記載のシステム。 - 前記頂点シェーディングステージは、頂点シェーダ出力属性値を生成する時に、前記属性値をメモリに書き込むべきかどうかを判定するように構成され、
前記属性値をメモリに書き込むことが必要かどうかは、対象の前記属性に関連するメタ情報により示されることを特徴とする請求項7から9のいずれか一項に記載のシステム。 - 前記頂点シェーディングステージは、頂点シェーダ出力属性値を生成する時に、前記出力属性値がメモリに書き込まれるべきかどうかをテストする必要があるかどうかを判定するように構成され、
前記出力属性値がメモリに書き込まれるべきかどうかをテストする必要性は、対象の前記属性に関連するメタ情報により示されることを特徴とする請求項7から請求項10のいずれか一項に記載のシステム。 - 対象の前記属性の値を格納する時に用いられるメタ情報を、前記頂点シェーディングステージの1つまたは複数の前記出力属性と関連付けるように構成されるプロセッサを含み、
前記頂点シェーディングステージは、前記頂点シェーディングステージの出力属性の値を格納する時に、前記属性と関連する任意のメタ情報をまず読み取り、その後、前記属性の値を格納する時に、前記メタ情報を用いるように構成されることを特徴とする請求項7から11のいずれか一項に記載のシステム。 - データ処理手段上で実行されると、請求項1から請求項6のいずれか一項に記載の方法を実行するためのコンピュータソフトウェアコード部分を含むことを特徴とするコンピュータプログラム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GBGB1103699.3A GB201103699D0 (en) | 2011-03-03 | 2011-03-03 | Graphic processing |
GB1103699.3 | 2011-03-03 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012185821A JP2012185821A (ja) | 2012-09-27 |
JP6008515B2 true JP6008515B2 (ja) | 2016-10-19 |
Family
ID=43923197
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012046403A Active JP6008515B2 (ja) | 2011-03-03 | 2012-03-02 | グラフィックス処理 |
Country Status (4)
Country | Link |
---|---|
US (2) | US8976177B2 (ja) |
JP (1) | JP6008515B2 (ja) |
CN (1) | CN102708537B (ja) |
GB (3) | GB201103699D0 (ja) |
Families Citing this family (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB201103699D0 (en) | 2011-03-03 | 2011-04-20 | Advanced Risc Mach Ltd | Graphic processing |
GB201103698D0 (en) | 2011-03-03 | 2011-04-20 | Advanced Risc Mach Ltd | Graphics processing |
US10559123B2 (en) * | 2012-04-04 | 2020-02-11 | Qualcomm Incorporated | Patched shading in graphics processing |
US8928679B2 (en) * | 2012-09-14 | 2015-01-06 | Advanced Micro Devices, Inc. | Work distribution for higher primitive rates |
US9214008B2 (en) * | 2013-01-18 | 2015-12-15 | Nvidia Corporation | Shader program attribute storage |
US9269179B2 (en) * | 2013-03-15 | 2016-02-23 | Nvidia Corporation | System, method, and computer program product for generating primitive specific attributes |
US9836878B2 (en) * | 2013-03-15 | 2017-12-05 | Nvidia Corporation | System, method, and computer program product for processing primitive specific attributes generated by a fast geometry shader |
GB2514618B (en) * | 2013-05-31 | 2020-11-11 | Advanced Risc Mach Ltd | Data processing systems |
US10134102B2 (en) | 2013-06-10 | 2018-11-20 | Sony Interactive Entertainment Inc. | Graphics processing hardware for using compute shaders as front end for vertex shaders |
US10102603B2 (en) | 2013-06-10 | 2018-10-16 | Sony Interactive Entertainment Inc. | Scheme for compressing vertex shader output parameters |
US10096079B2 (en) * | 2013-06-10 | 2018-10-09 | Sony Interactive Entertainment Inc. | Fragment shaders perform vertex shader computations |
US10176621B2 (en) | 2013-06-10 | 2019-01-08 | Sony Interactive Entertainment Inc. | Using compute shaders as front end for vertex shaders |
US10935788B2 (en) * | 2014-01-24 | 2021-03-02 | Nvidia Corporation | Hybrid virtual 3D rendering approach to stereovision |
US20150281679A1 (en) * | 2014-03-28 | 2015-10-01 | Qualcomm Incorporated | Pixel data generation for autostereoscopy images |
US9842428B2 (en) * | 2014-06-27 | 2017-12-12 | Samsung Electronics Co., Ltd. | Dynamically optimized deferred rendering pipeline |
US9773294B2 (en) * | 2014-07-03 | 2017-09-26 | Mediatek Inc. | Graphics processing system for determining whether to store varying variables into varying buffer based at least partly on primitive size and related graphics processing method thereof |
GB2527822B (en) * | 2014-07-03 | 2020-10-07 | Advanced Risc Mach Ltd | Graphics processing |
KR20160074154A (ko) | 2014-12-18 | 2016-06-28 | 삼성전자주식회사 | 컴파일러 |
GB2536211B (en) * | 2015-03-04 | 2021-06-16 | Advanced Risc Mach Ltd | An apparatus and method for executing a plurality of threads |
US9804666B2 (en) | 2015-05-26 | 2017-10-31 | Samsung Electronics Co., Ltd. | Warp clustering |
US10089775B2 (en) | 2015-06-04 | 2018-10-02 | Samsung Electronics Co., Ltd. | Automated graphics and compute tile interleave |
US10403025B2 (en) | 2015-06-04 | 2019-09-03 | Samsung Electronics Co., Ltd. | Automated graphics and compute tile interleave |
CN105511996B (zh) * | 2015-12-11 | 2018-08-21 | 中国航空工业集团公司西安航空计算技术研究所 | 一种图形处理器内嵌可编程染色器验证平台 |
US10269166B2 (en) * | 2016-02-16 | 2019-04-23 | Nvidia Corporation | Method and a production renderer for accelerating image rendering |
US10062139B2 (en) * | 2016-07-25 | 2018-08-28 | Qualcomm Incorporated | Vertex shaders for binning based graphics processing |
US10460513B2 (en) | 2016-09-22 | 2019-10-29 | Advanced Micro Devices, Inc. | Combined world-space pipeline shader stages |
US10417815B2 (en) * | 2017-01-27 | 2019-09-17 | Advanced Micro Devices, Inc. | Out of order pixel shader exports |
US10186069B2 (en) * | 2017-02-15 | 2019-01-22 | Arm Limited | Methods and systems for grouping and executing initial pilot shader programs |
CN108257075B (zh) * | 2017-12-06 | 2021-07-16 | 中国航空工业集团公司西安航空计算技术研究所 | 一种顶点数组命令的解引用与组装方法 |
CN108363569B (zh) * | 2018-03-07 | 2021-06-11 | 腾讯科技(深圳)有限公司 | 应用中的图像帧生成方法、装置、设备及存储介质 |
US10891709B2 (en) * | 2019-03-27 | 2021-01-12 | Qualcomm Incorporated | Methods and apparatus for GPU attribute storage |
US10891708B1 (en) | 2019-11-25 | 2021-01-12 | Arm Limited | Shader program execution in graphics processing |
Family Cites Families (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2271260A (en) | 1992-10-02 | 1994-04-06 | Canon Res Ct Europe Ltd | Processing image data |
US6417858B1 (en) | 1998-12-23 | 2002-07-09 | Microsoft Corporation | Processor for geometry transformations and lighting calculations |
US6717577B1 (en) * | 1999-10-28 | 2004-04-06 | Nintendo Co., Ltd. | Vertex cache for 3D computer graphics |
US6624811B1 (en) * | 2000-08-31 | 2003-09-23 | Nvidia Corporation | System, method and article of manufacture for decomposing surfaces using guard curves and reversed stitching |
US6697074B2 (en) * | 2000-11-28 | 2004-02-24 | Nintendo Co., Ltd. | Graphics system interface |
CN1529288A (zh) * | 2003-10-10 | 2004-09-15 | 威盛电子股份有限公司 | 计算三维图形中各顶点的属性的方法 |
US8035646B2 (en) * | 2003-11-14 | 2011-10-11 | Microsoft Corporation | Systems and methods for downloading algorithmic elements to a coprocessor and corresponding techniques |
US6975325B2 (en) | 2004-01-23 | 2005-12-13 | Ati Technologies Inc. | Method and apparatus for graphics processing using state and shader management |
US7426724B2 (en) | 2004-07-02 | 2008-09-16 | Nvidia Corporation | Optimized chaining of vertex and fragment programs |
US7750914B2 (en) | 2004-08-26 | 2010-07-06 | Intel Corporation | Subdividing geometry images in graphics hardware |
US7733347B2 (en) | 2004-11-05 | 2010-06-08 | Microsoft Corporation | Automated construction of shader programs |
US7439983B2 (en) | 2005-02-10 | 2008-10-21 | Sony Computer Entertainment Inc. | Method and apparatus for de-indexing geometry |
US7885366B2 (en) | 2005-04-20 | 2011-02-08 | Panasonic Corporation | Stream data recording device, stream data editing device, stream data reproducing device, stream data recording method, and stream data reproducing method |
US7830390B2 (en) | 2005-07-19 | 2010-11-09 | Graphics Properties Holdings, Inc. | Color computation of pixels using a plurality of vertex or fragment shader programs |
US7898543B1 (en) | 2006-04-10 | 2011-03-01 | Nvidia Corporation | System and method for optimizing texture retrieval operations |
US8009172B2 (en) | 2006-08-03 | 2011-08-30 | Qualcomm Incorporated | Graphics processing unit with shared arithmetic logic unit |
KR100882842B1 (ko) | 2007-02-26 | 2009-02-17 | 삼성전자주식회사 | 피포를 포스트 버텍스 캐쉬처럼 사용하기 위한 기하학 처리장치와 그 방법 |
US8355028B2 (en) | 2007-07-30 | 2013-01-15 | Qualcomm Incorporated | Scheme for varying packing and linking in graphics systems |
US8325184B2 (en) | 2007-09-14 | 2012-12-04 | Qualcomm Incorporated | Fragment shader bypass in a graphics processing unit, and apparatus and method thereof |
US8698825B1 (en) | 2007-11-21 | 2014-04-15 | Nvidia Corporation | System, method, and computer program product for optimizing use of a vertex cache |
US9214007B2 (en) | 2008-01-25 | 2015-12-15 | Via Technologies, Inc. | Graphics processor having unified cache system |
US8284197B2 (en) * | 2008-07-11 | 2012-10-09 | Advanced Micro Devices, Inc. | Method and apparatus for rendering instance geometry |
US8269775B2 (en) * | 2008-12-09 | 2012-09-18 | Qualcomm Incorporated | Discarding of vertex points during two-dimensional graphics rendering using three-dimensional graphics hardware |
US8436854B2 (en) | 2009-05-29 | 2013-05-07 | Qualcomm Incorporated | Graphics processing unit with deferred vertex shading |
US9245371B2 (en) | 2009-09-11 | 2016-01-26 | Nvidia Corporation | Global stores and atomic operations |
GB2474114B (en) * | 2009-09-25 | 2012-02-15 | Advanced Risc Mach Ltd | Graphics processing systems |
US8326820B2 (en) | 2009-09-30 | 2012-12-04 | Microsoft Corporation | Long-query retrieval |
US8692829B2 (en) | 2009-10-05 | 2014-04-08 | Nvidia Corporation | Calculation of plane equations after determination of Z-buffer visibility |
US8619087B2 (en) | 2009-10-06 | 2013-12-31 | Nvidia Corporation | Inter-shader attribute buffer optimization |
US8558842B1 (en) | 2009-10-14 | 2013-10-15 | Nvidia Corporation | Parallel duplicate primitive vertex detection and batching |
US8669990B2 (en) | 2009-12-31 | 2014-03-11 | Intel Corporation | Sharing resources between a CPU and GPU |
JP5465145B2 (ja) | 2010-10-05 | 2014-04-09 | キヤノン株式会社 | 画像処理装置、画像処理方法、および画像記録装置 |
GB201103698D0 (en) | 2011-03-03 | 2011-04-20 | Advanced Risc Mach Ltd | Graphics processing |
GB201103699D0 (en) | 2011-03-03 | 2011-04-20 | Advanced Risc Mach Ltd | Graphic processing |
-
2011
- 2011-03-03 GB GBGB1103699.3A patent/GB201103699D0/en not_active Ceased
-
2012
- 2012-02-28 US US13/406,882 patent/US8976177B2/en active Active
- 2012-03-02 CN CN201210052924.7A patent/CN102708537B/zh active Active
- 2012-03-02 JP JP2012046403A patent/JP6008515B2/ja active Active
- 2012-03-02 GB GB1203674.5A patent/GB2488667B/en active Active
- 2012-03-02 GB GB1309683.9A patent/GB2504587B/en active Active
-
2015
- 2015-01-26 US US14/605,944 patent/US9865084B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
GB2488667A (en) | 2012-09-05 |
CN102708537A (zh) | 2012-10-03 |
US8976177B2 (en) | 2015-03-10 |
US20120223947A1 (en) | 2012-09-06 |
GB2504587A (en) | 2014-02-05 |
GB2504587B (en) | 2015-03-11 |
GB201103699D0 (en) | 2011-04-20 |
JP2012185821A (ja) | 2012-09-27 |
GB2488667B (en) | 2015-03-11 |
US9865084B2 (en) | 2018-01-09 |
US20150193969A1 (en) | 2015-07-09 |
GB201309683D0 (en) | 2013-07-17 |
CN102708537B (zh) | 2016-09-28 |
GB201203674D0 (en) | 2012-04-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6008515B2 (ja) | グラフィックス処理 | |
JP6108670B2 (ja) | グラフィックス処理 | |
Sellers et al. | Vulkan programming guide: The official guide to learning vulkan | |
US11676321B2 (en) | Graphics library extensions | |
Kessenich et al. | OpenGL Programming Guide: The official guide to learning OpenGL, version 4.5 with SPIR-V | |
KR102132040B1 (ko) | 그래픽스 프로세싱에서의 패치된 쉐이딩 | |
JP6403436B2 (ja) | データ処理システム | |
CN106233326B (zh) | 图形处理中基于显现目标的灵活显现 | |
KR102595713B1 (ko) | 그래픽 처리 시스템 | |
US9251551B2 (en) | Bindless memory access in direct 3D | |
US20150091892A1 (en) | Method and apparatus for rendering image data | |
WO2016028482A1 (en) | Render target command reordering in graphics processing | |
US20140354658A1 (en) | Shader Function Linking Graph | |
KR20180098690A (ko) | 그래픽 프로세싱에서 셰도우 레이들에 대한 트리 횡단을 위한 시작 노드 결정 | |
JP2016509718A (ja) | ビジビリティ情報を用いたグラフィックスデータのレンダリング | |
US10432914B2 (en) | Graphics processing systems and graphics processors | |
CN110738593B (zh) | 图形处理器及其操作方法、图形处理系统、编译器 | |
KR102676410B1 (ko) | 그래픽 처리 시스템 | |
US10593093B2 (en) | Data processing systems | |
US11107264B2 (en) | Graphics processing systems for determining blending operations | |
US20230401667A1 (en) | Graphics processing systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150220 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20151208 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20151214 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20160310 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20160516 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160614 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20160815 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160913 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6008515 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |