imm_atomic_consume (sm5 - asm)
Атомарным уменьшением скрытого 32-разрядного счетчика, хранящегося в представлении неупорядоченного доступа Count или Append unordered access (UAV), возвращая новое значение.
imm_atomic_consume dest[.single_component_mask], dstUAV |
---|
Элемент | Описание |
---|---|
Dest |
[in] Содержит возвращенное исходное значение счетчика. |
dstUAV |
[in] Структурированный буфер UAV с флагом Count или Append. |
Комментарии
См . imm_atomic_alloc , чтобы обсудить допустимость возвращаемого значения счетчика в зависимости от того, является ли UAV Count или Append. То же самое относится и к imm_atomic_consume.
imm_atomic_consume выполняет атомарное уменьшение значения счетчика, возвращая новое значение в dest.
Нет зажима счетчика, поэтому он обертывается на нижнем потоке.
Один и тот же шейдер не может пытаться imm_atomic_alloc и imm_atomic_consume на одном БПЛА. Кроме того, GPU не может позволить нескольким вызовам шейдера смешивать imm_atomic_alloc и imm_atomic_consume в одном БПЛА.
Эта инструкция применяется к следующим этапам шейдера:
Вершина | Корпуса | Домен | Geometry | Пиксель | Вычисления |
---|---|---|---|---|---|
X | X |
Так как БПЛА доступны на всех этапах шейдера для Direct3D 11.1, эта инструкция применяется ко всем этапам шейдера для среды выполнения Direct3D 11.1, которая доступна начиная с Windows 8.
Вершина | Корпуса | Домен | Geometry | Пиксель | Вычисления |
---|---|---|---|---|---|
X | X | X | X | X | X |
Минимальная модель шейдера
Эта инструкция поддерживается в следующих моделях шейдеров:
Модель шейдера | Поддерживается |
---|---|
Модель шейдера 5 | да |
Модель шейдера 4.1 | нет |
Модель шейдера 4 | нет |
Модель шейдера 3 (DirectX HLSL) | нет |
Модель шейдера 2 (DirectX HLSL) | нет |
Модель шейдера 1 (DirectX HLSL) | нет |