ChanServ changed the topic of #panfrost to: Panfrost - FLOSS Mali Midgard & Bifrost - Logs https://oftc.irclog.whitequark.org/panfrost - <macc24> i have been here before it was popular
vstehle has quit [Ping timeout: 480 seconds]
megi2 has joined #panfrost
megi1 has quit [Ping timeout: 480 seconds]
nlhowell has quit [Ping timeout: 480 seconds]
nlhowell has joined #panfrost
karolherbst has quit [Read error: Connection reset by peer]
karolherbst has joined #panfrost
vstehle has joined #panfrost
JulianGro has joined #panfrost
karolherbst has quit [Read error: Connection reset by peer]
karolherbst_ has joined #panfrost
chewitt has quit [Ping timeout: 480 seconds]
chewitt has joined #panfrost
alpernebbi has quit [Ping timeout: 480 seconds]
alpernebbi has joined #panfrost
tlwoerner has quit [Ping timeout: 480 seconds]
tlwoerner has joined #panfrost
warpme___ has joined #panfrost
chewitt has quit [Remote host closed the connection]
anarsoul has quit [Read error: Connection reset by peer]
anarsoul has joined #panfrost
MajorBiscuit has joined #panfrost
MajorBiscuit has quit []
Daanct12 has joined #panfrost
Danct12 has quit [Ping timeout: 480 seconds]
Danct12 has joined #panfrost
Daanct12 has quit [Ping timeout: 480 seconds]
Daanct12 has joined #panfrost
Danct12 has quit [Ping timeout: 480 seconds]
warpme___ has quit []
Daaanct12 has joined #panfrost
chewitt has joined #panfrost
Daanct12 has quit [Read error: Connection reset by peer]
Daanct12 has joined #panfrost
Daaanct12 has quit [Ping timeout: 480 seconds]
<alyssa> sudo ping -I eth0 ff02::1 -c 2 -i 1 2>&1 | grep '64 bytes from' | head -n 2 | tail -n 1 | grep -o 'fe80::.*%eth0'
<alyssa> there's probably a not horrible way to do that right
chewitt has quit [Read error: Connection reset by peer]
vstehle has quit [Quit: WeeChat 3.3]
vstehle has joined #panfrost
nlhowell has quit [Remote host closed the connection]
nlhowell has joined #panfrost
nlhowell has quit [Quit: WeeChat 3.1]
nlhowell has joined #panfrost
<alyssa> vec2 16 ssa_111 = b32csel ssa_20.xx, ssa_21, ssa_22
<alyssa> ...I don't like this.
<alyssa> Fact: The first source of b32csel is 32-bit
<alyssa> We only hand 32-bit scalars
<alyssa> Therefore ssa_20 should be a scalar, else lower_alu_to_scalar would have lowered this
<alyssa> So the swizzle should always be replicated .x
<alyssa> ...I think
<alyssa> dschuermann: ^^ might be relevant to you as well
<alyssa> I guess worst case the scalar/vector filter needs a special case for b*csel
<alyssa> (bifrost's)
<alyssa> swizzle need not always replicate
<alyssa> but it's easy to handle
<alyssa> (in the backend, without scalarizing)
<dschuermann> alyssa: with the cb it should be easy to implement: just do a manual check on the operand
<dschuermann> and return 1 (meaning it should be lowered to vec1) in case of two different components
<alyssa> dschuermann: nod
<alyssa> as it turns out, I can just handle that in the backend as, like
<alyssa> b32csel(vec2_16(cond.x, cond.y), .., ..)
<alyssa> with a 16-bit vec2 csel, i.e.
<alyssa> MKVEC.v2i16 temp, cond.x, cond.y
<alyssa> MUX.v2i16 .., temp
<dschuermann> err... maybe the NIR opcode could be adjusted?
<alyssa> this is better than scalarizing since MKVEC (mov/vec2) is easier to schedule than MUX (bcsel)
<alyssa> dschuermann: I guess? I guess the algebraic pattern would be
<alyssa> ('b32csel@16', c, a, b) -> ('b16csel', ('b2b16', c), a, b))
<dschuermann> I mean the b32csel is already a lowered opcode. just go directly to b16csel for 16bit
<alyssa> not quite .. in these cases the boolean is 32-bit, not 16-bit
<alyssa> a 32-bit boolean selecting between 16-bit sources
<dschuermann> but where do these come from? glsl doesn't have 32bit bools
<alyssa> nir_lower_bool_to_bitsize
<alyssa> I guess the GLSL would be something like
<alyssa> highp data
<alyssa> bool cond = comparison involving data;
<dschuermann> well... there I would look at. your pattern might work as well
<alyssa> lowp res = cond ? lowp_src_1 : lowp_src_2
<alyssa> The comparison wants to be outputting a 32-bit bool, res wants to be inputting a 16-bit bool, something's got to give
<alyssa> but there's a trick for the special case where cond is scalar but res is vec2
<dschuermann> guess it's just the question where you add the conversion
<alyssa> Yeah
<alyssa> It's easy enough to do in the backend and that lets me play games with that special case
<alyssa> don't really feel like translating back to NIR unless another GPU wants it
<alyssa> ..Why did my boolean rework series just uncover a scheduler bug...
<alyssa> I mean. It's a real scheduler bug so I guess it's good I found it. Um.
<alyssa> Pass: 16474, Fail: 1298, Crash: 79, Warn: 44, Skip: 4178, Flake: 6, Duration: 7:43, Remaining: 0
<alyssa> Piglit :V
<alyssa> I guess 92% pass rate is still an A :-p
<alyssa> 2022-01-15T20:48:47.948325 KHR-GLES31.core.compute_shader.pipeline-post-fs,Crash
<alyssa> with the boolean opts,grumble
nlhowell is now known as Guest652
nlhowell has joined #panfrost
alyssa has quit [Quit: leaving]
Guest652 has quit [Ping timeout: 480 seconds]
atler is now known as Guest654
atler has joined #panfrost
Guest654 has quit [Ping timeout: 480 seconds]
bbrezillon has quit [Read error: Connection reset by peer]
bbrezillon has joined #panfrost
Guest10145 has quit [Read error: Connection reset by peer]