JP5166552B2 - グラフィックス処理システムにおけるオフスクリーンサーフェスのためのマルチバッファサポート - Google Patents

グラフィックス処理システムにおけるオフスクリーンサーフェスのためのマルチバッファサポート Download PDF

Info

Publication number
JP5166552B2
JP5166552B2 JP2010543290A JP2010543290A JP5166552B2 JP 5166552 B2 JP5166552 B2 JP 5166552B2 JP 2010543290 A JP2010543290 A JP 2010543290A JP 2010543290 A JP2010543290 A JP 2010543290A JP 5166552 B2 JP5166552 B2 JP 5166552B2
Authority
JP
Japan
Prior art keywords
buffer
screen surface
read
screen
write
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
JP2010543290A
Other languages
English (en)
Other versions
JP2011510407A (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 JP2011510407A publication Critical patent/JP2011510407A/ja
Application granted granted Critical
Publication of JP5166552B2 publication Critical patent/JP5166552B2/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/60Memory management
    • 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)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Image Generation (AREA)

Description

関連出願
本出願は、2008年1月18日に出願された米国仮出願第61/022,195号の利益を主張し、その内容全体が参照によりここに組み込まれる。
本出願は、グラフィックス処理システム内のサーフェスのレンダリング及び表示に関する。
背景
グラフィックスプロセッサは、ビデオゲーム、グラフィックスプログラム、コンピュータ支援設計(CAD)アプリケーション、シミュレーション及び視覚化ツール、及びイメージングなど、様々なアプリケーションのために、2次元(2D)及び3次元(3D)画像をレンダリングするために広く使用される。次いで、ディスプレイプロセッサは、ディスプレイ装置を介してユーザに提示するためにレンダリングされる出力を表示するために使用される。
これらのアプリケーションにおいて使用されるグラフィックスプロセッサ、ディスプレイプロセッサ、又はマルチメディアプロセッサは、データの並列処理及び/又はベクトル処理を実行するように構成できる。SIMD(Single Instruction, Multiple Data)拡張を持つ又は持たない汎用CPU(中央処理装置)は、データを処理するように構成することもできる。SIMDベクトル処理では、単一の命令が複数のデータ項目に対して同時に動作する。
OpenGL(登録商標)(オープングラフィックスライブラリ)は、2D及び3Dグラフィックスを生成するアプリケーションを記述するときに使用されるAPI(アプリケーションプログラミングインターフェース)を定義する標準仕様である。(Java(登録商標)など、他の言語は、それら自体の標準プロセスを介してOpenGL APIへのバインディングを定義することができる。)このインターフェースは、単純なプリミティブからシーンを描くために使用できる複数の関数呼び出しを含む。したがって、グラフィックスプロセッサ、マルチメディアプロセッサ、及び汎用CPUでさえ、OpenGL関数呼び出しを使用して記述されたアプリケーションを実行することができる。OpenGL ES(組み込みシステム)は、モバイルワイヤレス電話、デジタルマルチメディアプレーヤ、携帯情報端末(PDA)又はテレビゲーム機などの組み込みデバイスのために設計された、OpenGLの変形である。OpenVG(商標)(Open Vector Graphics)は、主にハードウェア−アクセラレーテッド2Dベクトルグラフィックスのために設計された別の標準APIである。
EGL(商標)(Embedded Graphics Library)は、マルチメディアクライアントAPI(OpenGL ES、OpenVG、及びいくつかの他の標準マルチメディアAPIなど)と、基礎をなすプラットフォームマルチメディア機能との間のインターフェースである。EGLは、グラフィックスコンテキスト管理、レンダリングサーフェス生成、及びレンダリング同期を処理することができ、ハイパフォーマンス、ハードウェアアクセラレーテッド、及び混合モード2D及び3Dレンダリングを可能にする。レンダリングサーフェス生成では、EGLは、クライアントAPI(ユーザアプリケーションAPIなどの)が描画及び共有することができるオンスクリーンサーフェス(たとえば、ウィンドウサーフェス)とオフスクリーンサーフェス(たとえば、pbuffer、pixmap)の両方を生成するための機構を提供する。オンスクリーンサーフェスは、典型的に、アクティブウィンドウのフレームバッファメモリに直接レンダリングされる。オフスクリーンサーフェスは、典型的に、後で使用するためにオフスクリーンバッファにレンダリングされる。Pbufferは、たとえば、OpenGLサーバサイド(ドライバ)の動作に関連するメモリ空間に記憶できるオフスクリーンメモリバッファである。pixmapは、たとえば、クライアントアプリケーションに関連するメモリ空間に通常記憶されるオフスクリーンメモリ領域である。
概要
概して、本開示では、pbufferサーフェス及びpixmapサーフェスなどのオフスクリーンサーフェスのためのマルチバッファサポートを行うための様々な技法について説明する。一態様では、単一又は未知数のバッファでなく、指定された数のバッファの生成を可能にするEGL拡張内に、オフスクリーンサーフェスのためのマルチバッファサポートが実装されるとしてもよい。アプリケーション開発者は、EGLなどのAPIを使用して、現在読み出し又は書き込み(描画)動作を行うべき、オフスクリーンサーフェスのためのバッファを指定することもできる。一態様では、オフスクリーンビデオサーフェス及び事前にレンダリングされたスプライトアニメーションのために複数のバッファを設けることができる。次いで、これらのマルチバッファリングされたサーフェス及びアニメーションは、レンダリング動作とともに又はそれとは別に行われるサーフェスオーバーレイ機能を介して、他の2Dサーフェス要素、3Dサーフェス要素、及びビデオサーフェス要素と組み合わせることができる。本開示では、2Dサーフェスは、たとえば、OpenVGなどの2D APIによって生成されるサーフェスである。3Dサーフェスは、たとえば、OpenGLなどの3D APIによって生成されるサーフェスである。ビデオサーフェスは、たとえば、H.264又はMPEG4(Moving Picture Experts Groupバージョン4)などのビデオデコーダによって生成されるサーフェスである。
一態様では、方法は、グラフィックス処理において使用されるオフスクリーンサーフェスにすべてが関連する複数のバッファを割り振ることと、書き込み動作中にオフスクリーンサーフェスに関係する情報がバッファ内の第1のバッファに書き込まれるように、第1のバッファをオフスクリーンサーフェスのための書き込みバッファとして識別することとを含む。本方法は、読み出し動作中にオフスクリーンサーフェスに関係する情報がバッファ内の第2のバッファから読み出されるように、第2のバッファをオフスクリーンサーフェスのための読み出しバッファとして識別することをさらに含む。
別の態様では、装置は、バッファスペースと1つ又は複数のプロセッサとを含む。1つ又は複数のプロセッサは、グラフィックス処理において使用されるオフスクリーンサーフェスにすべてが関連する、バッファスペース内の複数のバッファを割り振るように構成される。1つ又は複数のプロセッサは、書き込み動作中にオフスクリーンサーフェスに関係する情報が第1のバッファに書き込まれ、読み出し動作中にオフスクリーンサーフェスに関係する情報が第2のバッファから読み出されるように、バッファ内の第1のバッファをオフスクリーンサーフェスのための書き込みバッファとして識別し、さらにバッファ内の第2のバッファをオフスクリーンサーフェスのための読み出しバッファとして識別するようにさらに構成される。
一態様では、コンピュータ可読媒体は、グラフィックス処理において使用されるオフスクリーンサーフェスにすべてが関連する複数のバッファを割り振ることと、書き込み動作中にオフスクリーンサーフェスに関係する情報がバッファ内の第1のバッファに書き込まれるように、第1のバッファをオフスクリーンサーフェスのための書き込みバッファとして識別することとを、1つ又は複数のプログラマブルプロセッサに行わせるための命令を含む。このコンピュータ可読媒体は、読み出し動作中にオフスクリーンサーフェスに関係する情報がバッファ内の第2のバッファから読み出されるように、第2のバッファをオフスクリーンサーフェスのための読み出しバッファとして識別することを、1つ又は複数のプログラマブルプロセッサに行わせるための命令をさらに含む。
本開示の1つ又は複数の態様の詳細について添付の図面及び以下の説明において述べる。他の特徴、目的、及び利点は、説明及び図面、ならびに特許請求の範囲から明らかになるであろう。
本開示の一態様に係る、オフスクリーンサーフェスのためのマルチバッファサポートを実装するために使用される装置を例示するブロック図。 本開示の別の態様に係る、オフスクリーンサーフェスのためのマルチバッファサポートを実装するために使用される装置を例示するブロック図。 本開示の一態様に係る、オフスクリーンサーフェスのためのマルチバッファサポートを実装するために使用される装置を例示するブロック図。 本開示の一態様に係る、図2Aに示すAPIライブラリのさらなる詳細を例示するブロック図。 本開示の一態様に係る、図2Aに示すドライバのさらなる詳細を例示するブロック図。 本開示の別の態様に係る、オフスクリーンサーフェスのためのマルチバッファサポートを実装するために使用される装置を例示するブロック図。 本開示の一態様に係る、それぞれ複数のバッファに関連する複数のオフスクリーンサーフェスの例を示すブロック図。 一態様では、ディスプレイ装置に表示される、図3Aに示すオフスクリーンサーフェスに関連するオーバーレイサーフェスデータの例を示すブロック図。 本開示の一態様に係る、それぞれ異なって識別される読み出しバッファ及び書き込みバッファに関連する複数のオフスクリーンサーフェスの別の例を示すブロック図。 一態様では、ディスプレイ装置に表示される、図3Cに示すオフスクリーンサーフェスに関連するオーバーレイサーフェスデータの例を示すブロック図。 本開示の一態様に係る、図1A、図1B、図2A、又は図2Dのグラフィックス処理システムに示す制御プロセッサ、グラフィックスプロセッサ、及び/又はディスプレイプロセッサのうちの1つ又は複数によって実行されてもよい方法の流れ図。 本開示の一態様に係る、図1A、図1B、図2A、又は図2Dのグラフィックス処理システムに示す制御プロセッサ、グラフィックスプロセッサ、及び/又はディスプレイプロセッサのうちの1つ又は複数によって実行されてもよい別の方法の流れ図。
詳細な説明
図1Aは、本開示の一態様に係る、オフスクリーンサーフェスのためのマルチバッファサポートを実装するために使用される装置100を例示するブロック図である。装置100は、スタンドアロン装置か、又はより大きいシステムの一部でもよい。たとえば、装置100は、(ワイヤレスモバイルハンドセットなどの)ワイヤレス通信装置を備えるか、又は、デジタルカメラ、デジタルマルチメディアプレーヤ、携帯情報端末(PDA)、ビデオゲーム機、又は他のビデオ装置の一部とすることができる。装置100は、(ウルトラモバイルパーソナルコンピュータなどの)パーソナルコンピュータ又はラップトップデバイスを備えることもできる。装置100は、上述の装置のいくつか又は全部において使用されることがある1つ又は複数の集積回路、又はチップ中に含まれるとしてもよい。
装置100は、グラフィックスアプリケーション、ビデオアプリケーション、又は他のマルチメディアアプリケーションなどの様々な異なるアプリケーションを実行することが可能である。たとえば、装置100は、グラフィックスアプリケーション、ビデオゲームアプリケーション、ビデオアプリケーション、グラフィックスとビデオとを合成するアプリケーション、デジタルカメラアプリケーション、インスタントメッセージングアプリケーション、モバイルアプリケーション、ビデオ通信会議アプリケーション、ビデオブロードキャストアプリケーション、又はビデオストリーミングアプリケーションのために使用できる。
装置100は、多種多様なデータタイプ及びフォーマットを処理することが可能である。たとえば、以下でより詳細に説明するように、装置100は、静止画像データ、動画(ビデオ)データ、又は他のマルチメディアデータを処理することができる。画像データは、コンピュータ生成グラフィックスデータを含むことができる。装置100は、グラフィックス処理システム102とメモリ104とディスプレイ装置106とを含む。プログラマブルプロセッサ108、110及び114は、グラフィックス処理システム102内に論理的に含まれる。プログラマブルプロセッサ108は、制御プロセッサ、又は汎用プロセッサとすることができる。プログラマブルプロセッサ110はグラフィックスプロセッサとすることができ、プログラマブルプロセッサ114はディスプレイプロセッサとすることができる。制御プロセッサ108は、グラフィックスプロセッサ110とディスプレイプロセッサ114の両方を制御することが可能である。プロセッサ108、110及び114は、スカラープロセッサ又はベクトルプロセッサとすることができる。一態様では、装置100は、他の形式のマルチメディアプロセッサを含むことができる。
図1Aの例では、装置100のグラフィックス処理システム102は、メモリ104とディスプレイ装置の両方に結合される。メモリ104は、命令及び/又はデータを記憶することが可能な任意のパーマネント又は揮発性メモリを含むことができる。ディスプレイ装置106は、LCD(液晶ディスプレイ)又はテレビジョン(TV)ディスプレイデバイスなど、表示の目的で、3D画像データ、2D画像データ又はビデオデータを表示することが可能な任意の装置とすることができる。
グラフィックスプロセッサ110は、コンピュータグラフィックスをレンダリング、操作、及び表示するために利用される専用グラフィックスレンダリングデバイスとすることができる。グラフィックスプロセッサ110は、様々な複雑なグラフィックス関連アルゴリズムを実装することができる。たとえば、複雑なアルゴリズムは、2次元又は3次元コンピュータグラフィックスの表現に対応することができる。グラフィックスプロセッサ110は、点、線、及び三角形又は他の多角形サーフェス(面)を形成することなど、いくつかのいわゆる「プリミティブ」グラフィックス演算を実装して、ディスプレイ装置106などのディスプレイ上に複雑な3次元画像を生成することができる。
本開示では、「レンダリングする」という用語は、一般に3D及び/又は2Dレンダリングを指す。例として、グラフィックスプロセッサ110は、OpenGL命令を利用して3Dグラフィックスフレームをレンダリングするか、又は、OpenVG命令を利用して2Dグラフィックスサーフェスをレンダリングすることができる。ただし、グラフィックスプロセッサ110は、グラフィックスをレンダリングするための任意の規格、方法又は技法を利用することができる。
グラフィックスプロセッサ110は、メモリ104に記憶された命令を実施することができる。メモリ104は、(グラフィックス又はビデオアプリケーションなどの)アプリケーションのためのアプリケーション命令118と、APIライブラリ120と、ドライバ122とを記憶することが可能である。アプリケーション命令118は、実行のためにメモリ104からグラフィックス処理システム102にロードできる。たとえば、制御プロセッサ108とグラフィックスプロセッサ110とディスプレイプロセッサ114とのうちの1つ又は複数は、命令118のうちの1つ又は複数を実行することができる。
制御プロセッサ108、グラフィックスプロセッサ110、及び/又はディスプレイプロセッサ114は、また、アプリケーション命令118の実行中に、APIライブラリ120又はドライバ122内に含まれる命令をロードし、実行することができる。命令118は、APIライブラリ120又はドライバ122内のある機能を参照するか、又は他の場合は起動することができる。したがって、以下でより詳細に説明するように、グラフィックス処理システム102は、命令118を実行するとき、APIライブラリ120及び/又はドライバ122内の識別された命令を実行することもできる。ドライバ122は、制御プロセッサ108とグラフィックスプロセッサ110とディスプレイプロセッサ114とのうちの1つ又は複数に固有の機能を含むことができる。一態様では、アプリケーション命令118、APIライブラリ120、及び/又はドライバ122は、不揮発性データ記憶媒体などのストレージデバイスからメモリ104にロードできる。一態様では、アプリケーション命令118、APIライブラリ120、及び/又はドライバ122は、メモリ104に動的に無線でダウンロードされる1つ又は複数のダウンロード可能なモジュールを備えることができる。
グラフィックスプロセッサ110は、オンスクリーンサーフェス又はオフスクリーンサーフェスなどのグラフィックスサーフェスをレンダリングするとき、そのようなレンダリングデータをバッファエリア112に記憶することができる。バッファエリア112は、同期ダイナミックランダムアクセスメモリ(SDRAM)、埋込みダイナミックランダムアクセスメモリ(eDRAM)、又はスタティックランダムアクセスメモリ(SRAM)など、データを記憶することが可能な任意のパーマネント又は揮発性メモリなどのデータ記憶デバイスとすることができる。一態様では、図1Bに示すように、バッファエリア112はメモリ104内に直接含まれるとしてもよい。レンダリングされる各グラフィックスサーフェスは、そのサイズ及び形状によって定義される。ディスプレイプロセッサ114によって、ポストレンダリングのスケーリング及び回転機能をレンダリングされたサーフェスに適用することができるので、サイズ及び形状は、使用されているディスプレイ装置106の実際の物理的サイズによって制限されない。
バッファエリア112は、複数のオフスクリーンサーフェスバッファ116A〜116N(総称して116)を含むことができる。各オフスクリーンサーフェスバッファ116A〜116Nは、特定のオフスクリーンサーフェスに関連する。たとえば、オフスクリーンサーフェスバッファ116A〜116Nのすべてが、実行中にアプリケーション命令118によって生成されたある特定のオフスクリーンサーフェスに関連することがある。各バッファ116A〜116Nは、オフスクリーンサーフェスに関する情報を保持することが可能であり、読み出しバッファ、書き込みバッファ、又はその両方を構成することができる。
オフスクリーンサーフェスは、様々なコンテキストにおいて、様々な目的のために使用できる。たとえば、1つ又は複数のオフスクリーンサーフェスは、3D制御装置を用いてビデオプレーヤを表示するために、アニメーション化されたカーソルを表示するために、又はシステム状態インジケータ(たとえば、ワイヤレス信号強度メータ)を表示するために、ウィンドウサーフェスなどのオンスクリーンサーフェスと合成できる。
一態様では、サーフェス(レンダリングされたサーフェス)のためのレンダリングされた出力データは、グラフィックスプロセッサ110によって書き込みバッファに書き込まれる。したがって、グラフィックスプロセッサ110は、オフスクリーンサーフェスをレンダリングした後、サーフェスのためのレンダリングされた出力データを、書き込みバッファとして識別されるバッファ116A〜116Nのうちの1つ又は複数に書き込む。この態様では、ディスプレイプロセッサ114及びグラフィックスプロセッサ110は、読み出しバッファとして識別されるバッファ116A〜116Nのうちの1つ又は複数から、レンダリングされた出力データを読み出すことが可能である。場合によっては、ディスプレイプロセッサ又はグラフィックスプロセッサ110は、また、ファイルから、又は無線でデータを読み出すことが可能である。
たとえば、ディスプレイプロセッサ114は、バッファ116A〜116Nのうちの1つから、レンダリングされた出力データを読み出して、ディスプレイ装置106上に表示するためのそのようなデータを準備することができる。ディスプレイプロセッサ114は、レンダリングされたグラフィックスフレームに対して、ディスプレイ装置106を駆動するために、ポストレンダリング機能を実行することができるプロセッサである。ポストレンダリング機能は、スケーリング、回転、ブレンディング、カラーキーイング、及び/又はオーバーレイを含むことができる。たとえば、ディスプレイプロセッサ114は、一定アルファブレンディングを用いたカラーキーイング、一定アルファブレンディングを用いないカラーキーイング、全サーフェス一定アルファブレンディング、又は全サーフェスピクセル単位アルファブレンディングなど、いくつかのブレンディングモードのうちの1つを使用することによってサーフェスを合成することができる。グラフィックスプロセッサ110は、テクスチャソースとしてバッファ116A〜116Nのうちの1つ又は複数から、レンダリングされた出力データを読み出すこともできる。いくつかの例では、制御プロセッサ108も、バッファ116A〜116Nのうちの1つ又は複数から、レンダリングされた出力データを読み出すことができる。
一態様では、グラフィックスプロセッサ110は、グラフィックスサーフェスをレンダリングし、レンダリングされたグラフィックスデータを、書き込みバッファとして識別されているバッファ116A〜116Nのうちの1つに記憶する。ディスプレイプロセッサ114が、レンダリングされたグラフィックデータを取り出すことができるように、レンダリングが完了したとき、バッファは読み出しバッファとして再識別される。次いで、グラフィックスプロセッサ110は、書き込みバッファとして識別されているバッファ116中の別のバッファにさらなるデータをレンダリングすることができる。特定のオフスクリーンサーフェスに関連するバッファ116内の少なくとも2つのバッファを有することによって、ディスプレイプロセッサ114は1つのバッファから読み出すことができる一方、グラフィックスプロセッサ110は別のバッファにレンダリングする。識別子又はポインタを使用して、所与のバッファ116A〜116Nが読み出しバッファであるか又は書き込みバッファであるかを特定することができる。場合によっては、上記のように、バッファ116A〜116Nのいずれかは、読み出し/書き込みバッファとしても識別できる。
ディスプレイプロセッサ114は、複数のグラフィックスサーフェスからのバッファ116から、レンダリングされた出力データを読み出すことが可能である。次いで、ディスプレイプロセッサ114は、レンダリングされたグラフィックスサーフェスを、ディスプレイ装置106上に表示されるフレームバッファ160中のグラフィックスフレーム上にオーバーレイすることができる。フレームバッファ160は、グラフィックス処理システム102内の専用メモリとすることができる。ただし、一態様では、図1Bに示すように、フレームバッファ160は、メモリ104内にシステムRAM(ランダムアクセスメモリ)を直接備えることができる。
一態様では、グラフィックスフレームは、ウィンドウサーフェスなどの少なくとも1つのオンスクリーンサーフェスを含む。各グラフィックスサーフェスがオーバーレイされるレベルは、グラフィックスサーフェスに対して定義されるサーフェスレベルによって決定される。このサーフェスレベルは、アプリケーション命令118によってなど、ユーザプログラムによって定義できる。サーフェスレベルは、レンダリングされたサーフェスに関連するパラメータとして記憶できる。
サーフェスレベルは任意の数として定義でき、数が大きければ大きいほど、サーフェスは、表示されたグラフィックスフレーム上のより高くに表示されることになる。すなわち、2つのサーフェスの部分が重なる状況では、より低いサーフェスレベルをもつ任意のサーフェスの重なる部分の代わりに、より高いサーフェスレベルをもつサーフェスの重なる部分が表示されることになる。単純な例として、デスクトップコンピュータ上で使用される背景画像は、デスクトップ上のアイコンよりも低いサーフェスレベルを有する。重なる2つのサーフェスが一緒にブレンドできるように、サーフェスレベルは、場合によっては、透明度情報と合成されることがある。これらの場合、カラーキーイングを使用することができる。第1のサーフェス中のピクセルがキーカラーに一致しない場合、アルファ(透明度)ブレンディングが使用可能でなければ、第1のサーフェスを出力ピクセルとして選択することができる。アルファブレンディングが使用可能である場合、第1のサーフェスのピクセルと第2のサーフェスのピクセルとを通常通りブレンドすることができる。第1のサーフェスのピクセルがキーカラーに一致した場合、第2のサーフェスのピクセルを選択し、アルファブレンディングを実行しない。
一態様では、制御プロセッサ108は、カリフォルニア州サンディエゴのQualcomm(登録商標)社によって設計された移動局モデム中に埋め込まれたARM11プロセッサなどのAdvanced RISC(縮小命令セットコンピュータ)Machine(ARM)プロセッサとすることができる。一態様では、ディスプレイプロセッサ114は、Qualcomm社によって設計された移動局モデム中に埋め込まれるモバイルディスプレイプロセッサ(MDP)とすることもできる。プロセッサ108、110及び114のいずれかがバッファエリア112内のバッファ116A〜116Nにアクセスすることが可能である。一態様では、各プロセッサ108、110及び114は、レンダリング能力を設け、グラフィックスサーフェスのためのレンダリングされた出力データをバッファ116A〜116Nに書き込むことが可能である。
図2Aは、本開示の一態様に係る、オフスクリーンサーフェスのためのマルチバッファサポートを実装するために使用される装置200を例示するブロック図である。この態様では、図2Aに示す装置200は、図1Aに示す装置100の例示的な具体化である。装置200は、グラフィックス処理システム202とメモリ204とディスプレイ装置206とを含む。図1Aに示すメモリ104と同様に、図2のメモリ204は、アプリケーション命令218とAPIライブラリ220とドライバ222とのためのストレージ空間を含む。図1Aに示すグラフィックス処理システム102と同様に、図2のグラフィックス処理システム202は、プロセッサ208とグラフィックスプロセッサ210とディスプレイプロセッサ214とバッファエリア212とフレームバッファ260とを含む。プロセッサ208は、制御プロセッサ、又は汎用プロセッサとすることができる。一態様では、プロセッサ208はシステムCPU(中央処理装置)を備えることができる。
一態様では、図2Dに示すように、バッファエリア212はメモリ204内に含められるとしてもよい。フレームバッファ260は、グラフィックス処理システム202内の専用メモリとすることができる。ただし、一態様では、図2Dに示すように、フレームバッファ260はメモリ204内にシステムRAM(ランダムアクセスメモリ)を直接備えることができる。
図2Aの例では、バッファエリア212は、pbufferサーフェスのために使用される複数のバッファ216A〜216N(総称して216)、及びpixmapサーフェスのために使用される別の複数のバッファ217A〜217N(総称して217)を含む。バッファ216A〜216Nはオフスクリーンpbufferサーフェスに関連し、バッファ217A〜217Nはオフスクリーンpixmapサーフェスに関連する。上記のように、pbuffer及びpixmapはオフスクリーンサーフェスの例である。このようにして、pbufferサーフェスのためのレンダリングデータが記憶され、バッファ216A〜216Nから処理されることができるように、個々のオフスクリーンpbufferサーフェスは、複数のバッファ216A〜216Nに関連する。個々のオフスクリーンpixmapサーフェスは複数のバッファ217A〜217Nに関連する。上記のように、pbufferは、たとえば、OpenGLサーバサイド(ドライバ内部)動作に関連するメモリ空間に記憶できるオフスクリーンメモリバッファである。pixmapは、たとえば、クライアントアプリケーションに関連するメモリ空間に通常記憶できるオフスクリーン記憶領域である。一態様では、バッファ216及びバッファ217は、完全に別個のバッファ空間とすることができる。
個々の各バッファ216A〜216Nは、読み出しバッファ、書き込みバッファ、又はその両方として識別できる。同様に、個々の各バッファ217A〜217Nは、読み出しバッファ、書き込みバッファ、又はその両方として識別できる。一態様では、制御プロセッサ208、グラフィックスプロセッサ210、及び/又はディスプレイプロセッサ214は、バッファエリア212内のバッファ216A〜216N及び217A〜217Nを割り振り、これらのバッファのうちのどのバッファが読み出しバッファ、書き込みバッファ、又はその両方であるかを識別することが可能である。
一態様では、グラフィックスプロセッサ210は、オフスクリーンpbufferサーフェスをレンダリングし、レンダリングされたサーフェスデータを、バッファ216Aなどの書き込みバッファとして識別されたバッファに書き込む。レンダリングが完了した後、グラフィックスプロセッサ210は、バッファ216Aを読み出しバッファとして再識別し、バッファ216Nなどの別個のバッファを書き込みバッファとして識別する。次いで、グラフィックスプロセッサ210は、新規の、又は更新された、レンダリングされたサーフェスデータをバッファ216Nに書き込み、グラフィックスプロセッサ210又はディスプレイプロセッサ214は、バッファ216Aから前のレンダリングされたサーフェスデータを読み出す。グラフィックスプロセッサ210が、バッファ216Aから前のレンダリングされたサーフェスデータを、さらなるグラフィックス処理のためのテクスチャソースとして読み出すか、又は、ディスプレイプロセッサ214が、ディスプレイ装置206上に最終的に表示するために、バッファ216Aからレンダリングされたサーフェスデータを読み出す。1つのオフスクリーンpbufferサーフェスのために複数のバッファ216A〜216Nを利用することによって、オフスクリーンpbufferサーフェスのために読み出し及び書き込み動作を並列に実行することが可能である。
同様に、一態様では、グラフィックスプロセッサ210又は制御プロセッサ208は、オフスクリーンpixmapサーフェスをレンダリングし、レンダリングされたサーフェスデータを、バッファ217Aなど、書き込みバッファとして識別されたバッファに書き込むことができる。レンダリングが完了した後、グラフィックスプロセッサ210又は制御プロセッサ208は、バッファ217Aを読み出しバッファとして再識別し、バッファ217Nなどの別個のバッファを書き込みバッファとして識別することができる。次いで、グラフィックスプロセッサ210又は制御プロセッサ208は、新規の、又は更新された、レンダリングされたサーフェスデータをバッファ217Nに書き込み、グラフィックスプロセッサ210、制御プロセッサ208又はディスプレイプロセッサ214は、バッファ217Aから前のレンダリングされたサーフェスデータを読み出すことができる。1つのオフスクリーンpixmapサーフェスのために複数のバッファ217A〜217Nを利用することによって、読み出し及び書き込み動作を並列に実行することが可能である。pixmapサーフェスは、しばしば、プリレンダリングされた内容を含む可能性がより高く、しばしばファイルから読み出されることがある。
図2Bは、本開示の一態様による、図2Aに示すAPIライブラリ220のさらなる詳細を示すブロック図である。図2Aに関して前述したように、APIライブラリ220は、グラフィックスプロセッサ210、制御プロセッサ208、及び/又はディスプレイプロセッサ214によるアプリケーション実行中のアプリケーション命令218によって、メモリ204に記憶され、リンクされ、又は参照される。図2Cは、一態様による、図2Aに示すドライバ222のさらなる詳細を示すブロック図である。ドライバ222は、グラフィックスプロセッサ210、制御プロセッサ208、及び/又はディスプレイプロセッサ214によるアプリケーション実行中のアプリケーション命令218及び/又はAPIライブラリ220によって、メモリ204に記憶され、リンクされ、又は参照される。
図2Bでは、APIライブラリ220は、OpenGL ES API230と、OpenVG API232と、EGL API234とを含む。図2Cに示すドライバ222は、OpenGL ESドライバ240と、OpenVGドライバ242と、EGLドライバ244とを含む。OpenGL ES API230は、2D及び3Dグラフィックス機能など、OpenGL ESによってサポートされる機能を行うために、グラフィックス処理システム202によるアプリケーション実行中に、アプリケーション命令218によって起動されるAPIである。OpenGL ESドライバ240は、グラフィックス処理システム202中のOpenGL ES機能の低レベルのドライバのサポートのためのアプリケーション実行中に、アプリケーション命令218及び/又はOpenGL ES API230によって起動される。
OpenVG API232は、2Dベクトルグラフィックス機能など、OpenVGによってサポートされる機能を行うために、アプリケーション実行中にアプリケーション命令218によって起動されるAPIである。OpenVGドライバ242は、グラフィックス処理システム202中のOpenVG機能の低レベルドライバのサポートのためのアプリケーション実行中に、アプリケーション命令218及び/又はOpenVG API232によって起動される。
EGL AP234(図2B)及びEGLドライバ244(図2C)は、グラフィックス処理システム202中のEGL機能にサポートを行う。一態様では、EGL拡張を、EGL API234及びEGLドライバ244内に組み込むことができる。図2B〜図2Cの例では、サーフェスオーバーレイ及びオフスクリーンマルチバッファ機能のためのEGL拡張を行う。したがって、EGLサーフェスオーバーレイ拡張のために、サーフェスオーバーレイAPI236はEGL API234内に含まれ、サーフェスオーバーレイドライバ246はEGLドライバ244内に含まれる。同様に、EGLオフスクリーンマルチバッファ拡張のために、オフスクリーンマルチバッファAPI238はEGL API234内に含まれ、オフスクリーンマルチバッファドライバ248はEGLドライバ244内に含まれる。
EGLサーフェスオーバーレイ拡張は、ディスプレイ装置206上に表示される(2Dサーフェス、3Dサーフェス、及び/又はビデオサーフェスなどの)複数のグラフィックスサーフェスのオーバーレイのためのサーフェスオーバーレイスタックを与える。オンスクリーンとオフスクリーンサーフェスの両方を含むことができるグラフィックスサーフェスはそれぞれ、関連するサーフェスレベルをスタック内に有する。サーフェスのオーバーレイは、それにより、スタック内のサーフェスのオーバーレイ順序にしたがって達成される。サーフェスオーバーレイの例について、図3B及び図3Dに示し、以下でより詳細に論じる。一態様では、オーバーレイスタックは、ウィンドウサーフェスなどの少なくとも1つのオンスクリーンサーフェスを含む。
EGLオフスクリーンマルチバッファ拡張は、pbufferサーフェス又はpixmapサーフェスなど、グラフィックス処理システム202によって処理される各オフスクリーンサーフェスに関連する定義された数のバッファのためのサポートを行う。たとえば、図2Aに示すように、複数のバッファ216A〜216Nは、pbufferサーフェスに割り振られて関連し、複数のバッファ217A〜217Nは、単一のpixmapサーフェスに割り振られて関連するとしてもよい。さらに、図2Aに関して前述したように、EGLオフスクリーンマルチバッファ拡張は、各バッファを、読み出しバッファ、書き込みバッファ、又はその両方として識別できるようにする。
図3Aは、一態様による、各オフスクリーンサーフェスが複数のバッファに関連する複数のオフスクリーンサーフェス300A〜300Nの例を示すブロック図である。図3Aの例では、各オフスクリーンサーフェス300A〜300Nは、図1A又は図1Bに示す、グラフィックス処理システム102によって処理され、ディスプレイ装置106上に最終的に表示されるサーフェスである。これらのサーフェス300A〜300Nはまた、図2A又は図2Dに示すグラフィックス処理システム202によって処理されることがある。しかしながら、ただ例示のために、以下の図3A〜図3Dの説明では、サーフェス300A〜300Nがグラフィックス処理システム102によって処理されると仮定する。
各オフスクリーンサーフェス300A〜300Nは、2Dサーフェス、3Dサーフェス、又はビデオサーフェスを備えることができる。フレームバッファ160内でキャプチャされ、ディスプレイ装置106上に表示されるデータの各フレーム内で、オフスクリーンサーフェス300A〜300Nは、オーバーレイ順序にしたがってオーバーレイされる。この例を図3Bに示す。そのような方法では、2Dサーフェス、3Dサーフェス、及び/又はビデオサーフェスは、サーフェスオーバーレイスタック中にオーバーレイされ、ディスプレイ装置106上に一緒に表示できる。たとえば、ビデオゲームアプリケーションでは、あるゲームをプレイしているサーフェスに関係するサーフェスは、他のものでオーバーレイされる。場合によっては、静止画像データは、そのようなアプリケーションのオーバーレイスタック中のビデオデータでオーバーレイでき、そこで、静止画像データは背景グラフィックスを備え、ビデオデータは移動物体、スコアなどのためのデータを備えることができる。一態様では、オーバーレイスタックは、ウィンドウサーフェスなどの少なくとも1つのオンスクリーンサーフェスを含む。
オフスクリーンサーフェス300Aは、一態様によれば、グラフィックス処理システム102のバッファエリア112内で割り振られたバッファ316に関連する。バッファ316は複数のオフスクリーンサーフェスバッファ316A〜316Nを含む。各バッファ316A〜316Nは、読み出しバッファ、書き込みバッファ、又はその両方として識別され、オフスクリーンサーフェス300Aに関連するデータを、レンダリングするなど、保持することが可能である。
図3Aの例では、バッファ316Aは読み出しバッファとして識別され、バッファ316Nは書き込みバッファとして識別されている。したがって、他のデータがバッファ316Nに書き込まれている間、データは、バッファ316Aから読み出される。たとえば、グラフィックスプロセッサ110は、サーフェス300Aのための新規の又は更新されたサーフェスデータをバッファ316Nにレンダリングするプロセス中であるとすることができる。これが行われている間、グラフィックスプロセッサ110、ディスプレイプロセッサ114、又は制御プロセッサ108は、バッファ316Aから、サーフェス300Aのための前にレンダリングされたサーフェスデータを読み出すことができる。これらのタイプの読み出し及び書き込み動作が並列に行われることがあるので、オフスクリーンサーフェス300Aのためのレンダリングプロセス及び表示プロセスをグラフィックス処理システム102内で同時に行うことができる。
オフスクリーンサーフェス300Nは、一態様によれば、グラフィックス処理システム102のバッファエリア112内で割り振られたバッファ317に関連する。バッファ317は複数のオフスクリーンサーフェスバッファ317A〜317Nを含む。各バッファ317A〜317Nは、読み出しバッファ、書き込みバッファ、又はその両方として識別され、オフスクリーンサーフェス300Nに関連するデータを、レンダリングするなど、保持することが可能である。
図3Aの例では、バッファ317Aは読み出しバッファとして識別され、バッファ317Nは書き込みバッファとして識別されている。したがって、サーフェス300Nに関連する他のデータがバッファ317Nに書き込まれている間、サーフェス300Nに関連するデータがバッファ317Aから読み出される。たとえば、グラフィックスプロセッサ110は、サーフェス300Nのための新規の又は更新されたサーフェスデータをバッファ317Nにレンダリングするプロセス中とすることができる。これが行われている間、グラフィックスプロセッサ110、ディスプレイプロセッサ114、又は制御プロセッサ108は、バッファ317Aからサーフェス300Nのための前にレンダリングされたサーフェスデータを読み出すことができる。これらのタイプの読み出し及び書き込み動作が並列に行われることがあるので、オフスクリーンサーフェス300Nのためのレンダリングプロセス及び表示プロセスをグラフィックス処理システム102内で同時に行うことができる。
図3Bは、一態様に係る、オンスクリーンサーフェスとともにディスプレイ装置106上に表示される、図3Aに示すオフスクリーンサーフェス300A及び300Nに関連する、オーバーレイされたサーフェスデータの例を示すブロック図である。図3Aに関して今上述したように、オフスクリーンサーフェスバッファ316Aは、オフスクリーンサーフェス300Aに関連する読み出しバッファとしてバッファ316内で識別され、オフスクリーンサーフェスバッファ317Aは、オフスクリーンサーフェス300Nに関連する読み出しバッファとしてバッファ317内で識別された。したがって、オフスクリーンサーフェス300Aのための(レンダリングされたサーフェス出力データなどの)サーフェスデータをバッファ316Aから読み出し、オフスクリーンサーフェス300Nのためのサーフェスデータをバッファ317Aから読み出すことができる。
図3Bの例では、ディスプレイプロセッサ114がバッファ316Aからオフスクリーンサーフェス300Aのためのサーフェスデータを読み出し、グラフィックス処理システム102のフレームバッファ160内にそのようなデータをオフスクリーンサーフェスデータ319Aとして記憶すると仮定する。ディスプレイプロセッサ114は、また、バッファ(図示せず)からウィンドウサーフェスなどのオンスクリーンサーフェスのためのサーフェスデータを読み出し、フレームバッファ160内にそのようなデータをオンスクリーンサーフェスデータ323Aとして記憶する。さらに、ディスプレイプロセッサ114は、バッファ317Aからオフスクリーンサーフェス300Nのためのサーフェスデータを読み出し、フレームバッファ160内にそのようなデータをオフスクリーンサーフェスデータ321Aとして記憶することができる。このようにして、オフスクリーンサーフェスデータ319A及び321Aを、オンスクリーンサーフェスデータ323Aとともに、ディスプレイ装置106上に表示される画像データの1つのフレーム内に含めることができる。
一態様では、オフスクリーンサーフェスデータ319A及び321Aを、オンスクリーンサーフェスデータ323Aとともにサーフェスオーバーレイスタック内に含めることができる。この態様では、ディスプレイプロセッサ114は、サーフェスデータ319A、321A及び323Aの各々をスタック内の別個のサーフェスレベルに関連付け、それにより、オフスクリーンサーフェスデータ319A及び321A、ならびにオンスクリーンサーフェスデータ323Aのためのオーバーレイ順序を実装することができる。オフスクリーンサーフェスデータ319Aは、オフスクリーンサーフェス300Aのためのサーフェスデータの1つのフレームに関連し、オフスクリーンサーフェスデータ321Aは、オフスクリーンサーフェス300Nのためのサーフェスデータの1つのフレームに関連する。
一態様では、サーフェス300A及び300Nのレベル、又はそれらが特定のレベルに結び付けられたシーケンスを、サーフェスオーバーレイプロセス中に、両方とも考慮に入れることができる。ある場合では、複数のサーフェスは特定のレイヤに結び付けられる。レイヤは、後から前に(最もネガティブから最もポジティブに)処理できる。所与のレイヤ内で、複数のサーフェスは、それらがレイヤに結び付けられたシーケンス中で処理される。
図3Bに示すように、オフスクリーンサーフェスデータ319A及び321Aを、オンスクリーンサーフェスデータ323Aとともに、ユーザに対して可視であるスクリーンエリア330A内でディスプレイ装置106上に表示することができる。オフスクリーンサーフェスデータ319A及び321Aを、オンスクリーンサーフェスデータ323Aとともに、ディスプレイプロセッサ114によって使用されるオーバーレイ順序に基づいてオーバーレイされたサーフェスとしてスクリーンエリア330A内に表示することができる。オフスクリーンサーフェスデータ319A及び321Aは、フレームバッファ160内に含まれるのと同じ位置又は関係で表示されるとしてもよく、されないとしてもよい。サーフェスオーバーレイスタックは、ディスプレイ装置106上にサーフェスを表示するために任意のサーフェスオーバーレイレベルを割り当てるために使用されてもよい。この結果、グラフィックス処理システム102は、ディスプレイ装置106上でユーザに対して表示するためにオーバーレイされる2D、3D、及び/又はビデオサーフェスデータを与えることが可能である。たとえば、オフスクリーンサーフェス300Aが図3Bの例で3Dサーフェスであり、オフスクリーンサーフェス300Nがビデオサーフェスである場合、これらのサーフェスに関連する3Dサーフェスデータ及びビデオサーフェスデータは、ディスプレイ装置106上に表示できる。2D、3D、及び/又はビデオサーフェスデータの任意の組合せは、ディスプレイ装置106上にオーバーレイできる。
図3Cは、一態様に係る、異なる識別された読み出しバッファ及び書き込みバッファを持つ複数のオフスクリーンサーフェス300A〜300Nの例を示すブロック図である。図3Cでは、図3Aに示す例とは逆に、オフスクリーンサーフェスバッファ316Aは、オフスクリーンサーフェス300Aのための書き込みバッファとして識別され、オフスクリーンサーフェスバッファ316Nは、読み出しバッファとして識別されている。また、オフスクリーンサーフェス300Nに対して、オフスクリーンサーフェスバッファ317Aは、書き込みバッファとして識別され、オフスクリーンサーフェスバッファ317Nは読み出しバッファとして識別されている。
一態様では、制御プロセッサ108、グラフィックスプロセッサ110、及び/又はディスプレイプロセッサ114のうちの1つ又は複数は、バッファ316及び/又は317内にバッファ空間を割り振り、また、どのバッファ316A〜316N及び317A〜317Nがオフスクリーンサーフェス300A〜300Nに対して読み出しバッファ、書き込みバッファ、又はその両方であるかを識別することができる。図3A及び図3Cの例は、オフスクリーンサーフェスに適用されるにすぎないウィンドウサーフェスダブルバファリングの実装形態と同様に、任意の所与のバッファが所与の時点で読み出しバッファとして識別されるが、後で書き込みバッファとして識別できることを示す。
たとえば、図3Aでは、オフスクリーンサーフェスバッファ316Nは、書き込みバッファとして識別される。したがって、オフスクリーンサーフェス300Aのためのレンダリング出力データは、レンダリングプロセス中にグラフィックスプロセッサ110などによってバッファ316Nに書き込まれることがある。図3Aのバッファ316Aが読み出しバッファとして識別されるため、別個のデータがバッファ316Nに並列に書き込まれる間に、オフスクリーンサーフェス300Aのためのサーフェスデータ(たとえば、前のレンダリングされたデータなど)は、バッファ316Aから読み出されるとしてもよい。
たとえば、グラフィックスプロセッサ110がバッファ316Nへのデータのレンダリング及び書き込みを完了したとき、オフスクリーンサーフェス300Aのためのこのレンダリングされたデータがバッファ316Nから読み出されることができるように、図3C中に示すように、バッファ316Nは、読み出しバッファとして再識別されるとしてもよい。同様に、別個のデータがバッファ316Nから並列に読み出されている間、オフスクリーンサーフェス300Aのための新しいレンダリングされた出力データは、バッファ316Aに書き込まれることができるように、図3Cに示すように、バッファ316Aは、書き込みバッファとして再識別されるとしてもよい。したがって、あるシナリオでは、バッファ316A〜316Nのうちの1つ又は複数は、異なる時点で読み出しバッファとして識別されることと書き込みバッファとして識別されることとの間で切り替わることができる。
同様に、バッファ317A〜317Nのうちの1つ又は複数は、異なる時点で読み出しバッファとして識別されることと書き込みバッファとして識別されることとの間で切り替わることができる。図3Aでは、バッファ317Aは読み出しバッファとして識別され、バッファ317Nは書き込みバッファとして識別される。ただし、図3Cに示すように、バッファ317Aは書き込みバッファとして再識別され、バッファ317Nは読み出しバッファとして再識別されている。
図3Dは、一態様に係る、オンスクリーンサーフェスとともにディスプレイ装置106上に表示される、図3Cに示すオフスクリーンサーフェス300A及び300Nに関連する、オーバーレイされたサーフェスデータの例を示すブロック図である。オフスクリーンサーフェスバッファ316Nがオフスクリーンサーフェス300Aのための読み出しバッファとして識別されるので、ディスプレイプロセッサ114は、バッファ316Nからデータを読み出し、フレームバッファ160内にそのようなデータをオフスクリーンサーフェスデータ319Nとして記憶することができる。ディスプレイプロセッサ114は、また、バッファ317Nからオフスクリーンサーフェス300Nに関連するデータを読み出し、フレームバッファ160内にそのようなデータをオフスクリーンサーフェスデータ321Nとして記憶することができる。このようにして、オフスクリーンサーフェスデータ319N及び321Nを、オンスクリーンサーフェスデータ323Nとともに、ディスプレイ装置106上に表示される画像データの1つのフレーム内に含めることができる。
図3Bの例と同様に、図3Dに示すオフスクリーンサーフェスデータ319N及び321Nは、オンスクリーンサーフェスデータ323Nとともに、オーバーレイされるサーフェスに順序を与えるサーフェスオーバーレイスタック内に含まれるとしてもよい。ディスプレイプロセッサ114は、サーフェスデータ319N、321N及び323Nの各々をスタック内の別個のサーフェスレベルに関連付け、それにより、オフスクリーンサーフェスデータ319N及び321N、ならびにオンスクリーンサーフェスデータ323Nのためのオーバーレイ順序を実装することができる。次いで、オフスクリーンサーフェスデータ319N及び321Nは、オンスクリーンサーフェスデータ323Nとともに、ユーザに対して可視であるスクリーンエリア330N内でディスプレイ装置106上に表示されるとしてもよい。サーフェスデータ319N、321N及び323Nは、ディスプレイプロセッサ114によって使用されるオーバーレイ順序に基づいてオーバーレイされたサーフェスとして、スクリーンエリア330N内に表示されるとしてもよい。
図4は、一態様に係る、図1A又は図1Bのグラフィックス処理システム102に示す制御プロセッサ108、グラフィックスプロセッサ110、及び/又はディスプレイプロセッサ114のうちの1つ又は複数によって、あるいは、図2A又は図2Dのグラフィックス処理システム202に示す制御プロセッサ208、グラフィックスプロセッサ210、及び/又はディスプレイプロセッサ214のうちの1つ又は複数によって実行される方法の流れ図である。ただ例示のために、以下の説明では、図4に示す方法がグラフィックス処理システム102中の1つ又は複数のプロセッサによって実行されると仮定する。
最初に、制御プロセッサ108、グラフィックスプロセッサ110、及び/又はディスプレイプロセッサ114のうちの1つ又は複数は、グラフィックス処理において使用されるオフスクリーンサーフェスにすべてが関連するバッファ116A〜116Nなどの複数のバッファを割り振る(図4の400)。バッファ116A〜116Nは、バッファエリア112内に割り振られ、定義された数のバッファを備えることができる。オフスクリーンサーフェスは、pbufferサーフェス又はpixmapサーフェスを備えることができる。一態様では、バッファは、バッファエリア112の第1のエリア内か、又はバッファエリア112の第2のエリア内のいずれかに割り振られることができる。場合によっては、第1のエリアはpbufferに関連し、第2のエリアはpixmapに関連することがあり、第1のエリアと第2のエリアとは異なるエリアである。
バッファ116A〜116N内の第1のバッファは、書き込みバッファとして識別される(図4の402)。書き込み動作中に、レンダリングデータなどのオフスクリーンサーフェスに関係する情報は、第1のバッファに書き込まれる。バッファ116A〜116N内の第2のバッファは、読み出しバッファとして識別される(図4の404)。読み出し動作中に、オフスクリーンサーフェスに関係する情報は、第2のバッファから読み出される。一態様では、書き込みバッファが読み出しバッファとは異なるように、第1のバッファと第2のバッファとは異なるバッファである。
406において、グラフィックスプロセッサ110又は制御プロセッサ108などの1つ又は複数のプロセッサは、オフスクリーンサーフェスをレンダリングし、書き込み動作中にレンダリング情報を第1のバッファに書き込むことによって、レンダリング情報を生成する。408において、ディスプレイプロセッサ114などの1つ又は複数のプロセッサは、読み出し動作中に、表示のために第2のバッファからオフスクリーンサーフェスに関係する情報を読み出す。そのような方法では、一態様によれば、複数のバッファは、オフスクリーンサーフェスのために備えられることができる。この態様では、読み出しバッファ及び/又は書き込みバッファとして関連するバッファを識別するために、(たとえば、以下でより詳細に説明するeglBufferMakeCurrentQUALCOMM機能などの)バッファ選択機能が起動される。たとえば、オフスクリーンサーフェスのレンダリングが所与のフェース中に完了し、レンダリング情報が第1のバッファに書き込まれたとき、たとえば、バッファ選択機能は、レンダリング情報が読み出され、表示される画像又はビデオのフレーム内にオフスクリーンサーフェスが合成されるように、第1のバッファを読み出しバッファとして識別するために起動される。バッファ選択機能の起動は、また、オフスクリーンサーフェスのための新しいレンダリング情報が第2のバッファに書き込まれることができるように、第2のバッファを書き込みバッファとして識別することができる。
このように、制御プロセッサ108、グラフィックスプロセッサ110、及び/又はディスプレイプロセッサ114のうちの1つ又は複数は、オフスクリーンサーフェスに対して、新規の又は更新されたサーフェスデータを第1の(書き込み)バッファに書き込んでいる間、第2の(読み出し)バッファからサーフェスデータを同時に読み出すことができる。それにより、オフスクリーンサーフェスのためのマルチバッファサポートは提供される。複数のサーフェス(マルチバッファサポートを有する各サーフェス)に関連するサーフェスデータは、一態様では、ディスプレイプロセッサ114によってバッファエリア112からサーフェスオーバーレイスタックに読み出され、オーバーレイ順序にしたがってディスプレイ装置106上に表示するために与えられる。これらのサーフェスは、2Dサーフェス、3Dサーフェス、及び/又はビデオサーフェスを備えることができる。
図5は、一態様に係る、図1A又は図1Bのグラフィックス処理システム102に示す制御プロセッサ108、グラフィックスプロセッサ110、及び/又はディスプレイプロセッサ114のうちの1つ又は複数によって、あるいは、図2A又は図2Dのグラフィックス処理システム202に示す制御プロセッサ208、グラフィックスプロセッサ210、及び/又はディスプレイプロセッサ214のうちの1つ又は複数によって実行される方法の流れ図である。ただ例示のために、以下の説明では、図5に示す方法がグラフィックス処理システム102中の1つ又は複数のプロセッサによって実行されると仮定する。
最初に、500において、制御プロセッサ108、グラフィックスプロセッサ110、及び/又はディスプレイプロセッサ114のうちの1つ又は複数は、それぞれがオフスクリーンサーフェスに関連するMを2以上とする複数の「M個の」バッファを割り振る。たとえば、M個のバッファは(ただ例示のために)第1のバッファと第2のバッファとを含む。書き込み動作中に第1のバッファにオフスクリーンサーフェスに関係する情報が書き込まれるように、第1のバッファはオフスクリーンサーフェスのための書き込みバッファとして識別される。読み出し動作中に第2のバッファからオフスクリーンサーフェスに関係する情報が読み出されるように、第2のバッファは、オフスクリーンサーフェスのための読み出しバッファとして識別される。
502において、1つ又は複数のプロセッサは、それぞれが追加のオフスクリーンサーフェスに関連する、Nを2以上とする複数の「N個の」バッファを割り振る。たとえば、N個のバッファは(ただ例示のために)第3のバッファと第4のバッファとを含む。追加の書き込み動作中に第3のバッファに追加のオフスクリーンサーフェスに関係する情報が書き込まれるように、第3のバッファは追加のオフスクリーンサーフェスのための書き込みバッファとして識別される。追加の読み出し動作中に第4のバッファから追加のオフスクリーンサーフェスに関係する情報が読み出されるように、第4のバッファは、追加のオフスクリーンサーフェスのための読み出しバッファとして識別される。
504において、ディスプレイプロセッサ114などの1つ又は複数のプロセッサは、第2のバッファからオフスクリーンサーフェスに関係する情報を読み出す。506において、ディスプレイプロセッサ114などの1つ又は複数のプロセッサは、第4のバッファから追加のオフスクリーンサーフェスに関係する情報を読み出す。
508において、1つ又は複数のプロセッサは、オーバーレイ順序にしたがって、(オフスクリーンサーフェスに関連する)第2のバッファ及び(追加のオフスクリーンサーフェスに関連する)第4のバッファの内容を、オンスクリーンサーフェスに関連するデータと組み合わせる。たとえば、この情報はサーフェスオーバーレイスタック内で組み合わせることができる。
510において、1つ又は複数のプロセッサは、ディスプレイ装置106などのディスプレイ装置上で、オフスクリーンサーフェス及び追加のオフスクリーンサーフェスをオンスクリーンサーフェスとともにオーバーレイする。サーフェスは、オーバーレイ順序にしたがってオーバーレイされる。
前述のように、オフスクリーンサーフェスのためのマルチバッファサポートは、システム102及び/又はシステム202(図2A)内の1つ又は複数のプロセッサによって実装できる。一態様では、1つ又は複数のプロセッサによって実行されると、オフスクリーンサーフェスのためのマルチバッファサポートを実装するための機能は、APIライブラリ120及び/又はドライバ122内又はAPIライブラリ220及び/又はドライバ222(図2A)内に含まれる。たとえば、そのような機能は、オフスクリーンマルチバッファAPI238(図2B)内及び/又はオフスクリーンマルチバッファドライバ248(図2C)内に含まれる。一態様では、この機能はEGL拡張の一部として与えられる。ただ例示のために、以下の説明では、そのような機能がEGL拡張(すなわち、EGL仕様への拡張)の一部として与えられると仮定する。
一態様では、オフスクリーンサーフェスのマルチバッファサポートのためにEGL拡張が与えられる。ここで、EGLコード内で、サーフェス生成時に、eglCreatePbufferSurface又はeglCreatePixmapSurfaceに渡される属性リストは、オフスクリーンサーフェスに関連付けるべきバッファの総数を示すEGLintが後に続くEGL_BACK_BUFFERトークンを含むことができる。たとえば、pixmapオフスクリーンサーフェスの場合、指定されたバッファの数が1よりも大きい場合、ある事例では、pixmapパラメータは、pixmapサーフェスにおける各バッファのために使用するNativePixmapTypesへのポインタのNULL終端アレイとして扱われる。
一態様では、各オフスクリーンサーフェスは描画(書き込み)バッファに関連し、読み出しバッファにも関連する。したがって、EGLSurface構造はdraw_currentパラメータとread_currentパラメータとを含むように変更できる。draw_currentパラメータの値は現在の描画バッファを指定し、read_currentパラメータの値は現在の読み出しバッファを指定する。draw_current及びread_currentは、いずれもEGLint型とすることができる。
関数eglBufferMakeCurrentQUALCOMMは、マルチバッファリングされたサーフェスのdraw_current及びread_currentを設定するために使用できる。eglBufferMakeCurrentQUALCOMMの例示的な関数宣言を以下に示す。
Figure 0005166552
一態様に係る、オフスクリーンサーフェスのためのマルチバッファサポートを行うEGL拡張のための例示的なEGLコードは、ただ例示のために以下に示される。この例示的なコードは、eglBufferMakeCurrentQUALCOMM関数を利用する。
Figure 0005166552
この例示的なEGLコードでは、既存のEGL_BACK_BUFFERトークンの後にEGLintの値5が続くので、オフスクリーンサーフェス属性は、割り振られ、サーフェスに関連付けられる合計5つのバッファを要求するように初期化される。この例示的なコードでは、ネイティブAPIを用いてすでにビデオストリームが作成されており、video_poolリストに対してNULL終端アレイを与えると仮定する。次いで、このコードは、EGL仕様において与えられるeglCreatePixmapSurface関数呼び出しを使用して、ビデオに対応するマルチバッファリングされたpixmapサーフェスを生成する。
ビデオ処理中に、読み出しバッファ(又は表示されるバッファ)は、video_poolリスト内のインデックスを変更することができる。EGLによって使用される現在のインデックスを設定するため、及び現在の描画(書き込み)及び読み出しバッファを設定するために、eglインデックスが変化したときはいつでもBufferMakeCurrentQUALCOMMを呼び出すことができる。例示的なコードでは、現在の書き込みバッファと読み出しバッファの両方が、新しいビデオインデックスである同じインデックスidxを用いて設定される。この例では、識別された書き込みバッファと読み出しバッファとが同じバッファであるが、確かに常にこうであるとは限らない。多くの状況では、図3A〜図3Dの例に示すように、識別された書き込みバッファと読み出しバッファとは異なるバッファである。
本開示で説明する技術は、汎用マイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、又は他の同等の論理デバイス内に実装できる。したがって、本明細書で使用する「プロセッサ」又は「コントローラ」という用語は、前述の構造、又は本明細書に記載の技法の実装に好適な他の構造のいずれかを指す。
図1〜図4に示す様々な構成要素は、ハードウェア及び/又はソフトウェアの任意の適切な組合せによって実現できる。図1〜図4では、様々な構成要素は、別々のユニット又はモジュールとして示される。しかしながら、図1A〜図4を参照しながら説明した様々な構成要素のすべて又はいくつかは、共通ハードウェア及び/又はソフトウェア内の組合せユニット又はモジュールに統合できる。したがって、構成要素、ユニット、又はモジュールとしての特徴の表現は、説明しやすいように特定の機能的特徴を強調するものであり、別々のハードウェア又はソフトウェア構成要素によるそのような特徴の実現を必ずしも必要としない。場合によっては、様々なユニットを、1つ又は複数のプロセッサによって実行されるプログラマブルプロセスとして実装できる。
本明細書で説明する構成要素及び技法は、ハードウェア、ソフトウェア、ファームウェア、又はそれらの任意の組合せで実装できる。モジュール又は構成要素として説明する機能は、集積論理デバイスに一緒に、又はディスクリートであるが相互運用可能な論理デバイスとして別々に実装できる。様々な態様では、そのような構成要素は、少なくとも部分的に、集積回路チップ又はチップセットなど、まとめて集積回路デバイスと呼ぶことができる1つ又は複数の集積回路デバイスとして形成することができる。そのような回路は、単一の集積回路チップデバイス中、又は複数の相互運用可能な集積回路チップデバイス中に設けることができ、様々な画像、ディスプレイ、音声、又は他のマルチメディアアプリケーション及びデバイスのいずれかにおいて使用できる。いくつかの態様では、たとえば、そのような構成要素は、ワイヤレス通信デバイスハンドセットなどのモバイルデバイスの一部をなすことができる。
ソフトウェアで実装した場合、これらの技法は、1つ又は複数のプロセッサによって実行されると、上記で説明した方法の1つ又は複数を実行する命令をもつコードを備えるコンピュータ可読媒体によって少なくとも部分的に実現できる。コンピュータ可読媒体は、パッケージング材料を含む、コンピュータプログラム製品の一部をなすことができる。コンピュータ可読媒体は、同期ダイナミックランダムアクセスメモリ(SDRAM)などのランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、不揮発性ランダムアクセスメモリ(NVRAM)、電気消去可能プログラマブル読み出し専用メモリ(EEPROM)、埋込みダイナミックランダムアクセスメモリ(eDRAM)、スタティックランダムアクセスメモリ(SRAM)、FLASHメモリ、磁気又は光学データ記憶媒体を備えることができる。
本技法は、追加又は代替として、命令又はデータ構造の形態でコードを搬送又は伝達し、1つ又は複数のプロセッサによってアクセス、読み出し、及び/又は実行できるコンピュータ可読通信媒体によって、少なくとも部分的に実現できる。いかなる接続もコンピュータ可読媒体と適切に呼ぶことができる。たとえば、ソフトウェアが、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(DSL)、又は赤外線、無線、及びマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、又は他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、又は赤外線、無線、及びマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。利用される任意のソフトウェアは、1つ又は複数のDSP、汎用マイクロプロセッサ、ASIC、FPGA、又は他の等価な集積又はディスクリート論理回路など、1つ又は複数のプロセッサによって実行できる。
本開示の様々な態様について説明した。これら及び他の態様は以下の特許請求の範囲内に入る。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[1]
グラフィックス処理において使用されるオフスクリーンサーフェスにすべてが関連する複数のバッファを割り振ることと、
書き込み動作中に前記オフスクリーンサーフェスに関係する情報が前記バッファ内の第1のバッファに書き込まれるように、前記第1のバッファを前記オフスクリーンサーフェスのための書き込みバッファとして識別することと、
読み出し動作中に前記オフスクリーンサーフェスに関係する情報が前記バッファ内の第2のバッファから読み出されるように、前記第2のバッファを前記オフスクリーンサーフェスのための読み出しバッファとして識別することと
を具備する方法。
[2]
前記バッファを割り振ることは、グラフィックス処理システムの1つ又は複数のバッファエリア内の前記バッファを割り振ることを具備する、[1]の方法。
[3]
前記グラフィックス処理システムの前記1つ又は複数のバッファエリア内の前記バッファを割り振ることは、pbufferに関連する前記1つ又は複数のバッファエリアの第1のエリア内、又はpixmapに関連する前記1つ又は複数のバッファエリアの第2のエリア内のいずれかの前記バッファを割り振ることを具備する、[2]の方法。
[4]
前記第1のバッファを前記読み出しバッファとして識別し、前記第2のバッファを前記書き込みバッファとして識別するバッファ選択機能を呼び出すこと
をさらに具備する、[1]の方法。
[5]
前記オフスクリーンサーフェスをレンダリングすることによってレンダリング情報を生成することと、
前記書き込み動作中に前記レンダリング情報を前記第1のバッファに書き込むことと
をさらに具備する、[1]の方法。
[6]
前記読み出し動作中に表示のために前記オフスクリーンサーフェスに関係する情報を前記第2のバッファから読み出すこと
をさらに具備する、[1]の方法。
[7]
前記書き込みバッファが前記読み出しバッファとは異なるように、前記第1のバッファと前記第2のバッファとが異なるバッファである、[1]の方法。
[8]
グラフィックス処理において使用される追加のオフスクリーンサーフェスにすべてが関連する追加のバッファを割り振ることと、
追加の書き込み動作中に前記追加のオフスクリーンサーフェスに関係する情報が前記追加のバッファ内の第3のバッファに書き込まれるように、前記第3のバッファを前記追加のオフスクリーンサーフェスのための書き込みバッファとして識別することと、
追加の読み出し動作中に前記追加のオフスクリーンサーフェスに関係する情報が前記追加のバッファ内の第4のバッファから読み出されるように、前記第4のバッファを前記追加のオフスクリーンサーフェスのための読み出しバッファとして識別することと
をさらに具備する、[1]の方法
[9]
前記オフスクリーンサーフェスのための前記第2のバッファの内容と、前記追加のオフスクリーンサーフェスのための前記第4のバッファの内容と、オンスクリーンサーフェスに関連するデータとを、オーバーレイ順序にしたがって組み合わせることと、
前記オーバーレイ順序に基づいて表示するために、前記オフスクリーンサーフェスと、前記追加のオフスクリーンサーフェスと、前記オンスクリーンサーフェスとをオーバーレイすることと
をさらに具備する、[8]の方法。
[10]
前記オフスクリーンサーフェスは、2次元サーフェス、3次元サーフェス、又はビデオサーフェスを具備し、
前記追加のオフスクリーンサーフェスは、2次元サーフェス、3次元サーフェス、又はビデオサーフェスを具備する、
[9]の方法。
[11]
前記方法は、1つ又は複数のプロセッサによって実行され、前記1つ又は複数のプロセッサは、それぞれ、ディスプレイプロセッサ、グラフィックスプロセッサ、又は汎用プロセッサを具備する、[1]の方法。
[12]
グラフィックス処理において使用されるオフスクリーンサーフェスにすべてが関連する複数のバッファを割り振ることと、
書き込み動作中に前記オフスクリーンサーフェスに関係する情報が前記バッファ内の第1のバッファに書き込まれるように、前記第1のバッファを前記オフスクリーンサーフェスのための書き込みバッファとして識別することと、
読み出し動作中に前記オフスクリーンサーフェスに関係する情報が前記バッファ内の第2のバッファから読み出されるように、前記第2のバッファを前記オフスクリーンサーフェスのための読み出しバッファとして識別することと
を、1つ又は複数のプログラマブルプロセッサに行わせるための命令を具備するコンピュータ可読媒体。
[13]
前記バッファを割り振ることを前記1つ又は複数のプロセッサに行わせるための前記命令は、グラフィックス処理システムの1つ又は複数のバッファエリア内の前記バッファを割り振ることを前記1つ又は複数のプロセッサに行わせるための命令を具備する、[12]のコンピュータ可読媒体。
[14]
前記グラフィックス処理システムの前記1つ又は複数のバッファエリア内の前記バッファを割り振ることを前記1つ又は複数のプロセッサに行わせるための前記命令は、pbufferに関連する前記1つ又は複数のバッファエリアの第1のエリア内、又はpixmapに関連する前記1つ又は複数のバッファエリアの第2のエリア内のいずれかの前記バッファを割り振ることを前記1つ又は複数のプロセッサに行わせるための命令を具備する、[13]のコンピュータ可読媒体。
[15]
前記第1のバッファを前記読み出しバッファとして識別し、前記第2のバッファを前記書き込みバッファとして識別するバッファ選択機能を呼び出すこと
を前記1つ又は複数のプロセッサに行わせるための命令をさらに具備する、[12]のコンピュータ可読媒体。
[16]
前記オフスクリーンサーフェスをレンダリングすることによってレンダリング情報を生成することと、
前記書き込み動作中に前記レンダリング情報を前記第1のバッファに書き込むことと
を前記1つ又は複数のプロセッサに行わせるための命令をさらに具備する、[12]のコンピュータ可読媒体。
[17]
前記読み出し動作中に表示のために前記オフスクリーンサーフェスに関係する情報を前記第2のバッファから読み出すこと
を前記1つ又は複数のプロセッサに行わせるための命令をさらに具備する、[12]のコンピュータ可読媒体。
[18]
前記書き込みバッファが前記読み出しバッファとは異なるように、前記第1のバッファと前記第2のバッファとが異なるバッファである、[12]のコンピュータ可読媒体。
[19]
グラフィックス処理において使用される追加のオフスクリーンサーフェスにすべてが関連する追加のバッファを割り振ることと、
追加の書き込み動作中に前記追加のオフスクリーンサーフェスに関係する情報が前記追加のバッファ内の第3のバッファに書き込まれるように、前記第3のバッファを前記追加のオフスクリーンサーフェスのための書き込みバッファとして識別することと、
追加の読み出し動作中に前記追加のオフスクリーンサーフェスに関係する情報が前記追加のバッファ内の第4のバッファから読み出されるように、前記第4のバッファを前記追加のオフスクリーンサーフェスのための読み出しバッファとして識別することと
を前記1つ又は複数のプロセッサに行わせるための命令をさらに具備する、[12]のコンピュータ可読媒体。
[20]
前記オフスクリーンサーフェスのための前記第2のバッファの内容と、前記追加のオフスクリーンサーフェスのための前記第4のバッファの内容と、オンスクリーンサーフェスに関連するデータとを、オーバーレイ順序にしたがって組み合わせることと、
前記オーバーレイ順序に基づいて表示するために、前記オフスクリーンサーフェスと、前記追加のオフスクリーンサーフェスと、前記オンスクリーンサーフェスとをオーバーレイすることと
を前記1つ又は複数のプロセッサに行わせるための命令をさらに具備する、[19]のコンピュータ可読媒体。
[21]
前記オフスクリーンサーフェスは、2次元サーフェス、3次元サーフェス、又はビデオサーフェスを具備し、
前記追加のオフスクリーンサーフェスは、2次元サーフェス、3次元サーフェス、又はビデオサーフェスを具備する、
[20]のコンピュータ可読媒体。
[22]
1つ又は複数のバッファエリアと、
グラフィックス処理において使用されるオフスクリーンサーフェスにすべてが関連する前記1つ又は複数のバッファエリア内の複数のバッファを割り振るように構成された1つ又は複数のプロセッサとを備え、
前記1つ又は複数のプロセッサは、書き込み動作中に前記オフスクリーンサーフェスに関係する情報が前記バッファ内の第1のバッファに書き込まれ、読み出し動作中に前記オフスクリーンサーフェスに関係する情報が前記バッファ内の第2のバッファから読み出されるように、前記第1のバッファを前記オフスクリーンサーフェスのための書き込みバッファとして識別し、さらに前記第2のバッファを前記オフスクリーンサーフェスのための読み出しバッファとして識別するようにさらに構成される装置。
[23]
前記1つ又は複数のプロセッサは、pbufferに関連する前記1つ又は複数のバッファエリアの第1のエリア内、又はpixmapに関連する前記1つ又は複数のバッファエリアの第2のエリア内のいずれかの前記バッファを割り振るように構成される、[22]の装置。
[24]
前記1つ又は複数のプロセッサは、前記第1のバッファを前記読み出しバッファとして識別し、前記第2のバッファを前記書き込みバッファとして識別するバッファ選択機能を呼び出すようにさらに構成される、[22]の装置。
[25]
前記1つ又は複数のプロセッサは、前記オフスクリーンサーフェスをレンダリングすることによってレンダリング情報を生成し、前記書き込み動作中に前記レンダリング情報を前記第1のバッファに書き込むようにさらに構成される、[22]の装置。
[26]
前記1つ又は複数のプロセッサは、前記読み出し動作中に表示のために前記オフスクリーンサーフェスに関する情報を前記第2のバッファから読み出すようにさらに構成される、[22]の装置。
[27]
前記書き込みバッファが前記読み出しバッファとは異なるように、前記第1のバッファと前記第2のバッファとが異なるバッファである、[22]の装置。
[28]
前記1つ又は複数のプロセッサは、グラフィックス処理において使用される追加のオフスクリーンサーフェスにすべてが関連する追加のバッファを割り振り、追加の書き込み動作中に前記追加のオフスクリーンサーフェスに関係する情報が前記追加のバッファ内の第3のバッファに書き込まれ、追加の読み出し動作中に前記追加のオフスクリーンサーフェスに関係する情報が前記追加のバッファ内の第4のバッファから読み出されるように、前記第3のバッファを前記追加のオフスクリーンサーフェスのための書き込みバッファとして識別し、前記第4のバッファを前記追加のオフスクリーンサーフェスのための読み出しバッファとして識別するようにさらに構成される、[22]の装置。
[29]
前記1つ又は複数のプロセッサは、前記オフスクリーンサーフェスのための前記第2のバッファの内容と、前記追加のオフスクリーンサーフェスのための前記第4のバッファの内容と、オンスクリーンサーフェスに関連するデータとをオーバーレイ順序にしたがって組み合わせ、前記オーバーレイ順序に基づいて表示するために、前記オフスクリーンサーフェスと、前記追加のオフスクリーンサーフェスと、前記オンスクリーンサーフェスとをオーバーレイするようにさらに構成される、[28]の装置。
[30]
前記オフスクリーンサーフェスは、2次元サーフェス、3次元サーフェス、又はビデオサーフェスを具備し、
前記追加のオフスクリーンサーフェスは、2次元サーフェス、3次元サーフェス、又はビデオサーフェスを具備する、
[29]の装置。
[31]
前記1つ又は複数のプロセッサは、それぞれディスプレイプロセッサ、グラフィックスプロセッサ、又は汎用プロセッサを具備する、[22]の装置。
[32]
前記装置は、ワイヤレス通信デバイスハンドセット、パーソナルコンピュータ、又はラップトップデバイスを具備する、[22]の装置。
[33]
前記装置は、1つ又は複数の集積回路デバイスを具備する、[22]の装置。
[34]
グラフィックス処理において使用されるオフスクリーンサーフェスにすべてが関連する複数のバッファを割り振るための手段と、
書き込み動作中に前記オフスクリーンサーフェスに関係する情報が前記バッファ内の第1のバッファに書き込まれるように、前記第1のバッファを前記オフスクリーンサーフェスのための書き込みバッファとして識別するための手段と、
読み出し動作中に前記オフスクリーンサーフェスに関係する情報が前記バッファ内の第2のバッファから読み出されるように、前記第2のバッファを前記オフスクリーンサーフェスのための読み出しバッファとして識別するための手段と
を具備する装置。
[35]
前記バッファを割り振るための前記手段は、グラフィックス処理システムの1つ又は複数のバッファエリア内の前記バッファを割り振るための手段を具備する、[34]の装置。
[36]
前記グラフィックス処理システムの前記1つ又は複数のバッファエリア内の前記バッファを割り振るための前記手段は、pbufferに関連する前記1つ又は複数のバッファエリアの第1のエリア内、又はpixmapに関連する前記1つ又は複数のバッファエリアの第2のエリア内のいずれかの前記バッファを割り振るための手段を具備する、[35]の装置。
[37]
前記第1のバッファを前記読み出しバッファとして識別し、前記第2のバッファを前記書き込みバッファとして識別するバッファ選択機能を呼び出すための手段
をさらに具備する、[34]の装置。
[38]
前記オフスクリーンサーフェスをレンダリングすることによってレンダリング情報を生成するための手段と、
前記書き込み動作中に前記レンダリング情報を前記第1のバッファに書き込むための手段と
をさらに具備する、[34]の装置。
[39]
前記読み出し動作中に表示のために前記オフスクリーンサーフェスに関係する情報を前記第2のバッファから読み出すための手段
をさらに具備する、[34]の装置。
[40]
前記書き込みバッファが前記読み出しバッファとは異なるように、前記第1のバッファと前記第2のバッファとが異なるバッファである、[34]の装置。
[41]
グラフィックス処理において使用される追加のオフスクリーンサーフェスにすべてが関連する追加のバッファを割り振るための手段と、
追加の書き込み動作中に前記追加のオフスクリーンサーフェスに関係する情報が前記追加のバッファ内の第3のバッファに書き込まれるように、前記第3のバッファを前記追加のオフスクリーンサーフェスのための書き込みバッファとして識別するための手段と、
追加の読み出し動作中に前記追加のオフスクリーンサーフェスに関係する情報が前記追加のバッファ内の第4のバッファから読み出されるように、前記第4のバッファを前記追加のオフスクリーンサーフェスのための読み出しバッファとして識別するための手段と
をさらに具備する、[34]の装置。
[42]
前記オフスクリーンサーフェスのための前記第2のバッファの内容と、前記追加のオフスクリーンサーフェスのための前記第4のバッファの内容と、オンスクリーンサーフェスに関連するデータとを、オーバーレイ順序にしたがって組み合わせるための手段と、
前記オーバーレイ順序に基づいて表示するために、前記オフスクリーンサーフェスと、前記追加のオフスクリーンサーフェスと、前記オンスクリーンサーフェスとをオーバーレイするための手段と
をさらに具備する、[41]の装置。
[43]
前記オフスクリーンサーフェスは、2次元サーフェス、3次元サーフェス、又はビデオサーフェスを具備し、
前記追加のオフスクリーンサーフェスは、2次元サーフェス、3次元サーフェス、又はビデオサーフェスを具備する、
[42]の装置。

