# [SDL] Segmentation Fault (SDL Parachute Deployed)

## microry

Bonjour,

Lorsque je veux lancer des jeux utilisant la 3D de SDL (ex: tuxracer, gltron,...), ça plante et ça me renvoit le msg suivant :

```
bash-2.05b# /usr/games/bin/gltron

[status] loading settings from /root/.gltronrc

[status] loading artpack 'default'

using min_filter: 9987 (setting: 3)

ALSA lib pcm_hw.c:1055:(snd_pcm_hw_open) open /dev/snd/pcmC0D0p failed: Device or resource busy

mcop warning: user defined signal handler found for SIG_PIPE, overriding

[scripting audio] found track ' song_revenge_of_cats.it '

[sound] initializing sound

mcop warning: user defined signal handler found for SIG_PIPE, overriding

Fatal signal: Segmentation Fault (SDL Parachute Deployed)
```

A priori, cela peut venir de Alsa (qui marche parfaitement ainsi que l'emulation oss) ou de ce denommé mcop. Mais puisque je suis un noob, j'ai un peu de mal. Je tient à préciser que j'ai essayé d'emerger les paquets stables puis instables (~arch) de SDL mais sans succès (si ce n'est que les msg d'erreurs changent)...

Sinon, pour mon premier post, je voulais féliciter la communauté gentoo pour son dynamisme et son enthousiasme (heu...)

 :Confused: 

----------

## DuF

N'aurais-tu pas déjà une application qui utilise cette ressource : /dev/snd/pcmC0D0p ?

Tu dois pouvoir t'aider de fuser (man fuser) en faisant notamment un : fuser /dev/snd/pcmC0D0p

----------

## microry

le fuser me retourne 

```
/dev/snd/pcmC0D0p:    4011  4011m  4102  4102m 15887 15887m

```

ce qui est pas super clair...  :Rolling Eyes: 

----------

## DuF

man fuser :

 *Quote:*   

> DESCRIPTION
> 
>        fuser  displays  the  PIDs  of processes using the specified files or file systems.  In the default display mode,
> 
>        each file name is followed by a letter denoting the type of access:
> ...

 

----------

## navidson

si tu as active l' emulation oss dans alsa tu peux essayer 

```
export SDL_AUDIODRIVER="oss"
```

  avant de lancer le jeu en question.

marche aussi avec "esd alsa artsc"....

----------

## microry

Ok ça marche merci.

Cependant, tous les jeux rament... pourtant avec glxgears j'obtient

```
648 frames in 5.0 seconds = 129.600 FPS

```

en moyenne ... donc ca vient d'autre chose... 

ya pas une variable du type SDL_AUDIODRIVER="oss" pour le moteur 3d ? (après je vous embète plus promis... enfin j'espère)

----------

## ghoti

 *microry wrote:*   

> pourtant avec glxgears j'obtient
> 
> ```
> 648 frames in 5.0 seconds = 129.600 FPS
> 
> ...

 

Heu, 129 fps, ce n'est pas normal du tout !

Tu es sûr de ce chiffre ?

A titre indicatif : j'ai dans les 2800 fps sur un système plutôt dépassé côté graphique  ...  :Wink: 

----------

## navidson

fais voir un glxinfo dans un term et regarde a la ligne 

 *Quote:*   

> direct rendering: Yes

  si ya no a la place cest que ta carte graphique est pas bien configurée[/code]

----------

## microry

sur de sur ... j'ai donc un pb avec ma config graphique

voici ce que me retourne glxinfo

```
bash-2.05b# 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_EXT_visual_info, GLX_EXT_visual_rating, GLX_EXT_import_context

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

OpenGL vendor string: Mesa project: www.mesa3d.org

OpenGL renderer string: Mesa GLX Indirect

OpenGL version string: 1.3 Mesa 4.0.4

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  1 24  0 r  y  .  8  8  8  0  0 16  0  0  0  0  0  1 0 None

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

0x25 24 tc  1 24  0 r  y  .  8  8  8  8  0 16  8 16 16 16 16  1 0 None

0x26 24 tc  1 24  0 r  .  .  8  8  8  8  0 16  8 16 16 16 16  1 0 None

0x27 24 dc  1 24  0 r  y  .  8  8  8  0  0 16  0  0  0  0  0  1 0 None

0x28 24 dc  1 24  0 r  y  .  8  8  8  0  0 16  8 16 16 16  0  1 0 None

0x29 24 dc  1 24  0 r  y  .  8  8  8  8  0 16  8 16 16 16 16  1 0 None

0x2a 24 dc  1 24  0 r  .  .  8  8  8  8  0 16  8 16 16 16 16  1 0 None

```

Mais pourtant avec glxgears je vois les engrenages tourner très fluidement

----------

## microry

ok et comment on fait pour activer direct rendering ?

----------

## DuF

En dessous de 900 c'est pas terrible comme score et souvent ça indique que l'accelération OpenGL hardware n'est pas activé (et qu'aucun jeu 3D OpenGL ne fonctionnera correctement).

AMHA c'est plus un souci avec glx que le direct rendering.

Si t'as une carte ATI il y a une FAQ là : http://www.gentoo.org/doc/fr/ati-faq.xml

Tu peux peut être essayer le driver propriétaire ATI si t'as carte est supérieure à une radeon 9000.

----------

## microry

le problème est que j'ai déjà les drivers ati proprio et j'ai suivi à la lettre les indications de la FAQ ATI...  :Sad: 

merci quand même ...

----------

## ghoti

 *microry wrote:*   

> direct rendering: No
> 
> server glx vendor string: SGI
> 
> server glx version string: 1.2
> ...

 

As-tu essayé opengl-update ati ?

----------

## microry

oui j'ai deja fait opengl-update ati mais sans succès.

Mais je ne vois pas ce que vient faire mesa dans le glxinfo, je croyais que c'etait à eviter car trop lent. En fait si qqun pouvait m'eclaircir un peu sur tout ça ca serait bien sympathique (noob connection  :Smile: )

----------

## ghoti

 *microry wrote:*   

> oui j'ai deja fait opengl-update ati mais sans succès.

 

En fait, il y a plusieurs implémentations d'OpenGL :

- celle implémentée par xfree (=Mesa)

- celle du constructeur de la carte graphique (beaucoup plus performante).

Ton glxinfo indique que c'est la version mesa qui est active pour l'instant.

opengl-update permet précisément de passer de l'une à l'autre.

Attention : je ne suis pas certain que les versions stables (<1.6) supportent autre chose que xfree et nvidia.

Par contre, je suis certain que la version 1.6 supporte ati et matrox mais elle est "tilde-archée".

Tu peux la "forcer" en indiquant la ligne suivante dans le fichier /etc/portage/package.keywords (le créer au besoin) :

```
x11-base/opengl-update ~x86
```

Tu peux alors lancer l'emerge opengl-update

Si tu as toujours une erreur à l'exécution, balance-nous le message : on y verra peut-être plus clair !  :Wink: 

----------

## microry

je n'ai plus de message d'erreur grace à 

```
export SDL_AUDIODRIVER="alsa"
```

en revanche j'ai un fps très faible (~100) et tous les jeux utilisant de la 3d rament...

j'ai emerger opengl-update 1.6 et refait opengl-update ati. Toujours le même problème...

Peut être une piste : j'ai emergé les ati-drivers ainsi que ati-drivers-extra qui sont des utils dont fgl_glxgears qui me retourne : 

```
 Error: couldn't get fbconfig 
```

Qu'est ce que c'est ça ?

Il ya aussi ça  

```
bash-2.05b# fglrxinfo

display: :0.0  screen: 0

OpenGL vendor string: Mesa project: www.mesa3d.org

OpenGL renderer string: Mesa GLX Indirect

OpenGL version string: 1.3 Mesa 4.0.4

```

qui confirme apparemment que mesa casse les c******

----------

## microry

voici le log d'xfree

```
fglrx(0):     Desc: ATI Fire GL DRM kernel module

(II) fglrx(0): Kernel Module version matches driver.

(II) fglrx(0): Kernel Module Build Time Information:

(II) fglrx(0):     Build-Kernel UTS_RELEASE:        2.6.3

(II) fglrx(0):     Build-Kernel MODVERSIONS:        no

(II) fglrx(0):     Build-Kernel __SMP__:            no

(II) fglrx(0):     Build-Kernel PAGE_SIZE:          0x1000

(II) fglrx(0): [drm] register handle = 0xefef0000

(EE) fglrx(0): [agp] unable to acquire AGP, error "xf86_ENODEV"

(EE) fglrx(0): cannot init AGP

(II) fglrx(0): [drm] removed 1 reserved context for kernel

(II) fglrx(0): [drm] unmapping 8192 bytes of SAREA 0xd19e4000 at 0x401f9000

(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): ********************************************* *

(II) fglrx(0): FBADPhys: 0xd8000000 FBMappedSize: 0x04000000

(WW) fglrx(0): Failed to set up write-combining range (0xd8000000,0x4000000)

(II) fglrx(0): FBMM initialized for area (0,0)-(1024,8191)

(II) fglrx(0): FBMM auto alloc for area (0,0)-(1024,768) (front color buffer - assumption)

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

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

(II) fglrx(0): Using hardware cursor (scanline 768)

(II) fglrx(0): Largest offscreen area available: 1024 x 7419

(**) Option "dpms"

(**) fglrx(0): DPMS enabled

(II) fglrx(0): Using XFree86 Acceleration Architecture (XAA)
```

Il ya donc bien un problème avec AGP

J'ai pourtant agpgart "built" dans le noyau... 

par contre peut être que ca vient du fait que mon chipset (AMD IRONGATE) est en module. Et je ne sais pas qu'est ce qu'il faut faire...

----------

## DuF

Peut être inutile, mais moi j'essairai avec l'agpgart en tant que module, pour que le driver l'initialise lui même, des fois que.

----------

## microry

Ok ca marche maintenant... le problème venait du chipset agp de ma carte mère (IRONGATE) qui était en tant que module dans le noyau au lieu d'être integré au noyau. A noter aussi : desactiver le support DRI dans le noyau. J'éspère que ça aidera certains. 

En tout cas merci pour votre aide.   :Very Happy: 

----------

## yoyo

 *DuF wrote:*   

> En dessous de 900 c'est pas terrible comme score et souvent ça indique que l'accelération OpenGL hardware n'est pas activé (et qu'aucun jeu 3D OpenGL ne fonctionnera correctement).

 

Pas forcément :  *Quote:*   

> glxgears
> 
> 1172 frames in 5.0 seconds = 234.400 FPS
> 
> 1452 frames in 5.0 seconds = 290.400 FPS

 et  *Quote:*   

>  glxinfo 
> 
> name of display: :0.0
> 
> display: :0  screen: 0
> ...

   :Sad: 

TNT2 powa !!!   :Wink: 

----------

## navidson

@yoyo

c bizarre que tai si peu :

 *Quote:*   

> OpenGL renderer string: Mesa DRI Rage128 20020221 Pro AGP 1x x86/MMX/3DNow!

 

```
5479 frames in 5.0 seconds = 1095.800 FPS

5616 frames in 5.0 seconds = 1123.200 FPS
```

----------

## navidson

je rectifie ca depend aussi de la vitesse CPU donc jai rien dit mais bon euh

rage 128 power hein !!

----------

## yoyo

@navidson : Ouaaah, je suis bluffé !!!

 *Quote:*   

> OpenGL renderer string: RIVA TNT2/AGP/SSE

 

sur P3@866MHz ...

Ça semble correct docteur ???

----------

## navidson

ah chez moi c athlon @700 !!!!!

c louche tu trouves pas ?

----------

## yoyo

Bon, en aucun cas glxgears ne saurait être un bench fiable mais là, je trouve que l'écart est quand même important.

En plus, un top montre que mon PC n'est chargé qu'à 9% avant le glxgear ...

Ma carte est une elsa erazor III LT (donc "Lite") avec 64Mo de ram (de mémoire) et AGP 2X. Je suis sur un chipset  VIA Apollo Pro 133 et j'utilise AGPGART.

Quelqu'un aurait une idée de la raison pour laquelle je n'atteins pas les 300FPS avec ça ???

----------

## navidson

faudrait voir avec des jeux genre ut2003 ou quake3 chez moi c jouable et fluide vu le materiel.....

----------

## yoyo

Le problème, c'est que je n'ai aucun de ces jeux ...   :Crying or Very sad:   (je n'ai que gxmame)

Quels jeux (pas trop gros) tournant sous openGL, peuvent servir de test ?? Tuxracer ??

----------

## navidson

essaie chromium qui utilises SDl je suis a 50 fps avec tous les details en 1024*768

----------

## yoyo

Je tourne à 24 fps environ dans les mêmes conditions que toi ...   :Sad: 

----------

## navidson

ouais etrange . ya un driver fourni par nvidia pour les tnt ou c celui de xfree ?

----------

## ghoti

 *yoyo wrote:*   

> Quelqu'un aurait une idée de la raison pour laquelle je n'atteins pas les 300FPS avec ça ???

 

Tu ne ferais pas tourner glxgears en fullscreen des fois ?  :Laughing: 

----------

## yoyo

 *navidson wrote:*   

> ouais etrange . ya un driver fourni par nvidia pour les tnt ou c celui de xfree ?

 

En fait, j'utilise nvidia-kernel (par agpgart) et nvidia-glx pour ma carte. Tout fonctionne très bien et en fait, je ne m'étais jamais posé la question des fps, pensant que 300fps était un score raisonnable pour une tnt2 ...

Le direct rendering est bien activé et non, je ne suis pas en full screen lors du glxgears (ghoti, t'es un vilain !!!) et j'utilise un 2.6.3-gentoo-r1 avec agpgart en built-in.

----------

## navidson

peut-etre du au noyau 2.6 mais jen doute fortement.jai toujours mon 2.4.20  :Cool: 

----------

