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