Mesa (master): i965/fs: Disable some optimization passes under 16-wide for now.
Eric Anholt
anholt at kemper.freedesktop.org
Tue Apr 26 19:26:01 UTC 2011
Module: Mesa
Branch: master
Commit: af20328271425c217630b5114ee172bd8387a91a
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=af20328271425c217630b5114ee172bd8387a91a
Author: Eric Anholt <eric at anholt.net>
Date: Wed Mar 23 14:00:01 2011 -0700
i965/fs: Disable some optimization passes under 16-wide for now.
These are fixable for 16, but that can wait until after it's basically
working.
Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
---
src/mesa/drivers/dri/i965/brw_fs.cpp | 12 ++++++++++++
.../dri/i965/brw_fs_schedule_instructions.cpp | 3 +++
2 files changed, 15 insertions(+), 0 deletions(-)
diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp b/src/mesa/drivers/dri/i965/brw_fs.cpp
index 19dbf41..17f4435 100644
--- a/src/mesa/drivers/dri/i965/brw_fs.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs.cpp
@@ -2910,6 +2910,10 @@ fs_visitor::propagate_constants()
{
bool progress = false;
+ /* Need to update the MRF tracking for compressed instructions. */
+ if (c->dispatch_width == 16)
+ return false;
+
calculate_live_intervals();
foreach_iter(exec_list_iterator, iter, this->instructions) {
@@ -3171,6 +3175,10 @@ fs_visitor::compute_to_mrf()
bool progress = false;
int next_ip = 0;
+ /* Need to update the MRF tracking for compressed instructions. */
+ if (c->dispatch_width == 16)
+ return false;
+
calculate_live_intervals();
foreach_iter(exec_list_iterator, iter, this->instructions) {
@@ -3302,6 +3310,10 @@ fs_visitor::remove_duplicate_mrf_writes()
fs_inst *last_mrf_move[16];
bool progress = false;
+ /* Need to update the MRF tracking for compressed instructions. */
+ if (c->dispatch_width == 16)
+ return false;
+
memset(last_mrf_move, 0, sizeof(last_mrf_move));
foreach_iter(exec_list_iterator, iter, this->instructions) {
diff --git a/src/mesa/drivers/dri/i965/brw_fs_schedule_instructions.cpp b/src/mesa/drivers/dri/i965/brw_fs_schedule_instructions.cpp
index bff8f82..400452d 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_schedule_instructions.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs_schedule_instructions.cpp
@@ -463,6 +463,9 @@ fs_visitor::schedule_instructions()
fs_inst *next_block_header = (fs_inst *)instructions.head;
instruction_scheduler sched(this, mem_ctx, this->virtual_grf_next);
+ if (c->dispatch_width == 16)
+ return;
+
while (!next_block_header->is_tail_sentinel()) {
/* Add things to be scheduled until we get to a new BB. */
while (!next_block_header->is_tail_sentinel()) {
More information about the mesa-commit
mailing list