Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
De Direct3D 12 programmeerbare pijplijn verhoogt de renderingprestaties aanzienlijk ten opzichte van grafische programmeerinterfaces van de vorige generatie.
- Direct3D 12-grafische pijplijn
- pijplijnstatusobjecten
- Direct3D 12-rekenpijplijn
- Verwante onderwerpen
Direct3D 12-grafische pijplijn
In het volgende diagram ziet u de grafische pijplijn en status van Direct3D 12.
Een grafische pijplijn is de sequentiƫle stroom van gegevensinvoer en -uitvoer, omdat de GPU frames rendert. Gezien de pijplijnstatus en -invoer voert de GPU een reeks bewerkingen uit om de resulterende installatiekopieƫn te maken. Een grafische pijplijn bevat shaders, waarmee programmeerbare renderingeffecten en berekeningen en vaste functiebewerkingen worden uitgevoerd.
Let op het volgende wanneer u naar het pijplijnstatusdiagram verwijst:
- De descriptortabellen en heaps kunnen willekeurig worden gerangschikt: SRV's, CBV's en UAV's kunnen in elke volgorde worden verwezen en toegewezen.
- Sommige bewerkingen van de pijplijn kunnen worden geconfigureerd. De uitvoerfusie werkt bijvoorbeeld doorgaans op basis van lezen/wijzigen-schrijven met het renderdoel- en dieptestencilweergaven. De pijplijn kan echter zodanig worden geconfigureerd dat een van deze weergaven alleen-lezen of alleen-schrijven is.
- Statische samplers maken geen deel uit van de hoofdargumenten omdat ze statisch zijn.
Pijplijnstatusobjecten
Direct3D 12 introduceert het pijplijnstatusobject (PSO). In plaats van de pijplijnstatus op te slaan en weer te geven voor een groot aantal objecten op hoog niveau, worden de statussen van pijplijnonderdelen zoals de invoerassembly, rasterizer, pixel-shader en uitvoerfusie opgeslagen in een PSO. Een PSO is een uniform pijplijnstatusobject dat onveranderbaar is na het maken. De momenteel geselecteerde PSO kan snel en dynamisch worden gewijzigd en de hardware en stuurprogramma's kunnen een PSO rechtstreeks converteren naar systeemeigen hardware-instructies en -status, zodat de GPU klaar is voor grafische verwerking. Als u een PSO wilt toepassen, kopieert de hardware een minimale hoeveelheid vooraf berekende status rechtstreeks op de hardwareregisters. Hierdoor wordt de overhead verwijderd die wordt veroorzaakt door het grafische stuurprogramma, waarbij de hardwarestatus voortdurend opnieuw wordt gecomputeerd op basis van alle momenteel toepasselijke rendering- en pijplijninstellingen. Het resultaat is aanzienlijk minder overhead voor tekenen, betere prestaties en meer aanroepen per frame.
De momenteel toegepaste PSO definieert en verbindt alle shaders die worden gebruikt in de renderingpijplijn. HLSL - (High Level Shader Language) van Microsoft vooraf is gecompileerd in shader-objecten, die vervolgens tijdens runtime worden gebruikt als invoer voor pijplijnstatusobjecten. Zie De pijplijnstatus van afbeeldingen beheren in Direct3D 12voor meer informatie over hoe de PSO in de grafische pijplijn functioneert.
Direct3D 12-rekenpijplijn
In het volgende diagram ziet u de Direct3D 12-rekenpijplijn en -status.
Er zijn geen vaste functie-eenheden in deze pijplijn, maar descriptor-heaps, sampler-heaps en statische samplers zijn nog steeds beschikbaar in compute.
Verwante onderwerpen