mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-02-02 17:30:29 +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> (cherry picked from commitae049f6fea) Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38432>
This commit is contained in:
parent
42726a2afa
commit
b074ea9fe8
2 changed files with 3 additions and 2 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -1269,7 +1269,8 @@ BlockScheduler::collect_ready_alu_vec(std::list<AluInstr *>& 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);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue