ld_raw (sm5 - asm)
Zufälliger Lesezugriff von 1-4 32-Bit-Komponenten aus einem Rohpuffer.
ld_raw dest[.mask], srcByteOffset[.select_component], src0[.swizzle] |
---|
Element | BESCHREIBUNG |
---|---|
Dest |
[in] Die Adresse des Ergebnisses des Vorgangs. |
srcByteOffset |
[in] Gibt den Offset an, aus dem gelesen werden soll. |
src0 |
[in] Die zu lesende Komponente. |
Hinweise
src0 muss wie folgt sein:
- Beliebige Shaderphase: SRV (t#)ld st
- Compute-Shader oder Pixelshader: UAV (u#)
- Compute-Shader: Freigegebener Arbeitsspeicher der Threadgruppe (g#)
srcByteOffset gibt den 32-Bit-Basiswert im Arbeitsspeicher für ein Fenster mit vier sequenziellen 32-Bit-Werten an, in dem Daten gelesen werden können, abhängig vom Swizzle und der Maske für andere Parameter.
Die aus dem Rohdatenpuffer gelesenen Daten entsprechen dem folgenden Pseudocode: Wobei der Offset, die Adresse, der Zeiger auf den Pufferinhalt, der Schritt der Quelle und die daten linear gespeichert sind.
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);
Bei der Adressierung außerhalb der Grenzen für u#/t# einer bestimmten 32-Bit-Komponente wird für diese Komponente 0 zurückgegeben.
Die Adressierung außerhalb der Grenzen für g# (die Grenzen dieses bestimmten g#, im Gegensatz zum gesamten freigegebenen Speicher) für eine bestimmte 32-Bit-Komponente gibt ein undefiniertes Ergebnis zurück.
cs_4_0 und cs_4_1 unterstützen diese Anweisung für UAV und SRV.
Diese Anweisung gilt für die folgenden Shaderphasen:
Scheitelpunkt | Hull | Domain | Geometrie | Pixel | Compute |
---|---|---|---|---|---|
X | X | X | X | X | X |
Da UAVs in allen Shaderphasen für Direct3D 11.1 verfügbar sind, gilt diese Anweisung für alle Shaderphasen für UAVs für die Direct3D 11.1-Runtime, die ab Windows 8 verfügbar ist.
Scheitelpunkt | Hull | Domain | Geometrie | Pixel | Compute |
---|---|---|---|---|---|
X | X | X | X | X | X |
Minimales Shadermodell
Diese Anweisung wird in den folgenden Shadermodellen unterstützt:
Shadermodell | Unterstützt |
---|---|
Shadermodell 5 | ja |
Shadermodell 4.1 | Nein |
Shadermodell 4 | Nein |
Shadermodell 3 (DirectX HLSL) | Nein |
Shadermodell 2 (DirectX HLSL) | Nein |
Shadermodell 1 (DirectX HLSL) | Nein |
cs_4_0 und cs_4_1 unterstützen diese Anweisung für UAV und SRV.