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 |