JP5770375B2 - シェーダ動作の同期化 - Google Patents
シェーダ動作の同期化 Download PDFInfo
- Publication number
- JP5770375B2 JP5770375B2 JP2014521633A JP2014521633A JP5770375B2 JP 5770375 B2 JP5770375 B2 JP 5770375B2 JP 2014521633 A JP2014521633 A JP 2014521633A JP 2014521633 A JP2014521633 A JP 2014521633A JP 5770375 B2 JP5770375 B2 JP 5770375B2
- Authority
- JP
- Japan
- Prior art keywords
- graphics data
- shader
- producer
- buffer
- producer shader
- 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.)
- Expired - Fee Related
Links
- 239000000872 buffer Substances 0.000 claims description 304
- 238000000034 method Methods 0.000 claims description 56
- 230000006870 function Effects 0.000 description 13
- 239000012536 storage buffer Substances 0.000 description 12
- 238000010586 diagram Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 239000003086 colorant Substances 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000002156 mixing Methods 0.000 description 2
- 241000023320 Luma <angiosperm> Species 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- 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
- 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
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Image Generation (AREA)
Description
以下に、本願の出願当初請求項に記載された発明を付記する。
[1]方法であって、
グラフィックス処理ユニット(GPU)を用いて、グラフィックスデータを作成するプロデューサシェーダを実行することと、
前記GPUを用いて、前記プロデューサシェーダによって作成された前記グラフィックスデータを第1のバッファの記憶ロケーションに記憶することと、
前記グラフィックスデータの前記作成が完了すると、前記GPU上で実行される前記プロデューサシェーダを用いて、前記プロデューサシェーダによって作成された前記グラフィックスデータの量を示す値を第2のバッファの記憶ロケーションに記憶することと
を備える前記方法。
[2]前記第1のバッファおよび前記第2のバッファが共通のバッファの一部である、[1]に記載の方法。
[3]前記プロデューサシェーダによって作成されたグラフィックスデータの前記量を示す前記値を前記第2のバッファの前記記憶ロケーションに記憶した後に、前記第1のバッファの前記記憶ロケーションに記憶された前記グラフィックスデータを使用するために1つまたは複数のコンシューマシェーダを実行することをさらに備える、[1]に記載の方法。
[4]前記プロデューサシェーダが第1のプロデューサシェーダを備え、前記グラフィックスデータが第1のグラフィックスデータを備え、前記第2のバッファが第1の記憶ロケーションと第2の記憶ロケーションとを備え、前記値が前記第2のバッファの前記第1の記憶ロケーションに記憶され、前記方法が、
第2のグラフィックスデータを作成する第2のプロデューサシェーダを実行することと、
前記第2のプロデューサシェーダによって作成された前記第2のグラフィックスデータを前記第1のバッファの別の異なる記憶ロケーションに記憶することと、
前記第2のグラフィックスデータの前記作成が完了すると、前記第2のプロデューサシェーダを用いて、前記第2のプロデューサシェーダによって作成されたグラフィックスデータの量を示す値を前記第2のバッファの前記第2の記憶ロケーションに記憶することと
をさらに備える、[1]に記載の方法。
[5]前記第1のプロデューサシェーダが前記第1のグラフィックスデータの前記作成を完了する前に、前記第2のプロデューサシェーダが前記第2のグラフィックスデータの前記作成を完了し、前記方法が、
前記第1のプロデューサシェーダが前記第1のグラフィックスデータの作成を完了するまで、かつ前記第1のプロデューサシェーダが前記第1のプロデューサシェーダによって作成されたグラフィックスデータの前記量を示す前記値を前記第2のバッファの前記第1の記憶ロケーションに記憶するまで、前記第1のバッファの前記別の異なる記憶ロケーションに記憶された前記第2のグラフィックスデータを使用するために1つまたは複数のコンシューマシェーダを実行しないことをさらに備える、[4]に記載の方法。
[6]前記第1のバッファの前記記憶ロケーションに記憶されたグラフィックスデータの前記量を示す前記値を前記第1のプロデューサシェーダが記憶した後に、前記第1のグラフィックスデータを使用するために前記1つまたは複数のコンシューマシェーダのうちの第1のコンシューマシェーダを実行することと、
前記第1のコンシューマシェーダの前記実行の後で、前記第1のバッファの前記別の異なる記憶ロケーションに記憶されたグラフィックスデータの前記量を示す前記値を前記第2のプロデューサシェーダが記憶した後に、前記第2のグラフィックスデータを使用するために前記1つまたは複数のコンシューマシェーダのうちの第2のコンシューマシェーダを実行することと
をさらに備える、[5]に記載の方法。
[7]コンパイラを用いて、前記プロデューサシェーダにカウンタを生成させる前記コンパイラによって生成された、前記プロデューサシェーダのオブジェクトコードに命令を含めることをさらに備え、
前記カウンタが前記プロデューサシェーダのソースコードの一部ではなく、
前記カウンタが、前記プロデューサシェーダが前記グラフィックスデータを作成している間に、前記プロデューサシェーダによって作成されたグラフィックスデータの前記量をカウントし、
前記GPU上で実行される前記プロデューサシェーダを用いて、グラフィックスデータの前記量を示す前記値を記憶することが、前記グラフィックスデータの前記作成が完了すると、前記カウンタの値を記憶することを備える、
[1]に記載の方法。
[8]前記プロデューサシェーダを用いて、前記プロデューサシェーダによって作成されたプリミティブの量をカウントすることをさらに備え、
グラフィックスデータの前記量を示す前記値が、前記グラフィックスデータの前記作成の前記完了のときに、前記プロデューサシェーダによって作成されたプリミティブの前記量を備える、
[1]に記載の方法。
[9]前記プロデューサシェーダが、プリミティブを受け取り、前記プリミティブを分割して1つまたは複数のプリミティブを作成するように動作可能なジオメトリシェーダを備え、前記コンシューマシェーダが、前記ジオメトリシェーダによって作成された前記1つまたは複数のプリミティブのうちの少なくとも1つのプリミティブを受け取るように動作可能なピクセルシェーダを備える、[1]に記載の方法。
[10]グラフィックスデータがまだ使用されていない複数のプロデューサシェーダの数を示す値を記憶することであって、前記プロデューサシェーダが前記複数のプロデューサシェーダのうちの1つである、記憶することと、
前記第2のバッファのどの記憶ロケーションが作成されたグラフィックスデータを示す値を記憶するかを、グラフィックスデータがまだ使用されていない前記複数のプロデューサシェーダの前記数を示す前記記憶された値に基づいて判定することと
をさらに備える、[1]に記載の方法。
[11]装置であって、
第1のバッファと、
第2のバッファと、
グラフィックス処理ユニット(GPU)と
を備え、前記GPUが、
グラフィックスデータを作成するプロデューサシェーダを実行し、
前記プロデューサシェーダによって作成された前記グラフィックスデータを前記第1のバッファの記憶ロケーションに記憶し、
前記グラフィックスデータの前記作成が完了すると、前記GPU上で実行される前記プロデューサシェーダを用いて、前記プロデューサシェーダによって作成された前記グラフィックスデータの量を示す値を前記第2のバッファの記憶ロケーションに記憶するように動作可能である、前記装置。
[12]前記第1のバッファおよび前記第2のバッファが共通のバッファの一部である、[11]に記載の装置。
[13]前記GPUが前記第2のバッファを含む、[11]に記載の装置。
[14]前記GPUが、前記プロデューサシェーダが前記プロデューサシェーダによって作成されたグラフィックスデータの前記量を示す前記値を前記第2のバッファの前記記憶ロケーションに記憶した後に、前記第1のバッファの前記記憶ロケーションに記憶された前記グラフィックスデータを使用するために1つまたは複数のコンシューマシェーダを実行するようにさらに動作可能である、[11]に記載の装置。
[15]前記プロデューサシェーダが第1のプロデューサシェーダを備え、前記グラフィックスデータが第1のグラフィックスデータを備え、前記第2のバッファが第1の記憶ロケーションと第2の記憶ロケーションとを備え、前記値が前記第2のバッファの前記第1の記憶ロケーションに記憶され、前記GPUが、
第2のグラフィックスデータを作成する第2のプロデューサシェーダを実行し、
前記第2のプロデューサシェーダによって作成された前記第2のグラフィックスデータを前記第1のバッファの別の異なる記憶ロケーションに記憶し、
前記第2のグラフィックスデータの前記作成が完了すると、前記第2のプロデューサシェーダを用いて、前記第2のプロデューサシェーダによって作成されたグラフィックスデータの量を示す値を前記第2のバッファの前記第2の記憶ロケーションに記憶するようにさらに動作可能である、[11]に記載の装置。
[16]前記第1のプロデューサシェーダが前記第1のグラフィックスデータの前記作成を完了する前に、前記第2のプロデューサシェーダが前記第2のグラフィックスデータの前記作成を完了し、前記GPUが、
前記第1のプロデューサシェーダが前記第1のグラフィックスデータの作成を完了するまで、かつ前記第1のプロデューサシェーダが前記第1のプロデューサシェーダによって作成されたグラフィックスデータの前記量を示す前記値を前記第2のバッファの前記第1の記憶ロケーションに記憶するまで、前記第1のバッファの前記別の異なる記憶ロケーションに記憶された前記第2のグラフィックスデータを使用するために1つまたは複数のコンシューマシェーダを実行しないようにさらに動作可能である、[15]に記載の装置。
[17]前記GPUが、
前記第1のバッファの前記記憶ロケーションに記憶されたグラフィックスデータの前記量を示す前記値を前記第1のプロデューサシェーダが記憶した後に、前記第1のグラフィックスデータを使用するために前記1つまたは複数のコンシューマシェーダのうちの第1のコンシューマシェーダを実行し、
前記第1のコンシューマシェーダの前記実行の後で、前記第1のバッファの前記別の異なる記憶ロケーションに記憶されたグラフィックスデータの前記量を示す前記値を前記第2のプロデューサシェーダが記憶した後に、前記第2のグラフィックスデータを使用するために前記1つまたは複数のコンシューマシェーダのうちの第2のコンシューマシェーダを実行するようにさらに動作可能である、[16]に記載の装置。
[18]コンパイラを実行するプロセッサであって、前記プロデューサシェーダをコンパイルして、前記プロデューサシェーダにカウンタを生成させる前記コンパイラによって生成された、前記プロデューサシェーダのオブジェクトコードに命令を含めるように動作可能なプロセッサをさらに備え、
前記カウンタが前記プロデューサシェーダのソースコードの一部ではなく、
前記カウンタが、前記プロデューサシェーダが前記グラフィックスデータを作成している間に、前記プロデューサシェーダによって作成されたグラフィックスデータの前記量をカウントし、
前記プロデューサシェーダが、前記グラフィックスデータの前記作成が完了すると、前記カウンタの値を記憶して、前記プロデューサシェーダによって作成された前記グラフィックスデータの前記量を示す前記値を記憶する、
[11]に記載の装置。
[19]前記プロデューサシェーダが、前記プロデューサシェーダによって作成されたプリミティブの量をカウントし、グラフィックスデータの前記量を示す前記値が、前記グラフィックスデータの前記作成の前記完了のときに、前記プロデューサシェーダによって作成されたプリミティブの前記量を備える、[11]に記載の装置。
[20]前記プロデューサシェーダが、プリミティブを受け取り、前記プリミティブを分割して1つまたは複数のプリミティブを作成するように動作可能なジオメトリシェーダを備え、前記コンシューマシェーダが、前記ジオメトリシェーダによって作成された前記1つまたは複数のプリミティブのうちの少なくとも1つのプリミティブを受け取るように動作可能なピクセルシェーダを備える、[11]に記載の装置。
[21]グラフィックスデータがまだ使用されていない複数のプロデューサシェーダの数を示す値を記憶するように動作可能な第3のバッファであって、前記プロデューサシェーダが前記複数のプロデューサシェーダのうちの1つである、第3のバッファと、
前記第2のバッファのどの記憶ロケーションが作成されたグラフィックスデータを示す値を記憶するかを、グラフィックスデータがまだ使用されていない複数のプロデューサシェーダの前記数を示す前記記憶された値に基づいて判定するように動作可能なコントローラと
をさらに備える、[11]に記載の装置。
[22]メディアプレーヤ、セットトップボックス、ワイヤレスハンドセット、携帯情報端末(PDA)、デスクトップコンピュータ、ラップトップコンピュータ、ゲーミングコンソール、ビデオ会議ユニット、およびタブレットコンピューティングデバイスのうちの少なくとも1つを備える、[11]に記載の装置。
[23]装置であって、
第1のバッファと、
第2のバッファと、
グラフィックス処理ユニット(GPU)と
を備え、前記GPUが、
グラフィックスデータを作成するプロデューサシェーダを実行するための手段と、
前記プロデューサシェーダによって作成された前記グラフィックスデータを前記第1のバッファの記憶ロケーションに記憶するための手段と、
前記グラフィックスデータの前記作成が完了すると、前記GPU上で実行される前記プロデューサシェーダを用いて、前記プロデューサシェーダによって作成された前記グラフィックスデータの量を示す値を前記第2のバッファの記憶ロケーションに記憶するための手段と
を備える、前記装置。
[24]前記プロデューサシェーダによって作成されたグラフィックスデータの前記量を示す前記値を前記第2のバッファの前記記憶ロケーションに記憶した後に、前記第1のバッファの前記記憶ロケーションに記憶された前記グラフィックスデータを使用するために1つまたは複数のコンシューマシェーダを実行するための手段をさらに備える、[23]に記載の装置。
[25]前記プロデューサシェーダが第1のプロデューサシェーダを備え、前記グラフィックスデータが第1のグラフィックスデータを備え、前記第2のバッファが第1の記憶ロケーションと第2の記憶ロケーションとを備え、前記値が前記第2のバッファの前記第1の記憶ロケーションに記憶され、前記GPUが、
第2のグラフィックスデータを作成する第2のプロデューサシェーダを実行するための手段と、
前記第2のプロデューサシェーダによって作成された前記第2のグラフィックスデータを前記第1のバッファの別の異なる記憶ロケーションに記憶するための手段と、
前記第2のグラフィックスデータの前記作成が完了すると、前記第2のプロデューサシェーダを用いて、前記第2のプロデューサシェーダによって作成されたグラフィックスデータの量を示す値を前記第2のバッファの前記第2の記憶ロケーションに記憶するための手段と
をさらに備える、[23]に記載の装置。
[26]前記第1のプロデューサシェーダが前記第1のグラフィックスデータの前記作成を完了する前に、前記第2のプロデューサシェーダが前記第2のグラフィックスデータの前記作成を完了し、前記GPUが、
前記第1のプロデューサシェーダが前記第1のグラフィックスデータの作成を完了するまで、かつ前記第1のプロデューサシェーダが前記第1のプロデューサシェーダによって作成されたグラフィックスデータの前記量を示す前記値を前記第2のバッファの前記第1の記憶ロケーションに記憶するまで、前記第1のバッファの前記別の異なる記憶ロケーションに記憶された前記第2のグラフィックスデータを使用するために1つまたは複数のコンシューマシェーダを実行しないための手段をさらに備える、[25]に記載の装置。
[27]前記第1のバッファの前記記憶ロケーションに記憶されたグラフィックスデータの前記量を示す前記値を前記第1のプロデューサシェーダが記憶した後に、前記第1のグラフィックスデータを使用するために前記1つまたは複数のコンシューマシェーダのうちの第1のコンシューマシェーダを実行するための手段と、
前記第1のコンシューマシェーダの前記実行の後で、前記第1のバッファの前記別の異なる記憶ロケーションに記憶されたグラフィックスデータの前記量を示す前記値を前記第2のプロデューサシェーダが記憶した後に、前記第2のグラフィックスデータを使用するために前記1つまたは複数のコンシューマシェーダのうちの第2のコンシューマシェーダを実行するための手段と
をさらに備える、[26]に記載の装置。
[28]前記プロデューサシェーダにカウンタを生成させるコンパイラによって生成された、前記プロデューサシェーダのオブジェクトコードに命令を含めるように動作可能なコンパイルするための手段をさらに備え、
前記カウンタが前記プロデューサシェーダのソースコードの一部ではなく、
前記カウンタが、前記プロデューサシェーダが前記グラフィックスデータを作成している間に、前記プロデューサシェーダによって作成されたグラフィックスデータの前記量をカウントし、
前記GPU上で実行される前記プロデューサシェーダを用いて、グラフィックスデータの前記量を示す前記値を記憶するための前記手段が、前記グラフィックスデータの前記作成が完了すると、前記カウンタの値を記憶するための手段を備える、
[23]に記載の装置。
[29]前記プロデューサシェーダを用いて、前記プロデューサシェーダによって作成されたプリミティブの量をカウントするための手段をさらに備え、
グラフィックスデータの前記量を示す前記値が、前記グラフィックスデータの前記作成の前記完了のときに、前記プロデューサシェーダによって作成されたプリミティブの前記量を備える、
[23]に記載の装置。
[30]前記プロデューサシェーダが、プリミティブを受け取り、前記プリミティブを分割して1つまたは複数のプリミティブを作成するように動作可能なジオメトリシェーダを備え、前記コンシューマシェーダが、前記ジオメトリシェーダによって作成された前記1つまたは複数のプリミティブのうちの少なくとも1つのプリミティブを受け取るように動作可能なピクセルシェーダを備える、[23]に記載の装置。
[31]グラフィックスデータがまだ使用されていない複数のプロデューサシェーダの数を示す値を記憶するための手段であって、前記プロデューサシェーダが前記複数のプロデューサシェーダのうちの1つである、手段と、
前記第2のバッファのどの記憶ロケーションが作成されたグラフィックスデータを示す値を記憶するかを、グラフィックスデータがまだ使用されていない前記複数のプロデューサシェーダの前記数を示す前記記憶された値に基づいて判定するための手段と
をさらに備える、[23]に記載の装置。
[32]メディアプレーヤ、セットトップボックス、ワイヤレスハンドセット、携帯情報端末(PDA)、デスクトップコンピュータ、ラップトップコンピュータ、ゲーミングコンソール、ビデオ会議ユニット、およびタブレットコンピューティングデバイスのうちの少なくとも1つを備える、[23]に記載の装置。
[33]非一時的なコンピュータ可読記憶媒体であって、
1つまたは複数のプロセッサに、
グラフィックス処理ユニット(GPU)を用いて、グラフィックスデータを作成するプロデューサシェーダを実行させ、
前記GPUを用いて、前記プロデューサシェーダによって作成された前記グラフィックスデータを第1のバッファの記憶ロケーションに記憶させ、
前記グラフィックスデータの前記作成が完了すると、前記GPU上で実行される前記プロデューサシェーダを用いて、前記プロデューサシェーダによって作成された前記グラフィックスデータの量を示す値を第2のバッファの記憶ロケーションに記憶させる
命令を備える前記非一時的なコンピュータ可読記憶媒体。
[34]前記プロデューサシェーダによって作成されたグラフィックスデータの前記量を示す前記値を前記第2のバッファの前記記憶ロケーションに記憶した後に、前記第1のバッファの前記記憶ロケーションに記憶された前記グラフィックスデータを使用するために1つまたは複数のコンシューマシェーダを実行する命令をさらに備える、[33]に記載の非一時的なコンピュータ可読記憶媒体。
[35]前記プロデューサシェーダが第1のプロデューサシェーダを備え、前記グラフィックスデータが第1のグラフィックスデータを備え、前記第2のバッファが第1の記憶ロケーションと第2の記憶ロケーションとを備え、前記値が前記第2のバッファの前記第1の記憶ロケーションに記憶され、前記命令が、
第2のグラフィックスデータを作成する第2のプロデューサシェーダを実行し、
前記第2のプロデューサシェーダによって作成された前記第2のグラフィックスデータを前記第1のバッファの別の異なる記憶ロケーションに記憶し、
前記第2のグラフィックスデータの前記作成が完了すると、前記第2のプロデューサシェーダを用いて、前記第2のプロデューサシェーダによって作成されたグラフィックスデータの量を示す値を前記第2のバッファの前記第2の記憶ロケーションに記憶する
命令をさらに備える、[33]に記載の非一時的なコンピュータ可読記憶媒体。
[36]前記第1のプロデューサシェーダが前記第1のグラフィックスデータの前記作成を完了する前に、前記第2のプロデューサシェーダが前記第2のグラフィックスデータの前記作成を完了し、前記命令が、
前記第1のプロデューサシェーダが前記第1のグラフィックスデータの作成を完了するまで、かつ前記第1のプロデューサシェーダが前記第1のプロデューサシェーダによって作成されたグラフィックスデータの前記量を示す前記値を前記第2のバッファの前記第1の記憶ロケーションに記憶するまで、前記第1のバッファの前記別の異なる記憶ロケーションに記憶された前記第2のグラフィックスデータを使用するために1つまたは複数のコンシューマシェーダを実行しない命令をさらに備える、[35]に記載の非一時的なコンピュータ可読記憶媒体。
[37]前記第1のバッファの前記記憶ロケーションに記憶されたグラフィックスデータの前記量を示す前記値を前記第1のプロデューサシェーダが記憶した後に、前記第1のグラフィックスデータを使用するために前記1つまたは複数のコンシューマシェーダのうちの第1のコンシューマシェーダを実行し、
前記第1のコンシューマシェーダの前記実行の後で、前記第1のバッファの前記別の異なる記憶ロケーションに記憶されたグラフィックスデータの前記量を示す前記値を前記第2のプロデューサシェーダが記憶した後に、前記第2のグラフィックスデータを使用するために前記1つまたは複数のコンシューマシェーダのうちの第2のコンシューマシェーダを実行する
命令をさらに備える、[36]に記載の非一時的なコンピュータ可読記憶媒体。
[38]コンパイラを用いて、前記プロデューサシェーダにカウンタを生成させる前記コンパイラによって生成された、前記プロデューサシェーダのオブジェクトコードに命令を含める命令をさらに備え、
前記カウンタが前記プロデューサシェーダのソースコードの一部ではなく、
前記カウンタが、前記プロデューサシェーダが前記グラフィックスデータを作成している間に、前記プロデューサシェーダによって作成されたグラフィックスデータの前記量をカウントし、
前記GPU上で実行される前記プロデューサシェーダを用いて、グラフィックスデータの前記量を示す前記値を記憶する前記命令が、前記グラフィックスデータの前記作成が完了すると、前記カウンタの値を記憶する命令を備える、
[33]に記載の非一時的なコンピュータ可読記憶媒体。
[39]前記プロデューサシェーダを用いて、前記プロデューサシェーダによって作成されたプリミティブの量をカウントする命令をさらに備え、
グラフィックスデータの前記量を示す前記値が、前記グラフィックスデータの前記作成の前記完了のときに、前記プロデューサシェーダによって作成されたプリミティブの前記量を備える、
[33]に記載の非一時的なコンピュータ可読記憶媒体。
[40]前記プロデューサシェーダが、プリミティブを受け取り、前記プリミティブを分割して1つまたは複数のプリミティブを作成するように動作可能なジオメトリシェーダを備え、前記コンシューマシェーダが、前記ジオメトリシェーダによって作成された前記1つまたは複数のプリミティブのうちの少なくとも1つのプリミティブを受け取るように動作可能なピクセルシェーダを備える、[33]に記載の非一時的なコンピュータ可読記憶媒体。
[41]グラフィックスデータがまだ使用されていない複数のプロデューサシェーダの数を示す値を記憶することであって、前記プロデューサシェーダが前記複数のプロデューサシェーダのうちの1つであることと、
前記第2のバッファのどの記憶ロケーションが作成されたグラフィックスデータを示す値を記憶するかを、グラフィックスデータがまだ使用されていない前記複数のプロデューサシェーダの前記数を示す前記記憶された値に基づいて判定することとを行う
命令をさらに備える、[33]に記載の非一時的なコンピュータ可読記憶媒体。
Claims (40)
- 方法であって、
グラフィックス処理ユニット(GPU)を用いて、グラフィックスデータを作成するプロデューサシェーダを実行することと、
前記GPUを用いて、前記プロデューサシェーダによって作成された前記グラフィックスデータを第1のバッファの記憶ロケーションに記憶することと、
前記プロデューサシェーダによる前記グラフィックスデータの作成中に、前記プロデューサシェーダによって作成されている前記グラフィックスデータの量をカウントすることと、
前記グラフィックスデータの前記作成が完了すると、前記GPU上で実行される前記プロデューサシェーダを用いて、前記プロデューサシェーダによって作成された前記グラフィックスデータの前記量を示す値を第2のバッファの記憶ロケーションに記憶することと、
前記プロデューサシェーダによって作成されたグラフィックスデータの前記量を示す前記値を前記第2のバッファの前記記憶ロケーションに記憶した後に、前記プロデューサシェーダによって作成されたグラフィックスデータの前記量を示す前記値に基づいて、前記第1のバッファの前記記憶ロケーションに記憶された前記グラフィックスデータを使用するために1つまたは複数のコンシューマシェーダを実行することとを備える前記方法。 - 前記第1のバッファおよび前記第2のバッファが共通のバッファの一部である、請求項1に記載の方法。
- 1つまたは複数のコンシューマシェーダを実行することが、前記第1のバッファの前記記憶ロケーションに記憶された前記グラフィックスデータを使用するためにピクセルシェーダを実行することを備える、請求項1に記載の方法。
- 前記プロデューサシェーダが第1のプロデューサシェーダを備え、前記グラフィックスデータが第1のグラフィックスデータを備え、前記第2のバッファが第1の記憶ロケーションと第2の記憶ロケーションとを備え、前記値が前記第2のバッファの前記第1の記憶ロケーションに記憶され、前記方法が、
第2のグラフィックスデータを作成する第2のプロデューサシェーダを実行することと、
前記第2のプロデューサシェーダによって作成された前記第2のグラフィックスデータを前記第1のバッファの別の異なる記憶ロケーションに記憶することと、
前記第2のプロデューサシェーダによる前記第2のグラフィックスデータの作成中に、前記第2のプロデューサシェーダによって作成された前記第2のグラフィックスデータの量をカウントすることと、
前記第2のグラフィックスデータの前記作成が完了すると、前記第2のプロデューサシェーダを用いて、前記第2のプロデューサシェーダによって作成された前記第2のグラフィックスデータの前記量を示す値を前記第2のバッファの前記第2の記憶ロケーションに記憶することとをさらに備える、請求項1に記載の方法。 - 前記第1のプロデューサシェーダが前記第1のグラフィックスデータの前記作成を完了する前に、前記第2のプロデューサシェーダが前記第2のグラフィックスデータの前記作成を完了し、前記方法が、
前記第1のプロデューサシェーダが前記第1のグラフィックスデータの作成を完了するまで、かつ前記第1のプロデューサシェーダが前記第1のプロデューサシェーダによって作成されたグラフィックスデータの前記量を示す前記値を前記第2のバッファの前記第1の記憶ロケーションに記憶するまで、前記第1のバッファの前記別の異なる記憶ロケーションに記憶された前記第2のグラフィックスデータを使用するために前記1つまたは複数のコンシューマシェーダを実行しないことをさらに備える、請求項4に記載の方法。 - 前記第1のバッファの前記記憶ロケーションに記憶されたグラフィックスデータの前記量を示す前記値を前記第1のプロデューサシェーダが記憶した後に、前記第1のグラフィックスデータを使用するために前記1つまたは複数のコンシューマシェーダのうちの第1のコンシューマシェーダを実行することと、
前記第1のコンシューマシェーダの前記実行の後で、前記第1のバッファの前記別の異なる記憶ロケーションに記憶されたグラフィックスデータの前記量を示す前記値を前記第2のプロデューサシェーダが記憶した後に、前記第2のグラフィックスデータを使用するために前記1つまたは複数のコンシューマシェーダのうちの第2のコンシューマシェーダを実行することとをさらに備える、請求項5に記載の方法。 - コンパイラを用いて、前記プロデューサシェーダにカウンタを生成させる前記コンパイラによって生成された、前記プロデューサシェーダのオブジェクトコードに命令を含めることをさらに備え、
前記カウンタが前記プロデューサシェーダのソースコードの一部ではなく、
前記カウンタが、前記プロデューサシェーダが前記グラフィックスデータを作成している間に、前記プロデューサシェーダによって作成されたグラフィックスデータの前記量をカウントする、請求項1に記載の方法。 - 前記グラフィックスデータの前記量をカウントすることが、前記プロデューサシェーダを用いて、前記プロデューサシェーダによって作成されたプリミティブの量をカウントすることを備え、
グラフィックスデータの前記量を示す前記値が、前記グラフィックスデータの前記作成の前記完了のときに、前記プロデューサシェーダによって作成されたプリミティブの前記量を備える、請求項1に記載の方法。 - 前記プロデューサシェーダによって作成されたグラフィックスデータの前記量を示す前記値に基づいて、前記1つまたは複数のコンシューマシェーダの何個のインスタンスを実行するかを決定することをさらに備え、
前記1つまたは複数のコンシューマシェーダを実行することが、前記1つまたは複数のコンシューマシェーダの前記決定された数のインスタンスを実行することを備える、請求項1に記載の方法。 - グラフィックスデータがまだ使用されていない複数のプロデューサシェーダの数を示す値を記憶することであって、前記プロデューサシェーダが前記複数のプロデューサシェーダのうちの1つである、記憶することと、
前記第2のバッファのどの記憶ロケーションが作成されたグラフィックスデータを示す値を記憶するかを、グラフィックスデータがまだ使用されていない前記複数のプロデューサシェーダの前記数を示す前記記憶された値に基づいて判定することとをさらに備える、請求項1に記載の方法。 - 装置であって、
第1のバッファと、
第2のバッファと、
グラフィックス処理ユニット(GPU)とを備え、前記GPUが、
グラフィックスデータを作成するプロデューサシェーダを実行し、
前記プロデューサシェーダによって作成された前記グラフィックスデータを前記第1のバッファの記憶ロケーションに記憶し、
前記プロデューサシェーダによる前記グラフィックスデータの作成中に、前記プロデューサシェーダによって作成されているグラフィックスデータの量をカウントし、
前記グラフィックスデータの前記作成が完了すると、前記GPU上で実行される前記プロデューサシェーダを用いて、前記プロデューサシェーダによって作成された前記グラフィックスデータの前記量を示す値を前記第2のバッファの記憶ロケーションに記憶し、および
前記プロデューサシェーダによって作成されたグラフィックスデータの前記量を示す前記値に基づいて、かつ前記プロデューサシェーダが前記プロデューサシェーダによって作成されたグラフィックスデータの前記量を示す前記値を前記第2のバッファの前記記憶ロケーションに記憶した後に、前記第1のバッファの前記記憶ロケーションに記憶された前記グラフィックスデータを使用するために1つまたは複数のコンシューマシェーダを実行するように構成される、前記装置。 - 前記第1のバッファおよび前記第2のバッファが共通のバッファの一部である、請求項11に記載の装置。
- 前記GPUが前記第2のバッファを含む、請求項11に記載の装置。
- 前記1つまたは複数のコンシューマシェーダを実行するために、前記GPUが、前記第1のバッファの前記記憶ロケーションに記憶された前記グラフィックスデータを使用するためにピクセルシェーダを実行するように構成される、請求項11に記載の装置。
- 前記プロデューサシェーダが第1のプロデューサシェーダを備え、前記グラフィックスデータが第1のグラフィックスデータを備え、前記第2のバッファが第1の記憶ロケーションと第2の記憶ロケーションとを備え、前記値が前記第2のバッファの前記第1の記憶ロケーションに記憶され、前記GPUが、
第2のグラフィックスデータを作成する第2のプロデューサシェーダを実行し、
前記第2のプロデューサシェーダによって作成された前記第2のグラフィックスデータを前記第1のバッファの別の異なる記憶ロケーションに記憶し、
前記第2のプロデューサシェーダによる前記第2のグラフィックスデータの作成中に、前記第2のプロデューサシェーダによって作成された前記第2のグラフィックスデータの量をカウントし、
前記第2のグラフィックスデータの前記作成が完了すると、前記第2のプロデューサシェーダを用いて、前記第2のプロデューサシェーダによって作成された前記第2のグラフィックスデータの前記量を示す値を前記第2のバッファの前記第2の記憶ロケーションに記憶するようにさらに構成される、請求項11に記載の装置。 - 前記第1のプロデューサシェーダが前記第1のグラフィックスデータの前記作成を完了する前に、前記第2のプロデューサシェーダが前記第2のグラフィックスデータの前記作成を完了し、前記GPUが、
前記第1のプロデューサシェーダが前記第1のグラフィックスデータの作成を完了するまで、かつ前記第1のプロデューサシェーダが前記第1のプロデューサシェーダによって作成されたグラフィックスデータの前記量を示す前記値を前記第2のバッファの前記第1の記憶ロケーションに記憶するまで、前記第1のバッファの前記別の異なる記憶ロケーションに記憶された前記第2のグラフィックスデータを使用するために前記1つまたは複数のコンシューマシェーダを実行しないようにさらに構成される、請求項15に記載の装置。 - 前記GPUが、
前記第1のバッファの前記記憶ロケーションに記憶されたグラフィックスデータの前記量を示す前記値を前記第1のプロデューサシェーダが記憶した後に、前記第1のグラフィックスデータを使用するために前記1つまたは複数のコンシューマシェーダのうちの第1のコンシューマシェーダを実行し、
前記第1のコンシューマシェーダの前記実行の後で、前記第1のバッファの前記別の異なる記憶ロケーションに記憶されたグラフィックスデータの前記量を示す前記値を前記第2のプロデューサシェーダが記憶した後に、前記第2のグラフィックスデータを使用するために前記1つまたは複数のコンシューマシェーダのうちの第2のコンシューマシェーダを実行するようにさらに構成される、請求項16に記載の装置。 - コンパイラを実行するプロセッサであって、前記プロデューサシェーダをコンパイルして、前記プロデューサシェーダにカウンタを生成させる前記コンパイラによって生成された、前記プロデューサシェーダのオブジェクトコードに命令を含めるように構成されるプロセッサをさらに備え、
前記カウンタが前記プロデューサシェーダのソースコードの一部ではなく、
前記カウンタが、前記プロデューサシェーダが前記グラフィックスデータを作成している間に、前記プロデューサシェーダによって作成されたグラフィックスデータの前記量をカウントする、請求項11に記載の装置。 - 前記グラフィックスデータの前記量をカウントするために、前記プロデューサシェーダが、前記プロデューサシェーダによって作成されたプリミティブの量をカウントし、グラフィックスデータの前記量を示す前記値が、前記グラフィックスデータの前記作成の前記完了のときに、前記プロデューサシェーダによって作成されたプリミティブの前記量を備える、請求項11に記載の装置。
- 前記GPUが、前記プロデューサシェーダによって作成されたグラフィックスデータの前記量を示す前記値に基づいて、前記1つまたは複数のコンシューマシェーダの何個のインスタンスを実行するかを決定するように構成され、前記1つまたは複数のコンシューマシェーダを実行するために、前記GPUが、前記1つまたは複数のコンシューマシェーダの前記決定された数のインスタンスを実行するように構成される、請求項11に記載の装置。
- グラフィックスデータがまだ使用されていない複数のプロデューサシェーダの数を示す値を記憶するように構成される第3のバッファであって、前記プロデューサシェーダが前記複数のプロデューサシェーダのうちの1つである、第3のバッファと、
前記第2のバッファのどの記憶ロケーションが作成されたグラフィックスデータを示す値を記憶するかを、グラフィックスデータがまだ使用されていない複数のプロデューサシェーダの前記数を示す前記記憶された値に基づいて判定するように構成されるコントローラとをさらに備える、請求項11に記載の装置。 - メディアプレーヤ、セットトップボックス、ワイヤレスハンドセット、携帯情報端末(PDA)、デスクトップコンピュータ、ラップトップコンピュータ、ゲーミングコンソール、ビデオ会議ユニット、およびタブレットコンピューティングデバイスのうちの少なくとも1つを備える、請求項11に記載の装置。
- 装置であって、
第1のバッファと、
第2のバッファと、
グラフィックス処理ユニット(GPU)とを備え、前記GPUが、
グラフィックスデータを作成するプロデューサシェーダを実行するための手段と、
前記プロデューサシェーダによって作成された前記グラフィックスデータを前記第1のバッファの記憶ロケーションに記憶するための手段と、
前記プロデューサシェーダによる前記グラフィックスデータの作成中に、前記プロデューサシェーダによって作成されている前記グラフィックスデータの量をカウントするための手段と、
前記GPU上で実行される前記プロデューサシェーダを用いて、かつ前記グラフィックスデータの前記作成が完了すると、前記プロデューサシェーダによって作成された前記グラフィックスデータの前記量を示す値を前記第2のバッファの記憶ロケーションに記憶するための手段と、および
前記プロデューサシェーダによって作成されたグラフィックスデータの前記量を示す前記値に基づいて、かつ前記プロデューサシェーダによって作成されたグラフィックスデータの前記量を示す前記値を前記第2のバッファの前記記憶ロケーションに記憶した後に、前記第1のバッファの前記記憶ロケーションに記憶された前記グラフィックスデータを使用するために1つまたは複数のコンシューマシェーダを実行するための手段とを備える、前記装置。 - 1つまたは複数のコンシューマシェーダを実行するための前記手段が、前記第1のバッファの前記記憶ロケーションに記憶された前記グラフィックスデータを使用するためにピクセルシェーダを実行するための手段を備える、請求項23に記載の装置。
- 前記プロデューサシェーダが第1のプロデューサシェーダを備え、前記グラフィックスデータが第1のグラフィックスデータを備え、前記第2のバッファが第1の記憶ロケーションと第2の記憶ロケーションとを備え、前記値が前記第2のバッファの前記第1の記憶ロケーションに記憶され、前記GPUが、
第2のグラフィックスデータを作成する第2のプロデューサシェーダを実行するための手段と、
前記第2のプロデューサシェーダによって作成された前記第2のグラフィックスデータを前記第1のバッファの別の異なる記憶ロケーションに記憶するための手段と、
前記第2のプロデューサシェーダによる前記第2のグラフィックスデータの作成中に、前記第2のプロデューサシェーダによって作成された前記第2のグラフィックスデータの量をカウントするための手段と、
前記第2のグラフィックスデータの前記作成が完了すると、前記第2のプロデューサシェーダを用いて、前記第2のプロデューサシェーダによって作成された前記第2のグラフィックスデータの前記量を示す値を前記第2のバッファの前記第2の記憶ロケーションに記憶するための手段とをさらに備える、請求項23に記載の装置。 - 前記第1のプロデューサシェーダが前記第1のグラフィックスデータの前記作成を完了する前に、前記第2のプロデューサシェーダが前記第2のグラフィックスデータの前記作成を完了し、前記GPUが、
前記第1のプロデューサシェーダが前記第1のグラフィックスデータの作成を完了するまで、かつ前記第1のプロデューサシェーダが前記第1のプロデューサシェーダによって作成されたグラフィックスデータの前記量を示す前記値を前記第2のバッファの前記第1の記憶ロケーションに記憶するまで、前記第1のバッファの前記別の異なる記憶ロケーションに記憶された前記第2のグラフィックスデータを使用するために前記1つまたは複数のコンシューマシェーダを実行しないための手段をさらに備える、請求項25に記載の装置。 - 前記第1のバッファの前記記憶ロケーションに記憶されたグラフィックスデータの前記量を示す前記値を前記第1のプロデューサシェーダが記憶した後に、前記第1のグラフィックスデータを使用するために前記1つまたは複数のコンシューマシェーダのうちの第1のコンシューマシェーダを実行するための手段と、
前記第1のコンシューマシェーダの前記実行の後で、前記第1のバッファの前記別の異なる記憶ロケーションに記憶されたグラフィックスデータの前記量を示す前記値を前記第2のプロデューサシェーダが記憶した後に、前記第2のグラフィックスデータを使用するために前記1つまたは複数のコンシューマシェーダのうちの第2のコンシューマシェーダを実行するための手段とをさらに備える、請求項26に記載の装置。 - 前記プロデューサシェーダにカウンタを生成させるコンパイラによって生成された、前記プロデューサシェーダのオブジェクトコードに命令をコンパイルするための手段をさらに備え、
前記カウンタが前記プロデューサシェーダのソースコードの一部ではなく、
前記カウンタが、前記プロデューサシェーダが前記グラフィックスデータを作成している間に、前記プロデューサシェーダによって作成されたグラフィックスデータの前記量をカウントする、請求項23に記載の装置。 - 前記グラフィックスデータの前記量をカウントするための手段は、前記プロデューサシェーダを用いて、前記プロデューサシェーダによって作成されたプリミティブの量をカウントするための手段を備え、
グラフィックスデータの前記量を示す前記値が、前記グラフィックスデータの前記作成の前記完了のときに、前記プロデューサシェーダによって作成されたプリミティブの前記量を備える、請求項23に記載の装置。 - 前記プロデューサシェーダによって作成されたグラフィックスデータの前記量を示す前記値に基づいて、前記1つまたは複数のコンシューマシェーダの何個のインスタンスを実行するかを決定するための手段をさらに備え、
前記1つまたは複数のコンシューマシェーダを実行するための前記手段が、前記1つまたは複数のコンシューマシェーダの前記決定された数のインスタンスを実行するための手段を備える、請求項23に記載の装置。 - グラフィックスデータがまだ使用されていない複数のプロデューサシェーダの数を示す値を記憶するための手段であって、前記プロデューサシェーダが前記複数のプロデューサシェーダのうちの1つである、手段と、
前記第2のバッファのどの記憶ロケーションが作成されたグラフィックスデータを示す値を記憶するかを、グラフィックスデータがまだ使用されていない前記複数のプロデューサシェーダの前記数を示す前記記憶された値に基づいて判定するための手段とをさらに備える、請求項23に記載の装置。 - メディアプレーヤ、セットトップボックス、ワイヤレスハンドセット、携帯情報端末(PDA)、デスクトップコンピュータ、ラップトップコンピュータ、ゲーミングコンソール、ビデオ会議ユニット、およびタブレットコンピューティングデバイスのうちの少なくとも1つを備える、請求項23に記載の装置。
- 非一時的なコンピュータ可読記憶媒体であって、
グラフィックス処理ユニット(GPU)に、
グラフィックスデータを作成するプロデューサシェーダを実行させ、
前記プロデューサシェーダによって作成された前記グラフィックスデータを第1のバッファの記憶ロケーションに記憶させ、
前記プロデューサシェーダによる前記グラフィックスデータの作成中に、前記プロデューサシェーダによって作成されているグラフィックスデータの量をカウントさせ、
前記グラフィックスデータの前記作成が完了すると、前記プロデューサシェーダによって作成された前記グラフィックスデータの前記量を示す値を第2のバッファの記憶ロケーションに記憶させ、および
前記プロデューサシェーダによって作成されたグラフィックスデータの前記量を示す前記値に基づいて、かつ前記プロデューサシェーダによって作成されたグラフィックスデータの前記量を示す前記値を前記第2のバッファの前記記憶ロケーションに記憶した後に、前記第1のバッファの前記記憶ロケーションに記憶された前記グラフィックスデータを使用するために1つまたは複数のコンシューマシェーダを実行させる命令を備える前記非一時的なコンピュータ可読記憶媒体。 - 前記GPUに前記1つまたは複数のコンシューマシェーダを実行させる前記命令が、前記GPUに、前記第1のバッファの前記記憶ロケーションに記憶された前記グラフィックスデータを使用するためにピクセルシェーダを実行させる命令を備える、請求項33に記載の非一時的なコンピュータ可読記憶媒体。
- 前記プロデューサシェーダが第1のプロデューサシェーダを備え、前記グラフィックスデータが第1のグラフィックスデータを備え、前記第2のバッファが第1の記憶ロケーションと第2の記憶ロケーションとを備え、前記値が前記第2のバッファの前記第1の記憶ロケーションに記憶され、前記命令が、前記GPUに、
第2のグラフィックスデータを作成する第2のプロデューサシェーダを実行させ、
前記第2のプロデューサシェーダによって作成された前記第2のグラフィックスデータを前記第1のバッファの別の異なる記憶ロケーションに記憶させ、
前記第2のプロデューサシェーダによる前記第2のグラフィックスデータの作成中に、前記第2のプロデューサシェーダによって作成された前記第2のグラフィックスデータの量をカウントさせ、
前記第2のグラフィックスデータの前記作成が完了すると、前記第2のプロデューサシェーダを用いて、前記第2のプロデューサシェーダによって作成された前記第2のグラフィックスデータの前記量を示す値を前記第2のバッファの前記第2の記憶ロケーションに記憶させる命令をさらに備える、請求項33に記載の非一時的なコンピュータ可読記憶媒体。 - 前記第1のプロデューサシェーダが前記第1のグラフィックスデータの前記作成を完了する前に、前記第2のプロデューサシェーダが前記第2のグラフィックスデータの前記作成を完了し、前記命令が、前記GPUに、
前記第1のプロデューサシェーダが前記第1のグラフィックスデータの作成を完了するまで、かつ前記第1のプロデューサシェーダが前記第1のプロデューサシェーダによって作成されたグラフィックスデータの前記量を示す前記値を前記第2のバッファの前記第1の記憶ロケーションに記憶するまで、前記第1のバッファの前記別の異なる記憶ロケーションに記憶された前記第2のグラフィックスデータを使用するために1つまたは複数のコンシューマシェーダを実行させない命令をさらに備える、請求項35に記載の非一時的なコンピュータ可読記憶媒体。 - 前記GPUに、
前記第1のバッファの前記記憶ロケーションに記憶されたグラフィックスデータの前記量を示す前記値を前記第1のプロデューサシェーダが記憶した後に、前記第1のグラフィックスデータを使用するために前記1つまたは複数のコンシューマシェーダのうちの第1のコンシューマシェーダを実行させ、
前記第1のコンシューマシェーダの前記実行の後で、前記第1のバッファの前記別の異なる記憶ロケーションに記憶されたグラフィックスデータの前記量を示す前記値を前記第2のプロデューサシェーダが記憶した後に、前記第2のグラフィックスデータを使用するために前記1つまたは複数のコンシューマシェーダのうちの第2のコンシューマシェーダを実行させる命令をさらに備える、請求項36に記載の非一時的なコンピュータ可読記憶媒体。 - 前記GPUに、前記グラフィックスデータの前記量をカウントさせる前記命令が、前記GPUに、前記プロデューサシェーダを用いて、前記プロデューサシェーダによって作成されたプリミティブの量をカウントさせる命令を備え、
グラフィックスデータの前記量を示す前記値が、前記グラフィックスデータの前記作成の前記完了のときに、前記プロデューサシェーダによって作成されたプリミティブの前記量を備える、請求項33に記載の非一時的なコンピュータ可読記憶媒体。 - 前記GPUに、
前記プロデューサシェーダによって作成されたグラフィックスデータの前記量を示す前記値に基づいて、前記1つまたは複数のコンシューマシェーダの何個のインスタンスを実行するかを決定させる命令をさらに備え、
前記1つまたは複数のコンシューマシェーダを実行する前記命令が、前記1つまたは複数のコンシューマシェーダの前記決定された数のインスタンスを実行する命令を備える、請求項33に記載の非一時的なコンピュータ可読記憶媒体。 - 前記GPUに、
グラフィックスデータがまだ使用されていない複数のプロデューサシェーダの数を示す値を記憶させ、前記プロデューサシェーダが前記複数のプロデューサシェーダのうちの1つである、
前記第2のバッファのどの記憶ロケーションが作成されたグラフィックスデータを示す値を記憶するかを、グラフィックスデータがまだ使用されていない前記複数のプロデューサシェーダの前記数を示す前記記憶された値に基づいて判定させる命令をさらに備える、請求項33に記載の非一時的なコンピュータ可読記憶媒体。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/186,236 | 2011-07-19 | ||
US13/186,236 US9442780B2 (en) | 2011-07-19 | 2011-07-19 | Synchronization of shader operation |
PCT/US2012/044008 WO2013012524A1 (en) | 2011-07-19 | 2012-06-25 | Synchronization of shader operation |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014521183A JP2014521183A (ja) | 2014-08-25 |
JP5770375B2 true JP5770375B2 (ja) | 2015-08-26 |
Family
ID=46548804
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014521633A Expired - Fee Related JP5770375B2 (ja) | 2011-07-19 | 2012-06-25 | シェーダ動作の同期化 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9442780B2 (ja) |
EP (1) | EP2734923B1 (ja) |
JP (1) | JP5770375B2 (ja) |
KR (1) | KR101630996B1 (ja) |
CN (1) | CN103649922B (ja) |
WO (1) | WO2013012524A1 (ja) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9269179B2 (en) * | 2013-03-15 | 2016-02-23 | Nvidia Corporation | System, method, and computer program product for generating primitive specific attributes |
US9633408B2 (en) | 2013-06-14 | 2017-04-25 | Microsoft Technology Licensing, Llc | Coalescing graphics operations |
US9430808B2 (en) * | 2013-06-19 | 2016-08-30 | Microsoft Technology Licensing, Llc | Synchronization points for state information |
US9842428B2 (en) * | 2014-06-27 | 2017-12-12 | Samsung Electronics Co., Ltd. | Dynamically optimized deferred rendering pipeline |
KR102263326B1 (ko) | 2014-09-18 | 2021-06-09 | 삼성전자주식회사 | 그래픽 프로세싱 유닛 및 이를 이용한 그래픽 데이터 처리 방법 |
CN105118089B (zh) * | 2015-08-19 | 2018-03-20 | 上海兆芯集成电路有限公司 | 三维图形管道中的可程序化像素设定方法及使用其的装置 |
US10460513B2 (en) * | 2016-09-22 | 2019-10-29 | Advanced Micro Devices, Inc. | Combined world-space pipeline shader stages |
EP3591199A1 (en) * | 2016-11-08 | 2020-01-08 | C.R.F. Società Consortile per Azioni | A unit for conversion of thermal energy |
US10726605B2 (en) * | 2017-09-15 | 2020-07-28 | Intel Corporation | Method and apparatus for efficient processing of derived uniform values in a graphics processor |
CN110580238A (zh) * | 2018-06-11 | 2019-12-17 | Arm有限公司 | 数据处理系统中的硬件单元的同步 |
FR3101460B1 (fr) * | 2019-09-27 | 2021-09-03 | Continental Automotive | Procédé et calculateur de gestion d’échanges de données entre une pluralité de tâches |
US11508124B2 (en) | 2020-12-15 | 2022-11-22 | Advanced Micro Devices, Inc. | Throttling hull shaders based on tessellation factors in a graphics pipeline |
US11776085B2 (en) * | 2020-12-16 | 2023-10-03 | Advanced Micro Devices, Inc. | Throttling shaders based on resource usage in a graphics pipeline |
US11710207B2 (en) * | 2021-03-30 | 2023-07-25 | Advanced Micro Devices, Inc. | Wave throttling based on a parameter buffer |
US12062126B2 (en) | 2021-09-29 | 2024-08-13 | Advanced Micro Devices, Inc. | Load multiple primitives per thread in a graphics pipeline |
US20230097097A1 (en) * | 2021-09-29 | 2023-03-30 | Advanced Micro Devices, Inc. | Graphics primitives and positions through memory buffers |
US11755336B2 (en) * | 2021-09-29 | 2023-09-12 | Advanced Micro Devices, Inc. | Distributed geometry |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001016741A2 (en) | 1999-08-31 | 2001-03-08 | Times N Systems, Inc. | Semaphore control of shared-memory |
US7671862B1 (en) * | 2004-05-03 | 2010-03-02 | Microsoft Corporation | Systems and methods for providing an enhanced graphics pipeline |
US7570267B2 (en) | 2004-05-03 | 2009-08-04 | Microsoft Corporation | Systems and methods for providing an enhanced graphics pipeline |
US7747842B1 (en) | 2005-12-19 | 2010-06-29 | Nvidia Corporation | Configurable output buffer ganging for a parallel processor |
US8081181B2 (en) | 2007-06-20 | 2011-12-20 | Microsoft Corporation | Prefix sum pass to linearize A-buffer storage |
US20090160863A1 (en) | 2007-12-21 | 2009-06-25 | Michael Frank | Unified Processor Architecture For Processing General and Graphics Workload |
CN101271584B (zh) | 2008-04-11 | 2010-11-10 | 威盛电子股份有限公司 | 可编程图形处理单元计算核心的常量缓冲的方法和系统 |
JP5275673B2 (ja) | 2008-04-23 | 2013-08-28 | トヨタ自動車株式会社 | マルチコアシステム、車両用ゲートウェイ装置 |
US8259111B2 (en) * | 2008-05-30 | 2012-09-04 | Advanced Micro Devices, Inc. | Merged shader for primitive amplification |
GB2466078B (en) * | 2008-12-15 | 2013-11-13 | Advanced Risc Mach Ltd | Apparatus and method for tracing activities of a shader program executed on shader circuitry of a data processing apparatus |
US20110043518A1 (en) | 2009-08-21 | 2011-02-24 | Nicolas Galoppo Von Borries | Techniques to store and retrieve image data |
US9142057B2 (en) * | 2009-09-03 | 2015-09-22 | Advanced Micro Devices, Inc. | Processing unit with a plurality of shader engines |
-
2011
- 2011-07-19 US US13/186,236 patent/US9442780B2/en active Active
-
2012
- 2012-06-25 CN CN201280035273.9A patent/CN103649922B/zh active Active
- 2012-06-25 JP JP2014521633A patent/JP5770375B2/ja not_active Expired - Fee Related
- 2012-06-25 KR KR1020147004184A patent/KR101630996B1/ko active IP Right Grant
- 2012-06-25 EP EP12737926.1A patent/EP2734923B1/en not_active Not-in-force
- 2012-06-25 WO PCT/US2012/044008 patent/WO2013012524A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
KR101630996B1 (ko) | 2016-06-15 |
WO2013012524A1 (en) | 2013-01-24 |
US20130021360A1 (en) | 2013-01-24 |
CN103649922A (zh) | 2014-03-19 |
JP2014521183A (ja) | 2014-08-25 |
EP2734923A1 (en) | 2014-05-28 |
US9442780B2 (en) | 2016-09-13 |
KR20140039076A (ko) | 2014-03-31 |
CN103649922B (zh) | 2017-02-15 |
EP2734923B1 (en) | 2018-01-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5770375B2 (ja) | シェーダ動作の同期化 | |
JP6273380B2 (ja) | レイトレーシングアプリケーションにおけるツリー横断のための開始ノード決定 | |
KR102327144B1 (ko) | 그래픽 프로세싱 장치 및 그래픽 프로세싱 장치에서 타일 기반 그래픽스 파이프라인을 수행하는 방법 | |
US8341611B2 (en) | Application interface on multiple processors | |
JP6467062B2 (ja) | スプーフクロック及び細粒度周波数制御を使用する下位互換性 | |
EP2820540B1 (en) | Execution model for heterogeneous cpu-gpu computing | |
US10553024B2 (en) | Tile-based rendering method and apparatus | |
US9799094B1 (en) | Per-instance preamble for graphics processing | |
EP3137985B1 (en) | Method and system to create a rendering pipeline | |
KR101563070B1 (ko) | 그래픽 프로세싱을 위한 데이터 저장 어드레스 할당 | |
JP2018510405A (ja) | グラフィックス処理におけるハイブリッドレンダリング | |
KR20140109431A (ko) | 커맨드 프로세서를 갖는 그래픽 프로세싱 유닛 | |
KR102381945B1 (ko) | 그래픽 프로세싱 장치 및 그래픽 프로세싱 장치에서 그래픽스 파이프라인을 수행하는 방법 | |
JP2016509718A (ja) | ビジビリティ情報を用いたグラフィックスデータのレンダリング | |
US9633411B2 (en) | Load scheme for shared register in GPU | |
US9165337B2 (en) | Command instruction management | |
JP2018514855A (ja) | ハイブリッド2d/3dグラフィックスレンダリング | |
KR20130122657A (ko) | 범용 그래픽스 프로세싱 유닛에서의 컴퓨테이션 리소스 파이프라이닝 | |
TW201926239A (zh) | 以微磚為基礎之低解析度深度儲存 | |
TW202341063A (zh) | 動態波配對 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20150105 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150120 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150417 |
|
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: 20150526 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150624 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5770375 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |