D3D和驱动对于Command Buffer的处理

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

在DirectX9的文档里面发现一篇文章(Accurately Profiling Direct3D API Calls),讲述了D3D和驱动对于Command Buffer的处理。澄清了一些原来疑惑的地方。

D3D和驱动运行在两个不同的模式下user mode和kernel mode,也就是说D3D传递Command Buffer到驱动和真正执行返回需要在这两个模式切换,这个是一个比较耗时的操作。在下面的情况下会发生这样的切换:

When one of the lock methods (IDirect3DVertexBuffer9::Lock) is called on a vertex buffer, index buffer, or texture (under certain conditions with certain flags).

When a device or vertex buffer, index buffer, or texture is created.

When a device or vertex buffer, index buffer, or texture is destroyed by the last release.

When IDirect3DDevice9::ValidateDevice is called.

When IDirect3DDevice9::Present is called.

When the command buffer fills up.

When IDirect3DQuery9::GetData is called with D3DGETDATA_FLUSH.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航