vs-mesa: # Vertex Program/Shader 0 0: MUL TEMP[0], INPUT[0].xxxx, STATE[0]; 1: MAD TEMP[0], INPUT[0].yyyy, STATE[1], TEMP[0]; 2: MAD TEMP[0], INPUT[0].zzzz, STATE[2], TEMP[0]; 3: MAD OUTPUT[0], INPUT[0].wwww, STATE[3], TEMP[0]; 4: MOV OUTPUT[1], INPUT[3]; 5: END brw_vs_alloc_regs NumAddrRegs 0 brw_vs_alloc_regs NumTemps 1 brw_vs_alloc_regs reg = 7 vs-native: mul(8) g6<1>F g3<4,4,1>.xF g1<0,4,1>F { align16 }; mac(8) g6<1>F g3<4,4,1>.yF g1.4<0,4,1>F { align16 }; mac(8) g6<1>F g3<4,4,1>.zF g2<0,4,1>F { align16 }; mac(8) g5<1>F g3<4,4,1>.wF g2.4<0,4,1>F { align16 }; mov.sat(8) m4<1>F g4<4,4,1>F { align16 }; send(8) 2 g7<1>F g5<4,4,1>.wF math inv scalar mlen 1 rlen 1 { align16 }; mul(8) g7<1>.xyzF g5<4,4,1>F g7<4,4,1>F { align16 }; mov(8) m1<1>UD 0x00000000UD { align16 }; mov(8) m2<1>F g7<8,8,1>F { align1 }; mov(8) m3<1>F g5<8,8,1>F { align1 }; send(8) 0 null g0<8,8,1>F urb 0 interleave used complete mlen 5 rlen 0 { align1 EOT }; pre-fp: # Fragment Program/Shader 0 0: MOV OUTPUT[2], INPUT[1]; 1: END pass_fp: 0: PIXELXY TEMP[97].xy, FILE14[30], UNDEFINED[0], UNDEFINED[0]; 1: DELTAXY TEMP[96].xy, TEMP[97], FILE14[30], UNDEFINED[0]; 2: PIXELW TEMP[98].w, FILE14[0], TEMP[96], UNDEFINED[0]; 3: PINTERP INPUT[1], FILE14[1], TEMP[96], TEMP[98]; 4: MOV OUTPUT[2], INPUT[1]; 5: FB_WRITE ???, OUTPUT[2], FILE14[30], OUTPUT[0]; pass0: [r0,r1,#,#].xy = PIXELXY [r2,r3,#,#].xy = DELTAXY [r0,r1,undef,undef] [#,#,#,r4].w = PIXELW [i0,undef,undef,undef] [r2,r3,undef,undef] [r5,r6,r7,r8] = PINTERP [i1,undef,undef,undef] [r2,r3,undef,undef] [undef,undef,undef,r4] [#,#,#,#]. = FB_WRITE [r5,r6,r7,r8] [d0,d0,d0,d0] [undef,undef,undef,undef] pass1: [r0,r1,#,#].xy = PIXELXY [r2,r3,#,#].xy = DELTAXY [r0,r1,%,%] [#,#,#,r4].w = PIXELW [i0,%,%,%] [r2,r3,%,%] [r5,r6,r7,r8] = PINTERP [i1,%,%,%] [r2,r3,%,%] [%,%,%,r4] [#,#,#,#]. = FB_WRITE [r5,r6,r7,r8] [d0,d0,d0,d0] [%,%,%,%] pass2: [r0,r1,#,#].xy = PIXELXY [r2,r3,#,#].xy = DELTAXY [r0,r1,%,%] [#,#,#,r4].w = PIXELW [i0,%,%,%] [r2,r3,%,%] [r5,r6,r7,r8] = PINTERP [i1,%,%,%] [r2,r3,%,%] [%,%,%,r4] [#,#,#,#]. = FB_WRITE [r5,r6,r7,r8] [d0,d0,d0,d0] [%,%,%,%] pass2/done: [vec6,vec8,#,#].xy = PIXELXY [vec10,vec12,#,#].xy = DELTAXY [vec6,vec8,%,%] [#,#,#,vec6].w = PIXELW [vec2,%,%,%] [vec10,vec12,%,%] [vec2,vec8,vec14,vec16] = PINTERP [vec4,%,%,%] [vec10,vec12,%,%] [%,%,%,vec6] [#,#,#,#]. = FB_WRITE [vec2,vec8,vec14,vec16] [vec0,vec0,vec0,vec0] [%,%,%,%] wm-native: add(16) g6<1>UW g1.4<2,4,0>UW 0x10101010V { align1 }; add(16) g8<1>UW g1.5<2,4,0>UW 0x11001100V { align1 }; add(16) g10<1>F g6<8,8,1>UW -g1<0,1,0>F { align1 compr }; add(16) g12<1>F g8<8,8,1>UW -g1.1<0,1,0>F { align1 compr }; line(16) null g3.4<0,1,0>F g10<8,8,1>F { align1 compr }; mac(16) m2<1>F g3.5<0,1,0>F g12<8,8,1>F { align1 compr }; send(8) 2 g6<1>F null math inv mlen 1 rlen 1 { align1 }; send(8) 3 g7<1>F null math inv mlen 1 rlen 1 { align1 sechalf }; line(16) null g4<0,1,0>F g10<8,8,1>F { align1 compr }; mac(16) g2<1>F g4.1<0,1,0>F g12<8,8,1>F { align1 compr }; line(16) null g4.4<0,1,0>F g10<8,8,1>F { align1 compr }; mac(16) g8<1>F g4.5<0,1,0>F g12<8,8,1>F { align1 compr }; line(16) null g5<0,1,0>F g10<8,8,1>F { align1 compr }; mac(16) g14<1>F g5.1<0,1,0>F g12<8,8,1>F { align1 compr }; line(16) null g5.4<0,1,0>F g10<8,8,1>F { align1 compr }; mac(16) g16<1>F g5.5<0,1,0>F g12<8,8,1>F { align1 compr }; mul(16) g2<1>F g2<8,8,1>F g6<8,8,1>F { align1 compr }; mul(16) g8<1>F g8<8,8,1>F g6<8,8,1>F { align1 compr }; mul(16) g14<1>F g14<8,8,1>F g6<8,8,1>F { align1 compr }; mul(16) g16<1>F g16<8,8,1>F g6<8,8,1>F { align1 compr }; mov(16) m2<1>F g2<8,8,1>F { align1 compr4 }; mov(16) m3<1>F g8<8,8,1>F { align1 compr4 }; mov(16) m4<1>F g14<8,8,1>F { align1 compr4 }; mov(16) m5<1>F g16<8,8,1>F { align1 compr4 }; mov(8) m1<1>F g1<8,8,1>F { align1 nomask }; send(16) 0 null g0<8,8,1>UW write (0, 8, 4, 0) mlen 10 rlen 0 { align1 EOT }; vs-mesa: # Vertex Program/Shader 0 0: MUL TEMP[0], INPUT[0].xxxx, STATE[0]; 1: MAD TEMP[0], INPUT[0].yyyy, STATE[1], TEMP[0]; 2: MAD TEMP[0], INPUT[0].zzzz, STATE[2], TEMP[0]; 3: MAD OUTPUT[0], INPUT[0].wwww, STATE[3], TEMP[0]; 4: MOV OUTPUT[4], INPUT[8]; 5: END brw_vs_alloc_regs NumAddrRegs 0 brw_vs_alloc_regs NumTemps 1 brw_vs_alloc_regs reg = 7 vs-native: mul(8) g6<1>F g3<4,4,1>.xF g1<0,4,1>F { align16 }; mac(8) g6<1>F g3<4,4,1>.yF g1.4<0,4,1>F { align16 }; mac(8) g6<1>F g3<4,4,1>.zF g2<0,4,1>F { align16 }; mac(8) g5<1>F g3<4,4,1>.wF g2.4<0,4,1>F { align16 }; mov(8) m4<1>F g4<4,4,1>F { align16 }; send(8) 2 g7<1>F g5<4,4,1>.wF math inv scalar mlen 1 rlen 1 { align16 }; mul(8) g7<1>.xyzF g5<4,4,1>F g7<4,4,1>F { align16 }; mov(8) m1<1>UD 0x00000000UD { align16 }; mov(8) m2<1>F g7<8,8,1>F { align1 }; mov(8) m3<1>F g5<8,8,1>F { align1 }; send(8) 0 null g0<8,8,1>F urb 0 interleave used complete mlen 5 rlen 0 { align1 EOT }; pre-fp: # Fragment Program/Shader 0 0: TXP TEMP[0], INPUT[4], texture[0], 2D; 1: MOV OUTPUT[2], TEMP[0]; 2: END pass_fp: 0: PIXELXY TEMP[97].xy, FILE14[30], UNDEFINED[0], UNDEFINED[0]; 1: DELTAXY TEMP[96].xy, TEMP[97], FILE14[30], UNDEFINED[0]; 2: PIXELW TEMP[98].w, FILE14[0], TEMP[96], UNDEFINED[0]; 3: PINTERP INPUT[4], FILE14[4], TEMP[96], TEMP[98]; 4: TEX TEMP[0], INPUT[4], texture[0], 2D; 5: MOV OUTPUT[2], TEMP[0]; 6: FB_WRITE ???, OUTPUT[2], FILE14[30], OUTPUT[0]; pass0: [r0,r1,#,#].xy = PIXELXY [r2,r3,#,#].xy = DELTAXY [r0,r1,undef,undef] [#,#,#,r4].w = PIXELW [i0,undef,undef,undef] [r2,r3,undef,undef] [r5,r6,r7,r8] = PINTERP [i4,undef,undef,undef] [r2,r3,undef,undef] [undef,undef,undef,r4] [r9,r10,r11,r12] = TEX [r5,r6,r7,r8] [#,#,#,#]. = FB_WRITE [r9,r10,r11,r12] [d0,d0,d0,d0] [undef,undef,undef,undef] pass1: [r0,r1,#,#].xy = PIXELXY [r2,r3,#,#].xy = DELTAXY [r0,r1,%,%] [#,#,#,r4].w = PIXELW [i0,%,%,%] [r2,r3,%,%] [r5,r6,#,#].xy = PINTERP [i4,%,%,%] [r2,r3,%,%] [%,%,%,r4] [r9,r10,r11,r12] = TEX [r5,r6,%,%] [#,#,#,#]. = FB_WRITE [r9,r10,r11,r12] [d0,d0,d0,d0] [%,%,%,%] pass2: [r0,r1,#,#].xy = PIXELXY [r2,r3,#,#].xy = DELTAXY [r0,r1,%,%] [#,#,#,r4].w = PIXELW [i0,%,%,%] [r2,r3,%,%] [r5,r6,#,#].xy = PINTERP [i4,%,%,%] [r2,r3,%,%] [%,%,%,r4] [r9,r10,r11,r12] = TEX [r5,r6,%,%] [#,#,#,#]. = FB_WRITE [r9,r10,r11,r12] [d0,d0,d0,d0] [%,%,%,%] pass2/done: [vec6,vec8,#,#].xy = PIXELXY [vec10,vec12,#,#].xy = DELTAXY [vec6,vec8,%,%] [#,#,#,vec6].w = PIXELW [vec2,%,%,%] [vec10,vec12,%,%] [vec2,vec8,#,#].xy = PINTERP [vec4,%,%,%] [vec10,vec12,%,%] [%,%,%,vec6] [vec10,vec12,vec14,vec16] = TEX [vec2,vec8,%,%] [#,#,#,#]. = FB_WRITE [vec10,vec12,vec14,vec16] [vec0,vec0,vec0,vec0] [%,%,%,%] wm-native: add(16) g6<1>UW g1.4<2,4,0>UW 0x10101010V { align1 }; add(16) g8<1>UW g1.5<2,4,0>UW 0x11001100V { align1 }; add(16) g10<1>F g6<8,8,1>UW -g1<0,1,0>F { align1 compr }; add(16) g12<1>F g8<8,8,1>UW -g1.1<0,1,0>F { align1 compr }; line(16) null g3.4<0,1,0>F g10<8,8,1>F { align1 compr }; mac(16) m2<1>F g3.5<0,1,0>F g12<8,8,1>F { align1 compr }; send(8) 2 g6<1>F null math inv mlen 1 rlen 1 { align1 }; send(8) 3 g7<1>F null math inv mlen 1 rlen 1 { align1 sechalf }; line(16) null g4<0,1,0>F g10<8,8,1>F { align1 compr }; mac(16) g2<1>F g4.1<0,1,0>F g12<8,8,1>F { align1 compr }; line(16) null g4.4<0,1,0>F g10<8,8,1>F { align1 compr }; mac(16) g8<1>F g4.5<0,1,0>F g12<8,8,1>F { align1 compr }; mul(16) g2<1>F g2<8,8,1>F g6<8,8,1>F { align1 compr }; mul(16) g8<1>F g8<8,8,1>F g6<8,8,1>F { align1 compr }; mov(16) m2<1>F g2<8,8,1>F { align1 compr }; mov(16) m4<1>F g8<8,8,1>F { align1 compr }; send(16) 1 g10<1>UW g0<8,8,1>UW sampler (9, 0, F) mlen 5 rlen 8 { align1 }; mov(16) m2<1>F g10<8,8,1>F { align1 compr4 }; mov(16) m3<1>F g12<8,8,1>F { align1 compr4 }; mov(16) m4<1>F g14<8,8,1>F { align1 compr4 }; mov(16) m5<1>F g16<8,8,1>F { align1 compr4 }; mov(8) m1<1>F g1<8,8,1>F { align1 nomask }; send(16) 0 null g0<8,8,1>UW write (0, 8, 4, 0) mlen 10 rlen 0 { align1 EOT }; vs-mesa: # Vertex Program/Shader 1 0: DP4 TEMP[0].x, INPUT[16], UNIFORM[1]; 1: DP4 TEMP[0].y, INPUT[16], UNIFORM[2]; 2: DP4 TEMP[0].z, INPUT[16], UNIFORM[3]; 3: DP4 TEMP[0].w, INPUT[16], UNIFORM[4]; 4: ADD TEMP[1], INPUT[18], UNIFORM[5]; 5: MIN TEMP[2], TEMP[1], CONST[6].xxxx; 6: MAX OUTPUT[4], TEMP[2], CONST[6].yyyy; 7: MIN TEMP[1], INPUT[17], CONST[6].xxxx; 8: MAX OUTPUT[1], TEMP[1], CONST[6].yyyy; 9: MIN TEMP[1], TEMP[0], CONST[6].xxxx; 10: MAX TEMP[0], TEMP[1], CONST[6].yyyy; 11: MOV OUTPUT[0], TEMP[0]; 12: MOV OUTPUT[3], CONST[6].zzzz; 13: MUL OUTPUT[0].y, TEMP[0].xyxx, UNIFORM[0].xyxx; 14: MAD OUTPUT[0].xy, UNIFORM[0].zwxx, OUTPUT[0].wwxx, OUTPUT[0].xyxx; 15: MAD OUTPUT[0].z, OUTPUT[0].xxzx, CONST[6].xxwx, OUTPUT[0].-x-x-w-x; 16: END brw_vs_alloc_regs NumAddrRegs 0 brw_vs_alloc_regs NumTemps 3 brw_vs_alloc_regs reg = 12 vs-native: dp4(8) g9<1>.xF g5<4,4,1>F g1<0,4,1>F { align16 NoDDClr }; dp4(8) g9<1>.yF g5<4,4,1>F g1.4<0,4,1>F { align16 NoDDClr,NoDDChk }; dp4(8) g9<1>.zF g5<4,4,1>F g2<0,4,1>F { align16 NoDDClr,NoDDChk }; dp4(8) g9<1>.wF g5<4,4,1>F g2.4<0,4,1>F { align16 NoDDChk }; add(8) g10<1>F g7<4,4,1>F g3<0,4,1>F { align16 }; cmp.l(8) null g10<4,4,1>F 1e+38F { align16 }; (+f0) sel(8) g11<1>F g10<4,4,1>F 1e+38F { align16 }; cmp.ge(8) null g11<4,4,1>F -1e+38F { align16 }; (+f0) sel(8) m6<1>F g11<4,4,1>F -1e+38F { align16 }; cmp.l(8) null g6<4,4,1>F 1e+38F { align16 }; (+f0) sel(8) g10<1>F g6<4,4,1>F 1e+38F { align16 }; cmp.ge(8) null g10<4,4,1>F -1e+38F { align16 }; (+f0) sel.sat(8) m4<1>F g10<4,4,1>F -1e+38F { align16 }; cmp.l(8) null g9<4,4,1>F 1e+38F { align16 }; (+f0) sel(8) g10<1>F g9<4,4,1>F 1e+38F { align16 }; cmp.ge(8) null g10<4,4,1>F -1e+38F { align16 }; (+f0) sel(8) g9<1>F g10<4,4,1>F -1e+38F { align16 }; mov(8) g8<1>F g9<4,4,1>F { align16 }; mov(8) m5<1>F 0F { align16 }; mul(8) g8<1>.yF g9<4,4,1>.xyxxF g4<0,4,1>.xyxxF { align16 }; mov(8) acc0<1>F g8<4,4,1>.xyxxF { align16 }; mac(8) g8<1>.xyF g4<0,4,1>.zwxxF g8<4,4,1>.wwxxF { align16 }; mov(8) acc0<1>F -g8<4,4,1>.xxwxF { align16 }; mac(8) g8<1>.zF g8<4,4,1>.xxzxF g3.4<0,4,1>.xxwxF { align16 }; send(8) 2 g12<1>F g8<4,4,1>.wF math inv scalar mlen 1 rlen 1 { align16 }; mul(8) g12<1>.xyzF g8<4,4,1>F g12<4,4,1>F { align16 }; mov(8) m1<1>UD 0x00000000UD { align16 }; mov(8) m2<1>F g12<8,8,1>F { align1 }; mov(8) m3<1>F g8<8,8,1>F { align1 }; send(8) 0 null g0<8,8,1>F urb 0 interleave used complete mlen 7 rlen 0 { align1 EOT }; GLSL IR for native fragment shader 1: ( (declare () vec4 T0@0x75afebe8) (declare (uniform ) sampler2D Psampler0@0x75afeaa0) (declare (in ) vec4 gl_Color@0x75afe9c8) (declare (in ) (array vec4 1) gl_TexCoord@0x75afe880) (declare (out ) (array vec4 1) gl_FragData@0x75afe7a8) (function main (signature void (parameters ) ( (assign (constant bool (1)) (xyzw) (var_ref T0@0x75afebe8) (array_ref (var_ref gl_TexCoord@0x75afe880) (constant int (0)) ) ) (declare () vec4 _ret_val@0x75afe590) (assign (constant bool (1)) (xyzw) (var_ref _ret_val@0x75afe590) (tex (var_ref Psampler0@0x75afeaa0) (swiz xy (var_ref T0@0x75afebe8) ) (0 0 0) 1 () )) (assign (constant bool (1)) (xyzw) (var_ref T0@0x75afebe8) (var_ref _ret_val@0x75afe590) ) (declare (temporary ) vec4 flattening_tmp@0x75afe150) (assign (constant bool (1)) (x) (var_ref flattening_tmp@0x75afe150) (expression float * (constant float (2.000000)) (expression float * (swiz x (var_ref _ret_val@0x75afe590) )(swiz x (var_ref gl_Color@0x75afe9c8) )) ) ) (assign (constant bool (1)) (y) (var_ref flattening_tmp@0x75afe150) (expression float * (constant float (2.000000)) (expression float * (swiz y (var_ref _ret_val@0x75afe590) )(swiz y (var_ref gl_Color@0x75afe9c8) )) ) ) (assign (constant bool (1)) (z) (var_ref flattening_tmp@0x75afe150) (expression float * (constant float (2.000000)) (expression float * (swiz z (var_ref _ret_val@0x75afe590) )(swiz z (var_ref gl_Color@0x75afe9c8) )) ) ) (assign (constant bool (1)) (w) (var_ref flattening_tmp@0x75afe150) (expression float * (constant float (2.000000)) (expression float * (swiz w (var_ref _ret_val@0x75afe590) )(swiz w (var_ref gl_Color@0x75afe9c8) )) ) ) (assign (constant bool (1)) (xyzw) (array_ref (var_ref gl_FragData@0x75afe7a8) (constant int (0)) ) (var_ref flattening_tmp@0x75afe150) ) )) ) ) Native code for fragment shader 1: compute pixel centers add(8) g10<1>UW g1.4<2,4,0>UW 0x10101010V { align1 }; add(8) g11<1>UW g1.5<2,4,0>UW 0x11001100V { align1 }; compute pixel deltas from v0 add(8) g12<1>F g10<8,8,1>UW -g1<0,1,0>F { align1 }; add(8) g13<1>F g11<8,8,1>UW -g1.1<0,1,0>F { align1 }; compute pos.w and 1/pos.w pln(8) g10<1>F g3.4<0,1,0>F g12<8,8,1>F { align1 }; send(8) 2 g10<1>F g10<8,8,1>F math inv mlen 1 rlen 1 { align1 }; (declare (in ) vec4 gl_Color@0x75afe9c8) pln(8) g11<1>F g4<0,1,0>F g12<8,8,1>F { align1 }; pln(8) g16<1>F g4.4<0,1,0>F g12<8,8,1>F { align1 }; pln(8) g17<1>F g5<0,1,0>F g12<8,8,1>F { align1 }; pln(8) g18<1>F g5.4<0,1,0>F g12<8,8,1>F { align1 }; mul(8) g11<1>F g11<8,8,1>F g10<8,8,1>F { align1 }; mul(8) g16<1>F g16<8,8,1>F g10<8,8,1>F { align1 }; mul(8) g17<1>F g17<8,8,1>F g10<8,8,1>F { align1 }; mul(8) g18<1>F g18<8,8,1>F g10<8,8,1>F { align1 }; (declare (in ) (array vec4 1) gl_TexCoord@0x75afe880) pln(8) g14<1>F g8<0,1,0>F g12<8,8,1>F { align1 }; pln(8) g12<1>F g8.4<0,1,0>F g12<8,8,1>F { align1 }; mul(8) m2<1>F g14<8,8,1>F g10<8,8,1>F { align1 }; mul(8) m3<1>F g12<8,8,1>F g10<8,8,1>F { align1 }; (assign (constant bool (1)) (xyzw) (var_ref _ret_val@0x75afe590) (tex (var_ref Psampler0@0x75afeaa0) (swiz xy (var_ref T0@0x75afebe8) ) (0 0 0) 1 () )) send(8) 1 g12<1>UW g0<8,8,1>UW sampler (9, 0, F) mlen 4 rlen 4 { align1 }; (assign (constant bool (1)) (x) (var_ref flattening_tmp@0x75afe150) (expression float * (constant float (2.000000)) (expression float * (swiz x (var_ref _ret_val@0x75afe590) )(swiz x (var_ref gl_Color@0x75afe9c8) )) ) ) mul(8) g10<1>F g12<8,8,1>F g11<8,8,1>F { align1 }; mul(8) m2<1>F g10<8,8,1>F 2F { align1 }; (assign (constant bool (1)) (y) (var_ref flattening_tmp@0x75afe150) (expression float * (constant float (2.000000)) (expression float * (swiz y (var_ref _ret_val@0x75afe590) )(swiz y (var_ref gl_Color@0x75afe9c8) )) ) ) mul(8) g10<1>F g13<8,8,1>F g16<8,8,1>F { align1 }; mul(8) m3<1>F g10<8,8,1>F 2F { align1 }; (assign (constant bool (1)) (z) (var_ref flattening_tmp@0x75afe150) (expression float * (constant float (2.000000)) (expression float * (swiz z (var_ref _ret_val@0x75afe590) )(swiz z (var_ref gl_Color@0x75afe9c8) )) ) ) mul(8) g10<1>F g14<8,8,1>F g17<8,8,1>F { align1 }; mul(8) m4<1>F g10<8,8,1>F 2F { align1 }; (assign (constant bool (1)) (w) (var_ref flattening_tmp@0x75afe150) (expression float * (constant float (2.000000)) (expression float * (swiz w (var_ref _ret_val@0x75afe590) )(swiz w (var_ref gl_Color@0x75afe9c8) )) ) ) mul(8) g10<1>F g15<8,8,1>F g18<8,8,1>F { align1 }; mul(8) m5<1>F g10<8,8,1>F 2F { align1 }; (assign (constant bool (1)) (xyzw) (array_ref (var_ref gl_FragData@0x75afe7a8) (constant int (0)) ) (var_ref flattening_tmp@0x75afe150) ) FB write target 0 mov(8) m1<1>F g1<8,8,1>F { align1 nomask }; send(8) 0 null g0<8,8,1>UW write (0, 12, 4, 0) mlen 6 rlen 0 { align1 EOT }; pre-fp: # Fragment Program/Shader 0 0: ADD OUTPUT[2].xyz, INPUT[1], STATE[0]; 1: MOV OUTPUT[2].w, INPUT[1]; 2: END pass_fp: 0: PIXELXY TEMP[97].xy, FILE14[30], UNDEFINED[0], UNDEFINED[0]; 1: DELTAXY TEMP[96].xy, TEMP[97], FILE14[30], UNDEFINED[0]; 2: LINTERP INPUT[1], FILE14[1], TEMP[96], UNDEFINED[0]; 3: ADD OUTPUT[2].xyz, INPUT[1], STATE[0]; 4: MOV OUTPUT[2].w, INPUT[1]; 5: FB_WRITE ???, OUTPUT[2], FILE14[30], OUTPUT[0]; pass0: [r0,r1,#,#].xy = PIXELXY [r2,r3,#,#].xy = DELTAXY [r0,r1,undef,undef] [r4,r5,r6,r7] = LINTERP [i1,undef,undef,undef] [r2,r3,undef,undef] [r8,r9,r10,#].xyz = ADD [r4,r5,r6,r7] [c0,c0->0.4,c0->0.8,c0->0.12] [#,#,#,#]. = FB_WRITE [r8,r9,r10,r7] [d0,d0,d0,d0] [undef,undef,undef,undef] pass1: [r0,r1,#,#].xy = PIXELXY [r2,r3,#,#].xy = DELTAXY [r0,r1,%,%] [r4,r5,r6,r7] = LINTERP [i1,%,%,%] [r2,r3,%,%] [r8,r9,r10,#].xyz = ADD [r4,r5,r6,%] [c0,c0->0.4,c0->0.8,%] [#,#,#,#]. = FB_WRITE [r8,r9,r10,r7] [d0,d0,d0,d0] [%,%,%,%] pass2: [r0,r1,#,#].xy = PIXELXY [r2,r3,#,#].xy = DELTAXY [r0,r1,%,%] [r4,r5,r6,r7] = LINTERP [i1,%,%,%] [r2,r3,%,%] [r8,r9,r10,#].xyz = ADD [r4,r5,r6,%] [c0,c0->0.4,c0->0.8,%] [#,#,#,#]. = FB_WRITE [r8,r9,r10,r7] [d0,d0,d0,d0] [%,%,%,%] pass2/done: [vec4,vec8,#,#].xy = PIXELXY [vec10,vec12,#,#].xy = DELTAXY [vec4,vec8,%,%] [vec4,vec8,vec14,vec16] = LINTERP [vec6,%,%,%] [vec10,vec12,%,%] [vec6,vec10,vec12,#].xyz = ADD [vec4,vec8,vec14,%] [scl2.0,scl2.1,scl2.2,%] [#,#,#,#]. = FB_WRITE [vec6,vec10,vec12,vec16] [vec0,vec0,vec0,vec0] [%,%,%,%] wm-native: add(16) g4<1>UW g1.4<2,4,0>UW 0x10101010V { align1 }; add(16) g8<1>UW g1.5<2,4,0>UW 0x11001100V { align1 }; add(16) g10<1>F g4<8,8,1>UW -g1<0,1,0>F { align1 compr }; add(16) g12<1>F g8<8,8,1>UW -g1.1<0,1,0>F { align1 compr }; line(16) null g6<0,1,0>F g10<8,8,1>F { align1 compr }; mac(16) g4<1>F g6.1<0,1,0>F g12<8,8,1>F { align1 compr }; line(16) null g6.4<0,1,0>F g10<8,8,1>F { align1 compr }; mac(16) g8<1>F g6.5<0,1,0>F g12<8,8,1>F { align1 compr }; line(16) null g7<0,1,0>F g10<8,8,1>F { align1 compr }; mac(16) g14<1>F g7.1<0,1,0>F g12<8,8,1>F { align1 compr }; line(16) null g7.4<0,1,0>F g10<8,8,1>F { align1 compr }; mac(16) g16<1>F g7.5<0,1,0>F g12<8,8,1>F { align1 compr }; add(16) g6<1>F g4<8,8,1>F g2<0,1,0>F { align1 compr }; add(16) g10<1>F g8<8,8,1>F g2.1<0,1,0>F { align1 compr }; add(16) g12<1>F g14<8,8,1>F g2.2<0,1,0>F { align1 compr }; mov(16) m2<1>F g6<8,8,1>F { align1 compr4 }; mov(16) m3<1>F g10<8,8,1>F { align1 compr4 }; mov(16) m4<1>F g12<8,8,1>F { align1 compr4 }; mov(16) m5<1>F g16<8,8,1>F { align1 compr4 }; mov(8) m1<1>F g1<8,8,1>F { align1 nomask }; send(16) 0 null g0<8,8,1>UW write (0, 8, 4, 0) mlen 10 rlen 0 { align1 EOT }; GLSL IR for native fragment shader 1: ( (declare () vec4 T0@0x75afebe8) (declare (uniform ) sampler2D Psampler0@0x75afeaa0) (declare (in ) vec4 gl_Color@0x75afe9c8) (declare (in ) (array vec4 1) gl_TexCoord@0x75afe880) (declare (out ) (array vec4 1) gl_FragData@0x75afe7a8) (function main (signature void (parameters ) ( (assign (constant bool (1)) (xyzw) (var_ref T0@0x75afebe8) (array_ref (var_ref gl_TexCoord@0x75afe880) (constant int (0)) ) ) (declare () vec4 _ret_val@0x75afe590) (assign (constant bool (1)) (xyzw) (var_ref _ret_val@0x75afe590) (tex (var_ref Psampler0@0x75afeaa0) (swiz xy (var_ref T0@0x75afebe8) ) (0 0 0) 1 () )) (assign (constant bool (1)) (xyzw) (var_ref T0@0x75afebe8) (var_ref _ret_val@0x75afe590) ) (declare (temporary ) vec4 flattening_tmp@0x75afe150) (assign (constant bool (1)) (x) (var_ref flattening_tmp@0x75afe150) (expression float * (constant float (2.000000)) (expression float * (swiz x (var_ref _ret_val@0x75afe590) )(swiz x (var_ref gl_Color@0x75afe9c8) )) ) ) (assign (constant bool (1)) (y) (var_ref flattening_tmp@0x75afe150) (expression float * (constant float (2.000000)) (expression float * (swiz y (var_ref _ret_val@0x75afe590) )(swiz y (var_ref gl_Color@0x75afe9c8) )) ) ) (assign (constant bool (1)) (z) (var_ref flattening_tmp@0x75afe150) (expression float * (constant float (2.000000)) (expression float * (swiz z (var_ref _ret_val@0x75afe590) )(swiz z (var_ref gl_Color@0x75afe9c8) )) ) ) (assign (constant bool (1)) (w) (var_ref flattening_tmp@0x75afe150) (expression float * (constant float (2.000000)) (expression float * (swiz w (var_ref _ret_val@0x75afe590) )(swiz w (var_ref gl_Color@0x75afe9c8) )) ) ) (assign (constant bool (1)) (xyzw) (array_ref (var_ref gl_FragData@0x75afe7a8) (constant int (0)) ) (var_ref flattening_tmp@0x75afe150) ) )) ) ) Native code for fragment shader 1: compute pixel centers add(8) g10<1>UW g1.4<2,4,0>UW 0x10101010V { align1 }; add(8) g11<1>UW g1.5<2,4,0>UW 0x11001100V { align1 }; compute pixel deltas from v0 add(8) g12<1>F g10<8,8,1>UW -g1<0,1,0>F { align1 }; add(8) g13<1>F g11<8,8,1>UW -g1.1<0,1,0>F { align1 }; compute pos.w and 1/pos.w pln(8) g10<1>F g3.4<0,1,0>F g12<8,8,1>F { align1 }; send(8) 2 g10<1>F g10<8,8,1>F math inv mlen 1 rlen 1 { align1 }; (declare (in ) vec4 gl_Color@0x75afe9c8) pln(8) g11<1>F g4<0,1,0>F g12<8,8,1>F { align1 }; pln(8) g16<1>F g4.4<0,1,0>F g12<8,8,1>F { align1 }; pln(8) g17<1>F g5<0,1,0>F g12<8,8,1>F { align1 }; pln(8) g18<1>F g5.4<0,1,0>F g12<8,8,1>F { align1 }; mul(8) g11<1>F g11<8,8,1>F g10<8,8,1>F { align1 }; mul(8) g16<1>F g16<8,8,1>F g10<8,8,1>F { align1 }; mul(8) g17<1>F g17<8,8,1>F g10<8,8,1>F { align1 }; mul(8) g18<1>F g18<8,8,1>F g10<8,8,1>F { align1 }; (declare (in ) (array vec4 1) gl_TexCoord@0x75afe880) pln(8) g14<1>F g8<0,1,0>F g12<8,8,1>F { align1 }; pln(8) g12<1>F g8.4<0,1,0>F g12<8,8,1>F { align1 }; mul(8) m2<1>F g14<8,8,1>F g10<8,8,1>F { align1 }; mul(8) m3<1>F g12<8,8,1>F g10<8,8,1>F { align1 }; (assign (constant bool (1)) (xyzw) (var_ref _ret_val@0x75afe590) (tex (var_ref Psampler0@0x75afeaa0) (swiz xy (var_ref T0@0x75afebe8) ) (0 0 0) 1 () )) send(8) 1 g12<1>UW g0<8,8,1>UW sampler (9, 0, F) mlen 4 rlen 4 { align1 }; (assign (constant bool (1)) (x) (var_ref flattening_tmp@0x75afe150) (expression float * (constant float (2.000000)) (expression float * (swiz x (var_ref _ret_val@0x75afe590) )(swiz x (var_ref gl_Color@0x75afe9c8) )) ) ) mul(8) g10<1>F g12<8,8,1>F g11<8,8,1>F { align1 }; mul(8) m2<1>F g10<8,8,1>F 2F { align1 }; (assign (constant bool (1)) (y) (var_ref flattening_tmp@0x75afe150) (expression float * (constant float (2.000000)) (expression float * (swiz y (var_ref _ret_val@0x75afe590) )(swiz y (var_ref gl_Color@0x75afe9c8) )) ) ) mul(8) g10<1>F g13<8,8,1>F g16<8,8,1>F { align1 }; mul(8) m3<1>F g10<8,8,1>F 2F { align1 }; (assign (constant bool (1)) (z) (var_ref flattening_tmp@0x75afe150) (expression float * (constant float (2.000000)) (expression float * (swiz z (var_ref _ret_val@0x75afe590) )(swiz z (var_ref gl_Color@0x75afe9c8) )) ) ) mul(8) g10<1>F g14<8,8,1>F g17<8,8,1>F { align1 }; mul(8) m4<1>F g10<8,8,1>F 2F { align1 }; (assign (constant bool (1)) (w) (var_ref flattening_tmp@0x75afe150) (expression float * (constant float (2.000000)) (expression float * (swiz w (var_ref _ret_val@0x75afe590) )(swiz w (var_ref gl_Color@0x75afe9c8) )) ) ) mul(8) g10<1>F g15<8,8,1>F g18<8,8,1>F { align1 }; mul(8) m5<1>F g10<8,8,1>F 2F { align1 }; (assign (constant bool (1)) (xyzw) (array_ref (var_ref gl_FragData@0x75afe7a8) (constant int (0)) ) (var_ref flattening_tmp@0x75afe150) ) FB write target 0 mov(8) m1<1>F g1<8,8,1>F { align1 nomask }; send(8) 0 null g0<8,8,1>UW write (0, 12, 4, 0) mlen 6 rlen 0 { align1 EOT }; GLSL IR for native fragment shader 1: ( (declare () vec4 T0@0x75afebe8) (declare (uniform ) sampler2D Psampler0@0x75afeaa0) (declare (in ) vec4 gl_Color@0x75afe9c8) (declare (in ) (array vec4 1) gl_TexCoord@0x75afe880) (declare (out ) (array vec4 1) gl_FragData@0x75afe7a8) (function main (signature void (parameters ) ( (assign (constant bool (1)) (xyzw) (var_ref T0@0x75afebe8) (array_ref (var_ref gl_TexCoord@0x75afe880) (constant int (0)) ) ) (declare () vec4 _ret_val@0x75afe590) (assign (constant bool (1)) (xyzw) (var_ref _ret_val@0x75afe590) (tex (var_ref Psampler0@0x75afeaa0) (swiz xy (var_ref T0@0x75afebe8) ) (0 0 0) 1 () )) (assign (constant bool (1)) (xyzw) (var_ref T0@0x75afebe8) (var_ref _ret_val@0x75afe590) ) (declare (temporary ) vec4 flattening_tmp@0x75afe150) (assign (constant bool (1)) (x) (var_ref flattening_tmp@0x75afe150) (expression float * (constant float (2.000000)) (expression float * (swiz x (var_ref _ret_val@0x75afe590) )(swiz x (var_ref gl_Color@0x75afe9c8) )) ) ) (assign (constant bool (1)) (y) (var_ref flattening_tmp@0x75afe150) (expression float * (constant float (2.000000)) (expression float * (swiz y (var_ref _ret_val@0x75afe590) )(swiz y (var_ref gl_Color@0x75afe9c8) )) ) ) (assign (constant bool (1)) (z) (var_ref flattening_tmp@0x75afe150) (expression float * (constant float (2.000000)) (expression float * (swiz z (var_ref _ret_val@0x75afe590) )(swiz z (var_ref gl_Color@0x75afe9c8) )) ) ) (assign (constant bool (1)) (w) (var_ref flattening_tmp@0x75afe150) (expression float * (constant float (2.000000)) (expression float * (swiz w (var_ref _ret_val@0x75afe590) )(swiz w (var_ref gl_Color@0x75afe9c8) )) ) ) (assign (constant bool (1)) (xyzw) (array_ref (var_ref gl_FragData@0x75afe7a8) (constant int (0)) ) (var_ref flattening_tmp@0x75afe150) ) )) ) ) Native code for fragment shader 1: compute pixel centers add(8) g12<1>UW g1.4<2,4,0>UW 0x10101010V { align1 }; add(8) g13<1>UW g1.5<2,4,0>UW 0x11001100V { align1 }; compute pixel deltas from v0 add(8) g14<1>F g12<8,8,1>UW -g1<0,1,0>F { align1 }; add(8) g15<1>F g13<8,8,1>UW -g1.1<0,1,0>F { align1 }; compute pos.w and 1/pos.w pln(8) g12<1>F g5.4<0,1,0>F g14<8,8,1>F { align1 }; send(8) 2 g12<1>F g12<8,8,1>F math inv mlen 1 rlen 1 { align1 }; (declare (in ) vec4 gl_Color@0x75afe9c8) pln(8) g13<1>F g6<0,1,0>F g14<8,8,1>F { align1 }; pln(8) g18<1>F g6.4<0,1,0>F g14<8,8,1>F { align1 }; pln(8) g19<1>F g7<0,1,0>F g14<8,8,1>F { align1 }; pln(8) g20<1>F g7.4<0,1,0>F g14<8,8,1>F { align1 }; mul(8) g13<1>F g13<8,8,1>F g12<8,8,1>F { align1 }; mul(8) g18<1>F g18<8,8,1>F g12<8,8,1>F { align1 }; mul(8) g19<1>F g19<8,8,1>F g12<8,8,1>F { align1 }; mul(8) g20<1>F g20<8,8,1>F g12<8,8,1>F { align1 }; (declare (in ) (array vec4 1) gl_TexCoord@0x75afe880) pln(8) g16<1>F g10<0,1,0>F g14<8,8,1>F { align1 }; pln(8) g14<1>F g10.4<0,1,0>F g14<8,8,1>F { align1 }; mul(8) m2<1>F g16<8,8,1>F g12<8,8,1>F { align1 }; mul(8) m3<1>F g14<8,8,1>F g12<8,8,1>F { align1 }; (assign (constant bool (1)) (xyzw) (var_ref _ret_val@0x75afe590) (tex (var_ref Psampler0@0x75afeaa0) (swiz xy (var_ref T0@0x75afebe8) ) (0 0 0) 1 () )) send(8) 1 g14<1>UW g0<8,8,1>UW sampler (9, 0, F) mlen 4 rlen 4 { align1 }; (assign (constant bool (1)) (x) (var_ref flattening_tmp@0x75afe150) (expression float * (constant float (2.000000)) (expression float * (swiz x (var_ref _ret_val@0x75afe590) )(swiz x (var_ref gl_Color@0x75afe9c8) )) ) ) mul(8) g12<1>F g14<8,8,1>F g13<8,8,1>F { align1 }; mul(8) m2<1>F g12<8,8,1>F 2F { align1 }; (assign (constant bool (1)) (y) (var_ref flattening_tmp@0x75afe150) (expression float * (constant float (2.000000)) (expression float * (swiz y (var_ref _ret_val@0x75afe590) )(swiz y (var_ref gl_Color@0x75afe9c8) )) ) ) mul(8) g12<1>F g15<8,8,1>F g18<8,8,1>F { align1 }; mul(8) m3<1>F g12<8,8,1>F 2F { align1 }; (assign (constant bool (1)) (z) (var_ref flattening_tmp@0x75afe150) (expression float * (constant float (2.000000)) (expression float * (swiz z (var_ref _ret_val@0x75afe590) )(swiz z (var_ref gl_Color@0x75afe9c8) )) ) ) mul(8) g12<1>F g16<8,8,1>F g19<8,8,1>F { align1 }; mul(8) m4<1>F g12<8,8,1>F 2F { align1 }; (assign (constant bool (1)) (w) (var_ref flattening_tmp@0x75afe150) (expression float * (constant float (2.000000)) (expression float * (swiz w (var_ref _ret_val@0x75afe590) )(swiz w (var_ref gl_Color@0x75afe9c8) )) ) ) mul(8) g12<1>F g17<8,8,1>F g20<8,8,1>F { align1 }; mul(8) m5<1>F g12<8,8,1>F 2F { align1 }; (assign (constant bool (1)) (xyzw) (array_ref (var_ref gl_FragData@0x75afe7a8) (constant int (0)) ) (var_ref flattening_tmp@0x75afe150) ) FB write header mov(8) m6<1>F g2<8,8,1>F { align1 }; FB write target 0 mov(8) m1<1>F g1<8,8,1>F { align1 nomask }; send(8) 0 null g0<8,8,1>UW write (0, 12, 4, 0) mlen 7 rlen 0 { align1 EOT }; GLSL IR for native fragment shader 1: ( (declare () vec4 T0@0x75afebe8) (declare (uniform ) sampler2D Psampler0@0x75afeaa0) (declare (in ) vec4 gl_Color@0x75afe9c8) (declare (in ) (array vec4 1) gl_TexCoord@0x75afe880) (declare (out ) (array vec4 1) gl_FragData@0x75afe7a8) (function main (signature void (parameters ) ( (assign (constant bool (1)) (xyzw) (var_ref T0@0x75afebe8) (array_ref (var_ref gl_TexCoord@0x75afe880) (constant int (0)) ) ) (declare () vec4 _ret_val@0x75afe590) (assign (constant bool (1)) (xyzw) (var_ref _ret_val@0x75afe590) (tex (var_ref Psampler0@0x75afeaa0) (swiz xy (var_ref T0@0x75afebe8) ) (0 0 0) 1 () )) (assign (constant bool (1)) (xyzw) (var_ref T0@0x75afebe8) (var_ref _ret_val@0x75afe590) ) (declare (temporary ) vec4 flattening_tmp@0x75afe150) (assign (constant bool (1)) (x) (var_ref flattening_tmp@0x75afe150) (expression float * (constant float (2.000000)) (expression float * (swiz x (var_ref _ret_val@0x75afe590) )(swiz x (var_ref gl_Color@0x75afe9c8) )) ) ) (assign (constant bool (1)) (y) (var_ref flattening_tmp@0x75afe150) (expression float * (constant float (2.000000)) (expression float * (swiz y (var_ref _ret_val@0x75afe590) )(swiz y (var_ref gl_Color@0x75afe9c8) )) ) ) (assign (constant bool (1)) (z) (var_ref flattening_tmp@0x75afe150) (expression float * (constant float (2.000000)) (expression float * (swiz z (var_ref _ret_val@0x75afe590) )(swiz z (var_ref gl_Color@0x75afe9c8) )) ) ) (assign (constant bool (1)) (w) (var_ref flattening_tmp@0x75afe150) (expression float * (constant float (2.000000)) (expression float * (swiz w (var_ref _ret_val@0x75afe590) )(swiz w (var_ref gl_Color@0x75afe9c8) )) ) ) (assign (constant bool (1)) (xyzw) (array_ref (var_ref gl_FragData@0x75afe7a8) (constant int (0)) ) (var_ref flattening_tmp@0x75afe150) ) )) ) ) Native code for fragment shader 1: compute pixel centers add(8) g10<1>UW g1.4<2,4,0>UW 0x10101010V { align1 }; add(8) g11<1>UW g1.5<2,4,0>UW 0x11001100V { align1 }; compute pixel deltas from v0 add(8) g12<1>F g10<8,8,1>UW -g1<0,1,0>F { align1 }; add(8) g13<1>F g11<8,8,1>UW -g1.1<0,1,0>F { align1 }; compute pos.w and 1/pos.w pln(8) g10<1>F g3.4<0,1,0>F g12<8,8,1>F { align1 }; send(8) 2 g10<1>F g10<8,8,1>F math inv mlen 1 rlen 1 { align1 }; (declare (in ) vec4 gl_Color@0x75afe9c8) pln(8) g11<1>F g4<0,1,0>F g12<8,8,1>F { align1 }; pln(8) g16<1>F g4.4<0,1,0>F g12<8,8,1>F { align1 }; pln(8) g17<1>F g5<0,1,0>F g12<8,8,1>F { align1 }; pln(8) g18<1>F g5.4<0,1,0>F g12<8,8,1>F { align1 }; mul(8) g11<1>F g11<8,8,1>F g10<8,8,1>F { align1 }; mul(8) g16<1>F g16<8,8,1>F g10<8,8,1>F { align1 }; mul(8) g17<1>F g17<8,8,1>F g10<8,8,1>F { align1 }; mul(8) g18<1>F g18<8,8,1>F g10<8,8,1>F { align1 }; (declare (in ) (array vec4 1) gl_TexCoord@0x75afe880) pln(8) g14<1>F g8<0,1,0>F g12<8,8,1>F { align1 }; pln(8) g12<1>F g8.4<0,1,0>F g12<8,8,1>F { align1 }; mul(8) m2<1>F g14<8,8,1>F g10<8,8,1>F { align1 }; mul(8) m3<1>F g12<8,8,1>F g10<8,8,1>F { align1 }; (assign (constant bool (1)) (xyzw) (var_ref _ret_val@0x75afe590) (tex (var_ref Psampler0@0x75afeaa0) (swiz xy (var_ref T0@0x75afebe8) ) (0 0 0) 1 () )) send(8) 1 g12<1>UW g0<8,8,1>UW sampler (9, 0, F) mlen 4 rlen 4 { align1 }; (assign (constant bool (1)) (x) (var_ref flattening_tmp@0x75afe150) (expression float * (constant float (2.000000)) (expression float * (swiz x (var_ref _ret_val@0x75afe590) )(swiz x (var_ref gl_Color@0x75afe9c8) )) ) ) mul(8) g10<1>F g12<8,8,1>F g11<8,8,1>F { align1 }; mul(8) m2<1>F g10<8,8,1>F 2F { align1 }; (assign (constant bool (1)) (y) (var_ref flattening_tmp@0x75afe150) (expression float * (constant float (2.000000)) (expression float * (swiz y (var_ref _ret_val@0x75afe590) )(swiz y (var_ref gl_Color@0x75afe9c8) )) ) ) mul(8) g10<1>F g13<8,8,1>F g16<8,8,1>F { align1 }; mul(8) m3<1>F g10<8,8,1>F 2F { align1 }; (assign (constant bool (1)) (z) (var_ref flattening_tmp@0x75afe150) (expression float * (constant float (2.000000)) (expression float * (swiz z (var_ref _ret_val@0x75afe590) )(swiz z (var_ref gl_Color@0x75afe9c8) )) ) ) mul(8) g10<1>F g14<8,8,1>F g17<8,8,1>F { align1 }; mul(8) m4<1>F g10<8,8,1>F 2F { align1 }; (assign (constant bool (1)) (w) (var_ref flattening_tmp@0x75afe150) (expression float * (constant float (2.000000)) (expression float * (swiz w (var_ref _ret_val@0x75afe590) )(swiz w (var_ref gl_Color@0x75afe9c8) )) ) ) mul(8) g10<1>F g15<8,8,1>F g18<8,8,1>F { align1 }; mul(8) m5<1>F g10<8,8,1>F 2F { align1 }; (assign (constant bool (1)) (xyzw) (array_ref (var_ref gl_FragData@0x75afe7a8) (constant int (0)) ) (var_ref flattening_tmp@0x75afe150) ) FB write target 0 mov(8) m1<1>F g1<8,8,1>F { align1 nomask }; send(8) 0 null g0<8,8,1>UW write (0, 12, 4, 0) mlen 6 rlen 0 { align1 EOT }; vs-mesa: # Vertex Program/Shader 5 0: DP4 TEMP[0].x, INPUT[16], UNIFORM[12]; 1: DP4 TEMP[0].y, INPUT[16], UNIFORM[13]; 2: DP4 TEMP[0].z, INPUT[16], UNIFORM[14]; 3: DP4 TEMP[0].w, INPUT[16], UNIFORM[15]; 4: ADD TEMP[1].xyz, INPUT[16].-x-y-z-z, UNIFORM[19].xyzz; 5: DP3 TEMP[2].x, TEMP[1].xyzz, TEMP[1].xyzz; 6: ABS TEMP[3].x, TEMP[2].xxxx; 7: RSQ TEMP[2].x, TEMP[3].xxxx; 8: MUL TEMP[3].xyz, TEMP[1].xyzz, TEMP[2].xxxx; 9: DP3 TEMP[1].x, TEMP[3].xyzz, INPUT[17].xyzz; 10: MAX TEMP[2].x, TEMP[1].xxxx, UNIFORM[0].xxxx; 11: ABS TEMP[1].x, TEMP[2].xxxx; 12: LG2 TEMP[4].x, TEMP[1].xxxx; 13: MUL TEMP[1].x, TEMP[4].xxxx, UNIFORM[25].xxxx; 14: MUL TEMP[5].x, TEMP[4].xxxx, UNIFORM[24].xxxx; 15: EX2 TEMP[4].w, TEMP[1].xxxx; 16: MUL TEMP[1], INPUT[17].xyzy, INPUT[17].xyzx; 17: MUL TEMP[6].xyz, TEMP[1].xxxx, UNIFORM[3].xyzz; 18: ADD TEMP[7].xyz, TEMP[6].xyzz, UNIFORM[2].xyzz; 19: MAD TEMP[6].xyz, TEMP[1].yyyy, UNIFORM[4].xyzz, TEMP[7].xyzz; 20: MAD TEMP[7].xyz, TEMP[1].zzzz, UNIFORM[5].xyzz, TEMP[6].xyzz; 21: MAD TEMP[6].xyz, TEMP[1].wwww, UNIFORM[6].xyzz, TEMP[7].xyzz; 22: MUL TEMP[1].xy, INPUT[17].xzzz, INPUT[17].zyyy; 23: MAD TEMP[7].xyz, TEMP[1].xxxx, UNIFORM[7].xyzz, TEMP[6].xyzz; 24: MAD TEMP[6].xyz, TEMP[1].yyyy, UNIFORM[8].xyzz, TEMP[7].xyzz; 25: MAD TEMP[1].xyz, INPUT[17].xxxx, UNIFORM[9].xyzz, TEMP[6].xyzz; 26: MAD TEMP[6].xyz, INPUT[17].yyyy, UNIFORM[10].xyzz, TEMP[1].xyzz; 27: MAD TEMP[1].xyz, INPUT[17].zzzz, UNIFORM[11].xyzz, TEMP[6].xyzz; 28: MUL TEMP[6], TEMP[2].xxxx, UNIFORM[21]; 29: ADD TEMP[7].x, TEMP[2].xxxx, TEMP[2].xxxx; 30: ADD TEMP[2], TEMP[6], UNIFORM[20]; 31: MUL TEMP[6].xyz, TEMP[1].xyzx, TEMP[2].xyzx; 32: MOV TEMP[6].w, TEMP[2].wwww; 33: MUL TEMP[1], TEMP[6], UNIFORM[0].wwww; 34: MAD TEMP[2].xyz, TEMP[7].xxxx, INPUT[17].xyzz, TEMP[3].-x-y-z-z; 35: DP3 TEMP[3].x, TEMP[2].xyzz, UNIFORM[16].xyzz; 36: DP3 TEMP[3].y, TEMP[2].xyzz, UNIFORM[17].xyzz; 37: DP3 TEMP[3].z, TEMP[2].xyzz, UNIFORM[18].xyzz; 38: EX2 TEMP[6].x, TEMP[5].xxxx; 39: MUL TEMP[5].xyz, TEMP[6].xxxx, UNIFORM[23].xyzz; 40: ADD TEMP[6].xyz, TEMP[5].xyzz, UNIFORM[22].xyzz; 41: MUL TEMP[5], TEMP[2].zzzz, UNIFORM[11]; 42: MUL TEMP[7], TEMP[2].yyyy, UNIFORM[10]; 43: MUL TEMP[8], TEMP[2].xyzy, TEMP[2].xyzx; 44: MUL TEMP[9], TEMP[8].xxxx, UNIFORM[3]; 45: ADD TEMP[10], TEMP[9], UNIFORM[2]; 46: MAD TEMP[9], TEMP[8].yyyy, UNIFORM[4], TEMP[10]; 47: MAD TEMP[10], TEMP[8].zzzz, UNIFORM[5], TEMP[9]; 48: MAD TEMP[9], TEMP[8].wwww, UNIFORM[6], TEMP[10]; 49: MUL TEMP[8].xy, TEMP[2].xzzz, TEMP[2].zyyy; 50: MUL TEMP[10], TEMP[2].xxxx, UNIFORM[9]; 51: MAD TEMP[2], TEMP[8].xxxx, UNIFORM[7], TEMP[9]; 52: MAD TEMP[9], TEMP[8].yyyy, UNIFORM[8], TEMP[2]; 53: ADD TEMP[2], TEMP[10], TEMP[9]; 54: ADD TEMP[8], TEMP[7], TEMP[2]; 55: ADD TEMP[2], TEMP[5], TEMP[8]; 56: MAX TEMP[5].x, TEMP[2].wwww, UNIFORM[0].yyyy; 57: MIN TEMP[7].x, TEMP[5].xxxx, UNIFORM[0].zzzz; 58: ABS TEMP[5].x, TEMP[7].xxxx; 59: LG2 TEMP[7].x, TEMP[5].xxxx; 60: MUL TEMP[5].x, TEMP[7].xxxx, UNIFORM[24].xxxx; 61: EX2 TEMP[7].x, TEMP[5].xxxx; 62: MUL TEMP[5].xyz, TEMP[2].xyzz, TEMP[7].xxxx; 63: MUL TEMP[2].xyz, TEMP[6].xyzz, TEMP[5].xyzz; 64: MUL TEMP[4].xyz, TEMP[2].xyzx, UNIFORM[0].wwwx; 65: MOV TEMP[3].w, UNIFORM[0].zzzz; 66: MIN TEMP[2], TEMP[3], CONST[26].xxxx; 67: MAX OUTPUT[4], TEMP[2], CONST[26].yyyy; 68: MIN TEMP[2], INPUT[18], CONST[26].xxxx; 69: MAX OUTPUT[5], TEMP[2], CONST[26].yyyy; 70: MIN TEMP[2], TEMP[1], CONST[26].xxxx; 71: MAX OUTPUT[1], TEMP[2], CONST[26].yyyy; 72: MIN TEMP[1], TEMP[4], CONST[26].xxxx; 73: MAX OUTPUT[2], TEMP[1], CONST[26].yyyy; 74: MIN TEMP[1], TEMP[0], CONST[26].xxxx; 75: MAX TEMP[0], TEMP[1], CONST[26].yyyy; 76: MOV OUTPUT[0], TEMP[0]; 77: MOV OUTPUT[3], CONST[26].zzzz; 78: MUL OUTPUT[0].y, TEMP[0].xyxx, UNIFORM[1].xyxx; 79: MAD OUTPUT[0].xy, UNIFORM[1].zwxx, OUTPUT[0].wwxx, OUTPUT[0].xyxx; 80: MAD OUTPUT[0].z, OUTPUT[0].xxzx, CONST[26].xxwx, OUTPUT[0].-x-x-w-x; 81: END brw_vs_alloc_regs NumAddrRegs 0 brw_vs_alloc_regs NumTemps 11 brw_vs_alloc_regs reg = 30 vs-native: dp4(8) g19<1>.xF g15<4,4,1>F g1<0,4,1>F { align16 NoDDClr }; dp4(8) g19<1>.yF g15<4,4,1>F g1.4<0,4,1>F { align16 NoDDClr,NoDDChk }; dp4(8) g19<1>.zF g15<4,4,1>F g2<0,4,1>F { align16 NoDDClr,NoDDChk }; dp4(8) g19<1>.wF g15<4,4,1>F g2.4<0,4,1>F { align16 NoDDChk }; add(8) g20<1>.xyzF -g15<4,4,1>.xyzzF g3<0,4,1>.xyzzF { align16 }; dp3(8) g21<1>.xF g20<4,4,1>.xyzzF g20<4,4,1>.xyzzF { align16 }; mov(8) g22<1>.xF (abs)g21<4,4,1>.xF { align16 }; send(8) 2 g30<1>F (abs)g22<4,4,1>.xF math rsq scalar mlen 1 rlen 1 { align16 }; mov(8) g21<1>.xF g30<4,4,1>F { align16 }; mul(8) g22<1>.xyzF g20<4,4,1>.xyzzF g21<4,4,1>.xF { align16 }; dp3(8) g20<1>.xF g22<4,4,1>.xyzzF g16<4,4,1>.xyzzF { align16 }; cmp.ge(8) null g20<4,4,1>.xF g3.4<0,4,1>.xF { align16 }; (+f0) sel(8) g21<1>.xF g20<4,4,1>.xF g3.4<0,4,1>.xF { align16 }; mov(8) g20<1>.xF (abs)g21<4,4,1>.xF { align16 }; send(8) 2 g30<1>F g20<4,4,1>.xF math log scalar mlen 1 rlen 1 { align16 }; mov(8) g23<1>.xF g30<4,4,1>F { align16 }; mul(8) g20<1>.xF g23<4,4,1>.xF g4<0,4,1>.xF { align16 }; mul(8) g24<1>.xF g23<4,4,1>.xF g4.4<0,4,1>.xF { align16 }; send(8) 2 g30<1>F g20<4,4,1>.xF math exp scalar mlen 1 rlen 1 { align16 }; mov(8) g23<1>.wF g30<4,4,1>F { align16 }; mul(8) g20<1>F g16<4,4,1>.xyzyF g16<4,4,1>.xyzxF { align16 }; mul(8) g25<1>.xyzF g20<4,4,1>.xF g5<0,4,1>.xyzzF { align16 }; add(8) g26<1>.xyzF g25<4,4,1>.xyzzF g5.4<0,4,1>.xyzzF { align16 }; mov(8) acc0<1>F g26<4,4,1>.xyzzF { align16 }; mac(8) g25<1>.xyzF g20<4,4,1>.yF g6<0,4,1>.xyzzF { align16 }; mov(8) acc0<1>F g25<4,4,1>.xyzzF { align16 }; mac(8) g26<1>.xyzF g20<4,4,1>.zF g6.4<0,4,1>.xyzzF { align16 }; mov(8) acc0<1>F g26<4,4,1>.xyzzF { align16 }; mac(8) g25<1>.xyzF g20<4,4,1>.wF g7<0,4,1>.xyzzF { align16 }; mul(8) g20<1>.xyF g16<4,4,1>.xzzzF g16<4,4,1>.zyyyF { align16 }; mov(8) acc0<1>F g25<4,4,1>.xyzzF { align16 }; mac(8) g26<1>.xyzF g20<4,4,1>.xF g7.4<0,4,1>.xyzzF { align16 }; mov(8) acc0<1>F g26<4,4,1>.xyzzF { align16 }; mac(8) g25<1>.xyzF g20<4,4,1>.yF g8<0,4,1>.xyzzF { align16 }; mov(8) acc0<1>F g25<4,4,1>.xyzzF { align16 }; mac(8) g20<1>.xyzF g16<4,4,1>.xF g8.4<0,4,1>.xyzzF { align16 }; mov(8) acc0<1>F g20<4,4,1>.xyzzF { align16 }; mac(8) g25<1>.xyzF g16<4,4,1>.yF g9<0,4,1>.xyzzF { align16 }; mov(8) acc0<1>F g25<4,4,1>.xyzzF { align16 }; mac(8) g20<1>.xyzF g16<4,4,1>.zF g9.4<0,4,1>.xyzzF { align16 }; mul(8) g25<1>F g21<4,4,1>.xF g10<0,4,1>F { align16 }; add(8) g26<1>.xF g21<4,4,1>.xF g21<4,4,1>.xF { align16 }; add(8) g21<1>F g25<4,4,1>F g10.4<0,4,1>F { align16 }; mul(8) g25<1>.xyzF g20<4,4,1>.xyzxF g21<4,4,1>.xyzxF { align16 }; mov(8) g25<1>.wF g21<4,4,1>.wF { align16 }; mul(8) g20<1>F g25<4,4,1>F g3.4<0,4,1>.wF { align16 }; mov(8) acc0<1>F -g22<4,4,1>.xyzzF { align16 }; mac(8) g21<1>.xyzF g26<4,4,1>.xF g16<4,4,1>.xyzzF { align16 }; dp3(8) g22<1>.xF g21<4,4,1>.xyzzF g11<0,4,1>.xyzzF { align16 }; dp3(8) g22<1>.yF g21<4,4,1>.xyzzF g11.4<0,4,1>.xyzzF { align16 }; dp3(8) g22<1>.zF g21<4,4,1>.xyzzF g12<0,4,1>.xyzzF { align16 }; send(8) 2 g30<1>F g24<4,4,1>.xF math exp scalar mlen 1 rlen 1 { align16 }; mov(8) g25<1>.xF g30<4,4,1>F { align16 }; mul(8) g24<1>.xyzF g25<4,4,1>.xF g12.4<0,4,1>.xyzzF { align16 }; add(8) g25<1>.xyzF g24<4,4,1>.xyzzF g13<0,4,1>.xyzzF { align16 }; mul(8) g24<1>F g21<4,4,1>.zF g9.4<0,4,1>F { align16 }; mul(8) g26<1>F g21<4,4,1>.yF g9<0,4,1>F { align16 }; mul(8) g27<1>F g21<4,4,1>.xyzyF g21<4,4,1>.xyzxF { align16 }; mul(8) g28<1>F g27<4,4,1>.xF g5<0,4,1>F { align16 }; add(8) g29<1>F g28<4,4,1>F g5.4<0,4,1>F { align16 }; mov(8) acc0<1>F g29<4,4,1>F { align16 }; mac(8) g28<1>F g27<4,4,1>.yF g6<0,4,1>F { align16 }; mac(8) g29<1>F g27<4,4,1>.zF g6.4<0,4,1>F { align16 }; mac(8) g28<1>F g27<4,4,1>.wF g7<0,4,1>F { align16 }; mul(8) g27<1>.xyF g21<4,4,1>.xzzzF g21<4,4,1>.zyyyF { align16 }; mul(8) g29<1>F g21<4,4,1>.xF g8.4<0,4,1>F { align16 }; mov(8) acc0<1>F g28<4,4,1>F { align16 }; mac(8) g21<1>F g27<4,4,1>.xF g7.4<0,4,1>F { align16 }; mac(8) g28<1>F g27<4,4,1>.yF g8<0,4,1>F { align16 }; add(8) g21<1>F g29<4,4,1>F g28<4,4,1>F { align16 }; add(8) g27<1>F g26<4,4,1>F g21<4,4,1>F { align16 }; add(8) g21<1>F g24<4,4,1>F g27<4,4,1>F { align16 }; cmp.ge(8) null g21<4,4,1>.wF g3.4<0,4,1>.yF { align16 }; (+f0) sel(8) g24<1>.xF g21<4,4,1>.wF g3.4<0,4,1>.yF { align16 }; cmp.l(8) null g24<4,4,1>.xF g3.4<0,4,1>.zF { align16 }; (+f0) sel(8) g26<1>.xF g24<4,4,1>.xF g3.4<0,4,1>.zF { align16 }; mov(8) g24<1>.xF (abs)g26<4,4,1>.xF { align16 }; send(8) 2 g30<1>F g24<4,4,1>.xF math log scalar mlen 1 rlen 1 { align16 }; mov(8) g26<1>.xF g30<4,4,1>F { align16 }; mul(8) g24<1>.xF g26<4,4,1>.xF g4.4<0,4,1>.xF { align16 }; send(8) 2 g30<1>F g24<4,4,1>.xF math exp scalar mlen 1 rlen 1 { align16 }; mov(8) g26<1>.xF g30<4,4,1>F { align16 }; mul(8) g24<1>.xyzF g21<4,4,1>.xyzzF g26<4,4,1>.xF { align16 }; mul(8) g21<1>.xyzF g25<4,4,1>.xyzzF g24<4,4,1>.xyzzF { align16 }; mul(8) g23<1>.xyzF g21<4,4,1>.xyzxF g3.4<0,4,1>.wwwxF { align16 }; mov(8) g22<1>.wF g3.4<0,4,1>.zF { align16 }; cmp.l(8) null g22<4,4,1>F 1e+38F { align16 }; (+f0) sel(8) g21<1>F g22<4,4,1>F 1e+38F { align16 }; cmp.ge(8) null g21<4,4,1>F -1e+38F { align16 }; (+f0) sel(8) m7<1>F g21<4,4,1>F -1e+38F { align16 }; cmp.l(8) null g17<4,4,1>F 1e+38F { align16 }; (+f0) sel(8) g21<1>F g17<4,4,1>F 1e+38F { align16 }; cmp.ge(8) null g21<4,4,1>F -1e+38F { align16 }; (+f0) sel(8) m8<1>F g21<4,4,1>F -1e+38F { align16 }; cmp.l(8) null g20<4,4,1>F 1e+38F { align16 }; (+f0) sel(8) g21<1>F g20<4,4,1>F 1e+38F { align16 }; cmp.ge(8) null g21<4,4,1>F -1e+38F { align16 }; (+f0) sel.sat(8) m4<1>F g21<4,4,1>F -1e+38F { align16 }; cmp.l(8) null g23<4,4,1>F 1e+38F { align16 }; (+f0) sel(8) g20<1>F g23<4,4,1>F 1e+38F { align16 }; cmp.ge(8) null g20<4,4,1>F -1e+38F { align16 }; (+f0) sel.sat(8) m5<1>F g20<4,4,1>F -1e+38F { align16 }; cmp.l(8) null g19<4,4,1>F 1e+38F { align16 }; (+f0) sel(8) g20<1>F g19<4,4,1>F 1e+38F { align16 }; cmp.ge(8) null g20<4,4,1>F -1e+38F { align16 }; (+f0) sel(8) g19<1>F g20<4,4,1>F -1e+38F { align16 }; mov(8) g18<1>F g19<4,4,1>F { align16 }; mov(8) m6<1>F 0F { align16 }; mul(8) g18<1>.yF g19<4,4,1>.xyxxF g14<0,4,1>.xyxxF { align16 }; mov(8) acc0<1>F g18<4,4,1>.xyxxF { align16 }; mac(8) g18<1>.xyF g14<0,4,1>.zwxxF g18<4,4,1>.wwxxF { align16 }; mov(8) acc0<1>F -g18<4,4,1>.xxwxF { align16 }; mac(8) g18<1>.zF g18<4,4,1>.xxzxF g13.4<0,4,1>.xxwxF { align16 }; send(8) 2 g30<1>F g18<4,4,1>.wF math inv scalar mlen 1 rlen 1 { align16 }; mul(8) g30<1>.xyzF g18<4,4,1>F g30<4,4,1>F { align16 }; mov(8) m1<1>UD 0x00000000UD { align16 }; mov(8) m2<1>F g30<8,8,1>F { align1 }; mov(8) m3<1>F g18<8,8,1>F { align1 }; send(8) 0 null g0<8,8,1>F urb 0 interleave used complete mlen 9 rlen 0 { align1 EOT }; GLSL IR for native fragment shader 5: ( (declare () vec4 R1@0x7be6ca30) (declare () vec4 R0@0x7be6bcc0) (declare () vec4 T1@0x7be6af50) (declare () vec4 T0@0x7be6a0f8) (declare (uniform ) sampler2D Psampler1@0x7be692a0) (declare (uniform ) sampler2D Psampler0@0x7cfc2ef0) (declare (uniform ) (array vec4 2) PC@0x7cfedf90) (declare (in ) vec4 gl_Color@0x7cfede68) (declare (in ) vec4 gl_SecondaryColor@0x7cfedbb8) (declare (in ) (array vec4 2) gl_TexCoord@0x7cfeda90) (declare (out ) (array vec4 1) gl_FragData@0x7cfc5890) (function main (signature void (parameters ) ( (assign (constant bool (1)) (xyzw) (var_ref T0@0x7be6a0f8) (array_ref (var_ref gl_TexCoord@0x7cfeda90) (constant int (0)) ) ) (assign (constant bool (1)) (xyzw) (var_ref T1@0x7be6af50) (array_ref (var_ref gl_TexCoord@0x7cfeda90) (constant int (1)) ) ) (declare () vec4 _ret_val@0x7cfc76b0) (assign (constant bool (1)) (xyzw) (var_ref _ret_val@0x7cfc76b0) (tex (var_ref Psampler0@0x7cfc2ef0) (swiz xy (var_ref T0@0x7be6a0f8) ) (0 0 0) 1 () )) (assign (constant bool (1)) (xyzw) (var_ref T0@0x7be6a0f8) (var_ref _ret_val@0x7cfc76b0) ) (declare () vec4 _ret_val@0x7be5aee0) (assign (constant bool (1)) (xyzw) (var_ref _ret_val@0x7be5aee0) (tex (var_ref Psampler1@0x7be692a0) (swiz xy (var_ref T1@0x7be6af50) ) (0 0 0) 1 () )) (assign (constant bool (1)) (xyzw) (var_ref T1@0x7be6af50) (var_ref _ret_val@0x7be5aee0) ) (declare (temporary ) vec3 channel_expressions@0x7be6ce38) (assign (constant bool (1)) (xyz) (var_ref channel_expressions@0x7be6ce38) (swiz www (var_ref gl_SecondaryColor@0x7cfedbb8) )) (declare (temporary ) vec3 channel_expressions@0x7be6c0c8) (assign (constant bool (1)) (xyz) (var_ref channel_expressions@0x7be6c0c8) (swiz xyz (array_ref (var_ref PC@0x7cfedf90) (constant int (1)) ) )) (declare (temporary ) vec3 channel_expressions@0x7be70c80) (assign (constant bool (1)) (xyz) (var_ref channel_expressions@0x7be70c80) (swiz xyz (array_ref (var_ref PC@0x7cfedf90) (constant int (0)) ) )) (assign (constant bool (1)) (x) (var_ref R0@0x7be6bcc0) (expression float + (expression float * (swiz x (var_ref channel_expressions@0x7be6ce38) )(swiz x (var_ref channel_expressions@0x7be6c0c8) )) (swiz x (var_ref channel_expressions@0x7be70c80) )) ) (assign (constant bool (1)) (y) (var_ref R0@0x7be6bcc0) (expression float + (expression float * (swiz y (var_ref channel_expressions@0x7be6ce38) )(swiz y (var_ref channel_expressions@0x7be6c0c8) )) (swiz y (var_ref channel_expressions@0x7be70c80) )) ) (assign (constant bool (1)) (z) (var_ref R0@0x7be6bcc0) (expression float + (expression float * (swiz z (var_ref channel_expressions@0x7be6ce38) )(swiz z (var_ref channel_expressions@0x7be6c0c8) )) (swiz z (var_ref channel_expressions@0x7be70c80) )) ) (declare (temporary ) vec3 channel_expressions@0x7cfee240) (assign (constant bool (1)) (xyz) (var_ref channel_expressions@0x7cfee240) (swiz xyz (var_ref _ret_val@0x7cfc76b0) )) (declare (temporary ) vec3 channel_expressions@0x7be70f58) (assign (constant bool (1)) (xyz) (var_ref channel_expressions@0x7be70f58) (swiz xyz (var_ref R0@0x7be6bcc0) )) (assign (constant bool (1)) (x) (var_ref R0@0x7be6bcc0) (expression float * (constant float (4.000000)) (expression float * (swiz x (var_ref channel_expressions@0x7cfee240) )(swiz x (var_ref channel_expressions@0x7be70f58) )) ) ) (assign (constant bool (1)) (y) (var_ref R0@0x7be6bcc0) (expression float * (constant float (4.000000)) (expression float * (swiz y (var_ref channel_expressions@0x7cfee240) )(swiz y (var_ref channel_expressions@0x7be70f58) )) ) ) (assign (constant bool (1)) (z) (var_ref R0@0x7be6bcc0) (expression float * (constant float (4.000000)) (expression float * (swiz z (var_ref channel_expressions@0x7cfee240) )(swiz z (var_ref channel_expressions@0x7be70f58) )) ) ) (declare (temporary ) vec3 channel_expressions@0x7be689e0) (assign (constant bool (1)) (xyz) (var_ref channel_expressions@0x7be689e0) (swiz xyz (var_ref R0@0x7be6bcc0) )) (declare (temporary ) vec3 channel_expressions@0x7be68600) (assign (constant bool (1)) (xyz) (var_ref channel_expressions@0x7be68600) (swiz xyz (var_ref gl_SecondaryColor@0x7cfedbb8) )) (assign (constant bool (1)) (x) (var_ref R0@0x7be6bcc0) (expression float + (swiz x (var_ref channel_expressions@0x7be689e0) )(swiz x (var_ref channel_expressions@0x7be68600) )) ) (assign (constant bool (1)) (y) (var_ref R0@0x7be6bcc0) (expression float + (swiz y (var_ref channel_expressions@0x7be689e0) )(swiz y (var_ref channel_expressions@0x7be68600) )) ) (assign (constant bool (1)) (z) (var_ref R0@0x7be6bcc0) (expression float + (swiz z (var_ref channel_expressions@0x7be689e0) )(swiz z (var_ref channel_expressions@0x7be68600) )) ) (assign (constant bool (1)) (x) (var_ref R1@0x7be6ca30) (expression float * (constant float (2.000000)) (expression float * (swiz x (var_ref _ret_val@0x7be5aee0) )(swiz x (var_ref gl_Color@0x7cfede68) )) ) ) (assign (constant bool (1)) (y) (var_ref R1@0x7be6ca30) (expression float * (constant float (2.000000)) (expression float * (swiz y (var_ref _ret_val@0x7be5aee0) )(swiz y (var_ref gl_Color@0x7cfede68) )) ) ) (assign (constant bool (1)) (z) (var_ref R1@0x7be6ca30) (expression float * (constant float (2.000000)) (expression float * (swiz z (var_ref _ret_val@0x7be5aee0) )(swiz z (var_ref gl_Color@0x7cfede68) )) ) ) (assign (constant bool (1)) (w) (var_ref R1@0x7be6ca30) (expression float * (constant float (2.000000)) (expression float * (swiz w (var_ref _ret_val@0x7be5aee0) )(swiz w (var_ref gl_Color@0x7cfede68) )) ) ) (declare (temporary ) vec3 channel_expressions@0x7be41498) (assign (constant bool (1)) (xyz) (var_ref channel_expressions@0x7be41498) (swiz xyz (var_ref R0@0x7be6bcc0) )) (declare (temporary ) vec3 channel_expressions@0x7be40d30) (assign (constant bool (1)) (xyz) (var_ref channel_expressions@0x7be40d30) (swiz www (var_ref R1@0x7be6ca30) )) (declare (temporary ) vec3 channel_expressions@0x7cf3acf8) (assign (constant bool (1)) (xyz) (var_ref channel_expressions@0x7cf3acf8) (swiz xyz (var_ref R1@0x7be6ca30) )) (assign (constant bool (1)) (x) (var_ref R0@0x7be6bcc0) (expression float + (expression float * (swiz x (var_ref channel_expressions@0x7be41498) )(swiz x (var_ref channel_expressions@0x7be40d30) )) (swiz x (var_ref channel_expressions@0x7cf3acf8) )) ) (assign (constant bool (1)) (y) (var_ref R0@0x7be6bcc0) (expression float + (expression float * (swiz y (var_ref channel_expressions@0x7be41498) )(swiz y (var_ref channel_expressions@0x7be40d30) )) (swiz y (var_ref channel_expressions@0x7cf3acf8) )) ) (assign (constant bool (1)) (z) (var_ref R0@0x7be6bcc0) (expression float + (expression float * (swiz z (var_ref channel_expressions@0x7be41498) )(swiz z (var_ref channel_expressions@0x7be40d30) )) (swiz z (var_ref channel_expressions@0x7cf3acf8) )) ) (assign (constant bool (1)) (w) (var_ref R0@0x7be6bcc0) (swiz w (var_ref R1@0x7be6ca30) )) (assign (constant bool (1)) (xyzw) (array_ref (var_ref gl_FragData@0x7cfc5890) (constant int (0)) ) (var_ref R0@0x7be6bcc0) ) )) ) ) Native code for fragment shader 5: compute pixel centers add(8) g17<1>UW g1.4<2,4,0>UW 0x10101010V { align1 }; add(8) g18<1>UW g1.5<2,4,0>UW 0x11001100V { align1 }; compute pixel deltas from v0 add(8) g20<1>F g17<8,8,1>UW -g1<0,1,0>F { align1 }; add(8) g21<1>F g18<8,8,1>UW -g1.1<0,1,0>F { align1 }; compute pos.w and 1/pos.w pln(8) g17<1>F g6.4<0,1,0>F g20<8,8,1>F { align1 }; send(8) 2 g17<1>F g17<8,8,1>F math inv mlen 1 rlen 1 { align1 }; (declare (in ) vec4 gl_Color@0x7cfede68) pln(8) g18<1>F g7<0,1,0>F g20<8,8,1>F { align1 }; pln(8) g30<1>F g7.4<0,1,0>F g20<8,8,1>F { align1 }; pln(8) g31<1>F g8<0,1,0>F g20<8,8,1>F { align1 }; pln(8) g32<1>F g8.4<0,1,0>F g20<8,8,1>F { align1 }; mul(8) g18<1>F g18<8,8,1>F g17<8,8,1>F { align1 }; mul(8) g30<1>F g30<8,8,1>F g17<8,8,1>F { align1 }; mul(8) g31<1>F g31<8,8,1>F g17<8,8,1>F { align1 }; mul(8) g32<1>F g32<8,8,1>F g17<8,8,1>F { align1 }; (declare (in ) vec4 gl_SecondaryColor@0x7cfedbb8) pln(8) g19<1>F g9<0,1,0>F g20<8,8,1>F { align1 }; pln(8) g33<1>F g9.4<0,1,0>F g20<8,8,1>F { align1 }; pln(8) g34<1>F g10<0,1,0>F g20<8,8,1>F { align1 }; pln(8) g29<1>F g10.4<0,1,0>F g20<8,8,1>F { align1 }; mul(8) g19<1>F g19<8,8,1>F g17<8,8,1>F { align1 }; mul(8) g33<1>F g33<8,8,1>F g17<8,8,1>F { align1 }; mul(8) g34<1>F g34<8,8,1>F g17<8,8,1>F { align1 }; mul(8) g29<1>F g29<8,8,1>F g17<8,8,1>F { align1 }; (declare (in ) (array vec4 2) gl_TexCoord@0x7cfeda90) pln(8) g22<1>F g13<0,1,0>F g20<8,8,1>F { align1 }; pln(8) g23<1>F g13.4<0,1,0>F g20<8,8,1>F { align1 }; mul(8) m2<1>F g22<8,8,1>F g17<8,8,1>F { align1 }; mul(8) m3<1>F g23<8,8,1>F g17<8,8,1>F { align1 }; pln(8) g24<1>F g15<0,1,0>F g20<8,8,1>F { align1 }; pln(8) g25<1>F g15.4<0,1,0>F g20<8,8,1>F { align1 }; mul(8) g24<1>F g24<8,8,1>F g17<8,8,1>F { align1 }; mul(8) g25<1>F g25<8,8,1>F g17<8,8,1>F { align1 }; (assign (constant bool (1)) (xyzw) (var_ref _ret_val@0x7cfc76b0) (tex (var_ref Psampler0@0x7cfc2ef0) (swiz xy (var_ref T0@0x7be6a0f8) ) (0 0 0) 1 () )) send(8) 1 g20<1>UW g0<8,8,1>UW sampler (9, 0, F) mlen 4 rlen 4 { align1 }; (assign (constant bool (1)) (xyzw) (var_ref _ret_val@0x7be5aee0) (tex (var_ref Psampler1@0x7be692a0) (swiz xy (var_ref T1@0x7be6af50) ) (0 0 0) 1 () )) mov(8) m2<1>F g24<8,8,1>F { align1 }; mov(8) m3<1>F g25<8,8,1>F { align1 }; send(8) 1 g24<1>UW g0<8,8,1>UW sampler (10, 1, F) mlen 4 rlen 4 { align1 }; (assign (constant bool (1)) (xyz) (var_ref channel_expressions@0x7be6c0c8) (swiz xyz (array_ref (var_ref PC@0x7cfedf90) (constant int (1)) ) )) mov(8) g17<1>F g4.4<0,1,0>F { align1 }; mov(8) g35<1>F g4.5<0,1,0>F { align1 }; mov(8) g36<1>F g4.6<0,1,0>F { align1 }; (assign (constant bool (1)) (xyz) (var_ref channel_expressions@0x7be70c80) (swiz xyz (array_ref (var_ref PC@0x7cfedf90) (constant int (0)) ) )) mov(8) g28<1>F g4<0,1,0>F { align1 }; mov(8) g37<1>F g4.1<0,1,0>F { align1 }; mov(8) g38<1>F g4.2<0,1,0>F { align1 }; (assign (constant bool (1)) (x) (var_ref R0@0x7be6bcc0) (expression float + (expression float * (swiz x (var_ref channel_expressions@0x7be6ce38) )(swiz x (var_ref channel_expressions@0x7be6c0c8) )) (swiz x (var_ref channel_expressions@0x7be70c80) )) ) mul(8) g17<1>F g29<8,8,1>F g17<8,8,1>F { align1 }; add(8) g17<1>F g17<8,8,1>F g28<8,8,1>F { align1 }; (assign (constant bool (1)) (y) (var_ref R0@0x7be6bcc0) (expression float + (expression float * (swiz y (var_ref channel_expressions@0x7be6ce38) )(swiz y (var_ref channel_expressions@0x7be6c0c8) )) (swiz y (var_ref channel_expressions@0x7be70c80) )) ) mul(8) g28<1>F g29<8,8,1>F g35<8,8,1>F { align1 }; add(8) g28<1>F g28<8,8,1>F g37<8,8,1>F { align1 }; (assign (constant bool (1)) (z) (var_ref R0@0x7be6bcc0) (expression float + (expression float * (swiz z (var_ref channel_expressions@0x7be6ce38) )(swiz z (var_ref channel_expressions@0x7be6c0c8) )) (swiz z (var_ref channel_expressions@0x7be70c80) )) ) mul(8) g29<1>F g29<8,8,1>F g36<8,8,1>F { align1 }; add(8) g29<1>F g29<8,8,1>F g38<8,8,1>F { align1 }; (assign (constant bool (1)) (x) (var_ref R0@0x7be6bcc0) (expression float * (constant float (4.000000)) (expression float * (swiz x (var_ref channel_expressions@0x7cfee240) )(swiz x (var_ref channel_expressions@0x7be70f58) )) ) ) mul(8) g17<1>F g20<8,8,1>F g17<8,8,1>F { align1 }; mul(8) g17<1>F g17<8,8,1>F 4F { align1 }; (assign (constant bool (1)) (y) (var_ref R0@0x7be6bcc0) (expression float * (constant float (4.000000)) (expression float * (swiz y (var_ref channel_expressions@0x7cfee240) )(swiz y (var_ref channel_expressions@0x7be70f58) )) ) ) mul(8) g28<1>F g21<8,8,1>F g28<8,8,1>F { align1 }; mul(8) g28<1>F g28<8,8,1>F 4F { align1 }; (assign (constant bool (1)) (z) (var_ref R0@0x7be6bcc0) (expression float * (constant float (4.000000)) (expression float * (swiz z (var_ref channel_expressions@0x7cfee240) )(swiz z (var_ref channel_expressions@0x7be70f58) )) ) ) mul(8) g20<1>F g22<8,8,1>F g29<8,8,1>F { align1 }; mul(8) g20<1>F g20<8,8,1>F 4F { align1 }; (assign (constant bool (1)) (x) (var_ref R0@0x7be6bcc0) (expression float + (swiz x (var_ref channel_expressions@0x7be689e0) )(swiz x (var_ref channel_expressions@0x7be68600) )) ) add(8) g17<1>F g17<8,8,1>F g19<8,8,1>F { align1 }; (assign (constant bool (1)) (y) (var_ref R0@0x7be6bcc0) (expression float + (swiz y (var_ref channel_expressions@0x7be689e0) )(swiz y (var_ref channel_expressions@0x7be68600) )) ) add(8) g19<1>F g28<8,8,1>F g33<8,8,1>F { align1 }; (assign (constant bool (1)) (z) (var_ref R0@0x7be6bcc0) (expression float + (swiz z (var_ref channel_expressions@0x7be689e0) )(swiz z (var_ref channel_expressions@0x7be68600) )) ) add(8) g20<1>F g20<8,8,1>F g34<8,8,1>F { align1 }; (assign (constant bool (1)) (x) (var_ref R1@0x7be6ca30) (expression float * (constant float (2.000000)) (expression float * (swiz x (var_ref _ret_val@0x7be5aee0) )(swiz x (var_ref gl_Color@0x7cfede68) )) ) ) mul(8) g18<1>F g24<8,8,1>F g18<8,8,1>F { align1 }; mul(8) g18<1>F g18<8,8,1>F 2F { align1 }; (assign (constant bool (1)) (y) (var_ref R1@0x7be6ca30) (expression float * (constant float (2.000000)) (expression float * (swiz y (var_ref _ret_val@0x7be5aee0) )(swiz y (var_ref gl_Color@0x7cfede68) )) ) ) mul(8) g21<1>F g25<8,8,1>F g30<8,8,1>F { align1 }; mul(8) g21<1>F g21<8,8,1>F 2F { align1 }; (assign (constant bool (1)) (z) (var_ref R1@0x7be6ca30) (expression float * (constant float (2.000000)) (expression float * (swiz z (var_ref _ret_val@0x7be5aee0) )(swiz z (var_ref gl_Color@0x7cfede68) )) ) ) mul(8) g22<1>F g26<8,8,1>F g31<8,8,1>F { align1 }; mul(8) g22<1>F g22<8,8,1>F 2F { align1 }; (assign (constant bool (1)) (w) (var_ref R1@0x7be6ca30) (expression float * (constant float (2.000000)) (expression float * (swiz w (var_ref _ret_val@0x7be5aee0) )(swiz w (var_ref gl_Color@0x7cfede68) )) ) ) mul(8) g23<1>F g27<8,8,1>F g32<8,8,1>F { align1 }; mul(8) g23<1>F g23<8,8,1>F 2F { align1 }; (assign (constant bool (1)) (x) (var_ref R0@0x7be6bcc0) (expression float + (expression float * (swiz x (var_ref channel_expressions@0x7be41498) )(swiz x (var_ref channel_expressions@0x7be40d30) )) (swiz x (var_ref channel_expressions@0x7cf3acf8) )) ) mul(8) g17<1>F g17<8,8,1>F g23<8,8,1>F { align1 }; add(8) m2<1>F g17<8,8,1>F g18<8,8,1>F { align1 }; (assign (constant bool (1)) (y) (var_ref R0@0x7be6bcc0) (expression float + (expression float * (swiz y (var_ref channel_expressions@0x7be41498) )(swiz y (var_ref channel_expressions@0x7be40d30) )) (swiz y (var_ref channel_expressions@0x7cf3acf8) )) ) mul(8) g17<1>F g19<8,8,1>F g23<8,8,1>F { align1 }; add(8) m3<1>F g17<8,8,1>F g21<8,8,1>F { align1 }; (assign (constant bool (1)) (z) (var_ref R0@0x7be6bcc0) (expression float + (expression float * (swiz z (var_ref channel_expressions@0x7be41498) )(swiz z (var_ref channel_expressions@0x7be40d30) )) (swiz z (var_ref channel_expressions@0x7cf3acf8) )) ) mul(8) g17<1>F g20<8,8,1>F g23<8,8,1>F { align1 }; add(8) m4<1>F g17<8,8,1>F g22<8,8,1>F { align1 }; (assign (constant bool (1)) (xyzw) (array_ref (var_ref gl_FragData@0x7cfc5890) (constant int (0)) ) (var_ref R0@0x7be6bcc0) ) FB write header mov(8) m6<1>F g2<8,8,1>F { align1 }; FB write target 0 mov(8) m5<1>F g23<8,8,1>F { align1 }; mov(8) m1<1>F g1<8,8,1>F { align1 nomask }; send(8) 0 null g0<8,8,1>UW write (0, 12, 4, 0) mlen 7 rlen 0 { align1 EOT }; GLSL IR for native fragment shader 5: ( (declare () vec4 R1@0x7be6ca30) (declare () vec4 R0@0x7be6bcc0) (declare () vec4 T1@0x7be6af50) (declare () vec4 T0@0x7be6a0f8) (declare (uniform ) sampler2D Psampler1@0x7be692a0) (declare (uniform ) sampler2D Psampler0@0x7cfc2ef0) (declare (uniform ) (array vec4 2) PC@0x7cfedf90) (declare (in ) vec4 gl_Color@0x7cfede68) (declare (in ) vec4 gl_SecondaryColor@0x7cfedbb8) (declare (in ) (array vec4 2) gl_TexCoord@0x7cfeda90) (declare (out ) (array vec4 1) gl_FragData@0x7cfc5890) (function main (signature void (parameters ) ( (assign (constant bool (1)) (xyzw) (var_ref T0@0x7be6a0f8) (array_ref (var_ref gl_TexCoord@0x7cfeda90) (constant int (0)) ) ) (assign (constant bool (1)) (xyzw) (var_ref T1@0x7be6af50) (array_ref (var_ref gl_TexCoord@0x7cfeda90) (constant int (1)) ) ) (declare () vec4 _ret_val@0x7cfc76b0) (assign (constant bool (1)) (xyzw) (var_ref _ret_val@0x7cfc76b0) (tex (var_ref Psampler0@0x7cfc2ef0) (swiz xy (var_ref T0@0x7be6a0f8) ) (0 0 0) 1 () )) (assign (constant bool (1)) (xyzw) (var_ref T0@0x7be6a0f8) (var_ref _ret_val@0x7cfc76b0) ) (declare () vec4 _ret_val@0x7be5aee0) (assign (constant bool (1)) (xyzw) (var_ref _ret_val@0x7be5aee0) (tex (var_ref Psampler1@0x7be692a0) (swiz xy (var_ref T1@0x7be6af50) ) (0 0 0) 1 () )) (assign (constant bool (1)) (xyzw) (var_ref T1@0x7be6af50) (var_ref _ret_val@0x7be5aee0) ) (declare (temporary ) vec3 channel_expressions@0x7be6ce38) (assign (constant bool (1)) (xyz) (var_ref channel_expressions@0x7be6ce38) (swiz www (var_ref gl_SecondaryColor@0x7cfedbb8) )) (declare (temporary ) vec3 channel_expressions@0x7be6c0c8) (assign (constant bool (1)) (xyz) (var_ref channel_expressions@0x7be6c0c8) (swiz xyz (array_ref (var_ref PC@0x7cfedf90) (constant int (1)) ) )) (declare (temporary ) vec3 channel_expressions@0x7be70c80) (assign (constant bool (1)) (xyz) (var_ref channel_expressions@0x7be70c80) (swiz xyz (array_ref (var_ref PC@0x7cfedf90) (constant int (0)) ) )) (assign (constant bool (1)) (x) (var_ref R0@0x7be6bcc0) (expression float + (expression float * (swiz x (var_ref channel_expressions@0x7be6ce38) )(swiz x (var_ref channel_expressions@0x7be6c0c8) )) (swiz x (var_ref channel_expressions@0x7be70c80) )) ) (assign (constant bool (1)) (y) (var_ref R0@0x7be6bcc0) (expression float + (expression float * (swiz y (var_ref channel_expressions@0x7be6ce38) )(swiz y (var_ref channel_expressions@0x7be6c0c8) )) (swiz y (var_ref channel_expressions@0x7be70c80) )) ) (assign (constant bool (1)) (z) (var_ref R0@0x7be6bcc0) (expression float + (expression float * (swiz z (var_ref channel_expressions@0x7be6ce38) )(swiz z (var_ref channel_expressions@0x7be6c0c8) )) (swiz z (var_ref channel_expressions@0x7be70c80) )) ) (declare (temporary ) vec3 channel_expressions@0x7cfee240) (assign (constant bool (1)) (xyz) (var_ref channel_expressions@0x7cfee240) (swiz xyz (var_ref _ret_val@0x7cfc76b0) )) (declare (temporary ) vec3 channel_expressions@0x7be70f58) (assign (constant bool (1)) (xyz) (var_ref channel_expressions@0x7be70f58) (swiz xyz (var_ref R0@0x7be6bcc0) )) (assign (constant bool (1)) (x) (var_ref R0@0x7be6bcc0) (expression float * (constant float (4.000000)) (expression float * (swiz x (var_ref channel_expressions@0x7cfee240) )(swiz x (var_ref channel_expressions@0x7be70f58) )) ) ) (assign (constant bool (1)) (y) (var_ref R0@0x7be6bcc0) (expression float * (constant float (4.000000)) (expression float * (swiz y (var_ref channel_expressions@0x7cfee240) )(swiz y (var_ref channel_expressions@0x7be70f58) )) ) ) (assign (constant bool (1)) (z) (var_ref R0@0x7be6bcc0) (expression float * (constant float (4.000000)) (expression float * (swiz z (var_ref channel_expressions@0x7cfee240) )(swiz z (var_ref channel_expressions@0x7be70f58) )) ) ) (declare (temporary ) vec3 channel_expressions@0x7be689e0) (assign (constant bool (1)) (xyz) (var_ref channel_expressions@0x7be689e0) (swiz xyz (var_ref R0@0x7be6bcc0) )) (declare (temporary ) vec3 channel_expressions@0x7be68600) (assign (constant bool (1)) (xyz) (var_ref channel_expressions@0x7be68600) (swiz xyz (var_ref gl_SecondaryColor@0x7cfedbb8) )) (assign (constant bool (1)) (x) (var_ref R0@0x7be6bcc0) (expression float + (swiz x (var_ref channel_expressions@0x7be689e0) )(swiz x (var_ref channel_expressions@0x7be68600) )) ) (assign (constant bool (1)) (y) (var_ref R0@0x7be6bcc0) (expression float + (swiz y (var_ref channel_expressions@0x7be689e0) )(swiz y (var_ref channel_expressions@0x7be68600) )) ) (assign (constant bool (1)) (z) (var_ref R0@0x7be6bcc0) (expression float + (swiz z (var_ref channel_expressions@0x7be689e0) )(swiz z (var_ref channel_expressions@0x7be68600) )) ) (assign (constant bool (1)) (x) (var_ref R1@0x7be6ca30) (expression float * (constant float (2.000000)) (expression float * (swiz x (var_ref _ret_val@0x7be5aee0) )(swiz x (var_ref gl_Color@0x7cfede68) )) ) ) (assign (constant bool (1)) (y) (var_ref R1@0x7be6ca30) (expression float * (constant float (2.000000)) (expression float * (swiz y (var_ref _ret_val@0x7be5aee0) )(swiz y (var_ref gl_Color@0x7cfede68) )) ) ) (assign (constant bool (1)) (z) (var_ref R1@0x7be6ca30) (expression float * (constant float (2.000000)) (expression float * (swiz z (var_ref _ret_val@0x7be5aee0) )(swiz z (var_ref gl_Color@0x7cfede68) )) ) ) (assign (constant bool (1)) (w) (var_ref R1@0x7be6ca30) (expression float * (constant float (2.000000)) (expression float * (swiz w (var_ref _ret_val@0x7be5aee0) )(swiz w (var_ref gl_Color@0x7cfede68) )) ) ) (declare (temporary ) vec3 channel_expressions@0x7be41498) (assign (constant bool (1)) (xyz) (var_ref channel_expressions@0x7be41498) (swiz xyz (var_ref R0@0x7be6bcc0) )) (declare (temporary ) vec3 channel_expressions@0x7be40d30) (assign (constant bool (1)) (xyz) (var_ref channel_expressions@0x7be40d30) (swiz www (var_ref R1@0x7be6ca30) )) (declare (temporary ) vec3 channel_expressions@0x7cf3acf8) (assign (constant bool (1)) (xyz) (var_ref channel_expressions@0x7cf3acf8) (swiz xyz (var_ref R1@0x7be6ca30) )) (assign (constant bool (1)) (x) (var_ref R0@0x7be6bcc0) (expression float + (expression float * (swiz x (var_ref channel_expressions@0x7be41498) )(swiz x (var_ref channel_expressions@0x7be40d30) )) (swiz x (var_ref channel_expressions@0x7cf3acf8) )) ) (assign (constant bool (1)) (y) (var_ref R0@0x7be6bcc0) (expression float + (expression float * (swiz y (var_ref channel_expressions@0x7be41498) )(swiz y (var_ref channel_expressions@0x7be40d30) )) (swiz y (var_ref channel_expressions@0x7cf3acf8) )) ) (assign (constant bool (1)) (z) (var_ref R0@0x7be6bcc0) (expression float + (expression float * (swiz z (var_ref channel_expressions@0x7be41498) )(swiz z (var_ref channel_expressions@0x7be40d30) )) (swiz z (var_ref channel_expressions@0x7cf3acf8) )) ) (assign (constant bool (1)) (w) (var_ref R0@0x7be6bcc0) (swiz w (var_ref R1@0x7be6ca30) )) (assign (constant bool (1)) (xyzw) (array_ref (var_ref gl_FragData@0x7cfc5890) (constant int (0)) ) (var_ref R0@0x7be6bcc0) ) )) ) ) Native code for fragment shader 5: compute pixel centers add(8) g15<1>UW g1.4<2,4,0>UW 0x10101010V { align1 }; add(8) g16<1>UW g1.5<2,4,0>UW 0x11001100V { align1 }; compute pixel deltas from v0 add(8) g18<1>F g15<8,8,1>UW -g1<0,1,0>F { align1 }; add(8) g19<1>F g16<8,8,1>UW -g1.1<0,1,0>F { align1 }; compute pos.w and 1/pos.w pln(8) g15<1>F g4.4<0,1,0>F g18<8,8,1>F { align1 }; send(8) 2 g15<1>F g15<8,8,1>F math inv mlen 1 rlen 1 { align1 }; (declare (in ) vec4 gl_Color@0x7cfede68) pln(8) g16<1>F g5<0,1,0>F g18<8,8,1>F { align1 }; pln(8) g28<1>F g5.4<0,1,0>F g18<8,8,1>F { align1 }; pln(8) g29<1>F g6<0,1,0>F g18<8,8,1>F { align1 }; pln(8) g30<1>F g6.4<0,1,0>F g18<8,8,1>F { align1 }; mul(8) g16<1>F g16<8,8,1>F g15<8,8,1>F { align1 }; mul(8) g28<1>F g28<8,8,1>F g15<8,8,1>F { align1 }; mul(8) g29<1>F g29<8,8,1>F g15<8,8,1>F { align1 }; mul(8) g30<1>F g30<8,8,1>F g15<8,8,1>F { align1 }; (declare (in ) vec4 gl_SecondaryColor@0x7cfedbb8) pln(8) g17<1>F g7<0,1,0>F g18<8,8,1>F { align1 }; pln(8) g31<1>F g7.4<0,1,0>F g18<8,8,1>F { align1 }; pln(8) g32<1>F g8<0,1,0>F g18<8,8,1>F { align1 }; pln(8) g27<1>F g8.4<0,1,0>F g18<8,8,1>F { align1 }; mul(8) g17<1>F g17<8,8,1>F g15<8,8,1>F { align1 }; mul(8) g31<1>F g31<8,8,1>F g15<8,8,1>F { align1 }; mul(8) g32<1>F g32<8,8,1>F g15<8,8,1>F { align1 }; mul(8) g27<1>F g27<8,8,1>F g15<8,8,1>F { align1 }; (declare (in ) (array vec4 2) gl_TexCoord@0x7cfeda90) pln(8) g20<1>F g11<0,1,0>F g18<8,8,1>F { align1 }; pln(8) g21<1>F g11.4<0,1,0>F g18<8,8,1>F { align1 }; mul(8) m2<1>F g20<8,8,1>F g15<8,8,1>F { align1 }; mul(8) m3<1>F g21<8,8,1>F g15<8,8,1>F { align1 }; pln(8) g22<1>F g13<0,1,0>F g18<8,8,1>F { align1 }; pln(8) g23<1>F g13.4<0,1,0>F g18<8,8,1>F { align1 }; mul(8) g22<1>F g22<8,8,1>F g15<8,8,1>F { align1 }; mul(8) g23<1>F g23<8,8,1>F g15<8,8,1>F { align1 }; (assign (constant bool (1)) (xyzw) (var_ref _ret_val@0x7cfc76b0) (tex (var_ref Psampler0@0x7cfc2ef0) (swiz xy (var_ref T0@0x7be6a0f8) ) (0 0 0) 1 () )) send(8) 1 g18<1>UW g0<8,8,1>UW sampler (9, 0, F) mlen 4 rlen 4 { align1 }; (assign (constant bool (1)) (xyzw) (var_ref _ret_val@0x7be5aee0) (tex (var_ref Psampler1@0x7be692a0) (swiz xy (var_ref T1@0x7be6af50) ) (0 0 0) 1 () )) mov(8) m2<1>F g22<8,8,1>F { align1 }; mov(8) m3<1>F g23<8,8,1>F { align1 }; send(8) 1 g22<1>UW g0<8,8,1>UW sampler (10, 1, F) mlen 4 rlen 4 { align1 }; (assign (constant bool (1)) (xyz) (var_ref channel_expressions@0x7be6c0c8) (swiz xyz (array_ref (var_ref PC@0x7cfedf90) (constant int (1)) ) )) mov(8) g15<1>F g2.4<0,1,0>F { align1 }; mov(8) g33<1>F g2.5<0,1,0>F { align1 }; mov(8) g34<1>F g2.6<0,1,0>F { align1 }; (assign (constant bool (1)) (xyz) (var_ref channel_expressions@0x7be70c80) (swiz xyz (array_ref (var_ref PC@0x7cfedf90) (constant int (0)) ) )) mov(8) g26<1>F g2<0,1,0>F { align1 }; mov(8) g35<1>F g2.1<0,1,0>F { align1 }; mov(8) g36<1>F g2.2<0,1,0>F { align1 }; (assign (constant bool (1)) (x) (var_ref R0@0x7be6bcc0) (expression float + (expression float * (swiz x (var_ref channel_expressions@0x7be6ce38) )(swiz x (var_ref channel_expressions@0x7be6c0c8) )) (swiz x (var_ref channel_expressions@0x7be70c80) )) ) mul(8) g15<1>F g27<8,8,1>F g15<8,8,1>F { align1 }; add(8) g15<1>F g15<8,8,1>F g26<8,8,1>F { align1 }; (assign (constant bool (1)) (y) (var_ref R0@0x7be6bcc0) (expression float + (expression float * (swiz y (var_ref channel_expressions@0x7be6ce38) )(swiz y (var_ref channel_expressions@0x7be6c0c8) )) (swiz y (var_ref channel_expressions@0x7be70c80) )) ) mul(8) g26<1>F g27<8,8,1>F g33<8,8,1>F { align1 }; add(8) g26<1>F g26<8,8,1>F g35<8,8,1>F { align1 }; (assign (constant bool (1)) (z) (var_ref R0@0x7be6bcc0) (expression float + (expression float * (swiz z (var_ref channel_expressions@0x7be6ce38) )(swiz z (var_ref channel_expressions@0x7be6c0c8) )) (swiz z (var_ref channel_expressions@0x7be70c80) )) ) mul(8) g27<1>F g27<8,8,1>F g34<8,8,1>F { align1 }; add(8) g27<1>F g27<8,8,1>F g36<8,8,1>F { align1 }; (assign (constant bool (1)) (x) (var_ref R0@0x7be6bcc0) (expression float * (constant float (4.000000)) (expression float * (swiz x (var_ref channel_expressions@0x7cfee240) )(swiz x (var_ref channel_expressions@0x7be70f58) )) ) ) mul(8) g15<1>F g18<8,8,1>F g15<8,8,1>F { align1 }; mul(8) g15<1>F g15<8,8,1>F 4F { align1 }; (assign (constant bool (1)) (y) (var_ref R0@0x7be6bcc0) (expression float * (constant float (4.000000)) (expression float * (swiz y (var_ref channel_expressions@0x7cfee240) )(swiz y (var_ref channel_expressions@0x7be70f58) )) ) ) mul(8) g26<1>F g19<8,8,1>F g26<8,8,1>F { align1 }; mul(8) g26<1>F g26<8,8,1>F 4F { align1 }; (assign (constant bool (1)) (z) (var_ref R0@0x7be6bcc0) (expression float * (constant float (4.000000)) (expression float * (swiz z (var_ref channel_expressions@0x7cfee240) )(swiz z (var_ref channel_expressions@0x7be70f58) )) ) ) mul(8) g18<1>F g20<8,8,1>F g27<8,8,1>F { align1 }; mul(8) g18<1>F g18<8,8,1>F 4F { align1 }; (assign (constant bool (1)) (x) (var_ref R0@0x7be6bcc0) (expression float + (swiz x (var_ref channel_expressions@0x7be689e0) )(swiz x (var_ref channel_expressions@0x7be68600) )) ) add(8) g15<1>F g15<8,8,1>F g17<8,8,1>F { align1 }; (assign (constant bool (1)) (y) (var_ref R0@0x7be6bcc0) (expression float + (swiz y (var_ref channel_expressions@0x7be689e0) )(swiz y (var_ref channel_expressions@0x7be68600) )) ) add(8) g17<1>F g26<8,8,1>F g31<8,8,1>F { align1 }; (assign (constant bool (1)) (z) (var_ref R0@0x7be6bcc0) (expression float + (swiz z (var_ref channel_expressions@0x7be689e0) )(swiz z (var_ref channel_expressions@0x7be68600) )) ) add(8) g18<1>F g18<8,8,1>F g32<8,8,1>F { align1 }; (assign (constant bool (1)) (x) (var_ref R1@0x7be6ca30) (expression float * (constant float (2.000000)) (expression float * (swiz x (var_ref _ret_val@0x7be5aee0) )(swiz x (var_ref gl_Color@0x7cfede68) )) ) ) mul(8) g16<1>F g22<8,8,1>F g16<8,8,1>F { align1 }; mul(8) g16<1>F g16<8,8,1>F 2F { align1 }; (assign (constant bool (1)) (y) (var_ref R1@0x7be6ca30) (expression float * (constant float (2.000000)) (expression float * (swiz y (var_ref _ret_val@0x7be5aee0) )(swiz y (var_ref gl_Color@0x7cfede68) )) ) ) mul(8) g19<1>F g23<8,8,1>F g28<8,8,1>F { align1 }; mul(8) g19<1>F g19<8,8,1>F 2F { align1 }; (assign (constant bool (1)) (z) (var_ref R1@0x7be6ca30) (expression float * (constant float (2.000000)) (expression float * (swiz z (var_ref _ret_val@0x7be5aee0) )(swiz z (var_ref gl_Color@0x7cfede68) )) ) ) mul(8) g20<1>F g24<8,8,1>F g29<8,8,1>F { align1 }; mul(8) g20<1>F g20<8,8,1>F 2F { align1 }; (assign (constant bool (1)) (w) (var_ref R1@0x7be6ca30) (expression float * (constant float (2.000000)) (expression float * (swiz w (var_ref _ret_val@0x7be5aee0) )(swiz w (var_ref gl_Color@0x7cfede68) )) ) ) mul(8) g21<1>F g25<8,8,1>F g30<8,8,1>F { align1 }; mul(8) g21<1>F g21<8,8,1>F 2F { align1 }; (assign (constant bool (1)) (x) (var_ref R0@0x7be6bcc0) (expression float + (expression float * (swiz x (var_ref channel_expressions@0x7be41498) )(swiz x (var_ref channel_expressions@0x7be40d30) )) (swiz x (var_ref channel_expressions@0x7cf3acf8) )) ) mul(8) g15<1>F g15<8,8,1>F g21<8,8,1>F { align1 }; add(8) m2<1>F g15<8,8,1>F g16<8,8,1>F { align1 }; (assign (constant bool (1)) (y) (var_ref R0@0x7be6bcc0) (expression float + (expression float * (swiz y (var_ref channel_expressions@0x7be41498) )(swiz y (var_ref channel_expressions@0x7be40d30) )) (swiz y (var_ref channel_expressions@0x7cf3acf8) )) ) mul(8) g15<1>F g17<8,8,1>F g21<8,8,1>F { align1 }; add(8) m3<1>F g15<8,8,1>F g19<8,8,1>F { align1 }; (assign (constant bool (1)) (z) (var_ref R0@0x7be6bcc0) (expression float + (expression float * (swiz z (var_ref channel_expressions@0x7be41498) )(swiz z (var_ref channel_expressions@0x7be40d30) )) (swiz z (var_ref channel_expressions@0x7cf3acf8) )) ) mul(8) g15<1>F g18<8,8,1>F g21<8,8,1>F { align1 }; add(8) m4<1>F g15<8,8,1>F g20<8,8,1>F { align1 }; (assign (constant bool (1)) (xyzw) (array_ref (var_ref gl_FragData@0x7cfc5890) (constant int (0)) ) (var_ref R0@0x7be6bcc0) ) FB write target 0 mov(8) m5<1>F g21<8,8,1>F { align1 }; mov(8) m1<1>F g1<8,8,1>F { align1 nomask }; send(8) 0 null g0<8,8,1>UW write (0, 12, 4, 0) mlen 6 rlen 0 { align1 EOT };