JP4981162B2 - 画像データの記憶・検索技法 - Google Patents

画像データの記憶・検索技法 Download PDF

Info

Publication number
JP4981162B2
JP4981162B2 JP2010182881A JP2010182881A JP4981162B2 JP 4981162 B2 JP4981162 B2 JP 4981162B2 JP 2010182881 A JP2010182881 A JP 2010182881A JP 2010182881 A JP2010182881 A JP 2010182881A JP 4981162 B2 JP4981162 B2 JP 4981162B2
Authority
JP
Japan
Prior art keywords
primitive
application
pixel
processor
buffer
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
Application number
JP2010182881A
Other languages
English (en)
Other versions
JP2011044143A (ja
Inventor
ギャロッポ ヴォン ボリース ニコラ
エー. ハックス ウィリアム
ブックアウト デイヴィッド
Original Assignee
インテル コーポレイション
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by インテル コーポレイション filed Critical インテル コーポレイション
Publication of JP2011044143A publication Critical patent/JP2011044143A/ja
Application granted granted Critical
Publication of JP4981162B2 publication Critical patent/JP4981162B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/40Filling a planar surface by adding surface attributes, e.g. colour or texture
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/28Indexing scheme for image data processing or generation, in general involving image processing hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/52Parallel processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Image Generation (AREA)
  • Image Processing (AREA)

Description

本稿に開示される主題は概括的には画像データを記憶および検索する技法に関する。
グラフィクス処理に対する要求は、コンピュータ・ゲーム、コンピュータ・アニメーションおよび医療撮像といった領域で明白である。グラフィクス・パイプラインがグラフィクスのレンダリングを受け持っている。数多くのグラフィクス・パイプライン構成が知られている。たとえば、一般的なレンダリング・パイプライン・アーキテクチャは非特許文献1および非特許文献2に記載されている。現代のパイプラインは三つのプログラム可能な段階をもつ。一つはバーテックス・データを処理する段階(たとえばバーテックス・シェーダー(vertex shader))、第二は幾何学的プリミティブを処理する段階(たとえば幾何シェーダー(geometry shader))、第三はピクセル・フラグメントを処理する段階(たとえば、フラグメントまたはピクセル・シェーダー(fragment or pixel shader))である。マイクロソフト〔登録商標〕DirectX 10は、幾何シェーダーおよび幾何ストリーム・アウト段を導入した。Direct3D 10システムの概観は非特許文献3で与えられている。DirectXは、入力装置、オーディオおよびビデオ/グラフィクスに関わるアプリケーション・プログラム・インターフェース(API: application program interface)群である。
Segal, M. and Akeley, K., "The OpenGL Graphics System: A Specification (Version 2.0)" (2004) The Microsoft DirectX 9 Programmable Graphics Pipe-line, Microsoft Press (2003) D. Blythe, "The Direct3D 10 System," Microsoft Corporation (2006) Gregory S. Johnson, William R. Mark, and Christopher A. Burns, "The Irregular Z-Buffer and its Application to Shadow Mapping," The University of Texas at Austin, Department of Computer Sciences, Technical Report TR-04-09
本発明は従来技術の欠点を克服する。
本発明の課題は請求項記載の手段によって解決される。
本発明の実施形態は、限定ではなく例として、図面において例解されている。図面では、同様の参照符号は同様の要素を指す。
ある実施形態に基づく、ブロック図形式での、グラフィクス処理パイプラインの一例を描いた図である。 ピクセル被覆マスクの従来式のピクセル・シェーダー処理と、さまざまな実施形態に基づくタイル内でのピクセル被覆マスクの処理との例を描いた図である。 単一のコアがタイルを処理するときのコア利用率と、単一タイルの処理を複数のコアに分散させる前およびあとのコア利用率の例を描いた図である。 プリミティブおよびピクセル被覆マスクのカスタマイズされたラスタ化処理の例を描いた図である。 ある実施形態に基づく、バッファリングされたモードにおける、プリミティブおよびピクセル被覆マスクを記憶する仕方の流れ図である。 ある実施形態に基づく、バッファリングされたモードにおける、プリミティブおよびピクセル被覆マスクを検索する仕方の流れ図である。
本明細書を通じて「一つの実施形態」または「ある実施形態」への言及は、その実施形態との関連で記載される特定の機能、構造または特徴が本発明の少なくとも一つの実施形態に含まれるということを意味する。よって、本明細書の随所で「一つの実施形態では」または「ある実施形態では」といった句が現れることは、必ずしもこれらがみな同一の実施形態を指しているのではない。さらに、個別の機能、構造または特徴が一つまたは複数の実施形態において組み合わされてもよい。
さまざまな実施形態は、グラフィクス・パイプラインにおけるラスタ化段の最中またはその後にプリミティブ属性およびピクセル被覆情報を記憶する仕方を提供する。ポストクリップ(post-clip)・ストリーム出力段は、プリミティブおよび該プリミティブに関係したピクセル被覆マスクを記憶するためにメモリ内のバッファの諸部分を用いる。タイルとして知られる画面の部分領域は、画面空間におけるピクセル・データの空間的にコヒーレントな集まりである。プリミティブはタイルごとに順序付けられ、任意的にはピクセル被覆マスクをもって、タイル境界にクリッピングされる。ピクセル被覆マスク(pixel coverage mask)は、ピクセルのプリミティブとの関係を同定する。たとえば、ピクセル被覆マスクは、あるピクセルがプリミティブ内にあるか、プリミティブ外にあるか、あるいはプリミティブのエッジ上にあるかを同定する。記憶されるプリミティブおよびピクセル被覆情報は、多様な仕方で読み出され、処理されることができる。たとえば、同じタイルに関係した複数のピクセル被覆マスクが、並列にまたはシーケンスで読み出されることができ、同じタイルに関係した複数のピクセル被覆マスクが一緒に処理されることができる。同じタイルに関連する複数のピクセル被覆マスクに対してピクセル処理が実行されることができる。これにより、可能な場合には処理されたデータがピクセル被覆マスクのために再利用できる。
DirectX 10は、幾何シェーダーにおいてクリップされた三角形データを生成することを規定している。DirectX 10は、ピクセル・シェーダーにおいてはスカラー・モードで、被覆されたピクセル被覆マスクを露わにするのみである。これに対し、さまざまな実施形態は、プリミティブごとのピクセル被覆マスクを、単一命令複数データ(SIMD: Single Instruction, Multiple Data)ベクトル化コードによってまたは複数のコアもしくはスレッド上でいくつかのタスクを並列に実行することによって、諸タイル全体を並列に処理するために利用可能にする。
図1は、ある実施形態に基づく、ブロック図形式での、グラフィクス処理パイプライン100の例を描いている。さまざまな実施形態において、パイプライン100は、少なくともマイクロソフトのDirectX 10またはOpenGL 2.1に基づいてプログラム可能である。さまざまな実施形態において、すべての段階は、一つまたは複数のアプリケーション・プログラム・インターフェース(API)を使って構成されることができる。描画プリミティブ(たとえば、三角形、長方形、正方形、直線、点または少なくとも一つのバーテックスをもつ形)がこのパイプラインの上部から流れ込み、コンピュータ画面上での描画のために画面空間のピクセルに変換およびラスタ化される。
入力集合器(input-assembler)段102は、8個までのバーテックス・バッファ入力ストリームからバーテックス・データを集める。他の数のバーテックス・バッファ入力ストリームを集めることもできる。さまざまな実施形態において、入力集合器段102は、「インスタンス生成(instancing)」と呼ばれるプロセスをもサポートしていてもよい。インスタンス生成では、入力集合器段102は一回の描画コールだけでオブジェクトを何回か複製する。
バーテックス・シェーダー(VS)段104は、バーテックスをオブジェクト空間からクリップ空間に変換する。VS段104は、単一のバーテックスを読んで単一の変換されたバーテックスを出力として生じる。
幾何シェーダー段106は、単一プリミティブのバーテックスを受け取り、ゼロ個以上のプリミティブのバーテックスを生成する。幾何シェーダー段106は、プリミティブおよび線を、バーテックスの接続されたストリップとして出力する。場合によっては、幾何シェーダー段106は、データ増幅と呼ばれるプロセスにおいて、前記バーテックス・シェーダー段からの各バーテックスから1024個までのバーテックスを放出する。また、場合によっては、幾何シェーダー段106は、バーテックス・シェーダー段104から一群のバーテックスを受け、それらを組み合わせてより少数のバーテックスを放出する。
ストリーム出力段108は、幾何シェーダー段106からの幾何データを直接、メモリ150内のフレーム・バッファの一部分に転送する。データがストリーム出力段108からフレーム・バッファに移ったのち、データはさらなる処理のためにパイプライン中の任意の点に戻ることができる。たとえば、ストリーム出力段108は、幾何シェーダー段106によって出力されたバーテックス情報の部分集合を、シーケンス順でメモリ150内の出力バッファにコピーしてもよい。
ラスタ化段110は、クリッピング(clipping)、選別(culling)、フラグメント生成(fragment generation)、切り取り(scissoring)、透視分割(perspective dividing)、ビューポート変換(viewport transformation)、プリミティブ・セットアップ(primitive setup)および奥行きオフセット(depth offset)のような動作を実行する。さらに、ラスタ化段110は:並列処理のために画像空間プリミティブをタイル(たとえば画面の部分領域)と関連付ける;プリミティブをタイル(または単一タイルの場合は画面ビューポート全体)の範囲にクリッピングする;各タイル内においてプリミティブが接触するピクセルのリストであるピクセル被覆マスクを生成する;および/または接触する各ピクセルについて表面および材質属性の補間された値を生成する、のうちの任意のものまたは全部を実行できる。
ラスタ化段110は、少なくとも一つの出力ストリームを与える。該出力ストリームは少なくとも二つのサブストリームを含む:一つはプリミティブについてのサブストリーム、一つはピクセル被覆マスクについてのサブストリームである。これらのサブストリームは、異なるレートで出力されることができる。ストリーミングされたデータは、利用可能になるとすぐに各ラスタ化されたタイルについて独立して消費されることができる。これは、他のタイルについてのストリーム・データがまだグラフィクス・パイプラインにおいて生成中の間に作業が異なるスレッドに割り当てられて並列に処理されることができるマルチスレッド環境において有利である。
ピクセルのパイプライン順序処理(pipeline ordered processing)に関連して、クリップ後ストリーム出力段112が、パイプライン中でラスタ化段110のあと、ピクセル・シェーディング段114の前に位置される。クリップ後ストリーム出力段112は、プリミティブ・ストリームを、プリミティブ・メモリ領域152の一部分に記憶し、ピクセル被覆マスクをタイル・メモリ領域154の一部分に記憶する。場合によっては、ラスタ化段110によって生成されるピクセル被覆マスクは、メモリ領域154内に記憶されない。そのような場合、メモリ領域154は割り当てられない。
さまざまな実施形態において、プリミティブ・ストリームは、クリッピングされた画面空間プリミティブを含み、描画順になっているが、必ずしもタイルごとにグループ化されてはいない。プリミティブ・ストリームは、カスタム補間のために、プリミティブの画面空間バーテックス位置およびバーテックスごとの奥行き情報を含む。プリミティブについての他の、バーテックスごとの属性は、テクスチャ座標、色、寿命、輝度(radiance)、照度(irradiance)および奥行きを含み、メモリ・フットプリント、機能およびパフォーマンスについてのアプリケーション要求に依存して、そうした属性もストリームに含められることができる。
さまざまな実施形態において、ピクセル被覆ストリームはプリミティブを参照し、クリッピングされたプリミティブごとにグループ化される。ピクセル被覆マスクは、どの画面ピクセルが対応するプリミティブによって接触されるかを定義する。いくつかの実施形態では、このピクセル被覆マスク・ストリームは記憶されない。その代わり、カスタムのアプリケーション側被覆マスク生成コードが、ピクセル被覆マスクを生成する。ピクセル被覆マスクを生成するアプリケーションは、プリミティブのバーテックス位置を知っており、そのバーテックス位置に基づいてピクセルがプリミティブと関連するかどうかを判定する。そのようなアプリケーションは、メモリ150内のバッファを割り当て、メモリ内の割り当てられた領域にピクセル被覆マスクを記憶することができる。
さまざまな実施形態において、クリップ後ストリーム出力段112は、プリミティブ・データおよび任意的にピクセル被覆データを可変サイズのメモリ・バッファに、ストリーミング・モードまたはバッファリングされるモードで、それらのプリミティブおよびピクセル被覆ストリームの描画順のシーケンシャルな消費を可能にするリンク・リスト表現(linked-list representation)をもって記憶する。ピクセル被覆マスクが生成される場合、被覆ストリーム・データ構造は、プリミティブ・ストリーム内のその関連付けられたプリミティブのデータ構造へのポインタを含む。
ストリーミング・モードでは、プリミティブ・データは、タイルごとのコールバック関数においてアプリケーションによって処理される。ストリーミング・モードでは、ストリームの一部のみ(たとえばタイルのサイズ)がアプリケーションにとってすぐ利用可能である。ストリーミング・モードでは、プリミティブおよびピクセル被覆データは、処理後、上書きされることができる。アプリケーションがストリームのそのタイル・サイズの部分の処理を終えたのち、ストリームのその部分は上書きされるべく利用可能である。このモードは、メモリ消費がより少なく、マルチスレッド環境において準備ができるとすぐにデータを処理することを可能にするが、複数のタイルを横断しての作業分担(work sharing)は可能にしない。
バッファリングされるモードでは、画面全体についてのデータがバッファ内に記憶され、ストリーム全体(たとえば全部のタイルまたは特定の数もしくは領域のタイル)が生成されたのちにアプリケーションによってアクセス可能となる。したがって、バッファリング・モードでは、フレームの全タイルのピクセル被覆マスクがタイル・メモリ領域154に記憶される。タイル・メモリ領域154はクリップ後出力段112によって埋められ、あるフレームの諸タイルのピクセル被覆マスクは、フレームの全タイルのピクセル被覆マスクが記憶されているまたはタイル・メモリ領域154が充填されている場合に、処理のために利用可能である。すると、一つまたは複数のアプリケーションはその後、全データをいっぺんに処理できる。
ストリーミング・モードおよびバッファリング・モードのいずれでも、データは、グラフィクス・パイプライン上で管理されているメモリ資源にストリーム・アウトされ、直接プログラム可能ではなく、アプリケーションにとって直接アクセス可能ではない。データは、タイルごとのコールバック関数においてアプリケーション側で処理されることができる。データは、その後のレンダリング・パスにおいて、アプリケーション側の介在なしにパイプライン中にストリームし戻される、あるいはアプリケーションによって非同期的に読まれることができるようステージング(staging)資源にコピーされることができる。グラフィクス・パイプラインは管理されるストリーム・メモリ資源依存性について知っているので、グラフィクス・パイプラインはいかなる仕方でデータ・ストリームの生成をスケジュールするのも自由である。メモリ資源依存性は、ストリーム・アウト・データがその後のレンダリング・パスにおいて使用される場合、あるいはデータがアプリケーションによる処理が終わったあと破棄されることができる場合に起こりうる。バッファリング・モードでは、アプリケーションは、資源上へのロックまたは非同期コピーのいずれかを要求することによってデータにアクセスできる。
ピクセル・シェーダー段114は、各単一ピクセル・フラグメントの属性を読み、色および奥行き値をもつ出力フラグメントを生成する。
出力併合段116は、ピクセル・シェーダー段114からのフラグメントに対して、ステンシルおよび奥行き試験を実行する。場合によっては、出力併合段116はレンダー・ターゲット・ブレンディングを実行する。
メモリ150は:これに限られないがランダム・アクセス・メモリ(RAM)、動的ランダム・アクセス・メモリ(DRAM)、静的RAM(SRAM)といった揮発性メモリ・デバイスまたは半導体ベースのメモリもしくは磁気メモリの他の任意の型の任意の組み合わせとして実装できる。
図2は、従来式のピクセル・シェーダーのピクセル処理およびさまざまな実施形態に基づくタイル内のピクセルの処理の例を描いている。既知のグラフィクス・パイプラインにおける従来式のピクセル・シェーダーの処理については、プリミティブからのピクセルは、処理のために複数のピクセル・シェーダーに分配される。しかしながら、さまざまな実施形態では、同じタイルに関係するピクセルが処理のために利用可能になる。同じタイルに関係するピクセルの処理は、従来式のピクセル・シェーダーによるピクセルの処理に対していくつかの利点を提供しうるが、そのような利点はどの実施形態についても必須の特徴ではない。第一に、単独プリミティブに共通の多くの計算は、事前計算して、タイル内の全ピクセルについて再利用できる。そのような計算の例は、三角形内試験および早期アウト戦略のための補間行列の計算である。第二に、プリミティブごとの処理は、隣接ピクセル・データを通信する柔軟性を提供し、それによりアプリケーション側でのブルーム(bloom)および奥行き(depth-of-field)といった画面空間効果を可能にする。
既知のグラフィクス・パイプラインでは、タイル処理は、幾何シェーダーまたはピクセル・シェーダー内の単一コアに制約される。しかしながら、さまざまな実施形態は、複数のコアがプリミティブおよびタイルのピクセルを並列に処理することを許容する。さまざまな実施形態では、ラスタ化後のプリミティブおよびピクセルの利用可能性が、ピクチャーの部分領域の処理のようなプリミティブのタイル化された処理を許容する。さらに、ラスタ化後のプリミティブおよびピクセルの利用可能性は、アプリケーション側で作業を並列化して再分配できるようにする。たとえば、複数コアがプリミティブおよびピクセルを並列に処理できる。結果として、ラスタ化後のプリミティブおよびピクセルの利用可能性は、従来式のグラフィクス・パイプラインに比べ、かなりのパフォーマンス上の改善を可能にする。
タイル順の(tile-ordered)アクセス・パターンは、画面空間における空間的コヒーレンスをもつ傾向がある多くのグラフィクス処理技法のための著しいパフォーマンス上の利点を可能にする。そのような順序付けは、グラフィクス・キャッシュの最適な使用を可能にし、キャッシュ・ミスフェッチ・パフォーマンス・ペナルティを回避する。
図3は、単一のコアが諸タイルを処理するときのコア利用率および単一タイルの処理の複数コアへの分配後のコア利用率の例を描いている。二つの図は、時間ごとのベクトル利用率(vector utilization)を表している。グラフ302は、各タイルについての作業が単一コアに制約される場合を示している。いくつかのコアはすぐアイドルになる一方、他のコアは作業集約的なタイルについてまだ処理を続けている。グラフ304はそれらのタイルの作業が複数コアを横断して再分配されて、時間がたってもずっとよいコア利用率を達成していることを示している。
さまざまな実施形態において、ラスタ化後のプリミティブおよびピクセルの利用可能性は、プリミティブおよびピクセル被覆マスクのカスタム化された処理を可能にする。画面の一部がレンダリングされるたびにコールバック・ルーチンが呼ばれることができる。例示的なコールバック・ルーチンは、タイル・レンダリング動作である。ストリーミング・モードでは、新しいグラフィクス機能および効果は、コールバック・ルーチンに、プリミティブおよびピクセルのカスタム化されたラスタ化処理を実装するコードを追加することによって追加できる。
図4は、プリミティブおよびピクセルのカスタム化されたラスタ化処理の例を描いている。たとえば、カスタム化されたラスタ化処理は不規則ラスタ化を含むことができる。不規則ラスタ化は、画像をレンダリングする際に、2Dでないグリッド・データ構造を利用するラスタ化を含む。たとえば、不規則なラスタ化およびシャドーイング(shadowing)アプリケーションについて、アプリケーションはカスタム補間技法を実装できる。プリミティブ固有の表面および材質属性が画面バーテックスごとに(per-screen-vertex)与えられ、プリミティブ・バーテックス値が使用のために利用可能だからである。カスタム補間は、プリミティブ・バーテックス値に基づいて、中心を外れたピクセル位置において、表面属性値を決定することを含みうる。このプリミティブ・バーテックス・データは、従来式のピクセル・シェーダーにおいては利用可能でない。従来式のピクセル・シェーダーはピクセルの中心において補間された値を与えられるだけだからである。カスタム補間は、ストリーム・アウトを使うアプリケーションによってなされ、よってそれらの結果は、グラフィクス・パイプラインではなく、前記アプリケーションによって使用されうる。
第二の例として、アプリケーションは、ラスタ化器における通常の被覆マスク計算をやめ、その代わりにカスタム被覆マスクを計算することを選ぶことができる。被覆マスクは、どのピクセルがプリミティブによって触れられるかを定義するマスクである。たとえば、設計者は、ピクセルがプリミティブに接触するかどうかを判定するためにどんな規則を適用するかを決定しうる。たとえば、カスタム被覆マスクは、ピクセルがプリミティブにかろうじて接触するがピクセルの内部ではない場合に、プリミティブがピクセルに接触することを許容してもよい。アプリケーションは、そのようなカスタム被覆マスクを使うことができる。
不規則Zバッファが非特許文献4の論文に記載されている。その論文の図3では、黄色のドットが、色および奥行きといったプリミティブの属性が計算される、ピクセル内の位置を示している。この計算は「補間」と呼ばれる。この論文の図3を参照すると、古典的なグラフィクス・パイプラインでは、奥行きはピクセル中心において計算される。対照的に、不規則Zバッファについて、奥行き(「Z」としても知られる)は任意の位置で決定される。さまざまな実施形態において、プリミティブおよびピクセル被覆マスクの記憶は、アプリケーションが任意の位置で補間することを許容し、これは、不規則Zバッファの実装において使用される。
図5は、ある実施形態に基づく、バッファリング・モードにおいてプリミティブおよびピクセルを記憶する仕方を描いたプロセス500の流れ図を描いている。図5のプロセスは、プロセッサによって実行されるアプリケーションによって実行されることができる。ブロック502は、タイルに関連付けられたピクセル被覆マスクを記憶するためのメモリ中のタイル・バッファと、プリミティブを記憶するためのメモリ中のプリミティブ・バッファとを割り当てることを含む。ブロック502は、アプリケーションがカスタムのピクセル被覆マスクを生成する場合には実行される必要はない。たとえば、タイルに関連付けられたピクセル被覆マスクを記憶するためにメモリ中にタイル・バッファを割り当てることは、アプリケーションがカスタムのピクセル被覆マスクを生成する場合には実行されなくてもよい。アプリケーションがカスタムのピクセル被覆マスクを生成する場合には、アプリケーションはカスタムのピクセル被覆マスクを記憶するためのバッファを割り当てうる。たとえば、タイルは4×4のピクセル領域でありうる。たとえば、下記の擬似コードにおいて、命令SetFrontEndSOTargetsがバッファを割り当てる。
ブロック504は、ラスタ化器からのプリミティブ属性をプリミティブ・バッファに記憶し、ラスタ化器からのプリミティブに関連付けられたピクセル被覆マスクをタイル・バッファに記憶するためのコールを発することを含む。ラスタ化器からのプリミティブに関連付けられたピクセル被覆マスクをタイル・バッファに記憶するためのコールを発することは、アプリケーションがカスタムのピクセル被覆マスクを生成する場合には、実行されなくてもよい。
ブロック506は、ピクセル被覆マスクおよびプリミティブ属性の割り当てられたバッファへの記憶を無効にすることを含む。たとえば、下記の擬似コードにおいて、命令FrontEndSOSetTargetsが、割り当てられたバッファへの記憶を無効にする。ピクセル被覆マスクの割り当てられたバッファへの記憶を無効にすることは、アプリケーションがカスタムのピクセル被覆マスクを生成する場合には実行されなくてもよい。
図6は、ある実施形態に基づく、プリミティブ属性およびピクセル被覆マスクにアクセスする仕方を描いたプロセス600の流れ図を描いている。プロセス600は、ホスト側アプリケーションによって実行できる。ブロック602は、プリミティブ属性およびタイル・バッファの特性を決定することを含む。たとえば、ブロック602は、各バッファに関連付けられたオーバーフロー・フラグを取得し、タイル・バッファに記憶されたタイルの数を決定することを含みうる。下記の擬似コードでは、命令Query_GetDataがオーバーフロー・フラグを取得する。
ブロック604は、タイル・バッファおよびプリミティブ・バッファのオーバーフローが起こるかどうかを判定することを含む。たとえば、ブロック604は、オーバーフロー・フラグに基づいてそれらのバッファのオーバーフローを識別することを含みうる。オーバーフローが検出された場合、プロセスは終了できる。さまざまな実施形態において、プロセスは、バッファのオーバーフローが起こらないよう、タイルおよびプリミティブ・バッファ内の追加的メモリを求めてもよい。該追加的メモリは、オーバーフローしたバッファについて割り当てられたメモリよりも多くてもよい。たとえば、追加的メモリは、タイル・バッファ内に記憶されるよりも多くのタイルの記憶およびプリミティブ・バッファ内に記憶されているよりも多くのプリミティブの記憶を許容してもよい。たとえば、下記の擬似コードでは、命令SetFrontEndSOTargetsがバッファのサイズを割り当てる。したがって、命令SetFrontEndSOTargetsの次の実行では、バッファのサイズは変更されることができる。
ブロック606は、プリミティブ属性および関連するピクセル被覆マスクを記憶するバッファまたはバッファの一部のメモリ・ロックを要求することを含む。メモリ・ロックは、他のプロセスを、対象バッファ内のデータを上書きすることから排除することに関わりうる。下記の擬似コードでは、命令ViewLockはタイル・バッファの一部のロックを引き起こす。
ブロック608は、記憶されているプリミティブ属性および関連付けられたピクセル被覆マスクを取得することを含む。取得されたプリミティブ・データは、いかなる仕方で処理するために解放されることもできる。たとえば、図4との関連で述べたプロセスがプリミティブおよびピクセル・データを処理できる。
ブロック610は、ロックされたバッファ部分のメモリ・ロックを解放することを含む。下記の擬似コードでは、命令ViewUnlockはバッファのロックされた部分を解放して、バッファが他のプロセスから読まれ、他のプロセスによって書き込まれることができるようにする。
プリミティブおよびピクセルを記憶し(図5)、記憶されたプリミティブおよびピクセルにアクセスする(図6)方法についての擬似コードを下記に与えておく。
Figure 0004981162
Figure 0004981162
Figure 0004981162
Figure 0004981162
本発明の諸実施形態は:マザーボードを使って相互接続された一つまたは複数のマイクロチップまたは集積回路、結線論理、メモリ・デバイスによって記憶されマイクロプロセッサによって実行されるソフトウェア、ファームウェア、特定用途向け集積回路(ASIC)および/または現場プログラム可能なゲートアレイ(FPGA)のうちの任意のものまたは組み合わせとして実装されうる。用語「論理(logic)」は、例として、ソフトウェアまたはハードウェアおよび/またはソフトウェアとハードウェアの組み合わせを含みうる。
本稿に記載されたグラフィクスおよび/またはビデオ処理技法は、さまざまなハードウェア・アーキテクチャにおいて実装されうる。たとえば、グラフィクスおよび/またはビデオ機能性はチップセット内に統合されてもよい。あるいはまた、離散的なグラフィクスおよび/またはビデオ・プロセッサが使用されてもよい。さらにもう一つの実施形態としては、グラフィクスおよび/またはビデオ機能は、マルチコア・プロセッサを含む汎用プロセッサによって実装されてもよい。さらなる実施形態では、それらの機能は、ポータブル・モバイル・コンピュータまたは携帯電話のような、グラフィクス・パイプラインによって処理された画像もしくはビデオを表示する表示装置をもつ消費者電子装置において実装されてもよい。
本発明の諸実施形態は、たとえば、コンピュータ、コンピュータのネットワークまたは他の電子装置のような一つまたは複数の機械によって実行されたときに該一つまたは複数の機械に本発明の実施形態に基づく動作を実行させうる機械実行可能命令が格納されている一つまたは複数の機械可読媒体を含みうるコンピュータ・プログラム・プロダクトとして提供されてもよい。機械可読媒体は、これに限られないが、フロッピー(登録商標)ディスケット、光ディスク、CD-ROM(コンパクトディスクを利用した読み出し専用メモリ)および光磁気ディスク、ROM(読み出し専用メモリ)、RAM(ランダム・アクセス・メモリ)、EPROM(消去可能なプログラム可能型読み出し専用メモリ)、EEPROM(電気的に消去可能なプログラム可能型読み出し専用メモリ)、磁気もしくは光カード、フラッシュ・メモリまたは機械実行可能命令を記憶するのに好適な他の型の媒体/機械可読媒体を含みうる。
図面および以上の記述は、本発明の例を与えるものである。いくつかの別個の機能要素として描かれていても、当業者はそのような要素の一つまたは複数が単一の機能要素に組み合わされてもよいことを認識するであろう。あるいはまた、ある種の要素が複数の機能要素に分割されてもよい。一つの実施形態からの要素が別の実施形態に加えられてもよい。たとえば、本稿に記載されるプロセスの順序は変更されてもよく、本稿に記載される仕方に限定されるものではない。さらに、いかなる流れ図の動作も、図示した順序に実装される必要はないし、すべての工程が必ずしも実行される必要はない。また、他の工程に依存しないような工程は、該他の工程と並行して実行されてもよい。ただし、本発明の範囲は、これらの個別的な例によって決して限定されるものではない。本明細書において明示的に与えられているか否かによらず、構造、大きさおよび材料の使用における相違のような数多くの変形が可能である。本発明の範囲は、少なくとも、付属の請求項によって与えられるのと同じ広さをもつものである。
102 入力集合段
104 バーテックス・シェーダー段
106 幾何シェーダー段
108 ストリーム出力段
110 ラスタ化段
112 クリップ後ストリーム出力段
114 ピクセル・シェーダー段
116 出力マージャー段
150 メモリ資源
152 プリミティブ・メモリ領域
154 タイル・メモリ領域
502 タイルに関連付けられたピクセル被覆マスクを記憶するためのメモリ中のタイル・バッファと、プリミティブ属性を記憶するためのメモリ中のプリミティブ・バッファとを割り当てる
504 プリミティブをプリミティブ・メモリに記憶し、プリミティブ属性に関連付けられたピクセル被覆マスクをタイル・バッファに記憶するためのコールを発する
506 タイル・バッファおよびプリミティブ・バッファへの記憶を無効にする
602 タイル・バッファおよびプリミティブ・バッファの特性を決定
604 タイル・バッファおよびプリミティブ・バッファのオーバーフロー?
606 プリミティブ属性および関連するピクセル被覆マスクを記憶するバッファのロックを要求
608 記憶されているプリミティブ属性および関連付けられたピクセル被覆マスクを取得
610 プリミティブ属性および関連するピクセル被覆マスクを記憶するバッファのアンロックを要求

Claims (16)

  1. メモリと、少なくともラスタ化器およびクリップ後ストリーム出力段を有するグラフィクス・パイプラインと、プロセッサ実行アプリケーションとを有する装置によって実行される方法であって:
    前記ラスタ化器からのプリミティブ属性を記憶するために前記メモリ内の第一のバッファの部分割り当てを、前記プロセッサ実行アプリケーションが要求する段階と;
    前記第一のバッファの部分に前記ラスタ化器からのプリミティブ属性を記憶するよう、前記プロセッサ実行アプリケーションが前記クリップ後ストリーム出力段に要求する段階と;
    前記プロセッサ実行アプリケーションまたは第二のプロセッサ実行アプリケーションによる前記プリミティブ属性へのアクセスを、前記プロセッサ実行アプリケーションが許可する段階とを含
    前記プロセッサ実行アプリケーションおよび前記第二のプロセッサ実行アプリケーションが前記グラフィクス・パイプラインから独立である、
    方法。
  2. 前記プリミティブ属性が画面空間バーテックス位置、バーテックスごとの奥行き情報、クリッピングされたタイル境界の識別情報および描画順のうちの一つまたは複数を含む、請求項1記載の方法。
  3. 前記プリミティブ属性が、テクスチャ座標、色、寿命、輝度および照度のうちの少なくとも一つから選択されるバーテックスごとの属性を含む、請求項1記載の方法。
  4. 請求項1記載の方法であって、さらに:
    記プリミティブ属性に関連付けられたピクセル被覆マスクを記憶するためにメモリ内の第二のバッファの部分割り当てを、前記プロセッサ実行アプリケーションが要求する段階と;
    前記第二のバッファの前記部分にピクセル被覆マスクを記憶することを、前記プロセッサ実行アプリケーションが要求する段階とを含み、記憶されるピクセル被覆マスクの少なくとも一つは、少なくとも一つのピクセルとプリミティブとの関係を同定する、
    方法。
  5. 請求項1記載の方法であって、さらに:
    前記プロセッサ実行アプリケーションまたは前記第二のアプリケーションが、バーテックス位置および奥行きを含む選択されたプリミティブ属性に基づいてピクセル被覆マスクを生成することを、前記プロセッサ実行アプリケーションが許可する段階であって、前記ピクセル被覆マスクはピクセルがプリミティブ内にあるか、プリミティブ外にあるか、またはプリミティブのエッジ上にあるかを同定する、段階とを含む、
    方法。
  6. 請求項1記載の方法であって、さらに:
    前記プロセッサ実行アプリケーションが複数のコアによる並列処理のために諸ピクセル被覆マスクの諸タイルへのアクセスを許可する段階をさらに含む、
    方法。
  7. 請求項1記載の方法であって、さらに:
    色、奥行きおよび座標のうちから選択されるプリミティブ・バーテックス属性に部分的に基づいて、前記プロセッサ実行アプリケーションまたは前記第二のアプリケーションが、ピクセルの色および奥行きを、そのピクセルの中心から外れた位置において補間することを、前記プロセッサ実行アプリケーションが許可する段階を含む、
    方法。
  8. メモリと;
    少なくともラスタ化器およびクリップ後ストリーム出力段を有するグラフィクス・パイプラインと;
    プロセッサ実行アプリケーションであって:
    前記ラスタ化器からのプリミティブ属性を記憶するために前記メモリ内の第一のバッファの部分を割り当てることを要求し
    前記第一のバッファの部分に前記プリミティブ属性を記憶することを前記クリップ後ストリーム出力段に要求し、
    前記プロセッサ実行アプリケーションまたは第二のプロセッサ実行アプリケーションによる前記プリミティブ属性へのアクセスを許可する、プロセッサ実行アプリケーションとを有
    前記プロセッサ実行アプリケーションおよび前記第二のプロセッサ実行アプリケーションは前記グラフィクス・パイプラインから独立である、
    装置。
  9. 前記プリミティブ属性が画面空間バーテックス位置、バーテックスごとの奥行き情報、クリッピングされたタイル境界の識別情報および描画順のうちの一つまたは複数を含む、請求項8記載の装置。
  10. 前記プリミティブ属性が、テクスチャ座標、色、寿命、輝度および照度のうちの少なくとも一つから選択されるバーテックスごとの属性を含む、請求項8記載の装置。
  11. 請求項8記載の装置であって、前記プロセッサ実行アプリケーションまたは前記第二のアプリケーションが:
    記プリミティブ属性に関連付けられたピクセル被覆マスクを記憶するためにメモリ内の第二のバッファの部分割り当てを要求し
    前記第二のバッファの前記部分にピクセル被覆マスクを記憶することを要求し、ピクセル被覆マスクは、少なくとも一つのピクセルとプリミティブとの関係を同定する、
    装置。
  12. 請求項8記載の装置であって、前記プロセッサ実行アプリケーションまたは前記第二のアプリケーションが:
    バーテックス位置および奥行きを含む選択されたプリミティブ属性に基づいてピクセル被覆マスクを生成する段階であって、前記ピクセル被覆マスクはピクセルがプリミティブ内にあるか、プリミティブ外にあるか、またはプリミティブのエッジ上にあるかを同定する、段階;
    複数のコアによる並列処理のために諸ピクセル被覆マスクを割り当てる段階;および
    色、奥行きおよび座標のうちから選択されるプリミティブ属性に部分的に基づいて、ピクセルの色および奥行きを、そのピクセルの中心から外れた位置において補間する段階のうちの一つまたは複数の段階を実行する、
    装置。
  13. ディスプレイおよびコンピュータ・システムを有するシステムであって、前記コンピュータ・システムは:
    前記ディスプレイによるレンダリングのために画像またはビデオを処理することのできるグラフィクス・パイプラインであって、少なくともラスタ化器およびクリップ後ストリーム出力段を有するグラフィクス・パイプラインと;
    プロセッサ実行アプリケーションとを有し、前記プロセッサ実行アプリケーションは:
    前記ラスタ化器からのプリミティブ属性を記憶するためにメモリ内の第一のバッファの部分割り当てを要求し
    前記第一のバッファの部分に前記プリミティブ属性を記憶することを前記出力段に要求
    前記プロセッサ実行アプリケーションまたは第二のプロセッサ実行アプリケーションによる前記プリミティブ属性へのアクセスを許可し、
    前記プロセッサ実行アプリケーションおよび前記第二のプロセッサ実行アプリケーションは前記グラフィクス・パイプラインから独立である、
    システム。
  14. 前記プリミティブ属性が画面空間バーテックス位置およびバーテックスごとの奥行き情報を含む、請求項13記載のシステム。
  15. 記プリミティブ属性が、テクスチャ座標、色、寿命、輝度および照度のうちの少なくとも一つから選択されるバーテックスごとの属性を含む、請求項13記載のシステム。
  16. 請求項13記載のシステムであって、前記プロセッサ実行アプリケーションまたは前記第二のプロセッサ実行アプリケーションが
    バーテックス位置および奥行きを含む選択されたプリミティブ属性に基づいてピクセル被覆マスクを生成する段階であって、前記ピクセル被覆マスクはピクセルがプリミティブ内にあるか、プリミティブ外にあるか、またはプリミティブのエッジ上にあるかを同定する、段階;
    複数のコアによる並列処理のために諸ピクセル被覆マスクを割り当てる段階ならびに
    色、奥行きおよび座標のうちから選択されるプリミティブ属性に部分的に基づいて、ピクセルの色および奥行きを、そのピクセルの中心から外れた位置において補間する段階のうちの少なくとも一つの段階を実行する、
    システム。
JP2010182881A 2009-08-21 2010-08-18 画像データの記憶・検索技法 Expired - Fee Related JP4981162B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/583,554 2009-08-21
US12/583,554 US20110043518A1 (en) 2009-08-21 2009-08-21 Techniques to store and retrieve image data

Publications (2)

Publication Number Publication Date
JP2011044143A JP2011044143A (ja) 2011-03-03
JP4981162B2 true JP4981162B2 (ja) 2012-07-18

Family

ID=42799294

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010182881A Expired - Fee Related JP4981162B2 (ja) 2009-08-21 2010-08-18 画像データの記憶・検索技法

Country Status (5)

Country Link
US (1) US20110043518A1 (ja)
JP (1) JP4981162B2 (ja)
CN (1) CN101996391B (ja)
DE (1) DE102010033318A1 (ja)
GB (1) GB2472897B (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8515052B2 (en) 2007-12-17 2013-08-20 Wai Wu Parallel signal processing system and method
US9105842B2 (en) * 2010-06-30 2015-08-11 International Business Machines Corporation Method for manufacturing a carbon-based memory element and memory element
US8339409B2 (en) * 2011-02-16 2012-12-25 Arm Limited Tile-based graphics system and method of operation of such a system
CN102736947A (zh) * 2011-05-06 2012-10-17 新奥特(北京)视频技术有限公司 一种图形渲染中光栅化阶段的多线程实现方法
US9442780B2 (en) 2011-07-19 2016-09-13 Qualcomm Incorporated Synchronization of shader operation
US9691117B2 (en) 2011-11-30 2017-06-27 Intel Corporation External validation of graphics pipelines
US9430807B2 (en) * 2012-02-27 2016-08-30 Qualcomm Incorporated Execution model for heterogeneous computing
JP5910310B2 (ja) * 2012-05-22 2016-04-27 富士通株式会社 描画処理装置及び描画処理方法
CN102799431B (zh) * 2012-07-02 2015-06-10 上海算芯微电子有限公司 图元预处理和处理方法、图形处理方法及其处理器、装置
US8941676B2 (en) * 2012-10-26 2015-01-27 Nvidia Corporation On-chip anti-alias resolve in a cache tiling architecture
KR102089471B1 (ko) * 2012-11-30 2020-03-17 삼성전자주식회사 타일 기반 렌더링 방법 및 장치
CN105118089B (zh) * 2015-08-19 2018-03-20 上海兆芯集成电路有限公司 三维图形管道中的可程序化像素设定方法及使用其的装置
CN105574806B (zh) * 2015-12-10 2019-03-15 上海兆芯集成电路有限公司 影像处理方法及其装置
US20170236318A1 (en) * 2016-02-15 2017-08-17 Microsoft Technology Licensing, Llc Animated Digital Ink
CN106355634A (zh) * 2016-08-30 2017-01-25 北京像素软件科技股份有限公司 模拟太阳的方法及装置
US10460513B2 (en) * 2016-09-22 2019-10-29 Advanced Micro Devices, Inc. Combined world-space pipeline shader stages
US10685473B2 (en) * 2017-05-31 2020-06-16 Vmware, Inc. Emulation of geometry shaders and stream output using compute shaders
WO2021087826A1 (en) * 2019-11-06 2021-05-14 Qualcomm Incorporated Methods and apparatus to improve image data transfer efficiency for portable devices

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5515481A (en) * 1992-07-08 1996-05-07 Canon Kabushiki Kaisha Method and apparatus for printing according to a graphic language
EP0610606A1 (en) * 1993-02-11 1994-08-17 Agfa-Gevaert N.V. Method of displaying part of a radiographic image
DE19543079A1 (de) * 1995-11-18 1997-05-22 Philips Patentverwaltung Verfahren zum Bestimmen der räumlichen und/oder spektralen Verteilung der Kernmagnetisierung
SE510310C2 (sv) * 1996-07-19 1999-05-10 Ericsson Telefon Ab L M Förfarande jämte anordning för rörelse-esimering och segmentering
US6057847A (en) * 1996-12-20 2000-05-02 Jenkins; Barry System and method of image generation and encoding using primitive reprojection
US6088044A (en) * 1998-05-29 2000-07-11 International Business Machines Corporation Method for parallelizing software graphics geometry pipeline rendering
WO2000011607A1 (en) * 1998-08-20 2000-03-02 Apple Computer, Inc. Deferred shading graphics pipeline processor
JP2000338959A (ja) * 1999-05-31 2000-12-08 Toshiba Corp 画像処理装置
JP2003529860A (ja) * 2000-03-31 2003-10-07 インテル・コーポレーション タイル型グラフィックス・アーキテクチャ
US6919904B1 (en) * 2000-12-07 2005-07-19 Nvidia Corporation Overbright evaluator system and method
GB2387094B (en) * 2002-03-26 2005-12-07 Imagination Tech Ltd 3-D Computer graphics rendering system
US6891543B2 (en) * 2002-05-08 2005-05-10 Intel Corporation Method and system for optimally sharing memory between a host processor and graphics processor
US7268785B1 (en) * 2002-12-19 2007-09-11 Nvidia Corporation System and method for interfacing graphics program modules
US7719540B2 (en) * 2004-03-31 2010-05-18 Intel Corporation Render-cache controller for multithreading, multi-core graphics processor
US7978205B1 (en) * 2004-05-03 2011-07-12 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
JP4704348B2 (ja) * 2004-09-06 2011-06-15 パナソニック株式会社 画像生成装置および画像生成方法
US7692660B2 (en) * 2006-06-28 2010-04-06 Microsoft Corporation Guided performance optimization for graphics pipeline state management
US7952588B2 (en) * 2006-08-03 2011-05-31 Qualcomm Incorporated Graphics processing unit with extended vertex cache
US8009172B2 (en) * 2006-08-03 2011-08-30 Qualcomm Incorporated Graphics processing unit with shared arithmetic logic unit
US7944442B2 (en) * 2006-09-26 2011-05-17 Qualcomm Incorporated Graphics system employing shape buffer
US7928990B2 (en) * 2006-09-27 2011-04-19 Qualcomm Incorporated Graphics processing unit with unified vertex cache and shader register file
US7852350B2 (en) * 2007-07-26 2010-12-14 Stmicroelectronics S.R.L. Graphic antialiasing method and graphic system employing the method
US8384728B2 (en) * 2007-09-14 2013-02-26 Qualcomm Incorporated Supplemental cache in a graphics processing unit, and apparatus and method thereof
US8200917B2 (en) * 2007-09-26 2012-06-12 Qualcomm Incorporated Multi-media processor cache with cache line locking and unlocking
US8922565B2 (en) * 2007-11-30 2014-12-30 Qualcomm Incorporated System and method for using a secondary processor in a graphics system
US8769207B2 (en) * 2008-01-16 2014-07-01 Via Technologies, Inc. Caching method and apparatus for a vertex shader and geometry shader
US8284197B2 (en) * 2008-07-11 2012-10-09 Advanced Micro Devices, Inc. Method and apparatus for rendering instance geometry

Also Published As

Publication number Publication date
CN101996391A (zh) 2011-03-30
GB2472897A (en) 2011-02-23
JP2011044143A (ja) 2011-03-03
GB2472897B (en) 2012-10-03
CN101996391B (zh) 2014-04-16
US20110043518A1 (en) 2011-02-24
GB201012749D0 (en) 2010-09-15
DE102010033318A1 (de) 2011-04-07

Similar Documents

Publication Publication Date Title
JP4981162B2 (ja) 画像データの記憶・検索技法
US10229529B2 (en) System, method and computer program product for implementing anti-aliasing operations using a programmable sample pattern table
JP4489806B2 (ja) スケーラブルシェーダアーキテクチャ
US9547931B2 (en) System, method, and computer program product for pre-filtered anti-aliasing with deferred shading
US7692660B2 (en) Guided performance optimization for graphics pipeline state management
JP5345226B2 (ja) グラフィックスプロセッサの並列アレイアーキテクチャ
JP4981923B2 (ja) 高速ピクセル・レンダリング処理
TWI529660B (zh) 使用每像素著色器執行緒的高效超取樣
JP5032588B2 (ja) 3次元グラフィックスパイプラインの自動負荷分散
US10049486B2 (en) Sparse rasterization
JP6133490B2 (ja) タイルベースのレンダリングのためのイントラフレームタイムスタンプ
US9659399B2 (en) System, method, and computer program product for passing attribute structures between shader stages in a graphics pipeline
US9230362B2 (en) System, method, and computer program product for using compression with programmable sample locations
JP2009295162A (ja) グラフィックス処理システム
HUE031474T2 (en) Graphic processing unit instruction with execution unit
US20150070381A1 (en) System, method, and computer program product for using compression with programmable sample locations
US9269179B2 (en) System, method, and computer program product for generating primitive specific attributes
US20150084952A1 (en) System, method, and computer program product for rendering a screen-aligned rectangle primitive
US20220309606A1 (en) Dynamically reconfigurable register file
US11972518B2 (en) Hybrid binning
US11880924B2 (en) Synchronization free cross pass binning through subpass interleaving
US20240104685A1 (en) Device and method of implementing subpass interleaving of tiled image rendering
US20210304488A1 (en) Sampling for partially resident textures
JP2011523745A (ja) 分散型レベル1キャッシュシステム及び集中型レベル2キャッシュを有するシェーダ複合体

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111206

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120302

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: 20120321

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: 20120419

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150427

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4981162

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