Partager via


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.

Shader Model 5 Assembly (DirectX HLSL)