# voodoo3 - hardware acceleration!

## MaHejn

hail 2the king of gentoo!

ich habe mich noch nie grossartig mit der hardwarebeschleunigung unter linux beschäftigt. aber seitdem ich gentoo nutze, ist es viel einfacher, das system zu administrieren und mir bleibt, wie ich finde, auch wieder ein wenig zeit zum zocken!

nun stellt sich aber das problem, dass ich keine ahnung von der installation der treiber habe. auch tutorials im netzt konnten erstmal nicht weiterhelfen, da ich keine mesa-ebuilds zum emergen gefunden habe. läuft die installation der voodoo3 treiber unter gentoo anders, als beim standart-linux?

für eie detailierte erklärung zur installation der 3d-beschleunigung wäre ich sehr dankbar.

auch das zusammenwirken von mesa, opengl, dri und glu *?* habe ich noch nicht wirklich verstanden.

gruss, Mahejn

----------

## Beforegod

Hi normalerweise solltes Du Deine Voodoo 3 im Kernel einstellen können. Das heisst das die normalen GLX Versionen von XFree benutzt werden (ab 4.x)

Die genaue Option müsstest Du finden unter :

Character Devices

```

 [*] Direct Rendering Manager (XFree86 DRI support)                      

 --- DRM 4.1 drivers                                                     

 <*>   3dfx Banshee/Voodoo3+ (NEW)                                       

 < >   ATI Rage 128 (NEW)                                                

 <M>   ATI Radeon (NEW)                                                  

 < >   Intel I810 (NEW)                                                  

 < >   Intel 830M (NEW)                                                  

 < >   Matrox g200/g400 (NEW)                                            

 < >   SiS (NEW)   

```

Dort stellst Du Deine Voodoo 3 ein und XFree sollte mit 3d beschleunigung laufen

----------

## MaHejn

okay .. soweit habe ich es, nun muss ich sicher noch mesa/opengl installieren um in den genuss von schnellem 3D in spielen wie quake3 oder UT zu kommen. ich habe mal über emerge gesucht, es gibt nur ein opengl-update, weder glut noch mesa sind zu finden ...

was tun?

----------

## Beforegod

Du brauchst soweit ich weiss kein Mesa oder GLUT.

XFree 4.2 bringt selber GLX Treiber mit mit dennen Q3 dann funzen sollten. Probier es einfach mal aus.

----------

## Tharkun

Es gibt nen use flag für die voodoo3. 

Pack 3dfx und voodoo3 in deine use vars und merge xfree neu.

----------

## MaHejn

alles klaro, ich werde dann neue emergen müssen, denn momentan sagt mir glxinfo, dass ich keine 3d support habe. zumindestens kein dri und auch quake3 läuft nur im softewaremodus

gruss, MaHejn

----------

## Hans25

um die hardwarebeschleunigung zum laufen zu bringen sind folgende dinge zu tun.

1. kernel modul compilieren tdfx

2. kernel modul laden: insmod tdfx  (in /etc/modules.autoconf tdfx eintragen)

3. in den /etc/make.conf use variablen "3dfx voodoo3" eintragen

(warscheinlich für voodoo4/5 voodoo4 oder voodoo5 eintragen

weiß ich aber auch nicht genau weil ich keine 4 oder 5 hab )

4. Glide mergen: emerge glide-v3

5. Mesa mergen: emerge mesa  (das packet mesa is aus irgendwelchen gründen masked. entweder aus der package mask austragen oder einfach mit kportagemaster oder portagemaster installieren.)

6. eventuell Xfree nochmal bauen lassen: emerge xfree

7. in /etc/X11/Xf86Config die eintragungen in den sectionen machen

Section "Module"

    Load        "glx"

    Load        "dri"

EndSection

Section "DRI"

    Mode 0666

EndSection

damit müsst es dann funktionieren.

schreibt ins forum wenns funktioniert oder nicht funktioniert.

----------

## MaHejn

mit der neu gesetzten USE auf 3dfx und voodoo3 habe ich xfree und glide-v3 emerged, jetzt habe ich dri support und quake 3 läuft auch ohne probleme hardwarebeschleunigt.

allerdings habe ich mesa nicht hinbekommen. könntest du @Hans25 nochmal erklären, wie ich das package unmaske?

