Dela via


Inlämning av arbete i Direct3D 12

För att förbättra processoreffektiviteten för Direct3D-appar har Direct3D från och med version 12 inte längre stöd för en omedelbar kontext som är associerad med en enhet. I stället registrerar ditt program och skickar sedan kommandolistor, som innehåller ritnings- och resurshanteringsanrop. Du kan skicka dessa kommandolistor från flera trådar till en eller flera kommandoköer, som hanterar körningen av kommandona. Den här grundläggande ändringen ökar effektiviteten med en tråd genom att programmet kan förberäkna renderingen för senare återanvändning, och den drar nytta av system med flera kärnor genom att sprida renderingsarbetet över flera trådar.

I det här avsnittet

Ämne Beskrivning
Designfilosofi för kommandoköer och kommandolistor Målet med att möjliggöra återanvändning av renderingsarbete och skalning med flera trådar kräver grundläggande ändringar i hur Direct3D-appar skickar återgivning till GPU:n.
Skapa och spela in kommandolistor och paket Det här avsnittet beskriver inspelning av kommandolistor och paket i Direct3D 12-appar. Både kommandolistor och paket tillåter att appar registrerar ritnings- eller tillståndsförändrande anrop för senare körning på grafikprocessorn (GPU).
kör och synkroniserar kommandolistor I Microsoft Direct3D 12 finns inte längre det omedelbara läget för tidigare versioner. I stället skapar appar kommandolistor och paket och registrerar sedan uppsättningar med GPU-kommandon. Kommandoköer används för att skicka kommandolistor som ska köras. Med den här modellen kan utvecklare ha mer kontroll över den effektiva användningen av både GPU och CPU.
Hantera status för grafikpipeline i Direct3D 12 Det här avsnittet beskriver hur status för grafikpipelines anges i Direct3D 12.
Använda resursbarriärer för att synkronisera resurstillstånd i Direct3D 12 För att minska den totala cpu-användningen och aktivera drivrutinshantering med flera trådar och förbearbetning flyttar Direct3D 12 ansvaret för tillståndshantering per resurs från grafikdrivrutinen till programmet.
Pipelines och skuggningar med Direct3D 12 Den programmerbara Direct3D 12-pipelinen ökar avsevärt renderingsprestandan jämfört med tidigare generationens grafikprogrammeringsgränssnitt.
VRS- Skuggning med variabel hastighet – eller grov pixelskuggning – är en mekanism som gör att du kan allokera renderingsprestanda/effekt med hastigheter som varierar mellan dina renderade bilder.
Render skickar Funktionen för återgivningspass hjälper renderaren att förbättra GPU-effektiviteten genom att minska minnestrafiken till/från minnet utanför chipet. det gör det genom att göra det möjligt för ditt program att bättre identifiera beställningskrav för resursrendering och databeroenden.