Skip to main content
提交要執行的命令清單陣列。

語法

參數

Count   _In_
類型:UINT
要執行的命令清單數目。 ppCommandLists   _In_reads_(Count)
類型:ID3D12CommandList*
要執行的 ID3D12CommandList 命令清單陣列。

傳回值

類型:void

備註

呼叫端應用程式必須確保圖形處理器 (GPU) 目前並未從先前的執行中讀取任何已提交的命令清單。 為了降低提交至 GPU 之命令的相關固定成本,建議應用程式開發人員將命令清單的執行批次處理在一起。

非同步執行

允許 (作為 XBOX 擴充功能) 在命令清單關閉之前執行它,並繼續將命令記錄到清單中。如果在佇列上執行的命令清單尚未關閉,則之後發出至該佇列的所有工作都會被積壓,直到對該命令清單呼叫 Close 為止,才會提交至 GPU。非同步執行的支援包括圖形 (直接)、計算和 DMA 命令清單。 命令清單的非同步執行有下列限制:
  • 在佇列上非同步執行的開啟命令清單,在清單關閉之前,不能在相同或任何其他佇列上執行。關閉之後,即可以傳統方式重複執行。
  • 負責完成非同步執行之命令清單的執行緒,在清單關閉之前,不得使用執行該清單的佇列。執行緒使用該佇列可能會導致死結。
  • 不提供保護,以防止一個執行緒在另一個執行緒記錄到清單的同時執行該命令清單。執行緒安全性是遊戲的責任。
  • 所有非同步執行的命令清單都必須在 Suspend 呼叫之前關閉。目前,PIX 擷取的支援要求所有非同步執行的命令清單都必須在進行 Present 呼叫之前關閉。
  • 在執行清單之後將命令記錄到清單時,請避免任何類型的失敗情況。執行後失敗將產生無法完成的部分執行清單。無法精確找出記憶體不足和驗證失敗的位置;因此,實際提交至 GPU 的內容並不確定,而參考的資源 (例如屏障) 實際上會處於不確定的狀態。
執行之後,記錄到命令清單的命令會在每個區段完成後自動提交至 GPU。建立命令清單時可以指定 D3D12XBOX_COMMAND_LIST_FLAG_DISABLE_AUTOMATIC_KICKOFFS 旗標,以停用此類自動提交。如需詳細資訊,請參閱 D3D12XBOX_COMMAND_LIST_FLAGS。 若要立即提交已記錄的命令 (適用於命令清單內的同步),請呼叫命令清單方法 KickoffX 或 KickoffX,以強制完成目前的區段並將其提交處理。Close 會提交最後的命令清單區段,以及執行佇列上任何其他擱置中的工作。

需求

標頭: d3d12_x.h 程式庫: d3d12_x.lib 支援的平台: XBOX One 系列

另請參閱

ID3D12CommandQueue
Last modified on October 6, 2026