DXGK_VIDMMCAPS構造体 (d3dkmddi.h)

DXGK_VIDMMCAPS構造体は、ディスプレイ ミニポート ドライバーがサポートするビデオ メモリ管理機能を識別します。

構文

typedef struct _DXGK_VIDMMCAPS {
  union {
    struct {
      UINT OutOfOrderLock : 1;
      UINT DedicatedPagingEngine : 1;
      UINT PagingEngineCanSwizzle : 1;
      UINT SectionBackedPrimary : 1;
      UINT CrossAdapterResource : 1;
      UINT VirtualAddressingSupported : 1;
      UINT GpuMmuSupported : 1;
      UINT IoMmuSupported : 1;
      UINT ReplicateGdiContent : 1;
      UINT NonCpuVisiblePrimary : 1;
      UINT ParavirtualizationSupported : 1;
      UINT IoMmuSecureModeSupported : 1;
      UINT DisableSelfRefreshVRAMInS3 : 1;
      UINT IoMmuSecureModeRequired : 1;
      UINT MapAperture2Supported : 1;
      UINT CrossAdapterResourceTexture : 1;
      UINT CrossAdapterResourceScanout : 1;
      UINT AlwaysPoweredVRAM : 1;
#if ...
      UINT Reserved : 14;
#elif
      UINT Reserved : 15;
#elif
      UINT Reserved : 18;
#elif
      UINT Reserved : 19;
#elif
      UINT Reserved : 21;
#elif
      UINT Reserved : 22;
#elif
      UINT Reserved : 27;
#elif
      UINT Reserved : 28;
#else
      UINT Reserved : 31;
#endif
    };
    UINT Value;
  };
  UINT  PagingNode;
} DXGK_VIDMMCAPS;

メンバー

OutOfOrderLock

ドライバーが最新のインスタンス以外の割り当てインスタンスをロックできるかどうかを指定します。 ドライバーは通常、アプリケーション スレッドが以前にロックおよび破棄した頂点バッファーを DDI スレッドでロックする必要がある場合に、DDI スレッド処理と負荷分散にこの値を設定します。 このメンバーの設定は、32 ビット メンバー (0x00000001) の最初のビットを設定することと同じです。

DedicatedPagingEngine

このメンバーは予約済みであり、0 に設定する必要があります。

PagingEngineCanSwizzle

このメンバーは予約済みであり、0 に設定する必要があります。

SectionBackedPrimary

ドライバーがセクションでサポートされるプライマリ割り当てをサポートするかどうかを指定します。 Windows 8 以降でサポートされています。

CrossAdapterResource

ドライバーがハイブリッド システム<内のアダプター間リソースとの間でのコピーの階層 1 のサポートを提供するかどうかを指定します。 Windows 8.1 以降でサポートされます。

WDDM 2.4 以降、DXGI では、レンダリングが 1 つの GPU 上にあり、別の GPU のモニターに表示される広範なシナリオに対して、現在のハイブリッド プレゼンテーションの最適化が可能になります。 これは、両方の GPU がアダプター間リソースをサポートしている場合にのみ可能です。

クロス アダプター リソースのプロパティを次に示します。

  • リソースは、開口 GPU メモリ セグメントにのみページングできます
  • リソースは共有として割り当てられます。
  • リソースは、CPU Visible とマークされている必要があります。
  • 割り当ては、書き込み結合として OS によって作成されます。
  • リソースには割り当てが 1 つだけあり、線形形式です。
  • リソースには、標準的なピッチアラインメント (128 バイト) があります。 ピッチの配置にD3DKMT_CROSS_ADAPTER_RESOURCE_PITCH_ALIGNMENT定義が追加されます。 リソースは、リソースの内容を含むこのアラインメントの最小倍数で作成する必要があります。
  • リソースには標準の高さの配置 (4 行) があります。 D3DKMT_CROSS_ADAPTER_RESOURCE_HEIGHT_ALIGNMENTが追加されます。 リソースは、リソースの内容を含むこのアラインメントの最小倍数で作成する必要があります。
#define D3DKMT_CROSS_ADAPTER_RESOURCE_PITCH_ALIGNMENT 128

#define D3DKMT_CROSS_ADAPTER_RESOURCE_HEIGHT_ALIGNMENT 4
  • リソース メモリの開始アドレスは、1 つのページ境界に配置されます。
  • リソースはカーネル モードからの標準割り当てとして作成され、後で UMD によって開かれる場合があります。
  • リソースは UMD によって作成される場合があります。

クロス アダプター割り当てはプライマリとして使用できますが、ドライバーは情報を取得しません。これは通常、プライマリの作成時に提供されます

VirtualAddressingSupported

ドライバーが仮想メモリアドレス指定をサポートするかどうかを指定します。 GPU 仮想メモリアドレス指定のサポートを表現するには、ドライバーで VirtualAddressingSupported キャップと GpuMmuSupported または IoMmuSupported キャップを設定する必要があります。 GpuMmuSupportedIoMmuSupported を同時に設定することはできません。 Windows 10 以降でサポートされています。

GpuMmuSupported

アダプターが GpuMmu モデルをサポートするかどうかを指定します。 アダプターでは、異なるエンジンで GpuMmu モデルと IoMmu モデルを同時にサポートすることはできません。 詳細については、「 GpuMmu モデル 」を参照してください。 Windows 10 以降でサポートされています。

