Функция InterlockedAnd (справочник по HLSL)
Выполняет гарантированное атомарное и .
Синтаксис
void InterlockedAnd(
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 |
См. также раздел