Mesa (master): r600g: fix evergreen interpolation setup

Andre Maasikas andrem at kemper.freedesktop.org
Thu Oct 7 04:52:59 UTC 2010


Module: Mesa
Branch: master
Commit: 84457701b05ef29126d90c2fe72083278d26bd4f
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=84457701b05ef29126d90c2fe72083278d26bd4f

Author: Andre Maasikas <amaasikas at gmail.com>
Date:   Wed Oct  6 21:14:15 2010 +0300

r600g: fix evergreen interpolation setup

interp data is stored in gpr0 so first interp overwrote it
and subsequent ones got wrong values

reserve register 0 so it's not used for attribs.
alternative is to interpolate attrib0 last (reverse, as r600c does)

---

 src/gallium/drivers/r600/r600_shader.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/src/gallium/drivers/r600/r600_shader.c b/src/gallium/drivers/r600/r600_shader.c
index 016e75b..1f79c15 100644
--- a/src/gallium/drivers/r600/r600_shader.c
+++ b/src/gallium/drivers/r600/r600_shader.c
@@ -529,6 +529,9 @@ int r600_shader_from_tgsi(const struct tgsi_token *tokens, struct r600_shader *s
 	if (ctx.type == TGSI_PROCESSOR_VERTEX) {
 		ctx.file_offset[TGSI_FILE_INPUT] = 1;
 	}
+	if (ctx.type == TGSI_PROCESSOR_FRAGMENT && ctx.bc->chiprev == 2) {
+		ctx.file_offset[TGSI_FILE_INPUT] = 1;
+	}
 	ctx.file_offset[TGSI_FILE_OUTPUT] = ctx.file_offset[TGSI_FILE_INPUT] +
 						ctx.info.file_count[TGSI_FILE_INPUT];
 	ctx.file_offset[TGSI_FILE_TEMPORARY] = ctx.file_offset[TGSI_FILE_OUTPUT] +




More information about the mesa-commit mailing list