unter glxgears bekomme ich 670 fps auf einem p2 mit 400MHz,192 MB ram und voodoo3, 16MB.

ist das ein akzeptables ergebnis, oder wie könnte man weiterhin tunen?

gruss, MaHejn

----------

## Hans25

also um ein packet zu installieren das masked ist hast du folgende mir bekannte möglichkeiten.

1. du instalierst kportagemaster oder portagemaster das is ein tool für eine einfache und übersichtliche packet verwaltung.

 #emerge kportagemaster oder

 #emerge portagemaster

damit siehst du die gemasketen packete und kannst sie installieren

2. Die andere und umständliche möglichkeit ist 

du editierst die datei /usr/portage/profiles/package.mask

einfach nach mesa suchen und denn eintrag mit einem # zeichen 

auskommentieren.

ein glxgears bei mir gibt folgende werte. (athlon 500@750 voodoo3 3000)

glxgears

4936 frames in 5.0 seconds = 987.200 FPS

ich hoffe ich konnte weiterhelfen

----------

## MaHejn

weiterhelfen konntest du auf jeden fall! ich werde das package per hand unmasken, da ich meine, so lernt man es am besten.

und nochmal besten dank an die gesammte mannschaft dieses topics. ihr habt wirklich ausgezeichnete arbeit geleistet!  :Smile: 

gruss, MaHejn

----------

## JohnyB

Hallo,

ich habe jetzt alle Sachen installiert und XFree schon 2 mal neu compiliert.... Auch meine Xconfig sollte richtig sein. Dennoch geht bei mir keine Hardware Beschleunigung von 3D..  :Sad:  es gibt da ja diese MESA_GLX_FX Variable. da hat er mir immer gesagt, ich soll das doch auf disable setzen.. Das bringt aber auch nichts. Dann hab ich dafür noch die Funktionen "window" und "fullscreen" gefunden. Leider endet das mit einem Segmentation Fault........ glxinfo gibt aus:

name of display: :0.0

gd error (glide): gd error (glide): grSstSelect:  non-existent SSTgd error (glide): grSstSelect:  non-existent SSTSegmentation fault

(wenn MESA_GLX_FX=window bzw. fullscreen)

und:

name of display: :0.0

display: :0  screen: 0

direct rendering: No

server glx vendor string: Brian Paul

server glx version string: 1.3 Mesa 3.5

server glx extensions:

    GLX_MESA_pixmap_colormap, GLX_EXT_visual_info, GLX_EXT_visual_rating,

    GLX_MESA_release_buffers, GLX_MESA_copy_sub_buffer, GLX_SGI_video_sync,

    GLX_ARB_get_proc_address

client glx vendor string: Brian Paul

client glx version string: 1.2 Mesa 3.5

client glx extensions:

    GLX_MESA_pixmap_colormap, GLX_EXT_visual_info, GLX_EXT_visual_rating,

    GLX_MESA_release_buffers, GLX_MESA_copy_sub_buffer, GLX_SGI_video_sync,

    GLX_ARB_get_proc_address

GLX extensions:

    GLX_MESA_pixmap_colormap, GLX_EXT_visual_info, GLX_EXT_visual_rating,

    GLX_MESA_release_buffers, GLX_MESA_copy_sub_buffer, GLX_SGI_video_sync,

    GLX_ARB_get_proc_address

OpenGL vendor string: Brian Paul

OpenGL renderer string: Mesa X11

OpenGL version string: 1.2 Mesa 3.5

