LD _ bruts (SM5-ASM)

Lecture à accès aléatoire des composants 32 bits 1-4 à partir d’une mémoire tampon brute.

LD _ dst0 [ . Mask ] , srcByteOffset [ . Select brut, _ ] src0 [ . Swizzle]
Élément Description
dst0
[dans ] l’adresse du résultat de l’opération.
srcByteOffset
[dans ] spécifie le décalage à partir duquel effectuer la lecture.
src0
[dans ] le composant à lire.

Remarques

src0 doit être :

  • Étape de nuanceur : SRV (t # ) LD St
  • Nuanceur de calcul ou nuanceur de pixels : UAV (u # )
  • Nuanceur de calcul : mémoire partagée de groupe de threads (g # )

srcByteOffset spécifie la valeur de base de 32 bits en mémoire pour une fenêtre de 4 valeurs 32 bits séquentielles dans lesquelles les données peuvent être lues, en fonction du Swizzle et du masque sur les 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 Stride de la source et les données stockées de façon linéaire.

                    BYTE *BufferContents;         // from src0
                    UINT srcByteOffset;           // from srcRegister
                    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.

En dehors des limites, l’adressage 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 UAV et SRV.

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

Sommet Forme Domaine Géométrie Pixel Calcul
X X X X X X

Étant donné que les UAVs sont disponibles à toutes les étapes de nuanceur pour Direct3D 11,1, cette instruction s’applique à toutes les étapes de nuanceur pour UAVs pour le runtime Direct3D 11,1, disponible à partir de Windows 8.

Sommet Forme Domaine Géométrie Pixel Calcul
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
Shader, modèle 5 oui
Modèle de nuanceur 4,1 non
Nuanceur modèle 4 non
Shader Model 3 (DirectX HLSL) non
Shader Model 2 (DirectX HLSL) non
Shader Model 1 (DirectX HLSL) non

CS _ 4 _ 0 et CS _ 4 _ 1 prennent en charge cette instruction pour UAV et SRV.

Assembly modèle 5 du nuanceur (DirectX HLSL)