다음을 통해 공유


fcall(sm5 - asm)

인터페이스 함수 호출입니다.

fcall fp#[arrayIndex][callSite]
항목 설명
fp#
[in] 함수 포인터입니다.
arrayIndex
[in] 선택적 항목으로, 함수 포인터 배열에 대한 오프셋을 지정합니다. fp#이 인덱싱 가능으로 선언되지 않은 경우 이 매개 변수는 리터럴 부호 없는 정수여야 합니다. 그렇지 않으면 arrayIndex는 리터럴 베이스 + 셰이더 레지스터로부터의 오프셋 형식일 수 있습니다. 예를 들어 fcall fp1[r1.w + 0][0] 입니다.
callSite
[in] 선택적 항목으로, 실행할 함수 본문 fb#을 선택하여 선택한 함수 테이블에 대한 문자 그대로의 부호 없는 정수 오프셋입니다.

설명

fp#[arrayIndex][]는 fp#의 선언에 나열된 함수 테이블 선택 항목에서 셰이더 외부의 API에서 선택한 특정 함수 테이블로 확인됩니다.

fp#arrayIndex의 # 합계는 함수 테이블을 선택합니다. 예를 들어, 인터페이스가 fp4[4][3](배열 크기 4)로 선언된 경우 다음 fcall은 동등합니다. fcall fp4[2][3] 및 fp5[1][3], 4+2 = 5+1이기 때문입니다.

제한

  • arrayIndex가 동적 인덱싱을 사용하는 경우 arrayIndex가 잠금 단계에서 실행될 수 있는 인접한 셰이더 호출에서 분기되는 경우 동작이 정의되지 않습니다. HLSL 컴파일러는 이 경우를 허용하지 않으려고 시도합니다.

    인접한 호출은 잠금 단계 실행을 중단하지 않기 때문에 흐름 제어로 인해 비활성화될 수 있습니다.

  • fp# + arrayIndex가 범위를 벗어난 인덱스를 지정하면 동작이 정의되지 않습니다.

  • 여기에 설명된 정의되지 않은 사례의 경우 디바이스 분실 가능성을 포함하여 현재 D3D 디바이스의 동작이 정의되지 않음을 의미합니다. 그러나 현재 D3D 디바이스 외부의 메모리는 코드로 액세스되거나 실행되지 않습니다.

이 명령은 다음 셰이더 단계에 적용됩니다.

꼭짓점 Hull 도메인 기하 도형 픽셀 컴퓨팅
X X X X X X

최소 셰이더 모델

이 명령은 다음 셰이더 모델에서 지원됩니다.

셰이더 모델 지원됨
셰이더 모델 5
셰이더 모델 4.1 아니요
셰이더 모델 4 아니요
셰이더 모델 3(DirectX HLSL) 아니요
셰이더 모델 2(DirectX HLSL) 아니요
셰이더 모델 1(DirectX HLSL) 아니요

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