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> (cherry picked from commit1f5dccb760
)
This commit is contained in:
@@ -10300,7 +10300,7 @@
|
||||
"description": "r600/sfn: Don't scan the whole block for ready instructions",
|
||||
"nominated": true,
|
||||
"nomination_type": 1,
|
||||
"resolution": 0,
|
||||
"resolution": 1,
|
||||
"main_sha": null,
|
||||
"because_sha": "79ca456b4837b3bc21cf9ef3c03c505c4b4909f6"
|
||||
},
|
||||
|
@@ -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