Most likely i am not the only one running *NIX based system and prolly not the only wine-roookie either. Therefore i thought that it might be beneficial for anyone and everyone to gather all relevant information/knowledge/experience/thoughts/etc into one place.
Therefore here is my approach/notes on running the Phoenix launcher, Korts, and BobsUIs using Ubuntu 1904, wine4.0 and the proprietary nvidia-410 driver
1. Enable 32bit libs and install wine
sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install nvidia-cuda-toolkit ocl-icd-opencl-dev
sudo apt-get install wine winetricks
2. Add packages to wineprefix.
winetricks corefonts d3dx10 d3drm vcrun2005 vcrun2008 msxml3
## Honestly i forgot the reason for vcrun and msxml3 packages, prolly Korts or BobsUI related
Now the game should be launchable. However i find it necessary to tweak it further to bring down its massive CPU-usage:
1. If you execute from your terminal or anything else that uses STDOUT i suggest disabling the verbose logging with following system-variable:
WINEDEBUG=-all
WINEDEBUG=-all,+fps # Prints FPS to stdout every second
2 . Disable CSMT in wine (using winetricks):
Depending on system/wine version/variant; CSMT might be enabled per default (spawns a child to processes opengl rendering)). - However in my situation the game.dll claims 100% CPU-usage and furtheremore the CSMT-child hogs upto 200% CPU according to htop and is more and less bringing my quadcore cpu to its knees for a slight FPS-gain.
4. Correctly enable OpenGL multithreadning by using the GPU instead of wine with following system-variable:
nvidia: '__GL_THREADED_OPTIMIZATIONS=1'
Intel-graphics with mesa driver: 'mesa_glthread=true' # I did not test this.
5. /usr/bin/nice -20
Most likely this wont give me a single frame per second, however i do like the idea that the game is prioritized above other services running.
6. Kill Phoenix.exe when game.dll is spawned to prevent further CPU-hogging
Whether or not this is still causing issues i suggest clearing phoenix.exe proces(es) when the game is launched
7. My Launch string:
WINEPREFIX=/zDATA/DAOC WINEDEBUG=-all __GL_THREADED_OPTIMIZATIONS=1 /usr/bin/nice -20 /usr/bin/wine Phoenix.exe &
This should not be considered a 'how-to' nor best-practices - This is just me sharing what i thought made sense for my own phoenix-situation so far
In order for everyone to get the best possible outcome/performance i hope that more people are willing to share any relevant information that could be useful for others.
Tak far
Therefore here is my approach/notes on running the Phoenix launcher, Korts, and BobsUIs using Ubuntu 1904, wine4.0 and the proprietary nvidia-410 driver
1. Enable 32bit libs and install wine
sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install nvidia-cuda-toolkit ocl-icd-opencl-dev
sudo apt-get install wine winetricks
2. Add packages to wineprefix.
winetricks corefonts d3dx10 d3drm vcrun2005 vcrun2008 msxml3
## Honestly i forgot the reason for vcrun and msxml3 packages, prolly Korts or BobsUI related
Now the game should be launchable. However i find it necessary to tweak it further to bring down its massive CPU-usage:
1. If you execute from your terminal or anything else that uses STDOUT i suggest disabling the verbose logging with following system-variable:
WINEDEBUG=-all
WINEDEBUG=-all,+fps # Prints FPS to stdout every second
2 . Disable CSMT in wine (using winetricks):
Depending on system/wine version/variant; CSMT might be enabled per default (spawns a child to processes opengl rendering)). - However in my situation the game.dll claims 100% CPU-usage and furtheremore the CSMT-child hogs upto 200% CPU according to htop and is more and less bringing my quadcore cpu to its knees for a slight FPS-gain.
4. Correctly enable OpenGL multithreadning by using the GPU instead of wine with following system-variable:
nvidia: '__GL_THREADED_OPTIMIZATIONS=1'
Intel-graphics with mesa driver: 'mesa_glthread=true' # I did not test this.
5. /usr/bin/nice -20
Most likely this wont give me a single frame per second, however i do like the idea that the game is prioritized above other services running.
6. Kill Phoenix.exe when game.dll is spawned to prevent further CPU-hogging
Whether or not this is still causing issues i suggest clearing phoenix.exe proces(es) when the game is launched
7. My Launch string:
WINEPREFIX=/zDATA/DAOC WINEDEBUG=-all __GL_THREADED_OPTIMIZATIONS=1 /usr/bin/nice -20 /usr/bin/wine Phoenix.exe &
This should not be considered a 'how-to' nor best-practices - This is just me sharing what i thought made sense for my own phoenix-situation so far
In order for everyone to get the best possible outcome/performance i hope that more people are willing to share any relevant information that could be useful for others.
Tak far