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 位 成员的第一位(0x00000001)。

[in] NoOverlapScreenBlt

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

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

SupportKernelModeCommandBuffer

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

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

从 Windows 7 开始支持。

[in] NoSameBitmapAlphaBlend

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

设置此成员相当于设置 32 位 成员的第四位(0x00000008)。

从 Windows 7 开始支持。

[in] NoSameBitmapStretchBlt

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

设置此成员相当于设置 32 位 成员(0x00000010)的第五位。

从 Windows 7 开始支持。

[in] NoSameBitmapTransparentBlt

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

设置此成员相当于设置 32 位 成员的第六位(0x00000020)。

从 Windows 7 开始支持。

[in] NoSameBitmapOverlappedAlphaBlend

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

设置此成员相当于设置 32 位 成员的第七位(0x00000040)。

从 Windows 7 开始支持。

[in] NoSameBitmapOverlappedStretchBlt

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

设置此成员相当于设置 32 位 成员(0x00000080)的 8 位。

从 Windows 7 开始支持。

[in] DriverSupportsCddDwmInterop

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

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

设置此成员相当于设置 32 位 成员的第九位(0x00000100)。

从 Windows 7 开始支持。

[in] Reserved0

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

设置此成员相当于设置 32 位 成员的第十位(0x00000200)。

从 Windows 7 开始支持。

[in] AlignmentShift

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

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

从 Windows 7 开始支持。

[in] MaxTextureWidthShift

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

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

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

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

从 Windows 7 开始支持。

[in] MaxTextureHeightShift

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

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

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

设置此成员相当于设置 32 位 Value 成员(0x00001000)的第 32 位。

从 Windows 7 开始支持。

[in] SupportAllBltRops

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

设置此成员相当于设置 32 位 成员(0x00002000)的第 14 位。

从 Windows 7 开始支持。

[in] SupportMirrorStretchBlt

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

设置此成员相当于设置 32 位 成员(0x00004000)的第 15 位。

从 Windows 7 开始支持。

[in] SupportMonoStretchBltModes

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

设置此成员相当于设置 32 位 成员(0x00008000)的第 16 位。

从 Windows 7 开始支持。

[in] StagingRectStartPitchAligned

一个 UINT 值,该值指定显示微型端口驱动程序是否需要 CPU 可见暂存图面上矩形中的起始点(左上点)进行间距对齐,这意味着左坐标为 0。 如果设置了 AlignmentShift,则矩形的左上角点是间距对齐的。

设置此成员等效于设置 32 位 成员(0x00010000)的第 17 位。

从 Windows 7 开始支持。

[in] NoSameBitmapBitBlt

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

设置此成员相当于设置 32 位 成员的第 18 位(0x00020000)。

从 Windows 7 开始支持。

[in] NoSameBitmapOverlappedBitBlt

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

设置此成员相当于设置 32 位 成员的第 19 位(0x00040000)。

从 Windows 7 开始支持。

[in] Reserved1

此成员是保留的,应设置为零。 将此成员设置为零相当于将 32 位 成员(0x00080000)的第二十位设置为 32 位。

从 Windows 7 开始支持。

[in] NoTempSurfaceForClearTypeBlend

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

将此成员设置为零相当于将 32 位 成员(0x00100000)的 21 位设置为 21 位。

从 Windows 7 开始支持。

[in] SupportSoftwareDeviceBitmaps

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

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

从 Windows 8 开始支持。

[in] NoCacheCoherentApertureMemory

一个 UINT 值,该值指定驱动程序不支持缓存一致的光圈内存。

设置此成员相当于设置 32 位 成员(0x00400000)的 23 位。

从 Windows 8 开始支持。

[in] SupportLinearHeap

驱动程序支持从暂存图面进行线性堆分配。

设置此成员相当于设置 32 位 成员(0x00800000)的第 24 位。

从 Windows 8 开始支持。

[in] Reserved

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

设置此成员相当于设置 32 位 成员(0x01000000)的 25 位。

从 Windows 8 开始支持。

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

设置此成员相当于设置 32 位 成员(0x02000000)的 25 位。

从 Windows 8 开始支持。

Value

一个 32 位值,用于标识驱动程序的演示功能。

言论

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

要求

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

另请参阅

D3DKMDT_GDISURFACETYPE

DXGK_DRIVERCAPS

DxgkDdiQueryAdapterInfo

DxgkDdiRenderKm