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

  1. #1
    Rédacteur

    NVIDIA Nexus, le debuggeur intégré à Visual Studio pour les API 3D tels que DirectX, OpenGL, CUDA, ...
    NVIDIA Nexus, le debuggeur intégré à Visual Studio pour les API 3D tels que DirectX, OpenGL, CUDA, ...

    nVidia a présenté il y a quelques jours Nexus (et fera une présentation plus détaillée au GPU Conference Technology du 30 septembre au 2 octobre), un debuggeur permettant d'étendre les possibilités du débuggeur de Visual Studio 2008 pour CUDA, OpenCL, Direct 3D et OpenGL.

    Voici une vidéo de présentation :



    Je dois avouer que ça donne vraiment envie (mais ce sera, je pense, réservé aux GPU nVidia ). Notamment la fin de la démonstration. Je pense que tout ceux qui ont déjà écrit des shaders sont d'accord avec moi pour dire que c'est parfois assez difficile à débugger.

    D'après la vidéo, il est possible d'inspecter n'importe quelle texture utilisée par un shader, l'historique de chaque pixel d'une image, avec les draw calls successifs et la valeur que prend tel ou tel pixel après chacun de ces draw calls (très utile pour savoir si le shader donne bien les résultats voulus).

    Ca donne vraiment envie. Visiblement c'est en bêta privé pour le moment, quelqu'un sait quand ça sera disponible officiellement ?

  2. #2
    Rédacteur

    on retrouve pas mal de truc de pix la dedans. Mais c'est vrai que le debugging de code CUDA ou openCL est super intéressant

    Après, le problème, c'est que ce genre d'outils a tendance à se casse la gueule sur les archi 3D un poil complexe (genre plusieurs render target et autre). Il faut voir ce que ça donne dans ce cas la
    * Il est infiniment plus simple de faire rapidement un code qui marche que de faire un code rapide qui marche
    * pour faciliter les recherches, n'oubliez pas de voter pour les réponses pertinentes
    Mes articles

  3. #3
    Membre confirmé
    Ça à l'air très intéressant. Ce qui est le plus ennuyeux dans PIX est qu'on est obligé de simuler une application de type "jeu", avec des Present() artificiels pour simuler des "frames", même si on n'en a pas (application HPC, embarqué, etc). De nombreux formats de textures sont inaffichables, et/ou non sauvegardables pour inspection ultérieure sous format DDS (crucial pour des calculs par stencil). Le code HLSL est certes débuggable sous sa forme compilée (inaccessible en phase de conception par exemple sous SM4), mais inutilisable en mode HLSL (crashs trop fréquents). Le lien avec le code n'est vraiment pas naturel, car on doit sauter d'appel D3D en appel D3D. Etc.

    Donc toute alternative à l'indispensable PIX sera la bienvenue.

    Par contre, PIX permet une inspection post-mortem couvrant l'historique des objets contrôlés. Ce qui fait qu'on peut "debugger" à rebrousse-temps, par des sauts entre points d'accroche parfaitement identifiés (passages dans DX). C'est parfois extrêmement utile, et ça parait bien plus difficile à mettre en œuvre sous un debugger source (on devrait dérouler "à l'envers" avec une granularité bien plus faible correspondant au code lui-même plutôt qu'aux poins d'accès DX).

    J'espère vivement que NVidia proposera quelque chose de similaire (rien à propos de ça dans la video), sinon dans mon cas je devrais continuer à utiliser aussi PIX, malgré tous ses défauts.
    "Maybe C++0x will inspire people to write tutorials emphasizing simple use, rather than just papers showing off cleverness." - Bjarne Stroustrup
    "Modern C++11 is not your daddy’s C++" - Herb Sutter

###raw>template_hook.ano_emploi###