Claims (35)

  1. 1つ又は複数のプロセッサによって実行される方法であって、
    前記1つ又は複数のプロセッサのうちの一つによるグラフィックス処理において使用される第1のオフスクリーンサーフェスに対して、メモリの1つ又は複数のバッファエリア内に含まれている複数のバッファを割り振ることと、
    書き込み動作中に前記第1のオフスクリーンサーフェスに関係する情報が前記バッファ内の第1のバッファに書き込まれるように、前記第1のバッファを前記第1のオフスクリーンサーフェスのための書き込みバッファとして識別することと、
    読み出し動作中に前記第1のオフスクリーンサーフェスに関係する情報が前記バッファ内の第2のバッファから読み出されるように、前記第2のバッファを前記第1のオフスクリーンサーフェスのための読み出しバッファとして識別することと、
    書き込み動作中に前記第1のオフスクリーンサーフェスに関係する情報が第3のバッファに書き込まれるように、前記第3のバッファを前記第1のオフスクリーンサーフェスのための書き込みバッファとして識別するバッファ選択機能を呼び出すことと
    を具備し、
    前記第1のバッファ、前記第2のバッファ、前記第3のバッファは、異なるバッファである、方法。
  2. 前記バッファを割り振ることは、グラフィックス処理システムの前記1つ又は複数のバッファエリア内の前記バッファを割り振ることを具備する、請求項1記載の方法。
  3. 前記グラフィックス処理システムの前記1つ又は複数のバッファエリア内の前記バッファを割り振ることは、pbufferに関連する前記1つ又は複数のバッファエリアの第1のエリア内、又はpixmapに関連する前記1つ又は複数のバッファエリアの第2のエリア内のいずれかの前記バッファを割り振ることを具備する、請求項2記載の方法。
  4. 前記第1のオフスクリーンサーフェスをレンダリングすることによってレンダリング情報を生成することと、
    前記書き込み動作中に前記レンダリング情報を前記第1のバッファに書き込むことと
    をさらに具備する、請求項1記載の方法。
  5. 前記読み出し動作中に表示のために前記第1のオフスクリーンサーフェスに関係する情報を前記第2のバッファから読み出すこと
    をさらに具備する、請求項1記載の方法。
  6. グラフィックス処理において使用される第2のオフスクリーンサーフェスにすべてが関連する追加のバッファを割り振ることと、
    追加の書き込み動作中に前記第2のオフスクリーンサーフェスに関係する情報が前記追加のバッファ内の第4のバッファに書き込まれるように、前記第4のバッファを前記第2のオフスクリーンサーフェスのための書き込みバッファとして識別することと、
    追加の読み出し動作中に前記第2のオフスクリーンサーフェスに関係する情報が前記追加のバッファ内の第5のバッファから読み出されるように、前記第5のバッファを前記第2のオフスクリーンサーフェスのための読み出しバッファとして識別することと
    をさらに具備する、請求項1記載の方法
  7. 前記第1のオフスクリーンサーフェスのための前記第2のバッファの内容と、前記第2のオフスクリーンサーフェスのための前記第5のバッファの内容と、オンスクリーンサーフェスに関連するデータとを、オーバーレイ順序にしたがって組み合わせることと、
    前記オーバーレイ順序に基づいて表示するために、前記第1のオフスクリーンサーフェスと、前記第2のオフスクリーンサーフェスと、前記オンスクリーンサーフェスとをオーバーレイすることと
    をさらに具備する、請求項6記載の方法。
  8. 前記第1のオフスクリーンサーフェスは、2次元サーフェス、3次元サーフェス、又はビデオサーフェスを具備し、
    前記第2のオフスクリーンサーフェスは、2次元サーフェス、3次元サーフェス、又はビデオサーフェスを具備する、
    請求項7記載の方法。
  9. 前記1つ又は複数のプロセッサは、それぞれ、ディスプレイプロセッサ、グラフィックスプロセッサ、又は汎用プロセッサを具備する、請求項1記載の方法。
  10. グラフィックス処理において使用される第1のオフスクリーンサーフェスにすべてが関連する複数のバッファを割り振ることと、
    書き込み動作中に前記第1のオフスクリーンサーフェスに関係する情報が前記バッファ内の第1のバッファに書き込まれるように、前記第1のバッファを前記第1のオフスクリーンサーフェスのための書き込みバッファとして識別することと、
    読み出し動作中に前記第1のオフスクリーンサーフェスに関係する情報が前記バッファ内の第2のバッファから読み出されるように、前記第2のバッファを前記第1のオフスクリーンサーフェスのための読み出しバッファとして識別することと、
    書き込み動作中に前記第1のオフスクリーンサーフェスに関係する情報が第3のバッファに書き込まれるように、前記第3のバッファを前記第1のオフスクリーンサーフェスのための書き込みバッファとして識別するバッファ選択機能を呼び出すことと
    を、1つ又は複数のプログラマブルプロセッサに行わせるための命令を具備し、前記第1のバッファ、前記第2のバッファ、前記第3のバッファは、異なるバッファである、コンピュータ可読記憶媒体。
  11. 前記バッファを割り振ることを前記1つ又は複数のプロセッサに行わせるための前記命令は、グラフィックス処理システムの1つ又は複数のバッファエリア内の前記バッファを割り振ることを前記1つ又は複数のプロセッサに行わせるための命令を具備する、請求項10記載のコンピュータ可読記憶媒体。
  12. 前記グラフィックス処理システムの前記1つ又は複数のバッファエリア内の前記バッファを割り振ることを前記1つ又は複数のプロセッサに行わせるための前記命令は、pbufferに関連する前記1つ又は複数のバッファエリアの第1のエリア内、又はpixmapに関連する前記1つ又は複数のバッファエリアの第2のエリア内のいずれかの前記バッファを割り振ることを前記1つ又は複数のプロセッサに行わせるための命令を具備する、請求項11記載のコンピュータ可読記憶媒体。
  13. 前記第1のオフスクリーンサーフェスをレンダリングすることによってレンダリング情報を生成することと、
    前記書き込み動作中に前記レンダリング情報を前記第1のバッファに書き込むことと
    を前記1つ又は複数のプロセッサに行わせるための命令をさらに具備する、請求項10記載のコンピュータ可読記憶媒体。
  14. 前記読み出し動作中に表示のために前記第1のオフスクリーンサーフェスに関係する情報を前記第2のバッファから読み出すこと
    を前記1つ又は複数のプロセッサに行わせるための命令をさらに具備する、請求項10記載のコンピュータ可読記憶媒体。
  15. グラフィックス処理において使用される第2のオフスクリーンサーフェスにすべてが関連する追加のバッファを割り振ることと、
    追加の書き込み動作中に前記第2のオフスクリーンサーフェスに関係する情報が前記追加のバッファ内の第4のバッファに書き込まれるように、前記第4のバッファを前記第2のオフスクリーンサーフェスのための書き込みバッファとして識別することと、
    追加の読み出し動作中に前記第2のオフスクリーンサーフェスに関係する情報が前記追加のバッファ内の第5のバッファから読み出されるように、前記第5のバッファを前記第2のオフスクリーンサーフェスのための読み出しバッファとして識別することと
    を前記1つ又は複数のプロセッサに行わせるための命令をさらに具備する、請求項10記載のコンピュータ可読記憶媒体。
  16. 前記第1のオフスクリーンサーフェスのための前記第2のバッファの内容と、前記第2のオフスクリーンサーフェスのための前記第5のバッファの内容と、オンスクリーンサーフェスに関連するデータとを、オーバーレイ順序にしたがって組み合わせることと、
    前記オーバーレイ順序に基づいて表示するために、前記第1のオフスクリーンサーフェスと、前記第2のオフスクリーンサーフェスと、前記オンスクリーンサーフェスとをオーバーレイすることと
    を前記1つ又は複数のプロセッサに行わせるための命令をさらに具備する、請求項15記載のコンピュータ可読記憶媒体。
  17. 前記第1のオフスクリーンサーフェスは、2次元サーフェス、3次元サーフェス、又はビデオサーフェスを具備し、
    前記第2のオフスクリーンサーフェスは、2次元サーフェス、3次元サーフェス、又はビデオサーフェスを具備する、
    請求項16記載のコンピュータ可読記憶媒体。
  18. 1つ又は複数のバッファエリアと、
    グラフィックス処理において使用される第1のオフスクリーンサーフェスにすべてが関連する前記1つ又は複数のバッファエリア内の複数のバッファを割り振るように構成された1つ又は複数のプロセッサとを備え、
    前記1つ又は複数のプロセッサは、
    書き込み動作中に前記第1のオフスクリーンサーフェスに関係する情報が前記バッファ内の第1のバッファに書き込まれるように、前記第1のバッファを前記第1のオフスクリーンサーフェスのための書き込みバッファとして識別し、
    読み出し動作中に前記第1のオフスクリーンサーフェスに関係する情報が前記バッファ内の第2のバッファから読み出されるように、前記第2のバッファを前記第1のオフスクリーンサーフェスのための読み出しバッファとして識別し、
    書き込み動作中に前記第1のオフスクリーンサーフェスに関係する情報が第3のバッファに書き込まれるように、前記第3のバッファを前記第1のオフスクリーンサーフェスのための書き込みバッファとして識別するバッファ選択機能を呼び出す
    ようにさらに構成され、
    前記第1のバッファ、前記第2のバッファ、前記第3のバッファは、異なるバッファである、装置。
  19. 前記1つ又は複数のプロセッサは、pbufferに関連する前記1つ又は複数のバッファエリアの第1のエリア内、又はpixmapに関連する前記1つ又は複数のバッファエリアの第2のエリア内のいずれかの前記バッファを割り振るように構成される、請求項18記載の装置。
  20. 前記1つ又は複数のプロセッサは、前記第1のオフスクリーンサーフェスをレンダリングすることによってレンダリング情報を生成し、前記書き込み動作中に前記レンダリング情報を前記第1のバッファに書き込むようにさらに構成される、請求項18記載の装置。
  21. 前記1つ又は複数のプロセッサは、前記読み出し動作中に表示のために前記第1のオフスクリーンサーフェスに関する情報を前記第2のバッファから読み出すようにさらに構成される、請求項18記載の装置。
  22. 前記1つ又は複数のプロセッサは、グラフィックス処理において使用される第2のオフスクリーンサーフェスにすべてが関連する追加のバッファを割り振り、追加の書き込み動作中に前記第2のオフスクリーンサーフェスに関係する情報が前記追加のバッファ内の第4のバッファに書き込まれ、追加の読み出し動作中に前記第2のオフスクリーンサーフェスに関係する情報が前記追加のバッファ内の第5のバッファから読み出されるように、前記第4のバッファを前記第2のオフスクリーンサーフェスのための書き込みバッファとして識別し、前記第5のバッファを前記第2のオフスクリーンサーフェスのための読み出しバッファとして識別するようにさらに構成される、請求項18記載の装置。
  23. 前記1つ又は複数のプロセッサは、前記第1のオフスクリーンサーフェスのための前記第2のバッファの内容と、前記第2のオフスクリーンサーフェスのための前記第5のバッファの内容と、オンスクリーンサーフェスに関連するデータとをオーバーレイ順序にしたがって組み合わせ、前記オーバーレイ順序に基づいて表示するために、前記第1のオフスクリーンサーフェスと、前記第2のオフスクリーンサーフェスと、前記オンスクリーンサーフェスとをオーバーレイするようにさらに構成される、請求項22記載の装置。
  24. 前記第1のオフスクリーンサーフェスは、2次元サーフェス、3次元サーフェス、又はビデオサーフェスを具備し、
    前記第2のオフスクリーンサーフェスは、2次元サーフェス、3次元サーフェス、又はビデオサーフェスを具備する、
    請求項23記載の装置。
  25. 前記1つ又は複数のプロセッサは、それぞれディスプレイプロセッサ、グラフィックスプロセッサ、又は汎用プロセッサを具備する、請求項18記載の装置。
  26. 前記装置は、ワイヤレス通信デバイスハンドセット、パーソナルコンピュータ、又はラップトップデバイスを具備する、請求項18記載の装置。
  27. 前記装置は、1つ又は複数の集積回路デバイスを具備する、請求項18記載の装置。
  28. グラフィックス処理において使用される第1のオフスクリーンサーフェスにすべてが関連する複数のバッファを割り振るための手段と、
    書き込み動作中に前記第1のオフスクリーンサーフェスに関係する情報が前記バッファ内の第1のバッファに書き込まれるように、前記第1のバッファを前記第1のオフスクリーンサーフェスのための書き込みバッファとして識別するための手段と、
    読み出し動作中に前記第1のオフスクリーンサーフェスに関係する情報が前記バッファ内の第2のバッファから読み出されるように、前記第2のバッファを前記第1のオフスクリーンサーフェスのための読み出しバッファとして識別するための手段と、
    書き込み動作中に前記第1のオフスクリーンサーフェスに関係する情報が第3のバッファに書き込まれるように、前記第3のバッファを前記第1のオフスクリーンサーフェスのための書き込みバッファとして識別するバッファ選択機能を呼び出すための手段と
    を具備し、
    前記第1のバッファ、前記第2のバッファ、前記第3のバッファは、異なるバッファである、装置。
  29. 前記バッファを割り振るための前記手段は、グラフィックス処理システムの1つ又は複数のバッファエリア内の前記バッファを割り振るための手段を具備する、請求項28記載の装置。
  30. 前記グラフィックス処理システムの前記1つ又は複数のバッファエリア内の前記バッファを割り振るための前記手段は、pbufferに関連する前記1つ又は複数のバッファエリアの第1のエリア内、又はpixmapに関連する前記1つ又は複数のバッファエリアの第2のエリア内のいずれかの前記バッファを割り振るための手段を具備する、請求項29記載の装置。
  31. 前記第1のオフスクリーンサーフェスをレンダリングすることによってレンダリング情報を生成するための手段と、
    前記書き込み動作中に前記レンダリング情報を前記第1のバッファに書き込むための手段と
    をさらに具備する、請求項28記載の装置。
  32. 前記読み出し動作中に表示のために前記第1のオフスクリーンサーフェスに関係する情報を前記第2のバッファから読み出すための手段
    をさらに具備する、請求項28記載の装置。
  33. グラフィックス処理において使用される第2のオフスクリーンサーフェスにすべてが関連する追加のバッファを割り振るための手段と、
    追加の書き込み動作中に前記第2のオフスクリーンサーフェスに関係する情報が前記追加のバッファ内の第4のバッファに書き込まれるように、前記第4のバッファを前記第2のオフスクリーンサーフェスのための書き込みバッファとして識別するための手段と、
    追加の読み出し動作中に前記第2のオフスクリーンサーフェスに関係する情報が前記追加のバッファ内の第5のバッファから読み出されるように、前記第5のバッファを前記第2のオフスクリーンサーフェスのための読み出しバッファとして識別するための手段と
    をさらに具備する、請求項28記載の装置。
  34. 前記第1のオフスクリーンサーフェスのための前記第2のバッファの内容と、前記第2のオフスクリーンサーフェスのための前記第5のバッファの内容と、オンスクリーンサーフェスに関連するデータとを、オーバーレイ順序にしたがって組み合わせるための手段と、
    前記オーバーレイ順序に基づいて表示するために、前記第1のオフスクリーンサーフェスと、前記第2のオフスクリーンサーフェスと、前記オンスクリーンサーフェスとをオーバーレイするための手段と
    をさらに具備する、請求項33記載の装置。
  35. 前記第1のオフスクリーンサーフェスは、2次元サーフェス、3次元サーフェス、又はビデオサーフェスを具備し、
    前記第2のオフスクリーンサーフェスは、2次元サーフェス、3次元サーフェス、又はビデオサーフェスを具備する、
    請求項34記載の装置。
