Freedreno Gallium3D Driver Begins To Work
Phoronix: Freedreno Gallium3D Driver Begins To Work
The open-source Freedreno driver that is a reverse-engineered software stack for Qualcomm's Adreno/Snapdragon graphics processor continues to quickly hit new milestones. The Freedreno Gallium3D driver that's been worked on for the past month is beginning to function...
Linux is lucky to have people like Rob and Marek around. I have no idea how they know what to do.
This is amazing work. It will be quite exciting to see what progress is made over the following months.
Yeah. I wish I could help these people in some way, but what they do amounts to magic for me =/
Originally Posted by schmidtbag
I have no idea how they know what to do.
Hey, the only thing stopping you guys is you.
Learn to code. Learn how the hardware works. Read the source to something big, that people use.
Can code but can't into gpu? There's plenty cpu-side work in all these projects.
Just one example, unrelated but shows how an entry-level CS student might make a difference: there are sub-optimal algorithms in bash. With fairly low levels skills you can replace one of those, and gain a huge speedup in some task.
There's plenty of similar things in Mesa and freedreno.
yup! "journey of a thousand miles starts with one step" (or something roughly like that) :-)
Originally Posted by curaga
I didn't know what I was doing at one point. No one is born knowing everything. Then learned (mostly through reading code and docs) rough idea about how gpu's work (intel and radeon stuff is well documented at least). When I started on freedreno, didn't really know what I was looking for. But I knew how to use strace, and then ld_preload. Started building up some tools to capture cmdstream. And then you eventually see some patterns. Fortunately, compared to desktop nvidia stuff, the kernel driver is open (although not upstream), so spending some time reading the code was quite helpful. Even reading over the public marketing blurbs/presentations/articles about the GPU is useful. (See here.) It's like a detective puzzle, look for clues wherever you can. And after that, writing simple test cases to drive the gpu w/ blob driver. In some cases varying a one or two parameters and comparing the cmdstream dumps. A parser to parse cmdstream dump to text plus meld was quite valuable. And then as I discover register names or bitfields in the registers, add those to the cmdstream parser.. Rince.. and Repeat.. :-)