> ## 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-CA/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 de la source à 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-CA/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-CA/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 en mode clone, mais en faisant tenir la destination dans une empreinte mémoire potentiellement plus petite, et certainement pas plus grande.  La taille requise pour la destination peut être obtenue au préalable avec [EmitRaytracingAccelerationStructurePostbuildInfo](/fr-CA/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-CA/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 exige 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-CA/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-CA/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-CA/reference/graphics/d3d12/structs/d3d12_build_raytracing_acceleration_structure_tools_visualization_header_public).  La taille requise pour la destination peut être obtenue au préalable avec [EmitRaytracingAccelerationStructurePostbuildInfo](/fr-CA/reference/graphics/d3d12/interfaces/id3d12graphicscommandlist4/methods/id3d12graphicscommandlist4_emitraytracingaccelerationstructurepostbuildinfo_public).  Ce mode est uniquement destiné aux outils tels que PIX, mais 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 pour que les outils/PIX puissent 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 du pilote dans les structures d'accélération si ce qui est affiché ne correspond grossièrement pas aux données utilisées par l'application pour créer la structure d'accélération, au-delà des tolérances permises.  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 originale, 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 originale.  La sortie ne correspond qu'approximativement à l'original, en partie en raison des tolérances permises dans la spécification des structures d'accélération, et en partie en raison de la complexité inhérente au fait de rapporter 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 pourraient être plus conservatrices (plus grandes) en volume, et même différentes en nombre, par rapport à ce qui se trouve réellement dans la représentation de la structure d'accélération.  Les géométries, chacune avec sa propre description de géométrie, apparaissent dans le même ordre que dans la structure d'accélération originale, 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-CA/reference/graphics/d3d12_x/enums/d3d12_resource_states). La mémoire de destination doit être dans l'état [**D3D12\_RESOURCE\_STATE\_UNORDERED\_ACCESS**](/fr-CA/reference/graphics/d3d12_x/enums/d3d12_resource_states).  Ce mode n'est permis 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-CA/reference/graphics/d3d12/structs/d3d12_raytracing_acceleration_structure_postbuild_info_serialization_desc_public), elle-même une structure générée par un appel à [EmitRaytracingAccelerationStructurePostbuildInfo](/fr-CA/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 pour la réutiliser plus tard, 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, que des structures d'accélération de niveau supérieur pointent ou non vers elles.  Autrement dit, 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-CA/reference/graphics/d3d12_x/enums/d3d12_resource_states). La mémoire de destination doit être dans l'état [**D3D12\_RESOURCE\_STATE\_UNORDERED\_ACCESS**](/fr-CA/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 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-CA/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 qui a été 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 auxquelles une structure de niveau supérieur fait référence sont présentes au moment où celle-ci est utilisée pour le lancer de rayons ou pour des mises à jour de structures d'accélération.  La désérialisation ne peut être effectuée que sur le même appareil et 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; rien n'empêche une application de l'utiliser, mais ce mode n'est permis 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 sera probablement 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-CA/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-CA/reference/graphics/d3d12_x/enums/d3d12_resource_states). |
| D3D12XBOX\_RAYTRACING\_ACCELERATION\_STRUCTURE\_COPY\_MODE\_SERIALIZE\_AND\_COMPRESS | **REMARQUE : Cet indicateur est déconseillé et sera supprimé dans le GDK de juin 2024** <br /> Copie une structure d'accélération et la compresse pour l'utiliser avec le décompresseur de BVH sur CPU de XG, DecompressBVH(). Cette compression est destinée aux BVH générés hors ligne. |
| D3D12XBOX\_RAYTRACING\_ACCELERATION\_STRUCTURE\_COPY\_MODE\_SERIALIZE\_AND\_COMPRESS\_FOR\_GPU | **REMARQUE : Cet indicateur est déconseillé et sera supprimé dans le GDK de juin 2024** <br /> Copie une structure d'accélération et la compresse pour l'utiliser avec le décompresseur de BVH sur GPU de XG, DecompressBVH\_BatchedGPU(). Cette compression est destinée aux BVH générés hors ligne. |

## Configuration requise

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


## Related topics

- [CopyRaytracingAccelerationStructure (XBOX Series consoles)](/reference/graphics/d3d12/interfaces/id3d12graphicscommandlist4/methods/id3d12graphicscommandlist4_copyraytracingaccelerationstructure_public.md)
- [CopyRaytracingAccelerationStructure (consolas XBOX Series)](/es/reference/graphics/d3d12/interfaces/id3d12graphicscommandlist4/methods/id3d12graphicscommandlist4_copyraytracingaccelerationstructure_public.md)
- [CopyRaytracingAccelerationStructure (XBOX Series 主机)](/zh-CN/reference/graphics/d3d12/interfaces/id3d12graphicscommandlist4/methods/id3d12graphicscommandlist4_copyraytracingaccelerationstructure_public.md)
- [CopyRaytracingAccelerationStructure (XBOX Series 콘솔)](/ko/reference/graphics/d3d12/interfaces/id3d12graphicscommandlist4/methods/id3d12graphicscommandlist4_copyraytracingaccelerationstructure_public.md)
- [CopyRaytracingAccelerationStructure (XBOX Series 本体)](/ja-jp/reference/graphics/d3d12/interfaces/id3d12graphicscommandlist4/methods/id3d12graphicscommandlist4_copyraytracingaccelerationstructure_public.md)
