Przejdź do treści
cinemaOS

Rozwiązane problemy

DaVinci Resolve „GPU memory full” na Macu: jak to naprawić

Błąd GPU memory full w DaVinci Resolve na Macu? Skąd się bierze, co zmienić najpierw (rozdzielczość osi czasu, odszumianie, węzły, media) i jak mu zapobiec.

Gdy DaVinci Resolve na Macu zgłasza, że pamięć GPU jest pełna, oznacza to, że przetwarzanie obrazu bieżącej klatki wymaga więcej pamięci graficznej, niż Resolve może dostać. Najszybsze poprawki, w tej kolejności: obniż rozdzielczość osi czasu na czas pracy, ogranicz odszumianie temporalne, przytnij albo zbuforuj ciężkie węzły i odtwarzaj z optimized media lub proxy. W wielu przypadkach błędu "davinci resolve gpu memory full" wystarczą dwie pierwsze zmiany. Poniżej: skąd się bierze, jak znaleźć klip, który go wywołuje, i jak sprawić, żeby nie wracał.

Sam komunikat zwykle podpowiada niższą rozdzielczość osi czasu albo mniej korekcji. Potraktuj to dosłownie: to dwie największe dźwignie.

Dlaczego Resolve na Macu brakuje pamięci GPU

Resolve wykonuje niemal całe przetwarzanie obrazu na GPU. Każda odtwarzana klatka jest dekodowana, skalowana do rozdzielczości osi czasu, a potem przechodzi przez każdy węzeł, efekt i narzędzie Fusion na klipie. Każdy krok może trzymać w pamięci własną kopię klatki, a niektóre efekty trzymają kilka klatek naraz.

Ile jest miejsca, zależy od Maca.

  • Apple silicon. CPU i GPU dzielą jedną pulę pamięci zunifikowanej. Nie ma osobnej karty graficznej z własną stałą ilością pamięci, ale macOS ogranicza, ile z tej puli może użyć GPU, a wszystko inne otwarte na Macu korzysta z tej samej puli. Komputer z 16 GB, na którym działa Resolve, przeglądarka i komunikator, ma wyraźnie mniej zapasu, niż sugeruje liczba na pudełku.
  • Maki z procesorem Intel i dedykowaną kartą graficzną. Karta ma własną, stałą pamięć wideo, w laptopach często skromną. Gdy się zapełni, klatka nie ma się gdzie podziać.

Dlatego ten błąd rzadko jest usterką programu. To prosty rachunek: rozmiar klatki razy liczba operacji, które potrzebują pełnej kopii klatki, w zestawieniu z pamięcią wolną w danej chwili.

Znajdź klip, który wywołuje błąd

Zanim zmienisz ustawienia, sprawdź, gdzie pojawia się błąd. Niemal zawsze dotyczy konkretnych klipów, a nie całej osi czasu.

  • Odtwórz oś czasu i oznacz klipy, na których pojawia się ostrzeżenie albo czerwony wskaźnik odtwarzania.
  • Na każdym z nich otwórz stronę Color i obejrzyj drzewo węzłów. Policz węzły i zanotuj ciężkie narzędzia: odszumianie temporalne lub przestrzenne, Magic Mask, Face Refinement, efekty typu lens blur, Super Scale w Clip Attributes albo kompozycję Fusion.
  • Wyłączaj węzły po kolei (zaznacz węzeł i go wyłącz), aż odtwarzanie wróci do normy. Węzeł, którego włączenie przywraca błąd, to główny podejrzany.

Dzięki temu nie obniżasz jakości całego projektu, żeby naprawić trzy ujęcia.

Co zmienić najpierw

1. Obniż rozdzielczość osi czasu na czas pracy

To zwykle najskuteczniejsza poprawka. Otwórz Project Settings, potem Master Settings, i ustaw niższą rozdzielczość osi czasu, na przykład 1920x1080 zamiast UHD albo 6K. Każdy węzeł i efekt przetwarza wtedy mniejszą klatkę, co mocno zmniejsza zużycie pamięci. Jeśli oś czasu ma własne ustawienia zamiast domyślnych ustawień projektu, zmień rozdzielczość w Timeline Settings tej osi czasu.

