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

> Descreve as opções de recursos do Direct3D 12 no driver gráfico atual.

Descreve as opções de recursos do Direct3D 12 no driver gráfico atual.

## Sintaxe

```cpp theme={null}
typedef struct D3D12_FEATURE_DATA_D3D12_OPTIONS
{
    BOOL DoublePrecisionFloatShaderOps;
    BOOL OutputMergerLogicOp;
    D3D12_SHADER_MIN_PRECISION_SUPPORT MinPrecisionSupport;
    D3D12_TILED_RESOURCES_TIER TiledResourcesTier;
    D3D12_RESOURCE_BINDING_TIER ResourceBindingTier;
    BOOL PSSpecifiedStencilRefSupported;
    BOOL TypedUAVLoadAdditionalFormats;
    BOOL ROVsSupported;
    D3D12_CONSERVATIVE_RASTERIZATION_TIER ConservativeRasterizationTier;
    UINT MaxGPUVirtualAddressBitsPerResource;
    BOOL StandardSwizzle64KBSupported;
    D3D12_CROSS_NODE_SHARING_TIER CrossNodeSharingTier;
    BOOL CrossAdapterRowMajorTextureSupported;
    BOOL VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportedWithoutGSEmulation;
    D3D12_RESOURCE_HEAP_TIER ResourceHeapTier;
} D3D12_FEATURE_DATA_D3D12_OPTIONS
```

### Membros

*DoublePrecisionFloatShaderOps*\
Tipo: BOOL

