Stream-Output fas
Syftet med stream-output-fasen är att kontinuerligt mata ut (eller strömma) hörndata från geometri-skuggningssteget (eller hörnskuggningssteget om geometri-skuggningssteget är inaktivt) till en eller flera buffertar i minnet (se Komma igång med Stream-Output stage).
Stream-output-fasen (SO) finns i pipelinen direkt efter geometri-shader-stadiet och precis före rastreringssteget, som du ser i följande diagram.
Data som strömmas ut till minnet kan läsas tillbaka till pipelinen i ett efterföljande återgivningspass eller kopieras till en mellanlagringsresurs (så att den kan läsas av processorn). Mängden data som strömmas ut kan variera. ID3D11DeviceContext::D rawAuto API är utformat för att hantera data utan att behöva fråga (GPU) om mängden data som skrivs.
När en triangel eller linjeremsa är bunden till indata-assembler-stadiet konverteras varje remsa till en lista innan de strömmas ut. Hörn skrivs alltid ut som fullständiga primitiver (till exempel 3 hörn i taget för trianglar); ofullständiga primitiver strömmas aldrig ut. Primitiva typer med angränsande tar bort angränsande data innan data strömmas ut.
Det finns två sätt att mata in strömmande data i pipelinen:
- Stream-output-data kan matas tillbaka till indata-assembler-fasen.
- Stream-output-data kan läsas av programmerbara skuggningar med hjälp av belastningsfunktioner (till exempel Läs in).
Om du vill använda en buffert som en strömutdataresurs skapar du bufferten med flaggan D3D11_BIND_STREAM_OUTPUT. Stream-output-fasen stöder upp till 4 buffertar samtidigt.
- Om du strömmar data till flera buffertar kan varje buffert bara samla in ett enda element (upp till 4 komponenter) med data per hörn, med en underförstådd datasteg som är lika med elementbredden i varje buffert (kompatibelt med hur enstaka elementbuffertar kan bindas till indata i skuggningssteg). Om buffertarna dessutom har olika storlekar stoppas skrivning så snart någon av buffertarna är full.
- Om du strömmar data till en enda buffert kan bufferten samla in upp till 64 skalärkomponenter av data per hörn (256 byte eller mindre) eller så kan hörnsteget vara upp till 2 048 byte.
I det här avsnittet
Ämne | Beskrivning |
---|---|
Komma igång med Stream-Output Stage |
I det här avsnittet beskrivs hur du använder en geometriskuggning med dataströmutdatasteget. |