cmp - ps
src0 ≧ 0 の場合、src1 が選択されます。それ以外の場合は src2 が選択されます。この比較は、チャンネルごとに実行されます。
構文
cmp dst, src0, src1, src2 |
---|
この場合
- dst はデスティネーション レジスタです。
- src0 はソース レジスタです。
- src1 はソース レジスタです。
- src2 はソース レジスタです。
解説
ピクセル シェーダーのバージョン | 1_1 | 1_2 | 1_3 | 1_4 | 2_0 | 2_x | 2_sw | 3_0 | 3_sw |
---|---|---|---|---|---|---|---|---|---|
cmp | x | x | x | x | x | x | x | x |
バージョン 1_2 および 1_3 では、いくつか制限事項があります。
- 使用できる cmp 命令の数は、各シェーダーで最大 3 つまでです。
- ソースレジスタと同じデスティネーション レジスタは指定できません。
次の例では、4 チャンネルの比較を実行しています。
ps_1_4
def c0, -0.6, 0.6, 0, 0.6
def c1 0,0,0,0
def c2 1,1,1,1
mov r1, c1
mov r2, c2
cmp r0, c0, r1, r2 // r0 is assigned 1,0,0,0 based on the following:
// r0.x = c2.x because c0.x < 0
// r0.y = c1.y because c0.y >= 0
// r0.z = c1.z because c0.z >= 0
// r0.w = c1.w because c0.w >= 0