圖形管線
下圖顯示邏輯圖形管線。深度區塊與色彩區塊是轉譯輸出前的最後兩個邏輯作業。
色彩壓縮術語
以下是描述壓縮系統時常用的術語。色彩區塊
色彩區塊負責將像素著色器的色彩資料輸出傳輸到記憶體。此程序包括管理 MSAA 壓縮、色彩混合、色彩格式化、ROP,以及寫入記憶體。 色彩區塊允許像素的著色器輸出色彩 (來源色彩,CS) 與該像素在轉譯目標中的目前色彩 (目的地色彩,CD),使用混合因數 (BF(S,D)) 與指定的組合函式進行結合。此混合的一般方程式稱為「混合方程式」。- 一種稱為「雙來源混合」的特殊混合模式。大部分混合因數是來源色彩、目的地色彩或混合常數色彩的函式,而雙來源混合則使用第二個著色器輸出色彩 (指派給 MRT1) 作為混合因數。混合方程式中的來源色彩取自 MRT0。
- 2x、4x 與 8x MSAA。色彩區塊中有數項 MSAA 專屬功能,例如使用方塊篩選 (平均像素的子樣本以取得像素的最終色彩) 對任何可混合表面進行硬體 resolve,以及色彩壓縮 (於下一節說明)。
- 使用 8_8_8_8 sRGB 格式的伽瑪校正畫面緩衝區。
- 快速清除色彩表面。這是藉由只清除與表面中每個圖格相關聯的 CMask 位元來達成。當 quad 繪製到已快速清除的圖格時,色彩區塊具有特殊硬體,可事後填入圖格中未被觸及的部分。
- CMask 快取管理圖格層級的壓縮資訊。
- FMask 快取管理 quad 層級的壓縮資訊。
- 色彩快取與混合器執行像素更新。
色彩壓縮
多重取樣反鋸齒 (MSAA) 是一種減少因像素解析度有限而造成之視覺瑕疵的方法。在 MSAA 中,每個像素的最終值由像素內取得的 2、4 或 8 個色彩樣本決定。這些樣本都會從像素著色器接收相同的色彩,但每個樣本會個別進行深度測試。這會讓幾何邊緣有更精細的細節。多重取樣像素比單一取樣像素需要更多記憶體與處理資源,這就是實作色彩壓縮配置的原因。 色彩壓縮是一種無失真的逐像素配置,目標是節省記憶體頻寬,並將處理多重取樣像素所需的時脈週期數量降到最低。在 8xMSAA (每個像素 8 個樣本) 中,每個像素可能需要簡單單一樣本像素 8 倍的記憶體頻寬與 8 倍的處理能力。一般而言,像素的樣本高度重複,像素的樣本只包含一或兩個唯一色彩值。8xMSAA 像素的所有樣本都具有 8 個唯一值的情況很少見。樣本間的高度差異並非不可能,它可能出現在具有精細鑲嵌幾何的場景中,也可能純屬偶然。壓縮配置的目標是利用一般場景中的樣本重複性。色彩壓縮配置
為了壓縮 MSAA 像素,會利用重複性,只儲存每個唯一色彩一次。例如,在 8xMSAA 中,8 個樣本可能看起來像下表中的色彩。只有三個唯一色彩,但目前它們佔用了 8 個的空間。


增強品質反鋸齒 (EQAA)
增強品質反鋸齒 (EQAA) 是反鋸齒的失真壓縮。它是無失真色彩壓縮演算法的延伸。色彩儲存空間會縮減,因此沒有足夠的儲存空間讓每個樣本都有唯一色彩。大部分情況下,像素只有少數唯一色彩。FMask 可以將這些色彩對應以涵蓋整個像素。對於 EQAA,色彩區塊最多支援 16 個樣本。由於記憶體使用量過大,色彩區塊不支援一般 MSAA 使用 16 個樣本。 色彩區塊不會嘗試猜測或內插色彩。當它無法判斷色彩應為何,或無法負擔儲存該色彩時,色彩區塊會在 FMask 中將對應的樣本標示為未知。 EQAA 的轉譯與 MSAA 中的正常轉譯相同,但受限於只有特定數量的樣本是正確的。每個表面的樣本數量有上限。功能相容性
下表顯示色彩區塊中允許的作業組合。
