mesa: Branch 'master'
Nicolai Hähnle
nh at kemper.freedesktop.org
Sun Mar 25 11:04:08 UTC 2007
src/mesa/drivers/dri/r300/r300_fragprog.c | 9 +++++++--
1 files changed, 7 insertions(+), 2 deletions(-)
New commits:
diff-tree 7143c61283e4b7bffcb27f220517ada2e2c857e5 (from 74ceaf545feb530a61f2de1554c32d6ef0bd46f8)
Author: Nicolai Haehnle <nhaehnle at gmail.com>
Date: Sun Mar 25 13:02:26 2007 +0200
r300: Fix regression: unnecessary node indirection
The texture_rectangle fix introduced a bug where every texture instruction
caused a new indirection.
diff --git a/src/mesa/drivers/dri/r300/r300_fragprog.c b/src/mesa/drivers/dri/r300/r300_fragprog.c
index 68a75ec..e01f56d 100644
--- a/src/mesa/drivers/dri/r300/r300_fragprog.c
+++ b/src/mesa/drivers/dri/r300/r300_fragprog.c
@@ -934,6 +934,9 @@ static void emit_tex(struct r300_fragmen
int hwsrc, hwdest;
GLuint tempreg = 0;
+ uin = cs->used_in_node;
+ din = cs->dest_in_node;
+
/* Resolve source/dest to hardware registers */
if (opcode != R300_FPITX_OP_KIL) {
if (fpi->TexSrcTarget == TEXTURE_RECT_INDEX) {
@@ -958,6 +961,10 @@ static void emit_tex(struct r300_fragmen
emit_arith(rp, PFS_OP_MAD, tempreg, WRITEMASK_XYZW,
coord, factorreg, pfs_zero, 0);
+ /* Ensure correct node indirection */
+ uin = cs->used_in_node;
+ din = cs->dest_in_node;
+
hwsrc = t_hw_src(rp, tempreg, GL_TRUE);
} else {
hwsrc = t_hw_src(rp, coord, GL_TRUE);
@@ -986,8 +993,6 @@ static void emit_tex(struct r300_fragmen
hwsrc = t_hw_src(rp, coord, GL_TRUE);
}
- din = cs->dest_in_node;
- uin = cs->used_in_node;
/* Indirection if source has been written in this node, or if the
* dest has been read/written in this node
More information about the mesa-commit
mailing list