diff options
author | Kenneth Graunke <[email protected]> | 2011-06-10 16:00:03 -0700 |
---|---|---|
committer | Kenneth Graunke <[email protected]> | 2011-06-18 17:53:24 -0700 |
commit | ad9481e12813d5f1dec95ce123927e132fa935fb (patch) | |
tree | 79c2a91fd6fb1f93c22cc36bd7943d83084dbd9d /src | |
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 <[email protected]>
Reviewed-by: Eric Anholt <[email protected]>
Diffstat (limited to 'src')
-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 8580c78fea1..1cd673919f8 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(); |