为资源指定内存类型
用户模式显示驱动程序接收有关在收到 创建资源的请求时应使用的内存类型的信息。 内存类型通过D3DDDIARG_CREATERESOURCE结构的 Pool 成员的D3DDDIPOOL_SYSTEMMEM或D3DDDIPOOL_VIDEOMEMORY枚举器分别指定为系统 内存 或视频内存。 此外,Microsoft Direct3D 运行时通过在 Pool 成员中指定以下枚举器之一,向驱动程序提供有关要使用的视频内存类型的提示:
D3DDDIPOOL_LOCALVIDMEM
运行时建议驱动程序使用本地视频内存。
D3DDDIPOOL_NONLOCALVIDMEM
运行时建议驱动程序使用非本地视频内存 (例如 AGP 内存) 。
运行时为用户模式显示驱动程序提供提示以提高性能。 例如,如果 CPU 写入到图面,运行时可能会指定D3DDDIPOOL_NONLOCALVIDMEM,使用非本地视频内存执行速度更快。
用户模式显示驱动程序通过D3DDDI_ALLOCATIONINFO的 pPrivateDriverData 成员将提示传递给显示微型端口驱动程序,以特定于供应商的方式DXGK_ALLOCATIONINFO结构。 显示微型端口驱动程序通过调用驱动程序的 DxgkDdiCreateAllocation 函数返回DXGK_ALLOCATIONINFO结构的 HintedSegmentId 成员中的段标识符,向视频内存管理器指示要使用的适当内存段。
无论用于创建资源的视频内存类型如何,用户模式显示驱动程序都不得向运行时公开任何语义差异。 也就是说,对于每种视频内存类型,驱动程序必须以相同的方式呈现信息,并且必须返回相同的返回值。