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

Выполняет гарантированное атомарное максимальное значение.

Синтаксис

void InterlockedMax(
  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