Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Anmärkning
Visual Studio-grafikdiagnostik stöds inte i ARM64 Visual Studio.
Använd verktyget GPU-användning i Prestandaprofiler för att bättre förstå maskinvaruanvändningen på hög nivå för din Direct3D-app. Det hjälper dig att se om appens prestanda är CPU-bunden eller GPU-bunden och få insikt i hur du kan använda plattformens maskinvara mer effektivt. GPU-användning stöder appar som använder Direct3D 12, Direct3D 11 och Direct3D 10. Den stöder inte andra grafik-API:er, till exempel Direct2D eller OpenGL.
Så här ser fönstret GPU-användningsrapport ut:
               
              
            
Kravspecifikation
Utöver kraven för grafikdiagnostik krävs följande för att använda verktyget GPU-användning:
- En GPU och drivrutin som stöder nödvändig tidsinstrumentation. - Anmärkning - Mer information om maskinvara och drivrutiner som stöds finns i Stöd för maskinvara och drivrutiner i slutet av det här dokumentet. 
Mer information om krav för grafikdiagnostik finns i Komma igång.
Använda GPU-användningsverktyget
När du kör appen under verktyget GPU-användning skapar Visual Studio en diagnostiksession. Den här sessionen visar information på hög nivå om appens renderingsprestanda och GPU-användning i realtid.
Så här startar du verktyget GPU-användning:
- På huvudmenyn väljer du Felsöka>prestanda och diagnostik (eller trycker på Alt+F2 på tangentbordet). 
- I hubben Prestanda och diagnostik markerar du kryssrutan bredvid GPU-användning. Du kan också markera rutorna bredvid andra verktyg som du är intresserad av. Du kan köra flera prestanda- och diagnostikverktyg samtidigt för att få en mer fullständig bild av appens prestanda.   - Anmärkning - Alla prestanda- och diagnostikverktyg kan inte användas samtidigt. 
- Längst ned i hubben Prestanda och diagnostik väljer du Starta för att köra appen under de verktyg som du har valt. 
Den information på hög nivå som visas i realtid omfattar bildrutetid, bildfrekvens och GPU-användning. Var och en av dessa informationsdelar är graferade oberoende av varandra, men de använder alla en gemensam tidsskala så att du enkelt kan förstå relationerna.
Diagrammen Bildruta (ms) och Bildrutor per sekund (FPS) har två röda, vågräta linjer som visar prestandamål på 60 och 30 bildrutor per sekund. I diagrammet Bildrutetid överskrider appen prestandamålet när grafen ligger under linjen och missar målet när grafen är ovanför linjen. För diagrammet Bildrutor per sekund är det tvärtom: appen överskrider prestandamålet när grafen är ovanför linjen och missar målet när diagrammet ligger under linjen. Du använder de här graferna främst för att få en övergripande uppfattning om appens prestanda och för att identifiera långsamma åtgärder som du kanske vill undersöka. Ytterligare undersökning kan till exempel vara berättigad om du ser en plötslig minskning av bildfrekvens eller en ökning av GPU-användningen.
Medan appen körs under verktyget GPU-användning samlar diagnostiksessionen även in detaljerad information om grafikhändelser som kördes på GPU:n. Du använder den här informationen för att generera en mer detaljerad rapport om hur din app använder maskinvaran. Eftersom den här rapporten tar lite tid att generera från den insamlade informationen är den endast tillgänglig när diagnostiksessionen har samlat in information.
När du vill titta närmare på ett prestanda- eller användningsproblem kan du sluta samla in prestandainformation så att du kan generera rapporten.
Så här genererar och visar du GPU-användningsrapporten:
- I den nedre delen av diagnostiksessionsfönstret väljer du länken Stoppa samling eller väljer Stoppa i det övre vänstra hörnet.   
- I den översta delen av rapporten väljer du ett avsnitt från ett av de diagram som visar det problem som du vill undersöka. Ditt val kan vara upp till 3 sekunder långt. Längre avsnitt förkortas från början.   
- Om du vill visa en detaljerad tidslinje för ditt val går du till den nedre delen av rapporten i ... klicka här om du vill visa information om GPU-användning för det intervallmeddelandet och välj visa information.   
Det här valet öppnar ett nytt tabbdokument som innehåller rapporten. Rapporten GPU-användning hjälper dig att se när en grafikhändelse startas på processorn, när den når GPU:n och hur lång tid det tar för GPU:n att köra den. Den här informationen kan hjälpa dig att identifiera flaskhalsar och möjligheter till ökad parallellitet i koden.
Exportera till GPUView eller Windows Performance Analyzer
Från och med Visual Studio 2017 kan du öppna dessa data med GPUView och Windows Performance Analyzer. Välj bara länkarna Öppna i GpuView eller Öppna i WPA längst ned till höger i diagnostiksessionen.
               
              
            
