Direct3D 12 中的工作提交

為了改善 Direct3D 應用程式的 CPU 效率,自 12 版起,Direct3D 不再支援與裝置相關聯的立即內容。 相反地,您的應用程式會記錄,然後提交包含繪圖和資源管理呼叫的 命令清單。 您可以將這些命令清單從多個執行緒提交至一或多個命令佇列,以管理命令的執行。 此基本變更可讓應用程式預先計算轉譯工作以供稍後重複使用,藉由將轉譯工作分散到多個執行緒,以利用多核心系統來提升單一線程的效率。

本節內容

主題 描述
命令佇列和命令清單的設計原理 啟用轉譯工作和多執行緒縮放的目標,需要對 Direct3D 應用程式提交轉譯工作至 GPU 的方式進行基本變更。
建立和記錄命令清單和組合 本主題描述 Direct3D 12 應用程式中的錄製命令清單和配套。 命令清單和配套都允許應用程式記錄繪圖或狀態變更呼叫,以便稍後在圖形處理單位上執行, (GPU) 。
執行和同步處理命令清單 在 Microsoft Direct3D 12 中,舊版的立即模式已不存在。 相反地,應用程式會建立命令清單和配套,然後記錄 GPU 命令集。 命令佇列可用來提交要執行的命令清單。 此模型可讓開發人員更充分掌控 GPU 和 CPU 的有效使用方式。
在 Direct3D 12 中管理圖形管線狀態 本主題描述如何在 Direct3D 12 中設定圖形管線狀態。
使用資源屏障同步處理 Direct3D 12 中的資源狀態 為了減少整體 CPU 使用量並啟用驅動程式多執行緒和前置處理,Direct3D 12 會將每個資源狀態管理的責任從圖形驅動程式移至應用程式。
具有 Direct3D 12 的管線和著色器 Direct3D 12 可程式化管線大幅提升與舊一代圖形程式設計介面相比的轉譯效能。
可變速率網底 (VRS) 可變速率網底或粗略圖元網底是一種機制,可讓您以不同轉譯影像的速率配置轉譯效能/電源。
轉譯階段 轉譯傳遞功能可協助您的轉譯器藉由減少從晶片外記憶體到/移出記憶體的記憶體來回提升 GPU 效率;它可讓應用程式更清楚地識別資源轉譯順序需求和資料相依性,藉此執行這項作業。