(57)【要約】  ソリッドテクスチャマップをグラフィックス処理ユニット（ＧＰＵ）に提供する例となる方法は、レンダリング可能なコンテンツのタイルを複数のパーティションに分割することを含む。方法はまた、複数のパーティションのうちの一組のパーティションがソリッドカラーであることを決定することを含む。方法は、複数のパーティションのうちの一組のパーティションがソリッドカラーであることを示すソリッドテクスチャマップを生成することをさらに含む。方法はまた、ソリッドテクスチャマップへのアクセスをＧＰＵに提供することを含む。
2017527898.tif 000002
【特許請求の範囲】
【請求項１】
ソリッドテクスチャマップをグラフィックス処理ユニット（ＧＰＵ）に提供する方法であって、
レンダリング可能なコンテンツのタイルを複数のパーティションに分割することと、
前記複数のパーティションのうちの一組のパーティションがソリッドカラーであることを決定することと、
前記複数のパーティションのうちの前記一組のパーティションがソリッドカラーであることを示すソリッドテクスチャマップを生成することと、
前記ソリッドテクスチャマップへのアクセスをＧＰＵに提供することと
を備える、方法。
【請求項２】
ウェブページを１つ以上のレイヤに分割すること
をさらに備える、請求項１に記載の方法。
【請求項３】
前記１つ以上のレイヤのうちの１つのレイヤを複数のタイルに分割することと
をさらに備える、請求項２に記載の方法。
【請求項４】
前記分割することは、前記タイルを複数の水平なパーティションに分割することを含む、請求項１に記載の方法。
【請求項５】
前記分割することは、前記タイルを複数の垂直なパーティションに分割することを含む、請求項１に記載の方法。
【請求項６】
前記一組のパーティションのうちの各パーティションについて、それぞれのパーティションの色を決定すること、ここにおいて、前記ソリッドテクスチャマップは、前記色を含む、
をさらに備える、請求項１に記載の方法。
【請求項７】
前記タイルの主要なソリッドカラーを決定すること、ここにおいて、前記ソリッドテクスチャマップは、前記主要な色を含む、
をさらに備える、請求項１に記載の方法。
【請求項８】
ソリッドテクスチャマップをグラフィックス処理ユニット（ＧＰＵ）に提供するためのシステムであって、
コンピューティングデバイス上で実行するタイル生成器と、ここにおいて、前記タイル生成器は、レンダリング可能なコンテンツのタイルを複数のパーティションに分割し、前記複数のパーティションのうちの一組のパーティションがソリッドカラーであることを決定する、
前記複数のパーティションのうちの前記一組のパーティションがソリッドカラーであることを示すソリッドテクスチャマップを生成し、前記ソリッドテクスチャマップへのアクセスをＧＰＵに提供するソリッドテクスチャマップ生成器と
を備える、システム。
【請求項９】
前記タイル生成器は、ウェブページを１つ以上のレイヤに分割する、請求項８に記載のシステム。
【請求項１０】
前記タイル生成器は、前記１つ以上のレイヤのうちの１つのレイヤを複数のタイルに分割する、請求項９に記載のシステム。
【請求項１１】
前記タイル生成器は、前記タイルを複数の水平なパーティションに分割する、請求項８に記載のシステム。
【請求項１２】
前記タイル生成器は、前記タイルを複数の垂直なパーティションに分割する、請求項８に記載のシステム。
【請求項１３】
前記タイル生成器は、前記一組のパーティションのうちの各パーティションについて、それぞれのパーティションの色を決定し、前記ソリッドテクスチャマップは、前記色を含む、請求項８に記載のシステム。
【請求項１４】
前記タイル生成器は、前記タイルの主要なソリッドカラーを決定し、前記ソリッドテクスチャマップは、前記主要な色を含む、請求項８に記載のシステム。
【請求項１５】
複数の動作を行うためのコンピュータ実行可能な命令を記憶するコンピュータ可読媒体であって、
レンダリング可能なコンテンツのタイルを複数のパーティションに分割することと、
前記複数のパーティションのうちの一組のパーティションがソリッドカラーであることを決定することと、
前記複数のパーティションのうちの前記一組のパーティションがソリッドカラーであることを示すソリッドテクスチャマップを生成することと、
前記ソリッドテクスチャマップへのアクセスをＧＰＵに提供することと
を備える、コンピュータ可読媒体。
【請求項１６】
前記動作は、
ウェブページを１つ以上のレイヤに分割すること
をさらに備える、請求項１５に記載のコンピュータ可読媒体。
【請求項１７】
前記動作は、
前記１つ以上のレイヤのうちの１つのレイヤを複数のタイルに分割すること
をさらに備える、請求項１６に記載のコンピュータ可読媒体。
【請求項１８】
前記分割することは、前記タイルを複数の水平なパーティションに分割することを含む、請求項１５に記載のコンピュータ可読媒体。
【請求項１９】
前記動作は、
前記一組のパーティションのうちの各パーティションについて、それぞれのパーティションの色を決定すること、ここにおいて、前記ソリッドテクスチャマップは、前記色を含む、
をさらに備える、請求項１５に記載のコンピュータ可読媒体。
【請求項２０】
前記動作は、
前記タイルの主要なソリッドカラーを決定すること、ここにおいて、前記ソリッドテクスチャマップは、前記主要な色を含む、
をさらに備える、請求項１５に記載のコンピュータ可読媒体。
【発明の詳細な説明】
【関連出願の相互参照】
【０００１】
[0001]  本願は、２０１５年２月２３日付けで提出された米国特許出願第１４／６２８，９３５号の出願日に対して優先権を主張する、２０１４年８月１５日付けで提出された米国仮特許出願第６２／０３７，７８５号からの優先権の利益を主張するものであり、これら両方は、その全体が参照により本明細書に組み込まれる。
【技術分野】
【０００２】
[0002]  本願は、一般に、グラフィックス処理システム（graphics processing system）に関し、より具体的には、グラフィックス処理システムにおけるテクスチャ（texture）のレンダリング（rendering）に関する。
【背景技術】
【０００３】
[0003]  コンピューティングデバイス（computing device）は、計算およびグラフィックスレンダリング（graphics rendering）に関して高いパフォーマンスを提供する、１つ以上の高性能グラフィックス処理ユニット（ＧＰＵ：graphics processing unit）を備え得る。コンピューティングデバイスは、表示のためのグラフィックスデータのレンダリングを加速するためにＧＰＵを使用し得る。このようなコンピューティングデバイスの例は、コンピュータワークステーション、モバイルフォン（例えば、スマートフォン）、組み込みシステム、パーソナルコンピュータ、タブレットコンピュータ、およびビデオゲームコンソールを含み得る。
【０００４】
[0004]  レンダリングは、一般に、１つ以上の３Ｄグラフィックスオブジェクトを含み得る三次元（３Ｄ）グラフィックスシーン（graphics scene）を、二次元（２Ｄ）のラスタライズされた画像データ（rasterized image data）に変換する処理を指す。具体的には、ＧＰＵは、３Ｄグラフィックスシーンのレンダリングのために少なくとも一部のハードウェア加速を提供するための、３Ｄレンダリングパイプラインを含み得る。シーン中の３Ｄグラフィックスオブジェクトは、グラフィックスアプリケーションによって１つ以上の３Ｄグラフィックスプリミティブ（3D graphics primitives）（例えば、点、線、三角形、パッチなど）へと細分され、ＧＰＵは、そのシーンの３Ｄグラフィックスプリミティブを、２Ｄのラスタライズされた画像データに変換し得る。
【発明の概要】
【０００５】
[0005]  本開示は、タイル（tile）のソリッドカラーパーティション（solid color partitions）を示すテクスチャマップ（texture map）を提供することに関する。テクスチャマップをＧＰＵに提供するための方法、システム、および技法が提供される。
【０００６】
[0006]  ある実施形態よると、ソリッドテクスチャマップ（solid texture map）をグラフィックス処理ユニット（ＧＰＵ）に提供する方法は、レンダリング可能なコンテンツ（renderable content）のタイルを複数のパーティション（partition）に分割することを含む。方法はまた、複数のパーティションのうちの一組のパーティションがソリッドカラー（solid color）であることを決定することを含む。方法は、複数のパーティションのうちの一組のパーティションがソリッドカラーであることを示すソリッドテクスチャマップを生成することをさらに含む。方法はまた、ソリッドテクスチャマップへのアクセス（access）をＧＰＵに提供することを含む。
【０００７】
[0007]  別の実施形態よると、ソリッドテクスチャマップをＧＰＵに提供するためのシステムは、コンピューティングデバイス上で実行するタイル生成器（tile generator）を含む。タイル生成器は、レンダリング可能なコンテンツのタイルを複数のパーティションに分割し、複数のパーティションのうちの一組のパーティションがソリッドカラーであることを決定する。システムはまた、複数のパーティションのうちの一組のパーティションがソリッドカラーであることを示すソリッドテクスチャマップを生成し、ソリッドテクスチャマップへのアクセスをＧＰＵに提供するソリッドテクスチャマップ生成器（solid texture map generator）を含む。
【０００８】
[0008]  別の実施形態よると、動作を行うためのコンピュータ実行可能な命令（computer-executable instruction）を記憶するコンピュータ可読媒体（computer-readable medium）は、レンダリング可能なコンテンツのタイルを複数のパーティションに分割することと、複数のパーティションのうちの一組のパーティションがソリッドカラーであることを決定することと、複数のパーティションのうちの一組のパーティションがソリッドカラーであることを示すソリッドテクスチャマップを生成することと、ソリッドテクスチャマップへのアクセスをＧＰＵに提供することと、を含む。
【０００９】
[0009]  別の実施形態によると、ソリッドテクスチャマップをグラフィックス処理ユニット（ＧＰＵ）に提供するための装置は、レンダリング可能なコンテンツのタイルを複数のパーティションに分割するための手段と、複数のパーティションのうちの一組のパーティションがソリッドカラーであることを決定するための手段と、複数のパーティションのうちの一組のパーティションがソリッドカラーであることを示すソリッドテクスチャマップを生成するための手段と、ソリッドテクスチャマップへのアクセスをＧＰＵに提供するための手段と、を含む。
【００１０】
[0010]  明細書の一部を形成する添付の図面は、説明とともに発明の実施形態を図示し、さらに実施形態の原理を説明する役割を果たす。図面では、類似する参照番号は、同一の、または機能的に同一の要素を示し得る。要素が最初に現れる図面は、一般に、一番左の桁がその対応する参照番号で示されている。
【図面の簡単な説明】
【００１１】
【図１】[0011]  図１は、ある実施形態に従った、本願のレンダリング技法を実装するために使用され得るコンピューティングデバイスを図示するブロック図である。
【図２】[0012]  図２は、ある実施形態に従った、図１のコンピューティングデバイスのＣＰＵ、ＧＰＵ、およびメモリをさらに詳細に図示するブロック図である。
【図３】[0013]  図３は、ある実施形態に従った、複数のパーティションに分割されたレンダリング可能なコンテンツを図示するブロック図である。
【図４】[0014]  図４は、ある実施形態に従った、テクスチャマップをＧＰＵに提供するための処理フロー図である。
【図５】[0015]  図５は、ある実施形態に従った、複数のパーティションに分割されたタイルの例である。
【図６】[0016]  図６は、ある実施形態に従った、テクスチャマップをＧＰＵに提供するための方法を図示する簡略化されたフローチャートである。
【詳細な説明】
【００１２】
[0017]  本願の異なる特徴を実装するために、多くの異なる実施形態または例を、下記の開示が提供することが理解されるだろう。ある実施形態は、これらの特定の詳細のうちのいくつか、または全てがなくとも、実行され得る。本開示を簡略化するために、コンポーネント、モジュール、および配列の特定の例が、下記に開示される。当然ながら、これらは単に例に過ぎず、限定されることを意図するものではない。
【００１３】
[0018]  レンダリングは、グラフィックスシーンにおいて３Ｄオブジェクトに対応する３Ｄグラフィックスプリミティブを、２Ｄのラスタライズされた画像データに変換する処理を指す。コンピューティングデバイスは、グラフィックスプリミティブのレンダリングを加速させるために、３Ｄグラフィックスレンダリングパイプラインを含むグラフィックス処理ユニット（ＧＰＵ）を使用し得る。具体的には、３Ｄグラフィックスレンダリングパイプラインは、３Ｄグラフィックスプリミティブをレンダリングするように構成される処理ステージを含み得る。処理ステージは、プログラマブル処理ステージ（programmable processing stages）と固定機能処理ステージ（fixed-function processing stages）とを含み得る。プログラマブル処理ステージは、ＧＰＵ上に蓄積されロードされ得る、ユーザ固有のプログラムを実行するように構成され得る。固定機能処理ステージは、構成可能であり得る１つ以上の機能を実行するようにハードワイヤード（hardwired）であり得る。
【００１４】
[0019]  コンピュータグラフィックスでは、テクスチャマッピング（texture mapping）は、プリミティブ（primitive）の表面に画像を施す処理である。テクスチャマッピングは、コンピュータで生成された画像の写実性を高め、グラフィックスパイプラインの重要かつ重大な部分となってきている。例えば、家の壁を単色（plain color）でレンダリングすることは、見栄えが良くなくあまり写実的ではない家の画像を提供する。シーン（scene）とグラフィックス（graphics）とを高めるために、レンガ模様のテクスチャが家の壁に施され得る。
【００１５】
[0020]  ＧＰＵは、グラフィックスカード（graphics card）、フラグメント（fragment）、またはピクセルシェーダ（pixel shader）に送られた各頂点上で動作する頂点シェーダを含み、それらは、ラスタライズされるべき各ピクセルで動作し得る。ＧＰＵはまた、他のタイプのシェーダ（例えば、ジオメトリシェーダ）も含み得る。フラグメントシェーダ（fragment shader）は、フレームバッファ内に記憶されるピクセルの最終的な出力色を計算する。フラグメントシェーダは、フラグメントを色付けまたはテクスチャ処理する（texture）ために入力変数（input variables）を使用し得る。
【００１６】
[0021]  テクスチャマップは、色データ（color data）の長方形配列（rectangular array）を指し得る。テクスチャメモリ内のピクセルはテクセル（texel）と呼ばれ得る。テクスチャメモリは、テクスチャデータを記憶するメモリを指し得る。テクスチャマップは、テクスチャ座標（texture coordinate）を使用することによって、任意の表面にマッピングされ得る。一例では、テクスチャマップは、幅と高さとを有する二次元画像（例えば、写真）である。別の例では、テクスチャマップは、１つのテクセルの任意の幅および高さを有する一次元テクスチャである。別の例では、テクスチャマップは、幅、高さ、および奥行きを有する三次元テクスチャである。
【００１７】
[0022]  高品質で高速のテクスチャマッピングは通常、高価なハードウェアシステムに限られる。例えば、テクスチャマッピングシステムの設計者が直面した問題は、テクスチャメモリのための高メモリ帯域（high memory bandwidth）の要求である。通常、一秒ごとにメモリをテクスチャ処理するための非常に多いアクセス数のために高帯域が必要とされている。ＧＰＵは、テクスチャ座標に対してテクスチャルックアップ（texture lookup）を行うことによって、フラグメントまたはピクセルの色を計算するシェーダ（例えば、フラグメントまたはピクセルシェーダ）を含み得る。テクスチャルックアップは通常、メモリ帯域幅、パフォーマンス、および電力の点から見て、費用のかかるハードウェア動作である。
【００１８】
[0023]  電力と同様に多くのメモリ帯域幅を消費し、パフォーマンスを悪化させるため、１つの単一色に対する必要以上のテクスチャルックアップのコストは非常に高い。そのコストを削減することが望ましいだろう。テクスチャ圧縮（texture compression）を使用して類似する問題が解消されている。テクスチャ圧縮は、ＧＰＵメモリに転送されるテクスチャのサイズを低減するが、ソリッドカラーパーティションについての費用のかかるテクスチャルックアップの問題を解消しない。加えて、テクスチャ圧縮の符号化および復号は遅く、余分なハードウェア変更を必要とする。
【００１９】
[0024]  コンテンツをレンダリングする際、テクスチャの大部分はソリッドカラーであり得る。本開示は、ソリッドカラー領域（solid color regions）についてルックアップマップ（lookup map）を使用する、テクスチャシェーディング（texture shading）についてのメモリ帯域幅（memory bandwidth）を低減するための技法を提供する。加えて、本開示は、余分なハードウェアサポートがなくとも、グラフィックス命令の符号化および復号を最適化し得る。
【００２０】
[0025]  図１は、ある実施形態に従った、本願のレンダリング技法を実装するために使用され得るコンピューティングデバイス１０２を図示するブロック図である。コンピューティングデバイス１０２は、パーソナルコンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、コンピュータワークステーション、ビデオゲームプラットフォームまたはコンソール、ワイヤレス通信デバイス（例えば、モバイルフォン、セルラフォン、衛星電話、および／またはモバイル電話ハンドセット）、ポータブルビデオゲームデバイスまたはパーソナルデジタルアシスタント（ＰＤＡ）などのハンドヘルドデバイス、パーソナル音楽プレイヤ、ビデオプレイヤ、テレビジョン、テレビジョンセットトップボックス、サーバ、メインフレームコンピュータ、あるいはグラフィカルデータを処理および／または表示する任意の他のタイプのデバイスを含み得る。
【００２１】
[0026]  図１の例で図示されるように、コンピューティングデバイス１０２は、ユーザインターフェース１０４、ＣＰＵ １０６、メモリコントローラ１０８、システムメモリ１１０、グラフィックス処理ユニット（ＧＰＵ）１１２、ＧＰＵキャッシュ１１４、ディスプレイインターフェース１１６、ディスプレイ１１８、およびバス１２０を含む。ユーザインターフェース１０４、ＣＰＵ １０６、メモリコントローラ１０８、ＧＰＵ １１２、およびディスプレイインターフェース１１６は、バス１２０を使用して、互いと通信し得る。図１で示されるバスおよび異なるコンポーネント間の通信インターフェースの具体的な構成は単なる例にすぎず、本開示の技法を実装するために、コンピューティングデバイスの他の構成、および／または、同じまたは異なるコンポーネントとの他のグラフィックス処理システムが使用され得ることに留意されたい。
【００２２】
[0027]  ＣＰＵ １０６は、コンピューティングデバイス１０２の動作を制御する汎用または専用プロセッサを含み得る。ユーザは、ＣＰＵ １０６に１つ以上のソフトウェアアプリケーションを実行させるために、コンピューティングデバイス１０２への入力を提供し得る。ＣＰＵ １０６で実行するソフトウェアアプリケーションは、例えば、オペレーティングシステム、ソフトウェアアプリケーション１２２（例えば、ワードプロセッサアプリケーション、電子メールアプリケーション、スプレッドシートアプリケーション、メディアプレイヤアプリケーション、ビデオゲームアプリケーション、グラフィカルユーザインタフェース（ＧＵＩ）アプリケーション、またはブラウザ（browser））、または別のプログラムを含み得る。ユーザは、キーボード、マウス、マイクロフォン、タッチパッド、またはユーザインターフェース１０４を介してコンピューティングデバイス１０２に結合された別の入力デバイスなどの１つ以上の入力デバイス（図示されない）を介して、コンピューティングデバイス１０２に入力を提供し得る。
【００２３】
[0028]  ＣＰＵ １０６上で実行するソフトウェアアプリケーションは、ディスプレイ１１８へのグラフィックスデータのレンダリングを行わせることをＧＰＵ １１２に命令する、１つ以上のグラフィックスレンダリング命令を含み得る。いくつかの例では、ソフトウェア命令は、例えば、オープン・グラフィックス・ライブラリ（ＯｐｅｎＧＬ.ＲＴＭ.）グラフィックス・アプリケーション・インターフェース（ＡＰＩ：application programming interface）、オープン・グラフィックス・ライブラリ内蔵システム（ＯｐｅｎＧＬ ＥＳ：Open Graphics Library Embedded Systems）ＡＰＩ、Ｄｉｒｅｃｔ３Ｄ ＡＰＩ、Ｘ３Ｄ ＡＰＩ、ＲｅｎｄｅｒＭａｎ ＡＰＩ、ＷｅｂＧＬ ＡＰＩ、または他の公共または専売の標準グラフィックスＡＰＩのようなＡＰＩに準拠し得る。グラフィックスレンダリング命令を処理するために、ＣＰＵ １０６はＧＰＵ １１２に、グラフィックスデータのレンダリングのいくつかまたは全てを行わせるための１つ以上のグラフィックスレンダリングコマンドを出し得る。ある例では、レンダリングされるべきグラフィックスデータは、例えば、点、線、三角形、四角形、三角形ストリップなどの、グラフィックスプリミティブのリストを含み得る。
【００２４】
[0029]  メモリコントローラ１０８は、システムメモリ１１０へのおよびシステムメモリ１１０からのデータの転送を容易にする。例えば、メモリコントローラ１０８は、メモリ読み取りおよび書き込みコマンドを受信し、メモリサービスをコンピューティングデバイス１０２内のコンポーネントに提供するために、システムメモリ１１０に対してそのようなコマンドをサービスし得る。メモリコントローラ１０８は、システムメモリ１１０に通信可能に結合される。メモリコントローラ１０８は、ＣＰＵ １０６とシステムメモリ１１０との両方から分離している処理モジュールであるとして図１のコンピューティングデバイス１０２の例で図示されるが、他の例では、メモリコントローラ１０８の機能のいくつかまたは全ては、ＣＰＵ １０６とシステムメモリ１１０との一方または両方で実装され得る。
【００２５】
[0030]   システムメモリ１１０は、ＣＰＵ １０６によって実行するためにアクセス可能なプログラムモジュールおよび／または命令、および／または、ＣＰＵ １０６上で実行するプログラムによって使用するためのデータを記憶し得る例えば、システムメモリ１１０は、アプリケーションに関連付けられたユーザアプリケーションおよびグラフィックスデータを記憶し得る。システムメモリ１１０は、コンピューティングデバイス１０２の他のコンポーネントによって使用するためのおよび／または生成される情報をさらに記憶し得る。例えば、システムメモリ１１０は、ＧＰＵ １１２のためのデバイスメモリとして動作し得、ＧＰＵ １１２によって行われる動作から生じるデータと同様に、ＧＰＵ １１２によって動作されるべきデータを記憶し得る。例えば、システムメモリ１１０は、テクスチャバッファ、奥行きバッファ、ステンシルバッファ、頂点バッファ、フレームバッファなどの、任意の組み合わせを記憶し得る。加えて、システムメモリ１１０は、ＧＰＵ １１２によって処理するためのコマンドストリームを記憶し得る。システムメモリ１１０は、例えば、ランダムアクセスメモリ（ＲＡＭ）、スタティックＲＡＭ（ＳＲＡＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）、読み取り専用メモリ（ＲＯＭ）、消去可能プログラマブルＲＯＭ（ＥＰＲＯＭ）、電子的消去可能プログラマブルＲＯＭ（ＥＥＰＲＰＭ）、フラッシュメモリ、磁気データ媒体、または光学記憶媒体などの、１つ以上の揮発性または不揮発性メモリあるいはストレージデバイスを含み得る。
【００２６】
[0031]  ＧＰＵ １１２は、１つ以上のグラフィックスプリミティブをディスプレイ１１８にレンダリングするために、および表示のためのピクセルに画像をテクスチャマッピングするために、グラフィックス動作を行うように構成され得る。よって、ＣＰＵ １０６上で実行するソフトウェアアプリケーションのうちの１つがグラフィックス処理を要求するとき、ＣＰＵ １０６は、ディスプレイ１１８にレンダリングするためのグラフィックスコマンドおよびグラフィックスデータをＧＰＵ １１２に提供し得る。グラフィックスコマンドは、例えば、ドローコール（draw call）コマンド、ＧＰＵ状態プログラミングコマンド、メモリ転送コマンド、汎用コンピューティングコマンド、カーネル実行コマンドなどを含み得る。一例では、ＣＰＵ １０６は、コマンドおよびグラフィックスデータをメモリ１１０に書き込むことによってコマンドおよびグラフィックスデータをＧＰＵ １１２に提供し、それはＧＰＵ １１２によってアクセスされ得る。グラフィックスデータは、ディスプレイ１１８上にレンダリングされるべきピクセルの色を決定するための、システムメモリ１１０に記憶され且つＧＰＵ １１２によって使用されるテクスチャマップを含み得る。ある例では、ＧＰＵ １１２は、ＣＰＵ １０６上で実行するアプリケーションのために汎用コンピューティングを行うようにさらに構成され得る。
【００２７】
[0032]  ＧＰＵ １１２は、いくつかの例では、ＣＰＵ １０６よりも効率的なベクトル動作の処理を提供する、高度な並列構成（highly-parallel structure）で構成され得る。例えば、ＧＰＵ １１２は、複数の頂点、制御ポイント、ピクセル、および／または並列の様式における他のデータで動作するように構成された複数の処理ユニットを含み得る。ＧＰＵ １１２の高度な並列の性質（highly parallel nature）は、ある例では、ＧＰＵ １１２が、ＣＰＵ １０６を使用して画像をレンダリングするよりもさらに早く、ディスプレイ１１８上にグラフィックス画像（例えばＧＵＩ、並びに二次元（２Ｄ）および／または三次元（３Ｄ）グラフィックスシーン）をレンダリングすることを可能にし得る。加えて、ＧＰＵ １１２の高度な並列の性質は、ＧＰＵ １２２が、ＣＰＵ １１６よりもさらに早い汎用コンピューティングアプリケーションに対して特定のタイプのベクトルおよび行列演算を処理することを可能にし得る。
【００２８】
[0033]  ＧＰＵ １１２は、ある例では、コンピューティングデバイス１０２のマザーボードに統合され得る。他の例では、ＧＰＵ １１２は、コンピューティングデバイス１０２のマザーボード内のポートに設置されたグラフィックスカード上に存在するか、またはそうでなければ、コンピューティングデバイス１０２と相互運用するように構成された周辺デバイス内に組み込まれ得る。さらなる例では、ＧＰＵ １１２は、システムオンチップ（ＳｏＣ）を形成するＣＰＵ １０６と同じマイクロチップ上に位置付けられ得る。ＧＰＵ １１２は、１つ以上のマイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、デジタル信号プロセッサ（ＤＳＰ）、あるいは他の同等な集積論理回路またはディスクリート論理回路のような、１つ以上のプロセッサを含み得る。
【００２９】
[0034]  ＧＰＵ １１２は、ＧＰＵキャッシュ１１４に直接結合され得る。よって、ＧＰＵ １１２は、必ずしもバス１２０を使用せずに、ＧＰＵキャッシュ１１４からデータを読み取り、ＧＰＵキャッシュ１１４にデータを書き込み得る。言い換えると、ＧＰＵ １１２は、オフチップメモリの代わりに、ローカルストレージを使用して局所的にデータを処理し得る。これは、深刻なバストラフィックとなり得る、バス１２０を介するデータの読み取りおよび書き込みを行うために、ＧＰＵ １１２の必要性を低減することによってより効率的な手法でＧＰＵ １１２が動作することを可能にし得る。しかしながら、ある例では、コンピューティングデバイス１０２がＧＰＵキャッシュ１１４を含まない可能性があるが、代わりに、ＧＰＵ １１２がバス１２０を介してシステムメモリ１１０を使用し得る。ＧＰＵキャッシュ１１４は、例えば、ランダムアクセスメモリ（ＲＡＭ）、スタティックＲＡＭ（ＳＲＡＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）などの、１つ以上の揮発性または不揮発性メモリあるいはストレージデバイスを含み得る。
【００３０】
[0035]  ＣＰＵ １０６および／またはＧＰＵ １１２は、レンダリングされた画像データを、システムメモリ１１０内に割り当てられたフレームバッファ内に記憶し得る。ＣＰＵ １０６上で実行するソフトウェアアプリケーションは、メモリ１１０において画像データ（例えば、テクセルの色、幅、高さ、および色深度（color depth））を記憶し得る。画像データは、画像ファイルからロードされるか、またはコードを使用して生成され得る。ディスプレイインターフェース１１６は、フレームバッファからデータを検索し、レンダリングされた画像データによって表わされる画像を表示するようにディスプレイ１１８を構成し得る。ある例では、ディスプレイインターフェース１１６は、フレームバッファから検索されたデジタル値をディスプレイ１１８で取り込み可能な（consumable）アナログ信号に変換するように構成されたデジタル−アナログ変換器（ＤＡＣ）を含み得る。他の例では、ディスプレイインターフェース１１６は、デジタル値を、処理のためにディスプレイ１１８に直接渡し得る。
【００３１】
[0036]  ディスプレイ１１８は、モニタ、テレビジョン、投射型デバイス、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイパネル、発光ダイオード（ＬＥＤ）アレイ、ブラウン管（ＣＲＴ）ディスプレイ、電子ペーパー、表面伝導型電子放出ディスプレイ（ＳＥＤ）、レーザテレビジョンディスプレイ、ナノ結晶ディスプレイ、または別のタイプのディスプレイユニットを含み得る。ディスプレイ１１８は、コンピューティングデバイス１０２に統合され得る。例えば、ディスプレイ１１８は、モバイル電話ハンドセットまたはタブレットコンピュータのスクリーンであり得る。代替的に、ディスプレイ１１８は、有線または無線通信リンクを介してコンピューティングデバイス１０２に結合された独立型デバイスであり得る。例えば、ディスプレイ１１８は、ケーブルまたはワイヤレスリンクを介してパーソナルコンピュータに結合されたコンピュータのモニタまたはフラットパネルディスプレイであり得る。
【００３２】
[0037]  バス１２０は、第１、第２、および第３世代バスストラクチャとプロトコル、共有バスストラクチャとプロトコル、ポイント・ツー・ポイントバスストラクチャとプロトコル、一方向バスストラクチャとプロトコル、および双方向バスストラクチャとプロトコルを含む、バスストラクチャとバスプロトコルの任意の組み合わせを使用して実装され得る。バス１２０を実装するために使用され得る異なるバスストラクチャとプロトコルの例は、例えば、ＨｙｐｅｒＴｒａｎｓｐｏｒｔバス、ＩｎｆｉｎｉＢａｎｄバス、アドバンストグラフィックスポートバス、周辺構成要素相互接続（ＰＣＩ：Peripheral Component Interconnect）バス、ＰＣＩエクスプレスバス、アドバンスト・マイクロコントローラ・バスアーキテクチャ（ＡＭＢＡ：Advanced Microcontroller Bus Architecture）アドバンスト高効率バス（ＡＨＢ：Advanced High-performance Bus）、ＡＭＢＡアドバンスト周辺機器バス（ＡＰＢ：Advanced Peripheral Bus）、およびＡＭＢＡアドバンストｅＸｅｎｔｉｓｉｂｌｅインターフェース（ＡＸＩ：Advanced eXentisible Interface）バスなどを含む。他のタイプのバスストラクチャとプロトコルもまた使用され得る。
【００３３】
[0038]  ある例では、本願で説明される技法は、例えば、ＣＰＵ １０６、ＧＰＵ １１２、およびシステムメモリ１１０などを含む、図１に図示されるコンピューティングデバイス１０２の任意のコンポーネント内で実装され得る。
【００３４】
[0039]  図２は、ある実施形態に従った、図１のコンピューティングデバイス１０２のＣＰＵ １０６、ＧＰＵ １１２、およびメモリ１１０をさらに詳細に図示するブロック図である。図２で示されるように、ＣＰＵ １０６は、ＧＰＵ １１２およびメモリ１１０に通信可能に結合され、ＧＰＵ １１２は、ＣＰＵ １０６およびメモリ１１０に通信可能に結合される。
【００３５】
[0040]  ＣＰＵ １０６は、ブラウザ２２４、グラフィックスＡＰＩ ２２６、ＧＰＵドライバ２２８、およびオペレーティングシステム２３０のようなソフトウェアアプリケーションを実行するように構成される。ブラウザ２２４は、表示されることをグラフィックス画像に行わせる１つ以上の命令、および／またはＧＰＵ １１２上で実行されることを非グラフィックスタスク（例えば、汎用コンピューティングタスク）に行わせる１つ以上の命令を含み得る。ブラウザ２２４が命令を出しているように説明されているが、コンピューティングデバイス１０２内で実行可能であり且つグラフィックスデータを処理および／または表示する任意のソフトウェアアプリケーションが、命令を出すために使用され得ることが理解されるだろう。
【００３６】
[0041]  ブラウザ２２４は、グラフィックスＡＰＩ ２２６に命令を出し、それは、ブラウザ２２４から受信した命令を、ＧＰＵドライバ２２８によって取り込み可能なフォ−マットへと変更し得る。メモリ１１０は、１つ以上のコマンド２４０を記憶し得る。コマンド２４０は、１つ以上のコマンドバッファ（例えば、リングバッファ）内に記憶され得、１つ以上の状態コマンドおよび／または１つ以上のドローコール（draw call）コマンドを含み得る。状態コマンドは、ＧＰＵ １１２に、例えばドローカラー（draw color）のようなＧＰＵ １１２内の状態変数の１つ以上を変更するように命令し得る。ドローコールコマンドは、メモリ１１０内に記憶された１つ以上の頂点（例えば、頂点バッファで定義される）のグループによって定義されたジオメトリをレンダリングするように、またはディスプレイ１１８上のテクスチャのコンテンツを描くように、ＧＰＵ １１２に命令し得る。
【００３７】
[0042]  ＧＰＵドライバ２２８は、ブラウザ２２４からグラフィックスＡＰＩ ２２６を介して命令を受信し、その命令をサービスするためにＧＰＵ １１２の動作を制御する。例えば、ＧＰＵドライバ２２８は、１つ以上のコマンド２４０を公式化（formulate）し、コマンド２４０をメモリ１１０に置き、コマンド２４０を実行するようにＧＰＵ １１２に命令し得る。ある例では、ＧＰＵドライバ２２８は、コマンド２４０をメモリ１１０に置き、例えば、１つ以上のシステムコールを介して、オペレーティングシステム２３０を介してＧＰＵ １１２と通信し得る。
【００３８】
[0043]  ＧＰＵ １１２は、コマンドエンジン（command engine）２３２および１つ以上の処理ユニット２３４を含む。コマンドエンジン２３２は、メモリ１１０内に記憶されたコマンド２４０を検索および実行するように構成される。状態コマンドを受信することに応答して、コマンドエンジン２３２は、ＧＰＵ内の１つ以上の状態レジスタを状態コマンドに基づいて特定の値に設定し、および／または固定機能処理ユニット２３４のうちの１つ以上を状態コマンドに基づいて構成するように構成され得る。ドローコールコマンドを受信することに応答して、コマンドエンジン２３２は、メモリ１１０内に記憶されたプリミティブ型データに基づいて、処理ユニット２３４に、頂点によって表わされたジオメトリをレンダリングさせるように構成され得る。コマンドエンジン２３２はまた、コマンドを結合するシェーダプログラムを受信し得、コマンドを結合するシェーダプログラムに基づいて、特定のシェーダプログラムを、プログラマブル処理ユニット２３４のうちの１つ以上にロードし得る。
【００３９】
[0044]  処理ユニット２３４は、１つ以上の処理ユニットを含み得、その各々は、プログラマブル処理ユニットまたは固定機能処理ユニットであり得る。プログラマブル処理ユニットは、例えば、ＧＰＵ １１２上にＣＰＵ １０６からダウンロードされた１つ以上のシェーダプログラムを実行するように構成されたプログラマブルシェーダユニット（programmable shader unit）を含み得る。ある例では、シェーダプログラムは、例えば、ＯｐｅｎＧＬシェーディング言語（ＧＬＳＬ：OpenGL Shading Language）、ハイレベルシェーディング言語（ＨＬＳＬ：High Level Shading Language）、グラフィックスのためのＣ言語（Ｃｇ：C for Graphics）シェーディング言語などのような、ハイレベルシェーディング言語（high-level shading language）で書かれたプログラムのコンパイルされたバージョンであり得る。
【００４０】
[0045]  ある例では、プログラマブルシェーダユニットは、例えば、ＳＩＭＤパイプラインなどの並列で動作するように構成された、複数の処理ユニットを含み得る。プログラマブルシェーダユニットは、例えば、実行されているプログラムメモリ内の現在の命令またはフェッチされるべき次の命令を示すプログラムカウンタレジスタなどの、シェーダプログラム命令および実行状態レジスタを記憶するプログラムメモリを有し得る。処理ユニット２３４内のプログラマブルシェーダユニットは、例えば、頂点シェーダユニット（vertex shader unit）、ピクセルシェーダユニット、ジオメトリシェーダユニット、ハルシェーダユニット（hull shader unit）、ドメインシェーダユニット、計算シェーダユニット（compute shader unit）、および／またはユニファイドシェーダユニット（unified shader unit）を含み得る。
【００４１】
[0046]  １つ以上の処理ユニット２３４は、３Ｄグラフィックスレンダリングパイプラインを形成し、それは、シェーダプログラムを実行するように構成される１つ以上のシェーダユニットを含み得る。ピクセルシェーダは、ＧＰＵ １１２上で実行されるプログラムである。図２では、処理ユニット２３４は、ディスプレイ１１８上に表示されるテクスチャオブジェクト（例えば、テクスチャ画像）によってカバーされたピクセルの色を、計算および設定するフラグメントシェーダまたはピクセルシェーダ２３７を含み得る。この処理はラスタライゼーションとも呼ばれ、スクリーン空間内の２Ｄ頂点―各々が、ｚ値（奥行き値（depth-value））、および各頂点に関連付けられた様々なシェーディング情報を有する―からスクリーン上のピクセルへの変換である。ピクセルシェーダ２３７は、ピクセルシェーダ２３７Ａとピクセルシェーダ２３７Ｂとを含み、ピクセルフラグメントごとに実行され、補間された頂点特性（interpolated vertex attributes）を、色を計算するための入力として使用する。ピクセルシェーダ２３７Ａおよびピクセルシェーダ２３７Ｂは、ピクセルシェーダ２３７内にあるように示されるが、それらがパイプライン内の別個のコンポーネントであり得ることが理解されるだろう。ピクセルシェーダは、一定の色に戻るようなシンプルなものであり得る。ディスプレイ１１８上で描かれる各ピクセルフラグメントは、ピクセルシェーダ２３７によって動作される。「フラグメント（fragment）」および「ピクセル（pixel）」という用語は、本開示において置き換えて使用され得る。
【００４２】
[0047]  ディスプレイ１１８は、タイルテクスチャマップ２４２のコンテンツを表示し得る。一例では、テクスチャ画像は、ピクセルのタイルテクスチャマップ２４２から適切な色をルックアップする（look up）ために使用されるテクスチャ座標（ｕ、ｖ）を有し得る。ＧＰＵ １１２内のピクセルシェーダ２３７は、ディスプレイ１１８上に表示されるオブジェクト上のテクスチャをレンダリングし、結合テクスチャマップ（bound texture map）内でピクセルの色をルックアップするためにテクスチャ座標を使用し得る。一例では、ピクセルシェーダ２３７は、現在のテクスチャ座標についてのテクスチャルックアップを行うことによって、ピクセルごとのシェーディング計算を行う。従って、各ピクセルについての色をルックアップするために、ピクセルシェーダ２３７は、メモリ１１０に記憶されたタイルテクスチャマップ２４２にアクセスし得、それは、高メモリ帯域幅をテクスチャメモリに要求することができる。
【００４３】
[0048]  本開示は、レンダリング可能なコンテンツのソリッドカラー領域についてルックアップマップを使用する、テクスチャシェーディングのためのメモリ帯域幅を低減するための技法を提供する。図３は、ある実施形態に従った、複数の部分に分割されたレンダリング可能なコンテンツを図示するブロック図である。ブラウザ２２４は、ウェブページ（webpage）３００のレンダリング可能なコンテンツを１つ以上のレイヤ（layer）に分割し得る。ウェブページはレンダリング可能なコンテンツとして説明されるが、これは限定することを意図するものではなく、レンダリング可能な／レンダリングされたコンテンツは、（インターネットのようなネットワークに関連付けられた、または関連付けられていない）ページ上の任意のテキスト、画像、またはグラフィックスであり得る。
【００４４】
[0049]  図３では、ウェブページ３００は、レイヤ３０２と３０４とに分割される。ウェブページ３００は、ウェブページをレイヤに分割するかどうか、およびレイヤがいくつあるかを、ブラウザ２２４に示す要素または特性を有し得る。一例では、ウェブページ３００は、レイヤ３０２に対応する透過部分（transparent portion）と、レイヤ３０４に対応する動画部分（animated portion）（例えば、ディスプレイ１１８のある側から別の側へと動くオブジェクト）とを含む。この例では、ウェブページ３００の動画部分は、ウェブページ３００の透過部分とは異なるレイヤでレンダリングされる。ウェブページ３００は、オーバーラップし得るまたはオーバーラップする可能性がない複数のレイヤを含み得る。
【００４５】
[0050]  レイヤの１つ以上について、ブラウザ２２４は、それぞれのレイヤを複数のタイルに分割し得る。例えば、ブラウザ２２４は、レイヤ３０２を、タイル３０６Ａを含む複数のタイル３０６に分割し得る。レイヤ３０２は、５つの列と４つの行の計２０個のタイルの、タイル３０６に分割される。ブラウザ２２４は、タイルの各々を、複数のパーティション３０８に分割し得る。複数のパーティションは、（例えば、垂直なレイアウト方向を有する、特定の言語についての）水平なパーティション（horizontal partition）または垂直なパーティション（vertical partition）であり得、パーティションの各々は、互いに対して不均一または均一サイズのものであり得る。各パーティションの高さまたは幅は、微調整され得る。
【００４６】
[0051]  ブラウザ２２４は、タイル３０６Ａを複数のパーティション３０８に分割し得、それは、パーティション３０８Ａ〜３０８Ｐの１６個のパーティションを含む。複数のパーティション３０８のうちのいくつかのパーティションはソリッドカラーであり、いくつかはソリッドカラーではない。ブラウザ２２４は、タイル内のどのパーティションがソリッドカラーであるかを示すソリッドテクスチャマップを生成する。一例では、ブラウザ２２４は、ソリッドテクスチャマップを生成するために各ピクセルをスキャンし、どのシェーダを適宜使用するか（例えば、ピクセルシェーダ２３７Ａか、またはピクセルシェーダ２３７Ｂか）を、閾値（threshold）に基づいて決定する。ピクセルシェーダ２３７Ａは、ピクセルをディスプレイ１１８上にレンダリングするためにソリッドテクスチャマップを使用する「変更された（modified）」ピクセルシェーダであり、ピクセルシェーダ２３７Ｂは、ピクセルをディスプレイ１１８上にレンダリングするためにタイルテクスチャマップを使用する「未変更の（unmodified）」ピクセルシェーダであり得る。効率化のため、各ピクセルを１回だけスキャンするために、ソリッドテクスチャマップを生成し、どのシェーダを使用するかを決定するように、ブラウザ２２４が各ピクセルを同時にスキャンすることが望ましいだろう。ソリッドテクスチャマップを生成するために、第１の時間インターバル（time interval）中にブラウザ２２４が各ピクセルをスキャンし、第２の時間インターバル中にどのシェーダを適宜使用するかを閾値（threshold）に基づいて決定する場合、ブラウザ２２４は、第１の時間インターバルの少なくとも一部分が、第２の時間インターバルの少なくとも一部分とオーバーラップする場合にこれら２つの動作を同時に行うと考えられ得る。加えて、ブラウザ２２４が、タイルが閾値に到達することができないと確信するとき、未変更のシェーダ（unmodified shader）がこの情報を使用する必要があり得るので、ブラウザ２２４はソリッドテクスチャマップを廃棄し得る。ブラウザ２２４は、ソリッドテクスチャマップへのアクセスをＧＰＵ １１２に提供し得る。ブラウザ２２４は、テクスチャバッファに、ＧＰＵ １１２によってアクセス可能なソリッドテクスチャマップを記憶し得る。
【００４７】
[0052]  ある実施形態では、条件が満たされる場合、ブラウザ２２４は、ソリッドテクスチャマップへのアクセスをＧＰＵ １１２に提供し、ＧＰＵ １１２は、ソリッドテクスチャマップ使用して、最適化されたテクスチャルックアップ動作を行い得る。対照的に、条件が満たされない場合、ブラウザ２２４は、ソリッドテクスチャマップへのアクセスをＧＰＵ １１２に提供せず、ＧＰＵ １１２は、通常のテクスチャルックアップ動作を行い得る（例えば、ピクセルについてのテクスチャをルックアップするために、タイルテクスチャマップ２４２を使用する）。一例では、それぞれのタイルが、ソリッドカラーであるパーティションの閾値パーセンテージ（threshold percentage）を有する場合、条件が満たされる。別の例では、それぞれのタイルが、ソリッドカラーであるパーティションの閾値数を有する場合、条件が満たされる。
【００４８】
[0053]  図４は、ある実施形態に従った、テクスチャマップをＧＰＵ １１２に提供するための処理フロー図４００である。ブラウザ２２４は、タイルテクスチャマップ２４２よりもむしろ、ソリッドテクスチャマップ４０２を使用することによって、テクスチャルックアップのコストを最適化し得る。通常、タイルテクスチャマップ２４２よりもさらに小さいため、ソリッドテクスチャマップ４０２を使用するテクスチャをルックアップすることが望ましいだろう。従って、ソリッドテクスチャマップ４０２を計算、記憶、転送する余分なコストが制限され、結果として、タイルテクスチャマップ２４２を使用するのと比較すると、アクセスされ移動されるメモリがより少なくなる。
【００４９】
[0054]  ブラウザ２２４は、タイル生成器４１０およびソリッドテクスチャマップ生成器４１２を含む。ある実施形態では、タイル生成器４１０は、レンダリングされるべきコンテンツに基づいてソリッドテクスチャマップ４０２を生成し、ソリッドテクスチャマップ４０２を、ＧＰＵ １１２による検索のためにテクスチャメモリに記憶する。一例では、ブラウザ２２４は、ソリッドテクスチャマップ４０２をＣＰＵ １０６によってアクセス可能なメモリに記憶し、次に、ソリッドテクスチャマップ４０２をＧＰＵ １１２によってアクセス可能なメモリに送る。別の例では、ブラウザ２２４は、ソリッドテクスチャマップ４０２をＣＰＵ １０６によってアクセス可能なメモリに記憶し、次に、ソリッドテクスチャマップ４０２もまたＧＰＵ １１２にアクセス可能にさせる。
【００５０】
[0055]  テクスチャメモリは、メモリ１１０から割り当てられ得る。タイル生成器４１０は、複数のパーティション３０８のうちの１つ以上のパーティションの組が、ソリッドカラーであるどうかを決定する。各タイルについて、ソリッドテクスチャマップ生成器４１２は、タイル内の１つ以上のパーティションがソリッドカラーであるかどうかを示すソリッドテクスチャマップを生成し得る。図３では、パーティション３０８Ｅ〜３０８Ｈ、および３０８Ｍは、ソリッドカラー（例えば、白色（white））であり、複数のパーティション３０８の残りのパーティション（例えば、３０８Ａ〜３０８Ｄ、３０８Ｉ〜３０８Ｌ、および３０８Ｎ〜３０８Ｐ）は、ソリッドカラーではない。
【００５１】
[0056]  ソリッドテクスチャマップ４０２は、タイル内のパーティションごとに１つのエントリ（entry）を含む小さいテクスチャマップであり得る。例えば、タイル３０６Ａについて、ソリッドテクスチャマップ生成器４１２は、１６個の値を含むソリッドテクスチャマップを生成し、ここで、各値は、複数のパーティション３０８のうちの特定のパーティションがソリッドカラーであるかどうかを示す。第１の値はパーティション３０８Ａに対応し得、その他のパーティションが順番に間に並んでいる状態で、残りの値はパーティション３０８Ｐに対応し得る。一例では、ソリッドテクスチャマップ４０２は、「ＦＦＦＦＴＴＴＴＦＦＦＦＴＦＦＦ」を含み、ここで、「Ｆ」はソリッドカラーでないパーティションを示し、「Ｔ」はソリッドカラーであるパーティションを示す。パーティションがソリッドカラーであることを異なる値が示し得ることが理解されるだろう。他の例では、「Ｆ」の値または「０」の値は、パーティションがソリッドカラーであり得ることを示し得る。ブラウザ２２４は、ソリッドテクスチャマップ４０２へのアクセスをＧＰＵ １１２に提供する。ブラウザ２２４は、ＧＰＵ １１２で検索するために、メモリ１１０内にソリッドテクスチャマップ４０２を記憶し得る。
【００５２】
[0057]  加えて、ソリッドカラーである各パーティションについて、ソリッドテクスチャマップ４０２はまた、それぞれのパーティションの色を示し得る。このような例では、パーティションがソリッドカラーではない場合、「色（color）」値は空欄のままであり得る。パーティションがソリッドカラーであるかどうかを示すソリッドテクスチャマップおよびそのソリッドカラーは、（適用可能な場合）タイル内のパーティションが異なるソリッドカラーであるときに有利であり得る。
【００５３】
[0058]  別の例では、タイル生成器４１０は、タイル３０６Ａが主要な色（major color）を有するかどうかを決定する。主要な色は、タイル内の主要なソリッドカラー（major solid color）である。タイル生成器４１０は、各パーティションをスキャンし、ソリッドカラーであるパーティションについて、タイルの主要な色を決定し得る。いくつかの実施形態では、ソリッドテクスチャマップ生成器４１２は、ソリッドテクスチャマップ４０２を生成し、ここで、ソリッドテクスチャマップ４０２は、主要な色を含む。主要な色は、ユニフォーム（uniform）としてピクセルシェーダ２３７に渡され得る。
【００５４】
[0059]  ソリッドテクスチャマップ生成器４１２は、ソリッドカラーパーティションを追跡するソリッドテクスチャマップ４０２内のマーキングを提供し得る。例えば、パーティションが主要な色と同じソリッドカラーである場合、ソリッドテクスチャマップ生成器４１２は、パーティションがソリッドカラーであることを、ソリッドテクスチャマップ内で示し得る。例えば、図３では、タイル３０６Ａの主要な色は白色であり、ソリッドテクスチャマップ４０２は「ＦＦＦＦＴＴＴＴＦＦＦＦＴＦＦＦ」および「白色（white）」を含み得る。加えて、パーティションが主要な色ではない場合、ソリッドテクスチャマップ生成器４１２は、パーティションをソリッドカラーではないものとして示し得る。
【００５５】
[0060]  ブラウザ２２４が主要な色を含むソリッドテクスチャマップをピクセルシェーダ２３７に送る場合、ピクセルシェーダ２３７Ａは、ソリッドテクスチャマップ４０２を最初に確認することによって、各ピクセルについての色を計算し得、それは、ソリッドカラーパーティションを追跡し、次に、ピクセルが主要な色を使用するべきであるかどうかを決定する。ピクセルが主要な色を使用しない場合、次に、ピクセルシェーダ２３７Ｂは、通常のテクスチャルックアップ動作を行い得る（例えば、ピクセルについてのテクスチャをルックアップするために、タイルテクスチャマップ２４２を使用する）。
【００５６】
[0061]  ある実施形態では、パーティションがソリッドカラーではない場合、ソリッドテクスチャマップ生成器４１２は、ソリッドテクスチャマップ４０２内でそのことを示す。加えて、パーティションが主要な色とは異なるソリッドカラーである場合、ソリッドテクスチャマップ生成器４１２は、パーティションをソリッドカラーではないものとして示し得る。
【００５７】
[0062]  図５は、ある実施形態に従った、少なくとも２つのソリッドカラーパーティションが異なる色である、複数のパーティションに分割されたタイルの例である。図５では、パーティション３０８Ｅ〜３０８Ｈ、および３０８Ｍが白一色（solid white color）であり、パーティション３０８Ｎが黒一色（solid black color）である。ソリッドテクスチャマップ４０２は、「ＦＦＦＦＴＴＴＴＦＦＦＦＴＦＦＦ」および「白色（white）」を含み得、ここで、ソリッドテクスチャマップ４０２は、パーティション３０８Ｎが、黒一色であるがソリッドカラーではないことを示す。従って、ピクセルシェーダ２３７Ａがこのソリッドテクスチャマップを読み取るとき、ピクセルシェーダ２３７Ａは、パーティション３０８Ｅ〜３０８Ｈ、および３０８Ｍについて「白」色を使用し、ピクセルシェーダ２３７Ｂは、他のパーティションについてのテクスチャのルックアップを、タイルテクスチャマップ２４２を使用して行い得る。この例では、ピクセルシェーダ２３７Ｂは、パーティション３０８Ｎに対応するピクセルについて、黒一色を検索するためにタイルテクスチャマップ２４２を使用する。加えて、ピクセルシェーダ２３７Ａは、パーティション３０８Ａ〜３０８Ｄ、３０８Ｉ〜３０８Ｌ、および３０８Ｎ〜３０８Ｐについてのテクスチャをルックアップするために、ソリッドテクスチャマップ４０２を使用する。
【００５８】
[0063]  主要な色を含むソリッドテクスチャマップが帯域幅および電力消費の低減を提供し得る。具体的には、主要な色である各パーティションについてのソリッドテクスチャマップ内の主要な色を含む以外に、主要な色は一回含まれるのみである。この例では、「Ｔ」値に対応する全てのパーティションが主要な色である。加えて、多くのソリッドカラーパーティションを用いるタイルについて、フレームレートパフォーマンスが改善され得る。しかしながら、わずかなソリッドパーティション（solid partitions）を有するまたはソリッドパーティションを有していないタイルにおいて、ピクセルシェーダ２３７内の所定以上の仕事を行うオーバーヘッドは、パフォーマンスを落とし、より多くの電力を消費し得る。これらのタイルにおいて、通常のテクスチャルックアップはうまく機能する傾向があり得る。従って、各テクスチャのソリッドカラーパーティションの閾値パーセンテージまたは閾値数に基づいて、ピクセルシェーダ２３７Ａまたはピクセルシェーダ２３７Ｂの適切な選択が有効であり得る。一例では、閾値に到達する場合、ピクセルシェーダ２３７Ａはソリッドテクスチャマップ４０２を使用し、ピクセルシェーダ２３７Ｂはタイルテクスチャマップ２４２を使用する。この例では、ピクセルシェーダ２３７は、ディスプレイ１１８上でピクセルにレンダリングするためにソリッドテクスチャマップ４０２を使用する、「変更された」ピクセルシェーダ（例えば、ピクセルシェーダ２３７Ａ）を含み得る。加えて、閾値に到達しない場合、ピクセルシェーダ２３７は、ディスプレイ１１８上のピクセルにレンダリングするためにタイルテクスチャマップ２４２を使用する、「未変更の」ピクセルシェーダ（例えば、ピクセルシェーダ２３７Ｂ）を使用し得る。
【００５９】
[0064]  ピクセルシェーダ２３７は、タイルテクスチャマップ２４２またはソリッドテクスチャマップ４０２を使用して、テクスチャをルックアップし得る。ある実施形態では、ピクセルシェーダ２３７は、ディスプレイ１１８上でレンダリングされるべき特定のピクセルが、ソリッドカラーを用いてパーティションにマッピングを行うかどうかを決定する。特定のピクセルが、ソリッドカラーであるパーティションにマッピングを行うと決定することに応答して、ピクセルシェーダ２３７Ａが適宜選択され得、テクスチャをルックアップするためにソリッドテクスチャマップ４０２を使用し得る。特定のピクセルが、ソリッドカラーではないパーティションにマッピングを行うと決定することに応答して、ピクセルシェーダ２３７Ｂが適宜選択され得、テクスチャをルックアップするために、メモリ１１０内に記憶されたタイルテクスチャマップ２４２を使用し得る。
【００６０】
[0065]  ある実施形態では、ピクセルシェーダ２３７Ａは、タイルに対応するソリッドテクスチャマップ４０２へのアクセスを提供され得、タイルが、ソリッドカラーであるパーティションの閾値パーセンテージを有するかどうかを決定する。それぞれのタイルが、ソリッドカラーであるパーティションの閾値パーセンテージを有すると決定することに応答して、ピクセルシェーダ２３７Ａは、ソリッドテクスチャマップ４０２を使用して、テクスチャルックアップを行い得る。一例では、ピクセルシェーダ２３７Ａは、タイルの非ソリッドパーティション（non-solid partitions）についてのｘｙ座標に基づいて、ピクセルごとの色を検索する。ソリッドパーティションについて、それが色情報を有しているため、ソリッドテクスチャマップ４０２を使用して、ピクセルシェーダ２３７Ａはルックアップ（lookup）のみを行い得る。加えて、ピクセルシェーダ２３７Ｂは、残りのタイルについてのｘｙ座標に基づいて、ピクセルごとの色を検索し得る。
【００６１】
[0066]  対照的に、それぞれのタイルが、ソリッドカラーであるパーティションの閾値パーセンテージを有さないと決定することに応答して、ピクセルシェーダ２３７Ｂは、タイルテクスチャマップ２４２を使用して、テクスチャルックアップを行い得る。一例では、ピクセルシェーダ２３７Ｂは、テクスチャメモリ内に記憶されたタイルテクスチャマップ２４２のみを使用して、全てのパーティションについてテクスチャルックアップを行う。
【００６２】
[0067]  ピクセルシェーダ２３７は、２Ｄ画像を記憶する出力４３８を提供する。一例では、出力４３８は、メモリ１１０から割り当てられたフレームバッファであり得る。フラグメントは、破棄されるかまたはフレームバッファに渡されることができ、最後の画像はドローイングバッファ（drawing buffer）に渡され、そして、ユーザに示されるか、または例えばテクスチャデータとして保存するために、代替的に後の利用のためのオフスクリーンバッファ（off-screen buffer）に保存される。
【００６３】
[0068]  上述されるように、およびここでさらに強調されるように、図１−５は単なる例であり、これらは特許請求の範囲を必要以上に限定するものではない。例えば、この開示で説明される技法は、例えば、グラフィックスＡＰＩ ２２６、ＧＰＵドライバ２２８、コマンドエンジン２３２、および処理ユニット２３４を含む、図２で示される任意のコンポーネント内で実装され得る。例えば、テクスチャマッピングまたはテクスチャをレンダリングするための技法は、コマンドエンジン（command engine）２３２内、および／または処理ユニット２３４によって実装されるグラフィックスパイプライン（graphics pipeline）内で実装され得る。
【００６４】
[0069]  図６は、ある実施形態に従った、テクスチャマップをＧＰＵに提供するための方法６００を図示する簡略化されたフローチャートである。方法６００は、限定されることが意味されるものではなく、他のアプリケーションで使用され得る。
【００６５】
[0070]  方法６００は、ブロック６１０〜６４０を含む。ブロック６１０では、レンダリング可能なコンテンツのタイルが複数のパーティションに分割される。一例では、タイル生成器４１０は、レンダリング可能なコンテンツのタイル３０６Ａを、複数のパーティション３０８に分割する。ブロック６２０では、複数のパーティションのうちの一組のパーティションがソリッドカラーであると決定される。一例では、タイル生成器４１０は、複数のパーティション３０８のうちのパーティション３０８Ｅ〜３０８Ｈ、および３０８Ｍがソリッドカラーであることを決定する。ブロック６３０では、複数のパーティションのうちの一組のパーティションがソリッドカラーであることを示すソリッドテクスチャマップが生成される。一例では、ソリッドテクスチャマップ生成器４１２は、複数のパーティションのうちの一組のパーティションがソリッドカラーであることを示すソリッドテクスチャマップ４０２を生成する。ブロック６４０では、ソリッドテクスチャマップへのアクセスがＧＰＵに提供される。一例では、ソリッドテクスチャマップ生成器４１２は、ソリッドテクスチャマップ４０２へのアクセスをＧＰＵ １１２に提供する。
【００６６】
[0071]  ある実施形態では、ブロック６１０〜６４０は、レンダリング可能なコンテンツの任意の数のレイヤまたはタイルの任意の数の発生に対して行われ得る。また、上述されるようなブロック６１０〜６４０の前、間、または後に、追加の処理が行われ得ることも理解される。また、本明細書で説明される方法６００の１つ以上のブロックが、説明されるものと異なるシーケンスにおいて省略され、組み合わせられ、または実行され得ることが理解される。
【００６７】
[0072]  当業者はさらに、本明細書で開示される実施形態と関連して説明される様々な実例となる論理ブロック、構成、モジュール、回路、およびステップが、電子ハードウェア、コンピュータソフトウェア、または両方の組み合わせとして実装されることを理解するだろう。ハードウェアおよびソフトウェアのこの互換性を明確に例示するために、様々な例示的なコンポーネント、ブロック、構成、モジュール、回路、およびステップが、一般にそれらの機能の観点から上述されている。このような機能がハードウェアとして実装されるか、ソフトウェアとして実装されるかは、システム全体に課される特定のアプリケーションおよび設計制約に依存する。当業者は、説明された機能を特定のアプリケーションごとに様々な方法で実装し得るが、このような実装の決定は、本開示の範囲からの逸脱を引き起こしていると解釈されるべきではない。
【００６８】
[0073]  本明細書に開示された実施形態に関連して説明される方法のブロックまたは動作は、直接ハードウェアにおいて、プロセッサによって実行されるソフトウェアモジュールにおいて、またはこれら２つの組み合わせにおいて、具現化され得る。ソフトウェアモジュール（例えば、ブラウザ２２４、タイル生成器４１０、またはソリッドテクスチャマップ生成器４１２）は、ランダムアクセスメモリ（ＲＡＭ）、フラッシュメモリ、読み取り専用メモリ（ＲＯＭ）、プログラマブル読み取り専用メモリ（ＰＲＯＭ）、消去可能プログラマブル読み取り専用メモリ（ＥＰＲＯＭ）、電気的消去可能プログラマブル読み取り専用メモリ（ＥＥＰＲＯＭ（登録商標））、レジスタ、ハードディスク、リムーバブルディスク、コンパクトディスク読み取り専用メモリ（ＣＤ−ＲＯＭ）、または当技術分野において周知の記憶媒体のあらゆる他の形態内に存在し得る。ソフトウェアモジュールは、１つ以上のプロセッサ上で実行され得る。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるように、プロセッサに結合される。代替では、記憶媒体は、プロセッサと一体化され得る。プロセッサおよび記憶媒体は、特定用途向け集積回路（ＡＳＩＣ）中に存在し得る。ＡＳＩＣは、計算デバイスまたはユーザ端末内に存在し得る。代替では、プロセッサおよび記憶媒体は、コンピューティングデバイスまたはユーザ端末内のディスクリートコンポーネントとして存在し得る。
【００６９】
[0074]  開示された実施形態の先の説明は、当業者が開示された実施形態を製造または使用することを可能にするために提供される。これらの実施形態に対する様々な修正は、当業者にとって容易に明らかであり、本明細書に定義された原理は、本開示の範囲から逸脱することなく他の実施形態に適用され得る。従って、本開示は、本明細書に示される実施形態に限定されることが意図されるものではなく、下記の請求項によって定義されるような原理および新規な特徴と一致する最も広い範囲が与えられるべきものである。よって、本開示は、請求項によってのみ限定される。
【図１】
2017527898.tif 000003
【図２】
2017527898.tif 000004
【図３】
2017527898.tif 000005
【図４】
2017527898.tif 000006
【図５】
2017527898.tif 000007
【図６】
2017527898.tif 000008
【手続補正書】
【提出日】平成29年4月21日(2017.4.21)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ソリッドテクスチャマップをグラフィックス処理ユニット（ＧＰＵ）に提供する方法であって、
レンダリング可能なコンテンツのタイルを、第１の組のパーティションと第２の組のパーティションとを含む複数のパーティションに分割することと、
前記第１の組のパーティションがソリッドカラーであることを決定することと、
前記第１の組のパーティションがソリッドカラーであり、前記第２の組のパーティションがソリッドカラーではないことを示すソリッドテクスチャマップを生成することと、
前記ソリッドテクスチャマップへのアクセスをＧＰＵに提供することと
を備える、方法。
【請求項２】
ウェブページを１つ以上のレイヤに分割することと、
前記１つ以上のレイヤのうちの１つのレイヤを複数のタイルに分割することと
をさらに備える、請求項１に記載の方法。
【請求項３】
前記分割することは、前記タイルを複数の水平なまたは垂直なパーティションに分割することを含む、請求項１に記載の方法。
【請求項４】
一組のパーティションの各パーティションについて、それぞれのパーティションの色を決定すること、ここにおいて、前記ソリッドテクスチャマップは、それぞれの色を含む、
をさらに備える、請求項１に記載の方法。
【請求項５】
前記タイルの主要なソリッドカラーを決定すること、ここにおいて、前記ソリッドテクスチャマップは、前記主要なソリッドカラーを含む、
をさらに備える、請求項１に記載の方法。
【請求項６】
前記第１の組のパーティションがソリッドカラーであることを決定することは、クライアントアプリケーションによって、前記第１の組のパーティションがソリッドカラーであることを決定することを含み、前記ソリッドテクスチャマップを生成することは、前記クライアントアプリケーションによって、前記ソリッドテクスチャマップを生成することを含み、前記前記ソリッドテクスチャマップへのアクセスを提供することは、前記クライアントアプリケーションによって、前記ソリッドテクスチャマップを前記ＧＰＵによってアクセス可能なテクスチャメモリに記憶することを含む、請求項１に記載の方法。
【請求項７】
前記ソリッドテクスチャマップは、前記複数のパーティションの各パーティションについて１つのエントリを含み、各それぞれのエントリは、対応するパーティションがソリッドカラーであるかどうかを示す、請求項１に記載の方法。
【請求項８】
前記ソリッドテクスチャマップは、前記第１の組のパーティションが第１のソリッドカラーであることを示し、前記方法は、
第３の組のパーティションが第２のソリッドカラーであることを決定すること、前記ソリッドテクスチャマップは、前記第３の組のパーティションが前記第２のソリッドカラーであることを示す、
をさらに備える、請求項１に記載の方法。
【請求項９】
前記第１の組のパーティションにおけるパーティションの数が閾値を満たすかどうかを決定すること、ここにおいて、前記ソリッドテクスチャマップを生成することは、パーティションの前記数が前記閾値を満たすことを決定することに応答して、前記ソリッドテクスチャマップを生成することを含む、
をさらに備える、請求項１に記載の方法。
【請求項１０】
前記タイルが、ソリッドカラーであるパーティションの閾値パーセンテージを有するかどうかを決定すること、ここにおいて、前記ソリッドテクスチャマップを生成することは、前記タイルが、ソリッドカラーであるパーティションの前記閾値パーセンテージを有することを決定することに応答して、前記ソリッドテクスチャマップを生成することを含む、
をさらに備える、請求項１に記載の方法。
【請求項１１】
前記第１の組のパーティションの第１のパーティションは、前記複数のパーティションの第２のパーティションとは異なる色である、請求項１に記載の方法。
【請求項１２】
前記第２の組のパーティションの少なくとも１つのパーティションは、前記主要なソリッドカラーとは異なるソリッドカラーである、請求項５に記載の方法。
【請求項１３】
ソリッドテクスチャマップをグラフィックス処理ユニット（ＧＰＵ）に提供するためのシステムであって、
コンピューティングデバイス上で実行するタイル生成器と、ここにおいて、前記タイル生成器は、レンダリング可能なコンテンツのタイルを、第１の組のパーティションと第２の組のパーティションとを含む複数のパーティションに分割し、前記第１の組のパーティションがソリッドカラーであることを決定する、
前記第１の組のパーティションがソリッドカラーであり、前記第２の組のパーティションがソリッドカラーではないことを示すソリッドテクスチャマップを生成し、前記ソリッドテクスチャマップへのアクセスをＧＰＵに提供するソリッドテクスチャマップ生成器と
を備える、システム。
【請求項１４】
前記タイル生成器は、ウェブページを１つ以上のレイヤに分割し、前記１つ以上のレイヤのうちの１つのレイヤを複数のタイルに分割する、請求項１３に記載のシステム。
【請求項１５】
前記タイル生成器は、前記タイルを複数の水平なまたは垂直なパーティションに分割する、請求項１３に記載のシステム。
【請求項１６】
前記タイル生成器は、一組のパーティションの各パーティションについて、それぞれのパーティションの色を決定し、前記ソリッドテクスチャマップは、それぞれの色を含む、請求項１３に記載のシステム。
【請求項１７】
前記タイル生成器は、前記タイルの主要なソリッドカラーを決定し、前記ソリッドテクスチャマップは、前記主要なソリッドカラーを含む、請求項１３に記載のシステム。
【請求項１８】
前記タイル生成器と前記ソリッドテクスチャマップ生成器とを含むクライアントアプリケーション、ここにおいて、前記クライアントアプリケーションは、前記ソリッドテクスチャマップに関連付けられた１つ以上のドローコールコマンドを前記ＧＰＵに実行させる１つ以上の命令を出し、前記ソリッドテクスチャマップ生成器は、前記ソリッドテクスチャマップを前記ＧＰＵによってアクセス可能なテクスチャメモリに記憶する、
をさらに備える、請求項１３に記載システム。
【請求項１９】
前記ＧＰＵは、ピクセルシェーダを含み、前記ソリッドテクスチャマップ生成器は、前記複数のパーティションが条件を満たすかどうかを決定し、前記複数のパーティションが前記条件を満たす場合、前記ソリッドテクスチャマップ生成器は、前記ソリッドテクスチャマップを生成し、前記複数のパーティションが前記条件を満たさない場合、各ピクセルについて、前記ピクセルシェーダは、メモリに記憶されたタイルテクスチャマップにアクセスすることによって、現在のテクスチャ座標についてのテクスチャルックアップを行うことによって、ピクセルごとのシェーディング計算を行う、請求項１３に記載のシステム。
【請求項２０】
動作を行うためのコンピュータ実行可能な命令を記憶するコンピュータ可読媒体であって、
レンダリング可能なコンテンツのタイルを、第１の組のパーティションと第２の組のパーティションとを含む複数のパーティションに分割することと、
前記第１の組のパーティションがソリッドカラーであることを決定することと、
前記第１の組のパーティションがソリッドカラーであり、前記第２の組のパーティションがソリッドカラーではないことを示すソリッドテクスチャマップを生成することと、
前記ソリッドテクスチャマップへのアクセスをＧＰＵに提供することと
を備える、コンピュータ可読媒体。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００６９
【補正方法】変更
【補正の内容】
【００６９】
[0074]  開示された実施形態の先の説明は、当業者が開示された実施形態を製造または使用することを可能にするために提供される。これらの実施形態に対する様々な修正は、当業者にとって容易に明らかであり、本明細書に定義された原理は、本開示の範囲から逸脱することなく他の実施形態に適用され得る。従って、本開示は、本明細書に示される実施形態に限定されることが意図されるものではなく、下記の請求項によって定義されるような原理および新規な特徴と一致する最も広い範囲が与えられるべきものである。よって、本開示は、請求項によってのみ限定される。
以下に本願の出願当初の特許請求の範囲に記載された発明を付記する。
［Ｃ１］
ソリッドテクスチャマップをグラフィックス処理ユニット（ＧＰＵ）に提供する方法であって、
レンダリング可能なコンテンツのタイルを複数のパーティションに分割することと、
前記複数のパーティションのうちの一組のパーティションがソリッドカラーであることを決定することと、
前記複数のパーティションのうちの前記一組のパーティションがソリッドカラーであることを示すソリッドテクスチャマップを生成することと、
前記ソリッドテクスチャマップへのアクセスをＧＰＵに提供することと
を備える、方法。
［Ｃ２］
ウェブページを１つ以上のレイヤに分割すること
をさらに備える、Ｃ１に記載の方法。
［Ｃ３］
前記１つ以上のレイヤのうちの１つのレイヤを複数のタイルに分割することと
をさらに備える、Ｃ２に記載の方法。
［Ｃ４］
前記分割することは、前記タイルを複数の水平なパーティションに分割することを含む、Ｃ１に記載の方法。
［Ｃ５］
前記分割することは、前記タイルを複数の垂直なパーティションに分割することを含む、Ｃ１に記載の方法。
［Ｃ６］
前記一組のパーティションのうちの各パーティションについて、それぞれのパーティションの色を決定すること、ここにおいて、前記ソリッドテクスチャマップは、前記色を含む、
をさらに備える、Ｃ１に記載の方法。
［Ｃ７］
前記タイルの主要なソリッドカラーを決定すること、ここにおいて、前記ソリッドテクスチャマップは、前記主要な色を含む、
をさらに備える、Ｃ１に記載の方法。
［Ｃ８］
ソリッドテクスチャマップをグラフィックス処理ユニット（ＧＰＵ）に提供するためのシステムであって、
コンピューティングデバイス上で実行するタイル生成器と、ここにおいて、前記タイル生成器は、レンダリング可能なコンテンツのタイルを複数のパーティションに分割し、前記複数のパーティションのうちの一組のパーティションがソリッドカラーであることを決定する、
前記複数のパーティションのうちの前記一組のパーティションがソリッドカラーであることを示すソリッドテクスチャマップを生成し、前記ソリッドテクスチャマップへのアクセスをＧＰＵに提供するソリッドテクスチャマップ生成器と
を備える、システム。
［Ｃ９］
前記タイル生成器は、ウェブページを１つ以上のレイヤに分割する、Ｃ８に記載のシステム。
［Ｃ１０］
前記タイル生成器は、前記１つ以上のレイヤのうちの１つのレイヤを複数のタイルに分割する、Ｃ９に記載のシステム。
［Ｃ１１］
前記タイル生成器は、前記タイルを複数の水平なパーティションに分割する、Ｃ８に記載のシステム。
［Ｃ１２］
前記タイル生成器は、前記タイルを複数の垂直なパーティションに分割する、Ｃ８に記載のシステム。
［Ｃ１３］
前記タイル生成器は、前記一組のパーティションのうちの各パーティションについて、それぞれのパーティションの色を決定し、前記ソリッドテクスチャマップは、前記色を含む、Ｃ８に記載のシステム。
［Ｃ１４］
前記タイル生成器は、前記タイルの主要なソリッドカラーを決定し、前記ソリッドテクスチャマップは、前記主要な色を含む、Ｃ８に記載のシステム。
［Ｃ１５］
動作を行うためのコンピュータ実行可能な命令を記憶するコンピュータ可読媒体であって、
レンダリング可能なコンテンツのタイルを複数のパーティションに分割することと、
前記複数のパーティションのうちの一組のパーティションがソリッドカラーであることを決定することと、
前記複数のパーティションのうちの前記一組のパーティションがソリッドカラーであることを示すソリッドテクスチャマップを生成することと、
前記ソリッドテクスチャマップへのアクセスをＧＰＵに提供することと
を備える、コンピュータ可読媒体。
［Ｃ１６］
前記動作は、
ウェブページを１つ以上のレイヤに分割すること
をさらに備える、Ｃ１５に記載のコンピュータ可読媒体。
［Ｃ１７］
前記動作は、
前記１つ以上のレイヤのうちの１つのレイヤを複数のタイルに分割すること
をさらに備える、Ｃ１６に記載のコンピュータ可読媒体。
［Ｃ１８］
前記分割することは、前記タイルを複数の水平なパーティションに分割することを含む、Ｃ１５に記載のコンピュータ可読媒体。
［Ｃ１９］
前記動作は、
前記一組のパーティションのうちの各パーティションについて、それぞれのパーティションの色を決定すること、ここにおいて、前記ソリッドテクスチャマップは、前記色を含む、
をさらに備える、Ｃ１５に記載のコンピュータ可読媒体。
［Ｃ２０］
前記動作は、
前記タイルの主要なソリッドカラーを決定すること、ここにおいて、前記ソリッドテクスチャマップは、前記主要な色を含む、
をさらに備える、Ｃ１５に記載のコンピュータ可読媒体。
【国際調査報告】
2017527898.tif 000009