OpenGL extensions:

    GL_ARB_imaging, GL_ARB_multitexture, GL_ARB_texture_border_clamp,

    GL_ARB_texture_compression, 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_bgra, GL_EXT_blend_color, GL_EXT_blend_func_separate,

    GL_EXT_blend_logic_op, GL_EXT_blend_minmax, GL_EXT_blend_subtract,

    GL_EXT_clip_volume_hint, GL_EXT_convolution, GL_EXT_compiled_vertex_array,

    GL_EXT_fog_coord, GL_EXT_histogram, GL_EXT_packed_pixels,

    GL_EXT_paletted_texture, GL_EXT_point_parameters, GL_EXT_polygon_offset,

    GL_EXT_rescale_normal, GL_EXT_secondary_color,

    GL_EXT_shared_texture_palette, GL_EXT_stencil_wrap, GL_EXT_texture3D,

    GL_EXT_texture_env_add, GL_EXT_texture_env_combine,

    GL_EXT_texture_env_dot3, GL_EXT_texture_object, GL_EXT_texture_lod_bias,

    GL_EXT_vertex_array, GL_HP_occlusion_test, GL_INGR_blend_func_separate,

    GL_MESA_resize_buffers, GL_MESA_window_pos, GL_NV_blend_square,

    GL_NV_texgen_reflection, GL_SGI_color_matrix, GL_SGI_color_table,

    GL_SGIS_generate_mipmap, GL_SGIS_pixel_texture,

    GL_SGIS_texture_border_clamp, GL_SGIS_texture_edge_clamp,

    GL_SGIX_depth_texture, GL_SGIX_pixel_texture, GL_SGIX_shadow,

    GL_SGIX_shadow_ambient

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  8 16 16 16  0  0 0 None

0x24 24 tc  0 24  0 r  y  .  8  8  8  0  0 16  8 16 16 16 16  0 0 None

0x25 24 dc  0 24  0 r  y  .  8  8  8  0  0 16  8 16 16 16 16  0 0 None

0x26 24 dc  0 24  0 r  y  .  8  8  8  0  0 16  8 16 16 16 16  0 0 None

bei "disable"

kann mir jemand irgendwie helfen?

danke schonmal.

bis dann

julian

----------

## Markus1976

 *Hans25 wrote:*   

> 
> 
> 5. Mesa mergen: emerge mesa  (das packet mesa is aus irgendwelchen gründen masked. entweder aus der package mask austragen oder einfach mit kportagemaster oder portagemaster installieren.)
> 
> 

 

Mesa muß nicht installiert werden für hardwarebeschleunigtes 3D, denn die benötigten Teile sind bereits in X enthalten. Kleines Zitat aus dem README.DRI, Abschnitt "Prerequisite Software":

o You DO NOT need to install Mesa separately.  The parts of Mesa needed for hardware acceleration are already in the XFree86/DRI project.

Auf meinem P3-500/Voodoo3 läufts jedenfalls ohne Mesa, und auch recht flink (ca. 950 FPS mit glxgears)...  :Smile: 

Was bei der Installation einer Voodoo-Karte trickreich sein kann, ist die Glide/Xfree Geschichte: Es kann sein, daß man erst Xfree, dann Glide, dann wieder Xfree emergen muß, dabei die passenden Use-flags ('3dfx' und 'Voodoo3') nicht vergessen. Aber das hat Hans25 ja schon geschrieben...

Bis denne,

Markus

----------

## Platinuim

soo hallo erstmal ich bin neu hier. Da mein Problem dazu paßt schreib ich es hier mit drunter obwohl der theard schon älter ist.

ich hab hier jetzt fast alles durchgemacht und die hardwarebeschleunigung funktioniert nicht. 

Hier das System:

1000MHz AMD Athlon

512 MB Ram

voodoo 3 2000 rev. 1

falls was fehlt ich bin Neuling bitte nicht gleich so hart ins Gericht gehen.

Hier die Schritte die ich gemacht hab man beachte die reihnfolge:

1. use flags in make.conf eingestellt

2. xfree emerget (ab hier wußte ich das die Ha nicht funktioniert)

3. in /etc/X11/Xf86Config die Eintragungen vorgenommen

4. glide-v3 emerget

5. einstellungen in /etc/X11XXf86Config kontrolliert

6. Option im Kernel anhand von "make menuconfig" auf 3dfx Banshee/Voodoo3 gestellt

So jetzt bin ich gerade dabei xfree neu zu emergen.  

Immer wenn ich glxinfos eingebe bekomme ich die Meldung "Xlib: extension "XFree86-DRI" missing on display ":0.0"." und "hardware accerlation: off" . 

Bei "glxgears" kommen 200 flinke FPS raus.

Bei eingabe von insmod tdfx kommt: "Using /lib/modules/2.4.20-gentoo-r7/kernel/drivers/char/drm/tdfx.o

/lib/modules/2.4.20-gentoo-r7/kernel/drivers/char/drm/tdfx.o: unresolved symbol cmpxchg". Das Modul ist also geladen oder liege ich da falsch?

