D3D12_DESCRIPTOR_RANGE_FLAGS列舉 (d3d12.h)

指定描述元及其在根簽章 1.1 描述中所參考資料的變動性,這可啟用某些驅動程式優化。

Syntax

typedef enum D3D12_DESCRIPTOR_RANGE_FLAGS {
  D3D12_DESCRIPTOR_RANGE_FLAG_NONE = 0,
  D3D12_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_VOLATILE = 0x1,
  D3D12_DESCRIPTOR_RANGE_FLAG_DATA_VOLATILE = 0x2,
  D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC_WHILE_SET_AT_EXECUTE = 0x4,
  D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC = 0x8,
  D3D12_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_STATIC_KEEPING_BUFFER_BOUNDS_CHECKS = 0x10000
} ;

常數

 
D3D12_DESCRIPTOR_RANGE_FLAG_NONE
值: 0
預設行為。 描述項是靜態的,而針對 SRV/CBV 的資料 (進行預設假設:DATA_STATIC_WHILE_SET_AT_EXECUTE,以及 UAV:DATA_VOLATILE) 。
D3D12_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_VOLATILE
值: 0x1
如果這是唯一的旗標集,則描述項是變動性,而預設假設是針對 SRV/CBV 的資料 (:DATA_STATIC_WHILE_SET_AT_EXECUTE,以及 UAV:DATA_VOLATILE) 。

如果這個旗標與DATA_VOLATILE結合,則描述元和資料都是變動性的,這相當於根簽章 1.0 版。

如果這個旗標與DATA_STATIC_WHILE_SET_AT_EXECUTE結合,則描述項是變動性的。 這仍然不允許在命令清單執行期間變更,因此在執行期間透過根描述中繼資料表設定資料時,合併資料為靜態的其他宣告是有效的–基礎描述元的有效靜態時間,比承諾為靜態的資料還要長。
D3D12_DESCRIPTOR_RANGE_FLAG_DATA_VOLATILE
值: 0x2
描述元是靜態的,而且資料是變動性的。
D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC_WHILE_SET_AT_EXECUTE
值: 0x4
描述項是靜態的,而且資料是在執行時設定的靜態。
D3D12_DESCRIPTOR_RANGE_FLAG_DATA_STATIC
值: 0x8
描述項和資料都是靜態的。 這可最大化驅動程式優化的可能性。
D3D12_DESCRIPTOR_RANGE_FLAG_DESCRIPTORS_STATIC_KEEPING_BUFFER_BOUNDS_CHECKS
值: 0x10000
提供與靜態描述元相同的優點, (請參閱 D3D12_DESCRIPTOR_RANGE_FLAG_NONE) ,不同之處在于驅動程式不允許將緩衝區升階為根描述元做為優化,因為它們必須維護界限檢查和根描述元沒有它們。

備註

這個列舉是由 D3D12_DESCRIPTOR_RANGE1 結構使用。

若要只指定描述項所參考資料的變動性,請參閱 D3D12_ROOT_DESCRIPTOR_FLAGS

需求

   
標頭 d3d12.h

另請參閱

核心列舉

根簽章 1.1 版