Skip to main content
建立衍生自另一個管線狀態物件 (PSO) 的圖形管線狀態物件。

語法

參數

pSrcPipelineState _In_
類型:ID3D12PipelineState*
來源管線狀態,為指向 ID3D12PipelineState 的指標。 NumDescs _In_
類型:UINT
pDescs 中 D3D12XBOX_DERIVED_GRAPHICS_STATE_DESC 結構的數目。 pDescs _In_
類型:D3D12XBOX_DERIVED_GRAPHICS_STATE_DESC*
描述,為 D3D12XBOX_DERIVED_GRAPHICS_STATE_DESC 結構的陣列。 riid _In_
類型:REFIID
管線狀態介面 ID3D12PipelineState 的全域唯一識別碼 (GUID)。 若要擷取管線狀態介面的 REFIID (或 GUID),請使用 __uuidof() 巨集。例如,若要取得命令清單介面的 GUID,請執行下列動作:
ppDerivedPipelineState _Outptr_
類型:void**
產生的衍生圖形管線狀態物件。

傳回值

類型:HRESULT 其中一個 Direct3D 12 傳回碼。

備註

此方法可讓您建立衍生自另一個 PSO 的圖形管線狀態物件。新物件是以來源物件的狀態作為基礎狀態衍生而來,並允許變更深度/樣板、點陣化器和/或混合狀態。 當無法得知 PSO 狀態的所有排列組合,也無法使用 ID3D12Device::DeserializeGraphicsPipelineStateX 離線建立時,此方法就很有用,因為 CreateDerivedGraphicsPipelineStateX 允許在執行階段以任意狀態類別進行建立。CreateDerivedGraphicsPipelineStateX 在 CPU 與記憶體方面都很輕量。 可以變更個別的狀態群組 (例如混合或點陣化器狀態)。任何未覆寫的狀態都會設定為與來源 PSO 相同的值。NumDescs 描述要變更的狀態群組數目。Type 識別每個狀態群組的類型。 以下列出呼叫端的責任:
  • 如果來源 PSO 是透過 DeserializeGraphicsPipelineStateX 建立:呼叫端必須確保 GPU 指令在原始物件與衍生物件的存留期間都持續存在。
  • 如果來源 PSO 是透過 CreateGraphicsPipelineState 建立:為確保其 GPU 指令在衍生物件的存留期間持續存在,D3D12 子系統會自動為來源物件增加參考計數。
CreateDerivedGraphicsPipelineStateX 保證在建立過程中不會重新編譯或修補著色器。

需求

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

另請參閱

ID3D12Device
Last modified on October 6, 2026