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_WRITE や D3D12_RESOURCE_STATE_DEPTH_READの状態に切り替えたりできるようにします。 ほとんどのアダプター アーキテクチャでは、このフラグを使用してテクスチャに追加のメモリを割り当てて、有効な帯域幅を減らし、早期深度テストの最適化を最大化します。 アプリケーションでは、深度操作が発生しない場合に、このフラグを設定しないようにする必要があります。 次の制限と相互作用が適用されます。
|
D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS 値: 0x4 リソースに対して順序付けられていないアクセス ビューを作成し、リソースを D3D12_RESOURCE_STATE_UNORDERED_ACCESS の状態に移行できるようにします。 一部のアダプター アーキテクチャでは、この機能を提供するために、効率の低いテクスチャ レイアウトに頼る必要があります。 順序付けされていないアクセスにテクスチャが使用されることはほとんどない場合は、2 つのテクスチャを周囲に配置し、それらの間でコピーする価値がある可能性があります。 一方のテクスチャにはこのフラグが付き、もう一方のテクスチャはフラグを持たない。 順序なしのアクセス操作が発生しない場合は、アプリケーションでこのフラグを設定しないようにする必要があります。 次の制限と相互作用が適用されます。
|
D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE 値: 0x8 リソースに対してシェーダー リソース ビューが作成されないようにし、リソースが D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE または D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE の状態に遷移することを無効にします。 一部のアダプター アーキテクチャでは、シェーダー リソース ビューが除外されている場合に深度ステンシル テクスチャの帯域幅容量が得られます。 テクスチャがシェーダー リソースにほとんど使用されない場合は、2 つのテクスチャを周囲に配置し、それらの間でコピーする価値があります。 一方のテクスチャにはこのフラグが付き、もう一方のテクスチャはフラグを持たない。 シェーダー リソース ビューから深度ステンシル テクスチャを使用しない場合は、アプリケーションでこのフラグを設定する必要があります。 次の制限と相互作用が適用されます。
|
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_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 |