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 :

Hardware et Software VertexProcessing


Sujet :

DirectX

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2003
    Messages : 26
    Points : 18
    Points
    18
    Par défaut Hardware et Software VertexProcessing
    Bon ... c'est pas très simple ce que je veut expliquer lol ...

    Donc bon ..

    j'ai fait une application en 3D, où le Direct3DDevice9 est créé avec la flag D3DCREATE_HARDWARE_VERTEXPROCESSING, et ca marche parfaitement ...

    Mais, vous devez le savoir je présume, toutes cartes graphiques ne sont pas capable de gèrer eux même le vertexprocessing, donc, dans ce cas il faut spécifier la flag D3DCREATE_SOFTWARE_VERTEXPROCESSING, et .. là est le problème ..

    en effet, si je met cette flag, c'est tout noir, les textures ne sont plus afficher ...

    Pourquoi ?


    merci d'avance

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Que dit le debug ? Et le refrast ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2003
    Messages : 26
    Points : 18
    Points
    18
    Par défaut
    je l'ai dit le bug, (y a aucun message d'erreur), c'est simplement que les textures ne sont pas dessinés (donc ben c tout noir)

    PS: les textes, quant à eux s'affiche bien


    et euh le 'refrast' je sais pas c'est quoi désolé ...

  4. #4
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    J'ai dit le debug, pas le bug
    Le debug de DirectX fournit pas mal d'informations sur ce que tu fais mal (si c'est le cas), donc regarde déjà de ce coté.

    Le refrast c'est le Reference Rasterizer (tu spécifies D3DDEVTYPE_REF à la place de D3DDEVTYPE_HAL), ça émule tout ce que ta carte ne supporte pas donc ça te permet également de voir si le problème vient de ton hardware ou de ton code en lui-même.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2003
    Messages : 26
    Points : 18
    Points
    18
    Par défaut
    et ca se trouve ou le debug et le refrast ?

    (et désolé d'avoir mal compris (bug au lieu de debug) )

    mici d'avance


    PS : le D3DDEVTYPE_REF au lieu de D3DDEVTYPE_HAL ne change en rien le problème ...

  6. #6
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Pour activer le debug il faut aller dans le panneau de configuration, icone DirectX, onglet Direct3D. Il faut l'avoir installé ausi bien sur.

    Le refrast ben euh c'était D3DDEVTYPE_REF justement...

  7. #7
    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
    tu as probablement une erreur dans ton code ou dans tes données
    mais comme les drivers et le hardware sont parfois plus tolerants
    que Microsoft, ca peut passer en mode hardware processing.
    (le mode software processing est gere par Microsoft).

    Essaie d'activer le debug runtime comme il a ete precise
    si tu as fait une grosse bourde, avec les warning au maximum
    celui-ci te renseignera.

    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

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2003
    Messages : 26
    Points : 18
    Points
    18
    Par défaut
    j'ai fait ce que vous m'avez dit pour le debug ... mais ces éventuelles erreur, c'est où que ca doit me le dire ? (en messagebox, dans le compilateur, ou autre part ?)

    merci d'avance

  9. #9
    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
    Dans la fenetre output de ton IDE par exemple.

    Si tu n'utilises pas d'IDE, tu peux utiliser dbmon.exe (debug monitor)
    outil simple qui affiche tout ce qui est envoyé sur le debug output de windows.

    Dans le panneau de conf du SDK directX tu peux aussi spécifier
    "break on errors" pour que ton débogueur favori arrete l'execution du programme lorsqu'une erreur survient dans le runtime et ainsi voir quel appel à l'API a causé l'erreur.

    Autre truc: les drivers(le hardware) et le runtime ne stockent
    pas les renderstates de la meme maniere donc il n'est pas toujours
    inutile d'initialiser les renderstates a des valeurs par defaut a chaque
    nouvelle scene. (si la doc Dx te dit que c'est le defaut, si le hardware n'a jamais vu passer d'instruction de remise à zero, ca peut ne pas etre la valeur que lui reconnait comme le defaut).

    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

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2003
    Messages : 26
    Points : 18
    Points
    18
    Par défaut
    euh dans le dbmon.exe, quand j'éxécute mon programme, j'obtiens les messages suivants :

    (WARN) Ignoring redundant SetTextureStageState ...
    ...
    ...
    ...
    ...
    (WARN) Ignoring redundant SetRenderState ...
    ...
    ...
    ...
    ...

    Que doit-je faire pour résoudre ce problème ?


    j'ai mit les SetRenderState et SetTextureStageState dans la procédure de rendu mais ca ne change rien ...

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2003
    Messages : 26
    Points : 18
    Points
    18
    Par défaut
    j'ai oublié de précisé que apparamment ces warning se déclenchent à chaque appel de la procédure d'affichage, et ce, même si je n'appel pourtant qu'une seul fois les procédure SetRenderState et SetTextureStageState à l'initialisation du Direct3DDevice9.

    PS : j'obtiens les mêmes warning, si j'appel les procédure SetTextureStageState et SetRenderState à chaque affichage ..

    PS2 : j'obtiens ces warnings lorsque je met :
    soit D3DCREATE_HARDWARE_VERTEXPROCESSING,
    soit D3DCREATE_SOFTWARE_VERTEXPROCESSING,
    mais pas quand je met
    D3DCREATE_HARDWARE_VERTEXPROCESSING OR D3DCREATE_PURE_DEVICE

    PS3 : cependant je rappel qu'avec :
    D3DCREATE_HARDWARE_VERTEXPROCESSING, ca marche;
    D3DCREATE_HARDWARE_VERTEXPROCESSING OR D3DCREATE_PURE_DEVICE, ca marche également;
    D3DCREATE_SOFTWARE_VERTEXPROCESSING, rien n'est affiché à part les textes (iD3DXFont);

    Par avance je vous remercie des éventuelles aides que vous m'apporterez

  12. #12
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    mais pas quand je mets
    D3DCREATE_HARDWARE_VERTEXPROCESSING OR D3DCREATE_PURE_DEVICE
    Ca c'est parce qu'en mode PUREDEVICE le driver ne fait aucune vérification des states redondants, donc forcément pas de warning.

    Pour le reste je vois pas trop.

  13. #13
    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
    Baisse le niveau des warning de 4 a 3.

    Le niveau 4 sont en general les warnings en dernier recours
    et ne sont generalement pas des erreurs.
    Meme si envoyer trop de render states identiques
    n'est pas conseillé puisque ca augmente d'autant le cout de traitement des states dans le driver.

    Mais pas besoin de se casser la tete avec ça au début du projet

    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

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2003
    Messages : 26
    Points : 18
    Points
    18
    Par défaut
    oui mais bon, mon problème c'est pas trop ca aussi ...

    mon problème c'est que en SOFTWARE vertexprocessing, y a que le text qui s'affiche et pas les objets ...

    merci pour vos conseils, en espérant qu'on va bientot en venir a bout de ce problème ...

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2003
    Messages : 26
    Points : 18
    Points
    18
    Par défaut
    il n'y a pas quelqu'un qui a la moindre petite idée sur ce qui peut faire des caprices lorsqu'on passe de Hardware à Software VertexProcessing ...

    merci d'avance ...

  16. #16
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Personnellement je viens de faire l'essai, je suis passé de HW à SW sur mon moteur 3D et je n'ai noté aucun bug (à part une chute du framerate ), et pourtant niveau fonctionnalités D3D y en a pas mal. Donc ben je sais pas... A la limite si ton code n'est pas trop gros, ou si tu peux reproduire le bug avec une ptite appli, tu peux toujours montrer des sources.

  17. #17
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2003
    Messages : 26
    Points : 18
    Points
    18
    Par défaut
    c'est bon j'ai enfin trouver l'erreur.

    merci de vous avoir penché sur mon problème ...

    sur ce, à la prochaine ...

  18. #18
    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
    Poste ce qui t'a posé problème ici.
    au moins quand quelqu'un viendra sur ce topic il apprendra quelque chose

    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

  19. #19
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2003
    Messages : 26
    Points : 18
    Points
    18
    Par défaut
    lol en faite c'est une bétise, pour afficher des sprites, j'utilise des vertex4D (RHW), et j'avais la composante Z de ces vertex à 1 (ca passait à Hardware mais pas en Software VertexProcessing), l'erreur était donc que cette composante devais etre mit à 0 tout simplement...

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

Discussions similaires

  1. DESIGN hardware software FPGA_Altera
    Par ISIMEN dans le forum C++
    Réponses: 1
    Dernier message: 20/03/2008, 01h27
  2. [USB] methode software pour switch usb hardware ?
    Par k'n1 dans le forum Périphériques
    Réponses: 4
    Dernier message: 07/03/2007, 01h41
  3. checkliste pour le controle hardwar et softwar
    Par samira75 dans le forum Ordinateurs
    Réponses: 6
    Dernier message: 13/06/2006, 17h24
  4. Différence entre HARDWARE et SOFTWARE VERTEXPROCESSING
    Par atalmapi dans le forum DirectX
    Réponses: 2
    Dernier message: 21/08/2004, 12h40
  5. Port Parallèle EPP ou ECP, hardware vs software ?
    Par TONIAPEL dans le forum Assembleur
    Réponses: 3
    Dernier message: 21/08/2003, 01h39

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