D3D9 vs D3D1x
2009-04-12 23:04
134 查看
KlayGE 3.8.0开始正式支持D3D10和D3D11,可以在不改任何上层代码的情况下切换D3D9,D3D10,D3D11和OpenGL四个渲染插件。于 是,这给了我们一个比较性能的机会。本文着重比较了D3D9和D3D10两个插件的性能。由于目前(2009年4月)市面上还没有支持D3D11的硬 件,D3D11插件只能通过D3D11 Level 10在支持D3D10的硬件上执行的,性能也就和D3D10几乎相同,遂不必多讨论。
表1列举了KlayGE现有例子在D3D9和D3D10两插件下得到的fps数据,并由此计算出D3D10的提升。
运行的平台:Pentium Core2 2.3GHz、4GB DDR2-800、Geforce 8800GT/185.66驱动,操作系统:Vista SP1 64bit。
表1. 两插件fps对比
从表1可以看出,在绝大部分情况下,如果算法和效果相同,D3D10的性能要高于D3D9。可见,得益于API设计的巨大进步,D3D10的runtime/driver性能优于D3D9。
由此可以看出,在Vista下使用D3D10确实有利于性能的提高。在新硬件上,D3D1x更能发挥出硬件的能力。
在未来的KlayGE中,D3D9和D3D10插件都会被抛弃,只留下D3D11一个D3D插件,通过D3D11 Level 9或D3D11 Level 10来在不支持D3D11的硬件上渲染。对于不支持D3D11的Windows XP,可以使用OpenGL插件。
表1列举了KlayGE现有例子在D3D9和D3D10两插件下得到的fps数据,并由此计算出D3D10的提升。
运行的平台:Pentium Core2 2.3GHz、4GB DDR2-800、Geforce 8800GT/185.66驱动,操作系统:Vista SP1 64bit。
例子 | D3D9 (fps) | D3D10 (fps) | D3D10的提升 |
Ascii Arts | 1784 | 1828 | 2.47% |
Cartoon | 961 | 979 | 1.87% |
Deferred Shading | 150 | 147 | -2.00% |
Depth of Field | 152 | 152 | 0.00% |
Depth Peeling | 406 | 350 | -13.79% |
Distance Mapping | 1517 | 1533 | 1.05% |
Fractal | 1425 | 1467 | 2.95% |
GPU Particle System | 57 | 62 | 8.77% |
Instancing | 477 | 498 | 4.40% |
Model Viewer | 1979 | 2271 | 14.75% |
Parallax | 3066 | 3219 | 4.99% |
Particle System | 705 | 734 | 4.11% |
Procedural Texture | 852 | 1138 | 33.57% |
Refract | 712 | 713 | 0.14% |
Shadow Cubemap | 1033 | 1061 | 2.71% |
Text | 863 | 910 | 5.45% |
Vertex Displacement | 3734 | 4012 | 7.45% |
Video Texture | 724 | 711 | -1.80% |
由此可以看出,在Vista下使用D3D10确实有利于性能的提高。在新硬件上,D3D1x更能发挥出硬件的能力。
在未来的KlayGE中,D3D9和D3D10插件都会被抛弃,只留下D3D11一个D3D插件,通过D3D11 Level 9或D3D11 Level 10来在不支持D3D11的硬件上渲染。对于不支持D3D11的Windows XP,可以使用OpenGL插件。
相关文章推荐
- d3d transform matrix 和 vs 的一点优化
- OpenGL vs D3D
- codevs 2977 二叉堆练习1x
- vs配置D3D开发环境
- VS2015中设置D3D12根签名HLSL文件自动编译属性时的注意事项
- D3D9 vs D3D1x
- d3dUtility.cpp 统一回答:在vs2015中调试D3D9龙书 代码示例:4.4 d3dUtility.cpp
- 怪异的比较:ASP ASPX VS PHP VS JSP
- 解决Protocol major versions differ: 2 vs. 1
- VS项目配置中 C++目录--包含目录(or库目录继承值的删除问题)
- 还在抱怨JS文件里没有智能提示吗, VS10以及以上都可以 .NET
- VS2013和VS2015中MVC 区域路由匹配顺序相反
- 利用VS编译生成事件实现代码及时提交到Git
- 在VS里编写BDC Xml文件时,如何实现IntelliSense能力?
- pjmedia MIPS test - gcc vs icc
- 【java项目实战】代理模式(Proxy Pattern),静态代理 VS 动态代理
- vs2013安装过程及使用心得
- VS2013+Qt5.6.0配置教程
- VS比较好用的扩展插件总结
- Readfile vs include 性能比较