Zwiększenie wydajności starszych kart graficznych ATI

Uwaga: Ten wpis został utworzony ponad rok temu. Informacje w nim zawarte mogą być nieaktualne!

Wykonaj polecenie:

glxinfo | grep OpenGL

Jeśli jedna z linijek zawiera napis „OpenGL vendor string: X.Org R300 Project” lub „OpenGL vendor string: X.Org R600 Project” to możesz w łatwy sposób zwiększyć wydajność swojej karty graficznej.

Jeżeli używasz repozytorium xorg-edgers najpierw musisz je wyłączyć tym poleceniem: sudo apt-get install ppa-purge && sudo ppa-purge ppa:xorg-edgers/ppa

Wystarczy wydać następujące polecenia:

sudo add-apt-repository ppa:oibaf/graphics-drivers
sudo apt-get update
sudo apt-get dist-upgrade

Teraz zaktualizowałeś sterowniki do najnowszej wersji. Jednak można dać swojej karcie dodatkowego kopa. Istnieją dwa sterowniki do starszych kart ATI – klasyczny MESA i oparty na Gallium 3D. Sterownik Gallium jest domyślnym sterownikiem. Jest on bardziej przyszłościowy, jednakże wolniejszy. Wpisując poniższe określenia można ustawić sterownik MESA na domyślny.

cd /usr/lib/dri-alternates/
sudo mkdir tmp
sudo mv *.so tmp
cd ../dri
sudo mv r300_dri.so r600_dri.so swrast_dri.so ../dri-alternates/
cd ../dri-alternates/tmp/
sudo mv *.so ../../dri
cd ..
sudo rmdir tmp

Niestety jest to brzydki hack, który polega na podmianie plików. Nie znalazłem lepszego rozwiązania. W dodatku te polecenia trzeba wpisywać zawsze po aktualizacji pakietu libgl1-mesa-dri.

Jeżeli zastosowałeś powyższy hack, aby uruchomić aplikację używając sterownika Gallium 3D dodaj LIBGL_DRIVERS_PATH=/usr/lib/dri-alternates przed poleceniem, czyli np.

LIBGL_DRIVERS_PATH=/usr/lib/dri-alternates glxgears

Aby uruchomić program używając sterownika MESA uruchom go bez dodawania niczego przez poleceniem.

Jeżeli nie zastosowałeś hacku z podmianą plików to dodanie LIBGL_DRIVERS_PATH=/usr/lib/dri-alternate przed poleceniem uruchomi program używając sterownika MESA, a domyślnie programy będą uruchamiać się z użyciem sterownika Gallium 3D.

W przyszłości DRI możesz podmienić jednym poleceniem:

cd /usr/lib/dri-alternates/ && sudo mkdir tmp && sudo mv *.so tmp && cd ../dri && sudo mv r300_dri.so r600_dri.so swrast_dri.so ../dri-alternates/ && cd ../dri-alternates/tmp/ && sudo mv *.so ../../dri && cd .. && sudo rmdir tmp

De facto jest to 9 powyższych poleceń połączonych w jedno za pomocą &&.

Aplikacje wymagające obsługi OpenGL 3.0 lub nowszego należy uruchamiać wyłącznie za pomocą sterownika Gallium 3D.

Teraz zamknij wszystkie aplikacje i uruchom ponownie serwer X używając kombinacji klawiszy:
Prawy Alt + Print Screen + K

Mam nadzieję ze wpis jest zrozumiały, wszelkie pytania proszę pisać w komentarzach.

