Module: Mesa Branch: master Commit: d666d83be2fa03210f38b06e72410e8d8221b184 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=d666d83be2fa03210f38b06e72410e8d8221b184
Author: Daniel Schürmann <[email protected]> Date: Wed Apr 15 11:00:45 2020 +0100 aco: try to always find a register with stride for even sizes Totals from affected shaders: SGPRS: 1162400 -> 1162400 (0.00 %) VGPRS: 947364 -> 946960 (-0.04 %) Code Size: 98399300 -> 98399004 (-0.00 %) bytes Max Waves: 74665 -> 74682 (0.02 %) Reviewed-by: Rhys Perry <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4573> --- src/amd/compiler/aco_register_allocation.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/amd/compiler/aco_register_allocation.cpp b/src/amd/compiler/aco_register_allocation.cpp index 9a36019ff37..eae3822e61c 100644 --- a/src/amd/compiler/aco_register_allocation.cpp +++ b/src/amd/compiler/aco_register_allocation.cpp @@ -395,8 +395,10 @@ std::pair<PhysReg, bool> get_reg_simple(ra_ctx& ctx, if (stride == 1) { - if (rc.type() == RegType::vgpr && (size == 4 || size == 8)) { - info.stride = 4; + for (unsigned stride = 8; stride > 1; stride /= 2) { + if (size % stride) + continue; + info.stride = stride; std::pair<PhysReg, bool> res = get_reg_simple(ctx, reg_file, info); if (res.second) return res; _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
