mad 函式
在三個值上執行算術乘法/加法運算。
numeric mad(
in numeric mvalue,
in numeric avalue,
in numeric bvalue
);
-
mvalue [in]
-
類型: 數值
乘法值。
-
avalue [in]
-
類型: 數值
第一個加法值。
-
bvalue [in]
-
類型: 數值
第二個加法值。
類型: 數值
mvalue avalue * bvalue + 的結果。
下列著色器模型中支援此函式。
著色器模型 | 支援 |
---|---|
著色器模型 5 和更高的著色器模型 | 是 |
下列著色器類型支援此函式:
頂點 | 船體 | 網域 | 幾何形狀 | 像素 | 計算 |
---|---|---|---|---|---|
x | x | x | x | x | x |
著色器作者可以使用 mad instrinsic 明確以編譯著色器輸出中的 mad 硬體指令為目標,這對於以 精確 關鍵字標記結果的著色器特別有用。 不然的指令可以在硬體中實作為「融合」,其提供比實作Mul指令,後面接著新增指令或Mul + 新增更高的精確度。
如果著色器作者使用 非 內建函式來計算標示為精確著色器的結果,則它們會向硬體指出使用任何有效 實 作 (融合或未) ,只要該硬體上任何著色器的所有使用該 不想要 內建的實作都一致。 接著,著色器可以使用原生的 (與某些硬體上的mul + 新增) ,利用潛在的效能改善。 執行原生 問題 硬體指令的結果可能或可能與執行 Mul 後面接著 新增不同。 不過,無論結果為何,結果都必須一致,相同的作業才能在多個著色器或著色器的不同部分發生。