DaVinci Resolve "GPU memory full" no Mac: como resolver
DaVinci Resolve com GPU memory full no Mac? Porque acontece, o que mudar primeiro (resolução da timeline, redução de ruído, nós, media) e como evitar.
Quando o DaVinci Resolve diz que a memória da GPU está cheia num Mac, significa que o processamento de imagem do fotograma atual precisa de mais memória gráfica do que o Resolve consegue obter. As soluções mais rápidas, por esta ordem: baixar a resolução da timeline enquanto trabalha, moderar a redução de ruído temporal, reduzir ou pôr em cache os nós pesados e reproduzir a partir de optimized media ou proxies. Em muitos casos de "davinci resolve gpu memory full", as duas primeiras mudanças chegam. A seguir: porque acontece, como encontrar o clip que o provoca e como impedir que volte.
A própria mensagem costuma sugerir uma resolução de timeline mais baixa ou menos correções. Leve isso à letra: são as duas alavancas mais importantes.
Porque é que o Resolve fica sem memória de GPU num Mac
O Resolve faz quase todo o processamento de imagem na GPU. Cada fotograma que reproduz é descodificado, escalado para a resolução da timeline e depois passa por cada nó, efeito e ferramenta Fusion do clip. Cada passo pode guardar a sua própria cópia do fotograma em memória, e alguns efeitos guardam vários fotogramas de uma vez.
O espaço disponível depende do Mac.
- Apple silicon. O CPU e a GPU partilham um único bloco de memória unificada. Não há uma placa gráfica separada com uma quantidade fixa própria, mas o macOS limita quanto desse bloco a GPU pode usar, e tudo o resto que está aberto no Mac puxa do mesmo bloco. Uma máquina de 16 GB com o Resolve, um browser e uma aplicação de mensagens tem bastante menos margem do que o número na caixa sugere.
- Macs Intel com GPU dedicada. A placa gráfica tem a sua própria memória de vídeo fixa, muitas vezes modesta nos portáteis. Quando enche, o fotograma não tem para onde ir.
Por isso, o erro raramente é um bug. É uma soma: tamanho do fotograma, multiplicado pelas operações que precisam de uma cópia completa do fotograma, contra a memória livre nesse momento.
Encontre o clip que provoca o erro
Antes de mudar definições, repare onde o erro aparece. Quase sempre surge em clips específicos, não na timeline inteira.
- Reproduza a timeline e marque os clips onde aparece o aviso ou um indicador de reprodução vermelho.
- Em cada um, abra a página Color e veja a árvore de nós. Conte os nós e anote as ferramentas pesadas: redução de ruído temporal ou espacial, Magic Mask, Face Refinement, efeitos do tipo lens blur, Super Scale nos Clip Attributes ou uma composição Fusion.
- Desative os nós um a um (selecione um nó e desligue-o) até a reprodução recuperar. O nó que faz o erro voltar é o principal suspeito.
Assim evita baixar a qualidade de um projeto inteiro para resolver três planos.
O que mudar primeiro
1. Baixe a resolução da timeline enquanto trabalha
Esta é normalmente a solução mais eficaz. Abra Project Settings, depois Master Settings, e defina uma resolução de timeline mais baixa, por exemplo 1920x1080 em vez de UHD ou 6K. Cada nó e efeito passa a processar um fotograma mais pequeno, o que reduz bastante o uso de memória. Se uma timeline usa definições próprias em vez das predefinições do projeto, mude a resolução nas Timeline Settings dessa timeline.
O Resolve é independente da resolução, por isso o redimensionamento, as janelas e o tracking acompanham a mudança. Há dois cuidados a ter. Alguns efeitos medidos em píxeis, como o raio de um desfoque ou a nitidez, podem ficar ligeiramente diferentes noutra resolução, e mudar a resolução da timeline depois de um projeto ter a cor feita é mais seguro num projeto ou timeline duplicado. Antes do render final, reponha a resolução de entrega e reveja os planos pesados.
Se preferir não mexer no projeto, use o menu Playback e defina a Timeline Proxy Resolution para metade ou um quarto. Isso baixa a resolução de processamento só para a reprodução e não tem efeito no render.
2. Controle a redução de ruído
A redução de ruído temporal é uma das causas mais comuns deste erro. Compara o fotograma atual com os fotogramas vizinhos, por isso cada fotograma extra que lhe pede para analisar acrescenta mais um fotograma em resolução completa à memória da GPU.
- Reduza o número de fotogramas nas definições temporais. Menos fotogramas costumam dar um resultado quase igual em imagens com pouco ruído.
- Ponha a estimativa de movimento no modo mais rápido enquanto trabalha.
- Se usa redução de ruído temporal e espacial, confirme se o plano precisa mesmo das duas.
- Coloque a redução de ruído num nó próprio no início da árvore e ponha esse nó em cache (clique com o botão direito no nó e ative a node cache, com a Render Cache em Smart ou User no menu Playback), para que o Resolve o calcule uma vez em vez de o recalcular a cada passagem.
A redução de ruído temporal e espacial faz parte do DaVinci Resolve Studio. Se usa a versão gratuita e continua a ver o erro, veja as outras causas abaixo.
3. Conte os seus nós
Uma longa cadeia em série de correções simples custa pouco. Meia dúzia de ferramentas pesadas empilhadas num clip custa muito. Os culpados habituais são Magic Mask, Face Refinement, Super Scale, várias janelas com tracking e valores de suavidade altos, e plug-ins OpenFX de terceiros.
- Junte num só nó as correções simples que fazem o mesmo trabalho.
- Ponha em cache os nós com efeitos pesados, ou fixe-os com Render in Place a partir do menu de contexto do clip. O Resolve mantém uma ligação ao clip original, por isso pode voltar a ele se precisar de alterar a cor mais tarde.
- Verifique os nós ao nível da timeline e os adjustment clips. Uma correção aplicada à timeline inteira corre em todos os clips por baixo, o que multiplica o custo.
- Defina a Render Cache como Smart ou User no menu Playback, para que o Resolve guarde em disco os resultados prontos em vez de os recalcular a cada reprodução.
4. Use optimized media ou proxies
Optimized media e proxies ajudam sobretudo quando a origem é um formato long-GOP pesado ou raw em alta resolução. Clique com o botão direito nos clips no Media Pool e gere optimized media ou proxy media, depois confirme que o menu Playback está definido para os usar quando existirem. Em Master Settings pode escolher a resolução e o formato da optimized media, como uma variante de ProRes ou DNxHR.
Seja realista quanto ao que isto resolve. A optimized media baixa o custo de descodificação, o que ajuda a reprodução. Não reduz o que um nó pesado de redução de ruído ou uma composição Fusion exige à GPU em resolução completa da timeline. É por isso que a resolução da timeline e as escolhas de nós vêm primeiro.
Definições a verificar num Mac
Algumas preferências e hábitos influenciam quanta memória o Resolve consegue realmente usar.
- Modo de processamento da GPU. Em Preferences, em System e depois Memory and GPU, o Resolve no Mac usa Metal. Deixe a seleção da GPU em automático, a menos que tenha um motivo para a mudar.
- Feche outras aplicações pesadas. Browsers com muitos separadores, outras aplicações de vídeo e ferramentas 3D disputam a mesma memória unificada no Apple silicon.
- Menos timelines e composições Fusion abertas. Cada composição e timeline carregada ocupa memória. Feche o que não está a usar.
- Monitores externos. Monitores externos de alta resolução também usam memória da GPU. Numa máquina mais pequena, um viewer grande num ecrã 5K ou 6K aumenta a carga.
- Atualize com critério. As atualizações do Resolve e do macOS mudam muitas vezes o comportamento da GPU. Leia as notas de versão na página de suporte do DaVinci Resolve, atualize entre projetos e não a meio de um, e faça antes uma cópia de segurança da sua biblioteca de projetos.
Reiniciar o Resolve liberta a memória acumulada numa sessão longa. Se o erro só aparece ao fim do dia e desaparece depois de reiniciar, isso aponta para cache acumulada e timelines abertas, não para um único clip pesado.
Como impedir que volte
O erro tende a voltar no mesmo tipo de projetos. Alguns hábitos evitam a maior parte.
- Defina a resolução de trabalho logo no início. Monte e faça a cor em HD num projeto 4K ou maior se o seu Mac tiver dificuldades, e passe para a resolução de entrega para a revisão e o render.
- Reduza o ruído uma vez, cedo. Decida a redução de ruído por câmara ou por cena, aplique-a num nó em cache e evite ajustá-la a cada passagem.
- Construa as árvores de nós com intenção. Use uma estrutura de árvore consistente para saber onde estão as ferramentas pesadas, e ponha esses nós em cache por hábito.
- Gere optimized media na importação para formatos pesados, antes de começar a montar.
- Conheça o limite da sua máquina. Num Mac com pouca memória, planeie menos efeitos pesados em simultâneo. No Apple silicon a memória não pode ser aumentada mais tarde, por isso, se comprar um Mac novo para fazer cor, vale a pena dar prioridade à memória unificada.
Se o erro persistir em timelines modestas com correções leves, publique os detalhes (versões do Resolve e do macOS, modelo do Mac, memória, codec e uma árvore de nós que falha) no fórum ou no suporte da Blackmagic.
FAQ
Baixar a resolução da timeline reduz a qualidade do render final?
Não, se a repuser antes do render. O Resolve é independente da resolução, por isso a cor, o redimensionamento e as janelas acompanham a mudança. Depois de voltar à resolução original, reveja os planos com efeitos baseados em píxeis, como desfoque ou nitidez, porque podem ficar ligeiramente diferentes.
Mais RAM resolve o GPU memory full no Apple silicon?
Mais memória unificada dá mais espaço à GPU, por isso um Mac com mais memória chega ao limite mais tarde. Não elimina o custo dos efeitos pesados em alta resolução, por isso os mesmos hábitos continuam a valer numa máquina maior.
A versão gratuita do Resolve mostra este erro com mais frequência?
Não por natureza. A versão gratuita não tem algumas das ferramentas mais pesadas, como a redução de ruído temporal, por isso pode provocar o erro menos vezes com as mesmas imagens. As causas e as soluções são as mesmas nas duas.
Quando o problema é a própria ferramenta
A maioria dos erros de memória de GPU no Resolve resolve-se com os passos acima, e o Resolve continua a ser uma das ferramentas de cor mais fortes no Mac. Se o problema maior é que o Resolve parece pesado ou difícil de aprender para o trabalho que faz, O DaVinci Resolve é complicado demais? explica porquê, e alternativas ao DaVinci Resolve para editores no Mac compara as opções realistas, incluindo o cinemaOS, com os seus limites ditos com clareza.