次の方法で共有


D3D12_RESOURCE_FLAGS列挙 (d3d12.h)

リソースを操作するためのオプションを指定する定数を定義します。

構文

typedef enum D3D12_RESOURCE_FLAGS {
  D3D12_RESOURCE_FLAG_NONE = 0,
  D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET = 0x1,
  D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL = 0x2,
  D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS = 0x4,
  D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE = 0x8,
  D3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTER = 0x10,
  D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS = 0x20,
  D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY = 0x40,
  D3D12_RESOURCE_FLAG_VIDEO_ENCODE_REFERENCE_ONLY = 0x80,
  D3D12_RESOURCE_FLAG_RAYTRACING_ACCELERATION_STRUCTURE = 0x100
} ;

定数

 
D3D12_RESOURCE_FLAG_NONE
値: 0
オプションは指定されません。
D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET
値: 0x1
リソースのレンダー ターゲット ビューを作成できるようにします。リソースを D3D12_RESOURCE_STATE_RENDER_TARGETの状態に移行することもできます。 一部のアダプター アーキテクチャでは、一般的なレンダリング中に有効な帯域幅を減らすために、このフラグを使用してテクスチャに追加のメモリを割り当てます。 この特性は、レンダリングされないテクスチャや、BC 形式で圧縮されたテクスチャでは使用できない場合があります。 レンダリングが発生しない場合は、アプリケーションでこのフラグを設定しないようにする必要があります。

次の制限と相互作用が適用されます。
D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL
値: 0x2
リソースの深度ステンシル ビューを作成したり、リソースを D3D12_RESOURCE_STATE_DEPTH_WRITED3D12_RESOURCE_STATE_DEPTH_READの状態に移行したりできるようにします。 ほとんどのアダプター アーキテクチャでは、このフラグを使用してテクスチャに追加のメモリを割り当てて、有効な帯域幅を減らし、早期深度テストの最適化を最大化します。 深度操作が発生しない場合は、アプリケーションでこのフラグを設定しないようにする必要があります。

次の制限と相互作用が適用されます。

  • テクスチャ形式は、現在のフィーチャ レベルで深度ステンシル機能をサポートしている必要があります。 または、形式が型指定なしの形式の場合、同じタイプレス グループ内の書式で、現在のフィーチャ レベルでの深度ステンシル機能をサポートする必要があります。

  • D3D12_RESOURCE_DIMENSION_BUFFER、4KB アライメントでは使用できません。 D3D12_RESOURCE_FLAGS::D 3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET, D3D12_RESOURCE_FLAGS::D 3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS, D3D12_RESOURCE_FLAGS::D 3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS, D3D12_TEXTURE_LAYOUT_64KB_STANDARD_SWIZZLE, D3D12_TEXTURE_LAYOUT_ROW_MAJOR, D3D12_HEAP_FLAG_DENY_RT_DS_TEXTURES または D3D12_HEAP_FLAG_ALLOW_DISPLAYを持つヒープでは使用しません。

  • WriteToSubresource と ReadFromSubresourceの使用を除外します。

  • サブリージョンの GPU コピーを除外します。 CopyTextureRegion 、このフラグを持つリソースとの間でサブリソース全体をコピーする必要があります。

D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS
値: 0x4
リソースに対して順序指定されていないアクセス ビューを作成したり、リソースを D3D12_RESOURCE_STATE_UNORDERED_ACCESSの状態に移行したりできるようにします。 一部のアダプター アーキテクチャでは、この機能を提供するために、効率の低いテクスチャ レイアウトに頼る必要があります。 順序付けされていないアクセスにテクスチャがほとんど使用されない場合は、2 つのテクスチャを周囲に持ち、それらの間でコピーする価値があります。 一方のテクスチャにはこのフラグが設定されますが、もう 1 つのテクスチャはフラグを持っていません。 順序指定されていないアクセス操作が発生しない場合は、アプリケーションでこのフラグを設定しないようにする必要があります。

次の制限と相互作用が適用されます。
D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE
値: 0x8
リソースに対してシェーダー リソース ビューが作成されないようにし、リソースが D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE または D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCEの状態に遷移することを無効にします。 一部のアダプター アーキテクチャでは、シェーダー リソース ビューが除外されている場合に深度ステンシル テクスチャの帯域幅容量が得られます。 テクスチャがシェーダー リソースにほとんど使用されない場合は、2 つのテクスチャを周囲に持ち、それらの間でコピーする価値があります。 一方のテクスチャにはこのフラグが設定されますが、もう 1 つのテクスチャはフラグを持っていません。 深度ステンシル テクスチャがシェーダー リソース ビューから使用されない場合は、アプリケーションでこのフラグを設定する必要があります。

次の制限と相互作用が適用されます。

  • D3D12_RESOURCE_FLAGS::D 3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCILで使用する必要があります。

D3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTER
値: 0x10
D3D12_RESOURCE_FLAGS::D 3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESSによって有効になっている機能と同様に、アダプター間のデータにリソースを使用できるようにします。 アダプター間リソースは、一般的に、使用中に有効なテクスチャ帯域幅を減らす手法を排除します。また、一部のアダプター アーキテクチャでは、異なるキャッシュ動作が必要になる場合があります。 リソース データが別のアダプターで使用されない場合は、アプリケーションでこのフラグを設定しないようにする必要があります。

次の制限と相互作用が適用されます。
D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS
値: 0x20
複数の異なるキュー、デバイス、またはプロセスによってリソースに同時にアクセスできるようにします (たとえば、複数のコマンド リストで同時に実行 ResourceBarrier 遷移でリソースを使用できます)。

同時アクセスでは、ライターが他のリーダーがアクセスしているテクセルを同時に変更しない限り、複数のリーダーと 1 つのライターが許可されます。 一部のアダプター アーキテクチャでは、使用中に有効なテクスチャ帯域幅を減らす手法を利用できません。

ただし、テクスチャへの重複しない書き込みが頻繁に行われるときに複数のリーダーが必要ない場合は、アプリケーションでこのフラグを設定しないようにする必要があります。 このフラグを使用すると、リソース フェンスを侵害して待機を実行し、リソースで圧縮が使用されるのを防ぐことができます。

次の制限と相互作用が適用されます。

  • D3D12_RESOURCE_DIMENSION_BUFFERでは使用できません。ただし、バッファーには常にこのフラグで表されるプロパティがあります。

  • MSAA テクスチャでは使用できません。

  • D3D12_RESOURCE_FLAGS::D 3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCILでは使用できません。

D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY
値: 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::D 3D12_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
値: 0x80
このリソースをエンコード参照フレームとしてのみ使用できる仕様。 ビデオ エンコード操作によって書き込まれるか、読み取り専用にすることができます。
D3D12_RESOURCE_FLAG_RAYTRACING_ACCELERATION_STRUCTURE
値: 0x100
DirectX 12 Agility SDK 1.608.0 以降が必要です。 バッファーをレイトレーシングアクセラレーション構造として使用することを示します。 D3D12 Enhanced Barriers を使用する場合、バッファーにはレイアウト/状態がなくなったため、このフラグは D3D12_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTUREの代わりとして機能します。

備考

この列挙型は、D3D12_RESOURCE_DESCFlags メンバーによって使用されます。

必要条件

要件 価値
ヘッダー d3d12.h

関連項目