Blender no SteamDeck

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.

Cartão De Memória Micro SDXC 64GB EXTREME 170MB - SANDISK - Conecta Informática

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

Deixe um comentário