JP2015501981A - タイルベースのレンダリングにおけるテッセレーション - Google Patents

タイルベースのレンダリングにおけるテッセレーション Download PDF

Info

Publication number
JP2015501981A
JP2015501981A JP2014542314A JP2014542314A JP2015501981A JP 2015501981 A JP2015501981 A JP 2015501981A JP 2014542314 A JP2014542314 A JP 2014542314A JP 2014542314 A JP2014542314 A JP 2014542314A JP 2015501981 A JP2015501981 A JP 2015501981A
Authority
JP
Japan
Prior art keywords
output
primitive
visible
input
tile
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.)
Granted
Application number
JP2014542314A
Other languages
English (en)
Other versions
JP5837221B2 (ja
Inventor
カリーオ、キーア・カーッポー
アルボ、ジュッカ−ペッカ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2015501981A publication Critical patent/JP2015501981A/ja
Application granted granted Critical
Publication of JP5837221B2 publication Critical patent/JP5837221B2/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
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)

Abstract

開示される技法は、フレームのタイルごとに入力可視性ストリームを生成することと、ここで、入力可視性ストリームは、レンダリングされる際に各タイルにおいて入力プリミティブが可視であるか否かを示す、フレームのタイルごとに出力可視性ストリームを生成することと、ここで、出力可視性ストリームは、レンダリングされる際に各タイルにおいて出力プリミティブが可視であるか否かを示し、出力プリミティブは、入力プリミティブをテッセレートすることによって生成される、を含む。この方法で、入力可視性ストリームに基づいて、テッセレーションが、タイルにおいて可視ではない入力プリミティブ全体について、省略されうる。また、出力可視性ストリームに基づいて、テッセレーションは、入力プリミティブの幾つかが可視ではない場合であっても、出力プリミティブのうちの、タイルにおいて可視ではない特定のものについて、省略されうる。

Description

