ChanServ changed the topic of #zink to: official development channel for the mesa3d zink driver || https://docs.mesa3d.org/drivers/zink.html
xroumegue has quit [Ping timeout: 480 seconds]
xroumegue has joined #zink
kusma has quit [Quit: Reconnecting]
kusma has joined #zink
kusma has quit []
kusma has joined #zink
<zmike> anholt: this shared mem vectorization is excruciating :/
<anholt> who's causing the scalarizing?
<zmike> the scalarizing is intentional to handle bitsize conversions
<zmike> and because of how the spirv is emitted
<zmike> the problem is that shared mem ops come through as lowered io already, which means it's just byte offsets
<zmike> which translates naturally to an array type
<zmike> converting it back to a vector (which is what nir_opt_combine_stores requires) is going to end up being gross
<zmike> I wonder if I can do something stupider here...
<zmike> probably not :/
<anholt> so, seems like one option would be non-lowered shared mem, and then you get to pass the variable decls through?
<zmike> that's possible, but my experience trying to hack non-lowered io through gallium has been traumatic to say the least
<anholt> maybe it'll be easier to just get nir_opt_load_store_vectorize on shared into the underlying drivers.
<zmike> I'd think it would be massively easier if that's an option
<daniels> anholt: yeah, the others prob have the trauma less paged out than me, but what zmike said rings painfully true from d3d12
<anholt> one would hope that shared would be easy since it has basically no api exposure
<anholt> but you also don't see me jumping on it.
<daniels> there’s no architectural reason it shouldn’t work, just assumptions and bugs in literally every single pass that usually gets called after lower_io, which is more than a couple
<daniels> (tbf at that point we had no CI and couldn’t yet work publicly, so swimming against the tide was even more contraindicated than usual)
<zmike> yeah I got moderately deep into it at one point and then had to talk myself off a very high ledge and promise to never try again
<daniels> Ab
<daniels> maybe next XDC we should have an open ‘beartraps I lost several ankles too’ forum and encode the results in doc somewhere
<zmike> #leadership
<zmike> hooking up shared stores to nir_opt_load_store_vectorize might be a jekstrand or pendingchaos opportunity since they've both worked on the pass more than most