Sdílet prostřednictvím


HLSL ladění

Ladící program HLSL je jedním z nástrojů diagnostiky grafiky v Visual Studio, může vám pomoci porozumět fungování kódu shaderu HLSL s daty grafiky, které byly zaznamenána během relace zachytávání diagnostiky grafiky.

Toto je ladící modul HLSL:

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

Principy ladícího programu HLSL

Ladicí program HLSL vám objasní 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 CPU hardwaru a softwaru (kód aplikace) je natolik odlišný od hardwaru a softwaru GPU (kód shaderu), ladění podobné ladění CPU není možné na GPU možné, pokud nástroj ladění GPU nefunguje naprosto odlišným způsobem.Základní rozdíl mezi druhy práce je zpracovávaných procesory GPU a CPU je, že GPU rozšiřuje práci napříč stovkami relativně pomalých, jednoduchých procesorů, které jsou optimalizovány pro zpracování velkých sad dat grafických operací. Procesory CPU používají několik relativně rychlých, komplikovaných procesorů, které umožňují zvládat menší, obecnější pracovní zátěže.Rovněž proto, že jednotka GPU je v podstatě nezávislý počítač, který spravuje vlastní vnitřní činnost a pouze zřídka sdílí informace s procesorem, je velmi obtížné pro ladicí program spuštěný na procesoru zjistit, co se děje na GPU v daném okamžiku.I v případě, že by měl procesor dostatečný výkon, kód GPU používá příliš mnoho podprocesů a generuje příliš mnoho dat, aby je vývojář protřídil.

Chcete-li vyřešit tyto potíže, ladící program HLSL znovu vytvoří zachycené snímky pomocí informací, která byla zaznamenána v protokolu grafiky, spíše než při pokusu sledovat GPU v reálném čase při jeho spuštění kódu shaderu.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ě, ladící modul 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ími mechanismy zobrazeny plně.Tímto ladící 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:

  • Ladicí program HLSL nepodporuje funkci upravit a pokračovat.

  • Není možné ladit aplikaci a její kód shaderu současně.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.

  • Výpočetní shadery nejsou podporovány.

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

Viz také

Úkoly

Názorný postup: Chybějící objekty vzhledem k vrcholu stínování

Názorný postup: Ladění vykreslování chyby způsobené stínování