Da bin ich jetzt schon auf dem richtigen weg um dieses Problem zu lösen oder?

Außerdem hab ich irgendwo mal was gelesen das bei der voodoo3 bei über einer Auflösung von 1024x768 16bit die Hardwarebeschleunigung nicht funktioniert. stimmt das?

schonmal danke im voraus 

gruss, Platinuim

----------

## Stere

 *Quote:*   

> Da bin ich jetzt schon auf dem richtigen weg um dieses Problem zu lösen oder?

 

Na fast ...

 *Quote:*   

> 6. Option im Kernel anhand von "make menuconfig" auf 3dfx Banshee/Voodoo3 gestellt

 

Laß das weg im Kernel und mache mal ein "emerge xfree-drm". Die Kerneltreiber sind für ältere Xfree-Versionen. Ab Xfree 4.3 nimm xfree-drm. Hier findest Du das nochmal genauer beschrieben:

http://www.gentoo.org/doc/en/dri-howto.xml

Gruß Steffen

----------

## Platinuim

naja macht ja nix hab ja schließlich erst vor 10 Minuten "make dep" eingegeben.  :Laughing: 

nur um nochmal sicher zu gehen 

was für treiber soll ich jetzt unter "console driver" anwählen? Die vesa die standart ausgewählt waren  oder garkeine. jetzt zur zeit sind die 3dfx Banshee ausgewählt.

ok das mit dem Direct Render Manager is jetzt klar.

Danke für die Antwort. Ich werde morgen berichten ob es geklappt hat

gruss, Platinuim

----------

## Platinuim

So ich bin jetzt total verwirrt. Das oben genannte how.to hab ich durchgemacht, außerdem noch zig andere how.to's. Außer das es nicht funktioniert nein alle howto´s sind anders beim einen heißt es dri manager auf jeden fall enabeln, beim anderen heißt es auf jeden fall disablen, und mesa auf alle fälle installieren beim anderen wieder nicht. 

bin für jeden hilfreichen rat dankbar

gruss, Platinuim

----------

## sputnik1969

 *Platinuim wrote:*   

> 
> 
> Bei eingabe von insmod tdfx kommt: "Using /lib/modules/2.4.20-gentoo-r7/kernel/drivers/char/drm/tdfx.o
> 
> /lib/modules/2.4.20-gentoo-r7/kernel/drivers/char/drm/tdfx.o: unresolved symbol cmpxchg". Das Modul ist also geladen oder liege ich da falsch?
> ...

 

Nein, es ist nicht geladen worden, da ein symbol (cmpxchg) nicht aufgelöst werden kann.

----------

## Platinuim

und was muß ich verändern damit es geladen wird?

----------

## sputnik1969

 *Platinuim wrote:*   

> und was muß ich verändern damit es geladen wird?

 Ich würde sagen, du musst den kernel neu kompilieren, installieren und dann neu starten...

----------

## Platinuim

naja des mach ich heut ja schon zum 4. mal bin gerade beim 5. 

Diese Fehlermeldung "Xlib: extension "XFree86-DRI" missing on display ":0.0"." ist jetzt weg nachdem ich die Auflösung auf 1024x768 runter gestellt hab.

Jetzt geht es eigentlich nur noch um das direkt rendering weil des noch auf no steht. 

Ach ja bei der eingabe von "lscpi | grep AGP" kommt bei mir: "00:01.0 PCI bridge: Advanced Micro Devices [AMD] AMD-751 [Irongate] AGP Bridge (rev 01)" 

Unter Character devices --->  

<*> /dev/agpgart (AGP Support)

[*] AMD Irongate, 761, and 762 support

hab ich des so eingestellt. Ist das richtig so, oder ist diese option nur für 761 und 762?

gruss, Platinuim

----------

## Platinuim

hm ich hab jetzt mal die XFree86.0.log durchgeschaut und da finde ich diesen eintrag:

