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

> 描述目前圖形驅動程式中的 Direct3D 12 功能選項。

描述目前圖形驅動程式中的 Direct3D 12 功能選項。

## 語法

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

### 成員

*DoublePrecisionFloatShaderOps*\
類型：BOOL

指定著色器作業是否允許 **double** 類型。
如果為 **TRUE**，則允許 double 類型；否則為 **FALSE**。
支援的作業相當於 Direct3D 11 的 [D3D11\_FEATURE\_DATA\_D3D11\_OPTIONS](https://learn.microsoft.com/en-us/windows/desktop/api/d3d11/ns-d3d11-d3d11_feature_data_d3d11_options) 結構的 **ExtendedDoublesShaderInstructions** 成員。

若要使用以 **double** 類型編譯的任何 HLSL 著色器，
執行階段必須將 **DoublePrecisionFloatShaderOps** 設為 **TRUE**。

*OutputMergerLogicOp*\
類型：BOOL

指定混合狀態中是否可使用邏輯作業。如果混合狀態中可使用邏輯作業，執行階段會將此成員設為 **TRUE**，否則設為 **FALSE**。對於功能層級 9.1、9.2 和 9.3，此成員為 **FALSE**。對於功能層級 10、10.1 和 11，此成員為選用。對於功能層級 11.1 和 12，此成員為 **TRUE**。

*MinPrecisionSupport*\
類型：D3D12\_SHADER\_MIN\_PRECISION\_SUPPORT

使用位元 OR 運算結合的 [D3D12\_SHADER\_MIN\_PRECISION\_SUPPORT](/zh-TW/reference/graphics/d3d12/enums/d3d12_shader_min_precision_support_public) 類型值組合。產生的值會指定驅動程式針對著色器階段所支援的最低精確度層級。值為零表示驅動程式對所有著色器階段僅支援完整的 32 位元精確度。

*TiledResourcesTier*\
類型：D3D12\_TILED\_RESOURCES\_TIER

指定硬體和驅動程式是否支援並排資源。執行階段會將此成員設為 [D3D12\_TILED\_RESOURCES\_TIER](/zh-TW/reference/graphics/d3d12/enums/d3d12_tiled_resources_tier_public) 類型值，指出硬體和驅動程式是否支援並排資源，以及支援的層級。

*ResourceBindingTier*\
類型：D3D12\_RESOURCE\_BINDING\_TIER

指定硬體和驅動程式支援資源繫結的層級。執行階段會將此成員設為指出層級的 [D3D12\_RESOURCE\_BINDING\_TIER](/zh-TW/reference/graphics/d3d12/enums/d3d12_resource_binding_tier_public) 類型值。

*PSSpecifiedStencilRefSupported*\
類型：BOOL

指定是否支援像素著色器樣板參考值。如果為 **TRUE**，則表示支援；否則為 **FALSE**。

*TypedUAVLoadAdditionalFormats*\
類型：BOOL

指定是否支援為具類型的未排序存取檢視 (UAV) 載入其他格式。
如果為 **TRUE**，則表示支援；否則為 **FALSE**。

*ROVsSupported*\
類型：BOOL

指定是否支援[點陣化器順序檢視](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/directx-12-glossary) (ROV)。如果為 **TRUE**，則表示支援；否則為 **FALSE**。

*ConservativeRasterizationTier*\
類型：D3D12\_CONSERVATIVE\_RASTERIZATION\_TIER

指定硬體和驅動程式支援保守點陣化的層級。執行階段會將此成員設為指出層級的 [D3D12\_CONSERVATIVE\_RASTERIZATION\_TIER](/zh-TW/reference/graphics/d3d12/enums/d3d12_conservative_rasterization_tier_public) 類型值。

*MaxGPUVirtualAddressBitsPerResource*\
類型：UINT

請勿使用此欄位；請改用更精確的 [D3D12\_FEATURE\_DATA\_GPU\_VIRTUAL\_ADDRESS\_SUPPORT](/zh-TW/reference/graphics/d3d12/structs/d3d12_feature_data_gpu_virtual_address_support_public) 查詢
(具有 **MaxGPUVirtualAddressBitsPerResource** 成員的結構)。

*StandardSwizzle64KBSupported*\
類型：BOOL

如果硬體支援具有 64KB 標準 swizzle 模式的紋理，則為 TRUE。
支援此模式可啟用零複製紋理最佳化，同時為紋理內的每個維度提供接近等邊的區域性。
如需紋理 swizzle 選項和限制，請參閱 [D3D12\_TEXTURE\_LAYOUT](/zh-TW/reference/graphics/d3d12_x/enums/d3d12_texture_layout)。

*CrossNodeSharingTier*\
類型：D3D12\_CROSS\_NODE\_SHARING\_TIER

[D3D12\_CROSS\_NODE\_SHARING\_TIER](/zh-TW/reference/graphics/d3d12/enums/d3d12_cross_node_sharing_tier_public) 列舉常數，指定具有多個節點之介面卡的跨節點共用層級，
例如 Tier 1 Emulated、Tier 1 或 Tier 2。

*CrossAdapterRowMajorTextureSupported*\
類型：BOOL

FALSE 表示裝置僅支援進出跨介面卡列主要紋理的複製作業。
TRUE 表示裝置支援跨介面卡列主要紋理的著色器資源檢視、未排序存取檢視和轉譯目標檢視。
「跨介面卡」表示在多個介面卡之間 (即使來自不同的 IHV)。

*VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportedWithoutGSEmulation*\
類型：BOOL

是否在不使用幾何著色器模擬的情況下，支援來自任何提供給點陣化器之著色器的檢視區 (VP) 和轉譯目標 (RT) 陣列索引。
請比較 [D3D11\_FEATURE\_DATA\_D3D11\_OPTIONS3](https://learn.microsoft.com/en-us/windows/desktop/api/d3d11/ns-d3d11-d3d11_feature_data_d3d11_options3) 結構的 **VPAndRTArrayIndexFromAnyShaderFeedingRasterizer** 成員。
在 [ID3D12ShaderReflection::GetRequiresFlags](https://learn.microsoft.com/en-us/windows/desktop/api/d3d12shader/nf-d3d12shader-id3d12shaderreflection-getrequiresflags) 中，請參閱 #define D3D\_SHADER\_REQUIRES\_VIEWPORT\_AND\_RT\_ARRAY\_INDEX\_FROM\_ANY\_SHADER\_FEEDING\_RASTERIZER。

*ResourceHeapTier*\
類型：D3D12\_RESOURCE\_HEAP\_TIER

指定硬體和驅動程式需要與資源類型相關之堆積屬性的層級。
執行階段會將此成員設為 [D3D12\_RESOURCE\_HEAP\_TIER](/zh-TW/reference/graphics/d3d12/enums/d3d12_resource_heap_tier_public) 列舉常數。

## 備註

請參閱 [D3D12\_FEATURE](/zh-TW/reference/graphics/d3d12/enums/d3d12_feature_public)。

## 需求

**標頭:** d3d12\_xs.h 或 d3d12\_x.h\
**程式庫:** d3d12\_xs.lib 或 d3d12\_x.lib\
**支援的平台**: XBOX Series 主機與 XBOX One 系列

## 另請參閱

[保守點陣化](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/conservative-rasterization)

[核心結構](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/direct3d-12-structures)

[D3D12\_FEATURE](/zh-TW/reference/graphics/d3d12/enums/d3d12_feature_public)

[點陣化器順序檢視](https://learn.microsoft.com/en-us/windows/desktop/direct3d12/rasterizer-order-views)


## Related topics

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