alyssa changed the topic of #panfrost to: Panfrost - FLOSS Mali Midgard & Bifrost - Logs https://freenode.irclog.whitequark.org/panfrost - <daniels> avoiding X is a huge feature
forkbomb has quit [Ping timeout: 252 seconds]
forkbomb has joined #panfrost
adjtm_ has quit [Remote host closed the connection]
adjtm_ has joined #panfrost
icecream95 has joined #panfrost
forkbomb has quit [Ping timeout: 250 seconds]
forkbomb has joined #panfrost
forkbomb has quit [Client Quit]
forkbomb has joined #panfrost
<icecream95> I have a labeled performance counter dump: https://gitlab.freedesktop.org/snippets/950
adjtm_ has quit [Remote host closed the connection]
adjtm_ has joined #panfrost
<icecream95> The scripts I used are at https://gitlab.freedesktop.org/icecream95/panfrost-perfcnt
adjtm_ has quit [Remote host closed the connection]
adjtm_ has joined #panfrost
adjtm_ has quit [Remote host closed the connection]
adjtm_ has joined #panfrost
stikonas has quit [Ping timeout: 246 seconds]
<alyssa> icecream95: nice!
<alyssa> "FRAG_PRIMATIVES" uhh
chewitt has joined #panfrost
<icecream95> alyssa: Are you going to submit a bug report? https://github.com/arm-software/gator
<alyssa> icecream95: ^_^
vstehle has quit [Ping timeout: 256 seconds]
<alyssa> cwabbott: Turns out (later?) Bifrost has two modes, either registers [R0, R63] or [R0, R15] u [R48, R63]
<alyssa> with a bit in the cmdstream to select.
<alyssa> So I guess they have a register sharing / threading mechanism again
<alyssa> even though g71 annoyuncement says not.. maybe was added back :p
<alyssa> tomeu: 0x200 in bifrost1.unk1 fwiw
<icecream95> Is FRAG_QUADS_LZS_KILLED supposed to be a lot higher than FRAG_QUADS_LZS_TEST?
chewitt has quit [Quit: Zzz..]
<alyssa> icecream95: that... seems questionable..
<alyssa> tomeu: we're missing a structure
<alyssa> there's nothing in the v12 cmdstream that links tiler output to the fragment pipeline
<alyssa> it *should* be where tiler_meta is by comparison with midgard
<alyssa> and indeed dumping that there's a tiny structure
<alyssa> u64 zero, u32 hierarchy mask, u16+ width, u16+ height, u64 zero, mali_ptr tiler_heap_meta
<alyssa> er that'd be bifrost_tiler_meta
<alyssa> maybe i'm spinning in the circles
<alyssa> ignore me
<HdkR> No ignore, people need to come together even more to be social while physically distancing :P
<alyssa> >:)
<alyssa> ...yeah I got nothing
<icecream95> It turns out the '4' in MP4 is not the number of memory management units...
<alyssa> icecream95: shader cores :)
mixfix411 has quit [Remote host closed the connection]
chewitt has joined #panfrost
davidlt has joined #panfrost
<alyssa> tomeu: bifrost blend descriptor is a big issue we forgot about
<alyssa> with a bunch of compiler fixes + hacking that descriptor in, we get... fruther
<alyssa> HdkR: tomeu: Houston, we have a triangle :-)
<alyssa> daniels: ^
<HdkR> Woo Eiffel tower!
<alyssa> course, it's not happy with my matrix multiply
<icecream95> I have updated the snippet with correct labels for the counter values
<alyssa> edit: not happy with the z/w divisions
chewitt has quit [Quit: Zzz..]
<alyssa> w division in hw, z for clipping.. seems reasonablish
<alyssa> though maybe diff from midgard?
kaspter has quit [Quit: kaspter]
vstehle has joined #panfrost
<alyssa> https://people.collabora.com/~alyssa/viewport.txt <-- viewport for bifrost
<alyssa> I think
<alyssa> I admit I don't understand what these scale_w are about
<alyssa> but it looks to be zero
<tomeu> alyssa: I was totally sure that, as I woke up, something will have been rendered :)
<alyssa> tomeu: you
<alyssa> 're reminding me I should be asleep :p
<tomeu> but first push :p
<alyssa> v12c
<tomeu> though well, I have enough to clean up from yesterday
<alyssa> tomeu: https://people.collabora.com/~alyssa/patch <_- kmscube hack
<tomeu> nice, feels like standing on more solid ground
<alyssa> hm?
<alyssa> anyway, night \o
<tomeu> alyssa: getting stuff on the screen seems like stronger validation just "no faults in dmesg"
<alyssa> ah, yes :)
<tomeu> alyssa: rest well!
<alyssa> thank you :)
buzzmarshall has quit [Remote host closed the connection]
Elpaulo has joined #panfrost
mias has joined #panfrost
<daniels> alyssa: woohoo! :D
chewitt has joined #panfrost
Elpaulo has quit [Read error: Connection reset by peer]
Elpaulo has joined #panfrost
<tomeu> alyssa: got to clean up 20 commits: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4505
<tomeu> this is the rebased v12c branch: https://gitlab.freedesktop.org/tomeu/mesa/-/commits/bifrost
<tomeu> got to see the draws, nice to see something else than clears on the screen :)
<narmstrong> guys, I also have the cube on the screen on a VIM3L (S905d3)
<narmstrong> with a g31
<HdkR> pics or it didn't happen
<HdkR> :P
<narmstrong> no panfrost errors
<tomeu> narmstrong: yeah, llvmpipe also works fine here :p
<tomeu> narmstrong: or is it a single triangle with the kmscube hack from above?
<narmstrong> nop https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4505 with your bifrost kernel branch and master kmscube
<narmstrong> but it's not the VIM3 with g52, but the g31 om VIM3L
<narmstrong> I need to retry on the VIM3 with the exact same SW
<narmstrong> yeah whatever hack
<narmstrong> I don't have the same instability issues I had the g52's VIM3
<HdkR> ooo hoo!
<tomeu> but, but, that shouldn't work yet
<narmstrong> lol
<tomeu> narmstrong: are you sure the blacklist isn't causing it to fall back to llvmpipe?
<narmstrong> let me check
<narmstrong> ahh, it is...
<narmstrong> :-(
<tomeu> narmstrong: this is the latest and greatest: https://gitlab.freedesktop.org/tomeu/mesa/-/commits/bifrost
<tomeu> I don't think we are that far from getting the cube rendered, but there's a *lot* of hacks that will need quite some time to figure out properly
<narmstrong> sure, sorry for the false hope.... it was the wrong mesa branch
<tomeu> narmstrong: the tomeu/bifrost branch should give you a polygon rendered, but only after hacking up the shaders like this: https://paste.debian.net/1139474/
<HdkR> dang
<narmstrong> ok now I have a greay screen with no panfrost kernel errors
<tomeu> ok, now if you have kmscube, you should get some colors on the vim3l
<narmstrong> no colors, only fullscreen grey
<tomeu> I also got something rendered on the odroid-n2, but may have needed some manual tweaking of some constants in the cmdstream
<narmstrong> yes now I have a giant cube
<narmstrong> with colors
<HdkR> Whoa! It's the biggest cube!
<narmstrong> anyway awesome work tomeu and alyssa
raster has joined #panfrost
stikonas has joined #panfrost
kaspter has joined #panfrost
<daniels> :D
kaspter has quit [Read error: Connection reset by peer]
camus1 has joined #panfrost
camus1 is now known as kaspter
icecream95 has quit [Ping timeout: 265 seconds]
camus1 has joined #panfrost
kaspter has quit [Ping timeout: 264 seconds]
camus1 is now known as kaspter
<tomeu> most of the work is alyssa's, like always :)
<narmstrong> i feel useless and stupid when I see her work :-o
vstehle has quit [Ping timeout: 256 seconds]
vstehle has joined #panfrost
Yardanico has left #panfrost ["https://quassel-irc.org - Chat comfortably. Anywhere."]
<tomeu> you're not alone!
buzzmarshall has joined #panfrost
raster has quit [Quit: Gettin' stinky!]
clementp[m] has quit [Ping timeout: 246 seconds]
clementp[m] has joined #panfrost
davidlt_ has joined #panfrost
davidlt has quit [Ping timeout: 265 seconds]
nerdboy has joined #panfrost
nerdboy has quit [Ping timeout: 250 seconds]
* alyssa blushes
rcf has quit [Ping timeout: 256 seconds]
nerdboy has joined #panfrost
rcf has joined #panfrost
unoccupied has quit [Quit: WeeChat 2.5]
nerdboy has quit [Ping timeout: 250 seconds]
steev has quit [*.net *.split]
Stenzek has quit [*.net *.split]
Stenzek has joined #panfrost
steev has joined #panfrost
steev has quit [Ping timeout: 240 seconds]
mixfix411 has joined #panfrost
steev has joined #panfrost
raster has joined #panfrost
steev has quit [Ping timeout: 246 seconds]
steev has joined #panfrost
stikonas has quit [Read error: Connection reset by peer]
stikonas_ has joined #panfrost
<alyssa> found the issue
<alyssa> rgb32f attribute_0
<alyssa> reads back with w=0
<alyssa> when it should be w=1
<alyssa> midgard ahs swizzles, later bifrost dropped them for these records... let's find out how to get them back..
<alyssa> er, looks like driverside fixup?
<alyssa> Oh, or not
<alyssa> no, we still have it it's just
<alyssa> swizzle is totally wild
<alyssa> okay
cwabbott_ has joined #panfrost
cwabbott has quit [Ping timeout: 265 seconds]
cwabbott_ is now known as cwabbott
<alyssa> Okay, there we go
<alyssa> tomeu: more code to cleanup, sorry-not-sorry ;P
davidlt_ has quit [Ping timeout: 256 seconds]
<alyssa> next bug is why only one draw is going through..
stikonas_ has quit [Read error: Connection reset by peer]
stikonas has joined #panfrost
unoccupied has joined #panfrost
<alyssa> best friends until the end of tiiime
<alyssa> fixed a dependency issue but still only one draw..
unoccupied has quit [Quit: WeeChat 2.5]
mixfix411 has left #panfrost [#panfrost]
<alyssa> Looks like vertex shaders aren't running..
<alyssa> hrm
<alyssa> Hmm
<alyssa> Okay, it's definitely executing *something* in the vs
<alyssa> since I can trigger a fault
<alyssa> Random magic bit. Okay, fine.
<alyssa> tomeu: daniels: kmscube (unmodified) works now :-)
<alyssa> (with extremely hacky panfrost)
<alyssa> next up, glmark
<alyssa> (no textures yet, though)
<alyssa> which makes it strictly toy, but you know :-)
<HdkR> textures are overrated anyway
<HdkR> Just use single pixel polygons :P
<urjaman> ... unrelated but iirc (i watched an yt video) that's what pretty much what PS1 crash bandicoot did for crash (the character...)
<urjaman> i fail words
<alyssa> lol
<alyssa> Okay, glmark built
<alyssa> -bbuild works
<alyssa> -bshading (Gouraud shading - default) works since it's just -bbuild
<alyssa> Phong and cel shading requires new ALU ops to be implemented
<daniels> !!
<alyssa> -bpulsar works but that's not doing anything interesting
<alyssa> -bbuffer missing opcode (exponentionals)
<alyssa> daniels: oh hi :p
<alyssa> -bbump same
<alyssa> -bfunction is faulting
<alyssa> Alright.
<alyssa> (the rest obviously doesn't work because of no texture support yet.)
<alyssa> So looks like next up will be implementing exponentials and logarithms in the compiler (which is... tricky)
<alyssa> tomeu: ^ next for me, I mean compiler side. I'd appreciate if you could continue upstreaming work, and then implementing cmdstream side of textures/samplers (when you move on to the latter, I can add support for tex in the compiler)
<alyssa> Also, performance is alarmingly bad. Not that I was expecting G31 with all scheduling disabled to be a speed demon, but..
<alyssa> wonder if the tiler is screwed up
<alyssa> If I skip tiling + fragment and just do vertex jobs, it's hitting 60fps vsync. So it's not the shaders.
<alyssa> but it's very much proportional to geometry complexity. so this is what we saw with the hierarchy masks on midg
<alyssa> unfortunately, g31 and g52 tilers differ, and I don't have traces of g31
<daniels> alyssa: that's super fun!
raster has quit [Quit: Gettin' stinky!]
<alyssa> \o/
<alyssa> Time to look into exponentials then.
<alyssa> midgard made this easy
icecream95 has joined #panfrost
<alyssa> Actually, G52 exp(..) looks okay, let's start here
<alyssa> New ops though.
<alyssa> If I'm reading this right..
<alyssa> exp(x) = opcd58(op7930(E_24(K * x), x))
<alyssa> where K = 1.442695
<alyssa> so K = math.log2(math.e)
<alyssa> Okay, sure,
<alyssa> $$\exp(x) = e^x = 2^\{ \log_2(e^x) \} = 2^ \{ x \log_2(e) \}
<alyssa> $$
<alyssa> so multiply by log2(e) and then do 2^x instead
<alyssa> so let's try 2^x instead