Tillfälligt register (HLSL VS-referens)

Ett tillfälligt vertex shader-register används för att lagra mellanliggande resultat.

Ett tillfälligt register måste initieras innan det används. Varje tillfälligt register har åtkomst med enkel skrivning och trippelläsning. Det innebär att en enskild skuggningsinstruktion kan använda så många som tre tillfälliga register som indata.

Det går inte att använda värden i ett tillfälligt register som finns kvar från föregående anrop av hörnskuggningen.

Ett register består av egenskaper som avgör hur varje register beter sig.

Egenskap Beskrivning
Namn r[n]. n är ett valfritt registernummer. Standardvärdet är 0 och är det värde som används om inget värde har angetts.
Räkna Högst 12 register.
I/O-behörigheter Läs/skriv. Det här registret kan läsas eller skrivas av API:et eller av skuggningen.
Läs portar Antalet gånger ett register kan läsas inom en enda instruktion är 3. Ett tillfälligt register är det enda register som kan läsas och skrivas mer än en gång i en enda instruktion.

 

Varje tillfälligt register har åtkomst med enkel skrivning och trippelläsning. Därför kan en instruktion ha så många som tre tillfälliga register i sin uppsättning indatakälloperor.

Inga värden i ett tillfälligt register som finns kvar från föregående anrop av hörnskuggningen kan användas. Hörnskuggor som läser ett värde från ett tillfälligt register innan de skriver till det misslyckas med Direct3D API-anropet för att skapa hörnskuggningen.

Exempel

Här är ett exempel med hjälp av ett tillfälligt register:

def c4, 0,0,0,1
...
// Decompress position
mov r0.x, v0.x
mov r0.y, c4.w       // 1
mov r0.z, v0.y
mov r0.w, c4.w       // 1

// Compute theta from distance and time
mov r4.xz, r0        // xz
Hörnskuggningsversioner 1_1 2_0 2_sw 2_x 3_0 3_sw
Tillfälligt register x x x x x x

 

Vertex Shader registrerar