Функция 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 |
См. также раздел