mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-06 07:18:17 +02:00
aco: parallelcopy exec mask before s_wqm
It can be used later and we want any uses to not be fixed to exec, so it's definition can't be fixed to exec because of how exec masks interact with register demand calculation. Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Daniel Schürmann <daniel@schuermann.dev> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3257>
This commit is contained in:
parent
517fc3abc4
commit
c7d0514168
1 changed files with 7 additions and 0 deletions
|
|
@ -315,6 +315,13 @@ void transition_to_WQM(exec_ctx& ctx, Builder bld, unsigned idx)
|
|||
return;
|
||||
if (ctx.info[idx].exec.back().second & mask_type_global) {
|
||||
Temp exec_mask = ctx.info[idx].exec.back().first;
|
||||
/* TODO: we might generate better code if we pass the uncopied "exec_mask"
|
||||
* directly to the s_wqm (we still need to keep this parallelcopy for
|
||||
* potential later uses of exec_mask though). We currently can't do this
|
||||
* because of a RA bug. */
|
||||
exec_mask = bld.pseudo(aco_opcode::p_parallelcopy, bld.def(bld.lm), bld.exec(exec_mask));
|
||||
ctx.info[idx].exec.back().first = exec_mask;
|
||||
|
||||
exec_mask = bld.sop1(Builder::s_wqm, bld.def(bld.lm, exec), bld.def(s1, scc), exec_mask);
|
||||
ctx.info[idx].exec.emplace_back(exec_mask, mask_type_global | mask_type_wqm);
|
||||
return;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue