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

Атомарным образом сравнивает назначение со значением сравнения. Если они идентичны, назначение перезаписывается входным значением.

Синтаксис

void InterlockedCompareStore(
  in R dest,
  in T compare_value,
  in T value
);

Параметры

dest [in]

Тип: R

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

compare_value [in]

Тип: T

Значение сравнения.

value [in]

Тип: T

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

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

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

Комментарии

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

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

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

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

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

 

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

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

 

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

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

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