From 42dea145d9c83d1ad59dfb275072a4ed67233d1d Mon Sep 17 00:00:00 2001 From: Kenneth Graunke Date: Wed, 20 Apr 2016 03:32:24 -0700 Subject: [PATCH] i965: Disable channel expressions for scalar GS, TCS, TES. On Broadwell, I get the following shader-db statistics: Tessellation Control Shaders: total instructions in shared programs: 57327 -> 57012 (-0.55%) instructions in affected programs: 27334 -> 27019 (-1.15%) helped: 45 HURT: 0 total cycles in shared programs: 265692 -> 255188 (-3.95%) cycles in affected programs: 263122 -> 252618 (-3.99%) helped: 184 HURT: 26 Tessellation Evaluation Shaders: total instructions in shared programs: 23236 -> 23157 (-0.34%) instructions in affected programs: 2791 -> 2712 (-2.83%) helped: 27 HURT: 0 total cycles in shared programs: 151858 -> 149704 (-1.42%) cycles in affected programs: 151858 -> 149704 (-1.42%) helped: 101 HURT: 114 Geometry Shaders: Orbital Explorer goes from 6442 -> 6356 instructions. Two Shadow of Mordor shaders increase by a single instruction. Signed-off-by: Kenneth Graunke Reviewed-by: Matt Turner --- src/mesa/drivers/dri/i965/brw_link.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/mesa/drivers/dri/i965/brw_link.cpp b/src/mesa/drivers/dri/i965/brw_link.cpp index ee62adaf931..d4bbd8b3b5b 100644 --- a/src/mesa/drivers/dri/i965/brw_link.cpp +++ b/src/mesa/drivers/dri/i965/brw_link.cpp @@ -146,7 +146,9 @@ process_glsl_ir(gl_shader_stage stage, progress = false; if (compiler->scalar_stage[shader->Stage]) { - brw_do_channel_expressions(shader->ir); + if (shader->Stage == MESA_SHADER_VERTEX || + shader->Stage == MESA_SHADER_FRAGMENT) + brw_do_channel_expressions(shader->ir); brw_do_vector_splitting(shader->ir); } -- 2.30.2