On Mon, Jul 6, 2015 at 11:03 AM, Francisco Jerez <curroje...@riseup.net> wrote:
> From the hardware docs for the DO instruction:
>
>  "Execution size is ignored for this instruction."
>
> My observation on ILK hardware contradicts the spec though, channels

/facepalm

> over the execution size of a DO instruction won't enter the loop, and
> channels over the execution size of a WHILE instruction will exit the
> loop after the first iteration -- The latter is consistent with the
> spec though, there's no claim that the execution size is ignored for
> the WHILE instruction so it's not completely unexpected that it has an
> influence on the evaluation of EMask.
>
> The execute_size argument of brw_DO() shouldn't have any effect on
> Gen6 and newer hardware.  On Gen4-5 WHILE instructions inherit the
> execution size from the matching DO, so this patch should fix them
> too.  The execution size of BREAK and CONT instructions was already
> being set correctly.
>
> Fixes some 50 piglit tests on Gen4-5 when forced to run shaders with
> conditional and loop instructions 16-wide,
> e.g. shaders/glsl-fs-continue-inside-do-while.

Awesome!

Reviewed-by: Matt Turner <matts...@gmail.com>
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to