Share via


Función InterlockedAdd (referencia de HLSL)

Realiza un agregado atómico garantizado de valor a la variable de recurso dest.

Sintaxis

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

Parámetros

dest [in]

Tipo: R

Dirección de destino.

value [in]

Tipo: T

Valor de entrada.

original_value [out]

Tipo: T

Opcional. Valor de entrada original.

Valor devuelto

Esta función no devuelve ningún valor.

Observaciones

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 un agregado atómico de valor al 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 un agregado atómico de valor a la ubicación del recurso a la que hace referencia dest. La función sobrecargada tiene una variable de salida adicional que se establecerá en el valor original dest. Esta operación sobrecargada solo está disponible cuando R es legible y grabable.

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

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