Функция InterlockedXor (справочник по HLSL)

Выполняет гарантированный атомарный xor.

Синтаксис

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

Параметры

dest [in]

Тип: R

Адрес назначения.

value [in]

Тип: T

Входное значение.

original_value [out]

Тип: T

Необязательный элемент. Исходное входное значение.

Возвращаемое значение

Эта функция не возвращает значение.

Комментарии

Эта операция может выполняться только с типизированными ресурсами int или uint и переменными общей памяти. Существует два возможных варианта использования этой функции. Во-первых, R является типом переменной общей памяти. В этом случае функция выполняет атомарную XOR со значением для регистра общей памяти, на который ссылается dest. Второй сценарий — это ситуация, когда R является типом переменной ресурса. В этом сценарии функция выполняет атомарное значение XORof в расположении ресурса, на которое ссылается dest. Перегруженная функция имеет дополнительную выходную переменную, которой будет присвоено исходное значение dest. Эта перегруженная операция доступна только в том случае, если R доступен для чтения и записи.

Операции с блокировкой не подразумевают границы памяти или барьеры.

Минимальная модель шейдера

Эта функция поддерживается в следующих моделях шейдеров.

Модель шейдера Поддерживается
Модели шейдеров 5 и более поздних версий шейдеров да

 

Эта функция поддерживается в следующих типах шейдеров:

Вершина Корпуса Домен Geometry Пиксель Вычисления
x x x x x x

 

См. также раздел

Встроенные функции

Модель шейдера 5