JP2010543290A 2008-01-18 2009-01-16 グラフィックス処理システムにおけるオフスクリーンサーフェスのためのマルチバッファサポート Expired - Fee Related JP5166552B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US2219508P 2008-01-18 2008-01-18
US61/022,195 2008-01-18
US12/116,065 2008-05-06
US12/116,065 US20090184972A1 (en) 2008-01-18 2008-05-06 Multi-buffer support for off-screen surfaces in a graphics processing system
PCT/US2009/031323 WO2009092033A1 (en) 2008-01-18 2009-01-16 Multi-buffer support for off-screen surfaces in a graphics processing system

Publications (2)

Publication Number Publication Date
JP2011510407A JP2011510407A (ja) 2011-03-31
JP5166552B2 true JP5166552B2 (ja) 2013-03-21

Family

ID=40876122

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010543290A Expired - Fee Related JP5166552B2 (ja) 2008-01-18 2009-01-16 グラフィックス処理システムにおけるオフスクリーンサーフェスのためのマルチバッファサポート

Country Status (8)

Country Link
US (1) US20090184972A1 (ja)
EP (1) EP2245598B1 (ja)
JP (1) JP5166552B2 (ja)
KR (2) KR101239029B1 (ja)
CN (1) CN101911125B (ja)
CA (1) CA2711583A1 (ja)
TW (1) TW200943224A (ja)
WO (1) WO2009092033A1 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110291964A1 (en) 2010-06-01 2011-12-01 Kno, Inc. Apparatus and Method for Gesture Control of a Dual Panel Electronic Device
WO2012159080A1 (en) * 2011-05-19 2012-11-22 The Trustees Of Columbia University In The City Of New York Using graphics processing units in control and/or data processing systems
US8780118B2 (en) * 2011-06-13 2014-07-15 Samsung Electronics Co., Ltd. Techniques for synchronizing hardware accelerated graphics rendering and surface composition
US8884978B2 (en) * 2011-09-09 2014-11-11 Microsoft Corporation Buffer display techniques
CN102497591B (zh) * 2011-11-11 2015-02-18 青岛海信移动通信技术股份有限公司 一种终端以及该终端与电视进行无线传屏的方法
US10156976B2 (en) 2014-01-30 2018-12-18 Samsung Display Co., Ltd. System and method in managing low-latency direct control feedback
WO2016200558A1 (en) * 2015-06-07 2016-12-15 Apple Inc. Graphics engine and environment for efficient real time rendering of graphics that are not pre-known
US20170154403A1 (en) * 2015-11-30 2017-06-01 Intel Corporation Triple buffered constant buffers for efficient processing of graphics data at computing devices
US10176548B2 (en) * 2015-12-18 2019-01-08 Ati Technologies Ulc Graphics context scheduling based on flip queue management
KR102531741B1 (ko) * 2016-01-12 2023-05-11 삼성전자 주식회사 멀티플 버퍼를 가지는 메모리 장치 및 멀티플 버퍼를 가지는 메모리를 구동하는 방법
CN105933724A (zh) * 2016-05-23 2016-09-07 福建星网视易信息系统有限公司 视频制作方法、装置及系统
CN106598514B (zh) * 2016-12-01 2020-06-09 惠州Tcl移动通信有限公司 一种终端设备中切换虚拟现实模式的方法及系统
JP2020177074A (ja) * 2019-04-16 2020-10-29 株式会社デンソー 車両用装置、車両用装置の制御方法
CN112950757B (zh) * 2021-03-30 2023-03-14 上海哔哩哔哩科技有限公司 图像渲染方法及装置
CN113099309A (zh) * 2021-03-30 2021-07-09 上海哔哩哔哩科技有限公司 视频处理方法及装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5001469A (en) * 1988-06-29 1991-03-19 Digital Equipment Corporation Window-dependent buffer selection
EP0525986B1 (en) * 1991-07-26 1996-11-13 Sun Microsystems, Inc. Apparatus for fast copying between frame buffers in a double buffered output display system
US6016150A (en) * 1995-08-04 2000-01-18 Microsoft Corporation Sprite compositor and method for performing lighting and shading operations using a compositor to combine factored image layers
US5844569A (en) * 1996-04-25 1998-12-01 Microsoft Corporation Display device interface including support for generalized flipping of surfaces
US5801717A (en) * 1996-04-25 1998-09-01 Microsoft Corporation Method and system in display device interface for managing surface memory
JPH1069270A (ja) * 1996-08-28 1998-03-10 Okinawa Nippon Denki Software Kk 表示画像合成方法
US5933155A (en) * 1996-11-06 1999-08-03 Silicon Graphics, Inc. System and method for buffering multiple frames while controlling latency
US6771264B1 (en) * 1998-08-20 2004-08-03 Apple Computer, Inc. Method and apparatus for performing tangent space lighting and bump mapping in a deferred shading graphics processor
US6853385B1 (en) * 1999-11-09 2005-02-08 Broadcom Corporation Video, audio and graphics decode, composite and display system
CN1942900A (zh) * 2004-03-03 2007-04-04 高通股份有限公司 图形处理器的可变时钟控制
JP2007286082A (ja) * 2006-04-12 2007-11-01 Sony Computer Entertainment Inc 描画処理装置

