次の方法で共有


D3D11_RESOURCE_MISC_FLAG列挙 (d3d11.h)

リソースのオプションを識別します。

構文

typedef enum D3D11_RESOURCE_MISC_FLAG {
  D3D11_RESOURCE_MISC_GENERATE_MIPS = 0x1L,
  D3D11_RESOURCE_MISC_SHARED = 0x2L,
  D3D11_RESOURCE_MISC_TEXTURECUBE = 0x4L,
  D3D11_RESOURCE_MISC_DRAWINDIRECT_ARGS = 0x10L,
  D3D11_RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS = 0x20L,
  D3D11_RESOURCE_MISC_BUFFER_STRUCTURED = 0x40L,
  D3D11_RESOURCE_MISC_RESOURCE_CLAMP = 0x80L,
  D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX = 0x100L,
  D3D11_RESOURCE_MISC_GDI_COMPATIBLE = 0x200L,
  D3D11_RESOURCE_MISC_SHARED_NTHANDLE = 0x800L,
  D3D11_RESOURCE_MISC_RESTRICTED_CONTENT = 0x1000L,
  D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE = 0x2000L,
  D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE_DRIVER = 0x4000L,
  D3D11_RESOURCE_MISC_GUARDED = 0x8000L,
  D3D11_RESOURCE_MISC_TILE_POOL = 0x20000L,
  D3D11_RESOURCE_MISC_TILED = 0x40000L,
  D3D11_RESOURCE_MISC_HW_PROTECTED = 0x80000L,
  D3D11_RESOURCE_MISC_SHARED_DISPLAYABLE,
  D3D11_RESOURCE_MISC_SHARED_EXCLUSIVE_WRITER,
  D3D11_RESOURCE_MISC_NO_SHADER_ACCESS
} ;

定数

 
D3D11_RESOURCE_MISC_GENERATE_MIPS
値: 0x1L
テクスチャ リソースで ID3D11DeviceContext::GenerateMips を使用して MIP マップの生成を有効にします。 リソースは、リソースがレンダー ターゲットとシェーダー リソースであることを指定する バインド フラグ を使用して作成する必要があります。
D3D11_RESOURCE_MISC_SHARED
値: 0x2L
2 つ以上の Direct3D デバイス間でのリソース データ共有を有効にします。 共有できるリソースは、2D 非 mipmapped テクスチャのみです。


D3D11_RESOURCE_MISC_SHAREDD3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX は相互に排他的です。


WARP および REF デバイスは、共有リソースをサポートしていません。
WARP または REF デバイスでこのフラグを持つリソースを作成しようとすると、create メソッドはE_OUTOFMEMORYエラー コードを返します。


メモWindows 8以降、WARP デバイスは共有リソースを完全にサポートします。

 

メモWindows 8以降では、代わりに D3D11_RESOURCE_MISC_SHARED_NTHANDLE フラグと D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX フラグの組み合わせを使用して、2 つ以上の Direct3D デバイス間でリソース データ共有有効にすることをお勧めします。

 
D3D11_RESOURCE_MISC_TEXTURECUBE
値: 0x4L
リソースを、6 つのテクスチャを含む Texture2DArray から作成されたキューブ テクスチャに設定します。
D3D11_RESOURCE_MISC_DRAWINDIRECT_ARGS
値: 0x10L
GPU によって生成されたコンテンツのインスタンス化を有効にします。
D3D11_RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS
値: 0x20L
リソースをバイト アドレス バッファーとして有効にします。
D3D11_RESOURCE_MISC_BUFFER_STRUCTURED
値: 0x40L
リソースを構造化バッファーとして有効にします。
D3D11_RESOURCE_MISC_RESOURCE_CLAMP
値: 0x80L
ID3D11DeviceContext::SetResourceMinLOD で使用する MIP マップ クランプを使用するリソースを有効にします。
D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX
値: 0x100L
IDXGIKeyedMutex::AcquireSync と を使用してリソースを同期できるようにします。
IDXGIKeyedMutex::ReleaseSync Api。
D3D11_RESOURCE_MISC_FLAG パラメーターを 受け取る次の Direct3D 11 リソース作成 API は、新しいフラグをサポートするように拡張されています。


D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX フラグが設定されたこれらのメソッドのいずれかを呼び出すと、返されるインターフェイスは IDXGIKeyedMutex インターフェイスをサポートします。 IUnknown::QueryInterface を使用して、リソースから IDXGIKeyedMutex インターフェイスへのポインターを取得できます。 IDXGIKeyedMutex インターフェイスは、IDXGIKeyedMutex::AcquireSync API と IDXGIKeyedMutex::ReleaseSync API を実装して、サーフェスへのアクセスを同期します。 サーフェスを作成するデバイスと、 OpenSharedResource を使用してサーフェスを開くその他のデバイスは、サーフェスにレンダリング コマンドを発行する前 に IDXGIKeyedMutex::AcquireSync を呼び出す必要があります。 これらのデバイスのレンダリングが完了したら、 IDXGIKeyedMutex::ReleaseSync を呼び出す必要があります。


D3D11_RESOURCE_MISC_SHAREDD3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX は相互に排他的です。


WARP および REF デバイスは、共有リソースをサポートしていません。
WARP または REF デバイスでこのフラグを持つリソースを作成しようとすると、create メソッドはE_OUTOFMEMORYエラー コードを返します。


メモWindows 8以降、WARP デバイスは共有リソースを完全にサポートします。

 
D3D11_RESOURCE_MISC_GDI_COMPATIBLE
値: 0x200L
GDI と互換性のあるリソースを有効にします。 GDI で使用するサーフェスに D3D11_RESOURCE_MISC_GDI_COMPATIBLE フラグを設定する必要があります。 D3D11_RESOURCE_MISC_GDI_COMPATIBLE フラグを設定すると、IDXGISurface1::GetDC を介してサーフェス上で GDI レンダリングを行うことができます。


テクスチャを作成するとき、またはスワップ チェーンでそのテクスチャを使用するときに、D3D11_RESOURCE_MISC_GDI_COMPATIBLEを使用するための次のプログラミングヒントを検討してください。


  • D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEXとD3D11_RESOURCE_MISC_GDI_COMPATIBLEは相互に排他的です。 したがって、それらを一緒に使用しないでください。

  • D3D11_RESOURCE_MISC_RESOURCE_CLAMPとD3D11_RESOURCE_MISC_GDI_COMPATIBLEは相互に排他的です。 したがって、それらを一緒に使用しないでください。

  • テクスチャを出力マージャー ステージのレンダー ターゲットとしてバインドする必要があります。 たとえば、D3D11_TEXTURE2D_DESC 構造体の BindFlags メンバーに D3D11_BIND_RENDER_TARGET フラグを設定します。

  • MIP マップ レベルの最大数を 1 に設定する必要があります。 たとえば、D3D11_TEXTURE2D_DESC構造体の MipLevels メンバーを 1 に設定します。

  • テクスチャに GPU による読み取りアクセスと書き込みアクセスが必要であることを指定する必要があります。 たとえば、D3D11_TEXTURE2D_DESC構造体の Usage メンバーを D3D11_USAGE_DEFAULT に設定します。


  • テクスチャ形式は、次のいずれかの種類に設定する必要があります。


    • DXGI_FORMAT_B8G8R8A8_UNORM

    • DXGI_FORMAT_B8G8R8A8_TYPELESS

    • DXGI_FORMAT_B8G8R8A8_UNORM_SRGB

    たとえば、D3D11_TEXTURE2D_DESC構造体の Format メンバーをこれらの型のいずれかに設定します。

  • マルチサンプリングでD3D11_RESOURCE_MISC_GDI_COMPATIBLEを使用することはできません。 そのため、DXGI_SAMPLE_DESC構造体の Count メンバーを 1 に設定します。 次に、D3D11_TEXTURE2D_DESC構造体の SampleDesc メンバーをこのDXGI_SAMPLE_DESC構造体に設定します。

D3D11_RESOURCE_MISC_SHARED_NTHANDLE
値: 0x800L
共有リソースを作成するときに NT HANDLE 値を使用できるようにするには、このフラグを設定します。 このフラグを有効にすると、既存の HANDLE 値の使用は非推奨になります。

値は、共有リソースに NT HANDLE 値を使用するようにランタイムに指示する新しい共有リソースの種類を指定します。 その後、ランタイムは、共有リソースが指定された 機能レベルですべてのハードウェアで動作することを確認する必要があります。


このフラグを設定しないと、ランタイムは共有リソース パラメーター (形式、フラグ、使用状況など) を厳密に検証しません。 ランタイムが共有リソース パラメーターを検証しない場合、Direct3D API の多くの動作は未定義であり、ドライバーによって異なる場合があります。

Direct3D 11 以前: この値は、Direct3D 11.1 まではサポートされません。
D3D11_RESOURCE_MISC_RESTRICTED_CONTENT
値: 0x1000L
このフラグを設定して、リソースに保護されたコンテンツが含まれている可能性があることを示します。そのため、オペレーティング システムでは、ドライバーとハードウェアがコンテンツ保護をサポートしている場合にのみ、リソースを使用する必要があります。 ドライバーとハードウェアがコンテンツ保護をサポートしていない場合、このフラグを使用してリソースを作成しようとすると、リソースの作成は失敗します。

Direct3D 11: この値は、Direct3D 11.1 まではサポートされません。
D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE
値: 0x2000L
オペレーティング システムが共有サーフェスへのアクセスを制限することを示すには、このフラグを設定します。 このフラグは、共有サーフェスを作成する場合にのみ、D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE_DRIVER フラグと共に使用できます。 共有リソースを作成するプロセスでは、常に共有リソースを開くことができます。

Direct3D 11: この値は、Direct3D 11.1 まではサポートされません。
D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE_DRIVER
値: 0x4000L
ドライバーが共有サーフェイスへのアクセスを制限することを示すには、このフラグを設定します。 このフラグは、共有サーフェスを作成する場合にのみ、D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE フラグと組み合わせて使用できます。 共有リソースを作成するプロセスでは、常に共有リソースを開くことができます。

Direct3D 11: この値は、Direct3D 11.1 まではサポートされません。
D3D11_RESOURCE_MISC_GUARDED
値: 0x8000L
このフラグを設定して、リソースが保護されていることを示します。 このようなリソースは、IDCompositionSurface::BeginDraw (DirectComposition) および ISurfaceImageSourceNative::BeginDraw (Windows ランタイム) API によって返されます。 これらの API では、更新するサーフェスに関心領域 (ROI) を指定します。 このサーフェスは、複数のレンダー ターゲット (MRT) と互換性がありません。

保護されたリソースは、上記のいずれかの API に関連するリージョンへのすべての書き込みを自動的に制限します。 さらに、リソースは次の制限を使用して ROI へのアクセスを強制します。


Direct3D 11: この値は、Direct3D 11.1 まではサポートされません。
D3D11_RESOURCE_MISC_TILE_POOL
値: 0x20000L
このフラグを設定して、リソースがタイル プールであることを示します。

Direct3D 11: この値は、Direct3D 11.2 までサポートされていません。
D3D11_RESOURCE_MISC_TILED
値: 0x40000L
このフラグを設定して、リソースがタイルリソースであることを示します。

Direct3D 11: この値は、Direct3D 11.2 までサポートされていません。
D3D11_RESOURCE_MISC_HW_PROTECTED
値: 0x80000L
ハードウェアによって保護されるようにリソースを作成する必要があることを示すには、このフラグを設定します。 ハードウェア コンテンツ保護がサポートされていない場合、リソースの作成は失敗します。

このフラグには、次の制限があります。


  • このフラグは、次の D3D11_USAGE 値では使用できません。

    • D3D11_USAGE_DYNAMIC

    • D3D11_USAGE_STAGING



  • このフラグは、次の D3D11_BIND_FLAG 値では使用できません。

    • D3D11_BIND_VERTEX_BUFFER

    • D3D11_BIND_INDEX_BUFFER



  • CPU アクセス フラグは指定できません。


  

このフラグを使用してテクスチャを作成しても、基になる割り当てに対してハードウェア保護が自動的に有効になることは保証されません。 一部の実装では、保護が保証される前に、最初に DRM コンポーネントを初期化する必要があります。


 

メモこの列挙値は、Windows 10 以降でサポートされています。
D3D11_RESOURCE_MISC_SHARED_DISPLAYABLE
リソースが 表示可能なサーフェス フィーチャーを操作できるようにします。 D3D11_RESOURCE_MISC_SHARED_DISPLAYABLEは、D3D11_RESOURCE_MISC_SHAREDD3D11_RESOURCE_MISC_SHARED_NTHANDLEの両方と組み合わせて使用する必要があります。
D3D11_RESOURCE_MISC_SHARED_EXCLUSIVE_WRITER
TBD

注釈

この列挙体は、 D3D11_BUFFER_DESCD3D11_TEXTURE1D_DESCD3D11_TEXTURE2D_DESC、D3D11_TEXTURE3D_DESCで使用 されます

これらのフラグは、ビットごとの OR で組み合わせることができます。

D3D11_RESOURCE_MISC_FLAGは、 D3D11_CPU_ACCESSフラグを 使用してリソースを作成するときに使用できません。

要件

要件
Header d3d11.h

こちらもご覧ください

リソース列挙