Windows 10 20H1で追加されるDirectX 12の新機能プレビューの話題

Windows 10 20H1で追加されるDirectX 12の新機能の話題が開発者向けblogで公開されています. 20H1 の段階では開発者向けプレビューということでプロダクションに使えるようになるにはもう少し時間がかかりそうですね.とはいえ,今回の追加機能は大きな機能ですので,個別の機能の説明などは今後読んでいこうと思います.

Dev Preview of New DirectX 12 Features
https://devblogs.microsoft.com/directx/dev-preview-of-new-directx-12-features/

今回追加される機能は以下の機能です.

  • DirectX Raytracing Tier 1.1
  • DirectX Mesh Shader
  • DirectX Sampler Feedback
    • Texture Streaming
    • Texture-Space Shading
  • その他

DXRに関しては,現在の命令のスーパーセットとして1.1が登場するようです.PSOに対する機能追加, ExecuteIndirectへの対応,インラインレイトレーシングといったあたりです.

続いて,新しいシェーダステージであるMesh Shaderの追加が来ています.対応GPUでは,GPUベンダーの拡張ではすでに使用可能でしたが,Direct3D12の機能に加わりました.このシェーダは既存のシェーダステージに追加ではなく,頂点シェーダ,テセレーション,ジオメトリシェーダのステージを置き換える役割を持つシェーダになります.Mesh ShaderはとAmplification Shader(省略可)とMesh Shaderの2つのシェーダを使います.

Mesh ShaderはCompute Shader追加のあとに登場したラスタライズ向けのシェーダ(レイトレーシング機能は除く)では最大の変更だと思います.

Mesh Shaderに関しては以前下記に記事を書きましたが,リリース後にまた書きたいと思います.

Sampler フィードバックは,サンプリングの操作中にテクスチャのどの領域にアクセスしたかを記録する機能だそうです.「記録」自体はフィードバックマップというマップを生成して,どのMIPレベルを使ったかが記録できるようで,テクスチャストリーミングやTexture Space Shadingに活用ができます.

個別の機能の掘り下げはおいおいしていきますが,AMDのVEGA以降やNVIDIAのRTXシリーズ以降でGPUがハードウェア機能として搭載されているが使えなかったものがAPIとしてアクセスができるようになってきています.今回の機能は来年以降の次世代のリアルタイムグラフィックスで活用されるものになっていくと思われます.