Resolve jest niezależny od rozdzielczości, więc skalowanie, okna i tracking dopasowują się do zmiany. Są dwa zastrzeżenia. Niektóre efekty mierzone w pikselach, na przykład promień rozmycia albo wyostrzanie, mogą w innej rozdzielczości wyglądać nieco inaczej, a zmianę rozdzielczości osi czasu po zakończonej korekcji barwnej najbezpieczniej robić na kopii projektu lub osi czasu. Przed końcowym renderem przywróć rozdzielczość docelową i przejrzyj ciężkie ujęcia.

Jeśli wolisz nie ruszać projektu, w menu Playback ustaw Timeline Proxy Resolution na połowę albo ćwierć. Obniża to rozdzielczość przetwarzania tylko podczas odtwarzania i nie wpływa na render.

2. Okiełznaj odszumianie

Odszumianie temporalne to jedna z najczęstszych przyczyn tego błędu. Porównuje bieżącą klatkę z sąsiednimi, więc każda dodatkowa klatka do analizy dokłada do pamięci GPU kolejną klatkę w pełnej rozdzielczości.

  • Zmniejsz liczbę klatek w ustawieniach temporalnych. Przy lekko zaszumionym materiale mniejsza liczba klatek często daje niemal ten sam efekt.
  • Na czas pracy ustaw szacowanie ruchu w szybszym trybie.
  • Jeśli używasz odszumiania temporalnego i przestrzennego naraz, sprawdź, czy ujęcie naprawdę potrzebuje obu.
  • Umieść odszumianie w osobnym węźle na początku drzewa i zbuforuj ten węzeł (kliknij węzeł prawym przyciskiem i włącz jego node cache, przy Render Cache ustawionym na Smart lub User w menu Playback), żeby Resolve policzył go raz, zamiast przeliczać przy każdym przejściu.

Odszumianie temporalne i przestrzenne należy do DaVinci Resolve Studio, więc jeśli pracujesz w wersji darmowej i nadal widzisz błąd, sprawdź pozostałe przyczyny poniżej.

3. Policz swoje węzły

Długi szeregowy łańcuch prostych korekcji kosztuje niewiele. Kilka ciężkich narzędzi na jednym klipie kosztuje dużo. Typowi winowajcy to Magic Mask, Face Refinement, Super Scale, kilka śledzonych okien z dużym zmiękczeniem krawędzi oraz zewnętrzne wtyczki OpenFX.

  • Połącz w jeden węzeł proste korekcje, które robią to samo.
  • Zbuforuj węzły z ciężkimi efektami albo utrwal je przez Render in Place z menu kontekstowego klipu. Resolve zachowuje powiązanie z oryginalnym klipem, więc możesz do niego wrócić, jeśli później zechcesz zmienić korekcję.
  • Sprawdź węzły na poziomie osi czasu i adjustment clips. Korekcja nałożona na całą oś czasu działa na każdym klipie pod spodem, co mnoży koszt.
  • Ustaw Render Cache na Smart lub User w menu Playback, żeby Resolve zapisywał gotowe wyniki na dysku zamiast przeliczać je przy każdym odtwarzaniu.

4. Używaj optimized media lub proxy

Optimized media i proxy pomagają najbardziej, gdy źródłem jest ciężki format long-GOP albo raw w wysokiej rozdzielczości. Kliknij prawym przyciskiem klipy w Media Pool i wygeneruj optimized media lub proxy media, a potem upewnij się, że w menu Playback włączone jest ich używanie, gdy są dostępne. W Master Settings możesz wybrać rozdzielczość i format optimized media, na przykład wariant ProRes lub DNxHR.

Bądź realistą co do tego, co to rozwiązuje. Optimized media obniżają koszt dekodowania, co pomaga przy odtwarzaniu. Nie zmniejszają tego, czego ciężki węzeł odszumiania albo kompozycja Fusion wymaga od GPU przy pełnej rozdzielczości osi czasu. Dlatego rozdzielczość osi czasu i wybór węzłów są na pierwszym miejscu.

Ustawienia, które warto sprawdzić na Macu

