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

> Especifica sinalizadores para a compilação de uma estrutura de aceleração de raytracing. Use um valor desta enumeração com a.

Especifica sinalizadores para a compilação de uma estrutura de aceleração de raytracing. Use um valor desta enumeração com a estrutura [D3D12\_BUILD\_RAYTRACING\_ACCELERATION\_STRUCTURE\_INPUTS](/pt-BR/reference/graphics/d3d12/structs/d3d12_build_raytracing_acceleration_structure_inputs_public), que fornece a entrada para a operação de compilação da estrutura de aceleração.

## Sintaxe

```cpp theme={null}
typedef enum D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS
{
    D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_NONE = 0x00,
    D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_UPDATE = 0x01,
    D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_ALLOW_COMPACTION = 0x02,
    D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_TRACE = 0x04,
    D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PREFER_FAST_BUILD = 0x08,
    D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_MINIMIZE_MEMORY = 0x10,
    D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_PERFORM_UPDATE = 0x20,
    D3D12XBOX_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAG_DEHYDRATE = 0x40000000,
} D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS
```

## Constantes

| Constante | Descrição |
| - | - |
| D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_BUILD\_FLAG\_NONE | Nenhuma opção especificada para a compilação da estrutura de aceleração. |
| D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_BUILD\_FLAG\_ALLOW\_UPDATE | Compila a estrutura de aceleração de forma que ela dê suporte a atualizações futuras (por meio do sinalizador **D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_BUILD\_FLAG\_PERFORM\_UPDATE**), em vez de o aplicativo precisar recompilar totalmente a estrutura.  Essa opção pode resultar em maior consumo de memória, maiores tempos de compilação e menor desempenho de raytracing.  No entanto, as atualizações futuras devem ser mais rápidas do que compilar a estrutura de aceleração equivalente do zero.  Esse sinalizador só pode ser definido em uma compilação inicial da estrutura de aceleração ou em uma atualização em que a estrutura de aceleração de origem tenha especificado **D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_BUILD\_FLAG\_ALLOW\_UPDATE**.  Em outras palavras, depois que uma estrutura de aceleração tiver sido compilada sem **D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_BUILD\_FLAG\_ALLOW\_UPDATE**, nenhuma outra estrutura de aceleração poderá ser criada a partir dela por meio de atualizações. |
| D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_BUILD\_FLAG\_ALLOW\_COMPACTION | Habilita a opção de compactar a estrutura de aceleração chamando [CopyRaytracingAccelerationStructure](/pt-BR/reference/graphics/d3d12/interfaces/id3d12graphicscommandlist4/methods/id3d12graphicscommandlist4_copyraytracingaccelerationstructure_public) usando o modo de compactação, especificado com [D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_COPY\_MODE\_COMPACT](/pt-BR/reference/graphics/d3d12/enums/d3d12_raytracing_acceleration_structure_copy_mode_public).  Essa opção pode resultar em maior consumo de memória e maiores tempos de compilação.  No entanto, após a compactação futura, a estrutura de aceleração resultante deve ocupar menos memória do que compilar a estrutura de aceleração do zero.  Esse sinalizador é compatível com todos os outros sinalizadores.  Se especificado como parte de uma atualização da estrutura de aceleração, a estrutura de aceleração de origem também deverá ter sido compilada com esse sinalizador.  Em outras palavras, depois que uma estrutura de aceleração tiver sido compilada sem **D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_BUILD\_FLAG\_ALLOW\_COMPACTION**, nenhuma outra estrutura de aceleração poderá ser criada a partir dela por meio de atualizações que especifiquem **D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_BUILD\_FLAG\_ALLOW\_COMPACTION**.    Especificar ALLOW\_COMPACTION pode aumentar o tamanho da estrutura de aceleração antes da compactação em comparação a não especificar ALLOW\_COMPACTION.    Se várias compilações incrementais forem executadas antes da compactação final, poderá haver trabalho redundante relacionado à compactação.   O tamanho necessário para a estrutura de aceleração compactada pode ser consultado antes da compactação por meio de [EmitRaytracingAccelerationStructurePostbuildInfo](/pt-BR/reference/graphics/d3d12/interfaces/id3d12graphicscommandlist4/methods/id3d12graphicscommandlist4_emitraytracingaccelerationstructurepostbuildinfo_public). Consulte [D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_POSTBUILD\_INFO\_COMPACTED\_SIZE\_DESC](/pt-BR/reference/graphics/d3d12/structs/d3d12_raytracing_acceleration_structure_postbuild_info_compacted_size_desc_public) para obter mais informações sobre as propriedades do tamanho da estrutura de aceleração compactada.  <div class="alert">**Observação**  Quando **D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_BUILD\_FLAG\_ALLOW\_UPDATE** é especificado, há certas informações que precisam ser mantidas na estrutura de aceleração, e a compactação só ajudará até certo ponto. No entanto, se o pipeline souber que a estrutura de aceleração não será mais atualizada, ele poderá tornar a estrutura mais compacta.  Alguns aplicativos podem se beneficiar da compactação dupla: uma vez após a compilação inicial e novamente depois que a estrutura de aceleração se estabilizar em um estado estático, se isso ocorrer.</div> <div> </div> |
| D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_BUILD\_FLAG\_PREFER\_FAST\_TRACE | Constrói uma estrutura de aceleração de alta qualidade que maximiza o desempenho de raytracing à custa de tempo adicional de compilação.  Normalmente, a implementação levará de 2 a 3 vezes o tempo de compilação da configuração padrão para obter um melhor desempenho de rastreamento.  Esse sinalizador é recomendado especialmente para geometria estática.  Ele é compatível com todos os outros sinalizadores, exceto **D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_BUILD\_FLAG\_PREFER\_FAST\_BUILD**. |
| D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_BUILD\_FLAG\_PREFER\_FAST\_BUILD | Constrói uma estrutura de aceleração de qualidade inferior, trocando desempenho de raytracing por velocidade de compilação.  Normalmente, a implementação levará de 1/2 a 1/3 do tempo de compilação da configuração padrão, com sacrifício no desempenho de rastreamento.  Esse sinalizador é compatível com todos os outros sinalizadores, exceto **D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_BUILD\_FLAG\_PREFER\_FAST\_BUILD**. |
| D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_BUILD\_FLAG\_MINIMIZE\_MEMORY | Minimiza a quantidade de memória de rascunho usada durante a compilação da estrutura de aceleração, bem como o tamanho do resultado.  Essa opção pode resultar em maiores tempos de compilação e/ou de raytracing. Isso é ortogonal ao sinalizador **D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_BUILD\_FLAG\_ALLOW\_COMPACTION** e à compactação explícita da estrutura de aceleração que ele habilita.  Combinar os sinalizadores pode significar que tanto a estrutura de aceleração inicial quanto o resultado de sua compactação usem menos memória.  O impacto do uso desse sinalizador em uma compilação é refletido no resultado da chamada de [GetRaytracingAccelerationStructurePrebuildInfo](/pt-BR/reference/graphics/d3d12/interfaces/id3d12device5/methods/id3d12device5_getraytracingaccelerationstructureprebuildinfo_public) antes da compilação para recuperar os requisitos de memória da compilação.  Esse sinalizador é compatível com todos os outros sinalizadores. |
| D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_BUILD\_FLAG\_PERFORM\_UPDATE | Executa uma atualização da estrutura de aceleração, em vez de compilá-la do zero.  Isso é mais rápido do que uma compilação completa, mas pode afetar negativamente o desempenho de raytracing, especialmente se as posições dos objetos subjacentes tiverem mudado significativamente desde a compilação original da estrutura de aceleração antes das atualizações.  Se os endereços das estruturas de aceleração de origem e de destino forem idênticos, a atualização será executada no local.  Qualquer outra sobreposição dos intervalos de endereços de origem e destino é inválida.  Para origens e destinos sem sobreposição, a estrutura de aceleração de origem não é modificada.  O requisito de memória para a estrutura de aceleração de saída é o mesmo da estrutura de aceleração de entrada  A estrutura de aceleração de origem deve ter sido compilada com **D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_BUILD\_FLAG\_ALLOW\_UPDATE**.  Esse sinalizador é compatível com todos os outros sinalizadores.  As demais seleções de sinalizadores, além de **D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_BUILD\_FLAG\_ALLOW\_UPDATE** e **D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_BUILD\_FLAG\_PERFORM\_UPDATE**, devem corresponder aos sinalizadores da estrutura de aceleração de origem.  As atualizações da estrutura de aceleração podem ser executadas em sucessão ilimitada, desde que a estrutura de aceleração de origem tenha sido criada com **D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_BUILD\_FLAG\_ALLOW\_UPDATE** e os sinalizadores da compilação de atualização continuem especificando **D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_BUILD\_FLAG\_ALLOW\_UPDATE**. |
| D3D12XBOX\_RAYTRACING\_ACCELERATION\_STRUCTURE\_BUILD\_FLAG\_DEHYDRATE | Gera uma BVH desidratada (os dados de geometria são zerados) que pode ser compactada com Deflate. A BVH pode ser reidratada no local usando a GPU com `ID3D12GraphicsCommandList8::RehydrateRaytracingAccelerationStructureBatchedX` ou pela CPU com `ID3D12Device11::RehydrateRaytracingAccelerationStructureX` |

## Requisitos

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


## Related topics

- [D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS](/pt-BR/reference/graphics/d3d12/structs/d3d12_build_raytracing_acceleration_structure_inputs_public.md)
- [Diretório de tópicos NDA: links ativos do Microsoft Learn](/pt-BR/nda/nda-topic-directory.md)
- [D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC](/pt-BR/reference/graphics/d3d12/structs/d3d12_build_raytracing_acceleration_structure_desc_public.md)
- [D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO](/pt-BR/reference/graphics/d3d12/structs/d3d12_raytracing_acceleration_structure_prebuild_info_public.md)
- [D3D12_RAYTRACING_ACCELERATION_STRUCTURE_POSTBUILD_INFO_DESC](/pt-BR/reference/graphics/d3d12/structs/d3d12_raytracing_acceleration_structure_postbuild_info_desc_public.md)
