Partager via


gather4_po (sm5 - asm)

Variante de gather4, mais au lieu de prendre en charge un décalage immédiat [-8..7], le décalage est un paramètre de l’instruction et a également une plage plus grande de [-32..31].

gather4_po dest[.mask], srcAddress[.swizzle], srcOffset[.swizzle], srcResource[.swizzle], srcSampler[.select_component]
Élément Description
Dest
[in] Adresse du résultat de l’opération.
srcAddress
[in] Ensemble de coordonnées de texture.
srcOffset
[in] Décalage.
srcResource
[in] Registre de textures.
srcSampler
[in] Registre de l’échantillonneur.

Notes

Les deux premiers composants du paramètre de décalage à 4 vecteurs fournissent des décalages entiers 32 bits. Les autres composants de ce paramètre sont ignorés.

Les 6 bits les moins significatifs de chaque valeur de décalage sont honorés en tant que valeur signée, ce qui donne une plage [-32..31].

Cette instruction fonctionne uniquement avec les textures 2D, contrairement à collect4, qui fonctionne également avec TextureCubes.

Les seuls modes respectés dans l’échantillonneur sont les modes d’adressage. Seul le mip le plus détaillé dans l’affichage des ressources est utilisé.

Si l’adresse tombe sur un centre de texel, cela ne signifie pas que les autres texels peuvent être supprimés à zéro.

Le paramètre srcSampler inclut [.select_component], ce qui permet à n’importe quel composant d’une texture d’être récupéré, y compris le retour des valeurs par défaut pour les composants manquants.

Pour les formats avec des composants float32, si la valeur extraite est normalisée, dénormalisée, +-0 ou +-INF, elle est retournée au nuanceur sans avoir été changée. NaN est retourné en tant que NaN, mais la représentation en bits exacte du NaN peut être modifiée. Pour les TextureCubes, une certaine synthèse du 4e texel manquant doit se produire dans les coins, de sorte que la notion de retour de bits inchangés pour le texel synthétisé ne s’applique pas, et les dénorms peuvent être vidés.

Utilisez cette instruction pour étendre la plage de décalage de gather4 afin qu’elle soit plus grande et programmable. Le suffixe « po » sur le nom signifie « décalage programmable ».

Cette instruction s’applique aux étapes suivantes du nuanceur :

Sommet Coque Domain Géométrie Pixel Compute
X X X X X X

Modèle de nuanceur minimal

Cette instruction est prise en charge dans les modèles de nuanceur suivants :

Modèle de nuanceur Prise en charge
Modèle de nuanceur 5 Oui
Modèle de nuanceur 4.1 non
Modèle de nuanceur 4 non
Modèle de nuanceur 3 (DirectX HLSL) non
Shader Model 2 (DirectX HLSL) non
Modèle de nuanceur 1 (DirectX HLSL) non

Shader Model 5 Assembly (DirectX HLSL)