IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

OpenGL Discussion :

Problème d'initialisation en Release/Debug sur différents PC


Sujet :

OpenGL

  1. #1
    Expert éminent sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 031
    Points : 11 476
    Points
    11 476
    Billets dans le blog
    11
    Par défaut Problème d'initialisation en Release/Debug sur différents PC
    Bonjour,

    Je développe mon propre moteur 3D, qui commence à être conséquent même s'il est loin d'être fini.

    Jusqu'à présent je le développais et effectuais mes tests avec un pc ayant une carte NVidia (GeForce FX 5600), je n'avais aucun problème.
    Ayant changé de PC avec maintenant un GPU ATI (HD 5750) je me suis rendu compte que le moteur compilé avec mon ancien PC se charge correctement, charge les meshes correctement, mais n'affiche strictement rien. Il n'y a cependant aucune erreur (un appel de glGetError après chaque directive OpenGL pour vérifier).

    Encore plus fort : après avoir recompilé mon moteur sur mon nouveau PC avec le même Visual Studio qu'avant et sans avoir touché ni au code ni aux librairies attenantes, ça fonctionne correctement sur mon nouveau pc mais pas sur mon pc au taf (qui a un GPU NVidia).

    On monte encore d'un cran : j'ai voulu faire tester mon moteur à un développeur ayant une machine avec une carte graphique ATI Radeon 7000 et quelque soit la version que je lui passe (compilée sur ATI ou compilée sur NVidia) il rencontre le problème de n'avoir aucun affichage sans avoir d'erreur

    Quelqu'un a-t-il une idée pour m'aider dans mes recherches sur ce bug ? Parce que là on est un peu (complètement) perplexes.
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bienvenue dans le monde merveilleux d'OpenGL.

    Je te conseille de cibler précisément les cartes sur lesquelles tu voudrais que ton moteur marche ou pas, sans être trop ambitieux. Achêtes toi d'occasion la carte minimum pour chaque vendor, ATI et NVIDIA voir Intel si tu es courageux (grand max 30€ d'occasion).

    A l'heure actuelle je te dirais de prendre pour cible les cartes au dessus de Geforce 8 / ATI HD 2400, mais tu veux peut-être faire mieux. Supporter les ATI en dessous des R600 est super pénible. Les drivers sont buggés et ne seront jamais réparés.

    En général NVIDIA est trop laxiste alors qu'ATI implémente mal la spécification. Intel je préfère ne pas en parler.

    Ensuite prends toujours les derniers drivers mais ne change pas trop souvent non plus car quelque chose casse souvent à chaque driver. Attends que les autres prennent ce risque pour toi.

    Inspire toi du code de Ogre3D qui est passé par là lui aussi. Par exemple pour la création de texture il vaut mieux ne pas utiliser les texture NPOT (oui, même si la carte dit qu'elle les supporte, en fait pas vraiment), et créer chaque niveau de mipmap un par un.

    Essaye de bien comprendre la séparation entre l'état Sampler et l'état Texture, si tu utilise les multi-textures.

    Utilises les glGet dans tout les sens et doute de tout, et éventuellement tu trouveras la compatibilité. Tu peux vouloir vérifier les codes d'erreurs partout, mais si le driver plante ca ne sert à rien .

    Si tu veux que ca marche vraiment partout avec moins d'effort, ben heu... reste en fixed function mais ca sera moche.

    Arrivé là tu comprendras pourquoi le seul jeu indie OpenGL avec du postprocessing digne de ce nom a été fait par un mec de l'ARB.
    http://www.quelsolaar.com/opengl_performance.txt
    FEAR

    En ce qui concerne ton problème, ca pourrait-être :

    - le niveau de mipmaps que tu veux sampler n'existe pas vraiment, n'a pas été créé
    - tu utilise un sampler wrappé dans une struct dans un shader GLSL
    - tu n'appelle pas glEnable(GL_TEXTURE_2D); pour activer tes samplers (tu croyais que ca ne servait qu'en fixed function ? eh bien non).
    Dernière modification par Invité ; 25/06/2010 à 15h28.

  3. #3
    Expert éminent sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 031
    Points : 11 476
    Points
    11 476
    Billets dans le blog
    11
    Par défaut
    Bon, en tout cas ce n'est aucune des 3 solutions que tu proposes vu que même une primitive non texturée n'est pas affichée...
    Je crois que je vais devoir m'amuser à m'acheter de vieilles cartes graphiques ^^
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  4. #4
    Membre expérimenté

    Profil pro
    Programmeur
    Inscrit en
    Août 2002
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Programmeur

    Informations forums :
    Inscription : Août 2002
    Messages : 1 091
    Points : 1 679
    Points
    1 679
    Par défaut
    Ça semble pointer vers un problème de ton côté, ce n'est pas parce qu'un code buggué marche "par accident" sur une machine qu'il marchera partout et tout le temps.

    Bref, essaie de partir des tutoriaux simples, dont tu as la garantie qu'ils marchent partout (ou du moins sur toutes tes machines cibles) et compare avec ta solution et vois là où tu diverges.

    Bonne chance,
    LeGreg

    Mon site web | Mon blog | Mes photos | Groupe USA
    > BONJOUR, JE SUIS NOUVEAU SUR CE FORUM
    > presse la touche caps lock, stp
    > OH.. MERCI C EST BEAUCOUP PLUS FACILE COMME CA

  5. #5
    Membre éprouvé Avatar de oxyde356
    Homme Profil pro
    Ingénieur Recherche Imagerie
    Inscrit en
    Février 2006
    Messages
    797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Recherche Imagerie

    Informations forums :
    Inscription : Février 2006
    Messages : 797
    Points : 1 087
    Points
    1 087
    Par défaut
    Ouai le mieux c'est de se fixer le type de carte minimum pour faire tourner son programme et de l'acheter pour faire ses tests dessus, je dirais de préférences une ATI qui sont beaucoup moins souples et qui t'imposeront la rigueur. Tu as plus de chances que si ton programme marche sous ATI il marchera sous nVidia que l'inverse. Après pour résoudre ton problème alors que ton moteur est déjà bien avancé je te souhaite bonne chance
    Essaye de faire des trucs vraiment minimalistes pour vite détecter les erreurs d'incompatibilités.

  6. #6
    Expert éminent sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 031
    Points : 11 476
    Points
    11 476
    Billets dans le blog
    11
    Par défaut
    Merci pour vos réponses, je pense que je vais suivre le conseil de LeGreg et repartir de code simple...
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  7. #7
    Expert éminent sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 031
    Points : 11 476
    Points
    11 476
    Billets dans le blog
    11
    Par défaut
    Je reviens vers vous, toujours avec le même problème, mais avec des avancées sur le ciblage.
    En fait j'ai réussi (je pense) à le reproduire sur ma machine, mais c'est assez déconcertant.
    Je compile donc avec Visual Studio.
    En Debug, en le lançant avec Visual Studio ou directement en double-cliquant sur l'exe, tout va bien.
    En Release, en le lançant avec Visual Studio, je n'ai pas de problème, par contre en double-cliquant sur l'exe le problème apparaît.

    Le fait de lancer avec Visual Studio, qu'est-ce que ça change ? Il initialise des variables ? Il met en place un environnement de debug (je suis en release et il me dit bien que je n'ai pas compilé avec des infos de debug, j'ai bien linké avec les libs en release) ?
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  8. #8
    Membre éprouvé Avatar de oxyde356
    Homme Profil pro
    Ingénieur Recherche Imagerie
    Inscrit en
    Février 2006
    Messages
    797
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Recherche Imagerie

    Informations forums :
    Inscription : Février 2006
    Messages : 797
    Points : 1 087
    Points
    1 087
    Par défaut
    Le problème apparait c'est à dire ? un erreur d'affichage comme au début ?
    Une erreur de dll, de fichier non trouvé ? peut être n'as-tu pas choisis le bon répertoire de travail pour visual studio.

  9. #9
    Membre émérite
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Points : 2 568
    Points
    2 568
    Par défaut
    Bonjour,

    Vu que le problème intervient de façon aléatoire suivant la machine et jamais en débug, je dirais effectivement que c'est un problème d'initialisation de variable, ou une écriture en fin de tableau.

    A vérifier avec "Application Verifier"

    Pour l'initialisation de variable...maintenant il faut chercher
    Le seul moyen que je vois, c'est de loguer les différentes parties importante du programme et de regarder qu'est ce qui ne s'exécute pas en release.
    Ou d'accrocher le déboguer sur le programme lors du crash.

  10. #10
    Membre confirmé Avatar de TNT89
    Inscrit en
    Juillet 2007
    Messages
    358
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations forums :
    Inscription : Juillet 2007
    Messages : 358
    Points : 615
    Points
    615
    Par défaut
    Ou d'initialisation tout court d'ailleurs... (contexte, GL, ... etc.)

    Je t'aurais bien conseillé Valgrind... mais avec Windause Visoual

    Log un maximum et utilise le debugger de Visual!...

  11. #11
    Expert éminent sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 031
    Points : 11 476
    Points
    11 476
    Billets dans le blog
    11
    Par défaut
    Le problème est bien celui ou tout semble aller correctement mais il n'y a pas d'affichage.

    En même temps je n'ai pas encore terminé la partie "création de fenêtre compatible OpenGL" sous Linux, donc j'avance sous Windaube...

    Ca n'est en tout cas pas un problème de dll, le programme ne se lancerait pas si c'était le cas.

    Accrocher le debugger pendant le crash ne m'est pas très utile, j'ai compilé en release, et l'assembleur n'est pas mon fort.

    En tout cas, merci pour vos réponses, je crois que je vais logger comme un malade ^^'.
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  12. #12
    Membre expérimenté

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2006
    Messages
    450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 450
    Points : 1 630
    Points
    1 630
    Par défaut
    Le seul truc different que fais Visual quand tu lances l'exe dedans c'est de changer le repertoire par defaut. Verifie quel repertoire par defaut tu as dans VC++. Peut-etre que quelque chose essaie d'acceder a un fichier en path relatif et qu'il ne balance pas d'erreur s'il ne le trouve pas.

    Tu peux verifier la non initialisation de variables avec cppcheck:

    http://sourceforge.net/apps/mediawik...itle=Main_Page

    Il donne aussi quelques autres warnings tres cools.

    Verifie aussi que les bonnes dlls sont chargees avec dependencywalker:

    http://www.dependencywalker.com/

    Dans tous les cas, ce probleme est surement du a un code qui ne check pas une erreur. Il faut toujours balancer une erreur, un crash, ou quoi que ce soit quand y'a un soucis, toujours verifier les codes d'erreurs des APIs que tu utilises, etc. Meme si ton application a des risques de crasher plus souvent, au moins tu ne perdras pas des heures...

    As-tu aussi verifie les sorties standards de ton programme? stdout et stderr? Peut-etre qu'une lib que tu utilises envoie un message d'erreur dans stderr par exemple? Certaines applications redirigent les entrees standards et parfois cela t'empeche carrement de les voir dans la console... Il faut alors reforcer la direction vers toi pour pouvoir recuperer les messages, je ne me souviens plus comment faire mais c'est explique sur le net.

    Dernierement, tu peux toujours attacher ton debugueur en release. Pour cela, il faut que tu forces la generation des symboles et que tu desactives les optimisations. Ainsi le debogueur fonctionnera correctement meme en release. Essaie d'ailleurs de desactiver les optimisations pour voir si le probleme ne vient pas de la.
    Je ne réponds à aucune question par MP, posez vos questions sur le forum adéquat.
    Profils : G+ - LinkedIn

  13. #13
    Expert confirmé

    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 382
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 382
    Points : 4 936
    Points
    4 936
    Par défaut
    Citation Envoyé par dragonjoker59 Voir le message
    Windaube
    ça par contre c'est pas obligé ... reste sous linux si tu peux pas blairer windows ><

  14. #14
    Expert éminent sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 031
    Points : 11 476
    Points
    11 476
    Billets dans le blog
    11
    Par défaut
    Ce n'est pas que je ne peux pas le blairer (je ne m'en servirais pas sinon), c'est juste une habitude d'écriture. Je n'avais pas l'intention de troller. Il est cependant vrai que je préfère Linux (raisons personnelles qui n'ont pas lieu d'être exposées ici)
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  15. #15
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Citation Envoyé par TanEk Voir le message
    Le seul truc different que fais Visual quand tu lances l'exe dedans c'est de changer le repertoire par defaut.
    Ca dépend comment tu lance.
    Si tu fait F5, c'est un peu comme en debug, ça lance l'exe mais dans un environnement contrôlé. Y as donc certain problème mémoire qui passe inaperçus.

    Si tu ctrl+F5 la oui il lance l'exe comme un double click.

    Par expérience, vue ce que tu dit, y as de forte chance que c'est un dépassement de mémoire sur un tableau plutôt qu'un problème de pointeur non initialisé.
    J'ai souvent eu ce problème avec des tableaux de char du type
    char path[256]
    et ou le path est un peu > à 256

  16. #16
    Membre expérimenté

    Profil pro
    Programmeur
    Inscrit en
    Août 2002
    Messages
    1 091
    Détails du profil
    Informations personnelles :
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Programmeur

    Informations forums :
    Inscription : Août 2002
    Messages : 1 091
    Points : 1 679
    Points
    1 679
    Par défaut
    Citation Envoyé par dragonjoker59 Voir le message
    Le problème est bien celui ou tout semble aller correctement mais il n'y a pas d'affichage.
    Pars des exemples simples qui marchent et regarde ce que tu fais différemment..

    Je me répète mais..

    LeGreg

    Mon site web | Mon blog | Mes photos | Groupe USA
    > BONJOUR, JE SUIS NOUVEAU SUR CE FORUM
    > presse la touche caps lock, stp
    > OH.. MERCI C EST BEAUCOUP PLUS FACILE COMME CA

  17. #17
    Expert éminent sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 031
    Points : 11 476
    Points
    11 476
    Billets dans le blog
    11
    Par défaut
    Bon, j'ai corrigé le problème sur mon pc de taf, il s'agissait en fait de 2 erreurs :
    - une erreur d'initialisation de variable (visibilité d'un scene node) qui faisait que le root node n'était pas affichable.
    - une erreur qui vient de je ne sais où, il n'initialisait pas ma fenêtre d'affichage en release uniquement (le booléen d'init était mis à true, vraisemblablement parce qu'une première frame a été dessinée avant l'initialisation de la fenêtre )

    Il me reste à tester ça chez moi et à passer l'exécutable à la personne qui m'a aidé à découvrir ce bug.
    En tout cas je vous remercie pour vos conseils et je vous tiens au courant de l'évolution de mon moteur ^^.
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

  18. #18
    Expert éminent sénior

    Avatar de dragonjoker59
    Homme Profil pro
    Software Developer
    Inscrit en
    Juin 2005
    Messages
    2 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Software Developer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 2 031
    Points : 11 476
    Points
    11 476
    Billets dans le blog
    11
    Par défaut
    Bon, après test chez la personne chez qui le bug apparaissait, je peux marquer ce sujet comme résolu ^^
    Si vous ne trouvez plus rien, cherchez autre chose...

    Vous trouverez ici des tutoriels OpenGL moderne.
    Mon moteur 3D: Castor 3D, presque utilisable (venez participer, il y a de la place)!
    Un projet qui ne sert à rien, mais qu'il est joli (des fois) : ProceduralGenerator (Génération procédurale d'images, et post-processing).

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Delphi 6] Problème de debug sur un ActiveX
    Par Hypollite76 dans le forum Langage
    Réponses: 13
    Dernier message: 16/12/2009, 14h32
  2. Problème d'exécution en release mais pas en debug (2)
    Par animageo dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 15/11/2007, 14h22
  3. [MFC] Problème Release/Debug
    Par Denn's dans le forum MFC
    Réponses: 24
    Dernier message: 21/09/2007, 11h24
  4. Problème d'encodage sur différents serveurs
    Par JEDI_BC dans le forum Langage
    Réponses: 3
    Dernier message: 29/06/2007, 15h47
  5. [PPC][C#] Problème debug sur device.
    Par Roach- dans le forum Windows Forms
    Réponses: 2
    Dernier message: 01/12/2005, 15h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo