Visa en tråd

Att förstå trådkörningsvisningen av GPUView är viktigt för att se var trådar är aktiva och var de utför videospecifika funktioner.

Följande diagram är en skärmbild av en bråkdel av en millisekunders tid som endast visar de aktiva trådar som sträcker sig över två processer – systemprocessen och GPUView-inaktivitetsprocessen. I den här vyn visas tre trådar.

Skärmbild av GPUView-inaktiv process med aktiva trådar.

Med varje tråd finns namnet till vänster och ett grått rektangulärt område till höger där körningsintervallen visas. Hela området kallas för trådområdet.

Trådnamn

Skärmbild som visar ett trådnamn med ID, modul och funktion.

I den röda ellipsen i föregående bild visas tråd-ID:t i parenteserna följt av modulen och funktionen som skapade tråden. I det här fallet har tråd 432 skapats av dxgmms1.sys vid offset 0x37DC0. Om GPUView läser in symboler visar det det symboliska namnet i stället för offsetnumret.

Område för trådexekvering

Skärmbild av området Trådkörning i GPUView.

Det grå området till höger om namnet, trådkörningsområdet, representerar tiden då en tråd kan köras. I det här fallet kördes tråden två gånger under den här tidsperioden.

Trådkörningsintervall

Skärmbild av trådkörningsintervall i GPUView.

I det här fallet representerar de vita rektanglarna tiden då tråden faktiskt kördes. Det här diagrammet visar två trådkörningsintervall.

Detaljtext

Skärmbild av detaljerad text ovanför området för trådkörning.

På höger sida, precis ovanför trådens körningsområde, finns information om trådens körning. Det första talet är antalet utförandeintervaller under den här tidsperioden. Det andra talet, märkt iTime, är hur lång tid DPC:er kördes på den här tråden. Det tredje inlägget är den totala exekveringsintervalltiden och det sista inlägget är procentandelen av den visningstid som tråden körde.

Information om körningsintervallet

Skärmbild som visar information om ett trådkörningsintervall.

Bakgrundsfärg

GPUView färgkodar bakgrundsfärgen för körningsintervallet för att visa processorrelationen. När det gäller föregående diagram har inaktivitetsprocessen två trådar, vilket indikerar att det är en dator med dubbla kärnor. En processor tilldelades färgen vit och den andra ljusgrön. När trådväxlingar inträffar målar GPUView bakgrunden med processorinformationen, vilket visar att när systemtråden kördes, kördes den på den första processorn.

GPUView visar för närvarande åtta unika processorfärger och har stöd för upp till 32 unika processorer.

Trådprioritet

Numret som visas i början av varje körningsintervall är trådens prioritet.

Maskinvaru- eller DPC-avbrott

Maskinvaruavbrott eller uppskjutna proceduranrop kan köras på valfri tråd när som helst. GPUView visar den här informationen som skrafferad tid i exekveringsintervallet. Maskinvaruavbrott visas i röda korsningar och DPC visas i blått.

Skärmbild av maskinvaru- och DPC-avbrott i GPUView.

I föregående diagram kördes en DPC på den första inaktiva kärnan och kort därefter inträffade ett maskinvaruavbrott på den andra inaktiva kärnan.

Kapslad körningsprofilering

Med vissa API:er visar GPUView tidsåtgång i vissa funktioner. Detta kallas kapslad körning i körningsintervallet. En betydande del av videokärnan loggar händelser som anger när tråden har gått in i eller lämnat en specifik rutin.

Skärmbild av kapslad körningsprofilering i GPUView.

I föregående diagram pekar pilen längst till vänster på Kapslad exekveringstid som är blå. Blått är en reserverad färg som anger videokärnkod. Den andra pilen pekar på kapslad exekveringstid som är röd. Rött är reserverat som kodtid för videodrivrutinens kernel.

Stack Walk Dots

Skärmbild av Stack Walk Dots under körningsintervaller.

Om stackvandring är aktiverat för spårningen visar GPUView dem som punkter precis under exekveringsintervallet. I föregående diagram finns det tre Stack Walk-punkter för de två intervallen.

Icke-exekveringstid

Om en tråd skapas eller förstörs inom visningstiden visar GPUView dess icke-existens via en vågrät linje. I följande diagram representeras Starttiden för Viewport av den lodräta linjen precis till höger om trådnamnet. Den horisontella linjen, som pekas ut av den röda pilen, mellan den och körningsområdet visar tiden när tråden inte fanns.

Skärmbild av icke-körningstid i GPUView.