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
macc24 has quit [Quit: WeeChat 2.8]
stikonas has quit [Remote host closed the connection]
<alyssa> Okay, it's still complicated but I have a much more... tamed way of handling this which should work up to ES3.1
<alyssa> Namely, we divide into 3 distinct parts
<alyssa> 1) Layout the buffers. Reserve N xfb buffers, M special buffers, and 1 general buffer, save the indices.
<alyssa> 2) Emit all the mali_attr_meta. Break up into one of the following cases
<alyssa> XFB (linked or unlinked),
<alyssa> !XFB:
<alyssa> Unused
<alyssa> !unused:
<alyssa> (unused includes unlinked varyings which can come from SSO)
<alyssa> otherwise linked
<alyssa> special or not special
<alyssa> So {XFB, unused, special, linked }
<alyssa> Also point sprite override but that's just a special varying (= gl_PointCoord)
<alyssa> [ On midgard. On bifrost point coord is a sysval and point sprites will need actual keying unless there turns out to be a hw mechanism ... ]
<alyssa> For each of these cases you can work out the mali_attr_meta needed _a priori_
<alyssa> You also get as a byproduct of the above the size of the general buffer
<alyssa> 3) Emit the buffers
<alyssa> So this is a lot more tame and now there is a very natural way to handle mediump varyings - namely in the linked meta case.
<alyssa> OTOH, if I'm going to this effort, I sort of want to see what horrible complications geom/tess throw in
<alyssa> So, looking at a trace of all the stages
<alyssa> VS is normal
vstehle has quit [Ping timeout: 246 seconds]
<alyssa> TCS gets compiled to a compute job (which works fine) and it uses the union of compute shader ops and vertex ops (attr/vary) to consume VS varyings and output TCS stuff
<alyssa> you know
<alyssa> it appears I spoke far too soon
<alyssa> tcs, tes, geom corresponds to like 6 different compute shaders
<alyssa> and by the looks of it, some of them are probably handwritten?
<alyssa> idk, it looks a little different than what the blob normally generates
robink has quit [Ping timeout: 272 seconds]
robink has joined #panfrost
<alyssa> Yeah. a bunch of compute shaders in a row implement tess in sw, I guess. and then the tes becomes the actual compute shader
<alyssa> Then another compute job
<alyssa> then the geom shader implemented as a crazy compute
<alyssa> then finally the frag shader and things are back to normal
<alyssa> so yeah. they weren't kidding about not having hw for geom/tess.
<alyssa> 100% of the stuff in this file afaict is standard Midgard, albeit with some unusual constructions you wouldn't get from either GL or CL code
<alyssa> Honestly a little horrifying
<alyssa> Well. at least there's no mystery there.
<alyssa> not sure if we'll ever get around to this horror but yeah.
<alyssa> There's really nothing hw specific there afaict, probably would end up with a nir_tesselate
<alyssa> OTOH the software tesselator included with swr (from d3d somewhere) is 2k+ lines
<alyssa> Gallium's is 3k
<alyssa> ---Er. Same implementation. K
<chrisf> alyssa: do you *really* want to support tess/geom on this hw?
<alyssa> chrisf: No, I don't think I do.
<alyssa> but, patches welcome or something
<chrisf> afaik the blob supports it only to get the ES3.2/AEP checkbox, not because anyone actually wants the implementation they managed to put together
<alyssa> yes, I see that
<chrisf> the vulkan blob doesnt bother
<alyssa> makes sense
<alyssa> IIRC indirect draws have related craziness and that's ES3.1
<chrisf> i think done as compute that patches the job chain
<alyssa> yeah, that was my impression but I got too scared to validate that
buzzmarshall has quit [Remote host closed the connection]
kaspter has quit [Ping timeout: 246 seconds]
kaspter has joined #panfrost
kaspter has quit [Ping timeout: 246 seconds]
kaspter has joined #panfrost
adjtm has quit [Remote host closed the connection]
_whitelogger has joined #panfrost
raster has quit [Quit: Gettin' stinky!]
camus1 has joined #panfrost
kaspter has quit [Ping timeout: 272 seconds]
camus1 is now known as kaspter
robmur01 has joined #panfrost
robmur01 has quit [Ping timeout: 272 seconds]
adjtm has joined #panfrost
davidlt has joined #panfrost
vstehle has joined #panfrost
cwabbott has quit [Quit: cwabbott]
cwabbott has joined #panfrost
_whitelogger has joined #panfrost
cwabbott_ has joined #panfrost
camus1 has joined #panfrost
cwabbott has quit [Ping timeout: 246 seconds]
cwabbott_ is now known as cwabbott
kaspter has quit [Ping timeout: 260 seconds]
camus1 is now known as kaspter
kaspter has quit [Read error: Connection reset by peer]
kaspter has joined #panfrost
nerdboy has quit [Ping timeout: 272 seconds]
mias has joined #panfrost
mias has quit [Ping timeout: 256 seconds]
mias has joined #panfrost
cyrozap has quit [Ping timeout: 246 seconds]
warpme_ has quit [Quit: Connection closed for inactivity]
davidlt has quit [Ping timeout: 272 seconds]
warpme_ has joined #panfrost
cyrozap has joined #panfrost
yann has joined #panfrost
kaspter has quit [Ping timeout: 246 seconds]
kaspter has joined #panfrost
<la-s> so I can see that the new announcement says that panfrost now supports wayland compositors; which while true, I am personally experiencing heavy graphical glitches in e.g. Firefox (not using webrender, and using sway). Am I the only one? Using an ODROID N2 (i.e. amlogic and G52) if that's important.
<la-s> I can see that it says a G31 was used
robink has quit [Ping timeout: 272 seconds]
robink has joined #panfrost
raster has joined #panfrost
stikonas has joined #panfrost
kaspter has quit [Ping timeout: 256 seconds]
kaspter has joined #panfrost
stikonas has quit [Remote host closed the connection]
stikonas has joined #panfrost
icecream95 has quit [Quit: leaving]
<chewitt> la-s there are issues with Amlogic bifrost support
<chewitt> I can load panfrost on G31 without any traces of badness in dmesg
<la-s> Thanks, didn't know that
<chewitt> on G52 it litters the log with fault messages
<la-s> seems unfortunate
<la-s> yeah lol, I get a ton
<chewitt> there's probably some secret undocumented juju to understand about how Amlogic powers things
<endrift> There's a reason I detest Amlogic
<la-s> It seems that some parts of the frame don't get rendered
<endrift> I once tried to figure out why a device I had didn't seem to power on all the cores when resuming from sleep
<la-s> and it depends on the buffer in use, i.e. when swapping the pattern changes, leading some times to epilepsy inducing patterns
<endrift> upon closer inspection, it HAD brought up all the cores, but only one got reattached to the GPU governor so all but one of the cores was clocked at 40 MHz
<chewitt> their bsp is fugly stuff, but tbh, most bsp's are fugly so they're not alone in that
<endrift> when trying to figure out how this had happened I noticed that a bunch of the core kernel pm code had gotten refactored for no apparent reason
<endrift> I have to imagine they were trying to figure out why their shit wasn't working properly and just shrugged and left it
<chewitt> and go look at a realtek bsp and Amlogic's suddenly looks like a thing of beauty :)
<endrift> bsp?
<chewitt> board support package = vendor kernel (and u-boot)
<endrift> ah
<endrift> yeah ARM boards are still kind of a wild west of non-standardization
<endrift> even after like 10 years of Android phones
<endrift> it's depressing
<endrift> anyway that device I was trying to debug had bigger issues so I never ended up getting around to fixing it
<endrift> like I'm pretty sure it came with a QC reject NAND chip
<chewitt> that's not uncommon with Android TV boxes .. rarer with SBCs
<endrift> shipping with QC reject NAND!?
<endrift> this was a random android gaming thing, it was from some Hong Kong company I think
<endrift> it was garbage and I should have known that going in
<endrift> oh man the product page is still up
showliu has quit [Ping timeout: 240 seconds]
andrey-konovalov has quit [Ping timeout: 240 seconds]
mani_s_ has quit [Ping timeout: 260 seconds]
mani_s has joined #panfrost
showliu has joined #panfrost
guillaume_g has joined #panfrost
<chewitt> we see "Amlogic" boxes with Rockchips SoCs occasionally :)
<chewitt> (and vice versa)
guillaume_g has quit [Quit: Konversation terminated!]
stikonas has quit [Remote host closed the connection]
<daniels> la-s: yeah, Amlogic has some really bad errata for the N2 SoC :(
Green has quit [Read error: Connection reset by peer]
Green0 has joined #panfrost
cwabbott has quit [Quit: cwabbott]
cwabbott has joined #panfrost
stikonas has joined #panfrost
stikonas has quit [Remote host closed the connection]
stikonas has joined #panfrost
robink has quit [Ping timeout: 246 seconds]
robink has joined #panfrost
<anarsoul> endrift: especially after 10 years of Android phones
davidlt has joined #panfrost
nerdboy has joined #panfrost
buzzmarshall has joined #panfrost
cwabbott has quit [Quit: cwabbott]
cwabbott has joined #panfrost
cwabbott has quit [Client Quit]
cwabbott has joined #panfrost
macc24 has joined #panfrost
stikonas has quit [Remote host closed the connection]
stikonas has joined #panfrost
stikonas has quit [Remote host closed the connection]
stikonas has joined #panfrost
macc24 has quit [Quit: WeeChat 2.8]
macc24 has joined #panfrost
davidlt has quit [Ping timeout: 240 seconds]
macc24 has quit [Quit: WeeChat 2.8]
macc24 has joined #panfrost
robink has quit [Ping timeout: 256 seconds]
robink has joined #panfrost
TheKit has joined #panfrost
warpme_ has quit [Quit: Connection closed for inactivity]
raster has quit [Quit: Gettin' stinky!]
raster has joined #panfrost
HdkR has joined #panfrost
<HdkR> oop, split must have killed me
<HdkR> Time to spin a build of that GoA kernel and see if it actually works on my end
macc24 has quit [Quit: WeeChat 2.8]
<HdkR> tomeu: Which config do I use for the goa? :)
<HdkR> defconfig?
<endrift> HdkR: so that's why you weren't in here
<endrift> I had noticed you were missing a few days ago :P
<HdkR> I try not to vanish from IRC channels
<endrift> I had left for a few months so
<endrift> I have no idea when you disappeared
<HdkR> Looks like I was gone for four days
<HdkR> https://gitlab.freedesktop.org/tomeu/linux/-/tree/bifrost This tree also doesn't build with defconfig. error in panfrost_gpu.c:171
macc24 has joined #panfrost
icecream95 has joined #panfrost
yann has quit [Ping timeout: 256 seconds]
cwabbott has quit [Quit: cwabbott]
cwabbott has joined #panfrost
raster has quit [Quit: Gettin' stinky!]