Dx10之前的DX都是一个主版本号下面有多个子版本号的情况,比如DX9.0a,b,c之类。每个版本号反映的硬件能力都不相同,甚至MS还允许在相同的主和子版本号的配置下,硬件可以有选择的不支持某些DX特性。应用程序在编程时为了分辨硬件到底支持哪些DX特效,必须向驱动程序索取硬件的支持能力,每个能力被定义为一种Capability bit。
比如ATI的x1000系列虽然号称支持DX9.0c,但是不支持VTF,因此如果应用程序在询问和VTF相关的Capbility bit的时候,ATI的显卡驱动必然返回不支持信息。NV也同样如此,虽然号称支持DX9.0c,其实一样不支持很多Cpability。
很多时候,有人把Capability bits简称为Caps。
到了DX10,MS为了解决目前Caps支持混乱的问题,一再强调其DX10版本取消Caps这个东东,大家必须支持完全相同的硬件能力。其好处时游戏开发者就无需关心因为支持的Caps不同而造成同一个游戏在不同显卡(都支持同样的Dx版本号的情况下)表现出来的性能差异甚至是特效支持差异,能更好的优化游戏性能,放心大胆的使用各种特效。
不过目前来看虽然Caps取消了,不过极有可能还会有一些类似原来Caps的东西会成为选择性支持的部件,比如RTM等等。 |