Mesa (master): i965: Fix sampling on Ivybridge after headerless change.
Kenneth Graunke
kwg at kemper.freedesktop.org
Fri May 20 23:34:48 UTC 2011
Module: Mesa
Branch: master
Commit: 9be8524af753791d26fbd65417c5380b4d934296
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=9be8524af753791d26fbd65417c5380b4d934296
Author: Kenneth Graunke <kenneth at whitecape.org>
Date: Fri May 20 16:25:59 2011 -0700
i965: Fix sampling on Ivybridge after headerless change.
Fixes a regression since 90e922267a89fa9bef254bb257405531ceff7356.
Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
---
src/mesa/drivers/dri/i965/brw_fs.cpp | 15 +++++++++++++--
1 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp b/src/mesa/drivers/dri/i965/brw_fs.cpp
index eb954c8..6d545af 100644
--- a/src/mesa/drivers/dri/i965/brw_fs.cpp
+++ b/src/mesa/drivers/dri/i965/brw_fs.cpp
@@ -1388,9 +1388,19 @@ fs_inst *
fs_visitor::emit_texture_gen7(ir_texture *ir, fs_reg dst, fs_reg coordinate,
int sampler)
{
- int mlen = 1; /* g0 header always present. */
- int base_mrf = 1;
+ int mlen = 0;
+ int base_mrf = 2;
int reg_width = c->dispatch_width / 8;
+ bool header_present = false;
+
+ if (ir->offset) {
+ /* The offsets set up by the ir_texture visitor are in the
+ * m1 header, so we can't go headerless.
+ */
+ header_present = true;
+ mlen++;
+ base_mrf--;
+ }
if (ir->shadow_comparitor) {
ir->shadow_comparitor->accept(this);
@@ -1439,6 +1449,7 @@ fs_visitor::emit_texture_gen7(ir_texture *ir, fs_reg dst, fs_reg coordinate,
}
inst->base_mrf = base_mrf;
inst->mlen = mlen;
+ inst->header_present = header_present;
if (mlen > 11) {
fail("Message length >11 disallowed by hardware\n");
More information about the mesa-commit
mailing list