Share via


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 後面接著 新增不同。 不過,無論結果為何,結果都必須一致,相同的作業才能在多個著色器或著色器的不同部分發生。

另請參閱

內建函式

著色器模型 5