1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

WINE 6.0 で Vulkan ray tracing を動かすメモ

Last updated at Posted at 2021-05-17

背景

Linux メインで Vulkan ray tracing 開発している.

Windows でも動作するようにしたい(そのうちデバッグで Visual Studio 使いたいとか, Visual Studio + NVSight とかでパフォーマンス解析できるように)

しかし Windows で開発するのに Windows 機立ち上げたりとか RDP ログインしてとかめんどい...

Linux だけで Vulkan ray tracing 開発完結したい.

環境

もともとそれなりに Vulkan 動きますが, wine 6.0 あたりでよりきちんと Vulkan サポートされたっぽいです.

  • Ubuntu 20.04 x64 64bit
  • Wine 6.0
    • winecfg で Windows バージョン 10 に設定
  • GPU: NVIDIA A6000(driver version 465.19) (or KHR ray tracing 拡張対応している GPU)

で動作確認しました.

vulkaninfo

まずは vulkaninfo.exe 動かして環境みてみます.

...
        VK_KHR_pipeline_library                   : extension revision 1
        VK_KHR_push_descriptor                    : extension revision 2
        VK_KHR_ray_query                          : extension revision 1
        VK_KHR_ray_tracing_pipeline               : extension revision 1
        VK_KHR_relaxed_block_layout               : extension revision 1
        VK_KHR_sampler_mirror_clamp_to_edge       : extension revision 3
...

raytrace 拡張あります!

ただ vulkaninfo.exe は完走せずに途中で 00f4:fixme:console:GetConsoleProcessList で stuck してしまいました.

Sascha 先生の Vulkan サンプル動かしてみます.

llvm-mingw or clang-cl あたりで Linux クロスコンパイルするのが理想ですが, めんどそうなのでとりあえずビルドは Windows(Visual Studio)でやって, ファイルだけ Linux にコピって動かしました.

Voila!

(想定通り) Wine で動かすことによるパフォーマンスの低下は特にありませんでした.

Happy Vulkan ray tracing development!

TODO

  • llvm-mingw, clang-cl で Linux クロスコンパイルする仕組みを確立する(Vulkan API だけ使う場合は C API で特に考慮することはないのだが, Vulkan-loaders(インターフェイスは C だが内部実装は C++) など, C++(STL) を使う周辺のライブラリと組み合わせるときに考慮が必要.
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?