imm_atomic_iadd (sm5 - asm)

Немедленное атомарное целое число добавляется в память. Возвращает значение в памяти перед добавлением.

imm_atomic_iadd dst0[.single_component_mask], dst1, dstAddress[.swizzle], src0[.select_component]
Элемент Описание
dst0
[in] Содержит значение в dst1 перед записью.
dst1
Это значение должно быть неупорядоченным представлением доступа (U#). В вычислительном шейдере это также может быть общая память группы потоков (g#).
dstAddress
[in] Наддрес памяти.
src0
[in] Значение, добавляемое к dst1.

Комментарии

Эта инструкция выполняет однокомпонентное 32-разрядное целочисленное добавление операнда src0 с dst1 с 32-разрядным адресом каждого компонента dstAddress. Подписывать нечувствительно.

Если dst1 является u#, он может быть объявлен как необработанный, типизированный или структурированный. Если тип задан, он должен быть объявлен как UINT/SINT с привязанным форматом ресурса R32_UINT/_SINT.

Если dst1 имеет значение g#, он должен быть объявлен как необработанный или структурированный.

Значение в памяти dst1 до сложения возвращается в dst0.

Количество компонентов, взятых из адреса, определяется размерностью dst1.

Вся операция выполняется атомарно.

Если вызов шейдера неактивен, например, если пиксель был отменен ранее в его выполнении или существует только вызов пикселя или образца только для того, чтобы служить вспомогательным для реального пикселя или образца для производных, эта инструкция не изменяет память dst1 вообще, а возвращаемое значение не определено.

Адресация за пределы границ в U# не приводит к записи в память, за исключением случаев, когда u# структурирован, а смещение байтов в структуре (второй компонент адреса) приводит к выходу за пределы границ доступа, то все содержимое UAV становится неопределенным.

Адресация за пределы границ в u# или g# приводит к возврату неопределенного результата в шейдер в dst0.

Эта инструкция применяется к следующим этапам шейдера:

Вершина Корпуса Домен 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) нет

Сборка шейдера модели 5 (DirectX HLSL)