imm_atomic_exch (sm5 - asm)

Intercambio atómico inmediato a la memoria.

imm_atomic_exch dst0[.single_component_mask], dst1, dstAddress[.swizzle], src0[.select_component]
Elemento Descripción
dst0
[in] Contiene el valor de dst1 antes de la escritura.
dst1
[in] Una vista de acceso desordenada (UAV) (u#). En el sombreador de proceso, también puede ser memoria compartida del grupo de subprocesos (g#).
dstAddress
[in] Dirección de memoria.
src0
[in] Valor que se va a escribir en dst1 en dstAddress.

Comentarios

Esta instrucción realiza una escritura de valor de 32 bits de un solo componente de src0 de operando en dst1 a 32 bits por dirección de componente dstAddress.

Si dst1 es u#, es posible que se haya declarado como sin formato, con tipo o estructurado. Si se escribe, se debe declarar como UINT/SINT con el formato de recurso enlazado que se R32_UINT/_SINT.

Si dst1 es g#, debe declararse como sin formato o estructurado.

El número de componentes tomados de la dirección viene determinado por la dimensionalidad del recurso declarado en dst1.

El valor original de 32 bits en la memoria de destino se escribe en dst0.

Toda la operación se realiza de forma atómica.

Si la invocación del sombreador está inactiva, por ejemplo, si el píxel se ha descartado anteriormente en su ejecución, o solo existe una invocación de píxeles o muestras para servir como asistente para un píxel o muestra real para derivados, esta instrucción no modifica la memoria dst1 en absoluto y el valor devuelto no está definido.

El direccionamiento fuera de los límites en u# hace que no se escriba nada en la memoria, excepto si el u# está estructurado y el desplazamiento de bytes en la estructura (segundo componente de la dirección) está causando el acceso fuera de los límites, entonces todo el contenido de la UAV se vuelve indefinido.

El direccionamiento fuera de los límites en u# o g# hace que se devuelva un resultado indefinido al sombreador en dst0.

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

Vértice Casco Domain Geometría Píxel Proceso
x x

Dado que las UAV 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 el entorno de ejecución de Direct3D 11.1, que está disponible a partir de Windows 8.

Vértice Casco Domain Geometría Píxel Proceso
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)