Como executar um programa pela GPU dedicada NVIDIA no Linux Mint XFCE?

1 – Já possuo os drivers atualizados e o Nvidia X Server Settings instalado;

2 – O meu notebook é hibrido e deixo a GPU dele “Sob Demanda” (On-Demand).

Não sei se há um modo gráfico (já que não uso uma placa Nvidia), mas o modo terminal:

__NV_PRIME_RENDER_OFFLOAD=1 __VK_LAYER_NV_optimus=NVIDIA_only __GLX_VENDOR_LIBRARY_NAME=nvidia programa_pesado

É meio comprido, se for usar essa função com frequência, é bom criar um atalho no terminal (coloque essa linha no arquivo oculto .bashrc):

alias prime-run='__NV_PRIME_RENDER_OFFLOAD=1 __VK_LAYER_NV_optimus=NVIDIA_only __GLX_VENDOR_LIBRARY_NAME=nvidia'

Daí em diante só prime-run programa_pesado

1 curtida

Na pior da hipóteses, você pode deixar ele usando somente a GPU dedicada e, quando você parar de usar o programa pesado, voltar para os gráficos integrados.
Abre o terminal e digita: sudo prime-select nvidia. Reinicie o Pc e pronto. Já está usando os gráficos dedicados.
Para voltar a usar os integrandos: sudo prime-select intel

1 curtida

Tem uma aplicação de qua habilita essq função via interface gráfica. Mas n lembro o nome.

1 curtida

Muito Obrigado, eu vou editar o lançador dos aplicativos e vai ficar de boa. Se tiver algum problema em usar no flatpak ou snap, eu venho aqui e aviso. Obrigado a vc e a todos que ajudaram!

Gente, com a resposta do problema, eu fiz um executável na pasta /bin e pus ele como comando nos lançadores de aplicativos do XFCE que eu queria. Esse é o conteúdo do executável:


#!/bin/bash
__NV_PRIME_RENDER_OFFLOAD=1 __VK_LAYER_NV_optimus=NVIDIA_only __GLX_VENDOR_LIBRARY_NAME=nvidia $*


Propondo uma pequena melhoria aqui

#!/bin/sh
__NV_PRIME_RENDER_OFFLOAD=1 __VK_LAYER_NV_optimus=NVIDIA_only __GLX_VENDOR_LIBRARY_NAME=nvidia exec "$@"

O $* e $@ sem aspas aglomeram o que é passado para o script e dividem novamente com base nos espaços. Não tem problema se você apenas fez prime-run programa com um que não tem espaço no nome, mas colocar parâmetros adicionais com espaço (ou mesmo iniciar jogos com espaço no nome, como muitos jogos de Windows no Proton) vão ter bugs.

Por exemplo prime-run wine 'Super Jogo 2.exe' vai na verdade tentar iniciar o wine com as opções adicionais Super, Jogo e 2.exe.

Para reproduzir exatamente o que foi passado para o script dentro de um comando dele, é preciso “$@” (com aspas). Tem uma explicação mais detalhada aqui.

O exec é opcional, ele encerra o script antes de executar o programa. É um problema mínimo, já que o shell é bem leve e depois de usar"$@" qualquer jogo deve iniciar normalmente.

1 curtida