<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.
<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]