验证索引值
无论是否执行索引验证,用户模式显示驱动程序都可以通过“专为 Microsoft Windows 设计”进行硬件徽标测试。 但是,为了确保驱动程序适用于可能传递无效索引的 Microsoft DirectX 应用程序,用户模式显示驱动程序应执行索引验证。
应考虑以下事项:
DirectX 8.0 和 DirectX 9.0 应用程序在使用顶点缓冲区呈现时,可以传递步幅值 0。 在这种情况下,只应引用顶点 0。 在调用用户模式显示驱动程序的 SetStreamSource 函数时,在 D3DDDIARG_SETSTREAMSOURCE 结构的 Stride 成员中设置步幅值。
调用驱动程序的 SetStreamSourceUM 函数不包括顶点数据的大小。 也就是说,未指定提供 SetStreamSourceUM 的 pUMBuffer 参数指向的顶点数据的用户内存缓冲区的大小。
在调用驱动程序的 DrawIndexedPrimitive 或 DrawIndexedPrimitive2 函数时,永远不会将 D3DDDIARG_DRAWINDEXEDPRIMITIVE 或 D3DDDIARG_DRAWINDEXEDPRIMITIVE2 结构的 NumVertices 成员设置为 0。 驱动程序应将允许的最大索引设置为 (NumVertices - 1) 。