转载请注明出处为KlayGE游戏引擎,本文的永久链接为http://www.klayge.org/?p=1437
Windows 8 developer preview不但向开发者提供了Win8和VS2011的预览,还在其中隐藏了之前没有宣布过的Direct3D 11.1。现在,D3D11.1的初期文档也出现在MSDN中,让我们来看看D3D11.1提供了哪些新特性。
已经添加入D3D11.1的新功能有:
- Shader tracing。在API层面提供更多调试shader的能力。
- Direct3D device sharing。让D3D 10的API和D3D 11的API可以共享同一个渲染设备。
- Check support of new Direct3D 11.1 features and formats。更新了ID3D11Device::CheckFeatureSupport和ID3D11Device::CheckFormatSupport,以支持D3D 11.1和DXGI 1.2提供的新格式。
- Create larger constant buffers than a shader can access。可以建立超过64K的cbuffer,在使用的时候选择一个区间让shader访问。
- Use logical operations in a render target。OpenGL和D3D7都提供了逻辑操作(and、or、xor等方式进行alpha blending),但在后来的D3D中删掉了(可以通过比较复杂的方式模拟出来)。现在D3D 11.1再次原生地提供了逻辑操作的blending方式。
- Force the sample count to create a rasterizer state。在建立rasterizer state对象的时候可以强制设置采样数。
- Process video resources with shaders。在shader里处理视频的能力。
- Change subresources with new copy options。取消了CopySubresourceRegion和UpdateSubresource对源资源和目标资源不允许相同和重叠的要求。
- Discard resources and resource views。通知GPU某个资源或view已经不再使用。
- Support a larger number of UAVs。支持更大量UAV。
- Bind a subrange of a constant buffer to a shader。把cbuffer的一个区间绑定给shader。
- Retrieve the subrange of a constant buffer that is bound to a shader。获取一个cbuffer被绑定在shader的区间。
- Clear all or part of a resource view。清除所有或部分resource view,填充一个指定的颜色。(不用再从CPU端填充,或者通过Clear RTV来填充)
- Map SRVs of dynamic buffers with NO_OVERWRITE。所有动态buffer的SRV都可以用NO_OVERWRITE来Map,之前只允许在VB和IB上做这件事情。
- Use UAVs at every pipeline stage。流水线的所有阶段都可以用UAV,以前限制为CS和PS可用而已。
更多细节可以在这里找到。这些是已经添加到Win8开发者预览版中的D3D 11.1的新特性,不排除在D3D 11.1正式发布之前还增加新特性的可能性。
Comments