Problémy hodně staré grafické karty: proč to po letech přestalo fungovat?

20. 2. 2024
Doba čtení: 9 minut

Sdílet

Autor: David Ježek
Výkon grafické karty v GFLOPS je jedna věc, podpora API něco jiného. Někdy tak může být postarší iGPU lepší než letitý hiend. Přesto je ale skvělé, jak i 15 starý Radeon je stále na Linuxu podporován.

Spokojená léta s Radeonem HD 7570

Před více než třemi roky jsem kvůli problémům se základní deskou předchozí platformy přecházel na nový stroj a rozhodoval se, zdali koupit Core i5–10400, nebo Core i5–10400F bez iGPU, ale o ~750Kč levněji. Zvítězila druhá varianta, neb za pár stovek jsem z druhé ruky koupil Radeon HD 7570 s vlastní 1GB GDDR5 pamětí, který pochopitelně byl výkonnějším řešením než integrované jádro v i5. A vedle dobré funkčnosti na Linuxu existoval i ovladač pro Windows 10 (tehdy jsem ještě desítky používal jako launcher na jednu či dvě hry).

Bohužel pro HD 7570, resp. pro cokoli z jeho 40nm generace Terascale 2, která přišla na svět s Radeony HD 5800 o něco dříve (konkrétně v září 2009), se uvedení Windows 10 sešlo s končící podporou těchto Radeonů ze strany AMD. Šest let je dost, ale málo když zrovna Microsoft radikálně mění Windows. Nicméně pro desítky a tuto generaci GPU AMD vydala ještě jednu verzi tehdejších ovladačů Catalyst 15.7.1 WHQL (vydání červenec 2015) a k tomu o několik měsíců později beta verzi next-gen balíku Radeon Software Crimson Edition 16.2.1 Beta (vydání březen 2016).

Asi tušíte, kam směřuji. Ano, nyní v roce 2024 provozovat skoro 15 let starou GPU architekturu na skoro 9 let starém ovladači je masochismus. Ale to se týká Windows, pojďme ještě zpět do Linuxu.

Najednou to nefunguje

Je to asi poprvé, co jsem nyní zažil na Linuxu fenomén známý z Windows. Donedávna, někdy v loňském roce, ale blíže to neupřesním, jsem Radeon HD 7570 provozoval. Tu a tam jsem zkusil svůj oblíbený Skyrim na Steamu přes Proton. Výkon u poslední vylepšené edice pochopitelně nic moc, ale hra vždy běžela v 1280×720 s nejnižšími detaily při zhruba 25+ fps. A najednou jednoho dne běžela spíše tempem méně než 1 fps.

Tou dobou jsem opět oprášil svoji někdejší platformu Haswell, konkrétně čtyřjádrové Core i5–4590, což je cca 10 let stará platforma. K radikálnímu poklesu výkonu jsem si zabrumlal své obvyklé „zase v Mageie něco zlobí“ a nevěnoval tomu pozornost (Skyrim a spol. pustím jednou za pár měsíců možná ani ne na hodinu).

Archeologie jménem Radeon HD 5850

Jenže ono to nebylo o moc lepší ani po přechodu na Core i7–10700, snad jedině z 0,nic fps jsem se dostal na 2 fps. A co bylo horší, Radeon HD 5850, který oproti 624 GFLOPS u HD 7570 dává 2 088 GFLOPS, tedy více než třikrát tolik, si nevedl lépe, stejná hodnota fps. A mizerně mimochodem běžel i Fallout 3, hra postavená na stejném enginu, ale z roku 2008, tudíž Radeon HD 5850 s osmijádrovým CPU by ji měl zvládat klidně v 2560×1440/ultra při 60 fps, ne v 1280×720/low při 5–25fps.

Říkejme tomu slepota, digitální demence, kognitivní přetížení či jakkoli jinak. Zkrátka až po nějaké době jsem si všiml ve Fallout 3, že hra používá nikoli GPU Radeonu HD 5850, ale GPU zvané llvmpipe. Zkrátka softwarový CPU rendering.

Radeon HD 5850 a Radeon HD 7570

Radeon HD 5850 a Radeon HD 7570 – číselně je dělí 1,72 tisíce, ale jsou ze stejné generace 40nm GPU jader.

Autor: David Ježek, podle licence: CC BY-NC-ND 2.0

Něco se muselo loni změnit na úrovni Steamu / Protonu a ani HD 7570, ani HD 5850 najednou nevyhovují a i Fallout 3 z roku 2008 musí běžet přes sw emulaci. Na iGPU v 10. generaci Core, tedy Intel UHD 630, akcelerace běží, ale výkonově je to samozřejmě pomalejší řešení, než by býval byl Radeon HD 5850. Co na to Wikipedia?

  1. HD 5850/HD 7570: Vulkan NE, Direct3D 11.0, OpenGL 4.5, OpenCL 1.2
  2. UHD Graphics 630: Vulkan 1.2/1.3 Direct3D 12, OpenGL 4.6, OpenCL 3.0

