Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Выполняет арифметическую операцию умножения и добавления трех значений.
Синтаксис
numeric mad(
in numeric mvalue,
in numeric avalue,
in numeric bvalue
);
Параметры
-
mvalue [in]
-
Тип: числовой
Значение умножения.
-
avalue [in]
-
Тип: числовой
Первое значение сложения.
-
bvalue [in]
-
Тип: числовой
Второе значение сложения.
Возвращаемое значение
Тип: числовой
Результат mvalue * avalue + bvalue.
Замечания
Минимальная модель шейдера
Эта функция поддерживается в следующих моделях шейдеров.
| Модель шейдера | Поддерживается |
|---|---|
| Модель шейдера 2 (DirectX HLSL) и более высокие модели шейдера | yes |
Эта функция поддерживается в следующих типах шейдеров:
| Вершина | Корпус | Домен | Geometry | Пиксел | Compute |
|---|---|---|---|---|---|
| x | x | x | x | x | x |
Авторы шейдеров могут использовать безумную инстринзику для явного назначения безумной аппаратной инструкции в скомпилированных выходных данных шейдеров, которые особенно полезны для шейдеров, которые помечают результаты с точным ключевым словом. Безумная инструкция может быть реализована в оборудовании как "сплавленная", которая обеспечивает более высокую точность, чем реализация инструкции mul, за которой следуетинструкция добавления, или как добавление mul + .
Если авторы шейдеров используют безумную инстринсику для вычисления результата, который шейдер помечен как точный, они указывают на оборудование использовать любую допустимую реализацию безумной инструкции (сплавленной или нет), пока реализация согласована для всех использования этого безумного встроенного в любом шейдере на этом оборудовании. Затем шейдеры могут воспользоваться потенциальными улучшениями производительности с помощью собственной безумной инструкции (и mul + add) на некотором оборудовании. Результат выполнения собственной безумной аппаратной инструкции может отличаться от выполнения mul , за которым следует добавление. Тем не менее, независимо от результата, результат должен быть согласован для одной операции, чтобы происходить в нескольких шейдерах или разных частях шейдера.
См. также