Log in

No account? Create an account
Graphics DevRoom at FOSDEM2014. - LIBV Intentionally Breaks Videodrivers [entries|archive|friends|userinfo]
Luc Verhaegen

[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Graphics DevRoom at FOSDEM2014. [Oct. 12th, 2013|11:35 pm]
Luc Verhaegen
[Tags|, , , , , , , , , , , , , , , ]
[Current Location |Rumpelkammer]
[mood |excitedexcited]
[music |Chris Clark - Vengeance drools]

Yes, there is going to be another exciting DevRoom about graphics on the upcoming FOSDEM.

It's not called the X.org DevRoom this time round, but a hopefully more general Graphics DevRoom. As was the case with the X.org DevRooms before, anything related to graphics drivers and windowing systems goes. While the new name should make it clearer that this DevRoom is about more than just X, it also doesn't fully cover the load either, as this explicitly does include input drivers as well.

Some people have already started wondering why I haven't been whining at them before. Well, my trusted system of blackmailing people into holding talks early on failed this year. The FOSDEM deadline was too early and XDC was too late, so I decided to take a chance, and request a devroom again, in the hope that enough people will make it over to the fantastic madness that is FOSDEM.

After endless begging and grovelling the FOSDEM organizers got so fed up that they gave us two full days again. This means that we will be able to better group things, and avoid a scheduling clash like with the ARM talks last year (where ARM system guys were talking in one room exactly when ARM graphics guys were talking in another). All of this doesn't mean that First Come, First Serve doesn't apply, and if you do not want to hold a talk with a hangover in an empty DevRoom, you better move quickly :)

The FOSDEM organizers have a system called pentabarf. This is where everything is tracked and the schedules are created, and, almost magically, at the other end, all sorts of interesting things fall out, like the unbelievably busy but clear website that you see every year. This year though, it is expected that speakers themselves manage their own details, and that the DevRoom organizers oversee this, so we will no longer use the trusted wiki pages we used before. While i am not 100% certain yet, i think it is best that people who have spoken at the DevRoom (most of whom i will be poking personally anyway) in the past few years first talk to me first before working with pentabarf, as otherwise there will be duplicate accounts which will mean more overhead for everyone. More on that in the actual call for speakers email which will hit the relevant mailing lists soon.

FOSDEM futures for ARM

Connor Abbott and I both have had chromebooks for a long long time. Connor bought his when it first came out, which was even before the last FOSDEM. I bought mine at a time where I thought that Samsung was never going to sell it in germany, and the .uk version arrived on my doorstep 3 days before the announcement for Europe went out. These things have been burning great big holes in our souls ever since, as i stated that we would first get the older Mali models supported properly with our Lima driver, and deliver a solid graphics driver before we lose ourselves again in the next big thing. So while both of us had this hardware for quite a while, we really couldn't touch these nice toys with an interesting GPU at all.

Now, naturally, this sort of thing is a bit tough to impose on teenagers, as they are hormonally programmed to break rules. So when Connor got bored during the summer (as teenagers do), he of course went and broke the rules. He did the unspeakable, and grabbed ARMs standalone shader compiler and started REing the Mali Midgard ISA. When his father is at FOSDEM this year, the two of us will have a bit of 'A Talk' about Connors wild behaviour, and Connor will be punished. Probably by forcing him to finish the beers he ordered :)

Luckily, adults are much better at obeying the rules. Much, much better.

Adults, for instance, would never go off and write a command stream tracer for this out of bounds future RE project. They would never ever dare to replay captured command streams on the chromebook. And they definitely would not spend days sifting through a binary to expose the shader compiler of the Mali Midgard. Such a thing would show weakness in character and would just undermine authority, and I would never stoop so low.

If I had done such an awful thing, then I would definitely not be talking about how much harder capture and replay were, err, would be, on this Mali, and that the lessons learned on the Mali Utgard will be really useful... In future? I would also not be mentioning how nice it would be to work on a proper linux from the get-go. I would also never be boasting at how much faster Connor and I will be at on turning our RE work on T6xx into a useful driver.

It looks like Connor and I will have some very interesting things to own up to at FOSDEM :)

From: (Anonymous)
2013-10-21 03:07 pm (UTC)
So this means that it is not worth to buy a mali-400 system, but instead buy a mali-6xx device?
(Reply) (Thread)
[User Picture]From: libv
2013-10-21 04:54 pm (UTC)
No, buy one of the mali-400 based devices. They usually have quite some better support than the newer exynos devices, especially when you go for allwinner hardware. Mali-450 is about to be produced, and it really has double the performance of the top of the range mali-400s.
(Reply) (Parent) (Thread)
From: (Anonymous)
2013-10-24 01:27 pm (UTC)
I take it Mali-450 would not be too hard to support with the current Lima for Mali-400 ? I have this ( informed ) view of Mali-450 being Mali-400 on steroids but with none of the new Mail-6xx series features, just more raw power ?
(Reply) (Parent) (Thread)
[User Picture]From: libv
2013-10-25 09:48 pm (UTC)
Mali-450 apparently is nothing less than 2 mali-400s bolted together. If executed on a modern process, it might actually clock pretty high as well, as well as other system advantages. So yes, more Poweeerrr!, clarkson style :)
(Reply) (Parent) (Thread)
From: (Anonymous)
2013-10-25 09:28 pm (UTC)
So this means that while the freedreno driver is already almost usable the same can not be said about the lima driver because half way towards a working mali 4xx driver the much newer t6xx was suddenly all the rage?
(Reply) (Thread)
[User Picture]From: libv
2013-10-25 10:40 pm (UTC)

