Not
Å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.
Den programmerbara Direct3D 12-pipelinen ökar avsevärt renderingsprestandan jämfört med tidigare generationens grafikprogrammeringsgränssnitt.
Direct3D 12-grafikpipeline
Följande diagram illustrerar direct3D 12-grafikpipelinen och tillståndet.
En grafikpipeline är det sekventiella flödet av dataindata och utdata när GPU:n återger ramar. Med tanke på pipelinetillståndet och indata utför GPU:n en serie åtgärder för att skapa de resulterande avbildningarna. En grafikpipeline innehåller skuggningar som utför programmerbara återgivningseffekter och beräkningar samt fasta funktionsåtgärder.
Observera följande när du refererar till pipelinetillståndsdiagrammet:
- Deskriptortabellerna och heaparna kan ordnas godtyckligt: SRV:er, CBV:er och UAV:er kan refereras till och allokeras i valfri ordning.
- Vissa åtgärder i pipelinen kan konfigureras. Till exempel fungerar utdatasammanslagningen vanligtvis på läs- och ändringsskrivningsbasis med återgivningsmål- och djupstencilvyerna. Pipelinen kan dock konfigureras så att någon av dessa vyer är skrivskyddade eller skrivskyddade.
- Statiska exempel är inte en del av rotargumenten eftersom de är statiska.
Pipelinetillståndsobjekt
Direct3D 12 introducerar pipelinetillståndsobjektet (PSO). I stället för att lagra och representera pipelinetillstånd över ett stort antal objekt på hög nivå lagras tillstånden för pipelinekomponenter som indatamonterare, rastrering, pixelskuggning och utdatasammanslagning i ett PSO. En PSO är ett enhetligt pipelinetillståndsobjekt som inte kan ändras när det har skapats. Den valda PSO:n kan ändras snabbt och dynamiskt, och maskinvaran och drivrutinerna kan direkt konvertera en PSO till interna maskinvaruinstruktioner och tillstånd och förbereda GPU:n för grafikbearbetning. För att tillämpa en PSO kopierar maskinvaran en minimal mängd förberäknat tillstånd direkt till maskinvaruregistren. Detta tar bort de omkostnader som orsakas av att grafikdrivrutinen kontinuerligt omberäknar maskinvarutillståndet baserat på alla aktuella renderings- och pipelineinställningar. Resultatet är betydligt lägre anropskostnader, ökad prestanda och fler anrop per bildruta.
Den pso som används för närvarande definierar och ansluter alla skuggningar som används i återgivningspipelinen. Microsoft High Level Shader Language (HLSL) förkompileras till skuggningsobjekt, som sedan används vid körning som indata för pipelinetillståndsobjekt. Mer information om hur PSO fungerar i grafikpipelinen finns i Hantera status för grafikpipeline i Direct3D 12.
Direct3D 12-beräkningspipeline
Följande diagram illustrerar Direct3D 12-beräkningspipelinen och tillståndet.
Det finns inga fasta funktionsenheter i den här pipelinen, men deskriptor heaps, sampler heaps och statiska samplers är fortfarande tillgängliga i beräkning.
Relaterade ämnen