r600/sfn: Don't schedule GDS instructions early
Atomic GDS instructions like inc, dec, or read will increase the register pressure, therefore we shouldn't prioritize scheduling them. Related: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6975 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 commit79eabb8130
)
This commit is contained in:
@@ -10309,7 +10309,7 @@
|
|||||||
"description": "r600/sfn: Don't schedule GDS instructions early",
|
"description": "r600/sfn: Don't schedule GDS instructions early",
|
||||||
"nominated": true,
|
"nominated": true,
|
||||||
"nomination_type": 1,
|
"nomination_type": 1,
|
||||||
"resolution": 0,
|
"resolution": 1,
|
||||||
"main_sha": null,
|
"main_sha": null,
|
||||||
"because_sha": "79ca456b4837b3bc21cf9ef3c03c505c4b4909f6"
|
"because_sha": "79ca456b4837b3bc21cf9ef3c03c505c4b4909f6"
|
||||||
},
|
},
|
||||||
|
@@ -333,8 +333,6 @@ void BlockSheduler::schedule_block(Block& in_block, Shader::ShaderBlocks& out_bl
|
|||||||
current_shed = sched_mem_ring;
|
current_shed = sched_mem_ring;
|
||||||
else if (rat_instr_ready.size() > 3)
|
else if (rat_instr_ready.size() > 3)
|
||||||
current_shed = sched_rat;
|
current_shed = sched_rat;
|
||||||
else if (gds_ready.size() > 3)
|
|
||||||
current_shed = sched_gds;
|
|
||||||
else if (tex_ready.size() > 3)
|
else if (tex_ready.size() > 3)
|
||||||
current_shed = sched_tex;
|
current_shed = sched_tex;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user