Skip to main content
RTX Turing 和 AMD RDNA 2.0 GPU 引進了新的幾何處理管線。此管線由兩個新的可程式化著色器階段 (Amplification Shader 和 Mesh Shader) 組成,且不使用輸入組合器和鑲嵌器硬體。這兩個階段都類似計算著色器,公開執行緒群組並使用產生的執行緒識別碼作為唯一提供的輸入,但也提供與提交幾何處理相關的功能。 此新範式的效果是將索引/頂點擷取卸載到可程式化著色器,使其能隨 GPU 核心數量和記憶體頻寬擴充。這避開了輸入組合器日益嚴重的瓶頸,並有助於以更佳且一致的速率將工作送入 GPU。它也提供了一個介面,能以管線化方式搭配晶片上記憶體,在多種細微度 (細至每個基本型別層級) 提早剔除幾何。 圖 1. Mesh Shader 管線的各個階段。綠色階段為可程式化。藍色階段為固定功能。 Mesh Shader 管線的階段圖

Mesh Shader

Mesh Shader (MS) 本質上是計算著色器,具備階段專屬的內建函式,可將頂點、索引和基本型別資料匯出至基本型別組合器。所有資料都必須在著色器程式碼中從常數緩衝區檢視 (CBV) 和著色器資源檢視 (SRV) 明確擷取。 這表示開發人員需要調整對繪製呼叫的看法,使其更符合計算著色器的工作流程。著色器作者決定執行緒群組大小,以及如何使用每個執行緒來完成工作負載。他們可以存取著色器 wave 內建函式和 groupshared 記憶體,以共用資料並有效率地建置要點陣化的基本型別清單。 圖 2. 在繫結僅含 Mesh Shader 的管線時,從 DispatchMesh(4, 1, 1) 呼叫分派之 GPU 工作的視覺化呈現。與計算著色器一樣,DispatchMesh 需要 x、y 和 z 維度中的執行緒群組數量。這會分派指定數量的 Mesh Shader 執行緒群組來執行。 從繫結僅含 Mesh Shader 管線之 DispatchMesh 命令分派之工作的視覺化呈現。

Amplification Shader

Amplification Shader (AS) 是位於 Mesh Shader 階段之前的選擇性階段。此階段同樣類似計算著色器,能夠動態分派一組 Mesh Shader 執行緒群組。每個執行緒群組會計算自己要分派的 Mesh Shader 執行緒群組數量。每個執行緒群組也包含最多 16 KB 的共用自訂承載資料,以傳遞給其產生的 Mesh Shader 執行緒群組。此資料可以直接從 groupshared 記憶體匯出。 Amplification Shader 的功能讓著色器程式能根據自訂準則動態減少或放大其工作負載。這開啟了有效率、較低細微度的剔除或自訂鑲嵌的可能性。 圖 3. 分派 AS-MS 管線狀態 (PS) 物件的視覺化呈現。有些 AS 執行緒群組會選擇分派 MS 執行緒群組。其他執行緒群組可能完全不分派。 從繫結 AS-MS 管線之 DispatchMesh 命令分派之工作的視覺化呈現。

本節內容

另請參閱

XBOX Series X|S 圖形功能概觀 圖形概觀 圖形
Last modified on October 6, 2026