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

> Define as entradas para uma operação de criação de estrutura de aceleração de ray tracing. Essa estrutura é usada por.

Define as entradas para uma operação de criação de estrutura de aceleração de ray tracing. Essa estrutura é usada por [ID3D12GraphicsCommandList4::BuildRaytracingAccelerationStructure](/pt-BR/reference/graphics/d3d12/interfaces/id3d12graphicscommandlist4/methods/id3d12graphicscommandlist4_buildraytracingaccelerationstructure_public) e [ID3D12Device5::GetRaytracingAccelerationStructurePrebuildInfo](/pt-BR/reference/graphics/d3d12/interfaces/id3d12device5/methods/id3d12device5_getraytracingaccelerationstructureprebuildinfo_public).

## Sintaxe

```cpp theme={null}
typedef struct D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS
{
    D3D12_RAYTRACING_ACCELERATION_STRUCTURE_TYPE Type;
    D3D12_RAYTRACING_ACCELERATION_STRUCTURE_BUILD_FLAGS Flags;
    UINT NumDescs;
    D3D12_ELEMENTS_LAYOUT DescsLayout;
    D3D12_GPU_VIRTUAL_ADDRESS InstanceDescs;
    const D3D12_RAYTRACING_GEOMETRY_DESC  pGeometryDescs;
    const D3D12_RAYTRACING_GEOMETRY_DESC const  ppGeometryDescs;
} D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_INPUTS
```

### Membros

*Type*\
Tipo: D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_TYPE

O tipo de estrutura de aceleração a ser criada.

*Flags*\
Tipo: D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_BUILD\_FLAGS

Os sinalizadores de criação.

*NumDescs*\
Tipo: UINT

Se <i>Type</i> for **D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_TOP\_LEVEL**, esse valor será o número de instâncias, dispostas com base em <i>DescsLayout</i>.

Se <i>Type</i> for **D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_BOTTOM\_LEVEL**, esse valor será o número de elementos referenciados por <i>pGeometryDescs</i> ou <i>ppGeometryDescs</i>. Qual desses campos é usado depende de <i>DescsLayout</i>.

*DescsLayout*\
Tipo: D3D12\_ELEMENTS\_LAYOUT

Como as descrições de geometria são especificadas: uma matriz de descrições ou uma matriz de ponteiros para descrições.

*InstanceDescs*\
Tipo: D3D12\_GPU\_VIRTUAL\_ADDRESS

Se <i>Type</i> for **D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_TOP\_LEVEL**, isso se refere a <i>NumDescs</i> estruturas [D3D12\_RAYTRACING\_INSTANCE\_DESC](/pt-BR/reference/graphics/d3d12/structs/d3d12_raytracing_instance_desc_public) na memória da GPU que descrevem instâncias. Cada instância deve estar alinhada a 16 bytes, definido como [D3D12\_RAYTRACING\_INSTANCE\_DESC\_BYTE\_ALIGNMENT](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/constants).

Se <i>Type</i> não for **D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_TOP\_LEVEL**, esse parâmetro não será usado.

Se <i>DescLayout</i> for **D3D12\_ELEMENTS\_LAYOUT\_ARRAY**, <i>InstanceDescs</i> apontará para uma matriz de descrições de instâncias na memória da GPU.

Se <i>DescLayout</i> for **D3D12\_ELEMENTS\_LAYOUT\_ARRAY\_OF\_POINTERS**, <i>InstanceDescs</i> apontará para uma matriz na memória da GPU de ponteiros [D3D12\_GPU\_VIRTUAL\_ADDRESS](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/d3d12_gpu_virtual_address) para descrições de instâncias.

A memória apontada deve estar no estado [D3D12\_RESOURCE\_STATE\_NON\_PIXEL\_SHADER\_RESOURCE](/pt-BR/reference/graphics/d3d12_x/enums/d3d12_resource_states).

*pGeometryDescs*\
Tipo: const D3D12\_RAYTRACING\_GEOMETRY\_DESC \*

Se <i>Type</i> for **D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_BOTTOM\_LEVEL** e <i>DescsLayout</i> for **D3D12\_ELEMENTS\_LAYOUT\_ARRAY**, esse campo será usado e apontará para <i>NumDescs</i> estruturas **D3D12\_RAYTRACING\_GEOMETRY\_DESC** contíguas na CPU, que descrevem geometrias individuais.

Se <i>Type</i> não for **D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_BOTTOM\_LEVEL** ou <i>DescsLayout</i> não for **D3D12\_ELEMENTS\_LAYOUT\_ARRAY**, esse parâmetro não será usado.

*ppGeometryDescs*\
Tipo: const D3D12\_RAYTRACING\_GEOMETRY\_DESC \*const \*

Se <i>Type</i> for **D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_BOTTOM\_LEVEL** e <i>DescsLayout</i> for **D3D12\_ELEMENTS\_LAYOUT\_ARRAY\_OF\_POINTERS**, esse campo será usado e apontará para uma matriz de <i>NumDescs</i> ponteiros para estruturas [D3D12\_RAYTRACING\_GEOMETRY\_DESC](/pt-BR/reference/graphics/d3d12/structs/d3d12_raytracing_geometry_desc_public) na CPU, que descrevem geometrias individuais.

## Comentários

Quando usado com [GetRaytracingAccelerationStructurePrebuildInfo](/pt-BR/reference/graphics/d3d12/interfaces/id3d12device5/methods/id3d12device5_getraytracingaccelerationstructureprebuildinfo_public), que na verdade realiza uma criação, qualquer parâmetro referenciado por meio de [D3D12\_GPU\_VIRTUAL\_ADDRESS](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/d3d12_gpu_virtual_address) (um endereço na memória da GPU), como <i>InstanceDescs</i>, não será acessado pela operação. Portanto, essa memória ainda não precisa ser inicializada nem estar em um estado de recurso específico. A operação pode verificar se os endereços de GPU são nulos ou não, mesmo que os ponteiros não sejam desreferenciados.

## Requisitos

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


## Related topics

- [GetRaytracingAccelerationStructurePrebuildInfo](/pt-BR/reference/graphics/d3d12/interfaces/id3d12device5/methods/id3d12device5_getraytracingaccelerationstructureprebuildinfo_public.md)
- [D3D12_BUILD_RAYTRACING_ACCELERATION_STRUCTURE_DESC](/pt-BR/reference/graphics/d3d12/structs/d3d12_build_raytracing_acceleration_structure_desc_public.md)
- [D3D12_RAYTRACING_GEOMETRY_DESC (consoles XBOX Series)](/pt-BR/reference/graphics/d3d12/structs/d3d12_raytracing_geometry_desc_public.md)
- [D3D12_RAYTRACING_GEOMETRY_AABBS_DESC (consoles XBOX Series)](/pt-BR/reference/graphics/d3d12/structs/d3d12_raytracing_geometry_aabbs_desc_public.md)
- [D3D12_RAYTRACING_ACCELERATION_STRUCTURE_PREBUILD_INFO](/pt-BR/reference/graphics/d3d12/structs/d3d12_raytracing_acceleration_structure_prebuild_info_public.md)
