游戏开发论坛

 找回密码
 立即注册
搜索
查看: 4391|回复: 3

关于D3DPOOL_SYSTEMMEM和D3DPOOL_DEFAULT,D3DPOOL_MANAGED的问题?

[复制链接]

19

主题

42

帖子

44

积分

注册会员

Rank: 2

积分
44
发表于 2008-7-25 16:40:00 | 显示全部楼层 |阅读模式
假如我的内存有128M剩余空间,显存有32M剩余空间
那么如果在不渲染的情况下用D3DPOOL_DEFAULT和D3DUSAGE_DYNAMIC创建资源,是不是能加载128M的资源?
而用D3DPOOL_MANAGED创建只能创建32M资源呢??
我的理解是D3DPOOL_DEFAULT是把资源创建在内存里,渲染的时候才加载进显存,而D3DPOOL_MANAGED是直接创建在显存来加快渲染速度.是这样吗?
那D3DPOOL_SYSTEMMEM是做什么的呢?

19

主题

638

帖子

638

积分

高级会员

Rank: 4

积分
638
发表于 2008-7-25 20:08:00 | 显示全部楼层

Re: 关于D3DPOOL_SYSTEMMEM和D3DPOOL_DEFAULT,D3DPOOL_MANAGED的问题?

MANAGED是在内存有备份的,渲染时如果显存里的副本不存在则复制到显存,能创建多少managed资源取决于有多少剩余系统内存。让DX管理显示资源的话就用managed pool。

DEFAULT是在显存或AGP内存创建的,不占系统内存(除了用作AGP的内存),但设备丢失时需要重新创建,不能想managed资源那样自动回复。由于default资源必须占用显存空间且不能交换出来,所以需要有节制的使用或者自己写资源交换系统。

SYSTEM的是只在系统内存里存在,不能用来渲染,但可以用来获取显示缓冲区的截图。

其实MANAGED可以理解为DX自动管理的由一份SYSTEM资源和一份动态按需创建的DEFAULT资源的组合。

19

主题

42

帖子

44

积分

注册会员

Rank: 2

积分
44
 楼主| 发表于 2008-7-25 21:34:00 | 显示全部楼层

Re:关于D3DPOOL_SYSTEMMEM和D3DPOOL_DEFAULT,D3DPOOL_MANAGED的问题?

那我如果想加载128M资源是用 D3DPOOL_MANAGED 吗??

19

主题

638

帖子

638

积分

高级会员

Rank: 4

积分
638
发表于 2008-7-26 08:15:00 | 显示全部楼层

Re:关于D3DPOOL_SYSTEMMEM和D3DPOOL_DEFAULT,D3DPOOL_MANAGED的问题?

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-21 22:13

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表