IoMmuSupported

アダプターが IoMmu モデルをサポートするかどうかを指定します。 アダプターでは、異なるエンジンで GpuMmu モデルと IoMmu モデルを同時にサポートすることはできません。 詳細については、「 IoMmu モデル 」を参照してください。 Windows 10 (WDDM 2.0) 以降でサポートされます。

ReplicateGdiContent

アダプターが GDI コンテンツのレプリケーションをサポートするかどうかを指定します。 Windows 10 以降でサポートされています。

NonCpuVisiblePrimary

GDI 割り当てが CPU に表示される必要がないことを示します。 Windows 10 以降でサポートされています。

ParavirtualizationSupported

すべての DDI が実装されている場合は、ホスト KMD で上限を設定する必要があります。 Windows 10 バージョン 1703 (WDDM 2.2) 以降でサポートされます。

IoMmuSecureModeSupported

ドライバーが IOMMU ベースの GPU 分離をサポートしていることを示します。 Windows 10 バージョン 1803 (WDDM 2.4) 以降でサポートされます。

DisableSelfRefreshVRAMInS3

S3 での VRAM 自己更新のサポートを無効にします。 Windows 10 バージョン 1803 以降でサポートされています。

IoMmuSecureModeRequired

IOMMU ハードウェアと分離のサポート ( IommuSecureModeSupported フラグで参照) が必要であるか、または OS によってアダプターが起動されないことを示します。 Windows 10 バージョン 2004 (WDDM 2.7) 以降でサポートされています。

MapAperture2Supported

ドライバーが、IOMMU DMA の再マップに必要なDXGK_OPERATION_MAP_APERTURE_SEGMENT2ページング バッファー操作をサポートしていることを示します。 WDDM バージョン 2.9 以降でサポートされています。

CrossAdapterResourceTexture

ドライバーがクロスアダプター リソースからのテクスチャリングの階層 2 のサポートを提供するかどうかを指定します。 CrossAdapterResourceTexture のサポートを示すドライバーは、CrossAdapterResource のサポートも示す必要があります。 WDDM バージョン 2.9 以降でサポートされています。

CrossAdapterResourceScanout

ドライバーがクロスアダプター リソースのスキャンの階層 3 のサポートを提供するかどうかを指定します。 CrossAdapterResourceScanout のサポートを示すドライバーは、CrossAdapterResourceCrossAdapterResourceTexture のサポートも示す必要があります。 WDDM バージョン 2.9 以降でサポートされています。

階層 3 のサポートでは、ドライバーが、次の最小仕様のアダプター間リソースに対して、 DXGK_FLIPCAPSでドライバーによって宣言されているサポートされている反転機能を実行できる必要があります。

  • クロスアダプターのプライマリ バッファー サイズが 1920 x 1080 以下
  • サポートされている次のいずれかの DisplayScanOut 形式のバッファー ピクセル形式。
    • DXGI_FORMAT_R16G16B16A16_FLOAT
    • DXGI_FORMAT_R10G10B10A2_UNORM
    • DXGI_FORMAT_R8G8B8A8_UNORM
    • DXGI_FORMAT_R8G8B8A8_UNORM_SRGB
    • DXGI_FORMAT_B8G8R8A8_UNORM
    • DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM
    • DXGI_FORMAT_B8G8R8A8_UNORM_SRGB

DXGI ランタイムは、ドライバーの CrossAdapterResourceScanout サポートを照会します。サポートされている場合、プレゼンテーション スタックは 1 つのコピー パスの下に移動します。 そのため、 CrossAdapterResourceScanout のサポートを宣言するドライバーは、次の場合にも必要です。

  • DXGKDDI_CHECKMULTIPLANEOVERLAYSUPPORT3のサポート。
  • 上記の最小仕様のクロスアダプター プライマリに関連するすべてのプレゼンテーション関連の DDI をサポートします。 たとえば、pfnCreateResource、pfnCheckMultiplaneOverlaySupport、pfnPresentMultiplaneOverlay/pfnPresent1 などです。 MPO 仕様やハイブリッド スペックなど、必要な詳細については、既存の仕様を参照してください。CASO から抜け出す方法の詳細については、以下のセクションを参照してください。

AlwaysPoweredVRAM

Reserved

このメンバーは予約済みであり、0 に設定する必要があります。 このメンバーを 0 に設定することは、Value メンバーの残りの 31 ビット ( OutOfOrderLock を設定した後) 0 に設定することと同じです。 予約は、DXGKDDI_INTERFACE_VERSION DXGKDDI_INTERFACE_VERSION_WIN7<場合にのみ使用できます。

Value

この値は、メンバーをまとめて操作するために使用されます。

PagingNode

ページング操作に使用するノードの 0 から始まるインデックス。 ドライバーが、DXGK_DRIVERCAPS構造体の SchedulingCaps メンバーの MultiEngineAware ビット フィールド メンバーを設定していない場合、DirectX グラフィックス カーネル サブシステムは PagingNode の設定を無視します。 このメンバーは WDDM 1.x にのみ適用されます。 WDDM 2.x では、 PagingNodeDXGK_PHYSICALADAPTERCAPSに移動されました。

要件

要件
サポートされている最小のクライアント Windows Vista
Header d3dkmddi.h (D3dkmddi.h を含む)

こちらもご覧ください

DXGK_DRIVERCAPS

DXGK_PHYSICALADAPTERCAPS