Mesa (9.1): r600g: fix check_and_set_bank_swizzle for cayman
Alex Deucher
agd5f at kemper.freedesktop.org
Tue Mar 5 23:44:07 UTC 2013
Module: Mesa
Branch: 9.1
Commit: 9a5f5137739acebfa3408aa8368a5a407ff9ef9c
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=9a5f5137739acebfa3408aa8368a5a407ff9ef9c
Author: Vadim Girlin <vadimgirlin at gmail.com>
Date: Tue Feb 26 20:50:25 2013 +0400
r600g: fix check_and_set_bank_swizzle for cayman
Tested-by: Vincent Lejeune <vljn at ovi.com>
Reviewed-by: Vincent Lejeune <vljn at ovi.com>
(cherry picked from commit 138b5b9a12b7e1537494aac556589ac9981b557b)
---
src/gallium/drivers/r600/r600_asm.c | 10 +++-------
1 files changed, 3 insertions(+), 7 deletions(-)
diff --git a/src/gallium/drivers/r600/r600_asm.c b/src/gallium/drivers/r600/r600_asm.c
index f25c6aa..451b072 100644
--- a/src/gallium/drivers/r600/r600_asm.c
+++ b/src/gallium/drivers/r600/r600_asm.c
@@ -873,12 +873,6 @@ static int check_and_set_bank_swizzle(struct r600_bytecode *bc,
bank_swizzle[4] = SQ_ALU_SCL_210;
while(bank_swizzle[4] <= SQ_ALU_SCL_221) {
- if (max_slots == 4) {
- for (i = 0; i < max_slots; i++) {
- if (bank_swizzle[i] == SQ_ALU_VEC_210)
- return -1;
- }
- }
init_bank_swizzle(&bs);
if (scalar_only == false) {
for (i = 0; i < 4; i++) {
@@ -910,8 +904,10 @@ static int check_and_set_bank_swizzle(struct r600_bytecode *bc,
bank_swizzle[i]++;
if (bank_swizzle[i] <= SQ_ALU_VEC_210)
break;
- else
+ else if (i < max_slots - 1)
bank_swizzle[i] = SQ_ALU_VEC_012;
+ else
+ return -1;
}
}
}
More information about the mesa-commit
mailing list