diff --git a/.pick_status.json b/.pick_status.json index bb53b4b4b86..30f1b4d063a 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -1504,7 +1504,7 @@ "description": "r600: limit pre-evergreen predicate ready size", "nominated": true, "nomination_type": 2, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "713edb59982cb89e7a7c26eb14b5ab5b1081bb39", "notes": null diff --git a/src/gallium/drivers/r600/sfn/sfn_scheduler.cpp b/src/gallium/drivers/r600/sfn/sfn_scheduler.cpp index 74804aac3ef..88c146e7849 100644 --- a/src/gallium/drivers/r600/sfn/sfn_scheduler.cpp +++ b/src/gallium/drivers/r600/sfn/sfn_scheduler.cpp @@ -1269,7 +1269,8 @@ BlockScheduler::collect_ready_alu_vec(std::list& ready, ++i; } - if (predicate && *predicate && available.empty() && ready.size() < 16 && + if (predicate && *predicate && available.empty() && + ready.size() < (m_chip_class >= ISA_CC_EVERGREEN ? 16 : 3) && (*predicate)->ready()) { assert((*predicate)->alu_slots() == 1); ready.push_back(*predicate);