loop(sm4 - asm)

중단 명령이 발생할 때까지 반복되는 루프를 지정합니다.

loop

 

설명

loop는 무한정 반복할 수 있지만 셰이더의 전체 실행은 몇 가지 명령이 실행된 후 강제로 종료될 수 있습니다.

흐름 제어 블록은 서브루틴 및 메인당 최대 64개의 깊이를 중첩할 수 있습니다. HLSL 컴파일러는 이 제한을 초과하는 서브루틴을 생성하지 않습니다. 서브루틴당 64개 수준 깊이보다 많은 제어 흐름 명령 동작은 정의되지 않습니다.

토큰 형식은 편의상 셰이더에서 해당 endloop 명령의 오프셋을 포함합니다.

다음 예제는 loop 명령을 사용하는 방법을 보여 줍니다.

                loop
                    // example of termination condition
                    if_nz r0.x
                        break
                    endif
                    ...
                endloop

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

꼭짓점 셰이더 기하 도형 셰이더 픽셀 셰이더
x x x

 

최소 셰이더 모델

이 함수는 다음 셰이더 모델에서 지원됩니다.

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

 

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