r600/sfn: Don't scan the whole block for ready instructions

Limit the number of tested instructions and the number of
ready instructions that might be taken into account.

This reduces the time needed to run the scheduler significantly.

Fixes: 79ca456b48
   r600/sfn: rewrite NIR backend

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Filip Gawin <filip@gawin.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18212>
This commit is contained in:
Gert Wollny
2022-08-23 15:35:06 +02:00
committed by Marge Bot
parent 79eabb8130
commit 1f5dccb760

View File

@@ -913,7 +913,8 @@ bool BlockSheduler::collect_ready_type(std::list<T *>& ready, std::list<T *>& av
auto i = available.begin();
auto e = available.end();
while (i != e) {
int lookahead = 16;
while (i != e && ready.size() < 16 && lookahead-- > 0) {
if ((*i)->ready()) {
ready.push_back(*i);
auto old_i = i;