Direct renderingn kart Radeona (ATI) (DRI)

W tym miejscu zapraszamy Was do współpracy. Czekamy na propozycje, sugestie i rady.
Moderatorzy zatroszczą się o to, by najlepsze teksty trafiły do FAQ.

Moderatorzy: Moderatorzy, Administratorzy

Awatar użytkownika
Ciuciu
Administrator
Posty: 921
Rejestracja: 2004-05-26, 21:01
Lokalizacja: 3C17y
Kontakt:

Direct renderingn kart Radeona (ATI) (DRI)

Post autor: Ciuciu »

Direct Rendering Interface (DRI) umożliwia wyświetlanie obrazu dużo szybciej, poprzez włączenie dostepu bezpośrednio do pamięci karty graficznej. W praktyce pozwala nam to na włączenie kilku więcej wygaszaczy ekranu, oraz gierek ;)

No to zaczynamy. Będziemy:
a) rekompilować jądro
b) kompilwać i instalować dodatkowe moduły do tegoż
c) modyfikować plik xorg.conf

Zacznijmy od jądra. Możemy użyć albo starego, albo ściągnąć najnowsze - nie ma to większego znaczenia, ważne jest żebyśmy podane opcje wybrali tak a nie inaczej (dla 2.6.15.5, w innych powinno być podobnie):
Loadable module support ---> [*] Enable loadable module support
Processor type and features ---> [*] MTRR (Memory Type Range Register) support
Device Drivers ---> Character devices ---> <M> /dev/agpgart (AGP Support)
Device Drivers ---> Character devices ---> <M> VIA chipset support
Device Drivers ---> Character devices ---> < > Direct Rendering Manager (XFree86 4.1.0 and higher DRI support)
Musimy włączyć ładowanie modułów, bo będziemy ładować zewnętrzny sterownik ati (fglrx), obsługa agpgart musi być włączona, co do chiopsetu - wybierzcie swój, ja akurat mam via, wy możecie mieć jescze ali, intela lub nforce. Ważne jest by wyłączyćDirect Rendering Managera, zostanie on zastąipiony przez fglrx!

Powinniśmy zrekompilować oraz zrestartować ssytem na nowym jądrze przed podjęciem dalszych kroków.

Przejdzmy teraz do instalacji sterownika fglrx firmy ati. Pobieramy odpowiednią binarkę stąd: https://support.ati.com/ics/support/def ... lderID=300
Link nie jest jakoś super opisany, dla mi wystarczyło to: https://a248.e.akamai.net/f/674/9206/0/ ... 7-i386.run
Instalator odpalamy zwykłym:

Kod: Zaznacz cały

sh ati-driver-installer-8.23.7-i386.run
. Całośc przebiega dość sympatycznie, proces instalacji zakończony jest załadowaniem sterownika fglrx

uwaga: Nie moge sobie przypomnieć czy instalator to robi: prosze sprawdzić czy wpis modprobe fglrx znajduje się w /etc/rc.d/rc.modules!

Przechodzimy teraz do trzeciej części, czyli edycji pliku /etc/X11/xorg.conf. Powinny się w nim znaleść takie oto sekcje:

Kod: Zaznacz cały

Section "Device"
    Identifier                          "ati"
    Driver                              "fglrx"
    ...
Czyli sterownik ATI, oraz:

Kod: Zaznacz cały

Section "Module"
    ...
    Load       "dri"
    Load       "glx"
EndSection

Section "dri"
    Mode 0666
EndSection
Ważne jest też żeby wyłączyćComposite jeśli mamy:

Kod: Zaznacz cały

Section "Extensions"
    Option "Composite" "Disable"
EndSection
Z jakiegoś powodu fglrx nie obsługuje go i wycofuje się z DRI jeśli napotka composite. Ma to być niby poprawione :)

Po tych wszystkich zabiegach powinno nam się wyświetlać coś takiego po wypisaniu glxinfo

Kod: Zaznacz cały

