Función InterlockedCompareExchange (referencia de HLSL)

Compara de forma atómica el destino con el valor de comparación. Si son idénticos, el destino se sobrescribe con el valor de entrada. El valor original se establece en el valor original del destino.

Sintaxis

void InterlockedCompareExchange(
  in  R dest,
  in  T compare_value,
  in  T value,
  out T original_value
);

Parámetros

dest [in]

Tipo: R

Dirección de destino.

compare_value [in]

Tipo: T

Valor de comparación.

value [in]

Tipo: T

Valor de entrada.

original_value [out]

Tipo: T

El valor original.

Valor devuelto

Esta función no devuelve ningún valor.

Observaciones

Compara de forma atómica el valor al que hace referencia dest con compare_value, almacena el valor en la ubicación a la que hace referencia dest si los valores coinciden, devuelve el valor original dest en original_value. Esta operación solo se puede realizar en recursos con tipo int o uint y en variables de memoria compartidas. Hay dos posibles usos para esta función. La primera es cuando R es un tipo de variable de memoria compartida. En este caso, la función realiza la operación en el registro de memoria compartida al que hace referencia dest. El segundo escenario es cuando R es un tipo de variable de recurso. En este escenario, la función realiza la operación en la ubicación del recurso a la que hace referencia dest. Esta operación solo está disponible cuando R es legible y grabable.

Las operaciones interbloqueadas no implican ninguna barrera o barrera de memoria.

Nota

Si llama a InterlockedCompareExchange en un bucle for o while compute shader, para compilar correctamente, debe usar el atributo [allow_uav_condition] en ese bucle.

 

Modelo de sombreador mínimo

Esta función se admite en los siguientes modelos de sombreador.

Modelo de sombreador Compatible
Modelo de sombreador 5 y modelos de sombreador superiores

 

Esta función se admite en los siguientes tipos de sombreadores:

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

 

Consulte también

Funciones intrínsecas

Modelo de sombreador 5