Kilka preferencji i nawyków wpływa na to, ile pamięci Resolve faktycznie może wykorzystać.

  • Tryb przetwarzania GPU. W Preferences, w sekcji System, a potem Memory and GPU, Resolve na Macu korzysta z Metal. Zostaw wybór GPU na automatycznym, chyba że masz powód, by go zmienić.
  • Zamknij inne ciężkie aplikacje. Przeglądarki z wieloma kartami, inne programy wideo i narzędzia 3D konkurują o tę samą pamięć zunifikowaną w Apple silicon.
  • Mniej otwartych osi czasu i kompozycji Fusion. Każda wczytana kompozycja i oś czasu zajmuje pamięć. Zamknij to, z czego nie korzystasz.
  • Zewnętrzne monitory. Monitory o wysokiej rozdzielczości też zużywają pamięć GPU. Na słabszym komputerze duży podgląd na ekranie 5K lub 6K zwiększa obciążenie.
  • Aktualizuj świadomie. Aktualizacje Resolve i macOS często zmieniają zachowanie GPU. Czytaj informacje o wydaniu na stronie wsparcia DaVinci Resolve, aktualizuj między projektami, a nie w trakcie, i najpierw zrób kopię zapasową biblioteki projektów.

Ponowne uruchomienie Resolve zwalnia pamięć, która narosła podczas długiej sesji. Jeśli błąd pojawia się dopiero pod koniec dnia i znika po restarcie, wskazuje to na nagromadzony cache i otwarte osie czasu, a nie na jeden ciężki klip.

Jak sprawić, żeby błąd nie wracał

Błąd zwykle wraca przy tych samych rodzajach projektów. Kilka nawyków zapobiega większości przypadków.

  • Ustal rozdzielczość roboczą na starcie. Jeśli twój Mac ma trudności, montuj i koryguj kolor w HD w projekcie 4K lub większym, a do przeglądu i renderu przełącz się na rozdzielczość docelową.
  • Odszumiaj raz i wcześnie. Zdecyduj o odszumianiu dla każdej kamery lub sceny, zastosuj je w zbuforowanym węźle i nie poprawiaj go przy każdym przejściu.
  • Buduj drzewa węzłów świadomie. Trzymaj się spójnego układu drzewa, żeby wiedzieć, gdzie są ciężkie narzędzia, i z nawyku buforuj te węzły.
  • Generuj optimized media przy imporcie dla ciężkich formatów, zanim zaczniesz montować.
  • Znaj sufit swojego komputera. Na Macu z mniejszą ilością pamięci planuj mniej ciężkich efektów jednocześnie. W Apple silicon pamięci nie da się później rozbudować, więc jeśli kupujesz nowego Maca do korekcji barwnej, warto postawić na pamięć zunifikowaną.

Jeśli błąd nie ustępuje przy skromnych osiach czasu i lekkich korekcjach, opisz szczegóły (wersje Resolve i macOS, model Maca, pamięć, kodek i drzewo węzłów, przy którym występuje błąd) na forum lub w pomocy technicznej Blackmagic.

FAQ

Czy obniżenie rozdzielczości osi czasu pogorszy jakość końcowego renderu?

Nie, jeśli przywrócisz ją przed renderem. Resolve jest niezależny od rozdzielczości, więc korekcja, skalowanie i okna dopasowują się do zmiany. Po powrocie do pierwotnej rozdzielczości przejrzyj ujęcia z efektami opartymi na pikselach, takimi jak rozmycie czy wyostrzanie, bo mogą wyglądać nieco inaczej.

Czy więcej RAM rozwiąże GPU memory full na Apple silicon?

Więcej pamięci zunifikowanej daje GPU więcej miejsca, więc Mac z większą pamięcią dochodzi do limitu później. Nie usuwa to kosztu ciężkich efektów w wysokiej rozdzielczości, więc te same nawyki obowiązują także na mocniejszym komputerze.

Czy darmowa wersja Resolve częściej pokazuje ten błąd?

Nie z natury. Wersji darmowej brakuje części najcięższych narzędzi, takich jak odszumianie temporalne, więc przy tym samym materiale może wywoływać błąd rzadziej. Przyczyny i rozwiązania są w obu wersjach takie same.

Gdy problemem jest samo narzędzie

Większość błędów pamięci GPU w Resolve da się naprawić powyższymi krokami, a Resolve pozostaje jednym z najmocniejszych narzędzi do korekcji barwnej na Macu. Jeśli większym problemem jest to, że Resolve wydaje się ciężki albo trudny do nauczenia przy twojej pracy, tekst Czy DaVinci Resolve jest zbyt skomplikowany? wyjaśnia dlaczego, a alternatywy dla DaVinci Resolve dla montażystów na Macu porównuje realne opcje, w tym cinemaOS, z jasno opisanymi ograniczeniami.