alyssa changed the topic of #panfrost to: Panfrost - FLOSS Mali Midgard & Bifrost - https://gitlab.freedesktop.org/panfrost - Logs https://freenode.irclog.whitequark.org/panfrost - Discord Discard
anarsoul|2 has quit [Remote host closed the connection]
anarsoul|2 has joined #panfrost
<alyssa> robclark: The issue is that the ARM driver isn't even DRM
<alyssa> Like, Gallium can't even -load- the driver
<alyssa> (we're currently pretending to be softpipe for loading)
<alyssa> afaik for freedreno, for instance, the msm driver at lest pretends to be DRM (opening a /dev/dri device)
<robclark> so, in early days I used a kgsl_drm shim fake driver thing that qcom used to have..
<robclark> but I guess I didn't look into how etnaviv/vc4/v3d did it
<robclark> at any rate, as far as opinion of other mesa dev's.. I think as long as whatever lands upstream doesn't break build for others, it is all-good
<alyssa> so I've heard
<robclark> so even if what is merged upstream doesn't work on it's own, but means needing smaller out-of-tree patch .. then it is a fine option
<alyssa> I mean, the 'right' option is to let pipe loader work for non-DRM cases so we can support people that can't/won't upgrade kernel but..
<robclark> plus it is useful for us to be able to at least compile-test gallium and nir changes with your code
* alyssa murps
<robclark> the driver loading part of the code doesn't change too much, so if you have to keep some hacks around that downstream in order to upstream the other 90% of the code, that's fine
<alyssa> (It'd be 1% downstream, 99% upstream but)
<alyssa> ["Even better. Stop making excuses." "Blurp"]
<robclark> anyways, nir is fast moving.. gallium less so but there are still changes coming there (I'm working on some for glDiscardFrambuffer()/glInvalidateFramebuffer()).. the loader code less so
<robclark> so until you have upstream driver, the thing you should thing about is how to minimize what you have downstream and need to rebase
<alyssa> I mean
<alyssa> Are you suggesting "throw 12kloc onto mesa-dev and don't ask questions"? :P
<anarsoul|2> robclark: so what's the threshold for upstreaming the driver?
<anarsoul|2> i.e. should it be done for lima considering that it's not full-featured driver yet?
<robclark> alyssa, well, there might ofc be some review comments.. but mesa-dev's know that rome (aka full gpu driver stack) wasn't built in a day
<alyssa> alright.
<alyssa> aside: ahhh function pointers what the cornball
<robclark> and they are more accommodating than kernel, imho.. as far as landing stuff to make your life easier rather than waiting until everything is finished
<alyssa> So I've noticed
<alyssa> ADmittedly trivial patches but same-day review and upstreamed next day for the few things I've sent
<robclark> anarsoul|2, threshold, as far as mesa code, is don't break things for other drivers and other devs
<alyssa> Compare LKML where it was a month before any comments whatsoever and I got scared off :P
<anarsoul|2> alyssa: I'd ping maintainers if there's no comments for a week
<anarsoul|2> but kernel is a bit different, yeah
<robclark> anyways, kernel won't land until there is a userspace.. userspace take some time so mesa is ok about landing wip stuff as long as you don't break things for others
<robclark> plus that gives you the userspace needed to land the kernel bits
<alyssa> Alright
<robclark> once you get to point of having upstream kernel, it shifts a bit.. but worry about that later
* anarsoul|2 wishes he had more time to work on lima
<robclark> alyssa, anyways, no harm in patch-bombing mesa-dev w/ an RFC.. just summarize current kernel state in cover letter.. but my experience from other devs in early days of freedreno was more or less 'well, as long as it doesn't break me, sounds fine'
<alyssa> alright
<alyssa> (Seriously, is there no way to get 'typeof' in mesa?!)
<alyssa> Unless someone smarter than me can figure out how to migrate this code
<alyssa> o wait can i just uh
<alyssa> Oh I can just __typeof__ instead
<alyssa> >_______>
<robclark> for fancyness.. it might be worth checking that what you depend on is avail in clang.. since eventually people will want to build driver for android.. they might send patches too but at that point you won't want to re-write whole driver ;-)
<alyssa> mmmf
* alyssa drowns in compiler
<HdkR> Welcome to my world
<anarsoul|2> :)
<alyssa> help
* anarsoul|2 throws compiler-proof life-preserver
<alyssa> oh, now I'm fighting mesa's lists
anarsoul|2 has quit [Ping timeout: 240 seconds]
<alyssa> Why does the linked list traversal SEGFAULT i just
<alyssa> THIS IS NOT SUPPOSED TO BE THE HARD PART
<alyssa> ..there we go :)
<alyssa> Totally wasn't about to give up
<robclark> this is where kernel's list-debug stuff would be nice.. list_head stuff is totally easy until you mess it up ;-)
<alyssa> ;)
<alyssa> All in all, this adds about 3kloc to the driver
<alyssa> Not bad all things considered
<alyssa> (2k of that is the actual decoding/dumping, unrelated to LD_PRELOAD and such)
<alyssa> More importantly, we're now down to a single mali-job.h!
<alyssa> Fixed those, from the whole driver https://rosenzweig.io/all-warnings.txt
rhyskidd has joined #panfrost
<alyssa> There is a special happiness to having code that compiles without warnings~
<alyssa> That is, _all_ of panfrost compiles without warnings now (well, the Midgard code anyway. Bifrost isn't my jurisdiction)
<Lyude> i mean-the only bifrost code we have is the stuff in panloader right
<alyssa> Lyude: I just deprecated most of panloader so
<Lyude> cool
<alyssa> Lyude: Specifically, panwrap now lives inside panfrost and is built as part of the standard mesa build
<Lyude> awesome!
<alyssa> Long term, I haven't decided if I'll push that code into mesa or not; if we choose not to, it's a really easy .gitignore
<alyssa> It's still building as a .so (no tight driver integration like the disasm), but it means we're compiling panwrap on every main driver change
<alyssa> and critically, there's only a single mali-job.h now
<alyssa> so I can actually make forward progress on the cmdstream without breaking the world
<Lyude> mhm
<alyssa> Still need to make sure this still wraps correctly on all of our systems
<alyssa> I also probably need to revive the replay memory code etc but
<alyssa> Lyude: Yeah, the only thing left in panloader is the Bifrost assembler and that can live literally anywhere
<alyssa> (Maybe it'd make sense to put it with SPD for now, since that's now a Bifrost only repo)
<Lyude> mhm, we can figure that part out later
<Lyude> the people who care about it know where it is
<alyssa> For sure
rhyskidd has quit [Quit: rhyskidd]
<alyssa> Point is, panloader as a repo is now for historical purposes only I think
<alyssa> Aside: This means I'm now maintaining 14kloc? This is oddly overwhelming
<alyssa> And like I wrote 12k of that so I understand exactly what's going on but still spoopy?
<alyssa> Wait, 16k if you remember the other headers
<alyssa> 12k of just c files
<alyssa> freedreno is 36k of C files so that makes me feel somewhat better :p
<alyssa> etnaviv is... also 12k
<Lyude> you don't need a big driver most times!
<alyssa> Lyude: "overwhelmed"; it's already too big for my comfort ahhh!
<alyssa> :p
<Lyude> oh lol
<alyssa> and like
<alyssa> We're doing a lot
<Lyude> it'll get there
<Lyude> and you don't need to be the only one maintaining this
<alyssa> etnaviv is the smallest driver but afaict their hardware is _significantly_ simpler than ours so
<Lyude> i'm about to be working on your mesa branches anyway to get them working with the latest kernel driver over this weekend
<alyssa> Woohoo!
<Lyude> that's the plan anyway
<HdkR> Vivante GPUs are cute
<Lyude> last weekend that was the plan but then someone had to do something evil and kill my productivity for the week :(
<Lyude> i don't like the color blue as much as I used to
<alyssa> lel
<alyssa> Nice power-looking curve there :p
<alyssa> Blugh what do you mean cannot open shared object file
<alyssa> Fine I guess I'll compile mesa on board :V
cwabbott_ has quit [Ping timeout: 272 seconds]
anarsoul has quit [Remote host closed the connection]
anarsoul has joined #panfrost
<chewitt> I'd ask that you reconsider combining the mesa code into a single repo
<chewitt> rebase should be simple because you're not really touching the main mesa code .. it's all in the panfrost subdir?
<chewitt> packaging for various distro's that would like to support panfrost then becomes trivial
anarsoul|2 has joined #panfrost
anarsoul|2 has quit [Remote host closed the connection]
_whitelogger has joined #panfrost
sleepymario has joined #panfrost
<sleepymario> hello everyone. i read on a. rosenzweigs blog that there's been big improvements with the mali drivers. How near to usable is it? Is it Tinkerboard-Testing prime time yet or should I be quiet and wait for some longer? Thanks for the hard work btw :)
<HdkR> I'd recommend waiting at least until winsys issues are sorted
<sleepymario> HdkR: all right. any guess how long that'll approximately take or is that very hard to say?
<HdkR> That's a bit more difficult to nail down. Probably requires a new kenel module still :P
<HdkR> (Seems to be the consensus anyway)
<anarsoul> sleepymario: I guess the answer is "when it's ready"
<sleepymario> okie, thanks for the update
_whitelogger has quit [Remote host closed the connection]
_whitelogger has joined #panfrost
BenG83 has quit [Ping timeout: 245 seconds]
pH5 has joined #panfrost
unoccupied has quit [Ping timeout: 240 seconds]
afaerber has joined #panfrost
<cyrozap> Oh, hmm, it seems S905X2-based boxes have been available for at least a month now...
<chewitt> I'm expecting to have access to some board devices from reputable manufacturers in December
<chewitt> mainline kernel might be missing stuff to support these for a while
<chewitt> which would mean using the 4.9 bsp kernel
<chewitt> it leaves you feeling unclean afterwards :)
<mmind00> chewitt: I can definitly relate to that feeling
paulk-leonov has quit [Ping timeout: 260 seconds]
paulk-leonov has joined #panfrost
unoccupied has joined #panfrost
unoccupied has quit [Quit: WeeChat 2.2]
<adjtm> alyssa, hi, have you tried sway with panfrost?
sleepymario has quit [Quit: WeeChat 2.2]
<narmstrong> chewitt: you could still do offscreen rendering
pH5 has quit [Quit: bye]
jernej has quit [Remote host closed the connection]
jernej has joined #panfrost
BenG83 has joined #panfrost
pH5 has joined #panfrost
cwabbott has quit [Ping timeout: 252 seconds]
cwabbott has joined #panfrost
<Lyude> alyssa: you said you moved all of the panfrost code into the mesa repo, right?
<Lyude> about to cross compile this so I can actually get stuff done without waiting eons for every compile
<Lyude> (also I realized a very simple way to do it!)
JuJu has joined #panfrost
davidlt has quit [Remote host closed the connection]
davidlt has joined #panfrost
unoccupied has joined #panfrost
BenG83 has quit [Quit: Leaving]
BenG83 has joined #panfrost
<Lyude> yay, cross cc finally works
<Lyude> now i can really get to wokr
<Lyude> *work
unoccupied has quit [Quit: WeeChat 2.2]
<Lyude> ...almost
<urjaman> :)
<Lyude> now I just need to figure out how the heck to get llvm-config to do wht I need
<Lyude> (has anyone else done cross-cc with mesa before?)
BenG83 has quit [Ping timeout: 246 seconds]