Especifica se tipos **double** são permitidos em operações de sombreador.
Se **TRUE**, tipos double são permitidos; caso contrário, **FALSE**.
As operações com suporte são equivalentes ao membro **ExtendedDoublesShaderInstructions** da estrutura [D3D11\_FEATURE\_DATA\_D3D11\_OPTIONS](https://learn.microsoft.com/en-us/windows/desktop/api/d3d11/ns-d3d11-d3d11_feature_data_d3d11_options) do Direct3D 11.

Para usar qualquer sombreador HLSL compilado com um tipo **double**,
o runtime deve definir **DoublePrecisionFloatShaderOps** como **TRUE**.

*OutputMergerLogicOp*\
Tipo: BOOL

Especifica se operações lógicas estão disponíveis no estado de mesclagem. O runtime define esse membro como **TRUE** se as operações lógicas estiverem disponíveis no estado de mesclagem e como **FALSE** caso contrário. Esse membro é **FALSE** para os níveis de recurso 9.1, 9.2 e 9.3. Esse membro é opcional para os níveis de recurso 10, 10.1 e 11. Esse membro é **TRUE** para os níveis de recurso 11.1 e 12.

*MinPrecisionSupport*\
Tipo: D3D12\_SHADER\_MIN\_PRECISION\_SUPPORT

Uma combinação de valores do tipo [D3D12\_SHADER\_MIN\_PRECISION\_SUPPORT](/pt-BR/reference/graphics/d3d12/enums/d3d12_shader_min_precision_support_public) combinados por meio de uma operação OR bit a bit. O valor resultante especifica os níveis mínimos de precisão aos quais o driver oferece suporte para os estágios de sombreador. Um valor zero indica que o driver oferece suporte apenas à precisão completa de 32 bits para todos os estágios de sombreador.

*TiledResourcesTier*\
Tipo: D3D12\_TILED\_RESOURCES\_TIER

Especifica se o hardware e o driver oferecem suporte a recursos em blocos. O runtime define esse membro como um valor do tipo [D3D12\_TILED\_RESOURCES\_TIER](/pt-BR/reference/graphics/d3d12/enums/d3d12_tiled_resources_tier_public) que indica se o hardware e o driver oferecem suporte a recursos em blocos e em qual nível de camada.

*ResourceBindingTier*\
Tipo: D3D12\_RESOURCE\_BINDING\_TIER

Especifica o nível em que o hardware e o driver oferecem suporte à associação de recursos. O runtime define esse membro como um valor do tipo [D3D12\_RESOURCE\_BINDING\_TIER](/pt-BR/reference/graphics/d3d12/enums/d3d12_resource_binding_tier_public) que indica o nível de camada.

*PSSpecifiedStencilRefSupported*\
Tipo: BOOL

Especifica se há suporte para a referência de estêncil do sombreador de pixel. Se **TRUE**, há suporte; caso contrário, **FALSE**.

*TypedUAVLoadAdditionalFormats*\
Tipo: BOOL

Especifica se há suporte para o carregamento de formatos adicionais para exibições de acesso não ordenado (UAVs) tipadas.
Se **TRUE**, há suporte; caso contrário, **FALSE**.

*ROVsSupported*\
Tipo: BOOL

Especifica se há suporte para [Rasterizer Order Views](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/directx-12-glossary) (ROVs). Se **TRUE**, há suporte; caso contrário, **FALSE**.

*ConservativeRasterizationTier*\
Tipo: D3D12\_CONSERVATIVE\_RASTERIZATION\_TIER

Especifica o nível em que o hardware e o driver oferecem suporte à rasterização conservadora. O runtime define esse membro como um valor do tipo [D3D12\_CONSERVATIVE\_RASTERIZATION\_TIER](/pt-BR/reference/graphics/d3d12/enums/d3d12_conservative_rasterization_tier_public) que indica o nível de camada.

*MaxGPUVirtualAddressBitsPerResource*\
Tipo: UINT

Não use este campo; em vez disso, use a consulta [D3D12\_FEATURE\_DATA\_GPU\_VIRTUAL\_ADDRESS\_SUPPORT](/pt-BR/reference/graphics/d3d12/structs/d3d12_feature_data_gpu_virtual_address_support_public)
(uma estrutura com um membro **MaxGPUVirtualAddressBitsPerResource**), que é mais precisa.

*StandardSwizzle64KBSupported*\
Tipo: BOOL

TRUE se o hardware oferecer suporte a texturas com o padrão de swizzle padrão de 64 KB.
O suporte a esse padrão permite otimizações de textura sem cópia, ao mesmo tempo que fornece localidade quase equilátera para cada dimensão dentro da textura.
Para opções e restrições de swizzle de textura, consulte [D3D12\_TEXTURE\_LAYOUT](/pt-BR/reference/graphics/d3d12_x/enums/d3d12_texture_layout).

*CrossNodeSharingTier*\
Tipo: D3D12\_CROSS\_NODE\_SHARING\_TIER

Uma constante de enumeração [D3D12\_CROSS\_NODE\_SHARING\_TIER](/pt-BR/reference/graphics/d3d12/enums/d3d12_cross_node_sharing_tier_public) que especifica o nível de compartilhamento entre os nós de um adaptador que tem vários nós,
como Camada 1 Emulada, Camada 1 ou Camada 2.

*CrossAdapterRowMajorTextureSupported*\
Tipo: BOOL

FALSE significa que o dispositivo só oferece suporte a operações de cópia de e para texturas row-major entre adaptadores.
TRUE significa que o dispositivo oferece suporte a exibições de recurso de sombreador, exibições de acesso não ordenado e exibições de destino de renderização de texturas row-major entre adaptadores.
"Entre adaptadores" significa entre vários adaptadores (mesmo de IHVs diferentes).

*VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportedWithoutGSEmulation*\
Tipo: BOOL

Indica se há suporte para o índice de matriz do visor (VP) e do destino de renderização (RT) a partir de qualquer sombreador que alimente o rasterizador, sem emulação de sombreador de geometria.
Compare com o membro **VPAndRTArrayIndexFromAnyShaderFeedingRasterizer** da estrutura [D3D11\_FEATURE\_DATA\_D3D11\_OPTIONS3](https://learn.microsoft.com/en-us/windows/desktop/api/d3d11/ns-d3d11-d3d11_feature_data_d3d11_options3).
Em [ID3D12ShaderReflection::GetRequiresFlags](https://learn.microsoft.com/en-us/windows/desktop/api/d3d12shader/nf-d3d12shader-id3d12shaderreflection-getrequiresflags), consulte o #define D3D\_SHADER\_REQUIRES\_VIEWPORT\_AND\_RT\_ARRAY\_INDEX\_FROM\_ANY\_SHADER\_FEEDING\_RASTERIZER.

*ResourceHeapTier*\
Tipo: D3D12\_RESOURCE\_HEAP\_TIER

Especifica o nível em que o hardware e o driver exigem a atribuição de heap relacionada ao tipo de recurso.
O runtime define esse membro como uma constante de enumeração [D3D12\_RESOURCE\_HEAP\_TIER](/pt-BR/reference/graphics/d3d12/enums/d3d12_resource_heap_tier_public).

## Comentários

Consulte [D3D12\_FEATURE](/pt-BR/reference/graphics/d3d12/enums/d3d12_feature_public).

## Requisitos

**Cabeçalho:** d3d12\_xs.h ou d3d12\_x.h\
**Biblioteca:** d3d12\_xs.lib ou d3d12\_x.lib\
**Plataformas com suporte**: consoles XBOX Series e família XBOX One

## Confira também

[Rasterização conservadora](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/conservative-rasterization)

[Estruturas principais](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/direct3d-12-structures)

[D3D12\_FEATURE](/pt-BR/reference/graphics/d3d12/enums/d3d12_feature_public)

[Rasterizer Ordered Views](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/rasterizer-order-views)


## Related topics

- [D3D12_RESOURCE_BINDING_TIER](/pt-BR/reference/graphics/d3d12/enums/d3d12_resource_binding_tier_public.md)
- [D3D12_CONSERVATIVE_RASTERIZATION_TIER](/pt-BR/reference/graphics/d3d12/enums/d3d12_conservative_rasterization_tier_public.md)
- [D3D12_CROSS_NODE_SHARING_TIER](/pt-BR/reference/graphics/d3d12/enums/d3d12_cross_node_sharing_tier_public.md)
- [D3D12_SHADER_MIN_PRECISION_SUPPORT](/pt-BR/reference/graphics/d3d12/enums/d3d12_shader_min_precision_support_public.md)
- [D3D12_RESOURCE_HEAP_TIER](/pt-BR/reference/graphics/d3d12/enums/d3d12_resource_heap_tier_public.md)
