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
<alyssa> icecream95: I just used the network manager gui and it worked :o
<macc24> alyssa: ok il rebuild
<macc24> alyssa: btw icecream uses void linux
<macc24> oh and sway works now
<macc24> alyssa: dmenu colors are good \o/
<macc24> and supertuxkart works \o/
<macc24> particles still missing tho
<alyssa> :)
<macc24> poke me when you update merge request with newest commits so i can put tested-by there
<alyssa> fighting unreliable wifi
<macc24> haha i feel that
<macc24> realtek?
<alyssa> meh
<HdkR> All wifi is unreliable
<macc24> after switching from wifi to ethernet cord my internet speed went up 40 times
<alyssa> this is worse
<alyssa> time=3034 ms
<macc24> i had like 4mbps on wifi
<HdkR> That's some pretty nice latency
<alyssa> connection dropping
<alyssa> i just
<macc24> rip
<alyssa> i am just trying to do a damn apt update
<urjaman> wifi reminds me to mention, not that anyone here cares of such cards here :P, but the C201 broadcom wifi is no longer a horrible laggy experience to ssh into in 5.10
<urjaman> just something i noticed after the update
<macc24> urjaman: they fixed it? :o
<macc24> nice
rando25892 has quit [Ping timeout: 264 seconds]
raster has quit [Quit: Gettin' stinky!]
<icecream95> I somestimes get >1s latency across the LAN even without unreliable wifi...
<alyssa> Oof.
<HdkR> icecream95: Network switch buffer bloat?
<HdkR> and switches without full throughput support?
<macc24> HdkR: on my switch with no fancy features(it's a openwrt router) i have no issues
<HdkR> A lot of consumer grade switches are pretty bad :P
<macc24> old and consumer grade is even worse hehe
<macc24> i still have 100base-t switch for low-badwidth compud
<macc24> bandwidth*
<icecream95> old and consumer grade and from a terrible ISP is even worse
<macc24> icecream95: it is not from isp
<macc24> it's netgear with bcm53115skfbg
<HdkR> icecream95: Yeet all ISP provided garbage
<HdkR> I'm still annoyed that I couldn't remove the NPON->RJ45 converter from the ISP, but it seems fine
<macc24> HdkR: npon?
<HdkR> fiber line
<macc24> ,_,
<HdkR> er sorry, GPON
<icecream95> macc24: Is the top left corner of the touchscreen ever unreliable for you?
<macc24> icecream95: i don't use touchscreen that often tbh
<macc24> how much top left?
kaspter has joined #panfrost
<macc24> icecream95: good for me
* icecream95 installs kruler
<macc24> wev
<macc24> make it floating and move to top left
<macc24> that's how i tested it
stikonas has quit [Remote host closed the connection]
vstehle has quit [Ping timeout: 264 seconds]
rando25892 has joined #panfrost
kaspter has quit [Ping timeout: 264 seconds]
kaspter has joined #panfrost
<icecream95> It seems to actually be an L shape instead of just a rectangle
<icecream95> libinput debug-gui shows random jittering of the touch points
<macc24> icecream95: nothing like that on my machine
<icecream95> macc24: It doesn't happen all of the time, only occasionally
<macc24> icecream95: can you make a video?
<icecream95> macc24: https://0x0.st/-sUg.mp4
<macc24> icecream95: can you try on latest cadmium kernel?
<macc24> i have nothing like that on my unit
icecream95 has quit [Read error: Connection reset by peer]
icecream95 has joined #panfrost
icecream95 has quit [Client Quit]
icecream95 has joined #panfrost
kaspter has quit [Ping timeout: 264 seconds]
kaspter has joined #panfrost
davidlt has joined #panfrost
icecream95 has quit [Read error: Connection reset by peer]
icecream95 has joined #panfrost
kaspter has quit [Ping timeout: 240 seconds]
kaspter has joined #panfrost
agrisis has quit [Ping timeout: 272 seconds]
nlhowell has quit [Ping timeout: 246 seconds]
vstehle has joined #panfrost
warpme_ has joined #panfrost
<pmjdebruijn> thecycoone1: I am already using the latest dosbox-staging
kaspter has quit [Ping timeout: 272 seconds]
kaspter has joined #panfrost
leah has quit [Quit: WeeChat 2.8]
unoccupied has joined #panfrost
unoccupied is now known as leah
chewitt_ has joined #panfrost
chewitt has quit [Ping timeout: 272 seconds]
kaspter has quit [Ping timeout: 256 seconds]
kaspter has joined #panfrost
stikonas has joined #panfrost
icecream95 has quit [Ping timeout: 256 seconds]
raster has joined #panfrost
chewitt_ has quit [Ping timeout: 272 seconds]
chewitt has joined #panfrost
<br_> macc24: I have 100/50 as well
q4a has quit [Remote host closed the connection]
<br_> seem depends on the level, i.e. amount of objects around the motorcyclist
nlhowell has joined #panfrost
<nlhowell> br_: yup, they're ok
<nlhowell> (rinet)
<br_> nlhowell: I think their CTO is a FreeBSD committer
<nlhowell> oh cool
nlhowell has quit [Remote host closed the connection]
nlhowell has joined #panfrost
<macc24> finally, my usbc breakout boards arrived
agrisis has joined #panfrost
<bbrezillon> alyssa: quick update (and a bunch of questions) on the blend shader save/restore regs stuff (AKA MRT)
<bbrezillon> I tried implementing caller-based save/restore but it's kind of ugly for several reasons:
<bbrezillon> 1/ We have to use the caller stack, and thus need to be passed the offset where we should start saving the regs (that means passing an extra arg, and add ADD ops to the blend shader to calculate the store/load offset)
<bbrezillon> 2/ We don't know the registers used by the caller which forces us to save/restore all regs in the r4-r15 range that are used by the blend shader
<bbrezillon> 3/ We force the save/restore even for terminal blend calls
<bbrezillon> The callee-based solution seems simpler to implement: I just need a pass spilling any of the r4-r15 regs that are live before a non-terminal BLEND and restore those after the BLEND.
<bbrezillon> That'd be even better if I could let the RA know it should avoid putting live data in r4-r15 before a non-terminal BLEND instruction, but that's way beyond my skills :slightly_smiling_face:
<bbrezillon> any opinion/suggestion/comment?
<bbrezillon> alyssa: just pushed the bifrost-mrt branch
<macc24> bbrezillon: gl3?
<macc24> :o
<alyssa> bbrezillon: So, a few thoughts:
<alyssa> 1. I agree that having to offset everything in the blend shader is really ugly. It does come up with the blob if *both* the fragment and blend shaders actually spill. But even then there's instruction keying and it's just a mess and... yeah, best avoid...
<alyssa> 2. That'll be a perf issue no doubt. Of course, that would apply in the other direction if we aren't careful about reg alloc.
<alyssa> 3. Agreee that's bad.
<alyssa> 4. We can definitely teach RA some tricks :)
<bbrezillon> hehe, that's where I need your help :)
<alyssa> Right, so you can model that as interference.
<bbrezillon> (see the ugly hack I came up with :P)
<alyssa> eyes
<alyssa> bbrezillon: Conceptually, RA's goal is to avoid interference, when two nodes are simultaneously live that means they can't overlap in the register file.
<alyssa> Meanwhile you want the constraint "don't put anything live in r4-r15"
<alyssa> But step back and ask why? It's because there's interference between those and some other node in the other shader.
<alyssa> So... modeling that as actual interference in the frag shader isn't even a hack.
<alyssa> Add some "pseudo nodes" for the purpose of RA that don't actually exist in the shader that are precoloured (l->solutions[_] = _) to r4-r15 and make them interfere with everything live where the blend could execute.
<alyssa> It seems like a hack, but if you think about it, it really isn't :)
<bbrezillon> the problem is, there's no node represening r4-r15, when an u16 is not wide enough to represent the r0-r15 range
<alyssa> Right, add multiple of them then
<alyssa> 3 nodes for r4-r7, r8-r11, r12-r15, have them all interfere with what you don't want alloc'd there
<alyssa> I think that should work but I haven't thought this through yet.
<alyssa> bbrezillon: bi_{src,dest}_num_regs -- thank you for adding these, long term I'd like to do away with the random masks everywhere and just use those I think :)
<alyssa> "pan/bi: Update block iterator helpers to manipulate bi_block" D'oh! thanks :)
<bbrezillon> alyssa: you might also want to merge "pan/bi: Only copy the components we need when emitting blend ops" into "pan/bi: Workaround BLEND precolour with explicit moves"
<bbrezillon> it saves a few moves
<alyssa> bbrezillon: I merge whatever shows up as an MR in my inbox ;)
<alyssa> bbrezillon: See midgard_ra.c L408 for a similar hack being done with r1
<bbrezillon> no, I meant squash the content of this patch into your original patch, since it's not been merged already
<alyssa> which original patch?
<bbrezillon> pan/bi: Workaround BLEND precolour with explicit moves
<alyssa> That was just for your MRT branch, I don't intend to submit it until you do :)
<alyssa> I'm maintaining the scheduelr and vec2 branches, the other stuff is just support etc :)
<bbrezillon> ack
<alyssa> (aka squash/rewrite/burn that patch if you want, i won't be offended :p)
<raster> alyssa: what is this with your M1 gpu funtimes? :)
<raster> isn't it a bit soon.. we don't even have a frembuffer... hell not even a booting kernel :)
<alyssa> raster: I'm allowed to have hobbies and expensive toys! :p
<raster> hehehe
<raster> i know. i'm taking the opportunity to poke some fun :)
<alyssa> raster: As for no linux yet, challenge accepted https://twitter.com/marcan42/status/1347242256512602113
<raster> at this rate you'll know how the GPU works long before linux can even boot... :)
<raster> hehe i know. i joined #asahi today ... :)
<alyssa> Too noisy for me, #-gpu is where the cool kids are ;P
<raster> keeping up with "stuff" :)
<raster> well i noticed ... booting will be the first challenge so... focusing on that
<raster> interesting read on the boot process. seemingly so ,much cleaner than many places...
<raster> i like it
<raster> well as much as i can like any boot processes today...
<alyssa> depthcharge is pretty slim itself
* raster misses the days when your rom loaded the first 512bytes from your floppy and started running it. that was it. your problem now
<macc24> alyssa: i wouldn't call it slim
<alyssa> macc24: not by iBoot standard i suppose
<macc24> for me slim is just linux payload in coreboot
<raster> alyssa: i never looked at the IMG GPUs... this is a custom apply gpu - not based in part on IMG right?
<raster> or it seems it might be...
<raster> (custom)
<alyssa> raster: 🤷
<raster> because as you describe it... it's almost... sane.
<alyssa> yeah, I haven't seen anything scary yet
<macc24> raster: sane or not, i will never buy m1 laptop
<alyssa> and not that I don't love Mali GPUs but uh
<raster> macc24: one will be turning up here anyway... if i like it or not :)
<raster> alyssa: :) :P
<macc24> raster: for me it makes no sense to give more money to company that is hostile towards linux
<raster> macc24: i have no choice in that... :)
<raster> but i am curious what this gpu of apple's is. what is smells like.
<pmjdebruijn> raster: you mean, whether it's truely a new design, or something rebadged/pimped?
<raster> yeah
<raster> i'm curious
<raster> did they buy IP from imgtec "outright" with some big pay-off so they can piggy-back on it then extend?
<raster> or do their own entirely?
<raster> or buy something else i don't know of?
<pmjdebruijn> imgtec?
<pmjdebruijn> oh the PowerVR peeps
<raster> yeah
<raster> they used to license imgtec gpu's
<raster> news was a little while back that they dropped imgtec
<pmjdebruijn> yeah I know, the abbreviation wasn't familiar to me
<raster> so either they paid them off with a big fat blob of $ to "fork" the gpu
<pmjdebruijn> that must have hurt, losing their biggest customer (I presume)
<raster> or they were doing their own in the background and once it managed to equal the img part.. they dropped them. i don't know.
<pmjdebruijn> over the years though Apple has amassed quite a bit of silicon expertise, so it's not unthinkable they really rolled their own
<raster> if its img based.. it means we might eb able to re-use some other sw stacks/drivers to gain insight as imgtec did ship binary blobs for linux at times - certainly on android.
<raster> if it's not ... then different ballgame
<raster> but right now - i'm simply curious.
<raster> unrelated to panfrost tho so definitely OT for here other than alyssa being involved :)
<alyssa> ^^ panfrost-offtopic exists :p
<macc24> ##panfrost-offtopic :D
q4a has joined #panfrost
nlhowell has quit [Ping timeout: 246 seconds]
<alyssa> sure
kaspter has quit [Quit: kaspter]
<raster> :)
<raster> i'm done OTing anyway
kaspter has joined #panfrost
<alyssa> Updated with the various bugfixes from yesterday
<macc24> \o/ i will test it and give it a tested-by
<alyssa> thank you!
<macc24> no, thank you
<alyssa> what's your name on gitlab btw
<alyssa> ack
<macc24> yes i have to have different names everywhere
<macc24> i gave you a tested-by on 8310 too
<alyssa> yeah, I remembered but couldn't remember which mr
<macc24> alyssa: there is a non-zero chance of me appearing on a merge request touching bifrost code
<alyssa> :)
<macc24> alyssa: there ya go
yann has quit [Ping timeout: 264 seconds]
<raster> macc24: for someone who won't buy a mac.. your name is .. interesting :)
<macc24> raster: i liked minecraft when i came up with that name maciej + minecraft = maccraft and i didn't think of anything better xD
<raster> yeah - i noticed
<raster> just its funny :)
<raster> macc24 -> i have no macs damnit! :)
<macc24> key to making linux run on devices that you own is to hate os that manufacturer supplies :D
<raster> hahaha
<raster> well hmmm
<macc24> no sway shortcuts on chromeos -> i dislike chromeos -> i inevitably make linux run on my chromebooks
<raster> i see thats your take
<raster> i have takend the position of - i choose my hw wisely to run linux as i chose the linux path long ago when i had to jump ship from the amiga
yann has joined #panfrost
<macc24> me too, but i won't refuse for no reason if someone tries to give me a fast chromebook ;D
<alyssa> macc24: I _had_ no macs... :p
<macc24> now that i think about it, i never bought a brand-new x86 machine
<raster> macc24: totally understand the position :)
<raster> alyssa: my life and home has so far been an apple-free zone. :)
kaspter has quit [Quit: kaspter]
<raster> alyssa: and since you are addicted to reverse engineering gpu's... its rare a NEW gpu turns up...
<raster> you have to feed your addiction somehow... :)
<alyssa> raster: =D
<macc24> raster: no, please don't keep alyssa occupied just before valhall chromebook drops
<raster> hahahaha
<raster> well thats almost as good as a new gpu...
<raster> :)
<macc24> much 3d accel on mt8192
<macc24> muh*
raster has quit [Quit: Gettin' stinky!]
<alyssa> ok, have piglit setup finally
<macc24> alyssa: good news
<macc24> xonotic was fixed too by fixes to 8354
<alyssa> macc24: THat's a relief :)
<macc24> btw, what does spilling mean in context of panfrost?
<macc24> oh ok, thanks
<br_> how to test HEAP objects? they are mapped on demand, but I don't see any requests
<br_> PANFROST_BO_HEAP
<br_> I mean no page faults for these objects received
<alyssa> br_: Any workload that uses tiling should incur them
<macc24> alyssa: so, any rendering on mali because mali is tiling gpu?
<alyssa> Although kbase at least optimistically allocates enough pages that something super simple won't fault
<alyssa> macc24: no?
<alyssa> ^^ oh, yes
<macc24> ok ._.
<alyssa> sorry thought you were talking about spilling
<alyssa> yes, anything more complex than clearing the screen a solid colour ;)
<macc24> oh so i know some stuff
<alyssa> br_: generally more geometry (# of triangles) ==> more tiler heap usage
<br_> any apps I could use ?
raster has joined #panfrost
<alyssa> supertuxkart maybe?
<alyssa> Personally I'd save HEAP support for last, btw
<alyssa> It isn't needed for correctness, it just saves memory under some circumstances.
<br_> I see it is only for kernel driver minor vers >= 1
<br_> So I can use 0 for no heap at all :)
<alyssa> Yeah
<br_> I like to receive no page faults at all...
<alyssa> Meh
<br_> I can't wait to build panfrost-enabled FreeBSDdesktop
<br_> but rk3399 is a bit old
<br_> I think pine64 is planning to release a new RK board
<macc24> br_: mt8183 :D
<macc24> there are chromebooks with it :D
<br_> RK3566 I think
<br_> macc24: looks good. But we don't have much mediatek platform support in FreeBSD
<br_> I think rockchip is only hope for now...
warpme_ has quit [Quit: Connection closed for inactivity]
<br_> another question: how to debug firefox black screen?
<br_> firefox starts, but all its windows are just Malevich's square
<alyssa> when you figure it out tell me
<br_> :)
davidlt has quit [Ping timeout: 240 seconds]
<macc24> br_:
<macc24> if i ever make any commits to linux panfrost driver, feel free to relicence them under freebsd's license if you find it helpful
<alyssa> this is some seriously hard pseudocode to write..
<alyssa> (I mean that semi-ironically)
<br_> macc24: I think I see a bug in linux driver, but not sure
<br_> should not it be & ~PAGE_MASK
<macc24> hmm i don't know
<urjaman> PAGE_MASK includes the ~
<urjaman> it's (~((1 << PAGE_SHIFT) - 1))
<alyssa> so it does
<br_> PAGE_MASK includes ~ in linux ? haha
<macc24> so it is not a bug
<br_> in FreeBSD it is not
<alyssa> br_: That must make for fun porting.
<br_> So all the time I was reading Linux wrong way
<macc24> br_: that must have been fun to discover
stikonas has quit [Read error: Connection reset by peer]
stikonas has joined #panfrost
icecream95 has joined #panfrost
<alyssa> icecream95: Morning
<icecream95> It's a massive hack, but it seems to work most of the time: https://0x0.st/-sRO.mp4
<macc24> hey icecream95
<alyssa> icecream95: Not even going to ask :p
<macc24> icecream95: what is this wm?
<icecream95> macc24: wayfire
<macc24> cool
<alyssa> aka compiz rebooted
<macc24> so it runs on duet
<macc24> icecream95: does ity have virtual keyboard?
archetech has joined #panfrost
raster has quit [Quit: Gettin' stinky!]
raster has joined #panfrost
raster has quit [Client Quit]
raster has joined #panfrost
stikonas has quit [Remote host closed the connection]
raster has quit [Client Quit]
raster has joined #panfrost
stikonas has joined #panfrost
<alyssa> 41 inst, 21 nops, 9 clauses
<alyssa> this seems like an improvement
<macc24> alyssa: ?
raster has quit [Remote host closed the connection]
raster has joined #panfrost
<alyssa> macc24: I mean before the schedule branch, it was 41 inst, 41 nops, 41 clauses :p
<macc24> alyssa: smaller = better?
<alyssa> yeah
<macc24> tbh i don't feel like scheduler branch is faster than master
<alyssa> it's not
<macc24> ok
<alyssa> but it adds a ton of infrastructure to speed up for real
<alyssa> bifrost is mindbogglingly complex :(
<macc24> so this time performance will actually increase?
<alyssa> eventually...
raster has quit [Quit: Gettin' stinky!]
<alyssa> 0xdeadfull
<alyssa> if only i had an r...
<macc24> alyssa: here you go: r
<alyssa> 0xd4eadfull maybe
<macc24> it's not like u is not a hexadecimal number either
<alyssa> it's a u64
<macc24> oh god
warpme_ has joined #panfrost
karolherbst has quit [Ping timeout: 272 seconds]
<icecream95> Firefox works as expected, at least: https://0x0.st/-s7T.mp4
<macc24> icecream95: i already tested that
<icecream95> macc24: no you didn't, the code only exists on my eMMC
<macc24> icecream95: whatcha developing?
<macc24> what is this
<macc24> why did you have 184 tabs open
<icecream95> macc24: It's memory bandwith that the GPU doesn't have to use
<icecream95> (see: FRAG_TRANS_ELIM)
<macc24> :o optimizations?