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.