diff --git a/src/gallium/drivers/r600/sfn/sfn_alu_readport_validation.cpp b/src/gallium/drivers/r600/sfn/sfn_alu_readport_validation.cpp index 6dbf7526f62..91d348971ae 100644 --- a/src/gallium/drivers/r600/sfn/sfn_alu_readport_validation.cpp +++ b/src/gallium/drivers/r600/sfn/sfn_alu_readport_validation.cpp @@ -163,6 +163,13 @@ AluReadportReservation::AluReadportReservation() bool AluReadportReservation::reserve_gpr(int sel, int chan, int cycle) { + for (int c = 0; c < 3; ++c) { + if (m_hw_gpr[c][chan] == sel) { + if (cycle == c) + return true; + } + } + if (m_hw_gpr[cycle][chan] == -1) { m_hw_gpr[cycle][chan] = sel; } else if (m_hw_gpr[cycle][chan] != sel) {