From 7f5a8ac155283e78df2da5b172a65361a80d38b6 Mon Sep 17 00:00:00 2001 From: Matt Turner Date: Sat, 25 Apr 2015 01:50:04 -0700 Subject: i965/fs: Disallow constant propagation into POW on Gen 6. Fixes assertion failures in three piglit tests on Gen 6 since commit 0087cf23e. --- src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp b/src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp index 9542d6a20c..c9ce2bd451 100644 --- a/src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs_copy_propagation.cpp @@ -506,9 +506,15 @@ fs_visitor::try_constant_propagate(fs_inst *inst, acp_entry *entry) break; /* fallthrough */ case SHADER_OPCODE_POW: - /* Allow constant propagation into src1 regardless of generation, and - * let constant combining promote the constant on Gen < 8. + /* Allow constant propagation into src1 (except on Gen 6), and let + * constant combining promote the constant on Gen < 8. + * + * While Gen 6 MATH can take a scalar source, its source and + * destination offsets must be equal and we cannot ensure that. */ + if (devinfo->gen == 6) + break; + /* fallthrough */ case BRW_OPCODE_BFI1: case BRW_OPCODE_ASR: case BRW_OPCODE_SHL: -- cgit v1.2.3