Função InterlockedAdd (referência HLSL)

Executa uma adição atômica garantida de valor à variável de recurso de dest.

Sintaxe

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

Parâmetros

dest [in]

Tipo: R

O endereço de destino.

value [in]

Tipo: T

O valor de entrada.

original_value [out]

Tipo: T

Opcional. O valor de entrada original.

Retornar valor

Essa função não retorna um valor.

Comentários

Essa operação só pode ser executada em recursos digitados int ou uint e variáveis de memória compartilhada. Há dois usos possíveis para essa função. A primeira é quando R é um tipo de variável de memória compartilhada. Nesse caso, a função executa uma adição atômica de valor ao registro de memória compartilhado referenciado por dest. O segundo cenário é quando R é um tipo de variável de recurso. Nesse cenário, a função executa um valor de adição atômico ao local do recurso referenciado por dest. A função sobrecarregada tem uma variável de saída adicional que será definida como o valor original de dest. Essa operação sobrecarregada só está disponível quando o R é legível e gravável.

As operações interligadas não implicam nenhuma barreira/limite de memória.

Modelo de sombreador mínimo

Essa função tem suporte nos modelos de sombreador a seguir.

Modelo de Sombreador Com suporte
Modelo de sombreador 5 e modelos de sombreador superior sim

 

Essa função tem suporte nos seguintes tipos de sombreadores:

Vértice Casco Domínio Geometry Pixel Computação
x x x x x x

 

Confira também

Funções intrínsecas

Modelo de sombreador 5