Mesa (master): r600g: Handle texture fetch instructions with neg or abs on source register
Henri Verbeet
hverbeet at kemper.freedesktop.org
Sun Mar 27 13:00:55 UTC 2011
Module: Mesa
Branch: master
Commit: da5b4764b28a1efd2e9dbf0741247288da36f546
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=da5b4764b28a1efd2e9dbf0741247288da36f546
Author: Fabian Bieler <der.fabe at gmx.net>
Date: Wed Mar 23 23:26:41 2011 +0100
r600g: Handle texture fetch instructions with neg or abs on source register
Signed-off-by: Henri Verbeet <hverbeet at gmail.com>
---
src/gallium/drivers/r600/r600_shader.c | 8 +++++---
1 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/src/gallium/drivers/r600/r600_shader.c b/src/gallium/drivers/r600/r600_shader.c
index 0fe689e..a835e1c 100644
--- a/src/gallium/drivers/r600/r600_shader.c
+++ b/src/gallium/drivers/r600/r600_shader.c
@@ -1526,10 +1526,12 @@ static int tgsi_tex(struct r600_shader_ctx *ctx)
unsigned src_gpr;
int r, i;
int opcode;
- /* Texture fetch instructions can only use gprs as source. */
+ /* Texture fetch instructions can only use gprs as source.
+ * Also they cannot negate the source or take the absolute value */
const boolean src_requires_loading =
- inst->Src[0].Register.File != TGSI_FILE_TEMPORARY &&
- inst->Src[0].Register.File != TGSI_FILE_INPUT;
+ (inst->Src[0].Register.File != TGSI_FILE_TEMPORARY &&
+ inst->Src[0].Register.File != TGSI_FILE_INPUT) ||
+ ctx->src[0].neg || ctx->src[0].abs;
boolean src_loaded = FALSE;
src_gpr = ctx->file_offset[inst->Src[0].Register.File] + inst->Src[0].Register.Index;
More information about the mesa-commit
mailing list