Skocz do zawartości

Niedziałający podgląd JPEG


wujek_bogdan
 Udostępnij

Rekomendowane odpowiedzi

Miałem problem z niedziałającym podglądem JPEG na Insanelymac przeczytałem, że jednym z rozwiązań jest włączenie w BIOS-ie iGPU i ustawienie jej jako podstawową kartę graficzną. To rozwiązanie działa, ponieważ gdy kabel jest wpięty do dedykowanej GPU to i tak jest ona inicjowana poprawnie pomimo, że iGPU jest ustawiona jako podstawowa.

Jeśli dobrze rozumiem, to ten trik związany jest z tym, że macOS z jakiegoś powodu nie potrafi odpalić sprzętowego dekodowania pewnych formatów (w tym przypadku JPEG) na dedykowanej karcie graficznej. Gdy uruchamiamy zintegrowaną grafikę, to macOS dekoduje te formaty używając iGPU, wyświetlając obraz używając dedykowanego GPU. Czy dobrze rozumie, czy to moja nadinterpretacja?

Czy to jest optymalne rozwiązanie? Czy nie da się zmusić systemu do dekodowania za pomocą dedykowanego GPU?

Czytałem, że można zmienić SMBIOS na MacPro5,1 lub MacPro6,1 - nie wydaje mi się to jednak eleganckim rozwiązaniem, chociażby dlatego, że te komputery działają na Xenonach - obawiam się problemów związanych z zarządzaniem energią.

Trzeci sposób to wyłączenie sprzętowej akceleracji za pomocą flagi WhateverGreen: shikigva=32 shiki-id=Mac-7BA5B2D9E42DDD94 - ten sposób wydaje mi się zupełnie nieelegancki. To nie rozwiązanie tylko ukrycie problemu.

Edytowane przez wujek_bogdan
Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli masz iGPU i identyfikację iMac to powinny być odpalone obie grafiki, z tym że nie jest wymagane, żeby iGPU było ustawione jako podstawowe. Można ustawić dedyk, i tak będzie działać, zakładając że reszta konfigu pod WEG będzie zgodna ze sztuką. Mac Pro nie ma iGPU, dlatego zmiana identyfikacji pomaga.

Odnośnik do komentarza
Udostępnij na innych stronach

20 godzin temu, 314TeR napisał:

Tutaj opisałem jak odpalić iGPU jako headless:

Być może nie wyraziłem się jasno. Od momentu gdy włączyłem w BIOS-ie iGPU podgląd JPEG działa, więc problem wydaje się być rozwiązany. Mnie zastanawia to, czy to rozwiązanie jest optymalne. Nie do końca rozumiem co się dzieje "pod spodem". Czy teraz rzeczy wymagające sprzętowego dekodowania "lecą" przez iGPU? Jeśli tak, to czy to rozwiązanie jest dobre, czy jest to jakiś hack?

Odnośnik do komentarza
Udostępnij na innych stronach

Samo włączenie w biosie to jeszcze nie koniec, musisz ustawić tzw. headless ig-platform-id odpowiedni dla Twojego iGPU. W ten sposób system korzysta z mocy obliczeniowej obu grafik, dokładnie tak jak ma to miejsce w iMacach (nie iMacach Pro). Taki zabieg jest niezbędny, żeby działał intelowy QuickSync. Jest na ten temat masa tematów zarówno w necie, jak i na tym forum.

Odnośnik do komentarza
Udostępnij na innych stronach

Rozumiem, chciałem się upewnić czy taka konfiguracja to eleganckie rozwiązanie czy jakaś proteza. Taką protezą jest np. wyłączenie sprzętowej akceleracji za pomocą parametrów shikigva=32 shiki-id=Mac-7BA5B2D9E42DDD94.

Doczytałem, że jest najbardziej eleganckie rozwiązanie z możliwych.

Tak na marginesie - pomimo braku ig-platform-id w konfigu, w preferencjach systemowych nie widnieje Intel, a jedynie RX 580. Poradniki w sieci mówią, że Intel "znika" z preferencji systemowych i działa jako headles dopiero po ustawieniu prawidłowego ig-platform-id.

