專利名稱:用于平板電腦和肖像顯示器的旋轉渲染和鎖定支持的制作方法
用于平板電腦和肖像顯示器的旋轉渲染和鎖定支持
背景技術:
一些平板顯示器和平板電腦顯示器可以在物理上進行旋轉,從而以風
景禾莫式(landscape mode)或肖像模式(portrait mode)顯示信息。典型的顯 示驅動器通過將數據渲染到"面向風景的"存儲器布局中,或者渲染到在 存儲器中分配的"繪制表面"上以使得在該繪制表面的每一行中的像素都 存儲在存儲器中同一頁面或行中,來實現風景模式。這個繪制表面允許顯 示引擎按行從存儲器讀取像素,同時僅在行之間進行切換時才會導致頁面 未命中。
因為在顯示器中風景模式是更傳統的,因此常規的顯示器硬件希望即 使是在顯示器在物理上是面向肖像模式的時候,也能夠接收采用符合面向 風景的繪制表面的像素行的順序而以數據流形式輸入給它的像素數據。因 此,如果驅動器通過渲染到"面向肖像的"繪制表面(其將像素放置在存 儲器的同一頁面上的每一行中)來實現肖像模式,則顯示引擎就會每個像 素都會導致頁面未命中,這是因為顯示器硬件仍希望從面向風景的繪制表 面以流形式傳送像素數據。
對肖像模式渲染的常見解決方案依賴于在存儲器中提供雙重繪制表 面, 一個面向肖像的表面用于驅動器進行渲染, 一個旋轉的面向風景的表 面由顯示引擎進行訪問;或者依賴于增強顯示引擎的線緩沖器。但產生雙 重繪制表面使顯示緩沖的存儲器需求加倍,并由于用于產生第二個旋轉表 面的復制操作而耗費了存儲器帶寬。可替換地,給顯示引擎路徑增加硬件 線緩沖器導致了較大的硬件實現成本。
包含在該說明書中并組成其一部分的附圖示出了符合本發明原理的一 個或多個實施方式,并且附圖與本發明的說明一起解釋這些實施方式。不 應將附圖看作是將本發明限制為在此所示的具體實施方式
,附圖也不必是
5按比例繪制的,也不應將附圖認為是窮舉性的,而是應該將重點放在圖示
出本發明的原理。在附圖中,
圖1是示出根據本發明一些實施方式的系統的框圖2是示出根據本發明一些實施方式的系統的框圖3-5是示出根據本發明一些實施方式的過程的流程圖;及
圖6是示出根據本發明一些實施方式的代表性繪制表面結構的框圖。
具體實施例方式
以下說明參考附圖。在不同附圖中,相同的參考數字標記用于標識相 同或相似的元件。盡管以下說明通過闡述具體細節,例如具體結構、架構、 接口、技術等,提供了所聲明的本發明的不同方面的全面理解,但此類細 節是為了解釋的目的而提供的,不應視為限制性的。而且,按照本公開內 容,本領域技術人員會意識到可以在脫離這些具體細節的其它實例或實施 方式中實現所聲明的本發明的各種方面。在以下的公開內容中的某些時機, 省略了對公知的裝置、電路和方法的說明,以避免由于不必要的細節而使 本發明的說明不清楚。
圖1示出了根據本發明一些實施方式的實例系統100。系統100包括一 個或多個處理器內核102,其耦合到圖形/存儲器控制器104,除了存儲器 106(例如,動態隨機存取存儲器(DRAM),靜態隨機存取存儲器(SRAM), 諸如閃速存儲器之類的非易失性存儲器)之外,顯示控制器108和顯示器 109以及輸入/輸出(I/O)控制器110都耦合到控制器104。系統100還包 括無線發射機電路和無線接收機電路112,其耦合到I/0控制器110,并且 天線114 (例如,偶極天線、窄帶曲折線天線(MLA)、寬帶MLA、倒"F" 型天線、平面倒"F"型天線、Goubau天線、貼片天線(Patch antenna)等) 耦合到電路112。
系統100可以是適于處理圖形數據并以適合進行顯示的形式提供該數 據的任何系統。而且,系統100可以采取多種物理實施方式。例如,系統 100可以在個人計算機(PC)、聯網的PC、服務器計算系統、手持計算平 臺(例如個人數字助理(PDA))、游戲系統(便攜式的或其它形式的)、3D 蜂窩電話機等中實現。而且,盡管可以在單個裝置中實現系統100的所有組件,例如芯片上系統(SOC)集成電路(IC),但系統100的組件也可以 分布在多個IC或裝置中。例如,可以部分地將處理器內核102、控制器 104/110、存儲器106、電路112和天線114實現為包含在單個計算平臺中 的多個IC,所述計算平臺要指定幾個示例則例如為個人計算機(PC)或機 頂盒(STB),而可以在分離的裝置中實現顯示控制器108,例如在耦合到 圖形/存儲器控制器104的顯示器109中實現。明確地,許多此類配置也可 以與在此所述的系統100的功能相符。
處理器內核102可以包括專用處理器內核或通用處理器內核,其包括 能夠為圖形/存儲器控制器104提供圖形數據和/或指令的任何控制和/或處 理邏輯、硬件、軟件和/或固件。在系統100上執行的軟件驅動器可以使用 處理器內核102來執行多種圖形計算或處理,例如渲染圖像數據等,其結 果可以提供給圖形/存儲器控制器104,和/或可以存儲在存儲器106中以便 由顯示控制器108的最終使用。
處理器內核102還能夠執行多個任務中的任何一個,這些任務支持用 于平板電腦和肖像顯示器的旋轉渲染和鎖定支持。例如,這些任務可以包 括將圖形或圖像數據提供給控制器104/108、將微代碼下載到控制器 104/108、初始化禾tV或配置在控制器104/108內的寄存器、中斷服務等,盡 管本發明在這點上并不受到限制。雖然可以將圖1理解為將處理器內核102 和控制器104/108顯示為不同的裝置,但是本發明在這點上并不受到限制, 本領域技術人員會認識到,可以在單一IC中實現處理器內核102、控制器 104/108中的一個或二者、以及系統100的其它可能組件。
圖形/存儲器控制器104可以包括能夠處理或控制圖形或圖像數據的操 作以及能夠控制該數據在存儲器106中的存儲的任何處理邏輯、硬件、軟 件和/或固件。在一個實施方式中,可以在芯片組IC中實現控制器104,盡 管本發明在這點上并不受到限制。控制器104可以處理由處理器內核102 所提供的、保存或存儲在存儲器106中的圖形或圖像數據,并可以將該數 據提供給顯示控制器108。
圖形處理器104還可以接收與存儲器106中的一個或多個物理繪制表 面相關的圖形或圖像數據,并可以將該數據以適合于由顯示控制器108訪 問的格式或布局存儲在存儲器106中。另外,根據本發明的一些實施方式,控制器104可以執行一個方案,該方案用于當已經采用以下會詳述的方式 將圖形或圖像數據渲染到肖像模式邏輯繪制表面上時,通過重定向該圖形 或圖像數據來將該數據放置在存儲器106中。
顯示控制器108可以包括能夠將由圖形/存儲器控制器104提供的圖形 或圖像數據轉換為適于驅動顯示器109的格式(即專用于顯示的數據)的 任何處理邏輯、硬件、軟件和/或固件。例如,盡管本發明在這點上并不受 到限制,控制器104可以從存儲器106獲取圖形或圖像數據,并將該數據 以特定顏色格式提供給控制器108,該特定顏色格式例如是壓縮的紅-綠-藍 (RGB)像素格式,并且控制器108可以例如通過產生相應的液晶顯示器 (LCD)驅動數據級等等來處理該RGB數據。盡管圖1將控制器104和108 顯示為不同的組件,但是本發明在這點上并不受到限制,本領域技術人員 會認識到,例如如果不是顯示控制器108的全部功能可以由控制器104來 執行,則顯示控制器108的一些功能可以由控制器104來執行,或者反之 亦然。顯示器109可以是能夠以風景模式或肖像模式顯示信息的任何類型 的顯示器。顯示器109要指定幾個示例則例如可以是LCD、或者場致發光 (EL)顯示器,其能夠以物理方式進行旋轉以便以風景模式或肖像模式顯 示圖形或圖像數據。
圖2示出了根據本發明的一些實施方式的系統200。系統200包括顯示 驅動器202,用于將圖像數據渲染到邏輯繪制表面203上。驅動器202可以 稱為用于渲染像素數據的邏輯。系統200還包括導引(steering)模塊204, 用于將圖像數據導引或寫入到物理繪制表面205上,物理繪制表面205包 括在存儲器206中的多個存儲單元。導引模塊204可以稱為用于映射像素 數據的邏輯。根據本發明的一些實施方式以及按照以下的詳細解釋,當驅 動器202將圖像數據寫入到邏輯表面203上或從邏輯表面203讀出圖像數 據(其中,以肖像模式在表面203中組織該數據)時,導引模塊204可以 將該圖像數據映射或導向或重新導向或以低級存儲器導引方式導引到物理 表面205上,從而使得保存在表面205中的數據適于由顯示引擎訪問,顯 示引擎將會以風景模式來組織由表面205所保存的圖像數據。在一些實施 方式中,導引模塊204可以包括進行低級存儲器導引的芯片組頁面表,盡 管本發明在這點上并不受到限制。
8如本領域技術人員會認識到的,盡管本發明在這點上并不受到限制,
驅動器202可以包括一個或多個軟件算法,這些軟件算法可以在一個或多 個處理器內核上執行,例如圖1的一個或多個處理器內核102。另外,盡管 本發明在這點上并不受到限制,可以在與一個或多個處理器內核102或控 制器104相關的硬件寄存器中實現邏輯表面203。此外,系統200的多個部 分可以與圖1的系統100的多個部分相似。例如,存儲器206可以是存儲 器106。而且,本領域技術人員會認識到,物理表面205可以包括顯示緩沖 器,該顯示緩沖器包括存儲器206的存儲單元或地址的一個或多個連續塊。
圖3-5是示出用于根據本發明的一些實施方式實現平板電腦和肖像顯 示器的旋轉渲染和鎖定支持的各個處理過程300-500的流程圖。盡管為了易 于解釋,可以針對圖1的系統100和/或圖2的系統200來說明處理過程 300-500,但本發明在這點上并不受到限制,根據所聲明的本發明,由適當 裝置支持的其它處理器或方案也是可能的。
參考圖3,處理過程300可以開始于產生用于渲染的圖像數據[動作 302]。在一些實施方式中,在系統100/200上執行的顯示驅動器202可以以 包括像素的行和列的像素數據形式產生圖像數據。例如,盡管本發明在這 點上并不受到限制,動作302可以包括與驅動器202相關的軟件應用程序, 其進行3D圖形操作,例如像素著色(shading),以產生包括多個像素的圖 像。
處理過程300隨后可以繼續進行到確定是否以肖像模式渲染圖像數據 [動作304]。完成它的一個方式是使在動作302中產生圖像數據的驅動器進 行動作304的確定,例如基于終端用戶指定的顯示模式進行該確定。如果 動作304的結果是否定的,就是說,如果要以風景模式渲染圖像數據,而 不是以肖像模式,那么處理過程300就可以繼續進行到將圖像數據渲染到 風景模式邏輯表面上[動作306]。進行動作306的一個方式是使驅動器202 將像素數據(即像素)渲染到邏輯表面203上,其中以風景模式、定向或 方位在表面203中組織該像素數據。以下會更詳細地解釋在風景模式邏輯 表面與肖像模式邏輯表面之間的不同。
處理過程300隨后進行到將圖像數據寫入到物理表面上[動作308]。在 一些實施方式中,動作308可以由進行動作302-306的同一驅動器來進行。
9如本領域技術人員會認識到的,驅動器(例如驅動器202)可以通過以塊的 方式寫入圖像數據的像素來進行動作308,其中,驅動器202使用模塊204 來將像素數據導引或指引到存儲器206中的物理表面205上,在此以風景 模式、定向或方位在表面205中組織像素數據。然而,本發明在這點上并 不受到限制,驅動器可以通過一次一個像素地將圖像數據的像素寫入到表 面205上來進行動作308。
為了解釋處理過程300和/或相關處理過程而提供了圖6,其示出了代 表性的風景模式邏輯表面602和代表性的肖像模式邏輯表面620。例如,邏 輯表面602和620可以表示圖2的邏輯表面203的不同實施方式。此外, 圖6示出了代表性的物理表面609和627,其中,根據本發明的一些實施方 式,如以下會更詳細解釋的,可以將物理表面627認為是相對于物理表面 609旋轉的物理表面。例如,物理表面609和627可以表示圖2的物理表面 205的不同實施方式。盡管圖6意圖幫助論述處理過程300-500,但無論如 何在此所示的具體元件和布置都不應解釋為限制所聲明的本發明。
圖6示出了例如由驅動器202以"8X6"或風景模式組織的邏輯表面 602,其包括8列和6行603-608像素值(00, 01, 02等),圖6還示出了以 "6X8"或肖像模式組織的邏輯表面620,其包括6列621-626和8行像素 值,如圖所示。然而,本領域技術人員會認識到,本發明不限于圖像數據 或像素或像素值的列和行的具體數量,因此,在此針對處理過程300和/或 相關處理過程所述的相同技術可以應用于普通大小的風景或肖像模式,其 中,例如在1024X768的風景模式邏輯表面中或在768X1024的肖像模式 邏輯表面中組織圖像數據。此外,本領域技術人員會認識到,如在此所用 的術語"圖像數據"、"像素數據"、"像素值"或"數據值"可以互換地使 用,而不會脫離本發明的范圍。
為了幫助說明本發明的一些實施方式,繪制表面的邏輯表示可以不同 于該表面的物理表示。因此,可以將繪制表面的邏輯圖像(即邏輯表面, 例如表面602或620的任意一個)定義為如由用于在該表面上進行繪制或 渲染的應用程序或驅動器所見到那樣的表面的視圖。例如,風景模式邏輯 表面602可以表示這樣的繪制表面的邏輯圖像即在該繪制表面中,將像 素OO、 01、 02連續地布置在存儲器中,在此物理表面609可以表示該表面在存儲器中的物理視圖。由于物理表面609是面向風景的表面,因此由表 面602提供的邏輯視圖和由表面609提供的物理視圖是相似的。
然而,通過對比,盡管由邏輯表面620提供的邏輯視圖暗示了像素00, 01和02都以行的方式連續地存儲在存儲器中,且像素05、 15和25非連續 地存儲在存儲器中,但是由這些像素的重新定向而產生的物理表面627顯 示出實際中像素OO、 01和02是非連續地存儲在存儲器中的。因此,盡管 由表面620提供的邏輯視圖在驅動器在該表面上繪制或渲染時會是有用的, 但是在已經將圖像數據處理到該邏輯表面上之后,導引模塊204可以重新 組織或重新定向該數據,從而能夠將像素05、 15和25都連續地存儲在存 儲器中,而在邏輯表面620中被連續地組織的像素00、 01和02不再連續 地存儲在存儲器中。在此意義上,可以將表面627描述為相對于物理表面 609旋轉的物理表面。
如圖6所示,物理繪制表面609和627包括6行存儲單元610-615,在 此這些行例如可以包括存儲器106或存儲器206的存儲器頁面。然而,通 常本領域技術人員會認識到, 一個存儲器頁面就可以完全容納物理表面609 和627,但為了更明確地說明本發明,可以將表面609和627的每一行 610-615認為是屬于不同的存儲器頁面。此外,本領域技術人員會認識到, 可以訪問或讀出保存或存儲在一行存儲單元(例如行610-615之一)中的數 據,例如像素數據,以使得在訪問同一行中的像素(例如表面609的行610 中的像素00-07)時不引起頁面未命中。通過對比,本領域技術人員還會認 識到,在訪問或讀出存儲在行610-615之一 中的第一像素或數據值與訪問或 讀出存儲在行610-615中另一行中的第二像素或數據值之間的切換導致了 頁面未命中,從而增加了訪問或讀出該第二像素或數據值所需的時間。
本領域技術人員還會認識到,在邏輯表面602中進行組織并被渲染或 寫入到物理表面609上的數據可以由控制器104/108或顯示器109中的硬件 來掃描輸出或以流方式傳送,從而可以在順序地訪問或以流方式傳送行610 中的像素時,可以在不引起頁面未命中的情況下,將保存在表面609的行 610中的像素00-07提供給顯示器109。類似地,可以以類似方式順序地訪 問或以流方式將保存在每一行611-615中的像素傳送到顯示器109,從而可 以在其處理過程中不引起頁面未命中。根據本發明的一些實施方式,導引模塊204可以進行操作,以便將對邏輯表面620的像素數據寫入重新定向 或導引到物理表面627,從而可以在對該像素數據進行順序地訪問或以流方 式將該像素數據從物理表面627傳送到顯示器109時,對于在任一列 621-626中相鄰地組織或位置相鄰的任何像素值,成流(streaming)硬件都 不會引起頁面未命中,這是因為在任一列621-626中的這些像素值被放置或 保存在表面627的存儲單元的行610-615之中相應的一行中。
同時參考圖3和6,動作306可以包括驅動器202將像素數據渲染到 邏輯表面602;隨后動作308可以包括驅動器202通過使用導引模塊204 對在邏輯表面602中組織的像素數據進行導引或指引或映射,來將該像素 數據寫入到在存儲器中實現的面向風景的物理表面609上,從而使邏輯表 面602的每一行603-608的像素占用如圖6所示的物理表面609的行610-615 中的相同一行。換句話說,當例如在四個像素塊中進行渲染時,驅動器202 可以通過使用導引模塊204將行603中的像素00和01及行604中的像素 10和11寫入到表面609上以便在行610中保存像素00和01及在行611中 保存像素10和11,來進行動作308。驅動器202隨后可以通過使用導引模 塊204將行603中的像素02和03及行604中的像素12和13寫入到表面 609上以便在行610中相鄰于像素00和01保存像素02和03及在行611中 相鄰于像素10和11保存像素12和13,來繼續進行動作308。通過以這個 方式繼續進行,驅動器202和導引模塊204可以進行動作308,直到在邏輯 表面602中的全部像素數據都已完全寫入到或渲染到物理表面609上為止。
如果動作304的結果是肯定的,就是說如果要以肖像模式渲染數據, 而不是以風景模式,那么處理過程300就可以繼續進行到將圖像數據渲染 到肖像模式邏輯表面上[動作310],隨后是圖像數據的重新定向[動作312] 和將圖像數據寫入到旋轉的物理表面上[動作314]。根據本發明的一些實施 方式,可以通過驅動器202將圖像數據渲染到肖像模式邏輯表面620來進 行該動作310,同時可以通過使驅動器202使用導引模塊204將表面620的 圖像數據或像素寫入到物理繪制表面627上以便肖像模式邏輯繪制表面620 的每一列621-626的像素都占用旋轉的物理表面627的行610-615中相應的 同一行(如圖6所示),來進行動作312和314。
換句話說,驅動器202可以通過使用導引模塊204將列621的像素00
12和10及列622的像素01和11寫入到表面627上以便在表面627的行615中保存像素00和10及在表面627的行614中保存像素01和11,來進行動作312和314。驅動器202隨后可以通過使用導引模塊204將列623的像素02和12及列624的像素03和13寫入到表面627上以便像素02和12占用表面627的行613及像素03和13占用表面627的行612,來繼續進行動作312和314。通過以這個方式繼續進行,驅動器202和導引模塊204可以進行動作312和314,直到在邏輯表面620中的全部數據都己完全寫入到或渲染到旋轉的物理表面627上為止。本領域技術人員會認識到,對物理表面627的渲染請求不必是對于寫入完整表面的請求,而是可以是對于寫入到單個像素的隨機請求,并且在邏輯表面620中的每一個如此渲染的像素都可以在動作312和314中被導引或重新引導到物理表面627中的位置上。
圖4示出了用于提供對繪制表面的直接訪問的方案400。處理過程400可以開始于確定是否請求了對肖像模式繪制表面的直接訪問[動作401]。當在系統100/200上執行的軟件應用程序或操作系統(OS)請求直接訪問(即尋求"鎖定")繪制表面(例如邏輯表面602和620中任意一個)的邏輯表示時,就會發生動作401。
如果應用程序或OS請求對風景模式邏輯表面的直接訪問,則可以將對該邏輯表面的像素的每一次讀出或寫入都直接導引或映射到物理表面的相應像素,這是因為相應物理表面的像素與邏輯表面中的像素的布局相匹配。例如,如圖6所示,風景模式邏輯表面602的像素和物理表面609的像素具有匹配的布局樣式。因此,例如直接訪問風景模式邏輯表面(例如表面620)并使用指向某個具體像素(例如像素21)的指針的應用程序或OS在該應用程序或OS遞增該指針以產生下一個邏輯像素(像素22)的地址時將會訪問像素22,因為在相應物理表面609中以行方式相鄰于像素21的下一個像素是像素22。
通過對比,如果應用程序或OS請求對肖像模式邏輯表面進行直接訪問,則對該邏輯表面的像素的每一次讀出或寫入都會需要重新定向到物理表面的相應像素,這是因為相應物理表面的像素具有相對于邏輯表面中的像素布局的旋轉的布局。例如,如圖6所示,肖像模式邏輯表面620的像素和物理表面627的像素不具有匹配的布局樣式。因此,在不得益于本發明的一些實施方式的情況下,直接訪問肖像模式邏輯表面(例如表面620)并使用指向某個具體像素(例如像素21)的指針的應用程序在該應用程序或OS遞增該指針以產生下一個邏輯像素(像素22)的地址時,實際上會訪問到并非是像素22的一個像素,這是因為在旋轉的物理表面627中以行方式相鄰于像素21的下一個像素是像素31,而不是像素22。
如果動作401的結果是否定的,就是說,如果應用程序或OS不尋求對肖像模式邏輯表面的直接訪問,那么處理過程400可以結束。另一方面,如果動作401的結果是肯定的,就是說,如果應用程序或OS尋求對肖像模式邏輯表面的直接訪問,那么處理過程400可以繼續進行到將圖像數據從旋轉的物理表面復制到肖像模式邏輯表面[動作402]。完成它的一個方式是使控制器104使用導引模塊204將像素數據從旋轉的物理表面627復制到肖像模式邏輯表面620。就是說,參考圖6,可以將與表面627的行610的第一像素(像素05)相對應的數據復制到表面620的列626的第一像素位置(即最上面的像素05),同時可以將與表面627的行610的第二像素(像素15)相對應的數據復制到列626的第二像素位置(即最上面的像素15),依此類推直到將表面627的所有數據都復制到表面620上為止。然而,本發明不局限于用于在動作402中將圖像數據從旋轉的物理表面復制到肖像模式邏輯表面上的任何具體方法或方案。另外,本發明不局限于鎖定整個邏輯表面。因此,例如應用程序在動作401中會僅對全部表面的一部分矩形區域請求鎖定,在此情況下,在動作402中僅復制相關部分的表面數據。
處理過程400隨后可以繼續進行到允許應用程序或OS訪問或鎖定肖像模式邏輯表面[動作404]。因此,例如, 一旦控制器104已經在動作402中從表面627將像素數據復制到表面620上,就可以允許在動作401中請求直接訪問的應用程序或OS訪問和/或鎖定肖像模式邏輯表面620,以便應用程序或OS可以從該邏輯表面讀出像素數據和/或向該邏輯表面寫入像素數據。
處理過程400隨后可以結束于將圖像數據從肖像模式邏輯表面復制到旋轉的物理表面上[動作406]。因此,例如, 一旦在動作404中允許應用程序或OS訪問和/或鎖定肖像模式邏輯表面620以便應用程序或OS可以從該邏輯表面讀出像素數據和/或向該邏輯表面寫入像素數據,控制器104就可
14以在動作406中將表面620的像素數據復制回旋轉的物理表面627。就是說, 動作406可以包括將與表面620的列626的第一像素位置(即最上面的 像素05)相對應的數據復制到表面627的行610的第一像素(像素05), 隨后將與列626的第二像素位置(即最上面的像素15)相對應的數據復制 到表面627的行610的第二像素(像素15),以此類推,直到表面627的全 部數據都復制到表面620上為止。
圖5示出了用于提供對肖像模式繪制表面的直接訪問的另一個方案 500。處理過程500可以開始于確定是否已經請求了對肖像模式繪制表面的 直接訪問[動作501]。動作501類似于上述的動作401。如果應用程序或OS 已經請求訪問肖像模式繪制表面,那么處理過程500可以繼續進行到在存 儲器中產生防護區域(fence region)[動作502]。在本發明的一些實施方式 中,這可以例如通過使控制器104在存儲器(例如存儲器106)中產生防護 區域來完成,在此,該防護區域至少包含物理繪制表面627的多個部分。
如本領域技術人員會認識到的,存儲器防護區域定義了用于訪問存儲 器的區域的特定屬性或規則。在本發明的一些實施方式中,在動作502中 建立防護區域可以包括使用邏輯來接收訪問請求,并且重新映射或重新 定向該請求,以便即使在相應的旋轉的物理表面的布局與該邏輯表面的布 局不匹配的情況下,根據肖像模式邏輯表面的布局,請求直接訪問的應用 程序或OS仍可以訪問其希望訪問的像素。例如,動作502可以包括使 用與控制器104的導引模塊204相關的邏輯來識別是否針對肖像模式邏輯 表面620的任何部分做出了訪問請求(例如以肖像模式邏輯表面620為目 標的像素地址/數據對),如果是,則該邏輯應該改變或重新定向或重新映射 該訪問請求,從而使得該訪問請求會正確地訪問該表面。
處理過程500隨后可以結束于允許應用程序或OS鎖定肖像模式邏輯表 面[動作504]。執行動作504的一個方式是使用導引模塊204中的邏輯來將 指定肖像模式邏輯表面中像素位置的訪問請求重新映射到旋轉的物理表面 中的相應像素數據上。因此,例如,如果應用程序或OS發出對表面620 中像素05的寫入請求(即,在此,該請求指定表面620中像素05的邏輯 地址),則控制器104可以使用在導引模塊204中的邏輯改變或重新定向該 寫入請求的地址,從而使應用程序或OS訪問正確的像素數據。例如,如果應用程序或OS將指針從邏輯表面620中的像素21遞增到該表面中的像素 22,并發出以像素22為目標的寫入請求,那么如果導引模塊204沒有改變 或重新定向在寫入請求中包含的像素22的地址,則該寫入請求實際上會訪 問物理表面627的像素31,而不是所希望的像素22。另一方面,如果導引 模塊204根據動作502和504而改變或重新定向了在該寫入請求中包含的 像素22的地址,則該寫入請求就會訪問所希望的像素22。
在圖3-5中所示的各個動作不必以所示的順序來執行;也不必執行全部 的動作。此外,那些不依賴于其它動作的動作可以與所述其它動作并行地 執行。例如,可以并行地進行動作302和304。換句話說,產生用于渲染的 圖像數據的動作[動作302]可以包括確定是否以肖像模式渲染該數據[動作 304]。可替換地,可以在動作302之前進行動作304。換句話說,確定是否 以肖像模式渲染圖像數據的動作[動作304]可以在產生該用于渲染的數據 [動作302]之前發生。此外,在該圖中的至少一些動作可以實現為指令或指 令組,所述指令或指令組在機器可讀介質中實現。
根據本發明的一些實施方式,可以在硬件寄存器中產生邏輯繪制表面, 而無需注意顯示器可訪問的物理繪制表面的存儲器布局。因此,符合肖像 模式或"6X8"表面的邏輯繪制表面的像素的產生假定了物理繪制表面也 是6X8。在以3D渲染流水線進行渲染的領域中的技術人會認識到,邏輯 繪制表面像素的產生會采用剪裁矩形(Scissor rectangle),多邊形點刻 (Polygon Stipple)、剪切矩形(clipping rectangle),就好像所有操作都在6 X8表面上進行。然而,當將這些像素寫入到存儲器中或與存儲器中物理繪 制表面中的像素混合時,可以改變這些像素的存儲器地址,以對應在兼容 顯示器渲染硬件的風景模式或"8X6"表面中所組織的實際物理繪制表面。 可以采用最多一對乘法器和加法器來進行新存儲器地址的計算。因為新存 儲器地址的計算是在全部圖形操作的末端發生的,因此其不會產生任何與 較新的圖形特征(例如像素或頂點著色器)之間相互影響的問題。這種著 色器可以以(x, y)坐標自由地工作,就好像其是一個6X8表面一只有圖形硬 件的存儲器子系統才知道該低級存儲器導引。
根據本發明的一些實施方式,可以通過產生旋轉的物理表面的未旋轉 副本來支持鎖定操作,并且該鎖定操作可以使應用程序或OS鎖定該"副本"
16表面。可替換地,由于物理繪制表面屬于圖形引擎,并可以在芯片組頁面 表中映射,因此對這個表面的所有讀/寫操作都可以通過這個芯片組邏輯。 因此,鎖定操作也可以通過定義特定的"防護區域"來支持,該防護區域 將存儲器的一個區域與特定表面屬性相關聯。隨后,當芯片組接收到對像 素的存儲器讀/寫請求時,芯片組可以通過使用該防護區域屬性計算應用程 序試圖訪問的像素的地址,來將這兩個像素的讀/寫導引到兩個完全不同的 地址。
盡管先前針對與所聲明的本發明相一致的一個或多個示例的描述提供 了對本發明的圖示說明和描述,但其意圖不是窮舉性的或將本發明的范圍 限制為所公開的具體實施方式
。明確地,按照以上的教導或可以從本發明 的各種實施方式的實現中得知,多種修改和變化都是可能的。例如,盡管
圖2和附屬的文字可以顯示并說明了包括一個導引模塊204的系統200,但 本領域技術人員會認識到,根據本發明的系統可以包括一個以上的并行操 作的導引模塊。明確地,可以使用許多其它實施方式來為與所聲明的本發 明相一致的平板電腦和肖像顯示器提供旋轉的渲染和鎖定支持。
在本驅動器的說明中闡述的裝置、元件、動作、數據類型、指令等都 不應解釋為對本發明是關鍵性或不可缺少的,除非明確表述為如此。此外, 如在此所用的,冠詞"一"意圖包括一個或多個項目。而且,當在此或附 帶的權利要求中使用諸如"耦合的"或"響應的"或"與……通信"之類 的術語或短語時,這些術語應該做最大范圍的理解。例如短語"耦合到" 可以指的是按照對于使用該短語的上下文而言適當的方式,以可通信的方 式、電氣的方式,和/或可操作的方式進行耦合。在實質上不脫離本發明的 精神和原理的情況下,可以對所聲明的本發明的上述實施方式做出改變和 修改。所有此類修改和改變都意圖包括在本公開內容的范圍內,并受到附 帶的權利要求的保護。
權利要求
1、一種方法,包括將圖像數據渲染到邏輯繪制表面上,所述邏輯繪制表面包括像素值的行和列;及將所述圖像數據寫入到物理繪制表面上,所述物理繪制表面包括存儲單元的行和列,其中,將所述圖像數據寫入到所述物理繪制表面上的步驟包括將所述圖像數據寫入到所述物理繪制表面上,從而將在所述邏輯繪制表面的一列中位置相鄰的第一和第二像素值寫入到在所述物理繪制表面的一行中位置相鄰的存儲單元中。
2、 如權利要求l所述的方法,其中,所述物理繪制表面包括存儲器。
3、 如權利要求l所述的方法,其中,所述邏輯繪制表面包括處理器內 核的一個或多個寄存器。
4、 如權利要求1所述的方法,進一步包括通過將應用程序或OS對所述邏輯繪制表面的像素值的訪問重新定向 到所述物理繪制表面的相應存儲單元,來允許該訪問。
5、 如權利要求1所述的方法,進一步包括從所述物理繪制表面將所述圖像數據復制回所述邏輯繪制表面,從而 將存儲在所述物理繪制表面的一行中相鄰存儲單元中的第一和第二像素值復制到所述邏輯繪制表面的一列中的相鄰存儲單元中;及 允許應用程序或OS訪問所述邏輯繪制表面的像素值。
6、 如權利要求l所述的方法,其中,將所述圖像數據寫入到物理繪制表面上的步驟包括使用芯片組頁面表。
7、 一種產品,包括機器可訪問介質,其具有存儲在其上的指令,該指 令當由機器執行時,使得所述機器將圖像數據渲染到邏輯繪制表面上,所述邏輯繪制表面包括像素值的行和列;及將所述圖像數據寫入到物理繪制表面上,所述物理繪制表面包括存儲單元的行和列,其中,將所述圖像數據寫入到所述物理繪制表面上的步驟包括將所述圖像數據寫入到所述物理繪制表面,從而將在所述邏輯繪制表面的一列中位置相鄰的第一和第二像素值寫入到在所述物理繪制表面的一行中位置相鄰的存儲單元中。
8、 如權利要求7所述產品,其中,所述物理繪制表面包括存儲器。
9、 如權利要求7所述產品,其中,所述邏輯繪制表面包括處理器內核的一個或多個寄存器。
10、 如權利要求7所述產品,進一步具有存儲在其上的指令,該指令當由機器執行時,使得所述機器通過將應用程序或OS對所述邏輯繪制表面的像素值的訪問重新定向到所述物理繪制表面的相應存儲單元,來允許該訪問。
11、 如權利要求7所述產品,進一步具有存儲在其上的指令,該指令當由機器執行時,使得所述機器從所述物理繪制表面將所述圖像數據復制回所述邏輯繪制表面,從而將存儲在所述物理繪制表面的一行中相鄰存儲單元中的第一和第二像素值復制到所述邏輯繪制表面的一列中的相鄰存儲單元中;及允許應用程序或OS訪問所述邏輯繪制表面的像素值。
12、 如權利要求7所述產品,其中,將所述圖像數據寫到物理繪制表面包括使用芯片組頁面表。
13、 一種裝置,包括用于渲染像素數據的邏輯,所述像素數據包括像素值的行和列;及用于將所述像素數據映射到存儲器中的邏輯,用于映射所述像素數據的所述邏輯至少能夠重新定向所述像素數據,從而將在所述像素數據的一列中位置相鄰的多個像素值放置到所述存儲器的一行中位置相鄰的多個存儲單元中。
14、 如權利要求13所述裝置,其中,用于映射所述像素數據的所述邏輯包括芯片組頁面表。
15、 如權利要求13所述裝置,其中,用于渲染像素數據的所述邏輯將所述像素值渲染到處理器內核的一個或多個寄存器。
16、 如權利要求13所述裝置,其中,用于渲染所述像素數據的所述邏輯包括顯示驅動器。
17、 一種系統,包括存儲器,所述存儲器包括存儲單元的行;及用于將像素數據映射到所述存儲器中的邏輯,所述像素數據包括像素值的行和列,所述邏輯至少能夠重新定向所述像素數據,從而將在所述像素數據的一列中位置相鄰的多個像素值放置到在所述存儲器的一行中位置相鄰的多個存儲單元中。
18、 如權利要求17所述系統,其中,用于將像素數據映射到存儲器中的所述邏輯包括芯片組頁面表。
19、 如權利要求17所述系統,其中,所述存儲器包括以下之一動態隨機存取存儲器(DRAM)、靜態隨機存取存儲器(SRAM)、或非易失性存儲器。
20、 如權利要求17所述系統,其中,所述像素數據包括保存在處理器內核的一個或多個寄存器中的像素值。
全文摘要
公開了用于處理面向肖像模式的顯示表面而無需顯示器子系統中昂貴的硬件的裝置、系統和方法。例如,公開了一種裝置,以便在渲染時重新定向圖形數據到肖像模式顯示表面的渲染,從而不必在圖形適配器的顯示部分中增加復雜的硬件以便處理常規顯示—其全部都無需電路來處理本來存儲在肖像模式表面中的數據。另外,已說明了一種裝置,用于通過已旋轉的表面鎖定,來處理對表面的直接表面訪問。這可以通過表面數據的復制或通過用于刪除該復制的最佳提出的裝置來完成。還公開了其它實施方式。
文檔編號G06T3/60GK101490710SQ200780026261
公開日2009年7月22日 申請日期2007年7月5日 優先權日2006年7月13日
發明者B·波達爾 申請人:英特爾公司