Demorou mas saiu: Agora o Blender no SteamDeck pode ser usado para renderizações Cycles! Entenda mais nesta publicação.
| Se você apoia nosso site, desative o AdBlock quando visitá-lo, inclusive em Mobile!
Os anúncios são poucos e não invasivos. Se quiser contribuir com nosso trabalho, clique em qualquer banner de sua preferência, exceto dos Parceiros. Mais detalhes clicando aqui.
1. Introdução
Mostramos anteriormente em nosso site – mais especificamente aqui – o quanto o Blender é uma ferramenta poderosa, gratuita e livre para modelagem e renderizações, enquanto também quebra o galho com edição de vídeo.
E já mostramos também aqui o quanto o SteamDeck é um hardware muito interessante. Até a data desta publicação é o melhor na categoria em custo benefício pelo preço praticado e o que ele consegue entregar com sua GPU RDNA2.
Porém conforme enunciamos na publicação do SteamDeck, o Blender não funcionava. Não funcionava.
Porque agora funciona!
É possível configurar um sistema no SteamDeck para usá-lo para renderização usando o Cycles exclusivamente pela GPU.
1.1 Justificativa
Antes mesmo de adentrar as profundezas desta publicação eu preciso tirar um parágrafo pra algumas justificativas porque eu tenho certeza que vão me questionar:
Não usei o SteamOS, o sistema padrão original do SteamDeck para isso!
Depois de muito utilizar o aparelho, na minha humilde opinião, os motivos são:
- Observei que a utilidade do Desktop Mode não foi feito para usar no dia a dia, mas sim, puramente para dar manutenções no cliente Steam, bibliotecas de games, scripts de otimizações/correções, updates de pacotes Flatpak e outros.
- Minha versão de 64 Gb limita drasticamente o uso para tal proposito: Deixando o sistema original, sem qualquer pacote extra e instalando os games em vários microSD Cards, ainda restaram 15 Gb livres que normalmente serão usados para caches dos games.
- O SteamOS é engessado na parte que condiz ao sistema: Mesmo instalando os drivers necessários, a cada update de sistema disponibilizado pela Valve você precisará refazer todo o processo.
Para evitar dores de cabeça, apenas peguei um microSD Card de 64 Gb classe A2 – ou seja, altíssima velocidade de I/O aleatório, o que é ideal para sistemas operacionais – e instalei o EndeavourOS.
O boot é pela firmware no “seletor de boot” segurando “Power + Volume Menos”, não afetando o sistema original do armazenamento interno e, portanto, não afetando os games. Assim o SteamDeck inicializa como um sistema de um computador convencional e terei todo o suporte a tal!
1.2 EndeavourOS
Eu já expliquei aqui o por quê eu optar pelo EndeavourOS já a alguns meses em uso cotidiano e sempre que possível nos testes também. Mas para os fins de executar o Blender no SteamDeck, funcionará bem em qualquer sistema baseado em ArchLinux que você escolher, como o próprio ArchLinux ou Manjaro!
Aqui, com o EndeavourOS, temos:
O que funcionou e o que não funcionou:
- WiFi: Sim
Acessos 2.4 Ghz e 5.0 Ghz - Bluetooth: Sim
Busca e conectividade de periféricos. - Portas USB: Sim
Velocidade e reconhecimento. - Touchscreen: Sim
Layout do Touch Input: Retrato
Requer este script pra funcionar! - Multi-telas via USB: Sim
Tela conectada via HDMI em HUB USB. - Teclado Virtual Automático: Depende
Depende da interface e pacotes extras que você instalou! - Status da Bateria: Sim
Permitindo controle de Modo de Economia e/ou verificar a % restante antes de desligar. - Dois toques simultâneos na tela = Clique direito: Não
Alternativo à utilizar os demais comandos disponíveis. - L2/R2 reconhecidos como cliques esquerdo e direito: Sim
Padrão do SteamOS, se o client Steam inicializar com o sistema! - Modo touch integrado: Depende
Depende da interface e pacotes extras que você instalou! - Áudio: Sim
Com suporte a troca dos dispositivos de saída: Auto falante embutido, fone de ouvido ou HDMI. - Aceleração 3D: Sim
Driver em uso: AMDGPU, com Vulkan e HIP através do ROCm®!
2. Preparo
Primeiro, instale os seguintes pacotes em seu sistema:
$ sudo pacman -S rocm-hip-runtime rocm-opencl-runtime rocminfo opencl-headers opencl-mesa radeontop
Espera, quem é ROCm®?
2.1 ROCm®
O ROCm® (Radeon Open Compute platforM) é um software gratuito e de código aberto (exceto os blobs de firmware de GPU) sendo desenvolvido pela Advanced Micro Devices (AMD) objetivando programação de unidade de processamento gráfico – É uma alternativa à tecnologia CUDA® da NVIDIA.
O ROCm® abrange várias áreas: computação de uso geral em unidades de processamento gráfico (GPGPU), computação de alto desempenho (HPC) e computação heterogênea. Além disso, ele oferece vários modelos de programação: HIP (programação baseada em núcleo de GPU ), OpenMP ou Message Passing Interface (MPI) e OpenCL.
E aí temos uma sigla conhecida, o HIP: O Blender é compatível com essa!
2.2 Configurando a UserSpace
Continuando, você pode fazer a modificação temporária do PATH GLOBAL com:
$ export PATH=$PATH:/opt/rocm/hip/bin
Ou permanentemente, editando o arquivo /etc/profile, adicione a seguinte linha:
append_path ‘/opt/rocm/hip/bin’
Salve e reinicie o sistema. Assim os binários do rocm vão estar acessíveis para as aplicações.
3. Blender
Agora a hora da verdade, abrimos o Blender que em um sistema ArchLinux deve ser o mais novo, até a data desta publicação é o 3.6.0.
Abra o menu Edit > Preferences… e vá na aba SYSTEM/Cycles Render Devices… Lá, vá na aba HIP e veja quem é detectado agora! Marque a GPU para usar a GPU, ou marque a APU para usar a APU.
Mas o que muda?
- GPU: Fará a renderização executar somente pela GPU do SteamDeck.
Nesse modo 1 dos 8 núcleos da CPU ficará em 100% para ajudar no gerenciamento, e a renderização poderá executar em segundo plano enquanto outras tarefas menos onerosas para o hardware, como abrir o Google Chrome, ficam fluídas. - APU: Nesse modo a renderização utilizará a CPU + GPU, usando tanto a placa de vídeo quanto os 8 núcleos da CPU.
Nesse modo o sistema pode ficar lento para trabalhos paralelos à renderização mas é o modo de maior desempenho. O consumo de energia também é mais alto. - Se em vez da aba HIP marcar NONE, usará apenas a CPU, desligando a GPU.
4. Testes
4.1 NeonCity
Para este teste usei o cenário Neon City, parte de um game que desenvolvi a alguns meses utilizando o Blender e a engine UPBGE.
A referida cena:
A renderização foi ajustada para ser realizada em 2048 samples com resolução padrão 1280×800 pixels e motor de renderização Cycles, que permite renderizações mais realistas com ray tracing ativo por padrão.
4.1.1 CPU
Primeiro o teste padrão, desativando totalmente a aceleração de hardware, deixando NONE na seleção de SYSTEM/Cycles Render Devices. Ao usar o aplicativo radeontop, vemos que o uso da GPU é mínimo. A memória VRAM está calculada junto, já que é compartilhada com a RAM pela BIOS.
Porém a CPU está em 100% em todos os núcleos:
E com o sistema congelando, temos:
Se passaram 5 minutos… com mais 19 minutos restantes… Cancelei e desisti do teste aqui.
4.1.2 GPU
Agora ficou interessante: Ao selecionar a GPU e mandar renderizar temos o alto uso de GPU agora no radeontop.
Nota-se que o consumo de VRAM também está maior que antes.
Já o consumo de CPU:
Bem tranquilo, apenas 1 núcleo 100% e o resto ocioso. E a renderização por fim:
Tudo acabou em 4 minutos e 27 segundos. E fim.
Não é algo absurdamente rápido como seria numa GTX 1050 ou mesmo uma placa da família RTX, porém é escalafobeticamente superior a qualquer placa de vídeo Intel HD Graphics disponíveis para Notebooks ou mesmo Desktops!
4.2 Classroom
A demonstração oficial da Blender Foundation foi nosso alvo da vez. Dessa vez a comparação será contra outra placa vídeo, uma RTX 2060 com 6 Gb de VRAM:
São 300 samples com resolução 1920×1080. Acabou em 1 minuto e 9 segundos.
Já no SteamDeck o mesmo cenário em resolução menor 1280×800:
Acabou em 3 minutos e 53 segundos. Um tempo consideravelmente maior mas dentro do esperado para a aplicação.
Lembrando que tudo depende de quanto foi otimizado o cenário e os efeitos, e quanto será o consumo de RAM – não pode passar de 12 Gb – e o consumo de VRAM – que não pode passar de 4 Gb. Assim você fica tranquilo que a renderização será bem sucedida sem erros de falta de memória de vídeo ou excesso de despejo de SWAP.
O mesmo teste porém somente com a CPU do SteamDeck levou ~9 minutos e esquentou muito mais o aparelho. Usar a GPU é vantajoso em quaisquer aspectos com os drivers ROCm®!
5. Análise Opinativa
A partir deste artigo eu posso dizer que o SteamDeck, dadas as devidas proporções e fazendo os ajustes necessários, pode sim substituir tranquilamente um computador de mesa, um tablet ou mesmo um notebook para funções avançadas e com aceleração de hardware tanto Vulkan quanto HIP para as mais diversas aplicações.
Se o problema for a tela pequena, pode transmitir a imagem a um monitor ou TV externa via USB Type-C > HDMI e fazer todo o processo de modelagem e renderização normalmente com mais conforto, principalmente se usar um teclado e mouse USB em uma Dock.
O fato é que o SteamDeck amplia seu potencial quando se expande as possibilidades com outros sistemas operacionais além do original. O SteamOS é incrível, continua sendo o principal que cumpre bem seu papel: Ser um sistema gamer definitivo para o portátil. Mas se você quer fazer mais com o aparelho, recomendo fortemente usar outro sistema a seu favor!
Considerações finais:
- O uso do SteamDeck para os recursos citados acima são condizentes a usuários domésticos e talvez medianos. Não é um equipamento de ponta, recomendado para profissionais de design e modelagem que queiram uma alternativa barata para renderizações 3D. Até porque ele roda bem renderizando cenas na resolução nativa 1280×800, mas em 1080p a situação fica contraproducente. – A menos que você não tenha pressa de ver uma renderização que perdure horas a fio e saiba otimizar o aparelho para não extrapolar os 12 Gb de RAM e os 4 Gb de VRAM!
- Não analisei a renderização pelo modo APU porque seria 100% de GPU, 100% de CPU e sistema travando. É mais potente mas pouco eficiente. Além disso o interessante é o consumo energético: Em média 5h restantes de bateria renderizando tão somente pela GPU!
- Não tenho planos de testar Windows com o driver ROCm®. Se alguém testou, deixe nos comentários!
#UrbanCompassPony
Autodidata, me aprofundei em sistemas operacionais baseados em UNIX®, principalmente Linux. Também procuro trazer assuntos correlacionados direta ou indiretamente, como automação, robótica e embarcados.