mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-02 03:38:06 +02:00
i965/fs: Allocate single register at a time for constants.
No instruction counts changed, but: total cycles in shared programs: 64834502 -> 64781530 (-0.08%) cycles in affected programs: 16331544 -> 16278572 (-0.32%) helped: 4757 HURT: 4288 GAINED: 66 LOST: 20 I remember trying this when I first wrote the pass, but it wasn't helpful at the time. Reviewed-by: Francisco Jerez <currojerez@riseup.net>
This commit is contained in:
parent
8ec24678ac
commit
8c7a42b3e8
1 changed files with 3 additions and 3 deletions
|
|
@ -268,7 +268,7 @@ fs_visitor::opt_combine_constants()
|
|||
qsort(table.imm, table.len, sizeof(struct imm), compare);
|
||||
|
||||
/* Insert MOVs to load the constant values into GRFs. */
|
||||
fs_reg reg(VGRF, alloc.allocate(dispatch_width / 8));
|
||||
fs_reg reg(VGRF, alloc.allocate(1));
|
||||
reg.stride = 0;
|
||||
for (int i = 0; i < table.len; i++) {
|
||||
struct imm *imm = &table.imm[i];
|
||||
|
|
@ -284,8 +284,8 @@ fs_visitor::opt_combine_constants()
|
|||
imm->subreg_offset = reg.subreg_offset;
|
||||
|
||||
reg.subreg_offset += sizeof(float);
|
||||
if ((unsigned)reg.subreg_offset == dispatch_width * sizeof(float)) {
|
||||
reg.nr = alloc.allocate(dispatch_width / 8);
|
||||
if ((unsigned)reg.subreg_offset == 8 * sizeof(float)) {
|
||||
reg.nr = alloc.allocate(1);
|
||||
reg.subreg_offset = 0;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue