diff options
author | Kenneth Graunke <[email protected]> | 2015-02-04 21:17:55 -0800 |
---|---|---|
committer | Kenneth Graunke <[email protected]> | 2015-02-05 20:00:42 -0800 |
commit | 10d8a1a88ef2bf80d43e0d876873cf18603798c0 (patch) | |
tree | 7fdf295694d351e5cb679a59ea7640eaec9a44df | |
parent | a338dc01866ce50bf7555ee8dc08491c7f63b585 (diff) |
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 <[email protected]>
Reviewed-by: Jordan Justen <[email protected]>
Reviewed-by: Ben Widawsky <[email protected]>
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_fs_reg_allocate.cpp | 15 |
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); |