gather4_po (sm5 - asm)

Una variante de gather4, pero en lugar de admitir un desplazamiento inmediato [-8..7], el desplazamiento viene como parámetro para la instrucción y también tiene un intervalo mayor de [-32..31].

gather4_po dest[.mask], srcAddress[.swizzle], srcOffset[.swizzle], srcResource[.swizzle], srcSampler[.select_component]
Elemento Descripción
Dest
[in] Dirección del resultado de la operación.
srcAddress
[in] Conjunto de coordenadas de textura.
srcOffset
[in] Desplazamiento.
srcResource
[in] Registro de textura.
srcSampler
[in] Un registro de ejemplo.

Observaciones

Los dos primeros componentes del parámetro de desplazamiento de 4 vectores proporcionan desplazamientos enteros de 32 bits. Se omiten los demás componentes de este parámetro.

Los 6 bits menos significativos de cada valor de desplazamiento se respetan como un valor con signo, lo que produce el intervalo [-32..31].

Esta instrucción solo funciona con texturas 2D, a diferencia de gather4, que también funciona con TextureCubes.

Los únicos modos que se respetan en el sampler son los modos de direccionamiento. Solo se usa el mip más detallado en la vista de recursos.

Si la dirección se encuentra en un centro de textura, esto no significa que los demás elementos de textura se puedan cero.

El parámetro srcSampler incluye [.select_component], lo que permite recuperar cualquier componente único de una textura, incluida la devolución de valores predeterminados para los componentes que faltan.

En el caso de los formatos con componentes float32, si el valor que se captura es normalizado, desnormalizado, +-0 o +-INF, se devuelve al sombreador sin modificar. NaN se devuelve como NaN, pero se puede cambiar la representación de bits exacta del NaN. Para TextureCubes, se debe producir alguna síntesis de la 4ª textura que falta en las esquinas, por lo que la noción de devolver bits sin cambios para el elemento de textura sintetizado no se aplica y se podrían vaciar los desnormas.

Use esta instrucción para ampliar el intervalo de desplazamiento de gather4 para ser más grande y programable. El sufijo "po" en el nombre significa "desplazamiento programable".

Esta instrucción se aplica a las siguientes fases del sombreador:

Vértice Casco Domain 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
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

Ensamblado del modelo de sombreador 5 (DirectX HLSL)