Dela via


Ej skuggning synlig beskrivning Heaps

Vissa beskrivande heaps kan inte refereras av skuggningar via deskriptortabeller, men finns antingen för att hjälpa appen att mellanlagring av deskriptorerna innan du registrerar en kommandolista eller eftersom ingen skuggnings synlig heap krävs.

Ej synliga vyer

Alla beskrivande heaps, inklusive de skuggningstillgängliga deskriptor-heaps som beskrevs tidigare, kan manipuleras av CPU- och/eller kommandolistorna beroende på minnespoolen och cpu-åtkomstegenskaperna som programmet väljer för en beskrivande heap.

För Shader Visible Descriptor Heapsär den uppenbara anledningen till att neka skuggningsåtkomst till dessa beskrivande heaps medan de mellanlagras. Sedan görs dessa heaps skuggning synliga och nås via deskriptortabeller vid körning av kommandolistan. Det finns dock inget krav på att mellanlagra skuggnings synliga heaps, de kan fyllas i direkt.

Andra deskriptorer binds till pipelinen genom att deras innehåll registreras direkt i kommandolistan. Dessa deskriptorer fungerar bara för att översätta vyparametrarna vid posttid för kommandolistan. Dessa heaps är alltid icke-skuggning synliga och innehåller följande.

  • Rendera målvyer (RTV:er)
  • Djupstencilvyer (DSV:er)

Indexbuffertvyer (IBV: er), hörnbuffertvyer (VBV:er) och Stream Output Views (SOV: er) skickas direkt till API-metoder, har inte specifika heaptyper.

När du har spelat in i kommandolistan (med ett anrop som OMSetRenderTargets, till exempel) är det minne som används för att lagra beskrivningarna för det här anropet omedelbart tillgängligt för återanvändning efter anropet.

Även deskriptortabeller har alternativ där en app kan tillåta implementeringen att välja att registrera tabellinnehållet vid inspelning av kommandolistan (i stället för att avreferering av tabellpekaren vid körning).

Sammanfattning

Skuggning synlig, endast cpu-skrivning Icke-skuggning synlig, CPU-läsning/skrivning
CBV, SRV, UAV Ja Ja
SAMPLER Ja Ja
RTV- Nej Ja
DSV- Nej Ja

 

Descriptor Heaps