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

> Especifica o tipo de operação de cópia executada ao chamar CopyRaytracingAccelerationStructure.

Especifica o tipo de operação de cópia executada ao chamar [CopyRaytracingAccelerationStructure](/pt-BR/reference/graphics/d3d12/interfaces/id3d12graphicscommandlist4/methods/id3d12graphicscommandlist4_copyraytracingaccelerationstructure_public).

## Sintaxe

```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 | Descrição |
| - | - |
| D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_COPY\_MODE\_CLONE | Copia uma estrutura de aceleração corrigindo quaisquer ponteiros autorreferenciais que possam estar presentes, de modo que o destino seja uma cópia autossuficiente da origem.  Quaisquer ponteiros externos para outras estruturas de aceleração permanecem inalterados da origem para o destino na cópia.  O tamanho do destino é idêntico ao tamanho da origem. <br /> **IMPORTANTE** A memória de origem deve estar no estado [**D3D12\_RESOURCE\_STATE\_RAYTRACING\_ACCELERATION\_STRUCTURE**](/pt-BR/reference/graphics/d3d12_x/enums/d3d12_resource_states). A memória de destino deve estar no estado [**D3D12\_RESOURCE\_STATE\_RAYTRACING\_ACCELERATION\_STRUCTURE**](/pt-BR/reference/graphics/d3d12_x/enums/d3d12_resource_states). |
| D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_COPY\_MODE\_COMPACT | Produz no destino uma estrutura de aceleração funcionalmente equivalente à origem, semelhante ao modo de clonagem, mas também ajusta o destino a um consumo de memória potencialmente menor e certamente não maior.  O tamanho necessário para o destino pode ser recuperado antecipadamente de [EmitRaytracingAccelerationStructurePostbuildInfo](/pt-BR/reference/graphics/d3d12/interfaces/id3d12graphicscommandlist4/methods/id3d12graphicscommandlist4_emitraytracingaccelerationstructurepostbuildinfo_public).  Esse modo só é válido se a estrutura de aceleração de origem tiver sido originalmente compilada com o sinalizador [D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_BUILD\_FLAG\_ALLOW\_COMPACTION](/pt-BR/reference/graphics/d3d12/enums/d3d12_raytracing_acceleration_structure_build_flags_public); caso contrário, os resultados serão indefinidos.  A compactação da geometria exige que toda a estrutura de aceleração seja construída, e é por isso que você deve primeiro compilar e depois compactar a estrutura.  <br /> **IMPORTANTE** A memória de origem deve estar no estado [**D3D12\_RESOURCE\_STATE\_RAYTRACING\_ACCELERATION\_STRUCTURE**](/pt-BR/reference/graphics/d3d12_x/enums/d3d12_resource_states). A memória de destino deve estar no estado [**D3D12\_RESOURCE\_STATE\_RAYTRACING\_ACCELERATION\_STRUCTURE**](/pt-BR/reference/graphics/d3d12_x/enums/d3d12_resource_states). |
| D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_COPY\_MODE\_VISUALIZATION\_DECODE\_FOR\_TOOLS | O destino assume o layout descrito em [D3D12\_BUILD\_RAYTRACING\_ACCELERATION\_STRUCTURE\_TOOLS\_VISUALIZATION\_HEADER](/pt-BR/reference/graphics/d3d12/structs/d3d12_build_raytracing_acceleration_structure_tools_visualization_header_public).  O tamanho necessário para o destino pode ser recuperado antecipadamente de [EmitRaytracingAccelerationStructurePostbuildInfo](/pt-BR/reference/graphics/d3d12/interfaces/id3d12graphicscommandlist4/methods/id3d12graphicscommandlist4_emitraytracingaccelerationstructurepostbuildinfo_public).  Esse modo destina-se apenas a ferramentas como o PIX, embora nada impeça qualquer aplicativo de usá-lo.  A saída é essencialmente o inverso de uma compilação de estrutura de aceleração.  Essa estrutura geral é suficiente para que ferramentas/PIX possam dar ao aplicativo alguma noção visual da estrutura de aceleração que o driver criou a partir da entrada do aplicativo.  A visualização pode ajudar a revelar bugs do driver em estruturas de aceleração se o que for exibido divergir grosseiramente dos dados que o aplicativo usou para criar a estrutura de aceleração, além das tolerâncias permitidas.  Para estruturas de aceleração de nível superior, a saída inclui um conjunto de descrições de instância idênticas aos dados usados na compilação original e na mesma ordem.  Para estruturas de aceleração de nível inferior, a saída inclui um conjunto de descrições de geometria que correspondem aproximadamente aos dados usados na compilação original.  A saída é apenas uma correspondência aproximada do original, em parte devido às tolerâncias permitidas na especificação para estruturas de aceleração e em parte devido à complexidade inerente de relatar exatamente a mesma estrutura que está conceitualmente codificada.  Por exemplo, as caixas delimitadoras alinhadas aos eixos (AABBs) retornadas para primitivos procedurais podem ser mais conservadoras (maiores) em volume e até diferentes em número do que o que realmente está na representação da estrutura de aceleração.  As geometrias, cada uma com sua própria descrição de geometria, aparecem na mesma ordem que na aceleração original, pois os cálculos de indexação da tabela de sombreadores dependem disso.   <br /> **IMPORTANTE** A memória de origem deve estar no estado [**D3D12\_RESOURCE\_STATE\_RAYTRACING\_ACCELERATION\_STRUCTURE**](/pt-BR/reference/graphics/d3d12_x/enums/d3d12_resource_states). A memória de destino deve estar no estado [**D3D12\_RESOURCE\_STATE\_UNORDERED\_ACCESS**](/pt-BR/reference/graphics/d3d12_x/enums/d3d12_resource_states).  Esse modo só é permitido quando o modo de desenvolvedor está habilitado no sistema operacional. |
| D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_COPY\_MODE\_SERIALIZE | O destino assume o layout e o tamanho descritos na documentação de [D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_POSTBUILD\_INFO\_SERIALIZATION\_DESC](/pt-BR/reference/graphics/d3d12/structs/d3d12_raytracing_acceleration_structure_postbuild_info_serialization_desc_public), que por sua vez é uma estrutura gerada com uma chamada para [EmitRaytracingAccelerationStructurePostbuildInfo](/pt-BR/reference/graphics/d3d12/interfaces/id3d12graphicscommandlist4/methods/id3d12graphicscommandlist4_emitraytracingaccelerationstructurepostbuildinfo_public).  Esse modo serializa uma estrutura de aceleração para que um aplicativo ou ferramentas possam armazená-la em um arquivo para reutilização posterior, normalmente em uma instância de dispositivo diferente, por meio de desserialização.  Ao serializar uma estrutura de aceleração de nível superior, as estruturas de aceleração de nível inferior às quais ela se refere não precisam mais estar presentes ou intactas na memória.  Da mesma forma, as estruturas de aceleração de nível inferior podem ser serializadas independentemente de haver estruturas de aceleração de nível superior apontando para elas.  Em outras palavras, a ordem de serialização das estruturas de aceleração não importa.  <br /> **IMPORTANTE** A memória de origem deve estar no estado [**D3D12\_RESOURCE\_STATE\_RAYTRACING\_ACCELERATION\_STRUCTURE**](/pt-BR/reference/graphics/d3d12_x/enums/d3d12_resource_states). A memória de destino deve estar no estado [**D3D12\_RESOURCE\_STATE\_UNORDERED\_ACCESS**](/pt-BR/reference/graphics/d3d12_x/enums/d3d12_resource_states). |
| D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_COPY\_MODE\_DESERIALIZE | A origem deve ser uma estrutura de aceleração serializada, com quaisquer ponteiros, logo após o cabeçalho, corrigidos para apontar para seus novos locais. Para obter mais informações, consulte  [D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_POSTBUILD\_INFO\_SERIALIZATION\_DESC](/pt-BR/reference/graphics/d3d12/structs/d3d12_raytracing_acceleration_structure_postbuild_info_serialization_desc_public).  O destino recebe uma estrutura de aceleração funcionalmente equivalente à estrutura de aceleração que foi originalmente serializada.  Não importa em que ordem as estruturas de aceleração de nível superior e de nível inferior são desserializadas, desde que, no momento em que uma estrutura de aceleração de nível superior for usada para raytracing ou para atualizações de estruturas de aceleração, as estruturas de aceleração de nível inferior que ela referencia estejam presentes.  A desserialização só pode ser executada no mesmo dispositivo e na mesma versão de driver em que os dados foram serializados. Caso contrário, os resultados serão indefinidos.  Esse modo destina-se apenas a ferramentas como o PIX, embora nada impeça qualquer aplicativo de usá-lo, mas esse modo só é permitido quando o modo de desenvolvedor está habilitado no sistema operacional.   Essa operação de cópia não se destina a ser usada para armazenar estruturas de aceleração em cache, pois executar uma compilação completa da estrutura de aceleração provavelmente será mais rápido do que carregar uma do disco.   <br /> **IMPORTANTE** A memória de origem deve estar no estado [**D3D12\_RESOURCE\_STATE\_NON\_PIXEL\_SHADER\_RESOURCE**](/pt-BR/reference/graphics/d3d12_x/enums/d3d12_resource_states). > A memória de destino deve estar no estado [**D3D12\_RESOURCE\_STATE\_RAYTRACING\_ACCELERATION\_STRUCTURE**](/pt-BR/reference/graphics/d3d12_x/enums/d3d12_resource_states). |
| D3D12XBOX\_RAYTRACING\_ACCELERATION\_STRUCTURE\_COPY\_MODE\_SERIALIZE\_AND\_COMPRESS | **OBSERVAÇÃO: este sinalizador foi preterido e será removido no GDK de junho de 2024** <br /> Copia uma estrutura de aceleração e a compacta para uso com o descompactador de BVH baseado em CPU do XG, DecompressBVH(). Essa compactação destina-se ao uso com BVHs compiladas offline. |
| D3D12XBOX\_RAYTRACING\_ACCELERATION\_STRUCTURE\_COPY\_MODE\_SERIALIZE\_AND\_COMPRESS\_FOR\_GPU | **OBSERVAÇÃO: este sinalizador foi preterido e será removido no GDK de junho de 2024** <br /> Copia uma estrutura de aceleração e a compacta para uso com o descompactador de BVH baseado em GPU do XG, DecompressBVH\_BatchedGPU(). Essa compactação destina-se ao uso com BVHs compiladas offline. |

## Requisitos

**Cabeçalho:** d3d12\_xs.h
**Biblioteca:** d3d12\_xs.lib
**Plataformas com suporte**: consoles XBOX Series


## Related topics

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