1

When I run Dota 2 without primus or bumblebee it works but slow, the moment I try to run steam or dota with optirun/ primusrun I get errors.

The Primusrun error:
    Game update: AppID 570 "Dota 2", ProcID 4131, IP 0.0.0.0:0
ERROR: ld.so: object '/home/aleks/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.
ERROR: ld.so: object '/home/aleks/.local/share/Steam/ubuntu12_32/gameoverlayrenderer.so' from LD_PRELOAD cannot be preloaded (wrong ELF class: ELFCLASS32): ignored.

malloc: unknown:0: assertion botched
free: called with unallocated block argument
last command: (null)
Aborting...Aborted (core dumped)
Game removed: AppID 570 "Dota 2", ProcID 4131 
Installing breakpad exception handler for appid(steam)/version(1411443970)     
Mitch
  • 109,787

1 Answers1

2

Instead of adding the primusrun command in Launch Options (primusrun %command%) you can add primusrun in a shell script in the game directory in the .steam-directory. Each game seems to have its own shell script. CS:GO for instance has: ".steam/steam/SteamApps/common/Counter-Strike Global Offensive/csgo.sh"

Find the script for dota2 and change the line:

${DEBUGGER} "${GAMEROOT}"/${GAMEEXE} "$@"

to:

primusrun ${DEBUGGER} "${GAMEROOT}"/${GAMEEXE} "$@"

and you should be able to launch the game as usual, but primusrun will be used.