Posso responder à sua segunda pergunta: O que posso fazer para contornar isso?
O que queremos fazer é rodar o Steam através do PlayonLinux com optirun / primusrun como um prefixo. Todos os jogos que você executa no Steam também serão iniciados automaticamente assim.
Temos que ir para /usr/share/playonlinux/lib/
Existe um arquivo chamado wine.lib
que editaremos.
Importante: crie um backup desse arquivo apenas para o caso de algo quebrar.
Dentro do arquivo, existe uma função chamada POL_Wine ()
.
Basicamente, o que queremos mudar dentro desta função é a forma como o vinho é executado toda vez que você inicia um aplicativo através do PlayonLinux.
Então, dentro desta função você tem que encontrar todas as partes onde o vinho é chamado. Procure wine "$@"
no arquivo com ctrl + F no seu editor de texto favorito. No meu arquivo havia 3 ocorrências de wine "$@"
.
Antes de cada ocorrência, acabei de adicionar primusrun
, então parece primusrun wine "$@"
. Você pode experimentar optirun
ou optirun -b primus
, mas primusrun
é o que funciona para mim.
É assim que a seção que eu editei parece agora:
if [ "$POL_OS" = "Linux" ] || [ "$POL_OS" = "Mac" ];
then
if [ "$LOGFILE" = "/dev/null" ]; then
$BEFORE_WINE $(POL_Config_Read BEFORE_WINE) primusrun wine "$@" 2> >(grep -v menubuilder --line-buffered | tee -a "$WINEPREFIX/playonlinux.log" >&2) > >(tee -a "$WINEPREFIX/playonlinux.log")
errors=$?
else
$BEFORE_WINE $(POL_Config_Read BEFORE_WINE) primusrun wine "$@" 2> >(grep -v menubuilder --line-buffered | tee -a "$LOGFILE" "$WINEPREFIX/playonlinux.log" >&2) > >(tee -a "$LOGFILE" "$WINEPREFIX/playonlinux.log")
errors=$?
fi
else
# FIXME
$BEFORE_WINE $(POL_Config_Read BEFORE_WINE) primusrun wine "$@" 2> "$WINEPREFIX/playonlinux.log" > "$WINEPREFIX/playonlinux.log"
errors=$?
fi
Salve o arquivo e inicie o PlayonLinux normalmente.
Você pode verificar a qualquer momento se sua placa de vídeo discreta é usada ou não, executando o seguinte comando em um terminal:
optirun --status
Quando NÃO é usado, a saída é assim:
Bumblebee status: Ready (3.2.1). X inactive. Discrete video card is off.
Selecione o Steam em seus aplicativos do PlayonLinux e execute-o. Quando for iniciado, verifique com optirun --status
para ver se o seu cartão discreto está ativado.
Minha saída ficou assim:
Bumblebee status: Ready (3.2.1). X is PID 26685, 1 applications using bumblebeed.
Ótimo! O Steam agora está usando seu cartão discreto!
Agora, vamos tentar iniciar um jogo no Steam. Escolha um e inicie-o normalmente (não é necessário mexer nas opções de lançamento no Steam).
Verifique novamente com optirun --status
. A saída deve ficar assim:
Bumblebee status: Ready (3.2.1). X is PID 26685, 2 applications using bumblebeed.
Wondeful! O jogo que você lançou também está usando seu cartão discreto!
A beleza disso é que funciona com qualquer aplicativo que você execute no PlayonLinux, não apenas no Steam.
Para reverter as alterações, basta usar o arquivo de backup que você criou ou apenas excluir os prefixos adicionados em wine.lib
e salvar o arquivo. Tente todos os prefixos diferentes que mencionei acima se você tiver problemas.