|
|
发表于 2005-4-4 18:45:00
|
显示全部楼层
Re:有个不太懂的问题!
D3DPOOL_SYSTEMMEM,D3DPOOL_DEFAULT和D3DPOOL_MANAGED这些只是runtime级别的东西,驱动和硬件是不知道这些的。
关于显存的读写问题,建议楼上几位靠猜测得出结论的朋友大概翻下PCI规范。在AGP/PCI总线上,显卡上的显存(local video memory)是可以被CPU读写的,但由于AGP总线的upload和download速度不同,upload时有AGP2X/4X/8X的概念,而download时只能按PCI总线的频率(66M)来访问数据,这也是为什么显存读慢写快的原因。另外由于PCI总线是数数据线/地址线共用的,所以不太适合随机访问,比较适合DMA方式的传输,从AGP到local video memory的blit一般都会用到DMA方式。
目前基本上所有的基于AGP总线的GPU都不能直接访问系统内存,AGP是由系统分出,然后通过GART表影射成为一连续的,GPU可访问的地址空间。所以就算在应用程序里创建system pool的texture, vb,ib,在硬件实际绘制时,驱动一定会实现把他们放在GPU可访问到的地方。 |
|