Wine プロジェクトが Direct3D 1.3 実装を備えた Vkd3d 12 をリリース

3 年半の開発を経て、Wine プロジェクトは、Vulkan グラフィックス API へのブロードキャスト呼び出しを通じて機能する Direct1.3D 3 実装を備えた vkd12d 3 パッケージのリリースを公開しました。このパッケージには、Direct3D 12 の実装を備えた libvkd3d ライブラリ、シェーダー モデル 4 および 5 のトランスレーターを備えた libvkd3d-shader、Direct3D 12 アプリケーションの移植を簡素化する機能を備えた libvkd3d-utils のほか、ポートを含む一連のデモ サンプルが含まれています。 glxgears を Direct12D 2.1 に変換します。プロジェクト コードは、LGPLvXNUMX に基づいてライセンス供与されています。

libvkd3d ライブラリは、グラフィックスとコンピューティング機能、キューとコマンド リスト、ハンドルとヒープ ハンドル、ルート署名、アウトオブオーダー アクセス、サンプラー、コマンド シグネチャ、ルート定数、間接レンダリング、クリア メソッドなど、ほとんどの Direct3D 12 機能をサポートします *( ) と Copy*()。

libvkd3d-shader では、シェーダ モデル 4 および 5 のバイトコードの中間 SPIR-V 表現への変換が実装されています。 頂点、ピクセル、テッセレーション、計算および単純なジオメトリ シェーダ、ルート署名のシリアル化と逆シリアル化がサポートされています。 シェーダー命令には、算術演算、アトミックおよびビット演算、比較およびデータ フロー制御演算子、サンプル、収集およびロード命令、順序なしアクセス操作 (UAV、順序なしアクセス ビュー) が含まれます。

Vkd3d 1.3 の最も重要な革新は次のとおりです。

  • DirectX 9.0 以降で提供される HLSL (高レベル シェーダー言語) でシェーダーをコンパイルおよび前処理するための初期サポートが追加されました。
  • 5.1 シェーダー モデルで定義された記述子の配列のサポートが追加されました。
  • シェーダーでの倍精度浮動小数点演算、テッセレーション シェーダーの間接アドレス指定、シェーダーからのステンシルのエクスポート、「正確な」シェーダー モディファイア、およびメモリ リソースへのグローバル バリアのサポートを提供します。
  • Direct3D シェーダをバイトコードからアセンブリ表現に逆アセンブルする機能が実装されました。
  • Direct3D 3、1、および 2 シェーダー モデルで使用される古い Direct3D バイトコード形式の解析のサポートが追加されました。
  • libvkd3d は、ルート署名、アウトオブオーダー ビュー カウンター、出力用の論理マージ オペレーター、mirror_once テクスチャ アドレッシング モードなどの Direct3D 12 機能を追加します。 vkd3d_host_time_domain_info 構造体を追加しました。

出所: オープンネット.ru

コメントを追加します