DXGK_PRESENTATIONCAPS構造体 (d3dkmddi.h)

DXGK_PRESENTATIONCAPS構造体は、 ドライバーがその DxgkDdiQueryAdapterInfo 関数の呼び出しを通じて提供するディスプレイ ミニポート ドライバーのプレゼンテーション機能を識別します。

構文

typedef struct _DXGK_PRESENTATIONCAPS {
  union {
    struct {
      UINT NoScreenToScreenBlt : 1;
      UINT NoOverlapScreenBlt : 1;
      UINT SupportKernelModeCommandBuffer : 1;
      UINT NoSameBitmapAlphaBlend : 1;
      UINT NoSameBitmapStretchBlt : 1;
      UINT NoSameBitmapTransparentBlt : 1;
      UINT NoSameBitmapOverlappedAlphaBlend : 1;
      UINT NoSameBitmapOverlappedStretchBlt : 1;
      UINT DriverSupportsCddDwmInterop : 1;
      UINT Reserved0 : 1;
      UINT AlignmentShift : 4;
      UINT MaxTextureWidthShift : 3;
      UINT MaxTextureHeightShift : 3;
      UINT SupportAllBltRops : 1;
      UINT SupportMirrorStretchBlt : 1;
      UINT SupportMonoStretchBltModes : 1;
      UINT StagingRectStartPitchAligned : 1;
      UINT NoSameBitmapBitBlt : 1;
      UINT NoSameBitmapOverlappedBitBlt : 1;
      UINT Reserved1 : 1;
      UINT NoTempSurfaceForClearTypeBlend : 1;
      UINT SupportSoftwareDeviceBitmaps : 1;
      UINT NoCacheCoherentApertureMemory : 1;
      UINT SupportLinearHeap : 1;
#if ...
      UINT Reserved : 1;
#else
      UINT Reserved : 4;
#endif
    };
         UINT Value;
  };
} DXGK_PRESENTATIONCAPS;

メンバー

[in] NoScreenToScreenBlt

ディスプレイ ミニポート ドライバーがプライマリ サーフェスから同じプライマリ サーフェスへのビット ブロック転送 (ビットブレット) を実行できるかどうかを指定する UINT 値。 NoScreenToScreenBlt が設定されている場合、ドライバーは画面間ビット ブロック転送を実行できません。 したがって、Microsoft DirectX グラフィックス カーネル サブシステム (Dxgkrnl.sys) は、このようなビット ブロック転送を実行するようにドライバーに要求しません。

このメンバーの設定は、32 ビット Value メンバーの最初のビット (0x00000001) を設定することと同じです。

[in] NoOverlapScreenBlt

ディスプレイ ミニポート ドライバーが重複するビット ブロック転送を実行できるかどうかを指定する UINT 値。 NoOverlapScreenBlt が設定されている場合、ドライバーは重複するビット ブロック転送を実行できません。 したがって、DirectX グラフィックス カーネル サブシステムは、このようなビット ブロック転送を実行するドライバーを要求しません。

このメンバーの設定は、32 ビット Value メンバー (0x00000002) の 2 番目のビットを設定することと同じです。

SupportKernelModeCommandBuffer

[入力]ディスプレイ ミニポート ドライバーが GDI ハードウェアアクセラレータコマンド バッファー処理をサポートするかどうかを指定する UINT 値。 SupportKernelModeCommandBuffer が設定されている場合、DirectX グラフィックス カーネル サブシステムがディスプレイ ミニポート ドライバーの DxgkDdiRenderKm 関数を呼び出すときに、ドライバーはさまざまなハードウェアアクセラレータビット ブロック転送 (ビットblt) とフィル操作を実行できます。

メモ ディスプレイ ミニポート ドライバーは、キャッシュコヒーレント GPU 絞りセグメントが存在し、CPU がメモリにアクセスするときに大幅なパフォーマンス低下がない場合にのみ、GDI ハードウェア アクセラレータをサポートしていることを報告する必要があります。
 
