Graphics and desktop

Windows through Wayland, Direct3D through Vulkan.

Raven draws application windows on your Wayland desktop and runs Direct3D on Vulkan: DXVK for Direct3D 8 to 11, vkd3d-proton for Direct3D 12.

Open a window

build/native/raven --run-process --execution=native \
  --timeout-ms=600000 --desktop=wayland /path/to/application.exe

Run it from a terminal in your desktop session, so WAYLAND_DISPLAY and XDG_RUNTIME_DIR point at it.

Direct3D coverage

API Tested
Direct3D 8 and 9 Presentation, including 32-bit programs
Direct3D 11 Drawing, deferred contexts, every shader stage, textures, compute, MSAA and presentation through DXVK
Direct3D 12 Devices, drawing, bundles, compute, textures, shader stages and ray tracing through vkd3d-proton

Get the components

The pinned DXVK and vkd3d-proton releases are listed in native/graphics/backends.json. The provisioning script downloads them, checks their hashes and extracts the DLLs:

python3 scripts/provision-graphics.py --destination "$HOME/.local/share/raven-components/graphics"

To enable the corresponding graphics tests, point CMake at them and rebuild:

cmake -S . -B build -DCMAKE_BUILD_TYPE=RelWithDebInfo \
  -DRAVEN_DXVK_PE64_DIR="$HOME/.local/share/raven-components/graphics/dxvk/pe64" \
  -DRAVEN_DXVK_PE32_DIR="$HOME/.local/share/raven-components/graphics/dxvk/pe32" \
  -DRAVEN_VKD3D_PE64_DIR="$HOME/.local/share/raven-components/graphics/vkd3d-proton/pe64"
cmake --build build -j2

These CMake variables select DLLs for the tests. They do not install DXVK beside the runtime or set the DLL search path for applications.

For a 64-bit Direct3D 8, 9 or 11 application, set the runtime path in the terminal where you launch it:

export RAVEN_D3D_DIRECTORY="$HOME/.local/share/raven-components/graphics/dxvk/pe64"
build/native/raven --run-process --execution=native \
  --timeout-ms=600000 --desktop=wayland /path/to/application.exe

Use graphics/dxvk/pe32 for a 32-bit application. The DLL architecture must match the program. RAVEN_D3D_DIRECTORY covers DXVK libraries; it does not select vkd3d-proton’s Direct3D 12 DLLs. Those must be available to the application’s DLL loader, for example beside its executable, together with the matching DXVK dxgi.dll.

These are the Windows-side DLLs; your Vulkan driver stays the one your distribution ships.

Text

Text goes through FreeType and a CPU build of Skia, with the Liberation fonts standing in for Arial, Times New Roman and Courier New, and your host fonts as fallback. If you add fonts after a prefix was created, open a fresh prefix to pick them up.

Performance

The benchmarks page reports preliminary comparisons with Wine 11 and Soda on start-up and a Direct3D 11 frame test, with a ClassiCube comparison under review. Those measurements use Mesa’s software Vulkan driver. Hardware GPU performance has not been established by these benchmarks.