Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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.