本開示は、グラフィックス処理についての技法に関し、より詳細には、タイルベースのレンダリングアーキテクチャを用いる際のテッセレーション(tessellation)についての技法に関する。
グラフィカルユーザインターフェース及びビデオゲーム用のコンテンツのような、表示用のビジュアルコンテンツは、グラフィックス処理単位(GPU)によって生成されうる。GPUは、2次元又は3次元(3D)のオブジェクトを、表示されうる2次元(2D)の画素表現へと変換しうる。3Dオブジェクトについての情報を、表示されることができるビットマップへと変換することは、画素レンダリングとして知られており、大量のメモリ及び処理電力とを要求する。これまで、3Dグラフィックス性能は、強力なワークステーション上でしか利用可能でなかった。しかしながら、現在、3Dグラフィックス加速器は、パーソナルコンピュータ(PC)だけでなく、スマートフォン、タブレットコンピュータ、ポータブルメディアプレーヤ、ポータブルビデオゲーミングコンソール、等、のような埋込式デバイスによく見られる。典型的に、埋込式デバイスは、従来のPCと比較して、より少ない計算電力とメモリ容量を有する。このように、3Dグラフィックスレンダリング技法における複雑性の増加は、そのような技法を埋込式システム上で実現する際に問題を引き起こす。
一般的に、本開示は、グラフィックス処理のための技法を説明し、より詳細には、テッセレーションを利用する、タイルベースのグラフィックス処理アーキテクチャを有するコンピューティングデバイスにおけるグラフィックス処理のための技法を説明する。本開示は、フレームのタイル内のグラフィックスプリミティブの可視性(visibility)を示す出力可視性ストリーム(output visibility stream)及び/又は入力可視性ストリーム(input visibility stream)の生成を提案する。そのような可視性ストリームにより、タイルベースのグラフィックス処理アーキテクチャは、フレームにおいて可視ではないグラフィックスプリミティブのレンダリングを省略することができる。この方法において、不必要な処理は回避されることができ、故に、性能を向上させる。
本開示の一例において、タイルベースのグラフィックスにおけるテッセレーションのための方法が提案される。方法は、フレームのタイルごとに入力可視性ストリームを生成することと、ここで、入力可視性ストリームは、レンダリングされる際に各タイルにおいて入力プリミティブが可視であるか否かを示す、フレームのタイルごとに出力可視性ストリームを生成することと、ここで、出力可視性ストリームは、レンダリングされる際に各タイルにおいて出力プリミティブが可視であるか否かを示し、出力プリミティブは、入力プリミティブをテッセレート(tessellate)することによって生成される、を含む。
本開示の別の例において、タイルベースのグラフィックスレンダリングパイプラインにおいてテッセレーションを実行するように構成された装置が提案される。装置は、フレームのタイルごとに入力可視性ストリームを生成するように構成されたビニング(binning)パイプラインを含む。入力可視性ストリームは、レンダリングされる際に各タイルにおいて入力プリミティブが可視であるか否かを示す。ビニングパイプラインはさらに、フレームのタイルごとに出力可視性ストリームを生成するように構成される。出力可視性ストリームは、レンダリングされる際に各タイルにおいて出力プリミティブが可視であるか否かを示し、出力プリミティブは、入力プリミティブをテッセレートすることによって生成される。
本開示の別の例において、タイルベースのレンダリングパイプラインにおけるテッセレーションのための方法が提案される。方法は、フレームのタイルごとに各入力プリミティブのための可視性ストリームを生成することを含み、ここで、可視性ストリームは、Nビットの長さを有し、各ビットは、レンダリングされる際に各タイルにおいて出力プリミティブが可視であるか否かを示し、出力プリミティブは、入力プリミティブをテッセレートすることによって生成される。
本開示の別の例において、タイルベースのレンダリングパイプラインにおいてテッセレーションを実行するように構成された装置が提案される。装置は、フレームのタイルごとに、各入力プリミティブについての可視性ストリームを生成するように構成されたビニングパイプラインを含み、ここで、可視性ストリームは、Nビットの長さを有し、各ビットは、レンダリングされる際に各タイルにおいて出力プリミティブが可視であるか否かを示し、出力プリミティブは、入力プリミティブをテッセレートすることによって生成される。
1つ以上の例の詳細は、添付の図面及び以下の説明において示される。他の特徴、目的、及び利点は、説明、図面、及び特許請求の範囲から明らかになるであろう。
図1は、タイルベースのレンダリングアーキテクチャにおけるフレームのタイルを示す概念図である。 図2は、例示的なグラフィックス処理システムを示すブロック図である。 図3は、テッセレーションを用いた例示的なグラフィックスパイプラインを示すブロック図である。 図4は、入力可視性ストリーム及び出力可視性ストリームを生成する例示的なビニングパイプラインを示すブロック図である。 図5は、例示的な入力可視性ストリーム及び例示的な出力可視性ストリームを示す概念図である。 図6は、入力プリミティブをテッセレートするための例示的な技法を示す概念図である。 図7は、入力プリミティブをテッセレートするための例示的な技法を示す概念図である。 図8は、入力可視性ストリームを生成する例示的なビニングパイプラインを示すブロック図である。 図9は、例示的な単一の可視性ストリームを示す概念図である。 図10は、タイルベースのレンダリングパイプラインにおいてテッセレーションを実行するための例示的な方法を示すフローチャートである。 図11は、タイルベースのレンダリングパイプラインにおけるビニングパスの例示的な方法を示すフローチャートである。 図12は、タイルベースのレンダリングパイプラインにおいてテッセレーションを実行するための別の例示的な方法を示すフローチャートである。 図13は、タイルベースのレンダリングパイプラインにおけるビニングパスの別の例示的な方法を示すフローチャートである。
本開示は、グラフィックス処理のための技法に関し、より詳細には、タイルベースのレンダリングアーキテクチャを用いた場合のテッセレーション(tessellation)のための技法に関する。
マイクロソフトのDirectX11(DX11)アプリケーションプログラミングインターフェース(API)を含む幾つかのグラフィックスレンダリングパイプラインは、グラフィックスプリミティブのテッセレーションを可能にする追加の処理段(additional processing stages)を含む。テッセレーションは、それによってグラフィックスプリミティブがより小さいグラフィックスプリミティブへと分割され、結果、表示される画像でのより精細なディテールを可能にするプロセスである。
テッセレータ段(tessellator stage)での参照実装(reference implementation)は、マイクロソフトDX11ソフトウェア基準ラスタライザによって細かく定義されているが、そのような実現は、埋込式デバイス(例えば、タブレットコンピュータ、モバイル電話、モバイルゲーミングデバイス、モバイルメディアプレーヤ、等)内のグラフィックスプロセッサで使用されるもののようなタイルベースのレンダリングアーキテクチャに対して、それ程効率的にはマッピングしない。タイルベースのレンダリング(ビニングと呼ばれることもある)は、3Dシーンの1つのフレームをより小さい部分(例えば、矩形タイル)へと分解し、これらの部分のそれぞれを別々にレンダリングすることで、このフレームをレンダリングする。タイルベースのレンダリングは、モバイルアプリケーションの場合など、小型の専用グラフィックスメモリが利用可能なアプリケーションに有益である。図1は、タイルベースのレンダリングアーキテクチャにおけるフレームのタイルを示す概念図である。フレーム22は、タイル24のような複数のタイルへと分割されうる。次に、フレーム全体をレンダリングするために、タイル単位でグラフィックス処理が実行される。
マイクロソフトDX11ソフトウェア基準ラスタライザを含む、テッセレーション段でグラフィックスデータをレンダリングするための従来の技法は、3Dシーンのフレーム全体が全体としてレンダリングされるであろうという仮定の下で設計される。このように、そのような基準ラスタライザで使用されるテッセレーションアルゴリズムは常に、完全な(full)入力プリミティブを、出力プリミティブの完全なセットへとテッセレートする。タイルベースのレンダリングアーキテクチャにおいて、これは、テッセレートされた出力プリミティブのほんの一部が、実際に、現在レンダリングされているタイル(currently rendered tile)に寄与しうる(即ち、幾つかの出力プリミティブは、別のタイル内の現在レンダリングされているタイルの外側にあることとなる)ため、多くの不適切なグラフィックス処理単位(GPU)及びテッセレーション処理をもたらす可能性がある。
この観点から、本開示は、タイルベースのグラフィックスレンダリングアーキテクチャにおけるテッセレーションのための方法及び装置を提案する。開示される技法は、フレームのタイルごとに入力可視性ストリームを生成することと、ここで、入力可視性ストリームは、レンダリングされる際に各タイルにおいて入力プリミティブが可視であるか否かを示す、フレームのタイルごとに出力可視性ストリームを生成することと、ここで、出力可視性ストリームは、レンダリングされる際に各タイルにおいて出力プリミティブが可視であるか否かを示し、出力プリミティブは、入力プリミティブをテッセレートすることによって生成される、を含む。このように、入力可視性ストリームに基づいて、テッセレーションは、タイルにおいて可視ではない入力プリミティブ全体について省略されうる。また、出力可視性ストリームに基づいて、テッセレーションは、入力プリミティブの幾つかが可視ではなかったとしても、タイルにおいて可視ではない出力プリミティブのうち特定のものについて、省略されうる。このように、不必要なテッセレーションは回避される。さらに、テッセレーションが省略されるため幾つかの出力プリミティブが作り出されず、よって、作り出されていない出力プリミティブの処理は、グラフィックスパイプラインのそれ以降の段(later stages)で回避される。
本開示の別の例において、単一の可視性ストリームが、フレームの格タイルについての各入力プリミティブに対して生成される。可視性ストリームは、Nビットの長さを有し、各ビットは、レンダリングされる際に各タイルにおいて出力プリミティブが可視であるか否かを示し、出力プリミティブは、入力プリミティブをテッセレートすることによって生成される。
図2は、本開示の技法を実現するように構成されうるデバイス2を示すブロック図である。デバイス2の例には、ワイヤレスデバイス、モバイル電話、携帯情報端末(PDA)、ポータブルメディアプレーヤ、ビデオゲーミングコンソール(統合ディスプレイを備える又は備えない)、モバイルビデオ会議ユニット、ラップトップコンピュータ、デスクトップコンピュータ、テレビジョンセットトップボックス、タブレット計算デバイス、電子ブックリーダ、等が含まれるがそれらに限定されるわけではない。デバイス2には、プロセッサ4、グラフィックス処理単位(GPU)6、ディスプレイ8、フレームバッファ10、記憶デバイス12、トランシーバモジュール14、ユーザインターフェース16、低解像度バッファ18(これは、低解像度zバッファ又はLRZバッファとも呼ばれる)、及びタイルメモリ20が含まれうる。デバイス2は、明瞭さの目的で図2には示されていない追加のモジュール又はユニットを含みうる。例えば、デバイス2は、デバイス2がモバイルワイヤレス電話である例において電話通信を実現するためにスピーカ及びマイクロフォンを含みうるが、何れも図2には示されない。さらに、デバイス2内に示される様々なモジュール及びユニットは、デバイス2のすべての例に存在する必要はない。例えば、ユーザインターフェース16及びディスプレイ8は、デバイス2がデスクトップコンピュータ又はビデオゲーミングコンソールである例においてデバイス2に外付けでありうる。
プロセッサ4は、1つ以上のアプリケーションを実行しうる。これらアプリケーションの例には、ウェブブラウザ、電子メールアプリケーション、スプレッドシート、ビデオゲーム、又は、表示するために、可視のオブジェクトを生成する他のアプリケーションが含まれる。1つ以上のアプリケーションは、記憶デバイス12内に記憶されうる。幾つかの例において、プロセッサ4は、トランシーバモジュール14を介して1つ以上のアプリケーションをダウンロードしうる(例えば、インターネット又は他のネットワークから)。プロセッサ4は、ユーザによるユーザインターフェース16を介した選択に基づいて、1つ以上のアプリケーションを実行しうる。幾つかの例では、プロセッサ4は、ユーザ対話なく、1つ以上のアプリケーションを実行しうる。
プロセッサ4の例には、デジタル信号プロセッサ(DSP)、汎用マイクロプロッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、又は、他の等価的な統合又はディスクリート論理回路が含まれるがそれらに限定されるわけではない。記憶デバイス12は、1つ以上のコンピュータ読取可能な媒体を備えうる。記憶デバイス12の例には、ランダムアクセスメモリ(RAM)、読取専用メモリ(ROM)、電気的消去可能プログラマブル読取専用メモリ(EEPROM)、CD−ROM、ブルーレイ又は他の光ディスク記憶装置、磁気ディスク記憶装置又はその他の磁気記憶デバイス、フラッシュメモリ、或いは、所望のプログラムコードを命令又はデータ構造の形式で搬送又は記憶するために使用可能であり、かつコンピュータ又はプロセッサによってアクセスされることができる任意の他の媒体が含まれるがそれらに限定されるわけではない。幾つかの態様において、記憶デバイス12は、本開示においてホストプロセッサ4及びGPU 6に属する上述された機能を実行することをホストプロセッサ4及び/又はGPU6に行わせる命令を含みうる。
記憶デバイス12は、幾つかの例では、非一時的な記憶媒体とみなされる。「非一時的な」という用語は、記憶媒体が、キャリア波又は伝播信号で具現化されないことを示しうる。しかしながら、「非一時的な」という用語は、記憶デバイス12がモバイルでないことを意味すると解釈されるべきではない。一例として、記憶デバイス12は、デバイス2から取り除かれ、別のデバイスに動かされうる。別の例として、実質的に記憶デバイス12に類似しているある記憶デバイスが、デバイス2に挿入されうる。特定の例において、非一時的な記憶媒体は、経時的に変化しうるデータを記憶しうる(例えば、RAMに)。
ユーザインターフェース16の例には、トラックボール、マウス、キーボード、ゲーミングコントローラ、及び他のタイプの入力デバイスが含まれるがそれらに限定されるわけではない。ユーザインターフェース16はまた、タッチスクリーンであり、ディスプレイ8の一部として組み込まれうる。トランシーバモジュール14は、デバイス2と別のデバイス又はネットワークとの間でのワイヤレス通信又はワイヤード通信を可能にする回路を含みうる。トランシーバモジュール14は、変調器、復調器、増幅器、及び、ワイヤード通信又はワイヤレス通信のための他のそのような回路を含みうる。
GPU 6は、高度な並列構造を用いてデータを素早く操作するように設計された専用プロセッサである。特に、GPU 6は、グラフィカル処理を実行するために、レンダリングパイプラインのプログラマブルかつ固定の機能段(fixed function stages)を実行するように構成されうる。一例において、GPU 6は、3次元グラフィックスレンダリングパイプラインを実行して、表示するために、3次元オブジェクトを2次元空間にレンダリングするように構成されうる。例えば、GPU 6は、ディスプレイ8上に表示されるべき画素の画素値を生成するために、シェーディング、ブレンディング、イルミネーテリング、等の機能を実行しうる。GPU 6によって生成される画素は、表示する前にフレームバッファ10に記憶されうる。幾つかの例では、シェーディング、ブレンディング、イルミネーテリング、等の機能を実行する前に、GPU 6は、タイル機能(tiling function)とも呼ばれるビニングパスを実行しうる。
図1には1つのGPU 6が示されているが、本開示の態様は、それに限定されるわけではない。幾つかの例では、デバイス2は、GPU 6に類似した複数のGPU又はGPUコアを含みうる。グラフィックス処理タスクは、これらのGPU又はGPUコアの間で分けられうる。
ビニングパスを実行するために、GPU 6は、図1に示されるように、ディスプレイ8上の画素を、タイルと呼ばれる、画素の複数のブロックへと分割しうる。例えば、ディスプレイ8が640×480の画素を含むように構成されると想定する。一例として、GPU 6は、このディスプレイを、各タイルが64×48の画素を含む10×10のタイルへと分割しうる。
タイルメモリ20は、ビニングパスの間、画像の表面が属する先の特定のタイルを示しうる。幾つかの例では、タイルメモリ20は、記憶デバイス12の一部として形成されうるが、本開示の態様はそれに限定されるわけではない。GPU 6は、画像表面に対するビニングパス間、どのタイルにその画像表面が属するかに基づいて、タイルメモリ20の適切な記憶位置内に、画像表面についての表面識別子値を記憶しうる。タイルメモリ20は、複数のレイヤを含むものとみなされうる。各レイヤは、画像表面の1つに対応しうる。各レイヤは、複数の記憶位置を含む2次元レイヤでありうる。各記憶位置は、ディスプレイ8のタイルのうちの1つに対応しうる。
低解像度バッファ18は、複数の記憶位置を有する2次元のバッファでありうる。幾つかの例では、低解像度バッファ18は、記憶デバイス12の一部として形成されうるが、本開示の態様はそれに限定されるわけではない。より詳細に以下で説明されるように、低解像度バッファ18は、後にオクルードされる画素の不必要なレンダリングを回避するためにどの画素がレンダリングされるべきかを示す効率的なインジケーション(指標)を促進しうる。低解像度バッファ18内の各記憶位置は、ディスプレイ8上で表される画素のブロックに対応しうる。例えば、ディスプレイ8上に表される4×4画素のブロックは、低解像度バッファ18内の1つの記憶位置に対応しうる。4×4画素のブロックは、例示の目的で提供されており、限定するものとしてみなされるべきではない。低解像度バッファ18は、低解像度バッファ18の各記憶位置が、単一の画素というよりはむしろ複数の画素に対応するため、1つの低解像度バッファとみなされうる。
図3は、図2のGPU 6によって実行されうる例示的なグラフィックスパイプライン30を描写する。 上述されたように、グラフィックスパイプライン30は、フレーム全体のタイルが別々にレンダリングされ、その後表示のために組み合わせられるタイルベースのレンダリングアーキテクチャで実現されうる。グラフィックスパイプライン30は、マイクロソフトのDirectX11 APIに従って実現されうる。DirectX11 APIは、先行版のDirectX APIには存在しなかった3つの段(three stages)、プログラマブルハルシェーダ(HS)36、固定機能テッセレータ(TS)38、及びプログラマブルドメインシェーダ(DS)40を含む。ハルシェーダ36、テッセレータ38、及びドメインシェーダ40は、総称して「テッセレーションパイプライン」と呼ばれることもある。
入力アセンブラ(IA)32は、基本プリミティブのために、メモリから複数の頂点を読み出す。基本プリミティブは、リソース50のメモリ(例えば、図2のタイルメモリ20)に記憶されうる。幾つかの例では、グラフィックスパイプラインの基本プリミティブは、三角形である。グラフィックスパイプライン30のような、テッセレーション段を含むグラフィックスパイプラインの場合、基本プリミティブはパッチでありうる。パッチは本質的に、表面又はメッシュを表現する。1つのパッチは、表面を定義するために、1〜32個の異なる制御点を含みうる。グラフィックスパイプラインに関する残りの説明は、基本プリミティブがパッチであるという憶測を立てて行うが、本開示の技法は、他の基本プリミティブタイプに対しても適用可能である。
頂点シェーダ(vertex shader)(VS)34は、パッチの各制御点に対して動作を実行するプログラマブル段(programmable stage)である。頂点シェーダ34は、仮想空間における各制御点の3D位置を、スクリーン上にそれが現れる2D座標と、深度値とに変換する。頂点シェーダは、位置、色、及びテキスチャ座標のようなプロパティを操作することができるが、新しい制御点は作り出さない。頂点シェーダ34の出力制御点は、ハルシェーダ(hull shader)36に進む。
ハルシェーダ36は、2つの動作を実行する。殆どのパッチの場合、頂点シェーダからの変換済み制御点は、単純にドメインシェーダ40に渡されうる。より複雑な表面を表すパッチの制御点は、ドメインシェーダ(domain shader)40に渡される前に、ハルシェーダ36による追加の処理を必要としうる。ハルシェーダはまた、各パッチに対して実行されるべきテッセレーションのレベルを決定し、この「テッセレーションファクタ」をテッセレータ38に送る。
テッセレータ38の基本機能は、3Dシーンの入力プリミティブ(例えば、パッチ)を、複数の出力プリミティブへとテッセレートする(即ち、さらに分割する)ことである。テッセレータ38は、これらのパッチを、ハルシェーダ36によって提供されたテッセレーションファクタに従って、三角形、四角形、又は等値線のようなより小さい出力プリミティブへとさらに分割する。テッセレータ38の出力は、出力プリミティブを定義する頂点のセットである。テッセレーションは、より平滑な曲面(curved surface)のレンダリングを可能にし、それは、グラフィック的により詳細な画像に帰着する。
ドメインシェーダ40は、テッセレーションパイプラインの最終段である。ドメインシェーダ40は、テッセレータ38によって作り出された出力頂点に対して動作する。ドメインシェーダ40は、ハルシェーダ36から受信された制御点から、最後の出力頂点位置及び属性を算出することを担う。
ジオメトリシェーダ(geometry shader)(GS)42は、テッセレーションパイプラインから受信されたテッセレート済みの出力プリミティブから、追加のプリミティブを作り出すために使用されうるオプションのプログラマブル段である。ジオメトリシェーダ42は、グラフィック的により一層詳細な画像を可能にする。
パイプラインの残りの段において、ラスタライザ(rasterizer)(RS)44は、テッセレーションパイプライン及び/又はジオメトリシェーダ42からの出力プリミティブを、3D空間から2D空間における画素値へと変換する。次に、プログラマブル画素シェーダ(PS)46は、画素に対して、深度テスト、クリッピング(clipping)、シザリング(scissoring)、ブレンディング(blending)、等のような更なる動作を実行しうる。画素シェーダ46の出力は、フレームバッファ10に記憶され、次に、ディスプレイ8(図2参照)のようなディスプレイ上に表示されうる。
不必要なGPU処理を回避し、タイルベースのレンダリングアーキテクチャの限られたグラフィックスメモリを最も効率的に利用するために、本開示は、テッセレーション段を有するグラフィックスパイプライン(例えば、図3のグラフィックスパイプライン)での可視性ストリームの利用を提案する。可視性ストリームは、すべてのプリミティブについて、それがレンダリングされたタイルに寄与するか否かを説明する一連のビット(0/1)である。即ち、可視性ストリームは、レンダリングパイプラインの異なる段に、現在レンダリングされているフレームにおいてこのプリミティブが可視であるか否かを示す。可視性ストリームは、タイルをレンダリングする前に実行される「ビニング」パスにおいて各フレームの初めに生成される。1つ以上の可視性ストリームが、フレーム内のタイルごとに生成される。レンダリングされたタイルに寄与しない不適切なプリミティブ(即ち、これらは見えないであろう)を抜粋するために、タイルレンダリングの間、そのタイルについての対応可視性ストリームが、使用される。
本開示は、テッセレータ入力(即ちパッチ)と出力(即ち、三角形、四角形、又は等値線)プリミティブの両方を、タイルごとに1つ以上の可視性ストリームへと符号化する可視性ストリームの生成を提案する。入力プリミティブ及び出力プリミティブについて可視性情報を利用することで、そのようなテッセレーションアルゴリズムは、現在レンダリングされているタイルに寄与しない完全な入力パッチを(例えば、入力プリミティブ可視性ストリームを用いて)抜粋し、また、現在レンダリングされているタイルに寄与しないテッセレータ段の出力プリミティブを(例えば、出力プリミティブ可視性ストリームを用いて)抜粋する。これらの可視性ストリームをテッセレータ段の入力と出力の両方で用いることで、レンダリングパイプラインの後の段(例えば、ドメインシェーダ40)における不適切な又は重複した呼出(invocation)の数の減少が達成されうる。本質的に、これら可視性ストリームにより、入力可視性ストリーム及び出力可視性ストリームによって可視ではないと示された入力プリミティブ又は出力プリミティブについて、レンダリングパイプラインの1つ以上の段を省略することができる。加えて、不適切な出力プリミティブ、即ち可視ではない出力プリミティブの処理が回避されうるため、テッセレータハードウェアが1つの入力パッチをテッセレートするのに消費する必要のあるクロックサイクルの数の減少が達成される。
本開示の一態様において、レンダリングの前にビニングパスにおいて2つの可視性ストリームがタイルごとに生成される。1つは、テッセレーション入力プリミティブ(パッチ)についてのものであり、1つは、テッセレーション出力プリミティブ(三角形)についてのものである。本開示の別の態様において、入力可視性ストリーム及び出力可視性ストリームは、単一の可視性ストリームへと融合されうるか、又は、ジオメトリシェーダに合わせて使用される。
図4は、入力可視性ストリーム及び出力可視性ストリームを生成する例示的なビニングパイプラインを示すブロック図である。ビニングパイプラインは、図2のGPU 6によって実行されうる。可視性ストリームを生成するために、ビニングパイプライン60は、フレーム全体についての入力プリミティブを処理するビニングパスを実行する。ビニングパイプラインは、図3に示された完全なレンダリングパイプラインの簡略版である。テッセレーション段(即ち、HS/TS/DS)及びオプションのジオメトリシェーダを含むグラフィックスパイプラインの場合、ビニングパイプライン60は、ビニング頂点シェーダ62、ビニングハルシェーダ64、ビニングテッセレータ66、ビニングドメインシェーダ68、オプションのビニングジオメトリシェーダ70、ビニングラスタライザ72、及びビニング深度テスト74を含みうる。
ビニング頂点シェーダ62はまた、ビニングシェーダとも呼ばれうる。ビニングシェーダは、唯一の出力が頂点位置である、頂点シェーダの修正版でありうる。典型的に頂点シェーダによって実行されるすべてのパラメータエクスポートは、ビニングシェーダだけでなく、それらに関連したあらゆる算出から取り除かれうる。
ビニング頂点シェーダ62によって出力された頂点から、ビニングハルシェーダ64、ビニングテッセレータ68、及びビニングドメインシェーダは、図3のテッセレーションパイプラインと同じ方法でテッセレートされた出力プリミティブを生成する。ビニングハルシェーダ64及びビニングテッセレータ68は、図3のテッセレーションパイプラインにおける対応段に関して、最適化されうる。特に、ビニングハルシェーダ64及びビニングテッセレータ68は、位置関連変数だけを計算するように最適化されうる。
完全なレンダリングパイプラインに対してジオメトリシェーダがイネーブルにされる場合、ビニングパイプライン60もまた、ビニングテッセレータによって生成されたテッセレート済みの出力プリミティブから追加の出力プリミティブを生成するビニングジオメトリシェーダ70を含みうる。
ビニングラスタライザ72は、2D空間での出力プリミティブの低解像度表現(即ち画素)を生成する。各画素は、最終画像における画素エリア(例えば、4×4の画素エリア)を表す。生成された低解像度画素は、部分的にカバーされたもの又は完全にカバーされたものという2つの値を有しうる。ビニングラスタライザ72は、通常のラスタライズ段と同じ抜粋ルール(フェイスネス(faceness)、錐台、等)を用い、それによって、シーンに対して実際に可視であるこれらの三角形だけを生成する。
ビニングパスの最終段は、ビニング深度テストユニット74(低解像度Zテストとも呼ばれる)である。ビニング深度テストユニット74は、出力プリミティブからラスタライズされた画素が最後のシーンで可視であるか否かを決定する。ビニング深度テストユニット74は、画素が三角形によって完全にカバーされる状況でのみ、低解像度バッファ18(図2参照、低解像度zバッファとも呼ばれる)に書き込む。部分的にカバーされた画素は、低解像度バッファに書き込まれない。ビニングパスの最後に、低解像度バッファ18は、外部のメモリへと書き込まれることができ、レンダリングパスの間に使用するためのZバッファを初期化するために後に使用されうる。これは、レンダリング(例えば、図3の画素シェーダ46における)の間の、改善された深度テストを提供する。GPU 6の内蔵グラフィックスメモリは、ビニングパスの間、低解像度バッファとしても使用されうる。レンダリングパスが4×4の画素ブロックで行われるため、グラフィックスメモリ内のZバッファもまた、この解像度でありうる。更に、グラフィックスメモリ内の色の付いていないバッファが必要とされうる。これは、低解像度バッファ18が、フル解像度に比べて、非常に大きいオンスクリーンエリアをカバーできることを意味する。
特定のタイルについてのビニング深度テストを通過したプリミティブ(即ち、このプリミティブをラスタライズすることによって生成された画素は、そのタイルで可視である)は、可視性ストリームにおいて可視であると印付けされる。特定のタイルについての低解像度Zテストを通過しなかったプリミティブ(即ち、このプリミティブをラスタライズすることによって生成された画素は、そのタイルで可視ではない)は、可視性ストリームにおいて可視ではないと印付けされる。大半の三角形からラスタライズされた殆どの画素が、任意の所与のタイルについて可視ではないため、各タイルについての可視性ストリームは、それぞれのプリミティブが可視ではないことを示す多数の0から構成されうる。このように、可視性ストリームは、ランレングス圧縮アルゴリズム(run length compression algorithm)を使用して圧縮されうる。
出力可視性ストリーム82は、出力プリミティブ(例えば、三角形)の可視性を符号化する。出力可視性ストリームは、対応するタイルにおいて出力プリミティブが可視であるか否かを示す1ビットを出力プリミティブごとに含む。(例えば、1は可視であることを示し、0は可視でないことを示す、また逆も同様である。)入力可視性ストリーム80は、入力プリミティブ(例えば、DX11におけるパッチ)の可視性を符号化する。パッチは、パッチから形成された少なくとも1つの出力プリミティブが、ビニング深度テストユニット74によって可視であると決定されると、可視であるとみなされる。パッチから形成された出力プリミティブが何れも可視でない場合、そのパッチ全体が、入力可視性ストリームにおいて可視ではないと示されうる。このケースでは、入力可視性ストリーム内の対応ビットは、ゼロに設定されうる。代替的に、パッチから形成された少なくとも1つの出力プリミティブが可視である場合、そのパッチ全体が、例えば、対応ビットを1に設定することで、入力可視性ストリームにおいて可視であると示されうる。
図5は、例示的な入力可視性ストリーム及び例示的な出力可視性ストリームを示す概念図である。入力可視性ストリーム80は、パッチごとに、1及び0からなる文字列を含み、ここで、あるビットは、パッチの少なくとも一部が最終シーンにおいて可視であることを示し(例えば、パッチ3のビット1)、別のビットは、パッチ全体が最終シーンにおいて可視ではないことを示す(例えばパッチ0のビット0)。出力可視性ストリーム82は、三角形ごとに、1及び0から成る文字列を含み、ここで、あるビットは、三角形が最終シーンにおいて可視である画素に寄与することを示し(例えば、三角形0のビット1)、別のビットは、三角形が最終シーンにおいて可視である画素に寄与しないことを示す(例えば、三角形2のビット0)。図5に示されるように、出力可視性ストリームは、パッチ単位で作り出されうる。即ち、各タイルのパッチごとに1つの出力可視性ストリームが存在する。別の例において、各タイルは、入力プリミティブから形成されたすべての出力プリミティブを互いに連結させる1つの出力可視性ストリームを有しうる。
図3に戻り、出力可視性ストリーム及び入力可視性ストリームは、メモリ(例えば、タイルメモリ20)に記憶され、リソース50を通してレンダリングパイプライン段に利用可能にされうる。1つ以上のレンダリング段は、入力プリミティブ又は出力プリミティブをレンダリングする際に、それぞれ入力可視性ストリーム及び出力可視性ストリームによって示される可視性に基づいて省略されうる。
一例として、出力可視性ストリームを利用して、テッセレータ38は、多数の出力三角形を、それらが可視ではない場合又は現在レンダリングされているタイルに位置づけられていない場合に省略することができる。同様に、パッチが可視であることを入力可視性ストリームが示す場合、レンダリングパスの間、現在のタイルについて、そのパッチは処理され、示さない場合は、そのパッチは、抜粋される(即ち、レンダリングがそのパッチについて省略される)。
具体的に、可視ではない入力についてレンダリングを省略することは、入力プリミティブが可視ではないと入力可視性ストリームが示す場合に、入力プリミティブ全体のテッセレーションを回避することを含みうる。このように、その入力プリミティブについての出力プリミティブは作り出されず、よって、パイプラインの更なる段による処理に利用可能ではない。同様に、可視ではない出力プリミティブについてレンダリングを省略することは、可視ではない出力プリミティブを生成するであろうパッチの特定の部分についてテッセレーションを省略することを含みうる。使用される省略プロセスは、テッセレーションハードウェア依存でありうる。一例が、図6及び7に関連して以下に説明される。図6及び7は、入力プリミティブをテッセレートするための例示的な技法を示す概念図である。
入力パッチテッセレーションは典型的に、入力三角形の中により小さい三角形を追加すること、及び、両方の三角形の1つのエッジ(即ち、同じ方向に向けられたより大きい三角形の1つのエッジとより小さい三角形の1つのエッジ)をペアワイズに考えることで、2つの三角形の間のエリアをテッセレートすることを含む。図6に示されるように、テッセレーションは、エッジペア83aと83bとの間、エッジペア84aと84bとの間、及びエッジペア85aと85bとの間で行われうる。テッセレーションが3つのエッジペアについて完了した後、新しいより小さい入力三角形が、以前のより小さい三角形の内側に挿入される(図7参照)。図7に示されるように、エッジ83b、84b、及び85bは、次に、それぞれ、エッジ83c、84c、及び85cとペアリングされている。このプロセスは、入力三角形が完全にテッセレートされるまで続く。テッセレーションの量(即ち、テッセレーションレベル)は、ハルシェーダ36(図3参照)によって生成されるテッセレーションファクタによって定義される。
上の例示的なテッセレーションプロシージャから留意されうるように、テッセレーションプロセスは、一回に1つのエッジペアずつ進む。出力可視性ストリームからの三角形可視性情報を使用することによって、高められたテッセレータ実現は、現在テッセレートされているエリアの出力三角形の何れもが、現在レンダリングされているタイルにおいて可視とはならない場合、エッジペア全体の処理を省略することができる。例えば、エッジペア85bと85cとの間のエリアは、出力可視性ストリームにより可視ではないと示される出力プリミティブを含みうる。このように、テッセレーションは、このエッジペアについて省略され、図7に示されるように、何れの出力三角形も作り出されない可能性がある。1つの三角形ペアについて、セットアップ段の後に、ハルシェーダから受信されたテッセレーションファクタに基づき、いくつの三角形が、2つの三角形の間のエリアで生成されることとなるかが知られているため(複数のエッジペアは、並列とみなされるか、又は一体としてみなされうる可能性がある)、単一のテストで幾つかのエッジペアを省略することも可能である。
本開示の別の例において、入力プリミティブについて1つの可視性ストリームを、出力プリミティブについての別個の可視性ストリームを作り出すというよりはむしろ、単一の可視性ストリームが作り出される。そのようなケースにおいて、単一の可視性ストリームは、最大テッセレーション出力のために、符号化されるだろう。即ち、可視性ストリームの長さは、特定のレンダリングパイプラインについて定義されたような、可能な最大テッセレーションファクタ及びパッチサイズを前提として、テッセレートされたプリミティブの最大量によって定義されるだろう。例えば、最大テッセレーション出力は、DirectX11 APIによって定義されうる。単一の可視性ストリームは、各タイルについてパッチごとに出力プリミティブの可視性を示すだろう。1つのパッチについての単一の可視性ストリーム内の1つの出力プリミティブが可視である場合、このパッチもまた可視である。各パッチについての可視性ストリームは、長さNを有するだろう。ここで、Nは、最大テッセレーション出力(即ち、可能な出力三角形の最大数)に対応する。
図8は、単一の可視性ストリームを生成する例示的なビニングパイプラインを示すブロック図である。ビニングパイプライン90は、図4のビニングパイプライン60と同様の方式で動作するだろう。しかしながら、2つの可視性ストリームを作り出す代わりに、ビニングパイプライン90は、単一の可視性ストリーム104を作り出す。デフォルト設定で、パッチ全体についての可視性ストリーム104内の各ビットは、0で符号化されるだろう(即ち、テッセレータの出力三角形は、何れも可視ではないと想定される)。ビニング深度テストユニット74によって、任意のテッセレータ出力三角形が、現在レンダリングされているタイルにおいて可視であるとわかると、可視性ストリームの対応ビットは、1に設定される。タイルがレンダリングされる際、可視性ストリームは、単一の可視性ストリームの単一のパッチエリア内の可視性ビットの何れかが1であるか否かを決定するために、簡単にチェックされうる。パッチ内のすべての値が0である場合、これは、例えば、1つのクロックサイクルで、決定されうる。パッチについてのすべての可視性ビットが0である場合、頂点シェーダ及びテッセレーションパイプラインは両方とも、このパッチについて省略されうる。可視性ストリーム内の可視性ビットの何れかが1である場合、このパッチは通常どおり処理される。しかしながら、現在、テッセレータは、可視性ストリームによって可視ではない(0)と定義された特定の出力プリミティブのテッセレーションを省略するように構成されうる。このように、可視ではないパッチと三角形を両方とも省略することで、頂点シェーダ、テッセレーションパイプラインだけでなくラスタライザについて不必要な処理が回避される。
図9は、例示的な単一の可視性ストリームを示す概念図である。可視性ストリーム104は、長さNであり、ここで、Nは、レンダリングパイプラインによって定義されたような、パッチごとの出力プリミティブの最大数を定義する。
図8に戻り、本開示の別の例では、ジオメトリシェーダがイネーブルである場合、単一の可視性ストリームも使用されうる。上述されたように、ジオメトリシェーダは、テッセレーションパイプラインによって出力されたプリミティブから、更に多くのプリミティブを生成しうる。単一のジオメトリシェーダの起動が生成することができるデータの最大量は、DX11 APIに準拠して4kに制限される。上述された最大テッセレーション出力に基づいて、入力可視性ストリームと出力可視性ストリームとを互いに融合させることに類似して、ジオメトリシェーダがイネーブルである場合の単一の出力可視性ストリームは、ジオメトリシェーダが生成したプリミティブの最大数を乗じた、テッセレート済みのプリミティブの最大値を符号化するだろう。即ち、テッセレーション出力プリミティブの最大数がNであり、ジオメトリシェーダからの出力プリミティブの最大数がMである場合、ジオメトリシェーダがイネーブルな場合の可視性ストリームの長さは、N×Mであろう。この例において、ビニングジオメトリシェーダ70は、ジオメトリシェーダによって生成されたプリミティブが最終シーンで可視であるか否かをビニング深度テストユニット74が決定できるようにイネーブルにされるだろう。
この場合も同様に、この単一の可視性ストリームについてのデフォルト値は、0である。任意のジオメトリシェーダ出力三角形が、ビニング深度テストユニット74によって、ビニングパスの間に、現在レンダリングされているタイルにおいて可視であると決定されると、その対応可視性ビットは、1に設定されるだろう。タイルがレンダリングされる際、可視性ストリームがチェックされ、単一の可視性ストリームにおける単一のパッチエリア内の可視性ビットの何れかが1に設定されたか否かが決定される。パッチ内のすべての値が0である場合、これは、1つのクロックサイクルで決定されうる。これに応じて、テッセレータ38(図3参照)は、任意のジオメトリシェーダ出力プリミティブが可視であった場合に、すべてのジオメトリシェーダ出力可視性ビットレンジ(レンジサイズは、ジオメトリシェーダ出力プリミティブの最大数である)をチェックして、ドメインシェーダ40又はジオメトリシェーダ42による処理のために現在テッセレートされている三角形が生成され送られる必要があるか否かを決定しうる。
図9に戻り、単一の可視性ストリーム104’は、テッセレーション段だけでなく、イネーブルなジオメトリシェーダも有するグラフィックスパイプラインに使用される。単一の可視性ストリーム104’は、長さがN×Mであり、Nは、レンダリングパイプラインによって定義されたようなパッチごとの出力プリミティブの最大数を定義し、Mは、ジオメトリシェーダによって生成されうる出力プリミティブの最大数を定義する。
図10は、タイルベースのレンダリングパイプラインにおいてテッセレーションを実行するための例示的な方法を示すフローチャートである。一例として、方法は、図2のGPU 6によって実行されうる。GPU 6は、フレームのタイルごとに入力可視性ストリームを生成し(110)、フレームのタイルごとに出力可視性ストリームを生成する(112)ように構成されうる。入力可視性ストリームは、レンダリングされる際に各タイルにおいて入力プリミティブが可視であるか否かを示す。出力可視性ストリームは、レンダリングされる際に各タイルにおいて出力プリミティブが可視であるか否かを示す。出力プリミティブは、入力プリミティブをテッセレートすることで生成される。
GPU 6は更に、フレームの現在のタイルをレンダリングするように構成され、ここで、レンダリングすることは、入力可視性ストリーム及び出力可視性ストリームにそれぞれ基づいて、入力プリミティブ及び出力プリミティブについて省略される(114)。特に、出力プリミティブについてのレンダリングを省略することは、出力可視性ストリームによって、現在のフレームにおいて可視ではないと示された出力プリミティブについてのテッセレーションを省略することを含みうる。
入力可視性ストリームを生成し(110)、出力可視性ストリームを生成する(112)ステップは、ビニングパスにおいてまとめて実行されうる(116)。図11は、タイルベースのレンダリングパイプラインにおけるビニングパスの例示的な方法を示すフローチャートである。GPU 6はまた、ビニングパス116を実行するように構成されうる。GPU 6は更に、入力プリミティブを頂点シェーディングし(118)、複数の出力プリミティブを生成するために頂点シェーディングされた入力プリミティブをテッセレートし(120)、複数の出力プリミティブをラスタライズし(122)、出力プリミティブがフレームのタイルについて可視であるか否かを決定するために、ラスタライズされた出力プリミティブに対して深度テストを実行する(124)ように構成されうる。
GPU 6は、深度テストに基づいて入力プリミティブがタイルにおいて可視であるか否かを示す、入力可視性ストリーム内のインジケーションを生成し、ここにおいて、入力プリミティブは、その入力プリミティブをテッセレートすることで生成された出力プリミティブの何れかが可視であると決定された場合に、可視であると決定される(126)。同様に、GPU 6は、深度テストに基づいて出力プリミティブがタイルにおいて可視であるか否かを示す、出力可視性ストリーム内のインジケーションを生成する(128)。
図12は、タイルベースのレンダリングパイプラインにおいてテッセレーションを実行するための別の例示的な方法を示すフローチャートである。この例において、単一の可視性ストリームは、入力プリミティブから形成されうる出力プリミティブの可視性を示す入力プリミティブごとに生成される。GPU 6は、入力プリミティブを頂点シェーディングし(140)、複数の出力プリミティブを生成するために、頂点シェーディングされた入力プリミティブをテッセレートし(142)、複数の出力プリミティブをラスタライズし(144)、出力プリミティブがフレームのタイルについて可視であるか否かを決定するために、ラスタライズされた出力プリミティブに対して深度テストを実行する(146)ように構成されうる。
GPU 6は更に、深度テストに基づいて出力プリミティブがタイルにおいて可視であるか否かを示す、可視性ストリーム内のインジケーションを生成する(148)ように構成されうる。可視性ストリームは、Nビットの長さを有し、各ビットは、レンダリングされる際に各タイルにおいて出力プリミティブが可視であるか否かを示す。長さNは、レンダリングパイプラインによって定義されるように、入力プリミティブに対する出力プリミティブの最大数によって決定される。GPU 6はまた、フレームの現在のタイルをレンダリングするように構成され、ここで、レンダリングすることは、可視性ストリーム内のすべてのビットが可視ではない出力プリミティブを示すケースにでは入力プリミティブについて省略され、レンダリングするとは、可視性ストリームによって現在のフレームにおいて可視ではないと示された出力プリミティブについて省略される(150)。
図13は、タイルベースのレンダリングパイプラインにおけるビニングパスの別の例示的な方法を示すフローチャートである。図13に示されるプロセスは、ジオメトリステップ(152)が追加されていることを除き、図12に示されたものと同じである。GPU 6がイネーブルなジオメトリシェーダを有するケースにおいて、追加の出力プリミティブを生成するために、複数の出力プリミティブのジオメトリシェーディングを実行する追加のステップ(152)が、テッセレーションステップ(142)とラスタライゼーションステップ(144)との間で実行される。この例において、可視性ストリームは、増大された長さのN×Mビットを有するであろう。ここで、Mは、ジオメトリシェーダによって生成された出力プリミティブの最大数である。
1つ以上の例において、上述された機能は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組み合わせで実現されうる。ソフトウェアで実現された場合、これら機能は、1つ以上の命令又はコードとして、非一時的なコンピュータ読取可能な媒体を備える製品(article of manufacture)に記憶されうる。コンピュータ読取可能な媒体は、コンピュータデータ記憶媒体を含みうる。データ記憶媒体は、本開示で説明された技法を実現するための命令、コード、及び/又はデータ構造を検索するために、1つ以上のコンピュータ又は1つ以上のプロセッサによってアクセスされることができる任意の利用可能な媒体でありうる。限定ではなく例として、このようなコンピュータ読取可能な媒体は、RAM、ROM、EEPROM、CD−ROM又は他の光ディスク記憶装置、磁気ディスク記憶装置又は他の磁気記憶デバイス、フラッシュメモリ、或いはデータ構造又は命令の形式で所望のプログラムコードを記憶又は搬送するために使用可能であり、かつコンピュータによってアクセスされることができる任意の他の媒体を備えうる。本明細書で使用される場合、ディスク(disk)及びディスク(disc)は、コンパクトディスク(CD)、レーザーディスク(登録商標)、光ディスク、デジタル多用途ディスク(DVD)、フロッピー(登録商標)ディスク、及びブルーレイ(登録商標)ディスクを含み、ここでディスク(disk)は、通常磁気的にデータを再生し、ディスク(disc)は、レーザーを用いて光学的にデータを再生する。上記の組み合わせもまた、コンピュータ読取可能な媒体の範囲内に含まれるべきである。
コードは、1つ以上のDSP、汎用マイクロプロセッサ、ASIC、FPGA、又は、他の同等な集積又はディスクリートな論理回路のような1つ以上のプロセッサによって実行されうる。加えて、幾つかの態様では、本明細書で説明された機能性は、専用のハードウェアモジュール及び/又はソフトウェアモジュール内で提供されうる。また、本技法は、1つ以上の回路又は論理エレメントで十分に実現されることができる。
本開示の技法は、ワイヤレスハンドセット、集積回路(IC)、又はICのセット(例えば、チップセット)を含む多種多様なデバイス又は装置で実現されうる。様々なコンポーネント、モジュール、又はユニットは、本開示において、開示された技法を実行するように構成されたデバイスの機能的な態様を強調するために説明されているが、それらは、異なるハードウェアユニットによる実現を必ずしも要求するわけではない。むしろ、上述されたように、様々なユニットは、コーデックハードウェアユニットにおいて組み合わせられうるか、上述された1つ以上のプロセッサを適切なソフトウェア及び/又はファームウェアとともに含む、相互動作ハードウェアユニットの集合によって提供されうる。
様々な例が説明されている。これらの例及び他の例は、以下の特許請求の範囲の範囲内にある。
様々な例が説明されている。これらの例及び他の例は、以下の特許請求の範囲の範囲内にある。
以下に本件出願当初の特許請求の範囲に記載された発明を付記する。
[1] グラフィックスプロセッサによる、タイルベースのグラフィックスレンダリングパイプラインにおけるテッセレーションのための方法であって、フレームのタイルごとに入力可視性ストリームを生成することと、ここで、前記入力可視性ストリームは、レンダリングされる際に各タイルにおいて入力プリミティブが可視であるか否かを示す、前記フレームのタイルごとに出力可視性ストリームを生成することと、ここで、前記出力可視性ストリームは、レンダリングされる際に各タイルにおいて出力プリミティブが可視であるか否かを示し、前記出力プリミティブは、前記入力プリミティブをテッセレートすることで生成される、を備える方法。
[2] 前記入力可視性ストリーム及び前記出力可視性ストリームを生成することは、前記入力プリミティブを頂点シェーディングすることと、前記頂点シェーディングされた入力プリミティブをハルシェーディングすることと、複数の出力プリミティブを生成するために、前記ハルシェーディングされた入力プリミティブをテッセレートすることと、前記複数の出力プリミティブをドメインシェーディングすることと、画素を生成するために、前記複数の出力プリミティブをラスタライズすることと、前記画素がフレームのタイルについて可視であるか否かを決定するために、深度テストを実行することと、前記深度テストに基づいて前記入力プリミティブが前記タイルにおいて可視であるか否かを示す、前記入力可視性ストリーム内のインジケーションを生成することとを備え、前記入力プリミティブに関連付けられた前記出力プリミティブをラスタライズすることで生成された前記画素のうちの何れかが可視であると決定された場合に、前記入力プリミティブは、可視であると決定される、[1]に記載の方法。
[3] 前記深度テストに基づいて前記出力プリミティブが前記タイルにおいて可視であるか否かを示す、前記出力可視性ストリーム内のインジケーションを生成することとを更に備え、前記出力プリミティブをラスタライズすることで生成された任意の画素が可視であると決定された場合、前記出力プリミティブは可視であると決定される、[2]に記載の方法。
[4] 前記入力プリミティブはパッチであり、前記出力プリミティブは三角形、四角形、又は等値線である、[1]に記載の方法。
[5] フレームの現在のタイルをレンダリングすることを更に備え、レンダリングすることは、前記入力可視性ストリームによって、前記現在のフレームにおいて可視ではないと示された入力プリミティブについて省略される、[1]に記載の方法。
[6] フレームの現在のタイルをレンダリングすることを更に備え、レンダリングすることは、前記出力可視性ストリームによって、前記現在のフレームにおいて可視ではないと示された出力プリミティブについて省略される、[1]に記載の方法。
[7] 前記出力可視性ストリームによって、前記現在のフレームにおいて可視ではないと示された出力プリミティブについてテッセレーションを省略することを更に備える、[6]に記載の方法。
[8] グラフィックスプロセッサによる、タイルベースのグラフィックスレンダリングパイプラインにおけるテッセレーションのための方法であって、フレームのタイルごとに、各入力プリミティブについての可視性ストリームを生成することを備え、前記可視性ストリームは、Nビットの長さを有し、各ビットは、レンダリングされる際に各タイルにおいて出力プリミティブが可視であるか否かを示し、前記出力プリミティブは、前記入力プリミティブをテッセレートすることによって生成される、方法。
[9] 前記長さNは、レンダリングパイプラインによって定義されるような、入力プリミティブに対する出力プリミティブの最大数によって決定される、[8]に記載の方法。
[10] 可視性ストリームを生成することは、前記入力プリミティブを頂点シェーディングすることと、前記頂点シェーディングされた入力プリミティブをハルシェーディングすることと、複数の出力プリミティブを生成するために、前記ハルシェーディングされた入力プリミティブをテッセレートすることと、前記複数の出力プリミティブをドメインシェーディングすることと、画素を生成するために、前記複数の出力プリミティブをラスタライズすることと、前記画素がフレームのタイルについて可視であるか否かを決定するために、深度テストを実行することと、前記深度テストに基づいて前記出力プリミティブが前記タイルにおいて可視であるか否かを示す、前記可視性ストリーム内のインジケーションを生成することとを備え、前記出力プリミティブは、前記出力プリミティブをラスタライズすることで生成された任意の画素が可視であると決定された場合に、可視であると決定される、[8]に記載の方法。
[11] フレームの現在のタイルをレンダリングすることを更に備え、レンダリングすることは、前記可視性ストリーム内のすべてのビットが可視ではない出力プリミティブを示すケースでは、入力プリミティブについて省略される、[8]に記載の方法。
[12] フレームの現在のタイルをレンダリングすることを更に備え、レンダリングすることは、前記可視性ストリームによって、前記現在のフレームにおいて可視ではないと示された出力プリミティブについて省略される、[8]に記載の方法。
[13] 前記タイルベースのレンダリングアーキテクチャは、イネーブルなジオメトリシェーダを有し、前記可視性ストリームは、N×Mビットの長さを有し、ここで、Mは、前記ジオメトリシェーダによって生成される出力プリミティブの最大数であり、可視性ストリームを生成することは更に、前記出力プリミティブをドメインシェーディングした後に、前記複数の出力プリミティブをジオメトリシェーディングすることを備える、[8]に記載の方法。
[14] タイルベースのグラフィックスレンダリングパイプラインにおいてテッセレーションを実行するように構成された装置であって、ビニングパイプラインを実行するように構成されたグラフィックスプロセッサを備え、前記ビニングパイプラインは、フレームのタイルごとに入力可視性ストリームを生成するように構成され、前記入力可視性ストリームは、レンダリングされる際に各タイルにおいて入力プリミティブが可視であるか否かを示し、前記ビニングパイプラインは更に、前記フレームのタイルごとに出力可視性ストリームを生成するように構成され、前記出力可視性ストリームは、レンダリングされる際に各タイルにおいて出力プリミティブが可視であるか否かを示し、前記出力プリミティブは、前記入力プリミティブをテッセレートすることによって生成される、装置。
[15] 前記ビニングパイプラインは、前記入力プリミティブに対して頂点シェーディングを実行するように構成されたビニング頂点シェーダと、前記頂点シェーディングされた入力プリミティブに対してハルシェーディングを実行するように構成されたビニングハルシェーダと、複数の出力プリミティブを生成するために、前記ハルシェーディングされた入力プリミティブをテッセレートするように構成されたビニングテッセレータ段と、前記複数の出力プリミティブに対してドメインシェーディングを実行するように構成されたビニングドメインシェーダと、画素を生成するために、前記複数の出力プリミティブをラスタライズするように構成されたビニングラスタライザと、前記画素がフレームのタイルについて可視であるか否かを決定するために、前記画素に対して深度テストを実行するように構成されたビニング深度テスト段とを備え、前記ビニングパイプラインは、前記深度テストに基づいて前記入力プリミティブが前記タイルにおいて可視であるか否かを示す、前記入力可視性ストリーム内のインジケーションを生成し、前記入力プリミティブは、前記入力プリミティブに関連付けられた前記出力プリミティブをラスタライズすることで生成された前記画素のうちの何れかが可視であると決定された場合に、可視であると決定され、前記ビニングパイプラインは、前記深度テストに基づいて前記出力プリミティブが前記タイルにおいて可視であるか否かを示す、前記出力可視性ストリーム内のインジケーションを生成し、前記出力プリミティブは、前記出力プリミティブをラスタライズすることで生成された任意の画素が可視であると決定された場合に、可視であると決定される、[14]に記載の装置。
[16] 前記入力プリミティブはパッチであり、前記出力プリミティブは三角形、四角形、等値線である、[14]に記載の装置。
[17] フレームの現在のタイルをレンダリングするように構成されたレンダリングパイプラインを更に備え、レンダリングすることは、前記入力可視性ストリームによって、前記現在のフレームにおいて可視ではないと示された入力プリミティブについて省略され、レンダリングすることは、前記出力可視性ストリームによって、前記現在のフレームにおいて可視ではないと示された出力プリミティブについて省略される、[14]に記載の装置。
[18] 前記レンダリングパイプラインは、レンダリングテッセレータ段を含み、前記レンダリングテッセレータ段は、前記出力可視性ストリームによって、前記現在のフレームにおいて可視ではないと示される出力プリミティブについて省略される、[17]に記載の装置。
[19] タイルベースのレンダリングパイプラインにおいてテッセレーションを実行するように構成された装置であって、ビニングパイプラインを実行するように構成されたグラフィックスプロセッサを備え、前記ビニングパイプラインは、フレームのタイルごとに、各入力プリミティブについて可視性ストリームを生成するように構成され、前記可視性ストリームは、Nビットの長さを有し、各ビットは、レンダリングされる際に各タイルにおいて出力プリミティブが可視であるか否かを示し、前記出力プリミティブは、前記入力プリミティブをテッセレートすることによって生成される、装置。
[20] 前記長さNは、レンダリングパイプラインによって定義されるような、入力プリミティブに対する出力プリミティブの最大数によって決定される、[19]に記載の装置。
[21] 前記ビニングパイプラインは、前記入力プリミティブに対して頂点シェーディングを実行するように構成されたビニング頂点シェーダと、前記頂点シェーディングされた入力プリミティブに対してハルシェーディングを実行するように構成されたビニングハルシェーダと、複数の出力プリミティブを生成するために、前記ハルシェーディングされた入力プリミティブをテッセレートするように構成されたビニングテッセレータ段と、前記複数の出力プリミティブに対してドメインシェーディングを実行するように構成されたビニングドメインシェーダと、画素を生成するために、前記複数の出力プリミティブをラスタライズするように構成されたビニングラスタライザと、前記画素がフレームのタイルについて可視であるか否かを決定するために、前記画素に対して深度テストを実行するように構成されたビニング深度テスト段とを備え、前記ビニングパイプラインは、前記深度テストに基づいて前記出力プリミティブが前記タイルにおいて可視であるか否かを示す、前記可視性ストリーム内のインジケーションを生成し、前記出力プリミティブは、前記出力プリミティブをラスタライズすることで生成された任意の画素が可視であると決定された場合に、可視であると決定される、[19]に記載の装置。
[22] フレームの現在のタイルをレンダリングするように構成されたレンダリングパイプラインを更に備え、レンダリングすることは、前記可視性ストリーム内のすべてのビットが可視ではない出力プリミティブを示すケースでは、入力プリミティブについて省略される、[19]に記載の装置。
[23] レンダリングすることは、前記可視性ストリームによって、前記現在のフレームにおいて可視ではないと示された出力プリミティブについて省略される、[19]に記載の装置。
[24] 前記レンダリングパイプラインは、ジオメトリシェーダを含み、前記可視性ストリームは、N×Mビットの長さを有し、ここで、Mは、前記ジオメトリシェーダによって生成される出力プリミティブの最大数であり、前記ビニングパイプラインは更に、前記ビニングドメインシェーダの後に、前記複数の出力プリミティブに対してジオメトリシェーディングを実行するように構成されたビニングジオメトリシェーダを備える、[19]に記載の装置。
[25] タイルベースのグラフィックスレンダリングパイプラインにおいてテッセレーションを実行するように構成された装置であって、フレームのタイルごとに入力可視性ストリームを生成するための手段と、ここで、前記入力可視性ストリームは、レンダリングされる際に各タイルにおいて入力プリミティブが可視であるか否かを示す、前記フレームのタイルごとに出力可視性ストリームを生成するための手段と、ここで、前記出力可視性ストリームは、レンダリングされる際に各タイルにおいて出力プリミティブが可視であるか否かを示し、前記出力プリミティブは、前記入力プリミティブをテッセレートすることで生成される、を備える装置。
[26] 前記入力可視性ストリーム及び前記出力可視性ストリームを生成するための手段は、前記入力プリミティブを頂点シェーディングするための手段と、前記頂点シェーディングされた入力プリミティブをハルシェーディングするための手段と、複数の出力プリミティブを生成するために、前記ハルシェーディングされた入力プリミティブをテッセレートするための手段と、前記複数の出力プリミティブをドメインシェーディングするための手段と、画素を生成するために、前記複数の出力プリミティブをラスタライズするための手段と、前記画素がフレームのタイルについて可視であるか否かを決定するために、前記画素に対して深度テストを実行するための手段と、前記深度テストに基づいて前記入力プリミティブが前記タイルにおいて可視であるか否かを示す、前記入力可視性ストリーム内のインジケーションを生成するための手段とを備え、前記入力プリミティブは、前記入力プリミティブに関連付けられた前記出力プリミティブをラスタライズすることで生成された前記画素のうちの何れかが可視であると決定された場合に、可視であると決定される、[25]に記載の装置。
[27] 前記深度テストに基づいて前記出力プリミティブが前記タイルにおいて可視であるか否かを示す、出力可視性ストリーム内のインジケーションを生成するための手段とを更に備え、前記出力プリミティブは、前記出力プリミティブをラスタライズすることで生成された任意の画素が可視であると決定された場合に、可視であると決定される、[26]に記載の装置。
[28] 前記入力プリミティブはパッチであり、前記出力プリミティブは三角形、四角形、等値線である、[25]に記載の装置。
[29] フレームの現在のタイルをレンダリングするための手段を更に備え、レンダリングすることは、前記入力可視性ストリームによって、前記現在のフレームにおいて可視ではないと示された入力プリミティブについて省略される、[25]に記載の装置。
[30] フレームの現在のタイルをレンダリングするための手段を更に備え、レンダリングすることは、前記出力可視性ストリームによって、前記現在のフレームにおいて可視ではないと示された出力プリミティブについて省略される、[25]に記載の装置。
[31] 前記出力可視性ストリームによって、前記現在のフレームにおいて可視ではないと示された出力プリミティブについてのテッセレーションを省略するための手段を更に備える、[30]に記載の装置。
[32] タイルベースのレンダリングパイプラインにおいてテッセレーションを実行するように構成された装置であって、フレームのタイルごとに、各入力プリミティブについて可視性ストリームを生成するための手段を備え、前記可視性ストリームは、Nビットの長さを有し、各ビットは、レンダリングされる際に各タイルにおいて出力プリミティブが可視であるか否かを示し、前記出力プリミティブは、前記入力プリミティブをテッセレートすることによって生成される、装置。
[33] 前記長さNは、レンダリングパイプラインによって定義されるような、入力プリミティブに対する出力プリミティブの最大数によって決定される、[32]に記載の装置。
[34] 可視性ストリームを生成するための手段は、前記入力プリミティブを頂点シェーディングするための手段と、前記頂点シェーディングされた入力プリミティブをハルシェーディングするための手段と、複数の出力プリミティブを生成するために、前記ハルシェーディングされた入力プリミティブをテッセレートするための手段と、前記複数の出力プリミティブをドメインシェーディングするための手段と、画素を生成するために、前記複数の出力プリミティブをラスタライズするための手段と、前記画素がフレームのタイルについて可視であるか否かを決定するために、前記画素に対して深度テストを実行するための手段と、前記深度テストに基づいて前記タイルにおいて前記出力プリミティブが可視であるか否かを示す、前記可視性ストリーム内のインジケーションを生成するための手段とを備え、前記出力プリミティブは、前記出力プリミティブをラスタライズすることで生成された任意の画素が可視であると決定された場合に、可視であると決定される、[32]に記載の装置。
[35] フレームの現在のタイルをレンダリングするための手段を更に備え、レンダリングすることは、前記可視性ストリーム内のすべてのビットが可視ではない出力プリミティブを示すケースでは、入力プリミティブについて省略される、[32]に記載の装置。
[36] フレームの現在のタイルをレンダリングするための手段を更に備え、レンダリングすることは、前記入力可視性ストリームによって、前記現在のフレームにおいて可視ではないと示された出力プリミティブについて省略される、[32]に記載の装置。
[37] 前記タイルベースのレンダリングアーキテクチャは、イネーブルなジオメトリシェーダを有し、前記可視性ストリームは、N×Mビットの長さを有し、ここで、Mは、前記ジオメトリシェーダによって生成される出力プリミティブの最大数であり、可視性ストリームを生成するための手段は更に、前記出力プリミティブをドメインシェーディングするための手段の後に、前記複数の出力プリミティブをジオメトリシェーディングするための手段を備える、[32]に記載の装置。
[38] コンピュータ読取可能な記憶媒体を備えるコンピュータプログラム製品であって、前記コンピュータ読取可能な媒体は命令を備え、前記命令は、実行されると、タイルベースのグラフィックスレンダリングパイプラインにおいてテッセレーションを実行するためのデバイスのプロセッサに対して、フレームのタイルごとに入力可視性ストリームを生成させるように構成される、ここで、前記入力可視性ストリームは、レンダリングされる際に各タイルにおいて入力プリミティブが可視であるか否かを示し、前記ビニングパイプラインは更に、フレームのタイルごとに出力可視性ストリームを生成するように構成され、前記出力可視性ストリームは、レンダリングされる際に各タイルにおいて出力プリミティブが可視であるか否かを示し、前記出力プリミティブは、前記入力プリミティブをテッセレートすることによって生成される、コンピュータプログラム製品。
[39] プロセッサに更に、前記入力プリミティブに対して頂点シェーディングを実行させ、前記頂点シェーディングされた入力プリミティブに対してハルシェーディングを実行させ、複数の出力プリミティブを生成するために、前記ハルシェーディングされた入力プリミティブをテッセレートさせ、前記複数の出力プリミティブに対してドメインシェーディングを実行させ、画素を生成するために、前記複数の出力プリミティブをラスタライズさせ、前記画素がフレームのタイルについて可視であるか否かを決定するために、前記画素に対して深度テストを実行させる、ここにおいて、前記プロセッサは、前記深度テストに基づいて前記入力プリミティブが前記タイルにおいて可視であるか否かを示す、前記入力可視性ストリーム内のインジケーションを生成し、前記入力プリミティブは、前記入力プリミティブに関連付けられた前記出力プリミティブをラスタライズすることで生成された前記画素のうちの何れかが可視であると決定された場合に、可視であると決定され、前記プロセッサは、前記深度テストに基づいて前記出力プリミティブが前記タイルにおいて可視であるか否かを示す、前記出力可視性ストリーム内のインジケーションを生成し、前記出力プリミティブは、前記出力プリミティブをラスタライズすることで生成された任意の画素が可視であると決定された場合に、可視であると決定される、[38]に記載のコンピュータプログラム製品。
[40] 前記入力プリミティブはパッチであり、前記出力プリミティブは三角形、四角形、等値線である、[38]に記載のコンピュータプログラム製品。
[41] プロセッサに更に、フレームの現在のタイルをレンダリングさせる、ここで、レンダリングすることは、前記入力可視性ストリームによって、前記現在のフレームにおいて可視ではないと示された入力プリミティブについて省略され、レンダリングすることは、前記出力可視性ストリームによって、前記現在のフレームにおいて可視ではないと示された出力プリミティブについて省略される、[38]に記載のコンピュータプログラム製品。
[42] 前記命令は更に、前記プロセッサに、レンダリングテッセレータ段を含むレンダリングパイプラインを実行させ、前記レンダリングテッセレータ段は、前記出力可視性ストリームによって、前記現在のフレームにおいて可視ではないと示される出力プリミティブについて省略される、[41]に記載のコンピュータプログラム製品。
[43] コンピュータ読取可能な記憶媒体を備えるコンピュータプログラム製品であって、前記コンピュータ読取可能な媒体は命令を備え、前記命令は、実行されると、タイルベースのグラフィックスレンダリングパイプラインにおいてテッセレーションを実行するためのデバイスのプロセッサに対して、フレームのタイルごとに、各入力プリミティブについて可視性ストリームを生成させる、ここで、前記可視性ストリームは、Nビットの長さを有し、各ビットは、レンダリングされる際に各タイルにおいて出力プリミティブが可視であるか否かを示し、前記出力プリミティブは、前記入力プリミティブをテッセレートすることによって生成される、コンピュータプログラム製品。
[44] 前記長さNは、レンダリングパイプラインによって定義されるような、入力プリミティブに対する出力プリミティブの最大数によって決定される、[43]に記載のコンピュータプログラム製品。
[45] プロセッサに更に、前記入力プリミティブに対して頂点シェーディングを実行させ、前記頂点シェーディングされた入力プリミティブに対してハルシェーディングを実行させ、複数の出力プリミティブを生成するために、前記ハルシェーディングされた入力プリミティブをテッセレートさせ、前記複数の出力プリミティブに対してドメインシェーディングを実行させ、画素を生成するために、前記複数の出力プリミティブをラスタライズさせ、前記画素がフレームのタイルについて可視であるか否かを決定するために、前記画素に対して深度テストを実行させ、前記プロセッサは、前記深度テストに基づいて前記出力プリミティブが前記タイルにおいて可視であるか否かを示す、前記可視性ストリーム内のインジケーションを生成し、前記出力プリミティブは、前記出力プリミティブをラスタライズすることで生成された任意の画素が可視であると決定された場合に、可視であると決定される、[43]に記載のコンピュータプログラム製品。
[46] プロセッサに更に、フレームの現在のタイルをレンダリングさせる、ここにおいて、レンダリングすることは、前記可視性ストリーム内のすべてのビットが可視ではない出力プリミティブを示すケースでは、入力プリミティブについて省略される、[43]に記載のコンピュータプログラム製品。
[47] レンダリングすることは、前記可視性ストリームによって、前記現在のフレームにおいて可視ではないと示された出力プリミティブについて省略される、[43]に記載のコンピュータプログラム製品。
[48] 前記命令は更に、前記プロセッサに、ジオメトリシェーダを含むレンダリングパイプラインを実行させ、前記可視性ストリームは、N×Mビットの長さを有し、ここで、Mは、前記ジオメトリシェーダによって生成される出力プリミティブの最大数であり、前記命令は更に、前記プロセッサに、ドメインシェーディングを実行した後に、前記複数の出力プリミティブに対してジオメトリシェーディングを実行させる、[43]に記載のコンピュータプログラム製品。

