[Mesa-dev] [PATCH 5/9] i965/fs: don't propagate cmod when the exec sizes differ

Matt Turner mattst88 at gmail.com
Thu Nov 19 03:29:55 PST 2015


On Thu, Nov 19, 2015 at 2:05 AM, Iago Toral Quiroga <itoral at igalia.com> wrote:
> From: Connor Abbott <connor.w.abbott at intel.com>
>
> This can happen when the source of the compare was split by the SIMD
> lowering pass. Potentially, we could allow the case where the exec size
> of scan_inst is larger, and scan_inst has the right quarter selected,
> but doing that seems a little more risky.
>
> Reviewed-by: Iago Toral Quiroga <itoral at igalia.com>
> ---
>  src/mesa/drivers/dri/i965/brw_fs_cmod_propagation.cpp | 3 +++
>  1 file changed, 3 insertions(+)
>
> diff --git a/src/mesa/drivers/dri/i965/brw_fs_cmod_propagation.cpp b/src/mesa/drivers/dri/i965/brw_fs_cmod_propagation.cpp
> index 8fdc959..93461f7 100644
> --- a/src/mesa/drivers/dri/i965/brw_fs_cmod_propagation.cpp
> +++ b/src/mesa/drivers/dri/i965/brw_fs_cmod_propagation.cpp
> @@ -93,6 +93,9 @@ opt_cmod_propagation_local(bblock_t *block)
>                  scan_inst->dst.reg_offset != inst->src[0].reg_offset)
>                 break;
>
> +            if (scan_inst->exec_size != inst->exec_size)
> +               break;

I'd combine this with the previous if (...) break block.

Reviewed-by: Matt Turner <mattst88 at gmail.com>


More information about the mesa-dev mailing list