orbitersim / orbiter

Open-source repository of Orbiter Space Flight Simulator
MIT License
1.61k stars 220 forks source link

Consider using DXVK for running Orbiter on other operating systems #333

Open DragonSWDev opened 1 year ago

DragonSWDev commented 1 year ago

Since Orbiter switched from DX7 to DX9 I think that using DXVK for providing Vulkan rendering could be considered as alternative for writing whole new renderer from scratch. DXVK is library that implements Direct3D 9-11 on top of Vulkan and it's pretty much considered as standard for running Windows games on other operating systems (mostly Linux but I guess BSD or perhaps even macOS with MoltenVK could use that too). It is used by Valve in some of their older games (like Left 4 Dead 2) and by Proton on Steam for running Windows games on Linux (also used by Steam Deck). Initially it was Windows native DLL that was meant for running Windows software using Wine but DXVK-Native work was merged and now DXVK can be compiled as Unix native library and used for much easier porting of Direct3D code to Vulkan systems.

Compared to the total rewrite of renderer to use Vulkan or OpenGL, using DXVK would greatly reduce need for any rewrite as probably most of existing rendering code can be utilized as is.

dimitry-ishenko commented 1 year ago

FWIW I am able to run Orbiter under wine with DXVK:

export WINEPREFIX=~/Orbiter
wineboot
winetricks dxvk
cd /path/to/unzipped/Orbiter/dir
wine ./orbiter_ng.exe

Share and enjoy.