gather4_po (sm5 - asm)
Eine Variante von gather4, aber anstatt einen sofortigen Offset [-8..7] zu unterstützen, kommt der Offset als Parameter zur Anweisung und hat auch einen größeren Bereich von [-32..31].
gather4_po dest[.mask], srcAddress[.swizzle], srcOffset[.swizzle], srcResource[.swizzle], srcSampler[.select_component] |
---|
Element | BESCHREIBUNG |
---|---|
Dest |
[in] Die Adresse des Ergebnisses des Vorgangs. |
srcAddress |
[in] Ein Satz von Texturkoordinaten. |
Srcoffset |
[in] Der Offset. |
srcResource |
[in] Ein Texturregister. |
srcSampler |
[in] Ein Samplerregister. |
Bemerkungen
Die ersten beiden Komponenten des 4-Vektoroffsetparameters liefern 32-Bit-Ganzzahloffsets. Die anderen Komponenten dieses Parameters werden ignoriert.
Die 6 am wenigsten signifikanten Bits jedes Offsetwerts werden als signierter Wert berücksichtigt, was einen [-32..31]-Bereich ergibt.
Diese Anweisung funktioniert nur mit 2D-Texturen, im Gegensatz zu gather4, das auch mit TextureCubes funktioniert.
Die einzigen Im Sampler berücksichtigten Modi sind die Adressierungsmodi. Es wird nur der detaillierteste Mip in der Ressourcenansicht verwendet.
Wenn die Adresse auf ein Texel-Center fällt, bedeutet dies nicht, dass die anderen Texel auf null gesetzt werden können.
Der srcSampler-Parameter enthält [.select_component], sodass jede einzelne Komponente einer Textur abgerufen werden kann, einschließlich der Rückgabe von Standardwerten für fehlende Komponenten.
Wenn der abgerufene Wert bei Formaten mit float32-Komponenten normalisiert, denormalisiert, +-0 oder +-INF ist, wird er unverändert an den Shader zurückgegeben. NaN wird als NaN zurückgegeben, aber die genaue Bitdarstellung des NaN kann geändert werden. Für TextureCubes muss eine Synthese des fehlenden 4. Texels an Ecken erfolgen, sodass die Idee, bits unverändert für das synthetisierte Texel zurückzugeben, nicht zutrifft, und Denormierungen könnten geleert werden.
Verwenden Sie diese Anweisung, um den Offsetbereich von gather4 zu erweitern, um größer und programmierbar zu sein. Das Suffix "po" im Namen bedeutet "programmierbarer Offset".
Diese Anweisung gilt für die folgenden Shaderphasen:
Scheitelpunkt | Hull | Domain | Geometrie | Pixel | Compute |
---|---|---|---|---|---|
X | X | X | X | X | X |
Minimales Shadermodell
Diese Anweisung wird in den folgenden Shadermodellen unterstützt:
Shadermodell | Unterstützt |
---|---|
Shadermodell 5 | ja |
Shadermodell 4.1 | Nein |
Shadermodell 4 | Nein |
Shadermodell 3 (DirectX HLSL) | Nein |
Shadermodell 2 (DirectX HLSL) | Nein |
Shadermodell 1 (DirectX HLSL) | Nein |