このメンバーの設定は、32 ビット Value メンバー (0x00000004) の 3 番目のビットを設定することと同じです。

Windows 7 以降でサポートされています。

[in] NoSameBitmapAlphaBlend

ソースと宛先の割り当てが同じ場合に、ディスプレイ ミニポート ドライバーがアルファ ブレンド操作を実行できるかどうかを指定する UINT 値。 NoSameBitmapAlphaBlend が設定されている場合、ドライバーはこのような操作を実行できず、DirectX グラフィックス カーネル サブシステムは要求しません。

このメンバーの設定は、32 ビット Value メンバー (0x00000008) の 4 番目のビットを設定することと同じです。

Windows 7 以降でサポートされています。

[in] NoSameBitmapStretchBlt

ソースと宛先の割り当てが同じ場合に、ディスプレイ ミニポート ドライバーがストレッチ ビット ブロック転送操作を実行できるかどうかを指定する UINT 値。 NoSameBitmapStretchBlt が設定されている場合、ドライバーはこのような操作を実行できず、DirectX グラフィックス カーネル サブシステムは要求しません。

このメンバーの設定は、32 ビット Value メンバー (0x00000010) の 5 番目のビットを設定することと同じです。

Windows 7 以降でサポートされています。

[in] NoSameBitmapTransparentBlt

ソースと宛先の割り当てが同じ場合に、ディスプレイ ミニポート ドライバーが透過的なビット ブロック転送操作を実行できるかどうかを指定する UINT 値。 NoSameBitmapStretchBlt が設定されている場合、ドライバーはこのような操作を実行できず、DirectX グラフィックス カーネル サブシステムは要求しません。

このメンバーの設定は、32 ビット Value メンバー (0x00000020) の 6 番目のビットを設定することと同じです。

Windows 7 以降でサポートされています。

[in] NoSameBitmapOverlappedAlphaBlend

ソースとターゲットの割り当てが同じで、ソースとターゲットの四角形が重なったときに、ディスプレイ ミニポート ドライバーがアルファ ブレンド操作を実行できるかどうかを指定する UINT 値。 NoSameBitmapOverlappedAlphaBlend が設定されている場合、ドライバーはこのような操作を実行できず、DirectX グラフィックス カーネル サブシステムは要求しません。

このメンバーの設定は、32 ビット Value メンバーの 7 番目のビット (0x00000040) を設定することと同じです。

Windows 7 以降でサポートされています。

[in] NoSameBitmapOverlappedStretchBlt

ソースと宛先の割り当てが同じで、ソースと宛先の四角形が重なっている場合に、ディスプレイ ミニポート ドライバーがストレッチ ビット ブロック転送操作を実行できるかどうかを指定する UINT 値。 NoSameBitmapOverlappedStretchBlt が設定されている場合、ドライバーはこのような操作を実行できず、DirectX グラフィックス カーネル サブシステムは要求しません。

このメンバーの設定は、32 ビット Value メンバー (0x00000080) の 8 ビットを設定することと同じです。

Windows 7 以降でサポートされています。

[in] DriverSupportsCddDwmInterop

ディスプレイ ミニポート ドライバーが、使用するデスクトップ Windows マネージャー (DWM) のユーザー モード ドライバーによって作成されたテクスチャ割り当てに対する正規ディスプレイ ドライバー (CDD) の現在の操作をサポートするかどうかを指定する UINT 値。 DriverSupportsCddDwmInterop が設定されている場合、ディスプレイ ミニポート ドライバーは、このような現在の操作をサポートします。

ディスプレイ ミニポート ドライバーが GDI ハードウェア アクセラレータをサポートしている場合、 DriverSupportsCddDwmInterop は無視されます。 この場合、ドライバーは、ユーザー モード ドライバーによって作成された DWM テクスチャ割り当てに対する現在の CDD 操作をサポートする必要があります。

このメンバーの設定は、32 ビット Value メンバーの 9 番目のビット (0x00000100) を設定することと同じです。

Windows 7 以降でサポートされています。

[in] Reserved0

このメンバーは予約されており、0 に設定する必要があります。

