Direct3D 12 詞彙
這些詞彙與 Direct3D 12 不同。
-
系結
-
將記憶體附加至圖形管線的過程。 例如,資源綁定涉及將一種資源,例如材質,綁定到管線,用於渲染物件。
-
緩衝區
-
與連續記憶體配置同義的 D3D 資源類型。
-
套組
-
圖形處理單位 (GPU) 只能透過 命令清單直接執行的指令緩衝區,。 套件組合會繼承所有 GPU 狀態(除了目前設定 管線狀態物件 和基本拓撲除外)。
-
命令配置器
-
儲存 GPU 命令的基礎記憶體配置。 命令設定器物件同時套用至 直接命令清單 和 套件組合。
-
命令清單
-
命令清單會對應至 GPU 執行的一組命令。 這些包括命令,例如設定狀態、繪製、清除和複製。 D3D12 命令清單介面與 D3D11 命令清單介面明顯不同。 D3D12 命令清單介面包含類似於 D3D11 裝置內容轉譯 API 的 API。
D3D12 命令清單不會對應或取消對應資源、變更磚對應、調整磚集區大小、取得查詢數據,也不會隱含地將命令提交至 GPU 執行。
與 D3D11 延遲內容不同,D3D12 命令清單只支援兩個間接層級。 直接命令清單 對應至 GPU 可執行的命令緩衝區。 套件組合 只能直接透過直接命令清單執行。
直接命令清單不會繼承任何 GPU 狀態。 套件組合會繼承所有 GPU 狀態(除了目前設定的管線狀態物件和基本拓撲除外)。
命令清單的記憶體是由 命令配置器所設定。 命令清單的目的是要以單一轉譯要求的形式提交至 GPU。
-
命令佇列
-
命令佇列會列出 GPU 連續執行的。 應用程式必須明確地將 命令清單 提交至命令佇列以執行。 一般而言,GPU 上有三個命令佇列:3D 圖形、計算和複製,對應至 3D 圖形管線、計算引擎和一或多個複製引擎。
-
保守點陣化
-
保守點陣化是 Direct3D 圖形管線點陣化階段的作業模式。 它會停用標準的樣本型點陣化,改為對任何被圖元覆蓋的像素進行點陣化。 其中一個重要區別是,雖然任何涵蓋範圍都會產生點陣化圖元,但該涵蓋範圍無法以硬體為特徵,因此涵蓋範圍一律會顯示為圖元著色器二進位:完全涵蓋或未涵蓋。 它將由圖元著色器程式碼使用分析方式來判斷實際覆蓋範圍。
保守的點陣化有助於解決碰撞和點擊偵測、量化和遮蔽消除等問題,其中圖元的色彩比較確定,邊緣案例可以消除。 請參閱 保守派點陣化。
-
常數緩衝區檢視 (CBV)
-
常數緩衝區包含著色器的常數數據,例如相機視圖、投影矩陣和世界矩陣。 「常數緩衝區檢視」是圖形管線所見之緩衝區的格式特定檢視。
-
預設堆積
-
專注於支援持續性 GPU 資源類型的使用者模式堆疊,包括由 GPU 寫入的資源。
-
描述元
-
描述元是 D3D12 中單一資源的主要系結單位。 描述項是相對較小的數據區塊,其會以 GPU 特定格式完整描述 GPU 的物件。 有許多不同類型的描述元:著色器資源檢視(SRV)、未排序的存取檢視(UAV)、常數緩衝區檢視(CBV)和取樣器是一些範例。
-
描述元堆積
-
描述元堆積是連續描述元配置的集合,每個描述項都有一個配置。 描述元堆積的主要點是包含儲存著色器盡可能多轉譯視窗的物件型別描述元規格所需的大量記憶體配置(理想情況下是整個轉譯框架或更多)。
-
描述元數據表
-
描述項數據表在邏輯上是描述元陣列。 每個描述元數據表都會儲存一或多個類型的描述元,包括SRV、UAVe、CBV 和取樣器。 描述項數據表不是記憶體的配置,它只是描述項堆積的位移和長度。
-
直接命令清單
-
GPU 可執行的命令緩衝區。 直接命令清單不會繼承任何 GPU 狀態。
-
柵欄
-
同步處理 GPU 和 CPU 的機制。 GPU 和 CPU 都可以指示在柵欄等候,並等候其他處理器趕上。 請參閱 多引擎同步處理。
-
危險、危險追蹤
-
當資源已用於某個用途,且應用程式打算將它用於另一個用途時,就會發生危險。 為了再次使用資源,需要清除或使中繼快取失效,壓縮需求必須與第二次使用時的一致,並且資源應該處於所需狀態,以避免在資源被寫入並為預期目的失效後還進行讀取。
資源維護並避免這些同步問題的過程稱為風險跟蹤。 如果驅動程式沒有危險追蹤,則應用程式會負責此作業。 在大部分舊版的 DirectX 中,驅動程式會處理危險追蹤。 為了改善效能,DirectX 12 中提供沒有危險追蹤的方法。
-
High-Level 著色器語言(HLSL)
-
計算機語言,類似,但與 C 有許多不同,用來撰寫著色器程序代碼。 頂點、圖元、幾何、計算、定義域和輪廓著色器全都使用 HLSL 撰寫。 編譯器將 HLSL 原始碼轉換為供 GPU 使用的二進位格式。
-
多引擎
-
單一 GPU 中的不同實例和引擎類型。 引擎的類型包括:圖形、計算和複製。
-
MultiGPU
-
硬體組態,其中有多個圖形適配卡。 個別配接器有時稱為節點。 同步多個 GPU 與 CPU 以及彼此之間的工作,比起單一 GPU 要複雜得多。
-
Pipeline State 的物件 (PSO)
-
GPU 狀態的一個重要部分。 此狀態包含所有目前設定的著色器和特定固定函式狀態物件。 變更管線物件內所含狀態的唯一方法是變更目前系結的管線物件。
-
述詞
-
預判是一項功能,可讓 GPU 而非 CPU 決定是否不進行繪製、複製或分派物件。 例如,如果物件的邊界框完全被另一個物件遮蔽,或透視圖已將物件縮小至小於像素的大小,則可能完全沒有必要嘗試繪製隱藏的物件。 請參閱 命題。
-
光柵化器順序檢視(ROV)
-
標準圖形管線可能無法正確組合多個包含透明度的紋理。 電線柵欄、煙霧、火災、植被和彩色玻璃等物件會使用透明度來取得所需的效果。 當包含透明度的多個紋理排成一列時,就會發生問題(例如,植被位於玻璃建築內,煙霧位於柵欄前)。 轉譯器排序檢視 (ROV) 可讓基礎順序獨立透明度 (OIT) 演算法使用硬體的功能,以嘗試正確解析透明度順序。 透明度是由圖元著色器處理。
點陣化排序檢視 (ROV) 允許圖元著色器程式代碼以宣告標記未排序的存取檢視 (UAV) 系結,以改變 UAV 圖形管線結果順序的正常需求。
-
回讀堆積
-
使用者模式堆積,著重於從 GPU 傳輸回 CPU 的數據。
-
資源
-
提供數據給管線的實體,並定義在場景中呈現的內容。 您可以從您的遊戲媒體載入資源,或在執行時動態創建。 通常,資源包括紋理數據、頂點數據和著色器數據。 大多數 Direct3D 應用程式在其整個生命週期中廣泛地建立和銷毀資源。
-
資源屏障
-
資源屏障會通知驅動程式,可能需要對單一資源的多個存取進行同步處理,例如讀取和寫入相同的紋理。
-
資源系結
-
資源系結是將資源連結至圖形管線的程式(紋理、頂點緩衝區、索引緩衝區等等),讓管線的著色器能夠處理正確的資源。
-
資源堆積
-
資源堆積是堆積的一般詞彙,這些堆積是記憶體緩衝區,用來在傳輸至 GPU 時保留資源。 傳送到 GPU 需要上傳堆,從 GPU 到 CPU 需要回讀堆,而 GPU 在多個渲染幀中維護的持續性堆稱為預設堆。
-
根簽章
-
根簽名會定義要綁定到圖形或計算管線的所有資源。 應用程式會設定根簽章,並將命令清單連結至著色器通常需要的資源,每個應用程式都有一個圖形和一個計算根簽章。
-
取樣器
-
取樣器是從紋理讀取的程序代碼。
-
著色器資源檢視 (SRV)
-
在著色器資源中以特定格式查看資料的方法,例如紋理。
-
靜態堆積
-
一個使用者模式的堆積,專注於管理多個通常同時使用且不常改變的 GPU 只讀資源。
-
交換鏈結
-
交換鏈結會控制後台緩衝區旋轉,形成圖形動畫的基礎。 交換鏈結是由低階 API 集 DXGI 處理(請參閱 DXGI 概觀)。
-
旋轉
-
在記憶體中定位多維度數據的一種技術,使相鄰的維度數據往往擁有相近的位址。 特別是,一行的所有數據不會在下一行之前連續排列。 「參數化 Swizzle」描述描述旋轉模式的標準化方式。
-
紋理
-
具有多維度的 D3D 資源類型,且其記憶體配置經過優化以支援 GPU 的多維度訪問。 材質通常包含在進行光照和混合之前需要轉譯到表面的原始影像,但也可以包含其他形式的數據,例如色彩漸層和參考色彩。 Direct3D 12 支援一維、二維和三維紋理。
-
瓷磚
-
視訊記憶體的頁面,類似於CPU/系統記憶體頁面。 圖格表示法有助於區分 GPU 虛擬記憶體子系統與 CPU 虛擬記憶體子系統。 GPU 提供與系統虛擬記憶體類似的虛擬記憶體功能。 某些 GPU 具有共用的虛擬記憶體功能,可讓虛擬記憶體子系統的某些頁面與 CPU 和 GPU 共用。
-
並排顯示的資源
-
需要磚化資源,因此較少 GPU 記憶體會浪費儲存應用程式知道不會存取的介面區域,而且硬體可以瞭解如何篩選相鄰磚。 並排資源是大型邏輯資源,但需要少量的實體記憶體。
-
未排序存取檢視 (UAV)
-
資源的未排序存取檢視(包括緩衝區、紋理和紋理陣列 - 不含多重取樣),允許從多個線程暫時取消排序的讀取/寫入存取。 這表示多個線程可以同時讀取/寫入此資源類型,而不會產生記憶體衝突。
-
上傳堆
-
使用者模式堆積,著重於從 CPU 到 GPU 的數據傳輸。
-
使用者模式堆
-
大型連續記憶體配置集合,不需任何核心元件的感知即可回收:配置和解構方法不會在穩定狀態期間呼叫核心配置和解構方法。 上傳、回讀和預設堆是使用者模式堆的變體。
-
卷面拼貼資源
-
三維 磚資源。