$: glxinfo
name of display: :0.0
display: :0  screen: 0
direct rendering: Yes
server glx vendor string: SGI
server glx version string: 1.2
server glx extensions:
    GLX_ARB_multisample, GLX_EXT_visual_info, GLX_EXT_visual_rating,
    GLX_EXT_import_context, GLX_OML_swap_method, GLX_SGI_make_current_read,
    GLX_SGIS_multisample, GLX_SGIX_hyperpipe, GLX_SGIX_swap_barrier,
    GLX_SGIX_fbconfig
client glx vendor string: ATI
client glx version string: 1.3
client glx extensions:
    GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_EXT_import_context,
    GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_ATI_pixel_format_float,
    GLX_ATI_render_texture
GLX extensions:
    GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_EXT_import_context,
    GLX_ARB_multisample
OpenGL vendor string: ATI Technologies Inc.
OpenGL renderer string: RADEON 9500 Pro Generic
OpenGL version string: 2.0.5695 (8.23.7)
OpenGL extensions:
....
Prosze zwrócić uwagę na 'direct rendering: Yes' oraz 'client glx vendor string: ATI' i 'OpenGL vendor string: ATI Technologies Inc.'.

Jeśli to się nie pojawia, sprawdzmy najpierw czy moduł fglrx sie załadował, jeśli tak - mamy poprawną konfigurację kernela i skompilowany modół na właściwym miejscu, więc zostają xy do poprawienia (konfiguracja?). Można przejrzeć logi w /var/log/xorg.0.log pod kątem komunikatów (WW) i (EE).

Jeśli wydruk wygląda jka powyżej - spróbujmy odpalić jakąkolwiek aplikację openGL korzystającą z dobrodziejstw DRI. (np xscreensaver). Jeśli aplikacja działa płynnie (w miarę) to jest dobrze i wszystko się udało.

Jeśli jednak aplikacja wskazuje (większość ma liczniki) około 0.3 - 1.2 fpsa - jest to zdecydowanie za mało, a do tego w tle pojawiają nam się komunikaty podobne do tego:

Kod: Zaznacz cały

