ps_1_X的修飾詞
指令修飾詞會影響指令的結果,再寫入目的地暫存器。 例如,使用它們將結果乘以或除以兩個因素,或將結果限制在零和一之間。 指令修飾詞會在指令執行之後套用,但在將結果寫入目的地暫存器之前。
修飾詞的清單如下所示。
修飾詞 | Description | 語法 | 版本 1_1 | 版本 1_2 | 版本 1_3 | 版本 1_4 |
---|---|---|---|---|---|---|
_x2 | 乘以 2 | instruction_x2 | X | X | X | X |
_x4 | 乘以 4 | instruction_x4 | X | X | X | X |
_x8 | 乘以 8 | instruction_x8 | X | |||
_d2 | 除以 2 | instruction_d2 | X | X | X | X |
_d4 | 除以 4 | instruction_d4 | X | |||
_d8 | 除以 8 | instruction_d8 | X | |||
_坐 | 從 0 到 1 的飽和 (夾) | instruction_sat | X | X | X | X |
- 乘法修飾詞會將暫存器資料乘以讀取後的兩個乘冪。 這與左移位相同。
- 除法修飾詞會在讀取後,將暫存器資料除以兩個的乘冪。 這與向右移位相同。
- 飽和修飾詞會將暫存器值的範圍從零限制為一。
指令修飾詞可用於算術指令。 它們可能無法用於紋理位址指示上。
乘修飾詞
本範例會載入目的地暫存器 (dest) ,其中來源運算元 (src0 和 src) 1 中的兩種色彩總和,並將結果乘以兩個。
add_x2 dest, src0, src1
這個範例結合了兩個指令修飾詞。 首先,會新增來源運算元中的兩種色彩, (src0 和 src1) 。 結果接著會乘以兩個,並針對每個元件限制介於 0.0 到 1.0 之間。 結果會儲存在目的地暫存器中。
add_x2_sat dest, src0, src1
除法修飾詞
本範例會載入目的地暫存器 (dest) ,其中來源運算元 (src0 和 src) 1 中的兩個色彩總和,並將結果除以兩個。
add_d2 dest, src0, src1
飽和修飾詞
針對算術指示,飽和度修飾詞會將這個指令的結果限制在每個元件的範圍 0.0 到 1.0。 下列範例示範如何使用這個指令修飾詞。
dp3_sat r0, t0_bx2, v0_bx2 ; t0 is bump, v0 is light direction
此作業會在任何乘法或除法指令修飾詞之後發生。 _sat最常用來限制點產品結果。 不過,它也會啟用多通方法的一致模擬,其中框架緩衝區一律位於範圍 0 到 1,以及 DirectX 6 和 7.0 多文本語法,其中飽和度定義于每個階段。
本範例會載入目的地暫存器 (dest) ,其中來源運算元 (src0 和 src1) 的兩種色彩總和,並將結果固定在每個元件的範圍 0.0 到 1.0。
add_sat dest, src0, src1
這個範例結合了兩個指令修飾詞。 首先,會新增來源運算元中的兩種色彩, (src0 和 src1) 。 結果會乘以 2,並針對每個元件限制在 0.0 到 1.0 之間。 結果會儲存在目的地暫存器中。
add_x2_sat dest, src0, src1
相關主題