平民程序 - linghuye's blog

天下风云出我辈,一入江湖岁月催。皇图霸业谈笑中,不胜人生一场醉。提剑跨骑挥鬼雨,白骨如山鸟惊飞。尘事如潮人如水,只笑江湖几人回。

随笔 - 221, 文章 - 0, 评论 - 680, 引用 - 0
数据加载中……

多线程,害死人.

DirectX的多线程问题,DirectX使用了D3DCREATE_MULTITHREADED标志真的就安全了吗,怀疑,深深的怀疑.

posted on 2007-06-13 17:50 linghuye 阅读(4569) 评论(12)  编辑 收藏 引用 所属分类: 3D图形学研究

评论

# re: 多线程,害死人.  回复  更多评论   

D3DCREATE_MULTITHREADED不是一点费,建议把对D3D资源访问操作统一放在一个线程中,就不会有问题了
2007-06-21 09:17 | rhett

# re: 多线程,害死人.  回复  更多评论   

Coding For Multiple Cores on Xbox 360 and Microsoft Windows
By Bruce Dawson, Software Design Engineer

Microsoft Game Technology Group

August 2006


Avoid using the D3DCREATE_MULTITHREADED flag, which is sometimes used to allow rendering on one thread and resource creation on other threads. Specifying this flag forces D3D to spend a significant amount of time on synchronization, thus slowing down the render thread.
2007-06-25 10:06 | jk

# re: 多线程,害死人.  回复  更多评论   

如果不用D3DCREATE_MULTITHREADED,就不能在其他线程中创建D3D Resource,如VB/IB/Texture。对于室外大场景,不用多线程创建资源是不是会非常的不流畅?
2007-07-06 10:07 | Jackwolf

# re: 多线程,害死人.  回复  更多评论   

D3DCREATE_MULTITHREADED是不好的,然历史累积原因,要改亦不可能了.
毕竟瓶颈是在IO,而不是在3D资源的创建上。
2007-07-06 18:16 | linghuye

# re: 多线程,害死人.  回复  更多评论   

这里随便YY一下。WOW里面有没有使用D3DCREATE_MULTITHREADED?(如果使用DX API的话) ^_^ ?
我觉得是使用的,比如当角色和无间特别多的时候,会看到模型的创建是逐渐显示的。
2007-07-09 18:36 | Jackwolf

# re: 多线程,害死人.  回复  更多评论   

这个好麻烦
2007-07-11 13:27 | .net编程

# re: 多线程,害死人.  回复  更多评论   

WoW 没有使用 D3DCREATE_MULTITHREADED
在我的机器上面使用的是
D3DCREATE_FPU_PRESERVE|D3DCREATE_SOFTWARE_VERTEXPROCESSING
2007-07-26 15:48 | kkok

# re: 多线程,害死人.  回复  更多评论   

To kkok,
你是如何得到wow在创建device的时候的参数的?有哪些第三方工具可以获得?
另外D3DCREATE_SOFTWARE_VERTEXPROCESSING 难道你的机器显卡不支持Shader?
2007-07-31 22:29 | Jackwolf

# re: 多线程,害死人.  回复  更多评论   

DirextX SDK 自带的 PIX For Windows就可以看得到了

我的机器支持Shader, 但是不支持D3DCREATE_HARDWARE_VERTEXPROCESSING

VertexShader估计是Intel的驱动用软件模拟的
2007-08-06 15:24 | kkok

# re: 多线程,害死人.  回复  更多评论   

没有..
2007-12-19 10:31 | 搬场

# re: 多线程,害死人.  回复  更多评论   

我在OPENGL中关于这个大量地图LOD方式加载苦闷了很久,目前仍然在努力中,因为OPENGL好像一个RC只能同时被一个线程使用,所以,多线程,害死人呀
2008-01-21 16:30 | 李宁

# re: 多线程,害死人.  回复  更多评论   

呵呵,sqlite的作者有句话,thread is evil
2011-06-08 08:54 | 罗展昭
只有注册用户登录后才能发表评论。