Ok, when was the chromebook released? Let me answer you that one: about a year ago. We did not go and drop everything then and ran off and played with it, now did we? This is quite unlike most of open source world, and this is most prevalent with all the projects running off on supporting the latest SoCs. I think that we at the lima driver project are the last you should be accusing of anything along those lines.

I stated what i stated, and i stuck to it, until very recently. Then, to help my morale, and to take some time off from banging my head into Mesa, i took 2-3 weeks and did the very initial work on the Mali T-6xx. This detour did take 2-3 weeks away from the mali-400, but they would not have been as productive.

As for freedreno's "speed of delivery" advantage, there are many reasons for that.

First off, Rob Clark is a highly dedicated, highly motivated and highly clued graphics driver developer. If i remember correctly, he is unattached, has no real hobbies apart from hacking, and doesn't go out too much. I think he might have been a 80-100h per week programmer, at least, over the duration of the freedreno project. He is a machine. He spent several years at Texas Instruments where his job was playing with upstream code, to a very large extent. He is now employed by redhat, and can spend some of his worktime on his pet project. Rob is a really smart and really happy hacker, and he will hopefully remain so for a few more years. What happens after that, remains to be seen, but chances are good that his current employer is going to continue to reward him for his labour.

My side of the lima project has, over the best part of the last 2 years mostly my own private endeavour (and as such, that of my long time girlfriend who is unbelievably supportive) Unlike Rob, I have been at this for about a decade. In this time, i have had some severely negative experiences with certain parts of the open source "community", which makes me double or triple guess almost everything. On top of that, i have, several times over, been hit by corporate financing decisions. And in those two years since the start of lima, i have had to do different things, sometimes very different from graphics driver programming. All of this means that I know that i will not be rewarded for anything i achieve, yet i keep on doing the same things over and over again, as it is just in my nature to do this. From time to time though, i reflect on things and wonder why i even bother. If history teaches me anything, then it is that i will just receive the resent and envy of some parts of the open source community (and sadly those parts know few bounds), and i will always be shown the wrong end of corporations. So yes, i am not as happy and motivated as Rob is, but if i had had real support for my lima work, we could've actually had a solidly working mesa driver out around the time the chromebook hit the market.

A second reason is the difference in hardware. Mali is a really strange (but fast) design, and i have had to find out everything from scratch. Rob has more conventional hardware, and he got lucky, as some (very high level) information was available from the getgo, and some of it resembles the ATI Radeon from which adreno grew. This not to say that his work was easy, it was actually very hard, but it was not as hard as with mali. On top of that, Rob gets to deal with one (family of) SoC(s), whereas mali is bolted onto pretty much anything.

(Reply) (Parent) (Thread)
[User Picture]From: libv
2013-10-25 10:41 pm (UTC)

The third big reason is the way each project is approached. I started working in a completely different world from Rob, i trailblazed everything, as there was nothing, not even hope. Then, as for the execution of the project. Rob almost immediately threw things into gallium, and then went on to slowly improve that. I went and did things standalone, and only when happy i went and started throwing things into mesa. Rob had immediately something useful, and its usefulness slowly but very steadily improved. I do not have anything useful (public) yet, but what i am working on is consistently 6% faster than the binary driver (even inside mesa), and it will be a drop-replacement for the binary as well. With the high threshold there is for installing anything but the stock image on ARM hardware, Rob (as far as i can tell) only has several enterprising individuals which are using his driver atm. I am now working hard on giving people an easy way to get the lima driver, and its dependencies, for their favourite hardware, without the need to replace, for instance, the kernel with the latest upstream bits. Very different approaches, and i hope that my way will pay off as i intend, and will soon get a competitive open source driver in the hands of a lot of people.

But, Mr Anonymous commenter, somehow i feel that you would be also bashing us for not having done anything on the Mali T6xx yet, if you just happened to have had that hardware in your possession.

Thanks for your support.

Edited at 2013-10-25 10:42 pm (UTC)
(Reply) (Parent) (Thread)
From: (Anonymous)
2013-10-27 11:39 pm (UTC)
Thanks for the lengthy answer.
(Reply) (Parent) (Thread)
From: ext_1717247
2013-10-28 01:12 am (UTC)
I had a feeling this was coming. On behalf of the people who actually appreciate your work let me apologize. I'm anxious to see a working Lima, I was hoping to one day get a fully open source ARM phone working with Lima and I've been regularly checking this website to see the progress though Phoronix usually picks up any post so I just have to check that.
I do however understand how hard reverse engineering is having been face with the problem a couple of times. Right now I'm picked a Chinese phone and I really want to reverse engineer its kernel ( in good Chinese tradition the GPL is just ignored ) . I'm sure it will take a lot of time and effort and sometimes I'm even considering if it's worth it, why not invest that time and effort into making money or going out ? I'm determined to do it though to prove to myself that I can but I'm also going to do other things and not put everything into this.
As human beings all that we can hope for is to make a change for the better and learn things, do useful stuff. Your work on Lima will help a lot. I can see open source projects using LIMA to revive old hardware which would have been probably just thrown away. I still have a good Allwinner A10 tablet that's just waiting for a good LIMA + open source kernel, throw in Wayland and Sailfish and should be just as useful as the latest iPad.
Good luck to you and maybe more updates if you feel like it. I'd love to read about some graphics stuff even though I don't really get all of it. It would also show people that you're really working I guess :)
(Reply) (Parent) (Thread)
From: (Anonymous)
2013-11-16 09:12 pm (UTC)
Is there any very rough timescale when lima driver would be release, e.g. weeks, months or years?
Thanks for this work. It is really appreciated!
(Reply) (Parent) (Thread)