目的地暫存器遮罩
遮罩會指定目的地暫存器哪些元件將會隨著指令的結果更新。 紋理暫存器有一組規則,而非文字暫存器有另一組規則。
- dx9_graphics_reference_asm_vs_registers_modifiers_masking - 本節包含將遮罩套用至目的地暫存器的規則。
- Texture_Register_Masks - 紋理暫存器有一些獨特的規則。
目的地暫存器遮罩
如下表所示,遮罩 (其中 是其中一個有效的頂 點著色器頂點著色器暫存器) 可以套用至向量資料的個別元件。
元件修飾詞 | Description |
---|---|
r.{x}{y}{z}{w} | 目的地遮罩 |
- 一般而言,指定目的地暫存器寫入遮罩是良好的編碼樣式。 它可讓程式碼更容易閱讀和維護。
- 只要 x 在 y 之前、y 之前,z 之前,z 前面和 z 前面 w,就可以指定任何元件組合 (包括無) 。
- oPts 和 oFog 輸出暫存器只能使用一個遮罩。
- 某些指示需要目的地暫存器使用單一寫入遮罩:exp、expp、log、logp、pow、rcp 和 rsq。
- 在 1.0 版中,frc 指令需要下列其中一個遮罩組合:.x 或 .y 或 .xy。 2.0 版沒有遮罩限制。
- sincos 需要下列其中一個遮罩組合:.x 或 .y 或 .xyz。
- m3x2 需要 .xy 寫入遮罩。
- m3x3 和 m4x3 需要 .xyz 寫入遮罩。
- m3x4 和 m4x4 需要 .xyz 寫入遮罩或預設寫入遮罩 (xyzw) 。
紋理暫存器遮罩
在紋理座標暫存器上使用修飾詞的驗證規則比其他暫存器的驗證規則更緊密。
- 如果寫入 oTn,則所有先前的暫存器 (oTn-1 ~ oT0) 也必須寫入。
- 任何 oT# 暫存器的「合併」寫入遮罩必須完全符合下列其中一項:
- .x
- 。Xy
- 。Xyz
- .xyzw (,相當於不使用任何元件修飾詞)
例如,頂點著色器可以在個別的指示中輸出至紋理暫存器。
oT1.y
oT0.y
oT2
oT0.xz
oT1.x
或者,可以合併指示。
oT0.xyz
oT1.xy
oT2.xyzw
這些限制僅適用于紋理座標暫存器。
相關主題