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) 아니요

셰이더 모델 4 어셈블리(DirectX HLSL)