このメンバーの設定は、32 ビット Value メンバー (0x00000200) の 10 ビットを設定することと同じです。

Windows 7 以降でサポートされています。

[in] AlignmentShift

DXGK_GDIARG_XXX構造体の XxxPitch メンバーに必要な最小アラインメント値 (バイト単位) を指定する UINT 値。 AlignmentShift はバイナリ指数として指定されます。 たとえば、必要なアラインメント値を 16 バイトに指定するには、ディスプレイ ミニポート ドライバーで AlignmentShift = 4 を設定する必要があります。 最小値は AlignmentShift = 2 で、4 バイトのアラインメントを指定します。

このメンバーの設定は、32 ビット Value メンバーの 11 番目のビット (0x00000400) を設定することと同じです。

Windows 7 以降でサポートされています。

[in] MaxTextureWidthShift

ディスプレイ ミニポート ドライバーがサポートする最大テクスチャ幅を指定する UINT 値。次のように計算されます。

サポートされるテクスチャの最大幅 = 2 ^ (MaxTextureWidthShift + 11) テクセル。

たとえば、 MaxTextureWidthShift = 0 の場合、サポートされるテクスチャの最大幅は 2 ^ 11 = 2048 です。

このメンバーの設定は、32 ビット Value メンバーの 12 番目のビット (0x00000800) を設定することと同じです。

Windows 7 以降でサポートされています。

[in] MaxTextureHeightShift

ディスプレイ ミニポート ドライバーがサポートする最大テクスチャの高さを指定する UINT 値。次のように計算されます。

サポートされるテクスチャの最大高さ = 2 ^ (MaxTextureHeightShift + 11) テクセル。

たとえば、 MaxTextureHeightShift = 0 の場合、サポートされるテクスチャの最大高さは 2 ^ 11 = 2048 になります。

このメンバーの設定は、32 ビット Value メンバー (0x00001000) の 13 番目のビットを設定することと同じです。

Windows 7 以降でサポートされています。

[in] SupportAllBltRops

ディスプレイ ミニポート ドライバーが BitBlt コマンドと ColorFill コマンドのパターンとして単色のすべての GDI ROP3 ラスター操作をサポートするかどうかを指定する UINT 値。 SupportAllBltRops が設定されている場合、ドライバーはこのようなラスター操作をサポートします。

このメンバーの設定は、32 ビット Value メンバーの 14 番目のビット (0x00002000) を設定することと同じです。

Windows 7 以降でサポートされています。

[in] SupportMirrorStretchBlt

ディスプレイ ミニポート ドライバーが (DXGK_GDIARG_STRETCHBLT構造体を使用して) Stretch Blt 操作をサポートするかどうかを指定する UINT 値ミラーモードです。 SupportMirrorStretchBlt が設定されている場合、ドライバーはこのような操作をサポートします。

このメンバーの設定は、32 ビット Value メンバーの 15 番目のビット (0x00004000) を設定することと同じです。

Windows 7 以降でサポートされています。

[in] SupportMonoStretchBltModes

ディスプレイ ミニポート ドライバーが BLACKONWHITE または WHITEONBLACK 単色レンダリング モードで Stretch Blt 操作 ( DXGK_GDIARG_STRETCHBLT 構造体を使用) をサポートするかどうかを指定する UINT 値。 SupportMonoStretchBltModes が設定されている場合、ドライバーはこのような操作をサポートします。

このメンバーの設定は、32 ビット Value メンバー (0x00008000) の 16 番目のビットを設定することと同じです。

Windows 7 以降でサポートされています。

[in] StagingRectStartPitchAligned

ディスプレイ ミニポート ドライバーで、CPU に表示されるステージングサーフェイス上の四角形の開始点 (左上のポイント) をピッチアラインする必要があるかどうかを指定する UINT 値。これは、左座標が 0 であることを意味します。 AlignmentShift が設定されている場合、四角形の左上のポイントはピッチに合わせて配置されます。

このメンバーの設定は、32 ビット Value メンバー (0x00010000) の 17 番目のビットを設定することと同じです。

