Sdílet prostřednictvím


Ladicí program HLSL

Ladicí program HLSL je jedním z nástrojů Diagnostiky grafiky v aplikaci Visual Studio. Pomůže vám porozumět fungování kódu shaderu HLSL s daty grafiky, která byla zaznamenána během relace zachycení Diagnostiky grafiky.

Toto je ladicí program HLSL:

Ladění pomocí HLSL sledovat a okna zásobníku volání.

Principy ladicího programu HLSL

Ladicí program HLSL vám pomůže objasnit problémy, které vzniknou v kódu shaderu.Ladění kódu HLSL v aplikaci Visual Studio se podobá ladění kódu v jiných jazycích, například C++, C# nebo Visual Basic.Můžete kontrolovat obsah proměnných, nastavit body přerušení, krokovat kód a procházet nahoru zásobníkem volání podobně jako při ladění jiných jazyků.

Protože však GPU dosahují velkého výkonu spuštěním kódu shaderu na stovkách vláken současně, ladicí program HLSL je navržen pro práci s nástroji Diagnostiky grafiky. Všechny tyto informace jsou díky tomu prezentovány tak, abyste jim porozuměli.Diagnostika grafiky znovu vytvoří zachycené snímky pomocí informací zaznamenaných v protokolu grafiky; ladicí program HLSL při spouštění kódu shaderu nemonitoruje spouštění GPU v reálném čase.Protože protokol grafiky obsahuje dostatek informací pro opětovné vytvoření libovolné části výstupu a protože Diagnostika grafiky poskytuje nástroje, které vám mohou pomoci zdůraznit přesný pixel a událost, u kterých došlo k chybě, ladicí program HLSL má pouze simulovat přesný proces shaderu, který vás zajímá.To znamená, že práce shaderu může být simulována procesorem, ve kterém jsou vnitřní mechanismy plně zobrazeny.Tímto ladicí program HLSL dosahuje možností ladění na úrovni procesoru.

Ladicí program HLSL je však aktuálně omezen následujícími způsoby:

  • Není možné současně ladit aplikaci a její kód shaderu.Můžete však mezi nimi přepínat.

  • K oknu kukátka můžete přidat proměnné a registry, ale výrazy nejsou podporovány.

Nicméně ladicí program HLSL poskytuje lepší ladění více odpovídající CPU, které by jinak nebylo možné.

Použít & Upravit HLSL shaderu

Ladicí program shader HLSL nepodporuje pokračovat & upravit stejným způsobem, který procesoru ladicí program provede, protože model zpracování GPU neumožňuje shader stav, který má být vrátit zpět.Namísto toho podporuje ladicí program HLSL & použít, která vám umožní upravit HLSL zdrojových souborech a poté zvolte možnost Upravit použít k opětovnému vytvoření rámce projeví provedené změny.Váš kód upravené shader je uložen v samostatném souboru pro zachování integrity svůj projekt původní HLSL zdrojový soubor, ale pokud jste spokojeni se změnami můžete zkopírovat do... ke zkopírování změny do svého projektu.Pomocí této funkce můžete rychle iteraci v kódu shaderu, který obsahuje chyby a eliminovat nákladné sestavení a kroky sběr dat z vašeho HLSL ladění pracovního postupu.

Zpětný překlad HLSL

Ladicí program shader HLSL poskytuje seznam sestavení shader HLSL k pravému okraji výpis HLSL zdrojového kódu.

Ladění kódu HLSL

Ladicí program HLSL je přístupný z okna Fáze zřetězení grafiky nebo okna Historie pixelů grafiky.

Spuštění ladicího programu HLSL z okna Fáze zřetězení grafiky

  1. V okně Fáze zřetězení grafiky vyhledejte fázi spojenou se shaderem, který chcete ladit.

  2. Pod názvem fáze zřetězení zvolte položku Spustit ladění, která se zobrazí jako malá zelená šipka.

    [!POZNÁMKA]

    Tento vstupní bod do ladicího programu HLSL ladí pouze první vlákno shaderu pro odpovídající fázi, tedy první vrchol nebo pixel, který je zpracován.Okno Historie pixelů grafiky můžete použít pro přístup k jiným vláknům těchto fází shaderu.

Spuštění ladicího programu HLSL z okna Historie pixelů grafiky

  1. V okně Historie pixelů grafiky rozbalte volání draw spojené se shaderem, který chcete ladit.Každé volání draw může odpovídat více primitivům.

  2. V podrobnostech volání draw rozbalte primitivum, jehož výsledný příspěvek barvy naznačuje chybu v kódu shaderu.Pokud na chyby poukazuje více primitiv, vyberte první primitivum, aby nedošlo ke hromadění chyb, které mohou ztížit diagnostiku problému.

  3. V podrobnostech primitiva zvolte, zda chcete ladit Vertex shader, nebo Pixel shader.Pokud máte podezření, že pixel shader je správný, ale generuje nesprávný příspěvek barvy, protože vertex shader mu předává nesprávné konstanty, proveďte ladění funkce vertex shader.V opačném případě proveďte ladění funkce pixel shader.

    Vpravo od vybraného shaderu zvolte položku Spustit ladění, která se zobrazí jako malá zelená šipka.

    [!POZNÁMKA]

    Tento vstupní bod do ladicího programu HLSL ladí buď vlákno funkce pixel shader, které odpovídá zvolenému volání draw, primitivu a pixelu, nebo vlákna funkce vertex shader, jejichž výsledky jsou interpolovány voláním draw, primitivem a pixelem, které jste vybrali.U funkcí vertex shader můžete dále upřesnit vstupní bod do určitého vrcholu rozbalením podrobností funkce vertex shader.

Příklady použití ladicího programu HLSL k ladění chyb shaderu naleznete v tématu Příklady diagnostiky grafiky nebo v návodech, jejichž odkazy naleznete v části Viz také.

Viz také

Úkoly

Návod: Chybějící objekty z důvodu použití funkce vertex shading

Návod: Ladění chyb při vykreslování způsobených stínováním

Návod: Použití diagnostiky grafiky k ladění výpočetního shaderu