imm_atomic_umax (sm5 – asm)

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

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

Комментарии

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

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

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

Значение в памяти dst1 до max возвращается в 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)