diff options
author | Iago Toral Quiroga <[email protected]> | 2014-06-09 12:00:04 +0200 |
---|---|---|
committer | Iago Toral Quiroga <[email protected]> | 2014-06-09 12:00:04 +0200 |
commit | c75f827f129dbb03e92200c9bfc3d82e02ea82f6 (patch) | |
tree | f13cda1b3b9364ce17f3ca101d9dce875bb7dbfe /src/mesa/drivers/dri/i965 | |
parent | dc2d3a7f5c217a7cee92380fbf503924a9591bea (diff) |
i965: Ensure that we end instruction streams properly.
Threads must terminate with a SEND message to a particular shared function,
such as a URB write or FB write, so the instruction stream really shouldn't
ever end in an IF/ELSE/ENDIF or similar block structure.
However, if the instruction stream (incorrectly) ends in a block structure
the last block's end pointer will not be set, leading to a crash later on in
fs_live_variables::setup_def_use(). It is better to detect this earlier, so
assert on that.
Reviewed-by: Kenneth Graunke <[email protected]>
Diffstat (limited to 'src/mesa/drivers/dri/i965')
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_cfg.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_cfg.cpp b/src/mesa/drivers/dri/i965/brw_cfg.cpp index 6bf99f17f58..9d6eeb37523 100644 --- a/src/mesa/drivers/dri/i965/brw_cfg.cpp +++ b/src/mesa/drivers/dri/i965/brw_cfg.cpp @@ -257,6 +257,8 @@ cfg_t::cfg_t(exec_list *instructions) } } + assert(cur->end); + cur->end_ip = ip; make_block_array(); |