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

DirectX Discussion :

Disparition des textures sur certaines cartes 3D


Sujet :

DirectX

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 68
    Points : 34
    Points
    34
    Par défaut Disparition des textures sur certaines cartes 3D
    Bonjour,

    Je viens de terminer une application Directx qui fonctionne avec des vertex shaders. Le problème c'est qu'elle n'affiche pas de textures sur les objets avec les cartes geforce 2 et 4MX
    Toutes les autres cartes fonctionnent parfaitement (tnt, tnt2, radeon, geforce FX powerVR etc...)

    D3DSpy ne repère aucune erreur (tout est S_OK)

    Lorsque je sors en mode debug, l'ordinateur m'indique que les vertex shaders ont mal été libérés (memory leaks) alors que ce n'est jamais le cas avec d'autres cartes..

    Où faut-il chercher ?

    Un grand merci à vous...

    Francky


    [Titre modifié par Loulou24, merci de faire des titres explicites]

  2. #2
    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
    On va se répeter mais sans plus de précision (code ou executable)
    ça va être difficile de t'aider. La programmation n'est pas encore au niveau avancé de l'horoscope ou du maraboutisme ( dommage ).

    Sinon pour ce qui est des memory leaks:
    regarde les IDs qui sont donnés, tu peux ensuite utiliser l'outil
    "break on Alloc ID" dans le panneau de controle DX pour que ton débogueur s'arrete sur la ligne qui a alloué l'objet qui n'a pas été libéré.

    Attention l'ID 1 ou proches correspondent généralement au device ou l'objet D3D qui sont toujours libérés en dernier donc ça n'apporte aucune nouvelle information. En general commencer avec les IDs les plus haut est une bonne idée meme s'il peut y avoir des interblocages.

    Oublis classiques pour les memory leak: un create -> un release.
    De meme un get -> un release sur l'interface obtenue. Il faut rarement appeler AddRef directement sur l'objet. Meme si c'est parfois légal c'est généralement du mauvais design.

    Tu peux également tester pour voir si le REFRAST donne une image sensée. Et bien évidemment régler la validation au maximum dans le control panel (pour le mode debug).

    Sinon si tu crois que c'est un bug de driver (ça arrive), le mieux c'est d'isoler les appels qui te semblent fautifs en traçant ta scène petit bouts par petits bouts et en vérifiant les résultats. Si tu arrives à la suite d'appels minimaux qui font planter, c'est du pain béni pour l'équipe des drivers. Ça peut aussi te permettre de déboguer ton application plus facilement (possibilité de rendre des morceaux plus petits de ton app).

    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

Discussions similaires

  1. Réponses: 6
    Dernier message: 25/09/2007, 19h45
  2. Faire des effets sur une carte (coloration de zones)
    Par breizhgen dans le forum Webdesign & Ergonomie
    Réponses: 9
    Dernier message: 12/03/2007, 16h07
  3. Réponses: 4
    Dernier message: 18/04/2006, 22h09
  4. Réponses: 37
    Dernier message: 17/11/2005, 10h25
  5. Pas d'affichage de texture sur certains PC
    Par octopus984 dans le forum GLUT
    Réponses: 7
    Dernier message: 19/04/2005, 13h22

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