aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorKenneth Graunke <[email protected]>2011-06-29 16:47:30 -0700
committerKenneth Graunke <[email protected]>2011-07-06 11:12:17 -0700
commiteafc74d7d4982a835ac43c73963dda9982652464 (patch)
tree897212ee602f738f7fe41090e24dd5f3f882ce40 /src
parentf747d03b1d3aa4e63417bd8486909f63b4a33be4 (diff)
i965/fs: Fix message register allocation in FB writes.
Commit 6750226e6d915742ebf96bae2cfcdd287b85db35 bumped the base MRF to m2 instead of m0, but failed to adjust inst->mlen, which was being set to the highest MRF. Subtracting the base MRF solves the issue. Signed-off-by: Kenneth Graunke <[email protected]> Reviewed-by: Ben Widawsky <[email protected]>
Diffstat (limited to 'src')
-rw-r--r--src/mesa/drivers/dri/i965/brw_fs_visitor.cpp11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
index 9091014976b..cbe5cf428c5 100644
--- a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
@@ -1791,7 +1791,8 @@ fs_visitor::emit_fb_writes()
{
this->current_annotation = "FB write header";
GLboolean header_present = GL_TRUE;
- int nr = 2;
+ int base_mrf = 2;
+ int nr = base_mrf;
int reg_width = c->dispatch_width / 8;
if (intel->gen >= 6 &&
@@ -1870,8 +1871,8 @@ fs_visitor::emit_fb_writes()
fs_inst *inst = emit(FS_OPCODE_FB_WRITE);
inst->target = target;
- inst->base_mrf = 2;
- inst->mlen = nr;
+ inst->base_mrf = base_mrf;
+ inst->mlen = nr - base_mrf;
if (target == c->key.nr_color_regions - 1)
inst->eot = true;
inst->header_present = header_present;
@@ -1888,8 +1889,8 @@ fs_visitor::emit_fb_writes()
}
fs_inst *inst = emit(FS_OPCODE_FB_WRITE);
- inst->base_mrf = 2;
- inst->mlen = nr;
+ inst->base_mrf = base_mrf;
+ inst->mlen = nr - base_mrf;
inst->eot = true;
inst->header_present = header_present;
}