Edytowane przez wujek_bogdan
Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli nie masz żadnego monitora podpiętego pod iGPU, to aby nic się nie krzaczyło i nie wykładało to musisz zrobić następujące rzeczy:

  1. Włączenie iGPU w BIOS.
  2. Ustawienie kolejności kart tak aby VGA na PCI-E była pierwsza a iGPU drugie.
  3. Ustawienie configu - wszelkie inject dla intela, etc muszą zniknąć i dodajesz jedynie właściwy ig-platform.
  4. W kextach masz LILU + WeG.

 

Odnośnik do komentarza
Udostępnij na innych stronach

W konfigu Clovera dodałem następujący wpis:

    <key>Devices</key>
    <dict>
        <key>Properties</key>
        <dict>
            <key>PciRoot(0x0)/Pci(0x2,0x0)</key>
            <dict>
                <key>AAPL,ig-platform-id</key>
                <data>
                BAASBA==
                </data>
            </dict>
        </dict>
      	<!-- Pozostałe wpisy -->
    </dict>
 
  • iGPU w BIOS-ie włączone,
  • VGA na PCI-E ustawiona jako pierwsza,
  • Wszystkie injecty w sekcji Graphics ustawione na false.
  • Lilu + WhateverGreen obecne i w najnowszych wersjach
  • Clover najnowszy: 5099

---

Sytuacja wygląda tak, że:

  • Gdy ustawię VGA na PCI-E jako pierwszą, wtedy:
    • pomimo dodania ig-platform-id do konfigu, podgląd JPEG nie działa.
    • sprzętowe dekodowanie x264 testowane w VideoProc nie działa
  • Gdy ustawię iGPU jako pierwszą, wtedy
    • bez względu na to czy ig-platform-id jest w konfigu czy go nie ma podgląd JPEG działa.
    • sprzętowe dekodowanie x264 testowane w VideoProc działa.

W obu przypadkach HEVC nie działa, ale z tego co widzę Haswell po prostu tego nie obsługuje.

---

Nie rozumiem co się tutaj dzieje - jest dokładnie odwrotnie niż być powinno! Wygląda na to, że ig-platform-id u mnie nie jest potrzebne. Czyżby Lilu/WhateverGreen radził sobie bez tego?

Załączam pełny konfig Clovera.

 

 

config.plist

Edytowane przez wujek_bogdan
Odnośnik do komentarza
Udostępnij na innych stronach

Godzinę temu, Ian napisał:

@wujek_bogdan: A próbowałeś OpenCore?

Nie próbowałem, śledzę jego rozwój i na pewno przyjdzie na to czas. Na razie czekam aż się ustabilizuje, bo rozwija się bardzo dynamicznie i obawiam się, że kolejne wersje nie będą wstecznie kompatybilne.

Godzinę temu, Ian napisał:

@wujek_bogdan:  U mnie wszystkie (a i tak było ich niewiele) problemy zniknęły, gdy przestawiłem się na OpenCore. Polecam.

Z tym, że ja nie wiem czy mam w ogóle jakieś problemy :) Zainteresował mnie temat sprzętowej akceleracji kompresji/dekompresji multimediów więc postanowiłem spróbować to odpalić w ramach doszlifowywania konfigu. Z testów, które zrobiłem wynika, że akceleracja działa - moim jedynym problemem jest to, że nie wiem czemu działa. Wg wszelkich opisów w sieci i wg tego co pisze @314TeR w mojej obecnej konfiguracji nie powinna działać. W właściwej konfiguracji z kolei nie działa. Opisałem szczegóły w moim poprzednim poście.

Edytowane przez wujek_bogdan
Odnośnik do komentarza
Udostępnij na innych stronach

@wujek_bogdan to nie tak, że nie będzie działać. W obu wpadkach zarówno z iGPU ustawionym jako podstawowym, jak i z iGPU ustawionym jako drugorzędny przy właściwej konfiguracji będzie działać.

