Mesa (master): r600g: PV/PS have cycle restrictions in scalar operations

Dave Airlie airlied at kemper.freedesktop.org
Sat Apr 23 22:30:32 UTC 2011


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

Author: Dave Airlie <airlied at redhat.com>
Date:   Sun Apr 24 08:30:08 2011 +1000

r600g: PV/PS have cycle restrictions in scalar operations

In the R600 ISA document:
Section 4.7.5 Cycle restrictions for the ALU.trans states that
PV/PS have cycle restrictions wrt constants.

This is part of a fix for the LIT tests

Signed-off-by: Dave Airlie <airlied at redhat.com>

---

 src/gallium/drivers/r600/r600_asm.c |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/src/gallium/drivers/r600/r600_asm.c b/src/gallium/drivers/r600/r600_asm.c
index 7e854b1..4cdd1ed 100644
--- a/src/gallium/drivers/r600/r600_asm.c
+++ b/src/gallium/drivers/r600/r600_asm.c
@@ -709,8 +709,12 @@ static int check_scalar(struct r600_bc *bc, struct r600_bc_alu *alu,
 			if (r)
 				return r;
 		}
-		// Constants already processed
-		// No restrictions on PV, PS
+		// PV PS restrictions
+		if (const_count && (sel == 254 || sel == 255)) {
+			cycle = cycle_for_bank_swizzle_scl[bank_swizzle][src];
+			if (cycle < const_count)
+				return -1;
+		}
 	}
 	return 0;
 }




More information about the mesa-commit mailing list