Mesa (master): r300/compiler: set the MSB of ADDR for inline constants

Marek Olšák mareko at kemper.freedesktop.org
Mon Apr 4 21:38:28 PDT 2011


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

Author: Marek Olšák <maraeo at gmail.com>
Date:   Tue Apr  5 02:44:03 2011 +0200

r300/compiler: set the MSB of ADDR for inline constants

The docs say so.

---

 .../drivers/dri/r300/compiler/r500_fragprog_emit.c |    7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/src/mesa/drivers/dri/r300/compiler/r500_fragprog_emit.c b/src/mesa/drivers/dri/r300/compiler/r500_fragprog_emit.c
index 2f8d6e4..9b5c7c6 100644
--- a/src/mesa/drivers/dri/r300/compiler/r500_fragprog_emit.c
+++ b/src/mesa/drivers/dri/r300/compiler/r500_fragprog_emit.c
@@ -197,11 +197,14 @@ static void use_temporary(struct r500_fragment_program_code* code, unsigned int
 
 static unsigned int use_source(struct r500_fragment_program_code* code, struct rc_pair_instruction_source src)
 {
+	/* From docs:
+	 *   Note that inline constants set the MSB of ADDR0 and clear ADDR0_CONST.
+	 * MSB = 1 << 7 */
 	if (!src.Used)
-		return 0;
+		return 1 << 7;
 
 	if (src.File == RC_FILE_CONSTANT) {
-		return src.Index | 0x100;
+		return src.Index | R500_RGB_ADDR0_CONST;
 	} else if (src.File == RC_FILE_TEMPORARY) {
 		use_temporary(code, src.Index);
 		return src.Index;



More information about the mesa-commit mailing list