Windows 7 以降でサポートされています。

[in] NoSameBitmapBitBlt

ソースと宛先の割り当てが同じ場合に、ディスプレイ ミニポート ドライバーがビット ブロック転送操作を実行できるかどうかを指定する UINT 値。 NoSameBitmapBitBlt が設定されている場合、ドライバーはこのような操作を実行できません。 したがって、DirectX グラフィックス カーネル サブシステムは、ドライバーがこのような操作を実行することを要求しません。

このメンバーの設定は、32 ビット Value メンバー (0x00020000) の 18 番目のビットを設定することと同じです。

Windows 7 以降でサポートされています。

[in] NoSameBitmapOverlappedBitBlt

ソースと宛先の割り当てが同じで、ソースと宛先の四角形が重なっている場合に、ディスプレイ ミニポート ドライバーがビット ブロック転送操作を実行できるかどうかを指定する UINT 値。 NoSameBitmapOverlappedBitBlt が設定されている場合、ドライバーはこのような操作を実行できず、DirectX グラフィックス カーネル サブシステムは要求しません。

このメンバーの設定は、32 ビット Value メンバー (0x00040000) の 19 番目のビットを設定することと同じです。

Windows 7 以降でサポートされています。

[in] Reserved1

このメンバーは予約されており、0 に設定する必要があります。 このメンバーを 0 に設定することは、32 ビット Value メンバー (0x00080000) の 20 ビットを設定することと同じです。

Windows 7 以降でサポートされています。

[in] NoTempSurfaceForClearTypeBlend

DXGK_RENDERKM_COMMAND構造体の ClearTypeBlend メンバーによって指定されたコマンドの処理中に、ドライバーが一時的なサーフェスを必要とするかどうかを指定する UINT 値。 NoTempSurfaceForClearTypeBlend が設定されている場合、ドライバーは一時的なサーフェスを必要としません。 この場合、ドライバーは使用するビデオ メモリが少なくなります。

このメンバーを 0 に設定することは、32 ビット Value メンバー (0x00100000) の 21 ビットを設定することと同じです。

Windows 7 以降でサポートされています。

[in] SupportSoftwareDeviceBitmaps

このメンバーは予約されており、0 に設定する必要があります。

このメンバーの設定は、32 ビット Value メンバー (0x00200000) の 22 秒ビットを設定することと同じです。

Windows 8 以降でサポートされています。

[in] NoCacheCoherentApertureMemory

ドライバーがキャッシュ コヒーレントなアパーチャ メモリをサポートしないことを指定する UINT 値。

このメンバーの設定は、32 ビット Value メンバー (0x00400000) の 23 番目のビットを設定することと同じです。

Windows 8 以降でサポートされています。

[in] SupportLinearHeap

ドライバーは、ステージング サーフェイスからの線形ヒープ割り当てをサポートしています。

このメンバーの設定は、32 ビット Value メンバー (0x00800000) の 24 ビットを設定することと同じです。

Windows 8 以降でサポートされています。

[in] Reserved

このメンバーは予約されており、0 に設定する必要があります。

このメンバーの設定は、32 ビット Value メンバー (0x01000000) の 25 ビットを設定することと同じです。

Windows 8 以降でサポートされています。

[入力]このメンバーは予約されており、0 に設定する必要があります。

このメンバーの設定は、32 ビット Value メンバー (0x02000000) の 25 ビットを設定することと同じです。

Windows 8 以降でサポートされています。

Value

ドライバーのプレゼンテーション機能を識別する 32 ビット値。

注釈

ディスプレイ ミニポート ドライバーは、32 ビット メンバーのビットを設定するか、またはDXGK_PRESENTATIONCAPS含まれる共用体内の構造体の個々のメンバーを設定することによって、プレゼンテーション機能を指定できます。

要件

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

こちらもご覧ください

D3DKMDT_GDISURFACETYPE

DXGK_DRIVERCAPS

DxgkDdiQueryAdapterInfo

DxgkDdiRenderKm