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、4 KB の配置、D3D12_RESOURCE_FLAGS::D 3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGETD3D12_RESOURCE_FLAGS::D 3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESSD3D12_RESOURCE_FLAGS::D 3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESSD3D12_TEXTURE_LAYOUT_64KB_STANDARD_SWIZZLED3D12_TEXTURE_LAYOUT_ROW_MAJOR、D3D12_HEAP_FLAG_DENY_RT_DS_TEXTURESヒープでは使用できませんまたは D3D12_HEAP_FLAG_ALLOW_DISPLAY

  • WriteToSubresourceReadFromSubresource の使用を除外します。

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

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

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

  • テクスチャ形式は、現在の機能レベルで順序付けされていないアクセス機能をサポートする必要があります。 または、形式が型指定なしの形式の場合、同じタイプレス グループ内の形式で、現在の機能レベルで順序なしのアクセス機能をサポートする必要があります。

  • D3D12_FEATURE_DATA_D3D12_OPTIONS::CrossAdapterRowMajorTextureSupportedFALSEの場合にD3D12_TEXTURE_LAYOUT_ROW_MAJORテクスチャと組み合わせて設定することはできません。また、D3D12_FEATURE_DATA_D3D12_OPTIONS::StandardSwizzle64KBSupportedFALSEの場合や、機能レベルが 11.0 未満の場合は、D3D12_TEXTURE_LAYOUT_64KB_STANDARD_SWIZZLEがあるテクスチャと組み合わせて設定することはできません。

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

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

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

  • 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.7 以降が必要です。 バッファーをレイトレーシングアクセラレーション構造体として使用することを示します。

解説

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

要件

   
Header d3d12.h

関連項目