Claims (48)

  1. グラフィックスプロセッサによる、タイルベースのグラフィックスレンダリングパイプラインにおけるテッセレーションのための方法であって、
    フレームのタイルごとに入力可視性ストリームを生成することと、ここで、前記入力可視性ストリームは、レンダリングされる際に各タイルにおいて入力プリミティブが可視であるか否かを示す、
    前記フレームのタイルごとに出力可視性ストリームを生成することと、ここで、前記出力可視性ストリームは、レンダリングされる際に各タイルにおいて出力プリミティブが可視であるか否かを示し、前記出力プリミティブは、前記入力プリミティブをテッセレートすることで生成される、
    を備える方法。
  2. 前記入力可視性ストリーム及び前記出力可視性ストリームを生成することは、
    前記入力プリミティブを頂点シェーディングすることと、
    前記頂点シェーディングされた入力プリミティブをハルシェーディングすることと、
    複数の出力プリミティブを生成するために、前記ハルシェーディングされた入力プリミティブをテッセレートすることと、
    前記複数の出力プリミティブをドメインシェーディングすることと、
    画素を生成するために、前記複数の出力プリミティブをラスタライズすることと、
    前記画素がフレームのタイルについて可視であるか否かを決定するために、深度テストを実行することと、
    前記深度テストに基づいて前記入力プリミティブが前記タイルにおいて可視であるか否かを示す、前記入力可視性ストリーム内のインジケーションを生成することと
    を備え、
    前記入力プリミティブに関連付けられた前記出力プリミティブをラスタライズすることで生成された前記画素のうちの何れかが可視であると決定された場合に、前記入力プリミティブは、可視であると決定される、請求項1に記載の方法。
  3. 前記深度テストに基づいて前記出力プリミティブが前記タイルにおいて可視であるか否かを示す、前記出力可視性ストリーム内のインジケーションを生成することと
    を更に備え、
    前記出力プリミティブをラスタライズすることで生成された任意の画素が可視であると決定された場合、前記出力プリミティブは可視であると決定される、請求項2に記載の方法。
  4. 前記入力プリミティブはパッチであり、前記出力プリミティブは三角形、四角形、又は等値線である、請求項1に記載の方法。
  5. フレームの現在のタイルをレンダリングすることを更に備え、レンダリングすることは、前記入力可視性ストリームによって、前記現在のフレームにおいて可視ではないと示された入力プリミティブについて省略される、請求項1に記載の方法。
  6. フレームの現在のタイルをレンダリングすることを更に備え、レンダリングすることは、前記出力可視性ストリームによって、前記現在のフレームにおいて可視ではないと示された出力プリミティブについて省略される、請求項1に記載の方法。
  7. 前記出力可視性ストリームによって、前記現在のフレームにおいて可視ではないと示された出力プリミティブについてテッセレーションを省略することを更に備える、請求項6に記載の方法。
  8. グラフィックスプロセッサによる、タイルベースのグラフィックスレンダリングパイプラインにおけるテッセレーションのための方法であって、
    フレームのタイルごとに、各入力プリミティブについての可視性ストリームを生成することを備え、前記可視性ストリームは、Nビットの長さを有し、各ビットは、レンダリングされる際に各タイルにおいて出力プリミティブが可視であるか否かを示し、前記出力プリミティブは、前記入力プリミティブをテッセレートすることによって生成される、方法。
  9. 前記長さNは、レンダリングパイプラインによって定義されるような、入力プリミティブに対する出力プリミティブの最大数によって決定される、請求項8に記載の方法。
  10. 可視性ストリームを生成することは、
    前記入力プリミティブを頂点シェーディングすることと、
    前記頂点シェーディングされた入力プリミティブをハルシェーディングすることと、
    複数の出力プリミティブを生成するために、前記ハルシェーディングされた入力プリミティブをテッセレートすることと、
    前記複数の出力プリミティブをドメインシェーディングすることと、
    画素を生成するために、前記複数の出力プリミティブをラスタライズすることと、
    前記画素がフレームのタイルについて可視であるか否かを決定するために、深度テストを実行することと、
    前記深度テストに基づいて前記出力プリミティブが前記タイルにおいて可視であるか否かを示す、前記可視性ストリーム内のインジケーションを生成することと
    を備え、
    前記出力プリミティブは、前記出力プリミティブをラスタライズすることで生成された任意の画素が可視であると決定された場合に、可視であると決定される、請求項8に記載の方法。
  11. フレームの現在のタイルをレンダリングすることを更に備え、レンダリングすることは、前記可視性ストリーム内のすべてのビットが可視ではない出力プリミティブを示すケースでは、入力プリミティブについて省略される、請求項8に記載の方法。
  12. フレームの現在のタイルをレンダリングすることを更に備え、レンダリングすることは、前記可視性ストリームによって、前記現在のフレームにおいて可視ではないと示された出力プリミティブについて省略される、請求項8に記載の方法。
  13. 前記タイルベースのレンダリングアーキテクチャは、イネーブルなジオメトリシェーダを有し、前記可視性ストリームは、N×Mビットの長さを有し、ここで、Mは、前記ジオメトリシェーダによって生成される出力プリミティブの最大数であり、可視性ストリームを生成することは更に、前記出力プリミティブをドメインシェーディングした後に、前記複数の出力プリミティブをジオメトリシェーディングすることを備える、請求項8に記載の方法。
  14. タイルベースのグラフィックスレンダリングパイプラインにおいてテッセレーションを実行するように構成された装置であって、
    ビニングパイプラインを実行するように構成されたグラフィックスプロセッサを備え、前記ビニングパイプラインは、フレームのタイルごとに入力可視性ストリームを生成するように構成され、前記入力可視性ストリームは、レンダリングされる際に各タイルにおいて入力プリミティブが可視であるか否かを示し、前記ビニングパイプラインは更に、前記フレームのタイルごとに出力可視性ストリームを生成するように構成され、前記出力可視性ストリームは、レンダリングされる際に各タイルにおいて出力プリミティブが可視であるか否かを示し、前記出力プリミティブは、前記入力プリミティブをテッセレートすることによって生成される、装置。
  15. 前記ビニングパイプラインは、
    前記入力プリミティブに対して頂点シェーディングを実行するように構成されたビニング頂点シェーダと、
    前記頂点シェーディングされた入力プリミティブに対してハルシェーディングを実行するように構成されたビニングハルシェーダと、
    複数の出力プリミティブを生成するために、前記ハルシェーディングされた入力プリミティブをテッセレートするように構成されたビニングテッセレータ段と、
    前記複数の出力プリミティブに対してドメインシェーディングを実行するように構成されたビニングドメインシェーダと、
    画素を生成するために、前記複数の出力プリミティブをラスタライズするように構成されたビニングラスタライザと、
    前記画素がフレームのタイルについて可視であるか否かを決定するために、前記画素に対して深度テストを実行するように構成されたビニング深度テスト段と
    を備え、
    前記ビニングパイプラインは、前記深度テストに基づいて前記入力プリミティブが前記タイルにおいて可視であるか否かを示す、前記入力可視性ストリーム内のインジケーションを生成し、
    前記入力プリミティブは、前記入力プリミティブに関連付けられた前記出力プリミティブをラスタライズすることで生成された前記画素のうちの何れかが可視であると決定された場合に、可視であると決定され、
    前記ビニングパイプラインは、前記深度テストに基づいて前記出力プリミティブが前記タイルにおいて可視であるか否かを示す、前記出力可視性ストリーム内のインジケーションを生成し、前記出力プリミティブは、前記出力プリミティブをラスタライズすることで生成された任意の画素が可視であると決定された場合に、可視であると決定される、請求項14に記載の装置。
  16. 前記入力プリミティブはパッチであり、前記出力プリミティブは三角形、四角形、等値線である、請求項14に記載の装置。
  17. フレームの現在のタイルをレンダリングするように構成されたレンダリングパイプラインを更に備え、レンダリングすることは、前記入力可視性ストリームによって、前記現在のフレームにおいて可視ではないと示された入力プリミティブについて省略され、レンダリングすることは、前記出力可視性ストリームによって、前記現在のフレームにおいて可視ではないと示された出力プリミティブについて省略される、請求項14に記載の装置。
  18. 前記レンダリングパイプラインは、レンダリングテッセレータ段を含み、前記レンダリングテッセレータ段は、前記出力可視性ストリームによって、前記現在のフレームにおいて可視ではないと示される出力プリミティブについて省略される、請求項17に記載の装置。
  19. タイルベースのレンダリングパイプラインにおいてテッセレーションを実行するように構成された装置であって、
    ビニングパイプラインを実行するように構成されたグラフィックスプロセッサを備え、前記ビニングパイプラインは、フレームのタイルごとに、各入力プリミティブについて可視性ストリームを生成するように構成され、前記可視性ストリームは、Nビットの長さを有し、各ビットは、レンダリングされる際に各タイルにおいて出力プリミティブが可視であるか否かを示し、前記出力プリミティブは、前記入力プリミティブをテッセレートすることによって生成される、装置。
  20. 前記長さNは、レンダリングパイプラインによって定義されるような、入力プリミティブに対する出力プリミティブの最大数によって決定される、請求項19に記載の装置。
  21. 前記ビニングパイプラインは、
    前記入力プリミティブに対して頂点シェーディングを実行するように構成されたビニング頂点シェーダと、
    前記頂点シェーディングされた入力プリミティブに対してハルシェーディングを実行するように構成されたビニングハルシェーダと、
    複数の出力プリミティブを生成するために、前記ハルシェーディングされた入力プリミティブをテッセレートするように構成されたビニングテッセレータ段と、
    前記複数の出力プリミティブに対してドメインシェーディングを実行するように構成されたビニングドメインシェーダと、
    画素を生成するために、前記複数の出力プリミティブをラスタライズするように構成されたビニングラスタライザと、
    前記画素がフレームのタイルについて可視であるか否かを決定するために、前記画素に対して深度テストを実行するように構成されたビニング深度テスト段と
    を備え、
    前記ビニングパイプラインは、前記深度テストに基づいて前記出力プリミティブが前記タイルにおいて可視であるか否かを示す、前記可視性ストリーム内のインジケーションを生成し、
    前記出力プリミティブは、前記出力プリミティブをラスタライズすることで生成された任意の画素が可視であると決定された場合に、可視であると決定される、請求項19に記載の装置。
  22. フレームの現在のタイルをレンダリングするように構成されたレンダリングパイプラインを更に備え、レンダリングすることは、前記可視性ストリーム内のすべてのビットが可視ではない出力プリミティブを示すケースでは、入力プリミティブについて省略される、請求項19に記載の装置。
  23. レンダリングすることは、前記可視性ストリームによって、前記現在のフレームにおいて可視ではないと示された出力プリミティブについて省略される、請求項19に記載の装置。
  24. 前記レンダリングパイプラインは、ジオメトリシェーダを含み、前記可視性ストリームは、N×Mビットの長さを有し、ここで、Mは、前記ジオメトリシェーダによって生成される出力プリミティブの最大数であり、前記ビニングパイプラインは更に、前記ビニングドメインシェーダの後に、前記複数の出力プリミティブに対してジオメトリシェーディングを実行するように構成されたビニングジオメトリシェーダを備える、請求項19に記載の装置。
  25. タイルベースのグラフィックスレンダリングパイプラインにおいてテッセレーションを実行するように構成された装置であって、
    フレームのタイルごとに入力可視性ストリームを生成するための手段と、ここで、前記入力可視性ストリームは、レンダリングされる際に各タイルにおいて入力プリミティブが可視であるか否かを示す、
    前記フレームのタイルごとに出力可視性ストリームを生成するための手段と、ここで、前記出力可視性ストリームは、レンダリングされる際に各タイルにおいて出力プリミティブが可視であるか否かを示し、前記出力プリミティブは、前記入力プリミティブをテッセレートすることで生成される、
    を備える装置。
  26. 前記入力可視性ストリーム及び前記出力可視性ストリームを生成するための手段は、
    前記入力プリミティブを頂点シェーディングするための手段と、
    前記頂点シェーディングされた入力プリミティブをハルシェーディングするための手段と、
    複数の出力プリミティブを生成するために、前記ハルシェーディングされた入力プリミティブをテッセレートするための手段と、
    前記複数の出力プリミティブをドメインシェーディングするための手段と、
    画素を生成するために、前記複数の出力プリミティブをラスタライズするための手段と、
    前記画素がフレームのタイルについて可視であるか否かを決定するために、前記画素に対して深度テストを実行するための手段と、
    前記深度テストに基づいて前記入力プリミティブが前記タイルにおいて可視であるか否かを示す、前記入力可視性ストリーム内のインジケーションを生成するための手段と
    を備え、
    前記入力プリミティブは、前記入力プリミティブに関連付けられた前記出力プリミティブをラスタライズすることで生成された前記画素のうちの何れかが可視であると決定された場合に、可視であると決定される、請求項25に記載の装置。
  27. 前記深度テストに基づいて前記出力プリミティブが前記タイルにおいて可視であるか否かを示す、出力可視性ストリーム内のインジケーションを生成するための手段と
    を更に備え、
    前記出力プリミティブは、前記出力プリミティブをラスタライズすることで生成された任意の画素が可視であると決定された場合に、可視であると決定される、請求項26に記載の装置。
  28. 前記入力プリミティブはパッチであり、前記出力プリミティブは三角形、四角形、等値線である、請求項25に記載の装置。
  29. フレームの現在のタイルをレンダリングするための手段を更に備え、レンダリングすることは、前記入力可視性ストリームによって、前記現在のフレームにおいて可視ではないと示された入力プリミティブについて省略される、請求項25に記載の装置。
  30. フレームの現在のタイルをレンダリングするための手段を更に備え、レンダリングすることは、前記出力可視性ストリームによって、前記現在のフレームにおいて可視ではないと示された出力プリミティブについて省略される、請求項25に記載の装置。
  31. 前記出力可視性ストリームによって、前記現在のフレームにおいて可視ではないと示された出力プリミティブについてのテッセレーションを省略するための手段を更に備える、請求項30に記載の装置。
  32. タイルベースのレンダリングパイプラインにおいてテッセレーションを実行するように構成された装置であって、
    フレームのタイルごとに、各入力プリミティブについて可視性ストリームを生成するための手段を備え、前記可視性ストリームは、Nビットの長さを有し、各ビットは、レンダリングされる際に各タイルにおいて出力プリミティブが可視であるか否かを示し、前記出力プリミティブは、前記入力プリミティブをテッセレートすることによって生成される、装置。
  33. 前記長さNは、レンダリングパイプラインによって定義されるような、入力プリミティブに対する出力プリミティブの最大数によって決定される、請求項32に記載の装置。
  34. 可視性ストリームを生成するための手段は、
    前記入力プリミティブを頂点シェーディングするための手段と、
    前記頂点シェーディングされた入力プリミティブをハルシェーディングするための手段と、
    複数の出力プリミティブを生成するために、前記ハルシェーディングされた入力プリミティブをテッセレートするための手段と、
    前記複数の出力プリミティブをドメインシェーディングするための手段と、
    画素を生成するために、前記複数の出力プリミティブをラスタライズするための手段と、
    前記画素がフレームのタイルについて可視であるか否かを決定するために、前記画素に対して深度テストを実行するための手段と、
    前記深度テストに基づいて前記タイルにおいて前記出力プリミティブが可視であるか否かを示す、前記可視性ストリーム内のインジケーションを生成するための手段と
    を備え、
    前記出力プリミティブは、前記出力プリミティブをラスタライズすることで生成された任意の画素が可視であると決定された場合に、可視であると決定される、請求項32に記載の装置。
  35. フレームの現在のタイルをレンダリングするための手段を更に備え、レンダリングすることは、前記可視性ストリーム内のすべてのビットが可視ではない出力プリミティブを示すケースでは、入力プリミティブについて省略される、請求項32に記載の装置。
  36. フレームの現在のタイルをレンダリングするための手段を更に備え、レンダリングすることは、前記入力可視性ストリームによって、前記現在のフレームにおいて可視ではないと示された出力プリミティブについて省略される、請求項32に記載の装置。
  37. 前記タイルベースのレンダリングアーキテクチャは、イネーブルなジオメトリシェーダを有し、前記可視性ストリームは、N×Mビットの長さを有し、ここで、Mは、前記ジオメトリシェーダによって生成される出力プリミティブの最大数であり、可視性ストリームを生成するための手段は更に、前記出力プリミティブをドメインシェーディングするための手段の後に、前記複数の出力プリミティブをジオメトリシェーディングするための手段を備える、請求項32に記載の装置。
  38. コンピュータ読取可能な記憶媒体を備えるコンピュータプログラム製品であって、前記コンピュータ読取可能な媒体は命令を備え、前記命令は、実行されると、タイルベースのグラフィックスレンダリングパイプラインにおいてテッセレーションを実行するためのデバイスのプロセッサに対して、
    フレームのタイルごとに入力可視性ストリームを生成させるように構成される、ここで、前記入力可視性ストリームは、レンダリングされる際に各タイルにおいて入力プリミティブが可視であるか否かを示し、前記ビニングパイプラインは更に、フレームのタイルごとに出力可視性ストリームを生成するように構成され、前記出力可視性ストリームは、レンダリングされる際に各タイルにおいて出力プリミティブが可視であるか否かを示し、前記出力プリミティブは、前記入力プリミティブをテッセレートすることによって生成される、コンピュータプログラム製品。
  39. プロセッサに更に、
    前記入力プリミティブに対して頂点シェーディングを実行させ、
    前記頂点シェーディングされた入力プリミティブに対してハルシェーディングを実行させ、
    複数の出力プリミティブを生成するために、前記ハルシェーディングされた入力プリミティブをテッセレートさせ、
    前記複数の出力プリミティブに対してドメインシェーディングを実行させ、
    画素を生成するために、前記複数の出力プリミティブをラスタライズさせ、
    前記画素がフレームのタイルについて可視であるか否かを決定するために、前記画素に対して深度テストを実行させる、
    ここにおいて、前記プロセッサは、前記深度テストに基づいて前記入力プリミティブが前記タイルにおいて可視であるか否かを示す、前記入力可視性ストリーム内のインジケーションを生成し、前記入力プリミティブは、前記入力プリミティブに関連付けられた前記出力プリミティブをラスタライズすることで生成された前記画素のうちの何れかが可視であると決定された場合に、可視であると決定され、
    前記プロセッサは、前記深度テストに基づいて前記出力プリミティブが前記タイルにおいて可視であるか否かを示す、前記出力可視性ストリーム内のインジケーションを生成し、
    前記出力プリミティブは、前記出力プリミティブをラスタライズすることで生成された任意の画素が可視であると決定された場合に、可視であると決定される、請求項38に記載のコンピュータプログラム製品。
  40. 前記入力プリミティブはパッチであり、前記出力プリミティブは三角形、四角形、等値線である、請求項38に記載のコンピュータプログラム製品。
  41. プロセッサに更に、フレームの現在のタイルをレンダリングさせる、ここで、レンダリングすることは、前記入力可視性ストリームによって、前記現在のフレームにおいて可視ではないと示された入力プリミティブについて省略され、レンダリングすることは、前記出力可視性ストリームによって、前記現在のフレームにおいて可視ではないと示された出力プリミティブについて省略される、請求項38に記載のコンピュータプログラム製品。
  42. 前記命令は更に、前記プロセッサに、レンダリングテッセレータ段を含むレンダリングパイプラインを実行させ、前記レンダリングテッセレータ段は、前記出力可視性ストリームによって、前記現在のフレームにおいて可視ではないと示される出力プリミティブについて省略される、請求項41に記載のコンピュータプログラム製品。
  43. コンピュータ読取可能な記憶媒体を備えるコンピュータプログラム製品であって、前記コンピュータ読取可能な媒体は命令を備え、前記命令は、実行されると、タイルベースのグラフィックスレンダリングパイプラインにおいてテッセレーションを実行するためのデバイスのプロセッサに対して、
    フレームのタイルごとに、各入力プリミティブについて可視性ストリームを生成させる、ここで、前記可視性ストリームは、Nビットの長さを有し、各ビットは、レンダリングされる際に各タイルにおいて出力プリミティブが可視であるか否かを示し、前記出力プリミティブは、前記入力プリミティブをテッセレートすることによって生成される、コンピュータプログラム製品。
  44. 前記長さNは、レンダリングパイプラインによって定義されるような、入力プリミティブに対する出力プリミティブの最大数によって決定される、請求項43に記載のコンピュータプログラム製品。
  45. プロセッサに更に、
    前記入力プリミティブに対して頂点シェーディングを実行させ、
    前記頂点シェーディングされた入力プリミティブに対してハルシェーディングを実行させ、
    複数の出力プリミティブを生成するために、前記ハルシェーディングされた入力プリミティブをテッセレートさせ、
    前記複数の出力プリミティブに対してドメインシェーディングを実行させ、
    画素を生成するために、前記複数の出力プリミティブをラスタライズさせ、
    前記画素がフレームのタイルについて可視であるか否かを決定するために、前記画素に対して深度テストを実行させ、
    前記プロセッサは、前記深度テストに基づいて前記出力プリミティブが前記タイルにおいて可視であるか否かを示す、前記可視性ストリーム内のインジケーションを生成し、
    前記出力プリミティブは、前記出力プリミティブをラスタライズすることで生成された任意の画素が可視であると決定された場合に、可視であると決定される、請求項43に記載のコンピュータプログラム製品。
  46. プロセッサに更に、フレームの現在のタイルをレンダリングさせる、ここにおいて、レンダリングすることは、前記可視性ストリーム内のすべてのビットが可視ではない出力プリミティブを示すケースでは、入力プリミティブについて省略される、請求項43に記載のコンピュータプログラム製品。
  47. レンダリングすることは、前記可視性ストリームによって、前記現在のフレームにおいて可視ではないと示された出力プリミティブについて省略される、請求項43に記載のコンピュータプログラム製品。
  48. 前記命令は更に、前記プロセッサに、ジオメトリシェーダを含むレンダリングパイプラインを実行させ、前記可視性ストリームは、N×Mビットの長さを有し、ここで、Mは、前記ジオメトリシェーダによって生成される出力プリミティブの最大数であり、前記命令は更に、前記プロセッサに、ドメインシェーディングを実行した後に、前記複数の出力プリミティブに対してジオメトリシェーディングを実行させる、請求項43に記載のコンピュータプログラム製品。
