語法
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 | 僅限內部使用的旗標。 |
