jrmuizel has quit [Remote host closed the connection]
dddddd has quit [Remote host closed the connection]
chewitt has quit [Quit: Adios!]
_whitelogger has joined #lima
<bshah>
Hi there, so I am trying lima git master with the patches from : https://gitlab.freedesktop.org/icenowy/mesa/commits/lima-icenowy-exp and while git master as-is works, with this 3 patches applied, the plasmashell hangs, and while it is doing that if LIMA_DEBUG=all is enabled, it constantly spams :https://invent.kde.org/snippets/347 and at one point just OOMs
<bshah>
cwabbott: MoeIcenowy mentioned that it is worth sending you this log ^^
<bshah>
Reason I was trying that branch is, I was having "gpir: if nir_cf_node not support" errors, and it was suggested that flattening ifs by hacks in teh branch could help.. https://bshah.in/lima-log-virtual-keyboard.txt is log with LIMA_DEBUG=gpir for that failure.
<anarsoul>
enunes: so far I like your improvement to make scheduler pipeline reg aware
<enunes>
anarsoul: cool, I am just doing a last round of tests before pushing the tex projection patch again... then after that I can take the scheduler patch out of WIP
<anarsoul>
cool
<anarsoul>
I reworked const lowering and looks like there's no obvious regressions atm
<anarsoul>
I'd say const lowering and scheduling is now a lot simpler
<enunes>
anarsoul: the only think I still wonder is about also duplicating the load uniforms like we did before
<enunes>
it could still be done in lowering
<enunes>
maybe it is better to keep duplicating them
<anarsoul>
you mean varyings?
<anarsoul>
why do we need to duplicate uniforms?
<enunes>
not duplicate uniforms, just the load uniforms
<anarsoul>
yet, as long as it's loaded into reg it should be fine?
<enunes>
because usually they are used in many places, not duplicating them force a register to be kept for them and causes a lot of spilling
<anarsoul>
I guess we can check whether it has a single successor and use pipeline reg in this case, otherwise just load it into a regular reg?
<enunes>
it's more about not increasing register pressure and avoiding spilling
<anarsoul>
enunes: yet loading uniform is memory access and it's probably slower than using a reg
<enunes>
yes, but spilling is probably worse
<anarsoul>
let's keep it simple and get it functional complete first
<anarsoul>
and then add optimizations
<enunes>
yeah I mean, the duplicating would also be to insert a full load->mov instruction for each, not really an optimization
<enunes>
it's that with my change, basically each uniform basically takes a way a register
<anarsoul>
I'm not sure if it'll require walking successors/predecessors lists
<anarsoul>
I'm trying to get away from it atm
<enunes>
ok, we can also consider that
<enunes>
if it makes your work easier and we can rethink that later
<enunes>
I'll still try to get some data, I expect to see thousands of additional spills in a piglit run
<anarsoul>
enunes: idea is to build successors/predecessors lists after lowering is done and no additional nodes will be created
<anarsoul>
so technically all you've got in lowering is list of ppir_node in block and each ppir_src has a pointer to corresponding ppir_node (registers are exception here)
<anarsoul>
it's still possible to walk the tree upwards
<enunes>
how do we handle the registers (non-ssa)?
<anarsoul>
enunes: we'll add additional dependencies for read after write