(57)【特許請求の範囲】
【請求項１】
グラフィックス処理ユニット（ＧＰＵ）（６）によって、少なくとも第１の画像サーフェス（２２）と第２の画像サーフェス（２６）とを受信することであって、前記第２の画像サーフェスが前記第１の画像サーフェスに少なくとも部分的に重なる、受信することと、
ディスプレイ（８）を複数のタイルへと分割することと、
前記ＧＰＵによって、前記第１の画像サーフェス上でビニングパスを実行することであって、前記ビニングパスを実行することが、
前記第１の画像サーフェスがどのタイルに属するかを決定することと、
前記第１の画像サーフェスのサーフェス識別子値を、前記第１の画像サーフェスに対応するタイルメモリ（２０）のレイヤ（２４）のストレージロケーションに記憶することと、を含む、実行することと、
前記第１の画像サーフェスの前記ビニングパスの期間中、前記第２の画像サーフェスのビニングパスを実行する前に、
前記ＧＰＵによって、前記第１の画像サーフェスを前記第１の画像サーフェスのサーフェスピクセルの複数のブロックへと分割することと、
前記ＧＰＵによって、前記第１の画像サーフェスについての前記サーフェス識別子値を、前記第１の画像サーフェスのサーフェスピクセルの前記複数のブロックのうちのあるブロックに対応する低解像度バッファ（１８）内の複数のストレージロケーションのうちのストレージロケーション内に記憶することであって、前記低解像度バッファ内の前記複数のストレージロケーションの各々がまた、前記ディスプレイ上のピクセルのブロックに対応する、記憶することと、
前記第２の画像サーフェス上で前記ビニングパスを実行することと、
前記第２の画像サーフェスの前記ビニングパスの期間中に、
前記第２の画像サーフェスを前記第２の画像サーフェスのサーフェスピクセルの複数のブロックへと分割することと、
前記第２の画像サーフェスのサーフェスピクセルの前記複数のブロックのうちのあるブロックが前記第１の画像サーフェスのピクセルの前記ブロックと完全に同じ場所に位置するとき、前記第２の画像サーフェスについてのサーフェス識別子値を、前記第２の画像サーフェスのサーフェスピクセルの前記複数のブロックのうちの前記ブロックに対応する前記低解像度バッファ内の前記複数のストレージロケーションのうちのストレージロケーション内に記憶することと、
ブロックごとに、記憶された前記サーフェス識別子値に基づいて、レンダリングすべき画像サーフェスを決定することと、
を備える方法。
【請求項２】
前記第１の画像サーフェスについての前記サーフェス識別子値を、前記第１の画像サーフェスのサーフェスピクセルの前記複数のブロックの各々にそれぞれ対応する前記低解像度バッファ内の前記複数のストレージロケーションの各々に記憶すること
をさらに備える、請求項１に記載の方法。
【請求項３】
前記第２の画像サーフェス上で前記ビニングパスを実行することと、
前記第２の画像サーフェスの前記ビニングパスの期間中に、
前記第２の画像サーフェスを前記第２の画像サーフェスのサーフェスピクセルの複数のブロックへと分割することと、
前記第２の画像サーフェスのサーフェスピクセルの前記複数のブロックのうちのあるブロックが、前記第１の画像サーフェスのピクセルの前記複数のブロックのいずれとも同じ場所に位置しないとき、前記第２の画像サーフェスについてのサーフェス識別子値を、前記第２の画像サーフェスのサーフェスピクセルの前記複数のブロックのうちの前記ブロックに対応する前記低解像度バッファ内の前記複数のストレージロケーションのうちのストレージロケーション内に記憶することと
をさらに備える、請求項１に記載の方法。
【請求項４】
前記第２の画像サーフェス上で前記ビニングパスを実行することと、
前記第２の画像サーフェスの前記ビニングパスの期間中に、
前記第２の画像サーフェスを前記第２の画像サーフェスのサーフェスピクセルの複数のブロックへと分割することと、
前記第２の画像サーフェスのサーフェスピクセルの前記複数のブロックのうちのあるブロックが、前記第１の画像サーフェスのピクセルの前記ブロックと部分的に同じ場所に位置するとき、前記第２の画像サーフェスについてのサーフェス識別子値を、前記第２の画像サーフェスのサーフェスピクセルの前記複数のブロックのうちの前記ブロックに対応する前記低解像度バッファ内の前記複数のストレージロケーションのうちのストレージロケーション内に記憶しないことと
をさらに備える、請求項１に記載の方法。
【請求項５】
前記第１の画像サーフェスのサーフェスピクセルの前記複数のブロックの各々が、前記第１の画像サーフェスの２つ以上のサーフェスピクセルを含み、前記ディスプレイ上のピクセルの前記ブロックが、前記ディスプレイ上の２つ以上のピクセルを含む、請求項１に記載の方法。
【請求項６】
少なくとも前記第１の画像サーフェスと前記第２の画像サーフェスとを受信することが、プロセッサ（４）から少なくとも前記第１の画像サーフェスと前記第２の画像サーフェスとを受信することを含む、請求項１に記載の方法。
【請求項７】
プロセッサ（４）と前記ＧＰＵとのうちの少なくとも１つによって、前記第１の画像サーフェスについての前記サーフェス識別子値と、前記第２の画像サーフェスについてのサーフェス識別子値とを割り当てることであって、前記第１の画像サーフェスについてのサーフェス識別子値を記憶することが、前記第１の画像サーフェスについての前記割り当てられたサーフェス識別子値を記憶することを含む、割り当てること
をさらに備える、請求項１に記載の方法。
【請求項８】
複数の画像サーフェスを受信することであって、前記複数の画像サーフェスが前記第１の画像サーフェスと前記第２の画像サーフェスとを含む、受信することと、
プロセッサ（４）と前記ＧＰＵとのうちの少なくとも１つによって、前記複数の画像サーフェスの最後方画像サーフェスから開始し前記複数の画像サーフェスの最前方画像サーフェスまで継続して、サーフェス識別子値を前記複数の画像サーフェスの各々に割り当てることと
をさらに備える、請求項１に記載の方法。
【請求項９】
前記低解像度バッファに記憶された前記サーフェス識別子値に基づいて、前記第１の画像サーフェスのどの部分が前記第２の画像サーフェスによって重なられるかを決定することと、
前記決定に基づいて、前記第２の画像サーフェスによって重なられない前記第１の画像サーフェスの部分をレンダリングすることと、
前記決定に基づいて、前記第２の画像サーフェスによって重なられる前記第１の画像サーフェスの部分をレンダリングから除外することと
をさらに備える、請求項１に記載の方法。
【請求項１０】
複数のストレージロケーションを含む低解像度バッファ（１８）と、
レイヤ（２４）を含むタイルメモリ（２０）と、
グラフィックス処理ユニット（ＧＰＵ）（６）と
を備える装置（２）であって、前記ＧＰＵ（６）は、
少なくとも第１の画像サーフェス（２２）と第２の画像サーフェス（２６）とを受信することであって、前記第２の画像サーフェスが前記第１の画像サーフェスに少なくとも部分的に重なる、受信することと、
ディスプレイ（８）を複数のタイルへと分割することと、
前記第１の画像サーフェス上でビニングパスを実行することと
を行うように構成され、ここで、前記第１の画像サーフェス上で前記ビニングパスを実行するために、前記ＧＰＵが、
前記第１の画像サーフェスがどのタイルに属するかを決定することと、
前記第１の画像サーフェスのサーフェス識別子値を、前記第１の画像サーフェスに対応する前記タイルメモリの前記レイヤのストレージロケーションに記憶することと、を行うように構成され、
前記第１の画像サーフェスの前記ビニングパスの期間中、前記ＧＰＵが前記第２の画像サーフェスのビニングパスを実行する前に、前記ＧＰＵは、
前記第１の画像サーフェスを前記第１の画像サーフェスのサーフェスピクセルの複数のブロックへと分割することと、
前記第１の画像サーフェスについての前記サーフェス識別子値を、前記第１の画像サーフェスのサーフェスピクセルの前記複数のブロックのうちのあるブロックに対応する前記低解像度バッファ内の前記複数のストレージロケーションのうちのストレージロケーション内に記憶することであって、前記低解像度バッファ内の前記複数のストレージロケーションの各々がまた、前記ディスプレイ上のピクセルのブロックに対応する、記憶することと、
前記第２の画像サーフェス上で前記ビニングパスを実行することと、
前記第２の画像サーフェスの前記ビニングパスの期間中に、
前記第２の画像サーフェスを前記第２の画像サーフェスのサーフェスピクセルの複数のブロックへと分割することと、
前記第２の画像サーフェスのサーフェスピクセルの前記複数のブロックのうちのあるブロックが前記第１の画像サーフェスのピクセルの前記ブロックと完全に同じ場所に位置するとき、前記第２の画像サーフェスについてのサーフェス識別子値を、前記第２の画像サーフェスのサーフェスピクセルの前記複数のブロックのうちの前記ブロックに対応する前記低解像度バッファ内の前記複数のストレージロケーションのうちのストレージロケーション内に記憶することと、
ブロックごとに、記憶された前記サーフェス識別子値に基づいて、レンダリングすべき画像サーフェスを決定することと、
を行うようにさらに構成される、装置（２）。
【請求項１１】
前記ＧＰＵは、
前記第１の画像サーフェスについての前記サーフェス識別子値を、前記第１の画像サーフェスのサーフェスピクセルの前記複数のブロックの各々にそれぞれ対応する前記低解像度バッファ内の前記複数のストレージロケーションの各々に記憶する
ようにさらに構成される、請求項１０に記載の装置。
【請求項１２】
前記ＧＰＵは、
前記第２の画像サーフェス上で前記ビニングパスを実行することと、
前記第２の画像サーフェスの前記ビニングパスの期間中に、
前記第２の画像サーフェスを前記第２の画像サーフェスのサーフェスピクセルの複数のブロックへと分割することと、
前記第２の画像サーフェスのサーフェスピクセルの前記複数のブロックのうちのあるブロックが、前記第１の画像サーフェスのピクセルの前記複数のブロックのいずれとも同じ場所に位置しないとき、前記第２の画像サーフェスについてのサーフェス識別子値を、前記第２の画像サーフェスのサーフェスピクセルの前記複数のブロックのうちの前記ブロックに対応する前記低解像度バッファ内の前記複数のストレージロケーションのうちのストレージロケーション内に記憶することと
を行うようにさらに構成される、請求項１０に記載の装置。
【請求項１３】
前記ＧＰＵは、
前記第２の画像サーフェス上で前記ビニングパスを実行することと、
前記第２の画像サーフェスの前記ビニングパスの期間中に、
前記第２の画像サーフェスを前記第２の画像サーフェスのサーフェスピクセルの複数のブロックへと分割することと、
前記第２の画像サーフェスのサーフェスピクセルの前記複数のブロックのうちのあるブロックが、前記第１の画像サーフェスのピクセルの前記ブロックと部分的に同じ場所に位置するとき、前記第２の画像サーフェスについてのサーフェス識別子値を、前記第２の画像サーフェスのサーフェスピクセルの前記複数のブロックのうちの前記ブロックに対応する前記低解像度バッファ内の前記複数のストレージロケーションのうちのストレージロケーション内に記憶しないことと
を行うようにさらに構成される、請求項１０に記載の装置。
【請求項１４】
前記第１の画像サーフェスのサーフェスピクセルの前記複数のブロックの各々が、前記第１の画像サーフェスの２つ以上のサーフェスピクセルを含み、前記ディスプレイ上のピクセルの前記ブロックが、前記ディスプレイ上の２つ以上のピクセルを含む、請求項１０に記載の装置。
【請求項１５】
プロセッサ（４）をさらに備え、前記ＧＰＵが、前記プロセッサから少なくとも前記第１の画像サーフェスと前記第２の画像サーフェスとを受信する、請求項１０に記載の装置。
【請求項１６】
前記ＧＰＵが、前記第１の画像サーフェスについての前記サーフェス識別子値と前記第２の画像サーフェスについてのサーフェス識別子値とを割り当てるようにさらに構成され、前記ＧＰＵが、前記第１の画像サーフェスについての前記割り当てられたサーフェス識別子値を記憶する、請求項１０に記載の装置。
【請求項１７】
前記ＧＰＵが、複数の画像サーフェスを受信するようにさらに構成され、前記複数の画像サーフェスが前記第１の画像サーフェスと前記第２の画像サーフェスとを含み、前記複数の画像サーフェスの最後方画像サーフェスから開始し前記複数の画像サーフェスの最前方画像サーフェスまで継続して、サーフェス識別子値を前記複数の画像サーフェスの各々に割り当てるように構成される、請求項１０に記載の装置。
【請求項１８】
前記ＧＰＵが、
前記低解像度バッファに記憶された前記サーフェス識別子値に基づいて、前記第１の画像サーフェスのどの部分が前記第２の画像サーフェスによって重なられるかを決定することと、
前記決定に基づいて、前記第２の画像サーフェスによって重なられない前記第１の画像サーフェスの部分をレンダリングすることと、
前記決定に基づいて、前記第２の画像サーフェスによって重なられる前記第１の画像サーフェスの部分をレンダリングから除外することと
を行うようにさらに構成される、請求項１０に記載の装置。
【請求項１９】
前記装置が、ワイヤレスデバイスと、携帯電話と、携帯情報端末（ＰＤＡ）と、ビデオディスプレイを含むビデオゲームコンソールと、モバイルビデオ会議ユニットと、ラップトップコンピュータと、デスクトップコンピュータと、テレビジョンセットトップボックスと、タブレットコンピューティングデバイスと、電子ブックリーダーとのうちの少なくとも１つを備える、請求項１０に記載の装置。
【請求項２０】
グラフィックス処理ユニット（ＧＰＵ）（６）に、
少なくとも第１の画像サーフェス（２２）と第２の画像サーフェス（２６）とを受信することであって、前記第２の画像サーフェスが前記第１の画像サーフェスに少なくとも部分的に重なる、受信することと、
ディスプレイ（８）を複数のタイルへと分割することと、
前記第１の画像サーフェス上でビニングパスを実行することと、
を行わせる命令を備える、非一時的コンピュータ可読記憶媒体（１２）であって、前記ＧＰＵに前記ビニングパスを実行することを行わせる前記命令が、前記ＧＰＵに、
前記第１の画像サーフェスがどのタイルに属するかを決定することと、
前記第１の画像サーフェスのサーフェス識別子値を、前記第１の画像サーフェスに対応するタイルメモリ（２０）のレイヤ（２４）のストレージロケーションに記憶することと、を行わせる命令を含んでおり、前記非一時的コンピュータ可読記憶媒体（１２）がさらに、前記ＧＰＵに、
前記第１の画像サーフェスの前記ビニングパスの期間中、前記第２の画像サーフェスのビニングパスを実行する前に、
前記第１の画像サーフェスを前記第１の画像サーフェスのサーフェスピクセルの複数のブロックへと分割することと、
前記第１の画像サーフェスについての前記サーフェス識別子値を、前記第１の画像サーフェスのサーフェスピクセルの前記複数のブロックのうちのあるブロックに対応する低解像度バッファ（１８）内の複数のストレージロケーションのうちのストレージロケーション内に記憶することであって、前記低解像度バッファ内の前記複数のストレージロケーションの各々がまた、前記ディスプレイ上のピクセルのブロックに対応する、記憶することと、
前記第２の画像サーフェス上で前記ビニングパスを実行することと、
前記第２の画像サーフェスの前記ビニングパスの期間中に、
前記第２の画像サーフェスを前記第２の画像サーフェスのサーフェスピクセルの複数のブロックへと分割することと、
前記第２の画像サーフェスのサーフェスピクセルの前記複数のブロックのうちのあるブロックが前記第１の画像サーフェスのピクセルの前記ブロックと完全に同じ場所に位置するとき、前記第２の画像サーフェスについてのサーフェス識別子値を、前記第２の画像サーフェスのサーフェスピクセルの前記複数のブロックのうちの前記ブロックに対応する前記低解像度バッファ内の前記複数のストレージロケーションのうちのストレージロケーション内に記憶することと、
ブロックごとに、記憶された前記サーフェス識別子値に基づいて、レンダリングすべき画像サーフェスを決定することと、
を行わせる命令を備える、非一時的コンピュータ可読記憶媒体（１２）。
【請求項２１】
前記第１の画像サーフェスについての前記サーフェス識別子値を、前記第１の画像サーフェスのサーフェスピクセルの前記複数のブロックの各々にそれぞれ対応する前記低解像度バッファ内の前記複数のストレージロケーションの各々に記憶すること
のための命令をさらに備える、請求項２０に記載の非一時的コンピュータ可読記憶媒体。
【請求項２２】
前記第２の画像サーフェス上で前記ビニングパスを実行することと、
前記第２の画像サーフェスの前記ビニングパスの期間中に、
前記第２の画像サーフェスを前記第２の画像サーフェスのサーフェスピクセルの複数のブロックへと分割することと、
前記第２の画像サーフェスのサーフェスピクセルの前記複数のブロックのうちのあるブロックが、前記第１の画像サーフェスのピクセルの前記複数のブロックのいずれとも同じ場所に位置しないとき、前記第２の画像サーフェスについてのサーフェス識別子値を、前記第２の画像サーフェスのサーフェスピクセルの前記複数のブロックのうちの前記ブロックに対応する前記低解像度バッファ内の前記複数のストレージロケーションのうちのストレージロケーション内に記憶することと
のための命令をさらに備える、請求項２０に記載の非一時的コンピュータ可読記憶媒体。
【請求項２３】
前記第２の画像サーフェス上で前記ビニングパスを実行することと、
前記第２の画像サーフェスの前記ビニングパスの期間中に、
前記第２の画像サーフェスを前記第２の画像サーフェスのサーフェスピクセルの複数のブロックへと分割することと、
前記第２の画像サーフェスのサーフェスピクセルの前記複数のブロックのうちのあるブロックが、前記第１の画像サーフェスのピクセルの前記ブロックと部分的に同じ場所に位置するとき、前記第２の画像サーフェスについてのサーフェス識別子値を、前記第２の画像サーフェスのサーフェスピクセルの前記複数のブロックのうちの前記ブロックに対応する前記低解像度バッファ内の前記複数のストレージロケーションのうちのストレージロケーション内に記憶しないことと
のための命令をさらに備える、請求項２０に記載の非一時的コンピュータ可読記憶媒体。
【請求項２４】
前記第１の画像サーフェスのサーフェスピクセルの前記複数のブロックの各々が、前記第１の画像サーフェスの２つ以上のサーフェスピクセルを含み、前記ディスプレイ上のピクセルの前記ブロックが、前記ディスプレイ上の２つ以上のピクセルを含む、請求項２０に記載の非一時的コンピュータ可読記憶媒体。
【請求項２５】
少なくとも前記第１の画像サーフェスと前記第２の画像サーフェスとを受信することのための前記命令が、プロセッサ（４）から少なくとも前記第１の画像サーフェスと前記第２の画像サーフェスとを受信することのための命令を含む、請求項２０に記載の非一時的コンピュータ可読記憶媒体。
【請求項２６】
前記第１の画像サーフェスについての前記サーフェス識別子値と前記第２の画像サーフェスについてのサーフェス識別子値とを割り当てることのための命令をさらに備え、前記第１の画像サーフェスについてのサーフェス識別子値を記憶することのための前記命令が、前記第１の画像サーフェスについての前記割り当てられたサーフェス識別子値を記憶することのための命令を含む、請求項２０に記載の非一時的コンピュータ可読記憶媒体。
【請求項２７】
複数の画像サーフェスを受信することであって、前記複数の画像サーフェスが前記第１の画像サーフェスと前記第２の画像サーフェスとを含む、受信することと、
前記複数の画像サーフェスの最後方画像サーフェスから開始し前記複数の画像サーフェスの最前方画像サーフェスまで継続して、サーフェス識別子値を前記複数の画像サーフェスの各々に割り当てることと
のための命令をさらに備える、請求項２０に記載の非一時的コンピュータ可読記憶媒体。
【請求項２８】
前記低解像度バッファに記憶された前記サーフェス識別子値に基づいて、前記第１の画像サーフェスのどの部分が前記第２の画像サーフェスによって重なられるかを決定することと、
前記決定に基づいて、前記第２の画像サーフェスによって重なられない前記第１の画像サーフェスの部分をレンダリングすることと、
前記決定に基づいて、前記第２の画像サーフェスによって重なられる前記第１の画像サーフェスの部分をレンダリングから除外することと
のための命令をさらに備える、請求項２０に記載の非一時的コンピュータ可読記憶媒体。
【請求項２９】
複数のストレージロケーションを含む低解像度バッファ（１８）と、
グラフィックス処理ユニット（ＧＰＵ）（６）と
を備える装置（２）であって、前記ＧＰＵは、
少なくとも第１の画像サーフェス（２２）と第２の画像サーフェス（２６）とを受信するための手段であって、前記第２の画像サーフェスが前記第１の画像サーフェスに少なくとも部分的に重なる、受信するための手段と、
ディスプレイ（８）を複数のタイルへと分割するための手段と、
前記第１の画像サーフェス上でビニングパスを実行するための手段であって、前記ビニングパスを実行するための前記手段が、
前記第１の画像サーフェスがどのタイルに属するかを決定するための手段と、
前記第１の画像サーフェスのサーフェス識別子値を、前記第１の画像サーフェスに対応するタイルメモリ（２０）のレイヤ（２４）のストレージロケーションに記憶するための手段と、を含む、実行するための手段と、
前記第１の画像サーフェスの前記ビニングパスの期間中、前記第２の画像サーフェスのビニングパスを実行する前に、
前記第１の画像サーフェスを前記第１の画像サーフェスのサーフェスピクセルの複数のブロックへと分割するための手段と、
前記第１の画像サーフェスについての前記サーフェス識別子値を、前記第１の画像サーフェスのサーフェスピクセルの前記複数のブロックのうちのあるブロックに対応する前記低解像度バッファ内の前記複数のストレージロケーションのうちのストレージロケーション内に記憶するための手段であって、前記低解像度バッファ内の前記複数のストレージロケーションの各々がまた、前記ディスプレイ上のピクセルのブロックに対応する、記憶するための手段と、
前記第２の画像サーフェス上で前記ビニングパスを実行するための手段と、
前記第２の画像サーフェスの前記ビニングパスの期間中に、
前記第２の画像サーフェスを前記第２の画像サーフェスのサーフェスピクセルの複数のブロックへと分割するための手段と、
前記第２の画像サーフェスのサーフェスピクセルの前記複数のブロックのうちのあるブロックが前記第１の画像サーフェスのピクセルの前記ブロックと完全に同じ場所に位置するとき、前記第２の画像サーフェスについてのサーフェス識別子値を、前記第２の画像サーフェスのサーフェスピクセルの前記複数のブロックのうちの前記ブロックに対応する前記低解像度バッファ内の前記複数のストレージロケーションのうちのストレージロケーション内に記憶するための手段と、
ブロックごとに、記憶された前記サーフェス識別子値に基づいて、レンダリングすべき画像サーフェスを決定するための手段と、
を備える、装置（２）。
【請求項３０】
前記ＧＰＵが、
前記第１の画像サーフェスについての前記サーフェス識別子値を、前記第１の画像サーフェスのサーフェスピクセルの前記複数のブロックの各々にそれぞれ対応する前記低解像度バッファ内の前記複数のストレージロケーションの各々に記憶するための手段
をさらに備える、請求項２９に記載の装置。
【請求項３１】
前記ＧＰＵは、
前記第２の画像サーフェス上で前記ビニングパスを実行するための手段と、
前記第２の画像サーフェスの前記ビニングパスの期間中に、
前記第２の画像サーフェスを前記第２の画像サーフェスのサーフェスピクセルの複数のブロックへと分割するための手段と、
前記第２の画像サーフェスのサーフェスピクセルの前記複数のブロックのうちのあるブロックが、前記第１の画像サーフェスのピクセルの前記複数のブロックのいずれとも同じ場所に位置しないとき、前記第２の画像サーフェスについてのサーフェス識別子値を、前記第２の画像サーフェスのサーフェスピクセルの前記複数のブロックのうちの前記ブロックに対応する前記低解像度バッファ内の前記複数のストレージロケーションのうちのストレージロケーション内に記憶するための手段と
をさらに備える、請求項２９に記載の装置。
【請求項３２】
前記ＧＰＵは、
前記第２の画像サーフェス上で前記ビニングパスを実行するための手段と、
前記第２の画像サーフェスの前記ビニングパスの期間中に、
前記第２の画像サーフェスを前記第２の画像サーフェスのサーフェスピクセルの複数のブロックへと分割するための手段と、
前記第２の画像サーフェスのサーフェスピクセルの前記複数のブロックのうちのあるブロックが、前記第１の画像サーフェスのピクセルの前記ブロックと部分的に同じ場所に位置するとき、前記第２の画像サーフェスについてのサーフェス識別子値を、前記第２の画像サーフェスのサーフェスピクセルの前記複数のブロックのうちの前記ブロックに対応する前記低解像度バッファ内の前記複数のストレージロケーションのうちのストレージロケーション内に記憶しないための手段と
さらに備える、請求項２９に記載の装置。
【請求項３３】
前記第１の画像サーフェスのサーフェスピクセルの前記複数のブロックの各々が、前記第１の画像サーフェスの２つ以上のサーフェスピクセルを含み、前記ディスプレイ上のピクセルの前記ブロックが、前記ディスプレイ上の２つ以上のピクセルを含む、請求項２９に記載の装置。
【請求項３４】
少なくとも前記第１の画像サーフェスと前記第２の画像サーフェスとを受信するための前記手段が、プロセッサ（４）から少なくとも前記第１の画像サーフェスと前記第２の画像サーフェスとを受信するための手段を含む、請求項２９に記載の装置。
【請求項３５】
前記第１の画像サーフェスについての前記サーフェス識別子値と前記第２の画像サーフェスについてのサーフェス識別子値とを割り当てるための手段をさらに備え、前記第１の画像サーフェスについてのサーフェス識別子値を記憶するための前記手段が、前記第１の画像サーフェスについての前記割り当てられたサーフェス識別子値を記憶するための手段を含む、請求項２９に記載の装置。
【請求項３６】
前記ＧＰＵは、
複数の画像サーフェスを受信するための手段であって、前記複数の画像サーフェスが前記第１の画像サーフェスと前記第２の画像サーフェスとを含む、受信するための手段と、
前記複数の画像サーフェスの最後方画像サーフェスから開始し前記複数の画像サーフェスの最前方画像サーフェスまで継続して、サーフェス識別子値を前記複数の画像サーフェスの各々に割り当てるための手段と
をさらに備える、請求項２９に記載の装置。
【請求項３７】
前記ＧＰＵは、
前記低解像度バッファに記憶された前記サーフェス識別子値に基づいて、前記第１の画像サーフェスのどの部分が前記第２の画像サーフェスによって重なられるかを決定するための手段と、
前記決定に基づいて、前記第２の画像サーフェスによって重なられない前記第１の画像サーフェスの部分をレンダリングするための手段と、
前記決定に基づいて、前記第２の画像サーフェスによって重なられる前記第１の画像サーフェスの部分をレンダリングから除外するための手段と
をさらに備える、請求項２９に記載の装置。
【請求項３８】
前記装置が、ワイヤレスデバイスと、携帯電話と、携帯情報端末（ＰＤＡ）と、ビデオディスプレイを含むビデオゲームコンソールと、モバイルビデオ会議ユニットと、ラップトップコンピュータと、デスクトップコンピュータと、テレビジョンセットトップボックスと、タブレットコンピューティングデバイスと、電子ブックリーダーとのうちの少なくとも１つを備える、請求項２９に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ディスプレイ上でピクセルをレンダリングすることに関する。
【背景技術】
【０００２】
視覚的提示のためのコンテンツを提供するデバイスには、一般に、グラフィックス処理ユニット（ＧＰＵ）が含まれる。ＧＰＵは、ディスプレイ上でコンテンツを表すピクセルをレンダリングする。ＧＰＵは、ディスプレイ上の各ピクセルについての１つまたは複数のピクセル値を生成する。ＧＰＵは、提示のために各ピクセルをレンダリングするために、ディスプレイ上の各ピクセルについてのピクセル値に対してグラフィックス処理を実行する。
【発明の概要】
【０００３】
概して、本開示は、グラフィックス処理ユニット（ＧＰＵ）のビニングパス（binning pass）の期間中に、低解像度ｚバッファまたは「ＬＲＺ」バッファと呼ばれる低解像度バッファを更新するための技法について説明する。タイリングパス（tiling pass）とも呼ばれるビニングパスにおいて、ＧＰＵは、プロセッサによって生成されたどの画像サーフェスがディスプレイ上のどのタイルに属するかを決定し得る。このビニングパスの期間中に、ＧＰＵは、画像サーフェスの各々に関連付けられたサーフェス識別子を用いて低解像度バッファを更新し得る。
【０００４】
低解像度バッファは、複数のストレージロケーションを含み得、各ストレージロケーションはディスプレイ上の複数のピクセルに関連付けられる。ビニングパスの期間中に、ＧＰＵは、画像サーフェスが低解像度バッファのストレージロケーションに関連付けられた座標をもつピクセルを含む場合、画像サーフェスについてのサーフェス識別子を低解像度バッファのストレージロケーション内に記憶し得る。
【０００５】
一例では、本開示の態様は、グラフィックス処理ユニット（ＧＰＵ）を用いて、少なくとも第１の画像サーフェスと第２の画像サーフェスとを受信することであって、第２の画像サーフェスが第１の画像サーフェスに少なくとも部分的に重なる、受信することを備える方法を対象とする。該方法はまた、ＧＰＵを用いて、第１の画像サーフェス上でビニングパスを実行することを含む。該方法によれば、第１の画像サーフェスのビニングパスの期間中に、ＧＰＵを用いて、第１の画像サーフェスを、第１の画像サーフェスのサーフェスピクセルの複数のブロックへと分割する。また、第１の画像サーフェスのビニングパスの期間中に、ＧＰＵを用いて、第１の画像サーフェスについてのサーフェス識別子値（surface identifier value）を、第１の画像サーフェスのサーフェスピクセルの複数のブロックのうちのあるブロックに対応する低解像度バッファ内の複数のストレージロケーションのうちのストレージロケーション内に記憶し、ここで、低解像度バッファ内の複数のストレージロケーションの各々はまた、ディスプレイ上のピクセルのブロックに対応する。
【０００６】
別の例では、本開示の態様は、複数のストレージロケーションを含む低解像度バッファを備える装置を対象とする。該装置はまた、少なくとも第１の画像サーフェスと第２の画像サーフェスとを受信することであって、第２の画像サーフェスが第１の画像サーフェスに少なくとも部分的に重なる、受信することと、第１の画像サーフェス上でビニングパスを実行することとを行うように構成されたグラフィックス処理ユニット（ＧＰＵ）を含む。該装置において、第１の画像サーフェスのビニングパスの期間中に、ＧＰＵは、第１の画像サーフェスを第１の画像サーフェスのサーフェスピクセルの複数のブロックへと分割するようにさらに構成される。第１の画像サーフェスのビニングパスの期間中に、ＧＰＵはまた、第１の画像サーフェスについてのサーフェス識別子値を、第１の画像サーフェスのサーフェスピクセルの複数のブロックのうちのあるブロックに対応する低解像度バッファ内の複数のストレージロケーションのうちのストレージロケーション内に記憶することであって、低解像度バッファ内の複数のストレージロケーションの各々がまた、ディスプレイ上のピクセルのブロックに対応する、記憶することを行うようにさらに構成される。
【０００７】
別の例では、本開示の態様は、グラフィックス処理ユニット（ＧＰＵ）に、少なくとも第１の画像サーフェスと第２の画像サーフェスとを受信することであって、第２の画像サーフェスが第１の画像サーフェスに少なくとも部分的に重なる、受信することを行わせる命令を備える非一時的コンピュータ可読記憶媒体を対象とする。命令はまた、ＧＰＵに、第１の画像サーフェス上でビニングパスを実行させる命令を含む。第１の画像サーフェスのビニングパスの期間中に、命令は、ＧＰＵに、第１の画像サーフェスを第１の画像サーフェスのサーフェスピクセルの複数のブロックへと分割させる。また、第１の画像サーフェスのビニングパスの期間中に、命令は、ＧＰＵに、第１の画像サーフェスについてのサーフェス識別子値を、第１の画像サーフェスのサーフェスピクセルの複数のブロックのうちのあるブロックに対応する低解像度バッファ内の複数のストレージロケーションのうちのストレージロケーション内に記憶することであって、低解像度バッファ内の複数のストレージロケーションの各々は、また、ディスプレイ上のピクセルのブロックに対応する、記憶することを行わせる。
【０００８】
別の例では、本開示の態様は、複数のストレージロケーションを含む低解像度バッファを備える装置を対象とする。該装置はまた、グラフィックス処理ユニット（ＧＰＵ）を含み、ＧＰＵは、少なくとも第１の画像サーフェスと第２の画像サーフェスとを受信するための手段であって、第２の画像サーフェスが第１の画像サーフェスに少なくとも部分的に重なる、受信するための手段を備える。ＧＰＵはまた、第１の画像サーフェス上でビニングパスを実行するための手段を備える。該装置において、第１の画像サーフェスのビニングパスの期間中に、ＧＰＵはまた、第１の画像サーフェスを第１の画像サーフェスのサーフェスピクセルの複数のブロックへと分割するための手段を備える。該装置において、第１の画像サーフェスのビニングパスの期間中に、ＧＰＵはまた、第１の画像サーフェスについてのサーフェス識別子値を、第１の画像サーフェスのサーフェスピクセルの複数のブロックのうちのあるブロックに対応する低解像度バッファ内の複数のストレージロケーションのうちのストレージロケーション内に記憶するための手段であって、低解像度バッファ内の複数のストレージロケーションの各々がまた、ディスプレイ上のピクセルのブロックに対応する、記憶するための手段を含む。
【０００９】
１つまたは複数の例の詳細を、添付の図面および以下の説明に記載する。他の特徴、目的、および利点は、その説明および図面、ならびに特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【００１０】
【図１】本開示の態様を実装するように構成され得るデバイスを示すブロック図。
【図２Ａ】第１の画像サーフェスのビニングパスを示すグラフィック図。
【図２Ｂ】図２Ａの第１の画像サーフェスのビニングパスの期間中の図１の更新された低解像度バッファを示すグラフィック図。
【図２Ｃ】第２の画像サーフェスのビニングパスを示すグラフィック図。
【図２Ｄ】図２Ｃの第２の画像サーフェスのビニングパスの期間中の図１の更新された低解像度バッファを示すグラフィック図。
【図２Ｅ】図１のフレームバッファ中の図２Ａ〜図２Ｄの第１および第２の画像サーフェスを示すグラフィック図。
【図３】グラフィックス処理ユニット（ＧＰＵ）の例示的な動作を示すフローチャート。
【詳細な説明】
【００１１】
デバイス上のディスプレイは、デバイス内のプロセッサによって実行されるアプリケーションによって生成された閲覧可能オブジェクトを提示する。閲覧可能オブジェクトは、概して、矩形の形態をとるが、他の形態も可能である。閲覧可能オブジェクトは、サーフェスピクセルを含んでいる画像サーフェスと見なされ得る。デバイスが、複数の画像サーフェスを生成する１つまたは複数のアプリケーションを実行するときには、１つの画像サーフェスは、別のサーフェスに部分的にまたは完全に重なり得る。
【００１２】
画像サーフェスを生成するために１つまたは複数のアプリケーションを実行することに加えて、プロセッサはまた、画像サーフェス内のサーフェスピクセルについてのピクセル値を決定し得る。たとえば、プロセッサは、画像サーフェスの頂点の座標を決定し得る。別の例として、プロセッサは、画像サーフェス内のサーフェスピクセルのカラー値、たとえば、画像サーフェス内の各サーフェスピクセルについての赤緑青（ＲＧＢ）値またはルーマおよびクロマ値、ならびにピクセルの不透明度（opaqueness）値、たとえば、α値を決定し得る。プロセッサは、さらなる処理のために、各画像サーフェスについてのピクセル値をグラフィックス処理ユニット（ＧＰＵ）に送信し得る。いくつかの例では、プロセッサは、最後方画像サーフェスから開始し最前方画像サーフェスまで継続して、ピクセル値をＧＰＵに送信し得る。
【００１３】
ＧＰＵは、画像サーフェスの各々についてのピクセル値を受信し、いくつかの例では、ＧＰＵが画像サーフェスを受信した順序に基づいて、画像サーフェスの各々にサーフェス識別子値を割り当て得る。代替例では、プロセッサは、サーフェスのそれぞれにサーフェス識別子値を割り当て、その画像サーフェスについてのピクセル値とともにＧＰＵにサーフェス識別子値を送信し得る。
【００１４】
ＧＰＵは、ディスプレイ上の画像をレンダリングするために、受信したピクセルに対して処理を実行し得る。ＧＰＵによって実行される処理の一例は、ビニングパスまたはタイリングパスと呼ばれる。ビニングの場合、ＧＰＵは、ディスプレイ上のピクセルを、タイルと呼ばれるピクセルの複数のブロックへと分割する。各画像サーフェスについて、ビニングパスでは、ＧＰＵは、画像サーフェスがどのタイルに属するかを決定し得る。
【００１５】
より詳細に説明するように、画像サーフェスのためのビニングパスの期間中に、ＧＰＵは、低解像度ｚバッファまたは「ＬＲＺバッファ」と呼ばれる低解像度バッファを更新し得る。低解像度バッファは、複数のストレージロケーションをもつ２次元バッファであり得る。低解像度バッファ中の各ストレージロケーションは、ディスプレイ上に表されるピクセルのブロックに対応し得る。いくつかの例では、低解像度バッファ内のストレージロケーションの数は、ディスプレイ上に表されるべきピクセルの数よりも小さくなり得る。
【００１６】
画像サーフェスのためのビニングパスの期間中に、ＧＰＵは、その画像サーフェスが低解像度バッファ内のストレージロケーションに対応するサーフェスピクセルを含むかどうかを決定し得る。たとえば、ＧＰＵは、画像サーフェスをサーフェスピクセルの複数のブロックへと分割し得る。サーフェスピクセルのブロックのサイズは、低解像度バッファ中の１つのストレージロケーションに対応するディスプレイ上のピクセルのブロックのサイズと同様であり得る。
【００１７】
画像サーフェス内のサーフェスピクセルの各ブロックについて、ＧＰＵは、画像サーフェスのサーフェス識別子を低解像度バッファの対応するストレージロケーション内に記憶し得る。たとえば、第１の画像サーフェスのビニングパスの期間中に、ＧＰＵは、第１の画像サーフェスのサーフェス識別子を、第１の画像サーフェス内のサーフェスピクセルの各ブロックに対応する低解像度バッファのストレージロケーション内に記憶し得る。ＧＰＵは、画像サーフェスの各々のビニングパスの期間中に同様の機能を実行し得る。
【００１８】
サーフェス識別子値を用いて低解像度バッファを更新した後、ＧＰＵは、低解像度バッファに記憶されたサーフェス識別子値に基づいて、画像をフレームバッファにレンダリングし得る。ピクセルをレンダリングするために、ディスプレイ上の各ピクセルについて、ＧＰＵは、低解像度バッファ内に記憶されたサーフェス識別子に基づいて、どのサーフェスからどのピクセルをレンダリングすべきかを決定し得る。たとえば、低解像度バッファ内の第１のストレージロケーションは、ディスプレイ上のピクセル（０，０）〜（３，３）についてどのサーフェスをレンダリングすべきかを示し得る。次いで、ＧＰＵは、低解像度バッファ内の第１のロケーションに記憶されたそれのサーフェス識別子によって識別される画像サーフェスからピクセルをレンダリングし得る。
【００１９】
図１は、本開示の諸態様を実装するように構成され得るデバイス２を示すブロック図である。デバイス２の例には、限定はしないが、ワイヤレスデバイス、携帯電話、携帯情報端末（ＰＤＡ）、ビデオディスプレイを含むビデオゲームコンソール、モバイルビデオ会議ユニット、ラップトップコンピュータ、デスクトップコンピュータ、テレビジョンセットトップボックス、タブレットコンピューティングデバイス、電子ブックリーダーなどが含まれる。デバイス２は、プロセッサ４と、グラフィックス処理ユニット（ＧＰＵ）６と、ディスプレイ８と、フレームバッファ１０と、ストレージデバイス１２と、トランシーバモジュール１４と、ユーザインターフェース１６と、低解像度ｚバッファまたはＬＲＺバッファと呼ばれることがある低解像度バッファ１８と、タイルメモリ２０とを含み得る。デバイス２は、明快のために図１には示されていない追加のモジュールまたはユニットを含み得る。たとえば、デバイス２は、デバイス２がモバイルワイヤレス電話である例において電話通信を実現するために、そのいずれも図１に示されていないスピーカーおよびマイクロフォンを含み得る。さらに、デバイス２に示す様々なモジュールおよびユニットは、デバイス２のあらゆる例において必要であるとは限らない。たとえば、デバイス２がデスクトップコンピュータである例では、ユーザインターフェース１６およびディスプレイ８はデバイス２の外部にあり得る。
【００２０】
プロセッサ４は１つまたは複数のアプリケーションを実行し得る。アプリケーションの例には、ウェブブラウザ、電子メールアプリケーション、スプレッドシート、ビデオゲーム、または提示のために閲覧可能オブジェクトを生成する他のアプリケーションが含まれる。１つまたは複数のアプリケーションはストレージデバイス１２内に記憶され得る。いくつかの事例では、プロセッサ４は、トランシーバモジュール１４を介して１つまたは複数のアプリケーションをダウンロードし得る。プロセッサ４は、ユーザインターフェース１６を介したユーザによる選択に基づいて１つまたは複数のアプリケーションを実行し得る。いくつかの例では、プロセッサ４は、ユーザインタラクションなしに１つまたは複数のアプリケーションを実行し得る。
【００２１】
プロセッサ４の例には、限定はしないが、デジタル信号プロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、あるいは他の等価な集積回路またはディスクリート論理回路が含まれる。ストレージデバイス１２は、１つまたは複数のコンピュータ可読記憶媒体を備え得る。ストレージデバイス１２の例には、限定はしないが、ランダムアクセスメモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）、電気消去可能プログラマブル読取り専用メモリ（ＥＥＰＲＯＭ）、ＣＤ−ＲＯＭまたは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、あるいは命令またはデータ構造の形態の所望のプログラムコードを搬送または記憶するために使用されることができ、コンピュータまたはプロセッサによってアクセスされることのできる、任意の他の媒体が含まれる。いくつかの態様では、ストレージデバイス１２は、本開示においてホストプロセッサ４およびＧＰＵ６に起因する機能を実行することをホストプロセッサ４および／またはＧＰＵ６に行わせる命令を含み得る。
【００２２】
ストレージデバイス１２は、いくつかの例では、非一時的記憶媒体と見なされ得る。「非一時的」という用語は、記憶媒体が、搬送波または伝搬信号では実施されないことを示し得る。ただし、「非一時的」という用語は、ストレージデバイス１２が非可動であることを意味するものと解釈されるべきではない。一例として、ストレージデバイス１２は、デバイス２から取り外され、別のデバイスに移され得る。別の例として、ストレージデバイス１２と実質的に同様のストレージデバイスが、デバイス２に挿入され得る。いくつかの例では、非一時的記憶媒体は、時間経過に伴って変化し得るデータを（たとえば、ＲＡＭに）記憶し得る。
【００２３】
ユーザインターフェース１６の例には、限定はしないが、トラックボール、マウス、キーボード、および他のタイプの入力デバイスが含まれる。ユーザインターフェース１６はまた、タッチスクリーンであり得、ディスプレイ８の一部として組み込まれ得る。トランシーバモジュール１４は、デバイス２と別のデバイスまたはネットワークとの間のワイヤレスまたはワイヤード通信を可能にするための回路を含み得る。トランシーバモジュール１４は、ワイヤードまたはワイヤレス通信のための変調器、復調器、増幅器および他のそのような回路を含み得る。
【００２４】
１つまたは複数のアプリケーションを実行すると、プロセッサ４は、画像サーフェスの形態で閲覧可能オブジェクトを生成し得る。画像サーフェスは、提示のために、画像としてディスプレイ８上にレンダリングされ得る。いくつかの事例では、画像サーフェスのサーフェスピクセルのいくつかは、これらのサーフェスピクセルが同じ場所に位置する（co-located）他のサーフェスピクセルによって遮られ得るので、レンダリングされないことがある。画像サーフェスは、円、ライン、矩形、三角形、または他のタイプの多角形であり得る。プロセッサ４はまた、ディスプレイ８のピクセル座標に基づいて、画像サーフェスがディスプレイ８上に位置するロケーションを識別し得る。ロケーションは、ディスプレイ８上の画像サーフェスの範囲を識別し得る。
【００２５】
ディスプレイ８は、液晶ディスプレイ（ＬＣＤ）、陰極線管（ＣＲＴ）ディスプレイ、プラズマディスプレイ、または別のタイプのディスプレイデバイスを備え得る。ディスプレイ８は、２次元（２Ｄ）ピクセルアレイで水平および垂直に配置された複数のピクセルを含む。ディスプレイ８の各ピクセルは、それの２Ｄ座標、たとえば、デカルト座標における（ｘ，ｙ）によって識別可能であり得る。たとえば、ディスプレイ８の左上コーナーに位置するピクセルは、（０，０）に位置するピクセルとして識別され得る。（０，０）に位置するピクセルのすぐ右のピクセルは、（１，０）に位置するピクセルとして識別され得る。（０，０）に位置するピクセルのすぐ下のピクセルは、（０，１）に位置するピクセルとして識別され得る。ディスプレイ８のすべてのピクセルは、同様に識別され得る。
【００２６】
上記で説明したデカルト座標は、単に例示の目的で説明した。ディスプレイ８のピクセルは、様々なタイプの座標系、たとえば、極座標、双極座標、放物線座標などによって識別可能であり得る。さらに、ピクセルの例示的なロケーションも、単に例示の目的で説明した。いくつかの例では、（０，０）に位置するピクセルは、ディスプレイ８の左下、右上、右下、または他の任意のピクセルロケーションに位置し得る。
【００２７】
プロセッサ４によって生成された画像サーフェスのロケーションは、少なくとも画像サーフェスの座標に基づいて定義され得る。画像サーフェスが円である例では、サーフェスのロケーションは、少なくとも円の中心座標および半径に基づき得る。その場合、画像サーフェスの範囲、たとえば、画像サーフェスの外周は、円の中心座標および半径に基づいて計算され得る。
【００２８】
概して、多角形の場合、画像サーフェスのロケーションは、少なくとも、画像サーフェスの頂点の頂点座標のうちの１つまたは複数に基づいて定義され得る。画像サーフェスの頂点の頂点座標は、画像サーフェスの範囲を識別し得る。画像サーフェスが矩形である例では、画像サーフェスのロケーションは、矩形の４つの頂点の頂点座標に基づき得る。画像サーフェスが矩形であるいくつかの例では、サーフェスのロケーションおよび範囲を識別するのに少なくとも２つの頂点座標で十分であり得る。残りの頂点座標は、２つの頂点座標から計算され得る。たとえば、頂点座標は、矩形の左上頂点を識別する（ｘmin，ｙmin）座標と、矩形の右下頂点を識別する（ｘmax，ｙmax）座標とであり得る。矩形の左下頂点は、その場合（ｘmin，ｙmax）であり、矩形の右上頂点は、その場合（ｘmax，ｙmin）である。
【００２９】
例示のために、本開示の態様について、矩形サーフェスのコンテキストにおいて説明する。しかしながら、画像サーフェスは、矩形サーフェスに限定されると見なされるべきではなく、他の多角形、円などの形態をとり得る。
【００３０】
１つまたは複数のアプリケーションの実行によって生成された各画像サーフェスは、１つまたは複数のサーフェスピクセルを含む。プロセッサ４は、画像サーフェスの各々についてのサーフェスピクセルの各々に、強度値および不透明度値、たとえばα値を含む、カラー値、たとえば赤緑青（ＲＧＢ値）またはルーマおよびクロマ値など、ピクセル値を割り当て得る。各サーフェスピクセルのピクセル値は、サーフェスピクセルの色、明度、および不透明度を示し得る。
【００３１】
サーフェスピクセルは、ディスプレイのピクセルを表し、ディスプレイ８上のピクセルと同じ場所に位置すると見なされる。たとえば、第１の画像サーフェスの（１，１）に位置するサーフェスピクセルは、ディスプレイ８の（１，１）に位置するピクセルと同じ場所に位置し、ディスプレイ８の（１，１）に位置するピクセルを表す。第２の画像サーフェスの（１，１）に位置するサーフェスピクセルは、第１のサーフェスの（１，１）に位置するサーフェスピクセルと、ディスプレイ８の（１，１）に位置するピクセルとの同じ場所に位置し、また、ディスプレイ８の（１，１）に位置するピクセルを表す。
【００３２】
プロセッサ４はまた、１つまたは複数のアプリケーションの実行によって生成された画像サーフェスの順序を決定し得る。画像サーフェスは、たとえば、画像サーフェスの少なくとも部分が実質的に同様のロケーションにあるときには、１つまたは複数の他の画像サーフェスに部分的にまたは完全に重なり得る。一例として、第１の画像サーフェスについての頂点座標は（１，１）、（５，１）、（１，５）および（５，５）であり、第２の画像サーフェスについての頂点座標は（２，３）、（２，７）、（１０，３）および（１０，７）である。この例では、第１の画像サーフェスは、第２の画像サーフェスに部分的に重なり、またはその逆も同様である。ユーザの視点から、他の画像サーフェスに重なる画像サーフェスは、他のサーフェスの前方にあるように見られ得る。ユーザの視点から、他の画像サーフェスによって重なられる画像サーフェスは、他の画像サーフェスの後方にあるように見られ得る。画像サーフェスの順序は、どのサーフェスが他のいずれの画像サーフェスの前方または後方にあるかを示し得る。
【００３３】
いくつかの例では、画像サーフェスの順序を識別するために、プロセッサ４は、各画像サーフェスにサーフェス識別子を割り当て得る。たとえば、最後方画像サーフェスの場合、プロセッサ４は、最後方画像サーフェスにサーフェス識別子値０を割り当て得る。サーフェス識別子０をもつ画像サーフェスのすぐ前方にある画像サーフェスは、サーフェス識別子１を割り当てられ得、以後も同様である。上記で説明したサーフェス識別子の例は、画像サーフェスを順序付けることの一例であり、本開示の態様は、上記で説明した順序付けの例に限定されるものと見なされるべきではない。いくつかの例では、以下で説明するように、プロセッサ４は、各画像サーフェスにサーフェス識別子を割り当てず、ＧＰＵ６は、各画像サーフェスにサーフェス識別子を割り当て得る。
【００３４】
画像サーフェスの順序は、ユーザによって、またはユーザ介入なしにプロセッサ４によって選択され得る。たとえば、ユーザは、選択された画像サーフェスが他の画像サーフェスよりも目立つように表示されることを望み得る。ユーザは、他の画像サーフェスが選択された画像サーフェスに重ならないことを望み得るが、他の画像サーフェスが選択された画像サーフェスによって重なられないことを可能にし得る。この例では、他の画像サーフェスが選択された画像サーフェスに重ならないので、選択された画像サーフェスは、すべての他の画像サーフェスの前方にあると見なされる。別の例として、プロセッサ４は、実行されているアプリケーションのタイプに基づいて、どの画像サーフェスが他の画像サーフェスよりも目立つように表示されるべきかを選択し得る。この例では、プロセッサ４によって選択された画像サーフェスは、他の画像サーフェスには重なり得るが、他の画像サーフェスによっては重なられない。プロセッサ４によって選択された画像サーフェスは、すべての他の画像サーフェスの前方にあると見なされ得る。
【００３５】
いくつかの例では、プロセッサ４は、記憶のために、各画像サーフェスの順序、ロケーション、およびサーフェスピクセル値をストレージデバイス１２に送信し得る。いくつかの例では、プロセッサ４は、さらなる処理のために、各画像サーフェスの順序、ロケーション、サーフェスピクセル値をグラフィックス処理ユニット６に送信し得る。
【００３６】
上記で説明したように、いくつかの例では、プロセッサ４は、各画像サーフェスにサーフェス識別子を割り当てないことがある。これらの事例のうちのいくつかでは、一例として、ＧＰＵ６は、ＧＰＵ６がプロセッサ４から画像サーフェスを受信した順序に基づいて、またはＧＰＵ６がストレージデバイス１２から画像サーフェスを読み出した順序に基づいて、サーフェスの順序を決定し得る。これらの例では、ＧＰＵ６は、画像サーフェスの各々にサーフェス識別子を割り当て得る。ＧＰＵ６は、最後方画像サーフェスから開始して最前方画像サーフェスまで、サーフェス識別子値を割り当て得る。たとえば、ＧＰＵ６は、最後方画像サーフェスにサーフェス識別子値０を割り当て、最後方から２番目の画像サーフェスにサーフェス識別子値１を割り当て、以後、最前方画像サーフェスまで同様にし得る。いくつかの代替例では、ＧＰＵ６は、最前方画像サーフェスから開始し最後方画像サーフェスまで継続してサーフェス識別子値を割り当てることもでき、たとえば、ＧＰＵ６は、最前方画像サーフェスにサーフェス識別子値０を割り当て、最前方から２番目の画像サーフェスにサーフェス識別子値１を割り当て、以後、最後方画像サーフェスまで同様にし得る。
【００３７】
最後方画像サーフェスから開始し最前方画像サーフェスまで継続して、またはその逆に、サーフェス識別子値を割り当てることの概念は、理解を容易にするために、および例示のために与えられている。概して、画像サーフェスは２次元画像サーフェスであり得る。サーフェス識別子値は、２次元画像サーフェス間を区別するための値であり、ならびに画像サーフェスの順序付け、たとえば、後方から前方へ、または前方から後方へ、を与え得る。いくつかの例では、２つ以上の画像サーフェスが隣り合って並べられ、これらの隣り合う画像サーフェスのいずれも互いに重ならないようにすることが可能である。これらの事例では、これらの隣り合う画像サーフェスの各々には、依然として異なるサーフェス識別子値が割り当てられ得る。「隣り合う（side-by-side）」という表現は、これらの画像サーフェスが隣接しているという意味に限定されると解釈されるべきではなく、むしろ、これらの画像サーフェスは互いに重なり合わないが、いくつかの他の画像サーフェスには重なり得るか、またはいくつかの他の画像サーフェスによって重なられ得るという意味に解釈される。
【００３８】
ＧＰＵ６は、ディスプレイ８上に提示するためにサーフェスピクセルを処理し得る。ＧＰＵ６の例には、限定はしないが、ＤＳＰ、汎用マイクロプロセッサ、ＡＳＩＣ、ＦＰＧＡ、あるいは他の等価な集積回路またはディスクリート論理回路が含まれる。図１では別個のものとして示されているが、いくつかの例では、プロセッサ４はＧＰＵ６を含み得る。たとえば、プロセッサ４およびＧＰＵ６は、同じＤＳＰ、汎用マイクロプロセッサ、ＡＳＩＣ、ＦＰＧＡ、あるいは他の等価な集積回路またはディスクリート論理回路内に形成され得る。
【００３９】
図１では１つのＧＰＵ６が示されているが、本開示の態様はそれだけに限定されない。いくつかの例では、デバイス２は、ＧＰＵ６と同様の、複数のＧＰＵまたはＧＰＵコアを含み得る。グラフィックス処理タスクは、これらのＧＰＵまたはＧＰＵコア間に分割され得る。
【００４０】
ＧＰＵ６は、ディスプレイ８上での提示のためにピクセルに対して様々な機能を実行し得る。たとえば、ＧＰＵ６は、ディスプレイ８上に表示されるべきピクセルについてのピクセル値を生成するために、シェーディング、ブレンディング、照明などの機能を実行し得る。いくつかの例では、シェーディング、ブレンディング、および照明などの機能を実行する前に、ＧＰＵ６は、タイリング機能とも呼ばれるビニング機能を実行し得る。
【００４１】
ビニングでは、ＧＰＵ６は、ディスプレイ８上のピクセルを、タイルと呼ばれるピクセルの複数のブロックに分割し得る。たとえば、ディスプレイ８が、６４０×４８０ピクセルを含むように構成されたと仮定する。一例として、ＧＰＵ６は、ディスプレイを１０×１０タイルに分割し得、各タイルは６４×４８ピクセルを含む。
【００４２】
各画像サーフェスについて、ビニングパス中で、ＧＰＵ６は、画像サーフェスがどのタイルに属するかを決定し得る。たとえば、画像サーフェスの頂点が（０，０）、（１２７，０）、（０，９５）、および（１２７，９５）であると仮定する。この例では、ＧＰＵ６は、この画像サーフェスが１０×１０タイルのうちの４つのタイル、たとえば、左上タイル、ならびに該左上タイルのすぐ右のタイル、すぐ下のタイル、および対角のタイルに属すると決定し得る。ＧＰＵ６は、各画像サーフェスについて同様の機能を実行し得る。「ビニングパス」という表現は、画像サーフェスのうちの１つについて実行されるビニング機能を指す。
【００４３】
タイルメモリ２０は、ビニングパスの期間中に、画像サーフェスが属する特定のタイルを示し得る。いくつかの例では、タイルメモリ２０は、ストレージデバイス１２の一部として形成され得るが、本開示の態様はそれだけに限定されない。ＧＰＵ６は、画像サーフェスのためのビニングパスの期間中に、その画像サーフェスがどのタイルに属するかに基づいて、その画像サーフェスについてのサーフェス識別子値をタイルメモリ２０の適切なストレージロケーション内に記憶し得る。タイルメモリ２０は、複数のレイヤを含むものと見なされ得る。各レイヤは、画像サーフェスのうちの１つに対応し得る。各レイヤは、複数のストレージロケーションを含む２次元レイヤであり得る。各ストレージロケーションは、ディスプレイ８のタイルのうちの１つに対応し得る。
【００４４】
たとえば、ＧＰＵ６は、サーフェス識別子値１をもつ画像サーフェスのためのビニングパスを実行するときには、この画像サーフェスが、左上タイルおよび該左上タイルのすぐ右のタイルに属することを決定し得る。この例では、ＧＰＵ６は、サーフェス識別子値１をもつ画像サーフェスに対応するタイルメモリ２０のレイヤのストレージロケーション（０，０）および（１，０）内に、サーフェス識別子値１を記憶し得る。次いで、ＧＰＵ６は、サーフェス識別子２をもつ画像サーフェスのためのビニングパスを実行するときには、この画像サーフェスが、左上タイルのすぐ右のタイルと、左上タイルの対角にあるタイルとに属することを決定し得る。この例では、ＧＰＵ６は、サーフェス識別子値２をもつ画像サーフェスに対応するタイルメモリ２０のレイヤのストレージロケーション（１，０）および（１，１）内に、サーフェス識別子値２を記憶し得る。
【００４５】
画像サーフェスがどのタイルに属するかに関する情報を記憶するための上記で説明した技法、およびビニングパスの技法は、例示の目的で与えられており、限定するものと見なされるべきではない。ビニングパスを実行するための、または画像サーフェスがどのタイルに属するかに関する情報を記憶するための、現在または将来の多様な技法があり得、本開示の態様は、そのような技法にも拡張可能であると見なされるべきである。たとえば、複数のレイヤを含むのではなく、タイルメモリ２０は、画像サーフェスがどのタイルに属するかを示す画像サーフェスのリンクリストを含み得る。本開示の態様は、タイルメモリ２０がリンクリストを含む例まで拡張可能である。
【００４６】
本開示において説明する例のいくつかでは、画像サーフェスのためのビニングパスの期間中に、サーフェス識別子値をタイルメモリ２０に記憶することに加えて、ＧＰＵ６は、低解像度ｚバッファ（ＬＲＺバッファ）であり得る低解像度バッファ１８を更新し得る。「画像サーフェスのためのビニングパスの期間中に」という表現は、以前の画像サーフェスの後、および次の画像サーフェスのビニングパスの前のビニングパスを指し得る。いくつかの例では、「画像サーフェスのためのビニングパスの期間中に」という表現は、画像サーフェスのためのビニングパスと並列であることを意味し得る。
【００４７】
低解像度バッファ１８は、複数のストレージロケーションをもつ２次元バッファであり得る。いくつかの例では、低解像度バッファ１８は、ストレージデバイス１２の一部として形成され得るが、本開示の態様はそれだけに限定されない。より詳細に説明するように、低解像度バッファ１８は、後に遮られるピクセルを不必要にレンダリングすることを回避するために、どのピクセルがレンダリングされるべきかについての効率的な指示を促進することができる。低解像度バッファ１８中の各ストレージロケーションは、ディスプレイ８上に表されるピクセルのブロックに対応し得る。たとえば、ディスプレイ８上に表される４×４ピクセルのブロックは、低解像度バッファ１８中の１つのストレージロケーションに対応し得る。４×４ピクセルのブロックは、例示の目的で与えられており、限定するものと見なされるべきではない。低解像度バッファ１８の各ストレージロケーションが単一のピクセルではなく複数のピクセルに対応するので、低解像度バッファ１８は、低解像度バッファと見なされる。
【００４８】
いくつかの例では、低解像度バッファ１８内のストレージロケーションの数は、ディスプレイ８上に提示されるべきピクセルの数よりも少なくなり得る。たとえば、ディスプレイが表示されるべき１０００×１０００ピクセルを含んでいた場合、低解像度バッファは、各ストレージロケーションが４×４ピクセルのブロックに対応するように、２５０×２５０のストレージロケーションを含み得る。一例として、ディスプレイ上の（０，０）および（３，３）を包含するピクセルのブロック、たとえば、ピクセルの４×４ブロックは、低解像度バッファ内の第１のストレージロケーションに対応し得る。（４，０）〜（７，３）を包含するピクセルのブロックは、低解像度バッファ内の第２のストレージロケーションに対応し得、以後も同様である。
【００４９】
画像サーフェスのためのビニングパスの期間中に、ＧＰＵ６は、その画像サーフェスが、低解像度バッファ１８内のストレージロケーションに対応するサーフェスピクセルを含むかどうかを決定し得る。たとえば、ＧＰＵ６は、画像サーフェスをサーフェスピクセルの複数のブロックに分割し得る。サーフェスピクセルのブロックのサイズは、低解像度バッファ１８中の１つのストレージロケーションに対応するディスプレイ８上のピクセルのブロックのサイズと同様であり得る。たとえば、ディスプレイ８上の４×４ピクセルのブロックが低解像度バッファ１８内の１つのストレージロケーションに対応する場合、ＧＰＵ６は、サーフェスの各々を４×４サーフェスピクセルのブロックに分割し得る。別の例として、ディスプレイ８上の８×８ピクセルのブロックが低解像度バッファ１８内の１つのストレージロケーションに対応する場合、ＧＰＵ６は、画像サーフェスの各々を８×８サーフェスピクセルのブロックに分割し得る。
【００５０】
本開示において説明する非限定的な例では、ＧＰＵ６が、画像サーフェスのためのビニングパスの期間中に、その画像サーフェスが低解像度バッファ１８内のストレージロケーションに対応するサーフェスピクセルを含むかどうかを決定することについて説明するが、本開示の態様がそれだけに限定されないことに留意されたい。いくつかの代替例では、ＧＰＵ６は、ビニングパスとは無関係に、画像サーフェスが低解像度バッファ１８内のストレージロケーションに対応するサーフェスピクセルを含むかどうかを決定し得る。たとえば、ＧＰＵ６は、ピクセル値をブレンディング、照明、またはシェーディングしながら、そのような決定を行い得る。別の例として、以下で説明するように、ＧＰＵ６がフレームバッファ１０内に記憶するためのピクセル値をレンダリングする直前に、ＧＰＵ６はそのような決定を行い得る。
【００５１】
サーフェスピクセルの複数のブロックは、上記で説明したタイルと混同されるべきではない。ＧＰＵ６は、画像サーフェスのどのサーフェスピクセルがどのタイルに属するかを決定するために、ディスプレイ８上のピクセルをタイルへと分割する。このタイリングは、ＧＰＵ６が所与の画像サーフェスのサーフェスピクセルをサーフェスピクセルの複数のブロックへと分割する前に行われ得る。言い換えれば、各タイルは、ディスプレイ８上のピクセルのブロックを包含する。サーフェスピクセルの複数のブロックの各々は、画像サーフェス内のサーフェスピクセルのブロックを包含する。たとえば、上記の例では、タイルはディスプレイ上の６４×４８ピクセルを含むが、一方、ＧＰＵ６は、画像サーフェスを、画像サーフェスのサーフェスピクセルの複数の４×４ブロックに分割し得る。しかしながら、いくつかの例では、タイルに対するサイズが、画像サーフェスのサーフェスピクセルの複数のブロックのサイズと実質的に同様であることが可能である。たとえば、タイルのサイズはディスプレイ８上のピクセルの８×８ブロックであり得、画像サーフェスのサーフェスピクセルの複数のブロックのサイズも８×８であり得る。
【００５２】
画像フレーム内のサーフェスピクセルの各ブロックについて、ＧＰＵ６は、サーフェス識別子を、低解像度バッファ１８の対応するストレージロケーション内に記憶し得る。たとえば、サーフェスピクセルの各ブロックは、サーフェス識別子をもつ特定の画像サーフェスに属する。ＧＰＵ６は、サーフェス識別子を、低解像度バッファ１８の対応するストレージロケーション内に記憶し得る。ＧＰＵ６がサーフェス識別子をその内部に記憶する低解像度バッファ１８の対応するストレージロケーションは、ディスプレイ８上のピクセルの対応するブロックに基づき得る。たとえば、上記で説明したように、サーフェスピクセルの各ブロックはディスプレイ８上のピクセルのブロックに対応し得、ディスプレイ８上のピクセルのブロックは、低解像度バッファ１８内のストレージロケーションに対応する。
【００５３】
一例として、例示の目的で、低解像度バッファ１８内の第１のストレージロケーションは、ピクセル（０，３）〜（３，３）を包含するディスプレイ８上のピクセルのブロックに対応し得る。１と識別された、たとえば、サーフェス識別子値が１である、画像サーフェスが、ディスプレイ８上のピクセル（０，３）〜（３，３）を包含するサーフェスピクセルのブロックを含む場合、ＧＰＵ６は、サーフェス識別子値１を低解像度バッファの第１のストレージロケーション内に記憶し得る。いくつかの例では、サーフェス識別子値は、８ビット２進値として表され得る。これらの例では、低解像度バッファ１８のストレージロケーションの各々は、８ビット２進値を記憶するように構成され得る。
【００５４】
第１の画像サーフェス内のピクセルのブロックの各々について、第１の画像サーフェスのビニングパスの期間中に、ＧＰＵ６は、第１の画像サーフェスについてのサーフェス識別子値を低解像度バッファ１８の対応するストレージロケーション内に記憶し得る。次いで、ＧＰＵ６は、第２の画像サーフェスに進み得る。第２の画像サーフェスのためのビニングパスの期間中に、第２の画像サーフェス内のブロックの各々について、ＧＰＵ６は、第２の画像サーフェスについてのサーフェス識別子値を低解像度バッファ１８の対応するストレージロケーション内に記憶し得、以後も同様である。
【００５５】
いくつかの事例では、第２の画像サーフェスが第１の画像サーフェスを部分的にまたは完全に遮ることが起こり得る。たとえば、第２の画像サーフェスは、第１の画像サーフェスと同じ場所に位置するサーフェスピクセルを含み得る。同じ場所に位置するサーフェスピクセルは、ディスプレイ８上の同一のロケーションに位置する異なる画像サーフェス上のサーフェスピクセルであり得る。この例では、第１の画像サーフェスのサーフェスピクセルのブロックは、第２の画像サーフェスのサーフェスピクセルのブロックで完全に遮られ得る。これらの事例では、第１の画像サーフェスのサーフェスピクセルのブロックについての低解像度バッファ１８中のストレージロケーションはまた、第２の画像サーフェスのサーフェスピクセルの同じ場所に位置するブロックについてのストレージロケーションに対応し得る。
【００５６】
この例では、第１の画像サーフェスのためのビニングパスを実行するときには、ＧＰＵ６は、第１の画像サーフェスのサーフェスピクセルのブロックについての第１の画像サーフェスのサーフェス識別子値を低解像度バッファ１８の対応するストレージロケーション内に記憶し得る。第２の画像サーフェスのためのビニングパスを実行するときには、ＧＰＵ６は、第１の画像サーフェスのサーフェスピクセルのブロックと完全に同じ場所に位置するサーフェスピクセルのブロックについての第２の画像サーフェスのサーフェス識別子値を、低解像度バッファ１８の対応するストレージロケーション内に記憶し得る。言い換えれば、ＧＰＵ６は、第１の画像サーフェスのサーフェスピクセルのブロックを完全に遮る第２の画像サーフェスのサーフェスピクセルのすべてのブロックについての第２の画像サーフェスのサーフェス識別子により、低解像度バッファ１８の対応するストレージロケーションに記憶されたサーフェス識別子値を更新し得る。
【００５７】
いくつかの事例では、第２の画像サーフェスについてのサーフェスピクセルのブロックは、第１の画像サーフェスについてのサーフェスピクセルのブロックを完全には遮らないことがある。たとえば、第１の画像サーフェスについてのサーフェスピクセルのブロックが、ディスプレイ８上の（０，０）〜（３，３）を包含するピクセルを含むと仮定する。また、第２の画像サーフェスについてのサーフェスピクセルのブロックが、ディスプレイ８上の（０，２）〜（５，３）を包含するピクセルを含むと仮定する。この例では、第２の画像サーフェスについてのサーフェスピクセルのブロックは、第１の画像サーフェスについてのサーフェスピクセルのブロックを部分的にしか遮らない。たとえば、第２の画像サーフェスについてのサーフェスピクセルのブロックは、第１の画像サーフェス上の（０，２）〜（３，３）を包含するサーフェスピクセルを遮るのみであり、他のピクセルのいずれも遮らない。この例では、第２の画像サーフェスについてのサーフェスピクセルのブロックは、第１の画像サーフェスについてのサーフェスピクセルのブロックを完全には遮らないので、ＧＰＵ６は、第２の画像サーフェスについてのサーフェス識別子により、低解像度バッファ１８内の対応するストレージロケーションを更新しないことがある。
【００５８】
サーフェス識別子値を用いて低解像度バッファ１８を更新した後に、ＧＰＵ６は、低解像度バッファ１８に記憶されたサーフェス識別子値に基づいて、画像をフレームバッファ１０にレンダリングし得る。フレームバッファ１０は、複数のストレージロケーションを含む２次元バッファであり得る。フレームバッファ１０内のストレージロケーションの数は、ディスプレイ８上に表示されるべきピクセルの数と実質的に同様であり得る。たとえば、ディスプレイ８が６４０×４８０ピクセルを含むように構成された場合、フレームバッファ１０は６４０×４８０ストレージロケーションを含み得る。フレームバッファ１０は、ＧＰＵ６によって処理されるピクセルの各々についての最終ピクセル値を記憶し得る。ディスプレイ８は、フレームバッファ１０から最終ピクセル値を読み出し、フレームバッファ１０に記憶されたピクセル値に基づいて最終画像を表示し得る。
【００５９】
ＧＰＵ６は、低解像度バッファ１８に記憶されたサーフェス識別子値に基づいて、どのピクセルを、たとえば、ピクセルのシェーディング、ブレンディング、および照明を実行することによって処理すべきかを決定し得る。そのようなピクセルシェーディング、ブレンディングおよび照明は、ＧＰＵ６のフラグメントシェーダ・ステージにおいて行われ得る。このようにして、ＧＰＵ６は、最終画像に寄与しないピクセルをカリングするように構成され得、最終画像に寄与しないピクセルに関する計算リソースを浪費しない。たとえば、ＧＰＵ６は、ピクセルがフラグメントシェーダ・ステージに入る前に、低解像度バッファ１８に記憶された値に基づいて、最終画像に寄与しないピクセルをカリングし得る。
【００６０】
たとえば、画像サーフェスの各々のためのビニングパスの終わりに、低解像度バッファ１８は、最終画像に寄与するサーフェスの各々についてのサーフェス識別子値を記憶し得る。また、低解像度バッファ１８の各ストレージロケーションがディスプレイ８上のピクセルの複数のブロックに対応するので、低解像度バッファ１８のストレージロケーションの各々に記憶されたサーフェス識別子値は、どの画像サーフェスが、最終画像においてディスプレイ８上のそれらピクセルの複数のブロックに寄与するかを示し得る。
【００６１】
たとえば、低解像度バッファ１８中の第１のストレージロケーションがサーフェス識別子値３を記憶すると仮定する。また、低解像度バッファ１８中の第１のストレージロケーションが、ディスプレイ８上の（０，０）〜（３，３）座標を包含するピクセルに対応すると仮定する。この例では、ＧＰＵ６は、サーフェス識別子３をもつ画像サーフェスにおいて（０，０）〜（３，３）座標を包含するピクセルをレンダリングし、得られたピクセル値を、フレームバッファ１０の対応するロケーション、たとえば、フレームバッファ１０中の（０，０）〜（３，３）を包含するストレージロケーションに記憶し得る。
【００６２】
この例では、低解像度バッファ１８中の第１のストレージロケーションがサーフェス識別子値３を記憶したので、ＧＰＵ６は、（画像サーフェスが後方から前方に順序付けられると仮定すると）３よりも小さいサーフェス識別子をもつ画像サーフェスが最終画像に寄与しないことを認識し得る。また、この例では、サーフェス識別子値２をもつ画像サーフェスも、ディスプレイ８上の（０，０）〜（３，３）を包含するピクセルを含んでいると仮定する。この例では、低解像度バッファ１８中の第１のストレージロケーションがサーフェス識別子値３を記憶するので、ＧＰＵ６は、サーフェス識別子値２をもつ画像サーフェス中で（０，０）と（３，３）との間に位置する１６個のピクセルが最終画像に寄与しないことを認識し得る。言い換えれば、サーフェス識別子値２をもつ画像サーフェスのこれらのピクセルは、サーフェス識別子値３をもつ画像サーフェスの同じ場所に位置するピクセルによって完全に遮られる。この例では、ＧＰＵ６は、サーフェス識別子値２をもつ画像サーフェスのこれらの１６個のピクセルをカリングする（たとえば、レンダリングから除外する）ことが可能であり、サーフェス識別子値２をもつ画像サーフェスのこれらの１６個のピクセルを処理する計算リソースを浪費しない。
【００６３】
このようにして、本開示の態様は、効率的なＧＰＵ処理を促進し得る。たとえば、本開示において説明する例示的な実装形態のいくつかでは、ＧＰＵ６は、ピクセルごとにではなくピクセルのブロック全体を、さらなる処理からカリングすることが可能である。さらに、一部の２次元グラフィックス処理の場合、従来のＧＰＵは、サーフェス識別子を割り当てず、画像サーフェス全体をレンダリングし得る。そのようなレンダリングは、従来のＧＰＵが後で遮られ得る画像サーフェスをレンダリングするので、非効率的であり得る。本開示において説明する例は、ＧＰＵ６が、レンダリングに先行して、どの画像サーフェスが最終画像に寄与するかを決定することを可能にし、ＧＰＵ６がそれらのピクセルのみを処理することを可能にする。
【００６４】
また、上記で説明したように、ＧＰＵ６は、画像サーフェスのためのビニングパスの期間中にその画像サーフェスについてのサーフェス識別子値を記憶し得る。ＧＰＵ６がビニングパスの期間中に画像サーフェスについてのサーフェス識別子値を記憶し得るので、サーフェス識別子値を記憶することに関連するレイテンシは最小限に抑えられる。たとえば、ＧＰＵ６は、それのグラフィックス処理の一部としてビニングパスを実行するようにすでに構成されていることがあり得る。ビニングのすべてが画像サーフェスの各々について完了されるまで待ち、次いでサーフェス識別子を低解像度バッファ１８に記憶するのではなく、本開示において説明する例示的な実装形態は、ＧＰＵ６がビニングパスの期間中にサーフェス識別子値を記憶することを可能にし、それにより、効率的なＧＰＵ６処理をさらに促進する。
【００６５】
いくつかの例では、ＧＰＵ６は、タイルごとに画像をレンダリングし得る。たとえば、上記で説明したように、ＧＰＵ６は、ディスプレイ８を、各タイルが６４×４８ピクセルを含む、１０×１０タイルに分割し得る。これらの例のいくつかでは、ＧＰＵ６は、１０×１０タイルのうちの第１のタイルから開始する画像をレンダリングし、次いで、１０×１０タイルのうちの次のタイルに進むことができ、以後も同様である。
【００６６】
特定のタイルについて画像をレンダリングするために、ＧＰＵ６は、そのタイル内のピクセルに対応する低解像度バッファ１８に記憶された値を読み出し得る。たとえば、上記の例では、低解像度バッファ１８内の各ストレージロケーションはピクセルの４×４ブロックに対応し、各タイルは６４×４８ピクセルを含む。したがって、この例では、各タイルは、低解像度バッファ１８内の１９２個のストレージロケーションに対応し、たとえば、６４×４８を４×４で割ると１９２である。
【００６７】
ＧＰＵ６は、レンダリングされるべきタイルについて、低解像度バッファ１８内の１９２個のストレージロケーションに記憶された値を読み出し得る。一例では、ＧＰＵ６は、読み出された値を、キャッシュ（たとえば、Ｌ２キャッシュ）など、ＧＰＵ６の高速専用メモリ内に記憶し得る。代替例では、ＧＰＵ６は、読み出された値をＧＰＵ６のローカルメモリ内に記憶し得る。いくつかの例では、ＧＰＵ６が、読み出された値をＧＰＵ６のローカルメモリ内に記憶するときには、ＧＰＵ６は、低解像度バッファ１８内の値を拡張し得る。
【００６８】
たとえば、この例では、各タイルが６４×４８ピクセルを含むので、ＧＰＵ６内のローカルメモリは、単一のタイルについて６４×４８ストレージロケーションを含み得る。この例では、低解像度バッファ１８内のストレージロケーション１５が、６４×４８ピクセル内のピクセルの１番目の４×４ブロックに対応すると仮定する。６４×４８ピクセル内のピクセルの１番目の４×４ブロックは、ＧＰＵ６のローカルメモリ内の６４×４８ストレージロケーションの１番目の４×４ストレージロケーションに対応し得る。この例では、ＧＰＵ６は、低解像度バッファ１８内のストレージロケーション１５のサーフェス識別子値を、ＧＰＵ６のローカルメモリ内の６４×４８ストレージロケーションの１番目の４×４ストレージロケーションの各々に記憶し得る。
【００６９】
上記で説明した例では、ＧＰＵ６は、画像サーフェスのためのビニングパスの期間中に、その画像サーフェスについてのサーフェス識別子値を用いて低解像度バッファ１８を更新し得る。いくつかの例では、画像サーフェスは、透明画像サーフェス、または条件付きキル動作をもつ画像サーフェスであり得る。透明画像サーフェスは、その透過性により、他の画像サーフェスを遮らないことがある。透明画像サーフェスが他の画像サーフェスを遮らないので、ＧＰＵ６は、透明画像のためのビニングパスの期間中に、透明画像サーフェスのサーフェス識別子値を用いて低解像度バッファ１８を更新しないことがあるが、本開示の態様は、それだけに限定されると見なされるべきではない。
【００７０】
条件付きキル動作は、透明画像サーフェスの特殊な場合であり得る。条件付きキル動作では、画像サーフェスのいくつかのサーフェスピクセルは、いくつかの条件付きロジック、アルゴリズム、またはテクスチャサーフェスにより廃棄され得る（たとえば、レンダリングされない）。条件付きキル動作は、画像サーフェス内に「ホール」を作り出し、それにより、画像サーフェスを実際に透明であるものとしてレンダリングし得る。条件付きキルをもつ画像サーフェス内の「ホール」が原因で、ＧＰＵ６は、そのような画像サーフェスのビニングパスの期間中に、条件付きキルをもつ画像サーフェスのサーフェス識別子値を用いて低解像度バッファ１８を更新しないことがあるが、本開示の態様は、それだけに限定されると見なされるべきではない。
【００７１】
透明画像サーフェスと条件付きキルをもつ画像サーフェスとは、依然としてＧＰＵ６によってレンダリングされ得る。透明画像サーフェスまたは条件付きキルをもつ画像サーフェスのレンダリング中に、ＧＰＵ６は、これらのタイプの画像のどの部分が最終画像に寄与するかを決定し得る。たとえば、透明画像サーフェスは他のサーフェスを遮らないことがあり得るが、透明画像の部分、または透明画像の全体は、別の画像サーフェスによって遮られ得る。透明画像サーフェスまたは条件付きキルをもつ画像サーフェスのサーフェス識別子値を、透明画像サーフェスまたは条件付きキルをもつ画像サーフェスのサーフェスピクセルのブロックに対応するピクセルのブロックについての記憶されたサーフェス識別子値と比較することによって、ＧＰＵ６は、透明画像サーフェスまたは条件付きキルをもつ画像サーフェスのどの部分がレンダリングされるべきか、ならびにどの部分がレンダリングからカリングされるべきかを決定することが可能である。
【００７２】
図２Ａは、第１の画像サーフェスのビニングパスを示すグラフィック図である。図２Ｂは、図２Ａの第１の画像サーフェスのビニングパスの期間中の更新された低解像度バッファ１８を示すグラフィック図である。図２Ｃは、第２の画像サーフェスのビニングパスを示すグラフィック図である。図２Ｄは、図２Ｃの第２の画像サーフェスのビニングパスの期間中の更新された低解像度バッファ１８を示すグラフィック図である。図２Ｅは、フレームバッファ１０中の図２Ａ〜図２Ｄの第１および第２の画像サーフェスを示すグラフィック図である。
【００７３】
図２Ａ〜図２Ｅの例では、ディスプレイ８は６４×６４ピクセルを含み得る。また、例示の目的で、ならびに理解を容易にするために、図２Ａ〜図２Ｅの例は、２つの画像サーフェスを示している。他の例では、プロセッサ４によって生成され、ＧＰＵ６によって処理される３つ以上の画像サーフェスが存在し得る。
【００７４】
図２Ａに、プロセッサ４によって生成され得る画像サーフェス２２を示す。画像サーフェス２２は、（０，０）、（０，１５）、（１５，０）、および（１５，１５）の頂点座標をもつ１６×１６サーフェスピクセルを含み得る。画像サーフェス２２は、最後方画像サーフェスであり得、プロセッサ４またはＧＰＵ６は、画像サーフェス２２にサーフェス識別子値０を割り当て得る。いくつかの例では、ＧＰＵ６は、最後方画像サーフェスから開始し、最前方画像サーフェスへと続く、ビニングパスを実行し得る。したがって、この例では、ＧＰＵ６は、画像サーフェス２２から開始するビニングパスを実行し得る。
【００７５】
理解を容易にするために、この例は、画像サーフェス２２が最後方画像サーフェスであると仮定する。多くの場合、ディスプレイ８の背景は、最後方画像サーフェスと見なされ、サーフェス識別子値０が割り当てられる。これらの場合、画像サーフェス２２には、サーフェス識別子値１が割り当てられる。また、これらの場合、図２Ｃおよび図２Ｄに関して説明する画像サーフェス２６には、サーフェス識別子値２が割り当てられる。これらの場合、以下で説明する例では、画像サーフェス２２のサーフェス識別子値は１であり得、画像サーフェス２６のサーフェス識別子値は２であり得、ディスプレイ８の背景には、サーフェス識別子値０が割り当てられる。
【００７６】
図２Ａに示すレイヤ２４は、サーフェス識別子値０をもつ画像サーフェス、たとえば、この例では画像サーフェス２２、に対応するタイルメモリ２０のレイヤのうちの１つであり得る。図示のように、レイヤ２４は、８×８ストレージロケーションを含み得、各ストレージロケーションはディスプレイ８の１つのタイルに対応する。上記で説明したように、図２Ａの例では、ディスプレイ８は６４×６４ピクセルを含み得る。したがって、この例では、１つのタイルは８×８ピクセルを含み得る。図２Ａの例では、レイヤ２４の第１のストレージロケーションの座標は（０，０）であり得る。レイヤ２４の第１のストレージロケーションのすぐ右のストレージロケーションの座標は（１，０）であり、以後同様に、（７，７）に位置するレイヤ２４のストレージロケーションへと続く。
【００７７】
ＧＰＵ６は、画像サーフェス２２が属するタイルを決定し得る。説明したように、図２Ａの例では、各タイルは８×８ピクセルを含む。また、図２Ａの例では、画像サーフェス２２は、８×８ピクセルの４つのブロック、たとえば、（０，０）から（７，７）までのブロック、（０，７）から（７，１５）までのブロック、（７，０）から（１５，７）までのブロック、および（７，７）から（１５，１５）までのブロックを含む。したがって、この例では、画像サーフェス２２は４つのタイルに属し、すなわち、それは、画像サーフェス２２中に８×８ピクセルの４つのブロックがあり、各タイルが８×８ピクセルを含むからである。
【００７８】
図２Ａに示したように、レイヤ２４は、画像サーフェス２２についてのサーフェス値識別子を、画像サーフェス２２が属するタイルに対応するロケーションに記憶し得る。たとえば、レイヤ２４のストレージロケーション（０，０）、（０，１）、（１，０）、および（１，１）は、それぞれ画像サーフェス２２についてのサーフェス値識別子、たとえば、値０を記憶する。この例では、レイヤ２４のストレージロケーション（０，０）、（０，１）、（１，０）、および（１，１）は、画像サーフェス２２が属するタイルに対応する。
【００７９】
図２Ｂに、ＧＰＵ６が、図２Ａに示した画像サーフェス２２のビニングパスの期間中に更新し得る低解像度バッファ１８に対する更新を示す。図２Ｂの例では、低解像度バッファ１８は、１６×１６ストレージロケーションを含む。上記で説明したように、図２Ｂの例では、ディスプレイ８は６４×６４ピクセルを含み得る。したがって、図２Ｂの例では、低解像度バッファ１８の各ストレージロケーションは、ピクセルの４×４ブロックに対応し得る。たとえば、（０，０）に位置する低解像度バッファ１８のストレージロケーションは、ディスプレイ８上の（０，０）〜（３，３）に位置するピクセルに対応し得る。（１，０）に位置する低解像度バッファ１８のストレージロケーションは、ディスプレイ８上の（３，０）〜（７，３）に位置するピクセルに対応し得、以後も同様である。たとえば、（１５，１５）に位置する低解像度バッファ１８のストレージロケーションは、ディスプレイ８上の（５９，５９）〜（６３，６３）に位置するピクセルに対応し得る。
【００８０】
図２Ｂの例では、画像サーフェス２２のビニングパスの期間中に、ＧＰＵ６は、画像サーフェス２２を画像サーフェス２２のサーフェスピクセルの複数のブロックに分割し得る。たとえば、ＧＰＵ６は、画像サーフェス２２を４×４サーフェスピクセルの１６個のブロックに分割し得、たとえば、１６×１６を１６で割ると４×４である。画像サーフェス２２のこれらの１６個のブロックは、ブロック２３Ａ〜２３Ｐ（まとめて「ブロック２３」と呼ぶ）として示されている。
【００８１】
ブロック２３の各々、たとえば、画像サーフェス２２の４×４サーフェスピクセルのこれら１６個のブロックの各々は、低解像度バッファ１８の１つのストレージロケーションに対応し得る。たとえば、（０，０）に位置する低解像度バッファ１８のストレージロケーションは、４×４サーフェスピクセル、たとえば、（０，０）〜（３，３）を包含する画像サーフェス２２のサーフェスピクセルの１６個のブロックのブロック２３Ａに対応し得る。（１，０）に位置する低解像度バッファ１８のストレージロケーションは、４×４サーフェスピクセル、たとえば、（３，０）〜（７，３）を包含する画像サーフェス２２のサーフェスピクセルの１６個のブロックのブロック２３Ｂに対応し得、以後も同様である。
【００８２】
画像サーフェス２２のビニングパスの期間中に、ＧＰＵ６は、画像サーフェス２２のサーフェス識別子値を、画像サーフェス２２のサーフェスピクセルのブロックに対応する低解像度バッファ１８のストレージロケーション内に記憶し得る。たとえば、図２Ｂに示したように、低解像度バッファ１８中の（０，０）に位置するストレージロケーションがディスプレイ８上の（０，０）〜（３，３）に位置するピクセルに対応し、画像サーフェス２２がディスプレイ８上の（０，０）〜（３，３）を包含するサーフェスピクセル、たとえばブロック２３Ａを含むので、低解像度バッファ１８中の（０，０）に位置するストレージロケーションは、サーフェス識別子値０を記憶する。同様に、画像サーフェス２２が、それぞれ低解像度バッファ１８のこれらのストレージロケーションに対応するサーフェスピクセルのブロック、たとえばブロック２３Ａ〜２３Ｐを含むので、低解像度バッファ１８中の（０，０）〜（３，３）に位置するストレージロケーションは、サーフェス識別子値０を記憶する。
【００８３】
画像サーフェス２２のためのビニングパスを完了し、低解像度バッファ１８を更新した後、ＧＰＵ６は、最後方から２番目の画像サーフェスのためのビニングパスを継続し得る。図２Ｃに、プロセッサ４によって生成され得る画像サーフェス２６を示す。図２Ａおよび図２Ｂの画像サーフェス２２と同様に、画像サーフェス２６は１６×１６サーフェスピクセルを含み得る。画像サーフェス２６の頂点座標は、（７，７）、（７，２３）、（２３，７）、および（２３，２３）である。画像サーフェス２２および２６の頂点座標に基づいて、画像サーフェス２６は、画像サーフェス２２に部分的に重なる。
【００８４】
図２Ｃの例では、画像サーフェス２６は、最後方から２番目の画像サーフェスであり得る。この例では、プロセッサ４またはＧＰＵ６は、画像サーフェス２６にサーフェス識別子値１を割り当て得る。図２Ｃの例では、ＧＰＵ６は、画像サーフェス２２のビニングパスを完了しており、今は、画像サーフェス２６が最後方から２番目の画像サーフェスであるので画像サーフェス２６のビニングパスを実行し得る。
【００８５】
図２Ｃに示すレイヤ２８は、この例では、サーフェス識別子値１をもつ画像サーフェス、たとえば、画像サーフェス２６に対応するタイルメモリ２０のレイヤのうちの１つであり得る。図２Ａのレイヤ２４と同様に、レイヤ２８は８×８ストレージロケーションを含み得、各ストレージロケーションは、ディスプレイ８上の８×８ピクセルを含み得る、ディスプレイ８の１つのタイルに対応する。
【００８６】
ＧＰＵ６は、画像サーフェス２６がどのタイルに属するかを決定し得る。画像サーフェス２２と同様に、画像サーフェス２６は、８×８ピクセルの４つのブロック、たとえば、（７，７）から（１５，１５）までのブロック、（７，１５）から（１５，２３）までのブロック、（１５，７）から（２３，１５）までのブロック、および（１５，１５）から（２３，２３）までのブロックを含む。したがって、この例では、画像サーフェス２６は４つのタイルに属する。
【００８７】
図２Ｃに示したように、レイヤ２８は、画像サーフェス２６についてのサーフェス値識別子を、画像サーフェス２６が属するタイルに対応するロケーションに記憶し得る。たとえば、レイヤ２８のストレージロケーション（１，１）、（２，１）、（１，２）、および（２，２）は、それぞれ画像サーフェス２６についてのサーフェス値識別子、たとえば、値１を記憶する。この例では、レイヤ２８のストレージロケーション（１，１）、（２，１）、（１，２）、および（２，２）は、画像サーフェス２６が属するタイルに対応する。
【００８８】
図２Ｄに、ＧＰＵ６が、図２Ｃに示した画像サーフェス２６のビニングパスの期間中に更新し得る低解像度バッファ１８に対する更新を示す。上記で説明したように、この例では、低解像度バッファ１８は、ピクセルの４×４ブロックにそれぞれ対応する１６×１６ストレージロケーションを含む。
【００８９】
図２Ｄの例では、画像サーフェス２６のビニングパスの期間中に、ＧＰＵ６は、画像サーフェス２６を画像サーフェス２６のサーフェスピクセルの複数のブロックに分割し得る。たとえば、ＧＰＵ６は、画像サーフェス２６を４×４サーフェスピクセルの１６個のブロックに分割し得、たとえば、１６×１６を１６で割ると４×４である。画像サーフェス２６のこれらの１６個のブロックは、ブロック２７Ａ〜２７Ｐ（まとめて「ブロック２７」と呼ぶ）として示されている。
【００９０】
ブロック２７の各々、たとえば、画像サーフェス２６の４×４サーフェスピクセルのこれらの１６個のブロックの各々は、低解像度バッファ１８の１つのストレージロケーションに対応し得る。たとえば、（２，２）に位置する低解像度バッファ１８のストレージロケーションは、４×４サーフェスピクセル、たとえば、（７，７）〜（１１，１１）を包含する画像サーフェス２６のサーフェスピクセルの１６個のブロックのブロック２７Ａに対応し得る。（３，２）に位置する低解像度バッファ１８のストレージロケーションは、４×４サーフェスピクセル、たとえば、（１１，７）〜（１５，１１）を包含する画像サーフェス２６のサーフェスピクセルの１６個のブロックのブロック２７Ｂに対応し得、以後も同様である。
【００９１】
画像サーフェス２６のビニングパスの期間中に、ＧＰＵ６は、画像サーフェス２６のサーフェス識別子値を、画像サーフェス２６のサーフェスピクセルのブロックに対応する低解像度バッファ１８のストレージロケーション内に記憶し得る。たとえば、ＧＰＵ６は、画像サーフェス２６の４×４サーフェスピクセルのブロックに対応する画像サーフェス２６についてのサーフェス値識別子を用いて低解像度バッファ１８のストレージロケーションを更新し得る。たとえば、図２Ｄに示したように、低解像度バッファ１８中の（２，２）に位置するストレージロケーションがディスプレイ８上の（７，７）〜（１１，１１）に位置するピクセルに対応し、画像サーフェス２６がディスプレイ８上の（７，７）〜（１１，１１）を包含するサーフェスピクセル、たとえばブロック２７Ａを含むので、低解像度バッファ１８中の（２，２）に位置するストレージロケーションは、サーフェス識別子値１を記憶する。同様に、画像サーフェス２６が、それぞれ低解像度バッファ１８のこれらのストレージロケーションに対応するサーフェスピクセルのブロック、たとえば、ブロック２７Ａ〜２７Ｐを含むので、低解像度バッファ１８中の（２，２）〜（５，５）に位置するストレージロケーションは、サーフェス識別子値１を記憶する。
【００９２】
図２Ｄの例では、重なる画像サーフェスが、低解像度バッファ１８のストレージロケーションに関連するピクセルのブロックに完全に重なる場合、ＧＰＵ６は、低解像度バッファ１８に記憶されたサーフェス識別子値を更新し得る。たとえば、図２Ｂでは、ＧＰＵ６は、画像サーフェス２２についてのサーフェス識別子値０を低解像度バッファ１８のストレージロケーション（２，２）に記憶した。低解像度バッファ１８のストレージロケーション（２，２）は、ディスプレイ８上の（７，７）と（１１，１１）との間に位置するピクセルに対応し得る。次いで、画像サーフェス２６のためのビニングパスの期間中に、画像サーフェス２６が画像サーフェス２２に重なるので、ＧＰＵ６は、画像サーフェス２６についてのサーフェス識別子値１を低解像度バッファ１８のストレージロケーション（２，２）に記憶した。
【００９３】
画像サーフェス２６のビニングパスの期間中に低解像度バッファ１８を更新している間、少なくとも３つの状況が起こり得る。第１の状況では、画像サーフェス２６中のピクセルのブロックは、画像サーフェス２２中のピクセルのブロックと完全に同じ場所に位置する。第２の状況では、画像サーフェス２６中のピクセルのブロックは、画像サーフェス２２中のピクセルのブロックのいずれとも同じ場所に位置しない。第３の状況では、画像サーフェス２６中のピクセルのブロックは、画像サーフェス２２中のピクセルのブロックと部分的に同じ場所に位置する。
【００９４】
第１の状況の一例として、画像サーフェス２６のブロック２７Ａは、画像サーフェス２２のブロック２３Ｋと完全に同じ場所に位置する。「完全に同じ場所に位置する（fully co-located）」という用語は、画像サーフェス２６中のブロックの端部が、画像サーフェス２２中のブロックの端部と同じであることを意味する。たとえば、画像サーフェス２２のブロック２３Ｋの座標は（７，７）〜（１１，１１）であり、画像サーフェス２６のブロック２７Ａの座標も（７，７）〜（１１，１１）である。
【００９５】
画像サーフェス２６のピクセルのブロック、たとえばブロック２７Ａが、画像サーフェス２２のピクセルのブロック、たとえばブロック２３Ｋと完全に同じ場所に位置するときには、ＧＰＵ６は、ブロック２３Ｋおよびブロック２７Ａに対応する低解像度バッファ１８のストレージロケーション中の画像サーフェス２６のサーフェス識別子値を用いてサーフェス識別子値を更新し得る。たとえば、（２，２）に位置する低解像度バッファ１８のストレージロケーションは、ブロック２３Ｋとブロック２７Ａの両方に対応する。この例では、画像サーフェス２６のビニングパスの期間中に、ＧＰＵ６は、図２Ｄに示すように、値１、たとえば、画像サーフェス２６のサーフェス識別子値を用いて、低解像度バッファ１８のロケーション（２，２）に記憶されたサーフェス識別子値を更新し得る。
【００９６】
第２の状況の一例として、画像サーフェス２６のブロック２７Ｐは、画像サーフェス２２のブロック２３のいずれとも同じ場所に位置しない。たとえば、画像サーフェス２６のブロック２７Ｐの座標は（１９，１９）〜（２３，２３）である。画像サーフェス２２は、座標（１９，１９）〜（２３，２３）を包含するブロックを含まない。たとえば、画像サーフェス２２のサーフェスピクセルの最後のブロック、たとえばブロック２３Ｐの座標は、（１１，１１）〜（１５，１５）である。
【００９７】
画像サーフェス２６のピクセルのブロック、たとえばブロック２７Ｐが、画像サーフェス２２のピクセルのいずれかのブロック、たとえばブロック２３と同じ場所に位置しないときには、ＧＰＵ６は、ブロック２７Ｐに対応する低解像度バッファ１８のストレージロケーション中の画像サーフェス２６のサーフェス識別子値を用いてサーフェス識別子値を更新し得る。たとえば、（５，５）に位置する低解像度バッファ１８のストレージロケーションは、ブロック２７Ｐに対応する。この例では、図２Ｄに示すように、画像サーフェス２６のビニングパスの期間中に、ＧＰＵ６は、値１、たとえば、画像サーフェス２６のサーフェス値を用いて、低解像度バッファ１８の（５，５）に記憶されたサーフェス識別子値を更新し得る。
【００９８】
第１の状況の例では、低解像度バッファ１８中の（２，２）に位置する低解像度バッファ１８のストレージロケーションは、ディスプレイ８上の（７，７）と（１１，１１）との間に位置するピクセルに対応する。また、図２Ａ〜図２Ｄの例では、画像サーフェス２２と画像サーフェス２６の両方は、（７，７）と（１１，１１）との間に位置するピクセル、たとえば、画像サーフェス２２のブロック２３Ｋと画像サーフェス２６のブロック２７Ａとを含んでいた。しかしながら、第３の状況の一例として、重なる画像サーフェスは、低解像度バッファ１８中の（２，２）に位置するストレージロケーションに対応するディスプレイ８上のピクセルのブロックの全体を包含しないことが起こり得る。たとえば、画像サーフェス２６中のピクセルのブロックは、画像サーフェス２２中のピクセルのブロックと部分的に同じ場所に位置する。「部分的に同じ場所に位置する（partially co-located）」という用語は、画像サーフェス２６のピクセルのブロックの一部のみが画像サーフェス２２のピクセルのブロックの一部に重なることを意味する。
【００９９】
たとえば、画像サーフェス２６の頂点が（８，８）、（８，２３）、（２３，８）、および（２３，２３）であると仮定する。言い換えれば、この例では、画像サーフェス２６の左上頂点は、図２Ｃおよび図２Ｄの例の場合のように（７，７）ではなく（８，８）である。この例では、画像サーフェス２６のビニングパスの期間中に、画像サーフェス２６が、ディスプレイ８に対応するディスプレイ８上のピクセルのブロックの全体を包含しないので、たとえば、低解像度バッファ１８中のロケーション（２，２）はディスプレイ８上の（７，７）〜（１１，１１）に対応するが、画像サーフェス２６は（８，８）で開始するので、ＧＰＵ６は、低解像度バッファ１８中の（２，２）に記憶されたサーフェス識別子値を更新しないことがあり得る。これらの事例では、（２，２）に記憶されたサーフェス識別子値は、画像サーフェス２２のサーフェス識別子値、たとえば、サーフェス識別子値０のままであり得る。この例では、画像サーフェス２６のピクセルのブロックが画像サーフェス２２中のピクセルのブロックと部分的にしか同じ場所に位置しないので、ＧＰＵ６は、画像サーフェス２６のサーフェス識別子値を低解像度バッファ１８のロケーション（２，２）に記憶しないことがあり得る。
【０１００】
この例では、たとえば、画像サーフェス２６の頂点が（８，８）で開始する場合、レンダリングパスの期間中に、ＧＰＵ６は、ディスプレイ８上のどのディスプレイピクセルがどの画像サーフェスに対応するかを解決する際にいくつかの小さな非効率を生じ得る。しかしながら、グラフィックスレンダリング中にピクセルのブロック全体をカリングすることから得られるグラフィックス処理効率は、これらの小さなグラフィックス処理非効率のいずれをも補って余りあるものであり得る。
【０１０１】
図２Ｅは、フレームバッファ１０中の図２Ａ〜図２Ｄの画像サーフェス２２および画像サーフェス２６を示すグラフィック図である。上記で説明したように、フレームバッファ１０は複数のストレージロケーションを含み得、フレームバッファ１０中のストレージロケーションの数は、ディスプレイ８上のピクセルの数と実質的に同様であり得る。たとえば、図２Ｅの例では、フレームバッファ１０は６４×６４ストレージロケーションを含み、ディスプレイ８は６４×６４ピクセルを含む。
【０１０２】
フレームバッファ１０のストレージロケーションの各々は、カラー値、たとえばＲＧＢまたはルーマおよびクロマ値、ならびに不透明度値、たとえばα値などのピクセル値を記憶し得る。ＧＰＵ６は、フレームバッファ１０に記憶するためのそのレンダリングパスの期間中に各ピクセルについてのピクセル値を生成し得る。
【０１０３】
レンダリングパスについて、ＧＰＵ６は、いくつかの例として、ピクセルをシェーディング、ブレンディングおよび照明するためのそのフラグメントシェーダを実装し得る。本開示のいくつかの例示的な実装形態では、ＧＰＵ６は、低解像度バッファ１８に記憶されたサーフェス識別子値に基づいて、どの画像サーフェスからのどのサーフェスピクセルがフラグメントシェーダに与えられるべきかを決定し得る。
【０１０４】
たとえば、レンダリングパスでは、ＧＰＵ６は、低解像度バッファ１８に記憶されたサーフェス値に基づいて、画像サーフェス２２および画像サーフェス２６のどの部分が、図２Ｅに示された最終画像に寄与するかを決定し得る。たとえば、低解像度バッファ１８に記憶されたサーフェス識別子値に基づいて、ＧＰＵ６は、低解像度バッファ１８に記憶されたサーフェス識別子値に基づいて、画像サーフェス２２のどの部分が画像サーフェス２６のどの部分によって重なられるかを決定し得る。その決定に基づいて、ＧＰＵ６は、画像サーフェス２６によって重なられない画像サーフェス２２の部分をレンダリングし得る。また、決定に基づいて、ＧＰＵ６は、画像サーフェス２６によって重なられる画像２２の部分を、レンダリングから除外し得る（たとえば、カリングし得る）。
【０１０５】
一例として、レンダリングパスでは、低解像度バッファ１８が、図２Ｄに示したように、画像サーフェス２２のサーフェス識別子値、たとえば値０を、低解像度バッファ１８中の（０，０）に位置するストレージロケーションに記憶するので、ＧＰＵ６は、画像サーフェス２２がディスプレイ８上のピクセル（０，０）〜（３，３）に寄与することを決定し得る。また、低解像度バッファ１８中の（０，０）に位置するストレージロケーションは、ディスプレイ８中のピクセル（０，０）〜（３，３）に対応する。したがって、図２Ｅに示す例では、フレームバッファ１０中の（０，０）と（３，３）との間に位置するストレージロケーションにおいて、フレームバッファ１０は、ＧＰＵ６のフラグメントシェーダから生成された、画像サーフェス２２のピクセル値を記憶する。
【０１０６】
別の例として、レンダリングパスでは、低解像度バッファ１８が、図２Ｄに示したように、画像サーフェス２６のサーフェス識別子値、たとえば値１を、低解像度バッファ１８中の（２，２）に位置するストレージロケーションに記憶するので、ＧＰＵ６は、画像サーフェス２６がディスプレイ８上のピクセル（７，７）〜（１１，１１）に寄与することを決定し得る。また、低解像度バッファ１８中の（２，２）に位置するストレージロケーションは、ディスプレイ８中のピクセル（７，７）〜（１１，１１）に対応する。したがって、図２Ｅに示す例では、フレームバッファ１０中の（７，７）と（１１，１１）との間に位置するストレージロケーションにおいて、フレームバッファ１０は、ＧＰＵ６のフラグメントシェーダから生成された、画像サーフェス２６のピクセル値を記憶する。
【０１０７】
上記で説明したように、図２Ａ〜図２Ｅの例では、画像サーフェス２２はまた、ディスプレイ８上の（７，７）と（１１，１１）との間のサーフェスピクセルを含み得る。しかしながら、画像サーフェス２２のサーフェスピクセルのこのブロックは、画像サーフェス２６のサーフェスピクセルの同じ場所に位置するブロックによって完全に遮られる。この例では、ＧＰＵ６は、遮断により画像サーフェス２２の（７，７）と（１１，１１）との間のサーフェスピクセルを処理する必要がない。いくつかの例では、低解像度バッファ１８が、画像サーフェス２６のみがディスプレイ８上の（７，７）と（１１，１１）との間に位置するピクセルに寄与することを示すので、ＧＰＵ６は、画像サーフェス２２の（７，７）と（１１，１１）との間のサーフェスピクセルをカリングし（たとえば、レンダリングから除外し）、これらのピクセルをグラフィックス処理する際のグラフィックス計算リソースを浪費しない。このようにして、ＧＰＵ６が、最終画像に寄与しないピクセルのブロックをグラフィックス処理する必要がないので、本開示において説明する例示的な実装形態のいくつかは、レンダリングパスの速度を増大させ得る。
【０１０８】
レンダリングパスの後、ディスプレイ８は、フレームバッファ１０に記憶されたピクセル値を読み出し、ディスプレイ８上に最終画像を提示し得る。いくつかの代替例では、フレームバッファ１０は必要でないことがある。これらの代替例では、ＧＰＵ６は、レンダリングパスから、提示のためにディスプレイ８に直接ピクセル値を出力し得る。たとえば、ＧＰＵ６は、図２Ｄに関して上記で説明したものと同様の機能を実行し得る。しかしながら、この例では、ピクセル値をフレームバッファ１０に出力するのではなく、ＧＰＵ６は、提示のためにディスプレイ８に直接ピクセル値を出力し得る。
【０１０９】
図３は、ＧＰＵ６の例示的な動作を示すフローチャートである。単なる説明の目的で、図１および図２Ａ〜図２Ｅを参照する。ＧＰＵ６は、少なくとも第１の画像サーフェスと第２の画像サーフェスとを受信する（２８）。いくつかの例では、第２の画像サーフェスは、第１の画像サーフェスに少なくとも部分的に重なり得る。たとえば、第１の画像サーフェスは画像サーフェス２２であり得、第２の画像サーフェスは画像サーフェス２６であり得る。上記で説明したように、図２Ｅに示すように、画像サーフェス２２は最後方画像サーフェスであり得、画像サーフェス２６は、画像サーフェス２２と少なくとも部分的に重なり得る。
【０１１０】
ＧＰＵ６は、次いで、第１の画像サーフェス上でビニングパスを実行する（３０）。ビニングパスにおいて、ＧＰＵ６は、第１の画像サーフェスがどのタイルに属するかを決定し得る。決定に基づいて、ＧＰＵ６は、第１の画像サーフェスのサーフェス識別子値を、第１の画像サーフェスに対応するタイルメモリ２０のレイヤのストレージロケーションに記憶し得る。たとえば、図２Ａに関して上記で説明したように、タイルメモリ２０のレイヤ２４は画像サーフェス２２に対応する。また、図２Ａに関して上記で説明したように、レイヤ２４のストレージロケーション（０，０）、（０，１）、（１，０）、および（１，１）は、それぞれ画像サーフェス２２についてのサーフェス識別子値、たとえば、値０を記憶する。この例では、レイヤ２４のストレージロケーション（０，０）、（０，１）、（１，０）、および（１，１）は、画像サーフェス２２が属するタイルに対応する。
【０１１１】
第１の画像サーフェスのビニングパスの期間中に、ＧＰＵ６は、第１の画像サーフェスを第１の画像サーフェスのサーフェスピクセルの複数のブロックへと分割する（３２）。たとえば、図２Ｂに関して上記で説明したように、ＧＰＵ６は、画像サーフェス２２をブロック２３Ａ〜２３Ｐに分割し得る。この例では、ブロック２３Ａ〜２３Ｐは、画像サーフェス２２の４×４ピクセルを含み得る。
【０１１２】
また、第１の画像サーフェスのビニングパスの期間中に、ＧＰＵ６は、第１の画像サーフェスのサーフェス識別子値を、第１の画像サーフェスのサーフェスピクセルの複数のブロックのうちのあるブロックに対応する低解像度バッファ１８のストレージロケーション内に記憶する（３４）。たとえば、図２Ｂに関して上記で説明したように、画像サーフェス２２のブロック２３の各々は、低解像度バッファ１８の１つのストレージロケーションに対応し得る。一例として、低解像度バッファ１８のロケーション（０，０）は、画像サーフェス２２のブロック２３Ａに対応し得、低解像度バッファ１８のロケーション（１，０）は、画像サーフェス２２のブロック２３Ｂに対応し得、以後も同様である。また、ブロック２３Ａは、ディスプレイ８上の（０，０）〜（３，３）を包含する画像サーフェス２２のサーフェスピクセルを含み得、ブロック２３Ｂは、ディスプレイ８上の（３，０）〜（７，３）を包含する画像サーフェス２２のサーフェスピクセルを含み得、以後も同様である。
【０１１３】
１つまたは複数の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、非一時的コンピュータ可読媒体を備える製造品に１つまたは複数の命令またはコードとして記憶され得る。コンピュータ可読媒体はコンピュータデータ記憶媒体を含み得る。データ記憶媒体は、本開示で説明した技法の実装のための命令、コードおよび／またはデータ構造を読み出すために１つまたは複数のコンピュータあるいは１つまたは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。限定ではなく例として、そのようなコンピュータ可読媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭまたは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、あるいは命令またはデータ構造の形態の所望のプログラムコードを搬送または記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。本明細書で使用するディスク（disk）およびディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザディスク（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）およびブルーレイ（登録商標）ディスク（disc）を含み、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
【０１１４】
コードは、１つまたは複数のＤＳＰ、汎用マイクロプロセッサ、ＡＳＩＣ、ＦＰＧＡ、あるいは他の等価な集積回路またはディスクリート論理回路など、１つまたは複数のプロセッサによって実行され得る。さらに、いくつかの態様では、本明細書で説明する機能は、専用のハードウェアモジュールおよび／またはソフトウェアモジュールの内部に与えられ得る。また、本技法は、１つまたは複数の回路または論理要素中に十分に実装され得る。
【０１１５】
本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）またはＩＣのセット（たとえば、チップセット）を含む、多種多様なデバイスまたは装置において実施され得る。本開示では、開示する技法を実行するように構成されたデバイスの機能的態様を強調するために様々な構成要素、モジュール、またはユニットについて説明したが、それらの構成要素、モジュール、またはユニットを、必ずしも異なるハードウェアユニットによって実現する必要があるとは限らない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェアおよび／またはファームウェアとともに、上記で説明した１つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作ハードウェアユニットの集合によって与えられ得る。
【０１１６】
様々な例について説明した。これらおよび他の例は、特許請求の範囲内にある。
以下に、本願の出願当初請求項に記載された発明を付記する。
［Ｃ１］
グラフィックス処理ユニット（ＧＰＵ）によって、少なくとも第１の画像サーフェスと第２の画像サーフェスとを受信することであって、前記第２の画像サーフェスが前記第１の画像サーフェスに少なくとも部分的に重なる、受信することと、
前記ＧＰＵによって、前記第１の画像サーフェス上でビニングパスを実行することと、
前記第１の画像サーフェスの前記ビニングパスの期間中に、
前記ＧＰＵによって、前記第１の画像サーフェスを前記第１の画像サーフェスのサーフェスピクセルの複数のブロックへと分割することと、
前記ＧＰＵによって、前記第１の画像サーフェスについてのサーフェス識別子値を、前記第１の画像サーフェスのサーフェスピクセルの前記複数のブロックのうちのあるブロックに対応する低解像度バッファ内の複数のストレージロケーションのうちのストレージロケーション内に記憶することであって、前記低解像度バッファ内の前記複数のストレージロケーションの各々がまた、ディスプレイ上のピクセルのブロックに対応する、記憶することと
を備える方法。
［Ｃ２］
前記第１の画像サーフェスについての前記サーフェス識別子値を、前記第１の画像サーフェスのサーフェスピクセルの前記複数のブロックの各々にそれぞれ対応する前記低解像度バッファ内の前記複数のストレージロケーションの各々に記憶すること
をさらに備える、上記Ｃ１に記載の方法。
［Ｃ３］
前記ディスプレイを複数のタイルへと分割すること
をさらに備え、
前記ビニングパスを実行することが、
前記第１の画像サーフェスがどのタイルに属するかを決定することと、
前記第１の画像サーフェスの前記サーフェス識別子値を、前記第１の画像サーフェスに対応するタイルメモリのレイヤのストレージロケーションに記憶することと
を含む、上記Ｃ１に記載の方法。
［Ｃ４］
前記第２の画像サーフェス上でビニングパスを実行することと、
前記第２の画像サーフェスの前記ビニングパスの期間中に、
前記第２の画像サーフェスを前記第２の画像サーフェスのサーフェスピクセルの複数のブロックへと分割することと、
前記第２の画像サーフェスのサーフェスピクセルの前記複数のブロックのうちのあるブロックが前記第１の画像サーフェスのピクセルの前記ブロックと完全に同じ場所に位置するとき、前記第２の画像サーフェスについてのサーフェス識別子値を、前記第２の画像サーフェスのサーフェスピクセルの前記複数のブロックのうちの前記ブロックに対応する前記低解像度バッファ内の前記複数のストレージロケーションのうちのストレージロケーション内に記憶することと
をさらに備える、上記Ｃ１に記載の方法。
［Ｃ５］
前記第２の画像サーフェス上でビニングパスを実行することと、
前記第２の画像サーフェスの前記ビニングパスの期間中に、
前記第２の画像サーフェスを前記第２の画像サーフェスのサーフェスピクセルの複数のブロックへと分割することと、
前記第２の画像サーフェスのサーフェスピクセルの前記複数のブロックのうちのあるブロックが、前記第１の画像サーフェスのピクセルの前記複数のブロックのいずれとも同じ場所に位置しないとき、前記第２の画像サーフェスについてのサーフェス識別子値を、前記第２の画像サーフェスのサーフェスピクセルの前記複数のブロックのうちの前記ブロックに対応する前記低解像度バッファ内の前記複数のストレージロケーションのうちのストレージロケーション内に記憶することと
をさらに備える、上記Ｃ１に記載の方法。
［Ｃ６］
前記第２の画像サーフェス上でビニングパスを実行することと、
前記第２の画像サーフェスの前記ビニングパスの期間中に、
前記第２の画像サーフェスを前記第２の画像サーフェスのサーフェスピクセルの複数のブロックへと分割することと、
前記第２の画像サーフェスのサーフェスピクセルの前記複数のブロックのうちのあるブロックが、前記第１の画像サーフェスのピクセルの前記ブロックと部分的に同じ場所に位置するとき、前記第２の画像サーフェスについてのサーフェス識別子値を、前記第２の画像サーフェスのサーフェスピクセルの前記複数のブロックのうちの前記ブロックに対応する前記低解像度バッファ内の前記複数のストレージロケーションのうちのストレージロケーション内に記憶しないことと
をさらに備える、上記Ｃ１に記載の方法。
［Ｃ７］
前記第１の画像サーフェスのサーフェスピクセルの前記複数のブロックの各々が、前記第１の画像サーフェスの２つ以上のサーフェスピクセルを含み、前記ディスプレイ上のピクセルの前記ブロックが、前記ディスプレイ上の２つ以上のピクセルを含む、上記Ｃ１に記載の方法。
［Ｃ８］
少なくとも前記第１の画像サーフェスと前記第２の画像サーフェスとを受信することが、プロセッサから少なくとも前記第１の画像サーフェスと前記第２の画像サーフェスとを受信することを含む、上記Ｃ１に記載の方法。
［Ｃ９］
プロセッサと前記ＧＰＵとのうちの少なくとも１つによって、前記第１の画像サーフェスについての前記サーフェス識別子値と、前記第２の画像サーフェスについてのサーフェス識別子値とを割り当てることであって、前記第１の画像サーフェスについてのサーフェス識別子値を記憶することが、前記第１の画像サーフェスについての前記割り当てられたサーフェス識別子値を記憶することを含む、割り当てること
をさらに備える、上記Ｃ１に記載の方法。
［Ｃ１０］
複数の画像サーフェスを受信することであって、前記複数の画像サーフェスが前記第１の画像サーフェスと前記第２の画像サーフェスとを含む、受信することと、
プロセッサと前記ＧＰＵとのうちの少なくとも１つによって、前記複数の画像サーフェスの最後方画像サーフェスから開始し前記複数の画像サーフェスの最前方画像サーフェスまで継続して、サーフェス識別子値を前記複数の画像サーフェスの各々に割り当てることと
をさらに備える、上記Ｃ１に記載の方法。
［Ｃ１１］
前記低解像度バッファに記憶された前記サーフェス識別子値に基づいて、前記第１の画像サーフェスのどの部分が前記第２の画像サーフェスによって重なられるかを決定することと、
前記決定に基づいて、前記第２の画像サーフェスによって重なられない前記第１の画像サーフェスの部分をレンダリングすることと、
前記決定に基づいて、前記第２の画像サーフェスによって重なられる前記第１の画像サーフェスの部分をレンダリングから除外することと
をさらに備える、上記Ｃ１に記載の方法。
［Ｃ１２］
複数のストレージロケーションを含む低解像度バッファと、
グラフィックス処理ユニット（ＧＰＵ）と
を備える装置であって、前記ＧＰＵは、
少なくとも第１の画像サーフェスと第２の画像サーフェスとを受信することであって、前記第２の画像サーフェスが前記第１の画像サーフェスに少なくとも部分的に重なる、受信することと、
前記第１の画像サーフェス上でビニングパスを実行することと
を行うように構成され、
前記第１の画像サーフェスの前記ビニングパスの期間中に、前記ＧＰＵは、
前記第１の画像サーフェスを前記第１の画像サーフェスのサーフェスピクセルの複数のブロックへと分割することと、
前記第１の画像サーフェスについてのサーフェス識別子値を、前記第１の画像サーフェスのサーフェスピクセルの前記複数のブロックのうちのあるブロックに対応する前記低解像度バッファ内の前記複数のストレージロケーションのうちのストレージロケーション内に記憶することであって、前記低解像度バッファ内の前記複数のストレージロケーションの各々がまた、ディスプレイ上のピクセルのブロックに対応する、記憶することと
を行うようにさらに構成される、装置。
［Ｃ１３］
前記ＧＰＵは、
前記第１の画像サーフェスについての前記サーフェス識別子値を、前記第１の画像サーフェスのサーフェスピクセルの前記複数のブロックの各々にそれぞれ対応する前記低解像度バッファ内の前記複数のストレージロケーションの各々に記憶する
ようにさらに構成される、上記Ｃ１２に記載の装置。
［Ｃ１４］
レイヤを含むタイルメモリ
をさらに備え、
前記ＧＰＵは、前記ディスプレイを複数のタイルへと分割し、
前記ＧＰＵは、前記第１の画像サーフェス上で前記ビニングパスを実行するために、前記第１の画像サーフェスがどのタイルに属するかを決定し、前記第１の画像サーフェスの前記サーフェス識別子値を、前記第１の画像サーフェスに対応する前記タイルメモリの前記レイヤのストレージロケーションに記憶する、上記Ｃ１２に記載の装置。
［Ｃ１５］
前記ＧＰＵは、
前記第２の画像サーフェス上でビニングパスを実行することと、
前記第２の画像サーフェスの前記ビニングパスの期間中に、
前記第２の画像サーフェスを前記第２の画像サーフェスのサーフェスピクセルの複数のブロックへと分割することと、
前記第２の画像サーフェスのサーフェスピクセルの前記複数のブロックのうちのあるブロックが前記第１の画像サーフェスのピクセルの前記ブロックと完全に同じ場所に位置するとき、前記第２の画像サーフェスについてのサーフェス識別子値を、前記第２の画像サーフェスのサーフェスピクセルの前記複数のブロックのうちの前記ブロックに対応する前記低解像度バッファ内の前記複数のストレージロケーションのうちのストレージロケーション内に記憶することと
を行うようにさらに構成される、上記Ｃ１２に記載の装置。
［Ｃ１６］
前記ＧＰＵは、
前記第２の画像サーフェス上でビニングパスを実行することと、
前記第２の画像サーフェスの前記ビニングパスの期間中に、
前記第２の画像サーフェスを前記第２の画像サーフェスのサーフェスピクセルの複数のブロックへと分割することと、
前記第２の画像サーフェスのサーフェスピクセルの前記複数のブロックのうちのあるブロックが、前記第１の画像サーフェスのピクセルの前記複数のブロックのいずれとも同じ場所に位置しないとき、前記第２の画像サーフェスについてのサーフェス識別子値を、前記第２の画像サーフェスのサーフェスピクセルの前記複数のブロックのうちの前記ブロックに対応する前記低解像度バッファ内の前記複数のストレージロケーションのうちのストレージロケーション内に記憶することと
を行うようにさらに構成される、上記Ｃ１２に記載の装置。
［Ｃ１７］
前記ＧＰＵは、
前記第２の画像サーフェス上でビニングパスを実行することと、
前記第２の画像サーフェスの前記ビニングパスの期間中に、
前記第２の画像サーフェスを前記第２の画像サーフェスのサーフェスピクセルの複数のブロックへと分割することと、
前記第２の画像サーフェスのサーフェスピクセルの前記複数のブロックのうちのあるブロックが、前記第１の画像サーフェスのピクセルの前記ブロックと部分的に同じ場所に位置するとき、前記第２の画像サーフェスについてのサーフェス識別子値を、前記第２の画像サーフェスのサーフェスピクセルの前記複数のブロックのうちの前記ブロックに対応する前記低解像度バッファ内の前記複数のストレージロケーションのうちのストレージロケーション内に記憶しないことと
を行うようにさらに構成される、上記Ｃ１２に記載の装置。
［Ｃ１８］
前記第１の画像サーフェスのサーフェスピクセルの前記複数のブロックの各々が、前記第１の画像サーフェスの２つ以上のサーフェスピクセルを含み、前記ディスプレイ上のピクセルの前記ブロックが、前記ディスプレイ上の２つ以上のピクセルを含む、上記Ｃ１２に記載の装置。
［Ｃ１９］
プロセッサをさらに備え、前記ＧＰＵが、前記プロセッサから少なくとも前記第１の画像サーフェスと前記第２の画像サーフェスとを受信する、上記Ｃ１２に記載の装置。
［Ｃ２０］
前記ＧＰＵが、前記第１の画像サーフェスについての前記サーフェス識別子値と前記第２の画像サーフェスについてのサーフェス識別子値とを割り当てるようにさらに構成され、前記ＧＰＵが、前記第１の画像サーフェスについての前記割り当てられたサーフェス識別子値を記憶する、上記Ｃ１２に記載の装置。
［Ｃ２１］
前記ＧＰＵが、複数の画像サーフェスを受信するようにさらに構成され、前記複数の画像サーフェスが前記第１の画像サーフェスと前記第２の画像サーフェスとを含み、前記複数の画像サーフェスの最後方画像サーフェスから開始し前記複数の画像サーフェスの最前方画像サーフェスまで継続して、サーフェス識別子値を前記複数の画像サーフェスの各々に割り当てるように構成される、上記Ｃ１２に記載の装置。
［Ｃ２２］
前記ＧＰＵが、
前記低解像度バッファに記憶された前記サーフェス識別子値に基づいて、前記第１の画像サーフェスのどの部分が前記第２の画像サーフェスによって重なられるかを決定することと、
前記決定に基づいて、前記第２の画像サーフェスによって重なられない前記第１の画像サーフェスの部分をレンダリングすることと、
前記決定に基づいて、前記第２の画像サーフェスによって重なられる前記第１の画像サーフェスの部分をレンダリングから除外することと
を行うようにさらに構成される、上記Ｃ１２に記載の装置。
［Ｃ２３］
前記装置が、ワイヤレスデバイスと、携帯電話と、携帯情報端末（ＰＤＡ）と、ビデオディスプレイを含むビデオゲームコンソールと、モバイルビデオ会議ユニットと、ラップトップコンピュータと、デスクトップコンピュータと、テレビジョンセットトップボックスと、タブレットコンピューティングデバイスと、電子ブックリーダーとのうちの少なくとも１つを備える、上記Ｃ１２に記載の装置。
［Ｃ２４］
グラフィックス処理ユニット（ＧＰＵ）に、
少なくとも第１の画像サーフェスと第２の画像サーフェスとを受信することであって、前記第２の画像サーフェスが前記第１の画像サーフェスに少なくとも部分的に重なる、受信することと、
前記第１の画像サーフェス上でビニングパスを実行することと、
前記第１の画像サーフェスの前記ビニングパスの期間中に、
前記第１の画像サーフェスを前記第１の画像サーフェスのサーフェスピクセルの複数のブロックへと分割することと、
前記第１の画像サーフェスについてのサーフェス識別子値を、前記第１の画像サーフェスのサーフェスピクセルの前記複数のブロックのうちのあるブロックに対応する低解像度バッファ内の複数のストレージロケーションのうちのストレージロケーション内に記憶することであって、前記低解像度バッファ内の前記複数のストレージロケーションの各々がまた、ディスプレイ上のピクセルのブロックに対応する、記憶することと
を行わせる命令を備える、非一時的コンピュータ可読記憶媒体。
［Ｃ２５］
前記第１の画像サーフェスについての前記サーフェス識別子値を、前記第１の画像サーフェスのサーフェスピクセルの前記複数のブロックの各々にそれぞれ対応する前記低解像度バッファ内の前記複数のストレージロケーションの各々に記憶すること
のための命令をさらに備える、上記Ｃ２４に記載の非一時的コンピュータ可読記憶媒体。
［Ｃ２６］
前記ディスプレイを複数のタイルへと分割すること
のための命令をさらに備え、
前記ビニングパスを実行することのための前記命令は、
前記第１の画像サーフェスがどのタイルに属するかを決定することと、
前記第１の画像サーフェスの前記サーフェス識別子値を、前記第１の画像サーフェスに対応するタイルメモリのレイヤのストレージロケーションに記憶することと
のための命令を含む、上記Ｃ２４に記載の非一時的コンピュータ可読記憶媒体。
［Ｃ２７］
前記第２の画像サーフェス上でビニングパスを実行することと、
前記第２の画像サーフェスの前記ビニングパスの期間中に、
前記第２の画像サーフェスを前記第２の画像サーフェスのサーフェスピクセルの複数のブロックへと分割することと、
前記第２の画像サーフェスのサーフェスピクセルの前記複数のブロックのうちのあるブロックが前記第１の画像サーフェスのピクセルの前記ブロックと完全に同じ場所に位置するとき、前記第２の画像サーフェスについてのサーフェス識別子値を、前記第２の画像サーフェスのサーフェスピクセルの前記複数のブロックのうちの前記ブロックに対応する前記低解像度バッファ内の前記複数のストレージロケーションのうちのストレージロケーション内に記憶することと
のための命令をさらに備える、上記Ｃ２４に記載の非一時的コンピュータ可読記憶媒体。
［Ｃ２８］
前記第２の画像サーフェス上でビニングパスを実行することと、
前記第２の画像サーフェスの前記ビニングパスの期間中に、
前記第２の画像サーフェスを前記第２の画像サーフェスのサーフェスピクセルの複数のブロックへと分割することと、
前記第２の画像サーフェスのサーフェスピクセルの前記複数のブロックのうちのあるブロックが、前記第１の画像サーフェスのピクセルの前記複数のブロックのいずれとも同じ場所に位置しないとき、前記第２の画像サーフェスについてのサーフェス識別子値を、前記第２の画像サーフェスのサーフェスピクセルの前記複数のブロックのうちの前記ブロックに対応する前記低解像度バッファ内の前記複数のストレージロケーションのうちのストレージロケーション内に記憶することと
のための命令をさらに備える、上記Ｃ２４に記載の非一時的コンピュータ可読記憶媒体。
［Ｃ２９］
前記第２の画像サーフェス上でビニングパスを実行することと、
前記第２の画像サーフェスの前記ビニングパスの期間中に、
前記第２の画像サーフェスを前記第２の画像サーフェスのサーフェスピクセルの複数のブロックへと分割することと、
前記第２の画像サーフェスのサーフェスピクセルの前記複数のブロックのうちのあるブロックが、前記第１の画像サーフェスのピクセルの前記ブロックと部分的に同じ場所に位置するとき、前記第２の画像サーフェスについてのサーフェス識別子値を、前記第２の画像サーフェスのサーフェスピクセルの前記複数のブロックのうちの前記ブロックに対応する前記低解像度バッファ内の前記複数のストレージロケーションのうちのストレージロケーション内に記憶しないことと
のための命令をさらに備える、上記Ｃ２４に記載の非一時的コンピュータ可読記憶媒体。
［Ｃ３０］
前記第１の画像サーフェスのサーフェスピクセルの前記複数のブロックの各々が、前記第１の画像サーフェスの２つ以上のサーフェスピクセルを含み、前記ディスプレイ上のピクセルの前記ブロックが、前記ディスプレイ上の２つ以上のピクセルを含む、上記Ｃ２４に記載の非一時的コンピュータ可読記憶媒体。
［Ｃ３１］
少なくとも前記第１の画像サーフェスと前記第２の画像サーフェスとを受信することのための前記命令が、プロセッサから少なくとも前記第１の画像サーフェスと前記第２の画像サーフェスとを受信することのための命令を含む、上記Ｃ２４に記載の非一時的コンピュータ可読記憶媒体。
［Ｃ３２］
前記第１の画像サーフェスについての前記サーフェス識別子値と前記第２の画像サーフェスについてのサーフェス識別子値とを割り当てることのための命令をさらに備え、前記第１の画像サーフェスについてのサーフェス識別子値を記憶することのための前記命令が、前記第１の画像サーフェスについての前記割り当てられたサーフェス識別子値を記憶することのための命令を含む、上記Ｃ２４に記載の非一時的コンピュータ可読記憶媒体。
［Ｃ３３］
複数の画像サーフェスを受信することであって、前記複数の画像サーフェスが前記第１の画像サーフェスと前記第２の画像サーフェスとを含む、受信することと、
前記複数の画像サーフェスの最後方画像サーフェスから開始し前記複数の画像サーフェスの最前方画像サーフェスまで継続して、サーフェス識別子値を前記複数の画像サーフェスの各々に割り当てることと
のための命令をさらに備える、上記Ｃ２４に記載の非一時的コンピュータ可読記憶媒体。
［Ｃ３４］
前記低解像度バッファに記憶された前記サーフェス識別子値に基づいて、前記第１の画像サーフェスのどの部分が前記第２の画像サーフェスによって重なられるかを決定することと、
前記決定に基づいて、前記第２の画像サーフェスによって重なられない前記第１の画像サーフェスの部分をレンダリングすることと、
前記決定に基づいて、前記第２の画像サーフェスによって重なられる前記第１の画像サーフェスの部分をレンダリングから除外することと
のための命令をさらに備える、上記Ｃ２４に記載の非一時的コンピュータ可読記憶媒体。
［Ｃ３５］
複数のストレージロケーションを含む低解像度バッファと、
グラフィックス処理ユニット（ＧＰＵ）と
を備える装置であって、前記ＧＰＵは、
少なくとも第１の画像サーフェスと第２の画像サーフェスとを受信するための手段であって、前記第２の画像サーフェスが前記第１の画像サーフェスに少なくとも部分的に重なる、受信するための手段と、
前記第１の画像サーフェス上でビニングパスを実行するための手段と、
前記第１の画像サーフェスの前記ビニングパスの期間中に、
前記第１の画像サーフェスを前記第１の画像サーフェスのサーフェスピクセルの複数のブロックへと分割するための手段と、
前記第１の画像サーフェスについてのサーフェス識別子値を、前記第１の画像サーフェスのサーフェスピクセルの前記複数のブロックのうちのあるブロックに対応する前記低解像度バッファ内の前記複数のストレージロケーションのうちのストレージロケーション内に記憶するための手段であって、前記低解像度バッファ内の前記複数のストレージロケーションの各々がまた、ディスプレイ上のピクセルのブロックに対応する、記憶するための手段と
を備える、装置。
［Ｃ３６］
前記ＧＰＵが、
前記第１の画像サーフェスについての前記サーフェス識別子値を、前記第１の画像サーフェスのサーフェスピクセルの前記複数のブロックの各々にそれぞれ対応する前記低解像度バッファ内の前記複数のストレージロケーションの各々に記憶するための手段
をさらに備える、上記Ｃ３５に記載の装置。
［Ｃ３７］
前記ディスプレイを複数のタイルへと分割するための手段
をさらに備え、
前記ビニングパスを実行するための前記手段が、
前記第１の画像サーフェスがどのタイルに属するかを決定するための手段と、
前記第１の画像サーフェスの前記サーフェス識別子値を、前記第１の画像サーフェスに対応するタイルメモリのレイヤのストレージロケーションに記憶するための手段と
を含む、上記Ｃ３５に記載の装置。
［Ｃ３８］
前記ＧＰＵは、
前記第２の画像サーフェス上でビニングパスを実行するための手段と、
前記第２の画像サーフェスの前記ビニングパスの期間中に、
前記第２の画像サーフェスを前記第２の画像サーフェスのサーフェスピクセルの複数のブロックへと分割するための手段と、
前記第２の画像サーフェスのサーフェスピクセルの前記複数のブロックのうちのあるブロックが前記第１の画像サーフェスのピクセルの前記ブロックと完全に同じ場所に位置するとき、前記第２の画像サーフェスについてのサーフェス識別子値を、前記第２の画像サーフェスのサーフェスピクセルの前記複数のブロックのうちの前記ブロックに対応する前記低解像度バッファ内の前記複数のストレージロケーションのうちのストレージロケーション内に記憶するための手段と
をさらに備える、上記Ｃ３５に記載の装置。
［Ｃ３９］
前記ＧＰＵは、
前記第２の画像サーフェス上でビニングパスを実行するための手段と、
前記第２の画像サーフェスの前記ビニングパスの期間中に、
前記第２の画像サーフェスを前記第２の画像サーフェスのサーフェスピクセルの複数のブロックへと分割するための手段と、
前記第２の画像サーフェスのサーフェスピクセルの前記複数のブロックのうちのあるブロックが、前記第１の画像サーフェスのピクセルの前記複数のブロックのいずれとも同じ場所に位置しないとき、前記第２の画像サーフェスについてのサーフェス識別子値を、前記第２の画像サーフェスのサーフェスピクセルの前記複数のブロックのうちの前記ブロックに対応する前記低解像度バッファ内の前記複数のストレージロケーションのうちのストレージロケーション内に記憶するための手段と
をさらに備える、上記Ｃ３５に記載の装置。
［Ｃ４０］
前記ＧＰＵは、
前記第２の画像サーフェス上でビニングパスを実行するための手段と、
前記第２の画像サーフェスの前記ビニングパスの期間中に、
前記第２の画像サーフェスを前記第２の画像サーフェスのサーフェスピクセルの複数のブロックへと分割するための手段と、
前記第２の画像サーフェスのサーフェスピクセルの前記複数のブロックのうちのあるブロックが、前記第１の画像サーフェスのピクセルの前記ブロックと部分的に同じ場所に位置するとき、前記第２の画像サーフェスについてのサーフェス識別子値を、前記第２の画像サーフェスのサーフェスピクセルの前記複数のブロックのうちの前記ブロックに対応する前記低解像度バッファ内の前記複数のストレージロケーションのうちのストレージロケーション内に記憶しないための手段と
さらに備える、上記Ｃ３５に記載の装置。
［Ｃ４１］
前記第１の画像サーフェスのサーフェスピクセルの前記複数のブロックの各々が、前記第１の画像サーフェスの２つ以上のサーフェスピクセルを含み、前記ディスプレイ上のピクセルの前記ブロックが、前記ディスプレイ上の２つ以上のピクセルを含む、上記Ｃ３５に記載の装置。
［Ｃ４２］
少なくとも前記第１の画像サーフェスと前記第２の画像サーフェスとを受信するための前記手段が、プロセッサから少なくとも前記第１の画像サーフェスと前記第２の画像サーフェスとを受信するための手段を含む、上記Ｃ３５に記載の装置。
［Ｃ４３］
前記第１の画像サーフェスについての前記サーフェス識別子値と前記第２の画像サーフェスについてのサーフェス識別子値とを割り当てるための手段をさらに備え、前記第１の画像サーフェスについてのサーフェス識別子値を記憶するための前記手段が、前記第１の画像サーフェスについての前記割り当てられたサーフェス識別子値を記憶するための手段を含む、上記Ｃ３５に記載の装置。
［Ｃ４４］
前記ＧＰＵは、
複数の画像サーフェスを受信するための手段であって、前記複数の画像サーフェスが前記第１の画像サーフェスと前記第２の画像サーフェスとを含む、受信するための手段と、
前記複数の画像サーフェスの最後方画像サーフェスから開始し前記複数の画像サーフェスの最前方画像サーフェスまで継続して、サーフェス識別子値を前記複数の画像サーフェスの各々に割り当てるための手段と
をさらに備える、上記Ｃ３５に記載の装置。
［Ｃ４５］
前記ＧＰＵは、
前記低解像度バッファに記憶された前記サーフェス識別子値に基づいて、前記第１の画像サーフェスのどの部分が前記第２の画像サーフェスによって重なられるかを決定するための手段と、
前記決定に基づいて、前記第２の画像サーフェスによって重なられない前記第１の画像サーフェスの部分をレンダリングするための手段と、
前記決定に基づいて、前記第２の画像サーフェスによって重なられる前記第１の画像サーフェスの部分をレンダリングから除外するための手段と
をさらに備える、上記Ｃ３５に記載の装置。
［Ｃ４６］
前記装置が、ワイヤレスデバイスと、携帯電話と、携帯情報端末（ＰＤＡ）と、ビデオディスプレイを含むビデオゲームコンソールと、モバイルビデオ会議ユニットと、ラップトップコンピュータと、デスクトップコンピュータと、テレビジョンセットトップボックスと、タブレットコンピューティングデバイスと、電子ブックリーダーとのうちの少なくとも１つを備える、上記Ｃ３５に記載の装置。
【図１】
0005788589.tif 000002
【図２Ａ】
0005788589.tif 000003
【図２Ｂ】
0005788589.tif 000004
【図２Ｃ】
0005788589.tif 000005
【図２Ｄ】
0005788589.tif 000006
【図２Ｅ】
0005788589.tif 000007
【図３】
0005788589.tif 000008