Developpez.com - Rubrique C++

Le Club des Développeurs et IT Pro

Découvrez NVIDIA Nexus, le debuggeur intégré à Visual Studio

Pour les API 3D tels que DirectX, OpenGL, CUDA...

Le 2009-09-16 00:31:06, par Bakura, Rédacteur
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 ?
  Discussion forum
2 commentaires
  • bafman
    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
  • ac_wingless
    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.