Jen tak na okraj, pro HD 5850 existuje i AMD Catalyst 15.9 Proprietary Linux x86 Display Driver ze září 2015. Nezkoušel jsem ho.

Comet Lake PC v microATX skříni bez přídavného GPU

Comet Lake PC v microATX skříni bez přídavného GPU = spousta volného místa.

Autor: David Ježek, podle licence: CC BY-NC-ND 2.0

Jak je na tom Nvidia

Když už jsme u toho, jak je ta AMD strašná, že po 6 letech odstavila HD 5850 od podpory, jak na tom je Nvidia? HD 5850 šla na trh v září 2009. Nvidia vydala GeForce GTX 275/285 v lednu 2009, poté až GeForce GTX 470/480 v březnu 2010.

Pro GTX 285 je k dispozici pro Windows 10 ovladač GeForce 342.01 WHQL z prosince 2016, pro Linux ovladač 340.108 z prosince 2019. Jeho funkčnost na současných jádrech neověřím, ale lehce pochybuji (možná nějaké nejstarší LTS jádro?).

Pro GTX 480 je na Windows 10 k dispozici verze 391.35 WHQL z března 2018, pro Linux verze 390.157 z listopadu 2022. zde si dovolím předpokládat, že GTX 480 bude i dnes plně použitelná s Nvidia ovladačem.

Z hlediska nouveau je GTX 2×x generací NV50 (Tesla), která kromě správy napájení má z podstatných věcí implementováno vše (výkon nemohu posoudit). Pro GTX 4×x jde o generaci NVC0 (Fermi), pro kterou platí totéž. Obě generace už vyžadují binární firmware, ale to jen tak na okraj.

Celkově bych si tedy dovolil odhadovat, že Nvidia přeci jen opečovala svoje stará GPU o trošičku lépe, nicméně ani GTX 480 také neumí Vulkan, pročež problém s Protonem to neřeší.

Zkusme Windows 10

Říkám si, jestli by to tedy nevyřešil přechod na Windows, kterým lze efektivně obejít absenci Vulkanu na těchto starých GPU. Jelikož netuším, kam se mi zatoulala má licence na Windows 10, tak investuji těžkých 49 Kč do nákupu sekundární licence Windows 10 Pro na Aukru a jdu instalovat.

Čeká mě několik hodin absolutního utrpení. Kdo by tušil, že když vypálíte Windows 10 ISO stažené od Microsoftu pomocí Fedora Media Writeru, tak instalátor bude řvát, že nemá ovladač pro úložiště a nemá kam instalovat? A to jsem mu ten ovladač i vnucoval stažený přímo od Intelu. 

Kdo by tušil, že postačí to ISO na flashku přenést pomocí Rufusu pod Windows a je po problému? No, já už to vím. Ale nakonec instaluji na samostatné SSD svoje Windows 10, což logicky vede k jedinému: Microsoft mi vrazí EFI záznam na první SSD, tedy na M.2 SSD s Mageiou – ale nic, co by rEFInd vadilo (Grub mi tohle vždy spolehlivě zlikvidovalo), prostě mám teď v rEFInd záznam pro Windows i záznam pro Mageiu a bootuji, jak potřebuji – vlastně je to ideální řešení. Miluji rEFInd.

Po asi třech hodinách stahování aktualizací a ovladačů ve Windows 10 osazuji Radeon HD 5850 a jdu instalovat ten jediný, 9 let starý ovladač od AMD. Do té chvíle vše běželo skvěle, včetně plynulého fullscreen videa atd. Momentem instalace ovladače se ale věci mění. Ve chvíli, kdy při instalaci Catalystů problikne obrazovka, neb se nahodí GPU část ovladače (ten proces z dob testování GPU znám jak svoje boty), přichází naprosto spektakulární BSOD a já vůbec poprvé v životě vidím chybně vykreslenou obrazovku BSOD. Řekněte WoW!.

Fakt stylová BSOD obrazovka Windows 10

Fakt stylová BSOD obrazovka Windows 10

Autor: David Ježek, podle licence: CC BY-NC-ND 2.0

Co je ale největší perla? Od této chvíle už Windows 10 s Radeonem HD 5850 nenastartují, končí v chybně vykresleném BSOD, a to při nastavení v BIOSu, se kterým karta na Linuxu funguje. Jdu tedy startovat Mageiu. Ale ani tak už nenabíhá, poslední co z výpisu vidím, že jakási „ring-0 chyba“ GPU. Jakoby instalace onoho oficiálního ovladače do Windows 10 nějak „ublížila“ té kartě, ale Radeon HD 5850 prostě přestal fungovat.

Později poté, co jsem si pohrál s Protonem (viz níže) jsem zkusil klasickou cestu hledání chyby: v BIOSu jsem povypínal vše, co se týká PCI Express (komplet vypnuté ASPM věci, rychlost snížena z auto/PCIe3 na PCIe1 – tento druhý bod nakonec nebyl nutný) a karta konečně v Linuxu nabíhá, funguje a lze na ní zcela plynule hrát třeba Fallout 3 v 1920×1080 v maximálních detailech.

