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 值,该值指定显示微型端口驱动程序是否可以执行位块传输 (bitblt) 从主图面到同一主图面。 如果设置了 NoScreenToScreenBlt ,则驱动程序无法执行屏幕到屏幕位块传输。 因此,microsoft DirectX 图形内核子系统 (Dxgkrnl.sys) 不会请求驱动程序执行此类位块传输。

设置此成员等效于设置 32 位 Value 成员 (0x00000001) 的第一位。

[in] NoOverlapScreenBlt

一个 UINT 值,该值指定显示微型端口驱动程序是否可以执行重叠的位块传输。 如果设置了 NoOverlapScreenBlt ,则驱动程序无法执行重叠的位块传输。 因此,DirectX 图形内核子系统不会请求驱动程序执行此类位块传输。

设置此成员等效于设置 32 位 Value 成员 (0x00000002) 的第二位。

SupportKernelModeCommandBuffer

[in]一个 UINT 值,该值指定显示微型端口驱动程序是否支持 GDI 硬件加速命令缓冲区处理。 如果设置了 SupportKernelModeCommandBuffer ,则当 DirectX 图形内核子系统调用显示微型端口驱动程序的 DxgkDdiRenderKm 函数时,驱动程序可以执行各种硬件加速位块传输 (bitblt) 和填充操作。

注意 仅当存在缓存一致的 GPU 光圈段并且 CPU 访问内存时不会造成重大性能损失时,显示微型端口驱动程序才应报告它支持 GDI 硬件加速。
 
设置此成员等效于设置 32 位 Value 成员 (0x00000004) 的第三位。

从 Windows 7 开始受支持。

[in] NoSameBitmapAlphaBlend

一个 UINT 值,该值指定当源和目标分配相同时,显示微型端口驱动程序是否可以执行 alpha 混合操作。 如果设置了 NoSameBitmapAlphaBlend ,则驱动程序无法执行此类操作,并且 DirectX 图形内核子系统不会请求它。

设置此成员等效于设置 32 位 Value 成员 (0x00000008) 的第四位。

从 Windows 7 开始受支持。

[in] NoSameBitmapStretchBlt

一个 UINT 值,该值指定当源和目标分配相同时,显示微型端口驱动程序是否可以执行拉伸位块传输操作。 如果设置了 NoSameBitmapStretchBlt ,驱动程序将无法执行此类操作,并且 DirectX 图形内核子系统不会请求它。

设置此成员等效于设置 32 位 Value 成员的第五位 (0x00000010) 。

从 Windows 7 开始受支持。

[in] NoSameBitmapTransparentBlt

一个 UINT 值,该值指定当源和目标分配相同时,显示微型端口驱动程序是否可以执行透明的位块传输操作。 如果设置了 NoSameBitmapStretchBlt ,驱动程序将无法执行此类操作,并且 DirectX 图形内核子系统不会请求它。

设置此成员等效于设置 32 位 Value 成员 (0x00000020) 的第六位。

从 Windows 7 开始受支持。

[in] NoSameBitmapOverlappedAlphaBlend

一个 UINT 值,该值指定当源和目标分配相同且源和目标矩形重叠时,显示微型端口驱动程序是否可以执行 alpha 混合操作。 如果设置了 NoSameBitmapOverlappedAlphaBlend ,则驱动程序无法执行此类操作,并且 DirectX 图形内核子系统不会请求它。

设置此成员等效于设置 32 位 Value 成员 (0x00000040) 的第七位。

从 Windows 7 开始受支持。

[in] NoSameBitmapOverlappedStretchBlt

一个 UINT 值,该值指定当源和目标分配相同且源和目标矩形重叠时,显示微型端口驱动程序是否可以执行拉伸位块传输操作。 如果设置了 NoSameBitmapOverlappedStretchBlt ,则驱动程序无法执行此类操作,并且 DirectX 图形内核子系统不会请求它。

设置此成员等效于设置 32 位 Value 成员 (0x00000080) 的 8 位。

从 Windows 7 开始受支持。

[in] DriverSupportsCddDwmInterop

一个 UINT 值,该值指定显示微型端口驱动程序是否支持规范显示驱动程序 (CDD) 为桌面 Windows 管理器 (DWM) 使用的用户模式驱动程序创建的纹理分配提供操作。 如果设置了 DriverSupportsCddDwmInterop ,则显示微型端口驱动程序支持此类当前操作。

如果显示微型端口驱动程序支持 GDI 硬件加速,则忽略 DriverSupportsCddDwmInterop 。 在这种情况下,驱动程序必须支持用户模式驱动程序创建的 DWM 纹理分配的当前 CDD 操作。

设置此成员等效于设置 32 位 Value 成员 (0x00000100) 的第 9 位。

从 Windows 7 开始受支持。

[in] Reserved0

此成员是保留成员,应设置为零。

设置此成员等效于设置 32 位 Value 成员 (0x00000200) 的第 10 位。

从 Windows 7 开始受支持。

