当我运行没有 primus 或 bumblebee 的 Dota 2 时,它可以运行但很慢,当我尝试使用 optirun/primusrun 运行 steam 或 dota 时,会出现错误。
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)
答案1
您无需在启动选项 ( primusrun %command%
) 中添加 primusrun 命令,而是可以primusrun
在 .steam 目录中的游戏目录中添加 shell 脚本。每个游戏似乎都有自己的 shell 脚本。例如,CS:GO 有:“ .steam/steam/SteamApps/common/Counter-Strike Global Offensive/csgo.sh
”
找到 dota2 的脚本并更改以下行:
${DEBUGGER} "${GAMEROOT}"/${GAMEEXE} "$@"
到:
primusrun ${DEBUGGER} "${GAMEROOT}"/${GAMEEXE} "$@"
您应该能够照常启动游戏,但将使用 primusrun。