AGP 支持

Microsoft DirectDraw 将 加速图形端口 (AGP) 内存 视为显示内存的子类。 此内存类型称为 非本地显示内存。 从 DirectDraw 和 DirectDraw 驱动程序的角度来看,术语 AGP 内存和非本地显示内存是同义词。

AGP 内存被视为显示内存的纯子类。 也就是说,如果驱动程序指示它支持 AGP 内存,在大多数情况下,它对于本地和非本地显示内存必须具有相同的功能,尽管允许性能差异。 例外情况是,如果设置了DDCAPS2_NONLOCALVIDMEMCAPS标志,在这种情况下,非本地显示内存的 blt 功能可能与本地显示内存不同。

例如,如果驱动程序指出它可以从显示内存中纹理,则必须能够从本地和非本地显示内存进行纹理处理。 Blitting 的处理方式类似。 导出源颜色键 blt 功能的驱动程序必须能够对非本地显示内存执行源颜色键的 blt。 此规则的一个例外是,可以阻止在非本地显示内存中分配某些表面类型。 例如,可以使用堆来防止在 AGP 内存中分配覆盖图面。

由于 AGP 内存被视为显示内存的子类,因此 DirectDraw 没有单独的 AGP 内存显示驱动程序入口点集。 现有的显示驱动程序调用同时用于 AGP 图面和本地显示内存图面。 AGP 兼容的驱动程序必须检查传入图面,以查看它们是否位于非本地或本地显示内存中,并采取相应的操作。 从系统到 AGP (,反之亦然,) 正常通过 DirectDraw 仿真层,除非驱动程序支持系统到显示内存 (在这种情况下,它必须支持系统到 AGP 传输以及) 。

驱动程序应尽可能多地设置DDCAPS2_TEXMANINNONLOCALVIDMEM标志,因为在这种情况下,Direct3D 纹理管理器会将图面的视频内存副本的后备图像保留 (而不是系统内存) 。

本部分的其余部分讨论修改现有驱动程序以使用 DirectDraw 非本地显示内存功能支持 AGP 内存所需的步骤。