Mesa (master): radeon/llvm: Do not use PV/PS if PRED_SEL does not match
Tom Stellard
tstellar at kemper.freedesktop.org
Wed Aug 15 21:21:24 UTC 2012
Module: Mesa
Branch: master
Commit: 56227f875bdff6ef4fd53b09ba267c786ae9dac2
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=56227f875bdff6ef4fd53b09ba267c786ae9dac2
Author: Vincent Lejeune <vljn at ovi.com>
Date: Wed Aug 1 22:52:53 2012 +0200
radeon/llvm: Do not use PV/PS if PRED_SEL does not match
Signed-off-by: Tom Stellard <thomas.stellard at amd.com>
---
src/gallium/drivers/r600/r600_asm.c | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/gallium/drivers/r600/r600_asm.c b/src/gallium/drivers/r600/r600_asm.c
index 0cca829..0f28824 100644
--- a/src/gallium/drivers/r600/r600_asm.c
+++ b/src/gallium/drivers/r600/r600_asm.c
@@ -927,7 +927,8 @@ static int replace_gpr_with_pv_ps(struct r600_bytecode *bc,
if (bc->chip_class < CAYMAN) {
if (alu->src[src].sel == gpr[4] &&
- alu->src[src].chan == chan[4]) {
+ alu->src[src].chan == chan[4] &&
+ alu_prev->pred_sel == alu->pred_sel) {
alu->src[src].sel = V_SQ_ALU_SRC_PS;
alu->src[src].chan = 0;
continue;
@@ -936,7 +937,8 @@ static int replace_gpr_with_pv_ps(struct r600_bytecode *bc,
for (j = 0; j < 4; ++j) {
if (alu->src[src].sel == gpr[j] &&
- alu->src[src].chan == j) {
+ alu->src[src].chan == j &&
+ alu_prev->pred_sel == alu->pred_sel) {
alu->src[src].sel = V_SQ_ALU_SRC_PV;
alu->src[src].chan = chan[j];
break;
More information about the mesa-commit
mailing list