国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      在幀緩沖器中形成開窗顯示的制作方法

      文檔序號:6339066閱讀:400來源:國知局
      專利名稱:在幀緩沖器中形成開窗顯示的制作方法
      技術領域
      本發(fā)明涉及數據處理系統(tǒng)領域。更特別地,本發(fā)明涉及數據處理系統(tǒng)內的幀緩沖 存儲器中的開窗顯示的形成。
      背景技術
      公知的是某些數據處理系統(tǒng)使用開窗顯示。開窗顯示被諸如運行由微軟公司制 造的Windows XP操作系統(tǒng)和諸如Linux的操作系統(tǒng)的X Windows系統(tǒng)組件的那些系統(tǒng)利 用。在此類系統(tǒng)內,由應用程序或負責保持顯示的背景、從而在幀緩沖存儲器內形成像素值 的程序來生成繪圖命令,所述像素值在被驅動時將在產生的期望開窗顯示中顯示結果。此 類開窗顯示通常包括在背景上的多個可能重疊的窗口??梢愿淖兇翱诘娘@示順序,并且可 以在用戶輸入的控制下在尺寸和位置方面修改窗口。當進行此類修改時,窗口管理程序通 常向應用程序或背景繪圖程序發(fā)出開窗控制命令,使得這些隨后又向圖形系統(tǒng)發(fā)出繪圖命 令,以便向幀緩沖存儲器中進行要求的新像素值的寫入以進行開窗顯示。附圖的圖1和2舉例說明此類系統(tǒng)。圖1舉例說明具有在其上面形成第一窗口 4 和第二窗口 6的背景圖像2的開窗顯示。第二窗口 6在顯示順序方面高于第一窗口 4,因此 當第二窗口 6覆蓋第一窗口 4的一部分時,則第一窗口 4的該部分被隱藏。諸如用計算機 鼠標進行的用戶輸入可以將第二窗口 6移動至如所示的開窗顯示內的不同位置,并且這導 致先前被第二窗口 6覆蓋的那部分第一窗口 4變得暴露,而先前被顯示的第一窗口 4的其 它不同部分現在被第二窗口 6隱藏。圖2示意性地舉例說明對用戶輸入進行響應已生成開窗控制命令的窗口管理器 8,所述開窗控制命令分別被傳遞至負責第二窗口 6的第一應用程序12、負責第一窗口 4的 第二應用程序14和負責繪制背景圖像2的背景繪圖程序16。所述開窗控制命令可以例如 指定窗口管理器8命令第一應用程序12、第二應用程序14或背景繪圖程序16使用其相關 圖形內容進行繪圖的屏幕的區(qū)域。然后,第一應用程序12、第二應用程序14和背景繪圖程 序16生成被傳遞至圖形系統(tǒng)的繪圖命令。這些繪圖命令導致由圖形系統(tǒng)在幀存儲器內的 相關部分處生成必要的像素值。因此,如果第二窗口 6被移動,使得第一窗口 4現在是完全 可見的,則第一窗口 4的右上方角將要求由第二應用程序14進行繪制。由窗口管理器8生 成的開窗控制命令發(fā)布開窗控制命令,該開窗控制命令指示第二應用程序14現在生成用 于第一窗口 4的右上方角的像素數據。第二應用程序14對此開窗控制命令進行響應以向 圖形系統(tǒng)發(fā)布繪圖命令以生成用于其窗口 4的現在暴露的右上方角的像素值。相對于圖1和2舉例說明和討論的系統(tǒng)和機制是基于這樣的假設,即當向圖形系 統(tǒng)發(fā)布繪圖命令時,其基本上被立即遵照執(zhí)行并寫入存儲用于被顯示的當前圖像的像素值 的幀緩沖存儲器。圖形系統(tǒng)被假設為可以在沒有延遲的情況下訪問幀緩沖存儲器,并且在 繪圖命令被圖形系統(tǒng)接收到時響應于該繪圖命令來讀和寫像素值。顯示通常采用的此類布 置利用單緩沖幀緩沖存儲器和立即模式的圖形渲染(rendering)。正在變得普遍的另一種形式的圖形系統(tǒng)利用基于圖塊(tile)的圖形渲染。此類系統(tǒng)非常適合于低成本且低功率的實施方式,因為其一般以存儲器被訪問的方式更加高效。 特別地,基于圖塊的系統(tǒng)通常使用延遲渲染并在雙緩沖模式下操作。在此類系統(tǒng)中,接收繪 圖命令并對其進行分析以識別總幀內的哪些圖塊包含將被那些繪圖命令改變的像素值。為 此,幀被劃分成多個圖塊。因此,繪圖命令被“分倉(binned)”到繪圖命令的圖塊列表中,每 個圖塊列表包含用于將形成的圖像數據的新的幀的所有繪圖命令,其改變相關圖塊內的像 素值。當已經生成用于新的幀的所有繪圖命令并將其分倉到多個圖塊列表中時,然后單獨 地處理圖塊列表以生成用于被存儲在圖塊存儲器內的那些圖塊的像素值。當圖塊的處理完 成時,圖塊存儲器的內容被寫出到幀緩沖存儲器。當已經處理了所有圖塊且相關圖塊的內容被存儲器寫出到幀緩沖器時,然后新的 幀數據完成,并且可以通過在雙緩沖布置中交換活動幀緩沖器來顯示。此類基于雙緩沖圖 塊的渲染系統(tǒng)不適合于支持開窗顯示。更特別地,在開窗顯示中,當用戶輸入要求修改在基于圖塊的系統(tǒng)內顯示的像素 值時,通常將要求首先從像素值的當前幀讀取每個圖塊的內容,修改像素值的每個圖塊,并 隨后將像素值的每個圖塊寫回到幀緩沖器。每個圖塊的所有像素值的此讀和寫要求不利地 高數目的存儲器訪問,這降低速度并增加能量消耗。

      發(fā)明內容
      從一方面看,本發(fā)明提供一種形成開窗顯示的方法,所述方法包括步驟 處理向幀緩沖存儲器的圖塊寫入的一個或多個繪圖命令以形成將被寫入所述圖塊的
      一個或多個新像素值;
      將所述一個或多個新像素值存儲在圖塊存儲器內;
      形成臟(dirty)像素數據,其指示所述圖塊存儲器內的哪些像素是存儲所述一個或多 個新像素值的臟像素和所述圖塊存儲器中的哪些像素是不存儲所述一個或多個新像素值 的干凈像素;以及
      根據所述臟像素數據,將存儲在所述圖塊存儲器的所述臟像素內的所述一個或多個新 像素值寫入所述幀緩沖存儲器的相應位置,存儲在所述幀緩沖存儲器內的與所述圖塊存儲 器內的干凈像素相對應的像素值被保持不變。本技術認識到在幀緩沖存儲器中的開窗顯示中,如果當處理向幀緩沖存儲器內的 圖塊進行寫入的繪圖命令時,系統(tǒng)還生成指示圖塊內的哪些像素已被改變并存儲新像素值 的臟像素數據,則可以使用此臟像素數據來控制新像素值對幀緩沖存儲器的寫入,而不必 首先從幀緩沖存儲器讀出像素值的現有圖塊。臟像素數據指示用與被保持不變的圖塊內的 干凈像素相對應的幀緩沖存儲器內的現有像素數據向幀緩沖存儲器內的要求像素位置進 行寫入,因為未對這些干凈像素位置進行寫入。這樣,更快且更高效地實現開窗顯示的支 持。系統(tǒng)仍使用圖塊存儲器,新的像素值在被寫入幀緩沖存儲器之前被寫入該圖塊存儲器 中,并且臟像素數據的動作用于指示從圖塊存儲器進行的寫入,使得只有新像素值被寫入 幀緩沖存儲器,因此,以適當的方式保持真緩沖存儲器內的不變像素值。 應認識到此類系統(tǒng)內的圖塊可以具有多種不同的尺寸。在一種極端情況下,圖塊 可以與幀緩沖器一樣大小,并且圖塊存儲器能夠存儲用于幀緩沖存儲器的一整套數據。在 另一極端情況下,圖塊的尺寸可以是單個像素。然而,通常,圖塊是一起對應于幀緩沖存儲器中的開窗顯示的多個圖塊中的一個。圖塊尺寸的典型值可以是16X16個像素,雖然將認 識到可以選擇不同的圖塊尺寸,并且本技術適用于所有這些圖塊尺寸。 可以對多個圖塊中的每一個單獨地執(zhí)行處理、存儲、形成和寫入的步驟以形成幀 緩沖存儲器中的開窗顯示的全幀。該處理的基于圖塊的性質通過使用并行硬件來執(zhí)行處 理、存儲、形成和寫入的步驟而非常適合于加速??梢源鎯λ傻睦L圖命令而不立即在保持一個或多個延遲繪圖命令的命令倉 庫內遵照執(zhí)行。然后,可以關于所述多個圖塊中的每一個讀取此命令倉庫內的延遲繪圖命 令,從而提取向當前正在被處理的圖塊進行寫入的一個或多個延遲繪圖命令。所述一個或多個繪圖命令的存儲可以包括通過識別哪些繪圖命令向所述多個圖 塊中的哪些進行寫入并為所述多個圖塊中的每一個形成單獨的分倉倉庫進行的繪圖命令 的分倉,向所述圖塊進行寫入的延遲命令被存儲到所述單獨的分倉倉庫中。通過在繪圖命 令正在被延遲時以這種方式有效地將其分類,形成用于每個圖塊的分倉倉庫,然后,當遇到 繪制圖塊的觸發(fā)事件時,可以從用于該圖塊的相應分倉倉庫直接讀取用于每個圖塊的延遲 繪圖命令并將其渲染(可能用高度并行的硬件)。應認識到臟數據可以采取多種不同的形式,并且在一般意義上可以是用于識別圖 塊內的哪些像素已被改變和圖塊內的哪些像素未被改變的任何數據結構。然而,存儲并操 控臟數據的硬件有效方式是使用位字段,該位字段的每個位與圖塊內的像素相對應并具有 位值,所述位值指示像素之一是臟像素和像素是干凈像素。在這種意義上,以類似的方式使 用臟和干凈,因為這些術語在高速緩沖存儲器的領域內用來指示已被改變(臟)的值和未被 改變(干凈)的值。臟像素數據可以方便地形成用來控制哪些像素值被從圖塊存儲器拷貝到幀緩沖 器的寫掩碼。此類寫掩碼非常適合于控制用于生成要求寫入的專用硬件,所述要求寫入將 新的像素值從存儲器拷貝到幀緩沖存儲器。本技術可以方便地在其中窗口管理器生成被發(fā)布到一個或多個應用程序(具有相 應窗口)和用于繪制顯示的任何背景區(qū)域的背景繪制程序的開窗控制命令的系統(tǒng)中使用。 然后,該應用程序和背景繪制程序對開窗控制命令進行響應以生成如上文所述地被逐個圖 塊地處理的繪圖命令??梢杂苫趫D塊的圖形處理單元來執(zhí)行處理、存儲、形成和寫入的步驟。此類專用 軟件非常適合于利用本技術。然而,應認識到可以由在適當軟件控制下操作的通用處理器 來執(zhí)行本技術。此外,可以將專用圖形處理硬件和在軟件控制下操作的通用處理器的組合 與任務被執(zhí)行的劃分一起使用,由此,此類實施例的一部分按要求根據相關系統(tǒng)的優(yōu)先級 而變,例如功率/效率對比靈活性。雖然本技術在使用合成方案的系統(tǒng)中有用,但其非常適合于其中開窗顯示是非合 成開窗顯示的系統(tǒng)。非合成開窗顯示通常要求硬件具有用于隨著用戶移動窗口并改變開窗 顯示而處理必要的繪圖的機制。從另一方面看,本發(fā)明提供了一種用于形成開窗顯示的裝置,所述裝置包括
      處理電路,其對向幀緩沖存儲器的圖塊寫入的一個或多個繪圖命令進行響應以形成將 被寫入所述圖塊的一個或多個新像素值;
      圖塊存儲器,其被配置為存儲所述一個或多個新像素值;臟像素數據形成電路,其被配置為形成臟像素數據,該臟像素數據指示所述圖塊存儲 器內的哪些像素是存儲所述一個或多個新像素值的臟像素和所述圖塊存儲器中的哪些像 素是不存儲所述一個或多個新像素值的干凈像素;以及
      寫生成電路,其對所述臟像素數據進行響應以將存儲在所述圖塊存儲器的所述臟像素 內的所述一個或多個新像素值寫入所述幀緩沖存儲器的相應位置,存儲在所述幀緩沖存儲 器內的與所述圖塊存儲器內的干凈像素相對應的像素值被保持不變。 從另一方面看,本發(fā)明提供了一種用于形成開窗顯示的裝置,所述裝置包括
      處理裝置,其對向幀緩沖存儲器的圖塊寫入的一個或多個繪圖命令進行響應以便形成 將被寫入所述圖塊的一個或多個新像素值;
      圖塊存儲器裝置,其用于存儲所述一個或多個新像素值;
      臟像素數據形成裝置,其用于形成臟像素數據,該臟像素數據指示所述圖塊存儲器內 的哪些像素是存儲所述一個或多個新像素值的臟像素和所述圖塊存儲器中的哪些像素是 不存儲所述一個或多個新像素值的干凈像素;以及
      寫生成裝置,其對所述臟像素數據進行響應以便將存儲在所述圖塊存儲器的所述臟像 素內的所述一個或多個新像素值寫入所述幀緩沖存儲器的相應位置,存儲在所述幀緩沖存 儲器內的與所述圖塊存儲器內的干凈像素相對應的像素值被保持不變。從另一方面看,本發(fā)明提供了一種計算機程序存儲介質,其存儲用于控制用于通 過執(zhí)行包括以下步驟的方法來處理數據以形成開窗顯示的裝置的計算機程序
      處理向幀緩沖存儲器的圖塊寫入的一個或多個繪圖命令以形成將被寫入所述圖塊的 一個或多個新像素值;
      將所述一個或多個新像素值存儲在圖塊存儲器內;
      形成臟像素數據,其指示所述圖塊存儲器內的哪些像素是存儲所述一個或多個新像素 值的臟像素和所述圖塊存儲器中的哪些像素是不存儲所述一個或多個新像素值的干凈像 素;以及
      根據所述臟像素數據,將存儲在所述圖塊存儲器的所述臟像素內的所述一個或多個新 像素值寫入所述幀緩沖存儲器的相應位置,存儲在所述幀緩沖存儲器內的與所述圖塊存儲 器內的干凈像素相對應的像素值被保持不變。通過應結合附圖來閱讀的說明性實施例的以下詳細說明,將清楚本發(fā)明的以上及 其它目的、特征和優(yōu)點。


      圖1示意性地舉例說明開窗顯示;
      圖2示意性地舉例說明用于生成開窗控制命令的窗口管理器程序與用于向圖形系統(tǒng) 生成繪圖命令的背景繪圖程序之間的關系;
      圖3舉例說明如何可以將開窗顯示內的幀分成用于用臟像素數據的相關形成來渲染 的圖塊;
      圖4示意性地舉例說明用于使用基于圖塊的渲染來執(zhí)行開窗顯示的生成的圖形處理 單元;
      圖5示意性地舉例說明圖形處理單元的光柵化部分;圖6示意性地舉例說明使用新像素值和臟像素數據來生成到幀存儲器的寫入;
      圖7是示意性地舉例說明控制到基于圖塊的窗口顯示系統(tǒng)內的幀存儲器的寫入時的 臟像素數據的形成和使用的流程圖;以及
      圖8示意性地舉例說明在開窗顯示系統(tǒng)內的幀緩沖存儲器與應用程序之間擴展的不 同功能層;以及
      圖9示意性地舉例說明本技術到合成開窗顯示系統(tǒng)的應用。
      具體實施例方式圖3示意性地舉例說明包括由應用程序繪制的窗口 20和形成幀的其余部分的背 景區(qū)域的開窗顯示的幀18。幀被分成八個圖塊22。應認識到在實踐中,可以將幀分成較大數目的圖塊。此外, 還可以在幀包括單個圖塊或每個圖塊僅包括一個像素時使用本技術。圖3的下部分舉例說明如何處理一個圖塊。此圖塊被示為具有16X16像素的大 小,雖然這僅僅是可能的圖塊尺寸的一個示例。由稍后將描述的分倉的過程來識別生成用 于該圖塊的新像素值的繪圖命令。當已識別了這些繪圖命令時,關于當前選擇的圖塊對其 進行處理并將所生成的新像素值寫入圖形處理單元內的圖塊存儲器。因此,圖塊由此經受 處理其繪圖命令的繪制操作和將相關的新像素值存儲到圖塊存儲器中的存儲操作。同時, 由于每個新像素值被寫入圖塊存儲器中,所以臟像素數據內的相應位被設置為指示相關的 像素位置包含新的像素值。用指示未被改變的所有干凈像素的位值對臟像素數據進行初始 化。因此,在已處理了用于相關圖塊的所有繪圖命令之后,臟像素數據將包含被設置為指示 已被寫入新像素值的所有位置處的臟像素的位值。如圖3所示,與幀內的窗口 20的左下方 角相對應的新像素值被寫入圖塊的右上方角中的像素位置,并且臟像素數據內的相應位置 被寫入以指示那些像素位置是臟的。在圖3中以二維的形式示出臟像素數據,并且將其示為256臟位字段。應認識到 在二維形式內的像素與256位字段之間存在一對一映射,并且臟像素數據的這些表示是等 效的。圖4示意性地舉例說明生成繪圖命令的應用程序24、用于使用基于圖塊的渲染來 處理那些繪圖命令的圖形處理單元26、存儲關于存儲器內的不同圖塊的分倉繪圖命令的圖 塊列表28和表示開窗顯示的新像素值被寫入其中的幀緩沖存儲器30(在不同的架構中,幀 緩沖器(30)也可以在GPU中,或在系統(tǒng)存儲器中)之間的關系。應認識到在圖4中舉例說 明的圖形處理器單元26周圍的虛線描繪圖形處理單元26內的元件。實際上,在其它實施 例中,可以由其它硬件組件或在軟件中提供這些元件中的某些或全部。例如,可以使用經適 當編程的通用計算機來執(zhí)行圖形處理單元26的所有任務,并且此類實施例將具有所執(zhí)行 的處理的靈活性和可見性方面的某些優(yōu)點。然而,在圖4中舉例說明的圖形處理單元26的 內容非常適合于快速且低功率的基于圖塊的圖形渲染。圖4的圖形處理單元26包含用于對接收到的繪圖命令執(zhí)行諸如平移、縮放、旋轉 等變換操作的變換單元32。分倉單元34接收經變換的繪圖命令并對其進行分倉,在分倉 中,識別哪些繪圖命令向多個圖塊22中的哪些中進行寫入,例如是將繪制點、線還是三角 形,然后該識別確定其是否至少部分地與給定圖塊22交叉。如果由該繪圖命令生成的新像素的至少一部分在給定圖塊內,則繪圖命令被“分倉”到該圖塊中并存儲在相應的關聯(lián)分倉 倉庫36內。每個分倉倉庫36對應于圖塊22并包含繪圖命令,在繪圖命令在被光柵化時將 促使新的像素值被寫入該圖塊內。應認識到此分倉可能不是精確的,并且可以采取謹慎的 方法,其中,如果不能絕對地確定哪些新像素值將被設置,但存在這些新像素值中的某些將 在圖塊內的任何可能,則可以將繪圖命令分倉到該圖塊。當繪圖命令實際上被光柵化(處理 /渲染)時,然后將進行新像素值及其位置的絕對確定。如果這些新像素值中沒有一個碰巧 在相關圖塊內,則某些處理努力將已被浪費,但是所產生的最終結果將是正確的。分倉倉庫36共同地形成存 儲將由光柵化單元38來處理的繪圖命令的命令倉庫。 如果需要,可以將分倉倉庫36存儲在通用存儲器中??梢杂|發(fā)光柵化單元38在其從變換單元32接收到幀結束(EOF)信號時開始處理 來自分倉倉庫36的繪圖命令,所述幀結束信號指示已接收到生成開窗顯示的新幀的所有 繪圖命令并將其放置在適當的分倉倉庫36中。實際上,圖形處理單元26將從多個不同的 應用程序和背景繪制程序接收繪圖命令。窗口管理器8通常將生成幀結束命令并將其直接 傳遞至圖形處理單元36。如圖4所示,并行地提供多個光柵化單元38。光柵化單元38適合于并行操作,因 為其每個具有包括當前正在被處理的分倉倉庫36的獨立輸入源且每個生成與用于其正在 處理的圖塊22的像素值相對應的獨立輸出數據。因此,光柵化操作合適地縮放至并行操 作。每個光柵化單元38包含圖塊存儲器40,新像素值隨著處理該圖塊的分倉倉庫36內的 繪圖命令而被寫入其中。同時,光柵化單元38形成指示圖塊存儲器40內的哪些像素包含 新像素值(即包含需要在幀緩沖存儲器30內更新的像素值)的臟像素數據。當已經處理了 分倉倉庫36內的繪圖命令時,然后,光柵化單元38根據臟像素數據形成寫命令序列以僅將 其位置處的新像素值寫入幀緩沖存儲器30中。臟像素數據指示那些像素是干凈像素(即未 被改變)的圖塊存儲器40內的像素未被寫入幀緩沖存儲器30,因此,在那些位置處的已被 存儲在幀緩沖存儲器內的像素保持不變。因此,臟像素數據充當用于生成從圖塊存儲器40 到幀緩沖存儲器30的寫事務的寫掩碼,使得這些寫被局限于已經由從用于相關圖塊22的 分倉倉庫36處理的繪圖命令更新的像素值。圖5更詳細地示意性地舉例說明光柵化單元38。光柵化引擎42從分倉倉庫36接 收分倉繪圖命令。光柵化引擎42還接收用于形成新像素值的紋理及其它數據。應認識到 此紋理及其它數據可以采取多種不同形式。其可以由專用于特定應用或使用的著色器程序 和/或著色器硬件為單獨圖塊自定義地生成的。結合繪圖命令用來生成新像素值的這種形 式的紋理數據及其它數據對于本領域的技術人員來說將是熟知的。光柵化引擎42生成其新像素值并將其存儲到圖塊存儲器40??梢詫D塊存儲器 40視為被光柵化單元38用于存儲已經生成的新像素值的一種本地高速暫存存儲器。每當 新像素值被光柵化引擎42寫入圖塊存儲器40時,設置臟像素數據內的相應位。此臟像素 數據被寫入臟位字段44內。當光柵化引擎42已處理了用于相關圖塊的分倉倉庫36內的所有繪圖命令時,其 向寫事務發(fā)生器46發(fā)布圖塊結束(eot)信號。寫事務發(fā)生器46對存儲在臟像素數據字段 44內的臟像素數據進行響應并將其用作寫事務掩碼以生成到幀緩沖存儲器30的寫序列, 其僅從圖塊存儲器40讀取新像素值并將其寫入幀緩沖存儲器30內的相應位置。指示相關數據是干凈的(未改變)的臟像素數據內的未被寫出到幀緩沖器30。 圖6示意性地舉例說明新像素值到幀緩沖存儲器30中的寫入。如所示,圖塊存儲 器40內的新像素值被寫事務發(fā)生器46在存儲在臟數據字段44中的臟像素數據內的臟像 素的控制下讀取,并被寫入幀緩沖存儲器30的相應部分。幀緩沖存儲器30已包含來自開 窗顯示的前一幀的現有像素值。未被已被針對圖塊進行處理以生成開窗顯示的當前幀的繪 圖命令改變的那些現有像素值在幀緩沖存儲器30內保持不變,并且只有新像素值被寫入 如所示的適當位置。圖7是示意性地舉例說明依照本技術的處理的流程圖。在步驟48處,選擇要繪制 的第一圖塊。步驟50從用于被處理的當前圖塊的分倉倉庫36讀取第一繪圖命令。步驟52 處理所讀取的繪圖命令并生成被存儲在光柵化單元38的圖塊存儲器40內的新像素值。然 后,步驟54通過將與由步驟52處的處理寫入的所有新像素值的位置相對應的位值設置為 指示包含臟像素數據的那些位置的值來形成用于在步驟52處處理的繪圖命令的臟像素數 據。步驟56確定用于當前圖塊的分倉倉庫36內的最后一個繪圖命令是否已被處理。 如果對于該圖塊而言仍有要處理的其它繪圖命令,則在步驟58處選擇其中的下一個,并且 處理返回到步驟52。如果用于當前被處理的圖塊的所有繪圖命令已在步驟52處被渲染/ 光柵化/處理,則處理前進至步驟58。步驟58讀取臟像素數據并形成存儲在存儲器40內 的新像素值到幀緩沖存儲器30的寫入。然后,步驟60確定開窗顯示的新幀內的最后一個 圖塊是否已被處理。如果存在要處理的其它圖塊,則在步驟62處選擇這些中的下一個,并 且處理返回到步驟50。如果所有圖塊已被處理,則圖7的操作終止。圖8示意性地舉例說明在形成開窗顯示時涉及的各種硬件和軟件元件。按照本領 域的技術人員所熟知的分級順序來舉例說明這些元件。在此分級結構的一端處,所述元件 是軟件。在此分級結構的另一端處,所述元件是硬件。硬件元件和軟件元件之間的精確劃 分對于不同的實施方式可以是不同的。例如,可以在硬件中提供或在軟件中提供圖8所示 的加速器元件??赡艿氖峭ㄓ锰幚砥鲌?zhí)行硬件可以執(zhí)行先前用局限于幀緩沖存儲器的硬件 元件描述的所有處理,開窗顯示的幀被寫入所述幀緩沖存儲器中。在其它實施例中,可以更 多地信賴硬件加速器和硬件元件,因為其通常執(zhí)行更快且更加能量高效的圖形處理。圖9示意性地舉例說明合成開窗顯示系統(tǒng)中的本技術的使用。在此系統(tǒng)中,第一 應用程序62發(fā)布如上文所述在使用臟像素數據的控制被寫入第一幀緩沖存儲器68中之前 經歷基于圖塊的處理的繪圖命令。第二應用程序64同樣地將其像素值寫入第二幀緩沖存 儲器70且背景繪圖程序66將其像素值寫入第三幀緩沖存儲器72。上文結合在每個圖塊被 處理時針對每個圖塊生成的臟像素數據的使用所討論的基于圖塊的處理技術幫助減少對 幀緩沖存儲器68、70和72的訪問操作的數目。這加快操作速度并減少功率消耗。應用程 序62、64和66中的每一個可以使用本技術來在產生隨后被合成的其各幀緩沖器68、70、72 時占有優(yōu)勢。單獨的應用程序62、64、66受益于臟數據在更高效地生成其各幀時的使用。第一、第二和第三幀緩沖存儲器68、70和72是系統(tǒng)的通用存儲器內的動態(tài)分配區(qū) 域。可以是硬件或軟件的合成機制74用于根據定義形成開窗顯示的窗口的當前尺寸、位 置、顯示排序等開窗數據將幀存儲器68、70和72內的像素數據組合。合成機制74生成用 于經由顯示驅動器78來驅動顯示器80的像素數據值并將其存儲在顯示幀緩沖存儲器76內。 雖然在本文中已參照附圖詳細地描述了本發(fā)明的說明性實施例,但應理解的是本 發(fā)明不限于那些精確的實施例,并且在不脫離隨附權利要求所定義的本發(fā)明的范圍和精神 的情況下 ,本領域的技術人員可以對其進行各種變更和修改。
      權利要求
      1.一種形成開窗顯示的方法,所述方法包括步驟處理向幀緩沖存儲器的圖塊寫入的一個或多個繪圖命令以形成將被寫入所述圖塊的 一個或多個新像素值;將所述一個或多個新像素值存儲在圖塊存儲器內;形成臟像素數據,其指示所述圖塊存儲器內的哪些像素是存儲所述一個或多個新像素 值的臟像素和所述圖塊存儲器中的哪些像素是不存儲所述一個或多個新像素值的干凈像 素;以及根據所述臟像素數據,將存儲在所述圖塊存儲器的所述臟像素內的所述一個或多個新 像素值寫入所述幀緩沖存儲器的相應位置,存儲在所述幀緩沖存儲器內的與所述圖塊存儲 器內的干凈像素相對應的像素值被保持不變。
      2.如權利要求1所述的方法,其中,所述圖塊是一起對應于所述幀緩沖存儲器中的所 述開窗顯示的多個圖塊中的一個。
      3.如權利要求2所述的方法,其中,對所述多個圖塊中的每一個單獨地執(zhí)行所述處理、 存儲、形成和寫入步驟以在所述幀緩沖存儲器中形成所述開窗顯示的全幀。
      4.如權利要求3所述的方法,還包括步驟生成一個或多個繪圖命令;以及存儲所述一個或多個繪圖命令以形成一個或多個延遲繪圖命令的命令倉庫;以及針對所述多個圖塊中的每一個,從所述命令倉庫讀取向當前被處理的圖塊進行寫入的 一個或多個延遲繪圖命令并處理向當前被渲染的所述圖塊進行寫入的所述一個或多個延 遲繪圖命令。
      5.如權利要求4所述的方法,其中,存儲所述一個或多個繪圖命令的所述步驟包括通 過識別所述一個或多個繪圖命令中的哪一個向所述多個圖塊中的哪一個進行寫入并形成 包括用于所述多個圖塊中的每一個的分倉倉庫的命令倉庫來將所述一個或多個繪圖命令 分倉,每個所述分倉倉庫存儲向所述多個圖塊中的相應圖塊進行寫入的一個或多個延遲命 令。
      6.如權利要求1所述的方法,其中,所述臟數據包括位字段,該位字段的每個位與所述 圖塊內的像素相對應并具有指示(i )所述像素是所述臟像素之一;以及(i i )所述像素是所 述干凈像素之一中的一個的位值。
      7.如權利要求1所述的方法,其中,所述臟數據形成用來控制哪些像素值被從所述圖 塊存儲器拷貝到所述幀緩沖存儲器的寫掩碼。
      8.如權利要求1所述的方法,還包括步驟用窗口管理器生成開窗控制命令;向與所述開窗顯示內的一個或多個窗口中的一些相對應的一個或多個應用程序和被 配置為繪制所述顯示的任何背景區(qū)域的背景繪制程序發(fā)布所述開窗控制命令;響應于所述開窗控制命令,用所述更多應用程序中的一個和所述背景繪制程序形成所 述更多繪圖命令中的一個。
      9.如權利要求1所述的方法,其中,由基于圖塊的圖形處理單元來執(zhí)行所述處理、存 儲、形成和寫入的步驟。
      10.如權利要求1所述的方法,其中,所述開窗顯示是非合成開窗顯示。
      11.一種用于在幀緩沖存儲器中形成開窗顯示的裝置,所述裝置包括處理電路,其對向所述幀緩沖存儲器的圖塊寫入的一個或多個繪圖命令進行響應以形 成將被寫入所述圖塊的一個或多個新像素值;圖塊存儲器,其被配置為存儲所述一個或多個新像素值;臟像素數據形成電路,其被配置為形成臟像素數據,該臟像素數據指示所述圖塊存儲 器內的哪些像素是存儲所述一個或多個新像素值的臟像素和所述圖塊存儲器中的哪些像 素是不存儲所述一個或多個新像素值的干凈像素;以及寫生成電路,其對所述臟像素數據進行響應以將存儲在所述圖塊存儲器的所述臟像素 內的所述一個或多個新像素值寫入所述幀緩沖存儲器的相應位置,存儲在所述幀緩沖存儲 器內的與所述圖塊存儲器內的干凈像素相對應的像素值被保持不變。
      12.一種用于形成開窗顯示的裝置,所述裝置包括處理裝置,其對向幀緩沖存儲器的圖塊寫入的一個或多個繪圖命令進行響應以便形成 將被寫入所述圖塊的一個或多個新像素值;圖塊存儲器裝置,其用于存儲所述一個或多個新像素值;臟像素數據形成裝置,其用于形成臟像素數據,該臟像素數據指示所述圖塊存儲器內 的哪些像素是存儲所述一個或多個新像素值的臟像素和所述圖塊存儲器中的哪些像素是 不存儲所述一個或多個新像素值的干凈像素;以及寫生成裝置,其對所述臟像素數據進行響應以便將存儲在所述圖塊存儲器的所述臟像 素內的所述一個或多個新像素值寫入所述幀緩沖存儲器的相應位置,存儲在所述幀緩沖存 儲器內的與所述圖塊存儲器內的干凈像素相對應的像素值被保持不變。
      13.一種計算機程序存儲介質,其存儲用于控制用于通過執(zhí)行包括以下步驟的方法來 處理數據以形成開窗顯示的裝置的計算機程序處理向幀緩沖存儲器的圖塊寫入的一個或多個繪圖命令以形成將被寫入所述圖塊的 一個或多個新像素值;將所述一個或多個新像素值存儲在圖塊存儲器內;形成臟像素數據,其指示所述圖塊存儲器內的哪些像素是存儲所述一個或多個新像素 值的臟像素和所述圖塊存儲器中的哪些像素是不存儲所述一個或多個新像素值的干凈像 素;以及根據所述臟像素數據,將存儲在所述圖塊存儲器的所述臟像素內的所述一個或多個新 像素值寫入所述幀緩沖存儲器的相應位置,存儲在所述幀緩沖存儲器內的與所述圖塊存儲 器內的干凈像素相對應的像素值被保持不變。
      全文摘要
      本發(fā)明涉及在幀緩沖器中形成開窗顯示。一種使用延遲繪圖命令的開窗顯示通過處理向幀緩沖器(30)的圖塊(22)進行寫入的繪圖命令以形成被存儲在圖塊存儲器(40)內的一個或多個新像素值而進行操作。還形成臟像素數據,其指示圖塊存儲器內的哪些像素是存儲新像素值的臟像素和圖塊存儲器中的哪些像素是不存儲新像素值的干凈像素。根據臟像素數據,存儲在圖塊存儲器內的新像素值被寫入幀緩沖存儲器。存儲在幀緩沖器存儲器內的與圖塊存儲器內的干凈像素相對應的像素保持不變,因為其未被寫入。
      文檔編號G06F9/44GK102103499SQ201010593960
      公開日2011年6月22日 申請日期2010年12月17日 優(yōu)先權日2009年12月17日
      發(fā)明者R. 什雷納 D., 索爾加德 E., V. 德弗羅 I., J. 奧爾森 T. 申請人:Arm有限公司
      網友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1