Ian Romanick <i...@freedesktop.org> writes:

> From: Ian Romanick <ian.d.roman...@intel.com>
>
> Three parts to the fix:
>
> 1. If the array dereference is a constant index, figure out the real
> write mask.
>
> 2. If the array dereference not is a constant index, assume the
> assignment may generate any component.
>
> 3. If the array dereference not is a constant index, assume the
> assigment will not kill any previous component write.
>
> v2: Fix accidental setting of debug flag (noticed by Aras
> Pranckevičius).  Fix idiotic typo added after last build.

OK, here's the testcase I came up with today:

vec4 v;
v.xyzw = vec4(1, 2, 3, 4);
   entry.ir.writemask == xyzw
   entry.available = xyzw
gl_FragColor = vec4(v.xyz, 1);
   entry.ir.writemask = xyzw,
   entry.available = w
v.zw = vec2(2.0);
   entry.ir.writemask = xy;
   entry.available = 0;
   So now we delete it!

Yeah, this code could have used more comments.

Attachment: pgpVE0vNFh6Ub.pgp
Description: PGP signature

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to