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 :

GeForce GTX 560 != Intel HD Graphics 3000


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2008
    Messages : 31
    Par défaut GeForce GTX 560 != Intel HD Graphics 3000
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    #version 130
    in vec2 a;
    out vec4 color;
    void main(void)
    {
        float u = a.x;
        float v = a.y;
     
        float s = u + v;
        float e = s - u; // ~v
        e = v - e; // le "reste" de l'addition
     
        if (e == 0.0)
            color = vec4(0.0, 0.0, 1.0, 1.0);
        else
            color = vec4(1.0, 0.0, 0.0, 1.0);
    }
    Ce code GLSL (frag) ne s'execute pas de la même façon entre mes deux PC.

    Sur ma Intel HD Graphics 3000 : écran bariolé de rouge et de bleu (normal)
    Sur ma GeForce GTX 560 : écran tout bleu (pas normal)

    Le code que je donne la est une mise en évidence du problème.
    Mon but est de faire de l'émulation de double précision.
    Voir http://www.thasler.org/blog/?p=93.

  2. #2
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2011
    Messages
    618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 618
    Par défaut
    Salut,

    Il y a une accolade en trop à droite du if.
    De plus, je dirais qu'il manque un gl_FragColor = ... à la fin, et peut-être un #version 130 au début pour pouvoir utiliser les qualificateurs in/out.

    Le compilo GLSL ne te sort pas de message d'erreur ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2008
    Messages : 31
    Par défaut
    C'est juste un échantillon du code pour montrer ce qui ne va pas.
    J'ai tout ce qu'il faut dans mon code pour compiler.
    cv : https://github.com/antigol/mandelbro...elbrot_df.frag

  4. #4
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2011
    Messages
    618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 618
    Par défaut
    Il manque quand même un gl_FragColor, ou un gl_FragData[n] si tu fait du MRT

    out vec4 color;
    Pas sûr qu'on ai le droit de déclarer un out dans le fragment. Peut être en OGL 4, à vérifier.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2008
    Messages : 31
    Par défaut
    J'ai trouvé la solution !
    Il sont tellement bon chez Nvidia qu'ils optimisent parfois trop.
    Il faut désactiver des options d'optimisation.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #pragma optionNV(fastmath off)
    #pragma optionNV(fastprecision off)
    cf : http://www.thasler.org/blog/?p=133

    Il manque quand même un gl_FragColor, ou un gl_FragData[n] si tu fait du MRT
    Je sais pas ce que c'est le MRT. C'est peu être pas très orthodoxe comme je fais mais en tout cas sa fonctionne...

  6. #6
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2011
    Messages
    618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 618
    Par défaut
    MRT pour Multiple Render Target, ça sert si tu rend dans plusieurs buffers à la fois.

    Par contre attention, NVidia est assez laxiste contrairement à ATI ou INTEL. Les choses un peu olé olé qui marchent sur NVidia ne marchent pas forcément sur ATI et encore moins sur INTEL .

    Sinon un grand merci à toi, ces #!? d'optimisation m'ont déjà pourri la vie mais je n'avais jamais vraiment trouvé de doc sur elles..

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

Discussions similaires

  1. Chipset Intel HD Graphics avec Ubuntu 12.10
    Par Neckara dans le forum Matériel
    Réponses: 8
    Dernier message: 20/08/2015, 12h25
  2. [Carte mère] La meilleurs carte mère SLI avec deux carte graphique NVIDIA GeForce GTX 780 Ti 3Go
    Par raizakelly dans le forum Composants
    Réponses: 0
    Dernier message: 27/01/2014, 18h33
  3. [Carte graphique] Choix carte graphique pour pc gamer, geforce gtx 680
    Par Kalagane75 dans le forum Composants
    Réponses: 15
    Dernier message: 24/02/2013, 23h53
  4. Windows 8 et GEFORCE GTX 560
    Par Hudson_Hawk dans le forum Windows 8
    Réponses: 2
    Dernier message: 29/01/2013, 16h30
  5. [Carte graphique] Problème depuis installation GeForce gtx 285
    Par Ghrimm dans le forum Composants
    Réponses: 10
    Dernier message: 27/07/2009, 10h20

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