Jeżeli powyższy artykuł nie rozwiązał lub rozwiązał częściowo Twój problem, dodaj swój komentarz opisujący, w którym miejscu napotkałeś trudności.
Mile widziane komentarze z uwagami lub informacjami o rozwiązaniu problemu.
  • http://piotr.lemiesz.pl piotr

    Na ubuntu grep pattern musi mieć w ” bo inaczej traktuje drugi paramter ‚vendor’ jako plik do grepowania.

    • Admc

      Mały błąd przy pisaniu. Miało być samo OpenGL bez vendor, dziękuję za zwrócenie uwagi. Już poprawione.

  • krzynycz

    Wymiana sterownika na starszą wersję rzeczywiście zwiększyła wydajność mojego Radeona 9550, niestety po przeładowaniu X’ów przestało działać Unity.

    Dzięki za ciekawe info.

    ps.: Otwarte sterowniki ATI, czy to starsze czy nowsze, są zatrważająco mało wydajne w porównaniu do zamkniętych (obecnie oczywiście tylko dla szczęśliwych posiadaczy Windows ;)

    • Admc

      Proponuję kupić nową kartę graficzną, bo to co posiadasz to zabytek.

      • krzynycz

        Zabytek to może i jest ale wykorzystuję go do emulacji starej gry z 1980! Emulator wykorzystuje biblioteki SDL które w współpracy z otwartymi sterownikami ATI są, w tym przypadku, skrajnie niewydajne.

        Prawdę powiedziawszy lepiej zainwestować w zakup Windowsa zamiast dopasowywać sprzęt do kolejnych wydań Ubuntu.

        • Admc

          Windows – 300 zl (co trzy lata)
          Wspierana karta graficzna (nvidia) – 50 zl (raz na 7-8 lat)

          • krzynycz

            Co 3 lata? Bez przesady :) Mam na biurku Windowsa 2000 który ma 11 lat i nadal obsługuje wszytkie sprzęty, stare i nowe, w odróżnieniu mój Ubunciak – co wersja to z czym innym ma problem. Podobnie mam z XP. W Windach x64: Viście i 7 pojawił się problem z starym układem do karty WIFI i na tym problemy z kompatybilnością sprzętu pod Windows się w praktyce skończyły.

          • krzynycz

            Aby podsumować wątek.

            Wymieniłem jak polecił Admc karte na (nvidia) za 50zł – GF5200. Wydajność na sterownikach Open słabsza niż Radeon9550 ale na zamkniętych (173) wystarczająca do emulacji gry niestety za słaba dla Unity.

            Sterownik czy coś innego nie wyświetla poprawnie znaków w konsoli (białe mazy) oraz nie rozpoznaje poprawnie monitora CRT wieć mam odświeżanie 60Hz a w związku z tym ogromny ból głowy ;(

            Podpinam inny monitor CRT za kolejne 50zł. W końcu jest OK tyle że bez Unity.

            Obecnie czekam z niecierpliwością na Ocelota 11.10 – pieniążki na kolejne wymiany sprzętu mam już przygotowane :)

          • Admc

            Ale po co unity? Unity jest we wczesnej fazie rozwoju i najzwyczajniej ssie.

  • krzynycz

    Zgadza się. Unity oparte na Compizie ssie zasoby i jest jeszcze niedopracowane.

    Jednak z drugiej strony, cały fan z używania Ubuntu i generalnie całego softu open source polega właśnie na tym, że ciągle coś się zmienia, coś nie do końca działa, coś rozwija się dynamicznie żeby potem zostać zarzucone, zostawiając dotychczasowych użytkowników na lodzie :) Taka to już dzika i tym samym piękna natura tego softu.

    Generalnie odradzam stosowanie takiego softu do profesjonalnych zastosowań. W średnich i dużych projektach które mają być rozwijane przez wiele lat liczy się solidność i „niekłopotliwość” a tego desktopowe dystrybucje jeszcze nie zapewniają.

    Jednak są oczywiście wyjątki, chociażby sam Linux. To jest soft który udowodnił, że można w jego oparciu tworzyć projekty w pełni profesjonalne. Obecnie jest go wszędzie pełno, począwszy od superkomputerów, poprzez serwery WEB, po tunery satelitarne.

  • tybysh

    „cd /usr/lib/dri-alternates/”

    Nie mam tego katalogu, co dalej?

    Przed aktualizacją sterowników byłem na mesa, glxgears dawało wyniki w granicach 120fps, po wykonaniu kilku pierwszych kroków z tego poradnika glxgears daje mi wynik 39fps… Czy coś muszę jeszczę zainstalować abym mógł dokończyć dzieło zniszczenia?

    • Admc

      W takim razie usuń PPA za pomocą ppa-purge. Widocznie sterowniki które były domyślnie zainstalowane są lepsze.