D3D12_RESOURCE_FLAGS
列挙型フラグメンバー 11
| 名前 | 10進 | 16進 | 説明 |
|---|---|---|---|
| D3D12_RESOURCE_FLAG_NONE | 0 | 0x0 | オプションは指定されません。 |
| D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET | 1 | 0x1 | リソースに対してレンダーターゲットビューを作成できるようにし、さらにリソースが D3D12_RESOURCE_STATE_RENDER_TARGET の状態に遷移できるようにします。一部のアダプターアーキテクチャでは、一般的なレンダリング時の実効帯域幅を削減するために、このフラグを持つテクスチャに対して追加のメモリを割り当てます。この特性は、レンダリング先として使用されないテクスチャでは利点がなく、また BC 形式で圧縮されたテクスチャでは利用できません。レンダリングが一切行われない場合、アプリケーションではこのフラグを設定しないようにしてください。 次の制限事項および相互作用があります。
|
| D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL | 2 | 0x2 | リソースに対して深度ステンシルビューを作成できるようにし、さらにリソースが D3D12_RESOURCE_STATE_DEPTH_WRITE や D3D12_RESOURCE_STATE_DEPTH_READ の状態に遷移できるようにします。ほとんどのアダプターアーキテクチャでは、実効帯域幅を削減し、early depth-test の最適化を最大化するために、このフラグを持つテクスチャに対して追加のメモリを割り当てます。深度処理が一切行われない場合、アプリケーションではこのフラグを設定しないようにしてください。 次の制限事項および相互作用があります。
|
| D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS | 4 | 0x4 | リソースに対してアンオーダードアクセスビューを作成できるようにし、さらにリソースが D3D12_RESOURCE_STATE_UNORDERED_ACCESS の状態に遷移できるようにします。一部のアダプターアーキテクチャでは、この機能を提供するために効率の低いテクスチャレイアウトを使用せざるを得ません。テクスチャがアンオーダードアクセスに使用されることがまれである場合は、2 つのテクスチャを用意して、その間でコピーする方が有利な場合があります。一方のテクスチャにはこのフラグを設定し、もう一方には設定しません。アンオーダードアクセス操作が一切行われない場合、アプリケーションではこのフラグを設定しないようにしてください。 次の制限事項および相互作用があります。
|
| D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE | 8 | 0x8 | リソースに対してシェーダーリソースビューを作成できないようにし、さらにリソースが D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE または D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE の状態に遷移できないようにします。一部のアダプターアーキテクチャでは、シェーダーリソースビューが使用できないようにすることで、深度ステンシルテクスチャの帯域幅の容量が向上します。テクスチャがシェーダーリソースとして使用されることがまれである場合は、2 つのテクスチャを用意して、その間でコピーする方が有利な場合があります。一方のテクスチャにはこのフラグを設定し、もう一方には設定しません。深度ステンシルテクスチャがシェーダーリソースビューから使用されることが一切ない場合、アプリケーションではこのフラグを設定してください。 次の制限事項および相互作用があります。
|
| D3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTER | 16 | 0x10 | リソースをアダプター間のデータとして使用できるようにし、さらに D3D12_RESOURCE_FLAGS::D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS によって有効になる機能も使用できるようにします。アダプター間で共有されるリソースでは、通常、使用時に実効テクスチャ帯域幅を削減する手法が使用できなくなり、また一部のアダプターアーキテクチャでは異なるキャッシュ動作が必要になる場合があります。リソースのデータが他のアダプターで使用されることが一切ない場合、アプリケーションではこのフラグを設定しないようにしてください。 次の制限事項および相互作用があります。
|
| D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS | 32 | 0x20 | 複数の異なるキュー、デバイス、またはプロセスからリソースに同時にアクセスできるようにします (たとえば、同時に実行される複数のコマンドリストで実行される ResourceBarrier の遷移でリソースを使用できるようになります)。 同時アクセスでは、書き込み側が他の読み取り側のアクセスしているテクセルを同時に変更しない限り、複数の読み取り側と 1 つの書き込み側が許可されます。一部のアダプターアーキテクチャでは、使用時に実効テクスチャ帯域幅を削減する手法を活用できなくなります。 ただし、テクスチャへの頻繁で重複しない書き込みの間に複数の読み取り側が必要とならない場合は、アプリケーションではこのフラグを設定しないようにしてください。このフラグを使用すると、待機を行うためのリソースフェンスが損なわれたり、リソースに対して圧縮が使用されなくなったりする可能性があります。 次の制限事項および相互作用があります。
|
| D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY | 64 | 0x40 | このリソースがデコードの参照フレームとしてのみ使用できることを指定します。このリソースは、ビデオデコード操作によってのみ書き込みまたは読み取りが行われます。 D3D12_VIDEO_DECODE_TIER_1 および D3D12_VIDEO_DECODE_TIER_2 では、D3D12_FEATURE_DATA_VIDEO_DECODE_SUPPORT 構造体の構成フラグとして D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_REFERENCE_ONLY_ALLOCATIONS_REQUIRED が報告される場合があります。その場合、アプリケーションでは D3D12_RESOURCE_FLAGS::D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY リソースフラグを指定して参照フレームを割り当てる必要があります。 D3D12_VIDEO_DECODE_TIER_3 では、[D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_REFERENCE_ONLY_ALLOCATIONS_REQUIRED] (../d3d12video/ne-d3d12video-d3d12_video_decode_configuration_flags) 構成フラグを設定してはならず、またこのリソースフラグの使用を必須としてはなりません。 |
| D3D12_RESOURCE_FLAG_VIDEO_ENCODE_REFERENCE_ONLY | 128 | 0x80 | このリソースがエンコードの参照フレームとしてのみ使用できることを指定します。このリソースは、ビデオエンコード操作によってのみ書き込みまたは読み取りが行われます。 |
| D3D12_RESOURCE_FLAG_RAYTRACING_ACCELERATION_STRUCTURE | 256 | 0x100 | DirectX 12 Agility SDK 1.608.0 以降が必要です。バッファーをレイトレーシングの高速化構造として使用することを示します。D3D12 Enhanced Barriers を使用する場合、バッファーにはレイアウトや状態が存在しなくなるため、このフラグは D3D12_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE の代わりとして機能します。D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS が設定されている必要があります。 |
| D3D12_RESOURCE_FLAG_USE_TIGHT_ALIGNMENT | 1024 | 0x400 |
公式ドキュメント
リソースを扱う際のオプションを指定する定数を定義します。
解説(Remarks)
この列挙型は、D3D12_RESOURCE_DESC の Flags メンバーで使用されます。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
各言語での定義
列挙メンバーの定義。HSP タブは #define global(値は16進)。
typedef enum D3D12_RESOURCE_FLAGS : int {
D3D12_RESOURCE_FLAG_NONE = 0,
D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET = 1,
D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL = 2,
D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS = 4,
D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE = 8,
D3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTER = 16,
D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS = 32,
D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY = 64,
D3D12_RESOURCE_FLAG_VIDEO_ENCODE_REFERENCE_ONLY = 128,
D3D12_RESOURCE_FLAG_RAYTRACING_ACCELERATION_STRUCTURE = 256,
D3D12_RESOURCE_FLAG_USE_TIGHT_ALIGNMENT = 1024
} D3D12_RESOURCE_FLAGS;[Flags]
public enum D3D12_RESOURCE_FLAGS : int
{
D3D12_RESOURCE_FLAG_NONE = 0,
D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET = 1,
D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL = 2,
D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS = 4,
D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE = 8,
D3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTER = 16,
D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS = 32,
D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY = 64,
D3D12_RESOURCE_FLAG_VIDEO_ENCODE_REFERENCE_ONLY = 128,
D3D12_RESOURCE_FLAG_RAYTRACING_ACCELERATION_STRUCTURE = 256,
D3D12_RESOURCE_FLAG_USE_TIGHT_ALIGNMENT = 1024,
}<Flags>
Public Enum D3D12_RESOURCE_FLAGS As Integer
D3D12_RESOURCE_FLAG_NONE = 0
D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET = 1
D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL = 2
D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS = 4
D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE = 8
D3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTER = 16
D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS = 32
D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY = 64
D3D12_RESOURCE_FLAG_VIDEO_ENCODE_REFERENCE_ONLY = 128
D3D12_RESOURCE_FLAG_RAYTRACING_ACCELERATION_STRUCTURE = 256
D3D12_RESOURCE_FLAG_USE_TIGHT_ALIGNMENT = 1024
End Enumimport enum
class D3D12_RESOURCE_FLAGS(enum.IntFlag):
D3D12_RESOURCE_FLAG_NONE = 0
D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET = 1
D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL = 2
D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS = 4
D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE = 8
D3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTER = 16
D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS = 32
D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY = 64
D3D12_RESOURCE_FLAG_VIDEO_ENCODE_REFERENCE_ONLY = 128
D3D12_RESOURCE_FLAG_RAYTRACING_ACCELERATION_STRUCTURE = 256
D3D12_RESOURCE_FLAG_USE_TIGHT_ALIGNMENT = 1024// D3D12_RESOURCE_FLAGS (flags)
pub const D3D12_RESOURCE_FLAG_NONE: i32 = 0;
pub const D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET: i32 = 1;
pub const D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL: i32 = 2;
pub const D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS: i32 = 4;
pub const D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE: i32 = 8;
pub const D3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTER: i32 = 16;
pub const D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS: i32 = 32;
pub const D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY: i32 = 64;
pub const D3D12_RESOURCE_FLAG_VIDEO_ENCODE_REFERENCE_ONLY: i32 = 128;
pub const D3D12_RESOURCE_FLAG_RAYTRACING_ACCELERATION_STRUCTURE: i32 = 256;
pub const D3D12_RESOURCE_FLAG_USE_TIGHT_ALIGNMENT: i32 = 1024;// D3D12_RESOURCE_FLAGS
const (
D3D12_RESOURCE_FLAG_NONE int32 = 0
D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET int32 = 1
D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL int32 = 2
D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS int32 = 4
D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE int32 = 8
D3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTER int32 = 16
D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS int32 = 32
D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY int32 = 64
D3D12_RESOURCE_FLAG_VIDEO_ENCODE_REFERENCE_ONLY int32 = 128
D3D12_RESOURCE_FLAG_RAYTRACING_ACCELERATION_STRUCTURE int32 = 256
D3D12_RESOURCE_FLAG_USE_TIGHT_ALIGNMENT int32 = 1024
)const
D3D12_RESOURCE_FLAG_NONE = 0;
D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET = 1;
D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL = 2;
D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS = 4;
D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE = 8;
D3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTER = 16;
D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS = 32;
D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY = 64;
D3D12_RESOURCE_FLAG_VIDEO_ENCODE_REFERENCE_ONLY = 128;
D3D12_RESOURCE_FLAG_RAYTRACING_ACCELERATION_STRUCTURE = 256;
D3D12_RESOURCE_FLAG_USE_TIGHT_ALIGNMENT = 1024;// D3D12_RESOURCE_FLAGS
pub const D3D12_RESOURCE_FLAG_NONE: i32 = 0;
pub const D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET: i32 = 1;
pub const D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL: i32 = 2;
pub const D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS: i32 = 4;
pub const D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE: i32 = 8;
pub const D3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTER: i32 = 16;
pub const D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS: i32 = 32;
pub const D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY: i32 = 64;
pub const D3D12_RESOURCE_FLAG_VIDEO_ENCODE_REFERENCE_ONLY: i32 = 128;
pub const D3D12_RESOURCE_FLAG_RAYTRACING_ACCELERATION_STRUCTURE: i32 = 256;
pub const D3D12_RESOURCE_FLAG_USE_TIGHT_ALIGNMENT: i32 = 1024;const
D3D12_RESOURCE_FLAG_NONE* = 0
D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET* = 1
D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL* = 2
D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS* = 4
D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE* = 8
D3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTER* = 16
D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS* = 32
D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY* = 64
D3D12_RESOURCE_FLAG_VIDEO_ENCODE_REFERENCE_ONLY* = 128
D3D12_RESOURCE_FLAG_RAYTRACING_ACCELERATION_STRUCTURE* = 256
D3D12_RESOURCE_FLAG_USE_TIGHT_ALIGNMENT* = 1024enum D3D12_RESOURCE_FLAGS : int {
D3D12_RESOURCE_FLAG_NONE = 0,
D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET = 1,
D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL = 2,
D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS = 4,
D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE = 8,
D3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTER = 16,
D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS = 32,
D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY = 64,
D3D12_RESOURCE_FLAG_VIDEO_ENCODE_REFERENCE_ONLY = 128,
D3D12_RESOURCE_FLAG_RAYTRACING_ACCELERATION_STRUCTURE = 256,
D3D12_RESOURCE_FLAG_USE_TIGHT_ALIGNMENT = 1024,
}#define global D3D12_RESOURCE_FLAG_NONE 0x0
#define global D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET 0x1
#define global D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL 0x2
#define global D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS 0x4
#define global D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE 0x8
#define global D3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTER 0x10
#define global D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS 0x20
#define global D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY 0x40
#define global D3D12_RESOURCE_FLAG_VIDEO_ENCODE_REFERENCE_ONLY 0x80
#define global D3D12_RESOURCE_FLAG_RAYTRACING_ACCELERATION_STRUCTURE 0x100
#define global D3D12_RESOURCE_FLAG_USE_TIGHT_ALIGNMENT 0x400
; ※フラグ列挙型。ビットORで組み合わせ可(例: FOO|BAR)。