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.