> ## 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.

# SerializeComputePipelineStateX (famille XBOX One)

> Sérialise un objet d'état de pipeline de calcul afin de permettre un chargement efficace à l'exécution. Cette méthode est appelée lors de la création de contenu hors ligne, et non pendant l'exécution du jeu.

Sérialise un objet d'état de pipeline de calcul afin de permettre un chargement efficace à l'exécution. Cette méthode est appelée lors de la création de contenu hors ligne, et non pendant l'exécution du jeu.

## Syntaxe

```cpp theme={null}
HRESULT SerializeComputePipelineStateX(  
         ID3D12PipelineState* pPipelineState,  
         UINT Flags,  
         D3D12XBOX_SERIALIZE_COMPUTE_PIPELINE_STATE* pSerializeState  
)  
```

### Paramètres

*pPipelineState*   \_In\_\
Type : ID3D12PipelineState\*

Un pointeur vers l'état de pipeline de calcul à sérialiser.

*Flags*   \_In\_\
Type : UINT

Indicateurs permettant de contrôler cette opération, sous forme de combinaison par OR au niveau du bit des constantes d'énumération D3D12XBOX\_SERIALIZE\_FLAGS. Actuellement, ce paramètre doit être D3D12XBOX\_SERIALIZE\_FLAGS\_NONE.

*pSerializeState*   \_Out\_\
Type : [D3D12XBOX\_SERIALIZE\_COMPUTE\_PIPELINE\_STATE\*](/fr-CA/reference/graphics/d3d12_x/structs/d3d12xbox_serialize_compute_pipeline_state)

L'état sérialisé résultant.

### Valeur de retour

Type : HRESULT

L'un des codes de retour de Direct3D 12.

## Remarques

Cette méthode sérialise un objet d'état de pipeline (PSO) afin de permettre un chargement efficace à l'exécution. La méthode doit être appelée dans le cadre d'une création de contenu hors ligne, jamais pendant l'exécution d'un jeu. Habituellement, la méthode est utilisée par un outil sur PC qui invoque l'implémentation UMD12\_PC.DLL/XGS12\_PC\_XS.DLL sur PC de l'API, du pilote et du compilateur de nuanceurs Direct3D 12.x de XBOX One. La méthode peut également être appelée sur les kits de développement XBOX One lorsque les indicateurs [D3D12XBOX\_PROCESS\_DEBUG\_FLAG\_INSTRUMENTED](/fr-CA/reference/graphics/d3d12_x/enums/d3d12xbox_process_debug_flags) et D3D12\_PROCESS\_DEBUG\_FLAG\_DEBUG\_LAYER\_ENABLED sont utilisés : ces indicateurs sont des constantes de l'énumération [D3D12XBOX\_PROCESS\_DEBUG\_FLAGS](/fr-CA/reference/graphics/d3d12_x/enums/d3d12xbox_process_debug_flags).

L'appel de cette méthode sérialise un PSO en ses composants, sous une forme que [ID3D12Device::DeserializeComputePipelineStateX](/fr-CA/reference/graphics/d3d12_x/interfaces/id3d12device/methods/id3d12device_deserializecomputepipelinestatex) peut charger efficacement à l'exécution. Pour éviter de gaspiller de l'espace sur le disque et en mémoire, les appelants doivent dédupliquer les composants résultants dans l'ensemble de leurs PSO. Par exemple, plusieurs PSO auront probablement exactement le même ensemble d'instructions GPU pour un nuanceur lorsque seules les limites des nuanceurs diffèrent entre les objets. Il revient au développeur (1) d'effectuer un hachage ou une comparaison de mémoire entre ces invocations et (2) d'identifier les composants qui peuvent être partagés. Les développeurs gèrent l'emplacement et la durée de vie de tous les composants de PSO sérialisés à l'exécution, et ils spécifient les emplacements des composants de PSO sérialisés dans l'appel à **DeserializeComputePipelineStateX**, ce qui facilite ce partage.

Pour un jeu typique, la plupart des PSO sont créés hors ligne à l'aide de ce mécanisme **SerializeComputePipelineStateX/DeserializeComputePipelineStateX**.

Les nuanceurs désérialisés peuvent être utilisés conjointement avec [ID3D12Device::CreateDerivedComputePipelineStateX](/fr-CA/reference/graphics/d3d12_x/interfaces/id3d12device/methods/id3d12device_createderivedcomputepipelinestatex) afin de permettre la création efficace de variantes de PSO à l'exécution. Il n'est donc pas nécessaire de créer toutes les permutations d'état possibles des PSO à l'aide de **SerializeComputePipelineStateX**.

**SerializeComputePipelineStateX** retourne des structures [ID3DBlob](https://msdn.microsoft.com/library/windows/desktop/ff728743\(v=vs.85\).aspx) pour chacun des composants résultants. Pour interroger les tampons de composants résultants, l'appelant appelle [ID3DBlob::GetBufferPointer](https://msdn.microsoft.com/library/windows/desktop/ff728744\(v=vs.85\).aspx) et [ID3DBlob::GetBufferSize](https://msdn.microsoft.com/library/windows/desktop/ff728745\(v=vs.85\).aspx); pour libérer la mémoire après avoir copié les résultats, l'appelant appelle Release.

Les pointeurs de blob peuvent être nuls pour les nuanceurs inactifs. Certains nuanceurs peuvent avoir un blob **pGpuInstructions** sans blob **pMetaData** correspondant. (**pGpuInstructions** et **pMetaData** sont des membres de la structure [D3D12XBOX\_SERIALIZE\_SHADER](/fr-CA/reference/graphics/d3d12_x/structs/d3d12xbox_serialize_shader).) Tous les composants doivent être conservés et fournis de nouveau à [ID3D12Device::DeserializeComputePipelineStateX](/fr-CA/reference/graphics/d3d12_x/interfaces/id3d12device/methods/id3d12device_deserializecomputepipelinestatex).

D3D12.x utilise un CRC pour s'assurer que tous les composants fournis à **DeserializeComputePipelineStateX** correspondent exactement à ceux générés par **SerializeComputePipelineStateX**.

Notez que **SerializeComputePipelineStateX** ne peut pas être utilisé pour sérialiser un objet d'état de pipeline qui a été désérialisé précédemment au moyen de **DeserializeComputePipelineStateX**.

## Configuration requise

**En-tête :** d3d12\_x.h

**Bibliothèque :** d3d12\_x.lib

**Plateformes prises en charge :** famille XBOX One

## Voir aussi

[ID3D12Device](/fr-CA/reference/graphics/d3d12_x/interfaces/id3d12device/id3d12device)


## Related topics

- [Répertoire des rubriques NDA : liens actifs vers Microsoft Learn](/fr/nda/nda-topic-directory.md)
- [CreateComputePipelineState](/reference/graphics/d3d12/interfaces/id3d12device/methods/id3d12device_createcomputepipelinestate_public.md)
- [D3D12_COMPUTE_PIPELINE_STATE_DESC](/reference/graphics/d3d12/structs/d3d12_compute_pipeline_state_desc_public.md)