Använda GPU-användningsrapporten
Den översta delen av GPU-användningsrapporten visar tidslinjer för processorbearbetningsaktiviteten, GPU-återgivningsaktiviteten och GPU-kopieringsaktiviteten. Dessa tidslinjer delas med ljusgrå, lodräta staplar som anger skärmens lodräta synkronisering (vsync). Frekvensen för staplarna matchar uppdateringshastigheten för en av skärmarna (markerad med hjälp av listrutan Visa ) som GPU-användningsdata samlades in från.
Eftersom visningen kan ha en högre uppdateringsfrekvens än appens prestandamål kanske det inte finns någon 1-till-1-relation mellan vsync och den bildfrekvens som du vill att appen ska uppnå. För att uppfylla prestandamålet måste en app slutföra all bearbetning, göra renderingen och göra ett Present() anrop till målramhastigheten. Den renderade ramen visas dock inte förrän nästa vsync efter Present().
Den nedre delen av GPU-användningsrapporten visar de grafikhändelser som inträffade under rapportens tidsperiod. När du väljer en händelse visas en markör vid motsvarande händelser i relevanta tidslinjer. Vanligtvis visar en händelse i en CPU-tråd API-anropet, medan en annan händelse på en av GPU-tidslinjerna visar när GPU:n slutförde uppgiften. På samma sätt, när du väljer en händelse i en tidslinje, markerar rapporten motsvarande grafikhändelse i den nedre delen av rapporten.
När du zoomas ut från tidslinjerna i den övre delen av rapporten visas bara de mest tidskrävande händelserna. Om du vill se händelser som har en kortare varaktighet kan du zooma in på tidslinjerna med hjälp av Ctrl+wheel på pekenheten eller skalningskontrollen i det nedre vänstra hörnet på den övre panelen. Du kan också dra innehållet i tidslinjepanelen för att gå igenom de inspelade händelserna.
För att hitta det du letar efter kan du filtrera rapporten GPU-användning baserat på processnamn, tråd-ID:n och händelsenamnet. Dessutom kan du välja vilken displayens uppdateringsfrekvens som avgör vsync-linjerna. Du kan sortera händelser hierarkiskt om din app använder gränssnittet ID3DUserDefinedAnnotation till gruppåtergivningskommandon.
Här är mer information:
| Filterkontroll | Beskrivning | 
|---|---|
| Bearbeta | Namnet på den process som du är intresserad av. Alla processer som använde GPU:n under diagnostiksessionen ingår i den här listrutan. Färgen som är associerad med processen är färgen på trådens aktivitet i tidslinjerna. | 
| Tråd | Det tråd-ID som du är intresserad av. I en app med flera trådar kan den här informationen hjälpa dig att isolera vissa trådar som tillhör den process som du är intresserad av. Händelser som är associerade med den valda tråden markeras i varje tidslinje. | 
| Visa | Antalet bildskärmar vars uppdateringsfrekvens visas. Vissa drivrutiner kan konfigureras för att presentera flera fysiska skärmar som en enda, stor virtuell skärm. Du kanske bara ser en skärm som är listad, även om datorn har flera skärmar anslutna. | 
| Filter | Nyckelord som du är intresserad av. Händelser i den nedre delen av rapporten innehåller bara de som matchar ett nyckelord, helt eller delvis. Du kan ange flera nyckelord genom att avgränsa dem med ett semikolon (;). | 
| Hierarkisortering | En kryssruta som anger om händelsehierarkier, definierade via användarmarkörer, bevaras eller ignoreras. | 
Listan över händelser i den nedre delen av GPU-användningsrapporten visar information om varje händelse.
| Kolumn | Beskrivning | 
|---|---|
| Händelsenamn | Namnet på grafikhändelsen. En händelse motsvarar vanligtvis en händelse i en tidslinje för CPU-tråd och en GPU-tidslinjehändelse. Händelsenamn kan vara oattributerade om GPU-användning inte kan fastställa namnet på en händelse. Mer information finns i kommentaren efter den här tabellen. | 
| CPU-start (ns) | Den tid då händelsen initierades på processorn genom att anropa ett Direct3D-API. Tiden mäts i nanosekunder i förhållande till när appen startades. | 
| GPU-start (ns) | Den tid då händelsen initierades på GPU:n. Tiden mäts i nanosekunder i förhållande till när appen startades. | 
| GPU-varaktighet (ns) | Tiden, i nanosekunder, som händelsen tog att slutföra på GPU: n. | 
| Processnamn | Namnet på appen som händelsen kom från. | 
| Tråd-ID | Tråd-ID:t som händelsen kom från. | 
Viktigt!
Om din GPU eller drivrutin inte stöder nödvändiga instrumentationsfunktioner visas alla händelser som ej distribuerade. Om det här problemet uppstår uppdaterar du GPU-drivrutinen och försöker igen. Mer information finns i Stöd för maskinvara och drivrutiner i slutet av det här dokumentet.
Inställningar för GPU-användning
Du kan konfigurera GPU-användningsverktyget för att skjuta upp insamlingen av profilinformation i stället för att börja samla in information så snart appen startar. Eftersom profilinformationens storlek kan vara betydande är den här åtgärden användbar när du vet att långsammare prestanda för appen inte visas förrän senare.
Så här skjuter du upp profilering från början av appen:
- På huvudmenyn väljer du Felsöka>prestanda och diagnostik (eller trycker på Alt+F2 på tangentbordet). 
- Välj inställningslänken bredvid GPU-användning i hubben Prestanda och diagnostik. 
- Under GPU-profileringskonfiguration går du till sidan Allmän egenskap och avmarkerar kryssrutan Börja profilering vid appstart för att skjuta upp profilering.   
Viktigt!
För närvarande kan du inte skjuta upp profilering för Direct3D 12-appar.
När du har kört appen under verktyget GPU-användning blir en ytterligare länk tillgänglig i den nedre delen av fönstret GPU-användningsverktyg. Om du vill börja samla in profileringsinformation väljer du länken Start i meddelandet Börja samla in ytterligare detaljerade GPU-användningsdata .
Stöd för maskinvara och drivrutin
Följande GPU-maskinvara och drivrutiner stöds:
| Leverantör | GPU-beskrivning | En drivrutinsversion krävs | 
|---|---|---|
| Intel® | 4:e generationens Intel® Core-processorer ("Haswell") – Intel® HD-grafik (GT1) – Intel® HD Graphics 4200 (GT2) – Intel® HD Graphics 4400 (GT2) – Intel® HD Graphics 4600 (GT2) - Intel® HD Graphics P4600 (GT2) - Intel® HD Graphics P4700 (GT2) – Intel® HD Graphics 5000 (GT3) - Intel® Iris™ Graphics 5100 (GT3) - Intel® Iris™ Pro Graphics 5200 (GT3e) | (använd de senaste drivrutinerna) | 
| AMD® | De flesta sedan AMD Radeon™ HD 7000-serien (exkluderar AMD Radeon™ HD 7350-7670) AMD Radeon™ GPU, AMD FirePro™ GPU:er och AMD FirePro GPU-acceleratorer med GCN-arkitektur (Graphics Core Next) AMD® E-serien och AMD A-serien Accelerated Processing Units (APU) med arkitekturen Graphics Core Next (GCN) ("Kaveri", "Kabini", "Temash", "Beema", "Mullins") | 14.7 RC3 eller senare | 
| NVIDIA® | De flesta sedan NVIDIA® GeForce® 400-serien NVIDIA® GeForce® GPU:er, NVIDIA Quadro® GPU:er och NVIDIA® Tesla™ GPU-acceleratorer med Arkitekturen Fermi™, Kepler™ eller Maxwell™ | 343.37 eller senare | 
Multi-GPU-konfigurationer, till exempel NVIDIA® SLI™ och AMD Crossfire™, stöds inte just nu. Hybridgrafikinstallationer, till exempel NVIDIA® Optimus™ och AMD Enduro™, stöds.