Also Published As

Publication number Publication date
EP2245598B1 (en) 2017-07-05
KR20100103704A (ko) 2010-09-27
TW200943224A (en) 2009-10-16
KR101239029B1 (ko) 2013-03-04
WO2009092033A1 (en) 2009-07-23
CN101911125A (zh) 2010-12-08
EP2245598A1 (en) 2010-11-03
CA2711583A1 (en) 2009-07-23
JP2011510407A (ja) 2011-03-31
CN101911125B (zh) 2013-07-24
US20090184972A1 (en) 2009-07-23
KR20120132560A (ko) 2012-12-05

Similar Documents

Publication Publication Date Title
JP5166552B2 (ja) グラフィックス処理システムにおけるオフスクリーンサーフェスのためのマルチバッファサポート
US20080284798A1 (en) Post-render graphics overlays
EP3008701B1 (en) Using compute shaders as front end for vertex shaders
US9715750B2 (en) System and method for layering using tile-based renderers
KR100547258B1 (ko) 안티-에일리어싱 수퍼샘플링을 위한 방법 및 장치
US7456835B2 (en) Register based queuing for texture requests
WO2010000126A1 (zh) 交互信息生成方法及系统
US10319068B2 (en) Texture not backed by real mapping
TWI786233B (zh) 關於以微磚為基礎之低解析度深度儲存之方法、器件與非暫時性電腦可讀儲存媒體
KR20180056316A (ko) 타일-기반 렌더링을 수행하는 방법 및 장치
CN111400024A (zh) 渲染过程中的资源调用方法、装置和渲染引擎
JP2011510406A (ja) グラフィクス処理システムにおける、表面作成のためのマルチフォーマットサポート
US20040174367A1 (en) System and method for processing real-time video streams
US10311627B2 (en) Graphics processing apparatus and method of processing graphics pipeline thereof
KR101337558B1 (ko) 고해상도 영상 또는 입체 영상의 허브기능을 구비한 모바일단말기 및 그 모바일단말기를 이용하여 고해상도 영상 또는 입체 영상 제공 방법
CN108805964B (zh) 基于OpenGL ES的VR机顶盒启动动画制作方法及系统
KR102085701B1 (ko) 이미지를 렌더링하는 방법

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120131

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120426

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120724

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121024

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121220

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

Free format text: PAYMENT UNTIL: 20151228

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5166552

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees