Shader Debugging will nicht



  • Ich möchte meine Vertex und Pixel Shader debuggen. Nun bietet ja das VS.NET
    zusammen mit dem DX 9 SDK die Möglichkeit dies zu tun. Also hab ich mich ganz
    an diese Anleitung gehalten

    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/directx9_c/directx/graphics/ProgrammingGuide/HLSLShaders/DebuggingShaders.asp

    - Extension installiert
    - Debug Level angeschaltet
    - Gestartet mit DirectX-Debugging

    Dann die Device Flags auf: Software Vertex Processing, REF

    Und die Shader-Kompilierung mit:

    if(FAILED(D3DXAssembleShaderFromFile(strPath.c_str(), NULL, NULL, 
    						D3DXSHADER_DEBUG, &compiledShader_, NULL)))
    		throw Exception(Exception::SHADER_CANT_BE_COMPILED, strPath);
    

    Müsste ja eigentlich gehen. Aber der Debugger hält nicht bei den Breakpoints
    und an Stelle des roten "Breakpoint-Punktes" erscheint ein roter Punkt mit
    Fragezeichen, weil er meint die Stelle würde nicht aufgerufen werden.

    Dann hab ich das ganze mal mit einem DX Sample versucht, wo allerdings ein
    HLSL Script verwendet wurde - funktionierte problemlos. Leider hat das DX 9
    SDK ja nur noch ein normales Assembler Shader Script - bei dem funktionierte
    das Debugging allerdings auch nicht!

    Könnt ihr mir vielleicht da weiter helfen?

    Wenn ihr weitere Fakten braucht, fragt ruhig 🙂

    Schon mal vielen Dank im Voraus!!

    MfG,

    EnERgYzEr



  • EnERgYzEr schrieb:

    an Stelle des roten "Breakpoint-Punktes" erscheint ein roter Punkt mit
    Fragezeichen

    Shaderdebugging hab ich noch nie gemacht. In "normalen" Programmen passiert das IIRC immer wenn man keine Debug Info für die Zeile hat.

    Bye, TGGC (Denken, und gut ist.)


  • Mod

    TGGC schrieb:

    EnERgYzEr schrieb:

    an Stelle des roten "Breakpoint-Punktes" erscheint ein roter Punkt mit
    Fragezeichen

    Shaderdebugging hab ich noch nie gemacht. In "normalen" Programmen passiert das IIRC immer wenn man keine Debug Info für die Zeile hat.

    oder wenn das modul nicht geladen ist zu dem programm das man debuggen möchte, z.b. könnte bei einer dll der fall sein.

    rapso->greets();



  • Ich kann ja die Shader-Files nicht groß laden - Ich öffne sie in der IDE und
    setzte meine Breakpoints. Beim compilieren des Shaders über die D3DX Funktion
    müsste er ja dann bemerken, dass das File in der IDE geöffnet ist - Tut er
    leider aber nicht!


Log in to reply