語法
參數
Count _In_類型:UINT 要執行的命令清單數目。 ppCommandLists _In_reads_(Count)
類型:ID3D12CommandList* 要執行的 ID3D12CommandList 命令清單陣列。
傳回值
類型:void備註
呼叫端應用程式必須確保圖形處理器 (GPU) 目前並未從先前的執行中讀取任何已提交的命令清單。 為了降低提交至 GPU 之命令的相關固定成本,建議應用程式開發人員將命令清單的執行批次處理在一起。非同步執行
允許 (作為 XBOX 擴充功能) 在命令清單關閉之前執行它,並繼續將命令記錄到清單中。如果在佇列上執行的命令清單尚未關閉,則之後發出至該佇列的所有工作都會被積壓,直到對該命令清單呼叫 Close 為止,才會提交至 GPU。非同步執行的支援包括圖形 (直接)、計算和 DMA 命令清單。 命令清單的非同步執行有下列限制:- 在佇列上非同步執行的開啟命令清單,在清單關閉之前,不能在相同或任何其他佇列上執行。關閉之後,即可以傳統方式重複執行。
- 負責完成非同步執行之命令清單的執行緒,在清單關閉之前,不得使用執行該清單的佇列。執行緒使用該佇列可能會導致死結。
- 不提供保護,以防止一個執行緒在另一個執行緒記錄到清單的同時執行該命令清單。執行緒安全性是遊戲的責任。
- 所有非同步執行的命令清單都必須在 Suspend 呼叫之前關閉。目前,PIX 擷取的支援要求所有非同步執行的命令清單都必須在進行 Present 呼叫之前關閉。
- 在執行清單之後將命令記錄到清單時,請避免任何類型的失敗情況。執行後失敗將產生無法完成的部分執行清單。無法精確找出記憶體不足和驗證失敗的位置;因此,實際提交至 GPU 的內容並不確定,而參考的資源 (例如屏障) 實際上會處於不確定的狀態。
