> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# CreateDerivedGraphicsPipelineStateX (XBOX One 系列)

> 有效率地建立衍生自另一個管線狀態物件的圖形管線狀態物件。

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

## 語法

```cpp theme={null}
HRESULT CreateDerivedGraphicsPipelineStateX(  
         ID3D12PipelineState* pSrcPipelineState,  
         UINT NumDescs,  
         const D3D12XBOX_DERIVED_GRAPHICS_STATE_DESC* pDescs,  
         REFIID riid,  
         void** ppDerivedPipelineState  
)  
```

### 參數

*pSrcPipelineState*   \_In\_<br />類型：[ID3D12PipelineState](/zh-TW/reference/graphics/d3d12_x/interfaces/id3d12pipelinestate/id3d12pipelinestate)\*

來源管線狀態，為指向 [ID3D12PipelineState](https://learn.microsoft.com/en-us/windows/desktop/api/d3d12/nn-d3d12-id3d12pipelinestate) 的指標。

*NumDescs*   \_In\_<br />類型：UINT

**pDescs** 中 [D3D12XBOX\_DERIVED\_GRAPHICS\_STATE\_DESC](/zh-TW/reference/graphics/d3d12_x/structs/d3d12xbox_derived_graphics_state_desc) 結構的數目。

*pDescs*   \_In\_<br />類型：[D3D12XBOX\_DERIVED\_GRAPHICS\_STATE\_DESC\*](/zh-TW/reference/graphics/d3d12_x/structs/d3d12xbox_derived_graphics_state_desc)

描述，為 **D3D12XBOX\_DERIVED\_GRAPHICS\_STATE\_DESC** 結構的陣列。

*riid*   \_In\_<br />類型：REFIID

管線狀態介面 [ID3D12PipelineState](https://learn.microsoft.com/en-us/windows/desktop/api/d3d12/nn-d3d12-id3d12pipelinestate) 的全域唯一識別碼 (GUID)。

若要擷取管線狀態介面的 [REFIID](https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-oaut/bbde795f-5398-42d8-9f59-3613da03c318) (或 GUID)，請使用 [\_\_uuidof()](https://learn.microsoft.com/en-us/cpp/cpp/uuidof-operator?view=vs-2019) 巨集。例如，若要取得命令清單介面的 GUID，請執行下列動作：

```cpp theme={null}
__uuidof(ID3D12PipelineState)  
```

*ppDerivedPipelineState*   \_Outptr\_<br />類型：void\*\*

產生的衍生圖形管線狀態物件。

### 傳回值

類型：HRESULT

其中一個 [Direct3D 12 傳回碼](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/d3d12-graphics-reference-returnvalues)。

## 備註

此方法可讓您建立衍生自另一個 PSO 的圖形管線狀態物件。新物件是以來源物件的狀態作為基礎狀態衍生而來，並允許變更深度/樣板、點陣化器和/或混合狀態。

當無法得知 PSO 狀態的所有排列組合，也無法使用 [ID3D12Device::DeserializeGraphicsPipelineStateX](/zh-TW/reference/graphics/d3d12_x/interfaces/id3d12device/methods/id3d12device_deserializegraphicspipelinestatex) 離線建立時，此方法就很有用，因為 **CreateDerivedGraphicsPipelineStateX** 允許在執行階段以任意狀態類別進行建立。**CreateDerivedGraphicsPipelineStateX** 在 CPU 與記憶體方面都很輕量。

可以變更個別的狀態群組 (例如混合或點陣化器狀態)。任何未覆寫的狀態都會設定為與來源 PSO 相同的值。NumDescs 描述要變更的狀態群組數目。Type 識別每個狀態群組的類型。

以下列出呼叫端的責任：

* 如果來源 PSO 是透過 [DeserializeGraphicsPipelineStateX](/zh-TW/reference/graphics/d3d12_x/interfaces/id3d12device/methods/id3d12device_deserializegraphicspipelinestatex) 建立：呼叫端必須確保 GPU 指令在原始物件與衍生物件的存留期間都持續存在。
* 如果來源 PSO 是透過 [CreateGraphicsPipelineState](https://learn.microsoft.com/en-us/windows/desktop/api/d3d12/nf-d3d12-id3d12device-creategraphicspipelinestate) 建立：為確保其 GPU 指令在衍生物件的存留期間持續存在，D3D12 子系統會自動為來源物件增加參考計數。

**CreateDerivedGraphicsPipelineStateX** 保證在建立過程中不會重新編譯或修補著色器。

## 需求

**標頭：** d3d12\_x.h

**程式庫：** d3d12\_x.lib

**支援的平台：** XBOX One 系列

## 另請參閱

[ID3D12Device](/zh-TW/reference/graphics/d3d12_x/interfaces/id3d12device/id3d12device)


## Related topics

- [CreateGraphicsPipelineState](/zh-CN/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_creategraphicspipelinestate_public.md)
- [CreateComputePipelineState](/zh-CN/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_createcomputepipelinestate_public.md)
- [CreatePipelineLibrary](/zh-CN/reference/graphics/d3d12/interfaces/id3d12device1/methods/id3d12device1_createpipelinelibrary_public.md)
- [SetPipelineState](/zh-CN/reference/graphics/d3d12/interfaces/id3d12graphicscommandlist/methods/id3d12graphicscommandlist_setpipelinestate_public.md)
- [NDA topic directory - live Microsoft Learn links](/nda/nda-topic-directory.md)