```

drmOpenDevice: minor is 0

drmOpenDevice: node name is /dev/dri/card0

drmOpenDevice: open result is -1, (No such device)

drmOpenDevice: open result is -1, (No such device)

drmOpenDevice: Open failed

drmOpenDevice: minor is 0

drmOpenDevice: node name is /dev/dri/card0

drmOpenDevice: open result is -1, (No such device)

drmOpenDevice: open result is -1, (No such device)

drmOpenDevice: Open failed

[drm] failed to load kernel module "agpgart"

[drm] failed to load kernel module "tdfx"

(II) TDFX(0): [drm] drmOpen failed

(EE) TDFX(0): [dri] DRIScreenInit failed, disabling DRI.

(II) TDFX(0): Using XFree86 Acceleration Architecture (XAA)

        Screen to screen bit blits

        Solid filled rectangles

        8x8 mono pattern filled rectangles

        Indirect CPU to Screen color expansion

        Solid Lines

        Dashed Lines

        Offscreen Pixmaps

        Driver provided NonTEGlyphRenderer replacement

        Setting up tile and stipple cache:

                32 128x128 slots

                10 256x256 slots

(==) TDFX(0): Backing store disabled

(==) TDFX(0): Silken mouse enabled

(==) TDFX(0): Direct rendering disabled

(==) RandR enabled

```

In dem vorherigen theard hab ich beschrieben welchen agpgart ich benutze. Ist ja offensichtlich der falsche. Welchen soll ich aber dann benutzen?

gruß, Platinuim

----------

## selwyn

Es gibt da zwei Dokumentationen die du dir zu Gemüte führen könntest:

0. http://www.gentoo.org/doc/en/dri-howto.xml

(Dafür ist vielleicht ein bisschen zu spät ich geb's zu)

1. http://dri.sourceforge.net/cgi-bin/moin.cgi/DriTroubleshooting

(Diese hingegen ist zwar auch auf Englisch aber extrem gut Schritt für Schritt)

btw falls du den gcc3.3.1 benutzt, schau' dir mal die Meldungen an die beim Compilieren von glide-v3 anfallen, das Paket ist in dem Falle nämlich gerade nicht funktionsfähig.

----------

## Platinuim

hab ich beide leider schon durch.

Trotzdem danke.

gruß, Platinuim

----------

## Inte

 *Platinuim wrote:*   

> In dem vorherigen theard hab ich beschrieben welchen agpgart ich benutze. Ist ja offensichtlich der falsche. Welchen soll ich aber dann benutzen?

 

 :Wink:  Klar kommt die Fehlermeldung, daß das Modul agpgart nicht geladen werden kann. Schließlich hast Du kein Modul erstellt, sondern es fest in den Kernel einkompiliert.

Gruß, Inte.

----------

## Platinuim

Ja das war ein guter Tip, danke Inte.

jetzt steht nur noch das mit dem tdfx modul da

```

drmOpenDevice: minor is 0

drmOpenDevice: node name is /dev/dri/card0

drmOpenDevice: open result is -1, (No such device)

drmOpenDevice: open result is -1, (No such device)

drmOpenDevice: Open failed

drmOpenDevice: minor is 0

drmOpenDevice: node name is /dev/dri/card0

drmOpenDevice: open result is -1, (No such device)

drmOpenDevice: open result is -1, (No such device)

drmOpenDevice: Open failed

[drm] failed to load kernel module "tdfx"

(II) TDFX(0): [drm] drmOpen failed

(EE) TDFX(0): [dri] DRIScreenInit failed, disabling DRI.

```

jetzt schätze ich mal, ich muß tdfx auch noch als modul einkompilieren. Nur bin ich mir nicht sicher wo und wie.

es gibt noch diese option " Character devices  --->[ ] Direct Rendering Manager" in der Kernelconfiguration dort kann man dann voodoo anwählen. In den meisten anleitungen die ich gelesen habe steht aber man soll den drm nicht laden. Und unter  "Console drivers  --->  Frame-buffer support  --->" gibt es dann noch 

"< >   3Dfx Banshee/Voodoo3 display support (EXPERIMENTAL)             

< >   3Dfx Voodoo Graphics (sst1) support (EXPERIMENTAL)"

zur Auswahl

Jetzt bin ich natürlich total verwirrt und weiß nicht was ich nehmen soll.

gruß Platinuim

gruß Platinuim

----------

## Platinuim

So jetzt funktioniert es endlich.

agpgart ist als modul eincompiliert, 

und entgegen den meisten how to's ist der Direct Rendering Manager, und die entsprechende Grafikkarte als Modul geladen.

gruß Platinuim

----------

