ld_raw (sm5 - asm)
Lecture en accès aléatoire de 1 à 4 composants 32 bits à partir d’une mémoire tampon brute.
ld_raw dest[.mask], srcByteOffset[.select_component], src0[.swizzle] |
---|
Élément | Description |
---|---|
Dest |
[in] Adresse du résultat de l’opération. |
srcByteOffset |
[in] Spécifie le décalage à partir duquel lire. |
src0 |
[in] Composant à lire. |
Remarques
src0 doit être :
- N’importe quelle étape du nuanceur : SRV (t#)ld st
- Nuanceur de calcul ou nuanceur de pixels : UAV (u#)
- Nuanceur de calcul : mémoire partagée du groupe de threads (g#)
srcByteOffset spécifie la valeur de base 32 bits en mémoire pour une fenêtre de 4 valeurs séquentielles 32 bits dans lesquelles les données peuvent être lues, en fonction du swizzle et du masque sur d’autres paramètres.
Les données lues à partir de la mémoire tampon brute sont équivalentes au pseudocode suivant : où nous avons le décalage, l’adresse, le pointeur vers le contenu de la mémoire tampon, la foulée de la source et les données stockées linéairement.
BYTE *BufferContents; // from src0
UINT srcByteOffset; // from srcByteOffset
BYTE *ReadLocation; // value to calculate
ReadLocation = BufferContents
+ srcByteOffset;
UINT32 Temp[4]; // used to make code shorter
// apply the source resource swizzle on source data
Temp = read_and_swizzle(ReadLocation, srcSwizzle);
// write the components to the output based on mask
ApplyWriteMask(dstRegister, dstWriteMask, Temp);
L’adressage hors limites sur u#/t# d’un composant 32 bits donné retourne 0 pour ce composant.
L’adressage hors limites sur g# (les limites de ce g# particulier, par opposition à toute la mémoire partagée) pour un composant 32 bits donné retourne un résultat non défini.
cs_4_0 et cs_4_1 prennent en charge cette instruction pour les UAV et SRV.
Cette instruction s’applique aux étapes suivantes du nuanceur :
Sommet | Coque | Domain | Géométrie | Pixel | Compute |
---|---|---|---|---|---|
X | X | X | X | X | X |
Étant donné que les UAV sont disponibles à toutes les étapes du nuanceur pour Direct3D 11.1, cette instruction s’applique à toutes les étapes de nuanceur pour les UAV pour le runtime Direct3D 11.1, qui est disponible à partir de Windows 8.
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 | Pris 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 |
cs_4_0 et cs_4_1 prennent en charge cette instruction pour les UAV et SRV.
Rubriques connexes
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour