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
  • 107,631
  • I get this exact behaviour.

    Ubuntu 14.04 with 3.13.0-37 running on i7-4710MQ and GTX850M. I had to add ppa:xorg-edgers in order to get working bumblebee and nvidia drivers that failed to install otherwise.

    – André Medeiros Oct 17 '14 at 20:27
  • @AndréSantosdeMedeiros Did that solve the problem? If so, could you elaborate on the exact steps? – chtenb Nov 15 '14 at 19:44

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.