[Mesa-dev] [PATCH] i965/skl: Use an exec size of 8 to initialise the message header
Ben Widawsky
ben at bwidawsk.net
Tue Apr 14 10:50:11 PDT 2015
On Mon, Apr 13, 2015 at 02:04:53PM +0100, Neil Roberts wrote:
> Ben Widawsky <ben at bwidawsk.net> writes:
>
> > Can you do me a favor since I am lazy? Can you send the generated asm
> > diff with this patch? I am admittedly rusty on the matter, but I
> > thought a mov is just a mov, and only the regioning is effected by the
> > retype. If it indeed does what you say, it really should fix
> > something. Does this happen to allow concurrent piglit to not die in a
> > fire?
>
> Here is the diff when compiling the interface-name-basic.vert shader:
>
> --- without-patch.txt 2015-04-13 13:53:56.834861036 +0100
> +++ with-patch.txt 2015-04-13 13:53:56.836861036 +0100
> @@ -35,19 +35,19 @@
> mov(1) g11<1>UD 0x00000008UD { align1 WE_all compacted };
> mov(1) g13<1>UD 0x0000000cUD { align1 WE_all compacted };
> mov(8) g123<1>UD g1<8,8,1>UD { align1 WE_all 1Q compacted };
> -mov(4) g6<1>UD g0<4,4,1>UD { align1 WE_all compacted };
> +mov(8) g6<1>UD g0<8,8,1>UD { align1 WE_all 1Q compacted };
> mov(1) g6.2<1>UD 0x00400000UD { align1 WE_all };
> send(4) g6<1>F g6<4,4,1>UD
> sampler (0, 0, 7, 0) mlen 2 rlen 1 { align1 WE_all };
> -mov(4) g8<1>UD g0<4,4,1>UD { align1 WE_all compacted };
> +mov(8) g8<1>UD g0<8,8,1>UD { align1 WE_all 1Q compacted };
> mov(1) g8.2<1>UD 0x00400000UD { align1 WE_all };
> send(4) g7<1>F g8<4,4,1>UD
> sampler (0, 0, 7, 0) mlen 2 rlen 1 { align1 WE_all };
> -mov(4) g10<1>UD g0<4,4,1>UD { align1 WE_all compacted };
> +mov(8) g10<1>UD g0<8,8,1>UD { align1 WE_all 1Q compacted };
> mov(1) g10.2<1>UD 0x00400000UD { align1 WE_all };
> send(4) g8<1>F g10<4,4,1>UD
> sampler (0, 0, 7, 0) mlen 2 rlen 1 { align1 WE_all };
> -mov(4) g12<1>UD g0<4,4,1>UD { align1 WE_all compacted };
> +mov(8) g12<1>UD g0<8,8,1>UD { align1 WE_all 1Q compacted };
> mov(1) g12.2<1>UD 0x00400000UD { align1 WE_all };
> send(4) g9<1>F g12<4,4,1>UD
> sampler (0, 0, 7, 0) mlen 2 rlen 1 { align1 WE_all };
>
> I think the intention of your original patch was just to change the
> width of the source in the *send* instructions to 4 instead of 8. This
> was required because the send instruction is using an exec size of 4.
> However it also inadvertently changed the exec size of the mov
> instruction above the send to 4. My patch just puts the exec size back
> to 8.
>
> > I also wonder how you don't run into the original issue that my patch
> > fixed. Are you getting execsize=8 on this instruction now?
>
> No, my patch only affects the mov instruction and leaves the send
> instruction as it was. Your original patch is still used to fix the
> problem with the send instruction.
>
> Regards,
> - Neil
Reviewed-by: Ben Widawsky <ben at bwidawsk.net>
--
Ben Widawsky, Intel Open Source Technology Center
More information about the mesa-dev
mailing list