JP4766906B2 - 拡張グラフィックスパイプラインを提供するシステムおよび方法 - Google Patents
拡張グラフィックスパイプラインを提供するシステムおよび方法 Download PDFInfo
- Publication number
- JP4766906B2 JP4766906B2 JP2005114573A JP2005114573A JP4766906B2 JP 4766906 B2 JP4766906 B2 JP 4766906B2 JP 2005114573 A JP2005114573 A JP 2005114573A JP 2005114573 A JP2005114573 A JP 2005114573A JP 4766906 B2 JP4766906 B2 JP 4766906B2
- Authority
- JP
- Japan
- Prior art keywords
- common core
- graphics
- vertex
- data
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims description 60
- 238000012545 processing Methods 0.000 claims description 79
- 239000000872 buffer Substances 0.000 claims description 32
- 230000008569 process Effects 0.000 claims description 28
- 238000004422 calculation algorithm Methods 0.000 claims description 25
- 238000004364 calculation method Methods 0.000 claims description 18
- 238000007667 floating Methods 0.000 claims description 11
- 238000005457 optimization Methods 0.000 claims description 9
- 230000006870 function Effects 0.000 description 51
- 238000003860 storage Methods 0.000 description 29
- 238000004891 communication Methods 0.000 description 22
- 238000010586 diagram Methods 0.000 description 11
- 230000009466 transformation Effects 0.000 description 9
- 230000008901 benefit Effects 0.000 description 7
- 239000011159 matrix material Substances 0.000 description 7
- 230000005055 memory storage Effects 0.000 description 7
- 238000009877 rendering Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 230000002093 peripheral effect Effects 0.000 description 5
- 239000008186 active pharmaceutical agent Substances 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 238000005286 illumination Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 238000000844 transformation Methods 0.000 description 3
- 101100005280 Neurospora crassa (strain ATCC 24698 / 74-OR23-1A / CBS 708.71 / DSM 1257 / FGSC 987) cat-3 gene Proteins 0.000 description 2
- 238000007792 addition Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 229920001690 polydopamine Polymers 0.000 description 2
- 230000003134 recirculating effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 239000013589 supplement Substances 0.000 description 2
- CDFKCKUONRRKJD-UHFFFAOYSA-N 1-(3-chlorophenoxy)-3-[2-[[3-(3-chlorophenoxy)-2-hydroxypropyl]amino]ethylamino]propan-2-ol;methanesulfonic acid Chemical compound CS(O)(=O)=O.CS(O)(=O)=O.C=1C=CC(Cl)=CC=1OCC(O)CNCCNCC(O)COC1=CC=CC(Cl)=C1 CDFKCKUONRRKJD-UHFFFAOYSA-N 0.000 description 1
- 244000025254 Cannabis sativa Species 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000010348 incorporation Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012432 intermediate storage Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000013178 mathematical model Methods 0.000 description 1
- 230000003278 mimic effect Effects 0.000 description 1
- 239000003607 modifier Substances 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 238000012958 reprocessing Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000012876 topography Methods 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
-
- 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
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- Software Systems (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- Image Generation (AREA)
- Image Processing (AREA)
- Stored Programmes (AREA)
Description
上記のように、本発明は、ピクセルシェーダ、頂点シェーダ、および幾何学シェーダに対する動的に構成可能な共通シェーダコアによって、現在のハードウェアにさらに高い機能を追加することにより、グラフィックスパイプラインを拡張する。異なるシェーダに対する同一ハードウェアユニットが再構成によって負荷の平衡を提供するか、またはシェーダが必要ない場合はパイプラインの一部としてシェーダを使用不可にし、したがって活動状態のままである段階に対して資源を解放するので、共通シェーダコアは簡素化された最適化を可能にする。本発明は、点、線、および三角形を含むプリミティブに対して演算することができる。また本発明は、数の限定された事前設定モードのうちの1つで演算するテッセレータにより、または比較的任意にはプログラム可能な幾何学シェーダにより、新しい幾何学形状をパイプライン内で生成することのできる、幾何学シェーダを導入する点において優れている。本発明の別の実施形態は、プリミティブデータをパイプラインのどこかで再利用するためにバッファにストリームアウトすることができ、パイプライン内で反復的にプログラム可能なアルゴリズムのアプリケーションを可能にするストリーム出力を含む。追加の特性には、グラフィックスパイプラインを通過し、グラフィックスパイプライン内で正確な整数および浮動小数点計算を実行する、各プリミティブに対して独自の索引が含まれる。
当業者ならば、本発明が、コンピュータネットワークの一部として、もしくは分散型コンピューティング環境において配置することができ、いかなるコンピュータまたは他のクライアントもしくはサーバ装置と共にでも実装することができることを理解できよう。この点で、本発明は、任意の数のメモリまたは記憶ユニットを有するいかなるコンピュータシステムまたは環境、および本発明による拡張グラフィックスパイプラインの限定されない実施態様に対する処理と共に用いられることができる、任意の数の記憶ユニットまたはボリューム全体にわたって行われる任意の数のアプリケーションおよび処理に関する。本発明は、ネットワーク環境に配置されたサーバコンピュータおよびクライアントコンピュータ、または遠隔記憶またはローカル記憶を有する分散型コンピューティング環境を有する環境に適用することができる。本発明は、遠隔サービスまたはローカルサービスに伴う情報を生成し、受信し、送信するためのプログラミング言語機能、インタプリテーション機能および実行機能を有するスタンドアロンのコンピューティング装置にも適用することができる。ゲーム環境では、グラフィックスパイプラインは、特にネットワークまたは分散型コンピューティング環境で動作するこれらのコンピューティング装置に関し、したがって本発明による拡張グラフィックスパイプライン技術は、これらの環境に非常に大きな有効性をもって適用することができる。
図2Bおよび以下の解説は、本発明を実施することのできる適切なコンピューティング環境の簡単な概説を提供することを目的とする。しかし、各種のハンドヘルド、携帯型、および他のコンピューティング装置およびコンピューティングオブジェクトは、本発明との使用、すなわちGPUがコンピューティング環境に存在する任意の場所における使用を考慮することを理解されたい。以下では汎用コンピュータを説明するが、これは一例であって、本発明は、ネットワーク/バスの相互運用可能性および対話を有するシンクライアントでも実施することができる。したがって、本発明は、非常に少数の、または最小限のクライアント資源に関与するネットワーク接続されたホストサービスの環境、例えば、クライアント装置が機器内に配置されたオブジェクトのようなネットワーク/バスに対するインターフェースとしてのみ機能するなどのネットワーク接続された環境で実施することができる。基本的に、データを記憶することができ、そこからデータを取り出すか、または別のコンピュータにそこからデータを送信することのできる場所ならどこでも、本発明によるグラフィックス最適化技術の演算のために望ましい、または適切な環境である。
様々な分散型コンピューティングフレームワークが、パーソナルコンピューティングおよびインターネットの集中に鑑みて開発されている。個人ユーザおよびビジネスユーザにはどちらにも、アプリケーションおよびコンピューティング装置に対してシームレスに相互運用可能でありウェブ対応インターフェースが提供されており、コンピューティング動作をますますウェブブラウザまたはネットワーク指向にする。
本発明の背景技術および概要で説明したように、本発明は、資源の使用を最適化し、グラフィックスパイプライン内の作業負荷の均衡をとり、IEEE準拠の整数または浮動小数点値による計算情報へのアクセスを可能にし、付加的なプログラム可能性を提供する、グラフィックスパイプラインに関するシステムおよび方法を導入することにより、グラフィックス処理技術の最新技術を改善する。本発明は、幾何学処理およびプログラム可能シェーダを対象とする。拡張グラフィックスパイプラインは、すべてのシェーダへの共通のコアと、パイプラインで行われる計算に対するストリーム出力と、プリミティブのプログラミングならびに新しい幾何学形状の生成を可能にする幾何学シェーダとの導入を含む。
背景技術で説明した通り、特定コンポーネントが特定タスクに要求され、それがパイプラインのそのエリアにおける障害に繋がる可能性がある場合、グラフィックスパイプラインの異なるコンポーネントの需要に起因する資源競合問題が発生することがある。現行のグラフィックスパイプラインは、パイプラインで最も有効に資源を使用するために、プログラマーによる最適化を必要とする。しかし、最高の最適化方式によってさえも、従来技術においてハードウェア自体は固定されており、したがって、ピクセルシェーダまたは頂点シェーダがアイドル状態のままである時間がある。例えば、計算が多量の行列演算を伴い、頂点シェーダが、そのような値を十分な速度で計算できない場合などである。したがって、ピクセルシェーダがアイドル状態にある間に、頂点シェーダによる過剰処理に起因した障害がパイプラインで発生する場合、またはその反対の場合がある。本発明によれば、ピクセルシェーダを頂点シェーダとして機能するように再構成することができる場合は複数のシェーダが相互に機能することができるので、グラフィックスチップの基礎的資源を、グラフィックスチップに求められるタスクに対して最適化することができる。さらに、上記のように、本発明は、本明細書で幾何学シェーダと称する新しいクラスのシェーダを導入するが、これは別の特化された一組の処理機能を提供する。したがって、本発明の提供する共通コアは、頂点シェーダ、ピクセルシェーダ、および幾何学シェーダのどれにでも構成することができる。
今日、一組の入手可能なグラフィックスAPIによりグラフィックスアプリケーションを開発する際、グラフィックスのプログラマーは、一般に、一組のアルゴリズム要素が演算すべき一組の頂点を指定する。情報を指定すると、図1Aに示すように、データはグラフィックスパイプラインに送信され、各頂点が頂点シェーダとピクセルシェーダとを通してストリーミングする。頂点シェーダとピクセルシェーダとに対する入力構造に適合したいかなるデータでも指定することができるが、頂点シェーダは、頂点に対する演算に対して一般に適しており、および使用され、ピクセルシェーダは、ピクセルに対する演算に対して一般に適しており、および使用される。
背景技術で説明したように、今日のグラフィックスパイプラインによれば、パイプラインで実行中の計算の結果を確認するためにGPUが使用するビデオメモリからの読み取りは、ほとんど不可能に近い。データがGPUのプロシージャルシェーダによって処理される際、その実行中のデータを見つけ、抽出する方法の知識を有し、ビデオメモリから実際にそのデータを抽出することは、今日のアーキテクチャでは非常に困難なタスクである。図1Bは、プログラマーがグラフィックスパイプラインの出力、すなわちフレームバッファからデータの取り出しに着手し、さらなる処理のためにパイプラインにデータを戻すようホスト資源に関与する方法を示す。上記のように、このタスクは、プログラマーがフレームバッファまたはディスプレイからデータを取り出すことを要求する。一般に、パイプライン通過後のデータに対するさらなる処理が必要な場合、プログラマーは、情報がフレームバッファによって受け取られるのを待ち、さらなる処理を達成するためにCPUの資源を費やす。
上述のように、今日では、グラフィックスプログラマーは、一組の入手可能なグラフィックスAPIによってグラフィックスアプリケーションを開発する際に、一般に、一組のアルゴリズム要素によって演算される一組の頂点を指定する。この情報を指定すると、図1Aに示すように、そのデータは、グラフィックスパイプラインに送られ、各頂点は、固定された一組のGPUサブユニット、例えばテッセレータ、1つ以上の頂点シェーダおよび1つ以上のピクセルシェーダなどを介してストリーミングされる。頂点シェーダおよびピクセルシェーダに対して入力構造に適合した任意のデータを指定することができる。但し、頂点シェーダは、頂点に対する演算に対して一般に適しており、および使用される。また、ピクセルシェーダは、ピクセルに対する演算に対して一般に適しており、および使用される。しかし、所定のアルゴリズムに従い、プロシージャルシェーディングの前に予め定められた制御点に基づく幾何学形状を生成することのできる固定された段階テッセレーション以外に、従来のパイプラインには、さらなる処理のために新しい頂点または幾何学形状を生成するために使用できるものはない。
121 システムバス
135a〜e アプリケーションプログラムモジュールまたはオブジェクト
141 ハードディスクドライブ
151 磁気ディスクドライブ
155 光ディスクドライブ
181 メモリ記憶装置
184’−1a 共通コア要素
Claims (15)
- グラフィックスアプリケーションプログラミングインターフェース(API)を介して、グラフィックス処理装置(GPU)の複数の共通コア要素によって実行される1つまたは複数の作業項目を指定するステップであって、各共通コア要素は動的に構成されるサブ要素を含み、かつ、前記共通コア要素に対する前記サブ要素の構成が、頂点、ピクセルおよびプリミティブのうちの1つを処理するために、前記共通コア要素を特化するように構成された、ステップと、
入力アセンブラにより、前記APIの出力を受け取るステップと、
前記1つまたは複数の作業項目に基づいて、前記入力アセンブラが、前記複数の共通コア要素のための最適な構成を、頂点を処理するように構成された共通コア要素と、ピクセルを処理するように構成された共通コア要素と、プリミティブを処理するように構成された共通コア要素の少なくとも1つの組合せに決定するステップと、
前記複数の共通コア要素は、前記GPUに対する資源需要に従い、前記複数の共通コア要素の動的最適化により、頂点、ピクセルまたはプリミティブの処理に関して前記共通コア要素を特化するか否かを決定するために、入力アセンブラから入力を受け取るステップと、
頂点、ピクセルまたはプリミティブの処理に関して一度構成され、同一アルゴリズムの反復演算により、頂点、ピクセルおよびプリミティブの1つの前記処理を実行するための、共通コア要素をプログラムするソフトウェアプログラムを共通コア要素にダウンロードするステップと、
を含むことを特徴とするグラフィックスパイプラインを動的に構成する方法。 - 前記指定するステップは、実行される少なくとも1つのタスクと、該少なくとも1つのタスクが実行されるグラフィックスデータとを指定するステップを含むことを特徴とする請求項1に記載の方法。
- 前記決定するステップは、頂点、ピクセルおよびプリミティブを処理するために、複数の共通コア要素を、それぞれ頂点シェーダ、ピクセルシェーダまたは幾何学シェーダとして動的に構成するステップを含むことを特徴とする請求項1に記載の方法。
- 前記動的に構成可能なサブ要素は、入力ゲート、レジスタ記憶、処理装置サブ要素、および出力ゲートを含むことを特徴とする請求項1に記載の方法。
- 前記ダウンロードするステップは、プログラムを共通コア要素にダウンロードし、前記共通コア要素の前記構成に応じて、前記頂点、ピクセルまたはプリミティブに対する浮動小数点および整数計算がIEEEの標準に完全に準拠しているアルゴリズム要素を計算するステップを含むことを特徴とする請求項1に記載の方法。
- 前記ダウンロードするステップは、ストリーム出力を可能にする命令をダウンロードするステップを含み、前記共通コア要素で計算される情報は、ラスタ化可能なフレームバッファメモリに記憶される前に、データ取得が可能なビデオメモリに任意選択で出力されることを特徴とする請求項1に記載の方法。
- 頂点、ピクセルおよびプリミティブの1つを含むグラフィックスデータに索引付けすることにより、前記1つまたは複数の作業項目をスケジュール設定するステップをさらに備えたことを特徴とする請求項1に記載の方法。
- 請求項1から7のいずれかに記載の方法を実行するコンピュータ実行可能な命令を記録するコンピュータ読取り可能な媒体。
- それぞれの共通コア要素のサブ要素の構成が、頂点、ピクセルおよびプリミティブの1つを処理するために前記共通コア要素を特化するような、動的に構成可能な前記サブ要素を含む、複数の共通コア要素を備えたことを特徴とするグラフィックス処理装置(GPU)であって、
前記複数の共通コア要素のうちの1つまたは複数が、頂点、ピクセルまたはプリミティブの処理に関して一度構成され、同一アルゴリズムの反復演算により、頂点、ピクセルおよびプリミティブの1つの前記処理を実行するように前記共通コア要素をプログラムする入力としてソフトウェアプログラムを受け取るように構成されており、かつ、
前記複数の共通コア要素が、前記GPUに対する資源需要に従い、前記複数の共通コア要素の動的最適化により、頂点、ピクセルまたはプリミティブの処理に関して前記共通コア要素を特化するか否かを決定するために、入力アセンブラから入力を受け取るように構成されている、
ことを特徴とするグラフィックス処理装置。 - 前記複数の共通コア要素は、グラフィックス処理装置によって処理される作業項目に対して最適に定義された動的資源の要求に従い、頂点、ピクセルおよびプリミティブを処理するための、頂点シェーダ、ピクセルシェーダ、または幾何学シェーダの任意の組合せとして構成可能であることを特徴とする請求項9に記載のグラフィックス処理装置。
- 前記動的に構成可能なサブ要素は、入力ゲート、レジスタ記憶、処理装置サブ要素、および出力ゲートを含むことを特徴とする請求項9に記載のグラフィックス処理装置。
- 前記入力アセンブラから受け取った前記入力は、前記複数の共通コア要素の各々の入力ゲート、レジスタ記憶、処理装置サブ要素および出力ゲートの内部構成を定義することを特徴とする請求項9に記載のグラフィックス処理装置。
- 前記複数の共通コア要素の1つまたは複数の共通コア要素は、入力アセンブラによって索引付けされる、演算される作業データを受け取ることを特徴とする請求項9に記載のグラフィックス処理装置。
- 前記複数の共通コア要素の1つまたは複数の共通コア要素は、ストリーム出力を含み、前記1つまたは複数の共通コア要素で計算される情報は、ラスタ化可能なフレームバッファメモリに記憶される前に、データ取得が可能なビデオメモリに任意選択で出力されることを特徴とする請求項9に記載のグラフィックス処理装置。
- 前記複数の共通コア要素の各々は、前記ソフトウェアプログラムの受け取りをサポートし、関連付けられた共通コア要素をプログラムして、前記頂点、ピクセルまたはプリミティブに対する浮動小数点および整数計算がIEEEの標準に完全に準拠しているアルゴリズム要素を計算することを特徴とする請求項9に記載のグラフィックス処理装置。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US56749004P | 2004-05-03 | 2004-05-03 | |
US60/567,490 | 2004-05-03 | ||
US10/934,249 | 2004-09-03 | ||
US10/934,249 US7570267B2 (en) | 2004-05-03 | 2004-09-03 | Systems and methods for providing an enhanced graphics pipeline |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005322224A JP2005322224A (ja) | 2005-11-17 |
JP4766906B2 true JP4766906B2 (ja) | 2011-09-07 |
Family
ID=34939377
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005114573A Active JP4766906B2 (ja) | 2004-05-03 | 2005-04-12 | 拡張グラフィックスパイプラインを提供するシステムおよび方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7570267B2 (ja) |
EP (1) | EP1594091B1 (ja) |
JP (1) | JP4766906B2 (ja) |
KR (1) | KR101130407B1 (ja) |
ES (1) | ES2660434T3 (ja) |
Families Citing this family (107)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8133115B2 (en) | 2003-10-22 | 2012-03-13 | Sony Computer Entertainment America Llc | System and method for recording and displaying a graphical path in a video game |
US7978205B1 (en) | 2004-05-03 | 2011-07-12 | Microsoft Corporation | Systems and methods for providing an enhanced graphics pipeline |
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 |
US7958498B1 (en) | 2004-07-02 | 2011-06-07 | Nvidia Corporation | Methods and systems for processing a geometry shader program developed in a high-level shading language |
US8044951B1 (en) * | 2004-07-02 | 2011-10-25 | Nvidia Corporation | Integer-based functionality in a graphics shading language |
US7426724B2 (en) * | 2004-07-02 | 2008-09-16 | Nvidia Corporation | Optimized chaining of vertex and fragment programs |
WO2006017198A2 (en) * | 2004-07-08 | 2006-02-16 | Actuality Systems, Inc. | Architecture for rendering graphics on output devices |
US20060071933A1 (en) * | 2004-10-06 | 2006-04-06 | Sony Computer Entertainment Inc. | Application binary interface for multi-pass shaders |
US7385609B1 (en) * | 2004-11-02 | 2008-06-10 | Nvidia Corporation | Apparatus, system, and method for increased processing flexibility of a graphic pipeline |
US7623132B1 (en) * | 2004-12-20 | 2009-11-24 | Nvidia Corporation | Programmable shader having register forwarding for reduced register-file bandwidth consumption |
US8400454B2 (en) * | 2005-03-30 | 2013-03-19 | Ati Technologies, Inc. | System and method for creating motion blur |
US8125480B2 (en) * | 2005-04-12 | 2012-02-28 | Siemens Medical Solutions Usa, Inc. | Flat texture volume rendering |
US8418132B2 (en) * | 2005-04-29 | 2013-04-09 | Microsoft Corporation | Application description language |
US8275793B2 (en) * | 2005-04-29 | 2012-09-25 | Microsoft Corporation | Transaction transforms |
US20060245096A1 (en) * | 2005-04-29 | 2006-11-02 | Microsoft Corporation | Application framework phasing model |
US8799857B2 (en) * | 2005-04-29 | 2014-08-05 | Microsoft Corporation | XML application framework |
US8132148B2 (en) * | 2005-04-29 | 2012-03-06 | Microsoft Corporation | XML application framework |
US7636126B2 (en) | 2005-06-22 | 2009-12-22 | Sony Computer Entertainment Inc. | Delay matching in audio/video systems |
KR100647367B1 (ko) * | 2005-07-15 | 2006-11-23 | 엘지전자 주식회사 | 휴대 단말기에서 이차원 오브젝트의 패스 렌더링 방법 |
JP4688165B2 (ja) * | 2005-09-30 | 2011-05-25 | 株式会社リコー | 画像処理装置及び画像処理方法 |
US20070091088A1 (en) * | 2005-10-14 | 2007-04-26 | Via Technologies, Inc. | System and method for managing the computation of graphics shading operations |
US8144149B2 (en) * | 2005-10-14 | 2012-03-27 | Via Technologies, Inc. | System and method for dynamically load balancing multiple shader stages in a shared pool of processing units |
US7817151B2 (en) * | 2005-10-18 | 2010-10-19 | Via Technologies, Inc. | Hardware corrected software vertex shader |
US8701091B1 (en) | 2005-12-15 | 2014-04-15 | Nvidia Corporation | Method and system for providing a generic console interface for a graphics application |
US7728841B1 (en) * | 2005-12-19 | 2010-06-01 | Nvidia Corporation | Coherent shader output for multiple targets |
US7656412B2 (en) * | 2005-12-21 | 2010-02-02 | Microsoft Corporation | Texture resampling with a processor |
KR100817920B1 (ko) * | 2005-12-23 | 2008-03-31 | 엠텍비젼 주식회사 | 임베디드 시스템, 정점 프로세싱 장치 및 디코더 |
US7877565B1 (en) | 2006-01-31 | 2011-01-25 | Nvidia Corporation | Constant versioning for multi-threaded processing |
US8094158B1 (en) * | 2006-01-31 | 2012-01-10 | Nvidia Corporation | Using programmable constant buffers for multi-threaded processing |
TWI309395B (en) * | 2006-02-24 | 2009-05-01 | Via Tech Inc | Graphics system and graphics control method |
US7891012B1 (en) | 2006-03-01 | 2011-02-15 | Nvidia Corporation | Method and computer-usable medium for determining the authorization status of software |
US8452981B1 (en) * | 2006-03-01 | 2013-05-28 | Nvidia Corporation | Method for author verification and software authorization |
US7965859B2 (en) | 2006-05-04 | 2011-06-21 | Sony Computer Entertainment Inc. | Lighting control of a user environment via a display device |
US7880746B2 (en) | 2006-05-04 | 2011-02-01 | Sony Computer Entertainment Inc. | Bandwidth management through lighting control of a user environment via a display device |
JP4759614B2 (ja) * | 2006-05-11 | 2011-08-31 | パナソニック株式会社 | 処理装置 |
US7692660B2 (en) * | 2006-06-28 | 2010-04-06 | Microsoft Corporation | Guided performance optimization for graphics pipeline state management |
US8111260B2 (en) | 2006-06-28 | 2012-02-07 | Microsoft Corporation | Fast reconfiguration of graphics pipeline state |
US8954947B2 (en) * | 2006-06-29 | 2015-02-10 | Microsoft Corporation | Fast variable validation for state management of a graphics pipeline |
KR100791478B1 (ko) * | 2006-07-14 | 2008-01-04 | 엠텍비젼 주식회사 | 정점 처리를 위한 인코딩 장치, 디코딩 장치 및 그 방법 |
US8666712B2 (en) | 2006-07-24 | 2014-03-04 | Ati Technologies Inc. | Physical simulations on a graphics processor |
US8154554B1 (en) * | 2006-07-28 | 2012-04-10 | Nvidia Corporation | Unified assembly instruction set for graphics processing |
US8607151B2 (en) * | 2006-08-01 | 2013-12-10 | Nvidia Corporation | Method and system for debugging a graphics pipeline subunit |
US7778800B2 (en) * | 2006-08-01 | 2010-08-17 | Nvidia Corporation | Method and system for calculating performance parameters for a processor |
US8963932B1 (en) * | 2006-08-01 | 2015-02-24 | Nvidia Corporation | Method and apparatus for visualizing component workloads in a unified shader GPU architecture |
US8436864B2 (en) * | 2006-08-01 | 2013-05-07 | Nvidia Corporation | Method and user interface for enhanced graphical operation organization |
US8436870B1 (en) | 2006-08-01 | 2013-05-07 | Nvidia Corporation | User interface and method for graphical processing analysis |
US8009172B2 (en) | 2006-08-03 | 2011-08-30 | Qualcomm Incorporated | Graphics processing unit with shared arithmetic logic unit |
US8134570B1 (en) * | 2006-09-18 | 2012-03-13 | Nvidia Corporation | System and method for graphics attribute packing for pixel shader usage |
US7755631B1 (en) * | 2006-10-24 | 2010-07-13 | Nvidia Corporation | Transposition structures and methods to accommodate parallel processing in a graphics processing unit (“GPU”) |
US7965291B1 (en) * | 2006-11-03 | 2011-06-21 | Nvidia Corporation | Isosurface extraction utilizing a graphics processing unit |
KR100791411B1 (ko) * | 2006-12-07 | 2008-01-07 | 한국전자통신연구원 | 그래픽스 처리장치 및 방법 |
KR100856211B1 (ko) * | 2007-02-06 | 2008-09-03 | 삼성전자주식회사 | 그래픽 가속기 기반의 고속 영상 처리 방법 및 그 장치 |
US8203564B2 (en) * | 2007-02-16 | 2012-06-19 | Qualcomm Incorporated | Efficient 2-D and 3-D graphics processing |
US8760457B2 (en) * | 2007-07-24 | 2014-06-24 | Qualcomm Incorporated | Data access tool for programmable graphics hardware |
US8296738B1 (en) | 2007-08-13 | 2012-10-23 | Nvidia Corporation | Methods and systems for in-place shader debugging and performance tuning |
US9035957B1 (en) | 2007-08-15 | 2015-05-19 | Nvidia Corporation | Pipeline debug statistics system and method |
US8325184B2 (en) | 2007-09-14 | 2012-12-04 | Qualcomm Incorporated | Fragment shader bypass in a graphics processing unit, and apparatus and method thereof |
US7765500B2 (en) * | 2007-11-08 | 2010-07-27 | Nvidia Corporation | Automated generation of theoretical performance analysis based upon workload and design configuration |
US8922565B2 (en) * | 2007-11-30 | 2014-12-30 | Qualcomm Incorporated | System and method for using a secondary processor in a graphics system |
KR100924122B1 (ko) * | 2007-12-17 | 2009-10-29 | 한국전자통신연구원 | 픽셀 단위 처리 요소 기반의 광선 추적 장치 및 방법 |
US20090189896A1 (en) * | 2008-01-25 | 2009-07-30 | Via Technologies, Inc. | Graphics Processor having Unified Shader Unit |
US8345045B2 (en) * | 2008-03-04 | 2013-01-01 | Microsoft Corporation | Shader-based extensions for a declarative presentation framework |
JP2011513874A (ja) * | 2008-03-11 | 2011-04-28 | コア ロジック,インコーポレイテッド | 固定されたパイプラインをサポートする3dグラフィック処理 |
US8643644B2 (en) * | 2008-03-20 | 2014-02-04 | Qualcomm Incorporated | Multi-stage tessellation for graphics rendering |
US8448002B2 (en) * | 2008-04-10 | 2013-05-21 | Nvidia Corporation | Clock-gated series-coupled data processing modules |
JP5616333B2 (ja) * | 2008-05-29 | 2014-10-29 | アドバンスト・マイクロ・ディバイシズ・インコーポレイテッドAdvanced Micro Devices Incorporated | ジオメトリシェーダを用いる平面充填エンジンのためのシステム、方法及びコンピュータプログラム |
TWI390442B (zh) * | 2008-10-24 | 2013-03-21 | Univ Nat Taiwan | 針對數位訊號處理之串流式處理系統及方法 |
KR101496340B1 (ko) | 2008-10-31 | 2015-03-04 | 삼성전자주식회사 | 프로세서 및 메모리 제어 방법 |
DE102009006660A1 (de) * | 2009-01-29 | 2010-08-05 | Baumer Innotec Ag | Pipeline-Recheneinrichtung zur Verbindung von Konturelementen aus Bilddaten |
US20100214294A1 (en) * | 2009-02-20 | 2010-08-26 | Microsoft Corporation | Method for tessellation on graphics hardware |
CN101859330B (zh) * | 2009-04-09 | 2012-11-21 | 辉达公司 | 验证集成电路效能模型的方法 |
KR101076807B1 (ko) * | 2009-05-29 | 2011-10-25 | 주식회사 실리콘아츠 | 레이 트레이싱 장치 및 방법 |
US20110043518A1 (en) * | 2009-08-21 | 2011-02-24 | Nicolas Galoppo Von Borries | Techniques to store and retrieve image data |
US8619087B2 (en) * | 2009-10-06 | 2013-12-31 | Nvidia Corporation | Inter-shader attribute buffer optimization |
US8922555B2 (en) * | 2009-10-07 | 2014-12-30 | Nvidia Corporation | Pixel shader output map |
US9390539B2 (en) * | 2009-11-04 | 2016-07-12 | Intel Corporation | Performing parallel shading operations |
US10786736B2 (en) | 2010-05-11 | 2020-09-29 | Sony Interactive Entertainment LLC | Placement of user information in a game space |
US8933934B1 (en) * | 2011-06-17 | 2015-01-13 | Rockwell Collins, Inc. | System and method for assuring the proper operation of a programmable graphics processing unit |
US9342817B2 (en) | 2011-07-07 | 2016-05-17 | Sony Interactive Entertainment LLC | Auto-creating groups for sharing photos |
US9442780B2 (en) | 2011-07-19 | 2016-09-13 | Qualcomm Incorporated | Synchronization of shader operation |
CN107393502B (zh) * | 2011-12-14 | 2019-11-05 | 英特尔公司 | 用于多遍渲染的技术 |
US10559123B2 (en) | 2012-04-04 | 2020-02-11 | Qualcomm Incorporated | Patched shading in graphics processing |
JP2013218527A (ja) * | 2012-04-09 | 2013-10-24 | Mitsubishi Electric Corp | グラフィックス描画装置 |
US9323315B2 (en) | 2012-08-15 | 2016-04-26 | Nvidia Corporation | Method and system for automatic clock-gating of a clock grid at a clock source |
US8850371B2 (en) | 2012-09-14 | 2014-09-30 | Nvidia Corporation | Enhanced clock gating in retimed modules |
US9465620B2 (en) * | 2012-12-20 | 2016-10-11 | Intel Corporation | Scalable compute fabric |
US9519568B2 (en) | 2012-12-31 | 2016-12-13 | Nvidia Corporation | System and method for debugging an executing general-purpose computing on graphics processing units (GPGPU) application |
US9299123B2 (en) | 2013-01-22 | 2016-03-29 | Qualcomm Incorporated | Indexed streamout buffers for graphics processing |
US9471456B2 (en) * | 2013-05-15 | 2016-10-18 | Nvidia Corporation | Interleaved instruction debugger |
KR102109130B1 (ko) | 2013-08-12 | 2020-05-08 | 삼성전자주식회사 | 그래픽스 프로세싱 유닛, 이의 동작 방법, 및 이를 포함하는 장치들 |
KR102053351B1 (ko) | 2013-08-12 | 2019-12-06 | 삼성전자주식회사 | 테셀레이션 데이터 생성 방법과 상기 방법을 수행할 수 있는 장치들 |
US9842428B2 (en) * | 2014-06-27 | 2017-12-12 | Samsung Electronics Co., Ltd. | Dynamically optimized deferred rendering pipeline |
US9613392B2 (en) * | 2014-09-03 | 2017-04-04 | Mediatek Inc. | Method for performing graphics processing of a graphics system in an electronic device with aid of configurable hardware, and associated apparatus |
US9934606B2 (en) * | 2014-09-16 | 2018-04-03 | Intel Corporation | Deferred coarse pixel shading |
EP3029940B1 (en) * | 2014-12-04 | 2017-03-15 | Axis AB | Method and device for post processing of a video stream |
CN104580503A (zh) * | 2015-01-26 | 2015-04-29 | 浪潮电子信息产业股份有限公司 | 一种高效动态负载均衡的处理大规模数据的系统及方法 |
RU2664001C2 (ru) * | 2015-12-14 | 2018-08-14 | Илья Алексеевич Лебедев | Способ использования аппаратных средств графического процессора для расчета обобщённых угловых коэффициентов излучения для вакуумных печных агрегатов |
US10460513B2 (en) | 2016-09-22 | 2019-10-29 | Advanced Micro Devices, Inc. | Combined world-space pipeline shader stages |
US10664942B2 (en) * | 2016-10-21 | 2020-05-26 | Advanced Micro Devices, Inc. | Reconfigurable virtual graphics and compute processor pipeline |
US10242494B2 (en) * | 2017-04-01 | 2019-03-26 | Intel Corporation | Conditional shader for graphics |
US11055807B2 (en) * | 2017-06-12 | 2021-07-06 | Apple Inc. | Method and system for a transactional based display pipeline to interface with graphics processing units |
GB2570304B (en) * | 2018-01-18 | 2022-06-01 | Imagination Tech Ltd | Topology preservation in a graphics pipeline |
US11037356B2 (en) | 2018-09-24 | 2021-06-15 | Zignal Labs, Inc. | System and method for executing non-graphical algorithms on a GPU (graphics processing unit) |
US11379577B2 (en) | 2019-09-26 | 2022-07-05 | Microsoft Technology Licensing, Llc | Uniform resource locator security analysis using malice patterns |
US11509667B2 (en) | 2019-10-19 | 2022-11-22 | Microsoft Technology Licensing, Llc | Predictive internet resource reputation assessment |
US11431751B2 (en) | 2020-03-31 | 2022-08-30 | Microsoft Technology Licensing, Llc | Live forensic browsing of URLs |
CN114185532B (zh) * | 2022-02-15 | 2022-05-10 | 武汉慧联无限科技有限公司 | 一种图形化编程系统 |
Family Cites Families (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3051438B2 (ja) * | 1989-10-12 | 2000-06-12 | テキサス インスツルメンツ インコーポレイテッド | 拡張グラフィック機能を与える方法 |
US5821940A (en) | 1992-08-03 | 1998-10-13 | Ball Corporation | Computer graphics vertex index cache system for polygons |
US5388206A (en) * | 1992-11-13 | 1995-02-07 | The University Of North Carolina | Architecture and apparatus for image generation |
US5745125A (en) * | 1996-07-02 | 1998-04-28 | Sun Microsystems, Inc. | Floating point processor for a three-dimensional graphics accelerator which includes floating point, lighting and set-up cores for improved performance |
US6496190B1 (en) * | 1997-07-02 | 2002-12-17 | Mental Images Gmbh & Co Kg. | System and method for generating and using systems of cooperating and encapsulated shaders and shader DAGs for use in a computer graphics system |
US7159041B2 (en) | 2000-03-07 | 2007-01-02 | Microsoft Corporation | Method and system for defining and controlling algorithmic elements in a graphics display system |
US6483505B1 (en) | 2000-03-17 | 2002-11-19 | Ati International Srl | Method and apparatus for multipass pixel processing |
US6724394B1 (en) | 2000-05-31 | 2004-04-20 | Nvidia Corporation | Programmable pixel shading architecture |
US7034828B1 (en) * | 2000-08-23 | 2006-04-25 | Nintendo Co., Ltd. | Recirculating shade tree blender for a graphics system |
US6828975B2 (en) * | 2001-03-01 | 2004-12-07 | Microsoft Corporation | Method and system for managing graphics objects in a graphics display system |
US7564460B2 (en) * | 2001-07-16 | 2009-07-21 | Microsoft Corporation | Systems and methods for providing intermediate targets in a graphics system |
EP1408403A1 (en) * | 2001-07-19 | 2004-04-14 | Sony Corporation | Calculation apparatus and image processing apparatus |
US6747653B2 (en) | 2001-12-31 | 2004-06-08 | Intel Corporation | Efficient object storage for zone rendering |
US6919896B2 (en) * | 2002-03-11 | 2005-07-19 | Sony Computer Entertainment Inc. | System and method of optimizing graphics processing |
US6765584B1 (en) | 2002-03-14 | 2004-07-20 | Nvidia Corporation | System and method for creating a vector map in a hardware graphics pipeline |
US7015909B1 (en) * | 2002-03-19 | 2006-03-21 | Aechelon Technology, Inc. | Efficient use of user-defined shaders to implement graphics operations |
US7154502B2 (en) | 2002-03-19 | 2006-12-26 | 3D Labs, Inc. Ltd. | 3D graphics with optional memory write before texturing |
US6809732B2 (en) | 2002-07-18 | 2004-10-26 | Nvidia Corporation | Method and apparatus for generation of programmable shader configuration information from state-based control information and program instructions |
US6864893B2 (en) | 2002-07-19 | 2005-03-08 | Nvidia Corporation | Method and apparatus for modifying depth values using pixel programs |
US7176917B1 (en) * | 2002-08-09 | 2007-02-13 | Avid Technology, Inc. | Visual programming interface for a three-dimensional animation system for defining real time shaders using a real-time rendering engine application programming interface |
US20050140672A1 (en) * | 2003-02-18 | 2005-06-30 | Jeremy Hubbell | Shader editor and compiler |
US6839062B2 (en) * | 2003-02-24 | 2005-01-04 | Microsoft Corporation | Usage semantics |
US20040169671A1 (en) * | 2003-03-01 | 2004-09-02 | Aronson David Floyd | Effects framework pipeline integration with programmable shader |
US7530062B2 (en) * | 2003-05-23 | 2009-05-05 | Microsoft Corporation | Optimizing compiler transforms for a high level shader language |
US7091979B1 (en) | 2003-08-29 | 2006-08-15 | Nvidia Corporation | Pixel load instruction for a programmable graphics processor |
US7202872B2 (en) | 2003-10-29 | 2007-04-10 | Via Technologies, Inc. | Apparatus for compressing data in a bit stream or bit pattern |
US8035646B2 (en) | 2003-11-14 | 2011-10-11 | Microsoft Corporation | Systems and methods for downloading algorithmic elements to a coprocessor and corresponding techniques |
US6897871B1 (en) | 2003-11-20 | 2005-05-24 | Ati Technologies Inc. | Graphics processing architecture employing a unified shader |
US20050275760A1 (en) | 2004-03-02 | 2005-12-15 | Nvidia Corporation | Modifying a rasterized surface, such as by trimming |
US7554538B2 (en) * | 2004-04-02 | 2009-06-30 | Nvidia Corporation | Video processing, such as for hidden surface reduction or removal |
-
2004
- 2004-09-03 US US10/934,249 patent/US7570267B2/en active Active
-
2005
- 2005-03-29 KR KR1020050026022A patent/KR101130407B1/ko active IP Right Grant
- 2005-04-12 JP JP2005114573A patent/JP4766906B2/ja active Active
- 2005-04-19 ES ES05103115.1T patent/ES2660434T3/es active Active
- 2005-04-19 EP EP05103115.1A patent/EP1594091B1/en active Active
Also Published As
Publication number | Publication date |
---|---|
KR101130407B1 (ko) | 2012-03-27 |
ES2660434T3 (es) | 2018-03-22 |
EP1594091B1 (en) | 2018-01-03 |
KR20060044935A (ko) | 2006-05-16 |
EP1594091A2 (en) | 2005-11-09 |
US20050243094A1 (en) | 2005-11-03 |
US7570267B2 (en) | 2009-08-04 |
JP2005322224A (ja) | 2005-11-17 |
EP1594091A3 (en) | 2006-02-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4766906B2 (ja) | 拡張グラフィックスパイプラインを提供するシステムおよび方法 | |
US7671862B1 (en) | Systems and methods for providing an enhanced graphics pipeline | |
JP4583720B2 (ja) | グラフィックス・システム内で中間ターゲットを提供するためのシステムおよび方法 | |
EP2033085B1 (en) | Fast reconfiguration of graphics pipeline state | |
EP2939208B1 (en) | Sprite graphics rendering system | |
US7692660B2 (en) | Guided performance optimization for graphics pipeline state management | |
EP3255612B1 (en) | System and method for tessellation in an improved graphics pipeline | |
KR20070011062A (ko) | 모델 3d 구성 애플리케이션 프로그램 인터페이스 | |
US10395423B2 (en) | Apparatus and method for rendering adaptive mesh refinement (AMR) data | |
Wald et al. | Data Parallel Multi‐GPU Path Tracing using Ray Queue Cycling |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080403 |
|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20090901 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20091008 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20101020 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110113 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20110214 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110418 |
|
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: 20110519 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110614 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4766906 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140624 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
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 |