From 22d5a71e4dedfc047e1a14082b7d0d287cfe910e Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Sun, 24 Apr 2011 08:30:08 +1000 Subject: [PATCH] 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 --- src/gallium/drivers/r600/r600_asm.c | 8 ++++++-- 1 file 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; } -- 2.7.4