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

# D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE

> Spécifie le type d'opération de copie effectuée lors de l'appel à CopyRaytracingAccelerationStructure.

Spécifie le type d'opération de copie effectuée lors de l'appel à [CopyRaytracingAccelerationStructure](/fr/reference/graphics/d3d12/interfaces/id3d12graphicscommandlist4/methods/id3d12graphicscommandlist4_copyraytracingaccelerationstructure_public).

## Syntaxe

```cpp theme={null}
typedef enum D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE    
{  
    D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_CLONE = 0x0,
    D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_COMPACT = 0x1,
    D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_VISUALIZATION_DECODE_FOR_TOOLS = 0x2,
    D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_SERIALIZE = 0x3,
    D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_DESERIALIZE = 0x4,

    // The following are deprecated and to be removed in June 2024
    D3D12XBOX_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_SERIALIZE_AND_COMPRESS = 0x80000005,
    D3D12XBOX_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE_SERIALIZE_AND_COMPRESS_FOR_GPU = 0x80000006,
} D3D12_RAYTRACING_ACCELERATION_STRUCTURE_COPY_MODE  
```

## Constantes

| Constante | Description |
| - | - |
| D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_COPY\_MODE\_CLONE | Copie une structure d'accélération en corrigeant les éventuels pointeurs autoréférentiels afin que la destination soit une copie autonome de la source.  Les pointeurs externes vers d'autres structures d'accélération restent inchangés entre la source et la destination dans la copie.  La taille de la destination est identique à celle de la source. <br /> **IMPORTANT** La mémoire source doit être dans l'état [**D3D12\_RESOURCE\_STATE\_RAYTRACING\_ACCELERATION\_STRUCTURE**](/fr/reference/graphics/d3d12_x/enums/d3d12_resource_states). La mémoire de destination doit être dans l'état [**D3D12\_RESOURCE\_STATE\_RAYTRACING\_ACCELERATION\_STRUCTURE**](/fr/reference/graphics/d3d12_x/enums/d3d12_resource_states). |
| D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_COPY\_MODE\_COMPACT | Produit dans la destination une structure d'accélération fonctionnellement équivalente à la source, comme le mode clone, mais en faisant tenir la destination dans une empreinte mémoire potentiellement plus petite, et en tout cas pas plus grande.  La taille requise pour la destination peut être récupérée au préalable à partir de [EmitRaytracingAccelerationStructurePostbuildInfo](/fr/reference/graphics/d3d12/interfaces/id3d12graphicscommandlist4/methods/id3d12graphicscommandlist4_emitraytracingaccelerationstructurepostbuildinfo_public).  Ce mode n'est valide que si la structure d'accélération source a été générée à l'origine avec l'indicateur [D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_BUILD\_FLAG\_ALLOW\_COMPACTION](/fr/reference/graphics/d3d12/enums/d3d12_raytracing_acceleration_structure_build_flags_public) ; sinon, les résultats sont indéfinis.  Le compactage de la géométrie nécessite que la structure d'accélération entière soit construite ; c'est pourquoi vous devez d'abord générer la structure, puis la compacter.  <br /> **IMPORTANT** La mémoire source doit être dans l'état [**D3D12\_RESOURCE\_STATE\_RAYTRACING\_ACCELERATION\_STRUCTURE**](/fr/reference/graphics/d3d12_x/enums/d3d12_resource_states). La mémoire de destination doit être dans l'état [**D3D12\_RESOURCE\_STATE\_RAYTRACING\_ACCELERATION\_STRUCTURE**](/fr/reference/graphics/d3d12_x/enums/d3d12_resource_states). |
| D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_COPY\_MODE\_VISUALIZATION\_DECODE\_FOR\_TOOLS | La destination adopte la disposition décrite dans [D3D12\_BUILD\_RAYTRACING\_ACCELERATION\_STRUCTURE\_TOOLS\_VISUALIZATION\_HEADER](/fr/reference/graphics/d3d12/structs/d3d12_build_raytracing_acceleration_structure_tools_visualization_header_public).  La taille requise pour la destination peut être récupérée au préalable à partir de [EmitRaytracingAccelerationStructurePostbuildInfo](/fr/reference/graphics/d3d12/interfaces/id3d12graphicscommandlist4/methods/id3d12graphicscommandlist4_emitraytracingaccelerationstructurepostbuildinfo_public).  Ce mode est uniquement destiné aux outils tels que PIX, même si rien n'empêche une application de l'utiliser.  La sortie est essentiellement l'inverse d'une génération de structure d'accélération.  Cette structure globale suffit aux outils/à PIX pour donner à l'application une idée visuelle de la structure d'accélération que le pilote a créée à partir des entrées de l'application.  La visualisation peut aider à révéler des bogues de pilote dans les structures d'accélération si ce qui est affiché diffère grossièrement des données utilisées par l'application pour créer la structure d'accélération, au-delà des tolérances autorisées.  Pour les structures d'accélération de niveau supérieur, la sortie comprend un ensemble de descriptions d'instances identiques aux données utilisées lors de la génération d'origine, et dans le même ordre.  Pour les structures d'accélération de niveau inférieur, la sortie comprend un ensemble de descriptions de géométrie correspondant approximativement aux données utilisées lors de la génération d'origine.  La sortie ne correspond qu'approximativement à l'original, en partie en raison des tolérances autorisées par la spécification des structures d'accélération et en partie en raison de la complexité inhérente au fait de restituer exactement la même structure que celle encodée conceptuellement.  Par exemple, les zones englobantes alignées sur les axes (AABB) retournées pour les primitives procédurales peuvent être plus conservatrices (plus grandes) en volume, voire différentes en nombre, par rapport à ce qui figure réellement dans la représentation de la structure d'accélération.  Les géométries, chacune avec sa propre description, apparaissent dans le même ordre que dans la structure d'accélération d'origine, car les calculs d'indexation de la table de nuanceurs en dépendent.   <br /> **IMPORTANT** La mémoire source doit être dans l'état [**D3D12\_RESOURCE\_STATE\_RAYTRACING\_ACCELERATION\_STRUCTURE**](/fr/reference/graphics/d3d12_x/enums/d3d12_resource_states). La mémoire de destination doit être dans l'état [**D3D12\_RESOURCE\_STATE\_UNORDERED\_ACCESS**](/fr/reference/graphics/d3d12_x/enums/d3d12_resource_states).  Ce mode n'est autorisé que lorsque le mode développeur est activé dans le système d'exploitation. |
| D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_COPY\_MODE\_SERIALIZE | La destination adopte la disposition et la taille décrites dans la documentation de [D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_POSTBUILD\_INFO\_SERIALIZATION\_DESC](/fr/reference/graphics/d3d12/structs/d3d12_raytracing_acceleration_structure_postbuild_info_serialization_desc_public), structure elle-même générée par un appel à [EmitRaytracingAccelerationStructurePostbuildInfo](/fr/reference/graphics/d3d12/interfaces/id3d12graphicscommandlist4/methods/id3d12graphicscommandlist4_emitraytracingaccelerationstructurepostbuildinfo_public).  Ce mode sérialise une structure d'accélération afin qu'une application ou des outils puissent la stocker dans un fichier en vue d'une réutilisation ultérieure, généralement sur une autre instance d'appareil, par désérialisation.  Lors de la sérialisation d'une structure d'accélération de niveau supérieur, les structures d'accélération de niveau inférieur auxquelles elle fait référence n'ont pas besoin d'être encore présentes ou intactes en mémoire.  De même, les structures d'accélération de niveau inférieur peuvent être sérialisées indépendamment du fait que des structures d'accélération de niveau supérieur pointent vers elles ou non.  En d'autres termes, l'ordre de sérialisation des structures d'accélération n'a pas d'importance.  <br /> **IMPORTANT** La mémoire source doit être dans l'état [**D3D12\_RESOURCE\_STATE\_RAYTRACING\_ACCELERATION\_STRUCTURE**](/fr/reference/graphics/d3d12_x/enums/d3d12_resource_states). La mémoire de destination doit être dans l'état [**D3D12\_RESOURCE\_STATE\_UNORDERED\_ACCESS**](/fr/reference/graphics/d3d12_x/enums/d3d12_resource_states). |
| D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_COPY\_MODE\_DESERIALIZE | La source doit être une structure d'accélération sérialisée dont les éventuels pointeurs, situés directement après l'en-tête, ont été corrigés pour pointer vers leurs nouveaux emplacements. Pour plus d'informations, consultez  [D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_POSTBUILD\_INFO\_SERIALIZATION\_DESC](/fr/reference/graphics/d3d12/structs/d3d12_raytracing_acceleration_structure_postbuild_info_serialization_desc_public).  La destination reçoit une structure d'accélération fonctionnellement équivalente à la structure d'accélération sérialisée à l'origine.  L'ordre dans lequel les structures d'accélération de niveau supérieur et de niveau inférieur sont désérialisées n'a pas d'importance, tant que les structures d'accélération de niveau inférieur référencées par une structure d'accélération de niveau supérieur sont présentes au moment où celle-ci est utilisée pour le lancer de rayons ou pour des mises à jour de structure d'accélération.  La désérialisation ne peut être effectuée que sur le même appareil et avec la même version de pilote que ceux sur lesquels les données ont été sérialisées. Sinon, les résultats sont indéfinis.  Ce mode est uniquement destiné aux outils tels que PIX, même si rien n'empêche une application de l'utiliser, mais il n'est autorisé que lorsque le mode développeur est activé dans le système d'exploitation.   Cette opération de copie n'est pas destinée à la mise en cache des structures d'accélération, car l'exécution d'une génération complète de structure d'accélération est susceptible d'être plus rapide que son chargement à partir du disque.   <br /> **IMPORTANT** La mémoire source doit être dans l'état [**D3D12\_RESOURCE\_STATE\_NON\_PIXEL\_SHADER\_RESOURCE**](/fr/reference/graphics/d3d12_x/enums/d3d12_resource_states). > La mémoire de destination doit être dans l'état [**D3D12\_RESOURCE\_STATE\_RAYTRACING\_ACCELERATION\_STRUCTURE**](/fr/reference/graphics/d3d12_x/enums/d3d12_resource_states). |
| D3D12XBOX\_RAYTRACING\_ACCELERATION\_STRUCTURE\_COPY\_MODE\_SERIALIZE\_AND\_COMPRESS | **REMARQUE : cet indicateur est déprécié et sera supprimé dans le GDK de juin 2024** <br /> Copie une structure d'accélération et la compresse pour une utilisation avec le décompresseur BVH sur processeur de XG, DecompressBVH(). Cette compression est destinée aux BVH générés hors connexion. |
| D3D12XBOX\_RAYTRACING\_ACCELERATION\_STRUCTURE\_COPY\_MODE\_SERIALIZE\_AND\_COMPRESS\_FOR\_GPU | **REMARQUE : cet indicateur est déprécié et sera supprimé dans le GDK de juin 2024** <br /> Copie une structure d'accélération et la compresse pour une utilisation avec le décompresseur BVH sur GPU de XG, DecompressBVH\_BatchedGPU(). Cette compression est destinée aux BVH générés hors connexion. |

## Configuration requise

**En-tête :** d3d12\_xs.h
**Bibliothèque :** d3d12\_xs.lib
**Plateformes prises en charge :** consoles XBOX Series


## Related topics

- [CopyRaytracingAccelerationStructure (consoles XBOX Series)](/fr/reference/graphics/d3d12/interfaces/id3d12graphicscommandlist4/methods/id3d12graphicscommandlist4_copyraytracingaccelerationstructure_public.md)
- [CheckDriverMatchingIdentifier (consoles XBOX Series)](/fr/reference/graphics/d3d12/interfaces/id3d12device5/methods/id3d12device5_checkdrivermatchingidentifier_public.md)
- [D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS](/fr/reference/graphics/d3d12/structs/d3d12_build_raytracing_acceleration_structure_inputs_public.md)
- [D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE](/fr/reference/graphics/d3d12/enums/d3d12_raytracing_acceleration_structure_type_public.md)
- [D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC](/fr/reference/graphics/d3d12/structs/d3d12_build_raytracing_acceleration_structure_desc_public.md)
