[PATCH] r600g: fix relative addressing when splitting constant accesses

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello, 
currently r600g ignores relative constant addressing when splitting constant 
accesses into multiple instructions which is fixed by the attached patch.
I noticed it when messing with vp-tris arl.txt of 
git://anongit.freedesktop.org/mesa/demos (I modified "arr[addr.x-2]" into 
"arr[addr.x]" in arl.txt to get rid of the negative register indices)

Cheers
Stephan Schmid
From 200cf6884ca06ecd4f3a8dcbf8f88e2d04ebab32 Mon Sep 17 00:00:00 2001
From: Stephan Schmid <stephan_2303@xxxxxx>
Date: Mon, 11 Oct 2010 15:49:56 +0200
Subject: [PATCH] r600g: fix relative addressing when splitting constant accesses

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

diff --git a/src/gallium/drivers/r600/r600_shader.c b/src/gallium/drivers/r600/r600_shader.c
index 3418003..df2789d 100644
--- a/src/gallium/drivers/r600/r600_shader.c
+++ b/src/gallium/drivers/r600/r600_shader.c
@@ -796,6 +796,7 @@ static int tgsi_split_constant(struct r600_shader_ctx *ctx, struct r600_bc_alu_s
 				alu.inst = CTX_INST(V_SQ_ALU_WORD1_OP2_SQ_OP2_INST_MOV);
 				alu.src[0].sel = r600_src[i].sel;
 				alu.src[0].chan = k;
+				alu.src[0].rel = r600_src[i].rel;
 				alu.dst.sel = treg;
 				alu.dst.chan = k;
 				alu.dst.write = 1;
@@ -806,6 +807,7 @@ static int tgsi_split_constant(struct r600_shader_ctx *ctx, struct r600_bc_alu_s
 					return r;
 			}
 			r600_src[i].sel = treg;
+			r600_src[i].rel =0;
 			j--;
 		}
 	}
-- 
1.7.1

_______________________________________________
dri-devel mailing list
dri-devel@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/dri-devel

[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux