改善渲染效率的技術的制作方法
【專利摘要】各種實施例通常涉及當存儲圖像的基元的顏色數據值時使清晰顏色的顏色數據值的存儲被推遲或者完全避免的技術。所述裝置包括處理器元件;以及邏輯,所述邏輯用于將所述圖像的像素塊的顏色數據值存儲在高速緩存行的第一部分中;將所述第一部分已被寫入和所述高速緩存行的第二部分還未被寫入的指示存儲在每部分表中;逐出所述第一部分和所述第二部分的內容,并且對存儲在所述每部分表中的所述指示做出響應,將所述第一部分的所述內容存儲在圖像數據中,并且將清晰顏色的顏色數據值的實例代替所述第二部分的所述內容而存儲在所述圖像數據中。還描述和請求保護了其它實施例。
【專利說明】改善渲染效率的技術
【技術領域】
[0001] 本文描述的實施例通常涉及改善渲染三維對象的二維圖像的效率。
【背景技術】
[0002] 在渲染三維(3D)對象的二維(2D)圖像時,在經歷渲染的圖像的某些部分中剩余 的背景顏色或"清晰顏色"可能存在或者可能不存在。這取決于被渲染的對象的種類,該 對象是否填充整個圖像和/或渲染所述對象的目的而變化。因而,在渲染期間是否存在保 持未被著色的像素以使得它們必須被著色為清晰顏色以便使圖像完整,這經常是事先未知 的。
[0003] 鑒于這一不確定性,最初使圖像的所有像素都被著色為清晰顏色以便確保在渲染 之后沒有像素被留下具有未定義或隨機的顏色,這已經成為公認的做法。然而,這必然意味 著使用清晰顏色對所有像素進行的首次著色時花費的努力中的至少一些,如果不是全部, 是浪費的,因為在渲染期間,至少它們中的一些將被對象的顏色覆蓋。
[0004] 這一浪費不僅在使用渲染引擎來渲染圖像同時發生向所有像素寫入清晰顏色之 間浪費的時間方面相當可觀,而且在出于除了針對每一個像素將針對清晰顏色的顏色像素 值重復地寫入存儲器單元中的目的以外的目的而采用的浪費的處理器時間和浪費的存儲 器帶寬方面也相當可觀。相對于這些和其它考慮,需要本文描述的實施例。
【專利附圖】
【附圖說明】
[0005] 圖1說明了計算設備之間的可能交互以便渲染圖像的實施例。
[0006] 圖2說明了圖1的實施例的一部分。
[0007] 圖3說明了在圖1的實施例中的數據的各部分和圖像的各部分之間的關系。
[0008] 圖4說明了圖2的部分的子部分。
[0009] 圖5說明了第一邏輯流的實施例。
[0010] 圖6說明了第二邏輯流的實施例。
[0011] 圖7說明了第三邏輯流的實施例。
[0012] 圖8說明了第四邏輯流的實施例。
[0013] 圖9說明了處理架構的實施例。
【具體實施方式】
[0014] 各種實施例通常涉及在針對圖像的像素存儲基元(例如,線,多邊形等等)的顏色 數據值時推遲或者完全避免清晰顏色的顏色數據值的存儲的技術。更具體地說,保持與高 速緩存并且與圖像緩沖器相關聯的比特表,該比特表中的每一個比特指示是否由于渲染圖 像而又對像素塊進行了著色。與高速緩存相關聯的一個這樣的表用于控制復用器,該復用 器用于在將多個像素塊的每一個高速緩存行從高速緩存逐出并且進入存儲器時使用清晰 顏色的顏色數據值對仍然未被著色的像素塊進行著色。與存儲器相關聯的另一個這樣的表 在完成圖像的渲染時使用,以便識別仍然被保留未被著色的所述圖像的任何像素塊,以使 得可以將針對清晰顏色的顏色數據值存儲在存儲器中需要使用清晰顏色對那些仍然未被 著色的像素塊進行著色的單元處。
[0015] 可以設想的是,在至少一些圖像的渲染之后,其中渲染處理導致那些圖像內的每 一個像素的著色,應該不再需要使用清晰顏色對像素進行著色。因而,通過推遲使用清晰顏 色對像素進行著色直到完成渲染之后,不存在使用清晰顏色對像素進行著色以便僅使該清 晰顏色被覆蓋的處理時間或存儲器帶寬的浪費。對于渲染處理沒有導致每一個像素被著色 的其它圖像,推遲使用清晰顏色對像素進行著色最大限度地減少了這樣的浪費,因為只有 需要使用清晰顏色進行著色的像素被進行了這樣的著色。取決于所渲染的圖像的本質,在 用于創建每一個圖像的時間上的改善會是顯著的。
[0016] 通常參照本文使用的標注和術語,可以按照在計算機或計算機網絡上執行的程序 過程的形式來呈現下面的詳細描述部分。這些過程描述和表示由本領域技術人員使用以便 最有效地向本領域的其他技術人員傳達他們工作的實質。這里通常將過程認為是導致期 望結果的前后一致的操作序列。這些操作是要求物理量的物理操控的操作。通常,盡管不 一定,這些量采用能夠被存儲、傳輸、組合、比較和以其它方式操控的電、磁或光學信號的形 式。主要出于通用的原因,將這些信號稱為比特、值、元素、符號、字符、項、數字等等有時被 證明是方便的。然而,應當指出,所有這些和類似的術語將與合適的物理量相關聯,并且僅 僅是應用于這些量的方便的標記。
[0017] 進一步地,經常在諸如加和和比較的術語中指代這些操作,這些操作一般與操作 人員執行的智力操作相關聯。然而,在本文描述的形成一個或多個實施例的一部分的任何 操作中,操作人員沒有這樣的能力是必要的,或者在大多數情況下是期望的。而是,這些操 作是機器操作。用于執行各個實施例中的操作的有用機器包括被選擇性激活或由存儲在其 內的計算機程序配置的通用數字計算機,按照本文的教導來編寫該計算機程序,和/或包 括為了所要求的目的特別構造的設備。各種實施例也與用于執行這些操作的裝置或系統相 關。這些裝置可以為了所要求的目的而被特別地構造,或者可以包括通用計算機。用于各 種這些機器的所要求的結構將出現在給出的描述中。
[0018] 現在參照附圖,其中相似的附圖標記用于在整個附圖中指代相似的元件。在下面 的描述中,出于解釋目的,闡述了許多具體細節以便提供對本發明的透徹理解。然而,顯然 的是,可以在沒有這些具體細節的情況下來實踐新穎的實施例。在其它實例中,公知的結構 和設備以框圖的形式示出,以便方便對它們的描述。其意圖是覆蓋權利要求的范圍內的所 有修改、等同物和替代品。
[0019] 圖1說明了計算設備1000的框圖,其可以耦合到另一計算設備300,以便向該另 一計算設備300提供已經由計算設備1000渲染的圖像的圖像數據。這些計算設備1000和 300中的每一個可以是各種類型的計算設備中的任意一種,包括但不局限于臺式計算機系 統、數據輸入終端、膝上型計算機、上網本計算機、平板計算機、手持個人數據助理、智能電 話、數碼相機、結合到衣物中的可穿戴式計算設備、集成到車輛(例如汽車、自行車、輪椅等 等)中的計算設備、服務器、服務器集群、服務器場等等。
[0020] 如圖所示,計算設備1000和300經過網絡999交換傳送所渲染的圖像的信號。然 而,這些計算設備中的一個或兩個可以經由網絡999彼此和/或與再有的其它計算設備 (未示出)交換與所渲染的圖像完全無關的其它數據。在各種實施例中,網絡可以是可能局 限于在單個建筑物或其它相對有限的區域內延伸的單個網絡,可能延伸相當的距離的所連 接的網絡的組合,和/或可以包括以太網。因而,網絡999可以基于可以通過其交換信號的 各種通信技術(或組合)中的任意一種,包括但不局限于:使用電學和/或光學導電布線的 有線技術以及采用紅外、射頻或其它形式的無線傳輸的無線技術。
[0021] 在各種實施例中,計算設備1000結合處理器元件150、存儲器160、控件120、顯示 器180、控制器200和接口 190中的一個或多個,以便將計算設備1000耦合到網絡999。存 儲器160存儲控制例程140和3D模型數據130中的一個或多個。控制器200結合處理器 元件250、存儲器260、每塊表268、高速緩存270、高速緩存控制器275和復用器276中的一 個或多個。存儲器260存儲控制例程240、3D模型數據130的副本和圖像數據230中的一 個或多個。
[0022] 控制例程140結合在其作用是計算設備1000的主處理器元件的處理器元件150 上可操作的指令序列,以便實現用于執行各種功能的邏輯。在執行控制例程140時,處理器 元件150用于保持和/或修改3D模型數據130。這可能是這種情況:對接收到傳送要修改 3D模型數據的命令的信號做出響應,使處理器元件150修改該3D模型數據130,所述信號 可能對它們正在被操作做出響應而經由控件120(如果存在)進行接收和/或可能經由網 絡999從另一計算設備進行接收。在一些實施例中,計算設備1000可以是視頻游戲系統, 其中所述3D模型數據130是視頻游戲中場景和/或人物的3D表示。在一些實施例中,計 算設備1000可以是醫療工作站,其中所述3D模型數據130是人體組織、結構和/或器官的 3D表示。在這樣的實施例中,計算設備的操作者可以操作控件120以便操控由3D模型數據 130表示的對象。
[0023] 無論保持和/或修改3D模型數據130的目的如何,控制例程140進一步使處理器 元件150向控制器200傳送3D模型數據130的副本。處理器元件150然后向控制器200 發送信號以便渲染該3D模型數據130從指定的方向角度的任何對象的二維圖像830。在這 樣的渲染之后,可以然后將圖像830視覺地呈現在顯示器180上。可替代地或另外地,可以 將表示圖像830的圖像數據230經由網絡999傳輸到計算設備300,其中可以存儲該圖像數 據230和/或可以在計算設備300的顯示器380上視覺地呈現圖像830。
[0024] 控制例程240結合在其作用是計算設備1000的主處理器元件的處理器元件250 上可操作的指令序列,以便實現用于執行各種功能的邏輯。在執行控制例程240時,處理器 元件250接收來自處理器元件150的信號以便將由3D模型數據130表示的對象渲染為2D 圖像830。在這樣做時,使處理器元件250將在3D模型數據130這些對象由其形成的基元 (例如,線、三角形、多邊形等等)光柵化為表示圖像830的圖像數據230。從而使圖像數據 230包括從指定的方向角度可視的那些對象的基元的子集的2D圖像。
[0025] 如將要更詳細地說明的,盡管在其中可視的對象的渲染的結論中將圖像數據230 最終存儲在存儲器260中,但是圖像數據230實際上最初被渲染到由高速緩存控制器275 監督的高速緩存270中。當渲染繼續進行時,被渲染到高速緩存270中的圖像數據230的 高速緩存行經過復用器276被逐出并且進入存儲器260中被指定為要在其中存儲圖像數據 230的單元。在驅逐期間和/或在渲染完成之后,使用清晰顏色對沒有被渲染處理著色的象 素塊進行著色,以便完成由圖像數據230表示的圖像830。
[0026] 在一些實施例中,在將圖像830渲染到存儲器260中作為圖像數據230之后,處理 器元件250可以然后操作顯示接口 285,以便在顯示器180上可視地顯示圖像830。在其它 實施例中,處理器元件250可以向處理器150發送信號來通知圖像270的渲染完成,并且可 以將圖像數據230提供到處理器元件150,以便使處理器元件本身能夠在顯示器180上視覺 地呈現圖像830和/或經由網絡999將圖像數據230傳輸到其它計算設備300,可能用于在 其顯示器380上進行視覺呈現。
[0027] 應當注意,盡管圖1闡釋了結合分別執行它們各自任務的兩個處理器元件(例如, 處理器元件150和250)的計算設備1000的實現,但是計算設備1000的其它實施例也是可 能的,其中單個處理器元件執行所有這些前述的任務。然而,可以想象的是,控制器200結 合圖像系統,在該圖像系統中所述處理器元件250可以是多少專門和/或優化為執行與渲 染、視頻解壓縮、圖像重新縮放等等相關的任務,而所述處理器元件150用作更通用的處理 電路以便執行由操作系統、一個或多個設備驅動器和/或一個或多個應用的指令所指示的 預期的更廣泛的各種指令和任務。
[0028] 還應當注意,盡管本文僅討論了由單個圖像數據230表示的單個二維圖像830的 渲染和最終存儲,但是這不應該被理解為指示該單個圖像830 -定要由自身渲染或存儲, 而不連接到任何其它圖像或圖像塊數據。更精確地說,在一些可能實施例中,單個二維圖像 830可以實際上代表在圖像的多個對齊和/或重疊的平面中的圖像的一個平面,它們共同 定義三維圖像。可替代地或另外地,該單個二維圖像830可以只是一段運動視頻的這樣的 幀的多個幀中的一個幀。因而,本文討論和描述的技術不應該被視為局限于孤立存在的單 個二維平面圖像的渲染和存儲。
[0029] 在各種實施例中,每一個處理器元件150和250可以包括各種各樣 的市售處理器中的任意一個,包括但不局限于AMD? Athlon?、Duron?或 Opteron?處理器;ARM?應用、嵌入式或安全處理器;IBM?和/或Motorola? DragonBall? 或 powerpc?:處理器;IBM 和 / 或 Sony? Cell 處理器;或者 Intel? Celeron?、Core (2) Duo?、Core (2) Quad?、Core i3?、Core i5?、Core i7?、 Atom?、Itanium?、Pentium?、Xeon?或XScale?處理器。進一步地,這些處理器元件 中的一個或多個可以包括多核處理器(無論多個內核是否共存于相同或不同的裸片上), 和/或一些其它種類的多處理器架構,通過所述種類的多處理器架構,能夠按照某一方式 鏈接多個物理上獨立的處理器。
[0030] 在各種實施例中,每一個存儲器160和260可以基于各種各樣的信息存儲技術中 的任意一種,可能包括要求不間斷地提供電力的易失性技術,并且可能包括導致使用可移 除或不可移除的機器可讀存儲介質的技術。因而,這些存儲器中的每一個可以包括各種類 型(或者類型的組合)的存儲設備中的任意一種,包括但不局限于:只讀存儲器(ROM)、隨 機存取存儲器(RAM)、動態RAM (DRAM),雙數據率DRAM (DDR-DRAM)、同步DRAM (SDRAM)、靜態 RAM(SRAM)、可編程ROM (PROM)、可擦除可編程ROM (EPROM)、電可擦除可編程ROM (EEPR0M)、 閃存、聚合物存儲器(例如,鐵電聚合物存儲器)、奧氏存儲器,相變或鐵電存儲器、硅-氧 化物-氮化物-氧化物-硅(S0N0S)存儲器、磁卡或光學卡、一個或多個單獨的鐵磁磁盤驅 動,或者被組織為一個或多個陣列的多個存儲設備(例如,被組織為獨立磁盤陣列的冗余 陣列或RAID陣列的多個鐵磁磁盤驅動)。應該注意,盡管將這些存儲器中的每一個描述為 單個塊,但是這些中的一個或多個可以包括可以基于不同存儲技術的多個存儲設備。因而, 例如,這些所描述的每一個存儲器中的一個或多個可以代表光驅或閃存卡讀取器的組合, 程序和/或數據可以通過它在某種形式的機器可讀存儲介質上進行存儲和傳送,鐵磁磁盤 驅動用于在相對長的時段內在本地存儲程序和/或數據,并且一個或多個易失性固態存儲 器設備使能到程序和/或數據的相對快速的存取(例如,SRAM或DRAM)。還應該注意,這些 存儲器中的每一個可以由基于相同存儲技術的多個存儲部件構成,但是也可以由于專門用 途的結果而被單獨地保持(例如,一些DRAM設備用作主存儲器,而其它DRAM設備用作圖形 控制器的獨特的幀緩沖器)。
[0031] 在各種實施例中,接口 190可以采用各種各樣的信令技術中的任意一種,如已經 描述的,使計算設備1000能夠耦合到其它設備。這些接口中的每一個包括提供至少一些必 要的功能以便使能這樣的耦合的電路。然而,這一接口也可以利用由處理器元件150執行 的指令序列來至少部分地實現(例如,實現協議棧或其它特征)。在采用電學和/或光學傳 導布線的情況中,這些接口可以采用符合任何種類的工業標準的信令和/或協議,包括但 不局限于:RS-232C、RS-422、USB、以太網(IEEE-802.3)或IEEE-1394。在使用無線信號傳輸 的情況中,這些接口可以采用符合任何種類的工業標準的信令和/或協議,包括但不局限 于:IEEE802. lla、802. llb、802. llg、802. 16、802. 20(通常被稱為"移動寬帶無線接入"); 藍牙;紫峰(ZigBee);或者蜂窩無線電話服務,例如GSM與通用分組無線服務(GSM/GPRS)、 CDMA/lxRTT、增強型數據率全球演進(EDGE)、僅演進數據/優化(EV-D0)、數據和語音演進 (EV-DV)、高速下行鏈路分組接入(HSDPA)、高速上行分組接入(HSUPA)、4GLTE等等。
[0032] 在各種實施例中,顯示器180可以基于各種各樣的顯示技術中的任意一種,包括 但不局限于:液晶顯示器(LCD),包括觸敏、彩色以及薄膜晶體管(TFT)LCD ;等離子體顯示 器;發光二極管(LED)顯示器;有機發光二極管(0LED)顯示器;陰極射線管(CRT)顯示器 等等。這些顯示器中的每一個可以布置在計算設備1000中的相應一個的殼體上,或者可以 布置在計算設備1000的物理上分開的部件的分離的殼體上(例如,經由電纜耦合到其它部 件的平板監視器)。
[0033] 圖2更詳細地說明了圖1的計算設備1000的部分。更具體地說,闡釋了執行控制 例程140和240的相應一個以便執行前述功能的處理器元件150和250的操作環境的各方 面。本領域的技術人員將認識到,這些控制例程中的每一個,包括構成每一個控制例程的部 件,被選擇為在任何類型的一個或多個處理器上可操作(例如,可被執行),選擇該一個或 多個處理器以便實現這些處理器元件中的每一個。
[0034] 在各種實施例中,控制例程140可以包括操作系統、設備驅動器和/或應用級例程 的組合(例如,所謂的提供在光盤介質上的"軟件套件",從遠程服務器獲得的"小程序"等 等)。在包括操作系統的情況下,該操作系統可以是任何種類的適合于處理器元件150和 350的任何相應一個的操作系統,包括但不局限于:Windows?、0SX?、Linux?或者Android 0S?。在包括一個或多個設備驅動器的情況下,那些設備驅動器可以對包括計算設備1000 的任何種類的其它部件提供支持,不管是硬件部件還是軟件部件。
[0035] 控制例程140包括由處理器元件150可執行的通信部件149,以便操作接口 190來 經由網絡999接收和發送信號,如已經描述的。在所接收的信號當中,可以是從另一計算設 備經由網絡999向計算設備1000傳送3D模型數據130的信號。本領域的技術人員將認識 至IJ,選擇這一通信部件以便可以與選擇為實現這一接口的任何類型的接口技術一起操作。
[0036] 控制例程140還可以包括由處理器元件150可執行以便保持和/或操控3D模型 數據130的3D例程141,如可能在經由通過處理器元件150接收的信號傳送的命令中指定 的,可能經由接口 190來自控件120和/或網絡999。如前面討論的,3D模型數據130可以 表示任何種類的對象,從繪制作為視頻游戲的部分場景的虛構的人到可能構成人體的真實 對象。因而,該3D例程141可以是視頻游戲程序、CT(計算機斷層掃描)掃描或MRI(磁共 振成像)數據查看程序等等。
[0037] 控制例程240包括光柵化部件241以便經由對由3D模型數據130表示的任何對象 的圖形基元(例如,線、三角形、多邊形等等)的光柵化來執行基于光柵的渲染處理的一部 分,以便創建圖像數據230。在該處理中,光柵化部件241推導針對構成該圖像數據230的 每一個像素的顏色。光柵化部件241 -次輸出多個像素的顏色數據值作為像素塊,填充由 高速緩存控制器275監管的高速緩存270的一個或多個高速緩存行的部分。控制例程240 還包括像素著色部件243,其協調由光柵化部件241寫入到高速緩存270中的顏色數據值的 處理。
[0038] 高速緩存控制器275包括每行表279,其監視高速緩存270的每一行的狀態,包括 行是否被清除,行的任何部分是否被寫入,和/或哪一個或哪些高速緩存行與其它行相比 較最近或者非最近被最后寫入的指示。當高速緩存270的行被填充時,高速緩存控制器275 將一個或多個高速緩存行的內容(通常被稱為"逐出"高速緩存行)傳輸或"逐出"到存儲 器260內的圖像緩沖器單元,圖像數據230最終被存儲在該圖像緩沖器單元中以便使高速 緩存行可用。在選擇要被逐出的高速緩存行時,高速緩存控制器275可以參照每行表279以 便選擇與其它行相比較已經在較長的時段內未被寫入的高速緩存行。進一步地,在光柵化 部件241的渲染完成時,高速緩存控制器275影響高速緩存270的所有高速緩存行的內容 的逐出,該高速緩存仍然將由渲染產生的數據保持到將圖像數據230存儲在存儲器260內 的位置。
[0039] 高速緩存控制器275還包括每部分表278,其監視高速緩存270的每一行的每一個 部分,包括自從作為高速緩存行的一部分的這些每一個部分被最后清除(例如,被逐出)以 來哪些部分已經被寫入以及哪些部分未改變。高速緩存行中已經被寫入的部分與已經被著 色的一個或多個像素相對應,而高速緩存行中還沒有被寫入的部分與還沒有被著色的一個 或多個像素相對應。高速緩存行中即使該高速緩存行被逐出也保持未被著色的部分可以與 在整個渲染中將保持未被著色的一個或多個像素相對應,這使得最終使用清晰顏色對它們 進行著色。鑒于此,當高速緩存行被逐出時,將它們被逐出的內容經過復用器276按照被寫 入的方式路由到將圖像數據230存儲在存儲器260中的位置。
[0040] 在每部分表278中,使用每一個被逐出的高速緩存行中的哪些部分已經被寫入以 使得它們相對應的像素已經被光柵化部件241著色的指示,以及哪些還未被這樣寫入的指 示,來控制復用器選擇性地插入針對清晰顏色的顏色數據值來代替未被寫入的部分。因而, 對于給定的高速緩存行,在圖像數據230的位置處被寫入到存儲器260中的內容可以包括 下面的混合:來自高速緩存行中被光柵化部件241寫入那些顏色數據值的部分的顏色數據 值,以及在存在高速緩存行中從來沒有被光柵化部件241寫入那些顏色數據值的部分的情 況下代表清晰顏色的顏色數據值。
[0041] 簡要地轉向圖3,示出了高速緩存270、圖像數據230和圖像830的各部分之間的 關系的示例。圖像830由多個區域組成,每一個區域由多個像素塊組成。在圖像830內具 體描繪的可能呈現在顯示器180和380之一或兩者上的是一個示例區域831,其中駐留一個 示例像素塊832。
[0042] 相應地,圖像數據230由多段區域數據組成,每一段區域數據由多段塊數據組成。 圖像數據230內具體描繪的被存儲在存儲器260中的是一個示例區域數據231,其中駐留一 個示例塊數據232。同樣相應地,高速緩存270由多個高速緩存行組成,每一個高速緩存行 由多個部分組成。高速緩存行270內具體描繪的是一個示例高速緩存行271,其中駐留一個 示例部分272。如進一步使用虛線描繪的,示例區域數據231與示例高速緩存行271和示例 區域831相對應,并且示例塊數據232與示例部分272和示例塊832相對應。
[0043] 應該注意,區域831內的塊832的這一闡釋,以及圖像830內的區域831的這一 闡釋不是按比例繪制的。可以設想,圖像830由大量這樣的區域組成,并且像素與圖像830 的尺寸相比成比例地更小。還應該注意,盡管將塊832專門描繪為由2 X 2像素陣列構成, 但是在其它可能的實施例中,像素的其它數量和布置可以構成每一個這樣的塊。可以設想, 構成塊832的像素的數量取決于所渲染的像素的數量以及每次光柵化部件451的輸出。因 而,構成塊832的2X 2像素陣列指代光柵化部件451每次輸出針對四個像素的顏色數據 值。然而,其它實施例也是可能的,其中光柵化部件451輸出針對其它數量的像素的其它數 量的顏色數據值。
[0044] 可以設想,構成區域831的像素的數量(并且因此,構成區域831的塊的數量)至 少部分地取決于高速緩存270的高速緩存行的寬度以及每像素顏色深度(例如,每像素比 特的數量)。因而,通過示例的方式,如果高速緩存行271具有128字節的寬度,并且如果 顏色深度為每像素32比特,則該區域831可以由4X8的像素陣列(S卩,一個的2X2塊的 2X4陣列)構成。在這樣的示例中,2X2塊832將占16個字節,其將變為高速緩存行271 內的部分272的尺寸,以使得高速緩存行271將被劃分為8個部分(包括部分272)。在 這樣的示例中,每部分表將具有指示那些8個部分中的每一個的狀態的至少一個單獨的比 特,并且該每部分表將具有指示相對應的八段塊數據(包括塊數據232)的每一個的狀態的 單獨的比特,以便與區域831的8個塊(包括塊832)相對應。
[0045] 應該注意,盡管塊832能夠確定地由像素的一維陣列構成(例如,1X4像素代替 2X2),并且盡管區域831能夠確定地由一維塊陣列構成(例如1X8塊代替2X4塊),但 是盡可能地設想為被視為期望的二維陣列,以便如本文討論和闡釋的那樣來使用。本領域 的技術人員將容易認識到,典型的光柵化算法傾向于按照一次一個圖形基元的排序來渲染 圖像。假定許多圖形基元是覆蓋像素的二維簇的多邊形(其中最通常是三角形),對一個 圖形基元進行光柵化具有遵循一次渲染像素的二維簇的顏色數據值的模式的傾向。因而, 高速緩存行271與構成區域831的像素的二維陣列相對應的事實增加了這樣一種可能性, 艮P,來自通過渲染覆蓋像素的二維簇的多邊形所得到的顏色值將完全適合高速緩存行271, 而不是占據多個高速緩存行。這可以提供效率的增加。
[0046] 對于像素的二維陣列的這樣的支持可以與為有時構成每一個像素的樣本的二維 陣列提供的支持相一致,其中控制器200操作在超采樣抗鋸齒(SSAA)模式或者多重采樣抗 鋸齒(MSAA)模式中。如本領域的技術人員所熟知的,MSAA和SSAA實現以較高的分辨率進 行有效地渲染,其中將每一個像素劃分為兩個或更多的樣本,并且針對樣本的顏色數據值 是光柵化的輸出,而不是針對整個像素的顏色數據值。例如,在其中在MSAA或SSAA模式期 間每一個像素由2X2陣列的樣本構成的實施例中,高速緩存270、高速緩存控制器275以 及每塊表的操作會改變以便適應2X2的樣本塊。在這樣的示例中,在抗鋸齒模式下樣本的 2X2陣列的處理和在非抗鋸齒模式下像素的2X2陣列的處理會相當類似。
[0047] 如前面討論的,每行表279監視高速緩存270的每一個高速緩存行的狀態。因而, 每行表279包括指示自從高速緩存行271被最后清除(例如逐出)以來高速緩存行271的 任何部分是否被寫入的至少一個比特,以使得存在通過光柵化部件241存儲在其中的顏色 數據值。進一步地,針對高速緩存行270的每行表279內可以存在一個或多個附加的比特, 指示相對于高速緩存270內的其它高速緩存行,多久以前它被最后寫入,并且高速緩存控 制器275在確定接下來要逐出哪一個高速緩存行時可以使用自從最后被寫入以來這樣的 相對時間流逝。然而,應該注意,基于自從每一個高速緩存行被最后寫入以來的相對時間段 來選擇該高速緩存行要被逐出只是用于選擇要被逐出的高速緩存行的一個可能算法。選擇 用于逐出的高速緩存行的其它方案對于本領域技術人員而言將是可能的。
[0048] 如前面討論的,每部分表278監視高速緩存270的每一個高速緩存行的每一個部 分的狀態。因而,每部分表278包括針對高速緩存行271的每一個部分的至少一個比特,包 括部分272,指示自從高速緩存行271最后被清除(例如被逐出)以來那些部分中的每一個 是否被寫入,以使得存在通過光柵化部件241存儲在其中的顏色數據值。
[0049] 如前面討論的,每塊表268監視圖像數據230內的每一段區域數據內的每一段塊 數據的狀態。因而,每塊表268包括針對區域數據231的每一段塊數據的至少一個比特,包 括塊數據232,指示自從圖像830的渲染開始以來這些段塊數據中的每一段都被寫入,以使 得存在作為高速緩存行逐出的結果而存儲在其中的顏色數據值。
[0050] 在圖像830的渲染開始時,將每塊表268的所有比特都設置到一個值,該值指示圖 像數據230的相應段塊數據還沒有被寫入顏色數據值,以使得圖像830的塊中的相對應塊 還沒有被著色。當光柵化部件241隨后輸出針對圖像830的像素塊的顏色數據值時,那些 塊中的每一個的顏色數據值填充高速緩存270的高速緩存行的相應部分。在每行表279中 指示到與區域831的像素塊相對應的高速緩存行271的任何顏色數據值的寫入,并且在每 部分表278中指示針對像素塊832的顏色數據值到部分272中的寫入。
[0051] 在某一點,高速緩存行271被逐出。假定高速緩存行271與區域數據231相對應, 高速緩存行271的逐出導致區域數據231整體被顏色數據值寫入。在該過程中,針對像素 塊832被寫入到部分272的任何顏色數據值都被寫入到塊數據232中。在每塊表268中指 示使用顏色數據值對區域數據231的整體的這一寫入,因為其中的與區域數據231內的所 有段塊數據相對應的比特都被改變以便顯示哪些段塊數據已經被寫入。
[0052] 然而,如前面討論的,當高速緩存行被逐出時,通過復用器276發生它的內容到存 儲在存儲器260中的圖像數據230的相對應部分的傳輸。圖4闡釋了復用器276的操作的 各個方面的進一步細節,該復用器使用針對清晰顏色的顏色數據值的一個或多個實例來復 用來自被逐出的高速緩存行的顏色數據值。如前面討論的,復用器276使用每部分表中的 指示來確定被逐出的高速緩存的哪些部分將傳輸其內容以便填充存儲器260內的圖像數 據230,以及該被逐出的高速緩存的哪些部分將丟棄其內容,支持使用針對其像素的清晰顏 色的顏色數據值來代替其內容,該每部分表指示被逐出的高速緩存行的哪些部分已經通過 光柵化部件214使用顏色數據值進行了寫入。
[0053] 例如,在部分272僅是高速緩存行271內通過光柵化部件241使用針對它的像素 的顏色數據值曾經寫入的部分,則將設置每部分表278的比特以便反映部分272已經被這 樣寫入的事實,而將設置針對高速緩存行271的其它部分的比特以便反映它們都沒有被很 快寫入的事實。然后,當高速緩存行271最終被逐出時,針對高速緩存行271的那些比特將 用于控制復用器276處理高速緩存行271的每一個部分的數據的方式,包括部分272。因為 部分272僅是通過光柵化部件241曾經被寫入的部分,將允許部分272內的顏色數據值沒 有變化地經過復用器276,同時將丟棄可能存在于高速緩存行271的其它部分中的任何未 知數據。代替地,對于高速緩存行271的那些其它部分,復用器276將使用針對它們的每一 個像素的清晰顏色的顏色數據值的實例來代替它們的未知數據。
[0054] 圖4還闡釋了用于處理光柵化部件241嘗試從存儲在存儲器260中的圖像數據 230讀取顏色數據值的實例的可能方案的方面。取決于渲染是否仍在進行中和/或光柵化 部件214嘗試針對圖像830的哪個區域來讀取這樣的數據,可能已經將這樣的數據寫入或 者沒有寫入到存儲器260內的圖像數據230的單元。這可能是尋求的數據仍然在高速緩存 270的高速緩存行中,或者尋求的數據簡單地還沒有被渲染。在尋求的數據被存儲作為存 儲器260內的圖像數據230的一部分的情況下,讀取這一數據的嘗試導致在存儲器260上 執行的一個或多個讀取操作,以便從其來獲取它。在尋求的數據駐留在高速緩存270的高 速緩存行中的情況下,讀取這一數據的嘗試導致使用復用器在高速緩存270上執行的高速 緩存讀取操作,以便將針對所有像素的清晰顏色的顏色數據值插入在還沒有被光柵化部件 241寫入的高速緩存行內。在尋求的數據簡單地還未被渲染的情況下,可以使復用器276供 應針對清晰顏色的顏色數據值的一組多個實例,其適合尋求的數據還未被渲染的情況,因 為清晰顏色是針對還未通過渲染進行著色的像素的默認顏色。
[0055] 返回到圖2,在渲染完成之后,像素顏色部件243可以觸發高速緩存控制器275以 便逐出通過光柵化部件241寫入顏色數據值的所有剩余的高速緩存行。這樣做是為了完成 光柵化部件241的最后輸出到存儲器260內的圖像數據230的傳輸。像素著色部件243然 后利用每塊表268中任何像素區域還未被光柵化部件241著色的任何指示,來操作復用器 276 (或其它部件,未示出)以便利用針對這些區域內的所有像素的清晰顏色的顏色數據值 來填充這些區域。在對任何這樣剩余的未著色像素的這樣的填充完成之后,圖像830現在 已經完成。
[0056] 在一些實施例中,控制例程240進一步包括處理器元件250可執行的演示部件 248,以便操作顯示接口 285 (如果存在)來將圖像830驅動到顯示器180上,如在圖像數據 230中定義的,從而在顯示器180上可視化地呈現圖像830。可選地或附加地,處理器元件 250可以向處理器元件150提供圖像數據230,以便使處理器元件150能夠將最終的圖像數 據275傳輸到另一計算設備(例如,其它計算設備300)或者使處理器元件150能夠執行使 圖像830可視地呈現在顯示器180上的任務,代替這樣做的處理器元件250。
[0057] 重要的是要注意,盡管討論已經集中在根據3D模型數據130推導單個圖像830,但 是不應該視為這表明僅這樣推導一個圖像。換言之,圖像830可以僅是組成運動視頻的幀 流的一個幀,在該視頻中按照類似的方式根據3D模型數據130推導每一個幀。對于渲染這 樣的圖像的領域的技術人員而言將很容易認識到,運動視頻簡單地涉及針對每一個幀重復 這樣的渲染過程。
[0058] 圖5說明了邏輯流2100的一個實施例。邏輯流2100可以代表由本文描述的一個 或多個實施例執行的操作中的一些或全部。更具體地說,邏輯流2100可以說明處理器元件 250在至少執行控制例程240時執行的操作,和/或由計算設備100的其它部件執行的操 作。然而,在其中單個處理器元件執行處理器元件150和250兩者的功能的實施例中,這樣 的操作可以由處理器元件150執行。
[0059] 在2110,計算設備的處理器元件(例如,計算設備100的控制器200的任一處理器 元件250)將針對像素塊(例如,塊832)的顏色像素值存儲在高速緩存行的一部分(例如, 部分272)中,同時留下另一部分未被寫入。如已經討論的,光柵化部件可以推導針對構成 區域塊的二維像素陣列的顏色數據值并且將該顏色數據值輸出到高速緩存中,在該高速緩 存中每一個高速緩存行保持針對構成圖像區域的較大的二像素維陣列的顏色數據值。
[0060] 在2120,將高速緩存行中的哪個部分被寫入以及哪一個或者哪些其它部分還未被 寫入的指示存儲在高速緩存的高速緩存控制器的每部分表中。如已經討論的,高速緩存控 制器維護指不1?速緩存的每一個1?速緩存行的狀態的每行表和指不每一個1?速緩存行的 每一個部分的狀態的每部分表二者。
[0061] 在2130,高速緩存行被逐出。如已經討論的,任何種類的算法可以用于選擇要被逐 出的高速緩存行,其中的一種算法是選擇與其它高速緩存行相比較在進一步進入過去的時 間處最后被寫入的高速緩存行。
[0062] 在2140,使用針對清晰顏色的顏色數據值的一個或多個實例來替換存在于高速緩 存行中的針對自從最后被清除(例如,被逐出)以來還未被寫入的每一個部分的隨機數據。 如前面討論的,經過復用器來路由高速緩存的輸出,利用被維持在每部分表中的哪些部分 已經被寫入的指示來控制該復用器。
[0063] 在2150,將來自被寫入的部分的顏色數據值和替換還未被寫入的部分的隨機數據 的針對清晰顏色的顏色數據值的組合存儲為代表圖像的圖像數據內的區域數據。如前面討 論的,將圖像數據存儲在對于處理器元件可訪問的被指定為要在其中存儲圖像的圖像緩沖 器的單元中。
[0064] 圖6說明了邏輯流2200的一個實施例。邏輯流2200可以代表由本文描述的一個 或多個實施例執行的操作中的一些或全部。更具體地說,邏輯流2200可以說明處理器元件 250在至少執行控制例程240時執行的操作,和/或由計算設備100的其它部件執行的操 作。然而,在單個處理器元件執行處理器元件150和250兩者的功能的實施例中,這樣的操 作可以由處理器元件150執行。
[0065] 在2210,計算設備的處理器元件(例如,該計算設備100的控制器200的任一處理 器元件250)渲染二維像素塊(例如,塊832)。在2220,處理器元件將針對該像素塊的像素 的顏色數據值存儲在高速緩存的單個高速緩存行的一部分中(例如,高速緩存270的高速 緩存行271的部分272)。如已經討論的,光柵化部件可以推導針對構成區域塊的二維像素 陣列的顏色數據值并且將該顏色數據值存儲在高速緩存中,該高速緩存中的每一個高速緩 存行保持針對構成圖像區域的較大的二維像素陣列的顏色數據值。
[0066] 在2230,將高速緩存行中的哪一個部分被寫入的指示存儲在高速緩存的高速緩存 控制器的每部分表中。在2240,將哪一個高速緩存行被寫入的指示存儲在每行表中。如已 經討論的,高速緩存控制器維護指示高速緩存的每一個高速緩存行的狀態的每行表以及指 示每一個高速緩存行的每一個部分的狀態的每部分表兩者。
[0067] 在2250,基于與其它高速緩存行相比較自從該高速緩存行被最后寫入以來逝去的 時間量來選擇該高速緩存行要被逐出。如前面討論的,然而,在其它可能的實施例中,可以 使用用于選擇要被逐出的高速緩存行的其它算法。
[0068] 圖7說明了邏輯流2300的一個實施例。邏輯流2300可以代表由本文描述的一個 或多個實施例執行的操作中的一些或全部。更具體地說,邏輯流2300可以說明處理器元件 250在至少執行控制例程240時執行的操作,和/或由計算設備100的其它部件執行的操 作。然而,在單個處理器元件執行處理器元件150和250兩者的功能的實施例中,這樣的操 作可以由處理器元件150執行。
[0069] 在2310,計算設備的處理器元件(例如,計算設備100的控制器200的任一處理器 元件250)設置每塊表的比特以便指示還沒有使用顏色數據值來寫入代表圖像的圖像數據 的任何一段塊數據。如前面討論的,圖像數據可以由多段區域數據構成,每一個表示構成圖 像的區域的二維像素陣列。并且,每一段區域數據可以由多段塊數據構成,每一個代表構成 區域的塊的較小的二維像素陣列。
[0070] 在2320,將針對圖像的像素區域的顏色數據值存儲在圖像數據的區域數據中。如 前面討論的,隨著高速緩存行的每一次逐出,將針對圖像的整個區域的顏色數據值傳輸到 并且存儲在代表該圖像的圖像數據的區域數據中。
[0071] 在2330,將區域數據的多段塊數據已被寫入的指示存儲在每塊表中。在2340,在 完成圖像的渲染時,使用塊數據的哪些段已經被寫入的指示來控制使用代表清晰顏色的顏 色數據值的多段塊數據的選擇性填充。
[0072] 圖8說明了邏輯流2400的一個實施例。邏輯流2400可以表示由本文描述的一個 或多個實施例執行的操作中的一些或全部。更具體地說,邏輯流2400可以說明處理器元件 250在至少執行控制例程240時執行的操作,和/或由計算設備100的其它部件執行的操 作。然而,在單個處理器元件執行處理器元件150和250兩者的功能的實施例中,這樣的操 作可以由處理器元件150執行。
[0073] 在2410,計算設備的處理器元件(例如,計算設備100的控制器200的任一處理器 元件250)嘗試讀取圖像的區域像素的一個或多個顏色數據值。在2420,檢查計算設備的存 儲器(例如,存儲器260)以便確定這些顏色數據值是否已經被寫入與該區域相對應的區域 數據中。如已經解釋的,可以檢查每塊表的比特以便確定是否已經使用顏色數據值對圖像 數據的區域數據的多段塊數據進行了寫入。如果尋求的顏色數據值已經被寫入存儲器內的 該區域數據中,則在2422將該顏色數據值從該存儲器中讀出。
[0074] 然而,如果這些顏色數據值還未被寫入到存儲器,則在2430,做出檢查以便確定顏 色數據值是否位于計算設備的高速緩存(例如,高速緩存270)中還未被逐出到存儲器的高 速緩存行中。如前面討論的,每行表跟蹤每一個高速緩存行的狀態,包括該高速緩存行的任 何部分是否已經被寫入任何顏色數據值。如果尋求的顏色數據值已經被寫入到高速緩存的 高速緩存行中,則在2432,將該顏色數據值從該高速緩存中讀出。
[0075] 然而,如果這些顏色數據值既沒有在存儲器中也沒有在高速緩存中被找到,則使 用針對該圖像區域的每一個像素的清晰顏色的顏色數據值的多個實例來對所嘗試的讀取 操作做出響應。這是在保持清晰顏色作為針對每一個像素的默認顏色,直到經由渲染被著 色。
[0076] 圖9說明了適于實現先前描述的各種實施例的示例性處理架構3000的實施例。更 具體地說,處理架構3000 (或其變形)可以實現為計算設備1000和/或控制器200的一部 分。應該注意,向處理架構3000的部件給出附圖標記,該附圖標記中的后兩位數字與較早 描繪和描述的作為計算設備1000和控制器200的一部分的部件的附圖標記的最后兩位數 字相對應。這樣做是作為一種輔助手段來關聯計算設備1000的這些部件和控制器200,可 以在各種實施例中采用這一示例性處理架構。
[0077] 處理架構3000包括常用于數字處理中的各種元件,包括但不局限于:一個或多個 處理器、多核處理器、協處理器、存儲單元、芯片集、控制器、外圍設備、接口、振蕩器、定時設 備、視頻卡、音頻卡、多媒體輸入/輸出(I/O)部件、電源等等。如在本申請中使用的,術語 "系統"和"部件"意在指代計算設備中執行數字處理的實體,該實體是硬件、硬件和軟件的 組合、軟件或執行中的軟件,其示例由這里闡釋的示例性處理架構提供。例如,部件可以是 但不局限于:在處理器元件上運行的處理、處理器元件自身、可以采用光學和/或磁存儲介 質的存儲設備(例如硬盤驅動、陣列式多存儲驅動等等)、軟件對象、可執行指令序列、執行 的線程、程序和/或整個計算設備(例如,整個計算機)。通過說明的方式,在服務器上運 行的應用程序以及服務器二者都可以是部件。一個或多個部件可以駐留在處理和/或執行 的線程中,并且部件可以在本地位于一個計算設備上和/或分布在兩個或更多個計算設備 之間。進而,部件可以通過各種通信媒介彼此可通信地耦合以便協調操作。該協調可以涉 及信息的單向或雙向交換。例如,部件可以按照經過通信介質傳遞的信號的形式來傳遞信 息。信息可以實現為分配到一條或多條信號線的信號。消息(包括命令、狀態、地址或數據 消息)可以是這樣的信號中的一個或者可以是多個這樣的信號,并且可以經過各種連接和 /或接口中的任意一個來串行或基本上并行地進行傳輸。
[0078] 如所闡釋的,在實現處理架構3000時,計算設備至少包括處理器元件950、支持邏 輯951、存儲器960、控制器900、連接到其它設備的接口 990和連接955。如將解釋的,取決 于實現處理架構3000的計算設備的各個方面,包括它的預期用途和/或使用條件,這樣的 計算設備可以進一步包括額外的部件,例如但不局限于顯示接口 985。
[0079] 連接955包括一個或多個總線、點對點互連、收發器、緩沖器、交叉點交換機和/或 至少將處理器元件950可通信地耦合到存儲器960的其它導體和/或邏輯。連接955可以 進一步將處理器元件950耦合到接口 990、音頻子系統970和顯示接口 985中的一個或多個 (取決于這些和/或其它部件中的哪些也存在)。在處理器元件950通過連接955進行這 樣的耦合時,處理器元件950能夠執行各種以上詳細描述的任務,對于計算設備1000和控 制器200的任何一個實現處理體系結構3000。連接955可以利用各種技術的任意一種或技 術的組合來實現,通過這樣的技術來光學和/或電學地傳送信號。進一步地,連接955的至 少一部分可以采用符合各種工業標準的任意一個的定時和/或協議,包括但不局限于:力口 速圖形端口(AGP)、插件總線,擴展工業標準結構(E-ISA)、微通道結構(MCA)、網絡用戶總 線、外圍部件互連總線(可擴展)(PCI-X)、PCI總線(PCI-E)、個人計算機存儲卡國際協會 (PCMCIA)總線、超傳輸?、快速通道等等。
[0080] 如前面討論的,處理器元件950 (相應于處理器元件150和250)可以包括各種市 售的處理器中的任意一個,采用各種技術的任意一種并且使用按照任意一種方式物理地組 合的一個或多個核心來實現。
[0081] 如前面討論的,存儲器960(相應于存儲器160和260)可以由基于各種技術或技 術的組合中的任意一種的一個或多個不同的存儲設備構成。更具體地說,如所闡釋的,存儲 器960可以包括易失性存儲器961 (例如,基于一種或多種形式的RAM技術的固態存儲器)、 非易失性存儲器962 (例如,固態、鐵磁或不要求提供恒定電力以保持其內容的存儲器)和 可移除媒體存儲器963(例如,可移除硬盤或固態存儲卡存儲器,信息可以通過它們在計算 設備之間傳送)。存儲器960可能包括多個不同類型的存儲器的描述是在意識到計算設備 中多于一種類型的存儲設備的普遍使用,其中一種類型提供相對快速的讀取和寫入能力, 通過處理器元件950能夠更快速地操控數據(但是可能使用持續要求電力的"易失性"技 術),而另一種類型提供相對高密度的非易失性存儲器(但是可能提供相對慢的讀取和寫 入能力)。
[0082] 假定通常采用不同技術的不同存儲設備的不同特性,這些不同的存儲設備經過不 同的存儲器控制器耦合到計算設備的其它部分也是常見的,這些不同的存儲器控制器經過 不同的接口耦合到各自不同的存儲設備。通過示例的方式,在易失性存儲器961存在并且 基于RAM技術的情況下,該易失性存儲器961可以經過向易失性存儲器961提供合適接口 的存儲器控制器965a來可通信地耦合到連接955,該易失性存儲器961可能采用行和列尋 址,并且其中存儲器控制器965a可以執行行刷新和/或其它維護任務以便幫助保持存儲在 易失性存儲器961中的信息。通過另一示例的方式,在非易失性存儲器962存在并且包括 一個或多個鐵磁和/或固態硬盤驅動的情況下,該非易失性存儲器962可以經過向非易失 性存儲器962提供合適接口的存儲器控制器965b可通信地耦合到連接955,該非易失性存 儲器962可能采用信息塊尋址和/或柱狀尋址和扇形尋址。通過又一示例的方式,在可移 除媒體存儲器963存在并且包括采用一個或多個計算機可讀存儲介質片969的光學和/或 固態硬盤驅動的情況下,該可移除媒體存儲器963可以經過向可移除媒體存儲器963提供 合適接口的存儲器控制器965c可通信地耦合到連接955,該移除媒體存儲器963可能采用 信息塊尋址,并且其中,存儲器控制器965c可以按照特定的方式來協調讀取、擦除和寫入 操作,以便延長計算機可讀存儲介質969的壽命。
[0083] 易失性存儲器961或非易失性存儲器962中的一個或者另一個可以包括機器可讀 存儲介質形式的制造物品,在該制造物品上存儲有包括由處理器元件950可執行的指令序 列的例程,取決于每一個所基于的技術。通過示例的方式,在非易失性存儲器962包括基于 鐵磁的磁盤驅動(例如,所謂的"硬驅")的情況下,每一個這樣的磁盤驅動典型地采用一個 或多個旋轉盤片,在其上按照各種模式來沉積磁性響應顆粒的涂層并且進行磁性取向以便 按照與諸如軟盤的存儲介質類似的方式來存儲信息,例如指令序列。通過另一示例的方式, 非易失性存儲器962可以由固體存儲設備的排構成,以便按照與壓縮閃卡類似的方式來存 儲信息,例如指令序列。再者,在不同時段在計算設備中采用不同類型的存儲設備來存儲可 執行例程和/或數據也是常見的。因而,可以將包括要由處理器元件950執行的包括指令序 列的程序最初存儲在計算機可讀存儲介質969上,并且可移除媒體存儲器963可以隨后用 于將該程序復制到非易失性存儲器962用于長期存儲,而不要求計算機可讀存儲介質969 和/或易失性存儲器961的持續存在,以便在執行例程時使能處理器元件950的更加快速 的存取。
[0084] 如前面討論的,接口 990 (可能相應于接口 190)可以采用與各種通信技術中的任 意一種相對應的各種信令技術中的任意一種,所述各種通信技術可以用于將計算設備可通 信地耦合到一個或多個其它設備。再者,各種形式的有線或無線信令中的一個或兩個可以 用于使處理器兀件950能夠與輸入/輸出設備(例如,所描述的不例鍵盤920或打印機925) 和/或其它計算設備進行交互,可能經過網絡(例如,網絡999)或互連的網絡集合。在意識 到通常必須由任意一個計算設備支持的多種類型的信令和/或協議的通常很大不同的特 性中,將接口 990描述為包括多個不同的接口控制器995a、995b和995c。接口控制器995a 可以采用各種類型的有線數據串行接口或射頻無線接口中的任意一種,以便從諸如所描述 的鍵盤920的用戶輸入設備接受串行傳輸的消息。接口控制器955b可以采用各種基于布 線或無線的信令、定時和/或協議中的任意一種以便經過所描述的網絡999 (也許是由一個 或多個鏈接、更小的網絡構成的網絡,或者也許是互聯網)來接入其它計算設備。接口 955c 可以采用能夠使用串行或并行信號傳輸來向所描述的打印機925傳送數據的各種導電布 線中的任意一種。經過接口 990的一個或多個接口控制器可通信地耦合的設備的其它示例 包括但不局限于:麥克風、遠程控制、手寫筆、讀卡器、指紋識別器、虛擬現實交互手套、圖形 輸入板、搖桿、其它鍵盤、視網膜掃描儀、觸摸屏的觸摸輸入部件、軌跡球、各種傳感器、用于 監控人的移動以便接受命令和/或經由手勢和/或面部表情由這些人發出的數據的相機或 相機陣列、激光打印機、噴墨打印機、機械機器人、銑床等等。
[0085] 在計算設備可通信地耦合到(或許,實際上結合)顯示器(例如,所描述的示例顯 示器980,相應于顯示器180)的情況下,實現處理架構3000的這樣的計算設備還可以包括 顯示接口 985。盡管在可通信地耦合到顯示器時可以采用更一般化類型的接口,但是當在 顯示器上視覺地顯示各種形式的內容時經常要求多少專門的附加處理,以及所使用的基于 布線的接口的多少特殊的性質,這往往使得提供不同的顯示接口是期望的。在顯示器980 的通信耦合中可以由顯示接口 985采用的有線和/或無線信令技術可以利用符合各種工業 標準中的任意一種的信令和/或協議,包括但不局限于:各種模擬視頻接口、數字視頻接口 (DVI)、顯不端口等等中的任意個。
[0086] 更一般地,計算設備1000的各種元件可以包括各種硬件元件、軟件元件、或兩者 的結合。硬件元件的示例可以包括設備、邏輯設備、部件、處理器、微處理器、電路、處理器 元件、電路元件(例如,晶體管、電阻器、電容器、電感器等等)、集成電路、專用集成電路 (ASIC)、可編程邏輯器件(PLD)、數字信號處理器(DSP)、現場可編程門陣列(FPGA)、存儲器 單元、邏輯門、寄存器、半導體設備、芯片、微芯片、芯片集等等。軟件元件的示例可以包括軟 件部件、程序、應用、計算機程序、應用程序、系統程序、軟件開發程序、計算機程序、操作系 統軟件、中間件、固件、軟件模塊、例程、子例程、函數、方法、過程、軟件界面、應用程序接口 (API)、指令集、計算代碼、計算機代碼、代碼段、計算機代碼段、字、值、符號或它們的任意組 合。然而,確定實施例是使用硬件元件和/或軟件元件實現可以根據各種因素變化,例如, 期望的計算速率、功率水平、耐熱性、處理周期預算、輸入數據速率、輸出數據速率、存儲器 資源、數據總線速度以及其它設計或性能約束,如對于給定實現所期望的。
[0087] 一些實施例可以使用表述"一個實施例"或"實施例"以及它們的派生詞來描述。 這些術語意味著結合該實施例描述的特定的特征、結構、或者特性可以包括在至少一個實 施例中。短語"在一個實施例中"在說明書中各個地方的出現不一定都指代相同的實施例。 此外,可以使用表述"耦合"和"連接"以及它們的派生詞來描述一些實施例。這些術語并 不一定是彼此的同義詞。例如,可以使用術語"連接"和"耦合"來描述一些實施例,以便指 示兩個或更多個元件彼此直接物理或電接觸。然而,術語"耦合"也可以意味著兩個或更多 個元件沒有彼此直接地接觸,但是仍然協作或彼此交互。而且,可以組合來自不同實施例的 方面或元件。
[0088] 要強調的是,提供本公開的摘要以便允許讀者快速地確定本技術公開的性質。它 被提交的理解是,其不會被用來解釋或限制權利要求的范圍或含義。此外,在前面的詳細描 述中,可以看出,出于簡化本公開的目的,在單個實施例中將各種特征分組在一起。這一公 開的方法不應該被解釋為反映要求保護的實施例比在每一項權利要求中明確引述的特征 更多的特征的意圖。相反,如以下權利要求反映的,創造性主題在于少于單個公開實施例的 所有特征。因而,將下面的權利要求由此結合到詳細說明中,每一個權利要求自身作為單獨 的實施例。在所附的權利要求中,使用術語"包括"和"在其中"分別作為各自的術語"包含" 和"其中"的普通英語的等同物。而且,術語"第一"、"第二"、"第三"等等僅僅作為標簽使 用,并且并不意在對其對象強加數字要求。
[0089] 上面描述的內容包括所公開的體系結構的示例。當然,不可能描述部件和/或方 法的每一個可想到的組合,但是本領域的普通技術人員可以認識到,許多進一步的組合和 排列都是可能的。因此,該新穎的體系結構意在涵蓋落入所附權利要求的精神和范圍內的 所有這樣的更改、修改和變化。詳細的公開現在轉向提供涉及進一步實施例的示例。下面 提供的示例并不意在是限制性的。
[0090] 一種用于渲染視覺圖像的裝置的示例包括處理器元件;以及用于在處理器元件上 執行的邏輯,以便將圖像的像素塊的顏色數據值存儲在高速緩存的高速緩存行的第一部分 中,將該第一部分已經被寫入和高速緩存行的第二部分還未被寫入的指示存儲在每部分表 中,將第一部分和第二部分的內容逐出到代表圖像并且被存儲在存儲器中的圖像數據,對 存儲在每部分表中的指示做出響應,將第一部分的內容存儲在圖像數據中,并且將清晰顏 色的顏色數據值的實例代替第二部分的內容而存儲在圖像數據中。
[0091] 裝置的上述示例,其中像素塊包括圖像的像素區域的像素的第一個二維陣列,并 且該區域包括比第一個二維陣列更大的像素的第二個二維陣列。
[0092] 裝置的任一上述示例,其中所述邏輯用于將與高速緩存的其它高速緩存行相比較 何時對該高速緩存行進行最后寫入的指示存儲在每行表中,并且對與至少一個其它高速緩 存行相比較該高速緩存行最近較少被寫入做出響應,選擇所述高速緩存行要被逐出。
[0093] 裝置的任何的上述示例,其中所述邏輯用于通過對象的至少一個圖形基元的光柵 化來推導像素塊的顏色數據值。
[0094] 裝置的任何的上述示例,其中所述邏輯用于對圖像的渲染完成做出響應,逐出高 速緩存中仍然存儲顏色數據值的所有高速緩存行。
[0095] 裝置的任何的上述示例,其中所述裝置包括復用器,所述復用器對存儲在每部分 表中的指示做出響應,將第一部分的內容傳輸到存儲器,丟棄第二部分的內容,并且向存儲 器提供清晰顏色的顏色數據值的實例來代替第二部分的內容。
[0096] 裝置的任何的上述示例,其中所述邏輯用于初始化每塊表中的比特,以便指示所 述圖像數據的第一區域數據中沒有塊數據的段被寫入和所述圖像數據的第二區域數據中 沒有塊數據的段被寫入,并且改變每塊表的比特的子集,以便對第一部分的內容和清晰顏 色的顏色數據值的實例在所述第一區域數據中的存儲做出響應,存儲所述第一區域數據的 多段塊數據已被寫入的指示。
[0097] 裝置的任何的上述示例,其中所述邏輯用于對圖像的渲染完成做出響應并且對存 儲在每塊表中的第二區域數據中沒有塊數據的段已被寫入的指示做出響應,將清晰顏色的 顏色數據值的多個實例存儲在第二區域數據中。
[0098] 裝置的任何的上述示例,其中每塊表用于可選地用于指示單個像素的樣本塊是否 按照反鋸齒模式被寫入。
[0099] 裝置的任何的上述示例,其中所述邏輯用于對像素的顏色數據值是被存儲在高速 緩存行中還是被存儲在圖像數據中做出響應,選擇高速緩存行和圖像數據中的一個,以便 提供像素的顏色數據值,以便對讀取該像素的顏色數據值的讀取操作做出響應。
[0100] 裝置的任何的上述示例,其中所述邏輯用于對像素的顏色數據值還未被存儲在高 速緩存行或圖像數據中做出響應,提供清晰顏色的顏色數據值,以便對讀取操作做出響應。 [0101] 用于渲染視覺圖像的另一裝置的示例包括處理器元件;以及邏輯,所述邏輯用于 初始化每塊表中的比特,以便指示在代表圖像的圖像數據的第一區域數據中沒有塊數據的 段被寫入和在所述圖像數據的第二區域數據中沒有塊數據的段被寫入,將顏色數據值存儲 在第一區域數據中,將該第一區域數據已被寫入的指示存儲在每塊表中,并且對圖像的渲 染完成做出響應并對存儲在每塊表中的第二區域數據中的所述第二區域數據中沒有塊數 據的段已被寫入做出響應,將清晰顏色的顏色數據值的多個實例存儲在第二區域數據中。
[0102] 另一裝置的上述示例,其中所述裝置包括高速緩存,并且所述邏輯用于將所述圖 像的像素塊的顏色數據值存儲在所述高速緩存的高速緩存行的第一部分中,將第一部分已 被寫入的指示和高速緩存行的第二部分還未被寫入的指示存儲在每部分表中,將第一和第 二部分的內容逐出到圖像數據,并且對存儲在每部分表中的指示做出響應,將第一部分的 內容存儲在圖像數據中,且將清晰顏色的顏色數據值的實例代替第二部分的內容而存儲在 第一區域數據中。
[0103] 另一裝置的任一上述示例,其中所述像素塊包括所述圖像的像素區域的像素的第 一個二維陣列,并且所述區域包括比所述第一個二維陣列更大的像素的第二個二維陣列。
[0104] 另一裝置的任一上述示例,其中所述邏輯用于將與高速緩存的其它高速緩存行相 比較何時對該高速緩存行進行最后寫入的指示存儲在每行表中;并且對與至少一個其它高 速緩存行相比較該高速緩存行最近較少被寫入做出響應,選擇該高速緩存行要被逐出。
[0105] 另一裝置的任何的上述示例,其中所述邏輯用于通過對象的至少一個圖像基元的 光柵化來推導像素塊的顏色數據值。
[0106] 另一裝置的任何的上述示例,其中所述邏輯用于對圖像的渲染完成做出響應,逐 出高速緩存中仍然存儲顏色數據值的所有高速緩存行。
[0107] 一種渲染視覺圖像的計算機實現的方法的示例包括通過對象的至少一個圖像基 元的光柵化來推導圖像的二維像素塊的顏色數據值,將所述顏色數據值存儲在高速緩存的 高速緩存行的第一部分中,將該第一部分已被寫入和該高速緩存行的第二部分還未被寫入 的指示存儲在每部分表中,將第一和第二部分的內容逐出到代表該圖像并且被存儲在存儲 器中的圖像數據,并且對存儲在每部分表中的指示做出響應,將該第一部分的內容存儲在 圖像數據中且將清晰顏色的顏色數據值的實例代替第二部分的內容而存儲在圖像數據中。
[0108] 計算機實現的方法的上述示例,其中所述方法包括將與高速緩存的其它高速緩存 行相比較該高速緩存行何時被最后寫入的指示存儲在每行表中,并且對與至少一個其它高 速緩存行相比較該高速緩存行最近較少被寫入做出響應,選擇該高速緩存行要被逐出。
[0109] 計算機實現的方法的任一上述示例,其中所述方法包括對圖像的渲染完成做出響 應,逐出高速緩存中仍然存儲顏色數據值的所有高速緩存行。
[0110] 計算機實現的方法的任何的上述示例,其中所述方法包括初始化每塊表中的比 特,以便指示所述圖像數據的第一區域數據中沒有塊數據的段被寫入和所述圖像數據的第 二區域數據中沒有塊數據的段被寫入,并且改變每塊表的比特的子集,以便對所述第一部 分的內容和所述清晰顏色的顏色數據值在所述第一區域數據中的存儲做出響應,存儲所述 第一區域數據的多段塊數據已被寫入的指示。
[0111] 計算機實現的方法的任何的上述示例,其中所述方法包括對圖像的渲染完成做出 響應并且對存儲在每塊表中的所述第二區域數據中沒有塊數據的段已被寫入的指示做出 響應,將清晰顏色的顏色數據值的多個實例存儲在第二區域數據中。
[0112] 計算機實現的方法的任何的上述示例,其中所述方法包括對像素的顏色數據值是 被存儲在高速緩存行還是被存儲在圖像數據中做出響應,選擇高速緩存行和圖像數據中的 一個,以便提供像素的顏色數據值,以便對讀取所述像素的顏色數據值的讀取操作做出響 應。
[0113] 計算機實現的方法的任何的上述示例,其中所述方法包括對所述像素的顏色數據 值還未被存儲在高速緩存行或圖像數據中做出響應,提供清晰顏色的顏色數據值,以便對 讀取操作做出響應。
[0114] 一種用于渲染可視圖像的裝置的示例包括用于執行計算機實現的方法的任何上 述示例的模塊。
[0115] 一種包括指令的至少一個機器可讀存儲介質的示例,當被計算設備執行時,所述 指令使所述計算設備通過對象的至少一個圖像基元的光柵化來推導該對象的圖像的二維 像素塊的顏色數據值,將該顏色數據值存儲在高速緩存的高速緩存行的第一部分中,將該 第一部分已被寫入和高速緩存行的第二部分還未被寫入的指示存儲在每部分表中,將第一 部分和第二部分的內容逐出到代表圖像并且被存儲在存儲器中的圖像數據,并且對存儲在 每部分表中的指示做出響應,將第一部分的內容存儲在圖像數據中,且將清晰顏色的顏色 數據值的實例代替第二部分的內容而存儲在圖像數據中。
[0116] 至少一個機器可讀存儲介質的上述示例,其中使所述計算設備存儲與高速緩存的 其它高速緩存行相比較該高速緩存行何時被最后寫入的指示存儲在每行表中,并且對與至 少一個其它高速緩存行相比較該高速緩存行最近較少被寫入做出響應,選擇該高速緩存行 要被逐出。
[0117] 至少一個機器可讀存儲介質的任一上述實例,其中使所述計算設備對圖像的渲染 完成做出響應而逐出高速緩存中仍然存儲顏色數據值的所有高速緩存行。
[0118] 至少一個機器可讀存儲介質的任何的上述示例,其中使所述計算設備初始化每塊 表中的比特,以便指示圖像數據的第一區域數據中沒有塊數據的段被寫入和在圖像數據的 第二區域數據中沒有塊數據的段被寫入,并且改變每塊表的比特的子集,以便對第一部分 的內容和清晰顏色的顏色數據值在第一區域數據中的存儲做出響應,存儲所述第一區域數 據的塊數據的多個段已被寫入的指示。
[0119] 至少一個機器可讀存儲介質的任何的上述示例,其中使所述計算設備對圖像的渲 染完成做出響應并且對存儲在每塊表中的第二區域數據中沒有塊數據的段已被寫入的指 示做出響應,將清晰顏色的顏色數據值的多個實例存儲在第二區域數據中。
[0120] 至少一個機器可讀存儲介質的任何的上述示例,其中使所述計算設備對像素的顏 色數據值被存儲在高速緩存行中還是被存儲在圖像數據中做出響應,選擇高速緩存行和圖 像數據中的一個,以便提供像素的顏色數據值,以便對用于讀取該像素的顏色數據值的讀 取操作做出響應。
[0121] 至少一個機器可讀存儲介質的任何的上述示例,其中使所述計算設備對像素的顏 色數據值還未被存儲在高速緩存行或圖像數據中做出響應,提供清晰顏色的顏色數據值, 以便對讀取操作做出響應。
[0122] 用于渲染視覺圖像的又一裝置的示例包括模塊,所述模塊通過對象的至少一個圖 像基元的光柵化來推導該對象的圖像的二維像素塊的顏色數據值,將所述顏色數據值存儲 在高速緩存的高速緩存行的第一部分中,將所述第一部分已被寫入和所述高速緩存行的第 二部分還未被寫入的指示存儲在每部分表中,將第一部分和第二部分的內容逐出到代表所 述圖像并且被存儲在存儲器中的圖像數據,并且對存儲在每部分表中的指示做出響應,將 所述第一部分的內容存儲到所述圖像數據,且將清晰顏色的顏色數據值的實例代替第二部 分的內容而存儲在所述圖像數據中。
[0123] 又一裝置的上述示例包括模塊,所述模塊用于將與所述高速緩存的其它高速緩存 行相比較該高速緩存行何時被最后寫入的指示存儲在每行表中,并且對與至少一個其它高 速緩存行相比較該高速緩存行最近較少被寫入做出響應,選擇該高速緩存行要被逐出。
[0124] 又一裝置的任一上述示例包括模塊,所述模塊用于對圖像的渲染完成做出響應, 逐出高速緩存中仍然存儲顏色數據值的所有高速緩存行。
[0125] 又一裝置的任何的上述示例包括模塊,所述模塊用于初始化每塊表中的比特,以 便指示所述圖像數據的第一區域數據中沒有塊數據的段被寫入和所述圖像數據的第二區 域數據中沒有塊數據的段被寫入,并且改變每塊表的比特的子集,以便對所述第一部分的 內容和所述清晰顏色的顏色數據值的實例在所述第一區域數據中的存儲做出響應,存儲所 述第一區域數據的多段塊數據已被寫入的指示。
[0126] 又一裝置的任何的上述示例包括模塊,所述模塊用于對圖像的渲染完成做出響應 并且對存儲在每塊表中的第二區域數據中的沒有塊數據的段已被寫入的指示做出響應,將 清晰顏色的顏色數據值的多個實例存儲在第二區域數據中。
[0127] 又一裝置的任何的上述示例包括模塊,所述模塊用于對像素的顏色數據值被存儲 在高速緩存行中還是被存儲在圖像數據中做出響應,選擇高速緩存行和圖像數據中的一 個,以便提供像素的顏色數據值,以便對讀取操作做出響應。
[0128] 又一裝置的任何的上述示例包括模塊,所述模塊用于對像素的顏色數據值還未被 存儲在高速緩存行或圖像數據中做出響應,提供清晰顏色的顏色數據值,以便對讀取操作
【權利要求】
1. 一種用于渲染視覺圖像的裝置,包括: 處理器元件;以及 用于在處理器元件上執行的邏輯,所述邏輯用于: 將圖像的像素塊的顏色數據值存儲在高速緩存的高速緩存行的第一部分中; 將所述第一部分已被寫入和所述高速緩存行的第二部分還未被寫入的指示存儲在每 部分表中; 將所述第一部分和所述第二部分的內容逐出到代表所述圖像并且被存儲在存儲器中 的圖像數據;以及 對存儲在所述每部分表中的所述指示做出響應,將所述第一部分的所述內容存儲在所 述圖像數據中,并且將清晰顏色的顏色數據值的實例代替所述第二部分的所述內容而存儲 在所述圖像數據中。
2. 如權利要求1所述的裝置,所述像素塊包括所述圖像的像素區域的像素的第一二維 陣列,并且所述區域包括比所述第一二維陣列更大的像素的第二二維陣列。
3. 如權利要求1所述的裝置,所述邏輯用于: 將與所述高速緩存的其它高速緩存行相比較所述高速緩存行何時被最后寫入的指示 存儲在每行表中;并且 對與至少一個其它高速緩存行相比較所述高速緩存行最近較少被寫入做出響應,選擇 要被逐出的所述高速緩存行。
4. 如權利要求1所述的裝置,所述邏輯用于通過對象的至少一個圖像基元的光柵化來 推導所述像素塊的所述顏色數據值。
5. 如權利要求4所述的裝置,所述邏輯用于對所述圖像的渲染完成做出響應,逐出所 述高速緩存中仍然存儲顏色數據值的所有高速緩存行。
6. 如權利要求1所述的裝置,包括復用器,所述復用器對存儲在所述每部分表中的指 示做出響應以便: 將所述第一部分的所述內容傳送到所述存儲器; 丟棄所述第二部分的所述內容;并且 向所述存儲器提供清晰顏色的顏色數據值的實例來代替所述第二部分的所述內容。
7. 如權利要求1所述的裝置,包括每塊表,所述邏輯用于: 初始化所述每塊表中的比特,以便指示所述圖像數據的第一區域數據中沒有塊數據的 段被寫入以及所述圖像數據的第二區域數據中沒有塊數據的段被寫入;并且 改變所述每塊表的所述比特的子集,以便對所述第一部分的所述內容和所述清晰顏色 的所述顏色數據值的所述實例在所述第一區域數據中的存儲做出響應,存儲所述第一區域 數據的多段塊數據已被寫入的指示。
8. 如權利要求7所述的裝置,所述邏輯用于對所述圖像的渲染完成做出響應并且對存 儲在所述每塊表中的所述第二區域數據中沒有塊數據的段已被寫入的指示做出響應,將所 述清晰顏色的所述顏色數據值的多個實例存儲在所述第二區域數據中。
9. 如權利要求7所述的裝置,所述每塊表用于可選地用于指示單個像素的樣本塊是否 按照反鋸齒模式被寫入。
10. 如權利要求1所述的裝置,所述邏輯用于對所述像素的所述顏色數據值被存儲在 所述高速緩存行中還是被存儲在所述圖像數據中做出響應,選擇所述高速緩存行和所述圖 像數據中的一個,以便提供像素的顏色數據值來對用于讀取所述像素的所述顏色數據值的 讀取操作做出響應。
11. 如權利要求10所述的裝置,所述邏輯用于對所述像素的所述顏色數據值還未被存 儲在所述高速緩存行中或者所述圖像數據中做出響應,提供所述清晰顏色的顏色數據值, 以便對讀取操作做出響應。
12. -種用于渲染視覺圖像的裝置,包括: 處理器元件;以及 邏輯,所述邏輯用于: 初始化每塊表中的比特,以便指示代表所述圖像的圖像數據的第一區域數據中沒有塊 數據的段被寫入以及所述圖像數據的第二區域數據中沒有塊數據的段被寫入; 將顏色數據值存儲在所述第一區域數據中; 將所述第一區域數據已被寫入的指示存儲在所述每塊表中;以及 對所述圖像的渲染完成做出響應并且對存儲在所述每塊表中的所述第二區域數據中 沒有塊數據的段已被寫入的指示做出響應,將清晰顏色的顏色數據值的多個實例存儲在所 述第二區域數據中。
13. 如權利要求12所述的裝置,包括高速緩存,所述邏輯用于: 將所述圖像的像素塊的顏色數據值存儲在所述高速緩存的高速緩存行的第一部分 中; 將所述第一部分已被寫入以及所述高速緩存行的第二部分還未被寫入的指示存儲在 每部分表中; 將所述第一部分和所述第二部分的內容逐出到所述圖像數據;并且 對存儲在所述每部分表中的所述指示做出響應,將所述第一部分的所述內容存儲在所 述圖像數據中,并且將清晰顏色的顏色數據值的實例代替所述第二部分的所述內容而存儲 在所述第一區域數據中。
14. 如權利要求13所述的裝置,所述像素塊包括所述圖像的像素區域的像素的第一二 維陣列,并且所述區域包括比所述第一二維陣列更大的像素的第二二維陣列。
15. 如權利要求13所述的裝置,所述邏輯用于: 將與所述高速緩存的其它高速緩存行相比較所述高速緩存行何時被最后寫入的指示 存儲在每行表中;并且 對與至少一個其它高速緩存行相比較所述高速緩存行最近較少被寫入做出響應,選擇 要被逐出的所述高速緩存行。
16. 如權利要求13所述的裝置,所述邏輯用于通過對象的至少一個圖像基元的光柵化 來推導所述像素塊的所述顏色數據值。
17. 如權利要求13所述的裝置,所述邏輯用于對所述圖像的渲染完成做出響應,逐出 所述高速緩存中仍然存儲顏色數據值的所有高速緩存行。
18. -種渲染視覺圖像的計算機實現的方法,包括: 通過對象的至少一個圖像基元的光柵化來推導圖像的二維像素塊的顏色數據值; 將所述顏色數據值存儲在高速緩存的高速緩存行的第一部分中; 將所述第一部分已被寫入和所述高速緩存行的第二部分還未被寫入的指示存儲在每 部分表中; 將所述第一部分和所述第二部分的內容逐出到代表所述圖像并且被存儲在存儲器中 的圖像數據;以及 對存儲在所述每部分表中的所述指示做出響應,將所述第一部分的所述內容存儲在所 述圖像數據中,并且將清晰顏色的顏色數據值的實例代替所述第二部分的所述內容而存儲 在所述圖像數據中。
19. 如權利要求18所述的計算機實現的方法,包括: 將與所述高速緩存的其它高速緩存行相比較所述高速緩存行何時被最后寫入的指示 存儲在每行表中;并且 對與至少一個其它高速緩存行相比較所述高速緩存行最近較少被寫入做出響應而選 擇要被逐出的所述高速緩存行。
20. 如權利要求18所述的計算機實現的方法,包括對所述圖像的渲染完成做出響應, 逐出所述高速緩存中仍然存儲顏色數據值的所有高速緩存行。
21. 如權利要求18所述的計算機實現的方法,包括: 初始化每塊表中的比特,以便指示所述圖像數據的第一區域數據中沒有塊數據的段被 寫入以及所述圖像數據的第二區域數據中沒有塊數據的段被寫入;并且 改變所述每塊表的所述比特的子集,以便對所述第一部分的所述內容和所述清晰顏色 的所述顏色數據值的所述實例在第一區域數據中的存儲做出響應,存儲所述第一區域數據 的多段塊數據已被寫入的指示。
22. 如權利要求21所述的計算機實現的方法,包括對所述圖像的渲染完成做出響應并 且對存儲在所述每塊表中的所述第二區域數據中沒有塊數據的段已被寫入的指示做出響 應,將所述清晰顏色的所述顏色數據值的多個實例存儲在所述第二區域數據中。
23. 如權利要求18所述的計算機實現的方法,包括對所述像素的所述顏色數據值是被 存儲在所述高速緩存行還是被存儲在所述圖像數據中做出響應,選擇所述高速緩存行和所 述圖像數據中的一個,以便提供像素的顏色數據值,以便對用于讀取所述像素的所述顏色 數據值的讀取操作做出響應。
24. 如權利要求18所述的計算機實現的方法,包括對所述像素的所述顏色數據值還 未被存儲在所述高速緩存行或者所述圖像數據中做出響應,提供所述清晰顏色的顏色數據 值,以便對所述讀取操作做出響應。
25. -種用于渲染視覺圖像的裝置,包括用于執行權利要求18-24中的任意一項的方 法的模塊。
【文檔編號】G06T1/20GK104063841SQ201410257530
【公開日】2014年9月24日 申請日期:2014年3月13日 優先權日:2013年3月14日
【發明者】S·J·斯潘格勒, P·蘇提, C·D·貝里, 秋場寬 申請人:英特爾公司