ld_raw (sm5 - asm)
Lectura de acceso aleatorio de componentes de 1 a 4 32 bits desde un búfer sin procesar.
ld_raw dest[.mask], srcByteOffset[.select_component], src0[.swizzle] |
---|
Elemento | Descripción |
---|---|
Dest |
[in] Dirección del resultado de la operación. |
srcByteOffset |
[in] Especifica el desplazamiento desde el que se va a leer. |
src0 |
[in] Componente que se va a leer. |
Comentarios
src0 debe ser:
- Cualquier fase del sombreador: SRV (t#)ld st
- Sombreador de cálculo o sombreador de píxeles: UAV (u#)
- Sombreador de proceso: memoria compartida del grupo de subprocesos (g#)
srcByteOffset especifica el valor base de 32 bits en memoria para una ventana de 4 valores secuenciales de 32 bits en los que se pueden leer los datos, en función del swizzle y mask en otros parámetros.
Los datos leídos del búfer sin procesar son equivalentes al siguiente pseudocódigo: donde tenemos el desplazamiento, la dirección, el puntero al contenido del búfer, el intervalo del origen y los datos almacenados linealmente.
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);
Fuera de los límites que se direcciona en u#/t# de cualquier componente de 32 bits determinado devuelve 0 para ese componente.
Fuera de los límites que se direccionan en g# (los límites de ese g#concreto, en lugar de toda la memoria compartida) para cualquier componente de 32 bits determinado devuelve un resultado indefinido.
cs_4_0 y cs_4_1 admiten esta instrucción para UAV y SRV.
Esta instrucción se aplica a las siguientes fases del sombreador:
Vértice | Casco | Dominio | Geometría | Píxel | Compute |
---|---|---|---|---|---|
X | x | X | x | x | x |
Dado que las UMV están disponibles en todas las fases del sombreador para Direct3D 11.1, esta instrucción se aplica a todas las fases del sombreador para los UMV para el entorno de ejecución de Direct3D 11.1, que está disponible a partir de Windows 8.
Vértice | Casco | Dominio | Geometría | Píxel | Compute |
---|---|---|---|---|---|
X | x | X | x | x | X |
Modelo de sombreador mínimo
Esta instrucción se admite en los siguientes modelos de sombreador:
Modelo de sombreador | Compatible |
---|---|
Modelo de sombreador 5 | sí |
Modelo de sombreador 4.1 | No |
Modelo de sombreador 4 | No |
Modelo de sombreador 3 (DirectX HLSL) | No |
Modelo de sombreador 2 (DirectX HLSL) | No |
Modelo de sombreador 1 (DirectX HLSL) | No |
cs_4_0 y cs_4_1 admiten esta instrucción para UAV y SRV.