summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKenneth Graunke <kenneth@whitecape.org>2015-02-04 21:17:55 -0800
committerKenneth Graunke <kenneth@whitecape.org>2015-02-05 20:00:42 -0800
commit10d8a1a88ef2bf80d43e0d876873cf18603798c0 (patch)
tree7fdf295694d351e5cb679a59ea7640eaec9a44df
parenta338dc01866ce50bf7555ee8dc08491c7f63b585 (diff)
downloadmesa-10d8a1a88ef2bf80d43e0d876873cf18603798c0.tar.gz
i965/fs: Delete is_last_send(); just check inst->eot.
This helper function basically just checks inst->eot, but also asserts that only opcodes we expect to terminate threads have EOT set. As far as I'm aware, we've never had such a bug. Removing it means that we don't have to extend the list for new opcodes. Cherryview and Skylake introduce an optimization where sampler messages can have EOT set; scalar GS/HS/DS will likely introduce new opcodes as well. Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Jordan Justen <jordan.l.justen@intel.com> Reviewed-by: Ben Widawsky <ben@bwidawsk.net>
-rw-r--r--src/mesa/drivers/dri/i965/brw_fs_reg_allocate.cpp15
1 files changed, 1 insertions, 14 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_fs_reg_allocate.cpp b/src/mesa/drivers/dri/i965/brw_fs_reg_allocate.cpp
index eba2fdd0816..8a14ce4a84d 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_reg_allocate.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs_reg_allocate.cpp
@@ -523,19 +523,6 @@ fs_visitor::setup_mrf_hack_interference(struct ra_graph *g, int first_mrf_node)
}
}
-static bool
-is_last_send(fs_inst *inst)
-{
- switch (inst->opcode) {
- case SHADER_OPCODE_URB_WRITE_SIMD8:
- case FS_OPCODE_FB_WRITE:
- return inst->eot;
- default:
- assert(!inst->eot);
- return false;
- }
-}
-
bool
fs_visitor::assign_regs(bool allow_spilling)
{
@@ -608,7 +595,7 @@ fs_visitor::assign_regs(bool allow_spilling)
* We could just do "something high". Instead, we just pick the
* highest register that works.
*/
- if (is_last_send(inst)) {
+ if (inst->eot) {
int size = virtual_grf_sizes[inst->src[0].reg];
int reg = screen->wm_reg_sets[rsi].class_to_ra_reg_range[size] - 1;
ra_set_node_reg(g, inst->src[0].reg, reg);