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: MOV OUTPUT[4], INPUT[8]; 6: END brw_vs_alloc_regs NumAddrRegs 0 brw_vs_alloc_regs NumTemps 1 brw_vs_alloc_regs reg = 8 vs-native: mul(8) g7<1>F g3<4,4,1>.xF g1<0,4,1>F { align16 }; mac(8) g7<1>F g3<4,4,1>.yF g1.4<0,4,1>F { align16 }; mac(8) g7<1>F g3<4,4,1>.zF g2<0,4,1>F { align16 }; mac(8) g6<1>F g3<4,4,1>.wF g2.4<0,4,1>F { align16 }; mov.sat(8) m8<1>F g4<4,4,1>F { align16 }; mov(8) m9<1>F g5<4,4,1>F { align16 }; send(8) 2 g8<1>F g6<4,4,1>.wF math inv scalar mlen 1 rlen 1 { align16 }; mul(8) g8<1>.xyzF g6<4,4,1>F g8<4,4,1>F { align16 }; mov(8) m1<1>UD 0x00000000UD { align16 }; mov(8) m2<1>F g8<8,8,1>F { align1 }; mov(8) m3<1>F g6<8,8,1>F { align1 }; mov(8) m7<1>F g6<8,8,1>F { align1 }; send(8) 0 null g0<8,8,1>F urb 0 urb_write interleave used complete mlen 10, rlen 0 mlen 10 rlen 0 { align1 EOT }; pre-fp: # Fragment Program/Shader 0 0: TXP TEMP[0], INPUT[4], texture[0], 2D; 1: MUL OUTPUT[2].xyz, TEMP[0], INPUT[1]; 2: MUL OUTPUT[2].w, TEMP[0], INPUT[1]; 3: 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: PINTERP INPUT[1], FILE14[1], TEMP[96], TEMP[98]; 5: TEX TEMP[0], INPUT[4], texture[0], 2D; 6: MUL OUTPUT[2].xyz, TEMP[0], INPUT[1]; 7: MUL OUTPUT[2].w, TEMP[0], INPUT[1]; 8: 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] = PINTERP [i1,undef,undef,undef] [r2,r3,undef,undef] [undef,undef,undef,r4] [r13,r14,r15,r16] = TEX [r5,r6,r7,r8] [r17,r18,r19,#].xyz = MUL [r13,r14,r15,r16] [r9,r10,r11,r12] [#,#,#,r20].w = MUL [r13,r14,r15,r16] [r9,r10,r11,r12] [#,#,#,#]. = FB_WRITE [r17,r18,r19,r20] [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] = PINTERP [i1,%,%,%] [r2,r3,%,%] [%,%,%,r4] [r13,r14,r15,r16] = TEX [r5,r6,%,%] [r17,r18,r19,#].xyz = MUL [r13,r14,r15,%] [r9,r10,r11,%] [#,#,#,r20].w = MUL [%,%,%,r16] [%,%,%,r12] [#,#,#,#]. = FB_WRITE [r17,r18,r19,r20] [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] = PINTERP [i1,%,%,%] [r2,r3,%,%] [%,%,%,r4] [r13,r14,r15,r16] = TEX [r5,r6,%,%] [r17,r18,r19,#].xyz = MUL [r13,r14,r15,%] [r9,r10,r11,%] [#,#,#,r20].w = MUL [%,%,%,r16] [%,%,%,r12] [#,#,#,#]. = FB_WRITE [r17,r18,r19,r20] [d0,d0,d0,d0] [%,%,%,%] pass2/done: [vec8,vec10,#,#].xy = PIXELXY [vec12,vec14,#,#].xy = DELTAXY [vec8,vec10,%,%] [#,#,#,vec8].w = PIXELW [vec2,%,%,%] [vec12,vec14,%,%] [vec2,vec10,#,#].xy = PINTERP [vec6,%,%,%] [vec12,vec14,%,%] [%,%,%,vec8] [vec6,vec16,vec18,vec20] = PINTERP [vec4,%,%,%] [vec12,vec14,%,%] [%,%,%,vec8] [vec22,vec24,vec26,vec28] = TEX [vec2,vec10,%,%] [vec2,vec4,vec8,#].xyz = MUL [vec22,vec24,vec26,%] [vec6,vec16,vec18,%] [#,#,#,vec6].w = MUL [%,%,%,vec28] [%,%,%,vec20] [#,#,#,#]. = FB_WRITE [vec2,vec4,vec8,vec6] [vec0,vec0,vec0,vec0] [%,%,%,%] wm-native: add(16) g8<1>UW g1.4<2,4,0>UW 0x10101010V { align1 }; add(16) g10<1>UW g1.5<2,4,0>UW 0x11001100V { align1 }; add(16) g12<1>F g8<8,8,1>UW -g1<0,1,0>F { align1 compr }; add(16) g14<1>F g10<8,8,1>UW -g1.1<0,1,0>F { align1 compr }; line(16) null g3.4<0,1,0>F g12<8,8,1>F { align1 compr }; mac(16) m2<1>F g3.5<0,1,0>F g14<8,8,1>F { align1 compr }; send(8) 2 g8<1>F null math inv mlen 1 rlen 1 { align1 }; send(8) 3 g9<1>F null math inv mlen 1 rlen 1 { align1 sechalf }; line(16) null g6<0,1,0>F g12<8,8,1>F { align1 compr }; mac(16) g2<1>F g6.1<0,1,0>F g14<8,8,1>F { align1 compr }; line(16) null g6.4<0,1,0>F g12<8,8,1>F { align1 compr }; mac(16) g10<1>F g6.5<0,1,0>F g14<8,8,1>F { align1 compr }; mul(16) m2<1>F g2<8,8,1>F g8<8,8,1>F { align1 compr }; mul(16) m4<1>F g10<8,8,1>F g8<8,8,1>F { align1 compr }; line(16) null g4<0,1,0>F g12<8,8,1>F { align1 compr }; mac(16) g6<1>F g4.1<0,1,0>F g14<8,8,1>F { align1 compr }; line(16) null g4.4<0,1,0>F g12<8,8,1>F { align1 compr }; mac(16) g16<1>F g4.5<0,1,0>F g14<8,8,1>F { align1 compr }; line(16) null g5<0,1,0>F g12<8,8,1>F { align1 compr }; mac(16) g18<1>F g5.1<0,1,0>F g14<8,8,1>F { align1 compr }; line(16) null g5.4<0,1,0>F g12<8,8,1>F { align1 compr }; mac(16) g20<1>F g5.5<0,1,0>F g14<8,8,1>F { align1 compr }; mul(16) g6<1>F g6<8,8,1>F g8<8,8,1>F { align1 compr }; mul(16) g16<1>F g16<8,8,1>F g8<8,8,1>F { align1 compr }; mul(16) g18<1>F g18<8,8,1>F g8<8,8,1>F { align1 compr }; mul(16) g20<1>F g20<8,8,1>F g8<8,8,1>F { align1 compr }; send(16) 1 g22<1>UW g0<8,8,1>UW sampler (9, 0, 0, 2) mlen 5 rlen 8 { align1 }; mul(16) m2<1>F g22<8,8,1>F g6<8,8,1>F { align1 compr4 }; mul(16) m3<1>F g24<8,8,1>F g16<8,8,1>F { align1 compr4 }; mul(16) m4<1>F g26<8,8,1>F g18<8,8,1>F { align1 compr4 }; mul(16) m5<1>F g28<8,8,1>F g20<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 }; pre-fp: # Fragment Program/Shader 0 0: TXP TEMP[0], INPUT[4], texture[0], 2D; 1: MUL OUTPUT[2], TEMP[0], 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: PIXELW TEMP[98].w, FILE14[0], TEMP[96], UNDEFINED[0]; 3: PINTERP INPUT[4], FILE14[4], TEMP[96], TEMP[98]; 4: PINTERP INPUT[1], FILE14[1], TEMP[96], TEMP[98]; 5: TEX TEMP[0], INPUT[4], texture[0], 2D; 6: MUL OUTPUT[2], TEMP[0], INPUT[1]; 7: 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] = PINTERP [i1,undef,undef,undef] [r2,r3,undef,undef] [undef,undef,undef,r4] [r13,r14,r15,r16] = TEX [r5,r6,r7,r8] [r17,r18,r19,r20] = MUL [r13,r14,r15,r16] [r9,r10,r11,r12] [#,#,#,#]. = FB_WRITE [r17,r18,r19,r20] [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] = PINTERP [i1,%,%,%] [r2,r3,%,%] [%,%,%,r4] [r13,r14,r15,r16] = TEX [r5,r6,%,%] [r17,r18,r19,r20] = MUL [r13,r14,r15,r16] [r9,r10,r11,r12] [#,#,#,#]. = FB_WRITE [r17,r18,r19,r20] [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] = PINTERP [i1,%,%,%] [r2,r3,%,%] [%,%,%,r4] [r13,r14,r15,r16] = TEX [r5,r6,%,%] [r17,r18,r19,r20] = MUL [r13,r14,r15,r16] [r9,r10,r11,r12] [#,#,#,#]. = FB_WRITE [r17,r18,r19,r20] [d0,d0,d0,d0] [%,%,%,%] pass2/done: [vec8,vec10,#,#].xy = PIXELXY [vec12,vec14,#,#].xy = DELTAXY [vec8,vec10,%,%] [#,#,#,vec8].w = PIXELW [vec2,%,%,%] [vec12,vec14,%,%] [vec2,vec10,#,#].xy = PINTERP [vec6,%,%,%] [vec12,vec14,%,%] [%,%,%,vec8] [vec6,vec16,vec18,vec20] = PINTERP [vec4,%,%,%] [vec12,vec14,%,%] [%,%,%,vec8] [vec22,vec24,vec26,vec28] = TEX [vec2,vec10,%,%] [vec2,vec4,vec8,vec10] = MUL [vec22,vec24,vec26,vec28] [vec6,vec16,vec18,vec20] [#,#,#,#]. = FB_WRITE [vec2,vec4,vec8,vec10] [vec0,vec0,vec0,vec0] [%,%,%,%] wm-native: add(16) g8<1>UW g1.4<2,4,0>UW 0x10101010V { align1 }; add(16) g10<1>UW g1.5<2,4,0>UW 0x11001100V { align1 }; add(16) g12<1>F g8<8,8,1>UW -g1<0,1,0>F { align1 compr }; add(16) g14<1>F g10<8,8,1>UW -g1.1<0,1,0>F { align1 compr }; line(16) null g3.4<0,1,0>F g12<8,8,1>F { align1 compr }; mac(16) m2<1>F g3.5<0,1,0>F g14<8,8,1>F { align1 compr }; send(8) 2 g8<1>F null math inv mlen 1 rlen 1 { align1 }; send(8) 3 g9<1>F null math inv mlen 1 rlen 1 { align1 sechalf }; line(16) null g6<0,1,0>F g12<8,8,1>F { align1 compr }; mac(16) g2<1>F g6.1<0,1,0>F g14<8,8,1>F { align1 compr }; line(16) null g6.4<0,1,0>F g12<8,8,1>F { align1 compr }; mac(16) g10<1>F g6.5<0,1,0>F g14<8,8,1>F { align1 compr }; mul(16) m2<1>F g2<8,8,1>F g8<8,8,1>F { align1 compr }; mul(16) m4<1>F g10<8,8,1>F g8<8,8,1>F { align1 compr }; line(16) null g4<0,1,0>F g12<8,8,1>F { align1 compr }; mac(16) g6<1>F g4.1<0,1,0>F g14<8,8,1>F { align1 compr }; line(16) null g4.4<0,1,0>F g12<8,8,1>F { align1 compr }; mac(16) g16<1>F g4.5<0,1,0>F g14<8,8,1>F { align1 compr }; line(16) null g5<0,1,0>F g12<8,8,1>F { align1 compr }; mac(16) g18<1>F g5.1<0,1,0>F g14<8,8,1>F { align1 compr }; line(16) null g5.4<0,1,0>F g12<8,8,1>F { align1 compr }; mac(16) g20<1>F g5.5<0,1,0>F g14<8,8,1>F { align1 compr }; mul(16) g6<1>F g6<8,8,1>F g8<8,8,1>F { align1 compr }; mul(16) g16<1>F g16<8,8,1>F g8<8,8,1>F { align1 compr }; mul(16) g18<1>F g18<8,8,1>F g8<8,8,1>F { align1 compr }; mul(16) g20<1>F g20<8,8,1>F g8<8,8,1>F { align1 compr }; send(16) 1 g22<1>UW g0<8,8,1>UW sampler (9, 0, 0, 2) mlen 5 rlen 8 { align1 }; mul(16) m2<1>F g22<8,8,1>F g6<8,8,1>F { align1 compr4 }; mul(16) m3<1>F g24<8,8,1>F g16<8,8,1>F { align1 compr4 }; mul(16) m4<1>F g26<8,8,1>F g18<8,8,1>F { align1 compr4 }; mul(16) m5<1>F g28<8,8,1>F g20<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[1], INPUT[3]; 5: MOV OUTPUT[4], INPUT[8]; 6: END brw_vs_alloc_regs NumAddrRegs 0 brw_vs_alloc_regs NumTemps 1 brw_vs_alloc_regs reg = 8 vs-native: mul(8) g7<1>F g3<4,4,1>.xF g1<0,4,1>F { align16 }; mac(8) g7<1>F g3<4,4,1>.yF g1.4<0,4,1>F { align16 }; mac(8) g7<1>F g3<4,4,1>.zF g2<0,4,1>F { align16 }; mac(8) g6<1>F g3<4,4,1>.wF g2.4<0,4,1>F { align16 }; mov.sat(8) m8<1>F g4<4,4,1>F { align16 }; mov(8) m9<1>F g5<4,4,1>F { align16 }; send(8) 2 g8<1>F g6<4,4,1>.wF math inv scalar mlen 1 rlen 1 { align16 }; mul(8) g8<1>.xyzF g6<4,4,1>F g8<4,4,1>F { align16 }; mov(8) m1<1>UD 0x00000000UD { align16 }; mov(8) m2<1>F g8<8,8,1>F { align1 }; mov(8) m3<1>F g6<8,8,1>F { align1 }; mov(8) m7<1>F g6<8,8,1>F { align1 }; send(8) 0 null g0<8,8,1>F urb 0 urb_write interleave used complete mlen 10, rlen 0 mlen 10 rlen 0 { align1 EOT }; pre-fp: # Fragment Program/Shader 0 0: TXP TEMP[0], INPUT[4], texture[0], 2D; 1: MOV OUTPUT[2].xyz, INPUT[1]; 2: MUL OUTPUT[2].w, TEMP[0], INPUT[1]; 3: 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: PINTERP INPUT[1], FILE14[1], TEMP[96], TEMP[98]; 5: TEX TEMP[0], INPUT[4], texture[0], 2D; 6: MOV OUTPUT[2].xyz, INPUT[1]; 7: MUL OUTPUT[2].w, TEMP[0], INPUT[1]; 8: 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] = PINTERP [i1,undef,undef,undef] [r2,r3,undef,undef] [undef,undef,undef,r4] [r13,r14,r15,r16] = TEX [r5,r6,r7,r8] [#,#,#,r17].w = MUL [r13,r14,r15,r16] [r9,r10,r11,r12] [#,#,#,#]. = FB_WRITE [r9,r10,r11,r17] [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] = PINTERP [i1,%,%,%] [r2,r3,%,%] [%,%,%,r4] [#,#,#,r16].w = TEX [r5,r6,%,%] [#,#,#,r17].w = MUL [%,%,%,r16] [%,%,%,r12] [#,#,#,#]. = FB_WRITE [r9,r10,r11,r17] [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] = PINTERP [i1,%,%,%] [r2,r3,%,%] [%,%,%,r4] [r18,r19,r20,r16].w = TEX [r5,r6,%,%] [#,#,#,r17].w = MUL [%,%,%,r16] [%,%,%,r12] [#,#,#,#]. = FB_WRITE [r9,r10,r11,r17] [d0,d0,d0,d0] [%,%,%,%] pass2/done: [vec8,vec10,#,#].xy = PIXELXY [vec12,vec14,#,#].xy = DELTAXY [vec8,vec10,%,%] [#,#,#,vec8].w = PIXELW [vec2,%,%,%] [vec12,vec14,%,%] [vec2,vec10,#,#].xy = PINTERP [vec6,%,%,%] [vec12,vec14,%,%] [%,%,%,vec8] [vec6,vec16,vec18,vec20] = PINTERP [vec4,%,%,%] [vec12,vec14,%,%] [%,%,%,vec8] [vec22,vec24,vec26,vec28].w = TEX [vec2,vec10,%,%] [#,#,#,vec2].w = MUL [%,%,%,vec28] [%,%,%,vec20] [#,#,#,#]. = FB_WRITE [vec6,vec16,vec18,vec2] [vec0,vec0,vec0,vec0] [%,%,%,%] wm-native: add(16) g8<1>UW g1.4<2,4,0>UW 0x10101010V { align1 }; add(16) g10<1>UW g1.5<2,4,0>UW 0x11001100V { align1 }; add(16) g12<1>F g8<8,8,1>UW -g1<0,1,0>F { align1 compr }; add(16) g14<1>F g10<8,8,1>UW -g1.1<0,1,0>F { align1 compr }; line(16) null g3.4<0,1,0>F g12<8,8,1>F { align1 compr }; mac(16) m2<1>F g3.5<0,1,0>F g14<8,8,1>F { align1 compr }; send(8) 2 g8<1>F null math inv mlen 1 rlen 1 { align1 }; send(8) 3 g9<1>F null math inv mlen 1 rlen 1 { align1 sechalf }; line(16) null g6<0,1,0>F g12<8,8,1>F { align1 compr }; mac(16) g2<1>F g6.1<0,1,0>F g14<8,8,1>F { align1 compr }; line(16) null g6.4<0,1,0>F g12<8,8,1>F { align1 compr }; mac(16) g10<1>F g6.5<0,1,0>F g14<8,8,1>F { align1 compr }; mul(16) m2<1>F g2<8,8,1>F g8<8,8,1>F { align1 compr }; mul(16) m4<1>F g10<8,8,1>F g8<8,8,1>F { align1 compr }; line(16) null g4<0,1,0>F g12<8,8,1>F { align1 compr }; mac(16) g6<1>F g4.1<0,1,0>F g14<8,8,1>F { align1 compr }; line(16) null g4.4<0,1,0>F g12<8,8,1>F { align1 compr }; mac(16) g16<1>F g4.5<0,1,0>F g14<8,8,1>F { align1 compr }; line(16) null g5<0,1,0>F g12<8,8,1>F { align1 compr }; mac(16) g18<1>F g5.1<0,1,0>F g14<8,8,1>F { align1 compr }; line(16) null g5.4<0,1,0>F g12<8,8,1>F { align1 compr }; mac(16) g20<1>F g5.5<0,1,0>F g14<8,8,1>F { align1 compr }; mul(16) g6<1>F g6<8,8,1>F g8<8,8,1>F { align1 compr }; mul(16) g16<1>F g16<8,8,1>F g8<8,8,1>F { align1 compr }; mul(16) g18<1>F g18<8,8,1>F g8<8,8,1>F { align1 compr }; mul(16) g20<1>F g20<8,8,1>F g8<8,8,1>F { align1 compr }; mov(8) m1<1>F g0<8,8,1>F { align1 nomask }; mov(1) m1.2<1>UD 0x00007000UD { align1 nomask }; send(16) 1 g28<1>UW null sampler (9, 0, 0, 2) mlen 5 rlen 2 { align1 }; mul(16) m5<1>F g28<8,8,1>F g20<8,8,1>F { align1 compr4 }; mov(16) m2<1>F g6<8,8,1>F { align1 compr4 }; mov(16) m3<1>F g16<8,8,1>F { align1 compr4 }; mov(16) m4<1>F g18<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[1], INPUT[3]; 5: MOV OUTPUT[4], INPUT[8]; 6: MOV OUTPUT[5], INPUT[9]; 7: END brw_vs_alloc_regs NumAddrRegs 0 brw_vs_alloc_regs NumTemps 1 brw_vs_alloc_regs reg = 9 vs-native: mul(8) g8<1>F g3<4,4,1>.xF g1<0,4,1>F { align16 }; mac(8) g8<1>F g3<4,4,1>.yF g1.4<0,4,1>F { align16 }; mac(8) g8<1>F g3<4,4,1>.zF g2<0,4,1>F { align16 }; mac(8) g7<1>F g3<4,4,1>.wF g2.4<0,4,1>F { align16 }; mov.sat(8) m8<1>F g4<4,4,1>F { align16 }; mov(8) m9<1>F g5<4,4,1>F { align16 }; mov(8) m10<1>F g6<4,4,1>F { align16 }; send(8) 2 g9<1>F g7<4,4,1>.wF math inv scalar mlen 1 rlen 1 { align16 }; mul(8) g9<1>.xyzF g7<4,4,1>F g9<4,4,1>F { align16 }; mov(8) m1<1>UD 0x00000000UD { align16 }; mov(8) m2<1>F g9<8,8,1>F { align1 }; mov(8) m3<1>F g7<8,8,1>F { align1 }; mov(8) m7<1>F g7<8,8,1>F { align1 }; send(8) 0 null g0<8,8,1>F urb 0 urb_write interleave used complete mlen 11, rlen 0 mlen 11 rlen 0 { align1 EOT }; pre-fp: # Fragment Program/Shader 0 0: TXP TEMP[0], INPUT[4], texture[0], 2D; 1: TXP TEMP[1], INPUT[5], texture[1], 2D; 2: MUL TEMP[2], TEMP[0], INPUT[1]; 3: MUL OUTPUT[2].xyz, TEMP[1], TEMP[2]; 4: MUL OUTPUT[2].w, TEMP[1], TEMP[2]; 5: 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: PINTERP INPUT[5], FILE14[5], TEMP[96], TEMP[98]; 5: PINTERP INPUT[1], FILE14[1], TEMP[96], TEMP[98]; 6: TEX TEMP[0], INPUT[4], texture[0], 2D; 7: TEX TEMP[1], INPUT[5], texture[1], 2D; 8: MUL TEMP[2], TEMP[0], INPUT[1]; 9: MUL OUTPUT[2].xyz, TEMP[1], TEMP[2]; 10: MUL OUTPUT[2].w, TEMP[1], TEMP[2]; 11: 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] = PINTERP [i5,undef,undef,undef] [r2,r3,undef,undef] [undef,undef,undef,r4] [r13,r14,r15,r16] = PINTERP [i1,undef,undef,undef] [r2,r3,undef,undef] [undef,undef,undef,r4] [r17,r18,r19,r20] = TEX [r5,r6,r7,r8] [r21,r22,r23,r24] = TEX [r9,r10,r11,r12] [r25,r26,r27,r28] = MUL [r17,r18,r19,r20] [r13,r14,r15,r16] [r29,r30,r31,#].xyz = MUL [r21,r22,r23,r24] [r25,r26,r27,r28] [#,#,#,r32].w = MUL [r21,r22,r23,r24] [r25,r26,r27,r28] [#,#,#,#]. = FB_WRITE [r29,r30,r31,r32] [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,#,#].xy = PINTERP [i5,%,%,%] [r2,r3,%,%] [%,%,%,r4] [r13,r14,r15,r16] = PINTERP [i1,%,%,%] [r2,r3,%,%] [%,%,%,r4] [r17,r18,r19,r20] = TEX [r5,r6,%,%] [r21,r22,r23,r24] = TEX [r9,r10,%,%] [r25,r26,r27,r28] = MUL [r17,r18,r19,r20] [r13,r14,r15,r16] [r29,r30,r31,#].xyz = MUL [r21,r22,r23,%] [r25,r26,r27,%] [#,#,#,r32].w = MUL [%,%,%,r24] [%,%,%,r28] [#,#,#,#]. = FB_WRITE [r29,r30,r31,r32] [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,#,#].xy = PINTERP [i5,%,%,%] [r2,r3,%,%] [%,%,%,r4] [r13,r14,r15,r16] = PINTERP [i1,%,%,%] [r2,r3,%,%] [%,%,%,r4] [r17,r18,r19,r20] = TEX [r5,r6,%,%] [r21,r22,r23,r24] = TEX [r9,r10,%,%] [r25,r26,r27,r28] = MUL [r17,r18,r19,r20] [r13,r14,r15,r16] [r29,r30,r31,#].xyz = MUL [r21,r22,r23,%] [r25,r26,r27,%] [#,#,#,r32].w = MUL [%,%,%,r24] [%,%,%,r28] [#,#,#,#]. = FB_WRITE [r29,r30,r31,r32] [d0,d0,d0,d0] [%,%,%,%] pass2/done: [vec10,vec12,#,#].xy = PIXELXY [vec14,vec16,#,#].xy = DELTAXY [vec10,vec12,%,%] [#,#,#,vec10].w = PIXELW [vec2,%,%,%] [vec14,vec16,%,%] [vec2,vec12,#,#].xy = PINTERP [vec6,%,%,%] [vec14,vec16,%,%] [%,%,%,vec10] [vec6,vec18,#,#].xy = PINTERP [vec8,%,%,%] [vec14,vec16,%,%] [%,%,%,vec10] [vec8,vec20,vec22,vec24] = PINTERP [vec4,%,%,%] [vec14,vec16,%,%] [%,%,%,vec10] [vec26,vec28,vec30,vec32] = TEX [vec2,vec12,%,%] [vec10,vec12,vec14,vec16] = TEX [vec6,vec18,%,%] [vec2,vec4,vec6,vec18] = MUL [vec26,vec28,vec30,vec32] [vec8,vec20,vec22,vec24] [vec8,vec20,vec22,#].xyz = MUL [vec10,vec12,vec14,%] [vec2,vec4,vec6,%] [#,#,#,vec2].w = MUL [%,%,%,vec16] [%,%,%,vec18] [#,#,#,#]. = FB_WRITE [vec8,vec20,vec22,vec2] [vec0,vec0,vec0,vec0] [%,%,%,%] wm-native: add(16) g10<1>UW g1.4<2,4,0>UW 0x10101010V { align1 }; add(16) g12<1>UW g1.5<2,4,0>UW 0x11001100V { align1 }; add(16) g14<1>F g10<8,8,1>UW -g1<0,1,0>F { align1 compr }; add(16) g16<1>F g12<8,8,1>UW -g1.1<0,1,0>F { align1 compr }; line(16) null g3.4<0,1,0>F g14<8,8,1>F { align1 compr }; mac(16) m2<1>F g3.5<0,1,0>F g16<8,8,1>F { align1 compr }; send(8) 2 g10<1>F null math inv mlen 1 rlen 1 { align1 }; send(8) 3 g11<1>F null math inv mlen 1 rlen 1 { align1 sechalf }; line(16) null g6<0,1,0>F g14<8,8,1>F { align1 compr }; mac(16) g2<1>F g6.1<0,1,0>F g16<8,8,1>F { align1 compr }; line(16) null g6.4<0,1,0>F g14<8,8,1>F { align1 compr }; mac(16) g12<1>F g6.5<0,1,0>F g16<8,8,1>F { align1 compr }; mul(16) m2<1>F g2<8,8,1>F g10<8,8,1>F { align1 compr }; mul(16) g12<1>F g12<8,8,1>F g10<8,8,1>F { align1 compr }; line(16) null g8<0,1,0>F g14<8,8,1>F { align1 compr }; mac(16) g6<1>F g8.1<0,1,0>F g16<8,8,1>F { align1 compr }; line(16) null g8.4<0,1,0>F g14<8,8,1>F { align1 compr }; mac(16) g18<1>F g8.5<0,1,0>F g16<8,8,1>F { align1 compr }; mul(16) g6<1>F g6<8,8,1>F g10<8,8,1>F { align1 compr }; mul(16) g18<1>F g18<8,8,1>F g10<8,8,1>F { align1 compr }; line(16) null g4<0,1,0>F g14<8,8,1>F { align1 compr }; mac(16) g8<1>F g4.1<0,1,0>F g16<8,8,1>F { align1 compr }; line(16) null g4.4<0,1,0>F g14<8,8,1>F { align1 compr }; mac(16) g20<1>F g4.5<0,1,0>F g16<8,8,1>F { align1 compr }; line(16) null g5<0,1,0>F g14<8,8,1>F { align1 compr }; mac(16) g22<1>F g5.1<0,1,0>F g16<8,8,1>F { align1 compr }; line(16) null g5.4<0,1,0>F g14<8,8,1>F { align1 compr }; mac(16) g24<1>F g5.5<0,1,0>F g16<8,8,1>F { align1 compr }; mul(16) g8<1>F g8<8,8,1>F g10<8,8,1>F { align1 compr }; mul(16) g20<1>F g20<8,8,1>F g10<8,8,1>F { align1 compr }; mul(16) g22<1>F g22<8,8,1>F g10<8,8,1>F { align1 compr }; mul(16) g24<1>F g24<8,8,1>F g10<8,8,1>F { align1 compr }; mov(16) m4<1>F g12<8,8,1>F { align1 compr }; send(16) 1 g26<1>UW g0<8,8,1>UW sampler (9, 0, 0, 2) mlen 5 rlen 8 { align1 }; mov(16) m2<1>F g6<8,8,1>F { align1 compr }; mov(16) m4<1>F g18<8,8,1>F { align1 compr }; send(16) 1 g10<1>UW g0<8,8,1>UW sampler (10, 1, 0, 2) mlen 5 rlen 8 { align1 }; mul(16) g2<1>F g26<8,8,1>F g8<8,8,1>F { align1 compr }; mul(16) g4<1>F g28<8,8,1>F g20<8,8,1>F { align1 compr }; mul(16) g6<1>F g30<8,8,1>F g22<8,8,1>F { align1 compr }; mul(16) g18<1>F g32<8,8,1>F g24<8,8,1>F { align1 compr }; mul(16) m2<1>F g10<8,8,1>F g2<8,8,1>F { align1 compr4 }; mul(16) m3<1>F g12<8,8,1>F g4<8,8,1>F { align1 compr4 }; mul(16) m4<1>F g14<8,8,1>F g6<8,8,1>F { align1 compr4 }; mul(16) m5<1>F g16<8,8,1>F g18<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 source for shader 1: #define XBMC_texture_rectangle 0 #define XBMC_texture_rectangle_hack 0 #define XBMC_STRETCH 0 #define XBMC_YV12 /* * Copyright (C) 2010 Team XBMC * http://www.xbmc.org * * This Program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This Program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XBMC; see the file COPYING. If not, write to * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. * http://www.gnu.org/copyleft/gpl.html * */ varying vec2 m_cordY; varying vec2 m_cordU; varying vec2 m_cordV; void main() { #if(XBMC_texture_rectangle_hack) m_cordY = vec2(gl_TextureMatrix[0] * gl_MultiTexCoord0 / 2); m_cordU = vec2(gl_TextureMatrix[1] * gl_MultiTexCoord1 * 2); m_cordV = vec2(gl_TextureMatrix[2] * gl_MultiTexCoord2); #else m_cordY = vec2(gl_TextureMatrix[0] * gl_MultiTexCoord0); m_cordU = vec2(gl_TextureMatrix[1] * gl_MultiTexCoord1); m_cordV = vec2(gl_TextureMatrix[2] * gl_MultiTexCoord2); #endif gl_Position = ftransform(); gl_FrontColor = gl_Color; } GLSL IR for shader 1: ( (declare (out ) vec2 m_cordV@0xac435568) (declare (out ) vec2 m_cordU@0xac435648) (declare (out ) vec2 m_cordY@0xac435728) (declare (out ) vec4 gl_Position@0xad8163e8) (declare (out ) float gl_PointSize@0xad81ffc8) (declare (in ) vec4 gl_Vertex@0xad820110) (declare (in ) vec3 gl_Normal@0xad820248) (declare (in ) vec4 gl_Color@0xad820380) (declare (in ) vec4 gl_SecondaryColor@0xad8204b8) (declare (in ) vec4 gl_MultiTexCoord0@0xad820600) (declare (in ) vec4 gl_MultiTexCoord1@0xad820748) (declare (in ) vec4 gl_MultiTexCoord2@0xad820890) (declare (in ) vec4 gl_MultiTexCoord3@0xad8209d8) (declare (in ) vec4 gl_MultiTexCoord4@0xad820b20) (declare (in ) vec4 gl_MultiTexCoord5@0xad820c68) (declare (in ) vec4 gl_MultiTexCoord6@0xad820db0) (declare (in ) vec4 gl_MultiTexCoord7@0xad820ef8) (declare (in ) float gl_FogCoord@0xad821040) (declare (out ) vec4 gl_ClipVertex@0xad821178) (declare (out ) vec4 gl_FrontColor@0xad8212c0) (declare (out ) vec4 gl_BackColor@0xad821408) (declare (out ) vec4 gl_FrontSecondaryColor@0xad821550) (declare (out ) vec4 gl_BackSecondaryColor@0xad8216a8) (declare (out ) float gl_FogFragCoord@0xad821800) (declare (uniform ) mat4 gl_ModelViewMatrix@0xad821948) (declare (uniform ) mat4 gl_ProjectionMatrix@0xad821a90) (declare (uniform ) mat4 gl_ModelViewProjectionMatrix@0xad821bd8) (declare (uniform ) mat3 gl_NormalMatrix@0xad821d18) (declare (uniform ) mat4 gl_ModelViewMatrixInverse@0xad821e60) (declare (uniform ) mat4 gl_ProjectionMatrixInverse@0xad821fb8) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixInverse@0xad822110) (declare (uniform ) mat4 gl_ModelViewMatrixTranspose@0xad822278) (declare (uniform ) mat4 gl_ProjectionMatrixTranspose@0xad8223d0) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixTranspose@0xad822538) (declare (uniform ) mat4 gl_ModelViewMatrixInverseTranspose@0xad8226b0) (declare (uniform ) mat4 gl_ProjectionMatrixInverseTranspose@0xad822818) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixInverseTranspose@0xad822980) (declare (uniform ) float gl_NormalScale@0xad822ad0) (declare (uniform ) gl_LightModelParameters gl_LightModel@0xad822c18) (declare () int gl_MaxLights@0xad822d60) (declare () int gl_MaxClipPlanes@0xad822f40) (declare () int gl_MaxTextureUnits@0xad823120) (declare () int gl_MaxTextureCoords@0xad823300) (declare () int gl_MaxVertexAttribs@0xad8234e0) (declare () int gl_MaxVertexUniformComponents@0xad8236c0) (declare () int gl_MaxVaryingFloats@0xad8238c0) (declare () int gl_MaxVertexTextureImageUnits@0xad823aa0) (declare () int gl_MaxCombinedTextureImageUnits@0xad823ca0) (declare () int gl_MaxTextureImageUnits@0xad823ea0) (declare () int gl_MaxFragmentUniformComponents@0xad824090) (declare (uniform ) (array mat4 8) gl_TextureMatrix@0xad824598) (declare (uniform ) (array mat4 8) gl_TextureMatrixInverse@0xad8246e0) (declare (uniform ) (array mat4 8) gl_TextureMatrixTranspose@0xad824838) (declare (uniform ) (array mat4 8) gl_TextureMatrixInverseTranspose@0xad824990) (declare (uniform ) gl_DepthRangeParameters gl_DepthRange@0xad824af8) (declare (uniform ) (array vec4 6) gl_ClipPlane@0xad824d38) (declare (uniform ) gl_PointParameters gl_Point@0xad824e80) (declare (uniform ) gl_MaterialParameters gl_FrontMaterial@0xad824fb8) (declare (uniform ) gl_MaterialParameters gl_BackMaterial@0xad825100) (declare (uniform ) (array gl_LightSourceParameters 8) gl_LightSource@0xad825358) (declare (uniform ) gl_LightModelProducts gl_FrontLightModelProduct@0xad8254a0) (declare (uniform ) gl_LightModelProducts gl_BackLightModelProduct@0xad8255f8) (declare (uniform ) (array gl_LightProducts 8) gl_FrontLightProduct@0xad825858) (declare (uniform ) (array gl_LightProducts 8) gl_BackLightProduct@0xad8259b0) (declare (uniform ) (array vec4 8) gl_TextureEnvColor@0xad825bf0) (declare (uniform ) (array vec4 8) gl_EyePlaneS@0xad825d38) (declare (uniform ) (array vec4 8) gl_EyePlaneT@0xad825e80) (declare (uniform ) (array vec4 8) gl_EyePlaneR@0xad825fc8) (declare (uniform ) (array vec4 8) gl_EyePlaneQ@0xad826110) (declare (uniform ) (array vec4 8) gl_ObjectPlaneS@0xad826258) (declare (uniform ) (array vec4 8) gl_ObjectPlaneT@0xad8263a0) (declare (uniform ) (array vec4 8) gl_ObjectPlaneR@0xad8264e8) (declare (uniform ) (array vec4 8) gl_ObjectPlaneQ@0xad826630) (declare (uniform ) gl_FogParameters gl_Fog@0xad826778) (declare (out ) (array vec4 0) gl_TexCoord@0xad8269a8) (declare () int gl_MaxDrawBuffers@0xad826ae0) (function ftransform (signature vec4 (parameters ) ( )) ) (function main (signature void (parameters ) ( (assign (constant bool (1)) (xy) (var_ref m_cordY@0xac435728) (swiz xy (expression vec4 * (array_ref (var_ref gl_TextureMatrix@0xad824598) (constant int (0)) ) (var_ref gl_MultiTexCoord0@0xad820600) ) )) (assign (constant bool (1)) (xy) (var_ref m_cordU@0xac435648) (swiz xy (expression vec4 * (array_ref (var_ref gl_TextureMatrix@0xad824598) (constant int (1)) ) (var_ref gl_MultiTexCoord1@0xad820748) ) )) (assign (constant bool (1)) (xy) (var_ref m_cordV@0xac435568) (swiz xy (expression vec4 * (array_ref (var_ref gl_TextureMatrix@0xad824598) (constant int (2)) ) (var_ref gl_MultiTexCoord2@0xad820890) ) )) (declare (temporary ) vec4 ftransform_retval@0xad8df6f8) (assign (constant bool (1)) (xyzw) (var_ref ftransform_retval@0xad8df6f8) (call ftransform ()) ) (assign (constant bool (1)) (xyzw) (var_ref gl_Position@0xad8163e8) (var_ref ftransform_retval@0xad8df6f8) ) (assign (constant bool (1)) (xyzw) (var_ref gl_FrontColor@0xad8212c0) (var_ref gl_Color@0xad820380) ) )) ) ) GLSL source for shader 2: #define XBMC_texture_rectangle 0 #define XBMC_texture_rectangle_hack 0 #define XBMC_STRETCH 0 #define XBMC_YV12 /* * Copyright (C) 2010 Team XBMC * http://www.xbmc.org * * This Program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This Program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XBMC; see the file COPYING. If not, write to * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. * http://www.gnu.org/copyleft/gpl.html * */ #if(XBMC_texture_rectangle) # extension GL_ARB_texture_rectangle : enable # define texture2D texture2DRect # define sampler2D sampler2DRect #endif uniform sampler2D m_sampY; uniform sampler2D m_sampU; uniform sampler2D m_sampV; varying vec2 m_cordY; varying vec2 m_cordU; varying vec2 m_cordV; uniform vec2 m_step; uniform mat4 m_yuvmat; uniform float m_stretch; vec2 stretch(vec2 pos) { #if (XBMC_STRETCH) // our transform should map [0..1] to itself, with f(0) = 0, f(1) = 1, f(0.5) = 0.5, and f'(0.5) = b. // a simple curve to do this is g(x) = b(x-0.5) + (1-b)2^(n-1)(x-0.5)^n + 0.5 // where the power preserves sign. n = 2 is the simplest non-linear case (required when b != 1) #if(XBMC_texture_rectangle) float x = (pos.x * m_step.x) - 0.5; return vec2((mix(2.0 * x * abs(x), x, m_stretch) + 0.5) / m_step.x, pos.y); #else float x = pos.x - 0.5; return vec2(mix(2.0 * x * abs(x), x, m_stretch) + 0.5, pos.y); #endif #else return pos; #endif } void main() { #if defined(XBMC_YV12) || defined(XBMC_NV12) vec4 yuv, rgb; yuv.rgba = vec4( texture2D(m_sampY, stretch(m_cordY)).r , texture2D(m_sampU, stretch(m_cordU)).g , texture2D(m_sampV, stretch(m_cordV)).a , 1.0 ); rgb = m_yuvmat * yuv; rgb.a = gl_Color.a; gl_FragColor = rgb; #elif defined(XBMC_YUY2) || defined(XBMC_UYVY) #if(XBMC_texture_rectangle) vec2 stepxy = vec2(1.0, 1.0); vec2 pos = stretch(m_cordY); pos = vec2(pos.x - 0.25, pos.y); vec2 f = fract(pos); #else vec2 stepxy = m_step; vec2 pos = stretch(m_cordY); pos = vec2(pos.x - stepxy.x * 0.25, pos.y); vec2 f = fract(pos / stepxy); #endif //y axis will be correctly interpolated by opengl //x axis will not, so we grab two pixels at the center of two columns and interpolate ourselves vec4 c1 = texture2D(m_sampY, vec2(pos.x + (0.5 - f.x) * stepxy.x, pos.y)); vec4 c2 = texture2D(m_sampY, vec2(pos.x + (1.5 - f.x) * stepxy.x, pos.y)); /* each pixel has two Y subpixels and one UV subpixel YUV Y YUV check if we're left or right of the middle Y subpixel and interpolate accordingly*/ #ifdef XBMC_YUY2 //BGRA = YUYV float leftY = mix(c1.b, c1.r, f.x * 2.0); float rightY = mix(c1.r, c2.b, f.x * 2.0 - 1.0); vec2 outUV = mix(c1.ga, c2.ga, f.x); #else //BGRA = UYVY float leftY = mix(c1.g, c1.a, f.x * 2.0); float rightY = mix(c1.a, c2.g, f.x * 2.0 - 1.0); vec2 outUV = mix(c1.br, c2.br, f.x); #endif //XBMC_YUY2 float outY = mix(leftY, rightY, step(0.5, f.x)); vec4 yuv = vec4(outY, outUV, 1.0); vec4 rgb = m_yuvmat * yuv; gl_FragColor = rgb; gl_FragColor.a = gl_Color.a; #endif } GLSL IR for shader 2: ( (declare (uniform ) float m_stretch@0xac4b76f8) (declare (uniform ) mat4 m_yuvmat@0xac4b77d8) (declare (uniform ) vec2 m_step@0xac4b78b8) (declare (in ) vec2 m_cordV@0xac4b7998) (declare (in ) vec2 m_cordU@0xac4b7a78) (declare (in ) vec2 m_cordY@0xac4b7b58) (declare (uniform ) sampler2D m_sampV@0xac4b7c38) (declare (uniform ) sampler2D m_sampU@0xac4b7d18) (declare (uniform ) sampler2D m_sampY@0xac4b7df8) (declare (in ) vec4 gl_FragCoord@0xac323560) (declare (in ) bool gl_FrontFacing@0xad8bcd48) (declare (out ) vec4 gl_FragColor@0xad8bce90) (declare (out ) float gl_FragDepth@0xad8bcf68) (declare (in ) vec4 gl_Color@0xad8bd1d0) (declare (in ) vec4 gl_SecondaryColor@0xad8bd2a8) (declare (in ) float gl_FogFragCoord@0xad8bd410) (declare (uniform ) mat4 gl_ModelViewMatrix@0xad8bd4e8) (declare (uniform ) mat4 gl_ProjectionMatrix@0xad8bd630) (declare (uniform ) mat4 gl_ModelViewProjectionMatrix@0xad8bd708) (declare (uniform ) mat3 gl_NormalMatrix@0xad8bd928) (declare (uniform ) mat4 gl_ModelViewMatrixInverse@0xad8bda70) (declare (uniform ) mat4 gl_ProjectionMatrixInverse@0xad8bdb48) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixInverse@0xad8bdc90) (declare (uniform ) mat4 gl_ModelViewMatrixTranspose@0xad8bdfc0) (declare (uniform ) mat4 gl_ProjectionMatrixTranspose@0xad8be098) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixTranspose@0xad8be2d8) (declare (uniform ) mat4 gl_ModelViewMatrixInverseTranspose@0xad8be4f8) (declare (uniform ) mat4 gl_ProjectionMatrixInverseTranspose@0xad8be718) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixInverseTranspose@0xad8be938) (declare (uniform ) float gl_NormalScale@0xad8beb58) (declare (uniform ) gl_LightModelParameters gl_LightModel@0xad8beca0) (declare () int gl_MaxLights@0xad8bed78) (declare () int gl_MaxClipPlanes@0xad8bef98) (declare () int gl_MaxTextureUnits@0xad8bf1b8) (declare () int gl_MaxTextureCoords@0xad8bf4e8) (declare () int gl_MaxVertexAttribs@0xad8bf728) (declare () int gl_MaxVertexUniformComponents@0xad8bf948) (declare () int gl_MaxVaryingFloats@0xad8bfcb0) (declare () int gl_MaxVertexTextureImageUnits@0xad8bfed0) (declare () int gl_MaxCombinedTextureImageUnits@0xad8c01c8) (declare () int gl_MaxTextureImageUnits@0xad8c0530) (declare () int gl_MaxFragmentUniformComponents@0xad8c0858) (declare (uniform ) (array mat4 8) gl_TextureMatrix@0xad8c0d38) (declare (uniform ) (array mat4 8) gl_TextureMatrixInverse@0xad8c0ea0) (declare (uniform ) (array mat4 8) gl_TextureMatrixTranspose@0xad8c0fe8) (declare (uniform ) (array mat4 8) gl_TextureMatrixInverseTranspose@0xad8c1238) (declare (uniform ) gl_DepthRangeParameters gl_DepthRange@0xad8c14e8) (declare (uniform ) (array vec4 6) gl_ClipPlane@0xad8c22d0) (declare (uniform ) gl_PointParameters gl_Point@0xad8c2750) (declare (uniform ) gl_MaterialParameters gl_FrontMaterial@0xad8c2a78) (declare (uniform ) gl_MaterialParameters gl_BackMaterial@0xad8c3be8) (declare (uniform ) (array gl_LightSourceParameters 8) gl_LightSource@0xad8c4a08) (declare (uniform ) gl_LightModelProducts gl_FrontLightModelProduct@0xad8c5600) (declare (uniform ) gl_LightModelProducts gl_BackLightModelProduct@0xad8c6c10) (declare (uniform ) (array gl_LightProducts 8) gl_FrontLightProduct@0xad8c74a0) (declare (uniform ) (array gl_LightProducts 8) gl_BackLightProduct@0xad8c7860) (declare (uniform ) (array vec4 8) gl_TextureEnvColor@0xad8c7af0) (declare (uniform ) (array vec4 8) gl_EyePlaneS@0xad8c7e90) (declare (uniform ) (array vec4 8) gl_EyePlaneT@0xad8c8120) (declare (uniform ) (array vec4 8) gl_EyePlaneR@0xad8c84e0) (declare (uniform ) (array vec4 8) gl_EyePlaneQ@0xad8c8770) (declare (uniform ) (array vec4 8) gl_ObjectPlaneS@0xad8c8b30) (declare (uniform ) (array vec4 8) gl_ObjectPlaneT@0xad8c8dc0) (declare (uniform ) (array vec4 8) gl_ObjectPlaneR@0xad8ca860) (declare (uniform ) (array vec4 8) gl_ObjectPlaneQ@0xad8caa30) (declare (uniform ) gl_FogParameters gl_Fog@0xad8cabe0) (declare (in ) (array vec4 0) gl_TexCoord@0xad8cad90) (declare () int gl_MaxDrawBuffers@0xad8cb2c0) (declare (out ) (array vec4 8) gl_FragData@0xad8cb548) (function stretch (signature vec2 (parameters (declare (in ) vec2 pos@0xac4b7618) ) ( (return (var_ref pos@0xac4b7618) ) )) ) (function texture2D (signature vec4 (parameters (declare (in ) sampler2D sampler@0xac4b7298) (declare (in ) vec2 P@0xac4b71b8) ) ( )) ) (function main (signature void (parameters ) ( (declare () vec4 rgb@0xac4b7458) (declare (temporary ) vec2 stretch_retval@0xac4b7378) (assign (constant bool (1)) (xy) (var_ref stretch_retval@0xac4b7378) (call stretch ((var_ref m_cordY@0xac4b7b58) )) ) (declare (temporary ) vec4 texture2D_retval@0xac4b70d8) (assign (constant bool (1)) (xyzw) (var_ref texture2D_retval@0xac4b70d8) (call texture2D ((var_ref m_sampY@0xac4b7df8) (var_ref stretch_retval@0xac4b7378) )) ) (declare (temporary ) vec2 stretch_retval@0xac4b6ff8) (assign (constant bool (1)) (xy) (var_ref stretch_retval@0xac4b6ff8) (call stretch ((var_ref m_cordU@0xac4b7a78) )) ) (declare (temporary ) vec4 texture2D_retval@0xac4b6f18) (assign (constant bool (1)) (xyzw) (var_ref texture2D_retval@0xac4b6f18) (call texture2D ((var_ref m_sampU@0xac4b7d18) (var_ref stretch_retval@0xac4b6ff8) )) ) (declare (temporary ) vec2 stretch_retval@0xac4b6e38) (assign (constant bool (1)) (xy) (var_ref stretch_retval@0xac4b6e38) (call stretch ((var_ref m_cordV@0xac4b7998) )) ) (declare (temporary ) vec4 texture2D_retval@0xac4b6d58) (assign (constant bool (1)) (xyzw) (var_ref texture2D_retval@0xac4b6d58) (call texture2D ((var_ref m_sampV@0xac4b7c38) (var_ref stretch_retval@0xac4b6e38) )) ) (declare (temporary ) vec4 vec_ctor@0xac4a3bb8) (assign (constant bool (1)) (w) (var_ref vec_ctor@0xac4a3bb8) (constant float (1,000000)) ) (assign (constant bool (1)) (x) (var_ref vec_ctor@0xac4a3bb8) (swiz x (var_ref texture2D_retval@0xac4b70d8) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0xac4a3bb8) (swiz y (var_ref texture2D_retval@0xac4b6f18) )) (assign (constant bool (1)) (z) (var_ref vec_ctor@0xac4a3bb8) (swiz w (var_ref texture2D_retval@0xac4b6d58) )) (assign (constant bool (1)) (xyzw) (var_ref rgb@0xac4b7458) (expression vec4 * (var_ref m_yuvmat@0xac4b77d8) (var_ref vec_ctor@0xac4a3bb8) ) ) (assign (constant bool (1)) (w) (var_ref rgb@0xac4b7458) (swiz w (var_ref gl_Color@0xad8bd1d0) )) (assign (constant bool (1)) (xyzw) (var_ref gl_FragColor@0xad8bce90) (var_ref rgb@0xac4b7458) ) )) ) ) GLSL IR for linked vertex program 3: ( (declare (out ) vec2 m_cordV@0xad8bcb28) (declare (out ) vec2 m_cordU@0xad8b9b00) (declare (out ) vec2 m_cordY@0xad8b9a28) (declare (out ) vec4 gl_Position@0xad8b9950) (declare (in ) vec4 gl_Vertex@0xad8b8c50) (declare (in ) vec4 gl_Color@0xad8b8320) (declare (in ) vec4 gl_MultiTexCoord0@0xac322348) (declare (in ) vec4 gl_MultiTexCoord1@0xad8b9df8) (declare (in ) vec4 gl_MultiTexCoord2@0xad8b9730) (declare (out ) vec4 gl_FrontColor@0xad8b70f8) (declare (uniform ) mat4 gl_ModelViewProjectionMatrix@0xac43e9b8) (declare (uniform ) (array mat4 3) gl_TextureMatrix@0xad8bad18) (function main (signature void (parameters ) ( (declare (temporary ) mat4 mat_op_to_vec@0xac273d90) (assign (constant bool (1)) () (var_ref mat_op_to_vec@0xac273d90) (array_ref (var_ref gl_TextureMatrix@0xad8bad18) (constant int (0)) ) ) (assign (constant bool (1)) (xy) (var_ref m_cordY@0xad8b9a28) (swiz xy (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref mat_op_to_vec@0xac273d90) (constant int (0)) ) (swiz x (var_ref gl_MultiTexCoord0@0xac322348) )) (expression vec4 * (array_ref (var_ref mat_op_to_vec@0xac273d90) (constant int (1)) ) (swiz y (var_ref gl_MultiTexCoord0@0xac322348) )) ) (expression vec4 * (array_ref (var_ref mat_op_to_vec@0xac273d90) (constant int (2)) ) (swiz z (var_ref gl_MultiTexCoord0@0xac322348) )) ) (expression vec4 * (array_ref (var_ref mat_op_to_vec@0xac273d90) (constant int (3)) ) (swiz w (var_ref gl_MultiTexCoord0@0xac322348) )) ) )) (declare (temporary ) mat4 mat_op_to_vec@0xac20c5b8) (assign (constant bool (1)) () (var_ref mat_op_to_vec@0xac20c5b8) (array_ref (var_ref gl_TextureMatrix@0xad8bad18) (constant int (1)) ) ) (assign (constant bool (1)) (xy) (var_ref m_cordU@0xad8b9b00) (swiz xy (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref mat_op_to_vec@0xac20c5b8) (constant int (0)) ) (swiz x (var_ref gl_MultiTexCoord1@0xad8b9df8) )) (expression vec4 * (array_ref (var_ref mat_op_to_vec@0xac20c5b8) (constant int (1)) ) (swiz y (var_ref gl_MultiTexCoord1@0xad8b9df8) )) ) (expression vec4 * (array_ref (var_ref mat_op_to_vec@0xac20c5b8) (constant int (2)) ) (swiz z (var_ref gl_MultiTexCoord1@0xad8b9df8) )) ) (expression vec4 * (array_ref (var_ref mat_op_to_vec@0xac20c5b8) (constant int (3)) ) (swiz w (var_ref gl_MultiTexCoord1@0xad8b9df8) )) ) )) (declare (temporary ) mat4 mat_op_to_vec@0xac208d30) (assign (constant bool (1)) () (var_ref mat_op_to_vec@0xac208d30) (array_ref (var_ref gl_TextureMatrix@0xad8bad18) (constant int (2)) ) ) (assign (constant bool (1)) (xy) (var_ref m_cordV@0xad8bcb28) (swiz xy (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref mat_op_to_vec@0xac208d30) (constant int (0)) ) (swiz x (var_ref gl_MultiTexCoord2@0xad8b9730) )) (expression vec4 * (array_ref (var_ref mat_op_to_vec@0xac208d30) (constant int (1)) ) (swiz y (var_ref gl_MultiTexCoord2@0xad8b9730) )) ) (expression vec4 * (array_ref (var_ref mat_op_to_vec@0xac208d30) (constant int (2)) ) (swiz z (var_ref gl_MultiTexCoord2@0xad8b9730) )) ) (expression vec4 * (array_ref (var_ref mat_op_to_vec@0xac208d30) (constant int (3)) ) (swiz w (var_ref gl_MultiTexCoord2@0xad8b9730) )) ) )) (assign (constant bool (1)) (xyzw) (var_ref gl_Position@0xad8b9950) (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0xac43e9b8) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0xad8b8c50) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0xac43e9b8) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0xad8b8c50) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0xac43e9b8) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0xad8b8c50) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0xac43e9b8) (constant int (3)) ) (swiz w (var_ref gl_Vertex@0xad8b8c50) )) ) ) (assign (constant bool (1)) (xyzw) (var_ref gl_FrontColor@0xad8b70f8) (var_ref gl_Color@0xad8b8320) ) )) ) ) Mesa IR for linked vertex program 3: 0: (assign (constant bool (1)) () (var_ref mat_op_to_vec@0xac273d90) (array_ref (var_ref gl_TextureMatrix@0xad8bad18) (constant int (0)) ) ) MOV TEMP[1], STATE[4]; 1: MOV TEMP[2], STATE[5]; 2: MOV TEMP[3], STATE[6]; 3: MOV TEMP[4], STATE[7]; 4: (expression vec4 * (array_ref (var_ref mat_op_to_vec@0xac273d90) (constant int (0)) ) (swiz x (var_ref gl_MultiTexCoord0@0xac322348) )) MUL TEMP[5], TEMP[1], INPUT[8].xxxx; 5: (expression vec4 + (expression vec4 * (array_ref (var_ref mat_op_to_vec@0xac273d90) (constant int (0)) ) (swiz x (var_ref gl_MultiTexCoord0@0xac322348) )) (expression vec4 * (array_ref (var_ref mat_op_to_vec@0xac273d90) (constant int (1)) ) (swiz y (var_ref gl_MultiTexCoord0@0xac322348) )) ) MAD TEMP[6], TEMP[2], INPUT[8].yyyy, TEMP[5]; 6: (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref mat_op_to_vec@0xac273d90) (constant int (0)) ) (swiz x (var_ref gl_MultiTexCoord0@0xac322348) )) (expression vec4 * (array_ref (var_ref mat_op_to_vec@0xac273d90) (constant int (1)) ) (swiz y (var_ref gl_MultiTexCoord0@0xac322348) )) ) (expression vec4 * (array_ref (var_ref mat_op_to_vec@0xac273d90) (constant int (2)) ) (swiz z (var_ref gl_MultiTexCoord0@0xac322348) )) ) MAD TEMP[7], TEMP[3], INPUT[8].zzzz, TEMP[6]; 7: (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref mat_op_to_vec@0xac273d90) (constant int (0)) ) (swiz x (var_ref gl_MultiTexCoord0@0xac322348) )) (expression vec4 * (array_ref (var_ref mat_op_to_vec@0xac273d90) (constant int (1)) ) (swiz y (var_ref gl_MultiTexCoord0@0xac322348) )) ) (expression vec4 * (array_ref (var_ref mat_op_to_vec@0xac273d90) (constant int (2)) ) (swiz z (var_ref gl_MultiTexCoord0@0xac322348) )) ) (expression vec4 * (array_ref (var_ref mat_op_to_vec@0xac273d90) (constant int (3)) ) (swiz w (var_ref gl_MultiTexCoord0@0xac322348) )) ) MAD TEMP[8], TEMP[4], INPUT[8].wwww, TEMP[7]; 8: (assign (constant bool (1)) (xy) (var_ref m_cordY@0xad8b9a28) (swiz xy (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref mat_op_to_vec@0xac273d90) (constant int (0)) ) (swiz x (var_ref gl_MultiTexCoord0@0xac322348) )) (expression vec4 * (array_ref (var_ref mat_op_to_vec@0xac273d90) (constant int (1)) ) (swiz y (var_ref gl_MultiTexCoord0@0xac322348) )) ) (expression vec4 * (array_ref (var_ref mat_op_to_vec@0xac273d90) (constant int (2)) ) (swiz z (var_ref gl_MultiTexCoord0@0xac322348) )) ) (expression vec4 * (array_ref (var_ref mat_op_to_vec@0xac273d90) (constant int (3)) ) (swiz w (var_ref gl_MultiTexCoord0@0xac322348) )) ) )) MOV OUTPUT[18].xy, TEMP[8].xyxx; 9: (assign (constant bool (1)) () (var_ref mat_op_to_vec@0xac20c5b8) (array_ref (var_ref gl_TextureMatrix@0xad8bad18) (constant int (1)) ) ) MOV TEMP[9], STATE[8]; 10: MOV TEMP[10], STATE[9]; 11: MOV TEMP[11], STATE[10]; 12: MOV TEMP[12], STATE[11]; 13: (expression vec4 * (array_ref (var_ref mat_op_to_vec@0xac20c5b8) (constant int (0)) ) (swiz x (var_ref gl_MultiTexCoord1@0xad8b9df8) )) MUL TEMP[13], TEMP[9], INPUT[9].xxxx; 14: (expression vec4 + (expression vec4 * (array_ref (var_ref mat_op_to_vec@0xac20c5b8) (constant int (0)) ) (swiz x (var_ref gl_MultiTexCoord1@0xad8b9df8) )) (expression vec4 * (array_ref (var_ref mat_op_to_vec@0xac20c5b8) (constant int (1)) ) (swiz y (var_ref gl_MultiTexCoord1@0xad8b9df8) )) ) MAD TEMP[14], TEMP[10], INPUT[9].yyyy, TEMP[13]; 15: (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref mat_op_to_vec@0xac20c5b8) (constant int (0)) ) (swiz x (var_ref gl_MultiTexCoord1@0xad8b9df8) )) (expression vec4 * (array_ref (var_ref mat_op_to_vec@0xac20c5b8) (constant int (1)) ) (swiz y (var_ref gl_MultiTexCoord1@0xad8b9df8) )) ) (expression vec4 * (array_ref (var_ref mat_op_to_vec@0xac20c5b8) (constant int (2)) ) (swiz z (var_ref gl_MultiTexCoord1@0xad8b9df8) )) ) MAD TEMP[15], TEMP[11], INPUT[9].zzzz, TEMP[14]; 16: (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref mat_op_to_vec@0xac20c5b8) (constant int (0)) ) (swiz x (var_ref gl_MultiTexCoord1@0xad8b9df8) )) (expression vec4 * (array_ref (var_ref mat_op_to_vec@0xac20c5b8) (constant int (1)) ) (swiz y (var_ref gl_MultiTexCoord1@0xad8b9df8) )) ) (expression vec4 * (array_ref (var_ref mat_op_to_vec@0xac20c5b8) (constant int (2)) ) (swiz z (var_ref gl_MultiTexCoord1@0xad8b9df8) )) ) (expression vec4 * (array_ref (var_ref mat_op_to_vec@0xac20c5b8) (constant int (3)) ) (swiz w (var_ref gl_MultiTexCoord1@0xad8b9df8) )) ) MAD TEMP[16], TEMP[12], INPUT[9].wwww, TEMP[15]; 17: (assign (constant bool (1)) (xy) (var_ref m_cordU@0xad8b9b00) (swiz xy (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref mat_op_to_vec@0xac20c5b8) (constant int (0)) ) (swiz x (var_ref gl_MultiTexCoord1@0xad8b9df8) )) (expression vec4 * (array_ref (var_ref mat_op_to_vec@0xac20c5b8) (constant int (1)) ) (swiz y (var_ref gl_MultiTexCoord1@0xad8b9df8) )) ) (expression vec4 * (array_ref (var_ref mat_op_to_vec@0xac20c5b8) (constant int (2)) ) (swiz z (var_ref gl_MultiTexCoord1@0xad8b9df8) )) ) (expression vec4 * (array_ref (var_ref mat_op_to_vec@0xac20c5b8) (constant int (3)) ) (swiz w (var_ref gl_MultiTexCoord1@0xad8b9df8) )) ) )) MOV OUTPUT[17].xy, TEMP[16].xyxx; 18: (assign (constant bool (1)) () (var_ref mat_op_to_vec@0xac208d30) (array_ref (var_ref gl_TextureMatrix@0xad8bad18) (constant int (2)) ) ) MOV TEMP[17], STATE[12]; 19: MOV TEMP[18], STATE[13]; 20: MOV TEMP[19], STATE[14]; 21: MOV TEMP[20], STATE[15]; 22: (expression vec4 * (array_ref (var_ref mat_op_to_vec@0xac208d30) (constant int (0)) ) (swiz x (var_ref gl_MultiTexCoord2@0xad8b9730) )) MUL TEMP[21], TEMP[17], INPUT[10].xxxx; 23: (expression vec4 + (expression vec4 * (array_ref (var_ref mat_op_to_vec@0xac208d30) (constant int (0)) ) (swiz x (var_ref gl_MultiTexCoord2@0xad8b9730) )) (expression vec4 * (array_ref (var_ref mat_op_to_vec@0xac208d30) (constant int (1)) ) (swiz y (var_ref gl_MultiTexCoord2@0xad8b9730) )) ) MAD TEMP[22], TEMP[18], INPUT[10].yyyy, TEMP[21]; 24: (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref mat_op_to_vec@0xac208d30) (constant int (0)) ) (swiz x (var_ref gl_MultiTexCoord2@0xad8b9730) )) (expression vec4 * (array_ref (var_ref mat_op_to_vec@0xac208d30) (constant int (1)) ) (swiz y (var_ref gl_MultiTexCoord2@0xad8b9730) )) ) (expression vec4 * (array_ref (var_ref mat_op_to_vec@0xac208d30) (constant int (2)) ) (swiz z (var_ref gl_MultiTexCoord2@0xad8b9730) )) ) MAD TEMP[23], TEMP[19], INPUT[10].zzzz, TEMP[22]; 25: (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref mat_op_to_vec@0xac208d30) (constant int (0)) ) (swiz x (var_ref gl_MultiTexCoord2@0xad8b9730) )) (expression vec4 * (array_ref (var_ref mat_op_to_vec@0xac208d30) (constant int (1)) ) (swiz y (var_ref gl_MultiTexCoord2@0xad8b9730) )) ) (expression vec4 * (array_ref (var_ref mat_op_to_vec@0xac208d30) (constant int (2)) ) (swiz z (var_ref gl_MultiTexCoord2@0xad8b9730) )) ) (expression vec4 * (array_ref (var_ref mat_op_to_vec@0xac208d30) (constant int (3)) ) (swiz w (var_ref gl_MultiTexCoord2@0xad8b9730) )) ) MAD TEMP[24], TEMP[20], INPUT[10].wwww, TEMP[23]; 26: (assign (constant bool (1)) (xy) (var_ref m_cordV@0xad8bcb28) (swiz xy (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref mat_op_to_vec@0xac208d30) (constant int (0)) ) (swiz x (var_ref gl_MultiTexCoord2@0xad8b9730) )) (expression vec4 * (array_ref (var_ref mat_op_to_vec@0xac208d30) (constant int (1)) ) (swiz y (var_ref gl_MultiTexCoord2@0xad8b9730) )) ) (expression vec4 * (array_ref (var_ref mat_op_to_vec@0xac208d30) (constant int (2)) ) (swiz z (var_ref gl_MultiTexCoord2@0xad8b9730) )) ) (expression vec4 * (array_ref (var_ref mat_op_to_vec@0xac208d30) (constant int (3)) ) (swiz w (var_ref gl_MultiTexCoord2@0xad8b9730) )) ) )) MOV OUTPUT[16].xy, TEMP[24].xyxx; 27: (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0xac43e9b8) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0xad8b8c50) )) MUL TEMP[25], STATE[0], INPUT[0].xxxx; 28: (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0xac43e9b8) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0xad8b8c50) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0xac43e9b8) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0xad8b8c50) )) ) MAD TEMP[26], STATE[1], INPUT[0].yyyy, TEMP[25]; 29: (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0xac43e9b8) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0xad8b8c50) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0xac43e9b8) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0xad8b8c50) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0xac43e9b8) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0xad8b8c50) )) ) MAD TEMP[27], STATE[2], INPUT[0].zzzz, TEMP[26]; 30: (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0xac43e9b8) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0xad8b8c50) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0xac43e9b8) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0xad8b8c50) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0xac43e9b8) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0xad8b8c50) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0xac43e9b8) (constant int (3)) ) (swiz w (var_ref gl_Vertex@0xad8b8c50) )) ) MAD TEMP[28], STATE[3], INPUT[0].wwww, TEMP[27]; 31: (assign (constant bool (1)) (xyzw) (var_ref gl_Position@0xad8b9950) (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0xac43e9b8) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0xad8b8c50) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0xac43e9b8) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0xad8b8c50) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0xac43e9b8) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0xad8b8c50) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0xac43e9b8) (constant int (3)) ) (swiz w (var_ref gl_Vertex@0xad8b8c50) )) ) ) MOV OUTPUT[0], TEMP[28]; 32: (assign (constant bool (1)) (xyzw) (var_ref gl_FrontColor@0xad8b70f8) (var_ref gl_Color@0xad8b8320) ) MOV OUTPUT[1], INPUT[3]; 33: END GLSL IR for linked fragment program 3: ( (declare (uniform ) mat4 m_yuvmat@0xad8a8360) (declare (in ) vec2 m_cordV@0xad8a9258) (declare (in ) vec2 m_cordU@0xad8aa1a8) (declare (in ) vec2 m_cordY@0xad8a9ca0) (declare (uniform ) sampler2D m_sampV@0xad8aab98) (declare (uniform ) sampler2D m_sampU@0xad8abae0) (declare (uniform ) sampler2D m_sampY@0xad8ab490) (declare (out ) vec4 gl_FragColor@0xad8acf18) (declare (in ) vec4 gl_Color@0xad8aeb08) (function main (signature void (parameters ) ( (declare () vec4 rgb@0xac4da5b8) (declare (temporary ) vec4 vec_ctor@0xad8a77c8) (assign (constant bool (1)) (w) (var_ref vec_ctor@0xad8a77c8) (constant float (1,000000)) ) (assign (constant bool (1)) (x) (var_ref vec_ctor@0xad8a77c8) (swiz x (tex (var_ref m_sampY@0xad8ab490) (var_ref m_cordY@0xad8a9ca0) (0 0 0) 1 () ))) (assign (constant bool (1)) (y) (var_ref vec_ctor@0xad8a77c8) (swiz y (tex (var_ref m_sampU@0xad8abae0) (var_ref m_cordU@0xad8aa1a8) (0 0 0) 1 () ))) (assign (constant bool (1)) (z) (var_ref vec_ctor@0xad8a77c8) (swiz w (tex (var_ref m_sampV@0xad8aab98) (var_ref m_cordV@0xad8a9258) (0 0 0) 1 () ))) (assign (constant bool (1)) (xyzw) (var_ref rgb@0xac4da5b8) (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref m_yuvmat@0xad8a8360) (constant int (0)) ) (swiz x (var_ref vec_ctor@0xad8a77c8) )) (expression vec4 * (array_ref (var_ref m_yuvmat@0xad8a8360) (constant int (1)) ) (swiz y (var_ref vec_ctor@0xad8a77c8) )) ) (expression vec4 * (array_ref (var_ref m_yuvmat@0xad8a8360) (constant int (2)) ) (swiz z (var_ref vec_ctor@0xad8a77c8) )) ) (array_ref (var_ref m_yuvmat@0xad8a8360) (constant int (3)) ) ) ) (assign (constant bool (1)) (w) (var_ref rgb@0xac4da5b8) (swiz w (var_ref gl_Color@0xad8aeb08) )) (assign (constant bool (1)) (xyzw) (var_ref gl_FragColor@0xad8acf18) (var_ref rgb@0xac4da5b8) ) )) ) ) Mesa IR for linked fragment program 3: 0: (assign (constant bool (1)) (w) (var_ref vec_ctor@0xad8a77c8) (constant float (1,000000)) ) MOV TEMP[1].w, CONST[7].xxxx; 1: (tex (var_ref m_sampY@0xad8ab490) (var_ref m_cordY@0xad8a9ca0) (0 0 0) 1 () ) MOV TEMP[2], INPUT[16].xyyy; 2: TEX TEMP[3], TEMP[2], texture[2], 2D; 3: (assign (constant bool (1)) (x) (var_ref vec_ctor@0xad8a77c8) (swiz x (tex (var_ref m_sampY@0xad8ab490) (var_ref m_cordY@0xad8a9ca0) (0 0 0) 1 () ))) MOV TEMP[1].x, TEMP[3].xxxx; 4: (tex (var_ref m_sampU@0xad8abae0) (var_ref m_cordU@0xad8aa1a8) (0 0 0) 1 () ) MOV TEMP[4], INPUT[15].xyyy; 5: TEX TEMP[5], TEMP[4], texture[1], 2D; 6: (assign (constant bool (1)) (y) (var_ref vec_ctor@0xad8a77c8) (swiz y (tex (var_ref m_sampU@0xad8abae0) (var_ref m_cordU@0xad8aa1a8) (0 0 0) 1 () ))) MOV TEMP[1].y, TEMP[5].yyyy; 7: (tex (var_ref m_sampV@0xad8aab98) (var_ref m_cordV@0xad8a9258) (0 0 0) 1 () ) MOV TEMP[6], INPUT[14].xyyy; 8: TEX TEMP[7], TEMP[6], texture[0], 2D; 9: (assign (constant bool (1)) (z) (var_ref vec_ctor@0xad8a77c8) (swiz w (tex (var_ref m_sampV@0xad8aab98) (var_ref m_cordV@0xad8a9258) (0 0 0) 1 () ))) MOV TEMP[1].z, TEMP[7].wwww; 10: (expression vec4 * (array_ref (var_ref m_yuvmat@0xad8a8360) (constant int (0)) ) (swiz x (var_ref vec_ctor@0xad8a77c8) )) MUL TEMP[8], UNIFORM[0], TEMP[1].xxxx; 11: (expression vec4 + (expression vec4 * (array_ref (var_ref m_yuvmat@0xad8a8360) (constant int (0)) ) (swiz x (var_ref vec_ctor@0xad8a77c8) )) (expression vec4 * (array_ref (var_ref m_yuvmat@0xad8a8360) (constant int (1)) ) (swiz y (var_ref vec_ctor@0xad8a77c8) )) ) MAD TEMP[9], UNIFORM[1], TEMP[1].yyyy, TEMP[8]; 12: (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref m_yuvmat@0xad8a8360) (constant int (0)) ) (swiz x (var_ref vec_ctor@0xad8a77c8) )) (expression vec4 * (array_ref (var_ref m_yuvmat@0xad8a8360) (constant int (1)) ) (swiz y (var_ref vec_ctor@0xad8a77c8) )) ) (expression vec4 * (array_ref (var_ref m_yuvmat@0xad8a8360) (constant int (2)) ) (swiz z (var_ref vec_ctor@0xad8a77c8) )) ) MAD TEMP[10], UNIFORM[2], TEMP[1].zzzz, TEMP[9]; 13: (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref m_yuvmat@0xad8a8360) (constant int (0)) ) (swiz x (var_ref vec_ctor@0xad8a77c8) )) (expression vec4 * (array_ref (var_ref m_yuvmat@0xad8a8360) (constant int (1)) ) (swiz y (var_ref vec_ctor@0xad8a77c8) )) ) (expression vec4 * (array_ref (var_ref m_yuvmat@0xad8a8360) (constant int (2)) ) (swiz z (var_ref vec_ctor@0xad8a77c8) )) ) (array_ref (var_ref m_yuvmat@0xad8a8360) (constant int (3)) ) ) ADD TEMP[11], TEMP[10], UNIFORM[3]; 14: (assign (constant bool (1)) (xyzw) (var_ref rgb@0xac4da5b8) (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref m_yuvmat@0xad8a8360) (constant int (0)) ) (swiz x (var_ref vec_ctor@0xad8a77c8) )) (expression vec4 * (array_ref (var_ref m_yuvmat@0xad8a8360) (constant int (1)) ) (swiz y (var_ref vec_ctor@0xad8a77c8) )) ) (expression vec4 * (array_ref (var_ref m_yuvmat@0xad8a8360) (constant int (2)) ) (swiz z (var_ref vec_ctor@0xad8a77c8) )) ) (array_ref (var_ref m_yuvmat@0xad8a8360) (constant int (3)) ) ) ) MOV TEMP[12], TEMP[11]; 15: (assign (constant bool (1)) (w) (var_ref rgb@0xac4da5b8) (swiz w (var_ref gl_Color@0xad8aeb08) )) MOV TEMP[12].w, INPUT[1].wwww; 16: (assign (constant bool (1)) (xyzw) (var_ref gl_FragColor@0xad8acf18) (var_ref rgb@0xac4da5b8) ) MOV OUTPUT[2], TEMP[12]; 17: END GLSL source for shader 4: varying vec2 cord;void main(){cord = vec2(gl_TextureMatrix[0] * gl_MultiTexCoord0);gl_Position = ftransform();gl_FrontColor = gl_Color;} GLSL IR for shader 4: ( (declare (out ) vec2 cord@0xac449ed0) (declare (out ) vec4 gl_Position@0xad8d5a30) (declare (out ) float gl_PointSize@0xad8d6548) (declare (in ) vec4 gl_Vertex@0xad8d47a0) (declare (in ) vec3 gl_Normal@0xad8d51c0) (declare (in ) vec4 gl_Color@0xad8b9d20) (declare (in ) vec4 gl_SecondaryColor@0xad8b8e70) (declare (in ) vec4 gl_MultiTexCoord0@0xad8ba030) (declare (in ) vec4 gl_MultiTexCoord1@0xad8b6ba8) (declare (in ) vec4 gl_MultiTexCoord2@0xad8dfc28) (declare (in ) vec4 gl_MultiTexCoord3@0xad8b83f8) (declare (in ) vec4 gl_MultiTexCoord4@0xad8de4b0) (declare (in ) vec4 gl_MultiTexCoord5@0xad8c5500) (declare (in ) vec4 gl_MultiTexCoord6@0xac48e088) (declare (in ) vec4 gl_MultiTexCoord7@0xac268830) (declare (in ) float gl_FogCoord@0xac267840) (declare (out ) vec4 gl_ClipVertex@0xac202e88) (declare (out ) vec4 gl_FrontColor@0xac2014b0) (declare (out ) vec4 gl_BackColor@0xad8e6b60) (declare (out ) vec4 gl_FrontSecondaryColor@0xad8e5ff0) (declare (out ) vec4 gl_BackSecondaryColor@0xad8e6210) (declare (out ) float gl_FogFragCoord@0xad8e6430) (declare (uniform ) mat4 gl_ModelViewMatrix@0xad8e6578) (declare (uniform ) mat4 gl_ProjectionMatrix@0xad8e6650) (declare (uniform ) mat4 gl_ModelViewProjectionMatrix@0xad8e6868) (declare (uniform ) mat3 gl_NormalMatrix@0xad8e6a88) (declare (uniform ) mat4 gl_ModelViewMatrixInverse@0xad8e5410) (declare (uniform ) mat4 gl_ProjectionMatrixInverse@0xad8e56a0) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixInverse@0xad8e5990) (declare (uniform ) mat4 gl_ModelViewMatrixTranspose@0xad8e5bb0) (declare (uniform ) mat4 gl_ProjectionMatrixTranspose@0xad8e5dd0) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixTranspose@0xad8e52c8) (declare (uniform ) mat4 gl_ModelViewMatrixInverseTranspose@0xad8e44b8) (declare (uniform ) mat4 gl_ProjectionMatrixInverseTranspose@0xad8e4820) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixInverseTranspose@0xad8e4ab0) (declare (uniform ) float gl_NormalScale@0xad8e4e18) (declare (uniform ) gl_LightModelParameters gl_LightModel@0xad8e4f60) (declare () int gl_MaxLights@0xad8e50a8) (declare () int gl_MaxClipPlanes@0xac313070) (declare () int gl_MaxTextureUnits@0xac3133d8) (declare () int gl_MaxTextureCoords@0xac313668) (declare () int gl_MaxVertexAttribs@0xac3139c8) (declare () int gl_MaxVertexUniformComponents@0xad8e3d78) (declare () int gl_MaxVaryingFloats@0xad8e4228) (declare () int gl_MaxVertexTextureImageUnits@0xac3119e0) (declare () int gl_MaxCombinedTextureImageUnits@0xac311e88) (declare () int gl_MaxTextureImageUnits@0xac312338) (declare () int gl_MaxFragmentUniformComponents@0xac3127e8) (declare (uniform ) (array mat4 8) gl_TextureMatrix@0xac312bc0) (declare (uniform ) (array mat4 8) gl_TextureMatrixInverse@0xad8d7478) (declare (uniform ) (array mat4 8) gl_TextureMatrixTranspose@0xad8d6ce0) (declare (uniform ) (array mat4 8) gl_TextureMatrixInverseTranspose@0xad8d68a8) (declare (uniform ) gl_DepthRangeParameters gl_DepthRange@0xad8d6398) (declare (uniform ) (array vec4 6) gl_ClipPlane@0xad8d5e78) (declare (uniform ) gl_PointParameters gl_Point@0xad8d5958) (declare (uniform ) gl_MaterialParameters gl_FrontMaterial@0xad8d56d0) (declare (uniform ) gl_MaterialParameters gl_BackMaterial@0xad8d5520) (declare (uniform ) (array gl_LightSourceParameters 8) gl_LightSource@0xad8d5448) (declare (uniform ) gl_LightModelProducts gl_FrontLightModelProduct@0xad8d5010) (declare (uniform ) gl_LightModelProducts gl_BackLightModelProduct@0xad8d4b00) (declare (uniform ) (array gl_LightProducts 8) gl_FrontLightProduct@0xac4488a0) (declare (uniform ) (array gl_LightProducts 8) gl_BackLightProduct@0xac448ba0) (declare (uniform ) (array vec4 8) gl_TextureEnvColor@0xac448c78) (declare (uniform ) (array vec4 8) gl_EyePlaneS@0xac448ea0) (declare (uniform ) (array vec4 8) gl_EyePlaneT@0xac448f78) (declare (uniform ) (array vec4 8) gl_EyePlaneR@0xac4491a0) (declare (uniform ) (array vec4 8) gl_EyePlaneQ@0xac449278) (declare (uniform ) (array vec4 8) gl_ObjectPlaneS@0xac449578) (declare (uniform ) (array vec4 8) gl_ObjectPlaneT@0xac449650) (declare (uniform ) (array vec4 8) gl_ObjectPlaneR@0xac449798) (declare (uniform ) (array vec4 8) gl_ObjectPlaneQ@0xac449870) (declare (uniform ) gl_FogParameters gl_Fog@0xac4499b8) (declare (out ) (array vec4 0) gl_TexCoord@0xac449a90) (declare () int gl_MaxDrawBuffers@0xac449bd8) (function ftransform (signature vec4 (parameters ) ( )) ) (function main (signature void (parameters ) ( (assign (constant bool (1)) (xy) (var_ref cord@0xac449ed0) (swiz xy (expression vec4 * (array_ref (var_ref gl_TextureMatrix@0xac312bc0) (constant int (0)) ) (var_ref gl_MultiTexCoord0@0xad8ba030) ) )) (declare (temporary ) vec4 ftransform_retval@0xad8e9220) (assign (constant bool (1)) (xyzw) (var_ref ftransform_retval@0xad8e9220) (call ftransform ()) ) (assign (constant bool (1)) (xyzw) (var_ref gl_Position@0xad8d5a30) (var_ref ftransform_retval@0xad8e9220) ) (assign (constant bool (1)) (xyzw) (var_ref gl_FrontColor@0xac2014b0) (var_ref gl_Color@0xad8b9d20) ) )) ) ) GLSL source for shader 5: #define HAS_FLOAT_TEXTURE 0 #define XBMC_STRETCH 0 #define USE1DTEXTURE 1 /* * Copyright (C) 2010 Team XBMC * http://www.xbmc.org * * This Program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2, or (at your option) * any later version. * * This Program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with XBMC; see the file COPYING. If not, write to * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. * http://www.gnu.org/copyleft/gpl.html * */ uniform sampler2D img; uniform vec2 stepxy; uniform float m_stretch; varying vec2 cord; #if (USE1DTEXTURE) uniform sampler1D kernelTex; #else uniform sampler2D kernelTex; #endif //nvidia's half is a 16 bit float and can bring some speed improvements //without affecting quality #ifndef __GLSL_CG_DATA_TYPES #define half float #define half3 vec3 #define half4 vec4 #endif half4 weight(float pos) { #if (HAS_FLOAT_TEXTURE) #if (USE1DTEXTURE) return texture1D(kernelTex, pos); #else return texture2D(kernelTex, vec2(pos, 0.5)); #endif #else #if (USE1DTEXTURE) return texture1D(kernelTex, pos) * 2.0 - 1.0; #else return texture2D(kernelTex, vec2(pos, 0.5)) * 2.0 - 1.0; #endif #endif } vec2 stretch(vec2 pos) { #if (XBMC_STRETCH) // our transform should map [0..1] to itself, with f(0) = 0, f(1) = 1, f(0.5) = 0.5, and f'(0.5) = b. // a simple curve to do this is g(x) = b(x-0.5) + (1-b)2^(n-1)(x-0.5)^n + 0.5 // where the power preserves sign. n = 2 is the simplest non-linear case (required when b != 1) float x = pos.x - 0.5; return vec2(mix(x * abs(x) * 2.0, x, m_stretch) + 0.5, pos.y); #else return pos; #endif } half3 pixel(float xpos, float ypos) { return texture2D(img, vec2(xpos, ypos)).rgb; } half3 line (float ypos, vec4 xpos, half4 linetaps) { return pixel(xpos.r, ypos) * linetaps.r + pixel(xpos.g, ypos) * linetaps.g + pixel(xpos.b, ypos) * linetaps.b + pixel(xpos.a, ypos) * linetaps.a; } void main() { vec2 pos = stretch(cord) + stepxy * 0.5; vec2 f = fract(pos / stepxy); half4 linetaps = weight(1.0 - f.x); half4 columntaps = weight(1.0 - f.y); //make sure all taps added together is exactly 1.0, otherwise some (very small) distortion can occur linetaps /= linetaps.r + linetaps.g + linetaps.b + linetaps.a; columntaps /= columntaps.r + columntaps.g + columntaps.b + columntaps.a; vec2 xystart = (-1.5 - f) * stepxy + pos; vec4 xpos = vec4(xystart.x, xystart.x + stepxy.x, xystart.x + stepxy.x * 2.0, xystart.x + stepxy.x * 3.0); gl_FragColor.rgb = line(xystart.y , xpos, linetaps) * columntaps.r + line(xystart.y + stepxy.y , xpos, linetaps) * columntaps.g + line(xystart.y + stepxy.y * 2.0, xpos, linetaps) * columntaps.b + line(xystart.y + stepxy.y * 3.0, xpos, linetaps) * columntaps.a; gl_FragColor.a = gl_Color.a; } GLSL IR for shader 5: ( (declare (uniform ) sampler1D kernelTex@0xac423e28) (declare (in ) vec2 cord@0xac20bd48) (declare (uniform ) float m_stretch@0xac20bef8) (declare (uniform ) vec2 stepxy@0xac26fa40) (declare (uniform ) sampler2D img@0xac26fcc8) (declare (in ) vec4 gl_FragCoord@0xac4ee018) (declare (in ) bool gl_FrontFacing@0xad8e9c58) (declare (out ) vec4 gl_FragColor@0xad8ea4d8) (declare (out ) float gl_FragDepth@0xad8e86a8) (declare (in ) vec4 gl_Color@0xad8e80b0) (declare (in ) vec4 gl_SecondaryColor@0xad8ea918) (declare (in ) float gl_FogFragCoord@0xad8eab38) (declare (uniform ) mat4 gl_ModelViewMatrix@0xad8ead58) (declare (uniform ) mat4 gl_ProjectionMatrix@0xad8eaf78) (declare (uniform ) mat4 gl_ModelViewProjectionMatrix@0xad8eb198) (declare (uniform ) mat3 gl_NormalMatrix@0xad8d8dc8) (declare (uniform ) mat4 gl_ModelViewMatrixInverse@0xad8ad168) (declare (uniform ) mat4 gl_ProjectionMatrixInverse@0xad8a86e8) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixInverse@0xad82ae88) (declare (uniform ) mat4 gl_ModelViewMatrixTranspose@0xac307250) (declare (uniform ) mat4 gl_ProjectionMatrixTranspose@0xad8b92e8) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixTranspose@0xac2b7800) (declare (uniform ) mat4 gl_ModelViewMatrixInverseTranspose@0xac2b7140) (declare (uniform ) mat4 gl_ProjectionMatrixInverseTranspose@0xac424410) (declare (uniform ) mat4 gl_ModelViewProjectionMatrixInverseTranspose@0xac423fd8) (declare (uniform ) float gl_NormalScale@0xac444ff8) (declare (uniform ) gl_LightModelParameters gl_LightModel@0xac444f20) (declare () int gl_MaxLights@0xac445280) (declare () int gl_MaxClipPlanes@0xac4617f0) (declare () int gl_MaxTextureUnits@0xac461208) (declare () int gl_MaxTextureCoords@0xac460a70) (declare () int gl_MaxVertexAttribs@0xac4607e8) (declare () int gl_MaxVertexUniformComponents@0xac443348) (declare () int gl_MaxVaryingFloats@0xac443858) (declare () int gl_MaxVertexTextureImageUnits@0xac4430c0) (declare () int gl_MaxCombinedTextureImageUnits@0xac442bb0) (declare () int gl_MaxTextureImageUnits@0xac442268) (declare () int gl_MaxFragmentUniformComponents@0xac441c80) (declare (uniform ) (array mat4 8) gl_TextureMatrix@0xac440ba0) (declare (uniform ) (array mat4 8) gl_TextureMatrixInverse@0xac440180) (declare (uniform ) (array mat4 8) gl_TextureMatrixTranspose@0xac43f760) (declare (uniform ) (array mat4 8) gl_TextureMatrixInverseTranspose@0xac2748a0) (declare (uniform ) gl_DepthRangeParameters gl_DepthRange@0xac270e90) (declare (uniform ) (array vec4 6) gl_ClipPlane@0xac442ad8) (declare (uniform ) gl_PointParameters gl_Point@0xac43fd48) (declare (uniform ) gl_MaterialParameters gl_FrontMaterial@0xac274538) (declare (uniform ) gl_MaterialParameters gl_BackMaterial@0xac441848) (declare (uniform ) (array gl_LightSourceParameters 8) gl_LightSource@0xac441338) (declare (uniform ) gl_LightModelProducts gl_FrontLightModelProduct@0xac440d50) (declare (uniform ) gl_LightModelProducts gl_BackLightModelProduct@0xac43f9e8) (declare (uniform ) (array gl_LightProducts 8) gl_FrontLightProduct@0xac274c08) (declare (uniform ) (array gl_LightProducts 8) gl_BackLightProduct@0xac274b30) (declare (uniform ) (array vec4 8) gl_TextureEnvColor@0xac274380) (declare (uniform ) (array vec4 8) gl_EyePlaneS@0xac271570) (declare (uniform ) (array vec4 8) gl_EyePlaneT@0xac271048) (declare (uniform ) (array vec4 8) gl_EyePlaneR@0xac2707c0) (declare (uniform ) (array vec4 8) gl_EyePlaneQ@0xac270610) (declare (uniform ) (array vec4 8) gl_ObjectPlaneS@0xac4415c0) (declare (uniform ) (array vec4 8) gl_ObjectPlaneT@0xac440f00) (declare (uniform ) (array vec4 8) gl_ObjectPlaneR@0xac440c78) (declare (uniform ) (array vec4 8) gl_ObjectPlaneQ@0xac440768) (declare (uniform ) gl_FogParameters gl_Fog@0xac4404e0) (declare (in ) (array vec4 0) gl_TexCoord@0xac43ffd0) (declare () int gl_MaxDrawBuffers@0xac43fac0) (declare (out ) (array vec4 8) gl_FragData@0xac274db8) (function texture1D (signature vec4 (parameters (declare (in ) sampler1D sampler@0xac442d60) (declare (in ) float P@0xac442a00) ) ( )) ) (function weight (signature vec4 (parameters (declare (in ) float pos@0xac444500) ) ( (declare (temporary ) vec4 texture1D_retval@0xac441fe0) (assign (constant bool (1)) (xyzw) (var_ref texture1D_retval@0xac441fe0) (call texture1D ((var_ref kernelTex@0xac423e28) (var_ref pos@0xac444500) )) ) (return (expression vec4 + (expression vec4 * (var_ref texture1D_retval@0xac441fe0) (constant float (2,000000)) ) (constant float (-1,000000)) ) ) )) ) (function stretch (signature vec2 (parameters (declare (in ) vec2 pos@0xac26f510) ) ( (return (var_ref pos@0xac26f510) ) )) ) (function texture2D (signature vec4 (parameters (declare (in ) sampler2D sampler@0xad8dbde0) (declare (in ) vec2 P@0xad8e0078) ) ( )) ) (function pixel (signature vec3 (parameters (declare (in ) float xpos@0xac311750) (declare (in ) float ypos@0xac442418) ) ( (declare (temporary ) vec2 vec_ctor@0xac2b7578) (assign (constant bool (1)) (x) (var_ref vec_ctor@0xac2b7578) (var_ref xpos@0xac311750) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0xac2b7578) (var_ref ypos@0xac442418) ) (declare (temporary ) vec4 texture2D_retval@0xac336008) (assign (constant bool (1)) (xyzw) (var_ref texture2D_retval@0xac336008) (call texture2D ((var_ref img@0xac26fcc8) (var_ref vec_ctor@0xac2b7578) )) ) (return (swiz xyz (var_ref texture2D_retval@0xac336008) )) )) ) (function line (signature vec3 (parameters (declare (in ) float ypos@0xad8b7b40) (declare (in ) vec4 xpos@0xad8b68b0) (declare (in ) vec4 linetaps@0xad8b6348) ) ( (declare (temporary ) vec3 pixel_retval@0xac424338) (assign (constant bool (1)) (xyz) (var_ref pixel_retval@0xac424338) (call pixel ((swiz x (var_ref xpos@0xad8b68b0) )(var_ref ypos@0xad8b7b40) )) ) (declare (temporary ) vec3 pixel_retval@0xac442850) (assign (constant bool (1)) (xyz) (var_ref pixel_retval@0xac442850) (call pixel ((swiz y (var_ref xpos@0xad8b68b0) )(var_ref ypos@0xad8b7b40) )) ) (declare (temporary ) vec3 pixel_retval@0xac4ee0f8) (assign (constant bool (1)) (xyz) (var_ref pixel_retval@0xac4ee0f8) (call pixel ((swiz z (var_ref xpos@0xad8b68b0) )(var_ref ypos@0xad8b7b40) )) ) (declare (temporary ) vec3 pixel_retval@0xac475518) (assign (constant bool (1)) (xyz) (var_ref pixel_retval@0xac475518) (call pixel ((swiz w (var_ref xpos@0xad8b68b0) )(var_ref ypos@0xad8b7b40) )) ) (return (expression vec3 + (expression vec3 + (expression vec3 + (expression vec3 * (var_ref pixel_retval@0xac424338) (swiz x (var_ref linetaps@0xad8b6348) )) (expression vec3 * (var_ref pixel_retval@0xac442850) (swiz y (var_ref linetaps@0xad8b6348) )) ) (expression vec3 * (var_ref pixel_retval@0xac4ee0f8) (swiz z (var_ref linetaps@0xad8b6348) )) ) (expression vec3 * (var_ref pixel_retval@0xac475518) (swiz w (var_ref linetaps@0xad8b6348) )) ) ) )) ) (function fract (signature vec2 (parameters (declare (in ) vec2 x@0xad8cb108) ) ( )) ) (function main (signature void (parameters ) ( (declare () vec4 xpos@0xac4352c8) (declare () vec2 xystart@0xad8d3908) (declare () vec4 columntaps@0xad8b80f8) (declare () vec4 linetaps@0xad8c6f78) (declare () vec2 f@0xad8d3140) (declare () vec2 pos@0xad8df1b8) (declare (temporary ) vec2 stretch_retval@0xad8de3d0) (assign (constant bool (1)) (xy) (var_ref stretch_retval@0xad8de3d0) (call stretch ((var_ref cord@0xac20bd48) )) ) (assign (constant bool (1)) (xy) (var_ref pos@0xad8df1b8) (var_ref stretch_retval@0xad8de3d0) ) (declare (temporary ) vec2 fract_retval@0xad8ca248) (assign (constant bool (1)) (xy) (var_ref fract_retval@0xad8ca248) (call fract ((expression vec2 / (var_ref stretch_retval@0xad8de3d0) (var_ref stepxy@0xac26fa40) ) )) ) (assign (constant bool (1)) (xy) (var_ref f@0xad8d3140) (var_ref fract_retval@0xad8ca248) ) (declare (temporary ) vec4 weight_retval@0xad8c4168) (assign (constant bool (1)) (xyzw) (var_ref weight_retval@0xad8c4168) (call weight ((expression float + (constant float (1,000000)) (expression float neg (swiz x (var_ref fract_retval@0xad8ca248) )) ) )) ) (assign (constant bool (1)) (xyzw) (var_ref linetaps@0xad8c6f78) (var_ref weight_retval@0xad8c4168) ) (declare (temporary ) vec4 weight_retval@0xad8b1640) (assign (constant bool (1)) (xyzw) (var_ref weight_retval@0xad8b1640) (call weight ((expression float + (constant float (1,000000)) (expression float neg (swiz y (var_ref f@0xad8d3140) )) ) )) ) (declare (temporary ) vec4 assignment_tmp@0xad8def18) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0xad8def18) (expression vec4 / (var_ref linetaps@0xad8c6f78) (expression float + (expression float + (expression float + (swiz x (var_ref linetaps@0xad8c6f78) )(swiz y (var_ref linetaps@0xad8c6f78) )) (swiz z (var_ref linetaps@0xad8c6f78) )) (swiz w (var_ref linetaps@0xad8c6f78) )) ) ) (assign (constant bool (1)) (xyzw) (var_ref linetaps@0xad8c6f78) (var_ref assignment_tmp@0xad8def18) ) (assign (constant bool (1)) (xyzw) (var_ref columntaps@0xad8b80f8) (expression vec4 / (var_ref weight_retval@0xad8b1640) (expression float + (expression float + (expression float + (swiz x (var_ref weight_retval@0xad8b1640) )(swiz y (var_ref weight_retval@0xad8b1640) )) (swiz z (var_ref weight_retval@0xad8b1640) )) (swiz w (var_ref weight_retval@0xad8b1640) )) ) ) (declare (temporary ) vec2 assignment_tmp@0xad8de828) (assign (constant bool (1)) (xy) (var_ref assignment_tmp@0xad8de828) (expression vec2 + (expression vec2 * (expression vec2 + (constant float (-1,000000)) (expression vec2 neg (var_ref f@0xad8d3140) ) ) (var_ref stepxy@0xac26fa40) ) (var_ref pos@0xad8df1b8) ) ) (assign (constant bool (1)) (xy) (var_ref xystart@0xad8d3908) (var_ref assignment_tmp@0xad8de828) ) (declare (temporary ) vec4 vec_ctor@0xac4ef358) (assign (constant bool (1)) (x) (var_ref vec_ctor@0xac4ef358) (swiz x (var_ref assignment_tmp@0xad8de828) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0xac4ef358) (expression float + (swiz x (var_ref assignment_tmp@0xad8de828) )(swiz x (var_ref stepxy@0xac26fa40) )) ) (assign (constant bool (1)) (z) (var_ref vec_ctor@0xac4ef358) (expression float + (swiz x (var_ref assignment_tmp@0xad8de828) )(expression float * (swiz x (var_ref stepxy@0xac26fa40) )(constant float (2,000000)) ) ) ) (assign (constant bool (1)) (w) (var_ref vec_ctor@0xac4ef358) (expression float + (swiz x (var_ref assignment_tmp@0xad8de828) )(expression float * (swiz x (var_ref stepxy@0xac26fa40) )(constant float (3,000000)) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref xpos@0xac4352c8) (var_ref vec_ctor@0xac4ef358) ) (declare (temporary ) vec3 line_retval@0xac482268) (assign (constant bool (1)) (xyz) (var_ref line_retval@0xac482268) (call line ((swiz y (var_ref assignment_tmp@0xad8de828) )(var_ref vec_ctor@0xac4ef358) (var_ref assignment_tmp@0xad8def18) )) ) (declare (temporary ) vec3 line_retval@0xac483200) (assign (constant bool (1)) (xyz) (var_ref line_retval@0xac483200) (call line ((expression float + (swiz y (var_ref xystart@0xad8d3908) )(swiz y (var_ref stepxy@0xac26fa40) )) (var_ref xpos@0xac4352c8) (var_ref linetaps@0xad8c6f78) )) ) (declare (temporary ) vec3 line_retval@0xac201ab0) (assign (constant bool (1)) (xyz) (var_ref line_retval@0xac201ab0) (call line ((expression float + (swiz y (var_ref xystart@0xad8d3908) )(expression float * (swiz y (var_ref stepxy@0xac26fa40) )(constant float (2,000000)) ) ) (var_ref xpos@0xac4352c8) (var_ref linetaps@0xad8c6f78) )) ) (declare (temporary ) vec3 line_retval@0xac2680d8) (assign (constant bool (1)) (xyz) (var_ref line_retval@0xac2680d8) (call line ((expression float + (swiz y (var_ref xystart@0xad8d3908) )(expression float * (swiz y (var_ref stepxy@0xac26fa40) )(constant float (3,000000)) ) ) (var_ref xpos@0xac4352c8) (var_ref linetaps@0xad8c6f78) )) ) (assign (constant bool (1)) (xyz) (var_ref gl_FragColor@0xad8ea4d8) (expression vec3 + (expression vec3 + (expression vec3 + (expression vec3 * (var_ref line_retval@0xac482268) (swiz x (var_ref columntaps@0xad8b80f8) )) (expression vec3 * (var_ref line_retval@0xac483200) (swiz y (var_ref columntaps@0xad8b80f8) )) ) (expression vec3 * (var_ref line_retval@0xac201ab0) (swiz z (var_ref columntaps@0xad8b80f8) )) ) (expression vec3 * (var_ref line_retval@0xac2680d8) (swiz w (var_ref columntaps@0xad8b80f8) )) ) ) (assign (constant bool (1)) (w) (var_ref gl_FragColor@0xad8ea4d8) (swiz w (var_ref gl_Color@0xad8e80b0) )) )) ) ) GLSL IR for linked vertex program 6: ( (declare (out ) vec2 cord@0xad8dce20) (declare (out ) vec4 gl_Position@0xad8e89a0) (declare (in ) vec4 gl_Vertex@0xad8b5fe0) (declare (in ) vec4 gl_Color@0xad8b6dc8) (declare (in ) vec4 gl_MultiTexCoord0@0xad8b7600) (declare (out ) vec4 gl_FrontColor@0xad8ae6c8) (declare (uniform ) mat4 gl_ModelViewProjectionMatrix@0xac2573e0) (declare (uniform ) (array mat4 1) gl_TextureMatrix@0xac2562e0) (function main (signature void (parameters ) ( (declare (temporary ) mat4 mat_op_to_vec@0xac3a2268) (assign (constant bool (1)) () (var_ref mat_op_to_vec@0xac3a2268) (array_ref (var_ref gl_TextureMatrix@0xac2562e0) (constant int (0)) ) ) (assign (constant bool (1)) (xy) (var_ref cord@0xad8dce20) (swiz xy (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref mat_op_to_vec@0xac3a2268) (constant int (0)) ) (swiz x (var_ref gl_MultiTexCoord0@0xad8b7600) )) (expression vec4 * (array_ref (var_ref mat_op_to_vec@0xac3a2268) (constant int (1)) ) (swiz y (var_ref gl_MultiTexCoord0@0xad8b7600) )) ) (expression vec4 * (array_ref (var_ref mat_op_to_vec@0xac3a2268) (constant int (2)) ) (swiz z (var_ref gl_MultiTexCoord0@0xad8b7600) )) ) (expression vec4 * (array_ref (var_ref mat_op_to_vec@0xac3a2268) (constant int (3)) ) (swiz w (var_ref gl_MultiTexCoord0@0xad8b7600) )) ) )) (assign (constant bool (1)) (xyzw) (var_ref gl_Position@0xad8e89a0) (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0xac2573e0) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0xad8b5fe0) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0xac2573e0) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0xad8b5fe0) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0xac2573e0) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0xad8b5fe0) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0xac2573e0) (constant int (3)) ) (swiz w (var_ref gl_Vertex@0xad8b5fe0) )) ) ) (assign (constant bool (1)) (xyzw) (var_ref gl_FrontColor@0xad8ae6c8) (var_ref gl_Color@0xad8b6dc8) ) )) ) ) Mesa IR for linked vertex program 6: 0: (assign (constant bool (1)) () (var_ref mat_op_to_vec@0xac3a2268) (array_ref (var_ref gl_TextureMatrix@0xac2562e0) (constant int (0)) ) ) MOV TEMP[1], STATE[4]; 1: MOV TEMP[2], STATE[5]; 2: MOV TEMP[3], STATE[6]; 3: MOV TEMP[4], STATE[7]; 4: (expression vec4 * (array_ref (var_ref mat_op_to_vec@0xac3a2268) (constant int (0)) ) (swiz x (var_ref gl_MultiTexCoord0@0xad8b7600) )) MUL TEMP[5], TEMP[1], INPUT[8].xxxx; 5: (expression vec4 + (expression vec4 * (array_ref (var_ref mat_op_to_vec@0xac3a2268) (constant int (0)) ) (swiz x (var_ref gl_MultiTexCoord0@0xad8b7600) )) (expression vec4 * (array_ref (var_ref mat_op_to_vec@0xac3a2268) (constant int (1)) ) (swiz y (var_ref gl_MultiTexCoord0@0xad8b7600) )) ) MAD TEMP[6], TEMP[2], INPUT[8].yyyy, TEMP[5]; 6: (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref mat_op_to_vec@0xac3a2268) (constant int (0)) ) (swiz x (var_ref gl_MultiTexCoord0@0xad8b7600) )) (expression vec4 * (array_ref (var_ref mat_op_to_vec@0xac3a2268) (constant int (1)) ) (swiz y (var_ref gl_MultiTexCoord0@0xad8b7600) )) ) (expression vec4 * (array_ref (var_ref mat_op_to_vec@0xac3a2268) (constant int (2)) ) (swiz z (var_ref gl_MultiTexCoord0@0xad8b7600) )) ) MAD TEMP[7], TEMP[3], INPUT[8].zzzz, TEMP[6]; 7: (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref mat_op_to_vec@0xac3a2268) (constant int (0)) ) (swiz x (var_ref gl_MultiTexCoord0@0xad8b7600) )) (expression vec4 * (array_ref (var_ref mat_op_to_vec@0xac3a2268) (constant int (1)) ) (swiz y (var_ref gl_MultiTexCoord0@0xad8b7600) )) ) (expression vec4 * (array_ref (var_ref mat_op_to_vec@0xac3a2268) (constant int (2)) ) (swiz z (var_ref gl_MultiTexCoord0@0xad8b7600) )) ) (expression vec4 * (array_ref (var_ref mat_op_to_vec@0xac3a2268) (constant int (3)) ) (swiz w (var_ref gl_MultiTexCoord0@0xad8b7600) )) ) MAD TEMP[8], TEMP[4], INPUT[8].wwww, TEMP[7]; 8: (assign (constant bool (1)) (xy) (var_ref cord@0xad8dce20) (swiz xy (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref mat_op_to_vec@0xac3a2268) (constant int (0)) ) (swiz x (var_ref gl_MultiTexCoord0@0xad8b7600) )) (expression vec4 * (array_ref (var_ref mat_op_to_vec@0xac3a2268) (constant int (1)) ) (swiz y (var_ref gl_MultiTexCoord0@0xad8b7600) )) ) (expression vec4 * (array_ref (var_ref mat_op_to_vec@0xac3a2268) (constant int (2)) ) (swiz z (var_ref gl_MultiTexCoord0@0xad8b7600) )) ) (expression vec4 * (array_ref (var_ref mat_op_to_vec@0xac3a2268) (constant int (3)) ) (swiz w (var_ref gl_MultiTexCoord0@0xad8b7600) )) ) )) MOV OUTPUT[16].xy, TEMP[8].xyxx; 9: (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0xac2573e0) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0xad8b5fe0) )) MUL TEMP[9], STATE[0], INPUT[0].xxxx; 10: (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0xac2573e0) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0xad8b5fe0) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0xac2573e0) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0xad8b5fe0) )) ) MAD TEMP[10], STATE[1], INPUT[0].yyyy, TEMP[9]; 11: (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0xac2573e0) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0xad8b5fe0) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0xac2573e0) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0xad8b5fe0) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0xac2573e0) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0xad8b5fe0) )) ) MAD TEMP[11], STATE[2], INPUT[0].zzzz, TEMP[10]; 12: (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0xac2573e0) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0xad8b5fe0) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0xac2573e0) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0xad8b5fe0) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0xac2573e0) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0xad8b5fe0) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0xac2573e0) (constant int (3)) ) (swiz w (var_ref gl_Vertex@0xad8b5fe0) )) ) MAD TEMP[12], STATE[3], INPUT[0].wwww, TEMP[11]; 13: (assign (constant bool (1)) (xyzw) (var_ref gl_Position@0xad8e89a0) (expression vec4 + (expression vec4 + (expression vec4 + (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0xac2573e0) (constant int (0)) ) (swiz x (var_ref gl_Vertex@0xad8b5fe0) )) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0xac2573e0) (constant int (1)) ) (swiz y (var_ref gl_Vertex@0xad8b5fe0) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0xac2573e0) (constant int (2)) ) (swiz z (var_ref gl_Vertex@0xad8b5fe0) )) ) (expression vec4 * (array_ref (var_ref gl_ModelViewProjectionMatrix@0xac2573e0) (constant int (3)) ) (swiz w (var_ref gl_Vertex@0xad8b5fe0) )) ) ) MOV OUTPUT[0], TEMP[12]; 14: (assign (constant bool (1)) (xyzw) (var_ref gl_FrontColor@0xad8ae6c8) (var_ref gl_Color@0xad8b6dc8) ) MOV OUTPUT[1], INPUT[3]; 15: END GLSL IR for linked fragment program 6: ( (declare (uniform ) sampler1D kernelTex@0xac208310) (declare (in ) vec2 cord@0xad8b3208) (declare (uniform ) vec2 stepxy@0xad8ea6f8) (declare (uniform ) sampler2D img@0xad8ab998) (declare (out ) vec4 gl_FragColor@0xad8b3aa8) (declare (in ) vec4 gl_Color@0xac255a60) (function main (signature void (parameters ) ( (declare () vec4 columntaps@0xac2a5d70) (declare () vec2 _ret_val@0xac39f648) (assign (constant bool (1)) (xy) (var_ref _ret_val@0xac39f648) (expression vec2 fract (expression vec2 * (var_ref cord@0xad8b3208) (expression vec2 rcp (var_ref stepxy@0xad8ea6f8) ) ) ) ) (declare () vec4 _ret_val@0xac3a40b8) (assign (constant bool (1)) (xyzw) (var_ref _ret_val@0xac3a40b8) (expression vec4 + (expression vec4 * (tex (var_ref kernelTex@0xac208310) (expression float + (constant float (1,000000)) (expression float neg (swiz x (var_ref _ret_val@0xac39f648) )) ) (0 0 0) 1 () )(constant float (2,000000)) ) (constant float (-1,000000)) ) ) (declare () vec4 _ret_val@0xac30fd18) (assign (constant bool (1)) (xyzw) (var_ref _ret_val@0xac30fd18) (expression vec4 + (expression vec4 * (tex (var_ref kernelTex@0xac208310) (expression float + (constant float (1,000000)) (expression float neg (swiz y (var_ref _ret_val@0xac39f648) )) ) (0 0 0) 1 () )(constant float (2,000000)) ) (constant float (-1,000000)) ) ) (declare (temporary ) vec4 assignment_tmp@0xac445430) (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0xac445430) (expression vec4 * (var_ref _ret_val@0xac3a40b8) (expression float rcp (expression float + (expression float + (expression float + (swiz x (var_ref _ret_val@0xac3a40b8) )(swiz y (var_ref _ret_val@0xac3a40b8) )) (swiz z (var_ref _ret_val@0xac3a40b8) )) (swiz w (var_ref _ret_val@0xac3a40b8) )) ) ) ) (assign (constant bool (1)) (xyzw) (var_ref columntaps@0xac2a5d70) (expression vec4 * (var_ref _ret_val@0xac30fd18) (expression float rcp (expression float + (expression float + (expression float + (swiz x (var_ref _ret_val@0xac30fd18) )(swiz y (var_ref _ret_val@0xac30fd18) )) (swiz z (var_ref _ret_val@0xac30fd18) )) (swiz w (var_ref _ret_val@0xac30fd18) )) ) ) ) (declare (temporary ) vec2 assignment_tmp@0xac270f68) (assign (constant bool (1)) (xy) (var_ref assignment_tmp@0xac270f68) (expression vec2 + (expression vec2 * (expression vec2 + (constant float (-1,000000)) (expression vec2 neg (var_ref _ret_val@0xac39f648) ) ) (var_ref stepxy@0xad8ea6f8) ) (var_ref cord@0xad8b3208) ) ) (declare (temporary ) vec4 vec_ctor@0xac45e408) (assign (constant bool (1)) (x) (var_ref vec_ctor@0xac45e408) (swiz x (var_ref assignment_tmp@0xac270f68) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0xac45e408) (expression float + (swiz x (var_ref assignment_tmp@0xac270f68) )(swiz x (var_ref stepxy@0xad8ea6f8) )) ) (assign (constant bool (1)) (z) (var_ref vec_ctor@0xac45e408) (expression float + (swiz x (var_ref assignment_tmp@0xac270f68) )(expression float * (swiz x (var_ref stepxy@0xad8ea6f8) )(constant float (2,000000)) ) ) ) (assign (constant bool (1)) (w) (var_ref vec_ctor@0xac45e408) (expression float + (swiz x (var_ref assignment_tmp@0xac270f68) )(expression float * (swiz x (var_ref stepxy@0xad8ea6f8) )(constant float (3,000000)) ) ) ) (declare () float ypos@0xad82fac0) (assign (constant bool (1)) (x) (var_ref ypos@0xad82fac0) (swiz y (var_ref assignment_tmp@0xac270f68) )) (declare (temporary ) vec2 vec_ctor@0xad831678) (assign (constant bool (1)) (x) (var_ref vec_ctor@0xad831678) (swiz x (var_ref vec_ctor@0xac45e408) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0xad831678) (var_ref ypos@0xad82fac0) ) (declare (temporary ) vec2 vec_ctor@0xac39f0a8) (assign (constant bool (1)) (x) (var_ref vec_ctor@0xac39f0a8) (swiz y (var_ref vec_ctor@0xac45e408) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0xac39f0a8) (var_ref ypos@0xad82fac0) ) (declare (temporary ) vec2 vec_ctor@0xac3103a8) (assign (constant bool (1)) (x) (var_ref vec_ctor@0xac3103a8) (swiz z (var_ref vec_ctor@0xac45e408) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0xac3103a8) (var_ref ypos@0xad82fac0) ) (declare (temporary ) vec2 vec_ctor@0xac30fa98) (assign (constant bool (1)) (x) (var_ref vec_ctor@0xac30fa98) (swiz w (var_ref vec_ctor@0xac45e408) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0xac30fa98) (var_ref ypos@0xad82fac0) ) (declare () float ypos@0xac31b2f8) (assign (constant bool (1)) (x) (var_ref ypos@0xac31b2f8) (expression float + (swiz y (var_ref assignment_tmp@0xac270f68) )(swiz y (var_ref stepxy@0xad8ea6f8) )) ) (declare (temporary ) vec2 vec_ctor@0xac31f168) (assign (constant bool (1)) (x) (var_ref vec_ctor@0xac31f168) (swiz x (var_ref vec_ctor@0xac45e408) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0xac31f168) (var_ref ypos@0xac31b2f8) ) (declare (temporary ) vec2 vec_ctor@0xac31d3d0) (assign (constant bool (1)) (x) (var_ref vec_ctor@0xac31d3d0) (swiz y (var_ref vec_ctor@0xac45e408) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0xac31d3d0) (var_ref ypos@0xac31b2f8) ) (declare (temporary ) vec2 vec_ctor@0xac3a3738) (assign (constant bool (1)) (x) (var_ref vec_ctor@0xac3a3738) (swiz z (var_ref vec_ctor@0xac45e408) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0xac3a3738) (var_ref ypos@0xac31b2f8) ) (declare (temporary ) vec2 vec_ctor@0xac31b7f0) (assign (constant bool (1)) (x) (var_ref vec_ctor@0xac31b7f0) (swiz w (var_ref vec_ctor@0xac45e408) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0xac31b7f0) (var_ref ypos@0xac31b2f8) ) (declare () float ypos@0xac3a1f70) (assign (constant bool (1)) (x) (var_ref ypos@0xac3a1f70) (expression float + (swiz y (var_ref assignment_tmp@0xac270f68) )(expression float * (swiz y (var_ref stepxy@0xad8ea6f8) )(constant float (2,000000)) ) ) ) (declare (temporary ) vec2 vec_ctor@0xad82d310) (assign (constant bool (1)) (x) (var_ref vec_ctor@0xad82d310) (swiz x (var_ref vec_ctor@0xac45e408) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0xad82d310) (var_ref ypos@0xac3a1f70) ) (declare (temporary ) vec2 vec_ctor@0xac4002d8) (assign (constant bool (1)) (x) (var_ref vec_ctor@0xac4002d8) (swiz y (var_ref vec_ctor@0xac45e408) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0xac4002d8) (var_ref ypos@0xac3a1f70) ) (declare (temporary ) vec2 vec_ctor@0xac4853b0) (assign (constant bool (1)) (x) (var_ref vec_ctor@0xac4853b0) (swiz z (var_ref vec_ctor@0xac45e408) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0xac4853b0) (var_ref ypos@0xac3a1f70) ) (declare (temporary ) vec2 vec_ctor@0xad832288) (assign (constant bool (1)) (x) (var_ref vec_ctor@0xad832288) (swiz w (var_ref vec_ctor@0xac45e408) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0xad832288) (var_ref ypos@0xac3a1f70) ) (declare () float ypos@0xac46b510) (assign (constant bool (1)) (x) (var_ref ypos@0xac46b510) (expression float + (swiz y (var_ref assignment_tmp@0xac270f68) )(expression float * (swiz y (var_ref stepxy@0xad8ea6f8) )(constant float (3,000000)) ) ) ) (declare (temporary ) vec2 vec_ctor@0xac46bdc8) (assign (constant bool (1)) (x) (var_ref vec_ctor@0xac46bdc8) (swiz x (var_ref vec_ctor@0xac45e408) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0xac46bdc8) (var_ref ypos@0xac46b510) ) (declare (temporary ) vec2 vec_ctor@0xac476590) (assign (constant bool (1)) (x) (var_ref vec_ctor@0xac476590) (swiz y (var_ref vec_ctor@0xac45e408) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0xac476590) (var_ref ypos@0xac46b510) ) (declare (temporary ) vec2 vec_ctor@0xac301030) (assign (constant bool (1)) (x) (var_ref vec_ctor@0xac301030) (swiz z (var_ref vec_ctor@0xac45e408) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0xac301030) (var_ref ypos@0xac46b510) ) (declare (temporary ) vec2 vec_ctor@0xac411478) (assign (constant bool (1)) (x) (var_ref vec_ctor@0xac411478) (swiz w (var_ref vec_ctor@0xac45e408) )) (assign (constant bool (1)) (y) (var_ref vec_ctor@0xac411478) (var_ref ypos@0xac46b510) ) (assign (constant bool (1)) (xyz) (var_ref gl_FragColor@0xad8b3aa8) (expression vec3 + (expression vec3 + (expression vec3 + (expression vec3 * (expression vec3 + (expression vec3 + (expression vec3 + (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xad831678) (0 0 0) 1 () ))(swiz x (var_ref assignment_tmp@0xac445430) )) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac39f0a8) (0 0 0) 1 () ))(swiz y (var_ref assignment_tmp@0xac445430) )) ) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac3103a8) (0 0 0) 1 () ))(swiz z (var_ref assignment_tmp@0xac445430) )) ) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac30fa98) (0 0 0) 1 () ))(swiz w (var_ref assignment_tmp@0xac445430) )) ) (swiz x (var_ref columntaps@0xac2a5d70) )) (expression vec3 * (expression vec3 + (expression vec3 + (expression vec3 + (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac31f168) (0 0 0) 1 () ))(swiz x (var_ref assignment_tmp@0xac445430) )) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac31d3d0) (0 0 0) 1 () ))(swiz y (var_ref assignment_tmp@0xac445430) )) ) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac3a3738) (0 0 0) 1 () ))(swiz z (var_ref assignment_tmp@0xac445430) )) ) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac31b7f0) (0 0 0) 1 () ))(swiz w (var_ref assignment_tmp@0xac445430) )) ) (swiz y (var_ref columntaps@0xac2a5d70) )) ) (expression vec3 * (expression vec3 + (expression vec3 + (expression vec3 + (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xad82d310) (0 0 0) 1 () ))(swiz x (var_ref assignment_tmp@0xac445430) )) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac4002d8) (0 0 0) 1 () ))(swiz y (var_ref assignment_tmp@0xac445430) )) ) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac4853b0) (0 0 0) 1 () ))(swiz z (var_ref assignment_tmp@0xac445430) )) ) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xad832288) (0 0 0) 1 () ))(swiz w (var_ref assignment_tmp@0xac445430) )) ) (swiz z (var_ref columntaps@0xac2a5d70) )) ) (expression vec3 * (expression vec3 + (expression vec3 + (expression vec3 + (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac46bdc8) (0 0 0) 1 () ))(swiz x (var_ref assignment_tmp@0xac445430) )) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac476590) (0 0 0) 1 () ))(swiz y (var_ref assignment_tmp@0xac445430) )) ) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac301030) (0 0 0) 1 () ))(swiz z (var_ref assignment_tmp@0xac445430) )) ) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac411478) (0 0 0) 1 () ))(swiz w (var_ref assignment_tmp@0xac445430) )) ) (swiz w (var_ref columntaps@0xac2a5d70) )) ) ) (assign (constant bool (1)) (w) (var_ref gl_FragColor@0xad8b3aa8) (swiz w (var_ref gl_Color@0xac255a60) )) )) ) ) Mesa IR for linked fragment program 6: 0: (expression vec2 rcp (var_ref stepxy@0xad8ea6f8) ) RCP TEMP[1].x, UNIFORM[1].xxxx; 1: RCP TEMP[1].y, UNIFORM[1].yyyy; 2: (expression vec2 * (var_ref cord@0xad8b3208) (expression vec2 rcp (var_ref stepxy@0xad8ea6f8) ) ) MUL TEMP[2].xy, INPUT[14].xyyy, TEMP[1].xyyy; 3: (expression vec2 fract (expression vec2 * (var_ref cord@0xad8b3208) (expression vec2 rcp (var_ref stepxy@0xad8ea6f8) ) ) ) FRC TEMP[3].xy, TEMP[2].xyyy; 4: (assign (constant bool (1)) (xy) (var_ref _ret_val@0xac39f648) (expression vec2 fract (expression vec2 * (var_ref cord@0xad8b3208) (expression vec2 rcp (var_ref stepxy@0xad8ea6f8) ) ) ) ) MOV TEMP[4].xy, TEMP[3].xyxx; 5: (expression float + (constant float (1,000000)) (expression float neg (swiz x (var_ref _ret_val@0xac39f648) )) ) ADD TEMP[6].x, CONST[3].xxxx, TEMP[4].-x-x-x-x; 6: (tex (var_ref kernelTex@0xac208310) (expression float + (constant float (1,000000)) (expression float neg (swiz x (var_ref _ret_val@0xac39f648) )) ) (0 0 0) 1 () ) MOV TEMP[7], TEMP[6].xxxx; 7: TEX TEMP[8], TEMP[7], texture[0], 1D; 8: (expression vec4 + (expression vec4 * (tex (var_ref kernelTex@0xac208310) (expression float + (constant float (1,000000)) (expression float neg (swiz x (var_ref _ret_val@0xac39f648) )) ) (0 0 0) 1 () )(constant float (2,000000)) ) (constant float (-1,000000)) ) MAD TEMP[9], TEMP[8], CONST[3].yyyy, CONST[3].zzzz; 9: (assign (constant bool (1)) (xyzw) (var_ref _ret_val@0xac3a40b8) (expression vec4 + (expression vec4 * (tex (var_ref kernelTex@0xac208310) (expression float + (constant float (1,000000)) (expression float neg (swiz x (var_ref _ret_val@0xac39f648) )) ) (0 0 0) 1 () )(constant float (2,000000)) ) (constant float (-1,000000)) ) ) MOV TEMP[10], TEMP[9]; 10: (expression float + (constant float (1,000000)) (expression float neg (swiz y (var_ref _ret_val@0xac39f648) )) ) ADD TEMP[12].x, CONST[3].xxxx, TEMP[4].-y-y-y-y; 11: (tex (var_ref kernelTex@0xac208310) (expression float + (constant float (1,000000)) (expression float neg (swiz y (var_ref _ret_val@0xac39f648) )) ) (0 0 0) 1 () ) MOV TEMP[13], TEMP[12].xxxx; 12: TEX TEMP[14], TEMP[13], texture[0], 1D; 13: (expression vec4 + (expression vec4 * (tex (var_ref kernelTex@0xac208310) (expression float + (constant float (1,000000)) (expression float neg (swiz y (var_ref _ret_val@0xac39f648) )) ) (0 0 0) 1 () )(constant float (2,000000)) ) (constant float (-1,000000)) ) MAD TEMP[15], TEMP[14], CONST[3].yyyy, CONST[3].zzzz; 14: (assign (constant bool (1)) (xyzw) (var_ref _ret_val@0xac30fd18) (expression vec4 + (expression vec4 * (tex (var_ref kernelTex@0xac208310) (expression float + (constant float (1,000000)) (expression float neg (swiz y (var_ref _ret_val@0xac39f648) )) ) (0 0 0) 1 () )(constant float (2,000000)) ) (constant float (-1,000000)) ) ) MOV TEMP[16], TEMP[15]; 15: (expression float + (swiz x (var_ref _ret_val@0xac3a40b8) )(swiz y (var_ref _ret_val@0xac3a40b8) )) ADD TEMP[17].x, TEMP[10].xxxx, TEMP[10].yyyy; 16: (expression float + (expression float + (swiz x (var_ref _ret_val@0xac3a40b8) )(swiz y (var_ref _ret_val@0xac3a40b8) )) (swiz z (var_ref _ret_val@0xac3a40b8) )) ADD TEMP[18].x, TEMP[17].xxxx, TEMP[10].zzzz; 17: (expression float + (expression float + (expression float + (swiz x (var_ref _ret_val@0xac3a40b8) )(swiz y (var_ref _ret_val@0xac3a40b8) )) (swiz z (var_ref _ret_val@0xac3a40b8) )) (swiz w (var_ref _ret_val@0xac3a40b8) )) ADD TEMP[19].x, TEMP[18].xxxx, TEMP[10].wwww; 18: (expression float rcp (expression float + (expression float + (expression float + (swiz x (var_ref _ret_val@0xac3a40b8) )(swiz y (var_ref _ret_val@0xac3a40b8) )) (swiz z (var_ref _ret_val@0xac3a40b8) )) (swiz w (var_ref _ret_val@0xac3a40b8) )) ) RCP TEMP[20].x, TEMP[19].xxxx; 19: (expression vec4 * (var_ref _ret_val@0xac3a40b8) (expression float rcp (expression float + (expression float + (expression float + (swiz x (var_ref _ret_val@0xac3a40b8) )(swiz y (var_ref _ret_val@0xac3a40b8) )) (swiz z (var_ref _ret_val@0xac3a40b8) )) (swiz w (var_ref _ret_val@0xac3a40b8) )) ) ) MUL TEMP[21], TEMP[10], TEMP[20].xxxx; 20: (assign (constant bool (1)) (xyzw) (var_ref assignment_tmp@0xac445430) (expression vec4 * (var_ref _ret_val@0xac3a40b8) (expression float rcp (expression float + (expression float + (expression float + (swiz x (var_ref _ret_val@0xac3a40b8) )(swiz y (var_ref _ret_val@0xac3a40b8) )) (swiz z (var_ref _ret_val@0xac3a40b8) )) (swiz w (var_ref _ret_val@0xac3a40b8) )) ) ) ) MOV TEMP[22], TEMP[21]; 21: (expression float + (swiz x (var_ref _ret_val@0xac30fd18) )(swiz y (var_ref _ret_val@0xac30fd18) )) ADD TEMP[23].x, TEMP[16].xxxx, TEMP[16].yyyy; 22: (expression float + (expression float + (swiz x (var_ref _ret_val@0xac30fd18) )(swiz y (var_ref _ret_val@0xac30fd18) )) (swiz z (var_ref _ret_val@0xac30fd18) )) ADD TEMP[24].x, TEMP[23].xxxx, TEMP[16].zzzz; 23: (expression float + (expression float + (expression float + (swiz x (var_ref _ret_val@0xac30fd18) )(swiz y (var_ref _ret_val@0xac30fd18) )) (swiz z (var_ref _ret_val@0xac30fd18) )) (swiz w (var_ref _ret_val@0xac30fd18) )) ADD TEMP[25].x, TEMP[24].xxxx, TEMP[16].wwww; 24: (expression float rcp (expression float + (expression float + (expression float + (swiz x (var_ref _ret_val@0xac30fd18) )(swiz y (var_ref _ret_val@0xac30fd18) )) (swiz z (var_ref _ret_val@0xac30fd18) )) (swiz w (var_ref _ret_val@0xac30fd18) )) ) RCP TEMP[26].x, TEMP[25].xxxx; 25: (expression vec4 * (var_ref _ret_val@0xac30fd18) (expression float rcp (expression float + (expression float + (expression float + (swiz x (var_ref _ret_val@0xac30fd18) )(swiz y (var_ref _ret_val@0xac30fd18) )) (swiz z (var_ref _ret_val@0xac30fd18) )) (swiz w (var_ref _ret_val@0xac30fd18) )) ) ) MUL TEMP[27], TEMP[16], TEMP[26].xxxx; 26: (assign (constant bool (1)) (xyzw) (var_ref columntaps@0xac2a5d70) (expression vec4 * (var_ref _ret_val@0xac30fd18) (expression float rcp (expression float + (expression float + (expression float + (swiz x (var_ref _ret_val@0xac30fd18) )(swiz y (var_ref _ret_val@0xac30fd18) )) (swiz z (var_ref _ret_val@0xac30fd18) )) (swiz w (var_ref _ret_val@0xac30fd18) )) ) ) ) MOV TEMP[28], TEMP[27]; 27: (expression vec2 + (constant float (-1,000000)) (expression vec2 neg (var_ref _ret_val@0xac39f648) ) ) ADD TEMP[30].xy, CONST[3].zzzz, TEMP[4].-x-y-y-y; 28: (expression vec2 + (expression vec2 * (expression vec2 + (constant float (-1,000000)) (expression vec2 neg (var_ref _ret_val@0xac39f648) ) ) (var_ref stepxy@0xad8ea6f8) ) (var_ref cord@0xad8b3208) ) MAD TEMP[31], TEMP[30].xyyy, UNIFORM[1].xyyy, INPUT[14].xyyy; 29: (assign (constant bool (1)) (xy) (var_ref assignment_tmp@0xac270f68) (expression vec2 + (expression vec2 * (expression vec2 + (constant float (-1,000000)) (expression vec2 neg (var_ref _ret_val@0xac39f648) ) ) (var_ref stepxy@0xad8ea6f8) ) (var_ref cord@0xad8b3208) ) ) MOV TEMP[32].xy, TEMP[31].xyxx; 30: (assign (constant bool (1)) (x) (var_ref vec_ctor@0xac45e408) (swiz x (var_ref assignment_tmp@0xac270f68) )) MOV TEMP[33].x, TEMP[32].xxxx; 31: (expression float + (swiz x (var_ref assignment_tmp@0xac270f68) )(swiz x (var_ref stepxy@0xad8ea6f8) )) ADD TEMP[34].x, TEMP[32].xxxx, UNIFORM[1].xxxx; 32: (assign (constant bool (1)) (y) (var_ref vec_ctor@0xac45e408) (expression float + (swiz x (var_ref assignment_tmp@0xac270f68) )(swiz x (var_ref stepxy@0xad8ea6f8) )) ) MOV TEMP[33].y, TEMP[34].xxxx; 33: (expression float + (swiz x (var_ref assignment_tmp@0xac270f68) )(expression float * (swiz x (var_ref stepxy@0xad8ea6f8) )(constant float (2,000000)) ) ) MAD TEMP[35], UNIFORM[1].xxxx, CONST[3].yyyy, TEMP[32].xxxx; 34: (assign (constant bool (1)) (z) (var_ref vec_ctor@0xac45e408) (expression float + (swiz x (var_ref assignment_tmp@0xac270f68) )(expression float * (swiz x (var_ref stepxy@0xad8ea6f8) )(constant float (2,000000)) ) ) ) MOV TEMP[33].z, TEMP[35].xxxx; 35: (expression float + (swiz x (var_ref assignment_tmp@0xac270f68) )(expression float * (swiz x (var_ref stepxy@0xad8ea6f8) )(constant float (3,000000)) ) ) MAD TEMP[36], UNIFORM[1].xxxx, CONST[3].wwww, TEMP[32].xxxx; 36: (assign (constant bool (1)) (w) (var_ref vec_ctor@0xac45e408) (expression float + (swiz x (var_ref assignment_tmp@0xac270f68) )(expression float * (swiz x (var_ref stepxy@0xad8ea6f8) )(constant float (3,000000)) ) ) ) MOV TEMP[33].w, TEMP[36].xxxx; 37: (assign (constant bool (1)) (x) (var_ref ypos@0xad82fac0) (swiz y (var_ref assignment_tmp@0xac270f68) )) MOV TEMP[37], TEMP[32].yyyy; 38: (assign (constant bool (1)) (x) (var_ref vec_ctor@0xad831678) (swiz x (var_ref vec_ctor@0xac45e408) )) MOV TEMP[38].x, TEMP[33].xxxx; 39: (assign (constant bool (1)) (y) (var_ref vec_ctor@0xad831678) (var_ref ypos@0xad82fac0) ) MOV TEMP[38].y, TEMP[37].xxxx; 40: (assign (constant bool (1)) (x) (var_ref vec_ctor@0xac39f0a8) (swiz y (var_ref vec_ctor@0xac45e408) )) MOV TEMP[39].x, TEMP[33].yyyy; 41: (assign (constant bool (1)) (y) (var_ref vec_ctor@0xac39f0a8) (var_ref ypos@0xad82fac0) ) MOV TEMP[39].y, TEMP[37].xxxx; 42: (assign (constant bool (1)) (x) (var_ref vec_ctor@0xac3103a8) (swiz z (var_ref vec_ctor@0xac45e408) )) MOV TEMP[40].x, TEMP[33].zzzz; 43: (assign (constant bool (1)) (y) (var_ref vec_ctor@0xac3103a8) (var_ref ypos@0xad82fac0) ) MOV TEMP[40].y, TEMP[37].xxxx; 44: (assign (constant bool (1)) (x) (var_ref vec_ctor@0xac30fa98) (swiz w (var_ref vec_ctor@0xac45e408) )) MOV TEMP[41].x, TEMP[33].wwww; 45: (assign (constant bool (1)) (y) (var_ref vec_ctor@0xac30fa98) (var_ref ypos@0xad82fac0) ) MOV TEMP[41].y, TEMP[37].xxxx; 46: (expression float + (swiz y (var_ref assignment_tmp@0xac270f68) )(swiz y (var_ref stepxy@0xad8ea6f8) )) ADD TEMP[42].x, TEMP[32].yyyy, UNIFORM[1].yyyy; 47: (assign (constant bool (1)) (x) (var_ref ypos@0xac31b2f8) (expression float + (swiz y (var_ref assignment_tmp@0xac270f68) )(swiz y (var_ref stepxy@0xad8ea6f8) )) ) MOV TEMP[43], TEMP[42].xxxx; 48: (assign (constant bool (1)) (x) (var_ref vec_ctor@0xac31f168) (swiz x (var_ref vec_ctor@0xac45e408) )) MOV TEMP[44].x, TEMP[33].xxxx; 49: (assign (constant bool (1)) (y) (var_ref vec_ctor@0xac31f168) (var_ref ypos@0xac31b2f8) ) MOV TEMP[44].y, TEMP[43].xxxx; 50: (assign (constant bool (1)) (x) (var_ref vec_ctor@0xac31d3d0) (swiz y (var_ref vec_ctor@0xac45e408) )) MOV TEMP[45].x, TEMP[33].yyyy; 51: (assign (constant bool (1)) (y) (var_ref vec_ctor@0xac31d3d0) (var_ref ypos@0xac31b2f8) ) MOV TEMP[45].y, TEMP[43].xxxx; 52: (assign (constant bool (1)) (x) (var_ref vec_ctor@0xac3a3738) (swiz z (var_ref vec_ctor@0xac45e408) )) MOV TEMP[46].x, TEMP[33].zzzz; 53: (assign (constant bool (1)) (y) (var_ref vec_ctor@0xac3a3738) (var_ref ypos@0xac31b2f8) ) MOV TEMP[46].y, TEMP[43].xxxx; 54: (assign (constant bool (1)) (x) (var_ref vec_ctor@0xac31b7f0) (swiz w (var_ref vec_ctor@0xac45e408) )) MOV TEMP[47].x, TEMP[33].wwww; 55: (assign (constant bool (1)) (y) (var_ref vec_ctor@0xac31b7f0) (var_ref ypos@0xac31b2f8) ) MOV TEMP[47].y, TEMP[43].xxxx; 56: (expression float + (swiz y (var_ref assignment_tmp@0xac270f68) )(expression float * (swiz y (var_ref stepxy@0xad8ea6f8) )(constant float (2,000000)) ) ) MAD TEMP[48], UNIFORM[1].yyyy, CONST[3].yyyy, TEMP[32].yyyy; 57: (assign (constant bool (1)) (x) (var_ref ypos@0xac3a1f70) (expression float + (swiz y (var_ref assignment_tmp@0xac270f68) )(expression float * (swiz y (var_ref stepxy@0xad8ea6f8) )(constant float (2,000000)) ) ) ) MOV TEMP[49], TEMP[48].xxxx; 58: (assign (constant bool (1)) (x) (var_ref vec_ctor@0xad82d310) (swiz x (var_ref vec_ctor@0xac45e408) )) MOV TEMP[50].x, TEMP[33].xxxx; 59: (assign (constant bool (1)) (y) (var_ref vec_ctor@0xad82d310) (var_ref ypos@0xac3a1f70) ) MOV TEMP[50].y, TEMP[49].xxxx; 60: (assign (constant bool (1)) (x) (var_ref vec_ctor@0xac4002d8) (swiz y (var_ref vec_ctor@0xac45e408) )) MOV TEMP[51].x, TEMP[33].yyyy; 61: (assign (constant bool (1)) (y) (var_ref vec_ctor@0xac4002d8) (var_ref ypos@0xac3a1f70) ) MOV TEMP[51].y, TEMP[49].xxxx; 62: (assign (constant bool (1)) (x) (var_ref vec_ctor@0xac4853b0) (swiz z (var_ref vec_ctor@0xac45e408) )) MOV TEMP[52].x, TEMP[33].zzzz; 63: (assign (constant bool (1)) (y) (var_ref vec_ctor@0xac4853b0) (var_ref ypos@0xac3a1f70) ) MOV TEMP[52].y, TEMP[49].xxxx; 64: (assign (constant bool (1)) (x) (var_ref vec_ctor@0xad832288) (swiz w (var_ref vec_ctor@0xac45e408) )) MOV TEMP[53].x, TEMP[33].wwww; 65: (assign (constant bool (1)) (y) (var_ref vec_ctor@0xad832288) (var_ref ypos@0xac3a1f70) ) MOV TEMP[53].y, TEMP[49].xxxx; 66: (expression float + (swiz y (var_ref assignment_tmp@0xac270f68) )(expression float * (swiz y (var_ref stepxy@0xad8ea6f8) )(constant float (3,000000)) ) ) MAD TEMP[54], UNIFORM[1].yyyy, CONST[3].wwww, TEMP[32].yyyy; 67: (assign (constant bool (1)) (x) (var_ref ypos@0xac46b510) (expression float + (swiz y (var_ref assignment_tmp@0xac270f68) )(expression float * (swiz y (var_ref stepxy@0xad8ea6f8) )(constant float (3,000000)) ) ) ) MOV TEMP[55], TEMP[54].xxxx; 68: (assign (constant bool (1)) (x) (var_ref vec_ctor@0xac46bdc8) (swiz x (var_ref vec_ctor@0xac45e408) )) MOV TEMP[56].x, TEMP[33].xxxx; 69: (assign (constant bool (1)) (y) (var_ref vec_ctor@0xac46bdc8) (var_ref ypos@0xac46b510) ) MOV TEMP[56].y, TEMP[55].xxxx; 70: (assign (constant bool (1)) (x) (var_ref vec_ctor@0xac476590) (swiz y (var_ref vec_ctor@0xac45e408) )) MOV TEMP[57].x, TEMP[33].yyyy; 71: (assign (constant bool (1)) (y) (var_ref vec_ctor@0xac476590) (var_ref ypos@0xac46b510) ) MOV TEMP[57].y, TEMP[55].xxxx; 72: (assign (constant bool (1)) (x) (var_ref vec_ctor@0xac301030) (swiz z (var_ref vec_ctor@0xac45e408) )) MOV TEMP[58].x, TEMP[33].zzzz; 73: (assign (constant bool (1)) (y) (var_ref vec_ctor@0xac301030) (var_ref ypos@0xac46b510) ) MOV TEMP[58].y, TEMP[55].xxxx; 74: (assign (constant bool (1)) (x) (var_ref vec_ctor@0xac411478) (swiz w (var_ref vec_ctor@0xac45e408) )) MOV TEMP[59].x, TEMP[33].wwww; 75: (assign (constant bool (1)) (y) (var_ref vec_ctor@0xac411478) (var_ref ypos@0xac46b510) ) MOV TEMP[59].y, TEMP[55].xxxx; 76: (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac411478) (0 0 0) 1 () ) MOV TEMP[60], TEMP[59].xyyy; 77: TEX TEMP[61], TEMP[60], texture[1], 2D; 78: (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac301030) (0 0 0) 1 () ) MOV TEMP[62], TEMP[58].xyyy; 79: TEX TEMP[63], TEMP[62], texture[1], 2D; 80: (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac476590) (0 0 0) 1 () ) MOV TEMP[64], TEMP[57].xyyy; 81: TEX TEMP[65], TEMP[64], texture[1], 2D; 82: (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac46bdc8) (0 0 0) 1 () ) MOV TEMP[66], TEMP[56].xyyy; 83: TEX TEMP[67], TEMP[66], texture[1], 2D; 84: (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac46bdc8) (0 0 0) 1 () ))(swiz x (var_ref assignment_tmp@0xac445430) )) MUL TEMP[68].xyz, TEMP[67].xyzz, TEMP[22].xxxx; 85: (expression vec3 + (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac46bdc8) (0 0 0) 1 () ))(swiz x (var_ref assignment_tmp@0xac445430) )) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac476590) (0 0 0) 1 () ))(swiz y (var_ref assignment_tmp@0xac445430) )) ) MAD TEMP[69], TEMP[65].xyzz, TEMP[22].yyyy, TEMP[68].xyzz; 86: (expression vec3 + (expression vec3 + (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac46bdc8) (0 0 0) 1 () ))(swiz x (var_ref assignment_tmp@0xac445430) )) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac476590) (0 0 0) 1 () ))(swiz y (var_ref assignment_tmp@0xac445430) )) ) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac301030) (0 0 0) 1 () ))(swiz z (var_ref assignment_tmp@0xac445430) )) ) MAD TEMP[70], TEMP[63].xyzz, TEMP[22].zzzz, TEMP[69].xyzz; 87: (expression vec3 + (expression vec3 + (expression vec3 + (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac46bdc8) (0 0 0) 1 () ))(swiz x (var_ref assignment_tmp@0xac445430) )) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac476590) (0 0 0) 1 () ))(swiz y (var_ref assignment_tmp@0xac445430) )) ) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac301030) (0 0 0) 1 () ))(swiz z (var_ref assignment_tmp@0xac445430) )) ) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac411478) (0 0 0) 1 () ))(swiz w (var_ref assignment_tmp@0xac445430) )) ) MAD TEMP[71], TEMP[61].xyzz, TEMP[22].wwww, TEMP[70].xyzz; 88: (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xad832288) (0 0 0) 1 () ) MOV TEMP[72], TEMP[53].xyyy; 89: TEX TEMP[73], TEMP[72], texture[1], 2D; 90: (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac4853b0) (0 0 0) 1 () ) MOV TEMP[74], TEMP[52].xyyy; 91: TEX TEMP[75], TEMP[74], texture[1], 2D; 92: (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac4002d8) (0 0 0) 1 () ) MOV TEMP[76], TEMP[51].xyyy; 93: TEX TEMP[77], TEMP[76], texture[1], 2D; 94: (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xad82d310) (0 0 0) 1 () ) MOV TEMP[78], TEMP[50].xyyy; 95: TEX TEMP[79], TEMP[78], texture[1], 2D; 96: (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xad82d310) (0 0 0) 1 () ))(swiz x (var_ref assignment_tmp@0xac445430) )) MUL TEMP[80].xyz, TEMP[79].xyzz, TEMP[22].xxxx; 97: (expression vec3 + (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xad82d310) (0 0 0) 1 () ))(swiz x (var_ref assignment_tmp@0xac445430) )) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac4002d8) (0 0 0) 1 () ))(swiz y (var_ref assignment_tmp@0xac445430) )) ) MAD TEMP[81], TEMP[77].xyzz, TEMP[22].yyyy, TEMP[80].xyzz; 98: (expression vec3 + (expression vec3 + (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xad82d310) (0 0 0) 1 () ))(swiz x (var_ref assignment_tmp@0xac445430) )) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac4002d8) (0 0 0) 1 () ))(swiz y (var_ref assignment_tmp@0xac445430) )) ) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac4853b0) (0 0 0) 1 () ))(swiz z (var_ref assignment_tmp@0xac445430) )) ) MAD TEMP[82], TEMP[75].xyzz, TEMP[22].zzzz, TEMP[81].xyzz; 99: (expression vec3 + (expression vec3 + (expression vec3 + (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xad82d310) (0 0 0) 1 () ))(swiz x (var_ref assignment_tmp@0xac445430) )) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac4002d8) (0 0 0) 1 () ))(swiz y (var_ref assignment_tmp@0xac445430) )) ) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac4853b0) (0 0 0) 1 () ))(swiz z (var_ref assignment_tmp@0xac445430) )) ) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xad832288) (0 0 0) 1 () ))(swiz w (var_ref assignment_tmp@0xac445430) )) ) MAD TEMP[83], TEMP[73].xyzz, TEMP[22].wwww, TEMP[82].xyzz; 100: (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac31b7f0) (0 0 0) 1 () ) MOV TEMP[84], TEMP[47].xyyy; 101: TEX TEMP[85], TEMP[84], texture[1], 2D; 102: (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac3a3738) (0 0 0) 1 () ) MOV TEMP[86], TEMP[46].xyyy; 103: TEX TEMP[87], TEMP[86], texture[1], 2D; 104: (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac31d3d0) (0 0 0) 1 () ) MOV TEMP[88], TEMP[45].xyyy; 105: TEX TEMP[89], TEMP[88], texture[1], 2D; 106: (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac31f168) (0 0 0) 1 () ) MOV TEMP[90], TEMP[44].xyyy; 107: TEX TEMP[91], TEMP[90], texture[1], 2D; 108: (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac31f168) (0 0 0) 1 () ))(swiz x (var_ref assignment_tmp@0xac445430) )) MUL TEMP[92].xyz, TEMP[91].xyzz, TEMP[22].xxxx; 109: (expression vec3 + (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac31f168) (0 0 0) 1 () ))(swiz x (var_ref assignment_tmp@0xac445430) )) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac31d3d0) (0 0 0) 1 () ))(swiz y (var_ref assignment_tmp@0xac445430) )) ) MAD TEMP[93], TEMP[89].xyzz, TEMP[22].yyyy, TEMP[92].xyzz; 110: (expression vec3 + (expression vec3 + (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac31f168) (0 0 0) 1 () ))(swiz x (var_ref assignment_tmp@0xac445430) )) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac31d3d0) (0 0 0) 1 () ))(swiz y (var_ref assignment_tmp@0xac445430) )) ) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac3a3738) (0 0 0) 1 () ))(swiz z (var_ref assignment_tmp@0xac445430) )) ) MAD TEMP[94], TEMP[87].xyzz, TEMP[22].zzzz, TEMP[93].xyzz; 111: (expression vec3 + (expression vec3 + (expression vec3 + (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac31f168) (0 0 0) 1 () ))(swiz x (var_ref assignment_tmp@0xac445430) )) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac31d3d0) (0 0 0) 1 () ))(swiz y (var_ref assignment_tmp@0xac445430) )) ) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac3a3738) (0 0 0) 1 () ))(swiz z (var_ref assignment_tmp@0xac445430) )) ) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac31b7f0) (0 0 0) 1 () ))(swiz w (var_ref assignment_tmp@0xac445430) )) ) MAD TEMP[95], TEMP[85].xyzz, TEMP[22].wwww, TEMP[94].xyzz; 112: (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac30fa98) (0 0 0) 1 () ) MOV TEMP[96], TEMP[41].xyyy; 113: TEX TEMP[97], TEMP[96], texture[1], 2D; 114: (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac3103a8) (0 0 0) 1 () ) MOV TEMP[98], TEMP[40].xyyy; 115: TEX TEMP[99], TEMP[98], texture[1], 2D; 116: (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac39f0a8) (0 0 0) 1 () ) MOV TEMP[100], TEMP[39].xyyy; 117: TEX TEMP[101], TEMP[100], texture[1], 2D; 118: (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xad831678) (0 0 0) 1 () ) MOV TEMP[102], TEMP[38].xyyy; 119: TEX TEMP[103], TEMP[102], texture[1], 2D; 120: (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xad831678) (0 0 0) 1 () ))(swiz x (var_ref assignment_tmp@0xac445430) )) MUL TEMP[104].xyz, TEMP[103].xyzz, TEMP[22].xxxx; 121: (expression vec3 + (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xad831678) (0 0 0) 1 () ))(swiz x (var_ref assignment_tmp@0xac445430) )) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac39f0a8) (0 0 0) 1 () ))(swiz y (var_ref assignment_tmp@0xac445430) )) ) MAD TEMP[105], TEMP[101].xyzz, TEMP[22].yyyy, TEMP[104].xyzz; 122: (expression vec3 + (expression vec3 + (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xad831678) (0 0 0) 1 () ))(swiz x (var_ref assignment_tmp@0xac445430) )) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac39f0a8) (0 0 0) 1 () ))(swiz y (var_ref assignment_tmp@0xac445430) )) ) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac3103a8) (0 0 0) 1 () ))(swiz z (var_ref assignment_tmp@0xac445430) )) ) MAD TEMP[106], TEMP[99].xyzz, TEMP[22].zzzz, TEMP[105].xyzz; 123: (expression vec3 + (expression vec3 + (expression vec3 + (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xad831678) (0 0 0) 1 () ))(swiz x (var_ref assignment_tmp@0xac445430) )) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac39f0a8) (0 0 0) 1 () ))(swiz y (var_ref assignment_tmp@0xac445430) )) ) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac3103a8) (0 0 0) 1 () ))(swiz z (var_ref assignment_tmp@0xac445430) )) ) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac30fa98) (0 0 0) 1 () ))(swiz w (var_ref assignment_tmp@0xac445430) )) ) MAD TEMP[107], TEMP[97].xyzz, TEMP[22].wwww, TEMP[106].xyzz; 124: (expression vec3 * (expression vec3 + (expression vec3 + (expression vec3 + (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xad831678) (0 0 0) 1 () ))(swiz x (var_ref assignment_tmp@0xac445430) )) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac39f0a8) (0 0 0) 1 () ))(swiz y (var_ref assignment_tmp@0xac445430) )) ) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac3103a8) (0 0 0) 1 () ))(swiz z (var_ref assignment_tmp@0xac445430) )) ) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac30fa98) (0 0 0) 1 () ))(swiz w (var_ref assignment_tmp@0xac445430) )) ) (swiz x (var_ref columntaps@0xac2a5d70) )) MUL TEMP[108].xyz, TEMP[107].xyzz, TEMP[28].xxxx; 125: (expression vec3 + (expression vec3 * (expression vec3 + (expression vec3 + (expression vec3 + (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xad831678) (0 0 0) 1 () ))(swiz x (var_ref assignment_tmp@0xac445430) )) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac39f0a8) (0 0 0) 1 () ))(swiz y (var_ref assignment_tmp@0xac445430) )) ) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac3103a8) (0 0 0) 1 () ))(swiz z (var_ref assignment_tmp@0xac445430) )) ) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac30fa98) (0 0 0) 1 () ))(swiz w (var_ref assignment_tmp@0xac445430) )) ) (swiz x (var_ref columntaps@0xac2a5d70) )) (expression vec3 * (expression vec3 + (expression vec3 + (expression vec3 + (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac31f168) (0 0 0) 1 () ))(swiz x (var_ref assignment_tmp@0xac445430) )) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac31d3d0) (0 0 0) 1 () ))(swiz y (var_ref assignment_tmp@0xac445430) )) ) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac3a3738) (0 0 0) 1 () ))(swiz z (var_ref assignment_tmp@0xac445430) )) ) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac31b7f0) (0 0 0) 1 () ))(swiz w (var_ref assignment_tmp@0xac445430) )) ) (swiz y (var_ref columntaps@0xac2a5d70) )) ) MAD TEMP[109], TEMP[95].xyzz, TEMP[28].yyyy, TEMP[108].xyzz; 126: (expression vec3 + (expression vec3 + (expression vec3 * (expression vec3 + (expression vec3 + (expression vec3 + (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xad831678) (0 0 0) 1 () ))(swiz x (var_ref assignment_tmp@0xac445430) )) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac39f0a8) (0 0 0) 1 () ))(swiz y (var_ref assignment_tmp@0xac445430) )) ) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac3103a8) (0 0 0) 1 () ))(swiz z (var_ref assignment_tmp@0xac445430) )) ) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac30fa98) (0 0 0) 1 () ))(swiz w (var_ref assignment_tmp@0xac445430) )) ) (swiz x (var_ref columntaps@0xac2a5d70) )) (expression vec3 * (expression vec3 + (expression vec3 + (expression vec3 + (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac31f168) (0 0 0) 1 () ))(swiz x (var_ref assignment_tmp@0xac445430) )) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac31d3d0) (0 0 0) 1 () ))(swiz y (var_ref assignment_tmp@0xac445430) )) ) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac3a3738) (0 0 0) 1 () ))(swiz z (var_ref assignment_tmp@0xac445430) )) ) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac31b7f0) (0 0 0) 1 () ))(swiz w (var_ref assignment_tmp@0xac445430) )) ) (swiz y (var_ref columntaps@0xac2a5d70) )) ) (expression vec3 * (expression vec3 + (expression vec3 + (expression vec3 + (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xad82d310) (0 0 0) 1 () ))(swiz x (var_ref assignment_tmp@0xac445430) )) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac4002d8) (0 0 0) 1 () ))(swiz y (var_ref assignment_tmp@0xac445430) )) ) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac4853b0) (0 0 0) 1 () ))(swiz z (var_ref assignment_tmp@0xac445430) )) ) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xad832288) (0 0 0) 1 () ))(swiz w (var_ref assignment_tmp@0xac445430) )) ) (swiz z (var_ref columntaps@0xac2a5d70) )) ) MAD TEMP[110], TEMP[83].xyzz, TEMP[28].zzzz, TEMP[109].xyzz; 127: (expression vec3 + (expression vec3 + (expression vec3 + (expression vec3 * (expression vec3 + (expression vec3 + (expression vec3 + (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xad831678) (0 0 0) 1 () ))(swiz x (var_ref assignment_tmp@0xac445430) )) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac39f0a8) (0 0 0) 1 () ))(swiz y (var_ref assignment_tmp@0xac445430) )) ) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac3103a8) (0 0 0) 1 () ))(swiz z (var_ref assignment_tmp@0xac445430) )) ) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac30fa98) (0 0 0) 1 () ))(swiz w (var_ref assignment_tmp@0xac445430) )) ) (swiz x (var_ref columntaps@0xac2a5d70) )) (expression vec3 * (expression vec3 + (expression vec3 + (expression vec3 + (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac31f168) (0 0 0) 1 () ))(swiz x (var_ref assignment_tmp@0xac445430) )) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac31d3d0) (0 0 0) 1 () ))(swiz y (var_ref assignment_tmp@0xac445430) )) ) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac3a3738) (0 0 0) 1 () ))(swiz z (var_ref assignment_tmp@0xac445430) )) ) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac31b7f0) (0 0 0) 1 () ))(swiz w (var_ref assignment_tmp@0xac445430) )) ) (swiz y (var_ref columntaps@0xac2a5d70) )) ) (expression vec3 * (expression vec3 + (expression vec3 + (expression vec3 + (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xad82d310) (0 0 0) 1 () ))(swiz x (var_ref assignment_tmp@0xac445430) )) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac4002d8) (0 0 0) 1 () ))(swiz y (var_ref assignment_tmp@0xac445430) )) ) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac4853b0) (0 0 0) 1 () ))(swiz z (var_ref assignment_tmp@0xac445430) )) ) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xad832288) (0 0 0) 1 () ))(swiz w (var_ref assignment_tmp@0xac445430) )) ) (swiz z (var_ref columntaps@0xac2a5d70) )) ) (expression vec3 * (expression vec3 + (expression vec3 + (expression vec3 + (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac46bdc8) (0 0 0) 1 () ))(swiz x (var_ref assignment_tmp@0xac445430) )) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac476590) (0 0 0) 1 () ))(swiz y (var_ref assignment_tmp@0xac445430) )) ) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac301030) (0 0 0) 1 () ))(swiz z (var_ref assignment_tmp@0xac445430) )) ) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac411478) (0 0 0) 1 () ))(swiz w (var_ref assignment_tmp@0xac445430) )) ) (swiz w (var_ref columntaps@0xac2a5d70) )) ) MAD TEMP[111], TEMP[71].xyzz, TEMP[28].wwww, TEMP[110].xyzz; 128: (assign (constant bool (1)) (xyz) (var_ref gl_FragColor@0xad8b3aa8) (expression vec3 + (expression vec3 + (expression vec3 + (expression vec3 * (expression vec3 + (expression vec3 + (expression vec3 + (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xad831678) (0 0 0) 1 () ))(swiz x (var_ref assignment_tmp@0xac445430) )) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac39f0a8) (0 0 0) 1 () ))(swiz y (var_ref assignment_tmp@0xac445430) )) ) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac3103a8) (0 0 0) 1 () ))(swiz z (var_ref assignment_tmp@0xac445430) )) ) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac30fa98) (0 0 0) 1 () ))(swiz w (var_ref assignment_tmp@0xac445430) )) ) (swiz x (var_ref columntaps@0xac2a5d70) )) (expression vec3 * (expression vec3 + (expression vec3 + (expression vec3 + (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac31f168) (0 0 0) 1 () ))(swiz x (var_ref assignment_tmp@0xac445430) )) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac31d3d0) (0 0 0) 1 () ))(swiz y (var_ref assignment_tmp@0xac445430) )) ) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac3a3738) (0 0 0) 1 () ))(swiz z (var_ref assignment_tmp@0xac445430) )) ) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac31b7f0) (0 0 0) 1 () ))(swiz w (var_ref assignment_tmp@0xac445430) )) ) (swiz y (var_ref columntaps@0xac2a5d70) )) ) (expression vec3 * (expression vec3 + (expression vec3 + (expression vec3 + (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xad82d310) (0 0 0) 1 () ))(swiz x (var_ref assignment_tmp@0xac445430) )) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac4002d8) (0 0 0) 1 () ))(swiz y (var_ref assignment_tmp@0xac445430) )) ) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac4853b0) (0 0 0) 1 () ))(swiz z (var_ref assignment_tmp@0xac445430) )) ) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xad832288) (0 0 0) 1 () ))(swiz w (var_ref assignment_tmp@0xac445430) )) ) (swiz z (var_ref columntaps@0xac2a5d70) )) ) (expression vec3 * (expression vec3 + (expression vec3 + (expression vec3 + (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac46bdc8) (0 0 0) 1 () ))(swiz x (var_ref assignment_tmp@0xac445430) )) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac476590) (0 0 0) 1 () ))(swiz y (var_ref assignment_tmp@0xac445430) )) ) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac301030) (0 0 0) 1 () ))(swiz z (var_ref assignment_tmp@0xac445430) )) ) (expression vec3 * (swiz xyz (tex (var_ref img@0xad8ab998) (var_ref vec_ctor@0xac411478) (0 0 0) 1 () ))(swiz w (var_ref assignment_tmp@0xac445430) )) ) (swiz w (var_ref columntaps@0xac2a5d70) )) ) ) MOV OUTPUT[2].xyz, TEMP[111].xyzx; 129: (assign (constant bool (1)) (w) (var_ref gl_FragColor@0xad8b3aa8) (swiz w (var_ref gl_Color@0xac255a60) )) MOV OUTPUT[2].w, INPUT[1].wwww; 130: END vs-mesa: # Vertex Program/Shader 3 0: MUL TEMP[0], STATE[4], INPUT[8].xxxx; 1: MAD TEMP[1], STATE[5], INPUT[8].yyyy, TEMP[0]; 2: MAD TEMP[0], STATE[6], INPUT[8].zzzz, TEMP[1]; 3: MAD OUTPUT[18].xy, STATE[7].xyxx, INPUT[8].wwxx, TEMP[0].xyxx; 4: MUL TEMP[0], STATE[8], INPUT[9].xxxx; 5: MAD TEMP[1], STATE[9], INPUT[9].yyyy, TEMP[0]; 6: MAD TEMP[0], STATE[10], INPUT[9].zzzz, TEMP[1]; 7: MAD OUTPUT[17].xy, STATE[11].xyxx, INPUT[9].wwxx, TEMP[0].xyxx; 8: MUL TEMP[0], STATE[12], INPUT[10].xxxx; 9: MAD TEMP[1], STATE[13], INPUT[10].yyyy, TEMP[0]; 10: MAD TEMP[0], STATE[14], INPUT[10].zzzz, TEMP[1]; 11: MAD OUTPUT[16].xy, STATE[15].xyxx, INPUT[10].wwxx, TEMP[0].xyxx; 12: MUL TEMP[0], STATE[0], INPUT[0].xxxx; 13: MAD TEMP[1], STATE[1], INPUT[0].yyyy, TEMP[0]; 14: MAD TEMP[0], STATE[2], INPUT[0].zzzz, TEMP[1]; 15: MAD OUTPUT[0], STATE[3], INPUT[0].wwww, TEMP[0]; 16: MOV OUTPUT[1], INPUT[3]; 17: END brw_vs_alloc_regs NumAddrRegs 0 brw_vs_alloc_regs NumTemps 2 brw_vs_alloc_regs reg = 17 vs-native: mul(8) g15<1>F g1<0,4,1>F g11<4,4,1>.xF { align16 }; mac(8) g16<1>F g1.4<0,4,1>F g11<4,4,1>.yF { align16 }; mac(8) g15<1>F g2<0,4,1>F g11<4,4,1>.zF { align16 }; mac(8) m11<1>.xyF g2.4<0,4,1>.xyxxF g11<4,4,1>.wwxxF { align16 }; mul(8) g15<1>F g3<0,4,1>F g12<4,4,1>.xF { align16 }; mac(8) g16<1>F g3.4<0,4,1>F g12<4,4,1>.yF { align16 }; mac(8) g15<1>F g4<0,4,1>F g12<4,4,1>.zF { align16 }; mac(8) m10<1>.xyF g4.4<0,4,1>.xyxxF g12<4,4,1>.wwxxF { align16 }; mul(8) g15<1>F g5<0,4,1>F g13<4,4,1>.xF { align16 }; mac(8) g16<1>F g5.4<0,4,1>F g13<4,4,1>.yF { align16 }; mac(8) g15<1>F g6<0,4,1>F g13<4,4,1>.zF { align16 }; mac(8) m9<1>.xyF g6.4<0,4,1>.xyxxF g13<4,4,1>.wwxxF { align16 }; mul(8) g15<1>F g7<0,4,1>F g9<4,4,1>.xF { align16 }; mac(8) g16<1>F g7.4<0,4,1>F g9<4,4,1>.yF { align16 }; mac(8) g15<1>F g8<0,4,1>F g9<4,4,1>.zF { align16 }; mac(8) g14<1>F g8.4<0,4,1>F g9<4,4,1>.wF { align16 }; mov.sat(8) m8<1>F g10<4,4,1>F { align16 }; send(8) 2 g17<1>F g14<4,4,1>.wF math inv scalar mlen 1 rlen 1 { align16 }; mul(8) g17<1>.xyzF g14<4,4,1>F g17<4,4,1>F { align16 }; mov(8) m1<1>UD 0x00000000UD { align16 }; mov(8) m2<1>F g17<8,8,1>F { align1 }; mov(8) m3<1>F g14<8,8,1>F { align1 }; mov(8) m7<1>F g14<8,8,1>F { align1 }; send(8) 0 null g0<8,8,1>F urb 0 urb_write interleave used complete mlen 12, rlen 0 mlen 12 rlen 0 { align1 EOT }; GLSL IR for native fragment shader 3: ( (declare (uniform ) mat4 m_yuvmat@0xad8d8a68) (declare (in ) vec2 m_cordV@0xad8d9488) (declare (in ) vec2 m_cordU@0xad8aa060) (declare (in ) vec2 m_cordY@0xad8ad5e8) (declare (uniform ) sampler2D m_sampV@0xad8c3020) (declare (uniform ) sampler2D m_sampU@0xad8a45a8) (declare (uniform ) sampler2D m_sampY@0xac4ef7b8) (declare (out ) vec4 gl_FragColor@0xac4da858) (declare (in ) vec4 gl_Color@0xac4970c0) (function main (signature void (parameters ) ( (declare (temporary ) float vec_ctor_x@0xac273958) (declare (temporary ) float vec_ctor_y@0xac273a30) (declare (temporary ) float vec_ctor_z@0xac273b08) (assign (constant bool (1)) (x) (var_ref vec_ctor_x@0xac273958) (swiz x (tex (var_ref m_sampY@0xac4ef7b8) (var_ref m_cordY@0xad8ad5e8) (0 0 0) 1 () ))) (assign (constant bool (1)) (x) (var_ref vec_ctor_y@0xac273a30) (swiz y (tex (var_ref m_sampU@0xad8a45a8) (var_ref m_cordU@0xad8aa060) (0 0 0) 1 () ))) (assign (constant bool (1)) (x) (var_ref vec_ctor_z@0xac273b08) (swiz w (tex (var_ref m_sampV@0xad8c3020) (var_ref m_cordV@0xad8d9488) (0 0 0) 1 () ))) (declare (temporary ) vec4 channel_expressions@0xad8c73c0) (assign (constant bool (1)) (xyzw) (var_ref channel_expressions@0xad8c73c0) (array_ref (var_ref m_yuvmat@0xad8d8a68) (constant int (0)) ) ) (declare (temporary ) vec4 channel_expressions@0xad8303d8) (assign (constant bool (1)) (xyzw) (var_ref channel_expressions@0xad8303d8) (array_ref (var_ref m_yuvmat@0xad8d8a68) (constant int (1)) ) ) (declare (temporary ) vec4 channel_expressions@0xad8bc6e8) (assign (constant bool (1)) (xyzw) (var_ref channel_expressions@0xad8bc6e8) (array_ref (var_ref m_yuvmat@0xad8d8a68) (constant int (2)) ) ) (declare (temporary ) vec4 channel_expressions@0xac20ac68) (assign (constant bool (1)) (xyzw) (var_ref channel_expressions@0xac20ac68) (array_ref (var_ref m_yuvmat@0xad8d8a68) (constant int (3)) ) ) (assign (constant bool (1)) (x) (var_ref gl_FragColor@0xac4da858) (expression float + (expression float + (expression float + (expression float * (swiz x (var_ref channel_expressions@0xad8c73c0) )(var_ref vec_ctor_x@0xac273958) ) (expression float * (swiz x (var_ref channel_expressions@0xad8303d8) )(var_ref vec_ctor_y@0xac273a30) ) ) (expression float * (swiz x (var_ref channel_expressions@0xad8bc6e8) )(var_ref vec_ctor_z@0xac273b08) ) ) (swiz x (var_ref channel_expressions@0xac20ac68) )) ) (assign (constant bool (1)) (y) (var_ref gl_FragColor@0xac4da858) (expression float + (expression float + (expression float + (expression float * (swiz y (var_ref channel_expressions@0xad8c73c0) )(var_ref vec_ctor_x@0xac273958) ) (expression float * (swiz y (var_ref channel_expressions@0xad8303d8) )(var_ref vec_ctor_y@0xac273a30) ) ) (expression float * (swiz y (var_ref channel_expressions@0xad8bc6e8) )(var_ref vec_ctor_z@0xac273b08) ) ) (swiz y (var_ref channel_expressions@0xac20ac68) )) ) (assign (constant bool (1)) (z) (var_ref gl_FragColor@0xac4da858) (expression float + (expression float + (expression float + (expression float * (swiz z (var_ref channel_expressions@0xad8c73c0) )(var_ref vec_ctor_x@0xac273958) ) (expression float * (swiz z (var_ref channel_expressions@0xad8303d8) )(var_ref vec_ctor_y@0xac273a30) ) ) (expression float * (swiz z (var_ref channel_expressions@0xad8bc6e8) )(var_ref vec_ctor_z@0xac273b08) ) ) (swiz z (var_ref channel_expressions@0xac20ac68) )) ) (assign (constant bool (1)) (w) (var_ref gl_FragColor@0xac4da858) (swiz w (var_ref gl_Color@0xac4970c0) )) )) ) ) Native code for fragment shader 3: compute pixel centers add(8) g14<1>UW g1.4<2,4,0>UW 0x10101010V { align1 }; add(8) g15<1>UW g1.5<2,4,0>UW 0x11001100V { align1 }; compute pixel deltas from v0 add(8) g16<1>F g14<8,8,1>UW -g1<0,1,0>F { align1 }; add(8) g17<1>F g15<8,8,1>UW -g1.1<0,1,0>F { align1 }; compute pos.w and 1/pos.w pln(8) g14<1>F g5.4<0,1,0>F g16<8,8,1>F { align1 }; send(8) 2 g14<1>F g14<8,8,1>F math inv mlen 1 rlen 1 { align1 }; (declare (in ) vec2 m_cordV@0xad8d9488) pln(8) g15<1>F g8<0,1,0>F g16<8,8,1>F { align1 }; pln(8) g27<1>F g8.4<0,1,0>F g16<8,8,1>F { align1 }; mul(8) g15<1>F g15<8,8,1>F g14<8,8,1>F { align1 }; mul(8) g27<1>F g27<8,8,1>F g14<8,8,1>F { align1 }; (declare (in ) vec2 m_cordU@0xad8aa060) pln(8) g18<1>F g10<0,1,0>F g16<8,8,1>F { align1 }; pln(8) g23<1>F g10.4<0,1,0>F g16<8,8,1>F { align1 }; mul(8) g18<1>F g18<8,8,1>F g14<8,8,1>F { align1 }; mul(8) g23<1>F g23<8,8,1>F g14<8,8,1>F { align1 }; (declare (in ) vec2 m_cordY@0xad8ad5e8) pln(8) g19<1>F g12<0,1,0>F g16<8,8,1>F { align1 }; pln(8) g20<1>F g12.4<0,1,0>F g16<8,8,1>F { align1 }; mul(8) m2<1>F g19<8,8,1>F g14<8,8,1>F { align1 }; mul(8) m3<1>F g20<8,8,1>F g14<8,8,1>F { align1 }; (declare (in ) vec4 gl_Color@0xac4970c0) pln(8) g16<1>F g7.4<0,1,0>F g16<8,8,1>F { align1 }; mul(8) m5<1>F g16<8,8,1>F g14<8,8,1>F { align1 }; (assign (constant bool (1)) (x) (var_ref vec_ctor_x@0xac273958) (swiz x (tex (var_ref m_sampY@0xac4ef7b8) (var_ref m_cordY@0xad8ad5e8) (0 0 0) 1 () ))) send(8) 1 g19<1>UW g0<8,8,1>UW sampler (9, 0, 0, 1) mlen 3 rlen 4 { align1 }; (assign (constant bool (1)) (x) (var_ref vec_ctor_y@0xac273a30) (swiz y (tex (var_ref m_sampU@0xad8a45a8) (var_ref m_cordU@0xad8aa060) (0 0 0) 1 () ))) mov(8) m2<1>F g18<8,8,1>F { align1 }; mov(8) m3<1>F g23<8,8,1>F { align1 }; send(8) 1 g23<1>UW g0<8,8,1>UW sampler (10, 1, 0, 1) mlen 3 rlen 4 { align1 }; (assign (constant bool (1)) (x) (var_ref vec_ctor_z@0xac273b08) (swiz w (tex (var_ref m_sampV@0xad8c3020) (var_ref m_cordV@0xad8d9488) (0 0 0) 1 () ))) mov(8) m2<1>F g15<8,8,1>F { align1 }; mov(8) m3<1>F g27<8,8,1>F { align1 }; send(8) 1 g14<1>UW g0<8,8,1>UW sampler (11, 2, 0, 1) mlen 3 rlen 4 { align1 }; (assign (constant bool (1)) (xyzw) (var_ref channel_expressions@0xad8c73c0) (array_ref (var_ref m_yuvmat@0xad8d8a68) (constant int (0)) ) ) mov(8) g18<1>F g2<0,1,0>F { align1 }; mov(8) g30<1>F g2.1<0,1,0>F { align1 }; mov(8) g31<1>F g2.2<0,1,0>F { align1 }; (assign (constant bool (1)) (xyzw) (var_ref channel_expressions@0xad8303d8) (array_ref (var_ref m_yuvmat@0xad8d8a68) (constant int (1)) ) ) mov(8) g27<1>F g2.4<0,1,0>F { align1 }; mov(8) g32<1>F g2.5<0,1,0>F { align1 }; mov(8) g33<1>F g2.6<0,1,0>F { align1 }; (assign (constant bool (1)) (xyzw) (var_ref channel_expressions@0xad8bc6e8) (array_ref (var_ref m_yuvmat@0xad8d8a68) (constant int (2)) ) ) mov(8) g28<1>F g3<0,1,0>F { align1 }; mov(8) g34<1>F g3.1<0,1,0>F { align1 }; mov(8) g35<1>F g3.2<0,1,0>F { align1 }; (assign (constant bool (1)) (xyzw) (var_ref channel_expressions@0xac20ac68) (array_ref (var_ref m_yuvmat@0xad8d8a68) (constant int (3)) ) ) mov(8) g29<1>F g3.4<0,1,0>F { align1 }; mov(8) g36<1>F g3.5<0,1,0>F { align1 }; mov(8) g37<1>F g3.6<0,1,0>F { align1 }; (assign (constant bool (1)) (x) (var_ref gl_FragColor@0xac4da858) (expression float + (expression float + (expression float + (expression float * (swiz x (var_ref channel_expressions@0xad8c73c0) )(var_ref vec_ctor_x@0xac273958) ) (expression float * (swiz x (var_ref channel_expressions@0xad8303d8) )(var_ref vec_ctor_y@0xac273a30) ) ) (expression float * (swiz x (var_ref channel_expressions@0xad8bc6e8) )(var_ref vec_ctor_z@0xac273b08) ) ) (swiz x (var_ref channel_expressions@0xac20ac68) )) ) mul(8) g18<1>F g18<8,8,1>F g19<8,8,1>F { align1 }; mul(8) g27<1>F g27<8,8,1>F g24<8,8,1>F { align1 }; add(8) g18<1>F g18<8,8,1>F g27<8,8,1>F { align1 }; mul(8) g27<1>F g28<8,8,1>F g17<8,8,1>F { align1 }; add(8) g18<1>F g18<8,8,1>F g27<8,8,1>F { align1 }; add(8) m2<1>F g18<8,8,1>F g29<8,8,1>F { align1 }; (assign (constant bool (1)) (y) (var_ref gl_FragColor@0xac4da858) (expression float + (expression float + (expression float + (expression float * (swiz y (var_ref channel_expressions@0xad8c73c0) )(var_ref vec_ctor_x@0xac273958) ) (expression float * (swiz y (var_ref channel_expressions@0xad8303d8) )(var_ref vec_ctor_y@0xac273a30) ) ) (expression float * (swiz y (var_ref channel_expressions@0xad8bc6e8) )(var_ref vec_ctor_z@0xac273b08) ) ) (swiz y (var_ref channel_expressions@0xac20ac68) )) ) mul(8) g18<1>F g30<8,8,1>F g19<8,8,1>F { align1 }; mul(8) g27<1>F g32<8,8,1>F g24<8,8,1>F { align1 }; add(8) g18<1>F g18<8,8,1>F g27<8,8,1>F { align1 }; mul(8) g27<1>F g34<8,8,1>F g17<8,8,1>F { align1 }; add(8) g18<1>F g18<8,8,1>F g27<8,8,1>F { align1 }; add(8) m3<1>F g18<8,8,1>F g36<8,8,1>F { align1 }; (assign (constant bool (1)) (z) (var_ref gl_FragColor@0xac4da858) (expression float + (expression float + (expression float + (expression float * (swiz z (var_ref channel_expressions@0xad8c73c0) )(var_ref vec_ctor_x@0xac273958) ) (expression float * (swiz z (var_ref channel_expressions@0xad8303d8) )(var_ref vec_ctor_y@0xac273a30) ) ) (expression float * (swiz z (var_ref channel_expressions@0xad8bc6e8) )(var_ref vec_ctor_z@0xac273b08) ) ) (swiz z (var_ref channel_expressions@0xac20ac68) )) ) mul(8) g18<1>F g31<8,8,1>F g19<8,8,1>F { align1 }; mul(8) g19<1>F g33<8,8,1>F g24<8,8,1>F { align1 }; add(8) g18<1>F g18<8,8,1>F g19<8,8,1>F { align1 }; mul(8) g14<1>F g35<8,8,1>F g17<8,8,1>F { align1 }; add(8) g14<1>F g18<8,8,1>F g14<8,8,1>F { align1 }; add(8) m4<1>F g14<8,8,1>F g37<8,8,1>F { align1 }; (assign (constant bool (1)) (w) (var_ref gl_FragColor@0xac4da858) (swiz w (var_ref gl_Color@0xac4970c0) )) 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 6 0: MUL TEMP[0], STATE[4], INPUT[8].xxxx; 1: MAD TEMP[1], STATE[5], INPUT[8].yyyy, TEMP[0]; 2: MAD TEMP[0], STATE[6], INPUT[8].zzzz, TEMP[1]; 3: MAD OUTPUT[16].xy, STATE[7].xyxx, INPUT[8].wwxx, TEMP[0].xyxx; 4: MUL TEMP[0], STATE[0], INPUT[0].xxxx; 5: MAD TEMP[1], STATE[1], INPUT[0].yyyy, TEMP[0]; 6: MAD TEMP[0], STATE[2], INPUT[0].zzzz, TEMP[1]; 7: MAD OUTPUT[0], STATE[3], INPUT[0].wwww, TEMP[0]; 8: MOV OUTPUT[1], INPUT[3]; 9: END brw_vs_alloc_regs NumAddrRegs 0 brw_vs_alloc_regs NumTemps 2 brw_vs_alloc_regs reg = 11 vs-native: mul(8) g9<1>F g1<0,4,1>F g7<4,4,1>.xF { align16 }; mac(8) g10<1>F g1.4<0,4,1>F g7<4,4,1>.yF { align16 }; mac(8) g9<1>F g2<0,4,1>F g7<4,4,1>.zF { align16 }; mac(8) m9<1>.xyF g2.4<0,4,1>.xyxxF g7<4,4,1>.wwxxF { align16 }; mul(8) g9<1>F g3<0,4,1>F g5<4,4,1>.xF { align16 }; mac(8) g10<1>F g3.4<0,4,1>F g5<4,4,1>.yF { align16 }; mac(8) g9<1>F g4<0,4,1>F g5<4,4,1>.zF { align16 }; mac(8) g8<1>F g4.4<0,4,1>F g5<4,4,1>.wF { align16 }; mov.sat(8) m8<1>F g6<4,4,1>F { align16 }; send(8) 2 g11<1>F g8<4,4,1>.wF math inv scalar mlen 1 rlen 1 { align16 }; mul(8) g11<1>.xyzF g8<4,4,1>F g11<4,4,1>F { align16 }; mov(8) m1<1>UD 0x00000000UD { align16 }; mov(8) m2<1>F g11<8,8,1>F { align1 }; mov(8) m3<1>F g8<8,8,1>F { align1 }; mov(8) m7<1>F g8<8,8,1>F { align1 }; send(8) 0 null g0<8,8,1>F urb 0 urb_write interleave used complete mlen 10, rlen 0 mlen 10 rlen 0 { align1 EOT }; GLSL IR for native fragment shader 6: ( (declare (uniform ) sampler1D kernelTex@0xac30d6d0) (declare (in ) vec2 cord@0xac4110f8) (declare (uniform ) vec2 stepxy@0xac4106a0) (declare (uniform ) sampler2D img@0xac300cb0) (declare (out ) vec4 gl_FragColor@0xac476210) (declare (in ) vec4 gl_Color@0xac4757b8) (function main (signature void (parameters ) ( (declare (temporary ) float flattening_tmp_x@0xad82d778) (declare (temporary ) float flattening_tmp_y@0xad82d7d8) (assign (constant bool (1)) (x) (var_ref flattening_tmp_x@0xad82d778) (expression float fract (expression float * (swiz x (var_ref cord@0xac4110f8) )(expression float rcp (swiz x (var_ref stepxy@0xac4106a0) )) ) ) ) (assign (constant bool (1)) (x) (var_ref flattening_tmp_y@0xad82d7d8) (expression float fract (expression float * (swiz y (var_ref cord@0xac4110f8) )(expression float rcp (swiz y (var_ref stepxy@0xac4106a0) )) ) ) ) (declare (temporary ) vec4 channel_expressions@0xac3938c8) (assign (constant bool (1)) (xyzw) (var_ref channel_expressions@0xac3938c8) (tex (var_ref kernelTex@0xac30d6d0) (expression float + (constant float (1,000000)) (expression float neg (var_ref flattening_tmp_x@0xad82d778) ) ) (0 0 0) 1 () )) (declare (temporary ) float flattening_tmp_x@0xad82dd38) (declare (temporary ) float flattening_tmp_y@0xad82dd98) (declare (temporary ) float flattening_tmp_z@0xad82ddf8) (declare (temporary ) float flattening_tmp_w@0xad82de58) (assign (constant bool (1)) (x) (var_ref flattening_tmp_x@0xad82dd38) (expression float + (expression float * (swiz x (var_ref channel_expressions@0xac3938c8) )(constant float (2,000000)) ) (constant float (-1,000000)) ) ) (assign (constant bool (1)) (x) (var_ref flattening_tmp_y@0xad82dd98) (expression float + (expression float * (swiz y (var_ref channel_expressions@0xac3938c8) )(constant float (2,000000)) ) (constant float (-1,000000)) ) ) (assign (constant bool (1)) (x) (var_ref flattening_tmp_z@0xad82ddf8) (expression float + (expression float * (swiz z (var_ref channel_expressions@0xac3938c8) )(constant float (2,000000)) ) (constant float (-1,000000)) ) ) (assign (constant bool (1)) (x) (var_ref flattening_tmp_w@0xad82de58) (expression float + (expression float * (swiz w (var_ref channel_expressions@0xac3938c8) )(constant float (2,000000)) ) (constant float (-1,000000)) ) ) (declare (temporary ) vec4 channel_expressions@0xac320fc8) (assign (constant bool (1)) (xyzw) (var_ref channel_expressions@0xac320fc8) (tex (var_ref kernelTex@0xac30d6d0) (expression float + (constant float (1,000000)) (expression float neg (var_ref flattening_tmp_y@0xad82d7d8) ) ) (0 0 0) 1 () )) (declare (temporary ) float flattening_tmp_x@0xad82e5b8) (declare (temporary ) float flattening_tmp_y@0xad82e618) (declare (temporary ) float flattening_tmp_z@0xad82e678) (declare (temporary ) float flattening_tmp_w@0xad82e6d8) (assign (constant bool (1)) (x) (var_ref flattening_tmp_x@0xad82e5b8) (expression float + (expression float * (swiz x (var_ref channel_expressions@0xac320fc8) )(constant float (2,000000)) ) (constant float (-1,000000)) ) ) (assign (constant bool (1)) (x) (var_ref flattening_tmp_y@0xad82e618) (expression float + (expression float * (swiz y (var_ref channel_expressions@0xac320fc8) )(constant float (2,000000)) ) (constant float (-1,000000)) ) ) (assign (constant bool (1)) (x) (var_ref flattening_tmp_z@0xad82e678) (expression float + (expression float * (swiz z (var_ref channel_expressions@0xac320fc8) )(constant float (2,000000)) ) (constant float (-1,000000)) ) ) (assign (constant bool (1)) (x) (var_ref flattening_tmp_w@0xad82e6d8) (expression float + (expression float * (swiz w (var_ref channel_expressions@0xac320fc8) )(constant float (2,000000)) ) (constant float (-1,000000)) ) ) (declare (temporary ) float flattening_tmp_x@0xad82ed48) (declare (temporary ) float flattening_tmp_y@0xad82ee38) (declare (temporary ) float flattening_tmp_z@0xad82ef28) (declare (temporary ) float flattening_tmp_w@0xad82f018) (declare (temporary ) float channel_expressions@0xac37e0c8) (assign (constant bool (1)) (x) (var_ref channel_expressions@0xac37e0c8) (expression float rcp (expression float + (expression float + (expression float + (var_ref flattening_tmp_x@0xad82dd38) (var_ref flattening_tmp_y@0xad82dd98) ) (var_ref flattening_tmp_z@0xad82ddf8) ) (var_ref flattening_tmp_w@0xad82de58) ) ) ) (assign (constant bool (1)) (x) (var_ref flattening_tmp_x@0xad82ed48) (expression float * (var_ref flattening_tmp_x@0xad82dd38) (var_ref channel_expressions@0xac37e0c8) ) ) (assign (constant bool (1)) (x) (var_ref flattening_tmp_y@0xad82ee38) (expression float * (var_ref flattening_tmp_y@0xad82dd98) (var_ref channel_expressions@0xac37e0c8) ) ) (assign (constant bool (1)) (x) (var_ref flattening_tmp_z@0xad82ef28) (expression float * (var_ref flattening_tmp_z@0xad82ddf8) (var_ref channel_expressions@0xac37e0c8) ) ) (assign (constant bool (1)) (x) (var_ref flattening_tmp_w@0xad82f018) (expression float * (var_ref flattening_tmp_w@0xad82de58) (var_ref channel_expressions@0xac37e0c8) ) ) (declare (temporary ) float flattening_tmp_x@0xac462280) (declare (temporary ) float flattening_tmp_y@0xac462370) (declare (temporary ) float flattening_tmp_z@0xac462460) (declare (temporary ) float flattening_tmp_w@0xac462550) (declare (temporary ) float channel_expressions@0xad82c0a0) (assign (constant bool (1)) (x) (var_ref channel_expressions@0xad82c0a0) (expression float rcp (expression float + (expression float + (expression float + (var_ref flattening_tmp_x@0xad82e5b8) (var_ref flattening_tmp_y@0xad82e618) ) (var_ref flattening_tmp_z@0xad82e678) ) (var_ref flattening_tmp_w@0xad82e6d8) ) ) ) (assign (constant bool (1)) (x) (var_ref flattening_tmp_x@0xac462280) (expression float * (var_ref flattening_tmp_x@0xad82e5b8) (var_ref channel_expressions@0xad82c0a0) ) ) (assign (constant bool (1)) (x) (var_ref flattening_tmp_y@0xac462370) (expression float * (var_ref flattening_tmp_y@0xad82e618) (var_ref channel_expressions@0xad82c0a0) ) ) (assign (constant bool (1)) (x) (var_ref flattening_tmp_z@0xac462460) (expression float * (var_ref flattening_tmp_z@0xad82e678) (var_ref channel_expressions@0xad82c0a0) ) ) (assign (constant bool (1)) (x) (var_ref flattening_tmp_w@0xac462550) (expression float * (var_ref flattening_tmp_w@0xad82e6d8) (var_ref channel_expressions@0xad82c0a0) ) ) (declare (temporary ) float flattening_tmp_x@0xac4639c0) (declare (temporary ) float flattening_tmp_y@0xac463ab0) (assign (constant bool (1)) (x) (var_ref flattening_tmp_x@0xac4639c0) (expression float + (expression float * (expression float + (constant float (-1,000000)) (expression float neg (var_ref flattening_tmp_x@0xad82d778) ) ) (swiz x (var_ref stepxy@0xac4106a0) )) (swiz x (var_ref cord@0xac4110f8) )) ) (assign (constant bool (1)) (x) (var_ref flattening_tmp_y@0xac463ab0) (expression float + (expression float * (expression float + (constant float (-1,000000)) (expression float neg (var_ref flattening_tmp_y@0xad82d7d8) ) ) (swiz y (var_ref stepxy@0xac4106a0) )) (swiz y (var_ref cord@0xac4110f8) )) ) (declare (temporary ) float vec_ctor_y@0xad8ec2e8) (declare (temporary ) float vec_ctor_z@0xad8ec348) (declare (temporary ) float vec_ctor_w@0xad8ec3a8) (assign (constant bool (1)) (x) (var_ref vec_ctor_y@0xad8ec2e8) (expression float + (var_ref flattening_tmp_x@0xac4639c0) (swiz x (var_ref stepxy@0xac4106a0) )) ) (assign (constant bool (1)) (x) (var_ref vec_ctor_z@0xad8ec348) (expression float + (var_ref flattening_tmp_x@0xac4639c0) (expression float * (swiz x (var_ref stepxy@0xac4106a0) )(constant float (2,000000)) ) ) ) (assign (constant bool (1)) (x) (var_ref vec_ctor_w@0xad8ec3a8) (expression float + (var_ref flattening_tmp_x@0xac4639c0) (expression float * (swiz x (var_ref stepxy@0xac4106a0) )(constant float (3,000000)) ) ) ) (declare (temporary ) vec2 vec_ctor@0xac43e5c8) (assign (constant bool (1)) (x) (var_ref vec_ctor@0xac43e5c8) (var_ref flattening_tmp_x@0xac4639c0) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0xac43e5c8) (var_ref flattening_tmp_y@0xac463ab0) ) (declare (temporary ) vec2 vec_ctor@0xad8b0638) (assign (constant bool (1)) (x) (var_ref vec_ctor@0xad8b0638) (var_ref vec_ctor_y@0xad8ec2e8) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0xad8b0638) (var_ref flattening_tmp_y@0xac463ab0) ) (declare (temporary ) vec2 vec_ctor@0xac4f82a0) (assign (constant bool (1)) (x) (var_ref vec_ctor@0xac4f82a0) (var_ref vec_ctor_z@0xad8ec348) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0xac4f82a0) (var_ref flattening_tmp_y@0xac463ab0) ) (declare (temporary ) vec2 vec_ctor@0xac2a4650) (assign (constant bool (1)) (x) (var_ref vec_ctor@0xac2a4650) (var_ref vec_ctor_w@0xad8ec3a8) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0xac2a4650) (var_ref flattening_tmp_y@0xac463ab0) ) (declare () float ypos@0xac2a42d0) (assign (constant bool (1)) (x) (var_ref ypos@0xac2a42d0) (expression float + (var_ref flattening_tmp_y@0xac463ab0) (swiz y (var_ref stepxy@0xac4106a0) )) ) (declare (temporary ) vec2 vec_ctor@0xac4f7ba0) (assign (constant bool (1)) (x) (var_ref vec_ctor@0xac4f7ba0) (var_ref flattening_tmp_x@0xac4639c0) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0xac4f7ba0) (var_ref ypos@0xac2a42d0) ) (declare (temporary ) vec2 vec_ctor@0xac4f7f20) (assign (constant bool (1)) (x) (var_ref vec_ctor@0xac4f7f20) (var_ref vec_ctor_y@0xad8ec2e8) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0xac4f7f20) (var_ref ypos@0xac2a42d0) ) (declare (temporary ) vec2 vec_ctor@0xac45eb08) (assign (constant bool (1)) (x) (var_ref vec_ctor@0xac45eb08) (var_ref vec_ctor_z@0xad8ec348) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0xac45eb08) (var_ref ypos@0xac2a42d0) ) (declare (temporary ) vec2 vec_ctor@0xac26f0b8) (assign (constant bool (1)) (x) (var_ref vec_ctor@0xac26f0b8) (var_ref vec_ctor_w@0xad8ec3a8) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0xac26f0b8) (var_ref ypos@0xac2a42d0) ) (declare () float ypos@0xac2a67e0) (assign (constant bool (1)) (x) (var_ref ypos@0xac2a67e0) (expression float + (var_ref flattening_tmp_y@0xac463ab0) (expression float * (swiz y (var_ref stepxy@0xac4106a0) )(constant float (2,000000)) ) ) ) (declare (temporary ) vec2 vec_ctor@0xad81d000) (assign (constant bool (1)) (x) (var_ref vec_ctor@0xad81d000) (var_ref flattening_tmp_x@0xac4639c0) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0xad81d000) (var_ref ypos@0xac2a67e0) ) (declare (temporary ) vec2 vec_ctor@0xac2ffd48) (assign (constant bool (1)) (x) (var_ref vec_ctor@0xac2ffd48) (var_ref vec_ctor_y@0xad8ec2e8) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0xac2ffd48) (var_ref ypos@0xac2a67e0) ) (declare (temporary ) vec2 vec_ctor@0xac4a2cd8) (assign (constant bool (1)) (x) (var_ref vec_ctor@0xac4a2cd8) (var_ref vec_ctor_z@0xad8ec348) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0xac4a2cd8) (var_ref ypos@0xac2a67e0) ) (declare (temporary ) vec2 vec_ctor@0xac2e9288) (assign (constant bool (1)) (x) (var_ref vec_ctor@0xac2e9288) (var_ref vec_ctor_w@0xad8ec3a8) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0xac2e9288) (var_ref ypos@0xac2a67e0) ) (declare () float ypos@0xac447148) (assign (constant bool (1)) (x) (var_ref ypos@0xac447148) (expression float + (var_ref flattening_tmp_y@0xac463ab0) (expression float * (swiz y (var_ref stepxy@0xac4106a0) )(constant float (3,000000)) ) ) ) (declare (temporary ) vec2 vec_ctor@0xac2547b0) (assign (constant bool (1)) (x) (var_ref vec_ctor@0xac2547b0) (var_ref flattening_tmp_x@0xac4639c0) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0xac2547b0) (var_ref ypos@0xac447148) ) (declare (temporary ) vec2 vec_ctor@0xad8ae8e8) (assign (constant bool (1)) (x) (var_ref vec_ctor@0xad8ae8e8) (var_ref vec_ctor_y@0xad8ec2e8) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0xad8ae8e8) (var_ref ypos@0xac447148) ) (declare (temporary ) vec2 vec_ctor@0xac255988) (assign (constant bool (1)) (x) (var_ref vec_ctor@0xac255988) (var_ref vec_ctor_z@0xad8ec348) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0xac255988) (var_ref ypos@0xac447148) ) (declare (temporary ) vec2 vec_ctor@0xac20b4d8) (assign (constant bool (1)) (x) (var_ref vec_ctor@0xac20b4d8) (var_ref vec_ctor_w@0xad8ec3a8) ) (assign (constant bool (1)) (y) (var_ref vec_ctor@0xac20b4d8) (var_ref ypos@0xac447148) ) (declare (temporary ) vec3 channel_expressions@0xac3a08d8) (assign (constant bool (1)) (xyz) (var_ref channel_expressions@0xac3a08d8) (swiz xyz (tex (var_ref img@0xac300cb0) (var_ref vec_ctor@0xac43e5c8) (0 0 0) 1 () ))) (declare (temporary ) vec3 channel_expressions@0xac31c540) (assign (constant bool (1)) (xyz) (var_ref channel_expressions@0xac31c540) (swiz xyz (tex (var_ref img@0xac300cb0) (var_ref vec_ctor@0xad8b0638) (0 0 0) 1 () ))) (declare (temporary ) vec3 channel_expressions@0xac37d660) (assign (constant bool (1)) (xyz) (var_ref channel_expressions@0xac37d660) (swiz xyz (tex (var_ref img@0xac300cb0) (var_ref vec_ctor@0xac4f82a0) (0 0 0) 1 () ))) (declare (temporary ) vec3 channel_expressions@0xac3a1098) (assign (constant bool (1)) (xyz) (var_ref channel_expressions@0xac3a1098) (swiz xyz (tex (var_ref img@0xac300cb0) (var_ref vec_ctor@0xac2a4650) (0 0 0) 1 () ))) (declare (temporary ) vec3 channel_expressions@0xac310708) (assign (constant bool (1)) (xyz) (var_ref channel_expressions@0xac310708) (swiz xyz (tex (var_ref img@0xac300cb0) (var_ref vec_ctor@0xac4f7ba0) (0 0 0) 1 () ))) (declare (temporary ) vec3 channel_expressions@0xac319e70) (assign (constant bool (1)) (xyz) (var_ref channel_expressions@0xac319e70) (swiz xyz (tex (var_ref img@0xac300cb0) (var_ref vec_ctor@0xac4f7f20) (0 0 0) 1 () ))) (declare (temporary ) vec3 channel_expressions@0xac46c8f0) (assign (constant bool (1)) (xyz) (var_ref channel_expressions@0xac46c8f0) (swiz xyz (tex (var_ref img@0xac300cb0) (var_ref vec_ctor@0xac45eb08) (0 0 0) 1 () ))) (declare (temporary ) vec3 channel_expressions@0xad831e40) (assign (constant bool (1)) (xyz) (var_ref channel_expressions@0xad831e40) (swiz xyz (tex (var_ref img@0xac300cb0) (var_ref vec_ctor@0xac26f0b8) (0 0 0) 1 () ))) (declare (temporary ) vec3 channel_expressions@0xac291c68) (assign (constant bool (1)) (xyz) (var_ref channel_expressions@0xac291c68) (swiz xyz (tex (var_ref img@0xac300cb0) (var_ref vec_ctor@0xad81d000) (0 0 0) 1 () ))) (declare (temporary ) vec3 channel_expressions@0xac292460) (assign (constant bool (1)) (xyz) (var_ref channel_expressions@0xac292460) (swiz xyz (tex (var_ref img@0xac300cb0) (var_ref vec_ctor@0xac2ffd48) (0 0 0) 1 () ))) (declare (temporary ) vec3 channel_expressions@0xac29beb0) (assign (constant bool (1)) (xyz) (var_ref channel_expressions@0xac29beb0) (swiz xyz (tex (var_ref img@0xac300cb0) (var_ref vec_ctor@0xac4a2cd8) (0 0 0) 1 () ))) (declare (temporary ) vec3 channel_expressions@0xac296958) (assign (constant bool (1)) (xyz) (var_ref channel_expressions@0xac296958) (swiz xyz (tex (var_ref img@0xac300cb0) (var_ref vec_ctor@0xac2e9288) (0 0 0) 1 () ))) (declare (temporary ) vec3 channel_expressions@0xac2a1248) (assign (constant bool (1)) (xyz) (var_ref channel_expressions@0xac2a1248) (swiz xyz (tex (var_ref img@0xac300cb0) (var_ref vec_ctor@0xac2547b0) (0 0 0) 1 () ))) (declare (temporary ) vec3 channel_expressions@0xac4fb378) (assign (constant bool (1)) (xyz) (var_ref channel_expressions@0xac4fb378) (swiz xyz (tex (var_ref img@0xac300cb0) (var_ref vec_ctor@0xad8ae8e8) (0 0 0) 1 () ))) (declare (temporary ) vec3 channel_expressions@0xac4fc458) (assign (constant bool (1)) (xyz) (var_ref channel_expressions@0xac4fc458) (swiz xyz (tex (var_ref img@0xac300cb0) (var_ref vec_ctor@0xac255988) (0 0 0) 1 () ))) (declare (temporary ) vec3 channel_expressions@0xac43a2c0) (assign (constant bool (1)) (xyz) (var_ref channel_expressions@0xac43a2c0) (swiz xyz (tex (var_ref img@0xac300cb0) (var_ref vec_ctor@0xac20b4d8) (0 0 0) 1 () ))) (assign (constant bool (1)) (x) (var_ref gl_FragColor@0xac476210) (expression float + (expression float + (expression float + (expression float * (expression float + (expression float + (expression float + (expression float * (swiz x (var_ref channel_expressions@0xac3a08d8) )(var_ref flattening_tmp_x@0xad82ed48) ) (expression float * (swiz x (var_ref channel_expressions@0xac31c540) )(var_ref flattening_tmp_y@0xad82ee38) ) ) (expression float * (swiz x (var_ref channel_expressions@0xac37d660) )(var_ref flattening_tmp_z@0xad82ef28) ) ) (expression float * (swiz x (var_ref channel_expressions@0xac3a1098) )(var_ref flattening_tmp_w@0xad82f018) ) ) (var_ref flattening_tmp_x@0xac462280) ) (expression float * (expression float + (expression float + (expression float + (expression float * (swiz x (var_ref channel_expressions@0xac310708) )(var_ref flattening_tmp_x@0xad82ed48) ) (expression float * (swiz x (var_ref channel_expressions@0xac319e70) )(var_ref flattening_tmp_y@0xad82ee38) ) ) (expression float * (swiz x (var_ref channel_expressions@0xac46c8f0) )(var_ref flattening_tmp_z@0xad82ef28) ) ) (expression float * (swiz x (var_ref channel_expressions@0xad831e40) )(var_ref flattening_tmp_w@0xad82f018) ) ) (var_ref flattening_tmp_y@0xac462370) ) ) (expression float * (expression float + (expression float + (expression float + (expression float * (swiz x (var_ref channel_expressions@0xac291c68) )(var_ref flattening_tmp_x@0xad82ed48) ) (expression float * (swiz x (var_ref channel_expressions@0xac292460) )(var_ref flattening_tmp_y@0xad82ee38) ) ) (expression float * (swiz x (var_ref channel_expressions@0xac29beb0) )(var_ref flattening_tmp_z@0xad82ef28) ) ) (expression float * (swiz x (var_ref channel_expressions@0xac296958) )(var_ref flattening_tmp_w@0xad82f018) ) ) (var_ref flattening_tmp_z@0xac462460) ) ) (expression float * (expression float + (expression float + (expression float + (expression float * (swiz x (var_ref channel_expressions@0xac2a1248) )(var_ref flattening_tmp_x@0xad82ed48) ) (expression float * (swiz x (var_ref channel_expressions@0xac4fb378) )(var_ref flattening_tmp_y@0xad82ee38) ) ) (expression float * (swiz x (var_ref channel_expressions@0xac4fc458) )(var_ref flattening_tmp_z@0xad82ef28) ) ) (expression float * (swiz x (var_ref channel_expressions@0xac43a2c0) )(var_ref flattening_tmp_w@0xad82f018) ) ) (var_ref flattening_tmp_w@0xac462550) ) ) ) (assign (constant bool (1)) (y) (var_ref gl_FragColor@0xac476210) (expression float + (expression float + (expression float + (expression float * (expression float + (expression float + (expression float + (expression float * (swiz y (var_ref channel_expressions@0xac3a08d8) )(var_ref flattening_tmp_x@0xad82ed48) ) (expression float * (swiz y (var_ref channel_expressions@0xac31c540) )(var_ref flattening_tmp_y@0xad82ee38) ) ) (expression float * (swiz y (var_ref channel_expressions@0xac37d660) )(var_ref flattening_tmp_z@0xad82ef28) ) ) (expression float * (swiz y (var_ref channel_expressions@0xac3a1098) )(var_ref flattening_tmp_w@0xad82f018) ) ) (var_ref flattening_tmp_x@0xac462280) ) (expression float * (expression float + (expression float + (expression float + (expression float * (swiz y (var_ref channel_expressions@0xac310708) )(var_ref flattening_tmp_x@0xad82ed48) ) (expression float * (swiz y (var_ref channel_expressions@0xac319e70) )(var_ref flattening_tmp_y@0xad82ee38) ) ) (expression float * (swiz y (var_ref channel_expressions@0xac46c8f0) )(var_ref flattening_tmp_z@0xad82ef28) ) ) (expression float * (swiz y (var_ref channel_expressions@0xad831e40) )(var_ref flattening_tmp_w@0xad82f018) ) ) (var_ref flattening_tmp_y@0xac462370) ) ) (expression float * (expression float + (expression float + (expression float + (expression float * (swiz y (var_ref channel_expressions@0xac291c68) )(var_ref flattening_tmp_x@0xad82ed48) ) (expression float * (swiz y (var_ref channel_expressions@0xac292460) )(var_ref flattening_tmp_y@0xad82ee38) ) ) (expression float * (swiz y (var_ref channel_expressions@0xac29beb0) )(var_ref flattening_tmp_z@0xad82ef28) ) ) (expression float * (swiz y (var_ref channel_expressions@0xac296958) )(var_ref flattening_tmp_w@0xad82f018) ) ) (var_ref flattening_tmp_z@0xac462460) ) ) (expression float * (expression float + (expression float + (expression float + (expression float * (swiz y (var_ref channel_expressions@0xac2a1248) )(var_ref flattening_tmp_x@0xad82ed48) ) (expression float * (swiz y (var_ref channel_expressions@0xac4fb378) )(var_ref flattening_tmp_y@0xad82ee38) ) ) (expression float * (swiz y (var_ref channel_expressions@0xac4fc458) )(var_ref flattening_tmp_z@0xad82ef28) ) ) (expression float * (swiz y (var_ref channel_expressions@0xac43a2c0) )(var_ref flattening_tmp_w@0xad82f018) ) ) (var_ref flattening_tmp_w@0xac462550) ) ) ) (assign (constant bool (1)) (z) (var_ref gl_FragColor@0xac476210) (expression float + (expression float + (expression float + (expression float * (expression float + (expression float + (expression float + (expression float * (swiz z (var_ref channel_expressions@0xac3a08d8) )(var_ref flattening_tmp_x@0xad82ed48) ) (expression float * (swiz z (var_ref channel_expressions@0xac31c540) )(var_ref flattening_tmp_y@0xad82ee38) ) ) (expression float * (swiz z (var_ref channel_expressions@0xac37d660) )(var_ref flattening_tmp_z@0xad82ef28) ) ) (expression float * (swiz z (var_ref channel_expressions@0xac3a1098) )(var_ref flattening_tmp_w@0xad82f018) ) ) (var_ref flattening_tmp_x@0xac462280) ) (expression float * (expression float + (expression float + (expression float + (expression float * (swiz z (var_ref channel_expressions@0xac310708) )(var_ref flattening_tmp_x@0xad82ed48) ) (expression float * (swiz z (var_ref channel_expressions@0xac319e70) )(var_ref flattening_tmp_y@0xad82ee38) ) ) (expression float * (swiz z (var_ref channel_expressions@0xac46c8f0) )(var_ref flattening_tmp_z@0xad82ef28) ) ) (expression float * (swiz z (var_ref channel_expressions@0xad831e40) )(var_ref flattening_tmp_w@0xad82f018) ) ) (var_ref flattening_tmp_y@0xac462370) ) ) (expression float * (expression float + (expression float + (expression float + (expression float * (swiz z (var_ref channel_expressions@0xac291c68) )(var_ref flattening_tmp_x@0xad82ed48) ) (expression float * (swiz z (var_ref channel_expressions@0xac292460) )(var_ref flattening_tmp_y@0xad82ee38) ) ) (expression float * (swiz z (var_ref channel_expressions@0xac29beb0) )(var_ref flattening_tmp_z@0xad82ef28) ) ) (expression float * (swiz z (var_ref channel_expressions@0xac296958) )(var_ref flattening_tmp_w@0xad82f018) ) ) (var_ref flattening_tmp_z@0xac462460) ) ) (expression float * (expression float + (expression float + (expression float + (expression float * (swiz z (var_ref channel_expressions@0xac2a1248) )(var_ref flattening_tmp_x@0xad82ed48) ) (expression float * (swiz z (var_ref channel_expressions@0xac4fb378) )(var_ref flattening_tmp_y@0xad82ee38) ) ) (expression float * (swiz z (var_ref channel_expressions@0xac4fc458) )(var_ref flattening_tmp_z@0xad82ef28) ) ) (expression float * (swiz z (var_ref channel_expressions@0xac43a2c0) )(var_ref flattening_tmp_w@0xad82f018) ) ) (var_ref flattening_tmp_w@0xac462550) ) ) ) (assign (constant bool (1)) (w) (var_ref gl_FragColor@0xac476210) (swiz w (var_ref gl_Color@0xac4757b8) )) )) ) ) Native code for fragment shader 6: compute pixel centers add(8) g9<1>UW g1.4<2,4,0>UW 0x10101010V { align1 }; add(8) g10<1>UW g1.5<2,4,0>UW 0x11001100V { align1 }; compute pixel deltas from v0 add(8) g12<1>F g9<8,8,1>UW -g1<0,1,0>F { align1 }; add(8) g13<1>F g10<8,8,1>UW -g1.1<0,1,0>F { align1 }; compute pos.w and 1/pos.w pln(8) g9<1>F g4.4<0,1,0>F g12<8,8,1>F { align1 }; send(8) 2 g9<1>F g9<8,8,1>F math inv mlen 1 rlen 1 { align1 }; (declare (in ) vec2 cord@0xac4110f8) pln(8) g10<1>F g7<0,1,0>F g12<8,8,1>F { align1 }; pln(8) g23<1>F g7.4<0,1,0>F g12<8,8,1>F { align1 }; mul(8) g10<1>F g10<8,8,1>F g9<8,8,1>F { align1 }; mul(8) g23<1>F g23<8,8,1>F g9<8,8,1>F { align1 }; (declare (in ) vec4 gl_Color@0xac4757b8) pln(8) g11<1>F g6.4<0,1,0>F g12<8,8,1>F { align1 }; mul(8) m5<1>F g11<8,8,1>F g9<8,8,1>F { align1 }; (assign (constant bool (1)) (x) (var_ref flattening_tmp_x@0xad82d778) (expression float fract (expression float * (swiz x (var_ref cord@0xac4110f8) )(expression float rcp (swiz x (var_ref stepxy@0xac4106a0) )) ) ) ) send(8) 2 g9<1>F g2<0,1,0>F math inv mlen 1 rlen 1 { align1 }; mul(8) g9<1>F g10<8,8,1>F g9<8,8,1>F { align1 }; frc(8) g9<1>F g9<8,8,1>F { align1 }; (assign (constant bool (1)) (x) (var_ref flattening_tmp_y@0xad82d7d8) (expression float fract (expression float * (swiz y (var_ref cord@0xac4110f8) )(expression float rcp (swiz y (var_ref stepxy@0xac4106a0) )) ) ) ) send(8) 2 g11<1>F g2.1<0,1,0>F math inv mlen 1 rlen 1 { align1 }; mul(8) g11<1>F g23<8,8,1>F g11<8,8,1>F { align1 }; frc(8) g11<1>F g11<8,8,1>F { align1 }; (assign (constant bool (1)) (xyzw) (var_ref channel_expressions@0xac3938c8) (tex (var_ref kernelTex@0xac30d6d0) (expression float + (constant float (1,000000)) (expression float neg (var_ref flattening_tmp_x@0xad82d778) ) ) (0 0 0) 1 () )) add(8) m2<1>F -g9<8,8,1>F 1F { align1 }; send(8) 1 g12<1>UW g0<8,8,1>UW sampler (11, 2, 0, 1) mlen 2 rlen 4 { align1 }; (assign (constant bool (1)) (x) (var_ref flattening_tmp_x@0xad82dd38) (expression float + (expression float * (swiz x (var_ref channel_expressions@0xac3938c8) )(constant float (2,000000)) ) (constant float (-1,000000)) ) ) mul(8) g16<1>F g12<8,8,1>F 2F { align1 }; add(8) g16<1>F g16<8,8,1>F -1F { align1 }; (assign (constant bool (1)) (x) (var_ref flattening_tmp_y@0xad82dd98) (expression float + (expression float * (swiz y (var_ref channel_expressions@0xac3938c8) )(constant float (2,000000)) ) (constant float (-1,000000)) ) ) mul(8) g17<1>F g13<8,8,1>F 2F { align1 }; add(8) g17<1>F g17<8,8,1>F -1F { align1 }; (assign (constant bool (1)) (x) (var_ref flattening_tmp_z@0xad82ddf8) (expression float + (expression float * (swiz z (var_ref channel_expressions@0xac3938c8) )(constant float (2,000000)) ) (constant float (-1,000000)) ) ) mul(8) g18<1>F g14<8,8,1>F 2F { align1 }; add(8) g18<1>F g18<8,8,1>F -1F { align1 }; (assign (constant bool (1)) (x) (var_ref flattening_tmp_w@0xad82de58) (expression float + (expression float * (swiz w (var_ref channel_expressions@0xac3938c8) )(constant float (2,000000)) ) (constant float (-1,000000)) ) ) mul(8) g12<1>F g15<8,8,1>F 2F { align1 }; add(8) g12<1>F g12<8,8,1>F -1F { align1 }; (assign (constant bool (1)) (xyzw) (var_ref channel_expressions@0xac320fc8) (tex (var_ref kernelTex@0xac30d6d0) (expression float + (constant float (1,000000)) (expression float neg (var_ref flattening_tmp_y@0xad82d7d8) ) ) (0 0 0) 1 () )) add(8) m2<1>F -g11<8,8,1>F 1F { align1 }; send(8) 1 g19<1>UW g0<8,8,1>UW sampler (11, 2, 0, 1) mlen 2 rlen 4 { align1 }; (assign (constant bool (1)) (x) (var_ref flattening_tmp_x@0xad82e5b8) (expression float + (expression float * (swiz x (var_ref channel_expressions@0xac320fc8) )(constant float (2,000000)) ) (constant float (-1,000000)) ) ) mul(8) g13<1>F g19<8,8,1>F 2F { align1 }; add(8) g13<1>F g13<8,8,1>F -1F { align1 }; (assign (constant bool (1)) (x) (var_ref flattening_tmp_y@0xad82e618) (expression float + (expression float * (swiz y (var_ref channel_expressions@0xac320fc8) )(constant float (2,000000)) ) (constant float (-1,000000)) ) ) mul(8) g14<1>F g20<8,8,1>F 2F { align1 }; add(8) g14<1>F g14<8,8,1>F -1F { align1 }; (assign (constant bool (1)) (x) (var_ref flattening_tmp_z@0xad82e678) (expression float + (expression float * (swiz z (var_ref channel_expressions@0xac320fc8) )(constant float (2,000000)) ) (constant float (-1,000000)) ) ) mul(8) g15<1>F g21<8,8,1>F 2F { align1 }; add(8) g15<1>F g15<8,8,1>F -1F { align1 }; (assign (constant bool (1)) (x) (var_ref flattening_tmp_w@0xad82e6d8) (expression float + (expression float * (swiz w (var_ref channel_expressions@0xac320fc8) )(constant float (2,000000)) ) (constant float (-1,000000)) ) ) mul(8) g19<1>F g22<8,8,1>F 2F { align1 }; add(8) g19<1>F g19<8,8,1>F -1F { align1 }; (assign (constant bool (1)) (x) (var_ref channel_expressions@0xac37e0c8) (expression float rcp (expression float + (expression float + (expression float + (var_ref flattening_tmp_x@0xad82dd38) (var_ref flattening_tmp_y@0xad82dd98) ) (var_ref flattening_tmp_z@0xad82ddf8) ) (var_ref flattening_tmp_w@0xad82de58) ) ) ) add(8) g20<1>F g16<8,8,1>F g17<8,8,1>F { align1 }; add(8) g20<1>F g20<8,8,1>F g18<8,8,1>F { align1 }; add(8) g20<1>F g20<8,8,1>F g12<8,8,1>F { align1 }; send(8) 2 g20<1>F g20<8,8,1>F math inv mlen 1 rlen 1 { align1 }; (assign (constant bool (1)) (x) (var_ref flattening_tmp_x@0xad82ed48) (expression float * (var_ref flattening_tmp_x@0xad82dd38) (var_ref channel_expressions@0xac37e0c8) ) ) mul(8) g73<1>F g16<8,8,1>F g20<8,8,1>F { align1 }; (assign (constant bool (1)) (x) (var_ref flattening_tmp_y@0xad82ee38) (expression float * (var_ref flattening_tmp_y@0xad82dd98) (var_ref channel_expressions@0xac37e0c8) ) ) mul(8) g74<1>F g17<8,8,1>F g20<8,8,1>F { align1 }; (assign (constant bool (1)) (x) (var_ref flattening_tmp_z@0xad82ef28) (expression float * (var_ref flattening_tmp_z@0xad82ddf8) (var_ref channel_expressions@0xac37e0c8) ) ) mul(8) g75<1>F g18<8,8,1>F g20<8,8,1>F { align1 }; (assign (constant bool (1)) (x) (var_ref flattening_tmp_w@0xad82f018) (expression float * (var_ref flattening_tmp_w@0xad82de58) (var_ref channel_expressions@0xac37e0c8) ) ) mul(8) g76<1>F g12<8,8,1>F g20<8,8,1>F { align1 }; (assign (constant bool (1)) (x) (var_ref channel_expressions@0xad82c0a0) (expression float rcp (expression float + (expression float + (expression float + (var_ref flattening_tmp_x@0xad82e5b8) (var_ref flattening_tmp_y@0xad82e618) ) (var_ref flattening_tmp_z@0xad82e678) ) (var_ref flattening_tmp_w@0xad82e6d8) ) ) ) add(8) g12<1>F g13<8,8,1>F g14<8,8,1>F { align1 }; add(8) g12<1>F g12<8,8,1>F g15<8,8,1>F { align1 }; add(8) g12<1>F g12<8,8,1>F g19<8,8,1>F { align1 }; send(8) 2 g12<1>F g12<8,8,1>F math inv mlen 1 rlen 1 { align1 }; (assign (constant bool (1)) (x) (var_ref flattening_tmp_x@0xac462280) (expression float * (var_ref flattening_tmp_x@0xad82e5b8) (var_ref channel_expressions@0xad82c0a0) ) ) mul(8) g77<1>F g13<8,8,1>F g12<8,8,1>F { align1 }; (assign (constant bool (1)) (x) (var_ref flattening_tmp_y@0xac462370) (expression float * (var_ref flattening_tmp_y@0xad82e618) (var_ref channel_expressions@0xad82c0a0) ) ) mul(8) g78<1>F g14<8,8,1>F g12<8,8,1>F { align1 }; (assign (constant bool (1)) (x) (var_ref flattening_tmp_z@0xac462460) (expression float * (var_ref flattening_tmp_z@0xad82e678) (var_ref channel_expressions@0xad82c0a0) ) ) mul(8) g79<1>F g15<8,8,1>F g12<8,8,1>F { align1 }; (assign (constant bool (1)) (x) (var_ref flattening_tmp_w@0xac462550) (expression float * (var_ref flattening_tmp_w@0xad82e6d8) (var_ref channel_expressions@0xad82c0a0) ) ) mul(8) g80<1>F g19<8,8,1>F g12<8,8,1>F { align1 }; (assign (constant bool (1)) (x) (var_ref flattening_tmp_x@0xac4639c0) (expression float + (expression float * (expression float + (constant float (-1,000000)) (expression float neg (var_ref flattening_tmp_x@0xad82d778) ) ) (swiz x (var_ref stepxy@0xac4106a0) )) (swiz x (var_ref cord@0xac4110f8) )) ) add(8) g9<1>F -g9<8,8,1>F -1F { align1 }; mul(8) g9<1>F g9<8,8,1>F g2<0,1,0>F { align1 }; add(8) g57<1>F g9<8,8,1>F g10<8,8,1>F { align1 }; (assign (constant bool (1)) (x) (var_ref flattening_tmp_y@0xac463ab0) (expression float + (expression float * (expression float + (constant float (-1,000000)) (expression float neg (var_ref flattening_tmp_y@0xad82d7d8) ) ) (swiz y (var_ref stepxy@0xac4106a0) )) (swiz y (var_ref cord@0xac4110f8) )) ) add(8) g9<1>F -g11<8,8,1>F -1F { align1 }; mul(8) g9<1>F g9<8,8,1>F g2.1<0,1,0>F { align1 }; add(8) g9<1>F g9<8,8,1>F g23<8,8,1>F { align1 }; (assign (constant bool (1)) (x) (var_ref vec_ctor_y@0xad8ec2e8) (expression float + (var_ref flattening_tmp_x@0xac4639c0) (swiz x (var_ref stepxy@0xac4106a0) )) ) add(8) g61<1>F g57<8,8,1>F g2<0,1,0>F { align1 }; (assign (constant bool (1)) (x) (var_ref vec_ctor_z@0xad8ec348) (expression float + (var_ref flattening_tmp_x@0xac4639c0) (expression float * (swiz x (var_ref stepxy@0xac4106a0) )(constant float (2,000000)) ) ) ) mul(8) g10<1>F g2<0,1,0>F 2F { align1 }; add(8) g65<1>F g57<8,8,1>F g10<8,8,1>F { align1 }; (assign (constant bool (1)) (x) (var_ref vec_ctor_w@0xad8ec3a8) (expression float + (var_ref flattening_tmp_x@0xac4639c0) (expression float * (swiz x (var_ref stepxy@0xac4106a0) )(constant float (3,000000)) ) ) ) mul(8) g10<1>F g2<0,1,0>F 3F { align1 }; add(8) g69<1>F g57<8,8,1>F g10<8,8,1>F { align1 }; (assign (constant bool (1)) (x) (var_ref ypos@0xac2a42d0) (expression float + (var_ref flattening_tmp_y@0xac463ab0) (swiz y (var_ref stepxy@0xac4106a0) )) ) add(8) g25<1>F g9<8,8,1>F g2.1<0,1,0>F { align1 }; (assign (constant bool (1)) (x) (var_ref ypos@0xac2a67e0) (expression float + (var_ref flattening_tmp_y@0xac463ab0) (expression float * (swiz y (var_ref stepxy@0xac4106a0) )(constant float (2,000000)) ) ) ) mul(8) g10<1>F g2.1<0,1,0>F 2F { align1 }; add(8) g41<1>F g9<8,8,1>F g10<8,8,1>F { align1 }; (assign (constant bool (1)) (x) (var_ref ypos@0xac447148) (expression float + (var_ref flattening_tmp_y@0xac463ab0) (expression float * (swiz y (var_ref stepxy@0xac4106a0) )(constant float (3,000000)) ) ) ) mul(8) g10<1>F g2.1<0,1,0>F 3F { align1 }; add(8) g58<1>F g9<8,8,1>F g10<8,8,1>F { align1 }; (assign (constant bool (1)) (xyz) (var_ref channel_expressions@0xac3a08d8) (swiz xyz (tex (var_ref img@0xac300cb0) (var_ref vec_ctor@0xac43e5c8) (0 0 0) 1 () ))) mov(8) m2<1>F g57<8,8,1>F { align1 }; mov(8) m3<1>F g9<8,8,1>F { align1 }; send(8) 1 g9<1>UW g0<8,8,1>UW sampler (9, 0, 0, 1) mlen 3 rlen 4 { align1 }; (assign (constant bool (1)) (xyz) (var_ref channel_expressions@0xac31c540) (swiz xyz (tex (var_ref img@0xac300cb0) (var_ref vec_ctor@0xad8b0638) (0 0 0) 1 () ))) mov(8) m2<1>F g61<8,8,1>F { align1 }; send(8) 1 g13<1>UW g0<8,8,1>UW sampler (9, 0, 0, 1) mlen 3 rlen 4 { align1 }; (assign (constant bool (1)) (xyz) (var_ref channel_expressions@0xac37d660) (swiz xyz (tex (var_ref img@0xac300cb0) (var_ref vec_ctor@0xac4f82a0) (0 0 0) 1 () ))) mov(8) m2<1>F g65<8,8,1>F { align1 }; send(8) 1 g17<1>UW g0<8,8,1>UW sampler (9, 0, 0, 1) mlen 3 rlen 4 { align1 }; (assign (constant bool (1)) (xyz) (var_ref channel_expressions@0xac3a1098) (swiz xyz (tex (var_ref img@0xac300cb0) (var_ref vec_ctor@0xac2a4650) (0 0 0) 1 () ))) mov(8) m2<1>F g69<8,8,1>F { align1 }; send(8) 1 g21<1>UW g0<8,8,1>UW sampler (9, 0, 0, 1) mlen 3 rlen 4 { align1 }; (assign (constant bool (1)) (xyz) (var_ref channel_expressions@0xac310708) (swiz xyz (tex (var_ref img@0xac300cb0) (var_ref vec_ctor@0xac4f7ba0) (0 0 0) 1 () ))) mov(8) m2<1>F g57<8,8,1>F { align1 }; mov(8) m3<1>F g25<8,8,1>F { align1 }; send(8) 1 g25<1>UW g0<8,8,1>UW sampler (9, 0, 0, 1) mlen 3 rlen 4 { align1 }; (assign (constant bool (1)) (xyz) (var_ref channel_expressions@0xac319e70) (swiz xyz (tex (var_ref img@0xac300cb0) (var_ref vec_ctor@0xac4f7f20) (0 0 0) 1 () ))) mov(8) m2<1>F g61<8,8,1>F { align1 }; send(8) 1 g29<1>UW g0<8,8,1>UW sampler (9, 0, 0, 1) mlen 3 rlen 4 { align1 }; (assign (constant bool (1)) (xyz) (var_ref channel_expressions@0xac46c8f0) (swiz xyz (tex (var_ref img@0xac300cb0) (var_ref vec_ctor@0xac45eb08) (0 0 0) 1 () ))) mov(8) m2<1>F g65<8,8,1>F { align1 }; send(8) 1 g33<1>UW g0<8,8,1>UW sampler (9, 0, 0, 1) mlen 3 rlen 4 { align1 }; (assign (constant bool (1)) (xyz) (var_ref channel_expressions@0xad831e40) (swiz xyz (tex (var_ref img@0xac300cb0) (var_ref vec_ctor@0xac26f0b8) (0 0 0) 1 () ))) mov(8) m2<1>F g69<8,8,1>F { align1 }; send(8) 1 g37<1>UW g0<8,8,1>UW sampler (9, 0, 0, 1) mlen 3 rlen 4 { align1 }; (assign (constant bool (1)) (xyz) (var_ref channel_expressions@0xac291c68) (swiz xyz (tex (var_ref img@0xac300cb0) (var_ref vec_ctor@0xad81d000) (0 0 0) 1 () ))) mov(8) m2<1>F g57<8,8,1>F { align1 }; mov(8) m3<1>F g41<8,8,1>F { align1 }; send(8) 1 g41<1>UW g0<8,8,1>UW sampler (9, 0, 0, 1) mlen 3 rlen 4 { align1 }; (assign (constant bool (1)) (xyz) (var_ref channel_expressions@0xac292460) (swiz xyz (tex (var_ref img@0xac300cb0) (var_ref vec_ctor@0xac2ffd48) (0 0 0) 1 () ))) mov(8) m2<1>F g61<8,8,1>F { align1 }; send(8) 1 g45<1>UW g0<8,8,1>UW sampler (9, 0, 0, 1) mlen 3 rlen 4 { align1 }; (assign (constant bool (1)) (xyz) (var_ref channel_expressions@0xac29beb0) (swiz xyz (tex (var_ref img@0xac300cb0) (var_ref vec_ctor@0xac4a2cd8) (0 0 0) 1 () ))) mov(8) m2<1>F g65<8,8,1>F { align1 }; send(8) 1 g49<1>UW g0<8,8,1>UW sampler (9, 0, 0, 1) mlen 3 rlen 4 { align1 }; (assign (constant bool (1)) (xyz) (var_ref channel_expressions@0xac296958) (swiz xyz (tex (var_ref img@0xac300cb0) (var_ref vec_ctor@0xac2e9288) (0 0 0) 1 () ))) mov(8) m2<1>F g69<8,8,1>F { align1 }; send(8) 1 g53<1>UW g0<8,8,1>UW sampler (9, 0, 0, 1) mlen 3 rlen 4 { align1 }; (assign (constant bool (1)) (xyz) (var_ref channel_expressions@0xac2a1248) (swiz xyz (tex (var_ref img@0xac300cb0) (var_ref vec_ctor@0xac2547b0) (0 0 0) 1 () ))) mov(8) m2<1>F g57<8,8,1>F { align1 }; mov(8) m3<1>F g58<8,8,1>F { align1 }; send(8) 1 g57<1>UW g0<8,8,1>UW sampler (9, 0, 0, 1) mlen 3 rlen 4 { align1 }; (assign (constant bool (1)) (xyz) (var_ref channel_expressions@0xac4fb378) (swiz xyz (tex (var_ref img@0xac300cb0) (var_ref vec_ctor@0xad8ae8e8) (0 0 0) 1 () ))) mov(8) m2<1>F g61<8,8,1>F { align1 }; send(8) 1 g61<1>UW g0<8,8,1>UW sampler (9, 0, 0, 1) mlen 3 rlen 4 { align1 }; (assign (constant bool (1)) (xyz) (var_ref channel_expressions@0xac4fc458) (swiz xyz (tex (var_ref img@0xac300cb0) (var_ref vec_ctor@0xac255988) (0 0 0) 1 () ))) mov(8) m2<1>F g65<8,8,1>F { align1 }; send(8) 1 g65<1>UW g0<8,8,1>UW sampler (9, 0, 0, 1) mlen 3 rlen 4 { align1 }; (assign (constant bool (1)) (xyz) (var_ref channel_expressions@0xac43a2c0) (swiz xyz (tex (var_ref img@0xac300cb0) (var_ref vec_ctor@0xac20b4d8) (0 0 0) 1 () ))) mov(8) m2<1>F g69<8,8,1>F { align1 }; send(8) 1 g69<1>UW g0<8,8,1>UW sampler (9, 0, 0, 1) mlen 3 rlen 4 { align1 }; (assign (constant bool (1)) (x) (var_ref gl_FragColor@0xac476210) (expression float + (expression float + (expression float + (expression float * (expression float + (expression float + (expression float + (expression float * (swiz x (var_ref channel_expressions@0xac3a08d8) )(var_ref flattening_tmp_x@0xad82ed48) ) (expression float * (swiz x (var_ref channel_expressions@0xac31c540) )(var_ref flattening_tmp_y@0xad82ee38) ) ) (expression float * (swiz x (var_ref channel_expressions@0xac37d660) )(var_ref flattening_tmp_z@0xad82ef28) ) ) (expression float * (swiz x (var_ref channel_expressions@0xac3a1098) )(var_ref flattening_tmp_w@0xad82f018) ) ) (var_ref flattening_tmp_x@0xac462280) ) (expression float * (expression float + (expression float + (expression float + (expression float * (swiz x (var_ref channel_expressions@0xac310708) )(var_ref flattening_tmp_x@0xad82ed48) ) (expression float * (swiz x (var_ref channel_expressions@0xac319e70) )(var_ref flattening_tmp_y@0xad82ee38) ) ) (expression float * (swiz x (var_ref channel_expressions@0xac46c8f0) )(var_ref flattening_tmp_z@0xad82ef28) ) ) (expression float * (swiz x (var_ref channel_expressions@0xad831e40) )(var_ref flattening_tmp_w@0xad82f018) ) ) (var_ref flattening_tmp_y@0xac462370) ) ) (expression float * (expression float + (expression float + (expression float + (expression float * (swiz x (var_ref channel_expressions@0xac291c68) )(var_ref flattening_tmp_x@0xad82ed48) ) (expression float * (swiz x (var_ref channel_expressions@0xac292460) )(var_ref flattening_tmp_y@0xad82ee38) ) ) (expression float * (swiz x (var_ref channel_expressions@0xac29beb0) )(var_ref flattening_tmp_z@0xad82ef28) ) ) (expression float * (swiz x (var_ref channel_expressions@0xac296958) )(var_ref flattening_tmp_w@0xad82f018) ) ) (var_ref flattening_tmp_z@0xac462460) ) ) (expression float * (expression float + (expression float + (expression float + (expression float * (swiz x (var_ref channel_expressions@0xac2a1248) )(var_ref flattening_tmp_x@0xad82ed48) ) (expression float * (swiz x (var_ref channel_expressions@0xac4fb378) )(var_ref flattening_tmp_y@0xad82ee38) ) ) (expression float * (swiz x (var_ref channel_expressions@0xac4fc458) )(var_ref flattening_tmp_z@0xad82ef28) ) ) (expression float * (swiz x (var_ref channel_expressions@0xac43a2c0) )(var_ref flattening_tmp_w@0xad82f018) ) ) (var_ref flattening_tmp_w@0xac462550) ) ) ) mul(8) g81<1>F g9<8,8,1>F g73<8,8,1>F { align1 }; mul(8) g82<1>F g13<8,8,1>F g74<8,8,1>F { align1 }; add(8) g81<1>F g81<8,8,1>F g82<8,8,1>F { align1 }; mul(8) g82<1>F g17<8,8,1>F g75<8,8,1>F { align1 }; add(8) g81<1>F g81<8,8,1>F g82<8,8,1>F { align1 }; mul(8) g82<1>F g21<8,8,1>F g76<8,8,1>F { align1 }; add(8) g81<1>F g81<8,8,1>F g82<8,8,1>F { align1 }; mul(8) g81<1>F g81<8,8,1>F g77<8,8,1>F { align1 }; mul(8) g82<1>F g25<8,8,1>F g73<8,8,1>F { align1 }; mul(8) g83<1>F g29<8,8,1>F g74<8,8,1>F { align1 }; add(8) g82<1>F g82<8,8,1>F g83<8,8,1>F { align1 }; mul(8) g83<1>F g33<8,8,1>F g75<8,8,1>F { align1 }; add(8) g82<1>F g82<8,8,1>F g83<8,8,1>F { align1 }; mul(8) g83<1>F g37<8,8,1>F g76<8,8,1>F { align1 }; add(8) g82<1>F g82<8,8,1>F g83<8,8,1>F { align1 }; mul(8) g82<1>F g82<8,8,1>F g78<8,8,1>F { align1 }; add(8) g81<1>F g81<8,8,1>F g82<8,8,1>F { align1 }; mul(8) g82<1>F g41<8,8,1>F g73<8,8,1>F { align1 }; mul(8) g83<1>F g45<8,8,1>F g74<8,8,1>F { align1 }; add(8) g82<1>F g82<8,8,1>F g83<8,8,1>F { align1 }; mul(8) g83<1>F g49<8,8,1>F g75<8,8,1>F { align1 }; add(8) g82<1>F g82<8,8,1>F g83<8,8,1>F { align1 }; mul(8) g83<1>F g53<8,8,1>F g76<8,8,1>F { align1 }; add(8) g82<1>F g82<8,8,1>F g83<8,8,1>F { align1 }; mul(8) g82<1>F g82<8,8,1>F g79<8,8,1>F { align1 }; add(8) g81<1>F g81<8,8,1>F g82<8,8,1>F { align1 }; mul(8) g82<1>F g57<8,8,1>F g73<8,8,1>F { align1 }; mul(8) g83<1>F g61<8,8,1>F g74<8,8,1>F { align1 }; add(8) g82<1>F g82<8,8,1>F g83<8,8,1>F { align1 }; mul(8) g83<1>F g65<8,8,1>F g75<8,8,1>F { align1 }; add(8) g82<1>F g82<8,8,1>F g83<8,8,1>F { align1 }; mul(8) g83<1>F g69<8,8,1>F g76<8,8,1>F { align1 }; add(8) g82<1>F g82<8,8,1>F g83<8,8,1>F { align1 }; mul(8) g82<1>F g82<8,8,1>F g80<8,8,1>F { align1 }; add(8) m2<1>F g81<8,8,1>F g82<8,8,1>F { align1 }; (assign (constant bool (1)) (y) (var_ref gl_FragColor@0xac476210) (expression float + (expression float + (expression float + (expression float * (expression float + (expression float + (expression float + (expression float * (swiz y (var_ref channel_expressions@0xac3a08d8) )(var_ref flattening_tmp_x@0xad82ed48) ) (expression float * (swiz y (var_ref channel_expressions@0xac31c540) )(var_ref flattening_tmp_y@0xad82ee38) ) ) (expression float * (swiz y (var_ref channel_expressions@0xac37d660) )(var_ref flattening_tmp_z@0xad82ef28) ) ) (expression float * (swiz y (var_ref channel_expressions@0xac3a1098) )(var_ref flattening_tmp_w@0xad82f018) ) ) (var_ref flattening_tmp_x@0xac462280) ) (expression float * (expression float + (expression float + (expression float + (expression float * (swiz y (var_ref channel_expressions@0xac310708) )(var_ref flattening_tmp_x@0xad82ed48) ) (expression float * (swiz y (var_ref channel_expressions@0xac319e70) )(var_ref flattening_tmp_y@0xad82ee38) ) ) (expression float * (swiz y (var_ref channel_expressions@0xac46c8f0) )(var_ref flattening_tmp_z@0xad82ef28) ) ) (expression float * (swiz y (var_ref channel_expressions@0xad831e40) )(var_ref flattening_tmp_w@0xad82f018) ) ) (var_ref flattening_tmp_y@0xac462370) ) ) (expression float * (expression float + (expression float + (expression float + (expression float * (swiz y (var_ref channel_expressions@0xac291c68) )(var_ref flattening_tmp_x@0xad82ed48) ) (expression float * (swiz y (var_ref channel_expressions@0xac292460) )(var_ref flattening_tmp_y@0xad82ee38) ) ) (expression float * (swiz y (var_ref channel_expressions@0xac29beb0) )(var_ref flattening_tmp_z@0xad82ef28) ) ) (expression float * (swiz y (var_ref channel_expressions@0xac296958) )(var_ref flattening_tmp_w@0xad82f018) ) ) (var_ref flattening_tmp_z@0xac462460) ) ) (expression float * (expression float + (expression float + (expression float + (expression float * (swiz y (var_ref channel_expressions@0xac2a1248) )(var_ref flattening_tmp_x@0xad82ed48) ) (expression float * (swiz y (var_ref channel_expressions@0xac4fb378) )(var_ref flattening_tmp_y@0xad82ee38) ) ) (expression float * (swiz y (var_ref channel_expressions@0xac4fc458) )(var_ref flattening_tmp_z@0xad82ef28) ) ) (expression float * (swiz y (var_ref channel_expressions@0xac43a2c0) )(var_ref flattening_tmp_w@0xad82f018) ) ) (var_ref flattening_tmp_w@0xac462550) ) ) ) mul(8) g81<1>F g10<8,8,1>F g73<8,8,1>F { align1 }; mul(8) g82<1>F g14<8,8,1>F g74<8,8,1>F { align1 }; add(8) g81<1>F g81<8,8,1>F g82<8,8,1>F { align1 }; mul(8) g82<1>F g18<8,8,1>F g75<8,8,1>F { align1 }; add(8) g81<1>F g81<8,8,1>F g82<8,8,1>F { align1 }; mul(8) g82<1>F g22<8,8,1>F g76<8,8,1>F { align1 }; add(8) g81<1>F g81<8,8,1>F g82<8,8,1>F { align1 }; mul(8) g81<1>F g81<8,8,1>F g77<8,8,1>F { align1 }; mul(8) g82<1>F g26<8,8,1>F g73<8,8,1>F { align1 }; mul(8) g83<1>F g30<8,8,1>F g74<8,8,1>F { align1 }; add(8) g82<1>F g82<8,8,1>F g83<8,8,1>F { align1 }; mul(8) g83<1>F g34<8,8,1>F g75<8,8,1>F { align1 }; add(8) g82<1>F g82<8,8,1>F g83<8,8,1>F { align1 }; mul(8) g83<1>F g38<8,8,1>F g76<8,8,1>F { align1 }; add(8) g82<1>F g82<8,8,1>F g83<8,8,1>F { align1 }; mul(8) g82<1>F g82<8,8,1>F g78<8,8,1>F { align1 }; add(8) g81<1>F g81<8,8,1>F g82<8,8,1>F { align1 }; mul(8) g82<1>F g42<8,8,1>F g73<8,8,1>F { align1 }; mul(8) g83<1>F g46<8,8,1>F g74<8,8,1>F { align1 }; add(8) g82<1>F g82<8,8,1>F g83<8,8,1>F { align1 }; mul(8) g83<1>F g50<8,8,1>F g75<8,8,1>F { align1 }; add(8) g82<1>F g82<8,8,1>F g83<8,8,1>F { align1 }; mul(8) g83<1>F g54<8,8,1>F g76<8,8,1>F { align1 }; add(8) g82<1>F g82<8,8,1>F g83<8,8,1>F { align1 }; mul(8) g82<1>F g82<8,8,1>F g79<8,8,1>F { align1 }; add(8) g81<1>F g81<8,8,1>F g82<8,8,1>F { align1 }; mul(8) g82<1>F g58<8,8,1>F g73<8,8,1>F { align1 }; mul(8) g83<1>F g62<8,8,1>F g74<8,8,1>F { align1 }; add(8) g82<1>F g82<8,8,1>F g83<8,8,1>F { align1 }; mul(8) g83<1>F g66<8,8,1>F g75<8,8,1>F { align1 }; add(8) g82<1>F g82<8,8,1>F g83<8,8,1>F { align1 }; mul(8) g83<1>F g70<8,8,1>F g76<8,8,1>F { align1 }; add(8) g82<1>F g82<8,8,1>F g83<8,8,1>F { align1 }; mul(8) g82<1>F g82<8,8,1>F g80<8,8,1>F { align1 }; add(8) m3<1>F g81<8,8,1>F g82<8,8,1>F { align1 }; (assign (constant bool (1)) (z) (var_ref gl_FragColor@0xac476210) (expression float + (expression float + (expression float + (expression float * (expression float + (expression float + (expression float + (expression float * (swiz z (var_ref channel_expressions@0xac3a08d8) )(var_ref flattening_tmp_x@0xad82ed48) ) (expression float * (swiz z (var_ref channel_expressions@0xac31c540) )(var_ref flattening_tmp_y@0xad82ee38) ) ) (expression float * (swiz z (var_ref channel_expressions@0xac37d660) )(var_ref flattening_tmp_z@0xad82ef28) ) ) (expression float * (swiz z (var_ref channel_expressions@0xac3a1098) )(var_ref flattening_tmp_w@0xad82f018) ) ) (var_ref flattening_tmp_x@0xac462280) ) (expression float * (expression float + (expression float + (expression float + (expression float * (swiz z (var_ref channel_expressions@0xac310708) )(var_ref flattening_tmp_x@0xad82ed48) ) (expression float * (swiz z (var_ref channel_expressions@0xac319e70) )(var_ref flattening_tmp_y@0xad82ee38) ) ) (expression float * (swiz z (var_ref channel_expressions@0xac46c8f0) )(var_ref flattening_tmp_z@0xad82ef28) ) ) (expression float * (swiz z (var_ref channel_expressions@0xad831e40) )(var_ref flattening_tmp_w@0xad82f018) ) ) (var_ref flattening_tmp_y@0xac462370) ) ) (expression float * (expression float + (expression float + (expression float + (expression float * (swiz z (var_ref channel_expressions@0xac291c68) )(var_ref flattening_tmp_x@0xad82ed48) ) (expression float * (swiz z (var_ref channel_expressions@0xac292460) )(var_ref flattening_tmp_y@0xad82ee38) ) ) (expression float * (swiz z (var_ref channel_expressions@0xac29beb0) )(var_ref flattening_tmp_z@0xad82ef28) ) ) (expression float * (swiz z (var_ref channel_expressions@0xac296958) )(var_ref flattening_tmp_w@0xad82f018) ) ) (var_ref flattening_tmp_z@0xac462460) ) ) (expression float * (expression float + (expression float + (expression float + (expression float * (swiz z (var_ref channel_expressions@0xac2a1248) )(var_ref flattening_tmp_x@0xad82ed48) ) (expression float * (swiz z (var_ref channel_expressions@0xac4fb378) )(var_ref flattening_tmp_y@0xad82ee38) ) ) (expression float * (swiz z (var_ref channel_expressions@0xac4fc458) )(var_ref flattening_tmp_z@0xad82ef28) ) ) (expression float * (swiz z (var_ref channel_expressions@0xac43a2c0) )(var_ref flattening_tmp_w@0xad82f018) ) ) (var_ref flattening_tmp_w@0xac462550) ) ) ) mul(8) g9<1>F g11<8,8,1>F g73<8,8,1>F { align1 }; mul(8) g10<1>F g15<8,8,1>F g74<8,8,1>F { align1 }; add(8) g9<1>F g9<8,8,1>F g10<8,8,1>F { align1 }; mul(8) g10<1>F g19<8,8,1>F g75<8,8,1>F { align1 }; add(8) g9<1>F g9<8,8,1>F g10<8,8,1>F { align1 }; mul(8) g10<1>F g23<8,8,1>F g76<8,8,1>F { align1 }; add(8) g9<1>F g9<8,8,1>F g10<8,8,1>F { align1 }; mul(8) g9<1>F g9<8,8,1>F g77<8,8,1>F { align1 }; mul(8) g10<1>F g27<8,8,1>F g73<8,8,1>F { align1 }; mul(8) g11<1>F g31<8,8,1>F g74<8,8,1>F { align1 }; add(8) g10<1>F g10<8,8,1>F g11<8,8,1>F { align1 }; mul(8) g11<1>F g35<8,8,1>F g75<8,8,1>F { align1 }; add(8) g10<1>F g10<8,8,1>F g11<8,8,1>F { align1 }; mul(8) g11<1>F g39<8,8,1>F g76<8,8,1>F { align1 }; add(8) g10<1>F g10<8,8,1>F g11<8,8,1>F { align1 }; mul(8) g10<1>F g10<8,8,1>F g78<8,8,1>F { align1 }; add(8) g9<1>F g9<8,8,1>F g10<8,8,1>F { align1 }; mul(8) g10<1>F g43<8,8,1>F g73<8,8,1>F { align1 }; mul(8) g11<1>F g47<8,8,1>F g74<8,8,1>F { align1 }; add(8) g10<1>F g10<8,8,1>F g11<8,8,1>F { align1 }; mul(8) g11<1>F g51<8,8,1>F g75<8,8,1>F { align1 }; add(8) g10<1>F g10<8,8,1>F g11<8,8,1>F { align1 }; mul(8) g11<1>F g55<8,8,1>F g76<8,8,1>F { align1 }; add(8) g10<1>F g10<8,8,1>F g11<8,8,1>F { align1 }; mul(8) g10<1>F g10<8,8,1>F g79<8,8,1>F { align1 }; add(8) g9<1>F g9<8,8,1>F g10<8,8,1>F { align1 }; mul(8) g10<1>F g59<8,8,1>F g73<8,8,1>F { align1 }; mul(8) g11<1>F g63<8,8,1>F g74<8,8,1>F { align1 }; add(8) g10<1>F g10<8,8,1>F g11<8,8,1>F { align1 }; mul(8) g11<1>F g67<8,8,1>F g75<8,8,1>F { align1 }; add(8) g10<1>F g10<8,8,1>F g11<8,8,1>F { align1 }; mul(8) g11<1>F g71<8,8,1>F g76<8,8,1>F { align1 }; add(8) g10<1>F g10<8,8,1>F g11<8,8,1>F { align1 }; mul(8) g10<1>F g10<8,8,1>F g80<8,8,1>F { align1 }; add(8) m4<1>F g9<8,8,1>F g10<8,8,1>F { align1 }; (assign (constant bool (1)) (w) (var_ref gl_FragColor@0xac476210) (swiz w (var_ref gl_Color@0xac4757b8) )) 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 }; CRITSEC[0x8cf70a4]: Trying to enter destroyed section. CRITSEC[0x8cf70a4]: Trying to leave destroyed section. CRITSEC[0x8cfc850]: Trying to enter destroyed section. CRITSEC[0x8cfc850]: Trying to leave destroyed section. CRITSEC[0x8cfc2e0]: Trying to enter destroyed section. CRITSEC[0x8cfc2e0]: Trying to leave destroyed section. CRITSEC[0x8cfc2e0]: Trying to enter destroyed section. CRITSEC[0x8cfc2e0]: Trying to leave destroyed section. CRITSEC[0x8cfc2e0]: Trying to enter destroyed section. CRITSEC[0x8cfc2e0]: Trying to leave destroyed section. CRITSEC[0x8cf70a4]: Trying to enter destroyed section. CRITSEC[0x8cf70a4]: Trying to leave destroyed section. CRITSEC[0x8cfc850]: Trying to enter destroyed section. CRITSEC[0x8cfc850]: Trying to leave destroyed section. CRITSEC[0x8cfc2e0]: Trying to enter destroyed section. CRITSEC[0x8cfc2e0]: Trying to leave destroyed section.