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 :

[TAO Framework][gDebugger] Problème avec le Texture Viewer


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Inscrit en
    Février 2008
    Messages
    413
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Février 2008
    Messages : 413
    Par défaut [TAO Framework][gDebugger] Problème avec le Texture Viewer
    Bonjour,

    je continue mon passage à WPF / C# avec le TAO Framework, et jusque là tout marche à peu près comme je le veux.

    Cependant, en débuggant avec gDebugger, je me suis rendu compte de quelques problèmes, notamment un Memory leak de texture.

    J'ai décrit le problème sur le forum de support de gDebugger, pour l'instant sans réponse:
    http://support.gremedy.com/default.asp?forum.1.98158.0

    Pour résumer:
    1) gdebugger m'indique un memory leak sur une texture lors de la destruction de mon contexte OpenGL

    2) Cependant, cette texture est bien détruite...j'ai même essayé de la détruire juste après sa création (ie: dans le meme thread) mais rien à faire, toujours un memory leak (alors qu'à l'affichage on voit qu'elle est bien détruite).

    3) Ce qui me trouble le plus: que j'utilise une ou plusieurs textures, le viewer de gdebugger ne m'en affiche qu'une, nommée "Default Texture 2D" (alors que dans l'exemple de Teapot fournit avec gdebugger, les textures apparraissent avec les noms "Texture1", "Texture2", etc...) . Elle n'est pas affichée correctement dans le debugger, alors que le programme fonctionne. De plus, meme si j'utilise 5 textures et que je ne les detruit pas, gdebugger ne me détecte qu'un seul memory leak, toujours le même...

    4) Là où ca devient vraiment bizarre, c'est qu'en mode Software rendering, tout fonctionne proprement: toutes les textures sont affichées et nommées (Texture1, Texture2....pas de "Default Texture2D") correctement dans gdebugger, et aucun memory leak à la sortie.

    5) Dernier point: en rendu hardware, gdebugger m'indique que mes textures utilisent le format interne 1 (LUMINANCE), alors que je demande 4 (RGBA), et précise que c'est dû à un pixel format incompatible...une idée la dessus?
    En software, j'ai bien 4 comme format interne, c peut être une piste...

    Voilà, je ne sais pas si ca vient de TAO, de ma maniere de creer les textures, des drivers (ca m'etonnerait, j'ai testé sur 2 cartes Nvidia differentes et une intel, pour les memes résultats)... Du coup si quelqu'un a la moindre idée, elle est la bienvenue. Merci d'avance!

  2. #2
    Membre chevronné
    Inscrit en
    Février 2008
    Messages
    413
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Février 2008
    Messages : 413
    Par défaut
    Re,

    pour info je rajoute mon code de création de textures, y voyez-vous quelque chose d'incorrect qui pourrait expliquer que mes textures n'apparaissent pas correctement dans gDebugger? Comme dit, elles fonctionnent sans probleme dans mon programme.

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    // 5. Generate texture
                    // -------------------------------------------------------------------------------
                    // Generate texture ID and bind corresponding texture
                    Gl.glGenTextures(1, out tex._texID);
                    Gl.glBindTexture(Gl.GL_TEXTURE_2D, tex._texID);
     
                    Gl.glTexEnvf(Gl.GL_TEXTURE_ENV, Gl.GL_TEXTURE_ENV_MODE, Gl.GL_REPLACE);
     
                    // Setup some parameters for texture filters and mipmapping 
                    Gl.glPixelStorei(Gl.GL_UNPACK_ALIGNMENT, 8);
                    Gl.glTexParameteri(Gl.GL_TEXTURE_2D, Gl.GL_TEXTURE_WRAP_S, Gl.GL_REPEAT);
                    Gl.glTexParameteri(Gl.GL_TEXTURE_2D, Gl.GL_TEXTURE_WRAP_T, Gl.GL_REPEAT);
     
                    // Generate actual texture with or without mipmaps
                    if (mipmap)
                    {
                        Gl.glTexParameteri(Gl.GL_TEXTURE_2D, Gl.GL_TEXTURE_MIN_FILTER, Gl.GL_LINEAR_MIPMAP_LINEAR);
                        Gl.glTexParameteri(Gl.GL_TEXTURE_2D, Gl.GL_TEXTURE_MAG_FILTER, Gl.GL_LINEAR);
                        if (resized)
                            Glu.gluBuild2DMipmaps(Gl.GL_TEXTURE_2D, Gl.GL_RGBA8, tex._width, tex._height,
                                                  Gl.GL_BGRA, Gl.GL_UNSIGNED_BYTE, tex._pow2Texels);
                        else
                            Glu.gluBuild2DMipmaps(Gl.GL_TEXTURE_2D, Gl.GL_RGBA8, tex._width, tex._height,
                                                  Gl.GL_BGRA, Gl.GL_UNSIGNED_BYTE, tex._texels);
                    }
                    else
                    {
                        Gl.glTexParameteri(Gl.GL_TEXTURE_2D, Gl.GL_TEXTURE_MAG_FILTER, Gl.GL_NEAREST);
                        Gl.glTexParameteri(Gl.GL_TEXTURE_2D, Gl.GL_TEXTURE_MIN_FILTER, Gl.GL_NEAREST);
                        if (resized)
                            Gl.glTexImage2D(Gl.GL_TEXTURE_2D, 0, Gl.GL_RGBA8, tex._width, tex._height,
                                            0, Gl.GL_BGRA, Gl.GL_UNSIGNED_BYTE, tex._pow2Texels);
                        else
                            Gl.glTexImage2D(Gl.GL_TEXTURE_2D, 0, Gl.GL_RGBA8, tex._width, tex._height,
                                            0, Gl.GL_BGRA, Gl.GL_UNSIGNED_BYTE, tex._texels);
                    }
                    return true;

Discussions similaires

  1. Problème avec les textures
    Par Harmonic dans le forum SFML
    Réponses: 4
    Dernier message: 02/04/2013, 09h27
  2. Problème avec les textures projectives
    Par sylvain_bos dans le forum Ogre
    Réponses: 0
    Dernier message: 03/01/2011, 17h49
  3. [TAO Framework - C#] Problème de pBuffer
    Par ShevchenKik dans le forum OpenGL
    Réponses: 1
    Dernier message: 11/11/2010, 18h09
  4. Problème avec les textures
    Par Letinono dans le forum CUDA
    Réponses: 1
    Dernier message: 07/07/2009, 16h06
  5. problème avec le birt viewer!
    Par abdou1664 dans le forum BIRT
    Réponses: 5
    Dernier message: 10/03/2008, 17h24

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