Wine プロジェクトは、Vulkan グラフィックス API へのブロードキャスト呼び出しを通じて動作する Direct3D 1.7 の実装を備えた vkd3d 12 パッケージのリリースを公開しました。 このパッケージには、Direct3D 3 の実装を備えた libvkd12d ライブラリ、シェーダー モデル 3 および 4 のトランスレーターを備えた libvkd5d-shader、Direct3D 3 アプリケーションの移植を簡素化する機能を備えた libvkd12d-utils のほか、ポートを含む一連のデモ サンプルが含まれています。 glxgears を Direct3D 12 に変換します。プロジェクト コードは、LGPLv2.1 に基づいてライセンス供与されています。
libvkd3d ライブラリは、グラフィックスとコンピューティング機能、キューとコマンド リスト、ハンドルとヒープ ハンドル、ルート署名、アウトオブオーダー アクセス、サンプラー、コマンド シグネチャ、ルート定数、間接レンダリング、クリア メソッドなど、ほとんどの Direct3D 12 機能をサポートします *( ) と Copy*()。 libvkd3d-shader では、シェーダ モデル 4 および 5 のバイトコードの中間 SPIR-V 表現への変換が実装されています。 頂点、ピクセル、テッセレーション、計算および単純なジオメトリ シェーダ、ルート署名のシリアル化と逆シリアル化をサポートします。 シェーダー命令には、算術演算、アトミックおよびビット演算、比較およびデータ フロー制御演算子、サンプル、収集およびロード命令、順序なしアクセス操作 (UAV、順序なしアクセス ビュー) が含まれます。
収録曲:
- HLSL (高レベル シェーダー言語) のシェーダー コンパイラーを改善する作業が続けられました。
- カスタム関数を呼び出し、配列をカスタム関数のパラメーターとして使用する機能が追加されました。
- SV_DispatchThreadID、SV_GroupID、SV_GroupThreadID パラメーターのサポートが追加されました。
- 組み込み関数 all()、 distance()、exp()、exp2()、frac()、lit()、reflect()、sin()、cos()、smoothstep()、sqrt()、rsqrt を追加しました() 、ステップ()、トランスポーズ()。
- 「min16float」などの低精度浮動小数点型の初期サポートが追加されました。
- Direct3D 1/2/3 シェーダー モデル プロファイルのサポートが大幅に改善されました。
- DXBC バイナリ データの解析 (vkd3d_shader_parse_dxbc) とシリアル化 (vkd3d_shader_serialize_dxbc) のためのパブリック API を追加しました。
出所: オープンネット.ru