Link to v1: http://lists.freedesktop.org/archives/mesa-dev/2015-July/089766.html
Changes after review (Curro) - Drop the patch that asserted that the reg size should always be 1 - Expand this so that we do not unspill a register if we have just unspilled it as well - Use brw_mask_for_swizzle - Update spilling costs accordingly New changes: - Expand the optimizations that are based on caching the spilled/unspilled so we keep using the cached register for as long as consecutive instructions keep reading the register (the previous version would only do this for one instruction). This is because we only see benefits for register allocation when there are gaps in the life span of a register where it is not used (because these are the only instances in which we can use that reg for a different purpose), so as long as consecutive instructions keep reading a register we have just spilled or unspilled, we don't have to unspill it again. Other Iago Toral Quiroga (6): i965/vec4: Only emit one scratch read per instruction for spilled registers i965/vec4: Remove checks for reladdr when checking for spillable registers i965/vec4: Don't emit scratch reads for a spilled register we have just written i965/vec4: Don't emit scratch reads for a register we have just unspilled i965/vec4: Adjust spilling cost for consecutive instructions i965: Add a debug option for spilling everything in vec4 code src/mesa/drivers/dri/i965/brw_fs_reg_allocate.cpp | 2 +- src/mesa/drivers/dri/i965/brw_vec4.cpp | 2 +- .../drivers/dri/i965/brw_vec4_reg_allocate.cpp | 145 +++++++++++++++++++-- src/mesa/drivers/dri/i965/intel_debug.c | 3 +- src/mesa/drivers/dri/i965/intel_debug.h | 5 +- 5 files changed, 139 insertions(+), 18 deletions(-) -- 1.9.1 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev