다음을 통해 공유


임시 레지스터(HLSL VS 참조)

꼭짓점 셰이더 임시 레지스터는 중간 결과를 저장하는 데 사용됩니다.

임시 레지스터는 사용하기 전에 초기화해야 합니다. 각 임시 레지스터에는 단일 쓰기 및 삼중 읽기 권한이 있습니다. 이는 단일 셰이더 명령이 최대 3개의 임시 레지스터를 입력으로 사용할 수 있음을 의미합니다.

꼭짓점 셰이더의 이전 호출에서 남아 있는 임시 레지스터의 값은 사용할 수 없습니다.

레지스터는 각 레지스터의 동작 방식을 결정하는 속성으로 구성됩니다.

속성 Description
속성 r[n]. n은 선택적 레지스터 번호입니다. 기본값은 0이며 값이 지정되지 않은 경우 사용되는 값입니다.
개수 최대 12개의 레지스터입니다.
I/O 권한 읽기/쓰기입니다. 이 레지스터는 API 또는 셰이더에서 읽거나 쓸 수 있습니다.
읽기 포트 단일 명령 내에서 레지스터를 읽을 수 있는 횟수는 3입니다. 임시 레지스터는 단일 명령에서 두 번 이상 읽고 쓸 수 있는 유일한 레지스터입니다.

 

각 임시 레지스터에는 단일 쓰기 및 삼중 읽기 권한이 있습니다. 따라서 명령은 입력 원본 피연산자 집합에 최대 3개의 임시 레지스터를 가질 수 있습니다.

꼭짓점 셰이더의 이전 호출에서 남아 있는 임시 레지스터의 값은 사용할 수 없습니다. 쓰기 전에 임시 레지스터에서 값을 읽는 꼭짓점 셰이더는 꼭짓점 셰이더를 만들기 위한 Direct3D API 호출에 실패합니다.

다음은 임시 레지스터를 사용하는 예입니다.

def c4, 0,0,0,1
...
// Decompress position
mov r0.x, v0.x
mov r0.y, c4.w       // 1
mov r0.z, v0.y
mov r0.w, c4.w       // 1

// Compute theta from distance and time
mov r4.xz, r0        // xz
꼭짓점 셰이더 버전 1_1 2_0 2_sw 2_x 3_0 3_sw
임시 등록 x x x x x x

 

꼭짓점 셰이더 레지스터