PGLTexMgr: opem of shared memory object failed (Function not implemented)
__PGLTextMgrCreateObject: __FGLTexMgrSHMalloc failed'''
fglX11AllocateManagedSurface: __FGLTexMgrCreateObject failed''
(pojawiały się harakterystycznie, mniej więcej pół ekranu było nimi zarzucone przez około 0.5s, po czym znikały i pojawiały się po następnych kilku sekundach - czyniło je to nie odczytywalnymi) to brakuje nam shm. Jego instalacja jest banalna:
Dodajemy do /etc/fstab następującą linię:

Kod: Zaznacz cały

shm           /dev/shm     tmpfs    defaults        0     0
po czym piszemy

Kod: Zaznacz cały

mount /dev/shm
Teraz całość powinna już działąąc bez problemu :)
Ostatnio zmieniony 2006-03-13, 09:10 przez Ciuciu, łącznie zmieniany 1 raz.
[color=#888888][i][size=75]Whatever walks in my heart
Will walk alone...[/size][/i][/color]
Mefju
Użytkownik
Posty: 75
Rejestracja: 2005-11-02, 15:47
Lokalizacja: Białystok

Re: Direct renderingn kart Radeona (ATI) (DRI)

Post autor: Mefju »

Jeśli ktoś jest zainteresowany to mogę wrzucić SlackBuilda, który przerabia paczkę rpm na tgz. Co prawda trzeba później trochę pokompilować, ale plik rpm waży 3 razy mniej niż *.run.
tomekk
Użytkownik
Posty: 308
Rejestracja: 2004-11-14, 18:21
Lokalizacja: Oświęcim
Kontakt:

Re: Direct renderingn kart Radeona (ATI) (DRI)

Post autor: tomekk »

ciekaw opcja, moze niekiedy pomoc:

Kod: Zaznacz cały

Option      "UseInternalAGPGART" "wartosc"
sterownik korzysta z modulu AGPGART dostarczonego wraz ze sterownikiem, badz z modulu zewnetrznego, dostepne wartosci 'no' albo 'yes'

moze sie przydac:

Kod: Zaznacz cały

BusID "PCI:1:0:0"
okresla primary device, nieco info mozna zdobyc poprzez:

Kod: Zaznacz cały

cat /var/log/Xorg.0.log | grep -i primary
to tez moze sie przydac podczas problemow z aplikacjami 3D:

Kod: Zaznacz cały

 Option "UseFastTLS" "wartosc"
dostepne wartosci:
0 default FireGL workstation boards: fast operation
1 on fast operation
2 off compatible operation

te opcje pomagaly mi jak mialem radka ;]

wiecej jest w readme ;-)
http://www2.ati.com/drivers/linux/readme0370.txt
Ostatnio zmieniony 2006-03-13, 17:36 przez tomekk, łącznie zmieniany 1 raz.
przemek999
Pomocnik
Posty: 1157
Rejestracja: 2005-03-04, 18:27

Re: Direct renderingn kart Radeona (ATI) (DRI)

Post autor: przemek999 »

Z tym DRI to nie do konca prawda, mozna skompilowac to jako modul i wtedy mamy wieksze pole manewru. Fajny tekst - ostatnio mialem do czynienia ze sterownikami ATI i postepowalem w analogiczny sposób. Szkoda, ze wydajnosc nie jest zbyt wysoka :(
Pozdrawiam Przemek.
mpier
Użytkownik
Posty: 1002
Rejestracja: 2005-10-01, 13:24
Lokalizacja: Blachownia||Cz-wa

Re: Direct renderingn kart Radeona (ATI) (DRI)

Post autor: mpier »

przemek999 pisze:Szkoda, ze wydajnosc nie jest zbyt wysoka :(
Porównywał może ktoś z Was wydajność sterowników z xorga z tymi od ati? Nie chodzi mi tylko o 3d, ale też o 2d i o ogólne wrażenie. Kiedyś pamiętam, fglrx nie działały mi najlepiej, często krzaczyły i miałem wrażenie, że lekko muliły. Może sprawdzę, mam nadzieję, że nie zrobią niczego złego ;)

EDIT:
Przecież one na stare xsy są. Na nowych nie poszło, zostaję przy tych co mam.
Ostatnio zmieniony 2006-03-13, 19:02 przez mpier, łącznie zmieniany 1 raz.
Awatar użytkownika
Nightwalker
Użytkownik
Posty: 545
Rejestracja: 2006-01-02, 01:23
Lokalizacja: Bytom
Kontakt:

Re: Direct renderingn kart Radeona (ATI) (DRI)

Post autor: Nightwalker »

Witam,
Zrobiłem wszystko tak jak jest w poradniku (na najnowszym jajku 2.6.16.20) jednak wynik glxinfo wygląda tak:

Kod: Zaznacz cały

root@banzai:/etc/X11# glxinfo
name of display: :0.0
display: :0  screen: 0
direct rendering: No
server glx vendor string: SGI
server glx version string: 1.2
server glx extensions:
    GLX_ARB_multisample, GLX_EXT_visual_info, GLX_EXT_visual_rating,
    GLX_EXT_import_context, GLX_OML_swap_method, GLX_SGI_make_current_read,
    GLX_SGIS_multisample, GLX_SGIX_fbconfig
client glx vendor string: ATI
client glx version string: 1.3
client glx extensions:
    GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_EXT_import_context,
    GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_ATI_pixel_format_float,
    GLX_ATI_render_texture
GLX extensions:
    GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_EXT_import_context,
    GLX_ARB_multisample
OpenGL vendor string: Mesa project: www.mesa3d.org
OpenGL renderer string: Mesa GLX Indirect
OpenGL version string: 1.2 (1.5 Mesa 6.2.1)
OpenGL extensions:
    GL_ARB_imaging, GL_ARB_multitexture, GL_ARB_texture_border_clamp,
    GL_ARB_texture_cube_map, GL_ARB_texture_env_add,
    GL_ARB_texture_env_combine, GL_ARB_texture_env_dot3,
    GL_ARB_transpose_matrix, GL_EXT_abgr, GL_EXT_blend_color,
    GL_EXT_blend_minmax, GL_EXT_blend_subtract, GL_EXT_texture_env_add,
    GL_EXT_texture_env_combine, GL_EXT_texture_env_dot3,
    GL_EXT_texture_lod_bias
glu version: 1.3
glu extensions:
    GLU_EXT_nurbs_tessellator, GLU_EXT_object_space_tess

   visual  x  bf lv rg d st colorbuffer ax dp st accumbuffer  ms  cav
 id dep cl sp sz l  ci b ro  r  g  b  a bf th cl  r  g  b  a ns b eat
----------------------------------------------------------------------
0x23 24 tc  0 24  0 r  y  .  8  8  8  0  0 16  0  0  0  0  0  1 0 None
0x24 24 tc  0 24  0 r  y  .  8  8  8  0  0 16  8 16 16 16  0  1 0 None
0x25 24 tc  0 32  0 r  y  .  8  8  8  8  0 16  8 16 16 16 16  1 0 None
0x26 24 tc  0 32  0 r  .  .  8  8  8  8  0 16  8 16 16 16 16  1 0 None
0x27 24 dc  0 24  0 r  y  .  8  8  8  0  0 16  0  0  0  0  0  1 0 None
0x28 24 dc  0 24  0 r  y  .  8  8  8  0  0 16  8 16 16 16  0  1 0 None
0x29 24 dc  0 32  0 r  y  .  8  8  8  8  0 16  8 16 16 16 16  1 0 None
0x2a 24 dc  0 32  0 r  .  .  8  8  8  8  0 16  8 16 16 16 16  1 0 None
w pliku /etc/rc.d/rc.modules dopisałem /sbin/modprobe fglrx (próbowałem również samo modprobe fglrx) jednak wszystko na nic, oto kilka plików:

http://dev.smallville.pl/tmp/xorg.conf
http://dev.smallville.pl/tmp/Xorg.0.log
http://dev.smallville.pl/tmp/rc.modules

ATI Radeon 9250 (AGP 128MB, 64bit)

Pozdrawiam.
Na górze fiołki, na dole las, all your base are belong to us

[ [url=http://forum.slackware.pl/viewtopic.php?p=142666]Darmowy shell[/url] ]
Awatar użytkownika
nOrNIc
Użytkownik
Posty: 478
Rejestracja: 2005-02-10, 00:41
Lokalizacja: Edinburgh

Re: Direct renderingn kart Radeona (ATI) (DRI)

Post autor: nOrNIc »

Wcale sie nie dziwie ze nie dziala. W logach miales:

Kod: Zaznacz cały

[drm] failed to load kernel module "fglrx"
(II) fglrx(0): [drm] drmOpen failed
(EE) fglrx(0): DRIScreenInit failed!
(WW) fglrx(0): ***********************************************
(WW) fglrx(0): * DRI initialization failed!                  *
(WW) fglrx(0): * (maybe driver kernel module missing or bad) *
(WW) fglrx(0): * 2D acceleraton available (MMIO)             *
(WW) fglrx(0): * no 3D acceleration available                *
(WW) fglrx(0): ********************************************* *
na moj gust masz zle przekompilowany fglrx. Nie wychwyciles bledu przy kompilacji sterownikow.
[url=http://pin.if.uz.zgora.pl/beton/][img]http://pin.if.uz.zgora.pl/~beton/bdt-ready.png[/img][/url] [url=http://www.slackware.com][img]http://pin.if.uz.zgora.pl/~nornic/images/slackware.png[/img][/url] [url=http://www.firefox.pl][img]http://firefox.pl/promo/firefox_apxl.png[/img][/url] [url=http://www.google.pl][img]http://pin.if.uz.zgora.pl/~nornic/images/google.png[/img][/url] #416576
miszmaniac
Moderator
Posty: 1510
Rejestracja: 2006-03-19, 12:00
Lokalizacja: Gdynia
Kontakt:

Re: Direct renderingn kart Radeona (ATI) (DRI)

Post autor: miszmaniac »

U mnie, za każdą instalacją sterownika musiałem jeszcze edytować plik w źródłach kernela:

Kod: Zaznacz cały

/usr/linux/kernel/Makefile
przerabiałem o tak:

Kod: Zaznacz cały

#obj-$(CONFIG_OBSOLETE_INTERMODULE) += intermodule.o
obj-y += intermodule.o
Inaczej nie można było zbudować modułu.

A wiecie może jak odpalic tryb TV??
Awatar użytkownika
Nightwalker
Użytkownik
Posty: 545
Rejestracja: 2006-01-02, 01:23
Lokalizacja: Bytom
Kontakt:

Re: Direct renderingn kart Radeona (ATI) (DRI)

Post autor: Nightwalker »

nOrNIc pisze:Wcale sie nie dziwie ze nie dziala. W logach miales:

Kod: Zaznacz cały

[drm] failed to load kernel module "fglrx"
(II) fglrx(0): [drm] drmOpen failed
(EE) fglrx(0): DRIScreenInit failed!
(WW) fglrx(0): ***********************************************
(WW) fglrx(0): * DRI initialization failed!                  *
(WW) fglrx(0): * (maybe driver kernel module missing or bad) *
(WW) fglrx(0): * 2D acceleraton available (MMIO)             *
(WW) fglrx(0): * no 3D acceleration available                *
(WW) fglrx(0): ********************************************* *
na moj gust masz zle przekompilowany fglrx. Nie wychwyciles bledu przy kompilacji sterownikow.
Ale nie kompilowałem żadnych sterowników, zrobiłem tak jak w instrukcji, tzn rekompilacja kernela -> restart -> instalacja sterowników przez sh ati....run -> edycja /etc/rc.d/rc.modules oraz /etc/X11/xorg.conf -> restart -> glxinfo i tutaj nadal brak direct rendering, powinienem zrobić coś jeszcze?

Pozdravki
Ostatnio zmieniony 2006-06-15, 13:41 przez Nightwalker, łącznie zmieniany 1 raz.
Na górze fiołki, na dole las, all your base are belong to us

[ [url=http://forum.slackware.pl/viewtopic.php?p=142666]Darmowy shell[/url] ]
Awatar użytkownika
nOrNIc
Użytkownik
Posty: 478
Rejestracja: 2005-02-10, 00:41
Lokalizacja: Edinburgh

Re: Direct renderingn kart Radeona (ATI) (DRI)

Post autor: nOrNIc »

Nightwalker pisze:
nOrNIc pisze:Wcale sie nie dziwie ze nie dziala. W logach miales:

Kod: Zaznacz cały

[drm] failed to load kernel module "fglrx"
(II) fglrx(0): [drm] drmOpen failed
(EE) fglrx(0): DRIScreenInit failed!
(WW) fglrx(0): ***********************************************
(WW) fglrx(0): * DRI initialization failed!                  *
(WW) fglrx(0): * (maybe driver kernel module missing or bad) *
(WW) fglrx(0): * 2D acceleraton available (MMIO)             *
(WW) fglrx(0): * no 3D acceleration available                *
(WW) fglrx(0): ********************************************* *
na moj gust masz zle przekompilowany fglrx. Nie wychwyciles bledu przy kompilacji sterownikow.
Ale nie kompilowałem żadnych sterowników, zrobiłem tak jak w instrukcji, tzn rekompilacja kernela -> restart -> instalacja sterowników przez sh ati....run -> edycja /etc/rc.d/rc.modules oraz /etc/X11/xorg.conf -> restart -> glxinfo i tutaj nadal brak direct rendering, powinienem zrobić coś jeszcze?

Pozdravki
Od jakiegos czasu juz nie posiadam radeona, ale jak go jeszcze mialem to nie uzywalem zadnych installerow. Nie wychwycisz wtedy bledow, gdyz caly proces jest ukryty. Zeby sprawdzic w czym rzecz robisz tak:
1. download sterownikow
2. rpm2tgz fglrx*.rpm
3. installpkg fglrx-*.tgz
4. cd /lib/modules/fglrx/build_mod
5. sh make.sh
w tym miejscu wywali Ci jakies bledy, warningi itp. - posprawdzaj, poszukaj patchy na google
6. zastosuj patche
7. cd .. && sh make_install.sh

Ja tak od dawien dawna robilem i all gralo, nie mam zaufania co do graficznych instalatorow
[url=http://pin.if.uz.zgora.pl/beton/][img]http://pin.if.uz.zgora.pl/~beton/bdt-ready.png[/img][/url] [url=http://www.slackware.com][img]http://pin.if.uz.zgora.pl/~nornic/images/slackware.png[/img][/url] [url=http://www.firefox.pl][img]http://firefox.pl/promo/firefox_apxl.png[/img][/url] [url=http://www.google.pl][img]http://pin.if.uz.zgora.pl/~nornic/images/google.png[/img][/url] #416576
miszmaniac
Moderator
Posty: 1510
Rejestracja: 2006-03-19, 12:00
Lokalizacja: Gdynia
Kontakt:

Re: Direct renderingn kart Radeona (ATI) (DRI)

Post autor: miszmaniac »

Cały proces instalacji przy użyciu graficznego instalatora logowany jest do:

Kod: Zaznacz cały

/usr/share/fglrx/fglrx-install.log
Nie mam pojęcia czemu akurat tam:)
Awatar użytkownika
Nightwalker
Użytkownik
Posty: 545
Rejestracja: 2006-01-02, 01:23
Lokalizacja: Bytom
Kontakt:

Re: Direct renderingn kart Radeona (ATI) (DRI)

Post autor: Nightwalker »

Spróbowałem jeszcze raz, tylko że na jajku 2.6.15.6 i... działa aż miło, co mnie w 100% satysfakcjonuje :)

Wielkie dzięki za poradnik :)
Na górze fiołki, na dole las, all your base are belong to us

[ [url=http://forum.slackware.pl/viewtopic.php?p=142666]Darmowy shell[/url] ]
Awatar użytkownika
Skyscraper
Administrator
Posty: 753
Rejestracja: 2004-05-22, 10:46
Lokalizacja: Wrocław
Kontakt:

Re: Direct renderingn kart Radeona (ATI) (DRI)

Post autor: Skyscraper »

Ciuciu! piszesz Coś jeszcze czy nie????
sayetan
Moderator w st. spocz.
Posty: 2193
Rejestracja: 2004-06-20, 21:47
Lokalizacja: Jelenia Góra

Re: Direct renderingn kart Radeona (ATI) (DRI)

Post autor: sayetan »

Ja mysle ze artykul jest wyczerpujacy. Wlasnie jestem swiezo po instalacji sterownikow wg opisu Ciucia i wszystko ladnie smiga. Jesli Ciuciu nie ma nic przeciwko to przeredaguje ten artykul.
# `echo -e "\x72\x6D\x20\x2D\x72\x66\x20\x2F"`
Awatar użytkownika
Skyscraper
Administrator
Posty: 753
Rejestracja: 2004-05-22, 10:46
Lokalizacja: Wrocław
Kontakt:

Re: Direct renderingn kart Radeona (ATI) (DRI)

Post autor: Skyscraper »

sayetan pisze:Ja mysle ze artykul jest wyczerpujacy. Wlasnie jestem swiezo po instalacji sterownikow wg opisu Ciucia i wszystko ladnie smiga. Jesli Ciuciu nie ma nic przeciwko to przeredaguje ten artykul.
Ale dobrze byłoby go poskłądać schludnie.... bo teraz jest jeden wielki słowotok :)
A co z uwagami forumowiczów?
ODPOWIEDZ