setp_comp - vs
조건자 레지스터를 설정합니다.
Syntax
setp_comp dst, src0, src1 |
---|
여기서
_comp는 두 원본 레지스터 간의 채널별 비교입니다. 다음 중 하나일 수 있습니다.
Syntax 비교 _gt 초과 _lt 보다 작음 _ge 크거나 같음 _le 작거나 같음 _eq 같음 _ne 같지 않음 dst는 조건자 레지스터인, p0입니다.
src0은 원본 레지스터입니다.
src1은 원본 레지스터입니다.
설명
꼭짓점 셰이더 버전 | 1_1 | 2_0 | 2_x | 2_sw | 3_0 | 3_sw |
---|---|---|---|---|---|---|
setp_comp | x | x | x | x |
이 명령은 다음과 같이 작동합니다.
per channel in destination write mask
{
dst.channel = src0.channel cmp src1.channel
}
대상 쓰기 마스크에 따라 쓸 수 있는 각 채널에 대해 src0 및 src1의 해당 채널 간 비교 연산의 부울 결과를 저장합니다(원본 한정자 스위즐이 확인된 후).
원본 레지스터를 사용하면 임의 구성 요소 스위즐을 지정할 수 있습니다.
대상 레지스터는 임의의 쓰기 마스크를 허용합니다.
dest 레지스터는 조건자 레지스터여야 합니다.
조건자 레지스터 적용
조건자 레지스터가 setp로 초기화되면 구성 요소별로 명령을 제어하는 데 사용할 수 있습니다. 구문은 다음과 같습니다.
([!]p0[.swizzle]) instruction dest, srcReg, ...
여기서
- [!]는 선택적 부울 NOT입니다.
- p0은 조건자 레지스터입니다.
- [.swizzle]은 명령을 마스킹하기 위해 조건자 레지스터를 사용하기 전에 조건자 레지스터의 콘텐츠에 적용할 선택적 스위즐입니다. 사용 가능한 스위즐은 .xyzw(지정되지 않은 경우 기본값) 또는 모든 복제 스위즐: .x/.r, .y/.g, .z/.b 또는 .a/.w입니다.
- 명령은 모든 산술 또는 텍스처 명령입니다. 이는 정적 또는 동적 흐름 제어 명령일 수 없습니다.
- dest, srcReg, ...는 명령에 필요한 레지스터입니다.
조건자 레지스터가 (true, true, false, false) 구성 요소 값으로 설정되었다고 가정하면 다음 명령에 적용할 수 있습니다.
// given r0 = 0,0,1,1
// given r1 = 1,1,0,0
setp_le p0, r0, r1
(p0) add r2, r3, r4
2-구성 요소 더하기를 수행합니다.
r2.x = r3.x + r4.x
r2.y = r3.y + r4.y
r2의 x 및 y 구성 요소는 조건자 레지스터가 구성 요소 z 및 w에 false를 포함했기 때문에 기록되지 않습니다.
조건자 레지스터를 산술 또는 텍스처 명령에 적용하면 명령 슬롯 수가 1씩 증가합니다.
조건자 레지스터는 if pred - vs, callnz pred - vs 및 breakp - vs 명령에도 적용할 수 있습니다. 이러한 흐름 제어 명령은 조건자 레지스터를 사용할 때 명령 슬롯 수가 증가하지 않습니다.
관련 항목