转载请注明出处为KlayGE游戏引擎,本文的永久链接为http://www.klayge.org/?p=2548

昨天微软发布了Windows 8.1 Preview,其中一个没怎么被发现的新功能是,DirectX 11.2!上一次DirectX出现.2的版本号还是在8.x时代吧。DirectX 11.2引入了以下新功能:

  • HLSL shader linking:Shader可以分成小块,分开编译,连接后成为完整的shader。给模块替换提供了方便。甚至,在11.2中还提供了一个叫Function linking graph的功能,可以像offline shader那样,构建一个graph,每个节点是一小段shader。最后才link了送给GPU。
  • Inbox HLSL compiler:Win8的时候,shader编译器是个独立的dll,在metro里面不允许调用,得离线编译。现在编译器又回来了,D3DCompile都可以在metro和desktop里使用。
  • GPU overlay support:直接支持在3D渲染的场景之上再叠加UI之类的层。这样可以用较小分辨率渲染场景,用完整分辨率渲染UI和文字。
  • DirectX tiled resources:可以访问到tile形式的纹理等资源,可以用于virtual texturing。
  • Direct3D low-latency presentation API:新的swap方式,降低延迟。
  • DXGI Trim API and map default buffer:加了个Trim(),可以释放显存。并且现在用default标志建立出来的buffer也可以直接map了(需要硬件支持)。
  • Frame buffer scaling:通过GPU来自动放缩frame buffer,类似于console上常见的放缩。
  • Multithreading with SurfaceImageSource:XAML里的SurfaceImageSource可以多线程访问。
  • Interactive Microsoft DirectX composition of XAML visual elements:改进D3D和XAML元素的互操作能力。
  • Direct2D batching with SurfaceImageSource:简化D2D和SurfaceImageSource的互操作。

详细内容在这里