diff options
author | Kenneth Graunke <[email protected]> | 2015-01-09 20:46:17 -0800 |
---|---|---|
committer | Emil Velikov <[email protected]> | 2015-01-17 14:59:08 +0000 |
commit | 021d71b8480393c3f0bbe35fd2f8bb7052c7ff31 (patch) | |
tree | 69766c7f79fb79902c7533dd234046c8f831223c /src/mesa/drivers/dri | |
parent | 14f1659b4311589959b2513e437f0229174eb5ae (diff) |
i965: Respect the no_8 flag on Gen6, not just Gen7+.
When doing repclears, we only want to use the SIMD16 program, not the
SIMD8 one. Kristian added this to the Gen7+ code, but apparently we
missed it in the Gen6 code. This patch copies that code over.
Approximately doubles the performance in a clear microbenchmark from
mesa-demos (clearspd -width 500 -height 500 +color) on Sandybridge.
Cc: "10.4 10.3" <[email protected]>
Signed-off-by: Kenneth Graunke <[email protected]>
Reviewed-by: Kristian Høgsberg <[email protected]>
Reviewed-by: Matt Turner <[email protected]>
References: https://code.google.com/p/chrome-os-partner/issues/detail?id=34681
(cherry picked from commit f95733ddb7fff0af923fce3a07ebef78fa3139a4)
Conflicts:
src/mesa/drivers/dri/i965/gen6_wm_state.c
Diffstat (limited to 'src/mesa/drivers/dri')
-rw-r--r-- | src/mesa/drivers/dri/i965/gen6_wm_state.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/mesa/drivers/dri/i965/gen6_wm_state.c b/src/mesa/drivers/dri/i965/gen6_wm_state.c index 930f9ae4670..4e9e995e85d 100644 --- a/src/mesa/drivers/dri/i965/gen6_wm_state.c +++ b/src/mesa/drivers/dri/i965/gen6_wm_state.c @@ -142,10 +142,10 @@ upload_wm_state(struct brw_context *brw) _mesa_get_min_invocations_per_fragment(ctx, brw->fragment_program, false); assert(min_inv_per_frag >= 1); - if (brw->wm.prog_data->prog_offset_16) { + if (brw->wm.prog_data->prog_offset_16 || brw->wm.prog_data->no_8) { dw5 |= GEN6_WM_16_DISPATCH_ENABLE; - if (min_inv_per_frag == 1) { + if (!brw->wm.prog_data->no_8 && min_inv_per_frag == 1) { dw5 |= GEN6_WM_8_DISPATCH_ENABLE; dw4 |= (brw->wm.prog_data->base.dispatch_grf_start_reg << GEN6_WM_DISPATCH_START_GRF_SHIFT_0); |