游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3149|回复: 11

Direct3D恢复设备,在使用Debug版本的情况下恢复成功,在

[复制链接]

34

主题

657

帖子

672

积分

高级会员

Rank: 4

积分
672
发表于 2009-8-19 18:29:00 | 显示全部楼层 |阅读模式
Direct3D恢复设备,在使用Debug版本Direct3D的情况下恢复成功,在使用Retail版本Direct3D的情况下恢复失败,这是为什么呢,请有经验的回答一下,谢谢。

59

主题

404

帖子

404

积分

中级会员

Rank: 3Rank: 3

积分
404
发表于 2009-8-19 19:00:00 | 显示全部楼层

Re:Direct3D恢复设备,在使用Debug版本的情况下恢复成功,在

Retail? 应该是Release吧

59

主题

404

帖子

404

积分

中级会员

Rank: 3Rank: 3

积分
404
发表于 2009-8-19 19:00:00 | 显示全部楼层

Re:Direct3D恢复设备,在使用Debug版本的情况下恢复成功,在

一般这种情况导致的原因是有变量未初始化

2

主题

123

帖子

123

积分

注册会员

Rank: 2

积分
123
发表于 2009-8-19 20:14:00 | 显示全部楼层

Re:Direct3D恢复设备,在使用Debug版本的情况下恢复成功,在

LZ指的是DX的Retail版本

莫非是多线程的问题?

34

主题

657

帖子

672

积分

高级会员

Rank: 4

积分
672
 楼主| 发表于 2009-8-20 08:46:00 | 显示全部楼层

Re:Direct3D恢复设备,在使用Debug版本的情况下恢复成功,在

D3D设备是多线程的。

34

主题

657

帖子

672

积分

高级会员

Rank: 4

积分
672
 楼主| 发表于 2009-8-20 08:47:00 | 显示全部楼层

Re:Direct3D恢复设备,在使用Debug版本的情况下恢复成功,在

建立设备时用的标志:D3DCREATE_HARDWARE_VERTEXPROCESSING | D3DCREATE_MULTITHREADED

59

主题

404

帖子

404

积分

中级会员

Rank: 3Rank: 3

积分
404
发表于 2009-8-20 09:40:00 | 显示全部楼层

Re:Direct3D恢复设备,在使用Debug版本的情况下恢复成功,在

D3DCREATE_MULTITHREADED 指出程序要求Direct3D采用多线程,会使Direct3D频繁读取公共部分,降低性能。

34

主题

657

帖子

672

积分

高级会员

Rank: 4

积分
672
 楼主| 发表于 2009-8-20 09:43:00 | 显示全部楼层

Re:Direct3D恢复设备,在使用Debug版本的情况下恢复成功,在

这个跟无法恢复设备没什么关系,我去掉这个标志也一样无法恢复。

2

主题

123

帖子

123

积分

注册会员

Rank: 2

积分
123
发表于 2009-8-20 11:03:00 | 显示全部楼层

Re:Direct3D恢复设备,在使用Debug版本的情况下恢复成功,在

用debug版,选上maximum validation,调试信息详细度调到最高,然后运行看dx输出的调试信息,应该有相关的提示。反正最后只有两种可能,有非managed资源没释放或者reset参数不对。如果用了stateblock的话,注意stateblock也是需要释放的。

34

主题

657

帖子

672

积分

高级会员

Rank: 4

积分
672
 楼主| 发表于 2009-8-20 11:24:00 | 显示全部楼层

Re:Direct3D恢复设备,在使用Debug版本的情况下恢复成功,在

Reset参数就是建立设备时的参数,应该是对的,StateBlock也释放了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-8-7 16:32

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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