[in] AlignmentShift

一个 UINT 值,该值指定DXGK_GDIARG_XXX结构的 XxxPitch 成员所需的最小对齐值(以字节为单位)。 AlignmentShift 作为二进制指数提供。 例如,若要将所需的对齐值指定为 16 字节,显示微型端口驱动程序应设置 AlignmentShift = 4。 最小值为 AlignmentShift = 2,指定 4 字节对齐方式。

设置此成员等效于设置 32 位 Value 成员 (0x00000400) 的第 11 位。

从 Windows 7 开始受支持。

[in] MaxTextureWidthShift

一个 UINT 值,该值指定显示微型端口驱动程序支持的最大纹理宽度,其计算方式如下:

最大支持的纹理宽度 = 2 ^ (MaxTextureWidthShift + 11) 纹素。

例如,如果 MaxTextureWidthShift = 0,则支持的最大纹理宽度为 2 ^ 11 = 2048。

设置此成员等效于设置 32 位 Value 成员 (0x00000800) 的第 12 位。

从 Windows 7 开始受支持。

[in] MaxTextureHeightShift

一个 UINT 值,该值指定显示微型端口驱动程序支持的最大纹理高度,其计算方式如下:

最大支持的纹理高度 = 2 ^ (MaxTextureHeightShift + 11) 纹素。

例如,如果 MaxTextureHeightShift = 0,则支持的最大纹理高度为 2 ^ 11 = 2048。

设置此成员等效于设置 32 位 Value 成员 (0x00001000) 的第 13 位。

从 Windows 7 开始受支持。

[in] SupportAllBltRops

一个 UINT 值,该值指定显示微型端口驱动程序是否支持在 BitBlt 和 ColorFill 命令中以纯色作为模式的所有 GDI ROP3 光栅操作。 如果设置了 SupportAllBltRops ,则驱动程序支持此类光栅操作。

设置此成员等效于设置 32 位 Value 成员 (0x00002000) 的第 14 位。

从 Windows 7 开始受支持。

[in] SupportMirrorStretchBlt

一个 UINT 值,该值指定显示微型端口驱动程序是否支持在镜像模式下使用DXGK_GDIARG_STRETCHBLT结构) (拉伸 Blt 操作。 如果设置了 SupportMirrorStretchBlt ,则驱动程序支持此类操作。

设置此成员等效于设置 32 位 Value 成员 (0x00004000) 的第 15 位。

从 Windows 7 开始受支持。

[in] SupportMonoStretchBltModes

一个 UINT 值,该值指定显示微型端口驱动程序是否支持在 BLACKONWHITE 或 WHITEONBLACK 单色呈现模式下使用 DXGK_GDIARG_STRETCHBLT 结构) (拉伸 Blt 操作。 如果设置了 SupportMonoStretchBltModes ,则驱动程序支持此类操作。

设置此成员等效于设置 32 位 Value 成员 (0x00008000) 的第 16 位。

从 Windows 7 开始受支持。

[in] StagingRectStartPitchAligned

一个 UINT 值,该值指定显示微型端口驱动程序是否要求 CPU 可见暂存图面上矩形中的起点 (左上角) 进行俯仰对齐,这意味着左侧坐标为 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

此成员是保留成员,应设置为零。 将此成员设置为零等效于设置 32 位 Value 成员 (0x00080000) 的第 20 位。

从 Windows 7 开始受支持。

[in] NoTempSurfaceForClearTypeBlend

一个 UINT 值,该值指定驱动程序在处理由 DXGK_RENDERKM_COMMAND 结构的 ClearTypeBlend 成员指定的命令期间是否需要临时图面。 如果设置了 NoTempSurfaceForClearTypeBlend ,则驱动程序不需要临时图面。 在这种情况下,驱动程序将使用更少的视频内存。

将此成员设置为零等效于设置 32 位 Value 成员 (0x00100000) 的第 21 位。

从 Windows 7 开始受支持。

[in] SupportSoftwareDeviceBitmaps

此成员是保留成员,应设置为零。

设置此成员等效于设置 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

此成员是保留成员,应设置为零。

设置此成员等效于设置 32 位 Value 成员 (0x01000000) 的第 25 位。

从 Windows 8 开始支持。

[in]此成员是保留成员,应设置为零。

设置此成员等效于设置 32 位 Value 成员 (0x02000000) 的第 25 位。

从 Windows 8 开始支持。

Value

标识驱动程序的表示功能的 32 位值。

注解

显示微型端口驱动程序可以通过在 32 位 Value 成员中设置位或通过在DXGK_PRESENTATIONCAPS包含的联合中设置结构的各个成员来指定表示功能。

要求

要求
最低受支持的客户端 Windows Vista
标头 d3dkmddi.h (包括 D3dkmddi.h)

另请参阅

D3DKMDT_GDISURFACETYPE

DXGK_DRIVERCAPS

DxgkDdiQueryAdapterInfo

DxgkDdiRenderKm