Поделиться через


dmul (sm5 - asm)

Умножение двойной точности на основе компонентов.

dmul[_sat] dest[.mask], [-]src0[_abs][.swizzle], [-]src1[_abs][.swizzle]
Элемент Описание
Dest
[in] Адрес результата операции.
Dest = src0 * src1
src0
[in] Компоненты для умножения с помощью src1.
src1
[in] Компоненты для умножения с помощью src0.

Комментарии

Допустимые swizzles для параметров источника: .xyzw, .xyxy, .zwxy, .zwzw. Допустимые маски dest : .xy, .zw и .xyzw. Следующие сопоставления src являются post-swizzle:

  • dest — это двойной vec2 поперечный (x 32LSB, y 32MSB) и (z 32LSB, w 32MSB).
  • src0 — это двойной vec2 поперечный (x 32LSB, y 32MSB) и (z 32LSB, w 32MSB).
  • src1 — это двойной vec2 поперечный (x 32LSB, y 32MSB) и (z 32LSB, w 32MSB).

В следующей таблице показаны результаты, полученные при выполнении инструкции с различными классами чисел, при условии, что ни переполнения, ни недополука не происходит.

F означает конечное-реальное число.

src0 src1-> -Inf -F -1.0 -0 +0 +1.0 +F +inf Не число
-Inf +inf +inf +inf Не число Не число -inf -inf -inf Не число
-F +inf +F -src0 +0 -0 src0 -F -inf Не число
-1.0F +inf -src1 +1.0 +0 -0 -1.0 -src1 -inf Не число
-0 Не число +0 +0 +0 -0 -0 -0 Не число Не число
+0 Не число -0 -0 -0 +0 +0 +0 Не число Не число
+1.0 -inf src1 -1.0 -0 +0 +1 src1 +inf Не число
+F -inf -F -src0 -0 +0 src0 +F +inf Не число
+inf -inf -inf -inf Не число Не число +inf +inf +inf Не число
Не число Не число Не число Не число Не число Не число Не число Не число Не число Не число

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

Вершина Корпуса Домен Geometry Пиксель Вычисления
X X X X X X

Минимальная модель шейдера

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

Модель шейдера Поддерживается
Модель шейдера 5 да
Модель шейдера 4.1 нет
Модель шейдера 4 нет
Модель шейдера 3 (DirectX HLSL) нет
Модель шейдера 2 (DirectX HLSL) нет
Модель шейдера 1 (DirectX HLSL) нет

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