diff options
author | Kenneth Graunke <kenneth@whitecape.org> | 2011-06-10 16:00:03 -0700 |
---|---|---|
committer | Kenneth Graunke <kenneth@whitecape.org> | 2011-06-18 17:53:24 -0700 |
commit | ad9481e12813d5f1dec95ce123927e132fa935fb (patch) | |
tree | 79c2a91fd6fb1f93c22cc36bd7943d83084dbd9d | |
parent | c173541d9769d41a85cc899bc49699a3587df4bf (diff) |
i965/fs: Check for compilation failure and bail before optimizing.
Prior to this patch, it would attempt to optimize and allocate registers
for the program even if it failed to compile. This seems wasteful.
More importantly, the "message length > 11" failure seems to choke the
instruction scheduler, making it somehow use an undefined value and
segmentation fault.
Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
-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 8580c78fea..1cd673919f 100644 --- a/src/mesa/drivers/dri/i965/brw_fs.cpp +++ b/src/mesa/drivers/dri/i965/brw_fs.cpp @@ -1533,6 +1533,8 @@ fs_visitor::run() this->result = reg_undef; ir->accept(this); } + if (failed) + return false; emit_fb_writes(); |