D3D12_DESCRIPTOR_HEAP_FLAGS
列挙型フラグメンバー 2
| 名前 | 10進 | 16進 | 説明 |
|---|---|---|---|
| D3D12_DESCRIPTOR_HEAP_FLAG_NONE | 0 | 0x0 | ヒープの既定の使用方法を示します。 |
| D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE | 1 | 0x1 | D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE フラグは、そのデスクリプターヒープがシェーダーから参照されるためにコマンドリストにバインドされることを示すために、必要に応じてデスクリプターヒープに設定できます。このフラグなしで作成されたデスクリプターヒープでは、利便性のために、シェーダーから可視のデスクリプターヒープへコピーする前に CPU メモリー上でデスクリプターをステージングするという選択肢がアプリケーションに与えられます。ただし、CPU 側で何もステージングせずに、シェーダーから可視のデスクリプターヒープへ直接デスクリプターを作成しても構いません。 ID3D12GraphicsCommandList::SetDescriptorHeaps でバインドされるデスクリプターヒープには D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE フラグが設定されていなければなりません。設定されていない場合、デバッグレイヤーがエラーを生成します。 D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE フラグを持つデスクリプターヒープは、ID3D12Device::CopyDescriptors や ID3D12Device::CopyDescriptorsSimple の呼び出しでコピー元のヒープとして使用できません。これらは WRITE_COMBINE メモリーまたは GPU ローカルメモリーに配置されている可能性があり、そこからの読み取りは非常に非効率だからです。 このフラグが適用されるのは、CBV/SRV/UAV デスクリプターヒープとサンプラーデスクリプターヒープのみです。それ以外の種類のデスクリプターヒープはシェーダーから直接参照されないため、適用されません。D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE を指定して RTV/DSV ヒープを作成しようとすると、デバッグレイヤーのエラーになります。 |
公式ドキュメント
ヒープのオプションを指定します。
解説(Remarks)
この列挙型は D3D12_DESCRIPTOR_HEAP_DESC 構造体で使用されます。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
各言語での定義
列挙メンバーの定義。HSP タブは #define global(値は16進)。
typedef enum D3D12_DESCRIPTOR_HEAP_FLAGS : int {
D3D12_DESCRIPTOR_HEAP_FLAG_NONE = 0,
D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE = 1
} D3D12_DESCRIPTOR_HEAP_FLAGS;[Flags]
public enum D3D12_DESCRIPTOR_HEAP_FLAGS : int
{
D3D12_DESCRIPTOR_HEAP_FLAG_NONE = 0,
D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE = 1,
}<Flags>
Public Enum D3D12_DESCRIPTOR_HEAP_FLAGS As Integer
D3D12_DESCRIPTOR_HEAP_FLAG_NONE = 0
D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE = 1
End Enumimport enum
class D3D12_DESCRIPTOR_HEAP_FLAGS(enum.IntFlag):
D3D12_DESCRIPTOR_HEAP_FLAG_NONE = 0
D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE = 1// D3D12_DESCRIPTOR_HEAP_FLAGS (flags)
pub const D3D12_DESCRIPTOR_HEAP_FLAG_NONE: i32 = 0;
pub const D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE: i32 = 1;// D3D12_DESCRIPTOR_HEAP_FLAGS
const (
D3D12_DESCRIPTOR_HEAP_FLAG_NONE int32 = 0
D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE int32 = 1
)const
D3D12_DESCRIPTOR_HEAP_FLAG_NONE = 0;
D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE = 1;// D3D12_DESCRIPTOR_HEAP_FLAGS
pub const D3D12_DESCRIPTOR_HEAP_FLAG_NONE: i32 = 0;
pub const D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE: i32 = 1;const
D3D12_DESCRIPTOR_HEAP_FLAG_NONE* = 0
D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE* = 1enum D3D12_DESCRIPTOR_HEAP_FLAGS : int {
D3D12_DESCRIPTOR_HEAP_FLAG_NONE = 0,
D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE = 1,
}#define global D3D12_DESCRIPTOR_HEAP_FLAG_NONE 0x0
#define global D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE 0x1
; ※フラグ列挙型。ビットORで組み合わせ可(例: FOO|BAR)。