JP2014542314A 2011-11-16 2012-10-16 タイルベースのレンダリングにおけるテッセレーション Expired - Fee Related JP5837221B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/298,051 US10089774B2 (en) 2011-11-16 2011-11-16 Tessellation in tile-based rendering
US13/298,051 2011-11-16
PCT/US2012/060368 WO2013074236A1 (en) 2011-11-16 2012-10-16 Tessellation in tile-based rendering

Publications (2)

Publication Number Publication Date
JP2015501981A true JP2015501981A (ja) 2015-01-19
JP5837221B2 JP5837221B2 (ja) 2015-12-24

Family

ID=47178898

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014542314A Expired - Fee Related JP5837221B2 (ja) 2011-11-16 2012-10-16 タイルベースのレンダリングにおけるテッセレーション

Country Status (7)

Country Link
US (1) US10089774B2 (ja)
EP (1) EP2780891B1 (ja)
JP (1) JP5837221B2 (ja)
KR (2) KR101868200B1 (ja)
CN (1) CN103946895B (ja)
IN (1) IN2014CN03427A (ja)
WO (1) WO2013074236A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016523401A (ja) * 2013-05-31 2016-08-08 クゥアルコム・インコーポレイテッドQualcomm Incorporated 加えられたインライン動作とともに、ビン毎の可視情報に基づくレンダリングコマンドの条件付き実行

