JP6162216B2 - グラフィックス処理におけるパッチされたシェーディング - Google Patents
グラフィックス処理におけるパッチされたシェーディング Download PDFInfo
- Publication number
- JP6162216B2 JP6162216B2 JP2015504598A JP2015504598A JP6162216B2 JP 6162216 B2 JP6162216 B2 JP 6162216B2 JP 2015504598 A JP2015504598 A JP 2015504598A JP 2015504598 A JP2015504598 A JP 2015504598A JP 6162216 B2 JP6162216 B2 JP 6162216B2
- Authority
- JP
- Japan
- Prior art keywords
- shading
- geometry
- vertex
- output
- unit
- 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 115
- 230000015654 memory Effects 0.000 claims description 130
- 238000009877 rendering Methods 0.000 claims description 81
- 238000000034 method Methods 0.000 claims description 74
- 239000000872 buffer Substances 0.000 description 60
- 238000003860 storage Methods 0.000 description 47
- 238000010586 diagram Methods 0.000 description 26
- 230000006870 function Effects 0.000 description 26
- 239000000835 fiber Substances 0.000 description 21
- 230000008569 process Effects 0.000 description 20
- 230000008859 change Effects 0.000 description 16
- 239000008186 active pharmaceutical agent Substances 0.000 description 13
- 238000004422 calculation algorithm Methods 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 4
- 230000007704 transition Effects 0.000 description 4
- 230000003321 amplification Effects 0.000 description 3
- 230000001934 delay Effects 0.000 description 3
- 239000012634 fragment Substances 0.000 description 3
- 238000003199 nucleic acid amplification method Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 229920001621 AMOLED Polymers 0.000 description 2
- 208000019300 CLIPPERS Diseases 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 208000021930 chronic lymphocytic inflammation with pontine perivascular enhancement responsive to steroids Diseases 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000002156 mixing Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 241000713311 Simian immunodeficiency virus Species 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008033 biological extinction Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 238000003708 edge detection Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 238000012821 model calculation Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- -1 vertex lighting Substances 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- 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
- G06T15/00—3D [Three Dimensional] image rendering
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Description
・IAVerticesは、プリミティブを生成する際に使用される頂点の数を指し得る。したがって、入力プリミティブのタイプが、三角形を生成するストリップである場合、IAVerticesは6であり得る。この値は、Windows(登録商標) Hardware Quality Labs(WHQL)の数字と一致し得る。この値は、プリミティブコントローラ(PC)からの2ビットのパルスを使用して制御され得る。パッチのプリミティブのために、値は、制御ポイントごとに1だけインクリメントされ得る。
・IAPrimitivesは、生成された完成した入力プリミティブの数を指し得る。この値は、リセットをもたらし得る部分的なプリミティブを何ら含まなくてよい。この値は、WQHLの数字と一致し得る。この値は、プリミティブが生成された後で、さらには、リセットインデックスと部分的なプリミティブの脱落とを確認した後で、PCからの1ビットのパルスを使用して制御され得る。
・VSInvocationsは、VS操作が呼び出される回数を指し得る。この値は頂点の再使用の後に設定されてよく、VSステージが呼び出される対象である固有の頂点の数を決定し得る。この値は、GPU 36の具体的なハードウェアに依存し得る。この値は、一度に最大で3つの頂点に対する頂点の再使用をPCが確認すると、PCからの2ビットのパルスを使用して制御され得る。GSおよびハルシェーダ(HS)(たとえば、図12A〜図13Bに関して以下で説明されるような)の場合に対しては通常、頂点の再使用はない。したがって、PCは、VSInvocationsとして、ドローコール中のプリミティブにおける頂点の数を送ることができる。
・HSInvocationsは、HSを経たパッチの数を指し得る。この値は、DirectX 11のようないくつかのAPIの新たな値であり得る。この値は、部分的なパッチを何ら含まなくてよい。この値は、パッチが頂点フェッチデコーダ(VFD)に完全に送られると、PCおよびHSブロックからの1つのビットパルスを使用して制御され得る。この値はまた、WHQLの数字と一致すべきである。
・DSInvocationsは、ドメインシェーダ(DS)操作が呼び出される回数を指し得る。この値は、テッセレーションの出力プリミティブのタイプが点というタイプである場合、WHQLと一致すべきである。この値は、生成されている各ドメイン点(u,v)に対して、PC中のテッセレーションエンジン(TE)からの1ビットのパルスを使用して制御される。
・GSInvocationsは、GS操作が呼び出される回数を指し得る。GSinstancecount値が使用される場合、各インスタンスは、1つのGS呼出しとしてカウントされる。この値は、WHQLの数字と一致すべきである。この値は、Gsinstanceごとに、入力プリミティブごとに一度送られる、GSブロックからの1ビットのパルスを使用して制御され得る。いくつかの例では、GSブロックは、GS増幅がウェーブサイズより大きい場合、入力GSプリミティブを複数回送ることができる。この値は通常、GS入力プリミティブごとに一度カウントされる。
・GSPrimitivesは、生成されるGS出力プリミティブの数を指し得る。この値は、「切断」操作に起因する部分的なプリミティブを何ら含まなくてよい。この値は、WHQLの数字と一致し得る。この値は、プリミティブが構成される位置キャッシュへのアクセスの後で、かつ、「切断」操作または頂点消滅イベントが原因で部分的なプリミティブが脱落した後で、PCからの出力プリミティブごとに1ビットのパルスを使用して制御され得る。
・CInvocationsは、いわゆる「クリッパー」が実行される回数を指し得る。この値は、GPU 36の具体的なハードウェアに依存し得る。
・CPrimitivesは、クリッパーが生成したプリミティブの数を指し得る。この値は、GPU 36の具体的なハードウェアに依存し得る。
・PSInvocationsは、ピクセルシェーダ(PS)のスレッド(「ファイバー」とも呼ばれ得る)が呼び出される回数を指し得る。
・CSInvocationsは、計算ファイバーが呼び出される回数を指し得る。
・NumPrimitiveWrittenは、ドローコールが終了する前に、所与のストリームに対して書かれるプリミティブの総数を指し得る。この値はまた、完成したプリミティブのためのバッファの記憶容量がなくなったときに、ストリームと結び付けられるバッファのデータを含み得る。この値は、完成したプリミティブを記憶するための空間が所与のストリームのバッファのいずれかに存在するたびに、頂点パラメータキャッシュ(VPC)からCPへのストリームごとの1ビットのパルスを使用して制御され得る。
・PrimitiveStorageNeededは、ストリームと結び付けられるいずれのバッファの記憶容量もなくなっていなければ書き込まれることが可能であったであろう、プリミティブの総数を指し得る。この値は、ストリームに対するプリミティブがGSによって生成されるたびに、VPCからCPへのストリームごとに1ビットのパルスを使用して制御され得る。
以下に本願発明の当初の特許請求の範囲に記載された発明を付記する。
[C1]
グラフィックスをレンダリングする方法であって、
頂点シェーディングのために指定されるグラフィックスプロセシングユニットのハードウェアシェーディングユニットを用いて、頂点シェーディングされた頂点を出力するために、入力された頂点をシェーディングする頂点シェーディング操作を実行することと、ここにおいて、前記ハードウェアユニットは、入力として単一の頂点を受け取り、出力として単一の頂点を生成するように構成される、
前記グラフィックスプロセシングユニットの前記ハードウェアシェーディングユニットを用いて、前記頂点シェーディングされた頂点の1つまたは複数に基づいて1つまたは複数の新たな頂点を生成する、ジオメトリシェーディング操作を実行することと
を備え、前記ジオメトリシェーディング操作は、前記1つまたは複数の新たな頂点を出力するために、前記1つまたは複数の頂点シェーディングされた頂点の少なくとも1つで行われる、方法。
[C2]
前記ジオメトリシェーディング操作を実行することは、
前記グラフィックスプロセシングユニットの前記ハードウェアシェーディングユニットを用いて、ジオメトリシェーダプログラムの第1のインスタンスを実行することと、
前記グラフィックスプロセシングユニットの前記ハードウェアシェーディングユニットを用いて、ジオメトリシェーダプログラムの第2のインスタンスを実行することと、
前記ハードウェアシェーディングユニットの前記インターフェースを堅持するために、前記ジオメトリシェーダプログラムの前記第1のインスタンスから単一のジオメトリシェーディングされた出力を出力することと、
前記ハードウェアシェーディングユニットの前記インターフェースを堅持するために、前記ジオメトリシェーダプログラムの前記第2のインスタンスから第2の単一のジオメトリシェーディングされた出力を出力することと
を備える、C1に記載の方法。
[C3]
前記ジオメトリシェーダプログラムの前記第1のインスタンスと、前記ジオメトリシェーダプログラムの前記第2のインスタンスとを、前記ハードウェアシェーディングユニットを用いて同時に実行することをさらに備える、
C2に記載の方法。
[C4]
前記ジオメトリシェーダプログラムの前記第1のインスタンスが、第1のジオメトリシェーダ出力識別子を割り当てられ、
前記ジオメトリシェーダプログラムの前記第2のインスタンスが、第2のジオメトリシェーダ出力識別子を割り当てられ、
前記単一のジオメトリシェーディングされた出力を出力することは、出力カウンタに対する前記第1のジオメトリシェーダ出力識別子の比較に基づいて、前記単一のジオメトリシェーディングされた出力を出力することを備え、
前記第2のジオメトリシェーディングされた出力を出力することは、前記出力カウンタに対する前記第2のジオメトリシェーダ出力識別子の比較に基づいて、前記第2の単一のジオメトリシェーディングされた出力を出力することを備える、
C2に記載の方法。
[C5]
ドローコールを実行すると前記頂点シェーディング操作を実行するように前記ハードウェアシェーディングユニットを指定することをさらに備える、
C1に記載の方法。
[C6]
前記ジオメトリシェーディング操作を実行する前に、前記ジオメトリシェーディング操作のために、プログラムカウンタと1つまたは複数のリソースポインタとを切り替えることをさらに備える、
C1に記載の方法。
[C7]
前記ジオメトリシェーディング操作を実行することが、前記グラフィックスプロセシングユニットの外部に位置するオフチップメモリから前記頂点シェーディングされた頂点の前記1つまたは複数を取り出すことを含まないように、前記1つまたは複数の頂点シェーディングされた頂点をローカルメモリに記憶することをさらに備える、
C1に記載の方法。
[C8]
前記ハードウェアシェーディングユニットを用いて、前記1つまたは複数の新たな頂点の前記少なくとも1つから追加の新たな頂点を生成するために、前記1つまたは複数の新たな頂点の少なくとも1つに対して別のジオメトリシェーディング操作を実行することをさらに備える、
C1に記載の方法。
[C9]
前記頂点シェーディング操作およびジオメトリシェーディング操作が順番に実行されるように、前記ジオメトリシェーディング操作と関連付けられる命令を前記頂点シェーディング操作と関連付けられる命令に付加することをさらに備える、
C1に記載の方法。
[C10]
1つまたは複数のプロセッサを備える、グラフィックスをレンダリングするためのグラフィックスプロセシングユニットであって、前記1つまたは複数のプロセッサは、
頂点シェーディングのために指定される前記グラフィックスプロセシングユニットのハードウェアシェーディングユニットを用いて、頂点シェーディングされた頂点を出力するために、入力された頂点をシェーディングする、頂点シェーディング操作を実行することと、ここにおいて、前記ハードウェアユニットは、入力として単一の頂点を受け取り、出力として単一の頂点を生成する、
前記グラフィックスプロセシングユニットの前記ハードウェアシェーディングユニットを用いて、前記頂点シェーディングされた頂点の1つまたは複数に基づいて1つまたは複数の新たな頂点を生成するために、ジオメトリシェーディング操作を実行することと
を行うように構成され、前記ジオメトリシェーディング操作は、前記1つまたは複数の新たな頂点を出力するために、前記1つまたは複数の頂点シェーディングされた頂点の少なくとも1つに対して行われる、グラフィックスプロセシングユニット。
[C11]
前記ジオメトリシェーディング操作を実行するために、前記ハードウェアシェーディングユニットは、
ジオメトリシェーダプログラムの第1のインスタンスを実行することと、
ジオメトリシェーダプログラムの第2のインスタンスを実行することと、
前記ハードウェアシェーディングユニットの前記インターフェースを堅持するために、前記ジオメトリシェーダプログラムの前記第1のインスタンスから単一のジオメトリシェーディングされた出力を出力することと、
前記ハードウェアシェーディングユニットの前記インターフェースを堅持するために、前記ジオメトリシェーダプログラムの前記第2のインスタンスから第2の単一のジオメトリシェーディングされた出力を出力することと
を行うように構成される、C10に記載のグラフィックスプロセシングユニット。
[C12]
前記ハードウェアシェーディングユニットがさらに、前記ジオメトリシェーダプログラムの前記第1のインスタンスと、前記ジオメトリシェーダプログラムの前記第2のインスタンスとを、同時に実行するように構成される、
C11に記載のグラフィックスプロセシングユニット。
[C13]
前記1つまたは複数のプロセッサは、
前記ジオメトリシェーダプログラムの前記第1のインスタンスに、第1のジオメトリシェーダ出力識別子を割り当てることと、
前記ジオメトリシェーダプログラムの前記第2のインスタンスに、第2のジオメトリシェーダ出力識別子を割り当てることと
を行うようにさらに構成され、
前記単一のジオメトリシェーディングされた出力を出力するために、前記ハードウェアシェーディングユニットは、出力カウンタに対する前記第1のジオメトリシェーダ出力識別子の比較に基づいて、前記単一のジオメトリシェーディングされた出力を出力することを行うように構成され、
前記第2のジオメトリシェーディングされた出力を出力するために、前記ハードウェアシェーディングユニットは、前記出力カウンタに対する前記第2のジオメトリシェーダ出力識別子の比較に基づいて、前記第2の単一のジオメトリシェーディングされた出力を出力することを行うように構成される、
C11に記載のグラフィックスプロセシングユニット。
[C14]
前記1つまたは複数のプロセッサは、ドローコールを実行すると前記頂点シェーディング操作を実行するように前記ハードウェアシェーディングユニットを指定するように構成される、
C10に記載のグラフィックスプロセシングユニット。
[C15]
前記1つまたは複数のプロセッサは、前記ジオメトリシェーディング操作を実行する前に、前記ジオメトリシェーディング操作のために、プログラムカウンタと1つまたは複数のリソースポインタとを切り替えるように構成される、
C10に記載のグラフィックスプロセシングユニット。
[C16]
ローカルのグラフィックスプロセシングユニットのメモリをさらに備え、前記1つまたは複数のプロセッサは、前記ジオメトリシェーディング操作を実行するために、前記1つまたは複数のプロセッサが、前記グラフィックスプロセシングユニットの外部に位置するオフチップメモリから前記頂点シェーディングされた頂点の前記1つまたは複数を取り出さないように、前記ローカルのグラフィックスプロセシングユニットのメモリに前記1つまたは複数の頂点シェーディングされた頂点を記憶することを行うように構成される、
C10に記載のグラフィックスプロセシングユニット。
[C17]
前記ハードウェアシェーディングユニットは、前記1つまたは複数の新たな頂点の前記少なくとも1つから追加の新たな頂点を生成するために、前記1つまたは複数の新たな頂点の少なくとも1つに対して別のジオメトリシェーディング操作を実行することを行うようにさらに構成される、
C10に記載のグラフィックスプロセシングユニット。
[C18]
前記1つまたは複数のプロセッサは、前記ハードウェアシェーディングユニットが、前記頂点シェーディング操作とジオメトリシェーディング操作とを順番に実行するように、前記ジオメトリシェーディング操作と関連付けられる命令を、前記頂点シェーディング操作と関連付けられる命令に付加するように構成される、
C10に記載のグラフィックスプロセシングユニット。
[C19]
グラフィックスをレンダリングするための装置であって、
頂点シェーディングのために指定されるグラフィックスプロセシングユニットのハードウェアシェーディングユニットを用いて、頂点シェーディングされた頂点を出力するために、入力された頂点をシェーディングする頂点シェーディング操作を実行するための手段と、ここにおいて、前記ハードウェアユニットは、入力として単一の頂点を受け取り、出力として単一の頂点を生成するように構成される、
前記グラフィックスプロセシングユニットの前記ハードウェアシェーディングユニットを用いて、前記頂点シェーディングされた頂点の1つまたは複数に基づいて1つまたは複数の新たな頂点を生成するために、ジオメトリシェーディング操作を実行するための手段と
を備え、前記ジオメトリシェーディング操作は、前記1つまたは複数の新たな頂点を出力するために、前記1つまたは複数の頂点シェーディングされた頂点の少なくとも1つに対して行われる、装置。
[C20]
前記ジオメトリシェーディング操作を実行するための前記手段は、
前記グラフィックスプロセシングユニットの前記ハードウェアシェーディングユニットを用いて、ジオメトリシェーダプログラムの第1のインスタンスを実行するための手段と、
前記グラフィックスプロセシングユニットの前記ハードウェアシェーディングユニットを用いて、ジオメトリシェーダプログラムの第2のインスタンスを実行するための手段と、
前記ハードウェアシェーディングユニットの前記インターフェースを堅持するために、前記ジオメトリシェーダプログラムの前記第1のインスタンスから単一のジオメトリシェーディングされた出力を出力するための手段と、
前記ハードウェアシェーディングユニットの前記インターフェースを堅持するために、前記ジオメトリシェーダプログラムの前記第2のインスタンスから第2の単一のジオメトリシェーディングされた出力を出力するための手段と
を備える、C19に記載の装置。
[C21]
前記ジオメトリシェーダプログラムの前記第1のインスタンスと、前記ジオメトリシェーダプログラムの前記第2のインスタンスとを、前記ハードウェアシェーディングユニットを用いて同時に実行するための手段をさらに備える、
C20に記載の装置。
[C22]
前記ジオメトリシェーダプログラムの前記第1のインスタンスは、第1のジオメトリシェーダ出力識別子を割り当てられ、
前記ジオメトリシェーダプログラムの前記第2のインスタンスは、第2のジオメトリシェーダ出力識別子を割り当てられ、
前記単一のジオメトリシェーディングされた出力を出力するための前記手段は、出力カウンタに対する前記第1のジオメトリシェーダ出力識別子の比較に基づいて、前記単一のジオメトリシェーディングされた出力を出力するための手段を備え、
前記第2のジオメトリシェーディングされた出力を出力するための前記手段は、前記出力カウンタに対する前記第2のジオメトリシェーダ出力識別子の比較に基づいて、前記第2の単一のジオメトリシェーディングされた出力を出力するための手段を備える、
C20に記載の装置。
[C23]
ドローコールを実行すると前記頂点シェーディング操作を実行するように前記ハードウェアシェーディングユニットを指定するための手段をさらに備える、
C19に記載の装置。
[C24]
前記ジオメトリシェーディング操作を実行する前に、前記ジオメトリシェーディング操作のためにプログラムカウンタと1つまたは複数のリソースポインタとを切り替えるための手段をさらに備える、
C19に記載の装置。
[C25]
前記ジオメトリシェーディング操作を実行するための手段が、前記グラフィックスプロセシングユニットの外部に位置するオフチップメモリから前記頂点シェーディングされた頂点の前記1つまたは複数を取り出すための手段を含まないように、前記1つまたは複数の頂点シェーディングされた頂点をローカルメモリに記憶するための手段をさらに備える、
C19に記載の装置。
[C26]
前記1つまたは複数の新たな頂点の前記少なくとも1つから追加の新たな頂点を生成するために、前記1つまたは複数の新たな頂点の少なくとも1つに対して別のジオメトリシェーディング操作を実行するための手段をさらに備える、
C19に記載の装置。
[C27]
前記頂点シェーディング操作およびジオメトリシェーディング操作が順番に実行されるように、前記ジオメトリシェーディング操作と関連付けられる命令を前記頂点シェーディング操作と関連付けられる命令に付加するための手段をさらに備える、
C19に記載の装置。
[C28]
命令を記憶した非一時的コンピュータ可読媒体であって、前記命令が、実行されると、1つまたは複数のプロセッサに、
頂点シェーディングのために指定されるグラフィックスプロセシングユニットのハードウェアシェーディングユニットを用いて、頂点シェーディングされた頂点を出力するために、入力された頂点をシェーディングする頂点シェーディング操作を実行することと、ここにおいて前記ハードウェアユニットが、入力として単一の頂点を受け取り、出力として単一の頂点を生成するように構成される、
頂点シェーディングのために指定される前記ハードウェアシェーディングユニットを用いて、前記頂点シェーディングされた頂点の1つまたは複数に基づいて1つまたは複数の新たな頂点を生成するために、ジオメトリシェーディング操作を実行することと
を行わせ、前記ジオメトリシェーディング操作は、前記1つまたは複数の新たな頂点を出力するために、前記1つまたは複数の頂点シェーディングされた頂点の少なくとも1つに対して行われる、非一時的コンピュータ可読媒体。
[C29]
前記ジオメトリシェーディング操作を実行するために、命令は、前記ハードウェアシェーディングユニットに、
ジオメトリシェーダプログラムの第1のインスタンスを実行することと、
ジオメトリシェーダプログラムの第2のインスタンスを実行することと、
前記ハードウェアシェーディングユニットの前記インターフェースを堅持するために、前記ジオメトリシェーダプログラムの前記第1のインスタンスから単一のジオメトリシェーディングされた出力を出力することと、
前記ハードウェアシェーディングユニットの前記インターフェースを堅持するために、前記ジオメトリシェーダプログラムの前記第2のインスタンスから第2の単一のジオメトリシェーディングされた出力を出力することとを行わせる、
C28に記載の非一時的コンピュータ可読媒体。
[C30]
前記ハードウェアシェーディングユニットに、前記ジオメトリシェーダプログラムの前記第1のインスタンスと、前記ジオメトリシェーダプログラムの前記第2のインスタンスとを、同時に実行することを行わせる命令をさらに備える、
C29に記載の非一時的コンピュータ可読媒体。
[C31]
前記1つまたは複数のプロセッサに、
前記ジオメトリシェーダプログラムの前記第1のインスタンスへ、第1のジオメトリシェーダ出力識別子を割り当てさせ、
前記ジオメトリシェーダプログラムの前記第2のインスタンスへ、第2のジオメトリシェーダ出力識別子を割り当てることを行わせる命令をさらに備え、
前記単一のジオメトリシェーディングされた出力を出力するために、前記命令は、前記ハードウェアシェーディングユニットに、出力カウンタに対する前記第1のジオメトリシェーダ出力識別子の比較に基づいて、前記単一のジオメトリシェーディングされた出力を出力することを行わせ、
前記第2のジオメトリシェーディングされた出力を出力するために、前記命令は、前記ハードウェアシェーディングユニットに、前記出力カウンタに対する前記第2のジオメトリシェーダ出力識別子の比較に基づいて、前記第2の単一のジオメトリシェーディングされた出力を出力することを行わせる、
C29に記載の非一時的コンピュータ可読媒体。
[C32]
前記1つまたは複数のプロセッサに、ドローコールを実行すると前記頂点シェーディング操作を実行するように前記ハードウェアシェーディングユニットを指定することを行わせる命令をさらに備える、
C28に記載の非一時的コンピュータ可読媒体。
[C33]
前記1つまたは複数のプロセッサに、前記ジオメトリシェーディング操作を実行する前に、前記ジオメトリシェーディング操作のために、プログラムカウンタと1つまたは複数のリソースポインタとを切り替えることを行わせる命令をさらに備える、
C28に記載の非一時的コンピュータ可読媒体。
[C34]
前記ジオメトリシェーディング操作を実行するために、前記1つまたは複数のプロセッサが外部メモリから前記頂点シェーディングされた頂点の前記1つまたは複数を取り出さないように、前記1つまたは複数のプロセッサに、ローカルメモリへ前記1つまたは複数の頂点シェーディングされた頂点を記憶させる命令をさらに備える、
C28に記載の非一時的コンピュータ可読媒体。
[C35]
前記1つまたは複数のプロセッサに、前記1つまたは複数の新たな頂点の前記少なくとも1つから追加の新たな頂点を生成するために、前記1つまたは複数の新たな頂点の少なくとも1つに対して別のジオメトリシェーディング操作を実行することを行わせる命令をさらに備える、
C28に記載の非一時的コンピュータ可読媒体。
[C36]
前記1つまたは複数のプロセッサに、前記頂点シェーディング操作および前記ジオメトリシェーディング操作が順番に実行されるように、前記ジオメトリシェーディング操作と関連付けられる命令を前記頂点シェーディング操作と関連付けられる命令へ付加させる命令をさらに備える、
C28に記載の非一時的コンピュータ可読媒体。
Claims (28)
- グラフィックスをレンダリングする方法であって、
前記グラフィックスをレンダリングするためのドローコールを実行することと、
前記ドローコールを実行すると、頂点シェーディング操作を実行するようにグラフィックスプロセシングユニットのハードウェアシェーディングユニットを指定することと、
前記頂点シェーディング操作およびジオメトリシェーディング操作が順番に実行されるように、前記ジオメトリシェーディング操作と関連付けられる命令を前記頂点シェーディング操作と関連付けられる命令に付加することと、
前記グラフィックスプロセシングユニットの前記ハードウェアシェーディングユニットを用いて、頂点シェーディングされた頂点を出力するために、複数の入力された頂点をシェーディングする頂点シェーディング操作を実行すること、ここにおいて、前記頂点シェーディング操作を実行することは、前記ハードウェアシェーディングユニットが、前記複数の入力された頂点のそれぞれの入力された頂点ごとに単一の頂点を出力することを備える、と、
前記グラフィックスプロセシングユニットの前記ハードウェアシェーディングユニットを用いて、前記頂点シェーディングされた頂点の1つまたは複数に基づいて1つまたは複数の新たな頂点を生成するために、前記ジオメトリシェーディング操作を実行することと
を備え、前記ジオメトリシェーディング操作は、前記1つまたは複数の新たな頂点を出力するために、前記1つまたは複数の頂点シェーディングされた頂点の少なくとも1つに対して行われる、方法。 - 前記ジオメトリシェーディング操作を実行することは、
前記グラフィックスプロセシングユニットの前記ハードウェアシェーディングユニットを用いて、ジオメトリシェーダプログラムの第1のインスタンスを実行することと、
前記グラフィックスプロセシングユニットの前記ハードウェアシェーディングユニットを用いて、ジオメトリシェーダプログラムの第2のインスタンスを実行することと、
前記ハードウェアシェーディングユニットのインターフェースを堅持するために、前記ジオメトリシェーダプログラムの前記第1のインスタンスから単一のジオメトリシェーディングされた出力を出力することと、
前記ハードウェアシェーディングユニットの前記インターフェースを堅持するために、前記ジオメトリシェーダプログラムの前記第2のインスタンスから第2の単一のジオメトリシェーディングされた出力を出力することと
を備える、請求項1に記載の方法。 - 前記ジオメトリシェーダプログラムの前記第1のインスタンスと、前記ジオメトリシェーダプログラムの前記第2のインスタンスとを、前記ハードウェアシェーディングユニットを用いて同時に実行することをさらに備える、
請求項2に記載の方法。 - 前記ジオメトリシェーダプログラムの前記第1のインスタンスが、第1のジオメトリシェーダ出力識別子を割り当てられ、
前記ジオメトリシェーダプログラムの前記第2のインスタンスが、第2のジオメトリシェーダ出力識別子を割り当てられ、
前記単一のジオメトリシェーディングされた出力を出力することは、出力カウンタに対する前記第1のジオメトリシェーダ出力識別子の比較に基づいて、前記単一のジオメトリシェーディングされた出力を出力することを備え、
前記第2の単一のジオメトリシェーディングされた出力を出力することは、前記出力カウンタに対する前記第2のジオメトリシェーダ出力識別子の比較に基づいて、前記第2の単一のジオメトリシェーディングされた出力を出力することを備える、
請求項2に記載の方法。 - 前記ジオメトリシェーディング操作を実行する前に、前記ジオメトリシェーディング操作のために、プログラムカウンタと1つまたは複数のリソースポインタとを切り替えることをさらに備える、
請求項1に記載の方法。 - 前記ジオメトリシェーディング操作を実行することが、前記グラフィックスプロセシングユニットの外部に位置するオフチップメモリから前記頂点シェーディングされた頂点の前記1つまたは複数を取り出すことを含まないように、前記1つまたは複数の頂点シェーディングされた頂点をローカルメモリに記憶することをさらに備える、
請求項1に記載の方法。 - 前記ハードウェアシェーディングユニットを用いて、前記1つまたは複数の新たな頂点の前記少なくとも1つから追加の新たな頂点を生成するために、前記1つまたは複数の新たな頂点の少なくとも1つに対して別のジオメトリシェーディング操作を実行することをさらに備える、
請求項1に記載の方法。 - ハードウェアシェーディングユニットおよび1つまたは複数のプロセッサを備える、グラフィックスをレンダリングするためのグラフィックスプロセシングユニットであって、前記1つまたは複数のプロセッサは、
前記グラフィックスをレンダリングするためのドローコールを実行することと、
前記ドローコールを実行すると、頂点シェーディング操作を実行するように前記ハードウェアシェーディングユニットを指定することと、
前記ハードウェアシェーディングユニットが、前記頂点シェーディング操作とジオメトリシェーディング操作とを順番に実行するように、前記ジオメトリシェーディング操作と関連付けられる命令を、前記頂点シェーディング操作と関連付けられる命令に付加することと
を行うように構成され、前記グラフィックスプロセシングユニットの前記ハードウェアシェーディングユニットは、頂点シェーディングされた頂点を出力するために、複数の入力された頂点をシェーディングする頂点シェーディング操作を実行するように構成され、ここにおいて、前記頂点シェーディング操作を実行することは、前記ハードウェアシェーディングユニットが、前記複数の入力された頂点のそれぞれの入力された頂点ごとに単一の頂点を出力することを備える、
前記グラフィックスプロセシングユニットの前記ハードウェアシェーディングユニットは、前記頂点シェーディングされた頂点の1つまたは複数に基づいて1つまたは複数の新たな頂点を生成するために、前記ジオメトリシェーディング操作を実行するように構成され、ここにおいて、前記ジオメトリシェーディング操作は、前記1つまたは複数の新たな頂点を出力するために、前記1つまたは複数の頂点シェーディングされた頂点の少なくとも1つに対して行われる、グラフィックスプロセシングユニット。 - 前記ジオメトリシェーディング操作を実行するために、前記ハードウェアシェーディングユニットは、
ジオメトリシェーダプログラムの第1のインスタンスを実行することと、
ジオメトリシェーダプログラムの第2のインスタンスを実行することと、
前記ハードウェアシェーディングユニットのインターフェースを堅持するために、前記ジオメトリシェーダプログラムの前記第1のインスタンスから単一のジオメトリシェーディングされた出力を出力することと、
前記ハードウェアシェーディングユニットの前記インターフェースを堅持するために、前記ジオメトリシェーダプログラムの前記第2のインスタンスから第2の単一のジオメトリシェーディングされた出力を出力することと
を行うように構成される、請求項8に記載のグラフィックスプロセシングユニット。 - 前記ハードウェアシェーディングユニットがさらに、前記ジオメトリシェーダプログラムの前記第1のインスタンスと、前記ジオメトリシェーダプログラムの前記第2のインスタンスとを、同時に実行するように構成される、
請求項9に記載のグラフィックスプロセシングユニット。 - 前記1つまたは複数のプロセッサは、
前記ジオメトリシェーダプログラムの前記第1のインスタンスに、第1のジオメトリシェーダ出力識別子を割り当てることと、
前記ジオメトリシェーダプログラムの前記第2のインスタンスに、第2のジオメトリシェーダ出力識別子を割り当てることと
を行うようにさらに構成され、
前記単一のジオメトリシェーディングされた出力を出力するために、前記ハードウェアシェーディングユニットは、出力カウンタに対する前記第1のジオメトリシェーダ出力識別子の比較に基づいて、前記単一のジオメトリシェーディングされた出力を出力することを行うように構成され、
前記第2の単一のジオメトリシェーディングされた出力を出力するために、前記ハードウェアシェーディングユニットは、前記出力カウンタに対する前記第2のジオメトリシェーダ出力識別子の比較に基づいて、前記第2の単一のジオメトリシェーディングされた出力を出力することを行うように構成される、
請求項9に記載のグラフィックスプロセシングユニット。 - 前記1つまたは複数のプロセッサは、前記ジオメトリシェーディング操作を実行する前に、前記ジオメトリシェーディング操作のために、プログラムカウンタと1つまたは複数のリソースポインタとを切り替えるように構成される、
請求項8に記載のグラフィックスプロセシングユニット。 - ローカルのグラフィックスプロセシングユニットのメモリをさらに備え、前記1つまたは複数のプロセッサは、前記ジオメトリシェーディング操作を実行するために、前記1つまたは複数のプロセッサが、前記グラフィックスプロセシングユニットの外部に位置するオフチップメモリから前記頂点シェーディングされた頂点の前記1つまたは複数を取り出さないように、前記ローカルのグラフィックスプロセシングユニットのメモリに前記1つまたは複数の頂点シェーディングされた頂点を記憶することを行うように構成される、
請求項8に記載のグラフィックスプロセシングユニット。 - 前記ハードウェアシェーディングユニットは、前記1つまたは複数の新たな頂点の前記少なくとも1つから追加の新たな頂点を生成するために、前記1つまたは複数の新たな頂点の少なくとも1つに対して別のジオメトリシェーディング操作を実行することを行うようにさらに構成される、
請求項8に記載のグラフィックスプロセシングユニット。 - グラフィックスをレンダリングするための装置であって、
前記グラフィックスをレンダリングするためのドローコールを実行するための手段と、
前記ドローコールを実行すると、頂点シェーディング操作を実行するようにグラフィックスプロセシングユニットのハードウェアシェーディングユニットを指定するための手段と、
前記頂点シェーディング操作およびジオメトリシェーディング操作が順番に実行されるように、前記ジオメトリシェーディング操作と関連付けられる命令を前記頂点シェーディング操作と関連付けられる命令に付加するための手段と、
前記グラフィックスプロセシングユニットの前記ハードウェアシェーディングユニットを用いて、頂点シェーディングされた頂点を出力するために、複数の入力された頂点をシェーディングする頂点シェーディング操作を実行するための手段、ここにおいて、前記頂点シェーディング操作を実行することは、前記ハードウェアシェーディングユニットが、前記複数の入力された頂点のそれぞれの入力された頂点ごとに単一の頂点を出力することを備える、と、
前記グラフィックスプロセシングユニットの前記ハードウェアシェーディングユニットを用いて、前記頂点シェーディングされた頂点の1つまたは複数に基づいて1つまたは複数の新たな頂点を生成するために、前記ジオメトリシェーディング操作を実行するための手段と
を備え、前記ジオメトリシェーディング操作は、前記1つまたは複数の新たな頂点を出力するために、前記1つまたは複数の頂点シェーディングされた頂点の少なくとも1つに対して行われる、装置。 - 前記ジオメトリシェーディング操作を実行するための前記手段は、
前記グラフィックスプロセシングユニットの前記ハードウェアシェーディングユニットを用いて、ジオメトリシェーダプログラムの第1のインスタンスを実行するための手段と、
前記グラフィックスプロセシングユニットの前記ハードウェアシェーディングユニットを用いて、ジオメトリシェーダプログラムの第2のインスタンスを実行するための手段と、
前記ハードウェアシェーディングユニットのインターフェースを堅持するために、前記ジオメトリシェーダプログラムの前記第1のインスタンスから単一のジオメトリシェーディングされた出力を出力するための手段と、
前記ハードウェアシェーディングユニットの前記インターフェースを堅持するために、前記ジオメトリシェーダプログラムの前記第2のインスタンスから第2の単一のジオメトリシェーディングされた出力を出力するための手段と
を備える、請求項15に記載の装置。 - 前記ジオメトリシェーダプログラムの前記第1のインスタンスと、前記ジオメトリシェーダプログラムの前記第2のインスタンスとを、前記ハードウェアシェーディングユニットを用いて同時に実行するための手段をさらに備える、
請求項16に記載の装置。 - 前記ジオメトリシェーダプログラムの前記第1のインスタンスは、第1のジオメトリシェーダ出力識別子を割り当てられ、
前記ジオメトリシェーダプログラムの前記第2のインスタンスは、第2のジオメトリシェーダ出力識別子を割り当てられ、
前記単一のジオメトリシェーディングされた出力を出力するための前記手段は、出力カウンタに対する前記第1のジオメトリシェーダ出力識別子の比較に基づいて、前記単一のジオメトリシェーディングされた出力を出力するための手段を備え、
前記第2の単一のジオメトリシェーディングされた出力を出力するための前記手段は、前記出力カウンタに対する前記第2のジオメトリシェーダ出力識別子の比較に基づいて、前記第2の単一のジオメトリシェーディングされた出力を出力するための手段を備える、
請求項16に記載の装置。 - 前記ジオメトリシェーディング操作を実行する前に、前記ジオメトリシェーディング操作のために、プログラムカウンタと1つまたは複数のリソースポインタとを切り替えるための手段をさらに備える、
請求項15に記載の装置。 - 前記ジオメトリシェーディング操作を実行するための手段が、前記グラフィックスプロセシングユニットの外部に位置するオフチップメモリから前記頂点シェーディングされた頂点の前記1つまたは複数を取り出すための手段を含まないように、前記1つまたは複数の頂点シェーディングされた頂点をローカルメモリに記憶するための手段をさらに備える、
請求項15に記載の装置。 - 前記1つまたは複数の新たな頂点の前記少なくとも1つから追加の新たな頂点を生成するために、前記1つまたは複数の新たな頂点の少なくとも1つに対して別のジオメトリシェーディング操作を実行するための手段をさらに備える、
請求項15に記載の装置。 - 命令を記憶した非一時的コンピュータ可読媒体であって、前記命令が、実行されると、1つまたは複数のプロセッサに、
グラフィックスをレンダリングするためのドローコールを実行することと、
前記ドローコールを実行すると、頂点シェーディング操作を実行するようにグラフィックスプロセシングユニットのハードウェアシェーディングユニットを指定することと、
前記1つまたは複数のプロセッサに、前記頂点シェーディング操作およびジオメトリシェーディング操作が順番に実行されるように、前記ジオメトリシェーディング操作と関連付けられる命令を前記頂点シェーディング操作と関連付けられる命令へ付加することと、
前記グラフィックスプロセシングユニットの前記ハードウェアシェーディングユニットを用いて、頂点シェーディングされた頂点を出力するために、複数の入力された頂点をシェーディングする頂点シェーディング操作を実行すること、ここにおいて、前記頂点シェーディング操作を実行することは、前記ハードウェアシェーディングユニットが、前記複数の入力された頂点のそれぞれの入力された頂点ごとに単一の頂点を出力することを備える、と、
頂点シェーディングのために指定される前記ハードウェアシェーディングユニットを用いて、前記頂点シェーディングされた頂点の1つまたは複数に基づいて1つまたは複数の新たな頂点を生成するために、前記ジオメトリシェーディング操作を実行することと
を行わせ、前記ジオメトリシェーディング操作は、前記1つまたは複数の新たな頂点を出力するために、前記1つまたは複数の頂点シェーディングされた頂点の少なくとも1つに対して行われる、非一時的コンピュータ可読媒体。 - 前記ジオメトリシェーディング操作を実行するために、命令は、前記ハードウェアシェーディングユニットに、
ジオメトリシェーダプログラムの第1のインスタンスを実行することと、
ジオメトリシェーダプログラムの第2のインスタンスを実行することと、
前記ハードウェアシェーディングユニットのインターフェースを堅持するために、前記ジオメトリシェーダプログラムの前記第1のインスタンスから単一のジオメトリシェーディングされた出力を出力することと、
前記ハードウェアシェーディングユニットの前記インターフェースを堅持するために、前記ジオメトリシェーダプログラムの前記第2のインスタンスから第2の単一のジオメトリシェーディングされた出力を出力することと
を行わせる、請求項22に記載の非一時的コンピュータ可読媒体。 - 前記ハードウェアシェーディングユニットに、前記ジオメトリシェーダプログラムの前記第1のインスタンスと、前記ジオメトリシェーダプログラムの前記第2のインスタンスとを、同時に実行することを行わせる命令をさらに備える、
請求項23に記載の非一時的コンピュータ可読媒体。 - 前記1つまたは複数のプロセッサに、
前記ジオメトリシェーダプログラムの前記第1のインスタンスへ、第1のジオメトリシェーダ出力識別子を割り当てることと、
前記ジオメトリシェーダプログラムの前記第2のインスタンスへ、第2のジオメトリシェーダ出力識別子を割り当てることと
を行わせる命令をさらに備え、
前記単一のジオメトリシェーディングされた出力を出力するために、前記命令は、前記ハードウェアシェーディングユニットに、出力カウンタに対する前記第1のジオメトリシェーダ出力識別子の比較に基づいて、前記単一のジオメトリシェーディングされた出力を出力することを行わせ、
前記第2の単一のジオメトリシェーディングされた出力を出力するために、前記命令は、前記ハードウェアシェーディングユニットに、前記出力カウンタに対する前記第2のジオメトリシェーダ出力識別子の比較に基づいて、前記第2の単一のジオメトリシェーディングされた出力を出力することを行わせる、
請求項23に記載の非一時的コンピュータ可読媒体。 - 前記1つまたは複数のプロセッサに、前記ジオメトリシェーディング操作を実行する前に、前記ジオメトリシェーディング操作のために、プログラムカウンタと1つまたは複数のリソースポインタとを切り替えることを行わせる命令をさらに備える、
請求項22に記載の非一時的コンピュータ可読媒体。 - 前記ジオメトリシェーディング操作を実行するために、前記1つまたは複数のプロセッサが外部メモリから前記頂点シェーディングされた頂点の前記1つまたは複数を取り出さないように、前記1つまたは複数のプロセッサに、ローカルメモリへ前記1つまたは複数の頂点シェーディングされた頂点を記憶させる命令をさらに備える、
請求項22に記載の非一時的コンピュータ可読媒体。 - 前記1つまたは複数のプロセッサに、前記1つまたは複数の新たな頂点の前記少なくとも1つから追加の新たな頂点を生成するために、前記1つまたは複数の新たな頂点の少なくとも1つに対して別のジオメトリシェーディング操作を実行することを行わせる命令をさらに備える、
請求項22に記載の非一時的コンピュータ可読媒体。
Applications Claiming Priority (9)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261620333P | 2012-04-04 | 2012-04-04 | |
US201261620340P | 2012-04-04 | 2012-04-04 | |
US201261620358P | 2012-04-04 | 2012-04-04 | |
US61/620,358 | 2012-04-04 | ||
US61/620,333 | 2012-04-04 | ||
US61/620,340 | 2012-04-04 | ||
US13/830,145 | 2013-03-14 | ||
US13/830,145 US9412197B2 (en) | 2012-04-04 | 2013-03-14 | Patched shading in graphics processing |
PCT/US2013/032136 WO2013151751A2 (en) | 2012-04-04 | 2013-03-15 | Patched shading in graphics processing |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2015529860A JP2015529860A (ja) | 2015-10-08 |
JP2015529860A5 JP2015529860A5 (ja) | 2016-11-24 |
JP6162216B2 true JP6162216B2 (ja) | 2017-07-12 |
Family
ID=49291929
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015504598A Active JP6162216B2 (ja) | 2012-04-04 | 2013-03-15 | グラフィックス処理におけるパッチされたシェーディング |
JP2015504596A Expired - Fee Related JP6258293B2 (ja) | 2012-04-04 | 2013-03-15 | グラフィックス処理におけるパッチされたシェーディング |
JP2015504597A Active JP6162215B2 (ja) | 2012-04-04 | 2013-03-15 | グラフィックス処理におけるパッチされたシェーディング |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015504596A Expired - Fee Related JP6258293B2 (ja) | 2012-04-04 | 2013-03-15 | グラフィックス処理におけるパッチされたシェーディング |
JP2015504597A Active JP6162215B2 (ja) | 2012-04-04 | 2013-03-15 | グラフィックス処理におけるパッチされたシェーディング |
Country Status (6)
Country | Link |
---|---|
US (6) | US10535185B2 (ja) |
EP (3) | EP2834793B1 (ja) |
JP (3) | JP6162216B2 (ja) |
KR (3) | KR102046676B1 (ja) |
CN (3) | CN104246829B (ja) |
WO (3) | WO2013151751A2 (ja) |
Families Citing this family (85)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10817043B2 (en) * | 2011-07-26 | 2020-10-27 | Nvidia Corporation | System and method for entering and exiting sleep mode in a graphics subsystem |
US10535185B2 (en) | 2012-04-04 | 2020-01-14 | 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 |
US9013500B2 (en) * | 2012-10-22 | 2015-04-21 | The Boeing Company | Real time intervisibility analysis |
US9299123B2 (en) | 2013-01-22 | 2016-03-29 | Qualcomm Incorporated | Indexed streamout buffers for graphics processing |
US10255650B2 (en) * | 2013-05-24 | 2019-04-09 | Sony Interactive Entertainment Inc. | Graphics processing using dynamic resources |
US9495722B2 (en) | 2013-05-24 | 2016-11-15 | Sony Interactive Entertainment Inc. | Developer controlled layout |
US9299181B2 (en) * | 2013-08-28 | 2016-03-29 | Qualcomm Incorporated | Target independent stenciling in graphics processing |
EP3058552A4 (en) * | 2013-10-14 | 2017-05-17 | Marvell World Trade Ltd. | Systems and methods for graphics process units power management |
US10198856B2 (en) * | 2013-11-11 | 2019-02-05 | Oxide Interactive, LLC | Method and system of anti-aliasing shading decoupled from rasterization |
US9483862B2 (en) * | 2013-12-20 | 2016-11-01 | Qualcomm Incorporated | GPU-accelerated path rendering |
US9280845B2 (en) * | 2013-12-27 | 2016-03-08 | Qualcomm Incorporated | Optimized multi-pass rendering on tiled base architectures |
US9679347B2 (en) * | 2014-02-18 | 2017-06-13 | Qualcomm Incorporated | Shader pipeline with shared data channels |
US10068311B2 (en) | 2014-04-05 | 2018-09-04 | Sony Interacive Entertainment LLC | Varying effective resolution by screen location by changing active color sample count within multiple render targets |
US9865074B2 (en) | 2014-04-05 | 2018-01-09 | Sony Interactive Entertainment America Llc | Method for efficient construction of high resolution display buffers |
US9836816B2 (en) | 2014-04-05 | 2017-12-05 | Sony Interactive Entertainment America Llc | Varying effective resolution by screen location in graphics processing by approximating projection of vertices onto curved viewport |
US9495790B2 (en) | 2014-04-05 | 2016-11-15 | Sony Interactive Entertainment America Llc | Gradient adjustment for texture mapping to non-orthonormal grid |
US9710957B2 (en) * | 2014-04-05 | 2017-07-18 | Sony Interactive Entertainment America Llc | Graphics processing enhancement by tracking object and/or primitive identifiers |
US11302054B2 (en) | 2014-04-05 | 2022-04-12 | Sony Interactive Entertainment Europe Limited | Varying effective resolution by screen location by changing active color sample count within multiple render targets |
US9652882B2 (en) | 2014-04-05 | 2017-05-16 | Sony Interactive Entertainment America Llc | Gradient adjustment for texture mapping for multiple render targets with resolution that varies by screen location |
US9710881B2 (en) | 2014-04-05 | 2017-07-18 | Sony Interactive Entertainment America Llc | Varying effective resolution by screen location by altering rasterization parameters |
US10783696B2 (en) | 2014-04-05 | 2020-09-22 | Sony Interactive Entertainment LLC | Gradient adjustment for texture mapping to non-orthonormal grid |
EP3129958B1 (en) | 2014-04-05 | 2021-06-02 | Sony Interactive Entertainment LLC | Method for efficient re-rendering objects to vary viewports and under varying rendering and rasterization parameters |
GB2526359B (en) * | 2014-05-23 | 2020-07-22 | Advanced Risc Mach Ltd | Graphics processing systems |
US20150348224A1 (en) * | 2014-05-30 | 2015-12-03 | Apple Inc. | Graphics Pipeline State Object And Model |
US10430169B2 (en) | 2014-05-30 | 2019-10-01 | Apple Inc. | Language, function library, and compiler for graphical and non-graphical computation on a graphical processor unit |
US10346941B2 (en) | 2014-05-30 | 2019-07-09 | Apple Inc. | System and method for unified application programming interface and model |
US9842428B2 (en) * | 2014-06-27 | 2017-12-12 | Samsung Electronics Co., Ltd. | Dynamically optimized deferred rendering pipeline |
US20150378920A1 (en) * | 2014-06-30 | 2015-12-31 | John G. Gierach | Graphics data pre-fetcher for last level caches |
CN106687924A (zh) * | 2014-07-10 | 2017-05-17 | 英特尔公司 | 用于基于当前状态来更新着色器程序的方法和装置 |
US9665975B2 (en) * | 2014-08-22 | 2017-05-30 | Qualcomm Incorporated | Shader program execution techniques for use in graphics processing |
KR102313020B1 (ko) * | 2014-11-27 | 2021-10-15 | 삼성전자주식회사 | 그래픽스 프로세싱 유닛과 이를 포함하는 장치 |
US9489710B2 (en) * | 2015-02-10 | 2016-11-08 | Qualcomm Incorporated | Hybrid rendering in graphics processing |
US9804666B2 (en) | 2015-05-26 | 2017-10-31 | Samsung Electronics Co., Ltd. | Warp clustering |
GB2539042B (en) * | 2015-06-05 | 2019-08-21 | Imagination Tech Ltd | Tessellation method using displacement factors |
US9786098B2 (en) * | 2015-07-06 | 2017-10-10 | Mediatek Inc. | Apparatus for performing tessellation operation and methods utilizing the same |
US11087644B2 (en) | 2015-08-19 | 2021-08-10 | E Ink Corporation | Displays intended for use in architectural applications |
KR102472131B1 (ko) | 2015-09-03 | 2022-11-29 | 삼성전자주식회사 | 쉐이더 프로그램을 생성하는 방법 및 장치 |
CN106547505B (zh) * | 2015-09-22 | 2021-02-05 | 同方威视技术股份有限公司 | 用于实时滑动显示扫描图像的方法及系统 |
US9824458B2 (en) * | 2015-09-23 | 2017-11-21 | Qualcomm Incorporated | Dynamically switching between late depth testing and conservative depth testing |
US9842376B2 (en) * | 2015-09-29 | 2017-12-12 | Qualcomm Incorporated | Graphics processing unit preemption with pixel tile level granularity |
KR102381945B1 (ko) * | 2015-11-18 | 2022-04-01 | 삼성전자주식회사 | 그래픽 프로세싱 장치 및 그래픽 프로세싱 장치에서 그래픽스 파이프라인을 수행하는 방법 |
US10332310B2 (en) * | 2015-12-22 | 2019-06-25 | Nvidia Corporation | Distributed index fetch, primitive assembly, and primitive batching |
US20170236318A1 (en) * | 2016-02-15 | 2017-08-17 | Microsoft Technology Licensing, Llc | Animated Digital Ink |
US20170243375A1 (en) * | 2016-02-18 | 2017-08-24 | Qualcomm Incorporated | Multi-step texture processing with feedback in texture unit |
US10456672B2 (en) | 2016-05-19 | 2019-10-29 | Google Llc | Methods and systems for facilitating participation in a game session |
JP6599569B2 (ja) | 2016-05-24 | 2019-10-30 | イー インク コーポレイション | ディスプレイ上に画像をレンダリングする方法、ディスプレイデバイスおよびコンピューティングデバイスを備える装置、ならびに、非一過性コンピュータ記憶媒体 |
CN107578745A (zh) * | 2016-07-04 | 2018-01-12 | 上海和辉光电有限公司 | Fpga器件以及使用该器件的amoled显示电路 |
CN106210883A (zh) * | 2016-08-11 | 2016-12-07 | 浙江大华技术股份有限公司 | 一种视频渲染的方法、设备 |
US11379941B2 (en) | 2016-09-22 | 2022-07-05 | Advanced Micro Devices, Inc. | Primitive shader |
US10460513B2 (en) * | 2016-09-22 | 2019-10-29 | Advanced Micro Devices, Inc. | Combined world-space pipeline shader stages |
KR102644276B1 (ko) * | 2016-10-10 | 2024-03-06 | 삼성전자주식회사 | 그래픽 처리 장치 및 방법 |
US10346943B2 (en) | 2017-01-03 | 2019-07-09 | Microsoft Technology Licensing, Llc | Prefetching for a graphics shader |
US10650566B2 (en) | 2017-02-15 | 2020-05-12 | Microsoft Technology Licensing, Llc | Multiple shader processes in graphics processing |
GB2560709B (en) * | 2017-03-14 | 2021-02-24 | Imagination Tech Ltd | Graphics processing method and system for processing sub-primitives |
US10685473B2 (en) * | 2017-05-31 | 2020-06-16 | Vmware, Inc. | Emulation of geometry shaders and stream output using compute shaders |
EP4336800A3 (en) | 2017-10-10 | 2024-05-29 | Google LLC | Distributed sample-based game profiling with game metadata and metrics and gaming api platform supporting third-party content |
US10600142B2 (en) * | 2017-11-02 | 2020-03-24 | Advanced Micro Devices, Inc. | Compression and decompression of indices in a graphics pipeline |
US11080927B2 (en) * | 2017-11-30 | 2021-08-03 | Advanced Micro Devices, Inc. | Method and apparatus of cross shader compilation |
US10621782B1 (en) | 2017-12-06 | 2020-04-14 | Apple Inc. | Sub-patch techniques for graphics tessellation |
US10467723B2 (en) * | 2017-12-21 | 2019-11-05 | Qualcomm Incorporated | Tile-based check values for data content integrity in a GPU subsystem |
US10504280B2 (en) * | 2018-01-10 | 2019-12-10 | Qualcomm Incorporated | Accelerated occlusion computation |
GB2570304B (en) * | 2018-01-18 | 2022-06-01 | Imagination Tech Ltd | Topology preservation in a graphics pipeline |
JP7005763B2 (ja) | 2018-03-22 | 2022-01-24 | グーグル エルエルシー | オンラインインタラクティブゲーミングセッションのコンテンツをレンダリングおよび符号化するための方法およびシステム |
JP7073526B2 (ja) | 2018-04-02 | 2022-05-23 | グーグル エルエルシー | インタラクティブなクラウドゲームのための方法、デバイス、およびシステム |
US11077364B2 (en) | 2018-04-02 | 2021-08-03 | Google Llc | Resolution-based scaling of real-time interactive graphics |
GB2572617B (en) | 2018-04-05 | 2021-06-16 | Imagination Tech Ltd | Blending hardware |
JP7073494B2 (ja) | 2018-04-10 | 2022-05-23 | グーグル エルエルシー | ゲームレンダリングにおけるメモリ管理 |
GB2573316B (en) * | 2018-05-02 | 2021-01-27 | Advanced Risc Mach Ltd | Data processing systems |
KR102589969B1 (ko) | 2018-11-05 | 2023-10-16 | 삼성전자주식회사 | 지연 쉐이딩에서 보간을 수행하는 그래픽스 처리 장치, 그래픽스 처리 시스템 및 그래픽스 처리 방법 |
US11662051B2 (en) | 2018-11-16 | 2023-05-30 | Google Llc | Shadow tracking of real-time interactive simulations for complex system analysis |
US11080928B2 (en) * | 2019-04-01 | 2021-08-03 | Qualcomm Incorporated | Methods and apparatus for visibility stream management |
US11243752B2 (en) * | 2019-07-11 | 2022-02-08 | Advanced Micro Devices, Inc. | Multi-version shaders |
US10930062B2 (en) * | 2019-07-18 | 2021-02-23 | Raytheon Company | 3D view model generation of an object utilizing geometrically diverse image clusters |
US11189002B1 (en) * | 2019-07-24 | 2021-11-30 | Parallels International Gmbh | System and method for detecting when geometry shaders output a constant amount of data |
US11436783B2 (en) | 2019-10-16 | 2022-09-06 | Oxide Interactive, Inc. | Method and system of decoupled object space shading |
US11037358B1 (en) * | 2020-01-03 | 2021-06-15 | Qualcomm Incorporated | Methods and apparatus for reducing memory bandwidth in multi-pass tessellation |
US11170461B2 (en) * | 2020-02-03 | 2021-11-09 | Sony Interactive Entertainment Inc. | System and method for efficient multi-GPU rendering of geometry by performing geometry analysis while rendering |
US11508110B2 (en) | 2020-02-03 | 2022-11-22 | Sony Interactive Entertainment Inc. | System and method for efficient multi-GPU rendering of geometry by performing geometry analysis before rendering |
US12112394B2 (en) | 2020-02-03 | 2024-10-08 | Sony Interactive Entertainment Inc. | System and method for efficient multi-GPU rendering of geometry by pretesting against screen regions using configurable shaders |
US11514549B2 (en) | 2020-02-03 | 2022-11-29 | Sony Interactive Entertainment Inc. | System and method for efficient multi-GPU rendering of geometry by generating information in one rendering phase for use in another rendering phase |
CN112604293A (zh) * | 2020-12-28 | 2021-04-06 | 完美世界(北京)软件科技发展有限公司 | 数据处理方法、装置、电子设备及可读介质 |
US12002142B2 (en) * | 2021-07-12 | 2024-06-04 | Qualcomm Incorporated | Performance overhead optimization in GPU scoping |
US11908079B2 (en) * | 2022-04-08 | 2024-02-20 | Qualcomm Incorporated | Variable rate tessellation |
CN118154759B (zh) * | 2024-05-06 | 2024-07-26 | 武汉凌久微电子有限公司 | 一种可编程管线gpu中固定管线功能实现方法 |
Family Cites Families (51)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5109504A (en) * | 1989-12-29 | 1992-04-28 | Texas Instruments Incorporated | Graphics program adaptor |
JPH0830471A (ja) | 1994-07-14 | 1996-02-02 | Hitachi Ltd | ジョブの実行プロセサ変更方式 |
WO2000011603A2 (en) | 1998-08-20 | 2000-03-02 | Apple Computer, Inc. | Graphics processor with pipeline state storage and retrieval |
GB9825102D0 (en) | 1998-11-16 | 1999-01-13 | Insignia Solutions Plc | Computer system |
US7196710B1 (en) * | 2000-08-23 | 2007-03-27 | Nintendo Co., Ltd. | Method and apparatus for buffering graphics data in a graphics system |
US6732354B2 (en) * | 2002-04-23 | 2004-05-04 | Quicksilver Technology, Inc. | Method, system and software for programming reconfigurable hardware |
US7109987B2 (en) | 2004-03-02 | 2006-09-19 | Ati Technologies Inc. | Method and apparatus for dual pass adaptive tessellation |
US7385607B2 (en) | 2004-04-12 | 2008-06-10 | Nvidia Corporation | Scalable shader architecture |
US7570267B2 (en) | 2004-05-03 | 2009-08-04 | Microsoft Corporation | Systems and methods for providing an enhanced graphics pipeline |
US7671862B1 (en) * | 2004-05-03 | 2010-03-02 | Microsoft Corporation | Systems and methods for providing an enhanced graphics pipeline |
US7750914B2 (en) | 2004-08-26 | 2010-07-06 | Intel Corporation | Subdividing geometry images in graphics hardware |
US20070083870A1 (en) | 2005-07-29 | 2007-04-12 | Tomochika Kanakogi | Methods and apparatus for task sharing among a plurality of processors |
JPWO2007049610A1 (ja) | 2005-10-25 | 2009-04-30 | 三菱電機株式会社 | 画像処理装置 |
US7468726B1 (en) | 2005-12-01 | 2008-12-23 | Nvidia Corporation | Culling in a vertex processing unit |
US7533237B1 (en) | 2006-05-11 | 2009-05-12 | Nvidia Corporation | Off-chip memory allocation for a unified shader |
US8154554B1 (en) | 2006-07-28 | 2012-04-10 | Nvidia Corporation | Unified assembly instruction set for graphics processing |
US20080094408A1 (en) | 2006-10-24 | 2008-04-24 | Xiaoqin Yin | System and Method for Geometry Graphics Processing |
US7701459B1 (en) | 2006-11-03 | 2010-04-20 | Nvidia Corporation | Primitive oriented assembly for parallel vertex/geometry processing |
JP2008276407A (ja) | 2007-04-26 | 2008-11-13 | Canon Inc | 画像処理装置及びその方法 |
US8325184B2 (en) | 2007-09-14 | 2012-12-04 | Qualcomm Incorporated | Fragment shader bypass in a graphics processing unit, and apparatus and method thereof |
WO2009058845A1 (en) | 2007-10-30 | 2009-05-07 | Advanced Micro Devices | Real-time mesh simplification using the graphics-processing unit |
US8031194B2 (en) | 2007-11-09 | 2011-10-04 | Vivante Corporation | Intelligent configurable graphics bandwidth modulator |
US8922565B2 (en) * | 2007-11-30 | 2014-12-30 | Qualcomm Incorporated | System and method for using a secondary processor in a graphics system |
US8174534B2 (en) | 2007-12-06 | 2012-05-08 | Via Technologies, Inc. | Shader processing systems and methods |
JP2011510396A (ja) | 2008-01-23 | 2011-03-31 | インテル コーポレイション | グラフィック・パフォーマンス改善のための方法、装置およびコンピュータ・プログラム・プロダクト |
US20090189896A1 (en) | 2008-01-25 | 2009-07-30 | Via Technologies, Inc. | Graphics Processor having Unified Shader Unit |
US8643644B2 (en) | 2008-03-20 | 2014-02-04 | Qualcomm Incorporated | Multi-stage tessellation for graphics rendering |
CN101271584B (zh) | 2008-04-11 | 2010-11-10 | 威盛电子股份有限公司 | 可编程图形处理单元计算核心的常量缓冲的方法和系统 |
US8259111B2 (en) | 2008-05-30 | 2012-09-04 | Advanced Micro Devices, Inc. | Merged shader for primitive amplification |
US20100079454A1 (en) | 2008-09-29 | 2010-04-01 | Legakis Justin S | Single Pass Tessellation |
US20100123717A1 (en) | 2008-11-20 | 2010-05-20 | Via Technologies, Inc. | Dynamic Scheduling in a Graphics Processor |
US20100164954A1 (en) * | 2008-12-31 | 2010-07-01 | Sathe Rahul P | Tessellator Whose Tessellation Time Grows Linearly with the Amount of Tessellation |
US8482560B2 (en) | 2008-12-31 | 2013-07-09 | Intel Corporation | Image forming techniques |
US8436854B2 (en) | 2009-05-29 | 2013-05-07 | Qualcomm Incorporated | Graphics processing unit with deferred vertex shading |
US8471858B2 (en) | 2009-06-02 | 2013-06-25 | Qualcomm Incorporated | Displaying a visual representation of performance metrics for rendered graphics elements |
US8289341B2 (en) | 2009-06-29 | 2012-10-16 | Intel Corporation | Texture sampling |
US8633928B2 (en) | 2009-08-13 | 2014-01-21 | Intel Corporation | Reducing the bandwidth of sampler loads in shaders |
US8854381B2 (en) | 2009-09-03 | 2014-10-07 | Advanced Micro Devices, Inc. | Processing unit that enables asynchronous task dispatch |
US9142057B2 (en) | 2009-09-03 | 2015-09-22 | Advanced Micro Devices, Inc. | Processing unit with a plurality of shader engines |
US8884957B2 (en) * | 2009-09-09 | 2014-11-11 | Advanced Micro Devices, Inc. | Tessellation engine and applications thereof |
US8917271B2 (en) | 2009-10-05 | 2014-12-23 | Nvidia Corporation | Redistribution of generated geometric primitives |
US8786618B2 (en) | 2009-10-08 | 2014-07-22 | Nvidia Corporation | Shader program headers |
US8810592B2 (en) | 2009-10-09 | 2014-08-19 | Nvidia Corporation | Vertex attribute buffer for inline immediate attributes and constants |
US8427493B2 (en) | 2009-10-13 | 2013-04-23 | Nvidia Corporation | Draw commands with built-in begin/end |
JP2011227864A (ja) | 2010-03-31 | 2011-11-10 | Asahi Kasei Corp | 画像視点変換装置、画像視点変換方法、画像視点変換プログラム |
GB201007348D0 (en) | 2010-04-30 | 2010-06-16 | Imagination Tech Ltd | Programmable tessellation in a tile based rendering system |
US20110310102A1 (en) | 2010-06-17 | 2011-12-22 | Via Technologies, Inc. | Systems and methods for subdividing and storing vertex data |
US8499305B2 (en) | 2010-10-15 | 2013-07-30 | Via Technologies, Inc. | Systems and methods for performing multi-program general purpose shader kickoff |
GB201103699D0 (en) | 2011-03-03 | 2011-04-20 | Advanced Risc Mach Ltd | Graphic processing |
US20120229460A1 (en) | 2011-03-12 | 2012-09-13 | Sensio Technologies Inc. | Method and System for Optimizing Resource Usage in a Graphics Pipeline |
US10535185B2 (en) | 2012-04-04 | 2020-01-14 | Qualcomm Incorporated | Patched shading in graphics processing |
-
2013
- 2013-03-14 US US13/830,075 patent/US10535185B2/en active Active
- 2013-03-14 US US13/829,900 patent/US10559123B2/en not_active Expired - Fee Related
- 2013-03-14 US US13/830,145 patent/US9412197B2/en active Active
- 2013-03-15 EP EP13713315.3A patent/EP2834793B1/en active Active
- 2013-03-15 KR KR1020147030786A patent/KR102046676B1/ko active IP Right Grant
- 2013-03-15 KR KR1020147030830A patent/KR101784671B1/ko active IP Right Grant
- 2013-03-15 CN CN201380018326.0A patent/CN104246829B/zh active Active
- 2013-03-15 WO PCT/US2013/032136 patent/WO2013151751A2/en active Application Filing
- 2013-03-15 CN CN201380018497.3A patent/CN104813367B/zh active Active
- 2013-03-15 CN CN201380018600.4A patent/CN104205174B/zh active Active
- 2013-03-15 JP JP2015504598A patent/JP6162216B2/ja active Active
- 2013-03-15 EP EP13714779.9A patent/EP2834794B1/en active Active
- 2013-03-15 WO PCT/US2013/032098 patent/WO2013151748A2/en active Application Filing
- 2013-03-15 KR KR1020147030816A patent/KR102132040B1/ko active IP Right Grant
- 2013-03-15 WO PCT/US2013/032123 patent/WO2013151750A2/en active Application Filing
- 2013-03-15 JP JP2015504596A patent/JP6258293B2/ja not_active Expired - Fee Related
- 2013-03-15 EP EP13713314.6A patent/EP2834792A2/en active Pending
- 2013-03-15 JP JP2015504597A patent/JP6162215B2/ja active Active
-
2019
- 2019-12-11 US US16/711,098 patent/US11200733B2/en active Active
-
2021
- 2021-11-09 US US17/522,178 patent/US11769294B2/en active Active
-
2023
- 2023-08-09 US US18/447,155 patent/US20240104837A1/en active Pending
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6162216B2 (ja) | グラフィックス処理におけるパッチされたシェーディング | |
JP5960368B2 (ja) | ビジビリティ情報を用いたグラフィックスデータのレンダリング | |
US9799088B2 (en) | Render target command reordering in graphics processing | |
US11676321B2 (en) | Graphics library extensions | |
CN106233326B (zh) | 图形处理中基于显现目标的灵活显现 | |
JP6271768B2 (ja) | 共有されるデータチャネルを用いるシェーダパイプライン | |
CN113838180A (zh) | 一种渲染指令处理方法及其相关设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20160217 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160930 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20160930 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20170117 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20170117 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170131 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170427 |
|
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: 20170516 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170614 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6162216 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 |