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

Выполняет гарантированную атомарную операцию или .

Синтаксис

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

Параметры

dest [in]

Тип: R

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

value [in]

Тип: T

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

original_value [out]

Тип: T

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

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

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

Комментарии

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

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

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

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

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

 

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

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

 

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

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

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