次の方法で共有


D3D11_RESOURCE_FLAGS 構造体 (d3d11on12.h)

ID3D11On12Device::CreateWrappedResource と共に使用して、バインド フラグ、その他のフラグ、CPU アクセス フラグなど、リソース プロパティまたはヒープ プロパティによって推論されるフラグをオーバーライドします。

構文

typedef struct D3D11_RESOURCE_FLAGS {
  UINT BindFlags;
  UINT MiscFlags;
  UINT CPUAccessFlags;
  UINT StructureByteStride;
} D3D11_RESOURCE_FLAGS;

メンバー

BindFlags

グラフィックス ドライバーが一般的な D3D12 リソースを D3D11 で理解できるものにスコープを設定できるようにするには、バインド フラグを完全に推論するか、完全に指定する必要があります。

指定されたリソースでサポートされていないバインド フラグが指定されている場合は、エラーが返されます。

次のバインド フラグ (D3D11_BIND_FLAG 列挙定数) は想定されません。このような方法でリソースを使用するには、指定する必要があります。

  • D3D11_BIND_VERTEX_BUFFER
  • D3D11_BIND_INDEX_BUFFER
  • D3D11_BIND_CONSTANT_BUFFER
  • D3D11_BIND_STREAM_OUTPUT
  • D3D11_BIND_DECODER
  • D3D11_BIND_VIDEO_ENCODER
次のバインド フラグは、対応する D3D12 リソース フラグの存在に基づいて想定され、バインド フラグを指定することで削除できます。
  • D3D12_RESOURCE_MISC_DENY_SHADER_RESOURCEが存在しない限り、D3D11_BIND_SHADER_RESOURCE
  • D3D11_BIND_RENDER_TARGET(D3D12_RESOURCE_MISC_ALLOW_RENDER_TARGETが存在する場合)
  • D3D12_RESOURCE_MISC_ALLOW_DEPTH_STENCILが存在する場合は、D3D11_BIND_DEPTH_STENCIL
  • D3D11_BIND_UNORDERED_ACCESS(D3D12_RESOURCE_MISC_ALLOW_UNORDERED_ACCESSが存在する場合)
レンダー ターゲットまたは UAV バッファーは、フラグをオーバーライドせずにラップできます。ただし、VB/IB/CB/SO バッファーは、Direct3D 11 では相互に排他的であるため、バインド フラグを手動で指定する必要があります。

MiscFlags

その他のフラグが 0 以外の場合、指定されたフラグは、推論されたフラグを持つ最終的なリソース desc に OR'd になります。 機能を追加するために、その他のフラグを部分的に指定できますが、暗黙的なその他のフラグはマスクアウトできません。

次のその他のフラグ (D3D11_RESOURCE_MISC_FLAG 列挙定数) は想定されません。

  • D3D11_RESOURCE_MISC_GENERATE_MIPS (CLAMP と競合しています)。
  • D3D11_RESOURCE_MISC_TEXTURECUBE (既定のビューの動作を変更します)。
  • D3D11_RESOURCE_MISC_DRAWINDIRECT_ARGS (一部のバインド フラグでは排他的)。
  • D3D11_RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS (他の種類の UAV では排他的)。
  • D3D11_RESOURCE_MISC_BUFFER_STRUCTURED (他の種類の UAV では排他的)。
  • D3D11_RESOURCE_MISC_RESOURCE_CLAMP (D3D10 QIs、GENERATE_MIPSとの競合を禁止します)。
  • D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX。 D3D11 キー付きミューテックス リソースを作成し、その共有ハンドルを作成し、11on12 または D3D11 経由で開くこともできます。
次のその他のフラグが想定され、生成されたリソース desc から削除することはできません。 これらのいずれかが設定されていて、D3D12 リソースでサポートされていない場合、作成は失敗します。
  • 適切なヒープの誤ったフラグが存在する場合は、D3D11_RESOURCE_MISC_SHARED、D3D11_RESOURCE_MISC_SHARED_NTHANDLE、D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE。
  • D3D11_RESOURCE_MISC_GDI_COMPATIBLE、D3D12 リソースが GDI 互換の場合です。
  • D3D11_RESOURCE_MISC_TILED、 CreateReservedResource を使用して D3D12 リソースが作成された場合です。
  • D3D11_RESOURCE_MISC_TILE_POOL、D3D12 ヒープが渡された場合は 。
この API に指定する場合、次のその他のフラグは無効です。
  • D3D11_RESOURCE_MISC_RESTRICTED_CONTENT、D3D12 はハードウェア保護のみをサポートしているためです。
  • D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE_DRIVERは 12 に存在せず、リソースの作成後に に追加することはできません。
  • D3D11_RESOURCE_MISC_GUARDEDは、内部作成メカニズムによってのみ設定されます。

CPUAccessFlags

CPUAccessFlags は D3D12 リソースから推論されません。 これは、すべてのリソースがD3D11_USAGE_DEFAULTとして扱われるため、 CPUAccessFlags は既定のバッファーまたはテクスチャの マップ を前提とする検証を強制するためです。 ラップされたリソースは Map(DISCARD) をサポートしていません。 ラップされたリソースは Map(NO_OVERWRITE) をサポートしていませんが、基になる D3D12 リソースをマッピングすることで実装できます。 ラップされたリソースに 対して Map 呼び出しを発行すると、DO_NOT_WAIT フラグが使用されていない限り、そのリソースに対して送信されたすべての D3D11 作業と同期されます。

StructureByteStride

バッファーが構造化バッファーを表す場合のバッファー構造内の各要素のサイズ (バイト単位)。

注釈

この構造体は 、CreateWrappedResource と共に使用します。

要件

要件
Header d3d11on12.h

こちらもご覧ください

11on12 構造体