Strona 1 z 2

Direct renderingn kart Radeona (ATI) (DRI)

: 2006-03-13, 09:01
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 :)

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

: 2006-03-13, 09:23
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.

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

: 2006-03-13, 17:35
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

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

: 2006-03-13, 17:47
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 :(

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

: 2006-03-13, 18:18
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.

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

: 2006-06-14, 17:10
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.

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

: 2006-06-14, 22:18
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.

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

: 2006-06-14, 22:32
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??

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

: 2006-06-15, 13:40
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

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

: 2006-06-15, 21:40
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

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

: 2006-06-15, 22:18
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:)

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

: 2006-06-20, 23:20
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 :)

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

: 2006-08-25, 18:50
autor: Skyscraper
Ciuciu! piszesz Coś jeszcze czy nie????

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

: 2006-10-04, 18:18
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.

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

: 2006-10-13, 18:06
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?