diff options
author | Eric Anholt <[email protected]> | 2012-07-06 17:18:35 -0700 |
---|---|---|
committer | Eric Anholt <[email protected]> | 2012-07-18 12:30:06 -0700 |
commit | a40c1f95229915214be061fbbf9a02e5225fbf01 (patch) | |
tree | 2797b0d558c8f00054c47cf3e3c74ed24d0b3aa7 /src/gallium/drivers | |
parent | a454f8ec6df9334df42249be910cc2d57d913bff (diff) |
i965/fs: Make register spill/unspill only do the regs for that instruction.
Previously, if we were spilling the result of a texture call, we would store
all 4 regs, then for each use of one of those regs as the source of an
instruction, we would unspill all 4 regs even though only one was needed.
In both lightsmark and l4d2 with my current graphics config, the shaders that
produce spilling do so on split GRFs, so this doesn't help them out. However,
in a capture of the l4d2 shaders with a different snapshot and playing the
game instead of using a demo, it reduced one shader from 2817 instructions to
2179, due to choosing a now-cheaper texture result to spill instead of piles
of texcoords.
v2: Fix comment noted by Ken, and fix the if condition associated with it for
the current state of what constitutes a partial write of the destination.
Reviewed-by: Kenneth Graunke <[email protected]> (v1)
Diffstat (limited to 'src/gallium/drivers')
0 files changed, 0 insertions, 0 deletions