Families Citing this family (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101511273B1 (ko) * 2008-12-29 2015-04-10 삼성전자주식회사 멀티 코어 프로세서를 이용한 3차원 그래픽 렌더링 방법 및시스템
GB2500284B (en) 2012-09-12 2014-04-30 Imagination Tech Ltd Tile based computer graphics
US8941676B2 (en) * 2012-10-26 2015-01-27 Nvidia Corporation On-chip anti-alias resolve in a cache tiling architecture
US10438314B2 (en) * 2012-10-26 2019-10-08 Nvidia Corporation Two-pass cache tile processing for visibility testing in a tile-based architecture
GB2544679B (en) * 2012-12-20 2017-08-16 Imagination Tech Ltd Tessellating patches of surface data in tile based computer graphics rendering
US9087410B2 (en) * 2013-01-17 2015-07-21 Qualcomm Incorporated Rendering graphics data using visibility information
GB2511817A (en) 2013-03-14 2014-09-17 Imagination Tech Ltd Rendering in computer graphics systems
US9807145B2 (en) 2013-05-10 2017-10-31 Successfactors, Inc. Adaptive tile framework
KR102116708B1 (ko) * 2013-05-24 2020-05-29 삼성전자 주식회사 그래픽스 프로세싱 유닛
US9256976B2 (en) * 2013-07-09 2016-02-09 Intel Corporation Techniques for extracting and displaying partially processed graphics information
US9483862B2 (en) * 2013-12-20 2016-11-01 Qualcomm Incorporated GPU-accelerated path rendering
US10068311B2 (en) 2014-04-05 2018-09-04 Sony Interacive Entertainment LLC Varying effective resolution by screen location by changing active color sample count within multiple render targets
US9710957B2 (en) 2014-04-05 2017-07-18 Sony Interactive Entertainment America Llc Graphics processing enhancement by tracking object and/or primitive identifiers
US9865074B2 (en) 2014-04-05 2018-01-09 Sony Interactive Entertainment America Llc Method for efficient construction of high resolution display buffers
US9495790B2 (en) 2014-04-05 2016-11-15 Sony Interactive Entertainment America Llc Gradient adjustment for texture mapping to non-orthonormal grid
US11302054B2 (en) 2014-04-05 2022-04-12 Sony Interactive Entertainment Europe Limited Varying effective resolution by screen location by changing active color sample count within multiple render targets
US9836816B2 (en) 2014-04-05 2017-12-05 Sony Interactive Entertainment America Llc Varying effective resolution by screen location in graphics processing by approximating projection of vertices onto curved viewport
US10783696B2 (en) 2014-04-05 2020-09-22 Sony Interactive Entertainment LLC Gradient adjustment for texture mapping to non-orthonormal grid
US9652882B2 (en) 2014-04-05 2017-05-16 Sony Interactive Entertainment America Llc Gradient adjustment for texture mapping for multiple render targets with resolution that varies by screen location
US9710881B2 (en) 2014-04-05 2017-07-18 Sony Interactive Entertainment America Llc Varying effective resolution by screen location by altering rasterization parameters
EP3129958B1 (en) 2014-04-05 2021-06-02 Sony Interactive Entertainment LLC Method for efficient re-rendering objects to vary viewports and under varying rendering and rasterization parameters
US9940686B2 (en) 2014-05-14 2018-04-10 Intel Corporation Exploiting frame to frame coherency in a sort-middle architecture
GB2526598B (en) 2014-05-29 2018-11-28 Imagination Tech Ltd Allocation of primitives to primitive blocks
GB2524120B (en) * 2014-06-17 2016-03-02 Imagination Tech Ltd Assigning primitives to tiles in a graphics processing system
GB2524121B (en) 2014-06-17 2016-03-02 Imagination Tech Ltd Assigning primitives to tiles in a graphics processing system
GB2527822B (en) * 2014-07-03 2020-10-07 Advanced Risc Mach Ltd Graphics processing
KR102329475B1 (ko) * 2014-08-27 2021-11-19 삼성전자주식회사 렌더링 퀄리티 제어 장치 및 방법
US9824412B2 (en) * 2014-09-24 2017-11-21 Intel Corporation Position-only shading pipeline
GB2520822B (en) * 2014-10-10 2016-01-13 Aveva Solutions Ltd Image rendering of laser scan data
KR20160051155A (ko) * 2014-10-31 2016-05-11 삼성전자주식회사 렌더링 장치 및 방법
KR102327144B1 (ko) * 2014-11-26 2021-11-16 삼성전자주식회사 그래픽 프로세싱 장치 및 그래픽 프로세싱 장치에서 타일 기반 그래픽스 파이프라인을 수행하는 방법
US9607352B2 (en) 2014-12-03 2017-03-28 Intel Corporation Prediction based primitive sorting for tile based rendering
US9600926B2 (en) * 2014-12-15 2017-03-21 Intel Corporation Apparatus and method decoupling visibility bins and render tile dimensions for tiled rendering
US9773340B2 (en) * 2015-06-12 2017-09-26 Qualcomm Incorporated Rendering using ray tracing to generate a visibility stream
US9786098B2 (en) * 2015-07-06 2017-10-10 Mediatek Inc. Apparatus for performing tessellation operation and methods utilizing the same
KR102381945B1 (ko) * 2015-11-18 2022-04-01 삼성전자주식회사 그래픽 프로세싱 장치 및 그래픽 프로세싱 장치에서 그래픽스 파이프라인을 수행하는 방법
US20170199888A1 (en) * 2016-01-13 2017-07-13 Google Inc. Detecting visibility of a content item in a content item slot on a resource
US10096147B2 (en) * 2016-03-10 2018-10-09 Qualcomm Incorporated Visibility information modification
US10332290B2 (en) * 2016-03-21 2019-06-25 Adobe Inc. Fast, coverage-optimized, resolution-independent and anti-aliased graphics processing
US10068307B2 (en) 2016-05-20 2018-09-04 Intel Corporation Command processing for graphics tile-based rendering
US20170352182A1 (en) * 2016-06-06 2017-12-07 Qualcomm Incorporated Dynamic low-resolution z test sizes
US10032308B2 (en) * 2016-06-22 2018-07-24 Advanced Micro Devices, Inc. Culling objects from a 3-D graphics pipeline using hierarchical Z buffers
US10460513B2 (en) * 2016-09-22 2019-10-29 Advanced Micro Devices, Inc. Combined world-space pipeline shader stages
US10652284B2 (en) * 2016-10-12 2020-05-12 Samsung Electronics Co., Ltd. Method and apparatus for session control support for field of view virtual reality streaming
WO2018123801A1 (ja) * 2016-12-28 2018-07-05 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元モデル配信方法、三次元モデル受信方法、三次元モデル配信装置及び三次元モデル受信装置
US10417810B2 (en) * 2017-05-31 2019-09-17 Verizon Patent And Licensing Inc. Methods and systems for rendering virtual reality content based on two-dimensional (“2D”) captured imagery of a three-dimensional (“3D”) scene
GB2567207B (en) * 2017-10-06 2020-02-19 Advanced Risc Mach Ltd Graphics processing systems
GB2574361B (en) * 2017-12-18 2021-03-24 Advanced Risc Mach Ltd Graphics Processing
US10409359B2 (en) * 2018-01-17 2019-09-10 Qualcomm Incorporated Dynamic bin ordering for load synchronization
US10580209B2 (en) 2018-03-06 2020-03-03 Qualcomm Incorporated Removal of degenerated sub-primitives in tessellation
GB2572603B (en) * 2018-04-05 2022-03-23 Imagination Tech Ltd Edge and depth processing hardware
CN111429556B (zh) * 2018-12-21 2023-03-24 畅想科技有限公司 图形处理系统中的基于基元块的光栅化
US11080928B2 (en) * 2019-04-01 2021-08-03 Qualcomm Incorporated Methods and apparatus for visibility stream management
US11010862B1 (en) * 2019-11-14 2021-05-18 Advanced Micro Devices, Inc. Reduced bandwidth tessellation factors
US11170461B2 (en) * 2020-02-03 2021-11-09 Sony Interactive Entertainment Inc. System and method for efficient multi-GPU rendering of geometry by performing geometry analysis while rendering
CN112672131B (zh) * 2020-12-07 2024-02-06 聚好看科技股份有限公司 一种全景视频图像显示方法及显示设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002163665A (ja) * 2000-11-24 2002-06-07 Matsushita Electric Ind Co Ltd 描画装置
US6697063B1 (en) * 1997-01-03 2004-02-24 Nvidia U.S. Investment Company Rendering pipeline
JP2009295162A (ja) * 2008-06-04 2009-12-17 Arm Ltd グラフィックス処理システム
WO2010073017A1 (en) * 2008-12-23 2010-07-01 Imagination Technologies Limited Display list control stream grouping in tile based 3d computer graphics system
US20110267346A1 (en) * 2010-04-30 2011-11-03 John William Howson Tessellation of patches of surfaces in a tile based rendering system

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6856320B1 (en) 1997-11-25 2005-02-15 Nvidia U.S. Investment Company Demand-based memory system for graphics applications
US7218317B2 (en) * 2003-08-25 2007-05-15 Via Technologies, Inc. Mechanism for reducing Z buffer traffic in three-dimensional graphics processing
US7388581B1 (en) * 2003-08-28 2008-06-17 Nvidia Corporation Asynchronous conditional graphics rendering
GB0524804D0 (en) * 2005-12-05 2006-01-11 Falanx Microsystems As Method of and apparatus for processing graphics
US7692648B2 (en) 2006-01-18 2010-04-06 Siemens Medical Solutions Usa, Inc. System and method for empty space skipping in sliding texture based volume rendering by trimming slab polygons
TW200744019A (en) * 2006-05-23 2007-12-01 Smedia Technology Corp Adaptive tile depth filter
US7847798B1 (en) * 2006-10-24 2010-12-07 Adobe Systems Incorporated Clipping and culling artwork using a graphics processing unit
US8203564B2 (en) * 2007-02-16 2012-06-19 Qualcomm Incorporated Efficient 2-D and 3-D graphics processing
GB2452300B (en) 2007-08-30 2009-11-04 Imagination Tech Ltd Predicated geometry processing in a tile based rendering system
US8289319B2 (en) * 2007-10-08 2012-10-16 Ati Technologies Ulc Apparatus and method for processing pixel depth information
US8643644B2 (en) 2008-03-20 2014-02-04 Qualcomm Incorporated Multi-stage tessellation for graphics rendering
US8497861B2 (en) 2008-05-30 2013-07-30 Siemens Aktiengesellschaft Method for direct volumetric rendering of deformable bricked volumes
US8692829B2 (en) 2009-10-05 2014-04-08 Nvidia Corporation Calculation of plane equations after determination of Z-buffer visibility
US20110141112A1 (en) 2009-12-11 2011-06-16 William Allen Hux Image processing techniques
US9058685B2 (en) * 2010-03-11 2015-06-16 Broadcom Corporation Method and system for controlling a 3D processor using a control list in memory
US20110310102A1 (en) * 2010-06-17 2011-12-22 Via Technologies, Inc. Systems and methods for subdividing and storing vertex data
US8499305B2 (en) * 2010-10-15 2013-07-30 Via Technologies, Inc. Systems and methods for performing multi-program general purpose shader kickoff
KR101782044B1 (ko) * 2011-02-22 2017-09-26 삼성전자주식회사 그래픽 프로세서 및 조기 가시성 테스트 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6697063B1 (en) * 1997-01-03 2004-02-24 Nvidia U.S. Investment Company Rendering pipeline
JP2002163665A (ja) * 2000-11-24 2002-06-07 Matsushita Electric Ind Co Ltd 描画装置
JP2009295162A (ja) * 2008-06-04 2009-12-17 Arm Ltd グラフィックス処理システム
WO2010073017A1 (en) * 2008-12-23 2010-07-01 Imagination Technologies Limited Display list control stream grouping in tile based 3d computer graphics system
US20110267346A1 (en) * 2010-04-30 2011-11-03 John William Howson Tessellation of patches of surfaces in a tile based rendering system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016523401A (ja) * 2013-05-31 2016-08-08 クゥアルコム・インコーポレイテッドQualcomm Incorporated 加えられたインライン動作とともに、ビン毎の可視情報に基づくレンダリングコマンドの条件付き実行

Also Published As

Publication number Publication date
WO2013074236A1 (en) 2013-05-23
JP5837221B2 (ja) 2015-12-24
CN103946895B (zh) 2017-03-15
EP2780891B1 (en) 2018-04-18
US10089774B2 (en) 2018-10-02
KR20140098133A (ko) 2014-08-07
EP2780891A1 (en) 2014-09-24
CN103946895A (zh) 2014-07-23
US20130120380A1 (en) 2013-05-16
IN2014CN03427A (ja) 2015-10-09
KR101868200B1 (ko) 2018-06-15
KR20160049031A (ko) 2016-05-04

Similar Documents

Publication Publication Date Title
JP5837221B2 (ja) タイルベースのレンダリングにおけるテッセレーション
US9019280B2 (en) Area-based rasterization techniques for a graphics processing system
JP4987988B2 (ja) 画像の圧縮及び/又は復元
US9177351B2 (en) Multi-primitive graphics rendering pipeline
JP2018060556A (ja) グラフィック処理ユニットにおける視界ベースの状態更新
JP5960368B2 (ja) ビジビリティ情報を用いたグラフィックスデータのレンダリング
US9569811B2 (en) Rendering graphics to overlapping bins
KR101635334B1 (ko) 대칭적 에지 스플릿팅에 의한 표면 테셀레이션
US20140362100A1 (en) Scheme for compressing vertex shader output parameters
KR102651126B1 (ko) 그래픽 프로세싱 장치 및 그래픽스 파이프라인에서 텍스처를 처리하는 방법
KR102381945B1 (ko) 그래픽 프로세싱 장치 및 그래픽 프로세싱 장치에서 그래픽스 파이프라인을 수행하는 방법
US9082204B2 (en) Storage structures for stitching primitives in graphics processing
JP6595101B2 (ja) 後期深度試験と保守的深度試験との間の動的切替え
US9076260B2 (en) Stitching for primitives in graphics processing
US9280956B2 (en) Graphics memory load mask for graphics processing
JP6325756B2 (ja) 単一パスの表面スプラッティング
US20180211434A1 (en) Stereo rendering
US10580209B2 (en) Removal of degenerated sub-primitives in tessellation
US9437042B1 (en) System, method, and computer program product for performing dicing on a primitive

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150525

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150609

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150909

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151104

R150 Certificate of patent or registration of utility model

Ref document number: 5837221

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees