> ## 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_ROOT_SIGNATURE_FLAGS (XBOX Series 主機)

> D3D12_ROOT_SIGNATURE_FLAGS (XBOX Series 主機) — 指定根簽章配置的選項。適用於 XBOX 遊戲開發的 Direct3D 12 圖形 API 參考。

指定根簽章配置的選項。

## 語法

```cpp theme={null}
typedef enum D3D12_ROOT_SIGNATURE_FLAGS    
{  
    D3D12_ROOT_SIGNATURE_FLAG_NONE = 0x0,  
    D3D12_ROOT_SIGNATURE_FLAG_ALLOW_INPUT_ASSEMBLER_INPUT_LAYOUT = 0x1,  
    D3D12_ROOT_SIGNATURE_FLAG_DENY_VERTEX_SHADER_ROOT_ACCESS = 0x2,  
    D3D12_ROOT_SIGNATURE_FLAG_DENY_HULL_SHADER_ROOT_ACCESS = 0x4,  
    D3D12_ROOT_SIGNATURE_FLAG_DENY_DOMAIN_SHADER_ROOT_ACCESS = 0x8,  
    D3D12_ROOT_SIGNATURE_FLAG_DENY_GEOMETRY_SHADER_ROOT_ACCESS = 0x10,  
    D3D12_ROOT_SIGNATURE_FLAG_DENY_PIXEL_SHADER_ROOT_ACCESS = 0x20,  
    D3D12_ROOT_SIGNATURE_FLAG_ALLOW_STREAM_OUTPUT = 0x40,  
    D3D12_ROOT_SIGNATURE_FLAG_LOCAL_ROOT_SIGNATURE = 0x80,  
    D3D12_ROOT_SIGNATURE_FLAG_DENY_AMPLIFICATION_SHADER_ROOT_ACCESS = 0x100,  
    D3D12_ROOT_SIGNATURE_FLAG_DENY_MESH_SHADER_ROOT_ACCESS = 0x200,  
    D3D12_ROOT_SIGNATURE_FLAG_CBV_SRV_UAV_HEAP_DIRECTLY_INDEXED = 0x400,  
    D3D12_ROOT_SIGNATURE_FLAG_SAMPLER_HEAP_DIRECTLY_INDEXED = 0x800,  
    D3D12XBOX_ROOT_SIGNATURE_FLAG_FORCE_MEMORY_BASED_ABI = 0x01000000,  
    D3D12XBOX_ROOT_SIGNATURE_FLAG_FORCE_COMPUTE_2_SPILL_AREA = 0x02000000,  
    D3D12XBOX_ROOT_SIGNATURE_FLAG_RAYTRACING = D3D12XBOX_ROOT_SIGNATURE_FLAG_FORCE_MEMORY_BASED_ABI,  
    D3D12XBOX_ROOT_SIGNATURE_FLAG_INTERNAL_XDXR = D3D12XBOX_ROOT_SIGNATURE_FLAG_FORCE_MEMORY_BASED_ABI | D3D12XBOX_ROOT_SIGNATURE_FLAG_FORCE_COMPUTE_2_SPILL_AREA  
} D3D12_ROOT_SIGNATURE_FLAGS  
```

## 常數

| 常數 | 描述 |
| - | - |
| D3D12\_ROOT\_SIGNATURE\_FLAG\_NONE | 表示預設行為。 |
| D3D12\_ROOT\_SIGNATURE\_FLAG\_ALLOW\_INPUT\_ASSEMBLER\_INPUT\_LAYOUT | 應用程式選擇使用輸入組合器 (需要定義一組頂點緩衝區繫結的輸入配置)。省略此旗標可能會在某些硬體上節省一個根引數空間。如果不需要輸入組合器，請省略此旗標，不過最佳化效果很小。 |
| D3D12\_ROOT\_SIGNATURE\_FLAG\_DENY\_VERTEX\_SHADER\_ROOT\_ACCESS | 拒絕頂點著色器存取根簽章。 |
| D3D12\_ROOT\_SIGNATURE\_FLAG\_DENY\_HULL\_SHADER\_ROOT\_ACCESS | 拒絕輪廓著色器存取根簽章。 |
| D3D12\_ROOT\_SIGNATURE\_FLAG\_DENY\_DOMAIN\_SHADER\_ROOT\_ACCESS | 拒絕網域著色器存取根簽章。 |
| D3D12\_ROOT\_SIGNATURE\_FLAG\_DENY\_GEOMETRY\_SHADER\_ROOT\_ACCESS | 拒絕幾何著色器存取根簽章。 |
| D3D12\_ROOT\_SIGNATURE\_FLAG\_DENY\_PIXEL\_SHADER\_ROOT\_ACCESS | 拒絕像素著色器存取根簽章。 |
| D3D12\_ROOT\_SIGNATURE\_FLAG\_ALLOW\_STREAM\_OUTPUT | 應用程式選擇使用串流輸出。省略此旗標可能會在某些硬體上節省一個根引數空間。如果不需要串流輸出，請省略此旗標，不過最佳化效果很小。 |
| D3D12\_ROOT\_SIGNATURE\_FLAG\_LOCAL\_ROOT\_SIGNATURE | 此根簽章要與光線追蹤著色器搭配使用，以定義來源為著色器資料表中著色器記錄的資源繫結。此旗標無法與任何其他根簽章旗標結合，這些旗標都與圖形管線相關。若未設定此旗標，表示根簽章可用於圖形或計算，其中計算版本也會與光線追蹤的全域根簽章共用。 |
| D3D12\_ROOT\_SIGNATURE\_FLAG\_DENY\_AMPLIFICATION\_SHADER\_ROOT\_ACCESS | 拒絕放大著色器存取根簽章。 |
| D3D12\_ROOT\_SIGNATURE\_FLAG\_DENY\_MESH\_SHADER\_ROOT\_ACCESS | 拒絕網格著色器存取根簽章。 |
| D3D12\_ROOT\_SIGNATURE\_FLAG\_CBV\_SRV\_UAV\_HEAP\_DIRECTLY\_INDEXED | 允許著色器使用 *ResourceDescriptorHeap* 內建變數，直接索引 CBV/SRV/UAV 描述元堆積。 |
| D3D12\_ROOT\_SIGNATURE\_FLAG\_SAMPLER\_HEAP\_DIRECTLY\_INDEXED | 允許著色器使用 *SamplerDescriptorHeap* 內建變數，直接索引取樣器描述元堆積。 |
| D3D12XBOX\_ROOT\_SIGNATURE\_FLAG\_FORCE\_MEMORY\_BASED\_ABI | 讓所有根簽章參數透過記憶體 (亦即 'shmem') 進入著色器，也就是在此情況下不會使用任何使用者資料暫存器。這是針對受命令處理器限制之區段的潛在最佳化。CE 會自動管理記憶體。 |
| D3D12XBOX\_ROOT\_SIGNATURE\_FLAG\_FORCE\_COMPUTE\_2\_SPILL\_AREA | 強制根簽章對計算著色器使用「替代溢出」。在內部用於 DXR，以保留遊戲設定的根參數。 |
| D3D12XBOX\_ROOT\_SIGNATURE\_FLAG\_RAYTRACING | 在 XBOX 上，任何要搭配 DispatchRays 或其他 DXR 延伸 API 使用的根簽章都必須設定此旗標。會在內部強制使用 D3D12XBOX\_ROOT\_SIGNATURE\_FLAG\_FORCE\_MEMORY\_BASED\_ABI，這可能會導致共用相同根簽章的非 DXR 著色器稍微變慢。為獲得最佳結果，請為光線追蹤作業使用專屬的根簽章。 |
| D3D12XBOX\_ROOT\_SIGNATURE\_FLAG\_INTERNAL\_XDXR | 僅限內部使用的旗標。 |

## 需求

**標頭：** d3d12\_xs.h

**支援的平台：** XBOX Series X|S

## 另請參閱

[d3d12\_xs](/zh-TW/reference/graphics/d3d12_xs/d3d12_xs_members)


## Related topics

- [D3D12_ROOT_SIGNATURE_DESC](/reference/graphics/d3d12/structs/d3d12_root_signature_desc_public.md)
- [D3D12_ROOT_SIGNATURE_DESC1](/reference/graphics/d3d12/structs/d3d12_root_signature_desc1_public.md)
