D3D12_ROOT_SIGNATURE_FLAGS列舉 (d3d12.h)

指定根簽章配置的選項。

Syntax

typedef enum D3D12_ROOT_SIGNATURE_FLAGS {
  D3D12_ROOT_SIGNATURE_FLAG_NONE = 0,
  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
} ;

常數

 
D3D12_ROOT_SIGNATURE_FLAG_NONE
值: 0
表示預設行為。
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
應用程式選擇使用串流輸出。 省略此旗標可能會導致一個根引數空間儲存在某些硬體上。 如果不需要 Stream 輸出,但優化是次要的,請省略此旗標。
D3D12_ROOT_SIGNATURE_FLAG_LOCAL_ROOT_SIGNATURE
值: 0x80
根簽章會與光線追蹤著色器搭配使用,以定義從著色器資料表中著色器記錄來源的資源系結。 此旗標無法與任何其他根簽章旗標結合,這些旗標與圖形管線所有相關。 缺少 旗標表示根簽章可以搭配圖形或計算使用,其中計算版本也會與 raytracing 的全域根簽章共用。
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
著色器可以使用 ResourceDescriptorHeap 內建變數,直接為 CBV/SRV/UAV 描述元堆積編制索引。
D3D12_ROOT_SIGNATURE_FLAG_SAMPLER_HEAP_DIRECTLY_INDEXED
值: 0x800
著色器可以使用 SamplerDescriptorHeap 內建變數,直接為取樣器描述元堆積編制索引。

備註

此列舉用於 D3D12_ROOT_SIGNATURE_DESC 結構。

拒絕存取著色器階段的值是某些硬體上的次要優化。 例如,如果 D3D12_SHADER_VISIBILITY_ALL 旗標已設定為將所有著色器階段廣播根簽章,則拒絕存取可能會覆寫此專案,並儲存硬體一些工作。 或者,如果著色器很簡單,不需要根簽章資源,則您也可以在這裡使用拒絕存取。

需求

   
標頭 d3d12.h

另請參閱

核心列舉

建立根簽章

D3D12_ROOT_SIGNATURE_DESC