Ustawienie iGPU jako podstawowy wiąże się z koniecznością posiadania podpiętego podstawowego monitora do iGPU, jeśli nie podepniesz nic, to nie zobaczysz BIOSu, clovera, booscreena itp itd, a dopiero załadowany system. Dlatego jak chcesz jako podstawową używać VGA dedykowanej - to musisz mieć do niej podpięty monitor. Jak masz 1 monitor to się robi kłopot, którą VGA wybrać.

Ustawienia (igpu) które podałem w w/w linku dotyczy wyłącznie HD4600 i w konfiguracjach z jakimi się spotkałem. Może u Ciebie nie ustawiłeś jeszcze czegoś w biosie, lub ścieżka urządzenia PciRoot(0x0)/Pci(0x2,0x0) (choć nie sądzę) jest inna.

EDIT: Masz błędy w config.plist w sekcji SMBIOS.

Odnośnik do komentarza
Udostępnij na innych stronach

2 godziny temu, 314TeR napisał:

Ustawienie iGPU jako podstawowy wiąże się z koniecznością posiadania podpiętego podstawowego monitora do iGPU, jeśli nie podepniesz nic, to nie zobaczysz BIOSu, clovera, booscreena itp itd, a dopiero załadowany system. Dlatego jak chcesz jako podstawową używać VGA dedykowanej - to musisz mieć do niej podpięty monitor. Jak masz 1 monitor to się robi kłopot, którą VGA wybrać.

W moim przypadku tak nie jest. Bez względu na to czy wybiorę iGPU jako pierwsze czy dedykowaną VGA, to jeśli mam monitor podpięty pod dedykowaną VGA, to obraz pojawia się na nim już na etapie bootowania.

2 godziny temu, 314TeR napisał:

Ustawienia (igpu) które podałem w w/w linku dotyczy wyłącznie HD4600 i w konfiguracjach z jakimi się spotkałem. 

Taką właśnie mam kartę: HD4600. 

2 godziny temu, 314TeR napisał:

Może u Ciebie nie ustawiłeś jeszcze czegoś w biosie

Co jeszcze mogę sprawdzić w BIOS-ie? Nie widzę tam żadnych innych opcji związanych z iGPU. Mogę ustawić kolejność bootowania, przydzielić pamięć oraz ustawić dual monitor (obecnie jest na false)

2 godziny temu, 314TeR napisał:

EDIT: Masz błędy w config.plist w sekcji SMBIOS.

Co masz na myśli? Jeśli <--! ... --> to to jest zwykły komentarz XML. Wyciąłem zbędne wpisy, żeby nie zaciemniać obrazu.

 

Ale najważniejsze pytanie to to czy jest sens kombinować dalej skoro sprzętowa akceleracja działa w obecnej konfiguracji (choć nie ukrywam, że wolałbym wiedzieć dlaczego działa ;))

Edytowane przez wujek_bogdan
Odnośnik do komentarza
Udostępnij na innych stronach

Działa bo zapewne płyta coś robi, np wykrywa brak podłączonego wyjścia obrazu do iGPU i mimo Twoich celowych ustawień i tak ustawia tak jak oprogramował logikę producent. Tak aby w takim właśnie wypadku jak Ty masz, mieć obraz z BIOSu i bootscreen.

Dobra - uściślijmy - o której płycie rozmawiamy? ASUS Z87M-Plus czy Asrock Z87 Pro4.

Odnośnik do komentarza
Udostępnij na innych stronach

Dzięki, rzeczywiście, zmiana multimonitor na auto enable pomogła. To czysta kosmetyka, bo i bez tego grafika działała jako headless. Potwierdziłem to w IORegistryExplorer. 

Dla potomnych: świetny poradnik na temat Lilu: https://www.tonymacx86.com/threads/an-idiots-guide-to-lilu-and-its-plug-ins.260063/#Headless

Edytowane przez wujek_bogdan
Odnośnik do komentarza
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie
 Udostępnij

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Korzystanie z tej witryny, wymaga zakceptowanie naszych warunków Warunki użytkowania.