[Mesa-dev] [PATCH] i965: Extend compute-to-mrf pass to understand blocks of MOVs
Kristian Høgsberg
krh at bitplanet.net
Mon Jul 7 23:17:08 PDT 2014
On Mon, Jul 7, 2014 at 11:07 PM, Kristian Høgsberg <krh at bitplanet.net> wrote:
> On Mon, Jun 30, 2014 at 3:14 PM, Matt Turner <mattst88 at gmail.com> wrote:
>> On Fri, Jun 27, 2014 at 12:00 PM, Kristian Høgsberg <krh at bitplanet.net> wrote:
>>> From: Kristian Høgsberg <krh at century-sparrow.local>
>>
>> With your email address fixed,
>
> Done, thanks for the review. I realized that this also applies to MRT
> shaders where we write the same value to two render targets. From
> piglits fbo-drawbuffers2-blend:
>
> 0x00000000: pln(8) g6<1>F g4<0,1,0>F g2<8,8,1>F
> { align1 WE_normal 1Q compacted };
> 0x00000008: pln(8) g7<1>F g4.4<0,1,0>F g2<8,8,1>F
> { align1 WE_normal 1Q compacted };
> 0x00000010: pln(8) g8<1>F g5.4<0,1,0>F g2<8,8,1>F
> { align1 WE_normal 1Q compacted };
> 0x00000018: math inv(8) g2<1>F g8<8,8,1>F null
> { align1 WE_normal 1Q compacted };
> 0x00000020: mul(8) g3<1>F g6<8,8,1>F g2<8,8,1>F
> { align1 WE_normal 1Q compacted };
> 0x00000028: mul(8) g4<1>F g7<8,8,1>F g2<8,8,1>F
> { align1 WE_normal 1Q compacted };
> 0x00000030: send(8) g2<1>UW g3<8,8,1>F
> sampler (1, 0, 0, 1) mlen 2 rlen 4
Ugh, nevermind that, that's a sampler send there...
> { align1 WE_normal 1Q };
> 0x00000040: mov(8) g113<1>F g2<8,8,1>F
> { align1 WE_normal 1Q compacted };
> 0x00000048: mov(8) g114<1>F g3<8,8,1>F
> { align1 WE_normal 1Q compacted };
> 0x00000050: mov(8) g115<1>F g4<8,8,1>F
> { align1 WE_normal 1Q compacted };
> 0x00000058: mov(8) g116<1>F g5<8,8,1>F
> { align1 WE_normal 1Q compacted };
> 0x00000060: sendc(8) null g113<8,8,1>F
> render RT write SIMD8 LastRT Surface = 0
> mlen 4 rlen 0 { align1 WE_normal 1Q EOT };
>
> becomes:
>
> 0x00000000: pln(8) g6<1>F g4<0,1,0>F g2<8,8,1>F
> { align1 WE_normal 1Q compacted };
> 0x00000008: pln(8) g8<1>F g4.4<0,1,0>F g2<8,8,1>F
> { align1 WE_normal 1Q compacted };
> 0x00000010: pln(8) g9<1>F g5.4<0,1,0>F g2<8,8,1>F
> { align1 WE_normal 1Q compacted };
> 0x00000018: math inv(8) g7<1>F g9<8,8,1>F null
> { align1 WE_normal 1Q compacted };
> 0x00000020: mul(8) g2<1>F g6<8,8,1>F g7<8,8,1>F
> { align1 WE_normal 1Q compacted };
> 0x00000028: mul(8) g3<1>F g8<8,8,1>F g7<8,8,1>F
> { align1 WE_normal 1Q compacted };
> 0x00000030: send(8) g113<1>UW g2<8,8,1>F
> sampler (1, 0, 0, 1) mlen 2 rlen 4
> { align1 WE_normal 1Q };
> 0x00000040: sendc(8) null g113<8,8,1>F
> render RT write SIMD8 LastRT Surface = 0
> mlen 4 rlen 0 { align1 WE_normal 1Q EOT };
>
> which is lovely.
>
> Kristian
>
>> Reviewed-by: Matt Turner <mattst88 at gmail.com>
More information about the mesa-dev
mailing list