ChanServ changed the topic of #panfrost to: Panfrost - FLOSS Mali Midgard + Bifrost + Valhall - Logs https://oftc.irclog.whitequark.org/panfrost - I don't know anything about WSI. That's my story and I'm sticking to it.
atler is now known as Guest175
atler has joined #panfrost
Guest175 has quit [Ping timeout: 480 seconds]
<alyssa> q4a: Oh, errr... right...
<alyssa> Yes, there are limitations on access to { small constants and uniforms, combined } on Valhall
<alyssa> which va_repair_fau takes care of for you
rasterman has quit [Quit: Gettin' stinky!]
<alyssa> and errr indeed FMA_RSCALE.f32 hits that issue -- as va_repair_fau shows, you get no more than 64-bits of combined uniforms + small constants
jernej_ has joined #panfrost
<alyssa> so you can't actually do that FMA_rSCALE.f32 in under 2 instructions unless you already had one of the constants in a register :(
<alyssa> possibly we need to be clever and keep track of that limit (for non-message instructions) to avoid wasting a uniform (FAU slot) when we would need the extra move anyway..
<alyssa> maybe look at shaders/glmark/1-10.shader_test instead
<alyssa> that has some sequences that I'm pretty definitely sure can be optimized (and that your pass should handle)
<alyssa> e.g.
<alyssa> IADD_IMM.i32 r3, 0x0, #0x3A663A66
<alyssa> FMA.v2f16 r2, ^r3, r0.h11, ^r2.h00
<alyssa> it also has that tricky 64-bit texturing case which I suspect for now you should just bail on but yeah
<alyssa> (I convinced myself the right approach is probably for me to fix 64-bit sources in the IR and then whatever pass you write will probably maybe Just Work)
jernej has quit [Ping timeout: 480 seconds]
atler has quit [Ping timeout: 480 seconds]
atler has joined #panfrost
kinkinkijkin has quit [Ping timeout: 480 seconds]
karolherbst_ has joined #panfrost
karolherbst has quit [Ping timeout: 480 seconds]
davidlt has joined #panfrost
davidlt has quit [Ping timeout: 480 seconds]
camus has quit [Remote host closed the connection]
camus has joined #panfrost
camus has quit [Remote host closed the connection]
camus has joined #panfrost
karolherbst_ is now known as karolherbst
guillaume_g has joined #panfrost
davidlt has joined #panfrost
rasterman has joined #panfrost
digetx has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.]
digetx has joined #panfrost
karolherbst_ has joined #panfrost
karolherbst has quit [Ping timeout: 480 seconds]
karolherbst_ is now known as karolherbst
kinkinkijkin has joined #panfrost
floof58 is now known as Guest248
floof58 has joined #panfrost
Guest248 has quit [Ping timeout: 480 seconds]
digetx has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.]
digetx has joined #panfrost
guillaume_g has quit []
<q4a> alyssa: I pushed changes for check if fau_state_buffer_full: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20504
<q4a> But I did't fix pushing 32-bit constants to fau. It should be splited in 2 parts
<q4a> if I split it - i'll get 2 fau and should return it from va_resolve_constant somehow
<alyssa> q4a: if you run out of fau, you can fall back on a mov_imm
<alyssa> as the code does now
<q4a> So, I need to split 32-bit constant, right?
<alyssa> what do ubo's have to do with this
alyssa has quit [Quit: leaving]
<q4a> I messed up with ubo and fau.
<q4a> If I need to use 32-bit constant with fau, I need to store it in ubo, right?
<q4a> i.e. in info.push (type: struct panfrost_ubo_push)
floof58 is now known as Guest259
floof58 has joined #panfrost
Guest259 has quit [Ping timeout: 480 seconds]
davidlt has quit [Ping timeout: 480 seconds]
floof58 is now known as Guest262
floof58 has joined #panfrost
Guest262 has quit [Ping timeout: 480 seconds]
test has joined #panfrost
test has quit []
rasterman has quit [Quit: Gettin' stinky!]