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