OSDN Git Service

i965: Bump Ivybridge's fake MRF range to g112-127 instead of g111-126.
authorKenneth Graunke <kenneth@whitecape.org>
Tue, 17 Jan 2012 16:08:25 +0000 (08:08 -0800)
committerKenneth Graunke <kenneth@whitecape.org>
Wed, 18 Jan 2012 08:45:01 +0000 (00:45 -0800)
commit5acc7f38d42859db459567d4442c18764a4072e7
tree9950c2378e0ade4342fb7a9ff018b45c171d13ae
parentbdedd03b701781c8b71e162f7eb834e6a11105de
i965: Bump Ivybridge's fake MRF range to g112-127 instead of g111-126.

When I originally implemented the hack to use GRFs 111+ as fake MRFs, I
did so purely to avoid rewriting all the code that dealt with MRFs.
However, it turns out that a similar hack is actually required.

Newly discovered language in the BSpec indicates that SEND instructions
with EOT set "should" use g112-g127 as their source registers.  Based on
assertions in the simulator, this is actually a requirement on certain
platforms.

Since we're faking MRFs already, we may as well use the officially
sanctioned range.  My guess is that we avoided this issue because we
seldom use m0: URB writes in the new VS backend start at m1, and RT
writes in the new FS backend start at m2.

NOTE: This is a candidate for stable release branches.

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Eric Anholt <eric@anholt.net>
src/mesa/drivers/dri/i965/brw_eu_emit.c