alyssa changed the topic of #panfrost to: Panfrost - FLOSS Mali Midgard & Bifrost - - Logs - <daniels> avoiding X is a huge feature
LinguinePenguiny has joined #panfrost
<LinguinePenguiny> If I have good architectural and coding knowledge, but not a lot of 3D graphics work under my belt (but I do understand how it works generally) how should I go about looking to help making the midgard mesa better? :) I have an asus tinkerboard and really want to learn 3d graphics development and this seems like the perfect project to jump on to. :)
<HdkR> Trying to get it running on your tinkerboard is already a pretty hefty task :P
<alyssa_> "Long story short, flip the lowest bit of unknown1 in the shader descriptor, add a RG16F fragment varying with the magic source (0x60 | LINEAR) and other fields zero, and load that varying in the fragment shader for GLES-style point coords" The lowest bit flip is a UBO thing, derp
<alyssa_> So it's just the varying and that's it, I think
<alyssa_> LinguinePenguiny: Do you want to work on the compiler side or the command stream side?
<LinguinePenguiny> You use llvm, right? Probably that, although that scares me more.
<alyssa_> LinguinePenguiny: No LLVM here :)
<HdkR> As much as I would love to use LLVM for a Bifrost driver, I can't dedicate that much time
<HdkR> bifrost shader compiler*
<LinguinePenguiny> Ah, that's worse/better. :) Is it all in Mesa currently? I looked over the code, wasn't too too bad but not being LLVM means I'd have even less idea where to start, but nothing impossible. :)
<alyssa_> HdkR: Let me rephrase that: I will actively be NAKing any patches that involve LLVM in any capacity.
<HdkR> :P
<alyssa_> LinguinePenguiny: With some tiny exceptions, yes, all of the code is in Mesa :)
<alyssa_> (The userspace, that is)
<alyssa_> For the compiler, take a look at mesa/src/gallium/drivers/panfrost/midgard/midgard_compile.c
<LinguinePenguiny> Ah, right. DRM just landed in the linux kernel, right?
<HdkR> Even uses Mesa's new hotness that is NIR
<alyssa_> LinguinePenguiny: Not landed yet, no. The first RFC was sent out but it'll be a short bit
<LinguinePenguiny> I know of NIR, never worked with it, but I did see the NIR bits when I was looking it over. Like I said, I'm very junior (graphics) dev, especially with 3d in general (never wrote opengl code myself, either), but I'd love to help and learn and change that. I understand most parts of 3d graphics, so I can probably get through it all. But ah, okay, I did see that on phoronix. :)
<HdkR> alyssa_: Does piglit work yet?
<HdkR> Since one of the easiest ways to get involved is just fixing piglit failures :P
<alyssa_> LinguinePenguiny: Learning is part of the process!
<alyssa_> HdkR: Probably not ;P
<HdkR> sad trumpet sound
<LinguinePenguiny> is my tinkerboard okay to try to start on? or would you recommend different hardware?
* alyssa_ disappears for the holiday
<alyssa_> Tinkerboard should be ok
<HdkR> nice, RK3288 device :)
<LinguinePenguiny> I haven't used it since i got it because of the bad graphics. :'( So might as well be the change I want to see in the world. :P
shenghaoyang has joined #panfrost
<HdkR> Oh hey, that's why I started poking at Bifrost :P
<LinguinePenguiny> HdkR you the one who RE'd most of it? I did watch Alyssa's and someone else's talk about the driver at a recent conference.
<Lyude> alyssa and cwabbott did
<Lyude> but many have contributed since
<LinguinePenguiny> Ah okay, cool.
<HdkR> Nah, I only did some initial RE on Bifrost, then got distracted by a job....three years ago
<HdkR> bleh
<LinguinePenguiny> I want to help this out because I code well, but am not in the field at all. I think it'll be good exercise to work towards some future goals. :)
<LinguinePenguiny> Should I be looking to try to set up the closed driver to review code differences to try to find stuff, or is most of that documented but just needs worked on?
<HdkR> Just needs to be worked on. You can't review the source of a closed source driver :P
<LinguinePenguiny> Ah, sorry, said it right. Meant more so REing output binaries. :)
<LinguinePenguiny> said it wrong* oh dear.
<HdkR> There is use to having both the blob and the open source stack though. You can prod the blob and capture its trace to see what it is doing
<HdkR> Useful for every architecture that doesn't have public documentation
<HdkR> (So most of them)
<LinguinePenguiny> Yeah, as their code probably shouldn't too foreign when compared to implementing the same thing, just open. Gotcha.
QwertyChouskie has quit [Quit: - A hand crafted IRC client]
QwertyChouskie has joined #panfrost
<HdkR> Nah, It's not code. Traces are just data for how the blob is programming the hardware
<HdkR> Well, I guess the compiled shader is code, but we just disassemble that to see what is up
<LinguinePenguiny> gotcha. is there a disassembly of that somewhere? Or just do it myself?
<HdkR> It's a tool called panwrap
<HdkR> alyssa_: Did that land in upstream?
<LinguinePenguiny> i see in gallium/tools/trace
<LinguinePenguiny> wait nvm, not midgard obviously.
<HdkR> Basically you build that project, then `LD_PRELOAD=<so file> <OpenGL app>` and it'll spam a bunch of stuff in stdout
<HdkR> Which you can then inspect and see what is happening
<LinguinePenguiny> gotcha. is there a way to reset the gpu in the event I kill it? could i do most dev over ssh reliably currently?
<HdkR> I usually just restart my board. Might be some debugfs thing to do it
<LinguinePenguiny> gotcha. just wondering.
stikonas has quit [Remote host closed the connection]
<HdkR> The ARM kbase driver is fairly robust to crashing since it resets the GPU constantly anyway :P
<HdkR> Guess it doesn't actually need to be a GL application either. Anything that uses the GPU should work
QwertyChouskie has quit [Quit: - A hand crafted IRC client]
<LinguinePenguiny> lol yeah. The perf difference is already great for the mesa open driver compared. so I assumed it was as high quality as a standard "just-put-some-3d-things-up" driver on the pi.
<LinguinePenguiny> starting at midgard_disassemble, alu instructions can have different word sizes? Just making sure I understand.
empty_string is now known as interface{}
<LinguinePenguiny> also seems prefetch is just telling the pipeline to fill the back end with init for a new unrelated code block?
<LinguinePenguiny> just wondering because in disassemble, it just bails. :P
<HdkR> Midgard is a VLIW architecture and I presume they have a variable length encoding. Not super familiar with Midgard
<LinguinePenguiny> gotcha.
<LinguinePenguiny> ah it says one core does all logic on arm's site detailing bifrost. seems much easier than amd's stuff, heh.
<LinguinePenguiny> What bifrost boards do you recommend if I wanted to get one of those, also?
<HdkR> There isn't an amazing choice atm
<HdkR> and Bifrost isn't anywhere near working either
<LinguinePenguiny> ah okay. yeah, it seems very new considering even my tinker board is "new"
<HdkR> In a few months the support for Bifrost should be getting in better shape
<HdkR> Like, safe for tinkering, not usage :P
<LinguinePenguiny> gotcha. my experience with mesa and 3d is watching amd patches and testing them for my r9 270x in 2014ish. Life was pain, then. Now, it's amazing. So understandable.
<HdkR> Oh, I just saw the Lima patches for upstreaming to mesa!
<HdkR> Nice
<LinguinePenguiny> rpi hardware, right?
<HdkR> Nah
<HdkR> Lima is Mali Utgard or Mali-200/400/450
<LinguinePenguiny> ah mali 400. never used that. i know of it on like...arm galaxy s5, i think.
<HdkR> It's in a TON of low end devices
<HdkR> Mali-G3x or Mali-G5x are going to replace most use cases on new hardware though
<LinguinePenguiny> any chance on open drivers for them?
<HdkR> G3x and G5x is a bifrost variant so we will support it
<LinguinePenguiny> also, i know connor abbott is working on VC stuff. Is their next hardware going to support mesa? But ah gotcha. Didn't know if it was a new core or not.
<HdkR> Videocore 5 and Videocore 6 is already supported by mesa with the V3D driver
<HdkR> And of course Videocore 4 is already supported on the Pi
<LinguinePenguiny> oh, really? I did not know that at all in working order. Usable? That's impressive. I will definitely have to try that on a pi. I haven't touched anything but the blob on the pi.
<HdkR> I know one of the major complaints initially with the VC4 driver on Pi was video decoding being an issue. No idea if that was ever fixed since I don't pay attention to it
<LinguinePenguiny> sadly have to go for tonight, but I'll start messing with this soon. This code isn't too bad at all, I write much worse. ;) But it looks managable, for sure. I'll be in here on my days off, so about 3 times a week, hopefully i can find a way to help out. :)
<LinguinePenguiny> Later guys, good night.
LinguinePenguiny has quit [Ping timeout: 245 seconds]
QwertyChouskie has joined #panfrost
chewitt has quit [Max SendQ exceeded]
chewitt has joined #panfrost
QwertyChouskie has quit [Quit: - A hand crafted IRC client]
QwertyChouskie has joined #panfrost
shenghaoyang has quit [Remote host closed the connection]
shenghaoyang has joined #panfrost
QwertyChouskie has quit [Quit: - A hand crafted IRC client]
<hanetzer> alyssa_: its fairly simple/painless. read bios image, gbb_util --set --flags 0x1 bios.img new-bios.img, and flash the new image.
<hanetzer> from memory.
<hanetzer> note his page formatting turns -- flags into that long hyphen
QwertyChouskie has joined #panfrost
QwertyChouskie has quit [Quit: - A hand crafted IRC client]
pH5 has quit [Read error: Connection reset by peer]
pH5 has joined #panfrost
stikonas 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
stikonas has quit [Remote host closed the connection]
shenghaoyang has quit [Remote host closed the connection]
shenghaoyang has joined #panfrost
shenghaoyang has quit [Remote host closed the connection]
embed-3d has quit [Remote host closed the connection]
embed-3d has joined #panfrost
shenghaoyang has joined #panfrost
MoeIcenowy has quit [Quit: ZNC 1.6.5+deb1+deb9u1 -]
MoeIcenowy has joined #panfrost
jolan has quit [Quit: leaving]
jolan has joined #panfrost
sphalerit has quit [Read error: Connection reset by peer]
thefloweringash has quit [Read error: Connection reset by peer]
sphalerit has joined #panfrost
thefloweringash has joined #panfrost
shenghaoyang has quit [Remote host closed the connection]
marcodiego has joined #panfrost
QwertyChouskie has joined #panfrost
belgin has joined #panfrost
<belgin> hello
<HdkR> Hello
belgin has quit [Quit: leaving]
adjtm has quit [Remote host closed the connection]
adjtm has joined #panfrost
stikonas has joined #panfrost
QwertyChouskie has quit [Quit: - A hand crafted IRC client]
QwertyChouskie has joined #panfrost
<alyssa_> HdkR: Panwrap is half upstream
<HdkR> aye, that's what I thought
<alyssa_> hanetzer: "Flash the new image" that's painful :P
<alyssa_> HdkR: Modern panwrap dumps to fs but does not decode (that's not upstream), pandecode reads the fs and decodes to stdout (that is upstream)
<HdkR> :)
QwertyChouskie has quit [Quit: - A hand crafted IRC client]