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 <pendingchaos02@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4573>
This commit is contained in:
committed by
Marge Bot
parent
5a3c1f4f0b
commit
d666d83be2
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user