Skip to content

Instantly share code, notes, and snippets.

@exjam
Created August 18, 2015 22:30
Show Gist options
  • Save exjam/a8d3874cde7c504b7af1 to your computer and use it in GitHub Desktop.
Save exjam/a8d3874cde7c504b7af1 to your computer and use it in GitHub Desktop.
00 CALL_FS
01 EXP_DONE: POS60, R1.xyzw
02 EXP_DONE: PARAM0, R0.____
03 ALU: ADDR(32) CNT(1)
00 x: NOP ____
04 NOP
END_OF_PROGRAM
00 ALU: ADDR(32) CNT(4)
00 z: MOV R0.z, 0.0f.x
t: FLT_TO_INT R1.x, R0.x
01 w: MOV R1.w, 0.0f.x
t: FLT_TO_INT R1.y, R0.y
01 TEX: ADDR(192) CNT(2)
02 LD R0.x___, R1.xy0w, t2, s0
03 LD R5.xyzz, R1.xy0w, t1, s0
02 ALU_PUSH_BEFORE: ADDR(36) CNT(12)
04 y: MULADD T4.y, -R0.x, 2f.x, 1.0f.x
05 w: ADD ____, PV4.y, -C8.z
06 t: RECIP_IEEE ____, PV5.w
07 y: MUL_IEEE R6.y, PS6.x, C8.w
08 x: SETGE_DX10 ____, -PV7.y, C1.x
09 x: CNDE_INT R0.x, PV8.x, 0.0f.x, 0.0f.x
y: CNDE_INT R2.y, PV8.x, 0.0f.x, 0.0f.x
z: CNDE_INT R2.z, PV8.x, 0.0f.x, 0.0f.x
w: CNDE_INT R0.w, PV8.x, 0.0f.x, 1f.x
10 x: PRED_SETE_INT ____, R0.w, 0.0f.x UPDATE_EXECUTE_MASK UPDATE_PRED
03 JUMP POP_CNT(1) ADDR(18)
04 TEX: ADDR(196) CNT(2)
11 LD R7.xyz_, R1.xy0w, t0, s0
12 GET_TEXTURE_INFO R0.xy__, R0.zz0z, t3, s0
05 ALU: ADDR(48) CNT(38)
13 x: MOV R8.x, 0.0f.x
y: MOV R8.y, 0.0f.x
z: MOV R8.z, 0.0f.x
w: MOV R0.w, 1f.x
t: INT_TO_FLT T0.z, R0.x
14 x: DOT4 ____, R7.x, C5.x
y: DOT4 ____, R7.y, C5.y
z: DOT4 ____, R7.z, C5.z
w: DOT4 ____, PV13.w, C5.w
t: INT_TO_FLT T1.y, R0.y
15 x: DOT4 ____, R7.x, C2.x
y: DOT4 ____, R7.y, C2.y
z: DOT4 ____, R7.z, C2.z
w: DOT4 ____, R0.w, C2.w
t: RECIP_IEEE T0.y, PV14.x
16 x: DOT4 ____, R7.x, C3.x
y: DOT4 ____, R7.y, C3.y
z: DOT4 ____, R7.z, C3.z
w: DOT4 ____, R0.w, C3.w
t: MUL_IEEE ____, PV15.x, PS15.x
17 x: MUL T0.x, PS16.x, T0.z
w: MUL_IEEE ____, PV16.x, T0.y
t: RECIP_IEEE R3.x, T0.z
18 x: FRACT R4.x, PV17.x
z: MUL T0.z, PV17.w, T1.y
t: RECIP_IEEE R9.y, T1.y
19 x: ADD ____, T0.x, -PV18.x
y: FRACT R10.y, PV18.z
t: ADD R6.x, -PV18.x, 1.0f.x
20 x: MUL_IEEE R9.x, PV19.x, R3.x
y: ADD R11.y, -PV19.y, 1.0f.x
z: ADD ____, T0.z, -PV19.y
t: FLT_TO_INT R1.w, C0.x
21 y: MUL_IEEE R12.y, PV20.z, R9.y
w: SUB_INT R2.w, 0.0f.x, PS20.x
t: FLT_TO_INT R3.w, C0.y
22 w: MOV R4.w, PV21.w
06 LOOP_START_DX10 FAIL_JUMP_ADDR(17)
07 ALU_BREAK: ADDR(86) CNT(3)
23 z: SETGE_INT R0.z, R1.w, R4.w
w: SETGE_INT R6.w, R4.w, R1.w VEC_120
24 x: PRED_SETNE_INT ____, R0.z, 0.0f.x UPDATE_EXECUTE_MASK UPDATE_PRED
08 ALU: ADDR(89) CNT(1)
25 w: MOV R7.w, R2.w
09 LOOP_START_DX10 FAIL_JUMP_ADDR(15)
10 ALU_BREAK: ADDR(90) CNT(2)
26 z: SETGE_INT R0.z, R1.w, R7.w
27 x: PRED_SETNE_INT ____, R0.z, 0.0f.x UPDATE_EXECUTE_MASK UPDATE_PRED
11 ALU: ADDR(92) CNT(9)
28 y: SETGE_INT R4.y, R2.w, R7.w VEC_021
z: SETGE_INT R3.z, R2.w, R4.w
w: MOV R0.w, 0.0f.x
t: INT_TO_FLT ____, R7.w
29 x: MULADD R0.x, R3.x, PS28.x, R9.x
y: SETGE_INT R3.y, R7.w, R1.w
t: INT_TO_FLT ____, R4.w
30 y: MULADD R0.y, R9.y, PS29.x, R12.y
w: ADD_INT R7.w, R3.w, R7.w
12 TEX: ADDR(200) CNT(3)
31 SAMPLE R1.xyz_, R0.xy0x, t5, s5
32 SAMPLE R2.xyz_, R0.xy0x, t4, s4
33 SAMPLE R0.xyz_, R0.xy0x, t3, s3
13 ALU: ADDR(101) CNT(68)
34 x: ADD T0.x, R7.x, -R1.x
y: ADD T0.y, R7.y, -R1.y
z: ADD T0.z, R7.z, -R1.z
35 x: DOT4_IEEE ____, PV34.x, PV34.x
y: DOT4_IEEE ____, PV34.y, PV34.y
z: DOT4_IEEE ____, PV34.z, PV34.z
w: DOT4_IEEE ____, -0f.x, 0.0f.x
t: MUL ____, PV34.z, PV34.z
36 x: DOT4 ____, T0.x, T0.x
y: DOT4 ____, T0.y, T0.y
z: DOT4 ____, PS35.x, 1.0f.x
w: DOT4 ____, -0f.x, 0.0f.x
t: RECIPSQRT_IEEE ____, PV35.x
37 x: MUL T0.x, T0.x, PS36.x
y: MUL T0.y, T0.y, PS36.x
z: MUL T0.z, T0.z, PS36.x
t: SQRT_IEEE ____, PV36.x
38 x: DOT4 ____, R5.x, -PV37.x
y: DOT4 T1.y, R5.y, -PV37.y
z: DOT4 ____, R5.z, -PV37.z
w: DOT4 ____, R5.w, -R0.w
t: ADD ____, PS37.x, C0.z
39 x: DOT4 ____, R2.x, T0.x
y: DOT4 ____, R2.y, T0.y
z: DOT4 ____, R2.z, T0.z
w: DOT4 ____, -0f.x, 0.0f.x
t: RECIP_IEEE ____, PS38.x
40 x: MAX ____, T1.y, 0.0f.x
z: MAX ____, PV39.x, 0.0f.x
w: MUL T0.w, PS39.x, PS39.x CLAMP
41 z: MUL ____, PV40.z, PV40.x
42 y: MUL ____, T0.w, PV41.z
43 x: MUL ____, R0.x, PV42.y
z: MUL ____, R0.z, PV42.y
w: MUL ____, R0.y, PV42.y
44 x: MUL T0.x, PV43.w, C0.w
y: MUL T1.y, PV43.x, C0.w
w: MUL T0.w, PV43.z, C0.w
45 x: MUL ____, R10.y, PV44.w
y: MUL ____, R10.y, PV44.x
z: MUL ____, R10.y, PV44.y
w: MUL T1.w, R11.y, PV44.y VEC_120
t: MUL T1.x, R11.y, PV44.x
46 x: CNDE_INT T4.x, R6.w, T1.y, PV45.z
y: CNDE_INT T4.y, R6.w, T0.w, PV45.x
z: CNDE_INT T4.z, R6.w, T0.x, PV45.y
w: MUL ____, R11.y, T0.w
47 x: CNDE_INT T1.x, R3.z, PV46.x, T1.w
z: CNDE_INT T0.z, R3.z, PV46.y, PV46.w
w: CNDE_INT T1.w, R3.z, PV46.z, T1.x
48 x: MUL ____, R4.x, PV47.x
y: MUL T1.y, R6.x, PV47.x VEC_120
z: MUL ____, R4.x, PV47.z
w: MUL ____, R4.x, PV47.w
t: MUL T0.w, R6.x, PV47.w
49 x: CNDE_INT T4.x, R3.y, T1.w, PV48.w
y: CNDE_INT T4.y, R3.y, T1.x, PV48.x
z: MUL ____, R6.x, T0.z
w: CNDE_INT T4.w, R3.y, T0.z, PV48.z
50 x: CNDE_INT T4.x, R4.y, PV49.w, PV49.z
y: CNDE_INT T4.y, R4.y, PV49.x, T0.w
z: CNDE_INT T4.z, R4.y, PV49.y, T1.y
51 x: ADD R8.x, R8.x, PV50.z
y: ADD R8.y, R8.y, PV50.y
z: ADD R8.z, R8.z, PV50.x
14 LOOP_END PASS_JUMP_ADDR(10)
15 ALU: ADDR(169) CNT(1)
52 w: ADD_INT R4.w, R3.w, R4.w
16 LOOP_END PASS_JUMP_ADDR(7)
17 ALU_POP_AFTER: ADDR(170) CNT(13)
53 z: MUL ____, C1.x, 0.7f.x
54 x: ADD ____, -PV53.z, C1.x
y: ADD T0.y, -R6.y, -PV53.z
55 t: RECIP_IEEE ____, PV54.x
56 z: MUL_IEEE ____, T0.y, PS55.x CLAMP
57 x: MULADD T4.x, -2f.y, PV56.z, 3f.x
y: MUL ____, PV56.z, PV56.z
58 w: MULADD T4.w, -PV57.y, PV57.x, 1.0f.x CLAMP
59 x: MUL R0.x, R8.x, PV58.w
y: MUL R2.y, R8.y, PV58.w
z: MUL R2.z, R8.z, PV58.w
18 ALU: ADDR(183) CNT(6)
60 x: MUL R0.x, R0.x, 1.0f.x
y: MUL R0.y, R2.y, 0.8f.x
z: MUL R0.z, R2.z, 0.6f.y
w: MOV R0.w, 1f.z
19 EXP_DONE: PIX0, R0.xyzw
END_OF_PROGRAM
0 MOV
0 FLT_TO_INT
0 MOV
0 FLT_TO_INT
1 LD
1 LD
2 MULADD
2 ADD
2 RECIP_IEEE
2 MUL_IEEE
2 SETGE_DX10
2 CNDE_INT
2 CNDE_INT
2 CNDE_INT
2 CNDE_INT
2 PUSH
if(2 PRED_SETE_INT) {
3 JUMP
4 LD
4 GET_TEXTURE_INFO
5 MOV
5 MOV
5 MOV
5 MOV
5 INT_TO_FLT
5 DOT4
5 DOT4
5 DOT4
5 DOT4
5 INT_TO_FLT
5 DOT4
5 DOT4
5 DOT4
5 DOT4
5 RECIP_IEEE
5 DOT4
5 DOT4
5 DOT4
5 DOT4
5 MUL_IEEE
5 MUL
5 MUL_IEEE
5 RECIP_IEEE
5 FRACT
5 MUL
5 RECIP_IEEE
5 ADD
5 FRACT
5 ADD
5 MUL_IEEE
5 ADD
5 ADD
5 FLT_TO_INT
5 MUL_IEEE
5 SUB_INT
5 FLT_TO_INT
5 MOV
while(true) { // START_LOOP
7 PUSH
7 SETGE_INT
7 SETGE_INT
if(7 PRED_SETNE_INT) {
7 LOOP_BREAK
} // END_COND
7 POP
8 MOV
while(true) { // START_LOOP
10 PUSH
10 SETGE_INT
if(10 PRED_SETNE_INT) {
10 LOOP_BREAK
} // END_COND
10 POP
11 SETGE_INT
11 SETGE_INT
11 MOV
11 INT_TO_FLT
11 MULADD
11 SETGE_INT
11 INT_TO_FLT
11 MULADD
11 ADD_INT
12 SAMPLE
12 SAMPLE
12 SAMPLE
13 ADD
13 ADD
13 ADD
13 DOT4_IEEE
13 DOT4_IEEE
13 DOT4_IEEE
13 DOT4_IEEE
13 MUL
13 DOT4
13 DOT4
13 DOT4
13 DOT4
13 RECIPSQRT_IEEE
13 MUL
13 MUL
13 MUL
13 SQRT_IEEE
13 DOT4
13 DOT4
13 DOT4
13 DOT4
13 ADD
13 DOT4
13 DOT4
13 DOT4
13 DOT4
13 RECIP_IEEE
13 MAX
13 MAX
13 MUL
13 MUL
13 MUL
13 MUL
13 MUL
13 MUL
13 MUL
13 MUL
13 MUL
13 MUL
13 MUL
13 MUL
13 MUL
13 MUL
13 CNDE_INT
13 CNDE_INT
13 CNDE_INT
13 MUL
13 CNDE_INT
13 CNDE_INT
13 CNDE_INT
13 MUL
13 MUL
13 MUL
13 MUL
13 MUL
13 CNDE_INT
13 CNDE_INT
13 MUL
13 CNDE_INT
13 CNDE_INT
13 CNDE_INT
13 CNDE_INT
13 ADD
13 ADD
13 ADD
} // END_LOOP
15 ADD_INT
} // END_LOOP
17 MUL
17 ADD
17 ADD
17 RECIP_IEEE
17 MUL_IEEE
17 MULADD
17 MUL
17 MULADD
17 MUL
17 MUL
17 MUL
17 POP
} // END_COND
18 MUL
18 MUL
18 MUL
18 MOV
PV0.z = R0.z = +0.000000f
PS0 = R1.x = asint(R0.x)
PV1.w = R1.w = +0.000000f
PS1 = R1.y = asint(R0.y)
PV4.y = -R0.x * +2.000000f + +1.000000f
PV5.w = PV4.y + -C8.z
PS6 = rcp(PV5.w)
PV7.y = R6.y = PS6 * C8.w
PV8.x = (-PV7.y >= C1.x)
PV9.x = ((PV8.x == 0) ? +0.000000f : +0.000000f)
PV9.y = ((PV8.x == 0) ? +0.000000f : +0.000000f)
PV9.z = ((PV8.x == 0) ? +0.000000f : +0.000000f)
PV9.w = ((PV8.x == 0) ? +0.000000f : +1.000000f)
if (R0.w == +0.000000f) {
PV13.x = R8.x = +0.000000f
PV13.y = R8.y = +0.000000f
PV13.z = R8.z = +0.000000f
PV13.w = R0.w = +1.000000f
PS15 = R127.y = rcp(PV14.x)
PS16 = PV15.x * PS15
PV17.w = PV16.x * R127.y
PS17 = R3.x = rcp(R127.z)
PS18 = R9.y = rcp(R126.y)
PV19.x = R127.x + -PV18.x
PS19 = R6.x = -PV18.x + +1.000000f
PV20.x = R9.x = PV19.x * R3.x
PV20.y = R11.y = -PV19.y + +1.000000f
PV20.z = R127.z + -PV19.y
PS20 = R1.w = asint(C0.x)
PV21.y = R12.y = PV20.z * R9.y
PS21 = R3.w = asint(C0.y)
PV22.w = R4.w = PV21.w
while (true) {
if (R0.z != +0.000000f) {
break;
}
PV25.w = R7.w = R2.w
while (true) {
if (R0.z != +0.000000f) {
break;
}
PV28.w = R0.w = +0.000000f
PV29.x = R3.x * PS28 + R9.x
PV30.y = R9.y * PS29 + R12.y
PV34.x = R127.x = R7.x + -R1.x
PV34.y = R127.y = R7.y + -R1.y
PV34.z = R127.z = R7.z + -R1.z
PS38 = PS37 + C0.z
PS39 = rcp(PS38)
PV46.x = ((R6.w == 0) ? R126.y : PV45.z)
PV46.y = ((R6.w == 0) ? R127.w : PV45.x)
PV46.z = ((R6.w == 0) ? R127.x : PV45.y)
PV47.x = ((R3.z == 0) ? PV46.x : R126.w)
PV47.z = ((R3.z == 0) ? PV46.y : PV46.w)
PV47.w = ((R3.z == 0) ? PV46.z : R126.x)
PV49.x = ((R3.y == 0) ? R126.w : PV48.w)
PV49.y = ((R3.y == 0) ? R126.x : PV48.x)
PV49.w = ((R3.y == 0) ? R127.z : PV48.z)
PV50.x = ((R4.y == 0) ? PV49.w : PV49.z)
PV50.y = ((R4.y == 0) ? PV49.x : R127.w)
PV50.z = ((R4.y == 0) ? PV49.y : R126.y)
PV51.x = R8.x = R8.x + PV50.z
PV51.y = R8.y = R8.y + PV50.y
PV51.z = R8.z = R8.z + PV50.x
}
}
PV54.x = -PV53.z + C1.x
PV54.y = R127.y = -R6.y + -PV53.z
PS55 = rcp(PV54.x)
PV56.z = clamp(R127.y * PS55)
PV57.x = -+2.000000f * PV56.z + +3.000000f
PV58.w = clamp(-PV57.y * PV57.x + +1.000000f)
}
PV60.w = R0.w = +1.000000f
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment