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:
@@ -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;
|
||||
|
Reference in New Issue
Block a user