> ## 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 las entradas para una operación de compilación de una estructura de aceleración de trazado de rayos. Esta estructura la usa.

Define las entradas para una operación de compilación de una estructura de aceleración de trazado de rayos. Esta estructura la usan [ID3D12GraphicsCommandList4::BuildRaytracingAccelerationStructure](/reference/graphics/d3d12/interfaces/id3d12graphicscommandlist4/methods/id3d12graphicscommandlist4_buildraytracingaccelerationstructure_public) e [ID3D12Device5::GetRaytracingAccelerationStructurePrebuildInfo](/reference/graphics/d3d12/interfaces/id3d12device5/methods/id3d12device5_getraytracingaccelerationstructureprebuildinfo_public).

## Sintaxis

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

### Miembros

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

El tipo de estructura de aceleración que se va a compilar.

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

Las marcas de compilación.

*NumDescs*\
Tipo: UINT

Si <i>Type</i> es **D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_TOP\_LEVEL**, este valor es el número de instancias, dispuestas según <i>DescsLayout</i>.

Si <i>Type</i> es **D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_BOTTOM\_LEVEL**, este valor es el número de elementos a los que hacen referencia <i>pGeometryDescs</i> o <i>ppGeometryDescs</i>. El campo que se usa depende de <i>DescsLayout</i>.

*DescsLayout*\
Tipo: D3D12\_ELEMENTS\_LAYOUT

Cómo se especifican las descripciones de geometría: una matriz de descripciones o una matriz de punteros a descripciones.

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

Si <i>Type</i> es **D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_TOP\_LEVEL**, hace referencia a <i>NumDescs</i> estructuras [D3D12\_RAYTRACING\_INSTANCE\_DESC](/reference/graphics/d3d12/structs/d3d12_raytracing_instance_desc_public) en la memoria de la GPU que describen instancias.  Cada instancia debe estar alineada a 16 bytes, definido como [D3D12\_RAYTRACING\_INSTANCE\_DESC\_BYTE\_ALIGNMENT](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/constants).

Si <i>Type</i> no es **D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_TOP\_LEVEL**, este parámetro no se usa.

Si <i>DescLayout</i> es **D3D12\_ELEMENTS\_LAYOUT\_ARRAY**, <i>InstanceDescs</i> apunta a una matriz de descripciones de instancia en la memoria de la GPU.

Si <i>DescLayout</i> es **D3D12\_ELEMENTS\_LAYOUT\_ARRAY\_OF\_POINTERS**, <i>InstanceDescs</i> apunta a una matriz en la memoria de la GPU de punteros [D3D12\_GPU\_VIRTUAL\_ADDRESS](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/d3d12_gpu_virtual_address) a descripciones de instancia.

La memoria a la que se apunta debe estar en el estado [D3D12\_RESOURCE\_STATE\_NON\_PIXEL\_SHADER\_RESOURCE](/reference/graphics/d3d12_x/enums/d3d12_resource_states).

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

Si <i>Type</i> es **D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_BOTTOM\_LEVEL** y <i>DescsLayout</i> es **D3D12\_ELEMENTS\_LAYOUT\_ARRAY**, este campo se usa y apunta a <i>NumDescs</i> estructuras **D3D12\_RAYTRACING\_GEOMETRY\_DESC** contiguas en la CPU, que describen geometrías individuales.

Si <i>Type</i> no es **D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_BOTTOM\_LEVEL** o <i>DescsLayout</i> no es **D3D12\_ELEMENTS\_LAYOUT\_ARRAY**, este parámetro no se usa.

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

Si <i>Type</i> es **D3D12\_RAYTRACING\_ACCELERATION\_STRUCTURE\_BOTTOM\_LEVEL** y <i>DescsLayout</i> es **D3D12\_ELEMENTS\_LAYOUT\_ARRAY\_OF\_POINTERS**, este campo se usa y apunta a una matriz de <i>NumDescs</i> punteros a estructuras [D3D12\_RAYTRACING\_GEOMETRY\_DESC](/reference/graphics/d3d12/structs/d3d12_raytracing_geometry_desc_public) en la CPU, que describen geometrías individuales.

## Comentarios

Cuando se usa con [GetRaytracingAccelerationStructurePrebuildInfo](/reference/graphics/d3d12/interfaces/id3d12device5/methods/id3d12device5_getraytracingaccelerationstructureprebuildinfo_public), que realmente realiza una compilación, la operación no accederá a ningún parámetro al que se haga referencia mediante [D3D12\_GPU\_VIRTUAL\_ADDRESS](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/d3d12_gpu_virtual_address) (una dirección en la memoria de la GPU), como <i>InstanceDescs</i>.  Por lo tanto, esta memoria todavía no necesita estar inicializada ni encontrarse en un estado de recurso concreto.  La operación puede inspeccionar si las direcciones de GPU son nulas o no, aunque los punteros no se desreferencien.

## Requisitos

**Encabezado:** d3d12\_xs.h\
**Biblioteca:** d3d12\_xs.lib\
**Plataformas compatibles**: consolas XBOX Series


## Related topics

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