Může za to Steam / Proton?

Valve udělal změnu v Protonu a prostě od určité verze (nejspíš verze 5) vše provozuje přes Vulkan (resp. VKD3D), místo jinak nativního OpenGL (což by odpovídalo provozu „standardně přes Wine“, tedy WineD3D).

Inu zkouším tedy přepnout kompatibilitu z protonu 8.0.x na Proton 6.0.x, což vede ke stažení starší verze Steam Runtime 2.0. Nefunguje, opět llvmpipe. Zkouším tedy nejstarší verzi Proton 3.7. Ha! Objevuje se Radeon HD 6600 – to je taky Terascale2, takže no problemo. Funguje to a na HD 7570 hraji Fallout 3 plynule ve vyšších detailech v 1920×1080.

Instaluji Fallout 4 (trojka z roku 2008 zabírá nějakých 8 GB, čtyřka z roku 2015 už 32 GB; to Starfield z roku 2023 si řekne o 125 GB – nějak nám to bobtná, vyvozoval bych z toho, že The Elder Scrolls 6 si jednoho dne řekne minimálně o ¼ TB), hledám funkční starší verzi Protonu a zkouším. Na HD 7570 pochopitelně nehratelné, na HD 5850 téměř hratelné v 1280×720/low.

Mimochodem tohle zjevně řeší víc lidí a ptají se (řešení jsou tam nastíněna, prostě vnutit WineD3D místo Vulkanu).

  • PROTON_USE_WINED3D=1 %command%

Poučení závěrem

Pár hardwarových postřehů. Předně když 400W OEM Seasonic v roce 2012 bez problémů utáhne Radeon HD 7950, neznamená to, že o 12 let později utáhne Radeon HD 7850. Zkrátka stařeček se už unavil. Nahradil jsem jej 850W ATX 3.0 zdrojem, protože má ATX 3.0 a 16pin PCIe5 konektor a dle nové ATX specifikace je tak schopen ustát po dobu 100ms proudový náraz rovnající se dvojnásobku jeho výkonu, což prostě nové grafické karty dělají – doufám, že tento zdroj vydrží 15 let jako předchozí Seasonic.

Radeon HD 5850 je samozřejmě velmi neúsporná karta, však pochází z dob dávno minulých. Letmý pohled na wattmetr přepočtený na Kč říká, že každý průměrný den provozu tohoto Radeonu stojí zhruba 1,50 Kč na elektřině navíc. To je něco, s čím jsem schopen žít, neb dobře vím, že tento experiment za nějakou dobu zase uložím do šuplíku s spotřeba stroje s iGPU Intel půjde o pár desítek wattů níž (mám to změřené, stroj s Core i7–10700 a iGPU baští za běžného provozu ~24 W, s HD 5850 se pohybuje kolem 70 W ±10 W, neb v podstatě každá akce GPU-akcelerovaného GNOME na Waylandu vyvolá zahýbání se spotřebou Radeonu).

Comet Lake s Terrascale2 GPU

Comet Lake s Terrascale2 GPU

Autor: David Ježek, podle licence: CC BY-NC-ND 2.0

Je také vtipné, co vše lze narvat do malé levné microATX skříně Eurocase: 3,5" HDD s chladičem, DVD vypalovačku, další SATA SSD a M.2 do desky, plus 92mm chladič a slušně velkou grafickou kartu, přičemž do bedny se vejde až 345 mm dlouhá karta, pokud by to bylo nutné, takže skříň by pojala i GeForce RTX 4090! A v neposlední řadě konstatuji, že 16pin PCIe5 konektor je komický a už se nedivím, že to mnoha lidem hoří, protože to je opravdu šlendrián, který vyžaduje precizní zasunutí a kontrolu, že bylo zasunuto správně a až na doraz (soudím samozřejmě dle konektoru levného zdroje Fortron).

Co se týče Windows, když projdete extrémně bolestivý proces instalace, kde se Microsoft na nic neptá, nic nevysvětluje a celkově instalátor jen hází klacky pod nohy, pak samotný systém je celkem fajn a dobře použitelný. Řekl bych srovnatelně s KDE Plasmou. Ale o tom zase třeba někdy jindy.

Celkově mi tahle anabáze přinesla několik hodin „zábavy“ a mnohé jsem se také naučil. A také, že podpora starých grafických karet je úžasná a úctyhodná práce, ale nezaručí vám, že vám i nadále bude fungovat vše, jak jste zvyklí, protože jednoho dne se v té skládačce softwarových komponent změní nějaká jiná a je šmitec. A je jedno, zdali jde o to, že Windows 10 ovladač, který před dvěma roky fungoval a dnes už zlobí, nebo o to, že nová verze Protonu už chce hry provozovat ne přes OpenGL, místo toho vnucuje jimi nepodporovaný Vulkan. Stát se to prostě může a na vás je buď vygooglit řešení, nebo se smířit s tím, že neexistuje.

Autor článku

Příznivec open-source rád píšící i o ne-IT tématech. Odpůrce softwarových patentů a omezování občanských svobod ve prospěch korporací.