diff options
author | Eric Anholt <eric@anholt.net> | 2011-01-18 17:16:49 -0800 |
---|---|---|
committer | Eric Anholt <eric@anholt.net> | 2011-01-19 16:29:11 -0800 |
commit | 63879d90ace519749fed228ca0e21b5b56c7e1c0 (patch) | |
tree | aa188e6012a39f6fd2fb67e419cdbf49b66e401e /src/mesa/drivers/dri/i965/brw_fs.cpp | |
parent | 3f2fe31eee1667ef9cad99aaad69e52a09c9effa (diff) |
i965/fs: Add an instruction scheduler.
Improves performance of my GLSL demo by 5.1% (+/- 1.4%, n=7). It also
reschedules the giant multiply tree at the end of
glsl-fs-convolution-1 so that we end up not spilling registers,
producing the expected level of performance.
Diffstat (limited to 'src/mesa/drivers/dri/i965/brw_fs.cpp')
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_fs.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp b/src/mesa/drivers/dri/i965/brw_fs.cpp index 5b595a3c0e..c24060b8c6 100644 --- a/src/mesa/drivers/dri/i965/brw_fs.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs.cpp @@ -3696,6 +3696,8 @@ brw_wm_fs_emit(struct brw_context *brw, struct brw_wm_compile *c) progress = v.dead_code_eliminate() || progress; } while (progress); + v.schedule_instructions(); + if (0) { /* Debug of register spilling: Go spill everything. */ int virtual_grf_count = v.virtual_grf_next; |