> ## 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 pour permettre un chargement efficace au moment de l'exécution. Cette méthode est appelée lors de la création de contenu hors connexion, et non lors de l'exécution du jeu.

Sérialise un objet d'état de pipeline de calcul pour permettre un chargement efficace au moment de l'exécution. Cette méthode est appelée lors de la création de contenu hors connexion, et non lors de 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\*

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

*Flags*   \_In\_\
Type : UINT

Indicateurs de contrôle de cette opération, sous la forme d'une 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/reference/graphics/d3d12_x/structs/d3d12xbox_serialize_compute_pipeline_state)

État sérialisé obtenu.

### Valeur de retour

Type : HRESULT

L'un des codes de retour Direct3D 12.

## Remarques

Cette méthode sérialise un objet d'état de pipeline (PSO) pour permettre un chargement efficace au moment de l'exécution. La méthode doit être appelée dans le cadre d'une création de contenu hors connexion, jamais lors de l'exécution d'un jeu. En règle générale, la méthode est utilisée par un outil sur PC qui appelle l'implémentation sur PC UMD12\_PC.DLL/XGS12\_PC\_XS.DLL de l'API Direct3D 12.x pour XBOX One, du pilote et du compilateur de nuanceurs. 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/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/reference/graphics/d3d12_x/enums/d3d12xbox_process_debug_flags).

L'appel de cette méthode sérialise un PSO en ses différents composants, sous une forme que [ID3D12Device::DeserializeComputePipelineStateX](/fr/reference/graphics/d3d12_x/interfaces/id3d12device/methods/id3d12device_deserializecomputepipelinestatex) peut charger efficacement au moment de l'exécution. Pour éviter de gaspiller de l'espace sur le disque et en mémoire, les appelants doivent dédupliquer les composants obtenus dans l'ensemble de leur collection de PSO. Par exemple, plusieurs PSO sont susceptibles d'avoir exactement le même ensemble d'instructions GPU pour un nuanceur lorsque seules les limites de nuanceur diffèrent entre les objets. Il appartient au développeur (1) d'effectuer un hachage ou une comparaison de mémoire entre ces appels 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 au moment de 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 classique, la plupart des PSO sont créés hors connexion à l'aide de ce mécanisme **SerializeComputePipelineStateX/DeserializeComputePipelineStateX**.

Les nuanceurs désérialisés peuvent être utilisés conjointement avec [ID3D12Device::CreateDerivedComputePipelineStateX](/fr/reference/graphics/d3d12_x/interfaces/id3d12device/methods/id3d12device_createderivedcomputepipelinestatex) pour permettre une création efficace de variantes de PSO au moment de 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 obtenus. Pour interroger les mémoires tampons des composants obtenus, 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 null 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/reference/graphics/d3d12_x/structs/d3d12xbox_serialize_shader).) Tous les composants doivent être conservés et fournis à nouveau à [ID3D12Device::DeserializeComputePipelineStateX](/fr/reference/graphics/d3d12_x/interfaces/id3d12device/methods/id3d12device_deserializecomputepipelinestatex).

D3D12.x utilise un CRC pour garantir 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é précédemment désérialisé via **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/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)
