call (sm4 - asm)
레이블 l#이 프로그램에 표시되는 위치로 표시된 서브루틴을 호출합니다.
call l# |
---|
항목 | 설명 |
---|---|
l# |
[in] 서브루틴의 레이블입니다. |
설명
ret가 발생하면 이 호출 후 명령으로 실행을 반환합니다.
토큰 형식에는 편의상 셰이더에서 해당 레이블의 오프셋이 포함되어 있습니다.
다음 예에서는 호출 명령을 보여 줍니다.
...
call l3
...
ret
label l3
...
retc_nz r0.x
...
ret
제한
- 서브루틴은 32개의 깊이로 중첩될 수 있습니다.
- 반환 주소 스택은 구현에 의해 투명하게 관리됩니다.
- 반환 주소 스택에 이미 32개의 항목이 있고 호출이 발생하면 호출을 건너뜁니다.
- 자동 매개 변수 스택이 없습니다. 애플리케이션은 인덱싱 가능한 임시 레지스터 배열(x#[])을 사용하여 수동으로 스택을 구현할 수 있습니다. 그러나 서브루틴 호출 반환 주소는 표시되지 않으며 애플리케이션에서 수행하는 수동 스택 관리와 직교합니다.
- l# 매개 변수의 인덱싱이 허용되지 않습니다.
- 재귀가 허용되지 않습니다.
이 명령은 다음 셰이더 단계에 적용됩니다.
꼭짓점 셰이더 | 기하 도형 셰이더 | 픽셀 셰이더 |
---|---|---|
x | x | x |
최소 셰이더 모델
이 함수는 다음 셰이더 모델에서 지원됩니다.
셰이더 모델 | 지원 여부 |
---|---|
셰이더 모델 5 | 예 |
셰이더 모델 4.1 | 예 |
셰이더 모델 4 | 예 |
셰이더 모델 3(DirectX HLSL) | 아니요 |
셰이더 모델 2(DirectX HLSL) | 아니요 |
셰이더 모델 1(DirectX HLSL) | 아니요 |