mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-20 11:40:10 +01:00
r600: limit pre-evergreen predicate ready size
With the current stack configuration the rv770 seems to be unable
to go beyond three with the "vs-output-array-float-index-wr-before-gs.shader_test"
test. Anyway, the value four seems to be sufficient for the other tests.
This issue was triggered on rv770, for instance, with:
"piglit/bin/shader_runner tests/spec/glsl-1.50/execution/variable-indexing/gs-output-array-float-index-wr.shader_test -auto -fbo"
"piglit/bin/shader_runner tests/spec/glsl-1.50/execution/variable-indexing/vs-output-array-float-index-wr-before-gs.shader_test -auto -fbo"
Fixes: 713edb5998 ("r600/sfn: handle the IF predicate in the scheduler")
Signed-off-by: Patrick Lerda <patrick9876@free.fr>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38213>
This commit is contained in:
parent
92a4ae0ab2
commit
ae049f6fea
1 changed files with 2 additions and 1 deletions
|
|
@ -1269,7 +1269,8 @@ BlockScheduler::collect_ready_alu_vec(std::list<AluInstr *>& ready,
|
||||||
++i;
|
++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()) {
|
(*predicate)->ready()) {
|
||||||
assert((*predicate)->alu_slots() == 1);
|
assert((*predicate)->alu_slots() == 1);
|
||||||
ready.push_back(*predicate);
|
ready.push_back(*predicate);
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue