diff options
author | Eric Anholt <eric@anholt.net> | 2012-08-27 14:35:01 -0700 |
---|---|---|
committer | Eric Anholt <eric@anholt.net> | 2012-10-08 08:50:27 -0700 |
commit | 97615b2d8c7c3cea6fd3a43bcb1739a96e2046c4 (patch) | |
tree | e8b5b5bedbf9ec120b2b2cbecce3fda3e49795e8 /src/mesa/drivers/dri/i965/brw_wm_state.c | |
parent | 014aaa97d3d7f78629e6e030953be0e9fb7f33dd (diff) | |
download | external_mesa3d-97615b2d8c7c3cea6fd3a43bcb1739a96e2046c4.zip external_mesa3d-97615b2d8c7c3cea6fd3a43bcb1739a96e2046c4.tar.gz external_mesa3d-97615b2d8c7c3cea6fd3a43bcb1739a96e2046c4.tar.bz2 |
i965: Replace brw_wm_* with dumping code into the fs_visitor.
This makes a giant pile of code newly dead. It also fixes TXB on newer
chipsets, which has been totally broken (I now have a piglit test for that).
It passes the same set of Ian's ARB_fragment_program tests. It also improves
high-settings ETQW performance by 3.2 +/- 1.9% (n=3), thanks to better
optimization and having 8-wide along with 16-wide shaders.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=24355
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Diffstat (limited to 'src/mesa/drivers/dri/i965/brw_wm_state.c')
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_wm_state.c | 19 |
1 files changed, 2 insertions, 17 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_wm_state.c b/src/mesa/drivers/dri/i965/brw_wm_state.c index dd67795..ea2dea9 100644 --- a/src/mesa/drivers/dri/i965/brw_wm_state.c +++ b/src/mesa/drivers/dri/i965/brw_wm_state.c @@ -163,23 +163,8 @@ brw_upload_wm_unit(struct brw_context *brw) /* _NEW_COLOR */ wm->wm5.program_uses_killpixel = fp->UsesKill || ctx->Color.AlphaEnabled; - - /* BRW_NEW_FRAGMENT_PROGRAM - * - * If using the fragment shader backend, the program is always - * 8-wide. If not, it's always 16. - */ - if (ctx->Shader._CurrentFragmentProgram) { - struct brw_shader *shader = (struct brw_shader *) - ctx->Shader._CurrentFragmentProgram->_LinkedShaders[MESA_SHADER_FRAGMENT]; - - if (shader != NULL && shader->ir != NULL) { - wm->wm5.enable_8_pix = 1; - if (brw->wm.prog_data->prog_offset_16) - wm->wm5.enable_16_pix = 1; - } - } - if (!wm->wm5.enable_8_pix) + wm->wm5.enable_8_pix = 1; + if (brw->wm.prog_data->prog_offset_16) wm->wm5.enable_16_pix = 1; wm->wm5.max_threads = brw->max_wm_threads - 1; |