JP5048836B2 - グラフィックス・システムにおけるヴァリングの圧縮と関連付けのための方式 - Google Patents
グラフィックス・システムにおけるヴァリングの圧縮と関連付けのための方式 Download PDFInfo
- Publication number
- JP5048836B2 JP5048836B2 JP2010520164A JP2010520164A JP5048836B2 JP 5048836 B2 JP5048836 B2 JP 5048836B2 JP 2010520164 A JP2010520164 A JP 2010520164A JP 2010520164 A JP2010520164 A JP 2010520164A JP 5048836 B2 JP5048836 B2 JP 5048836B2
- Authority
- JP
- Japan
- Prior art keywords
- shader
- register
- shared
- vertex
- input
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—Three-dimensional [3D] image rendering
- G06T15/005—General purpose rendering architectures
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Image Generation (AREA)
- Devices For Executing Special Programs (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Complex Calculations (AREA)
Description
コンパイラ62により命令される、ブロック102におけるインテリジェントな圧縮の、以下の説明は、表1と表2に関して説明されるであろう。インテリジェントな圧縮が、シェーダ変数(ヴァリングと属性の両方)に適用される。表1は、属性の圧縮を図示していて、表2は、ヴァリングの圧縮を図示している。コンパイラ62は、同一の、または、共通のMD(M次元)ベクトル・レジスタを再割り当てし、ここにおいて、レジスタIDを、その成分の和がM(M=4)と等しい、2つ以上のヴァリングに関連付けることにより、バイパスしない属性またはヴァリングの圧縮を実行し、これにしたがって、マスクを更新する。属性のためのMDベクトル・レジスタは、図4におけるVS入力レジスタ・ファイル57のための記憶に対応する。ヴァリングのためのMDベクトル・レジスタは、図4におけるVS出力レジスタ・ファイル57のための記憶に対応する。例示の設定M=4において、このように、ベクトルはX,Y,ZとWにより示される。それにもかかわらず、より多いまたはより少ない次元の他の設定が使用され得る。
第2のレベル:HW圧縮
ヴァリングの記憶または頂点キャッシュ54において、1つの頂点または1つのピクセルのための、全てのヴァリングはN×Mのバッファ・ブロックに記憶される。Nはヴァリングの数であり、M=4は4Dベクトルであることを意味する。記憶装置ブロックは、連続的な(一連の)成分(component)の数(N×M)として取り扱われ得る。32ビット/成分とM=4の場合には、成分は0〜((Nx4)−1)で番号付けされ得る。例えば、N=8で8×4の記憶媒体ブロックは、0〜31で番号付けされる、32個の連続的な(一連の)成分として取り扱われ得る。
1)シェーダのコードの大きさと実行する命令の低減、
2)入力/出力のトラフィック・バンド幅の低減、
3)ALU(算術と論理ユニット)の遅延時間とテクスチャをロードする遅延時間を扱い、より多くの頂点を許容するための、レジスタ・ファイルの大きさの低減、
4)遅延を取り扱う、より少ない命令とより多くの頂点による、より良い性能、
5)より少ない実行される命令とより少ないトラフィックによる電力節約、
6)シェーダには一般的である、バイパス/停止、
7)CPU/DSP32とGPU34の間の負荷バランスのために、シェーダ・プログラムの一部をCPUまたはDSPに移動させることにより、性能を調整するドライバ61のためのオプション、および、
8)予期されない問題の下で働くドライバ61のためのオプション、を含む。
VS60からのヴァリングは、FS70に入力されるであろう。このように、VS60のためのヴァリングシンボルは、コンパイラ62により発生され、VS出力シンボル・テーブル66に出力される。FS70のそれぞれの入力は、そのヴァリングシンボルまたはヴァリング名称によって定義されるように、VS出力シンボル・テーブル66における、それぞれのヴァリングシンボル出力に、結び付けられる。このように、VS出力シンボル・テーブル66(表1)における、「ヴァリング名称」により示される、ヴァリングシンボルが、FS入力シンボル・テーブル74(表3)における、「FSヴァリング名称」により示される、1つのエントリと一致すると、VS60からの出力(ヴァリング)は、FS70の入力に結び付けられる。VS60における順序と圧縮は、通常の場合には、FS70とは異なるので、リンカ80は、どのVS出力が、どのFS入力に結び付けられるかを決定する。リンカ80は、図5における、ヴァリングの再マッピングとローディング・モジュール84のために、関連付け命令82、または、関連付けテーブル86を発生する、ドライバ61の一部である。
以下の本件出願の当初の特許請求の範囲に記載された発明を付記する。
[C1]複数個の共有M次元(MD)レジスタを有する記憶媒体と、成分の合計がMに等しい1つ以上のシェーダ変数を各々の共有MDレジスタ内に圧縮する1組の操作を実行する処理ユニット、を含むデバイス。
[C2]前記1組の操作が、2つの2Dベクトル・シェーダ変数と、1つの3Dベクトル・シェーダ変数と1つの実数型シェーダ変数と、1つの2Dベクトル・シェーダ変数と2つの別の実数型シェーダ変数と、4つの実数型のシェーダ変数のうち1つを、圧縮する、C1のデバイス。
[C3]前記シェーダ変数が頂点シェーダからの1組の出力可変長を含み、前記1組の操作が、前記複数個の共有MDレジスタ内の、前記1組の出力可変長を圧縮する操作と、頂点シェーダ出力ファイルを生成するために、前記記憶媒体に任意の残りの可変長を充足する操作、を含む、C1のデバイス。
[C4]複数個のMDキャッシュ・レジスタを持つ頂点キャッシュをさらに含み、前記記憶媒体がMDレジスタを持つ圧縮バッファを含み、前記頂点シェーダ出力ファイルのM個の成分をその中に連続的に圧縮し、前記頂点キャッシュ内のそれぞれのMDキャッシュ・レジスタが満たされると、前記圧縮バッファの前記MDレジスタの内容を転送する、C3のデバイス。
[C5]前記処理ユニットが、前記頂点キャッシュ内の前記出力可変長を、フラグメント・シェーダの1組の入力可変長に関連付ける、第2の組の操作を実行する、C4のデバイス。
[C6]前記第2の組の操作が、前記頂点シェーダの前記出力可変長に対応する可変長シンボル名を、前記フラグメント・シェーダの前記組の入力可変長における対応する可変長シンボル名に一致させる操作を含む、C5のデバイス。
[C7]第2の複数個の共有MDレジスタを持つ、第2の記憶媒体をさらに含み、前記シェーダ変数が、さらに前記頂点シェーダの入力ためにバイパスされない入力属性とバイパスされる入力属性とを含み、前記1組の操作が、前記第2の複数個の共有MDレジスタ内の、前記バイパスされない入力属性を圧縮する操作と、頂点シェーダ入力ファイルを生成するために、前記第2の記憶媒体内に任意の残りのバイパスされない入力属性を充足する操作を含む、C4のデバイス。
[C8]前記頂点キャッシュが、第2の複数個のMDキャッシュ・レジスタをさらに含み、前記記憶媒体が、MDレジスタを持つ第2の圧縮バッファを含み、前記バイパスされる入力属性のM個の成分を、その中に連続的に圧縮し、前記頂点キャッシュ内の前記第2の複数個のMDキャッシュ・レジスタの各々のMDキャッシュ・レジスタが満たされると、前記第2の圧縮バッファの前記MDレジスタの内容を転送する、C7のデバイス。
[C9]第2の複数個の共有MDレジスタを持つ、第2の記憶媒体をさらに含み、前記シェーダ変数が前記頂点シェーダの入力ための1組の入力属性を含み、前記1組の操作が、圧縮された場合に、残りの圧縮されてない入力属性の成分がMを超えるまで、前記第2の複数個の共有MDレジスタ内の、前記1組の入力属性を圧縮する操作と、頂点シェーダ入力ファイルを生成するために前記第2の記憶媒体内に前記残りの入力属性を充足する操作を含む、C4のデバイス。
[C10]前記処理ユニットが、携帯電話、無線デバイス、無線通信デバイス、ビデオゲーム・コンソール、個人情報端末(PDA)、ラップトップ・コンピュータ、およびオーディオ/ビデオ対応デバイスの1つの一部である、C1のデバイス。
[C11]複数個の共有M次元(MD)レジスタを有する記憶媒体と、成分の合計がMに等しい1つ以上のシェーダ変数を各々の共有MDレジスタ内に圧縮する1組の操作を実行する処理ユニットを、含む集積回路。
[C12]前記1組の動作が、2つの2Dベクトル・シェーダ変数と、1つの3Dベクトル・シェーダ変数と1つの実数型のシェーダ変数と、1つの2Dベクトル・シェーダ変数と2つの別の実数型シェーダ変数と、4つの実数型のシェーダ変数のうち1つを、圧縮する、C11の集積回路。
[C13]前記シェーダ変数が頂点シェーダからの1組の出力可変長を含み、前記1組の操作が、前記複数個の共有MDレジスタ内の、前記1組の出力可変長を圧縮する操作と、頂点シェーダ出力ファイルを生成するために、前記記憶媒体に任意の残りの可変長を充足する操作、を含む、C11の集積回路。
[C14]複数個のMDキャッシュ・レジスタを持つ頂点キャッシュをさらに含み、前記記憶媒体が、MDレジスタを持つ圧縮バッファを含み、前記頂点シェーダ出力ファイルのM個の成分をその中に連続的に圧縮し、前記頂点キャッシュ内のそれぞれの(MD)キャッシュ・レジスタが満たされると、前記圧縮バッファの前記MDレジスタの内容を転送する、C13の集積回路。
[C15]前記処理ユニットが、前記頂点キャッシュ内の前記出力可変長を、フラグメント・シェーダのための1組の入力可変長に関連付ける、第2の組の操作を実行する、C14の集積回路。
[C16]前記第2の組の操作が、前記頂点シェーダの前記出力可変長に対応する可変長シンボル名を、前記フラグメント・シェーダのための前記組の入力可変長における対応する可変長シンボル名に一致させる操作を含む、C15の集積回路。
[C17]第2の複数個の共有MDレジスタを持つ、第2の記憶媒体をさらに含み、前記シェーダ変数が、さらに前記頂点シェーダの入力ためにバイパスされない入力属性とバイパスされる入力属性とを含み、前記1組の操作が、前記第2の複数個の共有MDレジスタ内の、前記バイパスされない入力属性を圧縮する操作と、頂点シェーダ入力ファイルを生成するために、前記第2の記憶媒体内に任意の残りのバイパスされない入力属性を充足する操作を含む、C14の集積回路。
[C18]前記頂点キャッシュが、第2の複数個のMDキャッシュ・レジスタをさらに含み、前記記憶媒体が、前記バイパスされた入力属性のM個の成分をその中に連続的に圧縮し、前記頂点キャッシュ内の前記第2の複数個のMDキャッシュ・レジスタの各々のMDキャッシュ・レジスタが満たされると、前記第2の圧縮バッファの前記MDレジスタの内容を転送する、MDレジスタを持つ第2の圧縮バッファを含む、C17の集積回路。
[C19]第2の複数個の共有MDレジスタを持つ、第2の記憶媒体をさらに含み、前記シェーダ変数が前記頂点シェーダの入力ための1組の入力属性を含み、前記1組の操作が、圧縮された場合に残りの圧縮されてない入力属性の成分がMを超えるまで、前記第2の複数個の共有MDレジスタ内の、前記1組の入力属性を圧縮する操作と、頂点シェーダ入力ファイルを生成するために前記第2の記憶媒体内に前記残りの入力属性を充足する操作を含む、C14の集積回路。
[C20]前記処理ユニットが、携帯電話、無線デバイス、無線通信デバイス、ビデオゲーム・コンソール、個人情報端末(PDA)、ラップトップ・コンピュータ、およびオーディオ/ビデオ対応デバイスの1つの一部である、C11の集積回路。
[C21]1組のシェーダ変数を記憶するために複数個の共有M次元(MD)レジスタを含む記憶する手段と、成分の合計がMに等しい前記1組のシェーダ変数の1つ以上のシェーダ変数を各々の共有MDレジスタ内に圧縮する圧縮手段を、含むデバイス。
[C22]前記圧縮手段が、2つの2Dベクトル・シェーダ変数と、1つの3Dベクトル・シェーダ変数と1つの実数型のシェーダ変数と、1つの2Dベクトル・シェーダ変数と2つの別の実数型シェーダ変数と、4つの実数型のシェーダ変数の少なくとも1つを、圧縮するための手段を含む、C21の無線デバイス。
[C23]前記1組のシェーダ変数が頂点シェーダからの1組の出力可変長を含み、前記圧縮手段が、前記複数個の共有MDレジスタ内の前記1組の出力可変長を圧縮するための可変長圧縮手段と頂点シェーダ出力ファイルを生成するために前記記憶手段に任意の残りの可変長を充足する充足手段を含む、C21の無線デバイス。
[C24]前記1組のシェーダ変数が、頂点シェーダへの1組の入力属性を含み、前記圧縮手段が、前記複数個の共有MDレジスタ内の前記1組の入力属性を圧縮するための属性圧縮手段と、頂点シェーダ入力ファイルを生成するために前記記憶手段内に任意の残りの入力属性を充足するための充足手段を含む、C21の無線デバイス。
[C25]前記圧縮ユニットが、携帯電話、無線デバイス、無線通信デバイス、ビデオゲーム・コンソール、個人情報端末(PDA)、ラップトップ・コンピュータ、およびオーディオ/ビデオ対応デバイスの1つの一部である、C21の無線デバイス。
[C26]コンピュータに、そのベクトルの合計がMに等しい1組のシェーダ変数内の1つ以上のシェーダ変数を、複数個の共有MDベクトル・レジスタにおける各々の共有M次元(MD)ベクトル・レジスタに、圧縮させる命令を有するコンピュータ可読媒体を含むコンピュータ・プログラム製品。
[C27]前記シェーダ変数の組が頂点シェーダからの1組の出力可変長を含み、前記命令が、前記コンピュータに前記1組の出力可変長を圧縮させ、残りの出力可変長により、残りのベクトル・レジスタを充足させる、C26のコンピュータ・プログラム製品。
[C28]前記コンピュータに、前記圧縮された組の出力可変長を、フラグメント・シェーダのための1組の入力可変長に関連付けさせる命令を、さらに含む、C27のコンピュータ・プログラム製品。
[C29]前記関連付けさせる命令が、前記コンピュータに、前記頂点シェーダからの前記圧縮された組の出力可変長に対応する可変長シンボル名を、前記フラグメント・シェーダのための前記組の入力可変長における対応する可変長シンボル名に一致させる命令を含む、C28のコンピュータ・プログラム製品。
[C30]前記1組のシェーダ変数が、頂点シェーダへの1組の入力属性を含み、前記命令が、前記コンピュータに前記1組の入力属性を圧縮させ、残りの入力属性で残りのベクトル・レジスタを充足させる、C26のコンピュータ・プログラム製品。
[C31]そのベクトルの合計がMに等しい1組のシェーダ変数の内の1つ以上のシェーダ変数を、複数個の共有MDベクトル・レジスタにおける各々の共有M次元(MD)ベクトル・レジスタへ圧縮することと、任意の残っているシェーダ変数が圧縮できなくなるまで、前記複数個の共有MDベクトル・レジスタにおける前記圧縮を繰り返すこと、を含む方法。
[C32]前記1組のシェーダ変数が頂点シェーダからの1組の出力可変長を含み、前記圧縮が、前記複数個の共有M次元(MD)レジスタにおける、前記1組の出力可変長の圧縮を含む、C31の無線デバイス。
[C33]前記圧縮された出力可変長の組と残りの出力可変長により頂点シェーダ出力ファイルを生成することと、前記頂点シェーダ出力ファイルのM個の成分を、圧縮バッファのMD一時レジスタに連続的に圧縮することと、頂点キャッシュのそれぞれのMDキャッシュ・レジスタが満たされるとき、前記MD一時レジスタの内容の転送すること、をさらに含む、C31の方法。
[C34]前記組のシェーダ変数が頂点シェーダへのバイパスされない1組の入力属性を含み、前記圧縮が前記複数個の共有MDレジスタにおける前記組の入力属性の圧縮を含む、C31の方法。
[C35]バイパスされた入力属性のM個の成分を、圧縮バッファのMD一時レジスタに連続的に圧縮することと、頂点キャッシュのそれぞれのMDキャッシュ・レジスタが満たされるとき、前記MD一時レジスタの内容を転送すること、をさらに含む、C34の方法。
[C36]複数個の共有M次元(MD)レジスタを有する記憶媒体と、成分の合計がMに等しい1つ以上のシェーダ変数を各々の共有MDレジスタ内に圧縮する1組の操作を実装する集積回路を、含むプロセッサ。
[C37]前記シェーダ変数が頂点シェーダからの1組の出力可変長を含み、前記1組の操作が、前記複数個の共有M次元(MD)レジスタにおいて、前記1組の出力可変長を圧縮する操作と、頂点シェーダ出力ファイルを生成するために、前記記憶媒体に任意の残りの可変長を充足する操作を含むC36のプロセッサ。
[C38]複数個のMDキャッシュ・レジスタを持つ頂点キャッシュをさらに含み、前記記憶媒体がMDレジスタを持つ圧縮バッファを含み、前記頂点シェーダ出力ファイルのM個の成分をその中に連続的に圧縮し、前記頂点キャッシュ内のそれぞれのMDキャッシュ・レジスタが満たされると、前記圧縮バッファの前記MDレジスタの内容を転送する、C37のプロセッサ。
Claims (37)
- デバイスであって、
少なくとも1つの共有M次元(MD)レジスタを有する記憶媒体であって、前記少なくとも1つの共有MDレジスタは、少なくとも1つの行を有し、各行は、少なくともMスロットを有する、記憶媒体と、
成分の合計がMに等しい、頂点シェーダ出力ファイルからの1つ以上のシェーダ変数を、前記少なくとも1つの共有MDレジスタの第1の行に連続的に圧縮し、
前記第1の行に前記1つ以上のシェーダ変数の各々をロードした後に、前記第1の行のMスロットが満たされているかどうかを検出し、
前記第1の行の前記Mスロットが満たされていないと検出した際に、前記第1の行を連続的に圧縮することを継続し、
前記第1の行の前記Mスロットが満たされていると検出した際に、前記少なくとも1つの共有MDレジスタの前記第1の行に圧縮された前記1つ以上のシェーダ変数を、頂点キャッシュ内のそれぞれのMDキャッシュ・レジスタに転送する、
ための1組の操作を実行する処理ユニットと、
を含む、デバイス。 - Mは、4に等しく、
前記1組の操作が、
2つの2Dベクトル・シェーダ変数、
1つの3Dベクトル・シェーダ変数と1つの実数型シェーダ変数、
1つの2Dベクトル・シェーダ変数と2つの別の実数型シェーダ変数、および
4つの実数型のシェーダ変数、
のうち1つを、前記少なくとも1つの共有MDレジスタに圧縮する、請求項1のデバイス。 - 前記1つ以上のシェーダ変数が頂点シェーダからの1組の出力ヴァリング(varying)を含み、
前記1組の操作が、前記少なくとも1つの共有MDレジスタにおいて前記1組の出力ヴァリング(varying)を圧縮する操作を含む、
請求項1のデバイス。 - 複数個のMDキャッシュ・レジスタを持つ頂点キャッシュをさらに含み、
前記複数個のMDキャッシュ・レジスタは、前記それぞれのMDキャッシュ・レジスタを含み、
前記記憶媒体が前記少なくとも1つの共有MDレジスタを持つ圧縮バッファを含む、
請求項3のデバイス。 - 前記処理ユニットが、前記頂点キャッシュ内の前記出力ヴァリング(varying)を、フラグメント・シェーダの1組の入力ヴァリング(varying)に関連付ける、第2の組の操作を実行する、請求項4のデバイス。
- 前記第2の組の操作が、前記頂点シェーダの前記出力ヴァリング(varying)に対応するヴァリング(varying)シンボル名を、前記フラグメント・シェーダの前記1組の入力ヴァリング(varying)における対応するヴァリング(varying)シンボル名に一致させる操作を含む、請求項5のデバイス。
- 複数個の共有MDレジスタを持つ、第2の記憶媒体をさらに含み、
前記1つ以上のシェーダ変数が、さらに前記頂点シェーダの入力ためにバイパスされない入力属性とバイパスされる入力属性とを含み、
前記1組の操作が、前記複数個の共有MDレジスタの各々においてM個の前記バイパスされない入力属性を圧縮する操作と、頂点シェーダ入力ファイルにおいて任意の残りのバイパスされない入力属性を充足する操作とを含む、
請求項4のデバイス。 - 前記頂点キャッシュが、第2の複数個のMDキャッシュ・レジスタをさらに含み、
前記記憶媒体が、MDレジスタを持つ第2の圧縮バッファであって、前記バイパスされる入力属性のM個の成分を、その中に連続的に圧縮し、かつ、満たされると、前記頂点キャッシュ内の前記第2の複数個のMDキャッシュ・レジスタの各々のMDキャッシュ・レジスタに、前記第2の圧縮バッファの前記MDレジスタの内容を転送するための、MDレジスタを持つ第2の圧縮バッファを含む、
請求項7のデバイス。 - 複数個の共有MDレジスタを持つ、第2の記憶媒体をさらに含み、
前記1つ以上のシェーダ変数が前記頂点シェーダの入力ための1組の入力属性を含み、
前記1組の操作が、圧縮された場合に、残りの圧縮されてない入力属性の成分がMを超えるまで、前記複数個の共有MDレジスタにおいて前記1組の入力属性を圧縮する操作と、頂点シェーダ入力ファイルにおいて前記残りの入力属性を充足する操作とを含む、
請求項4のデバイス。 - 前記処理ユニットが、携帯電話、無線デバイス、無線通信デバイス、ビデオゲーム・コンソール、個人情報端末(PDA)、ラップトップ・コンピュータ、およびオーディオ/ビデオ対応デバイス、のうちの1つの一部である、請求項1のデバイス。
- 集積回路であって、
少なくとも1つの共有M次元(MD)レジスタを有する記憶媒体であって、前記少なくとも1つの共有MDレジスタは、少なくとも1つの行を有し、各行は、少なくともMスロットを有する、記憶媒体と、
成分の合計がMに等しい1つ以上のシェーダ変数を、前記少なくとも1つの共有MDレジスタの第1の行に連続的に圧縮し、
前記第1の行に前記1つ以上のシェーダ変数の各々をロードした後に、前記第1の行のMスロットが満たされているかどうかを検出し、
前記第1の行の前記Mスロットが満たされていないと検出した際に、前記第1の行を連続的に圧縮することを継続し、
前記第1の行の前記Mスロットが満たされていると検出した際に、前記少なくとも1つの共有MDレジスタの前記第1の行に圧縮された前記1つ以上のシェーダ変数を、頂点キャッシュ内のそれぞれのMDキャッシュ・レジスタに転送する、
ための1組の操作を実行する処理ユニットと、
を含む集積回路。 - Mは、4に等しく、
前記1組の操作が、
2つの2Dベクトル・シェーダ変数、
1つの3Dベクトル・シェーダ変数と1つの実数型シェーダ変数、
1つの2Dベクトル・シェーダ変数と2つの別の実数型シェーダ変数、および
4つの実数型のシェーダ変数、
のうち1つを、前記少なくとも1つの共有MDレジスタに圧縮する、請求項11の集積回路。 - 前記1つ以上のシェーダ変数が頂点シェーダからの1組の出力ヴァリング(varying)を含み、
前記1組の操作が、前記少なくとも1つの共有MDレジスタにおいて前記1組の出力ヴァリング(varying)を圧縮する操作を含む、
請求項11の集積回路。 - 複数個のMDキャッシュ・レジスタを持つ頂点キャッシュをさらに含み、
前記複数個のMDキャッシュ・レジスタは、前記それぞれのMDキャッシュ・レジスタを含み、
前記記憶媒体が前記少なくとも1つの共有MDレジスタを持つ圧縮バッファを含み、前記圧縮バッファは、前記頂点シェーダ出力ファイルのM個の成分を、前記頂点キャッシュ内の前記それぞれのMDキャッシュ・レジスタに連続的に圧縮するように構成される、
請求項13の集積回路。 - 前記処理ユニットが、前記頂点キャッシュ内の前記出力ヴァリング(varying)を、フラグメント・シェーダのための1組の入力ヴァリング(varying)に関連付ける、第2の組の操作を実行する、請求項14の集積回路。
- 前記第2の組の操作が、前記頂点シェーダの前記出力ヴァリング(varying)に対応するヴァリング(varying)シンボル名を、前記フラグメント・シェーダのための前記1組の入力ヴァリング(varying)における対応するヴァリング(varying)シンボル名に一致させる操作を含む、請求項15の集積回路。
- 複数個の共有MDレジスタを持つ、第2の記憶媒体をさらに含み、
前記1つ以上のシェーダ変数が、さらに前記頂点シェーダの入力ためにバイパスされない入力属性とバイパスされる入力属性とを含み、
前記1組の操作が、前記複数個の共有MDレジスタの各々において、M個の前記バイパスされない入力属性を圧縮する操作と、頂点シェーダ入力ファイルにおいて任意の残りのバイパスされない入力属性を充足する操作とを含む、
請求項14の集積回路。 - 前記頂点キャッシュが、第2の複数個のMDキャッシュ・レジスタをさらに含み、
前記記憶媒体が、MDレジスタを持つ第2の圧縮バッファであって、前記バイパスされた入力属性のM個の成分をその中に連続的に圧縮し、かつ、満たされると、前記頂点キャッシュ内の前記第2の複数個のMDキャッシュ・レジスタの各々のMDキャッシュ・レジスタに、前記第2の圧縮バッファの前記MDレジスタの内容を転送するための、MDレジスタを持つ第2の圧縮バッファを含む、
請求項17の集積回路。 - 複数個の共有MDレジスタを持つ、第2の記憶媒体をさらに含み、
前記1つ以上のシェーダ変数が前記頂点シェーダの入力ための1組の入力属性を含み、
前記1組の操作が、圧縮された場合に、残りの圧縮されてない入力属性の成分がMを超えるまで、前記複数個の共有MDレジスタにおいて、前記1組の入力属性を圧縮する操作と、頂点シェーダ入力ファイルにおいて前記残りの入力属性を充足する操作とを含む、
請求項14の集積回路。 - 前記処理ユニットが、携帯電話、無線デバイス、無線通信デバイス、ビデオゲーム・コンソール、個人情報端末(PDA)、ラップトップ・コンピュータ、およびオーディオ/ビデオ対応デバイス、のうちの1つの一部である、請求項11の集積回路。
- 複数個の共有M次元(MD)レジスタを含む記憶する手段と、
成分の合計がMに等しい1組のシェーダ変数の1つ以上のシェーダ変数を各々の共有MDレジスタ内に連続的に圧縮する圧縮手段と、
前記複数個の共有MDレジスタが満たされているかどうかを決定する検出手段と、
1つの共有MDレジスタが満たされていると検出した際に、前記複数の共有MDレジスタのうちの前記1つの共有MDレジスタのM個の成分を、頂点キャッシュ内のそれぞれのMDキャッシュ・レジスタに転送する転送手段と、
を含む、無線デバイス。 - Mは、4に等しく、
前記圧縮手段が、
2つの2Dベクトル・シェーダ変数、
1つの3Dベクトル・シェーダ変数と1つの実数型シェーダ変数、
1つの2Dベクトル・シェーダ変数と2つの別の実数型シェーダ変数、および
4つの実数型のシェーダ変数、
のうちの少なくとも1つを、前記少なくとも1つの共有MDレジスタに圧縮するための手段を含む、請求項21の無線デバイス。 - 前記1組のシェーダ変数が頂点シェーダからの1組の出力ヴァリング(varying)を含み、
前記圧縮手段が、前記複数個の共有MDレジスタ内において前記1組の出力ヴァリング(varying)を圧縮するためのヴァリング(varying)圧縮手段と、頂点シェーダ出力ファイルにおいて前記記憶手段に任意の残りのヴァリング(varying)を充足する充足手段とを含む、
請求項21の無線デバイス。 - 前記1組のシェーダ変数が、頂点シェーダへの1組の入力属性を含み、
前記圧縮手段が、前記複数個の共有MDレジスタにおいて前記1組の入力属性を圧縮するための属性圧縮手段と、頂点シェーダ入力ファイルにおいて前記記憶手段内に任意の残りの入力属性を充足するための充足手段とを含む、
請求項21の無線デバイス。 - 前記圧縮手段が、携帯電話、無線デバイス、無線通信デバイス、ビデオゲーム・コンソール、個人情報端末(PDA)、ラップトップ・コンピュータ、およびオーディオ/ビデオ対応デバイス、のうちの1つの一部である、請求項21の無線デバイス。
- 命令を有するコンピュータ可読記録媒体であって、
前記命令は、実行されたとき、1つ以上のコンピュータに、
シェーダ変数を、複数個の共有MDベクトル・レジスタのうちの1つの共有M次元(MD)ベクトル・レジスタに圧縮することであって、前記共有MDベクトル・レジスタが、Mスロットを有する、圧縮することと、
前記シェーダ変数を圧縮した後に、前記共有MDベクトル・レジスタの前記Mスロットが満たされているかどうかを決定することと、
前記Mスロットが満たされていないと決定した後に、別のシェーダ変数の少なくとも一部を、前記共有MDベクトル・レジスタに連続的に圧縮することと、
前記Mスロットが満たされていると決定した後に、前記共有MDベクトル・レジスタのMスロットに圧縮された前記1つ以上のシェーダ変数を、頂点キャッシュ内のそれぞれのMDキャッシュ・レジスタに転送することと、
を行わせる、コンピュータ可読記録媒体。 - 前記シェーダ変数の組が頂点シェーダからの1組の出力ヴァリング(varying)を含み、
前記命令が、前記コンピュータに前記1組の出力ヴァリング(varying)を圧縮させ、残りの出力ヴァリング(varying)により、残りのベクトル・レジスタを充足させる、
請求項26のコンピュータ可読記録媒体。 - 前記コンピュータに、前記圧縮された組の出力ヴァリング(varying)を、フラグメント・シェーダのための1組の入力ヴァリング(varying)に関連付けさせる命令を、さらに含む、請求項27のコンピュータ可読記録媒体。
- 前記関連付けさせる命令が、前記コンピュータに、前記頂点シェーダからの前記圧縮された組の出力ヴァリング(varying)に対応するヴァリング(varying)シンボル名を、前記フラグメント・シェーダのための前記1組の入力ヴァリング(varying)における対応するヴァリング(varying)シンボル名に一致させる命令を含む、請求項28のコンピュータ可読記録媒体。
- 前記シェーダ変数の組が、頂点シェーダへの1組の入力属性を含み、
前記命令が、前記コンピュータに前記1組の入力属性を圧縮させ、残りの入力属性で残りのベクトル・レジスタを充足させる、
請求項26のコンピュータ可読記録媒体。 - 電子デバイスにおける方法であって、
そのベクトルの合計がMに等しい1組のシェーダ変数の内の1つ以上のシェーダ変数を、複数個のMDベクトル・レジスタの各共有M次元(MD)ベクトル・レジスタへ圧縮することと、
任意の残っているシェーダ変数が圧縮できなくなるまで、前記複数個の共有MDベクトル・レジスタにおける前記圧縮を繰り返すことと、
前記圧縮されたシェーダ変数の組と残りのシェーダ変数で頂点シェーダ出力ファイルを生成することと、
前記頂点シェーダ出力ファイルのM個の成分を、圧縮バッファのMD一時レジスタに連続的に圧縮することと、
前記MD一時レジスタが満たされていることを検出することと、
前記MD一時レジスタが満たされていると検出した際に、頂点キャッシュ内のそれぞれのMDキャッシュ・レジスタに前記MD一時レジスタの内容を転送することと、
を含み、
前記方法は、前記電子デバイスにおいて実行される、方法。 - 前記1組のシェーダ変数が頂点シェーダからの1組の出力ヴァリング(varying)を含み、前記圧縮が、前記複数個の共有M次元(MD)レジスタにおける、前記1組の出力ヴァリング(varying)の圧縮を含む、請求項31の方法。
- 前記1組のシェーダ変数が頂点シェーダへのバイパスされない1組の入力属性を含み、前記圧縮が前記複数個の共有MDレジスタにおける前記1組の入力属性の圧縮を含む、請求項31の方法。
- バイパスされた入力属性のM個の成分を、圧縮バッファのMD一時レジスタに連続的に圧縮することと、
頂点キャッシュのそれぞれのMDキャッシュ・レジスタが満たされるとき、前記MD一時レジスタの内容を転送することと、
をさらに含む、請求項33の方法。 - プロセッサであって、
少なくとも1つの共有M次元(MD)レジスタを有する記憶媒体であって、前記少なくとも1つの共有MDレジスタは、少なくともMスロットを有する、記憶媒体と、
成分の合計がMに等しい、1つ以上のシェーダ変数を、前記少なくとも1つの共有MDレジスタに、連続的に圧縮し、
前記少なくとも1つの共有MDレジスタに前記1つ以上のシェーダ変数の各々をロードした後に、前記少なくとも1つの共有MDレジスタの前記Mスロットが満たされているかどうかを決定し、
前記少なくとも1つの共有MDレジスタの前記Mスロットが満たされていないと検出した際に、前記少なくとも1つの共有MDレジスタを連続的に圧縮し続け、
前記少なくとも1つの共有MDレジスタの前記Mスロットが満たされていると検出した際に、前記少なくとも1つのMDレジスタの前記第1の行に圧縮された前記1つ以上のシェーダ変数を、頂点キャッシュ内のそれぞれのMDキャッシュ・レジスタに転送する、
ための1組の操作を実行する集積回路と、
を含む、プロセッサ。 - 前記1つ以上のシェーダ変数が頂点シェーダからの1組の出力ヴァリング(varying)を含み、
前記1組の操作が、前記複数個の共有M次元(MD)レジスタにおいて、前記1組の出力ヴァリング(varying)を圧縮する操作と、頂点シェーダ出力ファイルにおいて前記記憶媒体に任意の残りのヴァリング(varying)を充足する操作とを含む
請求項35のプロセッサ。 - 複数個のMDキャッシュ・レジスタを持つ頂点キャッシュをさらに含み、
前記複数個のMDキャッシュ・レジスタは、前記それぞれのMDキャッシュ・レジスタを含み、
前記記憶媒体が前記少なくとも1つの共有MDレジスタを持つ圧縮バッファを含む、請求項36のプロセッサ。
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US11/830,667 US8355028B2 (en) | 2007-07-30 | 2007-07-30 | Scheme for varying packing and linking in graphics systems |
| US11/830,667 | 2007-07-30 | ||
| PCT/US2008/071655 WO2009018385A2 (en) | 2007-07-30 | 2008-07-30 | Scheme for packing and linking of variables in graphics systems |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2010535393A JP2010535393A (ja) | 2010-11-18 |
| JP5048836B2 true JP5048836B2 (ja) | 2012-10-17 |
Family
ID=39940557
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2010520164A Expired - Fee Related JP5048836B2 (ja) | 2007-07-30 | 2008-07-30 | グラフィックス・システムにおけるヴァリングの圧縮と関連付けのための方式 |
Country Status (11)
| Country | Link |
|---|---|
| US (1) | US8355028B2 (ja) |
| EP (1) | EP2023285B8 (ja) |
| JP (1) | JP5048836B2 (ja) |
| KR (1) | KR101118814B1 (ja) |
| CN (1) | CN101779219B (ja) |
| BR (1) | BRPI0813854B1 (ja) |
| CA (1) | CA2693344C (ja) |
| MX (1) | MX2010001064A (ja) |
| RU (1) | RU2448369C2 (ja) |
| TW (1) | TWI378355B (ja) |
| WO (1) | WO2009018385A2 (ja) |
Families Citing this family (21)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9123151B2 (en) * | 2008-08-05 | 2015-09-01 | Autodesk, Inc. | Exchanging data between vertex shaders and fragment shaders on a graphics processing unit |
| US8947444B1 (en) * | 2008-12-09 | 2015-02-03 | Nvidia Corporation | Distributed vertex attribute fetch |
| 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 |
| US9412193B2 (en) * | 2011-06-01 | 2016-08-09 | Apple Inc. | Run-time optimized shader program |
| US9214008B2 (en) * | 2013-01-18 | 2015-12-15 | Nvidia Corporation | Shader program attribute storage |
| US9395988B2 (en) * | 2013-03-08 | 2016-07-19 | Samsung Electronics Co., Ltd. | Micro-ops including packed source and destination fields |
| CN104995622B (zh) | 2013-03-14 | 2019-06-04 | 英特尔公司 | 用于图形函数的合成器支持 |
| US10102603B2 (en) | 2013-06-10 | 2018-10-16 | Sony Interactive Entertainment Inc. | Scheme for compressing vertex shader output parameters |
| 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 |
| US10176621B2 (en) | 2013-06-10 | 2019-01-08 | Sony Interactive Entertainment Inc. | Using compute shaders as front end for vertex shaders |
| US10096079B2 (en) | 2013-06-10 | 2018-10-09 | Sony Interactive Entertainment Inc. | Fragment shaders perform vertex shader computations |
| US10332308B2 (en) | 2014-12-08 | 2019-06-25 | Intel Corporation | Graphic rendering quality improvements through automated data type precision control |
| KR20160074154A (ko) | 2014-12-18 | 2016-06-28 | 삼성전자주식회사 | 컴파일러 |
| US10460513B2 (en) * | 2016-09-22 | 2019-10-29 | Advanced Micro Devices, Inc. | Combined world-space pipeline shader stages |
| KR20180038793A (ko) * | 2016-10-07 | 2018-04-17 | 삼성전자주식회사 | 영상 데이터 처리 방법 및 장치 |
| CN108986014A (zh) * | 2018-07-19 | 2018-12-11 | 芯视图(常州)微电子有限公司 | 适用乱序顶点染色的图元装配单元 |
| US11748839B2 (en) | 2020-04-16 | 2023-09-05 | Samsung Electronics Co., Ltd. | Efficient fast random access enabled geometry attribute compression mechanism |
| 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 |
Family Cites Families (18)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| GB9413169D0 (en) | 1994-06-30 | 1994-08-24 | Thomson Consumer Electronics | Modulator data frame interfacing |
| GB2317464A (en) | 1996-09-23 | 1998-03-25 | Advanced Risc Mach Ltd | Register addressing in a data processing apparatus |
| US5949421A (en) * | 1997-03-31 | 1999-09-07 | Cirrus Logic, Inc. | Method and system for efficient register sorting for three dimensional graphics |
| RU2249245C2 (ru) | 1999-09-01 | 2005-03-27 | Мацусита Электрик Индастриал Ко., Лтд. | Способ и устройство для обработки данных с авторскими правами |
| BR0007049A (pt) | 1999-09-01 | 2001-07-31 | Matsushita Electric Industrial Co Ltd | Método e aparelho para o processamento de dados com direitos autorais |
| US6717577B1 (en) | 1999-10-28 | 2004-04-06 | Nintendo Co., Ltd. | Vertex cache for 3D computer graphics |
| US6829696B1 (en) | 1999-12-30 | 2004-12-07 | Texas Instruments Incorporated | Data processing system with register store/load utilizing data packing/unpacking |
| US6900812B1 (en) | 2000-08-02 | 2005-05-31 | Ati International Srl | Logic enhanced memory and method therefore |
| US6828975B2 (en) * | 2001-03-01 | 2004-12-07 | Microsoft Corporation | Method and system for managing graphics objects in a graphics display system |
| US7017154B2 (en) | 2001-03-23 | 2006-03-21 | International Business Machines Corporation | Eliminating store/restores within hot function prolog/epilogs using volatile registers |
| US6704026B2 (en) | 2001-05-18 | 2004-03-09 | Sun Microsystems, Inc. | Graphics fragment merging for improving pixel write bandwidth |
| DE10131254A1 (de) | 2001-07-01 | 2003-01-23 | Deutsche Post Ag | Verfahren zum Überprüfen der Gültigkeit von digitalen Freimachungsvermerken |
| US6831653B2 (en) | 2001-07-31 | 2004-12-14 | Sun Microsystems, Inc. | Graphics pixel packing for improved fill rate performance |
| US6847369B2 (en) | 2002-01-30 | 2005-01-25 | Sun Microsystems, Inc. | Optimized packing of loose data in a graphics queue |
| US7530062B2 (en) * | 2003-05-23 | 2009-05-05 | Microsoft Corporation | Optimizing compiler transforms for a high level shader language |
| US7746347B1 (en) * | 2004-07-02 | 2010-06-29 | Nvidia Corporation | Methods and systems for processing a geometry shader program developed in a high-level shading language |
| US7681187B2 (en) | 2005-03-31 | 2010-03-16 | Nvidia Corporation | Method and apparatus for register allocation in presence of hardware constraints |
| US20080094408A1 (en) * | 2006-10-24 | 2008-04-24 | Xiaoqin Yin | System and Method for Geometry Graphics Processing |
-
2007
- 2007-07-30 US US11/830,667 patent/US8355028B2/en active Active
-
2008
- 2008-03-31 EP EP08006444.7A patent/EP2023285B8/en active Active
- 2008-07-29 TW TW097128649A patent/TWI378355B/zh not_active IP Right Cessation
- 2008-07-30 CN CN2008801009326A patent/CN101779219B/zh active Active
- 2008-07-30 JP JP2010520164A patent/JP5048836B2/ja not_active Expired - Fee Related
- 2008-07-30 MX MX2010001064A patent/MX2010001064A/es unknown
- 2008-07-30 CA CA2693344A patent/CA2693344C/en not_active Expired - Fee Related
- 2008-07-30 BR BRPI0813854A patent/BRPI0813854B1/pt active IP Right Grant
- 2008-07-30 KR KR1020107004551A patent/KR101118814B1/ko not_active Expired - Fee Related
- 2008-07-30 RU RU2010107218/08A patent/RU2448369C2/ru not_active IP Right Cessation
- 2008-07-30 WO PCT/US2008/071655 patent/WO2009018385A2/en not_active Ceased
Also Published As
| Publication number | Publication date |
|---|---|
| US20090033672A1 (en) | 2009-02-05 |
| CA2693344A1 (en) | 2009-02-05 |
| EP2023285B1 (en) | 2017-12-20 |
| CN101779219B (zh) | 2013-03-27 |
| RU2448369C2 (ru) | 2012-04-20 |
| KR101118814B1 (ko) | 2012-03-20 |
| US8355028B2 (en) | 2013-01-15 |
| CN101779219A (zh) | 2010-07-14 |
| RU2010107218A (ru) | 2011-09-10 |
| WO2009018385A3 (en) | 2009-03-26 |
| EP2023285B8 (en) | 2018-06-27 |
| TWI378355B (en) | 2012-12-01 |
| JP2010535393A (ja) | 2010-11-18 |
| TW200910110A (en) | 2009-03-01 |
| KR20100038462A (ko) | 2010-04-14 |
| WO2009018385A2 (en) | 2009-02-05 |
| CA2693344C (en) | 2017-01-17 |
| BRPI0813854B1 (pt) | 2020-01-14 |
| BRPI0813854A2 (pt) | 2019-02-12 |
| EP2023285A1 (en) | 2009-02-11 |
| MX2010001064A (es) | 2010-03-03 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP5048836B2 (ja) | グラフィックス・システムにおけるヴァリングの圧縮と関連付けのための方式 | |
| US11676321B2 (en) | Graphics library extensions | |
| CN114092614B (zh) | 带有并行光线测试的光线相交电路 | |
| US10706608B2 (en) | Tree traversal with backtracking in constant time | |
| US11107266B2 (en) | Method and apparatus for the proper ordering and enumeration of multiple successive ray-surface intersections within a ray tracing architecture | |
| CN107250996B (zh) | 用于存储器分级体系的压实的方法和装置 | |
| US12217350B2 (en) | Node encoding for spatially-organized ray tracing acceleration data structure | |
| CN117157676A (zh) | 加速实时光线追踪的三角形可见性测试 | |
| CN111986279B (zh) | 有效访问存储器和避免不必要的计算的系统和方法 | |
| US10600142B2 (en) | Compression and decompression of indices in a graphics pipeline | |
| CN113935476A (zh) | 深度学习数据集存取方法及系统、电子设备、存储介质 | |
| CN114616554A (zh) | 用于像素写入数据的压缩技术 | |
| CN113743573B (zh) | 用于访问和利用压缩数据及其状态信息的技术 | |
| US20240160889A1 (en) | Neural network processing | |
| US12620160B2 (en) | Graphics library extensions | |
| AU9735001A (en) | Incremental update of computer graphics |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20111129 |
|
| A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20120229 |
|
| A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20120307 |
|
| A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20120329 |
|
| A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20120405 |
|
| A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20120501 |
|
| A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20120510 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120529 |
|
| 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: 20120619 |
|
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120719 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150727 Year of fee payment: 3 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 5048836 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 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 |
|
| LAPS | Cancellation because of no payment of annual fees |
